; The CMD file for Sonic 2 by supermystery.
;
; Two parts: 1. Command definition and  2. State entry
; (state entry is after the commands def section)
;
; 1. Command definition
; ---------------------

;-| 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 = 1



;
;Rsyp
;
[Command]
name = "AI0"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI1"
command = b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b
time = 0
[Command]
name = "AI2"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI3"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI4"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI5"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI6"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI7"
command = F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
time = 0
[Command]
name = "AI8"
command = D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D
time = 0
[Command]
name = "AI9"
command = B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B
time = 0
[Command]
name = "AI10"
command = U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U
time = 0
[Command]
name = "AI11"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI12"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI13"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI14"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI15"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI16"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI17"
command = a,B,c,x,y,z,s,B,D,F,U,a,b,c,x,y,z,s,s
time = 0
[Command]
name = "AI18"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI19"
command = b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b
time = 0
[Command]
name = "AI20"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI21"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI22"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI23"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI24"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI25"
command = F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
time = 0
[Command]
name = "AI26"
command = D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D
time = 0
[Command]
name = "AI27"
command = B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B
time = 0
[Command]
name = "AI28"
command = U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U
time = 0
[Command]
name = "AI29"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI30"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI31"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI32"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI33"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI34"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI35"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI36"
command = z,z,z,z,z,z,a,a,a,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI37"
command = z,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,z,z,z
time = 0
[Command]
name = "AI38"
command = z,z,z,z,z,a,a,a,z,z,z,z,z,a,a,a,z,z,z
time = 0
[Command]
name = "AI39"
command = z,z,z,z,z,a,a,a,z,z,z,z,z,z,a,a,z,z,z
time = 0
[Command]
name = "AI40"
command = z,z,z,z,a,a,a,z,z,z,z,a,z,z,a,a,z,z,z
time = 0
[Command]
name = "AI41"
command = z,z,z,a,z,z,z,z,z,z,z,z,z,a,a,z,z,z,z
time = 0
[Command]
name = "AI42"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI43"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,a,a,z
time = 0
[Command]
name = "AI44"
command = z,z,a,a,a,a,z,z,z,z,z,z,z,z,z,a,a,a,z
time = 0
[Command]
name = "AI45"
command = z,z,z,z,z,z,a,a,z,z,z,z,z,a,a,a,a,z,z
time = 0
[Command]
name = "AI46"
command = z,z,z,z,z,z,z,z,a,a,a,a,a,a,z,z,z,z,z
time = 0
[Command]
name = "AI47"
command = z,z,z,a,a,a,a,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI48"
command = z,z,z,z,z,a,a,a,z,z,z,a,a,a,z,z,a,z,a
time = 0
[Command]
name = "AI49"
command = z,z,z,z,a,a,a,z,z,z,z,z,a,a,a,z,z,z,z
time = 0
[Command]
name = "AI50"
command = z,z,z,a,a,z,z,z,z,z,z,z,z,z,a,a,z,z,z
time = 0
;
;-| Single Button |---------------------------------------------------------
[Command]
name = "a"
command = a
time = 1

[Command]
name = "b"
command = b
time = 1

[Command]
name = "c"
command = c
time = 1

[Command]
name = "x"
command = x
time = 1

[Command]
name = "y"
command = y
time = 1

[Command]
name = "z"
command = z
time = 1

[Command]
name = "start"
command = s
time = 1

[Command]
name = "DoomScythe"
command = x+y

;-| 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

;-| Hold Button |----------------------------------------------------------

[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

;--- None of your own command definitions should be above this line. ---

;-| CPU |--------------------------------------------------------------


[Command]
name = "a2"
command = a
time = 1

[Command]
name = "b2"
command = b
time = 1

[Command]
name = "c2"
command = c
time = 1

[Command]
name = "x2"
command = x
time = 1

[Command]
name = "y2"
command = y
time = 1

[Command]
name = "z2"
command = z
time = 1

[Command]
name = "start2"
command = s
time = 1

[Command]
name = "holdfwd2"
command = /$F
time = 1

[Command]
name = "holdback2"
command = /$B
time = 1

[Command]
name = "holdup2"
command = /$U
time = 1

[Command]
name = "holddown2"
command = /$D
time = 1

[Command]
name = "holda2"
command = /a
time = 1

[Command]
name = "holdb2"
command = /b
time = 1

[Command]
name = "holdc2"
command = /c
time = 1

[Command]
name = "holdx2"
command = /x
time = 1

[Command]
name = "holdy2"
command = /y
time = 1

[Command]
name = "holdz2"
command = /z
time = 1

[Command]
name = "holdstart2"
command = /s
time = 1

[Command]
name = "recovery2"
command = x+y
time = 1


;- | Moves |-------------------------------------

[Command]
name = "sonica" 
command = /~30a  ;hold a for at least 20 ticks, then release

[Command]
name = "sonicb" 
command = /~30b  ;hold a for at least 20 ticks, then release

[Command]
name = "sonicc" 
command = /~30c  ;hold a for at least 20 ticks, then release



;-| Double Tap |-----------------------------------------------------------
[Command]
name = "FF"     ;Required (do not remove)
command = F, F
time = 10

[Command]
name = "BB"     ;Required (do not remove)
command = B, B
time = 10

;-| 2/3 Button Combination |-----------------------------------------------
[Command]
name = "recovery";Required (do not remove)
command = x+y
time = 1

;-| Dir + Button |---------------------------------------------------------
[Command]
name = "down_a"
command = /$D,a
time = 1

[Command]
name = "down_b"
command = /$D,b
time = 1

;Set AI
;-------------------------
[Command]
name = "AI"
command = a,b,c,z,x,y,s
time=0
;---------------------------------------------------------------------------
; 2. State entry
; --------------
;
[Statedef -1]

[State -3, SetAI]
type = VarSet
triggerall = var(58)!=1
;triggerall = IsHomeTeam
trigger1 = command ="AI"
var(58) = 1

;----------------------------------------------------------
;Simulation mode ON/OFF
;-----------------------------------------------------------

[State -1, Simulation mode ON/OFF]
type = VarSet
trigger1 = 1
v = 32
;value = 1 ; Uncomment this if you want simulation mode to be on 
value = 0
ignorehitpause = 1

;----------------------------------------------------------
;End of configuration
;-----------------------------------------------------------

;============================================================

[State -1, AI Helper Check]
type = ChangeState
trigger1 = IsHelper(9741)
value = 9741

[State -1, AI Helper Check 2]
type = ChangeState
trigger1 = IsHelper(9742)
value = 9742

;===========================================================================
[State -1, Hide]
type = AssertSpecial
trigger1 = IsHelper(44304)
flag = invisible
flag2 = NoShadow
IgnoreHitPause = 1

[State -1, Reset]
type = SelfState
trigger1 = IsHelper(44304)
trigger1 = StateNo != [44304,44305]
value = 44304
IgnoreHitPause = 1

[State -1, WideOpen]
type = AssertSpecial
trigger1 = 1
flag = NoStandGuard
flag2 = NoCrouchGuard
flag3 = NoAirGuard
IgnoreHitPause = 1

[State 0, Dont Turn]
type = AssertSpecial
trigger1 = 1
flag = noautoturn
flag1 = NoWalk
IgnoreHitPause = 1

[State -1, GO]
type = DestroySelf
trigger1 = IsHelper
trigger1 = movereversed = 1

[State 44304, HO]
type = HitOverride
trigger1 = ishelper(3000)
trigger1 = prevstateno != 3500
attr = SCA, AA,AP,AT
time = 1
stateno = 3500

;===========================================================================
; And of course, most human-only command-based ChangeStates also belong
; in State -1.  For example, this move would only be performable by a human:
;
;---------------------------------------------------------------------------
;Kick
[State -1, Kick]
type = ChangeState
value = 420
triggerall = var(27)
trigger1 = var(58) != 1
trigger1 = command = "y" && command != "c"  && command != "x"
trigger1 = command != "holddown"
triggerall = statetype = S || statetype = C
triggerall = ctrl
trigger2 = var(58) = 1
trigger2 = p2dist x = [0,15]
;trigger1 = numhelper(7666) = 0 && numhelper(7667) = 0 && numhelper(7668) = 0 && numhelper(7669) = 0 && numhelper(7670) = 0  && numhelper(7671) = 0

[State -1, Back Kick]
type = ChangeState
value = 403
triggerall = var(27)
trigger1 = var(58) != 1
trigger1 = command = "y" && command != "c"  && command != "x"
trigger1 = command = "holddown"
triggerall = statetype = S || statetype = C
triggerall = ctrl
trigger2 = var(58) = 1
trigger2 = p2dist x > 130 && p2dist x < 163
trigger3 = var(58) = 1
trigger3 = p2dist x > 167


;ERmac
[State -1, Summon ERmac]
type = ChangeState
value = 4300
triggerall = var(27)
triggerall = prevstateno != 4300
triggerall = power > 0
trigger1 = var(58) != 1
trigger1 = command = "y" && command = "c"
trigger1 = command != "holddown"
;triggerall = statetype = S || statetype = C
triggerall = ctrl
trigger2 = var(58) = 1
trigger2 = p2dist x = [163,166]
;triggerall = enemynear,authorName != "ZaBujCaMILAN"
;trigger1 = numhelper(7666) = 0 && numhelper(7667) = 0 && numhelper(7668) = 0 && numhelper(7669) = 0 && numhelper(7670) = 0  && numhelper(7671) = 0

;Sonic Spin Attack
[State -1, Sonic Spin Attack]
type = ChangeState
value = 40
triggerall = var(27)
triggerall = var(58) != 1
triggerall = command = "a" || command = "b"; || command = "c"
triggerall = command != "holddown"
trigger1 = statetype = S || statetype = C
trigger1 = ctrl
trigger2 = stateno = 600 || stateno = 25 || stateno = 621

;Summon Spike
[State -1, Summon Spikes]
type = ChangeState
value = 11196
triggerall = var(27)
triggerall = var(58) != 1
triggerall = command = "z"
triggerall = command != "holddown"
trigger1 = statetype = S || statetype = C
trigger1 = ctrl
trigger1 = numhelper(7666) = 0 && numhelper(7667) = 0 && numhelper(7668) = 0 && numhelper(7669) = 0 && numhelper(7670) = 0  && numhelper(7671) = 0

;trigger2 = stateno = 600 || stateno = 25 || stateno = 621

;Gory Attack
[State -1, Gory Attack]
type = ChangeState
value = 402
triggerall = var(27)
triggerall = var(58) != 1
triggerall = command = "z"
triggerall = command = "holddown"
trigger1 = statetype = S || statetype = C
trigger1 = ctrl
;trigger1 = numhelper(7666) = 0 && numhelper(7667) = 0 && numhelper(7668) = 0 && numhelper(7669) = 0 && numhelper(7670) = 0  && numhelper(7671) = 0

;trigger2 = stateno = 600 || stateno = 25 || stateno = 621


;Air homing
[State -1, Air homing]
type = ChangeState
value = 1040
triggerall = var(27)
triggerall = var(58) != 1; && power >= 100
triggerall = command = "b"
trigger1 = statetype = A
trigger1 = ctrl
trigger1 = statetime > 10

;Doom Scythe
[state -1]
type = Changestate
value = 3000
;triggerall = !var(59)
triggerall = var(27)
triggerall = power >= 1000
trigger1 = var(58) != 1
trigger1 = command = "DoomScythe"
triggerall = statetype = S
triggerall = facing = 1 || facing = -1
triggerall = ctrl
trigger2 = var(58) = 1
trigger2 = power < 1999

;Sonic exe mode
[State -1, Sonic exe mode]
type = null;ChangeState
value = 10000
triggerall = var(40)=0
triggerall = power >=1000
trigger1 = command = "start"
trigger1 = command = "x"
;trigger1 = ctrl

;Sonic exe mode
[State -1, Sonic exe mode]
type = null;ChangeState
value = 10001
triggerall = var(40)
trigger1 = command = "start"
trigger1 = command = "z"
;trigger1 = ctrl

;Hide and Seek
[State -1, Sonic exe mode]
type = null;ChangeState
value = 10666
triggerall = numhelper(666) = 0
triggerall = var(40)
triggerall = power >=3000
trigger1 = statetype = S || statetype = C
trigger1 = command = "x"
trigger1 = command = "z"
;trigger1 = parent,var(40)
;trigger1 = ctrl

;Super Sonic.exe Cant Run
[State -1, Sonic exe mode]
type = ChangeState
value = 1014;11181
triggerall = roundstate = 2
triggerall = numhelper(666) = 0
triggerall = var(40)
;triggerall = var(27)=1
triggerall = statetype = S; || statetype = C
triggerall = stateno != 11181 && stateno != 3000
trigger1 = command = "c" && command = "holdfwd" && command != "y";command = "x" || command = "y" || command = "z"

;Cant Run
[State -1, Sonic exe mode]
type = ChangeState
value = 11181
triggerall = roundstate = 2
triggerall = numhelper(666) = 0
triggerall = var(40)
;triggerall = power >= 100
;triggerall = var(27)=0
triggerall = statetype = S; || statetype = C
triggerall = stateno != 11181 && stateno != 3000
trigger1 = command = "c"&& command != "holdfwd" && command != "y";command = "x" || command = "y" || command = "z"

;[State -1, Sonic exe mode]
;type = ChangeState
;value = 54321
;triggerall = numhelper(666) = 0
;triggerall = var(40)
;triggerall = power >=3000
;trigger1 = statetype = S || statetype = C
;trigger1 = command = "y"

;---------------------------------------------------------------------------
[State -1, Look Up]
type = ChangeState
value = 196
triggerall = var(58) != 1 && !var(20) && stateno != 196 && stateno != 198 && stateno != 500
triggerall = command = "holdup"
trigger1 = statetype = S || statetype = C
trigger1 = ctrl

;---------------------------------------------------------------------------
;Spin Dash
[State -1, Spin Dash]
type = ChangeState
value = 620
triggerall = var(58) != 1
triggerall = var(27)
triggerall = command = "a" || command = "b"; || command = "c"
triggerall = command = "holddown"
trigger1 = statetype = S || statetype = C
trigger1 = ctrl


; This is generally the best place to put most of your AI directives.  For
; example, this controller would only be executed when the CPU is in control:

;================================================================================
;AI
;--------------------------------------------------------------------------------

[State -1, Turn]
type = Turn
triggerall = var(58) = 1
Triggerall = P2Dist X < 0
trigger1 = ctrl = 1 && stateno != 196 && stateno != 620
trigger2 = stateno = 600
trigger3 = var(27) = 1 && stateno != 620
trigger4 = var(27) != 1 
trigger4 = stateno = 25
trigger5 = stateno = 25
trigger5 = vel x > -9
Trigger5 = P2Dist X < 0
trigger5 = var(58) = 1

[State -1, Spin Dash]
type = ChangeState
value = 620
triggerall = var(27)=1
triggerall = var(58) = 1 && stateno != 25
triggerall = p2bodydist y = [-10,0]
trigger1 = statetype = S || statetype = C
trigger1 = ctrl
trigger1 = p2bodydist x = [-4,80]
trigger1 = random < 200
trigger1 = moveguarded != 1
trigger1 = var(27) != 1
trigger2 = var(27) != 1
trigger2 = statetype = S || statetype = C
trigger2 = ctrl
trigger2 = p2bodydist x >= 1
trigger2 = random < 200
trigger2 = p2stateno != [130, 153]
trigger2 = moveguarded != 1
trigger3 = statetype = S || statetype = C
trigger3 = ctrl
trigger3 = p2bodydist x = [-4,50]
trigger3 = random < 200
trigger3 = moveguarded != 1
trigger3 = var(27) = 1


[State -1, AI Walk]
type = Changestate
triggerall = var(58) = 1
triggerall = stateno != 25
triggerall = p2bodydist y = [-10,0]
trigger1 = p2movetype != A
trigger1 = statetype = S || statetype = C
trigger1 = ctrl
trigger1 = p2dist x > 0
trigger1 = random <= 700
trigger1 = var(27) != 1
trigger2 = var(27) = 1
trigger2 = statetype = S || statetype = C
trigger2 = ctrl
trigger2 = p2dist x > 0
trigger2 = random <= 300
trigger2 = p2stateno != [130, 153]
trigger2 = moveguarded != 1
value = 25
ctrl = 0

[State -1, 4 AI]
type = ChangeState
triggerall = var(58) = 1
triggerall = stateno = 25
trigger1 = var(27) != 1
trigger1 = p2movetype = A
trigger1 = fvar(15) = 0
trigger2 = var(27) = 1
trigger2 = stateno = 25
trigger2 = p2movetype = H 
trigger2 = fvar(15) = 0
trigger3 = var(27) = 1
trigger3 = stateno = 25
trigger3 = p2movetype = I && random < 100
trigger3 = fvar(15) = 0
trigger4 = p2stateno = [130, 153]
trigger5 = moveguarded = 1
value = 0
ctrl = 1


[State -1, AI Sonic Spin Attack]
type = ChangeState
value = 40
triggerall = var(27)=1
triggerall = var(58) = 1
trigger1 = statetype = S || statetype = C 
trigger1 = ctrl
trigger1 = p2bodydist x = [-4,70]
trigger1 = p2bodydist y = [-70,-4]
trigger1 = var(27) != 1
trigger1 = random <= 500
trigger2 = stateno = 600 || stateno = 621
trigger2 = p2bodydist x = [-1,70]
trigger2 = p2bodydist y = [-70,-4]
trigger3 = var(27) != 1
trigger3 = stateno = 25
trigger3 = random <= 500
trigger3 = p2bodydist x = [-1,70]
trigger3 = p2bodydist y = [-70,-4]
trigger4 = statetype = S || statetype = C 
trigger4 = ctrl
trigger4 = p2bodydist x = [30,70]
trigger4 = p2bodydist y = [-70,-5]
trigger4 = var(27) = 1
trigger4 = random <= 500
trigger5 = var(27) = 1
trigger5 = stateno = 25
trigger5 = random <= 500
trigger5 = p2bodydist x = [-1,70]
trigger5 = p2bodydist y = [-70,-5]
trigger6 = statetype = S || statetype = C 
trigger6 = ctrl || stateno  = 25
trigger6 = p2bodydist x > 50
trigger6 = p2bodydist y = [-10,0]
trigger6 = p2movetype = A

[State -1, AI Breaks 1] ;Change from turning animation
type = ChangeAnim
triggerall = var(58) = 1
triggerall = pos y = 0 ;&& stateno = 20
trigger1 = fvar(15) != 0
Trigger1 = P2Dist X < 0
trigger1 = stateno = 25 && vel x > 4
value = ifelse(var(27) = 1,1190,191)

[State -1, Break Snd 1]
type = PlaySnd
triggerall = var(58) = 1
triggerall = pos y = 0 ;&& stateno = 20
trigger1 = fvar(15) != 0
Trigger1 = P2Dist X < 0
trigger1 = stateno = 25 ;|| stateno = 600
value = 7,4
channel = 1

;Hide and Seek
[State -1, Sonic exe mode]
type = null;ChangeState
value = 10666
triggerall = var(58) = 1
triggerall = numhelper(666) = 0
triggerall = var(40)
triggerall = var(27)!=1
triggerall = power >=3000
trigger1 = statetype = S
;trigger1 = parent,var(40)
;trigger1 = ctrl

;Summon Spike
[State -1, Summon Spike]
type = ChangeState
value = 11196
triggerall = stateno != 3000 && stateno != 11196
triggerall = var(27)
triggerall = var(58) = 1
trigger1 = statetype = S || statetype = C
trigger1 = p2bodydist x = [-50,50]
trigger1 = random < 100
trigger1 = numhelper(7666) = 0 && numhelper(7667) = 0 && numhelper(7668) = 0 && numhelper(7669) = 0 && numhelper(7670) = 0  && numhelper(7671) = 0
;trigger2 = stateno = 600 || stateno = 25 || stateno = 621
trigger1 = ctrl

;Gory Attack
[State -1, Gory Attack]
type = ChangeState
value = 402
triggerall = stateno != 3000 ;&& stateno != 402
triggerall = var(27)
triggerall = var(58) = 1
triggerall = statetype = S || statetype = C
trigger1 = p2bodydist x = [-50,50]
triggerall = random > 100
trigger2 = p2bodydist x < -70
trigger2 = p2bodydist x <= 100
trigger2 = p2bodydist x >= -100
trigger3 = p2bodydist x > 70
;trigger1 = numhelper(7666) = 0 && numhelper(7667) = 0 && numhelper(7668) = 0 && numhelper(7669) = 0 && numhelper(7670) = 0  && numhelper(7671) = 0
;trigger2 = stateno = 600 || stateno = 25 || stateno = 621
triggerall = ctrl
triggerall = numhelper(2323)<7

[State -1, Air homing]
type = ChangeState
value = 1040
triggerall = var(58) = 1; && power >= 100
trigger1 = statetype = A
trigger1 = ctrl
trigger1 = statetime > 10 && random < 99
trigger1 = p2bodydist x = [5,80]


;[State -1]
;type = ChangeState
;value = 1014
;triggerall = Var(9) = 0
;trigger1 = command = "Teleport"
;trigger1 = ctrl && statetype != A

;[State -1]
;type = ChangeState
;value = 1014
;triggerall = Var(9) = 0
;triggerall = statetype != A
;trigger1 = stateno = 5000
;trigger2 = stateno = 5001
;trigger3 = stateno = 5030
;trigger4 = stateno = 5020

[State -1]
type = ChangeState
value = 1014
;triggerall = Var(9) = 1
triggerall = statetype != A
trigger1 = stateno = 5000
trigger2 = stateno = 5001
trigger3 = stateno = 5030
trigger4 = stateno = 5020

[State -1]
type = ChangeState
value = 1014
;triggerall = Var(9) = 1
triggerall = stateno != 3000
triggerall = Random <= 299
triggerall = P2MoveType = A
triggerall = P2BodyDist X >= 50
trigger1 = ctrl && statetype != A


;---------------------------------

[State 0, VarAdd]
type = VarAdd
trigger1 = Palno >=11
trigger1 = gametime%11 = 10
trigger1 = numhelper(8667) < 34
trigger1 = var(41) <=30
v = 41   ;fv =
value = 1
;ignorehitpause =
;persistent =

[State 0, VarAdd]
type = VarSet
trigger1 = Palno >=11
trigger1 = gametime%1001 = 1000
;trigger1 = var(18) =30
v = 41   ;fv =
value = 0
;ignorehitpause =
;persistent =

[State 192]
type = Helper
trigger1 = Palno >=11
;triggerall = palno = [7,12]
trigger1 = roundstate =2
trigger1 = gametime%11 = 10
trigger1 = var(41) < 30
;trigger1 = time = 200*var(30)
;trigger1 = var(27)=1
;trigger1 = stateno !=194 && stateno != 5900 && stateno !=170
;trigger1 = time = 0
;trigger2 = prevstateno = 3000
ID = 8667
name = "spike"
postype = left
pos = floor((var(41)*32)-32),0;230,-220
sprpriority = -1
stateno = 7666
helpertype = normal
keyctrl = 0
persistent = 0
ignorehitpause = 1
ownpal = 1
supermovetime = 999999999

[State -1, Helper]
Type = Helper
trigger1 = stateno !=194 && stateno != 5900
trigger1 = roundstate = 2
Trigger1 = NumHelper(3200) = 0
Stateno = 3200
ID = 3200
Name = "RRing1"
Pos = 0,-75
PosType = P1
Ownpal = 1
Keyctrl = 0
SprPriority = 8
IgnoreHitPause = 1
Persistent = 0
SuperMoveTime = 0
PauseMoveTime = 0
;Size.XScale = 0.12
;Size.YScale = 0.12

[State -1, Helper]
Type = Helper
trigger1 = stateno !=194 && stateno != 5900
trigger1 = roundstate = 2
Trigger1 = NumHelper(3201) = 0
Stateno = 3200
ID = 3201
Name = "RRing2"
Pos = 0,-75
PosType = P1
Ownpal = 1
Keyctrl = 0
SprPriority = 8
IgnoreHitPause = 1
Persistent = 0
SuperMoveTime = 0
PauseMoveTime = 0
;Size.XScale = 0.12
;Size.YScale = 0.12

[State -1, Helper]
Type = Helper
trigger1 = stateno !=194 && stateno != 5900
trigger1 = roundstate = 2
Trigger1 = NumHelper(3202) = 0
Stateno = 3200
ID = 3202
Name = "RRing3"
Pos = 0,-75
PosType = P1
Ownpal = 1
Keyctrl = 0
SprPriority = 8
IgnoreHitPause = 1
Persistent = 0
SuperMoveTime = 0
PauseMoveTime = 0
;Size.XScale = 0.12
;Size.YScale = 0.12

[State -1, Helper]
Type = Helper
trigger1 = stateno !=194 && stateno != 5900
trigger1 = roundstate = 2
Trigger1 = NumHelper(3203) = 0
Stateno = 3200
ID = 3203
Name = "Helper"
Pos = 0,-75
PosType = P1
Ownpal = 1
Keyctrl = 0
SprPriority = 8
IgnoreHitPause = 1
Persistent = 0
SuperMoveTime = 0
PauseMoveTime = 0
;Size.XScale = 0.12
;Size.YScale = 0.12

[State -1, Helper]
Type = Helper
trigger1 = stateno !=194 && stateno != 5900
trigger1 = Palno >=11
trigger1 = roundstate = 2
Trigger1 = NumHelper(3204) = 0
Stateno = 3200
ID = 3204
Name = "Helper"
Pos = 0,-75
PosType = P1
Ownpal = 1
Keyctrl = 0
SprPriority = 8
IgnoreHitPause = 1
Persistent = 0
SuperMoveTime = 0
PauseMoveTime = 0
;Size.XScale = 0.12
;Size.YScale = 0.12

[State -1, Helper]
Type = Helper
trigger1 = stateno !=194 && stateno != 5900
trigger1 = Palno >=11
trigger1 = roundstate = 2
Trigger1 = NumHelper(3205) = 0
Stateno = 3200
ID = 3205
Name = "Helper"
Pos = 0,0;-75
PosType = P1
Ownpal = 1
Keyctrl = 0
SprPriority = 8
IgnoreHitPause = 1
Persistent = 0
SuperMoveTime = 0
PauseMoveTime = 0
;Size.XScale = 0.12
;Size.YScale = 0.12

[State -1, Reset]
type = SelfState
trigger1 = IsHelper(2021); && !IsHelper(44304)
trigger2 = IsHelper(2022); && !IsHelper(44304)
trigger3 = IsHelper(2023); && !IsHelper(44304)
trigger1 = helper(2021),StateNo != 2030 && helper(2021),StateNo != 20300
trigger2 = helper(2022),StateNo != 2030 && helper(2022),StateNo != 20300
trigger3 = helper(2023),StateNo != 2030 && helper(2023),StateNo != 20300
value = 6000;20300
IgnoreHitPause = 1

[State -1, Reset]
type = SelfState
trigger1 = IsHelper(2323); && !IsHelper(44304)
trigger1 = StateNo != [7511,7651]
value = 6000
IgnoreHitPause = 1

[State -1, Reset]
type = SelfState
trigger1 = IsHelper(8667); && !IsHelper(44304)
trigger1 = StateNo != [7666,7667]
value = 6000
IgnoreHitPause = 1
