; Giran de dragonball [Data] life = 1100 power = 2000 attack = 1 defence = 100 fall.defence_up = 50 liedown.time = 60 airjuggle = 15 sparkno = 2 guard.sparkno = 40 KO.echo = 1 volume = 1 ;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.2 ;Horizontal scaling factor. yscale = 1.2 ;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.2 ;Walk backward run.fwd = 8.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 [Quotes] victory1 = "HEHEHEH! Who's ass should I fuck next?" victory2 = "Hey! Don't feel down. Look at it this way. I made sure that your first time with me was memorable" victory3 = "So many opponents to fight and fuck, the only downside is that my opponents never last long after one round with me!" victory4 = "Next time train your insides with an gigantic dildo before facing me again!" victory5 = "Damn! Your ass was a good fuck! Expect to see me more often outside the tournament!" victory6 = "HAHAHAH! That's the problem with handsome heroes like you! They can throw punches but just can't handle a hard fuck!" victory7 = "Male or female. No difference to me. I'll fight, fuck and fill them either way" victory8 = "Just like my merry-go-round gum, the amount of thick cum that I release is endless!" victory9 = "Heheheh! Consider my big load inside your inflated belly something to remember me by!" victory10 = "HAHAHAHA! You'll gonna be pushing my thick cum out of your ass for a long time after that pounding!" ;--------------------------------------------------------------------------- ; 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). ;--------------------------------------------------------------------------- ; RUN_BACK2 (land) [Statedef 106] type = S physics = S ctrl = 0 anim = 47 [State 106, 1] type = VelSet trigger1 = Time = 0 y = 0 [State 106, 2] type = PosSet trigger1 = Time = 0 y = 0 [State 106, sound1] type = PlaySnd trigger1 = Time = 1 value = 800, 1 [State 106, 3] type = MakeDust trigger1 = Time = 2 pos = -5,-2 spacing = 1 [State 1027, Spark] type = Explod trigger1 = Time = 0 anim = F61 pos = -10, 0 sprpriority = -1 [State 106, 4] type = ChangeState trigger1 = Time = 7 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Lose by Time Over ; CNS difficulty: basic [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 [Statedef 180] type = S [State 180, 1] type = ChangeAnim trigger1 = time > 1 ;let enemy start defeat anim before approaching, if they have one trigger1 = !anim trigger1 = MatchOver = 1 value = 20 [State 180, 1] type = ChangeAnim trigger1 = time > 1 ;let enemy start defeat anim before approaching, if they have one trigger1 = !anim trigger1 = MatchOver = 1 value = 21 [State 180, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 [State 180, 1] type = VarRandom trigger1 = Time = 0 trigger1 = MatchOver = 0 v = 1 range = 0,400 [State 180, 2] type = ChangeState trigger1 = MatchOver = 0 trigger1 = Var(1) = [0,100] value = 181 [State 180, 3] type = ChangeState trigger1 = MatchOver = 0 trigger1 = Var(1) = [101,300] value = 182 [State 180, 3] type = ChangeState trigger1 = MatchOver = 0 trigger1 = Var(1) = [301,400] value = 183 [State 180, 1] type = ChangeState triggerall = time triggerall = anim = 20 trigger1 = (enemynear, pos x - pos x)*facing < 80*const(size.xscale) value = 184;182 [State 180, 1] type = ChangeState triggerall = time triggerall = anim = 21 trigger1 = (enemynear, pos x - pos x)*facing < -80*const(size.xscale) value = 184;182 [State 180, 1] type = PosAdd trigger1 = anim = 20 x = const(velocity.walk.fwd.x) [State 180, 1] type = PosAdd trigger1 = anim = 21 x = const(velocity.walk.back.x) ;--------------------------------------------------------------------------- ; Win pose 1 - Bow ; CNS difficulty: basic [Statedef 181] type = S ctrl = 0 anim = 181 velset = 0,0 [State 181, sound1] type = PlaySnd trigger1 = Time = 5 value = 9, 2 [State 181, Shake Screen] type = EnvShake trigger1 = AnimElem = 2 time = 260 ;Time to shake screen ampl = 4 ;Amount to shake freq = 130 [State 181, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;--------------------------------------------------------------------------- ; Win pose 2 - V ; CNS difficulty: basic [Statedef 182] type = S ctrl = 0 anim = 182 velset = 0,0 [State 181, sound1] type = PlaySnd trigger1 = Time = 5 value = 180, 0 [State 181, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;--------------------------------------------------------------------------- ; Win pose 3 - Back ; CNS difficulty: basic [Statedef 183] type = S ctrl = 0 anim = 183 velset = 0,0 [State 183, sound1] type = PlaySnd trigger1 = Time = 1 value = 181, 0 [State 183, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;---------------------------------------------------------------- [Statedef 184] type = S ctrl = 0 anim = 184 velset = 0,0 [State 184, 2] type = AssertSpecial trigger1 = time < 550 flag = RoundNotOver ;---????????? [State 182, 1] type = explod trigger1 = AnimElem = 3 anim = 185 ID = 184 postype = p1 pos = 0, 0 velocity = 0,0 sprpriority = 4 removetime = 600 [State 182, 2] type = explod trigger1 = AnimElem = 21 anim = 186 ID = 184 postype = p1 pos = 0, 0 velocity = 0,0 sprpriority = -3 removetime = 600 [State 182, 3] type = PlaySnd trigger1 = AnimElem = 3 ||AnimElem = 7 || AnimElem = 11 || AnimElem = 15 value = 3652, 0 [State 182, 3] type = PlaySnd trigger1 = AnimElem = 20 value = 900, 7 [State 184, 1] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;---------------------------------------------------------------- ;Introductions [Statedef 190] type = S [State 190, 1] type = VarRandom trigger1 = Time = 0 v = 1 range = 0,100 [State 190, 2] type = ChangeState trigger1 = Var(1) = [0,50] value = 191 [State 190, 3] type = ChangeState trigger1 = Var(1) = [51,100] value = 192 ;--------------------------------------------------------------------------- ; Introduction ; CNS difficulty: basic [Statedef 191] type = S ctrl = 0 anim = 190 velset = 0,0 [State 191, 1] ;Freeze animation until PreIntro is over type = ChangeAnim trigger1 = RoundState = 0 value = 190 [State 191, Snd 1] type = PlaySnd trigger1 = AnimElem = 3 value = 9,2 channel = 0 [State 191, Shake Screen] type = EnvShake trigger1 = AnimElem = 3 time = 260 ;Time to shake screen ampl = 4 ;Amount to shake freq = 130 ;A frequency of 180 shakes the screen rapidly [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 ;-------------------------------------------------------------------------- [Statedef 192] type = S ctrl = 0 anim = 191 velset = 0,0 [State 192,Vs.Special] type = AssertSpecial trigger1 = 1 flag = Intro flag2 = nobardisplay [State 192, Coat 1] type = Explod trigger1 = AnimElem = 6 persistent = 0 anim = 192 postype = p1 pos = 0, 0 velocity = -4.2, -3 accel = 0, .32 removetime = 48 [State 192, Snd 1] type = PlaySnd trigger1 = AnimElem = 8 value = 900,5 channel = 0 [State 192, Snd 1] type = PlaySnd trigger1 = AnimElem = 62 value = 900,4 channel = 0 [State 192, 2] type = ChangeState trigger1 = AnimTime = 0 value = 0 ;--------------------------------------------------------------------------- ; 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 ;--------------------------------------------------------------------------- ; Stand Light Punch ; 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 = AnimElem = 3 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 = 2, 5 ;Time attacker pauses, time opponent shakes sparkno = 1 ;Spark anim no (Def: set above) sparkxy = -10, -66 ;X-offset for the "hit spark" rel. to p2, ;Y-offset for the spark rel. to p1 hitsound = 5, 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 [State 200, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 0 [State 200, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing strong punch [Statedef 210] type = S movetype= A physics = S juggle = 4 poweradd= 65 ctrl = 0 velset = 0,0 anim = 210 sprpriority = 2 [State 210, 1] type = PlaySnd trigger1 = Time = 2 value = 0, 4 [State 210, 2] type = HitDef trigger1 = AnimElem = 5 attr = S, NA animtype = Medium damage = 57 guardflag = MA pausetime = 7,7 sparkno = 2 sparkxy = -10,-50 hitsound = 5,2 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 light kick ; 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 = 6,6 sparkno = 1 sparkxy = -10,-17 hitsound = 5,1 guardsound = 6,0 ground.type = Low ground.slidetime = 10 ground.hittime = 11 ground.velocity = -5 air.velocity = -2.5,-3.5 [State 230, 3] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Standing strong kick ; 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 = 2 value = 0, 1 [State 240, 2] type = HitDef trigger1 = Animelem = 5 attr = S, NA animtype = Medium damage = 63 guardflag = MA pausetime = 10,10 sparkno = 3 sparkxy = -10,-20 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 12 ground.hittime = 15 ground.velocity = -6 air.velocity = -2.2,-3.2 fall = 1 [State 240, 4] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Crouching light punch ; CNS difficulty: easy ; Description: Simple crouching attack. The HitDef's guardflag parameter ; is set to "L", meaning that the move can only be guarded low ; (crouching), and not by standing or jumping opponents. ; Like for all light attacks, it's a good idea to keep the slidetime ; and hittime parameters at a smaller number, so the opponent isn't ; stunned for too long. For all crouching attacks you have to ; remember to set the attr parameter to indicate that it is crouching ; attack. In this case, "C, NA" stands for "crouching, normal attack". ; The HitDef's priority is set at 3, instead of the default of 4, ; so this attack has a lower priority than most others, meaning ; KFM will get hit instead of trading hits with his opponent if ; their attack collision boxes (Clsn1) intersect each other's Clsn2 ; boxes at the same time. [Statedef 400] type = C movetype= A physics = C juggle = 5 poweradd= 15 ctrl = 0 anim = 400 sprpriority = 2 [State 400, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 0 [State 400, 2] type = HitDef trigger1 = Time = 0 attr = C, NA damage = 23 priority = 3 animtype = Light hitflag = MAF guardflag = L pausetime = 10,11 sparkno = 0 sparkxy = -10,-42 hitsound = 5,0 guardsound = 6,0 ground.type = Low ground.slidetime = 4 ground.hittime = 10 ground.velocity = -4 air.velocity = -1.5,-3 [State 400, 3] type = CtrlSet trigger1 = Time = 5 value = 1 [State 400, 4] type = ChangeState trigger1 = AnimTime = 0 value = 11 ;--------------------------------------------------------------------------- ;Crouching strong punch ; CNS difficulty: easy ; Description: This is a 2-hit move. It is done by having two HitDefs ; triggered, one for each frame of animation that hits. ; Notice how the first hit cannot be guarded by an opponent in the ; air, because of the "M" in the guardflag, meaning it can only ; be guarded "middle". The second hit has an "MA" guardflag, so ; it can be guarded both on the ground and in the air. [Statedef 410] type = C movetype= A physics = C juggle = 6 poweradd= 50 ctrl = 0 anim = 410 sprpriority = 2 [State 410, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 0 ;This is the first hit, triggered on the 3rd element of animation. [State 410, 2] type = HitDef trigger1 = AnimElem = 3 attr = C, NA damage = 37 animtype = Medium hitflag = MAF guardflag = M pausetime = 5,5 sparkno = 1 sparkxy = -10,-55 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 12 ground.hittime = 15 ground.velocity = -4 air.velocity = -3,-4 ;This is the second hit, triggered on the 4th element of animation. [State 410, 3] type = HitDef trigger1 = AnimElem = 4 attr = C, NA damage = 36 animtype = Medium hitflag = MAF guardflag = MA pausetime = 6,6 sparkno = 2 sparkxy = -5,-100 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 15 ground.hittime = 18 ground.velocity = -1,-9.5 guard.velocity = -6 air.velocity = -1,-7.5 airguard.velocity = -4,-4.5 p2facing = 1 fall = 1 ;Make p2 fall down fall.recovertime = 40 ;40 ticks before p2 can recover from fall yaccel = .4 [State 410, 4] type = ChangeState trigger1 = AnimTime = 0 value = 11 ctrl = 1 ;--------------------------------------------------------------------------- ;Crouching light kick ; CNS difficulty: easy [Statedef 430] type = C movetype= A physics = C juggle = 5 poweradd= 22 ctrl = 0 anim = 430 sprpriority = 2 [State 430, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 0 [State 430, 2] type = HitDef trigger1 = Time = 0 attr = C, NA damage = 28 animtype = Light hitflag = MAFD guardflag = L pausetime = 12,12 sparkno = 0 sparkxy = -10,-8 hitsound = 5,1 guardsound = 6,0 ground.type = Low ground.slidetime = 6 ground.hittime = 10 ground.velocity = -5 air.velocity = -2,-3 down.velocity = -5,0 down.hittime = 20 [State 430, 3] type = ChangeState trigger1 = AnimTime = 0 value = 11 ctrl = 1 ;--------------------------------------------------------------------------- ;Crouch Strong Kick ; CNS difficulty: easy ; Description: This move uses "Trip" for the "ground.type" parameter in ; its HitDef. It's a special type that puts the opponent in a tripped ; animation as he falls. Also, the hitflag parameter in the HitDef ; is set to "MAFD". The "D" indicates that a downed opponent can be ; hit by the attack. [Statedef 440] type = C movetype= A physics = C juggle = 7 poweradd= 70 ctrl = 0 anim = 440 sprpriority = 2 [State 440, 2] type = PlaySnd trigger1 = Time = 2 value = 0, 2 [State 440, 3] type = HitDef trigger1 = Time = 0 attr = C, NA damage = 72 hitflag = MAFD guardflag = L pausetime = 12,12 sparkno = 3 sparkxy = -5,-50 hitsound = 5,2 guardsound = 6,0 ground.type = Trip ground.slidetime = 10 ground.hittime = 15 ground.velocity = -5,-2 air.velocity = -2,-3 guard.velocity = -5 [State 440, 4] type = ChangeState trigger1 = AnimTime = 0 value = 11 ctrl = 1 ;--------------------------------------------------------------------------- ;Jump Light Punch ; 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 = 0, 0 [State 600, 2] type = HitDef trigger1 = Time = 0 attr = A, NA damage = 20 guardflag = HA priority = 3 pausetime = 7,8 sparkno = 2 sparkxy = -10,-8 hitsound = 5,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 ;--------------------------------------------------------------------------- ;Jump Strong Punch ; 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 = 2 value = 0, 1 [State 610, 3] type = HitDef trigger1 = Animelem = 5 attr = A, NA damage = 72 guardflag = HA priority = 4 pausetime = 12,12 sparkno = 3 sparkxy = -10,-15 hitsound = 5,3 guardsound = 6,0 animtype = Med ground.type = High ground.slidetime = 17 ground.hittime = 17 ground.velocity = -5 air.velocity = -3,-4 ;--------------------------------------------------------------------------- ;Jump Light Kick ; 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 = Animelem = 3 attr = A, NA damage = 26 guardflag = HA priority = 3 pausetime = 8,8 sparkno = 2 sparkxy = -5,-5 hitsound = 5,0 guardsound = 6,0 ground.type = High ground.slidetime = 6 ground.hittime = 6 ground.velocity = -4 air.velocity = -2,-3 ;--------------------------------------------------------------------------- ;Jump Strong Kick ; CNS difficulty: easy [Statedef 640] type = A movetype= A physics = A juggle = 4 poweradd= 65 ctrl = 0 anim = 640 sprpriority = 2 [State 640, 2] type = PlaySnd trigger1 = Time = 2 value = 0, 1 [State 640, 3] type = HitDef trigger1 = Animelem = 3 attr = A, NA damage = 70 guardflag = HA priority = 4 pausetime = 6,6 sparkno = 3 sparkxy = -5,-5 hitsound = 5,3 guardsound = 6,0 animtype = Med ground.type = High ground.slidetime = 15 ground.hittime = 15 ground.velocity = -5 air.velocity = -3,-4 ;--------------------------------------------------------------------------- ;Kung Fu 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 800, 2] type = ChangeState Trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ;Kung Fu 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 = 1, 1 [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(12) < 0 edge = 60,0 [State 810, Bind 2-4] type = TargetBind trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(5) < 0 pos = 58, 0 [State 810, Bind 5] type = TargetBind trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 pos = 47, 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, holdfwd - Turn Target 6] ;If was holding fwd before, turn target too type = TargetFacing trigger1 = var(2) trigger1 = AnimElem = 6 value = -1 [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 by Kung Fu Throw ; (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 by Kung Fu Throw - thrown into the 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 = .4 [State 821, 2] ; Recover near ground (use ChangeState) type = ChangeState triggerall = Vel Y > 0 triggerall = Pos Y >= -20 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 ;--------------------------------------------------------------------------- ; Kung Fu Palm ; CNS difficulty: medium ; Description: This is like a standard attack, but with some differences. ; There are two HitDefs in this attack. One is triggered when the ; opponent is near (using a p2bodydist trigger), and the other ; when the opponent is farther away. The main differences between ; the near and far versions of the HitDefs is that the near version ; has a "fall" parameter set to 1, causing the opponent to be knocked ; down. Other minor differences are the damage, and the velocity to ; give the opponent. ; The line "attr = S, SA" line means this is a Standing, Special Attack. ; It is important you have the attr parameter set correctly for all ; you HitDefs. [Statedef 1000] type = S movetype= A physics = S juggle = 4 poweradd= 110 velset = 0,0 anim = 1000 ctrl = 0 sprpriority = 2 [State 1000, 1] type = PlaySnd trigger1 = Time = 8 value = 0, 3 [State 1000, 2] type = PosAdd trigger1 = AnimElem = 2 x = 20 [State 1000, 3] type = PosAdd trigger1 = AnimElem = 3 trigger2 = AnimElem = 13 x = 10 [State 1000, 4] type = PosAdd trigger1 = AnimElem = 5 x = 5 [State 1000, 5] ;Opponent near type = HitDef trigger1 = AnimElem = 5 trigger1 = p2bodydist X < 40 attr = S, SA animtype = Hard damage = 90, 4 priority = 5 guardflag = MA pausetime = 15,15 sparkxy = -10,-60 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 12 ground.hittime = 15 ground.velocity = -4,-3.5 air.velocity = -4,-3 fall = 1 [State 1000, 6] ;Opponent not near type = HitDef trigger1 = AnimElem = 5 trigger1 = p2bodydist X >= 40 attr = S, SA animtype = Hard damage = 85, 4 priority = 4 guardflag = MA pausetime = 15,15 sparkxy = -10,-60 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 12 ground.hittime = 15 ground.velocity = -7 air.velocity = -4,-2.5 [State 1000, 6] type = PosAdd trigger1 = AnimElem = 9 x = -5 [State 1000, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Strong Kung Fu Palm ; CNS difficulty: medium [Statedef 1010] type = S movetype= A physics = S juggle = 4 poweradd= 120 velset = 0,0 anim = 1000 ctrl = 0 sprpriority = 2 [State 1010, 1] type = PlaySnd trigger1 = Time = 9 value = 0, 3 [State 1010, 2] type = PosAdd trigger1 = AnimElem = 2 x = 20 [State 1010, 3] type = PosAdd trigger1 = AnimElem = 3 trigger2 = AnimElem = 13 x = 10 [State 1010, 4] type = PosAdd trigger1 = AnimElem = 5 x = 5 [State 1010, 5] type = VelSet trigger1 = AnimElem = 5 x = 4 [State 1010, 6] ;Opponent near type = HitDef trigger1 = AnimElem = 5 trigger1 = p2bodydist X < 40 attr = S, SA animtype = Hard damage = 90, 4 priority = 5 guardflag = MA pausetime = 15,15 sparkxy = -10,-60 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 12 ground.hittime = 15 ground.velocity = -4,-3.5 air.velocity = -4,-3 fall = 1 [State 1010, 7] ;Opponent not near type = HitDef trigger1 = AnimElem = 5 trigger1 = p2bodydist X >= 40 attr = S, SA animtype = Hard damage = 85, 4 priority = 4 guardflag = MA pausetime = 15,15 sparkxy = -10,-60 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 12 ground.hittime = 15 ground.velocity = -7 air.velocity = -4,-2.5 [State 1010, 8] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Fast Kung Fu Palm ; CNS difficulty: advanced ; Description: This is a complicated attack move. If you're a beginner, ; you should skip looking at this for now and check it later when ; you are more comfortable with the cns. ; This move puts the other player in a custom get-hit state. ; The line "p2stateno = 1025" in the HitDef does this. KFM has some ; palette effects as well as after-image effects. [Statedef 1020] type = S movetype= A physics = N juggle = 6 poweradd= -330 velset = 0,0 anim = 1020 ctrl = 0 sprpriority = 2 [State 1020, Friction] type = VelMul trigger1 = 1 x = .85 * ifelse (AnimElemTime(6) < 0, 1, .8) [State 1020, Afterimage] type = AfterImage trigger1 = Time = 0 length = 13 PalBright = 30, 30, 0 PalContrast = 70, 70, 20 PalAdd = -10,-10,-10 PalMul = .85,.85,.50 TimeGap = 1 FrameGap = 2 Trans = Add time = 2 [State 1020, Afterimage] type = AfterImageTime trigger1 = AnimElemTime(8) < 0 time = 2 [State 1020, Blink Yellow] type = PalFX trigger1 = Time = 0 time = 20 add = 32,16,0 sinadd = 64,32,5,3 [State 1020, 1] type = PlaySnd trigger1 = Time = 2 value = 0, 3 [State 1020, 2] type = PosAdd trigger1 = AnimElem = 2 x = 20 [State 1020, 3] type = PosAdd trigger1 = AnimElem = 3 trigger2 = AnimElem = 12 x = 10 [State 1020, 4] type = PosAdd trigger1 = AnimElem = 4 x = 5 [State 1020, 5] type = VelSet trigger1 = AnimElem = 4 x = 13 [State 1020, 6] type = HitDef trigger1 = AnimElem = 4 attr = S, SA animtype = Hard damage = 95, 5 getpower = 0 priority = 4 guardflag = MA pausetime = 8,7 sparkxy = -10,-60 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 20 ground.hittime = 20 ground.velocity = -8,-7 guard.velocity = -7 air.velocity = -8,-7 airguard.velocity = -5, -4 fall = 1 p2stateno = 1025 ;Make p2 go to state 1025 on hit p2facing = 1 ;Force to face p1 [State 1020, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;------------------ ; Hit by Fast Kung Fu Palm - shaking from the hit ; (a custom gethit state) ; See State 1020 for details [Statedef 1025] type = A movetype= H physics = N velset = 0,0 [State 1025, Anim] ;Custom animation type = ChangeAnim2 trigger1 = 1 value = 1025 [State 1025, State] type = ChangeState trigger1 = HitShakeOver = 1 value = 1026 ;------------------ ; Hit by Fast Kung Fu Palm - flying through the air ; (a custom gethit state) [Statedef 1026] type = A movetype= H physics = N [State 1026, Velocity] type = HitVelSet trigger1 = Time = 0 x = 1 y = 1 [State 1026, Gravity] type = VelAdd trigger1 = 1 y = .45 [State 1026, No scroll] type = ScreenBound triggerall = Pos y < -15 trigger1 = BackEdgeBodyDist < 65 trigger2 = FrontEdgeBodyDist < 65 value = 1 movecamera = 0,1 [State 1026, Hit wall] type = ChangeState triggerall = Pos y < -15 trigger1 = BackEdgeBodyDist <= 20 trigger2 = FrontEdgeBodyDist <= 20 value = 1027 [State 1026, Hit ground] type = SelfState trigger1 = (Vel y > 0) && (Pos y >= 0) value = 5100 ;------------------ ; Hit by Fast Kung Fu Palm - hit wall ; (a custom gethit state) [Statedef 1027] type = A movetype= H physics = N [State 1027, Turn] type = Turn trigger1 = (Time = 0) && (FrontEdgeBodyDist <= 30) [State 1027, Pos] type = PosAdd trigger1 = Time = 0 x = 15 - BackEdgeBodyDist [State 1027, Stop moving] type = PosFreeze trigger1 = 1 x = 1 y = 1 [State 1027, No scroll] type = ScreenBound trigger1 = 1 value = 1 movecamera = 0,1 [State 1027, Spark] type = Explod trigger1 = Time = 0 anim = F72 pos = 0, floor (screenpos y) - 50 postype = back sprpriority = 3 [State 1027, Anim] type = ChangeAnim2 trigger1 = Time = 0 value = 1027 [State 1027, Sound] type = PlaySnd trigger1 = Time = 0 value = F7,0 [State 1027, State] type = ChangeState trigger1 = AnimTime = 0 value = 1028 ;------------------ ; Hit by Fast Kung Fu Palm - bounce off wall ; (a custom gethit state) [Statedef 1028] type = A movetype= H physics = N [State 1028, 1] type = NotHitBy trigger1 = 1 value = , NA, NP [State 1028, Vel Y] type = VelSet trigger1 = Time = 0 y = -6 [State 1028, Vel X] type = VelSet trigger1 = Time = 0 x = 1.6 [State 1028, Turn] type = Turn trigger1 = (Time = 0) && (BackEdgeDist < 30) [State 1028, Gravity] type = VelAdd trigger1 = 1 y = .35 [State 1028, Anim 5050] ;Self falling animation type = ChangeAnim trigger1 = Time = 0 trigger1 = !SelfAnimExist(5052) value = 5050 [State 1028, Anim 5052] ;Self falling animation (diagup type) type = ChangeAnim trigger1 = Time = 0 trigger1 = SelfAnimExist(5052) value = 5052 [State 1028, Anim 5060] ;Coming down - normal type = ChangeAnim trigger1 = Vel Y > -2 trigger1 = Anim = 5050 trigger1 = SelfAnimExist(5060) persistent = 0 value = 5060 [State 1028, Anim 5062] ;Coming down - diagup type type = ChangeAnim trigger1 = Vel Y > -2 trigger1 = Anim = 5052 trigger1 = SelfAnimExist(5062) persistent = 0 value = 5062 [State 1028, Hit ground] type = SelfState trigger1 = (Vel y > 0) && (Pos y >= 0) value = 5100 ;--------------------------------------------------------------------------- ; Kung Fu Knee ; 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 1050, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 2 [State 1050, 2] type = null;PosAdd trigger1 = AnimElem = 2 x = 15 [State 1050, 3] type = PosAdd trigger1 = AnimElem = 4 x = 20 [State 1050, 4] type = HitDef trigger1 = Time = 0 attr = A, SA animtype = Medium damage = 80, 4 priority = 5 guardflag = MA pausetime = 12,12 sparkxy = -10,-70 hitsound = 5,3 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 ;------------------ ; Light Kung Fu Knee - jump ; 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,-6 anim = 1051 hitdefpersist = 1 ;Keep the HitDef from previous state active [State 1051, 1] ;Gravity type = VelAdd trigger1 = 1 y = .45 [State 1051, 2] type = ChangeState trigger1 = Command = "a" || Command = "b" trigger1 = Vel y < -1 value = 1055 [State 1051, 3] ;Change state when KFM is close to ground type = ChangeState trigger1 = Vel Y > 0 && Pos Y >= -10 value = 1052 ;------------------ ; Light Kung Fu Knee - 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 = 1052 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 ;------------------ ; Kung Fu Knee - kick [Statedef 1055] type = A movetype= A physics = N anim = 1055 [State 1055, 1] type = PlaySnd trigger1 = Time = 0 value = 100,0 channel = 0 [State 1055, 2] type = PlaySnd trigger1 = Time = 0 value = 0, 1 [State 1055, 3] type = PosAdd trigger1 = Time = 0 x = 10 y = -10 [State 1055, 4] ;Gravity type = VelAdd trigger1 = 1 y = .45 [State 1055, 5] type = HitDef trigger1 = Time = 0 attr = A, SA animtype = Med damage = 35 + (prevstateno = 1061)*5, 2 priority = 4 guardflag = MA pausetime = 12,12 sparkxy = 0,-90 hitsound = 5,2 guardsound = 6,0 ground.type = High ground.slidetime = 15 ground.hittime = 16 ground.velocity = -6 guard.velocity = -8 guard.ctrltime = 12 air.velocity = -4,-5 airguard.velocity = -4,-4.5 air.fall = 1 [State 1055, 6] ;Change state when KFM is close to ground type = ChangeState trigger1 = Vel Y > 0 && Pos Y >= -5 value = 1056 ;------------------ ; Kung Fu Knee - land from kick [Statedef 1056] type = S movetype= I physics = S anim = 1056 sprpriority = 1 velset = 0,0 [State 1056, 1] ;Reset y-position to ground level type = PosSet trigger1 = Time = 0 y = 0 [State 1056, 2] ;Play a sound for landing type = PlaySnd trigger1 = Time = 0 value = 40, 0 [State 1056, 3] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Strong Kung Fu Knee [Statedef 1060] type = S movetype= A physics = S juggle = 4 poweradd= 120 velset = 0,0 anim = 1050 ctrl = 0 sprpriority = 2 [State 1060, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 2 [State 1060, 2] type = PosAdd trigger1 = AnimElem = 2 x = 6 [State 1060, 3] type = PosAdd trigger1 = AnimElem = 4 x = 21 [State 1060, 4] type = HitDef trigger1 = Time = 0 attr = A, SA animtype = Medium damage = 90, 4 priority = 5 guardflag = MA pausetime = 12,12 sparkxy = -10,-70 hitsound = 5,3 guardsound = 6,0 ground.type = Low ground.slidetime = 20 ground.hittime = 20 ground.velocity = -3.5,-7.5 guard.velocity = -7 air.velocity = -3.5,-7.5 fall = 1 [State 1060, 5] type = ChangeState trigger1 = AnimTime = 0 value = 1061 ;------------------ ; Strong Kung Fu Knee - jump [Statedef 1061] type = A movetype= A physics = N velset = 2.5,-7.5 anim = 1051 hitdefpersist = 1 ;Keep the HitDef from previous state active [State 1061, 1] type = VelAdd trigger1 = 1 y = .45 [State 1061, 2] type = ChangeState trigger1 = Command = "a" || Command = "b" trigger1 = Vel y < -1 value = 1055 [State 1061, 3] type = ChangeState trigger1 = Vel Y > 0 && Pos Y >= -10 value = 1052 ;--------------------------------------------------------------------------- ; Fast Kung Fu Knee ; Description: This version of the Kung Fu Knee hits up to 3 times (including ; the kick). [Statedef 1070] type = S movetype= A physics = S juggle = 6 poweradd= -330 velset = 0,0 anim = 1050 ctrl = 0 sprpriority = 2 [State 1070, Afterimage] type = AfterImage trigger1 = Time = 0 length = 13 PalBright = 30, 30, 0 PalContrast = 70, 70, 20 PalAdd = -10,-10,-10 PalMul = .85,.85,.50 TimeGap = 1 FrameGap = 2 Trans = Add time = 2 [State 1070, Afterimage] type = AfterImageTime trigger1 = 1 time = 2 [State 1070, Blink Yellow] type = PalFX trigger1 = Time = 0 time = 20 add = 32,16,0 sinadd = 64,32,5,3 [State 1070, 1] type = PlaySnd trigger1 = Time = 1 value = 0, 2 [State 1070, 2] type = PosAdd trigger1 = AnimElem = 2 x = 6 [State 1070, 3] type = PosAdd trigger1 = AnimElem = 4 x = 21 [State 1070, 4] type = HitDef trigger1 = Time = 0 attr = S, SA animtype = Medium getpower = 0 damage = 35, 3 priority = 5 hitflag = MA guardflag = MA pausetime = 8,7 sparkxy = -10,-70 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 18 ground.hittime = 18 ground.velocity = -2,-6 guard.velocity = -7 air.velocity = -2,-6 fall = 1 fall.animtype = Med fall.recovertime = 30 [State 1070, 5] type = ChangeState trigger1 = AnimTime = 0 value = 1071 ;------------------ ; Fast Kung Fu Knee - jump [Statedef 1071] type = A movetype= A physics = N velset = 2.5,-9 anim = 1051 [State 1071, Blink Yellow] type = PalFX trigger1 = Time = 0 time = 18 add = 32,16,0 sinadd = 64,32,5,3 [State 1071, Afterimage] type = AfterImageTime trigger1 = Vel Y < 0 time = 2 [State 1071, 1] type = VelAdd trigger1 = 1 y = .5 [State 1071, 2] type = VelAdd trigger1 = Vel Y >= -1 y = .2 [State 1071, 3] type = HitDef trigger1 = Time = 0 attr = A, SA animtype = Medium getpower = 0 damage = 68, 4 priority = 5 guardflag = MA pausetime = 12,12 sparkxy = -10,-70 hitsound = 5,3 guardsound = 6,0 ground.type = Low ground.slidetime = 18 ground.hittime = 18 ground.velocity = -3,-9.5 guard.velocity = -7 air.velocity = -3,-9.5 fall = 1 fall.recovertime = 30 [State 1071, 4] type = ChangeState trigger1 = Command = "a" || Command = "b" trigger1 = Vel y < -1 trigger1 = Time > 0 value = 1075 [State 1071, 5] type = ChangeState trigger1 = Vel Y > 0 && Pos Y >= -10 value = 1052 ;------------------ ; Fast Kung Fu Knee - kick [Statedef 1075] type = A movetype= A physics = N anim = 1055 [State 1075, Afterimage] type = AfterImageTime trigger1 = 1 time = 2 [State 1075, Blink Yellow] type = PalFX trigger1 = Time = 0 time = 20 add = 32,16,0 sinadd = 64,32,5,3 [State 1075, 1] type = PlaySnd trigger1 = Time = 0 value = 100,0 channel = 0 [State 1075, 2] type = PlaySnd trigger1 = Time = 0 value = 0, 1 [State 1075, 3] type = PosAdd trigger1 = Time = 0 x = 10 y = -10 [State 1075, 4] ;Gravity type = VelAdd trigger1 = 1 y = .45 [State 1075, 5] type = VelAdd trigger1 = Vel Y >= -1 y = .2 [State 1075, 6] type = HitDef trigger1 = Time = 0 attr = A, SA animtype = Med damage = 42, 2 getpower = 0 priority = 4 guardflag = MA pausetime = 12,12 sparkxy = 0,-90 hitsound = 5,2 guardsound = 6,0 ground.type = High ground.slidetime = 15 ground.hittime = 18 ground.velocity = -6 guard.velocity = -6 air.velocity = -4,-6 airguard.velocity = -4,-4.5 air.fall = 1 [State 1075, 7] ;Change state when KFM is close to ground type = ChangeState trigger1 = Vel Y > 0 && Pos Y >= -5 value = 1056 ;--------------------------------------------------------------------------- ; Light Kung Fu Upper ; CNS difficulty: easy ; Description: This is a simple special attack that can hit twice. Notice ; the use of the Width controller to keep opponents from getting too ; close to KFM during his uppercut (press Ctrl-C, and look at the ; yellow bar at KFM's feet during the move). ; The second HitDef has some interesting parameters. fall.recovertime ; is used to prevent the opponent (p2) from recovering immediately ; after being hit (eg. press x+y with KFM to recover). This gives the ; attacking KFM a chance to follow up with an extra attack, such as ; a Kung Fu Knee. The yaccel parameter, set at 0.4, makes p2 fall at a ; greater value of acceleration than the default, which is 0.35. [Statedef 1100] type = S movetype= A physics = S juggle = 4 poweradd= 110 velset = 0,0 anim = 1100 ctrl = 0 sprpriority = 2 [State 1100, Width] type = Width trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(13) < 0 value = 5,0 [State 1100, 1] type = PlaySnd trigger1 = AnimElem = 4 value = 0, 2 [State 1100, 2] type = HitDef trigger1 = Time = 0 attr = S, SA animtype = Med damage = 52, 4 priority = 5 guardflag = MA pausetime = 4,8 sparkxy = 0,-48 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 15 ground.hittime = 18 ground.velocity = -3 guard.velocity = -6 air.velocity = -2,-2 airguard.velocity = -4,-4.5 p2facing = 1 forcestand = 1 ;Force p2 into a standing state if hit [State 1100, 3] type = HitDef trigger1 = AnimElem = 7 attr = S, SA animtype = Up damage = 55, 4 priority = 5 guardflag = MA pausetime = 12,12 sparkxy = 0,-110 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 15 ground.hittime = 18 ground.velocity = -1,-9.5 guard.velocity = -6 air.velocity = -1,-7.5 airguard.velocity = -4,-4.5 p2facing = 1 fall = 1 ;Make p2 fall down fall.recovertime = 40 ;40 ticks before p2 can recover from fall yaccel = .4 ;p2 will accelerate down at .4 pixels/sec^2 when falling [State 1100, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Strong Kung Fu Upper [Statedef 1110] type = S movetype= A physics = S juggle = 4 poweradd= 120 velset = 0,0 anim = 1100 ctrl = 0 sprpriority = 2 [State 1110, Width] type = Width trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0 value = 5,0 [State 1110, 1] type = PlaySnd trigger1 = AnimElem = 4 value = 0, 2 [State 1110, 2] type = HitDef trigger1 = Time = 0 attr = S, SA animtype = Med damage = 57, 4 priority = 5 guardflag = MA pausetime = 4,8 sparkxy = 0,-48 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 15 ground.hittime = 18 ground.velocity = -3 guard.velocity = -6 air.velocity = -2,-2 airguard.velocity = -4,-4.5 p2facing = 1 forcestand = 1 [State 1110, 3] type = HitDef trigger1 = AnimElem = 7 attr = S, SA animtype = Up damage = 60, 4 priority = 5 guardflag = MA pausetime = 12,12 sparkxy = 0,-110 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 15 ground.hittime = 18 ground.velocity = -1,-10.5 guard.velocity = -6 air.velocity = -1,-8.5 airguard.velocity = -4,-4.5 p2facing = 1 fall = 1 fall.recovertime = 50 yaccel = .4 [State 1110, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Fast Kung Fu Upper [Statedef 1120] type = S movetype= A physics = S juggle = 6 poweradd= -330 velset = 0,0 anim = 1100 ctrl = 0 sprpriority = 2 [State 1120, Width] type = Width trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0 value = 5,0 [State 1120, Afterimage] type = AfterImage trigger1 = Time = 0 length = 13 PalBright = 30, 30, 0 PalContrast = 70, 70, 20 PalAdd = -10,-10,-10 PalMul = .85,.85,.50 TimeGap = 1 FrameGap = 2 Trans = Add time = 2 [State 1120, Afterimage] type = AfterImageTime trigger1 = AnimTime < -2 time = 2 [State 1120, Blink Yellow] type = PalFX trigger1 = Time = 0 time = 20 add = 32,16,0 sinadd = 64,32,5,3 [State 1120, 1] type = PlaySnd trigger1 = AnimElem = 4 value = 0, 2 [State 1120, 2] type = HitDef trigger1 = Time = 0 trigger2 = AnimElem = 4 attr = S, SA animtype = Med damage = 30, 4 getpower = 0 priority = 5 guardflag = MA pausetime = 6,10 sparkxy = 0, ifelse(Time = 0, -48, -55) hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 18 ground.hittime = 21 ground.velocity = -3 guard.velocity = -6 air.velocity = -2,-2 airguard.velocity = -4,-4.5 p2facing = 1 forcestand = 1 [State 1120, 3] type = HitDef trigger1 = AnimElem = 7 attr = S, SA animtype = Up damage = 68, 4 getpower = 0 priority = 5 guardflag = MA pausetime = 12,12 sparkxy = 0,-110 hitsound = 5,2 guardsound = 6,0 ground.type = Low ground.slidetime = 18 ground.hittime = 21 ground.velocity = -1.2,-11 guard.velocity = -6 air.velocity = -1.2,-9 airguard.velocity = -4,-4.5 p2facing = 1 fall = 1 fall.recovertime = 60 yaccel = .4 [State 1120, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Light Kung Fu Blow ; CNS difficulty: easy ; Notes: This uses the EnvShake controller to shake the screen. It makes the ; move look stronger. [Statedef 1200] type = S movetype= A physics = S juggle = 4 poweradd= 100 velset = 0,0 anim = 1200 ctrl = 0 sprpriority = 2 [State 1200, 1] type = PlaySnd trigger1 = AnimElem = 4 value = 0, 3 [State 1200, Width 1] type = Width trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 value = 10,0 [State 1200, Width 2] type = Width trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 value = 20,0 [State 1200, Shake Screen] type = EnvShake trigger1 = AnimElem = 6 time = 4 ;Time to shake screen ampl = 2 ;Amount to shake freq = 180 ;A frequency of 180 shakes the screen rapidly [State 1200, 2] type = HitDef trigger1 = Time = 0 attr = S, SA animtype = Hard damage = 100, 6 priority = 5 guardflag = MA pausetime = 8,8 sparkxy = 0,-65 hitsound = 5,3 guardsound = 6,0 ground.type = Low ground.slidetime = 16 ground.hittime = 18 ground.velocity = -10 ground.cornerpush.veloff = -12 ;To push far away when p2 is in corner guard.velocity = -7 air.velocity = -3.5,-4.5 airguard.velocity = -3.5,-4.5 [State 1200, 3] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Strong Kung Fu Blow ; CNS difficulty: easy [Statedef 1210] type = S movetype= A physics = S juggle = 4 poweradd= 120 velset = 0,0 anim = 1210 ctrl = 0 sprpriority = 2 [State 1210, 1] type = PlaySnd trigger1 = AnimElem = 4 value = 0, 3 [State 1210, Width 1] type = Width trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 value = 10,0 [State 1210, Width 2] type = Width trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 value = 20,0 [State 1210, Shake Screen] type = EnvShake trigger1 = AnimElem = 6 time = 8 ampl = 2 freq = 170 ;A frequency of less than 180 causes a dampening effect [State 1210, 2] type = HitDef trigger1 = Time = 0 attr = S, SA animtype = Hard damage = 125, 9 priority = 5 guardflag = MA pausetime = 8,8 sparkxy = -10,-65 hitsound = 5,3 guardsound = 6,0 ground.type = Low ground.slidetime = 18 ground.hittime = 20 ground.velocity = -10 ground.cornerpush.veloff = -15 ;To push far away when p2 is in corner guard.velocity = -8 air.velocity = -4,-4.5 airguard.velocity = -4,-4.5 fall = 1 [State 1210, 3] type = ChangeState trigger1 = MoveHit value = 1211 [State 1210, 4] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- [Statedef 1211] type = S movetype= A physics = S anim = 1211 [State 1211, 2] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Fast Kung Fu Blow ; CNS difficulty: easy [Statedef 1220] type = S movetype= A physics = S juggle = 6 poweradd= -330 velset = 0,0 anim = 1220 ctrl = 0 sprpriority = 2 [State 1220, Afterimage] type = AfterImage trigger1 = Time = 0 length = 13 PalBright = 30, 30, 0 PalContrast = 70, 70, 20 PalAdd = -10,-10,-10 PalMul = .85,.85,.50 TimeGap = 1 FrameGap = 2 Trans = Add time = 2 [State 1220, Afterimage] type = AfterImageTime trigger1 = AnimTime < -2 time = 2 [State 1220, Blink Yellow] type = PalFX trigger1 = Time = 0 time = 20 add = 32,16,0 sinadd = 64,32,5,3 [State 1220, 1] type = PlaySnd trigger1 = AnimElem = 4 value = 0, 3 [State 1220, Width 1] type = Width trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 value = 10,0 [State 1220, Width 2] type = Width trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 value = 20,0 [State 1220, Shake Screen] type = EnvShake trigger1 = AnimElem = 6 time = 8 ampl = 3 freq = 170 [State 1220, 2] type = HitDef trigger1 = Time = 0 attr = S, SA animtype = Hard damage = 125, 9 getpower = 0 priority = 5 guardflag = MA pausetime = 15,15 sparkxy = 0,-65 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 20 ground.hittime = 30 ground.velocity = -15 ground.cornerpush.veloff = -20 ;To push far away when p2 is in corner guard.velocity = -9 air.velocity = -5,-5 airguard.velocity = -5,-5 air.fall = 1 fall.animtype = Hard ;Show "hard" animtype when hit for a fall yaccel = .4 ;Fall faster [State 1220, 3] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ; ------------------ globo apretador ------ ;---------------------------------------------------------------- ; [Statedef 2060] type = S movetype= A physics = S velset = 0,0 ctrl = 0 anim = 1220 [State 2060] type = PlaySnd trigger1 = AnimElem = 3 value = 9,4 [State 2060] type = Helper trigger1 = AnimElem = 6 id = 2100 sprpriority = 4 pos = 155 ,-25 posttype = P1 stateno = 2061 helpertype = normal ownpal = 0 keyctrl = 0 [State 2060, ステート変更] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 [Statedef 2061,] type = A movetype = A physics = N velset = 0,5 anim = 2100 [State 2061] type = AssertSpecial trigger1 = 1 flag = noshadow [State 2061] type = veladd trigger1 = 1 x = .5 [State 2061, ] type = NotHitBy trigger1 = Time >= 0 value = SCA,NA,SA,HA,NT,ST,HT [State 2061] type = HitOverRide Trigger1 = Time = 1 Time = -1 attr = SCA, NP, SP, HP slot = 0 stateno = 2066 [State 2061] type = TargetState trigger1 = MoveHit = 1 trigger1 = NumTarget value = 2064 [State 2061,] type = ChangeState trigger1 = MoveHit = 1 trigger1 = NumTarget value = 2062 [State 2061,] type = ChangeState trigger1 = MoveGuarded = 1 value = 2066 [State 2061] type = HitDef Trigger1 = Time = 0 attr = S, SP hitflag = M- priority = 1, miss sparkno = -1 sprpriority = 2 p2facing = 1 guardflag = MA fall = 0 [State 2061] type = ChangeState trigger1 = Pos Y >= 0 value = 2066 ;--------------------------------------------------------------------------- [Statedef 2062,] type = A movetype= A physics = N velset = 0,0 ctrl = 0 anim = 2120 sprpriority = 2 [State 2062] type = AssertSpecial trigger1 = 1 flag = noshadow [State 2062, ] type = NotHitBy trigger1 = Time >= 0 value = SCA,NA,SA,HA,NT,ST,HT [State 2062] type = TargetBind trigger1 = Time = 0 value = 0,0 [State 2062] type = PlaySnd trigger1 = time = 0 value = 1,1 [State 2062] type = PlaySnd trigger1 = AnimElem = 4 || AnimElem = 7 || AnimElem = 10 value = 20,10 [State 2062] type = BindToTarget trigger1 = Time = 0 id = -1 pos = 0, 20,food [State 2062,] type = TargetState trigger1 = parent,power < 3000 trigger1 = Time = 55 trigger2 = enemyNear, alive = 0 trigger3 = Time = 100 value = 2065 [State 2062,] type = ChangeState trigger1 = parent,power < 3000 trigger1 = Time = 55 trigger2 = enemyNear,alive = 0 trigger3 = Time = 100 trigger4 = P2stateno != 2064 value = 2066 ;--------------------------------------------------------------------------- [Statedef 2064] type = A movetype= H physics = N velset = 0,0 [State 2064] type = ChangeAnim trigger1 = Time = 0 trigger1 = SelfAnimExist(15300) = 1 Value = 15300 [State 2064] type = ChangeAnim2 trigger1 = Time = 0 trigger1 = SelfAnimExist(15300) = 0 value = 1140 [State 2064,やられ声] type = PlaySnd trigger1 = AnimElem = 2 || AnimElem = 4 || AnimElem = 6 value = 4218,21 [State 2064,ダメージ] type = Lifeadd trigger1 = AnimElem = 2 || AnimElem = 4 || AnimElem = 6 value = -30 ;--------------------------------------------------------------------------- [Statedef 2065] type = A movetype= H physics = N velset = -5,-5 poweradd = 40 [State 2065, 速度加算] ;重力 type = VelAdd Trigger1 = 1 y = .4 [State 2065, ステート変更] type = ChangeState triggerall = Vel Y > 0 ;★7 triggerall = Pos Y >= -20 triggerall = alive triggerall = CanRecover trigger1 = Command = "recovery" value = 5200 ;common1.cns参照 [State 2065, 制御解除して相手のステートに戻す] type = SelfState triggerall = Vel Y > 0 triggerall = alive triggerall = CanRecover trigger1 = Command = "recovery" value = 5210 ;common1.cns参照 [State 2065, 制御解除して相手のステートに戻す] type = SelfState trigger1 = Vel Y > 0 trigger1 = Pos Y >= 0 value = 5100 ;common1.cns参照 ;★7:「triggerall」 ; 「条件を限定したり絞り込む」ために使われるトリガーの定義です。 ; なのでtrigger1などは、triggerallの条件が全て揃わない限り、有効になる事はりません。 ; なお、triggerallのみでは働かないので、設置する時はtrigger1は絶対に消さないでください。 ; ;--------------------------------------------------------------------------- ;以下ヘルパーの消滅ステート ; ; [Statedef 2066,] type = A physics = N velset = 0,0 anim = 2130 [State 1066] type = AssertSpecial trigger1 = 1 flag = noshadow [State 2061, ] type = NotHitBy trigger1 = Time >= 0 value = SCA,NA,SA,HA,NT,ST,HT [State 2066,] type = DestroySelf trigger1 = AnimTime = 0 ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; Flamazo (hyper) [Statedef 3000] type = S movetype= A physics = S juggle = 4 velset = 0,0 anim = 3000 ctrl = 0 sprpriority = 2 [State 3000, 0] type = BGPalfx trigger1 = AnimElem = 5 supermove = 1 time = 42 add = 120,0,-80 color=0 [State 3000, Super A] type = SuperPause trigger1 = AnimElem = 2, 1 pos = 25, -57 anim = 100 sound = 20, 0 poweradd = -1000 [State 3000, Super D] type = NotHitBy trigger1 = AnimElem = 2 value = , NA, SA, AT time = 11 [State 3000, Super E] type = NotHitBy trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(14) < 0 value2 = C, NA time = 1 [State 3000, 1] type = PlaySnd trigger1 = AnimElem = 3 trigger2 = AnimElem = 6 trigger3 = AnimElem = 8 trigger4 = AnimElem = 12 trigger5 = AnimElem = 15 trigger6 = AnimElem = 18 value = 0, 3 [State 3000, sound1] type = PlaySnd trigger1 = Time = 15 value = 9,3 [State 3000, 5] type = HitDef trigger1 = hitcount < 16 trigger1 = moveguarded < 1 damage = 8,5 attr = S, HA animtype = Hard getpower = 0 priority = 6 guardflag = MA pausetime = 2,2 sparkno = -1 sparkxy = -10,-40 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 30 ground.hittime = 30 ground.velocity = -6 ground.cornerpush.veloff = 0 air.velocity = -3,-2.8 air.fall = 1 fall.animtype = Hard fall.recover = 0 palfx.time = 10 palfx.invertall = 1 palfx.color = 0 palfx.add = 192,32,0 palfx.sinadd = 0,32,0,4 [State 1010] type = HitDef attr = S, SA trigger1 = AnimElem = 20 trigger2 = AnimElem = 21 damage = 20,5 animtype = Medium priority = 5, Hit guardflag = MA hitflag = MAFD pausetime = 4,4 sparkxy = -10,-78 hitsound = 5,1 guardsound = S4,0 sparkno = -1 ground.type = Low ground.slidetime = 5 ground.hittime = 8 ground.velocity = -4,-2 air.velocity = -2,-3 air.fall = 1 fall.animtype = Hard fall.recover = 0 palfx.time = 10 palfx.invertall = 1 palfx.color = 0 palfx.add = 192,32,0 palfx.sinadd = 0,32,0,4 p2stateno = 7601 fall = 1 [State 3000, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; Smash Kung Fu Upper (hyper) [Statedef 3050] type = S movetype= A physics = S juggle = 4 velset = 0,0 anim = 3050 ctrl = 0 sprpriority = 4 [State 3050, Super A] type = SuperPause trigger1 = AnimElem = 7 pos = 15, -90 anim = 100 sound = 20, 0 poweradd = -1000 [State 3050, Super D] type = NotHitBy trigger1 = AnimElem = 2 value = , NA, SA, AT time = 6 [State 3050, s1] type = PlaySnd trigger1 = AnimElem = 10 value = 9, 0 [State 3050, s2] type = PlaySnd trigger1 = AnimElem = 12 value = 9, 1 [State 3050, Shake Screen] type = EnvShake trigger1 = AnimElem = 13 time = 22 ;Time to shake screen ampl = 10 ;Amount to shake freq = 180 [State 9027, Spark] type = Explod trigger1 = AnimElem = 12 anim = F60 pos = 88, 2 postype = p1 sprpriority = -1 [State 3050, humo] type = MakeDust trigger1 = AnimElem = 13 pos = 185,2 spacing = 1 [State 3050, humo2] type = MakeDust trigger1 = AnimElem = 14 pos = 165,2 spacing = 1 [State 3050, 2] type = HitDef trigger1 = AnimElem = 12 attr = S, HA animtype = Up ;Make p2 use "Up" type animation on hit damage = 155, 12 getpower = 0 priority = 5 guardflag = MA pausetime = 4,12 sparkno = 3 sparkxy = 0,-30 hitsound = 5,4 guardsound = 6,0 ground.type = Low ground.slidetime = 26 ground.hittime = 26 ground.velocity = -4.3,-12 guard.velocity = -11 air.velocity = -1.3,-25 airguard.velocity = -4.5,-5 fall = 1 fall.recover = 0 ;Prevent p2 from recovering fall.damage = 70 ;p2 will take 70 damage on hitting the ground fall.envshake.ampl = 4 ;Parameters for shaking the screen on fall fall.envshake.freq = 100 fall.envshake.time = 15 yaccel = .8 ;Accelerate p2 downwards rapidly [State 3050, 5] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;------------------ ; Smash Kung Fu Upper (success) ; Description: This is the state that KFM changes to if he successfully hits ; with Smash Kung Fu Upper. KFM holds his arm high for a short while ; longer, then changes back to his idle stand state. [Statedef 3051] type = S movetype= A physics = S anim = 3051 [State 3051, 1] type = AfterImageTime trigger1 = AnimTime < -2 time = 2 [State 3051, 2] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- [Statedef 5110] type = L movetype= H physics = N [state -3,varset] type = varset trigger1 = time=0&&(prevstateno=[5100,5101]) fvar(11)=1 [state -3,varset] type = varset trigger1 = time=0&&prevstateno!=5120 var(1)=0 [state -3,varset] type = varset trigger1 = time=0&&prevstateno!=5120 var(2)=0 [state -3,varset] type = varAdd trigger1 = 1 var(2)=1 [State 5110, EnvShake] type = FallEnvShake trigger1 = Time = 0 && prevstateno!=5120 [State 5110, 1] ;For hit up/up-diag type (from state 5081) type = ChangeAnim persistent = 0 trigger1 = SelfAnimExist(5110 + (anim % 10)) trigger1 = anim = [5081,5089] value = 5110 + (anim % 10) [State 5110, 2] ;Hit ground anim (normal) type = ChangeAnim triggerall = time = 0 triggerall = anim != [5110,5119] ;Not already changed anim trigger1 = anim != [5161,5169] trigger2 = !SelfAnimExist(5170 + (anim % 10)) value = 5170 [State 5110, 3] ;Hit ground anim (for hit up) type = ChangeAnim triggerall = time = 0 triggerall = anim != [5110,5119] ;Not already changed anim trigger1 = anim = [5161,5169] trigger1 = SelfAnimExist(5170 + (anim % 10)) value = 5170 + (anim % 10) [State 5110, 4] type = HitFallDamage trigger1 = Time = 0 [State 5110, 5] type = PosSet trigger1 = Time = 0 y = 0 [State 5110, Var] ;Get fall velocity type = VarSet trigger1 = Time = 0 trigger1 = GetHitVar(fall.yvel) != 0 sysvar(1) = floor(vel y) [State 5110, 6] type = null;PlaySnd trigger1 = Time = 0 trigger1 = !SysVar(0) value = F7, (sysvar(1) > 5) + (sysvar(1) > 14) [State 5110, 6] type = PlaySnd trigger1 = Time = 0 && prevstateno!=5120 value = 5100, (prevstateno=5101) [State 5110, 6] type = PlaySnd trigger1 = Anim=5170 && AnimTime=0 && gethitvar(airtype)=3 value = 5100, 1 [state 816] type = EnvShake trigger1 = Time=0 && Prevstateno=5071 time = 8 ampl = 4 [State 5110, 7] type = null;GameMakeAnim trigger1 = Time = 0 trigger1 = !SysVar(0) value = 60 + (sysvar(1) > 5) + (sysvar(1) > 14) pos = 0, 0 under = sysvar(1) <= 14 [State 100, Explod] type = Explod trigger1 = Time=0 && Prevstateno=5071 Anim = 7910 pos = 0, 0 postype = p1 ownpal = 1 bindtime = 1 pausemovetime = -1 supermove = 1 ignorehitpause = 1 sprpriority = -2 scale = 1,1 [State 5110, 8] type = VelSet trigger1 = Time = 0 y = 0 [State 5110, 9] ;For hit up type type = ChangeAnim persistent = 0 triggerall = anim = [5171,5179] triggerall = SelfAnimExist(5110 + (anim % 10)) trigger1 = AnimTime = 0 trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground anim trigger3 = prevstateno=5120 value = 5110 + (anim % 10) [State 5110, 10] ;For normal type = ChangeAnim persistent = 0 triggerall = Anim != [5111,5119] trigger1 = AnimTime = 0 trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground frame value = 5110 [State 5110, 11] ;If just died type = ChangeState triggerall = !alive trigger1 = AnimTime = 0 trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground frame trigger3 = Anim = [5110,5119] value = 5150 [State 5110, 12] type = VarSet trigger1 = SysVar(0) trigger1 = Time = 0 sysvar(0) = 0 [State 5110, 13] ;Friction type = VelMul trigger1 = 1 x = 0.85 [State 5110, 14] type = ForceFeedback trigger1 = alive trigger1 = Time = 0 time = 3 ampl = 240 waveform = sine [State 5110, 15] type = ForceFeedback trigger1 = !alive trigger1 = Time = 0 ampl = 200, 7, -.467 time = 30 waveform = sine [State 50, AfterImage] type = AfterImage trigger1 = (var(2)=[1,2]) && var(1) time = 99 PalBright = 1,1,1 PalContrast = 128,128,128 PalAdd = 0,0,0 PalMul = .5,.5,.5 length = 9 trans = add1 TimeGap = 2 FrameGap = 4 ;--------------------------------------------------------------------------- ; HIT_LIEDOWN(Trip) [Statedef 5111] type = L movetype= H physics = N [State 5111] type = ChangeAnim trigger1 = time = 0 value = 5175 [State 5111] type = PosSet trigger1 = Time = 0 y = 0 [State 5111] ;Get fall velocity type = VarSet trigger1 = Time = 0 trigger1 = GetHitVar(fall.yvel) != 0 sysvar(1) = floor(vel y) [State 5111] type = PlaySnd trigger1 = Time = 0 trigger1 = !SysVar(0) value = F7, (sysvar(1) > 5) + (sysvar(1) > 14) [State 5111] type = GameMakeAnim trigger1 = Time = 0 trigger1 = !SysVar(0) value = 60 + (sysvar(1) > 5) + (sysvar(1) > 14) pos = 0, 0 under = sysvar(1) <= 14 [State 5111] type = VelSet trigger1 = Time = 0 y = 0 [State 5111] type = ChangeAnim persistent = 0 trigger1 = AnimTime = 0 trigger2 = SysVar(0) value = 5115 [State 5111] type = SelfState triggerall = alive trigger1 = AnimTime = 0 trigger2 = SysVar(0) trigger3 = Anim = [5110,5119] value = 5110 [State 5111] type = ChangeState triggerall = !alive trigger1 = AnimTime = 0 trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground frame trigger3 = Anim = [5110,5119] value = 5150 [State 5111] type = VarSet trigger1 = SysVar(0) trigger1 = Time = 0 sysvar(0) = 0 [State 5111] type = VelMul trigger1 = 1 x = 0.85 [State 5111] type = ForceFeedback trigger1 = alive trigger1 = Time = 0 time = 8 ampl = 240 waveform = sine [State 5111] type = ForceFeedback trigger1 = !alive trigger1 = Time = 0 ampl = 200, 7, -.467 time = 30 waveform = sine ;--------------------------------------------------------------------------- ;起き上がり ; HIT_GETUP [Statedef 5120] type = L movetype= I physics = N [state -3,varset] type = varset trigger1 = time=0&&prevstateno!=5110 var(1)=0 [state -3,varset] type = varSet trigger1 = time>0 && var(1)<2 var(2)=0 [state -3,varset] type = ChangeState triggerall = time=0 && prevstateno=5110 trigger1 = var(2)<(const(data.liedown.time)) && !var(1) trigger2 = var(2)<(const(data.liedown.time)+12) && var(1) value = 5110 [State 5120, 1a] ;Get up anim (normal) type = ChangeAnim triggerall = time = 0 trigger1 = anim != [5111,5119] trigger2 = !SelfAnimExist(5120 + (anim % 10)) value = 5120 [State 5120, 1b] ;Get up anim (for hit up/diag-up) type = ChangeAnim triggerall = time = 0 trigger1 = anim = [5111,5119] trigger1 = SelfAnimExist(5120 + (anim % 10)) value = 5120 + (anim % 10) [State 5120, 2] type = VelSet trigger1 = Time = 0 x = 0 [State 5120, 3] type = NotHitBy trigger1 = 1 value = SCA time = 1 [State 5120, 4] type = HitFallSet trigger1 = AnimTime = 0 value = 1 [State 5120, 5] ;Can't be thrown right after getting up type = NotHitBy trigger1 = AnimTime = 0 value = , NT,ST,HT time = 5;12 [State 5120, 6] ;Can't be hit right after getting up (short time) type = NotHitBy trigger1 = AnimTime = 0 value2 = SCA time = 1;3 [State 5120, 7] type = ChangeState trigger1 = AnimTime = 0 value = 0 ctrl = 1 ;--------------------------------------------------------------------------- ; HIT_LIEDEAD [Statedef 5150] type = L movetype= H physics = N sprpriority = -3 [State 5150, 1] ;Normal anim type = ChangeAnim triggerall = Time = 0 triggerall = Anim != 36699 triggerall = SelfAnimExist(5140) trigger1 = (anim != [5111,5119]) && (anim != [5171,5179]) trigger2 = !SelfAnimExist(5140 + (anim % 10)) value = 5140 [State 5150, 3] ;Hit up type anim type = ChangeAnim triggerall = Anim != 36699 trigger1 = Time = 0 trigger1 = (anim = [5111,5119]) || (anim = [5171,5179]) trigger1 = SelfAnimExist(5140 + (anim % 10)) value = 5140 + (anim % 10) [State 5150, 4] ;Match over anim type = ChangeAnim persistent = 0 triggerall = Anim != 36699 trigger1 = MatchOver = 1 trigger1 = Anim = [5140,5149] trigger1 = SelfAnimExist(anim+10) value = anim+10 [State 5150, 5] ;Switch to 5110 if liedead anim does not exist type = ChangeAnim triggerall = Anim != 36699 trigger1 = Time = 0 trigger1 = Anim != [5140,5159] trigger1 = Anim != [5110,5119] value = 5110 [State 5150, 6] ;Friction type = VelMul trigger1 = 1 x = 0.85 [State 5150, 7] ;Friction type = VelSet trigger1 = Vel x < .05 persistent = 0 x = 0 [State 5150, 8] type = NotHitBy trigger1 = 1 value = SCA time = 1 ;~~~ダウン回避~~~~ ;~~~~~~~~~~~~~~~~~ ; HIT_FALLRECOVER (still falling) [Statedef 5200] type = A movetype= H physics = N [State 5200, 1] ;Change anim if done with transition type = ChangeAnim trigger1 = Anim = 5035 trigger1 = AnimTime = 0 value = 5050 [State 5200, 2] type = null;VelAdd trigger1 = 1 y = GetHitVar(yaccel) [State 5200, 3] type = null;SelfState trigger1 = Vel Y > 0 trigger1 = Pos Y >= 10 value = 5201 [State 5200, 3] type = SelfState trigger1 = time=0 value = 5201 ;--------------------------------------------------------------------------- ; HIT_FALLRECOVER (on the ground) [Statedef 5201] type = S;A movetype= I;H physics = N;A anim = 5200 [State 900,PlaySnd] type = StopSnd trigger1 = time = 1 channel = 12 [State 900,PlaySnd] type = PlaySnd trigger1 = time = 0 value = 800, 3 channel = 1 [State 5201, 1] ;Turn if not facing opponent type = Turn trigger1 = Time = 0 trigger1 = p2dist X < 0;-5 [State 5201, 2] type = VelSet trigger1 = Time = 0 x = -3.75 y = 0 [State 5201, 2] type = VelSet trigger1 = Time = 14 x = 0 [State 5201, 3] type = PosSet trigger1 = Time = 0 y = 0 [State 5201, 4] type = NotHitBy trigger1 = time=0 value = SCA time=14 [State 5201, 5] ;Blink white type = null;PalFX trigger1 = Time = 0 time = 3 add = 128,128,128 ;256,256,256 [State 5201, 6] type = null;GameMakeAnim trigger1 = Time = 1 value = 60 pos = 0, 0 under = 1 [State 5201, 6] type = ChangeState trigger1 = AnimTime=0 value = 0 ctrl = 1 ; quemada [Statedef 7601] type = A physics = N movetype = H velset = 0,0 ctrl = 0 anim = 7697 juggle = 0 [State 7601, burn] type = ChangeAnim trigger1 = AnimExist(7697) trigger1 = Anim != 7697 value = 7697 [State 7601, Fau-burn] type = Palfx trigger1 = !AnimExist(7697) && TimeMod = 3, 1 time = 2 mul = 199,198,226 [State 7601, Fau-burned] type = Palfx trigger1 = !AnimExist(7697) && TimeMod = 4, 2 time = 3 mul = -50,-26,-50 [State 7601, No hit] type = NotHitBy trigger1 = 1 value = SCA time = 1 [State 7601, Fall Back] type = velset trigger1 = Time = 30 x = -4.5 y = -6.4 [State 7601, Fall Back] type = gravity trigger1 = Time >= 30 [State 7601, Change] type = Selfstate trigger1 = Pos Y > 0 value = 5100 ;--------------------------------------------------------------------------- ; Override common states (use same number to override) : ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; States that are always executed (use statedef -2) ;--------------------------------------------------------------------------- [statedef -2] [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 8767 id = 22223 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12001 id = 22224 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12002 id = 22225 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12003 id = 22226 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12004 id = 22227 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12005 id = 22228 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12040 id = 7240 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12041 id = 7241 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12042 id = 7242 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12043 id = 7243 [State 0, RemoveExplod] type = RemoveExplod trigger1 = stateno != 12044 id = 7244 [State 0, DisplayToClipboard] type = DisplayToClipboard trigger1 = 1 text = "var(10) = %d var(11) = %d" params = var(10),var(11) ;ignorehitpause = ;persistent = [State 0, VarSet] type = VarSet trigger1 = stateno != 20001 && stateno != 20003 && stateno != 20005 v = 10 ;fv = 10 value = 0 ;ignorehitpause = ;persistent = [State -2, RemoveExplod] type = RemoveExplod trigger1 = stateno != 20001 id = 20010 ;ignorehitpause = ;persistent = [State -2, RemoveExplod] type = RemoveExplod trigger1 = stateno != 20003 id = 20013 ;ignorehitpause = ;persistent = [State -2, RemoveExplod] type = RemoveExplod trigger1 = stateno != 20005 id = 20014 ;ignorehitpause = ;persistent = [State -2, RemoveExplod] type = RemoveExplod trigger1 = stateno != 20001 && stateno != 20003 && stateno != 20005 id = 20011 ;ignorehitpause = ;persistent = ;--------------------------------------------------------------------------- ; 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 = 9, 1 [State -3, Landing effect] type = Explod triggerall = Time = 1 trigger1 = stateno = 52 trigger2 = stateno = 106 persistent = 0 anim = F60 pos = 0,-2 postype = p1 sprpriority = -1 bindtime = 1 ownpal = 1 [State -3, Landing effect2] type = EnvShake triggerall = Time = 1 trigger1 = stateno = 52 trigger2 = stateno = 106 time = 10 ;Time to shake screen ampl = 8 ;Amount to shake freq = 180 [State -3, AI??????] type = VarSet triggerall = !IsHelper triggerall = !var(59) triggerall = RoundState = [1,2] trigger1 = Command = "AI0" trigger2 = Command = "AI1" trigger3 = Command = "AI2" trigger4 = Command = "AI3" trigger5 = Command = "AI4" trigger6 = Command = "AI5" trigger7 = Command = "AI6" trigger8 = Command = "AI7" trigger9 = Command = "AI8" trigger10 = Command = "AI9" trigger11 = Command = "AI10" trigger12 = Command = "AI11" trigger13 = Command = "AI12" trigger14 = Command = "AI13" trigger15 = Command = "AI14" trigger16 = Command = "AI15" trigger17 = Command = "AI16" trigger18 = Command = "AI17" trigger19 = Command = "AI18" trigger20 = Command = "AI19" trigger21 = Command = "AI20" trigger22 = Command = "AI21" trigger23 = Command = "AI22" trigger24 = Command = "AI23" trigger25 = Command = "AI24" trigger26 = Command = "AI25" trigger27 = Command = "AI26" trigger28 = Command = "AI27" trigger29 = Command = "AI28" trigger30 = Command = "AI29" trigger31 = Command = "AI30" trigger32 = Command = "AI31" trigger33 = Command = "AI32" trigger34 = Command = "AI33" trigger35 = Command = "AI34" trigger36 = Command = "AI35" trigger37 = Command = "AI36" trigger38 = Command = "AI37" trigger39 = Command = "AI38" trigger40 = Command = "AI39" trigger41 = Command = "AI40" trigger42 = Command = "AI41" trigger43 = Command = "AI42" trigger44 = Command = "AI43" trigger45 = Command = "AI44" trigger46 = Command = "AI45" trigger47 = Command = "AI46" trigger48 = Command = "AI47" trigger49 = Command = "AI48" trigger50 = Command = "AI49" trigger51 = Command = "AI50" var(59) = 1 [State -3, AI] Type = VarSet triggerAll = !IsHelper TriggerAll = Var(59) >= 1 ;AI????????? Trigger1 = RoundState = 4 ;??????? Trigger2 = Win = 1 ;????? Trigger3 = Lose = 1 ;????? Trigger4 = DrawGame = 1 ;??????? var(59) = -Var(59) [State -3, AI] Type = VarSet triggerAll = !IsHelper TriggerAll = Var(59) <= -1 ;AI???????? Trigger1 = RoundState = 2 ;?????? var(59) = -Var(59) ;==========================================AI [State -3, ??] type = ChangeState value = 10100 triggerall = var(59) = 1 triggerall = random <= 50 triggerall = statetype != A triggerall = P2StateType = S triggerall = P2BodyDist X >= 10 trigger1 = ctrl [State -3, ??]] type = ChangeState value = 6098 triggerall = var(59) = 1 triggerall = random <= 50 triggerall = statetype != A triggerall = P2Stateno = 10101 triggerall = P2BodyDist X <= 10 trigger1 = ctrl [State -3, ??] type = ChangeState value = 100 triggerall = var(59) = 1 triggerall = random <= 80 triggerall = statetype != A triggerall = P2BodyDist X >= 10 triggerall = p2stateno = 10101 trigger1 = ctrl