; The CMD file.
;
; Two parts: 1. Command definition and 2. State entry
; (state entry is after the commands def section)
;
; 1. Command definition
; ---------------------
; Note: The commands are CASE-SENSITIVE, and so are the command names.
; The eight directions are:
; B, DB, D, DF, F, UF, U, UB (all CAPS)
; corresponding to back, down-back, down, downforward, etc.
; The six buttons are:
; a, b, c, x, y, z (all lower case)
; In default key config, abc are are the bottom, and xyz are on the
; top row. For 2 button characters, we recommend you use a and b.
; For 6 button characters, use abc for kicks and xyz for punches.
;
; Each [Command] section defines a command that you can use for
; state entry, as well as in the CNS file.
; The command section should look like:
;
; [Command]
; name = some_name
; command = the_command
; time = time (optional -- defaults to 15 if omitted)
;
; - some_name
; A name to give that command. You'll use this name to refer to
; that command in the state entry, as well as the CNS. It is case-
; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A).
;
; - command
; list of buttons or directions, separated by commas.
; Directions and buttons can be preceded by special characters:
; slash (/) - means the key must be held down
; egs. command = /D ;hold the down direction
; command = /DB, a ;hold down-back while you press a
; tilde (~) - to detect key releases
; egs. command = ~a ;release the a button
; command = ~D, F, a ;release down, press fwd, then a
; If you want to detect "charge moves", you can specify
; the time the key must be held down for (in game-ticks)
; egs. command = ~30a ;hold a for at least 30 ticks, then release
; dollar ($) - Direction-only: detect as 4-way
; egs. command = $D ;will detect if D, DB or DF is held
; command = $B ;will detect if B, DB or UB is held
; plus (+) - Buttons only: simultaneous press
; egs. command = a+b ;press a and b at the same time
; command = x+y+z ;press x, y and z at the same time
; You can combine them:
; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release,
; ;then press a and b together
; It's recommended that for most "motion" commads, eg. quarter-circle-fwd,
; you start off with a "release direction". This matches the way most
; popular fighting games implement their command detection.
;
; - time (optional)
; Time allowed to do the command, given in game-ticks. Defaults to 15
; if omitted
;
; If you have two or more commands with the same name, all of them will
; work. You can use it to allow multiple motions for the same move.
;
; Some common commands examples are given below.
;
; [Command] ;Quarter circle forward + x
; name = "QCF_x"
; command = ~D, DF, F, x
;
; [Command] ;Half circle back + a
; name = "HCB_a"
; command = ~F, DF, D, DB, B, a
;
; [Command] ;Two quarter circles forward + y
; name = "2QCF_y"
; command = ~D, DF, F, D, DF, F, y
;
; [Command] ;Tap b rapidly
; name = "5b"
; command = b, b, b, b, b
; time = 30
;
; [Command] ;Charge back, then forward + z
; name = "charge_B_F_z"
; command = ~60$B, F, z
; time = 10
;
; [Command] ;Charge down, then up + c
; name = "charge_D_U_c"
; command = ~60$D, U, c
; time = 10
;
;-| Button Remapping |-----------------------------------------------------
; This section lets you remap the player's buttons (to easily change the
; button configuration). The format is:
; old_button = new_button
; If new_button is left blank, the button cannot be pressed.
[Remap]
x = x
y = y
z = z
a = a
b = b
c = c
s = s
;-| Default Values |-------------------------------------------------------
[Defaults]
; Default value for the "time" parameter of a Command. Minimum 1.
command.time = 30
; Default value for the "buffer.time" parameter of a Command. Minimum 1,
; maximum 30.
command.buffer.time = 1
;-| Super Motions |--------------------------------------------------------
[command]
name = "qcbsuper"
command = ~D,DB,B,~z
time = 15
[command]
name = "dpsuper"
command = ~F,D,DF,~z
time = 15
[command]
name = "qcfsuper"
command = ~D,DF,F,~z
time = 15
[command]
name = "qcbsuper"
command = ~D,DB,B,z
time = 15
[command]
name = "dpsuper"
command = ~F,D,DF,z
time = 15
[command]
name = "qcfsuper"
command = ~D,DF,F,z
time = 15
[command]
name = "qcbsuper"
command = ~D,B,~z
time = 15
[command]
name = "dpsuper"
command = ~F,D,F,~z
time = 15
[command]
name = "qcfsuper"
command = ~D,F,~z
time = 15
[command]
name = "qcbsuper"
command = ~D,B,z
time = 15
[command]
name = "dpsuper"
command = ~F,D,F,z
time = 15
[command]
name = "qcfsuper"
command = ~D,F,z
time = 15
;-| Special Motions |------------------------------------------------------
[command]
name = "qcfk"
command = ~D,F,~b
time = 15
[command]
name = "qcfk2"
command = ~D,F,~a
time = 15
[command]
name = "qcfk"
command = ~D,F,b
time = 15
[command]
name = "qcfk2"
command = ~D,F,a
time = 15
[command]
name = "qcbp"
command = ~D,B,~y
time = 15
[command]
name = "qcbp2"
command = ~D,B,~x
time = 15
[command]
name = "qcbp"
command = ~D,B,y
time = 15
[command]
name = "qcbp2"
command = ~D,B,x
time = 15
[command]
name = "exqcbk"
command = ~D,B,b+a
time = 15
[command]
name = "exqcbk"
command = ~D,DB,B,b+a
time = 15
[command]
name = "qcbk"
command = ~D,B,~b
time = 15
[command]
name = "qcbk2"
command = ~D,B,~a
time = 15
[command]
name = "qcbk"
command = ~D,B,b
time = 15
[command]
name = "qcbk2"
command = ~D,B,a
time = 15
[command]
name = "exdpk"
command = ~F,D,F,b+a
time = 15
[command]
name = "exdpk"
command = ~F,D,DF,b+a
time = 15
[command]
name = "dpk"
command = ~F,D,F,~b
time = 15
[command]
name = "dpk2"
command = ~F,D,F,~a
time = 15
[command]
name = "dpk"
command = ~F,D,F,b
time = 15
[command]
name = "dpk2"
command = ~F,D,F,a
time = 15
[command]
name = "exdp"
command = ~F,D,F,y+x
time = 15
[command]
name = "exdp"
command = ~F,D,DF,y+x
time = 15
[command]
name = "dp"
command = ~F,D,F,~y
time = 15
[command]
name = "dp2"
command = ~F,D,F,~x
time = 15
[command]
name = "dp"
command = ~F,D,F,y
time = 15
[command]
name = "dp2"
command = ~F,D,F,x
time = 15
[command]
name = "qcfp"
command = ~D,F,~y
time = 15
[command]
name = "qcfp2"
command = ~D,F,~x
time = 15
[command]
name = "qcfp"
command = ~D,F,y
time = 15
[command]
name = "qcfp2"
command = ~D,F,x
time = 15
[command]
name = "exqcfk"
command = ~D,F,b+a
time = 15
[command]
name = "exqcfk"
command = ~D,DF,F,b+a
time = 15
[command]
name = "qcfk"
command = ~D,DF,F,~b
time = 15
[command]
name = "qcfk2"
command = ~D,DF,F,~a
time = 15
[command]
name = "qcfk"
command = ~D,DF,F,b
time = 15
[command]
name = "qcfk2"
command = ~D,DF,F,a
time = 15
[command]
name = "exqcfp"
command = ~D,DF,F,y+x
time = 15
[command]
name = "exqcfp"
command = ~D,F,y+x
time = 15
[command]
name = "exqcbp"
command = ~D,DB,B,y+x
time = 15
[command]
name = "exqcbp"
command = ~D,B,y+x
time = 15
[command]
name = "qcbp"
command = ~D,DB,B,~y
time = 15
[command]
name = "qcbp2"
command = ~D,DB,B,~x
time = 15
[command]
name = "qcbp"
command = ~D,DB,B,y
time = 15
[command]
name = "qcbp2"
command = ~D,DB,B,x
time = 15
[command]
name = "qcbk"
command = ~D,DB,B,~b
time = 15
[command]
name = "qcbk2"
command = ~D,DB,B,~a
time = 15
[command]
name = "qcbk"
command = ~D,DB,B,b
time = 15
[command]
name = "qcbk2"
command = ~D,DB,B,a
time = 15
[command]
name = "dpk"
command = ~F,D,DF,~b
time = 15
[command]
name = "dpk2"
command = ~F,D,DF,~a
time = 15
[command]
name = "dpk"
command = ~F,D,DF,b
time = 15
[command]
name = "dpk2"
command = ~F,D,DF,a
time = 15
[command]
name = "dp"
command = ~F,D,DF,~y
time = 15
[command]
name = "dp2"
command = ~F,D,DF,~x
time = 15
[command]
name = "dp"
command = ~F,D,DF,y
time = 15
[command]
name = "dp2"
command = ~F,D,DF,x
time = 15
[command]
name = "qcfp"
command = ~D,DF,F,~y
time = 15
[command]
name = "qcfp2"
command = ~D,DF,F,~x
time = 15
[command]
name = "qcfp"
command = ~D,DF,F,y
time = 15
[command]
name = "qcfp2"
command = ~D,DF,F,x
time = 15
;-| Double Tap |-----------------------------------------------------------
[Command]
name = "FF" ;Required (do not remove)
command = F, F
time = 10
[Command]
name = "BB" ;Required (do not remove)
command = B, B
time = 10
;-| 2/3 Button Combination |-----------------------------------------------
[Command]
name = "recovery" ;Required (do not remove)
command = x+y
time = 1
[Command]
name = "recovery"
command = y+z
time = 1
[Command]
name = "recovery"
command = x+z
time = 1
[Command]
name = "recovery"
command = a+b
time = 1
[Command]
name = "recovery"
command = b+c
time = 1
[Command]
name = "recovery"
command = a+c
time = 1
;-| Dir + Button |---------------------------------------------------------
[Command]
name = "back_x"
command = /$B,x
time = 1
[Command]
name = "back_y"
command = /$B,y
time = 1
[Command]
name = "back_z"
command = /$B,z
time = 1
[Command]
name = "down_x"
command = /$D,x
time = 1
[Command]
name = "down_y"
command = /$D,y
time = 1
[Command]
name = "down_z"
command = /$D,z
time = 1
[Command]
name = "fwd_x"
command = /$F,x
time = 1
[Command]
name = "fwd_y"
command = /$F,y
time = 1
[Command]
name = "fwd_z"
command = /$F,z
time = 1
[Command]
name = "up_x"
command = /$U,x
time = 1
[Command]
name = "up_y"
command = /$U,y
time = 1
[Command]
name = "up_z"
command = /$U,z
time = 1
[Command]
name = "back_a"
command = /$B,a
time = 1
[Command]
name = "back_b"
command = /$B,b
time = 1
[Command]
name = "back_c"
command = /$B,c
time = 1
[Command]
name = "down_a"
command = /$D,a
time = 1
[Command]
name = "down_b"
command = /$D,b
time = 1
[Command]
name = "down_c"
command = /$D,c
time = 1
[Command]
name = "fwd_a"
command = /$F,a
time = 1
[Command]
name = "fwd_b"
command = /$F,b
time = 1
[Command]
name = "fwd_c"
command = /$F,c
time = 1
[Command]
name = "up_a"
command = /$U,a
time = 1
[Command]
name = "up_b"
command = /$U,b
time = 1
[Command]
name = "up_c"
command = /$U,c
time = 1
;-| Single Button |---------------------------------------------------------
[Command]
name = "a"
command = a
time = 1
[Command]
name = "b"
command = b
time = 1
[Command]
name = "c"
command = c
time = 1
[Command]
name = "x"
command = x
time = 1
[Command]
name = "y"
command = y
time = 1
[Command]
name = "z"
command = z
time = 1
[Command]
name = "s"
command = s
time = 1
;-| Single Dir |------------------------------------------------------------
[Command]
name = "fwd" ;Required (do not remove)
command = $F
time = 1
[Command]
name = "downfwd"
command = $DF
time = 1
[Command]
name = "down" ;Required (do not remove)
command = $D
time = 1
[Command]
name = "downback"
command = $DB
time = 1
[Command]
name = "back" ;Required (do not remove)
command = $B
time = 1
[Command]
name = "upback"
command = $UB
time = 1
[Command]
name = "up" ;Required (do not remove)
command = $U
time = 1
[Command]
name = "upfwd"
command = $UF
time = 1
;-| Hold Button |--------------------------------------------------------------
[Command]
name = "hold_x"
command = /x
time = 1
[Command]
name = "hold_y"
command = /y
time = 1
[Command]
name = "hold_z"
command = /z
time = 1
[Command]
name = "hold_a"
command = /a
time = 1
[Command]
name = "hold_b"
command = /b
time = 1
[Command]
name = "hold_c"
command = /c
time = 1
[Command]
name = "hold_s"
command = /s
time = 1
;-| Hold Dir |--------------------------------------------------------------
[Command]
name = "holdfwd" ;Required (do not remove)
command = /$F
time = 1
[Command]
name = "holddownfwd"
command = /$DF
time = 1
[Command]
name = "holddown" ;Required (do not remove)
command = /$D
time = 1
[Command]
name = "holddownback"
command = /$DB
time = 1
[Command]
name = "holdback" ;Required (do not remove)
command = /$B
time = 1
[Command]
name = "holdupback"
command = /$UB
time = 1
[Command]
name = "holdup" ;Required (do not remove)
command = /$U
time = 1
[Command]
name = "holdupfwd"
command = /$UF
time = 1
;---------------------------------------------------------------------------
; 2. State entry
; --------------
; This is where you define what commands bring you to what states.
;
; Each state entry block looks like:
; [State -1, Label] ;Change Label to any name you want to use to
; ;identify the state with.
; type = ChangeState ;Don't change this
; value = new_state_number
; trigger1 = command = command_name
; . . . (any additional triggers)
;
; - new_state_number is the number of the state to change to
; - command_name is the name of the command (from the section above)
; - Useful triggers to know:
; - statetype
; S, C or A : current state-type of player (stand, crouch, air)
; - ctrl
; 0 or 1 : 1 if player has control. Unless "interrupting" another
; move, you'll want ctrl = 1
; - stateno
; number of state player is in - useful for "move interrupts"
; - movecontact
; 0 or 1 : 1 if player's last attack touched the opponent
; useful for "move interrupts"
;
; Note: The order of state entry is important.
; State entry with a certain command must come before another state
; entry with a command that is the subset of the first.
; For example, command "fwd_a" must be listed before "a", and
; "fwd_ab" should come before both of the others.
;
; For reference on triggers, see CNS documentation.
;
; Just for your information (skip if you're not interested):
; This part is an extension of the CNS. "State -1" is a special state
; that is executed once every game-tick, regardless of what other state
; you are in.
; Don't remove the following line. It's required by the CMD standard.
[Statedef -1]
[State -1, Taunt]
type = ChangeState
value = 195
triggerall = AILevel
triggerall = statetype != A
triggerall = roundstate = 3
triggerall = win || winko
triggerall = time = [0,120]
triggerall = stateno != 195
triggerall = prevstateno != 195
triggerall = p2dist x > 0
trigger1 = ctrl
[State 5050, 4]
type = ChangeState
triggerall = StateNo = 5050
triggerall = Vel Y > 0
triggerall = Pos Y >= 0
triggerall = alive
triggerall = AILevel
triggerall = p2bodydist x >= 50 || p2dist y < -50 || (enemynear,ctrl = 0 && enemynear,movetype != A)
trigger1 = CanRecover
value = 5200 ;HITFALL_RECOVER
[State 5050, 4]
type = ChangeState
triggerall = StateNo = 5050
triggerall = AILevel
triggerall = alive
triggerall = CanRecover
trigger1 = p2bodydist x >= 50 || p2dist y >= 150 || (enemynear,ctrl = 0 && enemynear,movetype != A)
value = 5210
[State -1]
type = ChangeState
value = 1420
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = power >= 500
triggerall = (p2bodydist x - (enemynear,vel x * 5) = [-20,80])
triggerall = ((p2bodydist y + (enemynear,vel y * 4) > -65) && (enemynear,statetype != A || (enemynear,vel y < 0 || enemynear,statetype = A && p2bodydist y + (enemynear,vel y * 4) < -25)))
triggerall = enemynear,statetype != L
trigger1 = enemynear,hitdefattr != SC,AT,HA,HP
trigger1 = ((inguarddist || (prevstateno = 5120 && backedgedist <= 25)) && enemynear,vel x >= 0)
trigger1 = (random < (350 + 350 * (prevstateno = [140,159])) || backedgebodydist <= 100 || prevstateno = 5120)
trigger1 = enemynear,time <= (7 + cond(enemynear,vel x < 0, 0, ceil(enemynear,vel x)))
;-----------------------
[State -3, Methods]
type = VarSet
triggerall = AILevel
trigger1 = EnemyNear,StateType != C
fvar(35) = 0
[State -3, Methods]
type = VarSet
triggerall = AILevel
trigger1 = (EnemyNear,HitDefAttr = C,AA,AP) || EnemyNear,StateType = C || (enemynear,stateno = [400,450])
trigger2 = PlayerIdExist(helper(33333333),var(4))
trigger2 = PlayerID(helper(33333333),var(4)), statetype = C
trigger3 = PlayerIdExist(helper(33333333),var(4))
trigger3 = PlayerID(helper(33333333),var(4)), hitdefattr = C,AA,AP
trigger4 = numhelper(15900)
trigger4 = enemynear,stateno = helper(15900),var(0) || enemynear,stateno = helper(15900),var(1) || enemynear,stateno = helper(15900),var(2) || enemynear,stateno = helper(15900),var(3)
fvar(35) = 1
ignorehitpause = 1
[State -3, AI Guard]
type = ChangeState
triggerall = AILevel && RoundState = 2
triggerall = ctrl
triggerall = enemynear, hitdefattr != SCA, AT
triggerall = (statetype != A || (p2dist x >= 0 && enemynear,facing != facing && random < 75 + 125 * (enemynear,statetype = A)) || enemynear,hitdefattr = SCA,HA,HP)
triggerall = inguarddist
trigger1 = random < (cond((life < lifemax * 0.5) && (life < enemynear,life || life < lifemax * 0.25), 750 + 350 * (prevstateno = [5000,5999]), 350) * ifelse((enemynear,hitdefattr = SCA,SA,SP), 1.25, 1))
trigger2 = enemynear,hitdefattr = SCA,HA,HP
value = 120
ignorehitpause = 1
;-------------------
[State -1, pipesuper]
type = ChangeState
value = 3100
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = power >= 3000
triggerall = ((p2bodydist x - enemynear,vel x * 3) = [-10,100 + (-p2bodydist y / 20)]) && p2dist x > 0
triggerall = (p2bodydist y + enemynear,vel y * 5 = [-35,0])
triggerall = enemynear,statetype != L
triggerall = !inguarddist || enemynear,facing = facing
trigger1 = (enemynear,ctrl = 0 && enemynear,movetype != A)
trigger1 = (enemynear,movetype != H || enemynear,gethitvar(hittime) >= 11 + (p2bodydist x / 12))
trigger2 = enemynear,animtime <= -(16+((P2BodyDist X)/14))
trigger2 = (enemynear,movetype = A && enemynear,ctrl = 0)
trigger3 = facing = enemynear,facing
trigger3 = enemynear,stateno != [120,159]
[State -1, pipesuper]
type = ChangeState
value = 3100
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = ((p2bodydist x - enemynear,vel x * 3) = [-enemynear,pos y - 50,-enemynear,pos y + 50])
triggerall = (!inguarddist || p2bodydist x > 50 || p2dist y < -100 || enemynear,vel x < 0 || enemynear,vel y < 0)
triggerall = (enemynear,statetype != L)
triggerall = power >= 1000
trigger1 = random < 250 + 250 * (enemynear,vel y < 2) || (enemynear,ctrl = 0)
trigger2 = (enemynear,vel x < 0 && p2bodydist x < 100 || enemynear,vel x > 0 && p2bodydist x > 100)
trigger2 = random <= 500 + 500 * (enemynear,time < 2 && enemynear,movetype = A)
[State -1]
type = ChangeState
value = 3200
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = ((p2bodydist x - enemynear,vel x * 5) = [15 - 15 * (enemynear,movetype = H),105])
triggerall = ((p2dist y + enemynear,vel y * 3) = [-50 - 75 * (enemynear,hitfall = 1),0 - 50 * (enemynear,hitfall = 1)])
triggerall = (enemynear,statetype != A || enemynear,vel y > -1)
triggerall = (enemynear,statetype != L || (enemynear,stateno = 5120 && enemynear,animtime < -4))
triggerall = !inguarddist
triggerall = power >= 1000
trigger1 = random < (500 + 250 * (enemynear,ctrl = 0)) || (enemynear,stateno = 5120 && enemynear,animtime < -4)
trigger2 = (enemynear,prevstateno = [140,149]) || (enemynear,movetype = H && enemynear,stateno != [120,159])
trigger3 = enemynear,ctrl = 0
trigger3 = (enemynear,stateno = 105 || enemynear,vel x <= 0)
[state -1, throw]
Type = changestate
value = 800
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = enemynear,movetype != H && enemynear,statetype != L
triggerall = enemynear,statetype != A
triggerall = p2bodydist x < 20
trigger1 = (enemynear,stateno = [120,149]) || (enemynear,prevstateno = [150,159])
trigger2 = (enemynear,ctrl = 0 && enemynear,stateno = 52)
trigger3 = (enemynear,vel x <= 0 && facing = enemynear,facing)
[State -1, antiair]
type = ChangeState
value = 410
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = (!inguarddist || enemynear,facing = facing || enemynear,movetype = I && enemynear,ctrl = 0 || enemynear,movetype = A && (enemynear,animtime < -7 || enemynear,time <= 3) || enemynear,moveguarded = 1 || random < 333)
triggerall = enemynear,statetype = A || (enemynear,pos y < -20 && enemynear,statetype != L)
triggerall = (p2bodydist x - (enemynear,vel x * 5)) = [-20,35 + enemynear,const(size.air.front)]
triggerall = (p2bodydist y + (enemynear,vel y * 4) = [-105,0])
triggerall = enemynear,hitfall = 0
trigger1 = random < (500 + 250 * (enemynear,vel y >= 0))
trigger2 = enemynear,ctrl = 0
trigger2 = (enemynear,animtime >= -4 && enemynear,movetype = A) || (enemynear,movetype != A && enemynear,stateno != [120,159])
trigger3 = (enemynear,vel x = 0 || (enemynear,vel x > 0 && backedgedist < 50) || (enemynear,vel x < 0 && enemynear,backedgedist < 50))
[State -1, Stand Light Punch]
type = ChangeState
value = 200
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A || (stateno = [100,101])
triggerall = enemynear,statetype != L
triggerall = (!inguarddist || enemynear,facing = facing || enemynear,movetype = I && enemynear,ctrl = 0)
triggerall = (p2bodydist x - (enemynear,vel x * 2) = [-18,15 + enemynear,const(size.ground.front)])
triggerall = (p2dist y + (enemynear,vel y * 2) = [-55,0])
trigger1 = random < 500
[State -1, Crouching Light Punch]
type = ChangeState
value = 400
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = (enemynear,statetype != L && enemynear,statetype != A)
triggerall = (p2bodydist x - (enemynear,vel x * 2) = [-18,10 + enemynear,const(size.ground.front)])
triggerall = (!inguarddist || enemynear,facing = facing || enemynear,movetype = I && enemynear,ctrl = 0)
trigger1 = (random > 500 || vel x = 0)
[State -1, Crouching Light Punch]
type = ChangeState
value = 430 - 20 * (enemynear,stateno = 40)
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = (enemynear,statetype != L && enemynear,statetype != A)
triggerall = (p2bodydist x - (enemynear,vel x * 5) = [10 + enemynear,const(size.ground.front),30 + enemynear,const(size.ground.front)])
triggerall = (!inguarddist || enemynear,facing = facing || enemynear,movetype = I && enemynear,ctrl = 0 || random < 333)
trigger1 = (random < (300 + 300 * (enemynear,stateno = 52 || enemynear,backedgebodydist < 150)) || (enemynear,vel x = [-3,3]) || ((enemynear,stateno = [120,159]) && (enemynear,statetype != C)))
trigger2 = enemynear,backedgedist < 80 || (enemynear,ctrl = 0 && enemynear,animtime > -4)
[State -1, Jump Light Punch]
type = ChangeState
value = 600
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype = A
triggerall = p2bodydist x - ((enemynear,vel x * 2) * ifelse(enemynear,facing = facing, -1, 1)) = [-20,(30 + (vel x * 2))]
triggerall = p2bodydist y - (enemynear,vel y * 2 * cond(enemynear,vel y > 0, -1, 1) = [-35,35 + (vel y * 2)])
triggerall = vel y < 0 && enemynear,statetype = A
trigger1 = (random < 500 || enemynear,movetype = H)
[State -1, Jump Light Punch]
type = ChangeState
value = 610
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype = A
triggerall = p2bodydist x - ((enemynear,vel x * 2) * ifelse(enemynear,facing = facing, -1, 1)) = [-30,(50 + (vel x * 3))]
triggerall = p2bodydist y - (enemynear,vel y * 2 * cond(enemynear,vel y > 0, -1, 1) = [-45,-enemynear,const(size.head.pos.y)/cond(enemynear,statetype = C, 2, 1) + 30 + (vel y * 3)])
trigger1 = (vel y > -2 || (p2dist x < 10 && enemynear,vel y >= 0))
trigger1 = (random <= 500 || enemynear,statetype = C)
trigger2 = (enemynear,statetype = L || enemynear,stateno = 5120)
[State -1, tools2]
type = ChangeState
value = 1010 - 10 * (p2bodydist x >= (170+((enemynear,const(size.head.pos.y)/2))) * cond(enemynear,statetype = C, 1.2, 1))
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = numhelper(1001) = 0
triggerall = enemynear,stateno != [120,159]
triggerall = (p2bodydist x - (enemynear,vel x * 2) = [((130+((enemynear,const(size.head.pos.y)/2))) * cond(enemynear,statetype = C, 1.2, 1)),((200+((enemynear,const(size.head.pos.y)/2))) * cond(enemynear,statetype = C, 1.2, 1))])
triggerall = p2bodydist x < 200
triggerall = (p2dist y + (enemynear,vel y * 2) >= -80)
triggerall = (enemynear,statetype != L || (enemynear,stateno = 5120 && enemynear,animtime <= -(16+((P2BodyDist X)/14))))
triggerall = (enemynear,vel x < 3 && enemynear,vel x > -3) || enemynear,statetype = A
trigger1 = (random < (250 / ifelse(inguarddist, 1.5, 1))) || (enemynear,prevstateno = [140,149])
[State -1, bobomb]
type = ChangeState
value = 1200
triggerall = AILevel && RoundState = 2
triggerall = ctrl && statetype != A
triggerall = numhelper(1210) < 2
triggerall = (!inguarddist && (prevstateno != [140,159]))
triggerall = random < (350 + 650 * (!numhelper(1210)))
triggerall = (enemynear,vel y >= 0 && enemynear,vel x < 0 || enemynear,anim != 40)
trigger1 = (p2bodydist x - (enemynear,vel x * 5) = [90,150])
trigger1 = (enemynear,ctrl = 0 || (enemynear,stateno = [150,159]))
trigger1 = enemynear,statetype != L
trigger1 = random < 333 || enemynear,backedgebodydist <= 100
trigger2 = (p2bodydist x = [0,120])
trigger2 = (enemynear,statetype = L && enemynear,stateno != 5120)
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
[State -1, AI Jump]
type = ChangeState
value = 37
triggerall = AILevel && RoundState = 2
triggerall = statetype != A && ctrl || stateno = 100
triggerall = (p2bodydist x - (enemynear,vel x * 5) <= 160)
triggerall = p2dist x >= 0
triggerall = enemynear,hitfall = 0
trigger1 = ((p2bodydist x <= 40 && backedgebodydist <= 80) || (p2bodydist x = [45,65]))
trigger1 = ((enemynear,statetype = L && backedgebodydist <= 80) || (enemynear,stateno = 5120 && enemynear,animtime <= -(16+((P2BodyDist X)/14))))
trigger2 = p2bodydist x >= 40
trigger2 = (enemynear,statetype != A && enemynear,animtime <= -10)
trigger2 = enemynear,hitdefattr = SC,AT
trigger3 = (enemynear,statetype = C && enemynear,movetype = A)
trigger3 = enemynear,animtime <= -15
trigger3 = (random < 500 || enemynear,time < 2)
trigger4 = p2bodydist x >= 30
trigger4 = enemynear,statetype != A
trigger4 = random <= 25 - (25 * (inguarddist))
[State -1, AI Jump]
type = ChangeState
value = 38
triggerall = AILevel && RoundState = 2
triggerall = statetype != A && ctrl || stateno = 100
triggerall = enemynear,hitfall = 0
trigger1 = ((p2bodydist x = [0,45]) && backedgebodydist > 80)
trigger1 = (enemynear,stateno = 5120 && enemynear,animtime <= -16)
trigger1 = random < (500 + (500 * (numhelper(1210) > 0)))
trigger2 = p2bodydist x < 40
trigger2 = (enemynear,statetype != A && enemynear,animtime <= -10)
trigger2 = enemynear,hitdefattr = SC,AT
trigger3 = (enemynear,movetype = A && enemynear,animtime <= -8) || (backedgebodydist <= 100 && enemynear,vel x >= enemynear,const(velocity.run.fwd.x))
trigger3 = (enemynear,vel x > 0 && enemynear,statetype != A)
trigger3 = (p2bodydist x < (enemynear,vel x * 8) + 25) && (p2bodydist x > (enemynear,vel x * 2) + 10)
trigger3 = p2dist x > 0
trigger3 = random <= 250
[State -1, AI Jump]
type = ChangeState
value = 39
triggerall = AILevel && RoundState = 2
triggerall = statetype != A && ctrl || stateno = 100
triggerall = enemynear,facing != facing
triggerall = enemynear,hitfall = 0
triggerall = (enemynear,movetype != H || enemynear,ctrl = 1)
triggerall = backedgebodydist <= 85
trigger1 = stateno = 100
trigger1 = (p2bodydist x < 150 && inguarddist)
trigger1 = (enemynear,statetype != A || random < 500)
trigger2 = (enemynear,statetype != A && (enemynear,vel x > 0 && enemynear,vel x < enemynear,const(velocity.run.fwd.x)))
trigger2 = !inguarddist && (enemynear,prevstateno != [120,159])
trigger2 = enemynear,movetype != H
trigger2 = p2bodydist x < 20
trigger2 = random < (250 - (80 * (enemynear,prevstateno = [200,499])))
trigger3 = frontedgebodydist <= 33
trigger3 = (enemynear,statetype = C && enemynear,movetype = A)
trigger3 = (random > 500 || enemynear,time < 2)
[State -1, AI Hop Back]
type = ChangeState
value = 105
triggerall = AILevel && RoundState = 2
triggerall = statetype != A && ctrl
triggerall = enemynear,facing != facing || (frontedgebodydist <= 50 && enemynear,frontedgebodydist <= 75)
triggerall = backedgebodydist > 80
trigger1 = p2dist x = [-20,70]
trigger1 = (enemynear,prevstateno = 5120 && ((enemynear,movetype = A && enemynear,time <= 4) || (random <= 250 + 250 * (enemynear,vel x > 0 && enemynear,vel x <= 5) && enemynear,time <= 15)))
trigger1 = random < (cond((life < lifemax * 0.5) && (life < enemynear,life || life < lifemax * 0.25), 500, 250) * ifelse((enemynear,hitdefattr = SCA,SA,SP,HA,HP), 2, 1))
trigger2 = (p2dist x = [-50,0])
trigger2 = (backedgebodydist > 150 && enemynear,vel x < ifelse(enemynear,statetype = A, enemynear,const(velocity.jump.fwd.x), enemynear,const(velocity.run.fwd.x)-1))
trigger2 = prevstateno != 106
trigger3 = (enemynear,hitdefattr = SC,AT && enemynear,time <= 2)
trigger3 = p2bodydist x = [45,125]
trigger3 = random <= 545-p2bodydist x
trigger4 = (enemynear,stateno = [5200,5299])
trigger4 = (p2bodydist x = [0,25]) && backedgebodydist > 100
trigger4 = enemynear,time <= 4
trigger4 = random <= 150 + 150 * (enemynear,time <= 2 || enemynear,backedgedist < 85)
[State -3, AI Safe Guard]
type = ChangeState
triggerall = AILevel && RoundState = 2
triggerall = ctrl
triggerall = enemynear, hitdefattr != SCA, AT
trigger1 = inguarddist
value = 120
ignorehitpause = 1
[State -1, fireball]
type = ChangeState
value = ifelse(random < 250 && power >= 500, 1120, 1110 - 10 * (p2bodydist x < 150 || enemynear,statetype = A && enemynear,vel x > 0))
triggerall = AILevel && RoundState = 2
triggerall = statetype != A && ctrl
triggerall = (p2bodydist y + (enemynear,vel y * 2) > enemynear,const(size.head.pos.y))
triggerall = (p2bodydist x >= 150 - 50 * (enemynear,vel x < 0 && enemynear,ctrl = 0 || enemynear,backedgedist < 50))
triggerall = enemynear,anim != 40
triggerall = numproj = 0
trigger1 = (random >= 850 - 250 * (enemynear,vel x > 2))
trigger2 = (enemynear,stateno = 5120 && enemynear,animtime <= -(16+((P2BodyDist X)/14)))
[State -1, AI Run]
type = ChangeState
value = 100
triggerall = AILevel && RoundState = 2
triggerall = statetype != A && ctrl
triggerall = (frontedgebodydist > 20 || (enemynear,movetype = H && enemynear,stateno != [120,159]))
triggerall = !inguarddist && !enemy,numproj
; chance
trigger1 = (p2bodydist x + (enemynear,vel x * 3) > 120 + (-p2bodydist y/15))
trigger1 = enemynear,vel x < (enemynear,const(velocity.walk.fwd.x) * cond((enemynear,backedgebodydist < 80 || enemynear,ctrl = 0 && enemynear,animtime > -20-(p2bodydist x/18)), 2, 1))
trigger1 = enemynear,prevstateno != 5120
trigger1 = random < ((((Life*100)/LifeMax) * 0.25) + (enemynear,gethitvar(hittime) * 5) + (250 * (enemynear,life < lifemax * 0.25 && (life > lifemax * 0.25 && life > enemynear,life-100)) || life > enemynear,life-400 || enemynear,movetype = H))
trigger1 = var(58) := 1
; follow up
trigger2 = (p2bodydist x + (enemynear,vel x * 3) > 70)
trigger2 = (enemynear,movetype = H && enemynear,ctrl = 0 && (enemynear,stateno != [120,159]))
trigger2 = enemynear,gethitvar(hittime) >= (5 + cond(p2bodydist x < 100, p2bodydist x / 30, p2bodydist x / 15))
trigger2 = var(58) := 2
;--------------------------------------------------------------------------------------------------------------
; Combos
[State -1, from slp/clp]
type = ChangeState
value = 210
triggerall = AILevel && RoundState = 2
triggerall = statetype != A
trigger1 = stateno = 200 && movecontact
trigger2 = stateno = 400 && movecontact
[State -1, from slp/clp]
type = ChangeState
value = ifelse(moveguarded && enemynear,statetype = C, 1410 + 10 * (random < 250 && power >= 500),ifelse(p2bodydist x >= 25, 1400 + (20 * (random < 250 && power >= 500)), 410))
triggerall = AILevel && RoundState = 2
triggerall = statetype != A
trigger1 = stateno = 210 && movecontact
[State -1, from clk]
type = ChangeState
value = 440
triggerall = AILevel && RoundState = 2
triggerall = statetype != A
trigger1 = stateno = 430 && movecontact
[State -1, from clk]
type = ChangeState
value = 640
triggerall = AILevel && RoundState = 2
triggerall = statetype = A
trigger1 = stateno = 600 && movecontact
[State -1, from clk]
type = ChangeState
value = 610
triggerall = AILevel && RoundState = 2
triggerall = statetype = A
trigger1 = stateno = 640 && movecontact
; Misc.
[State -1, AI Walking]
type = ChangeState
value = 21
triggerall = AILevel && RoundState = 2
triggerall = statetype != A
trigger1 = ctrl
ctrl = 1
;---------------------------------------------------------------------------
;devogun
[State -1, devogun]
type = ChangeState
value = 3004
triggerall = !AILevel
triggerall = command = "dpsuper"
triggerall = power >= 3000
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
trigger10= stateno = 420 && movecontact
trigger10 = stateno = 1400 && movecontact
trigger11 = stateno = 1410 && movecontact
;bobombsuper
[State -1, bobombsuper]
type = ChangeState
value = 3200
triggerall = !AILevel
triggerall = command = "qcbsuper"
triggerall = power >= 1000
trigger1 = (statetype != A) && ctrl
;pipesuper
[State -1, pipesuper]
type = ChangeState
value = 3100
triggerall = !AILevel
triggerall = command = "qcfsuper"
triggerall = power >= 1000
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
trigger10 = stateno = 1400 && movecontact
trigger11 = stateno = 1410 && movecontact
;exstomp
[State -1, exstomp]
type = ChangeState
value = 1302
triggerall = !AILevel
triggerall = command = "exdpk"
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;stomp
[State -1, stomp]
type = ChangeState
value = 1300
triggerall = !AILevel
triggerall = command = "dpk"
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;stomp2
[State -1, stomp2]
type = ChangeState
value = 1301
triggerall = !AILevel
triggerall = command = "dpk2"
triggerall = power >= 500
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;bobomb
[State -1, bobomb]
type = ChangeState
value = 1200
triggerall = !AILevel
triggerall = command = "z"
triggerall = numhelper(1210) < 2
trigger1 = (statetype != A) && ctrl
;bobomb2
;[State -1, bobomb2]
;type = ChangeState
;value = 1201
;triggerall = command = "qcbk2"
;triggerall = numhelper(1210) < 2
;trigger1 = (statetype != A) && ctrl
;exfireball
[State -1, exfireball]
type = ChangeState
value = 1120
triggerall = !AILevel
triggerall = command = "exqcfp"
triggerall = power >= 500
triggerall = numproj = 0
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;fireball
[State -1, fireball]
type = ChangeState
value = 1110
triggerall = !AILevel
triggerall = command = "qcfp2"
triggerall = numproj = 0
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;fireball2
[State -1, fireball2]
type = ChangeState
value = 1100
triggerall = !AILevel
triggerall = command = "qcfp"
triggerall = numproj = 0
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;EX Dino Flatten
[State -1, EX Dino Flatten]
type = ChangeState
value = 1420
triggerall = !AILevel
triggerall = command = "exqcfk"
triggerall = power >= 500
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;Dino Flatten
[State -1, Dino Flatten]
type = ChangeState
value = 1410
triggerall = !AILevel
triggerall = command = "qcfk2"
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;Dino Flatten
[State -1, Dino Flatten]
type = ChangeState
value = 1400
triggerall = !AILevel
triggerall = command = "qcfk"
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;extools
[State -1, extools]
type = ChangeState
value = 1020
triggerall = !AILevel
triggerall = command = "exqcbp"
triggerall = numhelper(1004) = 0
triggerall = numhelper(1005) = 0
triggerall = power >= 500
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;tools
[State -1, tools]
type = ChangeState
value = 1000
triggerall = !AILevel
triggerall = command = "qcbp"
triggerall = numhelper(1001) = 0
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;tools2
[State -1, tools2]
type = ChangeState
value = 1010
triggerall = !AILevel
triggerall = command = "qcbp2"
triggerall = numhelper(1001) = 0
trigger1 = (statetype != A) && ctrl
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 210 && movecontact
trigger4 = stateno = 230 && movecontact
trigger5 = stateno = 240 && movecontact
trigger6 = stateno = 245 && movecontact
trigger7 = stateno = 400 && movecontact
trigger8 = stateno = 410 && movecontact
trigger9 = stateno = 430 && movecontact
;launch
[State -1, upfwd]
Type = changestate
value = 40000
triggerall = command = "upfwd" || command = "up" || AILevel
;triggerall = var(59) = 0 || AILevel
trigger1 = (StateNo = 410)
trigger1 = movecontact
;throw
[state -1, throw]
Type = changestate
value = 800
triggerall = !AILevel
triggerall = command = "c"
trigger1 = (statetype != a) && ctrl
;===========================================================================
;---------------------------------------------------------------------------
;===========================================================================
;---------------------------------------------------------------------------
; Air Dash
;[State -1, Air Dash]
;type = ChangeState
;value = 110
;triggerall = pos y <= -35
;trigger1 = command = "FF"
;trigger1 = statetype = a
;trigger1 = ctrl
; Run Fwd
[State -1, Run Fwd]
type = ChangeState
value = 100
triggerall = !AILevel
trigger1 = command = "FF"
trigger1 = statetype = S
trigger1 = ctrl
;---------------------------------------------------------------------------
; Run Back
[State -1, Run Back]
type = ChangeState
value = 105
triggerall = !AILevel
trigger1 = command = "BB"
trigger1 = statetype = S
trigger1 = ctrl
;---------------------------------------------------------------------------
;===========================================================================
;---------------------------------------------------------------------------
; Taunt
[State -1, Taunt]
type = ChangeState
value = 195
triggerall = !AILevel
triggerall = command = "s"
trigger1 = statetype != A
trigger1 = ctrl
;---------------------------------------------------------------------------
; Stand Stomp
[State -1, Stand Stomp]
type = ChangeState
value = 235
triggerall = !AILevel
triggerall = command = "a" && command = "holdfwd"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno=[100,101])
;---------------------------------------------------------------------------
;Stand OH
[State -1, Stand Overhead]
type = ChangeState
value = 211
triggerall = !AILevel
triggerall = command = "y" && command = "holdfwd"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 230 && movecontact
trigger4 = stateno = 400 && movecontact
trigger5 = stateno = 430 && movecontact
trigger6 = stateno = 205 && movecontact
trigger7 = stateno = 235 && movecontact
trigger8 = stateno = 245 && movecontact
;---------------------------------------------------------------------------
; Stand Light Punch
[State -1, Stand Light Punch]
type = ChangeState
value = 200
triggerall = !AILevel
triggerall = command = "x"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 200 && time >= 6
;---------------------------------------------------------------------------
;Stand Strong Punch
[State -1, Stand Strong Punch]
type = ChangeState
value = 210
triggerall = !AILevel
triggerall = command = "y"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 230 && movecontact
trigger4 = stateno = 400 && movecontact
trigger5 = stateno = 430 && movecontact
trigger6 = stateno = 205 && movecontact
trigger7 = stateno = 235 && movecontact
trigger8 = stateno = 245 && movecontact
;---------------------------------------------------------------------------
; Stand Light Kick
[State -1, Stand Light Kick]
type = ChangeState
value = 230
triggerall = !AILevel
triggerall = command = "a"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno=[100,101])
;---------------------------------------------------------------------------
; Standing Strong Kick
[State -1, Standing Strong Kick]
type = ChangeState
value = 240
triggerall = !AILevel
triggerall = command = "b"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 230 && movecontact
trigger4 = stateno = 400 && movecontact
trigger5 = stateno = 430 && movecontact
trigger6 = stateno = 235 && movecontact
trigger7 = stateno = 205 && movecontact
;---------------------------------------------------------------------------
; Crouching Light Punch
[State -1, Crouching Light Punch]
type = ChangeState
value = 400
triggerall = !AILevel
triggerall = command = "x"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 400 && time >= 6
;---------------------------------------------------------------------------
; Crouching Strong Punch
[State -1, Crouching Strong Punch]
type = ChangeState
value = 410
triggerall = !AILevel
triggerall = command = "y"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 230 && movecontact
trigger4 = stateno = 400 && movecontact
trigger5 = stateno = 430 && movecontact
trigger6 = stateno = 235 && movecontact
trigger7 = stateno = 240 && movecontact
trigger8 = stateno = 210 && movecontact
trigger9 = stateno = 211 && movecontact
trigger10 = stateno = 205 && movecontact
;---------------------------------------------------------------------------
; Crouching Light Kick
[State -1, Crouching Light Kick]
type = ChangeState
value = 430
triggerall = !AILevel
triggerall = command = "a"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 430 && time >= 8
;---------------------------------------------------------------------------
; Crouching Strong Kick
[State -1, Crouching Strong Kick]
type = ChangeState
value = 440
triggerall = !AILevel
triggerall = command = "b"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl || (stateno=[100,101])
trigger2 = stateno = 200 && movecontact
trigger3 = stateno = 230 && movecontact
trigger4 = stateno = 400 && movecontact
trigger5 = stateno = 430 && movecontact
trigger6 = stateno = 235 && movecontact
trigger7 = stateno = 205 && movecontact
;---------------------------------------------------------------------------
; Jump Light Punch
[State -1, Jump Light Punch]
type = ChangeState
value = 600
triggerall = !AILevel
triggerall = command = "x"
trigger1 = statetype = A
trigger1 = ctrl
;---------------------------------------------------------------------------
;Jump Strong Punch
[State -1, Jump Strong Punch]
type = ChangeState
value = 610
triggerall = !AILevel
triggerall = command = "y"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 && movecontact
trigger3 = stateno = 630 && movecontact
trigger4 = stateno = 640 && movecontact
;---------------------------------------------------------------------------
; Jump Light Kick
[State -1, Jump Light Kick]
type = ChangeState
value = 630
triggerall = !AILevel
triggerall = command = "a"
trigger1 = statetype = A
trigger1 = ctrl
;---------------------------------------------------------------------------
; Jump Strong Kick
[State -1, Jump Strong Kick]
type = ChangeState
value = 640
triggerall = !AILevel
triggerall = command = "b"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 && movecontact
trigger3 = stateno = 630 && movecontact
;---------------------------------------------------------------------------