; 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)
; buffer.time = time (optional)
;
; - 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. Each of these
; buttons or directions is referred to as a "symbol".
; 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
; greater-than (>) - means there must be no other keys pressed or released
; between the previous and the current symbol.
; egs. command = a, >~a ;press a and release it without having hit
; ;or released any other keys in between
; You can combine the symbols:
; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release,
; ;then press a and b together
;
; Note: Successive direction symbols are always expanded in a manner similar
; to this example:
; command = F, F
; is expanded when MUGEN reads it, to become equivalent to:
; command = F, >~F, >F
;
; It is recommended that for most "motion" commads, eg. quarter-circle-fwd,
; you start off with a "release direction". This makes the command easier
; to do.
;
; - time (optional)
; Time allowed to do the command, given in game-ticks. The default
; value for this is set in the [Defaults] section below. A typical
; value is 15.
;
; - buffer.time (optional)
; Time that the command will be buffered for. If the command is done
; successfully, then it will be valid for this time. The simplest
; case is to set this to 1. That means that the command is valid
; only in the same tick it is performed. With a higher value, such
; as 3 or 4, you can get a "looser" feel to the command. The result
; is that combos can become easier to do because you can perform
; the command early. Attacks just as you regain control (eg. from
; getting up) also become easier to do. The side effect of this is
; that the command is continuously asserted, so it will seem as if
; you had performed the move rapidly in succession during the valid
; time. To understand this, try setting buffer.time to 30 and hit
; a fast attack, such as KFM's light punch.
; The default value for this is set in the [Defaults] section below.
; This parameter does not affect hold-only commands (eg. /F). It
; will be assumed to be 1 for those commands.
;
; 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 = 15
; Default value for the "buffer.time" parameter of a Command. Minimum 1,
; maximum 30.
command.buffer.time = 3
;-| Super Motions |--------------------------------------------------------
;The following two have the same name, but different motion.
;Either one will be detected by a "command = TripleKFPalm" trigger.
;Time is set to 20 (instead of default of 15) to make the move
;easier to do.
;
[Command]
name = "Super Star"
command = ~D,DF,$F,D,DF,$F,z
time = 30
buffer.time = 3
[Command]
name = "Mario Finale"
command = ~D,DB,$B,D,DB,$B,z
time = 30
buffer.time = 3
[Command]
name = "Super Hammer"
command = ~D,DF,$F,D,DF,$F,y
time = 30
buffer.time = 3
[Command]
name = "F.L.U.D.D"
command = ~D,DB,$B,D,DB,$B,y
time = 30
buffer.time = 3
[Command]
name = "Super Flame"
command = ~D,DF,$F,D,DF,$F,x
time = 30
buffer.time = 3
[Command]
name = "Galaxy Spin"
command = ~D,DB,$B,D,DB,$B,x
time = 30
buffer.time = 3
;-| Special Motions |------------------------------------------------------
[Command]
name = "Fireball_x"
command = ~D, DF, $F, x
time = 15
buffer.time = 3
[Command]
name = "Fireball_y"
command = ~D, DF, $F, y
time = 15
buffer.time = 3
[Command]
name = "Fireball_z"
command = ~D, DF, $F, z
time = 15
buffer.time = 3
[Command]
name = "Fireball_EX"
command = ~D, DF, $F, x+y
time = 15
buffer.time = 3
[Command]
name = "Fireball_EX"
command = ~D, DF, $F, x+z
time = 15
buffer.time = 3
[Command]
name = "Fireball_EX"
command = ~D, DF, $F, y+z
time = 15
buffer.time = 3
[Command]
name = "Tornado_x"
command = ~D, DB, $B, x
time = 15
buffer.time = 3
[Command]
name = "Tornado_y"
command = ~D, DB, $B, y
time = 15
buffer.time = 3
[Command]
name = "Tornado_z"
command = ~D, DB, $B, z
time = 15
buffer.time = 3
[Command]
name = "Tornado_EX"
command = ~D, DB, $B, x+y
time = 15
buffer.time = 3
[Command]
name = "Tornado_EX"
command = ~D, DB, $B, x+z
time = 15
buffer.time = 3
[Command]
name = "Tornado_EX"
command = ~D, DB, $B, y+z
time = 15
buffer.time = 3
[Command]
name = "SuperJumpPunch_x"
command = ~F, D, $F, x
time = 15
buffer.time = 3
[Command]
name = "SuperJumpPunch_y"
command = ~F, D, $F, y
time = 15
buffer.time = 3
[Command]
name = "SuperJumpPunch_z"
command = ~F, D, $F, z
time = 15
buffer.time = 3
[Command]
name = "SuperJumpPunch_EX"
command = ~F, D, $F, x+y
time = 15
buffer.time = 3
[Command]
name = "SuperJumpPunch_EX"
command = ~F, D, $F, y+z
time = 15
buffer.time = 3
[Command]
name = "SuperJumpPunch_EX"
command = ~F, D, $F, x+z
time = 15
buffer.time = 3
[Command]
name = "R-SuperJumpPunch_x"
command = ~B, D, $B, x
time = 15
buffer.time = 3
[Command]
name = "R-SuperJumpPunch_y"
command = ~B, D, $B, y
time = 15
buffer.time = 3
[Command]
name = "R-SuperJumpPunch_z"
command = ~B, D, $B, z
time = 15
buffer.time = 3
[Command]
name = "R-SuperJumpPunch_EX"
command = ~B, D, $B, x+y
time = 15
buffer.time = 3
[Command]
name = "R-SuperJumpPunch_EX"
command = ~B, D, $B, y+z
time = 15
buffer.time = 3
[Command]
name = "R-SuperJumpPunch_EX"
command = ~B, D, $B, x+z
time = 15
buffer.time = 3
[Command]
name = "GroundPound_x"
command = ~D, D, x
time = 15
buffer.time = 3
[Command]
name = "GroundPound_y"
command = ~D, D, y
time = 15
buffer.time = 3
[Command]
name = "GroundPound_z"
command = ~D, D, z
time = 15
buffer.time = 3
[Command]
name = "GroundPound_EX"
command = ~D, D, x+y
time = 15
buffer.time = 3
[Command]
name = "GroundPound_EX"
command = ~D, D, y+z
time = 15
buffer.time = 3
[Command]
name = "GroundPound_EX"
command = ~D, D, x+z
time = 15
buffer.time = 3
[Command]
name = "Cape_x"
command = ~B, DB, D, DF, $F, x
time = 24
buffer.time = 3
[Command]
name = "Cape_y"
command = ~B, DB, D, DF, $F, y
time = 24
buffer.time = 3
[Command]
name = "Cape_z"
command = ~B, DB, D, DF, $F, z
time = 24
buffer.time = 3
[Command]
name = "Cape_EX"
command = ~B, DB, D, DF, $F, x+y
time = 24
buffer.time = 3
[Command]
name = "Cape_EX"
command = ~B, DB, D, DF, $F, y+z
time = 24
buffer.time = 3
[Command]
name = "Cape_EX"
command = ~B, DB, D, DF, $F, x+z
time = 24
buffer.time = 3
[Command]
name = "R-Cape_x"
command = ~F, DF, D, DB, $B, x
time = 24
buffer.time = 3
[Command]
name = "R-Cape_y"
command = ~F, DF, D, DB, $B, y
time = 24
buffer.time = 3
[Command]
name = "R-Cape_z"
command = ~F, DF, D, DB, $B, z
time = 24
buffer.time = 3
[Command]
name = "R-Cape_EX"
command = ~F, DF, D, DB, $B, x+y
time = 24
buffer.time = 3
[Command]
name = "R-Cape_EX"
command = ~F, DF, D, DB, $B, y+z
time = 24
buffer.time = 3
[Command]
name = "R-Cape_EX"
command = ~F, DF, D, DB, $B, x+z
time = 24
buffer.time = 3
[Command]
name = "Dash Attack" ;Required (do not remove)
command = ~F, >F, x+y
time = 15
buffer.time = 3
[Command]
name = "Dash Attack" ;Required (do not remove)
command = ~F, >F, y+z
time = 15
buffer.time = 3
[Command]
name = "Dash Attack" ;Required (do not remove)
command = ~F, >F, x+z
time = 15
buffer.time = 3
;-| Double Tap |-----------------------------------------------------------
[Command]
name = "FF" ;Required (do not remove)
command = ~F, >F
time = 5
buffer.time = 3
[Command]
name = "BB" ;Required (do not remove)
command = ~B, >B
time = 5
buffer.time = 3
;-| 2/3 Button Combination |-----------------------------------------------
[Command]
name = "recovery";Required (do not remove)
command = x+y
time = 1
[Command]
name = "recovery";Required (do not remove)
command = x+z
time = 1
[Command]
name = "recovery";Required (do not remove)
command = y+z
time = 1
;-| Dir + Button |---------------------------------------------------------
[Command]
name = "down_a"
command = /$D,a
time = 1
[Command]
name = "down_b"
command = /$D,b
time = 1
;-| Single Button |---------------------------------------------------------
[Command]
name = "a"
command = a
time = 1
buffer.time = 3
[Command]
name = "b"
command = b
time = 1
buffer.time = 3
[Command]
name = "c"
command = c
time = 1
buffer.time = 3
[Command]
name = "x"
command = x
time = 1
buffer.time = 3
[Command]
name = "y"
command = y
time = 1
buffer.time = 3
[Command]
name = "z"
command = z
time = 1
buffer.time = 3
[Command]
name = "start"
command = s
time = 1
buffer.time = 3
;-| Hold Dir |--------------------------------------------------------------
[Command]
name = "holdfwd";Required (do not remove)
command = /$F
time = 1
[Command]
name = "holdback";Required (do not remove)
command = /$B
time = 1
[Command]
name = "holdup" ;Required (do not remove)
command = /$U
time = 1
[Command]
name = "holddown";Required (do not remove)
command = /$D
time = 1
[Command]
name = "holda"
command = /a
time = 1
[Command]
name = "holdb"
command = /b
time = 1
[Command]
name = "holdc"
command = /c
time = 1
[Command]
name = "holdx"
command = /x
time = 1
[Command]
name = "holdy"
command = /y
time = 1
[Command]
name = "holdz"
command = /z
time = 1
[Command]
name = "holdstart"
command = /s
time = 1
[Command]
name = "fwd"
command = $F
time = 1
[Command]
name = "back"
command = $B
time = 1
[Command]
name = "up"
command = $U
time = 1
[Command]
name = "down"
command = $D
time = 1
[Command]
name = "SuperJump"
command = $D, $U
buffer.time = 3
;---------------------------------------------------------------------------
; 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]
;==============================================================================================
; Start AI
;==============================================================================================
; Setup
[state -1, AI Detect Projectile System]
type = helper
trigger1 = ailevel ;M.U.G.E.N 1.0+
trigger1 = !numhelper(33333333)
name = "AI Detect Projectile System"
ID = 33333333
stateno = 33333333
postype = p1
ownpal = 1
keyctrl = 0
size.xscale = 1.0
size.yscale = 1.0
supermovetime = 2147483647
pausemovetime = 2147483647
ignorehitpause = 1
[state -1, AI Blocking Helper]
type = helper
triggerall = ailevel
trigger1 = !numhelper(15900)
name = "AI Blocking Helper"
ID = 15900
stateno = 15900
postype = p1
ownpal = 1
keyctrl = 0
supermovetime = 2147483647
pausemovetime = 2147483647
ignorehitpause = 1
[state -1, AI Memory Helper]
type = helper
triggerall = ailevel
trigger1 = !numhelper(18000)
name = "AI Memory Helper"
ID = 18000
stateno = 18000
postype = p1
ownpal = 1
keyctrl = 0
supermovetime = 2147483647
pausemovetime = 2147483647
ignorehitpause = 1
[state -1, AI Memory Helper]
type = helper
triggerall = ailevel
trigger1 = !numhelper(18100)
name = "AI Right Bound"
ID = 18100
stateno = 18100
pos = 0,0
ownpal = 1
keyctrl = 0
supermovetime = 2147483647
pausemovetime = 2147483647
ignorehitpause = 1
[state -1, AI Memory Helper]
type = helper
triggerall = ailevel
trigger1 = !numhelper(18200)
name = "AI Left Bound"
ID = 18200
stateno = 18100
pos = 0,0
ownpal = 1
keyctrl = 0
supermovetime = 2147483647
pausemovetime = 2147483647
ignorehitpause = 1
[state -1, yaccel]
type = varset
trigger1 = fvar(18) != enemynear(var(58)),const(movement.yaccel)
trigger1 = enemynear(var(58)),stateno != [5000,5210]
trigger1 = enemynear(var(58)),vel y != 0
fv = 18
value = enemynear(var(58)),const(movement.yaccel)
ignorehitpause = 1
[state -1, yaccel]
type = varset
trigger1 = fvar(18) != enemynear(var(58)),gethitvar(yaccel)
trigger1 = enemynear(var(58)),stateno = [5000,5210]
fv = 18
value = enemynear(var(58)),gethitvar(yaccel)
ignorehitpause = 1
[state -1, yaccel]
type = varset
trigger1 = fvar(18) != 0
trigger1 = enemynear(var(58)),vel y = 0
fv = 18
value = 0
ignorehitpause = 1
[state -1, Ground Velocity]
type = varset
triggerall = fvar(17) != 0
trigger1 = !AILevel
trigger2 = statetype = A
trigger3 = (stateno != [100,101]) && stateno != 911
fvar(17) = 0
[state -1, Ground Velocity]
type = varset
triggerall = AILevel
triggerall = statetype != A
trigger1 = (stateno = [100,101]) || stateno = 911
trigger1 = vel x != 0
fvar(17) = (vel x * 0.85)
[state -1, Enemy X-Velocity]
type = varset
triggerall = !AILevel
trigger1 = fvar(35) != 0
fvar(35) = 0
[state -1, Enemy X-Velocity]
type = varset
triggerall = AILevel
triggerall = !ishelper
triggerall = facing != enemynear(var(58)),facing
trigger1 = fvar(35) != enemynear(var(58)),vel x
fvar(35) = enemynear(var(58)),vel x
[state -1, Enemy X-Velocity]
type = varset
triggerall = AILevel
triggerall = !ishelper
triggerall = facing = enemynear(var(58)),facing
trigger1 = fvar(35) != enemynear(var(58)),vel x
fvar(35) = -enemynear(var(58)),vel x
[State -3, Blocking Methods]
type = VarSet
triggerall = AILevel
trigger1 = helper(15900),var(41) != 2 || !numhelper(15900)
var(44) = 1
ignorehitpause = 1
[State -3, Blocking Methods]
type = VarSet
triggerall = AILevel
triggerall = numhelper(15900)
trigger1 = enemynear(var(58)),hitdefattr = A,AA,AP,AT || enemynear(var(58)),statetype = A
trigger2 = PlayerIdExist(helper(33333333),var(4))
trigger2 = PlayerID(helper(33333333),var(4)), statetype = A
trigger3 = PlayerIdExist(helper(33333333),var(4))
trigger3 = PlayerID(helper(33333333),var(4)), hitdefattr = A,AA,AP
trigger4 = helper(15900),var(41) = 2
var(44) = 0
ignorehitpause = 1
[State -3, Blocking Methods]
type = VarSet
triggerall = AILevel
triggerall = numhelper(15900)
trigger1 = enemynear(var(58)),hitdefattr = C,AA,AP,AT || enemynear(var(58)),statetype = C
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 = helper(15900),var(41) = 1
var(44) = 1
ignorehitpause = 1
[State -3, Check Frame Advantage]
type = VarSet
triggerall = AILevel
triggerall = var(46) > 0
trigger1 = enemynear(var(58)),stateno != var(45)
trigger1 = 1 || var(45):= 0
var(46) = 0
[State -3, Check Frame Advantage]
type = VarSet
triggerall = AILevel && RoundState = 2
triggerall = enemynear(var(58)),movetype = A
triggerall = enemynear(var(58)),movecontact
triggerall = ctrl && enemynear(var(58)),ctrl = 0
trigger1 = 1 || var(45):= enemynear(var(58)),stateno
var(46) = -(enemynear(var(58)),animtime)
[State -1, Default Guarding Disabled]
type = AssertSpecial
trigger1 = AILevel
flag = nostandguard
flag2 = nocrouchguard
flag3 = noairguard
ignorehitpause = 1
[State -1, Default Walking Disabled]
type = AssertSpecial
trigger1 = AILevel
flag = nowalk
ignorehitpause = 1
;==============================================================================================
; AI Tech / Getup
;==============================================================================================
[State 5050, AI Fall Recovery]
type = ChangeState
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = StateNo = 5050
triggerall = Vel Y > 0
triggerall = Pos Y >= Const(movement.air.gethit.groundrecover.ground.threshold)
triggerall = alive
triggerall = AILevel
trigger1 = CanRecover
value = 5200 ;HITFALL_RECOVER
[State 5050, AI Fall Recovery]
type = SelfState
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = StateNo = 5050
triggerall = helper(18000),fvar(25) >= 1 || time >= floor(30-(30*helper(18000),fvar(25))) || random <= 10
triggerall = alive
triggerall = Vel Y > Const(movement.air.gethit.airrecover.threshold)
triggerall = helper(18000),fvar(25) != 0
triggerall = helper(18000),fvar(25) >= 1 || random <= ceil(500*helper(18000),fvar(25))
triggerall = CanRecover
trigger1 = fvar(0) >= 100 || (fvar(1) <= -100 && enemynear(var(58)),vel y > 0) || fvar(1) <= -150
trigger2 = enemynear(var(58)),ctrl = 0
trigger2 = fvar(0) >= 50 || (fvar(1) <= -50 && enemynear(var(58)),vel y > 0) || fvar(1) <= -100
trigger3 = enemynear(var(58)),ctrl = 0
trigger3 = enemynear(var(58)),stateno >= 200
trigger3 = enemynear(var(58)),animtime <= -30-1
value = 5210
[State 5050, AI Get Up From Knockdown]
type = ChangeState
value = 5120
triggerall = AILevel && RoundState = 2 && alive > 0
trigger1 = stateno = 5110 && time >= 0
;==============================================================================================
; AI Combos
;==============================================================================================
[State 0, AI Go for a Finisher]
type = varset
trigger1 = AILevel
var(54) = (var(25) && (var(27)||power<500) && var(28))
[State 0, AI Enable Combo Movement]
type = varset
triggerall = var(49) > 0
trigger1 = enemynear(var(58)),movetype != H || (enemynear(var(58)),stateno = [2210,2211])
trigger2 = enemynear(var(58)),ctrl > 0
trigger3 = var(25) > 1
var(49) = 0
[State 0, AI Enable Combo Movement]
type = varset
triggerall = AILevel
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = enemynear(var(58)),movetype = H
trigger1 = (enemynear(var(58)),stateno = [1025,1028]) || (enemynear(var(58)),stateno = [10270,10280]) || (enemynear(var(58)),stateno = [1425,1427])
trigger2 = enemynear(var(58)),stateno != 2210
trigger2 = enemynear(var(58)),hitfall = 1
trigger2 = enemynear(var(58)),canrecover = 0
var(49) = 1
[State -1, AI Safety Super Star]
type = ChangeState
value = 2500
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = power >= 3000 && !numhelper(3500)
triggerall = var(49) <= 0
triggerall = enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A || (((stateno = [1100,1105]) || (stateno = 1200 || stateno = 1205 || stateno = 1210 || stateno = 1215 || stateno = 1220) || (stateno = [1300,1315]) || (stateno = 1420)) && moveguarded) || movereversed
trigger1 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger2 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger3 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger4 = (stateno = 500 && (movecontact||movereversed))
trigger5 = (stateno = [1000,1005]) && var(37)
trigger6 = (stateno = [1100,1105]) || (stateno = 1200 || stateno = 1205 || stateno = 1210 || stateno = 1215 || stateno = 1220) || (stateno = [1300,1315]) || (stateno = 1420)
trigger6 = (movecontact||movereversed)
trigger7 = stateno = 1315 && var(37)
[State -1, AI Safety Super Flame]
type = ChangeState
value = 2000
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = power >= 1000 && !numhelper(3500)
triggerall = inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A
triggerall = enemynear(var(58)),ctrl = 0
triggerall = enemynear(var(58)),stateno != [0,199]
triggerall = enemynear(var(58)),stateno != [2000,5999]
triggerall = enemynear(var(58)),stateno != 5120 || enemynear(var(58)),animtime >= -6-1
triggerall = enemynear(var(58)),statetype != L || enemynear(var(58)),stateno != [700,703]
triggerall = fvar(0) = [-50+floor(9*(fvar(35))),50+floor(9*(fvar(35)))]
triggerall = fvar(1) >= -120-floor(9*(enemynear(var(58)),vel y)+(9*(9+1)/2)*fvar(18))
trigger1 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger2 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger3 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger4 = (stateno = 500 && (movecontact||movereversed))
trigger5 = (stateno = [1000,1005]) && var(37)
trigger6 = (stateno = [1100,1105]) || (stateno = 1200 || stateno = 1205 || stateno = 1210 || stateno = 1215 || stateno = 1220) || (stateno = [1300,1315]) || (stateno = 1420)
trigger6 = (movecontact||movereversed)
trigger7 = stateno = 1315 && var(37)
[State -1, AI Safety Galaxy Spin]
type = ChangeState
value = 2100
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = power >= 1000 && !numhelper(3500)
triggerall = enemynear(var(58)),ctrl = 0
triggerall = enemynear(var(58)),movetype != H
triggerall = enemynear(var(58)),statetype != L
triggerall = fvar(0) = [-70+floor(2*(fvar(35))),70+floor(2*(fvar(35)))]
triggerall = fvar(1) = [-60-floor(2*(enemynear(var(58)),vel y)+(2*(2+1)/2)*fvar(18)),60-floor(2*(enemynear(var(58)),vel y)+(2*(2+1)/2)*fvar(18))]
triggerall = inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A
trigger1 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger2 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger3 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger4 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
trigger5 = (stateno = [1000,1005]) && var(37)
trigger6 = (stateno = [1050,1055]) && var(37)
trigger7 = (stateno = [1100,1125]) || (stateno = [1200,1220]) || (stateno = [1300,1315]) || (stateno = [1330,1345]) || (stateno = [1400,1420])
trigger7 = (movecontact||movereversed)
trigger8 = (stateno = 1315 || stateno = 1345) && var(37)
[State -1, AI Safety Super Jump Punch]
type = ChangeState
value = var(55)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = ((stateno = [200,500]) && (movecontact||movereversed))
triggerall = inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A
triggerall = enemynear(var(58)),ctrl = 0
triggerall = enemynear(var(58)),stateno != [0,199]
triggerall = enemynear(var(58)),stateno != [2000,5999]
triggerall = enemynear(var(58)),animtime <= -6 || enemynear(var(58)),statetype = A
triggerall = !numhelper(3500)
; Low Opponents (Strong/EX)
trigger1 = fvar(0) = [-10,65+floor(6*(fvar(35)))]
trigger1 = fvar(1) >= -50-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18))
trigger1 = var(55):= 1210+5*(power>=500&&random<=floor(power/3)) || 1
; Air Opponents (EX)
trigger2 = enemynear(var(58)),statetype = A
trigger2 = power >= 500 && random <= floor(power/3)
trigger2 = ((fvar(0) = [-10,90+floor(7*(fvar(35)))]) && (fvar(1) = [-90-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18)),-10])) || ((fvar(0) = [90,170+floor(7*(fvar(35)))]) && (fvar(1) = [-170-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18)),-90]))
trigger2 = var(55):= 1215 || 1
; Air Opponents (Medium)
trigger3 = enemynear(var(58)),statetype = A
trigger3 = ((fvar(0) = [-10,90+floor(7*(fvar(35)))]) && (fvar(1) = [-90-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18)),-10]))
trigger3 = var(55):= 1205 || 1
[State -1, SL Combos]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = (stateno = 200 || stateno = 201) && movecontact
; SL 1/2 to CM
trigger1 = enemynear(var(58)),stateno = [120,159]
trigger1 = enemynear(var(58)),statetype = S
trigger1 = var(52):= 410 || 1
; SL 1 to SLP 2
trigger2 = stateno = 200
trigger2 = var(52):= 201 || 1
; SL 2 to SM
trigger3 = stateno = 201
trigger3 = var(52):= 210 || 1
[State -1, CL Combos]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = stateno = 400 && movecontact
; CL to CL
trigger1 = enemynear(var(58)),statetype != A && enemynear(var(58)),statetype != L
trigger1 = fvar(0) <= 15+floor(3*(enemynear(var(58)),vel x)+floor(3*(fvar(17)))*facing*enemynear(var(58)),facing*-1)
trigger1 = var(52):= 400 || 1
; CL to SM
trigger2 = enemynear(var(58)),statetype = A || enemynear(var(58)),statetype = L
trigger2 = var(52):= 210 || 1
; CL to CM
trigger3 = var(52):= 410 || 1
[State -1, SM/CM Combos]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = (stateno = 210 || stateno = 410) && movecontact
; SM to CH
trigger1 = enemynear(var(58)),stateno = [120,159]
trigger1 = enemynear(var(58)),statetype = S
trigger1 = var(52):= 420 || 1
; SM to SH
trigger2 = var(52):= 220 || 1
[State -1, Heavy Combos Finisher]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = (stateno = 220 || stateno = 420) && movecontact
triggerall = var(54) > 0
; Go for Finale Attempt
trigger1 = power >= 3000
trigger1 = var(52):= 500 || 1
; SH to Super Hammer or F.L.U.U.D
trigger2 = power >= 2000
trigger2 = var(52):= cond(random <= 500, 2300, 2200) || 1
; Go for Galaxy Spin Attempt
trigger3 = power >= 1000
trigger3 = var(52):= 500 || 1
; SH to EX Coin Punch
trigger4 = power >= 500
trigger4 = var(52):= 1215 || 1
; SH to Coin Punch
trigger5 = var(52):= 1210 || 1
[State -1, Heavy Combos]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = (stateno = 220 || stateno = 420) && movecontact
triggerall = var(54) = 0
; SH to EX Cape
trigger1 = moveguarded
trigger1 = power >= 500
trigger1 = var(52):= 1315 || 1
; SH to Launcher
trigger2 = movehit
trigger2 = fvar(0) <= 50+floor(7*(enemynear(var(58)),vel x)+floor(7*(fvar(17)))*facing*enemynear(var(58)),facing*-1)
trigger2 = var(52):= 500 || 1
; SH to Coin Punch
trigger3 = movehit
trigger3 = fvar(0) = [50,65]
trigger3 = var(52):= 1210 || 1
; SH to EX Fireball
trigger4 = power >= 500
trigger4 = random <= floor(power/3)
trigger4 = var(52):= 1005 || 1
; SH to Fireball
trigger5 = var(52):= 1002 || 1
[State -1, Special Cancel Coin Punches]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = ((stateno = 1201 || stateno = 1206 || stateno = 1211) && time >= 5) || (stateno = 1216 && time >= 7)
triggerall = enemynear(var(58)),movetype = H
triggerall = movecontact
; Mario Finale
trigger1 = power >= 3000
trigger1 = var(52):= 2400 || 1
; F.L.U.U.D
trigger2 = power >= 2000
trigger2 = var(52):= 2300 || 1
; Galaxy Spin
trigger3 = movehit
trigger3 = power >= 1000
trigger3 = var(52):= 2100 || 1
[State -1, Special Cancel Projectiles]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = (stateno = [1000,1055]) || (stateno = 1315 || stateno = 1345)
triggerall = enemynear(var(58)),movetype = H
triggerall = var(37) > 0
; Mario Finale
trigger1 = power >= 3000
trigger1 = var(52):= 2400 || 1
; F.L.U.U.D
trigger2 = power >= 2000
trigger2 = var(52):= 2300 || 1
; Galaxy Spin
trigger3 = enemynear(var(58)),stateno != [120,159]
trigger3 = fvar(0) = [-70+floor(2*(enemynear(var(58)),vel x)*facing*enemynear(var(58)),facing*-1),70+floor(2*(enemynear(var(58)),vel x)*facing*enemynear(var(58)),facing*-1)]
trigger3 = fvar(1) = [-60-floor(2*(enemynear(var(58)),vel y)+(2*(2+1)/2)*fvar(18)),60-floor(2*(enemynear(var(58)),vel y)+(2*(2+1)/2)*fvar(18))]
trigger3 = power >= 1000
trigger3 = var(52):= 2100 || 1
[State -1, AI Crouching Light Punch]
type = ChangeState
value = 600
triggerall = AILevel && RoundState = 2
triggerall = statetype = A && ctrl
triggerall = fvar(0) = [-10,35+floor(4*(enemynear(var(58)),vel x)+floor(4*(vel x)))]
triggerall = fvar(1) = [-35-floor(4*(enemynear(var(58)),vel y)+(4*(4+1)/2)*fvar(18)-floor(4*vel y)-(4*(4+1)/2)*0.47),35-floor(4*(enemynear(var(58)),vel y)+(4*(4+1)/2)*fvar(18)-floor(4*vel y)-(4*(4+1)/2)*0.47)]
triggerall = pos Y + 4 * vel y + const(movement.yaccel)*4*8/2 < 0
trigger1 = stateno = [4000,4001]
[State -1, Air Combos]
type = ChangeState
value = var(52)
triggerall = AILevel && RoundState = 2
triggerall = statetype = A
triggerall = movecontact
; Normals
trigger1 = stateno = 600 || stateno = 610
trigger1 = var(52):= stateno+10 || 1
; Super
trigger2 = stateno = 620
trigger2 = var(54) > 0
trigger2 = enemynear(var(58)),statetype = A
trigger2 = power >= 1000
trigger2 = var(52):= cond(power >= 3000 && frontedgedist >= 50, 2400, cond(power >= 2000, 2300, 2100)) || 1
; EX Tornado
trigger3 = stateno = 620
trigger3 = !var(27)
trigger3 = enemynear(var(58)),statetype = A
trigger3 = power >= 500
trigger3 = var(52):= 1125 || 1
; Ground Pound
trigger4 = stateno = 620
trigger4 = !var(28)
trigger4 = enemynear(var(58)),statetype = A
trigger4 = var(52):= 1410+5*(power>=500&&random<=floor(power/3)) || 1
; Special
trigger5 = stateno = 620
trigger5 = var(52):= 700 || 1
; Launcher Setup
[State -1, Launcher Follow-Up]
type = ChangeState
value = 500
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = ctrl || stateno = 22 || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),movetype = H
triggerall = enemynear(var(58)),statetype != L
triggerall = enemynear(var(58)),stateno != [120,159]
triggerall = fvar(0) = [-30,30+floor(7*(fvar(35))+floor(7*(fvar(17))))]
triggerall = fvar(1) >= -70-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18))
trigger1 = var(49) > 0
[State -1, Crouch Medium Kick]
type = ChangeState
value = 410
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || stateno = 22 || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),stateno != 0
triggerall = enemynear(var(58)),stateno != 5120
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [21,35+floor(6*(fvar(35)))+floor(6*(fvar(17)))]
triggerall = fvar(1) >= 0-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18)) || enemynear(var(58)),statetype = L
trigger1 = enemynear(var(58)),statetype = L
trigger1 = var(49) > 0
[State -1, Crouch Light Kick]
type = ChangeState
value = 400
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || stateno = 22 || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),stateno != 0
triggerall = enemynear(var(58)),stateno != 5120
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [-10,20+floor(3*(fvar(35))+floor(3*(fvar(17))))]
triggerall = fvar(1) >= 0-floor(3*(enemynear(var(58)),vel y)+(3*(3+1)/2)*fvar(18)) || enemynear(var(58)),statetype = L
trigger1 = enemynear(var(58)),statetype = L
trigger1 = var(49) > 0
[State -1, AI Walking]
type = ChangeState
value = 22
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = ctrl || stateno = 100
triggerall = fvar(0) = [-10,10]
trigger1 = enemynear(var(58)),stateno != 703 || var(25) <= 1
trigger1 = enemynear(var(58)),statetype != L
trigger1 = var(49) > 0
[State -1, AI Running]
type = ChangeState
value = 100
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = ctrl || stateno = 100
triggerall = stateno != 100
triggerall = fvar(0) > 10
trigger1 = enemynear(var(58)),stateno != 703 || var(25) <= 1
trigger1 = var(49) > 0
;==============================================================================================
; AI Tick Throw
;==============================================================================================
[State -1, AI Throw]
type = ChangeState
value = 800
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = enemynear(var(58)),gethitvar(hittime) < 0
triggerall = enemynear(var(58)),statetype != L && ((enemynear(var(58)),statetype != A && statetype != A) || (enemynear(var(58)),statetype = A && statetype = A))
triggerall = enemynear(var(58)),prevstateno != [5200,5210]
triggerall = enemynear(var(58)),hitdefattr != SCA,HA,HP,HT
triggerall = helper(18000),fvar(9) <= 0
triggerall = fvar(0) = [-15,15+(10*(stateno = 100 || stateno = 110))+floor(fvar(17))]
triggerall = fvar(1) = [-35,35]
trigger1 = stateno = 23
[State -1, AI Walking (tick throw)]
type = ChangeState
value = 23
triggerall = AILevel && RoundState = 2
triggerall = statetype != A
triggerall = stateno != [100,101]
triggerall = fvar(0) = [-10,40]
triggerall = !inguarddist
triggerall = ctrl
trigger1 = enemynear(var(58)),statetype != A
trigger1 = enemynear(var(58)),stateno = [120,159]
trigger1 = enemynear(var(58)),gethitvar(hittime) > 0
ctrl = 0
;==============================================================================================
; Anti-Projectile Options
;==============================================================================================
[State -1, AI Cape]
type = ChangeState
value = var(55)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
triggerall = enemynear(var(58)),statetype != L || enemynear(var(58)),stateno = 5120
triggerall = fvar(0) >= 50
triggerall = playeridexist(helper(33333333),var(4))
triggerall = cond(numhelper(33333333),helper(33333333), cond(1, var(20) := 1, 0), 0) ; the 15 in "var(20) := 15" represents the 15th time this trigger was used. the number should be different everytime this is added/used.
triggerall = cond(helper(33333333),numexplod((helper(33333333),var(20)*100000000)+PlayerID(helper(33333333),var(4)),stateno) = 0, 1, helper(33333333),numexplod((helper(33333333),var(20)*100000000)+abs(floor(PlayerID(helper(33333333),var(4)),vel x))) = 0)
; EX Cape
trigger1 = power >= 500
trigger1 = fvar(1) = [-150,150]
trigger1 = playerid(helper(33333333),var(4)), pos y = [-150,150]
trigger1 = (((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) - const(size.ground.front) - PlayerID(helper(33333333),var(4)),const(size.ground.front)) / (PlayerId(helper(33333333),var(4)),vel x) = [5,30]
trigger1 = random <= floor(power/2) || prevstateno = 951
trigger1 = var(55):= 1315+(30*(statetype = A)) || 1
; Strong Cape
trigger2 = fvar(1) = [-100,100]
trigger2 = playerid(helper(33333333),var(4)), pos y = [-100,100]
trigger2 = (((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) - const(size.ground.front) - PlayerID(helper(33333333),var(4)),const(size.ground.front)) / (PlayerId(helper(33333333),var(4)),vel x) = [9,13]
trigger2 = var(55):= 1310+(30*(statetype = A)) || 1
; Medium Cape
trigger3 = fvar(1) = [-100,100]
trigger3 = playerid(helper(33333333),var(4)), pos y = [-100,100]
trigger3 = (((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) - const(size.ground.front) - PlayerID(helper(33333333),var(4)),const(size.ground.front)) / (PlayerId(helper(33333333),var(4)),vel x) = [7,11]
trigger3 = var(55):= 1305+(30*(statetype = A)) || 1
; Light Cape
trigger4 = fvar(1) = [-100,100]
trigger4 = playerid(helper(33333333),var(4)), pos y = [-100,100]
trigger4 = (((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) - const(size.ground.front) - PlayerID(helper(33333333),var(4)),const(size.ground.front)) / (PlayerId(helper(33333333),var(4)),vel x) = [5,9]
trigger4 = var(55):= 1300+(30*(statetype = A)) || 1
[State -1, AI Roll past Projectile]
type = ChangeState
value = 900
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = ctrl || (stateno = [21,23]) || (stateno = [100,101]) || (stateno = [120,149])
triggerall = enemynear(var(58)),ctrl = 0 || fvar(0) >= 140
triggerall = enemynear(var(58)),animtime <= -10 || fvar(0) >= 140
triggerall = fvar(0) >= 50
trigger1 = PlayerIdExist(helper(33333333),var(4))
trigger1 = cond(numhelper(33333333),helper(33333333), cond(1, var(20) := 2, 0), 0) ; the 15 in "var(20) := 15" represents the 15th time this trigger was used. the number should be different everytime this is added/used.
trigger1 = cond(helper(33333333),numexplod((helper(33333333),var(20)*100000000)+PlayerID(helper(33333333),var(4)),stateno) = 0, 1, helper(33333333),numexplod((helper(33333333),var(20)*100000000)+abs(floor(PlayerID(helper(33333333),var(4)),vel x))) = 0)
trigger1 = PlayerID(helper(33333333),var(4)), vel x != 0 ; Avoid "Division by Zero" debug overflow
trigger1 = (PlayerId(helper(33333333),var(4)), p2bodydist x) / (PlayerId(helper(33333333),var(4)), vel x) > 1
trigger1 = (PlayerId(helper(33333333),var(4)), p2bodydist x) / (PlayerId(helper(33333333),var(4)), vel x) < 20
[State -1, AI Jump over Projectile (Neu Jump)]
type = ChangeState
value = 43
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = ctrl || (stateno = [21,23]) || stateno = 100 || (stateno = [120,149])
triggerall = PlayerIdExist(helper(33333333),var(4)) ;enemy projectile exists
triggerall = PlayerID(helper(33333333),var(4)), vel x != 0 ; Avoid "Division by Zero" debug overflow
triggerall = PlayerID(helper(33333333),var(4)), pos y >= -100 || PlayerID(helper(33333333),var(4)), vel y > 0 ; Avoid jumping over projectiles that are to high. 100 = char height
triggerall = PlayerID(helper(33333333),var(4)), movetype = A
triggerall = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x ) = floor(abs(const(velocity.jump.y)) / const(movement.yaccel))
triggerall = cond(numhelper(33333333),helper(33333333), cond(1, var(20) := 3, 0), 0) ; the 15 in "var(20) := 15" represents the 15th time this trigger was used. the number should be different everytime this is added/used.
triggerall = cond(helper(33333333),numexplod((helper(33333333),var(20)*100000000)+PlayerID(helper(33333333),var(4)),stateno) = 0, 1, helper(33333333),numexplod((helper(33333333),var(20)*100000000)+abs(floor(PlayerID(helper(33333333),var(4)),vel x))) = 0)
trigger1 = random <= 500
[State -1, AI Jump over Projectile (Fwd Jump)]
type = ChangeState
value = 42
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = ctrl || (stateno = [21,23]) || stateno = 100 || (stateno = [120,149])
triggerall = PlayerIdExist(helper(33333333),var(4)) ;enemy projectile exists
triggerall = PlayerID(helper(33333333),var(4)), vel x != 0 ; Avoid "Division by Zero" debug overflow
triggerall = PlayerID(helper(33333333),var(4)), pos y >= -100 || PlayerID(helper(33333333),var(4)), vel y > 0 ; Avoid jumping over projectiles that are to high. 100 = char height
triggerall = PlayerID(helper(33333333),var(4)), movetype = A
triggerall = cond(numhelper(33333333),helper(33333333), cond(1, var(20) := 4, 0), 0) ; the 15 in "var(20) := 15" represents the 15th time this trigger was used. the number should be different everytime this is added/used.
triggerall = cond(helper(33333333),numexplod((helper(33333333),var(20)*100000000)+PlayerID(helper(33333333),var(4)),stateno) = 0, 1, helper(33333333),numexplod((helper(33333333),var(20)*100000000)+abs(floor(PlayerID(helper(33333333),var(4)),vel x))) = 0)
trigger1 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/2) / const(movement.yaccel)))
trigger2 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.9) / const(movement.yaccel)))
trigger3 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.8) / const(movement.yaccel)))
trigger4 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.7) / const(movement.yaccel)))
trigger5 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.6) / const(movement.yaccel)))
trigger6 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.5) / const(movement.yaccel)))
trigger7 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.4) / const(movement.yaccel)))
trigger8 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.3) / const(movement.yaccel)))
trigger9 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.2) / const(movement.yaccel)))
trigger10 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.1) / const(movement.yaccel)))
trigger11 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)) / const(movement.yaccel)))
trigger12 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) / const(movement.yaccel)))
;==============================================================================================
; AI General
;==============================================================================================
; AI Supers
[State -1, AI Super Star]
type = ChangeState
value = 2500
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = power >= 3000 && !numhelper(3500)
triggerall = enemynear(var(58)),movetype != H || enemynear(var(58)),statetype = L || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
triggerall = (enemynear(var(58)),stateno != [120,159]) || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
triggerall = var(25) > 1 || (enemynear(var(58)),stateno != [701,703]) || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
triggerall = var(49) <= 0 || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
trigger1 = random <= (1 - (((Life*0.1)/(LifeMax*0.1))))*1000 || life < (lifemax*0.5 || 250) || enemynear(var(58)),life-250 >= life
trigger2 = enemynear(var(58)),hitdefattr = SCA,HA,HP,HT
[State -1, Mario Finale]
type = ChangeState
value = 2400
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
triggerall = power >= 3000 && !numhelper(3500)
triggerall = enemynear(var(58)),statetype != L || (enemynear(var(58)),stateno = 5120 && enemynear(var(58)),animtime <= -(16+((fvar(0))/14))) || (enemynear(var(58)),stateno = 703 && var(25) > 1)
triggerall = enemynear(var(58)),movetype != H || enemynear(var(58)),statetype = L || (enemynear(var(58)),stateno = [120,159])
triggerall = enemynear(var(58)),stateno != 5300 && enemynear(var(58)),anim != 5300
triggerall = fvar(0) >= 0+floor(5*(fvar(35)))
triggerall = fvar(1) = [-180-floor(5*(enemynear(var(58)),vel y)+(5*(5+1)/2)*fvar(18)),180-floor(5*(enemynear(var(58)),vel y)+(5*(5+1)/2)*fvar(18))]
triggerall = var(49) <= 0 || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
trigger1 = random <= floor(fvar(0)*2)
trigger2 = enemynear(var(58)),stateno != [0,99]
trigger2 = enemynear(var(58)),stateno != [120,159]
trigger2 = enemynear(var(58)),ctrl = 0
trigger2 = random <= (100 + (250 *(inguarddist || helper(15900),inguarddist)))+floor(fvar(0)*2)
trigger3 = (enemynear(var(58)),stateno = 5120 && enemynear(var(58)),animtime <= -(16+((fvar(0))/14))) || (enemynear(var(58)),stateno = 703 && var(25) > 1)
trigger3 = random <= (100+floor(fvar(0)*2))
[State -1, F.L.U.D.D]
type = ChangeState
value = 2300
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
triggerall = power >= 2000 && !numhelper(3500)
triggerall = enemynear(var(58)),movetype != H || (stateno != 4001 && (enemynear(var(58)),stateno != [1425,1427]) && (enemynear(var(58)),stateno != [1025,1028]) && (enemynear(var(58)),stateno != [10270,10280]))
triggerall = enemynear(var(58)),statetype != L || (enemynear(var(58)),stateno = 5120 && enemynear(var(58)),animtime >= -5-1)
triggerall = fvar(0) >= 0
triggerall = fvar(1) = [-100-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18)),50-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18))]
triggerall = var(49) <= 0 || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
; Random Usage
trigger1 = enemynear(var(58)),ctrl = 0
trigger1 = enemynear(var(58)),stateno != [0,99]
trigger1 = enemynear(var(58)),stateno != [120,159]
trigger1 = random <= floor((fvar(7) * 0.1))
trigger2 = enemynear(var(58)),vel x*facing*enemynear(var(58)),facing*-1 < 0
trigger2 = random <= (100+(100*(enemynear(var(58)),ctrl = 0))+(100*(enemynear(var(58)),vel x*facing*enemynear(var(58)),facing*-1 < const(velocity.run.back.x))))+floor((fvar(7)*0.25))
trigger3 = fvar(0) >= 70
trigger3 = random <= (250 + (250 * (enemynear(var(58)),ctrl = 0)))+floor((fvar(7)*0.25))
; Counter from Afar
trigger4 = fvar(0) >= 70
trigger4 = enemynear(var(58)),stateno != 0
trigger4 = helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || var(46) > 0
trigger5 = fvar(0) >= 70
trigger5 = enemynear(var(58)),stateno != 0
trigger5 = enemynear(var(58)),stateno = helper(18000),var(58)
trigger5 = enemynear(var(58)),time <= helper(18000),var(59)
[State -1, AI Galaxy Spin]
type = ChangeState
value = 2100
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = ctrl && statetype = A || (stateno = [110,115])
triggerall = power >= 1000 && !numhelper(3500)
triggerall = enemynear(var(58)),ctrl = 0
triggerall = enemynear(var(58)),stateno != [0,99]
triggerall = enemynear(var(58)),stateno != [120,159]
triggerall = enemynear(var(58)),movetype != H
triggerall = enemynear(var(58)),statetype != L
triggerall = var(49) <= 0 || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
triggerall = fvar(0) = [-70+floor(2*((fvar(35)))),70+floor(2*((fvar(35))))]
triggerall = fvar(1) = [-60-floor(2*(enemynear(var(58)),vel y)+(2*(2+1)/2)*fvar(18)),60-floor(2*(enemynear(var(58)),vel y)+(2*(2+1)/2)*fvar(18))]
trigger1 = random <= (250 + (250 * (enemynear(var(58)),backedgedist <= 50 || enemynear(var(58)),frontedgedist <= 50 || enemynear(var(58)),animtime <= -10)))
trigger2 = inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A
trigger2 = random <= (500 + (500 * (enemynear(var(58)),backedgedist <= 50 || enemynear(var(58)),frontedgedist <= 50 || enemynear(var(58)),animtime <= -10)))
[State -1, AI Super Flame]
type = ChangeState
value = 2000
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = power >= 1000 && !numhelper(3500)
triggerall = enemynear(var(58)),ctrl = 0
triggerall = enemynear(var(58)),stateno != [0,159]
triggerall = enemynear(var(58)),stateno != 5120 || enemynear(var(58)),animtime >= -6-1
triggerall = enemynear(var(58)),statetype != L || enemynear(var(58)),stateno != [700,703]
triggerall = var(49) <= 0 || (inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A)
triggerall = fvar(0) = [-50+floor(9*(fvar(35))),50+floor(9*(fvar(35)))]
triggerall = fvar(1) >= -200-floor(9*(enemynear(var(58)),vel y)+(9*(9+1)/2)*fvar(18))
trigger1 = random <= (250 + (250 * (enemynear(var(58)),backedgedist <= 50 || enemynear(var(58)),frontedgedist <= 50 || enemynear(var(58)),animtime <= -10)))
trigger2 = inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A
trigger2 = random <= (500 + (500 * (enemynear(var(58)),backedgedist <= 50 || enemynear(var(58)),frontedgedist <= 50 || enemynear(var(58)),animtime <= -10)))
; Reversal States
[State -1, AI Super Jump Punch]
type = ChangeState
value = var(55)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),ctrl = 0
triggerall = inguarddist || helper(15900),inguarddist || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT || enemynear(var(58)),movetype = A
triggerall = enemynear(var(58)),stateno != [0,199]
triggerall = enemynear(var(58)),stateno != [2000,5999]
triggerall = enemynear(var(58)),animtime <= -6-1 || enemynear(var(58)),statetype = A
triggerall = !numhelper(3500)
; Low Opponents (Strong/EX)
trigger1 = fvar(0) = [-10,65+floor(6*(fvar(35)))]
trigger1 = fvar(1) >= -50-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18))
trigger1 = var(55):= 1210+5*(power>=500&&random<=floor(power/3)) || 1
; Air Opponents (EX)
trigger2 = enemynear(var(58)),statetype = A
trigger2 = power >= 500 && random <= floor(power/3)
trigger2 = ((fvar(0) = [-10,90+floor(7*(fvar(35)))]) && (fvar(1) = [-90-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18)),-10])) || ((fvar(0) = [90,170+floor(7*(fvar(35)))]) && (fvar(1) = [-170-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18)),-90]))
trigger2 = var(55):= 1215 || 1
; Air Opponents (Medium)
trigger3 = enemynear(var(58)),statetype = A
trigger3 = ((fvar(0) = [-10,90+floor(7*(fvar(35)))]) && (fvar(1) = [-90-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18)),-10]))
trigger3 = var(55):= 1205 || 1
[State -1, Launcher]
type = ChangeState
value = 500
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),statetype = A
triggerall = enemynear(var(58)),stateno != [120,159]
triggerall = fvar(0) = [-30,30+floor(7*(fvar(35)))+floor(7*(fvar(17)))]
triggerall = fvar(1) >= -70-floor(7*(enemynear(var(58)),vel y)+(7*(7+1)/2)*fvar(18))
trigger1 = random <= 500 || (enemynear(var(58)),stateno = [5200,5210])
trigger2 = enemynear(var(58)),ctrl = 0
trigger2 = (enemynear(var(58)),statetype = A && (enemynear(var(58)),movetype = A || inguarddist || helper(15900),inguarddist)) || enemynear(var(58)),hitdefattr = A,AA,AT,AP
; Counter States
[State -1, Stand Light Punch]
type = ChangeState
value = 220
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),statetype != L || helper(18000),fvar(11) >= -10
triggerall = enemynear(var(58)),stateno != 0
triggerall = enemynear(var(58)),stateno != [120,159]
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [41,93+floor(10*(fvar(35)))+floor(10*(fvar(17)))]
triggerall = fvar(1) >= -50-floor(10*(enemynear(var(58)),vel y)+(10*(10+1)/2)*fvar(18))
triggerall = random <= 500
trigger1 = enemynear(var(58)),animtime <= -9-1
trigger1 = helper(18000),var(0) >= 0 || helper(18000),var(5) > 0
trigger2 = enemynear(var(58)),stateno = helper(18000),var(58)
trigger2 = enemynear(var(58)),time <= helper(18000),var(59)-9
[State -1, Crouch Medium Kick]
type = ChangeState
value = 410
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),stateno != 0
triggerall = enemynear(var(58)),stateno != 5120
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [21,35+floor(6*(fvar(35)))+floor(6*(fvar(17)))]
triggerall = fvar(1) >= 0-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18)) || enemynear(var(58)),statetype = L
triggerall = random <= 500
trigger1 = helper(18000),var(0) >= 0 || helper(18000),var(5) > 0
trigger2 = enemynear(var(58)),stateno = helper(18000),var(58)
trigger2 = enemynear(var(58)),time <= helper(18000),var(59)-5
[State -1, Stand Light Punch]
type = ChangeState
value = 210
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),statetype != L || helper(18000),fvar(11) >= -6
triggerall = enemynear(var(58)),stateno != 0
triggerall = enemynear(var(58)),stateno != [120,159]
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [21,40+floor(6*(fvar(35))+floor(6*(fvar(17))))]
triggerall = fvar(1) >= -25-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18))
trigger1 = helper(18000),var(0) >= 0 || helper(18000),var(5) > 0
trigger2 = enemynear(var(58)),stateno = helper(18000),var(58)
trigger2 = enemynear(var(58)),time <= helper(18000),var(59)-5
[State -1, Crouch Light Kick]
type = ChangeState
value = 400
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),stateno != 0
triggerall = enemynear(var(58)),stateno != 5120
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [-10,20+floor(3*(fvar(35))+floor(3*(fvar(17))))]
triggerall = fvar(1) >= 0-floor(3*(enemynear(var(58)),vel y)+(3*(3+1)/2)*fvar(18)) || enemynear(var(58)),statetype = L
triggerall = random <= 500
trigger1 = helper(18000),var(0) >= 0 || helper(18000),var(5) > 0
trigger2 = enemynear(var(58)),stateno = helper(18000),var(58)
trigger2 = enemynear(var(58)),time <= helper(18000),var(59)-2
[State -1, Stand Light Punch]
type = ChangeState
value = 200
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),statetype != L || helper(18000),fvar(11) >= -4
triggerall = enemynear(var(58)),stateno != 0
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [-10,20+floor(4*(fvar(35))+floor(4*(fvar(17))))]
triggerall = fvar(1) = [-35-floor(4*(enemynear(var(58)),vel y)+(4*(4+1)/2)*fvar(18)),0]
trigger1 = helper(18000),var(0) >= 0 || helper(18000),var(5) > 0
trigger2 = enemynear(var(58)),stateno = helper(18000),var(58)
trigger2 = enemynear(var(58)),time <= helper(18000),var(59)-3
; Regular States
[State -1, AI Air Fireballs]
type = ChangeState
value = var(55)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype = A && ctrl || (stateno = [110,115])
triggerall = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
triggerall = enemynear(var(58)),statetype != L || (enemynear(var(58)),stateno = 5120 && enemynear(var(58)),animtime <= -(16+((fvar(0))/14))) || (enemynear(var(58)),stateno = 703 && var(25) > 1)
triggerall = enemynear(var(58)),movetype != H || enemynear(var(58)),statetype = L || (enemynear(var(58)),stateno = [120,159])
triggerall = enemynear(var(58)),stateno != 5300 && enemynear(var(58)),anim != 5300
triggerall = fvar(0) >= 50
triggerall = fvar(1) >= -20
triggerall = var(36) < 2 && var(49) <= 0
triggerall = random <= 100+floor(fvar(7)*0.5)+100*(enemynear(var(58)),statetype = L)
; Heavy
trigger1 = fvar(0) >= 140
trigger1 = var(55):= 1052 || 1
; Medium/Light
trigger2 = var(55):= 1051-1*(enemynear(var(58)),statetype = L || enemynear(var(58)),backedgedist <= 30) || 1
[State -1, AI EX Fireball]
type = ChangeState
value = 1005
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
triggerall = enemynear(var(58)),statetype != L || (enemynear(var(58)),stateno = 5120 && enemynear(var(58)),animtime <= -(16+((fvar(0))/14))) || (enemynear(var(58)),stateno = 703 && var(25) > 1)
triggerall = enemynear(var(58)),movetype != H || enemynear(var(58)),statetype = L || (enemynear(var(58)),stateno = [120,159])
triggerall = enemynear(var(58)),stateno != 40 && enemynear(var(58)),anim != 40
triggerall = enemynear(var(58)),stateno != 5300 && enemynear(var(58)),anim != 5300
triggerall = !numhelper(1003) && var(49) <= 0
triggerall = fvar(1) >= -40-floor(13*(enemynear(var(58)),vel y)+(13*(13+1)/2)*fvar(18))
triggerall = power >= 500
trigger1 = fvar(0) >= 70+floor(13*(fvar(17)))
trigger1 = random <= (50 + (50 * (enemynear(var(58)),statetype = L)) - 25 * (stateno = 100 || stateno = 911))+floor(fvar(0)*0.25)
trigger2 = fvar(0) >= 50
trigger2 = enemynear(var(58)),statetype = L || (enemynear(var(58)),stateno = [5200,5210])
trigger2 = random <= (100 + (100 * (enemynear(var(58)),statetype = L)))+floor(fvar(0)*0.25)
[State -1, AI Fireballs]
type = ChangeState
value = var(55)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
triggerall = enemynear(var(58)),statetype != L || (enemynear(var(58)),stateno = 5120 && enemynear(var(58)),animtime <= -(16+((fvar(0))/14))) || (enemynear(var(58)),stateno = 703 && var(25) > 1)
triggerall = enemynear(var(58)),movetype != H || enemynear(var(58)),statetype = L || (enemynear(var(58)),stateno = [120,159])
triggerall = enemynear(var(58)),stateno != 40 && enemynear(var(58)),anim != 40
triggerall = enemynear(var(58)),stateno != 5300 && enemynear(var(58)),anim != 5300
triggerall = fvar(0) >= 70+floor(13*(fvar(17)))
triggerall = fvar(1) >= -20
triggerall = var(36) < 2 && var(49) <= 0
triggerall = random <= (100 + (100 * (enemynear(var(58)),statetype = L)) - 50 * (stateno = 100 || stateno = 911))+floor(fvar(0)*0.25)
; Heavy
trigger1 = fvar(0) >= 140
trigger1 = var(55):= 1002 || 1
; Medium/Light
trigger2 = var(55):= 1001-1*(enemynear(var(58)),statetype = L || enemynear(var(58)),backedgedist <= 30) || 1
[State -1, AI Throw]
type = ChangeState
value = 800 + 30 * (statetype = A)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
triggerall = enemynear(var(58)),gethitvar(hittime) < 0 || ((enemynear(var(58)),stateno = [150,159]) && statetype = A)
triggerall = enemynear(var(58)),statetype != L && ((enemynear(var(58)),statetype != A && statetype != A) || (enemynear(var(58)),statetype = A && statetype = A))
triggerall = enemynear(var(58)),prevstateno != [5200,5210]
triggerall = enemynear(var(58)),hitdefattr != SCA,HA,HP,HT
triggerall = helper(18000),fvar(9) <= 0
triggerall = fvar(0) = [-15,15+(10*(stateno = 100 || stateno = 110))+floor(fvar(17))]
triggerall = fvar(1) = [-35,35]
trigger1 = random <= (250 + (250 * (!enemynear(var(58)),ctrl || enemynear(var(58)),vel x >= enemynear(var(58)),const(velocity.run.fwd.x)) * cond((backedgedist <= 35 || frontedgedist <= 35 || (enemynear(var(58)),prevstateno = [120,159]) || enemynear(var(58)),facing = facing), 2, 1))) || fvar(0) <= 0
trigger2 = enemynear(var(58)),stateno = [120,149]
trigger3 = enemynear(var(58)),movetype = A || var(46) > 0
trigger4 = numhelper(3500)
[State -1, Jump Light Attack]
type = ChangeState
value = 600
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype = A && ctrl || (stateno = [110,115])
triggerall = numhelper(3500) > 0 || enemynear(var(58)),hitdefattr != SCA,AA || enemynear(var(58)),facing = facing || (enemynear(var(58)),stateno = helper(18000),var(58) && enemynear(var(58)),time < helper(18000),var(59)-2) || helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0
triggerall = enemynear(var(58)),statetype != L || (enemynear(var(58)),stateno = 5120 && helper(18000),fvar(11) >= -3)
triggerall = enemynear(var(58)),movetype != H || vel y > 0 || stateno != 4001
triggerall = random >= 500
trigger1 = fvar(0) = [-10,35+floor(4*(fvar(35))+floor(4*(vel x)))]
trigger1 = fvar(1) = [-60-floor(4*(enemynear(var(58)),vel y)+(4*(4+1)/2)*fvar(18)-floor(4*vel y)-(4*(4+1)/2)*0.47),60-floor(4*(enemynear(var(58)),vel y)+(4*(4+1)/2)*fvar(18)-floor(4*vel y)-(4*(4+1)/2)*0.47)]
trigger1 = pos Y + 4 * vel y + const(movement.yaccel)*4*8/2 < 0
[State -1, Jump Medium Attack]
type = ChangeState
value = 610
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype = A && ctrl || (stateno = [110,115])
triggerall = numhelper(3500) > 0 || enemynear(var(58)),hitdefattr != SCA,AA || enemynear(var(58)),facing = facing || (enemynear(var(58)),stateno = helper(18000),var(58) && enemynear(var(58)),time < helper(18000),var(59)-2) || helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0
triggerall = enemynear(var(58)),statetype != L || (enemynear(var(58)),stateno = 5120 && helper(18000),fvar(11) >= -3)
triggerall = enemynear(var(58)),movetype != H || vel y > 0 || stateno != 4001
triggerall = fvar(39):= cond(cond(enemynear(var(58)),statetype != C, enemynear(var(58)),const(size.head.pos.y), enemynear(var(58)),const(size.head.pos.y)*0.5) >= -40, 40, -(enemynear(var(58)),const(size.head.pos.y))*cond(enemynear(var(58)),statetype = C, 0.5, 1)) || 1
triggerall = random <= 500
trigger1 = fvar(0) = [-10,50+floor(3*(fvar(35))+floor(3*(vel x)))]
trigger1 = fvar(1) = [-40-floor(3*(enemynear(var(58)),vel y)+(3*(3+1)/2)*fvar(18)-floor(3*vel y)-(3*(3+1)/2)*0.47),(fvar(39))-floor(3*(enemynear(var(58)),vel y)+(3*(3+1)/2)*fvar(18)-floor(3*vel y)-(3*(3+1)/2)*0.47)]
trigger1 = pos Y + 3 * vel y + const(movement.yaccel)*3*8/2 < 0
[State -1, Crouch Medium Kick]
type = ChangeState
value = 410
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0 || helper(18000),fvar(8) > 0 ;|| helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || numhelper(3500) > 0 || (enemynear(var(58)),stateno = helper(18000),var(58) && enemynear(var(58)),time < helper(18000),var(59)-5)
triggerall = enemynear(var(58)),stateno != 5120 || helper(18000),fvar(11) >= -6
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [21,35+floor(6*(fvar(35))+floor(6*(fvar(17))))]
triggerall = fvar(1) >= 0-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18)) || enemynear(var(58)),statetype = L
triggerall = random <= 500 || enemynear(var(58)),statetype = L
trigger1 = (enemynear(var(58)),stateno = [120,159]) || (enemynear(var(58)),prevstateno = [120,159])
trigger1 = enemynear(var(58)),statetype != C
trigger2 = enemynear(var(58)),statetype = L
[State -1, Crouch Light Kick]
type = ChangeState
value = 400
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
triggerall = enemynear(var(58)),stateno != 5120 || helper(18000),fvar(11) >= -3
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [-10,20+floor(3*(fvar(35))+floor(3*(fvar(17))))]
triggerall = fvar(1) >= 0-floor(3*(enemynear(var(58)),vel y)+(3*(3+1)/2)*fvar(18)) || enemynear(var(58)),statetype = L
trigger1 = random >= 500
trigger2 = enemynear(var(58)),statetype = L && enemynear(var(58)),stateno != 5120
trigger3 = enemynear(var(58)),stateno = [120,159]
trigger3 = enemynear(var(58)),statetype != C
[State -1, Stand Light Punch]
type = ChangeState
value = 210
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),movetype != H
triggerall = enemynear(var(58)),statetype != L || helper(18000),fvar(11) >= -6
triggerall = enemynear(var(58)),stateno != [120,159]
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [21,40+floor(6*(fvar(35))+floor(6*(fvar(17))))]
triggerall = fvar(1) >= -25-floor(6*(enemynear(var(58)),vel y)+(6*(6+1)/2)*fvar(18))
trigger1 = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
trigger1 = enemynear(var(58)),vel x <= 0 || vel x <= 0 || (prevstateno = [140,159])
trigger1 = random <= 250
[State -1, Stand Light Punch]
type = ChangeState
value = 200
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),statetype != L || helper(18000),fvar(11) >= -4
triggerall = enemynear(var(58)),stateno != [5200,5210]
triggerall = enemynear(var(58)),stateno != 703 || var(25) <= 1
triggerall = fvar(0) = [-10,20+floor(4*(fvar(35))+floor(4*(fvar(17))))]
triggerall = fvar(1) = [-35-floor(4*(enemynear(var(58)),vel y)+(4*(4+1)/2)*fvar(18)),0]
triggerall = random <= 500
trigger1 = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
; Power Charge
[State -1, Power Charge - Opponent Unhittable]
type = ChangeState
value = 950
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),vel x <= 0
triggerall = enemynear(var(58)),movetype != A
triggerall = !inguarddist && !helper(15900),inguarddist
triggerall = prevstateno != 951
triggerall = power <= powermax
triggerall = fvar(0) >= 0
triggerall = (enemynear(var(58)),stateno != [701,703]) || var(25) > 1
triggerall = !numhelper(3500)
triggerall = !var(49)
trigger1 = (enemynear(var(58)),stateno = [701,703]) && var(25) > 1
trigger2 = (enemynear(var(58)),stateno = [2210,2211])
[State -1, Power Charge - Default]
type = ChangeState
value = 950
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101]) || stateno = 911
triggerall = enemynear(var(58)),movetype != A
triggerall = !inguarddist && !helper(15900),inguarddist
triggerall = power <= powermax
triggerall = fvar(0) >= 50
triggerall = (enemynear(var(58)),stateno != [701,703]) || var(25) > 1
triggerall = !numhelper(3500)
triggerall = !var(49)
triggerall = random <= 500-floor(power/5)
trigger1 = enemynear(var(58)),statetype = L || enemynear(var(58)),hitfall = 1
trigger1 = enemynear(var(58)),stateno != 5120
trigger2 = enemynear(var(58)),anim = 5300
trigger2 = enemynear(var(58)),ctrl = 0
trigger3 = enemynear(var(58)),stateno = [120,159]
trigger3 = enemynear(var(58)),vel x < 0
trigger4 = enemynear(var(58)),movetype = I
trigger4 = enemynear(var(58)),time >= 30
trigger5 = fvar(0) >= 260
;==============================================================================================
; AI Blocking/Movement
;==============================================================================================
[State -1, AI Corner Escape]
type = ChangeState
value = 900
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = ctrl || (stateno = [100,101])
triggerall = backedgebodydist <= 60
triggerall = enemynear(var(58)),movetype = H
triggerall = var(25) > 1
triggerall = fvar(0) = [-20,80]
trigger1 = enemynear(var(58)),stateno = [701,703]
trigger2 = enemynear(var(58)),stateno = [2210,2211]
[State -1, AI Dodge Forward]
type = ChangeState
value = 900
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = enemynear(var(58)),stateno != [3000,3999]
triggerall = enemynear(var(58)),animtime <= -20
triggerall = enemynear(var(58)),vel x >= 0
triggerall = enemynear(var(58)),vel y >= -2
triggerall = enemynear(var(58)),hitdefattr != SCA,AT
triggerall = inguarddist || helper(15900),inguarddist
triggerall = frontedgedist >= 50 || fvar(0) >= 50-frontedgedist
triggerall = fvar(0) = [-20,110]
triggerall = fvar(1) >= const(size.head.pos.y)
triggerall = prevstateno != 900
triggerall = prevstateno != 901
triggerall = !numhelper(3500)
triggerall = statetype != A
triggerall = ctrl || (stateno = [100,101])
trigger1 = random <= 500
[State -1, AI Dodge Backward]
type = ChangeState
value = 901
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = enemynear(var(58)),stateno != [3000,3999]
triggerall = enemynear(var(58)),animtime <= -20
triggerall = enemynear(var(58)),vel x <= 0
triggerall = enemynear(var(58)),vel y >= -2
triggerall = enemynear(var(58)),hitdefattr != SCA,AT
triggerall = inguarddist || helper(15900),inguarddist
triggerall = backedgedist >= 50
triggerall = fvar(0) = [-20,110]
triggerall = fvar(1) >= const(size.head.pos.y)
triggerall = prevstateno != 900
triggerall = prevstateno != 901
triggerall = !numhelper(3500)
triggerall = statetype != A
triggerall = ctrl || (stateno = [100,101])
trigger1 = random <= 500
[State -1, AI Waveland]
type = ChangeState
value = 903
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype = A && ctrl
triggerall = stateno != 4001
triggerall = enemynear(var(58)),movetype != H || enemynear(var(58)),statetype != A
triggerall = stateno != 105 || enemynear(var(58)),statetype != L
triggerall = (vel y >= 0 || var(1) = 0) && pos y >= -100
triggerall = fvar(0) >= 0
triggerall = var(35):= 1 || 1
; Forward - Approach
trigger1 = random <= 250+ceil(((fvar(0)*0.25)-(enemynear(var(58)),vel x))*cond((enemynear(var(58)),ctrl = 0 || stateno = 911), 2, 1))
trigger1 = var(57):= 1 || 1
; Forward - Opening
trigger2 = enemynear(var(58)),stateno != [0,199]
trigger2 = enemynear(var(58)),ctrl = 0 || helper(18000),var(0) >= 0 || var(46) > 0 || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
trigger2 = random <= 500+ceil((((fvar(0))-(enemynear(var(58)),vel x*2))+(-abs(enemynear(var(58)),animtime)*2))*cond((enemynear(var(58)),ctrl = 0 || stateno = 911), 2, 1))
trigger2 = var(57):= 1 || 1
; Backward
trigger3 = enemynear(var(58)),vel x > 0
trigger3 = enemynear(var(58)),facing != facing
trigger3 = enemynear(var(58)),movetype != H || enemynear(var(58)),statetype = L || enemynear(var(58)),ctrl > 0 || (enemynear(var(58)),stateno = [120,159]) || !numtarget
trigger3 = enemynear(var(58)),stateno != [120,159]
trigger3 = backedgebodydist >= 60
trigger3 = random <= floor(((backedgedist)-((fvar(0))*0.1)+floor(fvar(1)*0.1)+floor(2*(enemynear(var(58)),vel x)))*cond(stateno = 911 || enemynear(var(58)),vel x > -const(velocity.run.back.x), 2, 1))
trigger3 = var(57):= -1 || 1
[State -1, AI Wavedash]
type = ChangeState
value = 911
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [30,40]) || (stateno = [100,101])
triggerall = !inguarddist && !helper(15900),inguarddist || helper(18000),var(0) >= 0 || var(46) > 0 || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
triggerall = !(playeridexist(helper(33333333),var(4)) && enemy,numproj) || numhelper(3500) > 0
triggerall = enemynear(var(58)),movetype != H || (enemynear(var(58)),statetype = L && fvar(0) > 40)
triggerall = fvar(0) >= 0
; Forward - Approach
trigger1 = random <= 10+ceil(((fvar(0)*0.25)-(enemynear(var(58)),vel x))*cond((enemynear(var(58)),ctrl = 0 || stateno = 911), 2, 1))
trigger1 = var(57):= 1 || 1
; Forward - Opening
trigger2 = (enemynear(var(58)),stateno != [701,703]) || var(25) <= 1
trigger2 = enemynear(var(58)),stateno != [2210,2211]
trigger2 = enemynear(var(58)),stateno != 5120
trigger2 = enemynear(var(58)),stateno != [0,199]
trigger2 = enemynear(var(58)),ctrl = 0 || helper(18000),var(0) >= 0 || var(46) > 0 || numhelper(3500) > 0 || helper(18000),fvar(8) > 0
trigger2 = random <= 500+ceil((((fvar(0))-(enemynear(var(58)),vel x*2))+(-abs(enemynear(var(58)),animtime)*2))*cond((enemynear(var(58)),ctrl = 0 || stateno = 911), 2, 1))
trigger2 = var(57):= 1 || 1
[State -1, AI Fwd Air Dash]
type = ChangeState
value = 110
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype = A && ctrl
triggerall = !inguarddist && !helper(15900),inguarddist || helper(18000),var(0) >= 0 || numhelper(3500) > 0
triggerall = !(playeridexist(helper(33333333),var(4)) && enemy,numproj) || numhelper(3500) > 0
triggerall = (enemynear(var(58)),stateno != [701,703]) || var(25) > 1
triggerall = enemynear(var(58)),stateno != [1025,1028]
triggerall = enemynear(var(58)),stateno != [10270,10280]
triggerall = stateno != 4001
triggerall = stateno != 105
triggerall = fvar(0) >= 50 || (enemynear(var(58)),vel x < -vel x && fvar(0) >= 0)
triggerall = fvar(1) = [-50-floor(fvar(0)*0.25),50+floor(fvar(0)*0.25)]
trigger1 = random <= (100+(100 * (enemynear(var(58)),ctrl = 0 || enemynear(var(58)),vel x < 0)))+ceil(fvar(0))
trigger2 = enemynear(var(58)),movetype = H || ((enemynear(var(58)),prevstateno = [140,149]) && enemynear(var(58)),ctrl = 0 && enemynear(var(58)),movetype != A)
trigger2 = random <= (250+(250 * (enemynear(var(58)),ctrl = 0 || enemynear(var(58)),vel x < 0)))+ceil(fvar(0))
trigger3 = fvar(0) >= 120
[State -1, AI Back Air Dash]
type = ChangeState
value = 111
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype = A && ctrl
triggerall = !inguarddist && !helper(15900),inguarddist || helper(18000),var(0) >= 0 || numhelper(3500) > 0
triggerall = (enemynear(var(58)),stateno != [701,703]) || var(25) > 1
triggerall = backedgedist >= 60
triggerall = stateno != 105
triggerall = fvar(0) = [-10,100]
trigger1 = enemynear(var(58)),vel x > 0
trigger1 = enemynear(var(58)),facing != facing
trigger1 = enemynear(var(58)),statetype != L
trigger1 = enemynear(var(58)),movetype != H
trigger1 = enemynear(var(58)),stateno != [120,159]
trigger1 = random <= floor(((backedgedist)-((fvar(0))*0.1)+floor(fvar(1)*0.1)+floor(2*(enemynear(var(58)),vel x)))*cond(stateno = 911 || enemynear(var(58)),vel x > -const(velocity.run.back.x), 2, 1))
trigger2 = enemynear(var(58)),stateno = 5120
trigger3 = enemynear(var(58)),movetype = H
trigger3 = (enemynear(var(58)),stateno = [701,703]) && var(25) > 1
trigger4 = enemynear(var(58)),movetype = H
trigger4 = enemynear(var(58)),stateno = [2210,2211]
[State -1, AI Back Dash]
type = ChangeState
value = cond(random <= 500, 911, 105)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl
triggerall = !inguarddist && !helper(15900),inguarddist || helper(18000),var(0) >= 0 || numhelper(3500) > 0
triggerall = backedgedist >= 60
triggerall = fvar(0) = [-10,100]
trigger1 = enemynear(var(58)),stateno = 5120
trigger1 = var(57):= -1 || 1
trigger2 = enemynear(var(58)),stateno = [5200,5210]
trigger2 = var(57):= -1 || 1
trigger3 = enemynear(var(58)),movetype = H
trigger3 = (enemynear(var(58)),stateno = [701,703]) && var(25) > 1
trigger3 = var(57):= -1 || 1
trigger4 = enemynear(var(58)),movetype = H
trigger4 = enemynear(var(58)),stateno = [2210,2211]
trigger4 = var(57):= -1 || 1
[State -1, AI Running]
type = ChangeState
value = 100
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl
triggerall = !inguarddist && !helper(15900),inguarddist || helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || numhelper(3500) > 0
triggerall = !(playeridexist(helper(33333333),var(4)) && enemy,numproj) || helper(18000),fvar(8) > 0 || numhelper(3500) > 0
triggerall = stateno != 100
triggerall = fvar(0) >= 0
trigger1 = enemynear(var(58)),movetype != H
trigger1 = random <= 10+ceil(((fvar(0)*0.5)-(enemynear(var(58)),vel x * 2))*cond(enemynear(var(58)),ctrl = 0, 2, 1))
trigger2 = var(25) <= 1 || (enemynear(var(58)),stateno != [701,703])
trigger2 = enemynear(var(58)),stateno != 2211
trigger2 = enemynear(var(58)),movetype = H || enemynear(var(58)),statetype = L
[State -1, AI Jump]
type = ChangeState
value = cond(fvar(1) <= -180, 4000, 41)
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A && ctrl || (stateno = [100,101])
triggerall = fvar(0) >= 0 && (fvar(1) = [-250,0])
triggerall = enemynear(var(58)),stateno != [1425,1427]
triggerall = enemynear(var(58)),stateno != [1025,1028]
triggerall = enemynear(var(58)),stateno != [10270,10280]
triggerall = enemynear(var(58)),stateno != [2210,2211]
triggerall = !inguarddist && !helper(15900),inguarddist || helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || enemynear(var(58)),hitdefattr = SCA,AA,AP,AT
trigger1 = fvar(1) <= -40
trigger1 = enemynear(var(58)),statetype = A
trigger1 = random <= (200 + (200 * (enemynear(var(58)),vel y < 0 || enemynear(var(58)),prevstateno = 52)))
trigger2 = fvar(1) <= -40
trigger2 = enemynear(var(58)),statetype = A
trigger2 = enemynear(var(58)),movetype = H || (enemynear(var(58)),stateno = [5200,5210])
trigger2 = random <= (500 + (500 * (enemynear(var(58)),time <= 4 || enemynear(var(58)),backedgedist < 50)))
trigger3 = enemynear(var(58)),hitdefattr = SC,AT
trigger3 = random <= (500 + (500 * (enemynear(var(58)),time <= 4 || enemynear(var(58)),animtime >= -15-1)))
[State -1, AI Walking]
type = ChangeState
value = 21
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = statetype != A
triggerall = stateno != 100
triggerall = !inguarddist && !helper(15900),inguarddist || numhelper(3500) > 0
trigger1 = ctrl
ctrl = 1
[State -3, AI Guard]
type = ChangeState
triggerall = AILevel && RoundState = 2
triggerall = AILevel >= 8 || (AILevel < 8 && random < (800 * (AILevel ** 2 / 64.0)))
triggerall = ctrl || (stateno = [21,23]) || stateno = 52 || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
triggerall = enemynear(var(58)),hitdefattr != SCA, AT || AILevel <= 3
triggerall = !numhelper(3500)
trigger1 = inguarddist
trigger2 = numhelper(15900)
trigger2 = helper(15900),inguarddist || helper(15900),var(50) > 0 || helper(15900),var(52) > 0
value = 120
[State -3, Taunt]
type = ChangeState
value = 195+random%4
triggerall = AILevel
triggerall = statetype != A
triggerall = roundstate = 3
triggerall = win || winko
triggerall = time = [0,120]
triggerall = stateno != [195,198]
triggerall = prevstateno != [195,198]
trigger1 = ctrl
;==============================================================================================
; End AI
;==============================================================================================
;**********************************************************************************************
;==============================================================================================
; Tick Fix
;==============================================================================================
[State -1, Tick Fix]
type = ctrlset
triggerall = !ctrl
trigger1 = (stateno = 52 || stateno = 101 || stateno = 106 || stateno = 5120) && !animtime
trigger2 = (stateno = [200,500]) && !animtime
trigger3 = (stateno = 800 || stateno = 830) && !animtime
trigger4 = (stateno = 5001 || stateno = 5011 || stateno = 151 || stateno = 153) && hitover
value = 1
;---------------------------------------------------------------------------
; Super Moves
[State -1, Super Star]
type = ChangeState
value = 2500
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Mario Finale", command = "Super Star")
triggerall = statetype != A
triggerall = power >= 3000
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed))
trigger6 = (stateno = [1000,1005]) && var(37)
trigger7 = (stateno = [1100,1105]) || (stateno = 1200 || stateno = 1205 || stateno = 1210 || stateno = 1215 || stateno = 1220) || (stateno = [1300,1315]) || stateno = 1420
trigger7 = (movecontact||movereversed)
trigger8 = stateno = 1315 && var(37)
[State -1, Mario Finale]
type = ChangeState
value = 2400
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Super Star", command = "Mario Finale")
triggerall = power >= 3000
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
trigger6 = (stateno = [1000,1005]) && var(37)
trigger7 = (stateno = [1050,1055]) && var(37)
trigger8 = (stateno = [1100,1125]) || (stateno = [1200,1220]) || (stateno = [1300,1315]) || (stateno = [1330,1345]) || (stateno = [1400,1420])
trigger8 = (movecontact||movereversed)
trigger9 = (stateno = 1315 || stateno = 1345) && var(37)
[State -1, Super Hammer]
type = ChangeState
value = 2200
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "F.L.U.D.D", command = "Super Hammer")
triggerall = statetype != A
triggerall = power >= 2000
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed))
trigger6 = (stateno = [1000,1005]) && var(37)
trigger7 = (stateno = [1100,1105]) || (stateno = 1200 || stateno = 1205 || stateno = 1210 || stateno = 1220) || (stateno = [1300,1315]) || stateno = 1420
trigger7 = (movecontact||movereversed)
trigger8 = stateno = 1315 && var(37)
[State -1, F.L.U.D.D]
type = ChangeState
value = 2300
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Super Hammer", command = "F.L.U.D.D")
triggerall = power >= 2000
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
trigger6 = (stateno = [1000,1005]) && var(37)
trigger7 = (stateno = [1050,1055]) && var(37)
trigger8 = (stateno = [1100,1125]) || (stateno = [1200,1220]) || (stateno = [1300,1315]) || (stateno = [1330,1345]) || (stateno = [1400,1420])
trigger8 = (movecontact||movereversed)
trigger9 = (stateno = 1315 || stateno = 1345) && var(37)
[State -1, Super Flame]
type = ChangeState
value = 2000
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Galaxy Spin", command = "Super Flame")
triggerall = statetype != A
triggerall = power >= 1000
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed))
trigger6 = (stateno = [1000,1005]) && var(37)
trigger7 = (stateno = [1100,1105]) || (stateno = 1200 || stateno = 1205 || stateno = 1210 || stateno = 1215 || stateno = 1220) || (stateno = [1300,1315]) || stateno = 1420
trigger7 = (movecontact||movereversed)
trigger8 = stateno = 1315 && var(37)
[State -1, Galaxy Spin]
type = ChangeState
value = 2100
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Super Flame", command = "Galaxy Spin")
triggerall = power >= 1000
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
trigger6 = (stateno = [1000,1005]) && var(37)
trigger7 = (stateno = [1050,1055]) && var(37)
trigger8 = (stateno = [1100,1125]) || (stateno = [1200,1220]) || (stateno = [1300,1315]) || (stateno = [1330,1345]) || (stateno = [1400,1420])
trigger8 = (movecontact||movereversed)
trigger9 = (stateno = 1315 || stateno = 1345) && var(37)
;---------------------------------------------------------------------------
; EX Moves
[State -1, EX Super Jump Punch]
type = ChangeState
value = 1215
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-SuperJumpPunch_EX", command = "SuperJumpPunch_EX")
triggerall = statetype != A
triggerall = power >= 500
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed))
[State -1, EX Cape]
type = ChangeState
value = 1315 + 30 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-Cape_EX", command = "Cape_EX")
triggerall = power >= 500
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, EX Fireball]
type = ChangeState
value = 1005 + 50 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Tornado_EX", command = "Fireball_EX")
triggerall = !numhelper(1003)
triggerall = power >= 500
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, EX Mario Tornado]
type = ChangeState
value = 1105 + 20 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Fireball_EX", command = "Tornado_EX")
triggerall = power >= 500
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, EX Ground Pound]
type = ChangeState
value = 1415
triggerall = !AILevel
triggerall = command = "GroundPound_EX"
triggerall = statetype = A
triggerall = power >= 500
trigger1 = ctrl || (stateno = [110,115])
trigger2 = (stateno = 600 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger3 = (stateno = 700 && (movecontact||movereversed))
;---------------------------------------------------------------------------
; Cape
[State -1, Strong Cape]
type = ChangeState
value = 1310 + 30 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-Cape_z", command = "Cape_z")
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, Medium Cape]
type = ChangeState
value = 1305 + 30 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-Cape_y", command = "Cape_y")
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, Light Cape]
type = ChangeState
value = 1300 + 30 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-Cape_x", command = "Cape_x")
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
;---------------------------------------------------------------------------
; Super Jump Punch
[State -1, Strong Super Jump Punch]
type = ChangeState
value = 1210
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-SuperJumpPunch_z", command = "SuperJumpPunch_z")
triggerall = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed))
[State -1, Medium Super Jump Punch]
type = ChangeState
value = 1205
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-SuperJumpPunch_y", command = "SuperJumpPunch_y")
triggerall = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed))
[State -1, Light Super Jump Punch]
type = ChangeState
value = 1200
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "R-SuperJumpPunch_x", command = "SuperJumpPunch_x")
triggerall = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed))
;---------------------------------------------------------------------------
; Fireball
[State -1, Strong Fireball]
type = ChangeState
value = 1002 + 50 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Tornado_z", command = "Fireball_z")
triggerall = var(36) < 2
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, Medium Fireball]
type = ChangeState
value = 1001 + 50 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Tornado_y", command = "Fireball_y")
triggerall = var(36) < 2
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, Light Fireball]
type = ChangeState
value = 1000 + 50 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Tornado_x", command = "Fireball_x")
triggerall = var(36) < 2
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
;---------------------------------------------------------------------------
; Mario Tornado
[State -1, Strong Mario Tornado]
type = ChangeState
value = 1102 + 20 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Fireball_z", command = "Tornado_z")
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, Medium Mario Tornado]
type = ChangeState
value = 1101 + 20 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Fireball_y", command = "Tornado_y")
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
[State -1, Light Mario Tornado]
type = ChangeState
value = 1100 + 20 * (statetype = A)
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "Fireball_x", command = "Tornado_x")
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
trigger2 = ((stateno = [200,202]) && (movecontact||movereversed)) || (stateno = 400 && (movecontact||movereversed)) || (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 210 && (movecontact||movereversed)) || (stateno = 410 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 220 && (movecontact||movereversed)) || (stateno = 225 && (movecontact||movereversed)) || (stateno = 420 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger5 = (stateno = 500 && (movecontact||movereversed)) || (stateno = 700 && (movecontact||movereversed))
;---------------------------------------------------------------------------
; Ground Pound
[State -1, Strong Ground Pound]
type = ChangeState
value = 1410
triggerall = !AILevel
triggerall = command = "GroundPound_z"
triggerall = statetype = A
trigger1 = ctrl || (stateno = [110,115])
trigger2 = (stateno = 600 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger3 = (stateno = 700 && (movecontact||movereversed))
[State -1, Medium Ground Pound]
type = ChangeState
value = 1405
triggerall = !AILevel
triggerall = command = "GroundPound_y"
triggerall = statetype = A
trigger1 = ctrl || (stateno = [110,115])
trigger2 = (stateno = 600 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger3 = (stateno = 700 && (movecontact||movereversed))
[State -1, Light Ground Pound]
type = ChangeState
value = 1400
triggerall = !AILevel
triggerall = command = "GroundPound_x"
triggerall = statetype = A
trigger1 = ctrl || (stateno = [110,115])
trigger2 = (stateno = 600 && (movecontact||movereversed)) || (stateno = 610 && (movecontact||movereversed)) || (stateno = 620 && (movecontact||movereversed))
trigger3 = (stateno = 700 && (movecontact||movereversed))
;===========================================================================
; Air Dashes
[State -1, Air Dash Fwd]
type = ChangeState
value = 110
triggerall = !AILevel
triggerall = command = "FF"
triggerall = stateno != 105
triggerall = statetype = A
trigger1 = ctrl
[State -1, Air Dash Back]
type = ChangeState
value = 111
triggerall = !AILevel
triggerall = command = "BB"
triggerall = stateno != 105
triggerall = statetype = A
trigger1 = ctrl
;---------------------------------------------------------------------------
; Ground Dashes
[State -1, Run Fwd]
type = ChangeState
value = 100
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "BB", command = "FF")
trigger1 = statetype != A
trigger1 = ctrl || stateno = 911
[State -1, Run Back]
type = ChangeState
value = 105
triggerall = !AILevel
triggerall = cond((anim=[5,6]), command = "FF", command = "BB")
trigger1 = statetype != A
trigger1 = ctrl || stateno = 911
;---------------------------------------------------------------------------
;Dodges
[State -1, Power Charge]
type = ChangeState
value = 950
triggerall = !AILevel
triggerall = command = "a" && command = "b"
triggerall = power < powermax
triggerall = !numhelper(3500)
triggerall = statetype != A
trigger1 = ctrl || (stateno = [100,101])
[State -1, RoA Wavedashing]
type = ChangeState
value = 911
triggerall = !AILevel
triggerall = command = "a"
triggerall = command = "holdfwd" || command = "holdback"
trigger1 = stateno = 40
[State -1, Roll Fwd]
type = ChangeState
value = 900
triggerall = !AILevel
triggerall = command = "a" && command = "holdfwd"
triggerall = statetype != A
trigger1 = ctrl || (stateno = [100,101])
[State -1, Roll Back]
type = ChangeState
value = 901
triggerall = !AILevel
triggerall = command = "a" && command = "holdback"
triggerall = statetype != A
trigger1 = ctrl || (stateno = [100,101])
[State -1, Dodge]
type = ChangeState
value = 902
triggerall = !AILevel
triggerall = command = "a"
triggerall = statetype != A
trigger1 = ctrl || (stateno = [100,101])
[State -1, Air Dodge]
type = ChangeState
value = 903
triggerall = !AILevel
triggerall = command = "a"
triggerall = statetype = A
triggerall = stateno != 903 || !var(35)
trigger1 = ctrl || (stateno = [110,115])
;---------------------------------------------------------------------------
; Throw
[State -1, Throw Attempt]
type = ChangeState
value = 800 + 30 * (statetype = A)
triggerall = !AILevel
triggerall = command = "b"
trigger1 = ctrl || (stateno = [100,101]) || (stateno = [110,115]) || stateno = 911
;===========================================================================
; Dash Attack
[State -1, Stand Heavy Attack]
type = ChangeState
value = 225
triggerall = !AILevel
triggerall = command = "Dash Attack"
trigger1 = statetype != A
trigger1 = (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed)) || (stateno = 210 && (movecontact||movereversed)) || (stateno = 220 && (movecontact||movereversed))
trigger3 = (stateno = 400 && (movecontact||movereversed)) || (stateno = 410 && ((movecontact||movereversed)||movereversed))
;===========================================================================
;---------------------------------------------------------------------------
;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]) || stateno = 911
;---------------------------------------------------------------------------
;Stand Medium Attack
[State -1, Stand Medium Attack]
type = ChangeState
value = 210
triggerall = !AILevel
triggerall = command = "y"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 || stateno = 201) && (movecontact||movereversed)
trigger3 = (stateno = 400 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Stand Strong Attack
[State -1, Stand Heavy Attack]
type = ChangeState
value = 220
triggerall = !AILevel
triggerall = command = "z"
triggerall = command != "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 || stateno = 201) && (movecontact||movereversed)
trigger3 = (stateno = 400 && (movecontact||movereversed))
trigger4 = (stateno = 210 && (movecontact||movereversed))
trigger5 = (stateno = 410 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Taunt
[State -1, Taunt]
type = ChangeState
value = 197
triggerall = !AILevel
triggerall = command = "start"
triggerall = command = "holddown"
trigger1 = statetype != A
trigger1 = ctrl
[State -1, Taunt]
type = ChangeState
value = 195 + 1 * (command = "holdfwd") + 3 * (command = "holdback")
triggerall = !AILevel
triggerall = command = "start"
trigger1 = statetype != A
trigger1 = ctrl
;---------------------------------------------------------------------------
;Crouching Light Punch
[State -1, Crouching Light Attack]
type = ChangeState
value = 400
triggerall = !AILevel
triggerall = command = "x"
triggerall = command = "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 && (movecontact||movereversed))
trigger3 = (stateno = 400 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Crouching Strong Punch
[State -1, Crouching Medium Attack]
type = ChangeState
value = 410
triggerall = !AILevel
triggerall = command = "y"
triggerall = command = "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 || stateno = 201) && (movecontact||movereversed)
trigger3 = (stateno = 400 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Crouching Heavy Attack
[State -1, Crouching Heavy Attack]
type = ChangeState
value = 420
triggerall = !AILevel
triggerall = command = "z"
triggerall = command = "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 || stateno = 201) && (movecontact||movereversed)
trigger3 = (stateno = 400 && (movecontact||movereversed))
trigger4 = (stateno = 210 && (movecontact||movereversed))
trigger5 = (stateno = 410 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Crouching Heavy Attack
[State -1, Crouching Heavy Attack]
type = ChangeState
value = 500
triggerall = !AILevel
triggerall = command = "c"
;triggerall = command = "holddown"
trigger1 = statetype != A
trigger1 = ctrl || (stateno = [100,101]) || stateno = 911
trigger2 = (stateno = 200 || stateno = 201 || stateno = 202) && (movecontact||movereversed)
trigger3 = (stateno = 400 && (movecontact||movereversed))
trigger4 = (stateno = 210 && (movecontact||movereversed))
trigger5 = (stateno = 410 && (movecontact||movereversed))
trigger6 = (stateno = 220 && (movecontact||movereversed))
trigger7 = (stateno = 420 && (movecontact||movereversed))
trigger8 = (stateno = 225 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Jump Light Punch
[State -1, Jump Light Punch]
type = ChangeState
value = 600
triggerall = !AILevel
triggerall = command = "x"
trigger1 = statetype = A
trigger1 = ctrl || (stateno = [110,115])
;---------------------------------------------------------------------------
;Jump Strong Punch
[State -1, Jump Strong Punch]
type = ChangeState
value = 610
triggerall = !AILevel
triggerall = command = "y"
trigger1 = statetype = A
trigger1 = ctrl || (stateno = [110,115])
trigger2 = (stateno = 600 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Jump Strong Punch
[State -1, Jump Strong Punch]
type = ChangeState
value = 620
triggerall = !AILevel
triggerall = command = "z"
trigger1 = statetype = A
trigger1 = ctrl || (stateno = [110,115])
trigger2 = (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 610 && (movecontact||movereversed))
;---------------------------------------------------------------------------
;Jump Strong Punch
[State -1, Jump Strong Punch]
type = ChangeState
value = 700
triggerall = !AILevel
triggerall = command = "c"
trigger1 = statetype = A
trigger1 = ctrl || (stateno = [110,115])
trigger2 = (stateno = 600 && (movecontact||movereversed))
trigger3 = (stateno = 610 && (movecontact||movereversed))
trigger4 = (stateno = 620 && (movecontact||movereversed))
[State -1, Super Jump]
type = ChangeState
value = 4000
triggerall = !AILevel
triggerall = stateno != 911
triggerall = command = "SuperJump"
trigger1 = statetype != A
trigger1 = ctrl