[Data] ;Amount of life to start with ;体力ゲージの初期値 life = 1000 ;attack power (more is stronger) ;攻撃ダメージ attack = 100 ;defensive power (more is stronger) ;体力パワー defence = 100 ;Percentage to increase defense everytime player is knocked down fall.defence_up = 50 ;Time which player lies down for, before getting up liedown.time = 60 ;Number of points for juggling airjuggle = 15 ;Default hit spark number for HitDefs sparkno = 2 ;Default guard spark number guard.sparkno = 40 ;1 to enable echo on KO KO.echo = 0 ;Volume offset (negative for softer) volume = 0 ;Variables with this index and above will not have their values ;reset to 0 between rounds or matches. There are 60 int variables, ;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39. ;If omitted, then it defaults to 60 and 40 for integer and float ;variables repectively, meaning that none are persistent, i.e. all ;are reset. If you want your variables to persist between matches, ;you need to override state 5900 from common1.cns. IntPersistIndex = 60 FloatPersistIndex = 40 [Size] xscale = 1 ;Horizontal scaling factor. yscale = 1 ;Vertical scaling factor. ground.back = 15 ;Player width (back, ground) ground.front = 16 ;Player width (front, ground) air.back = 12 ;Player width (back, air) air.front = 12 ;Player width (front, air) height = 60 ;Height of player (for opponent to jump over) attack.dist = 160 ;Default attack distance proj.attack.dist = 90 ;Default attack distance for projectiles proj.doscale = 0 ;Set to 1 to scale projectiles too head.pos = -5, -90 ;Approximate position of head mid.pos = -5, -60 ;Approximate position of midsection shadowoffset = 0 ;Number of pixels to vertically offset the shadow draw.offset = 0,0 ;Player drawing offset in pixels (x, y) [Velocity] walk.fwd = 2.4 ;Walk forward walk.back = -2.4 ;Walk backward run.fwd = 4.6, 0 ;Run forward (x, y) run.back = -4.5,-3.8 ;Hop backward (x, y) jump.neu = 0,-8.4 ;Neutral jumping velocity (x, y) jump.back = -2.55 ;Jump back Speed (x, y) jump.fwd = 2.5 ;Jump forward Speed (x, y) runjump.back = -2.55,-8.1 ;Running jump speeds (opt) runjump.fwd = 4,-8.1 ;. airjump.neu = 0,-8.1 ;. airjump.back = -2.55 ;Air jump speeds (opt) airjump.fwd = 2.5 ;. [Movement] airjump.num = 1 ;Number of air jumps allowed (opt) airjump.height = 35 ;Minimum distance from ground before you can air jump (opt) yaccel = .44 ;Vertical acceleration stand.friction = .85 ;Friction coefficient when standing crouch.friction = .82 ;Friction coefficient when crouching ;--------------------------------------------------------------------------- ; Variable usage: ; This is a record of the variables that KFM uses. Keeping a record of your ; variable usage helps you avoid careless mistakes later. ; var(1) - Used in kfm.cmd for combo condition (updated every tick) ; var(2) - Used in Kung Fu Throw (state 800) to remember if fwd was being ; held (remembered from state 800 through state 810). ; var(3) - Maverick Mode ;--------------------------------------------------------------------------- ; Projectile ID usage: ; 1 = Ground Bullet ;--------------------------------------------------------------------------- ;Helper Stateno ;Mavrick Aura = 7015 ;--------------------------------------------------------------------------- ; Stand [Statedef 0] type = S physics = S sprpriority = 0 [State 0, 1] type = ChangeAnim triggerall = life > 250 trigger1 = Anim != 0 && Anim != 5 trigger2 = Anim = 5 && AnimTime = 0 ;Turn anim over value = 0 [State 0, 4] type = ChangeAnim triggerall = life < 250 trigger1 = Anim != 5300 && Anim != 5 trigger2 = Anim = 5 && AnimTime = 0 ;Turn anim over value = 5300 [State 0, 2] type = VelSet trigger1 = Time = 0 y = 0 [State 0, 3] ;Stop moving if low velocity or 4 ticks pass type = VelSet trigger1 = abs(vel x) < 2 trigger2 = Time = 4 x = 0 ;--------------------------------------------------------------------------- [Statedef 7014] type = S anim = 10 ctrl = 0 [State 7014, Helper] type = Helper trigger1 = animelem = 1 helpertype = normal ;player name = "mavrickaura" stateno = 7015 pos = 0,0 postype = p1 ;p2,front,back,left,right facing = 1 keyctrl = 0 ownpal = 0 size.xscale = 3 size.yscale = 3 [State 7014, 2] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Lose by Time Over ; CNS difficulty: basic ; CNS レベル: 基本 [Statedef 170] type = S ctrl = 0 anim = 170 velset = 0,0 [State 170, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;--------------------------------------------------------------------------- ; Win state decider ; CNS difficulty: basic ; CNS レベル: 基本 [Statedef 180] type = S [State 180, 1] type = ChangeState trigger1 = Time = 0 value = 181 ;--------------------------------------------------------------------------- ; Win pose 1 ; CNS difficulty: basic ; CNS レベル: 基本 [Statedef 181] type = S ctrl = 0 anim = 181 velset = 0,0 [State 181, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;--------------------------------------------------------------------------- ; Introduction ; CNS difficulty: basic ; CNS レベル: 基本 [Statedef 191] type = S ctrl = 0 anim = 190 velset = 0,0 [State 3010, Explod] type = Explod trigger1 = animelem = 14 anim = F60 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = 1 removetime = -2 scale = 1,1 sprpriority = 0 ontop = 0 removeongethit = 0 ;ignorehitpause = ;persistent = [State 191, 1] ;Freeze animation until PreIntro is over type = ChangeAnim trigger1 = RoundState = 0 value = 190 [State 191, 2] ;Assert this until you want "round 1, fight" to begin type = AssertSpecial trigger1 = 1 flag = Intro [State 191, 3] ;Change to stand state when done type = ChangeState trigger1 = AnimTime = 0 value = 0 [State 200, 1] type = PlaySnd trigger1 = time = 3 value = 101, 2 ;--------------------------------------------------------------------------- ; Taunt ; CNS difficulty: easy [Statedef 195] type = S ctrl = 0 anim = 195 velset = 0,0 movetype = I physics = S sprpriority = 2 [State 195, 1] type = CtrlSet trigger1 = Time = 40 value = 1 [State 195, 2] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Charge [Statedef 6011] type = S ctrl = 0 anim = 6011 velset = 0,0 movetype = I physics = S sprpriority = 2 [State 6011, PowerAdd] type = PowerAdd trigger1 = pos Y = 0 value = 3 persistent = 1 [State 6011, 7] type = ChangeState trigger1 = command = "startrelease" value = 6012 ;--------------------------------------------------------------------------- ;Charge End [Statedef 6012] type = S ctrl = 0 anim = 6012 velset = 0,0 movetype = I physics = S sprpriority = 2 [State 6011, 7] type = ChangeState trigger1 = animelem = 2 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Dash forwards [Statedef 101] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= I ;Move-type: A-attack, I-idle, H-gethit physics = N ctrl = 0 anim = 100 velset = 0,0 movetype = I sprpriority = 2 [State 101, VelSet] type = VelSet trigger1 = Animelem = 2 x = 7 [State 101, AfterImage] type = AfterImage trigger1 = time = 0 time = 10 length = 9 palcontrast = 256,256,256 timegap = 1 framegap = 1 trans = add [State 101, Dash Wave] type = Explod trigger1 = animelem = 2 anim = 7006 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = -1 accel = 0,0 removetime = -2 shadow = 0,0,0 ownpal = 0 removeongethit = 0 sprpriority = 3 afterimage.time = 10 afterimage.length = 4 afterimage.palcontrast = 0,0,256 afterimage.timegap = 1 afterimage.framegap = 3 afterimage.trans = add [State 101, Dash Wave] type = Explod trigger1 = time = 4 trigger2 = time = 6 trigger3 = time = 8 anim = F120 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = 1 accel = 0,0 removetime = -2 shadow = 0,0,0 ownpal = 0 removeongethit = 0 sprpriority = 3 velocity = -1,0 [State 101, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 16 volume = 1055 [State 101, 7] type = ChangeState trigger1 = AnimElem = 8 value = 7005 [State 100, 4] type = ChangeState trigger1 = command != "holdfwd" value = 7005 ;--------------------------------------------------------------------------- ;Air Dash forwards [Statedef 7016] type = A ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= I ;Move-type: A-attack, I-idle, H-gethit physics = N ctrl = 0 anim = 100 velset = 0,0 movetype = I sprpriority = 2 [State 7016, VelSet] type = VelSet trigger1 = Animelem = 2 x = 7 [State 7016, AfterImage] type = AfterImage trigger1 = time = 0 time = 10 length = 9 palcontrast = 256,256,256 timegap = 1 framegap = 1 trans = add [State 7016, Dash Wave] type = Explod trigger1 = animelem = 2 anim = 7006 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = -1 accel = 0,0 removetime = -2 shadow = 0,0,0 ownpal = 0 removeongethit = 0 sprpriority = 3 afterimage.time = 10 afterimage.length = 4 afterimage.palcontrast = 0,0,256 afterimage.timegap = 1 afterimage.framegap = 3 afterimage.trans = add [State 7016, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 16 volume = 1055 [State 101, 7] type = ChangeState trigger1 = AnimElem = 8 value = 7017 [State 100, 4] type = ChangeState trigger1 = command != "holdfwd" value = 7017 ;----------------------------------------------------------------------------- ;air dash stop early [Statedef 7017] type = A ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= I ;Move-type: A-attack, I-idle, H-gethit physics = A ctrl = 0 anim = 7016 velset = 5,0 movetype = I sprpriority = 2 [State 7016, 3] type = CtrlSet trigger1 = Time = 1 value = 1 ;----------------------------------------------------------------------------- ;Dash forwards stop early [Statedef 7005] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= I ;Move-type: A-attack, I-idle, H-gethit physics = S ctrl = 0 anim = 7005 velset = 5,0 movetype = I physics = S sprpriority = 2 [State 101, 7] type = ChangeState trigger1 = Animtime = 0 value = 0 velset = 0,0 ctrl = 1 ;--------------------------------------------------------------------------- ;Dash backwards [Statedef 102] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= I ;Move-type: A-attack, I-idle, H-gethit physics = N ctrl = 0 anim = 100 velset = 0,0 movetype = I physics = S sprpriority = 2 [State 101, Turn] type = Turn trigger1 = time = 0 ;ignorehitpause = ;persistent = [State 101, VelSet] type = VelSet trigger1 = Animelem = 2 x = 7 [State 101, AfterImage] type = AfterImage trigger1 = time = 0 time = 10 length = 9 palcontrast = 256,256,256 timegap = 1 framegap = 1 trans = add [State 101, Dash Wave] type = Explod trigger1 = animelem = 2 anim = 7006 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = -1 accel = 0,0 removetime = -2 shadow = 0,0,0 ownpal = 0 removeongethit = 0 sprpriority = 3 afterimage.time = 10 afterimage.length = 4 afterimage.palcontrast = 0,0,256 afterimage.timegap = 1 afterimage.framegap = 3 afterimage.trans = add [State 101, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 16 volume = 1055 [State 101, Dash Wave] type = Explod trigger1 = time = 4 trigger2 = time = 6 trigger3 = time = 8 anim = F120 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = 1 accel = 0,0 removetime = -2 shadow = 0,0,0 ownpal = 0 removeongethit = 0 sprpriority = 3 velocity = -1,0 [State 101, 7] type = ChangeState trigger1 = AnimElem = 8 value = 0 velset = 0,0 ctrl = 1 ;--------------------------------------------------------------------------- ; Saber Slash 1 ; CNS difficulty: easy [Statedef 200] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = S ;Physics: S-stand, C-crouch, A-air juggle = 1 ;Number of air juggle points move takes ;Commonly-used controllers: velset = 0,0 ;Set velocity (x,y) (Def: no change) ctrl = 0 ;Set ctrl (Def: no change) anim = 200 ;Change animation (Def: no change) poweradd = 20 ;Power to add (Def: 0) sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) [State 200, 1] type = HitDef trigger1 = time = 1 attr = S, NA ;Attribute: Standing, Normal Attack damage = 23, 0 ;Damage that move inflicts, guard damage animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) guardflag = MA ;Flags on how move is to be guarded against hitflag = MAF ;Flags of conditions that move can hit priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default ;Hit/Miss/Dodge type (Def: Hit) pausetime = 8, 8 ;Time attacker pauses, time opponent shakes sparkno = 0 ;Spark anim no (Def: set above) sparkxy = -17, -24 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = S101, 1 ;Sound to play on hit guardsound = 6, 0 ;Sound to play on guard ground.type = High ;Type: High, Low, Trip (def: Normal) ground.slidetime = 5 ;Time that the opponent slides back ground.hittime = 10 ;Time opponent is in hit state ground.velocity = -4 ;Velocity at which opponent is pushed airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) air.type = High ;Type: High, Low, Trip (def: same as ground.type) air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed, ;Y-velocity at which opponent is pushed air.hittime = 12 ;Time before opponent regains control in air [State 200, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 200, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Saber Slash 2 ; CNS difficulty: easy [Statedef 201] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = S ;Physics: S-stand, C-crouch, A-air juggle = 1 ;Number of air juggle points move takes ;Commonly-used controllers: velset = 0,0 ;Set velocity (x,y) (Def: no change) ctrl = 0 ;Set ctrl (Def: no change) anim = 201 ;Change animation (Def: no change) poweradd = 20 ;Power to add (Def: 0) sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) [State 200, 1] type = HitDef trigger1 = time = 1 attr = S, NA ;Attribute: Standing, Normal Attack damage = 36, 0 ;Damage that move inflicts, guard damage animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) guardflag = MA ;Flags on how move is to be guarded against hitflag = MAF ;Flags of conditions that move can hit priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default ;Hit/Miss/Dodge type (Def: Hit) pausetime = 8, 8 ;Time attacker pauses, time opponent shakes sparkno = 0 ;Spark anim no (Def: set above) sparkxy = -17, -24 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = S101, 3 ;Sound to play on hit guardsound = 6, 0 ;Sound to play on guard ground.type = High ;Type: High, Low, Trip (def: Normal) ground.slidetime = 5 ;Time that the opponent slides back ground.hittime = 10 ;Time opponent is in hit state ground.velocity = -4 ;Velocity at which opponent is pushed airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) air.type = High ;Type: High, Low, Trip (def: same as ground.type) air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed, ;Y-velocity at which opponent is pushed air.hittime = 12 ;Time before opponent regains control in air [State 200, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 200, 1] type = PlaySnd trigger1 = time = 0 value = 5, 2 [State 200, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Saber Slash 3 ; CNS difficulty: easy [Statedef 202] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = S ;Physics: S-stand, C-crouch, A-air juggle = 1 ;Number of air juggle points move takes ;Commonly-used controllers: velset = 0,0 ;Set velocity (x,y) (Def: no change) ctrl = 0 ;Set ctrl (Def: no change) anim = 202 ;Change animation (Def: no change) poweradd = 20 ;Power to add (Def: 0) sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) [State 200, 1] type = HitDef trigger1 = time = 1 attr = S, NA ;Attribute: Standing, Normal Attack damage = 58, 0 ;Damage that move inflicts, guard damage animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) guardflag = MA ;Flags on how move is to be guarded against hitflag = MAF ;Flags of conditions that move can hit priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default ;Hit/Miss/Dodge type (Def: Hit) pausetime = 8, 8 ;Time attacker pauses, time opponent shakes sparkno = 0 ;Spark anim no (Def: set above) sparkxy = -17, -24 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = S101, 4 ;Sound to play on hit guardsound = 6, 0 ;Sound to play on guard ground.type = High ;Type: High, Low, Trip (def: Normal) ground.slidetime = 5 ;Time that the opponent slides back ground.hittime = 10 ;Time opponent is in hit state ground.velocity = -4 ;Velocity at which opponent is pushed airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) air.type = High ;Type: High, Low, Trip (def: same as ground.type) air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed, ;Y-velocity at which opponent is pushed air.hittime = 12 ;Time before opponent regains control in air [State 200, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 200, 1] type = PlaySnd trigger1 = time = 0 value = 5, 0 [State 200, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing Spear 1 ; CNS difficulty: easy ; Note the width controller. It makes KFM's push box larger, so he doesn't ; stand so close to the opponent. Hit Ctrl-C and look at the red bar at his ; feet. ; The sprpriority for this state is at -1, instead of the usual 2 for ; attacks. This makes KFM appear behind the opponent initially. ; The SprPriority controller in [State 210, 4] brings KFM to the front when ; his arm has swung over. ; To stop KFM from pausing in his swing frame, there is a ChangeAnim in ; [State 210, 3] that detects if the hit has come in contact with the ; opponent during that frame, and switches to the next animation element ; (notice the elem=6 parameter). If you don't see what I mean, try commenting ; out that controller, then hit someone with this attack. [Statedef 210] type = S movetype= A physics = S juggle = 4 poweradd= 65 ctrl = 0 velset = 0,0 anim = 210 sprpriority = -1 [State 210, 1] type = PlaySnd trigger1 = Time = 0 value = 101, 0 [State 210, 2] type = HitDef trigger1 = time = 0 attr = S, NA animtype = Medium damage = 23, 19 guardflag = MA pausetime = 12,12 sparkno = 1 sparkxy = -13,-24 hitsound = S101, 3 guardsound = 6,0 ground.type = High ground.slidetime = 12 ground.hittime = 13 ground.velocity = -5.5 air.velocity = -2.5,-4 [State 210, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing Spear 2 ; CNS difficulty: easy ; Note the width controller. It makes KFM's push box larger, so he doesn't ; stand so close to the opponent. Hit Ctrl-C and look at the red bar at his ; feet. ; The sprpriority for this state is at -1, instead of the usual 2 for ; attacks. This makes KFM appear behind the opponent initially. ; The SprPriority controller in [State 210, 4] brings KFM to the front when ; his arm has swung over. ; To stop KFM from pausing in his swing frame, there is a ChangeAnim in ; [State 210, 3] that detects if the hit has come in contact with the ; opponent during that frame, and switches to the next animation element ; (notice the elem=6 parameter). If you don't see what I mean, try commenting ; out that controller, then hit someone with this attack. [Statedef 211] type = S movetype= A physics = S juggle = 4 poweradd= 65 ctrl = 0 velset = 0,0 anim = 211 sprpriority = -1 [State 211, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 211, 2] type = HitDef trigger1 = time = 0 attr = S, NA animtype = Medium damage = 36, 32 guardflag = MA pausetime = 12,12 sparkno = 1 sparkxy = -13,-24 hitsound = S101, 3 guardsound = 6,0 ground.type = High ground.slidetime = 12 ground.hittime = 13 ground.velocity = -5.5 air.velocity = -2.5,-4 [State 211, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing Spear 3 ; CNS difficulty: easy ; Note the width controller. It makes KFM's push box larger, so he doesn't ; stand so close to the opponent. Hit Ctrl-C and look at the red bar at his ; feet. ; The sprpriority for this state is at -1, instead of the usual 2 for ; attacks. This makes KFM appear behind the opponent initially. ; The SprPriority controller in [State 210, 4] brings KFM to the front when ; his arm has swung over. ; To stop KFM from pausing in his swing frame, there is a ChangeAnim in ; [State 210, 3] that detects if the hit has come in contact with the ; opponent during that frame, and switches to the next animation element ; (notice the elem=6 parameter). If you don't see what I mean, try commenting ; out that controller, then hit someone with this attack. [Statedef 212] type = S movetype= A physics = S juggle = 4 poweradd= 65 ctrl = 0 velset = 0,0 anim = 212 sprpriority = -1 [State 212, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 212, 2] type = HitDef trigger1 = time = 0 attr = S, NA animtype = Medium damage = 36, 32 guardflag = MA pausetime = 12,12 sparkno = 1 sparkxy = -13,-24 hitsound = S101, 3 guardsound = 6,0 ground.type = High ground.slidetime = 12 ground.hittime = 13 ground.velocity = -5.5 air.velocity = -2.5,-4 [State 212, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing punch 1 ; CNS difficulty: easy [Statedef 230] type = S movetype= A physics = S juggle = 4 poweradd= 22 ctrl = 0 velset = 0,0 anim = 230 sprpriority = 2 [State 230, 1] type = PlaySnd trigger1 = Time = 2 value = 0, 1 [State 230, 2] type = HitDef trigger1 = Time = 0 attr = S, NA animtype = Medium damage = 26 guardflag = MA pausetime = 12,12 sparkno = 0 sparkxy = -10,-24 hitsound = 5,1 guardsound = 6,0 ground.type = Low ground.slidetime = 10 ground.hittime = 11 ground.velocity = -1.5 air.velocity = -2.5,-3.5 [State 230, 4] type = ChangeState trigger1 = movehit trigger1 = command = "a" value = 231 [State 230, 3] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing punch 2 ; CNS difficulty: easy [Statedef 231] type = S movetype= A physics = S juggle = 4 poweradd= 22 ctrl = 0 velset = 0,0 anim = 231 sprpriority = 2 [State 230, 2] type = HitDef trigger1 = Time = 0 attr = S, NA animtype = Medium damage = 30 guardflag = MA pausetime = 12,12 sparkno = 0 sparkxy = -10,-24 hitsound = 5,1 guardsound = 6,0 ground.type = Low ground.slidetime = 10 ground.hittime = 11 ground.velocity = -3.5 air.velocity = -2.5,-3.5 [State 230, 3] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing punch 3 ; CNS difficulty: easy [Statedef 232] type = S movetype= A physics = S juggle = 4 poweradd= 22 ctrl = 0 velset = 0,0 anim = 232 sprpriority = 2 [State 232, 2] type = HitDef trigger1 = Time = 0 attr = S, NA animtype = Medium damage = 34 guardflag = MA pausetime = 12,12 sparkno = 0 sparkxy = -10,-37 hitsound = 5,1 guardsound = 6,0 ground.type = Low ground.slidetime = 10 ground.hittime = 11 ground.velocity = -3.5 air.velocity = -2.5,-3.5 [State 232, 3] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing Buster ; CNS difficulty: easy [Statedef 240] type = S movetype= A physics = S juggle = 5 poweradd= 65 ctrl = 0 velset = 0,0 anim = 240 sprpriority = 2 [State 240, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 9 [State 6008, Bullet] type = Projectile trigger1 = time = 1 projanim = 241 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 20,-22 velocity = 3.5 attr = S, SP damage = 15 animtype = light guardflag = MA hitflag = MAFDP pausetime = 10,1 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 1 ground.hittime = 1 ground.velocity = -6 [State 240, 4] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Jump Saber Slash ; CNS difficulty: easy [Statedef 600] type = A movetype= A physics = A juggle = 2 poweradd= 11 ctrl = 0 anim = 600 sprpriority = 2 [State 600, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 600, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 1 [State 600, 2] type = HitDef trigger1 = Time = 0 attr = A, NA damage = 20 guardflag = HA priority = 3 pausetime = 7,8 sparkno = 0 sparkxy = -15,-24 hitsound = 0,0 guardsound = 6,0 ground.type = High ground.slidetime = 5 ground.hittime = 5 ground.velocity = -4 air.velocity = -1.3,-3 [State 600, 3] type = CtrlSet trigger1 = Time = 17 value = 1 ;--------------------------------------------------------------------------- ;Rolling Jump Saber Slash ; CNS difficulty: easy [Statedef 601] type = A movetype= A physics = A juggle = 2 poweradd= 11 ctrl = 0 anim = 6013 sprpriority = 2 [State 601, 1] type = PlaySnd trigger1 = Time = 2 value = 101, 0 [State 600, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 1 [State 200, 1] type = PlaySnd trigger1 = time = 0 value = 5, 1 [State 600, 2] type = HitDef trigger1 = animelem = 1 trigger2 = animelem = 2 trigger3 = animelem = 3 trigger4 = animelem = 4 trigger5 = animelem = 5 trigger6 = animelem = 6 trigger7 = animelem = 7 trigger8 = animelem = 8 trigger9 = animelem = 9 trigger10 = animelem = 10 attr = A, NA damage = 20 guardflag = HA priority = 3 pausetime = 7,8 sparkno = 0 sparkxy = -15,-24 hitsound = 0,0 guardsound = 6,0 ground.type = High ground.slidetime = 5 ground.hittime = 5 ground.velocity = -4 air.velocity = -1.3,-3 [State 600, 3] type = CtrlSet trigger1 = Time = 14 value = 1 ;----------------------------------------------------------------------------- ;Downward Saber ; CNS difficulty: easy [Statedef 602] type = A movetype= A physics = A juggle = 2 poweradd= 11 ctrl = 0 anim = 6014 sprpriority = 2 [State 200, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 200, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 1 [State 0, VelSet] type = VelSet trigger1 = animelem = 2 y = 8 x = 0 [State 600, 2] type = HitDef trigger1 = animelem = 2 attr = A, NA damage = 40 guardflag = HA priority = 3 pausetime = 7,8 sparkno = 0 sparkxy = -15,-24 hitsound = 0,0 guardsound = 6,0 ground.type = High ground.slidetime = 5 ground.hittime = 5 ground.velocity = -4 air.velocity = -1.3,5 [State 1051, 3] type = ChangeState trigger1 = Vel Y > 8 && Pos Y > -10 value = 603 ;----------------------------------------------------------------------------- ;Downward Saber - Landing ; CNS difficulty: easy [Statedef 603] type = S movetype= I physics = S juggle = 2 poweradd= 11 ctrl = 0 anim = 6015 sprpriority = 2 [State 0, VelSet] type = VelSet trigger1 = time = 0 y = 0 [State 603, 1] ;Reset y-position to ground level type = PosSet trigger1 = Pos Y > -10 y = 0 [State 603, 2] type = PlaySnd trigger1 = Time = 0 value = 40, 0 [State 603, 3] type = CtrlSet trigger1 = AnimElem = 2, -1 value = 1 [State 603, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Jump Spear ; CNS difficulty: easy [Statedef 610] type = A movetype= A physics = A juggle = 4 poweradd= 65 ctrl = 0 anim = 610 sprpriority = 2 [State 610, 2] type = PlaySnd trigger1 = Time = 0 value = 101, 0 [State 610, 2] type = PlaySnd trigger1 = movehit = 1 value = 101, 3 [State 610, 3] type = HitDef trigger1 = Time = 0 attr = A, NA damage = 50 guardflag = HA priority = 4 pausetime = 12,12 sparkno = 1 sparkxy = -15,-24 hitsound = 0,0 guardsound = 6,0 animtype = Med ground.type = High ground.slidetime = 17 ground.hittime = 17 ground.velocity = -5 air.velocity = -3,-4 [State 610, 3] type = CtrlSet trigger1 = Time = 12 value = 1 ;--------------------------------------------------------------------------- ;Jump Punch ; CNS difficulty: easy [Statedef 630] type = A movetype= A physics = A juggle = 3 poweradd= 20 ctrl = 0 anim = 630 sprpriority = 2 [State 630, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 0 [State 630, 2] type = HitDef trigger1 = Time = 0 attr = A, NA damage = 26 guardflag = HA priority = 3 pausetime = 8,8 sparkno = 1 sparkxy = -5,-30 hitsound = 5,0 guardsound = 6,0 ground.type = High ground.slidetime = 6 ground.hittime = 6 ground.velocity = -4 air.velocity = -2,-3 [State 630, 3] type = CtrlSet trigger1 = Time = 10 value = 1 ;--------------------------------------------------------------------------- ;Jump Buster ; CNS difficulty: easy [Statedef 640] type = A movetype= A physics = A juggle = 4 poweradd= 65 ctrl = 0 anim = 640 sprpriority = 2 [State 640, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 9 [State 6008, Bullet] type = Projectile trigger1 = time = 1 projanim = 241 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 20,-28 velocity = 4.5 attr = S, SP damage = 15 animtype = light guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = High ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 [State 640, 3] type = CtrlSet trigger1 = Time = 12 value = 1 ;--------------------------------------------------------------------------- ;Saber Throw - Attempt ; CNS difficulty: medium-advanced ; Description: Throws are not difficult to make, although then can be ; tedious at times. Throw attempt states have a HitDef of a ; special format. The key parameters in a throw are p1stateno ; and p2stateno. If the HitDef successfully connects, then ; the attacker will change to the state number specified by ; p1stateno, and the opponent will be change to the state ; number assigned to p2stateno. The special thing about p2stateno ; is that the opponent will be temporarily brought into the ; attacker's state file. In this case, no matter who the ; opponent is, he will be taken to state 820 of this file (kfm.cns) ; and remain here until the end of the throw (look at his debug ; information when he is being thrown; the text changes to yellow ; to mean that he is in another player's state file). [Statedef 800] type = S movetype= A physics = S juggle = 0 velset = 0,0 ctrl = 0 anim = 800 sprpriority = 2 ; Notes: The '-' symbol in the hitflag field means that it only affects ; players who are not in a hit state. This prevents KFM from combo-ing ; into the throw. The priority should be set to a low number, such as ; 1 or 2, so that the throw does not take precedence over normal attacks. ; The type of priority must always be set to "Miss" or "Dodge" for throws, ; otherwise strange behavior can result. [State 800, 1] type = HitDef Trigger1 = Time = 0 attr = S, NT ;Attributes: Standing, Normal Throw hitflag = M- ;Affect only ground people who are not being hit priority = 1, Miss ;Throw has low priority, must be miss or dodge type. sparkno = -1 ;No spark p1sprpriority = 1 ;Draw p1's sprite in front of p2 ;p2's sprite priority is set to 0 by default p1facing = 1 p2facing = 1 ;Force p2 to face KFM p1stateno = 810 ;On success, KFM changes to state 810 p2stateno = 820 ;If hit, p2 changes to state 820 in KFM's cns guard.dist = 0 ;This prevents p2 from going into a guard state if close fall = 1 ;Force p2 into falling down [State 810, Grab Sound] type = PlaySnd trigger1 = AnimElem = 2 value = 101, 0 [State 800, 2] type = ChangeState Trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Saber Throw - Throwing the opponent ; Description: In this state, KFM throws the opponent by binding him to ; various offsets based on his current frame of animation. For ; example, [State 810, Bind 1] binds the opponent to an offset of ; 28 pixels in front of KFM. That puts him around where KFM's hand ; is at. Is is important to keep the opponent bound using a ; TargetBind controller at all times, until you let him go. This ; is especially important if your player has a Clsn2 box that ; allows him to get hit while throwing someone. Each time a player ; gets hit, all his bound targets will be set to a fall state. If ; the opponent is not bound, then he may get stuck in his thrown ; state when his attacker is knocked out of the throw halfway. ; Notes: There is a TargetLifeAdd controller to decrease the opponent's ; life, and a TargetState controller to change his state to a ; falling state when KFM lets go of him. [Statedef 810] type = S movetype= A physics = N anim = 810 poweradd = 60 ; Here a variable, var(2), is used to remember whether or not the ; player was holding forward at the start of the state. This variable ; is checked later on to turn KFM around if necessary. [State 810, Holding fwd?] type = VarSet trigger1 = Time = 0 var(2) = command = "holdfwd" [State 810, Grab Sound] type = PlaySnd trigger1 = AnimElem = 2 value = 101, 3 [State 810, Throw Sound] type = PlaySnd trigger1 = AnimElem = 7 value = 800, 0 [State 810, Bind 1] type = TargetBind trigger1 = AnimElemTime(2) < 0 pos = 28, 0 [State 810, Width 2-11] type = Width trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(6) < 0 edge = 60,0 [State 810, holdfwd - Turn 6] ;If was holding fwd before, turn now type = Turn trigger1 = var(2) trigger1 = AnimElem = 6 [State 810, holdfwd - Pos 6] ;If was holding fwd before, move a little type = PosAdd trigger1 = var(2) trigger1 = AnimElem = 6 x = -37 [State 810, Bind 6] type = TargetBind trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(7) < 0 pos = 41, -60 [State 810, Bind 7] type = TargetBind trigger1 = AnimElemTime(7) >= 0 && AnimElemTime(8) < 0 pos = 25, -75 [State 810, Bind 8] type = TargetBind trigger1 = AnimElemTime(8) >= 0 && AnimElemTime(9) < 0 pos = 15, -90 [State 810, Bind 9] type = TargetBind trigger1 = AnimElemTime(9) >= 0 && AnimElemTime(10) < 0 pos = -5, -96 [State 810, Bind 10] type = TargetBind trigger1 = AnimElemTime(10) >= 0 && AnimElemTime(11) < 0 pos = -14, -90 [State 810, Bind 11] type = TargetBind trigger1 = AnimElem = 11 pos = -50, -50 [State 810, Hurt 11] type = TargetLifeAdd trigger1 = AnimElem = 11 value = -78 [State 810, Throw 11] type = TargetState trigger1 = AnimElem = 11 value = 821 [State 810, Turn 12] type = Turn trigger1 = AnimElem = 12 [State 810, Pos 15] type = PosAdd trigger1 = AnimElem = 15 x = -10 [State 810, State End] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Thrown ; (a custom gethit state) ; Description: This is the state that the opponent changes to after being ; hit by KFM's throw HitDef. The important thing here is to use a ; ChangeAnim2 controller. The difference between ChangeAnim2 and ; ChangeAnim is that ChangeAnim2 changes the player's animation to ; an action in the AIR file of the attacker (in this case, kfm.air), ; whereas ChangeAnim always changes the player to an action in his ; own AIR file. Look at Action 820 in kfm.air for some extra ; comments. [Statedef 820] type = A movetype= H physics = N velset = 0,0 [State 820, 1] type = ChangeAnim2 Trigger1 = Time = 0 value = 820 ;In case attacker loses binding on player for any reason, this controller ;guarantees that the player will never get stuck in this thrown state. [State 820, 2] type = SelfState trigger1 = !gethitvar(isbound) value = 5050 ;--------------------------------------------------------------------------- ;Thrown-in air ; (a custom gethit state) ; Description: This state has the opponent flying through the air and ; falling down onto the ground. The SelfState controller sets the ; opponent back using to his own state file when he his the ground. ; Controllers 821,2 and 821,3 allow the opponent to recover by ; hitting his recovery command when he is falling. [Statedef 821] type = A movetype= H physics = N velset = 2.8,-7 poweradd = 40 [State 821, 1] ;Gravity type = VelAdd Trigger1 = 1 y = .7 [State 821, 2] ; Recover near ground (use ChangeState) type = ChangeState triggerall = Vel Y > 0 triggerall = Pos Y >= -5 triggerall = alive triggerall = CanRecover trigger1 = Command = "recovery" value = 5200 ;HITFALL_RECOVER [State 821, 3] ; Recover in mid air (use SelfState) type = SelfState triggerall = Vel Y > 0 triggerall = alive triggerall = CanRecover trigger1 = Command = "recovery" value = 5210 ;HITFALL_AIRRECOVER [State 821, 4] ;Hit ground type = SelfState trigger1 = Vel Y > 0 trigger1 = Pos Y >= 0 value = 5100 ;Hit ground ;--------------------------------------------------------------------------- ; Upward Saber ; CNS difficulty: medium ; Description: Like the Kung Fu Palm, this is a special attack. This attack ; begins on the ground, launches KFM into the air, then ends when KFM ; lands on the ground. To achieve this, we use three states. The first ; has KFM starting on the ground (note that type = S in the Statedef). ; The ChangeState controller brings KFM into the second state (state ; 1051) when his ground animation ends. The second state controls KFM's ; movement into the air and back towards the ground. The last state ; (state 1052) stops KFM from moving when he touches the ground, and ; brings him back to his stand state (state 0) when the animation is ; over. More details are given in comments before each of the following ; states. [Statedef 1050] type = S movetype= A physics = S juggle = 4 poweradd= 110 velset = 0,0 anim = 1050 ctrl = 0 sprpriority = 2 [State 200, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 200, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 3 [State 200, 1] type = PlaySnd trigger1 = time = 0 value = 5, 1 [State 1050, 4] type = HitDef trigger1 = Time = 0 attr = A, SA animtype = Medium damage = 50, 4 priority = 5 guardflag = MA pausetime = 0,7 sparkxy = -10,-24 hitsound = 0,0 guardsound = 6,0 ground.type = Low ground.slidetime = 20 ground.hittime = 20 ground.velocity = -3.5,-7 guard.velocity = -7 air.velocity = -3.5,-7 fall = 1 [State 1050, 5] type = ChangeState trigger1 = AnimTime = 0 value = 1051 ;------------------ ; Upward Saber - In Air ; Description: This state uses a velset parameter in the Statedef to make ; KFM move upwards. A value of 2,-6 means 2 pixels/tick forwards, and ; 6 pixels/tick upwards. Since this is an aerial state, the type is set ; to A in the Statedef. ; Notice that physics = N (N for None) here. This means we are not using ; the built-in aerial physics model (physics = A), so we have complete ; control over what KFM does in this state. Since we do not have ; physics = A to take care of gravity for us, we need to put in our own ; controller for that. Controller 1051,1 does the work of pulling KFM ; down towards the ground. Controller 1051,2 checks if KFM has reached ; the ground, and changes to state 1052 if so. ; In this state's Statedef, we will use the hitdefpersist parameter to ; retain the HitDef information from the last state. If we did not have ; hitdefpersist, the HitDef will be turned off between state changes. [Statedef 1051] type = A movetype= A physics = N velset = 2,-11 anim = 1051 hitdefpersist = 1 ;Keep the HitDef from previous state active [State 1051, 1] ;Gravity type = VelAdd trigger1 = 1 y = .6 [State 200, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 3 [State 1051, 3] type = ChangeState trigger1 = Vel Y > 0 && Pos Y >= -10 value = 1052 [State 1052, 3] type = CtrlSet trigger1 = AnimElem = 8, value = 1 ;------------------ ; Upward Saber - land ; Description: This is KFM's landing state. There is a velset in the ; Statedef to stop KFM from moving. Since KFM's y-position can be any ; number greater than -10 upon entering this state (see the ChangeState ; controller in State 1051), we need to reset it to 0, the ground ; level. That is what controller 1052,1 is for. [Statedef 1052] type = S movetype= I physics = S anim = 47 sprpriority = 1 velset = 0,0 [State 1052, 1] ;Reset y-position to ground level type = PosSet trigger1 = Time = 0 y = 0 [State 1052, 2] ;Play a sound for landing type = PlaySnd trigger1 = Time = 0 value = 40, 0 [State 1052, 3] ;Give KFM back control early type = CtrlSet trigger1 = AnimElem = 3, -1 value = 1 [State 1052, 4] ;Move KFM back a little type = PosAdd trigger1 = AnimElem = 4 x = -15 [State 1052, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;------------------ ;Aerial Saber - Start [Statedef 1053] type = A movetype= A physics = A juggle = 4 poweradd= 110 velset = 0,-1 anim = 1053 ctrl = 0 sprpriority = 2 [State 1053, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 1053, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 3 [State 1053, 4] type = HitDef trigger1 = Time = 0 attr = A, SA animtype = Medium damage = 50, 4 priority = 5 guardflag = MA pausetime = 0,7 sparkxy = -10,-70 hitsound = 0,0 guardsound = 6,0 ground.type = Low ground.slidetime = 20 ground.hittime = 20 ground.velocity = -3.5,-7 guard.velocity = -7 air.velocity = -3.5,-7 fall = 1 [State 200, 1] type = PlaySnd trigger1 = time = 0 value = 5, 1 [State 1052, 3] type = CtrlSet trigger1 = AnimElem = 8 value = 1 [State 1053, 5] type = ChangeState trigger1 = AnimTime = 0 value = 1056 ;------------------ ; Aerial Saber [Statedef 1056] type = A movetype= A physics = N velset = 2,-11 anim = 1051 hitdefpersist = 1 ;Keep the HitDef from previous state active [State 1056, 1] ;Gravity type = VelAdd trigger1 = 1 y = .6 [State 1056, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 3 [State 1052, 3] type = CtrlSet trigger1 = AnimElem = 8 value = 1 [State 1051, 3] ;Change state when KFM is close to ground type = ChangeState trigger1 = Vel Y > 0 && Pos Y >= -10 value = 1052 ;--------------------------------------------------------------------------- ; Saber Wave EX ; CNS difficulty: easy ; Notes: This uses the EnvShake controller to shake the screen. It makes the ; move look stronger. [Statedef 7018] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = S ;Physics: S-stand, C-crouch, A-air juggle = 1 ;Number of air juggle points move takes ;Commonly-used controllers: velset = 0,0 ;Set velocity (x,y) (Def: no change) ctrl = 0 ;Set ctrl (Def: no change) anim = 7017 ;Change animation (Def: no change) poweradd = -500 ;Power to add (Def: 0) sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) [State 1200, 1] type = HitDef trigger1 = time = 1 attr = S, NA ;Attribute: Standing, Normal Attack damage = 58, 0 ;Damage that move inflicts, guard damage animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) guardflag = MA ;Flags on how move is to be guarded against hitflag = MAF ;Flags of conditions that move can hit priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default ;Hit/Miss/Dodge type (Def: Hit) pausetime = 8, 8 ;Time attacker pauses, time opponent shakes sparkno = 0 ;Spark anim no (Def: set above) sparkxy = -17, -24 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = 0, 0 ;Sound to play on hit guardsound = 6, 0 ;Sound to play on guard ground.type = High ;Type: High, Low, Trip (def: Normal) ground.slidetime = 5 ;Time that the opponent slides back ground.hittime = 10 ;Time opponent is in hit state ground.velocity = -4 ;Velocity at which opponent is pushed airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) air.type = High ;Type: High, Low, Trip (def: same as ground.type) air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed, ;Y-velocity at which opponent is pushed air.hittime = 12 ;Time before opponent regains control in air fall = 1 [State 1200, 1] type = HitDef trigger1 = time = 14 attr = S, NA ;Attribute: Standing, Normal Attack damage = 58, 0 ;Damage that move inflicts, guard damage animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) guardflag = MA ;Flags on how move is to be guarded against hitflag = MAF ;Flags of conditions that move can hit priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default ;Hit/Miss/Dodge type (Def: Hit) pausetime = 8, 8 ;Time attacker pauses, time opponent shakes sparkno = 0 ;Spark anim no (Def: set above) sparkxy = -17, -24 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = 0, 0 ;Sound to play on hit guardsound = 6, 0 ;Sound to play on guard ground.type = High ;Type: High, Low, Trip (def: Normal) ground.slidetime = 5 ;Time that the opponent slides back ground.hittime = 10 ;Time opponent is in hit state ground.velocity = -4 ;Velocity at which opponent is pushed airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) air.type = High ;Type: High, Low, Trip (def: same as ground.type) air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed, ;Y-velocity at which opponent is pushed air.hittime = 12 ;Time before opponent regains control in air fall = 1 [State 1200, 1] type = Projectile trigger1 = animelem = 1 projanim = 203 projhitanim = 204 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 7,-7 velocity = 6 attr = S, SP damage = 30 animtype = heavy guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = S101,4 sparkxy = 500,500 guardsound = S6,0 ground.type = low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 air.animtype = Back air.velocity = -4,-6 air.juggle = 3 air.fall = 1 down.velocity = -4,-6 down.hittime = 30 down.bounce = 0 projremovetime = 15 [State 1200, 1] type = Projectile trigger1 = animelem = 9 projanim = 203 projhitanim = 204 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 7,-7 velocity = 6 attr = S, SP damage = 30 animtype = heavy guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = S101,4 sparkxy = 500,500 guardsound = S6,0 ground.type = low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 air.animtype = Back air.velocity = -4,-6 air.juggle = 3 air.fall = 1 down.velocity = -4,-6 down.hittime = 30 down.bounce = 0 projremovetime = 15 [State 1200, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 1200, 1] type = PlaySnd trigger1 = Time = 16 value = 101, 0 [State 200, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 4 [State 200, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Saber Wave ; CNS difficulty: easy ; Notes: This uses the EnvShake controller to shake the screen. It makes the ; move look stronger. [Statedef 1200] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = S ;Physics: S-stand, C-crouch, A-air juggle = 1 ;Number of air juggle points move takes ;Commonly-used controllers: velset = 0,0 ;Set velocity (x,y) (Def: no change) ctrl = 0 ;Set ctrl (Def: no change) anim = 6010 ;Change animation (Def: no change) poweradd = 20 ;Power to add (Def: 0) sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) [State 1200, 1] type = HitDef trigger1 = time = 1 attr = S, NA ;Attribute: Standing, Normal Attack damage = 58, 0 ;Damage that move inflicts, guard damage animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) guardflag = MA ;Flags on how move is to be guarded against hitflag = MAF ;Flags of conditions that move can hit priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default ;Hit/Miss/Dodge type (Def: Hit) pausetime = 8, 8 ;Time attacker pauses, time opponent shakes sparkno = 0 ;Spark anim no (Def: set above) sparkxy = -17, -24 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = 0, 0 ;Sound to play on hit guardsound = 6, 0 ;Sound to play on guard ground.type = High ;Type: High, Low, Trip (def: Normal) ground.slidetime = 5 ;Time that the opponent slides back ground.hittime = 10 ;Time opponent is in hit state ground.velocity = -4 ;Velocity at which opponent is pushed airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) air.type = High ;Type: High, Low, Trip (def: same as ground.type) air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed, ;Y-velocity at which opponent is pushed air.hittime = 12 ;Time before opponent regains control in air fall = 1 [State 1200, 1] type = Projectile trigger1 = animelem = 4 projanim = 203 projhitanim = 204 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 7,-7 velocity = 6 attr = S, SP damage = 30 animtype = heavy guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 800, sparkxy = 500,500 guardsound = S6,0 ground.type = low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 air.animtype = Back air.velocity = -4,-6 air.juggle = 3 air.fall = 1 down.velocity = -4,-6 down.hittime = 30 down.bounce = 0 projremovetime = 15 [State 1200, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 0 [State 200, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 4 [State 200, 1] type = PlaySnd trigger1 = projhit = 1 value = 101, 4 [State 200, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ;Hyper 2 [Statedef 3010] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = S ctrl = 0 anim = 6001 velset = 0,0 movetype = I physics = S sprpriority = 2 [State 3010, Super A] type = SuperPause trigger1 = AnimElem = 1 pos = 0, -22 anim = S7011 sound = 20, 0 poweradd = -1000 [State 3010, Super B] type = AfterImage trigger1 = AnimElem = 1 time = 2 [State 3010, Super C] type = AfterImageTime trigger1 = AnimElemTime(1) >= 1 && Time < 60 time = 2 [State 3010, Explod] type = Explod trigger1 = animelem = 4 anim = F60 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = 1 removetime = -2 scale = 1,1 sprpriority = 0 ontop = 0 removeongethit = 0 ;ignorehitpause = ;persistent = [State 3010, Bullet1] type = Projectile trigger1 = animelem = 3 projanim = 7000 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 20,-1 velocity = 9,0 attr = S, SP damage = 75 animtype = hard guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 numhits = 2 [State 3010, Bullet2] type = Projectile trigger1 = animelem = 3 projanim = 7001 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 20,-1 velocity = -9,0 attr = S, SP damage = 75 animtype = hard guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 numhits = 2 [State 3010, Bullet3] type = Projectile trigger1 = animelem = 3 projanim = 7002 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 19,-2 velocity = -9,-8 attr = S, SP damage = 75 animtype = hard guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 numhits = 2 [State 3010, Bullet4] type = Projectile trigger1 = animelem = 3 projanim = 7002 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 19,-2 velocity = 9,-8 attr = S, SP damage = 75 animtype = hard guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 numhits = 2 [State 3010, Bullet5] type = Projectile trigger1 = animelem = 3 projanim = 7004 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 20,-4 velocity = 0,-9 attr = S, SP damage = 75 animtype = hard guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 numhits = 2 [State 3010, 1] type = PlaySnd trigger1 = Animelem = 3 value = 101, 15 [State 3010, 7] type = ChangeState trigger1 = AnimElem = 6 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Saber Fury Start-Dash forwards [Statedef 3000] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = N ctrl = 0 anim = 100 velset = 0,0 movetype = I physics = S sprpriority = 2 [State 3000, Super A] type = SuperPause trigger1 = AnimElem = 1 pos = 13, -28 anim = S7019 sound = S101, 13 poweradd = -3000 [State 3000, Super B] type = AfterImage trigger1 = AnimElem = 1 time = 2 [State 3000, Super C] type = AfterImageTime trigger1 = AnimElemTime(1) >= 1 && Time < 60 time = 2 [State 101, Dash Wave] type = Explod trigger1 = animelem = 2 anim = 7006 pos = 0,0 postype = p1 ;p2,front,back,left,right bindtime = -1 accel = 0,0 removetime = -2 shadow = 0,0,0 ownpal = 0 removeongethit = 0 sprpriority = 3 afterimage.time = 10 afterimage.length = 4 afterimage.palcontrast = 0,0,256 afterimage.timegap = 1 afterimage.framegap = 3 afterimage.trans = add [State 3000, 5] type = HitDef trigger1 = time = 0 attr = S, HA animtype = Hard damage = 1 getpower = 0 priority = 6 guardflag = NA pausetime = 0,10 sparkxy = -10,-60 hitsound = S101, 4 guardsound = 6,0 ground.type = Low ground.slidetime = 30 ground.hittime = 30 ground.velocity = 0 air.velocity = -3,-2.8 air.fall = 1 fall.animtype = Hard fall.recover = 0 [State 101, VelSet] type = VelSet trigger1 = Animelem = 2 x = 7 [State 101, AfterImage] type = AfterImage trigger1 = time = 0 time = 10 length = 10 palcontrast = 256,256,256 timegap = 1 framegap = 3 trans = add [State 101, 1] type = PlaySnd trigger1 = Time = 1 value = 101, 16 [State 101, 7] type = ChangeState trigger1 = movehit = 1 value = 3001 velset = 0,0 [State 101, 7] type = ChangeState trigger1 = AnimElem = 8 value = 7005 ;--------------------------------------------------------------------------- ; Saber Fury Part 1 [Statedef 3001] type = S movetype= A physics = S juggle = 4 velset = 0,0 anim = 7012 ctrl = 0 sprpriority = 2 [State 101, AfterImage] type = AfterImage trigger1 = time = 0 time = 50 length = 10 palcontrast = 256,256,256 timegap = 1 framegap = 3 trans = add [State 101, VelSet] type = VelSet trigger1 = Animelem = 1 trigger2 = Animelem = 8 trigger3 = Animelem = 13 trigger4 = Animelem = 25 x = 7 [State 3000, 1] type = PlaySnd trigger1 = AnimElem = 1 trigger2 = AnimElem = 6 trigger3 = AnimElem = 11 trigger4 = AnimElem = 15 trigger5 = AnimElem = 20 trigger6 = AnimElem = 24 trigger7 = AnimElem = 29 trigger8 = AnimElem = 34 trigger9 = AnimElem = 39 trigger10 = AnimElem = 43 trigger11 = AnimElem = 48 value = 101, 0 [State 3000, 5] type = HitDef trigger1 = AnimElem = 1 trigger2 = AnimElem = 6 trigger3 = AnimElem = 11 trigger4 = AnimElem = 15 trigger5 = AnimElem = 20 attr = S, HA animtype = High damage = 15,4 getpower = 0 priority = 6 guardflag = MA pausetime = 0,15 sparkxy = -17,-24 hitsound = S101, 4 guardsound = 6,0 ground.type = Low ground.slidetime = 30 ground.hittime = 30 ground.velocity = -8 air.velocity = -3,-5 air.fall = 1 fall.animtype = Hard fall.recover = 0 [State 3000, 5] type = HitDef trigger1 = AnimElem = 25 trigger2 = AnimElem = 27 trigger3 = AnimElem = 29 trigger4 = AnimElem = 31 trigger5 = AnimElem = 33 trigger6 = AnimElem = 35 trigger7 = AnimElem = 37 trigger8 = AnimElem = 39 trigger9 = AnimElem = 41 trigger10 = AnimElem = 43 attr = S, HA animtype = Hard damage = 15,4 getpower = 0 priority = 6 guardflag = MA pausetime = 0,15 sparkxy = -17,-24 hitsound = S101, 4 guardsound = 6,0 ground.type = High ground.slidetime = 30 ground.hittime = 30 ground.velocity = 0 air.velocity = -3,-5 air.fall = 1 fall.animtype = Hard fall.recover = 0 [State 3000, 7] type = ChangeState trigger1 = AnimTime = 0 value = 3002 ;--------------------------------------------------------------------------- ; Saber Fury Part 2 [Statedef 3002] type = S movetype= A physics = S juggle = 4 velset = 0,0 anim = 6000 ctrl = 0 sprpriority = 2 [State 101, AfterImage] type = AfterImage trigger1 = time = 0 time = 50 length = 10 palcontrast = 256,256,256 timegap = 1 framegap = 3 trans = add [State 3000, 1] type = PlaySnd trigger1 = AnimElem = 1 trigger2 = AnimElem = 6 trigger3 = AnimElem = 11 trigger4 = AnimElem = 15 trigger5 = AnimElem = 20 trigger6 = AnimElem = 24 trigger7 = AnimElem = 29 trigger8 = AnimElem = 34 trigger9 = AnimElem = 39 trigger10 = AnimElem = 43 trigger11 = AnimElem = 48 value = 101, 0 [State 3000, 5] type = HitDef trigger1 = AnimElem = 1 trigger2 = AnimElem = 6 trigger3 = AnimElem = 11 trigger4 = AnimElem = 15 trigger5 = AnimElem = 20 trigger6 = AnimElem = 24 trigger7 = AnimElem = 29 trigger8 = AnimElem = 34 trigger9 = AnimElem = 39 trigger10 = AnimElem = 43 trigger11 = AnimElem = 48 attr = S, HA animtype = Hard damage = 10,4 getpower = 0 priority = 6 guardflag = MA pausetime = 0,15 sparkxy = -17,-24 hitsound = 0,0 guardsound = 6,0 ground.type = Low ground.slidetime = 30 ground.hittime = 30 ground.velocity = 0 air.velocity = -3,-2.8 air.fall = 1 fall.animtype = Hard fall.recover = 0 [State 200, 1] type = PlaySnd trigger1 = movehit = 1 value = 101, 4 [State 3000, 7] type = ChangeState trigger1 = AnimTime = 0 value = 1050 ;--------------------------------------------------------------------------- ; Standing Charged Buster ; CNS difficulty: easy [Statedef 3020] type = S movetype= A physics = S juggle = 5 poweradd= 65 ctrl = 0 velset = 0,0 anim = 240 sprpriority = 2 [State 3010, Super A] type = SuperPause trigger1 = AnimElem = 1 pos = 0, -22 anim = S7011 sound = 20, 0 poweradd = -1000 [State 3010, Super C] type = AfterImageTime trigger1 = AnimElemTime(1) >= 1 && Time < 60 time = 2 [State 240, 1] type = PlaySnd trigger1 = time = 5 value = 101, 11 [State 6008, Bullet] type = Projectile trigger1 = time = 1 projanim = 7001 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 20,-22 velocity = 9 attr = S, SP damage = 60 animtype = hard guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 [State 240, 4] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Air Charged Buster ; CNS difficulty: easy [Statedef 3021] type = A movetype= A physics = A juggle = 5 ctrl = 0 velset = 0,0 anim = 640 sprpriority = 2 [State 3010, Super A] type = SuperPause trigger1 = AnimElem = 1 pos = 0, -22 anim = S7011 sound = 20, 0 poweradd = -1000 [State 3010, Super C] type = AfterImageTime trigger1 = AnimElemTime(1) >= 1 && Time < 60 time = 2 [State 240, 1] type = PlaySnd trigger1 = time = 5 value = 101, 11 [State 6008, Bullet] type = Projectile trigger1 = time = 1 projanim = 7001 projhitanim = 242 projpriority = 1 projheightbound = -240, 100 projedgebound = 100 projscreenbound = 100 projshadow = -1 offset = 20,-28 velocity = 9 attr = S, SP damage = 60 animtype = hard guardflag = MA hitflag = MAFDP pausetime = 10,10 hitsound = 5,2 sparkxy = 5,-2 guardsound = S6,0 ground.type = Low ground.slidetime = 25 ground.hittime = 25 ground.velocity = -6 [State 640, 3] type = CtrlSet trigger1 = Time = 12 value = 1 ;--------------------------------------------------------------------------- ; Charged Saber ; CNS difficulty: easy [Statedef 3022] type = S ;State-type: S-stand, C-crouch, A-air, L-liedown movetype= A ;Move-type: A-attack, I-idle, H-gethit physics = S ;Physics: S-stand, C-crouch, A-air juggle = 1 ;Number of air juggle points move takes ;Commonly-used controllers: velset = 0,0 ;Set velocity (x,y) (Def: no change) ctrl = 0 ;Set ctrl (Def: no change) anim = 7018 ;Change animation (Def: no change) poweradd = 20 ;Power to add (Def: 0) sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) [State 3010, Super A] type = SuperPause trigger1 = AnimElem = 1 pos = 0, -22 anim = S7011 sound = 20, 0 poweradd = -1000 [State 3010, Super C] type = AfterImageTime trigger1 = AnimElemTime(1) >= 1 && Time < 60 time = 2 [State 3010, Explod] type = Explod trigger1 = animelem = 2 anim = F60 pos = 29,0 postype = p1 ;p2,front,back,left,right bindtime = 1 removetime = -2 scale = 1,1 sprpriority = 2 ontop = 0 removeongethit = 0 ;ignorehitpause = ;persistent = [State 200, 1] type = HitDef trigger1 = time = 0 attr = S, NA ;Attribute: Standing, Normal Attack damage = 140, 0 ;Damage that move inflicts, guard damage animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) guardflag = MA ;Flags on how move is to be guarded against hitflag = MAF ;Flags of conditions that move can hit priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default ;Hit/Miss/Dodge type (Def: Hit) pausetime = 8, 8 ;Time attacker pauses, time opponent shakes sparkno = 0 ;Spark anim no (Def: set above) sparkxy = -17, -24 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = S101, 4 ;Sound to play on hit guardsound = 6, 0 ;Sound to play on guard ground.type = High ;Type: High, Low, Trip (def: Normal) ground.slidetime = 5 ;Time that the opponent slides back ground.hittime = 10 ;Time opponent is in hit state ground.velocity = -4, -5 ;Velocity at which opponent is pushed airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) air.type = High ;Type: High, Low, Trip (def: same as ground.type) air.velocity = -4,-5 ;X-velocity at which opponent is pushed, ;Y-velocity at which opponent is pushed air.hittime = 12 ;Time before opponent regains control in air fall = 1 [State 200, EnvShake] type = EnvShake trigger1 = animelem = 3 time = 5 freq = 180 ampl = -4 ;phase = 90 ;ignorehitpause = ;persistent = [State 200, 1] type = PlaySnd trigger1 = animelem = 3 value = 101, 12 [State 200, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; Override common states (use same number to override) : ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; States that are always executed (use statedef -2) ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; States that are executed when in self's state file (use statedef -3) ;--------------------------------------------------------------------------- [Statedef -3] ;This controller plays a sound everytime KFM lands from a jump, or ;from his back-dash. [State -3, Landing Sound] type = PlaySnd triggerall = Time = 1 trigger1 = stateno = 52 ;Jump land trigger2 = stateno = 106 ;Run-back land value = 40, 0