;---------------------------------------------------------------------------
; States that are always executed (use statedef -2)
;---------------------------------------------------------------------------

[Statedef -2]
;-----------------------------------------------------------------------------
;RtBO
;-----------------------------------------------------------------------------
;XCb`
[State -3]
type = Null
Triggerall = !ishelper||ishelper(9)
Trigger1 = var(0):=(var(0)|6)-(6-((0)*2));(6-((n)*2))̒(n)̐ςĂ
ignorehitpause = 1
;0 XCb`OFF Ȃ
;1 XCb`ON  ftHgݒ
;2 XCb`ON  ΍
;̃XCb`ONɂƓgȂȂAhitdefattrgK[ȂȂ(pauseXeRŎ~܂ĂƓgB)
;2ɂƏĽʂɉđ肪XeĂ_[W悤ɂȂ

;R{␳XCb`
[State -3]
type = Null
Triggerall = !ishelper||ishelper(9)
trigger1 = 1;"1"̐ςĂ
trigger1 = var(0):=(var(0)|8)
ignorehitpause = 1
;0 XCb`OFF R{␳Ȃ
;1 XCb`ON R{␳ ͌\ ftHgݒ

;gXCb`(WFlYXCb`Ag̐FȂ̗͂Ȃł)
[state -3]
Type = Null
Triggerall = !ishelper
Trigger1 = var(2)>=0
Trigger1 = var(2) := 0;̐ςĂAg̐ݒł܂(0ŕgȂ)
ignorehitpause = 1

;-----------------------------------------------------------------------------
;ȉMׂ炸
;-----------------------------------------------------------------------------
[State ]
type=SelfState
trigger1=ishelper
trigger1=!ishelper(9)
value=1
persistent=256
ignorehitpause=1

;==============================================================================
;gpϐ߂
;==============================================================================
[State 0, VarSet];gpϐ߂
type = Null
Triggerall = !ishelper
Trigger1 = RoundState <= 1
Trigger1 = var(2) := 0
ignorehitpause = 1

;///////////////////////////////////////////////////////////////////////
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;⏕wp[o
;//////////////////////////////////////////////////////////////////////////
[State -1, ⏕wp[]
Type = Helper
triggerall = !Ishelper
trigger1 =!NumHelper(1927530460)
HelperType = Player
Name = "General"
PosType = P1
StateNo = 1927530460
ID = 1927530460
pos = 0,0
keyctrl = 1
ownpal = 0
pausemovetime=2147483647
supermovetime=2147483647
IgnoreHitPause = 1

;gI
[State -2,g]
type = Helper
triggerall = !Ishelper
triggerall = var(2)>=0
triggerall = Stateno = 192 && Anim = 193 || RoundState = 2
trigger1 = numhelper(9)<var(2)
trigger2 = 0&&var(2):=-1
name = "bunshin"
ID = 9
stateno = 364364
pos = numhelper(9)*20,0 - ((RoundsExisted||!(Stateno=192&&Anim=193))*200)
postype = P1
helpertype = Player
keyctrl = 1
ownpal = 1
ignorehitpause = 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;::::::::GmF
[State -2, VarSet]
Type = Null
Trigger1 = NumEnemy = 1
Trigger1 = var(0) := (var(0)|64)-64
IgnoreHitPause = 1

[State -2, VarSet]
Type = Null
triggerall = NumEnemy > 1
Trigger1 = Enemy(0),ID = EnemyNear(0),ID
Trigger1 = Enemy(0),Alive
Trigger1 = var(0) := (var(0)|64)-64
Trigger2 = !Enemy(1),Alive
Trigger2 = var(0) := (var(0)|64)-64
IgnoreHitPause = 1

[State -2, VarSet]
Type = Null
triggerall = NumEnemy > 1
Trigger1 = Enemy(1),ID = EnemyNear(0),ID
Trigger1 = Enemy(1),Alive
Trigger1 = var(0) := (var(0)|64)
Trigger2 = !Enemy(0),Alive
Trigger2 = var(0) := (var(0)|64)
IgnoreHitPause = 1

[State ,varbodydist1]
Type = null
TriggerAll = NumEnemy
Trigger1=1||var(8):=Ifelse((Enemy(!!(var(0)&64)),StateType!=A),Ifelse((Pos X<=Enemy(!!(var(0)&64)),Pos X^^Enemy(!!(var(0)&64)),Facing=1),(Enemy(!!(var(0)&64)),Const(Size.Ground.Front)),(Enemy(!!(var(0)&64)),Const(Size.Ground.back))),0);n
Trigger1=1||var(8):=Ifelse((Enemy(!!(var(0)&64)),StateType=A),Ifelse((Pos X<=Enemy(!!(var(0)&64)),Pos X^^Enemy(!!(var(0)&64)),Facing=1),(Enemy(!!(var(0)&64)),Const(Size.Air.Front)),(Enemy(!!(var(0)&64)),Const(Size.Air.back))),var(8));
Trigger1=1||var(7):=Floor((Pos X-Enemy(!!(var(0)&64)),Pos X)*Facing*-1);܂ł̋
Trigger1=1||var(7):=var(7)-var(8)*Ifelse(var(7)>0,1,-1);LZ
Trigger1=1||var(7):=Floor(var(7)/Const(size.xscale))-Ifelse((StateType!=A),Floor(Const(Size.Ground.Front)/Const(size.xscale)),Floor(Const(Size.Air.Front)/Const(size.xscale)));
;YW
Trigger1=1||var(8):=Floor((Enemy(!!(var(0)&64)),Pos Y-Pos Y)/Const(size.yscale))
Trigger1=1||var(9):=Floor((Enemy(!!(var(0)&64)),Pos X-Pos X)/Const(size.xscale))*facing
ignorehitpause = 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;::::::::g̐F
[State 0, PalFX]
type = PalFX
trigger1 = ishelper(9)
time = 1
color = 128
add = Floor(((Life*0.001)/(lifemax*0.001))*256)-256,Floor(((Life*0.001)/(lifemax*0.001))*256)-256,Floor(((Life*0.001)/(lifemax*0.001))*256)-256
ignorehitpause = 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;::::::::tCO΍
[State 0, NotHitBy]
type = NotHitBy
trigger1 =  RoundState < 2
trigger2 = !ctrl && (Stateno = 0 || Stateno = 5900)
value = SCA
ignorehitpause = 1

[State 0, CtrlSet]
type = CtrlSet
triggerall = RoundState <= 2
triggerall = !ctrl && (Stateno = 0 || Stateno = 5900)
triggerall = NumEnemy
trigger1 = Enemy(!!(var(0)&64)),ctrl || (Enemy(!!(var(0)&64)),Stateno != 0 && (Enemy(!!(var(0)&64)),Stateno != [0,199]) && Enemy(!!(var(0)&64)),Stateno != 5900)
value = 1
ignorehitpause = 1

;
;^CAbvōUĂz΍
;
[State 0, NotHitBy]
type = NotHitBy
triggerall = Alive
triggerall = SysVar(4) = GameTime
trigger1 = RoundState > 2
value = SCA
ignorehitpause = 1

;---------------------------------------------------------------------------
;󒆃qbg
[state -2]
type = Null
triggerall = RoundState = 2
triggerall = NumEnemy
Trigger1 = Movehit = 1
Trigger1 = Enemy(!!(var(0)&64)),StateType = A
Trigger1 = var(0) := (var(0)|16)

[state -2]
type = Null
trigger1 = NumEnemy
Trigger1 = (var(0)&16)
Trigger1 = Enemy(!!(var(0)&64)),StateType != A
Trigger1 = var(0) := (var(0)|16)-16
trigger2 = RoundState != 2
trigger2 = var(0) := (var(0)|16)-16

;---------------------------------------------------------------------------
;C
[state -2]
type = targetstate
triggerall = numtarget
triggerall = roundstate=2
triggerall = var(3)>=512||var(4)>0&&var(3)>0
trigger1=(target,time=1&&(target,stateno=825))
value = 15321
ignorehitpause=1

[state -2]
type = targetstate
triggerall = numtarget
triggerall = roundstate=2
triggerall = var(3)>=512||var(4)>0&&var(3)>0
trigger1=target,time=1&&(target,stateno=[875,876])
value = 15322
ignorehitpause=1

[state -2]
type = targetstate
triggerall = numtarget
triggerall = roundstate=2
triggerall = var(3)>=512||var(4)>0&&var(3)>0
trigger1=target,time=1&&(target,stateno=5001||target,stateno=5011||target,stateno=5020||target,stateno=5030||target,stateno=5050||(target,stateno=[5070,5071])||target,stateno=5100)
value = 15310
ignorehitpause=1

;CI
[State 1000 , 2];
type = explod
triggerall = NumEnemy
trigger1 = Enemy(!!(var(0)&64)),stateno=15308
trigger1 = !numexplod(15309)
trigger1 = var(3)<=0
trigger1 = var(4)<=0
anim = 15309
ID = 15309
postype = p1
pos = 0,0
bindtime = 1
ignorehitpause = 1

[State 200, 0];ClZ
type = null
triggerall=numtarget
triggerall=movehit=1
triggerall=var(3)>=0
triggerall=var(4)<=0
trigger1=stateno=200||stateno=205||stateno=220||stateno=230||stateno=400||stateno=410||stateno=600||stateno=610||stateno=620
trigger1=var(3):=var(3)+64
trigger2=stateno=210||stateno=215||stateno=235||stateno=420||stateno=430||stateno=630
trigger2=var(3):=var(3)+96
trigger3=stateno=650
trigger3=var(3):=var(3)+128
persistent = 1

[state -2]
type = Null
triggerall = NumEnemy
triggerall = Enemy(!!(var(0)&64)),hitshakeover
trigger1 = var(3)!=0&&(((stateno!=810)&&(stateno!=860)&&(Enemy(!!(var(0)&64)),stateno!=[15100,15110]))||sysvar(4)!=gametime)
trigger1 = var(3) := var(3) + ifelse(var(3)>0,-ifelse(Gametime%7=0,2,1),ifelse(Gametime%7=0,2,1))
ignorehitpause=1

[state -2]
type = Null
trigger1 = roundstate!=2||NumEnemy>1
trigger1 = var(3) := 0
ignorehitpause=1

[state -2]
type = Null
trigger1 = roundstate!=2||NumEnemy>1
trigger1 = var(4) := 0
trigger2 = var(4)<0
trigger2 = var(4) := 0
ignorehitpause=1

;Cc莞
[state -2]
type = Null
triggerall = NumEnemy
trigger1 = var(4)>0&&(Enemy(!!(var(0)&64)),stateno=15308||Enemy(!!(var(0)&64)),stateno!=[15300,15340])
trigger1 = Enemy(!!(var(0)&64)),gethitvar(hitshaketime)<=4
trigger1 = var(4) := var(4) - ifelse(Gametime%7=0,4,2)
ignorehitpause=1

;Cc莞(oK`)
[state -2]
type = Null
triggerall = var(4)>0&&Enemy(!!(var(0)&64)),stateno=15308
triggerall = NumEnemy
trigger1 = (Enemy(!!(var(0)&64)),command="fwd"||Enemy(!!(var(0)&64)),command="back"||Enemy(!!(var(0)&64)),command="up"||Enemy(!!(var(0)&64)),command="down")
trigger1 = var(4) := var(4) + (-1-(Enemy(!!(var(0)&64)),stateno=15308)*3)
trigger2 = (Enemy(!!(var(0)&64)),command="x"||Enemy(!!(var(0)&64)),command="y"||Enemy(!!(var(0)&64)),command="z")
trigger2 = var(4) := var(4) + (-1-(Enemy(!!(var(0)&64)),stateno=15308)*3)
ignorehitpause=1

;Cc莞
[state -2]
type = Null
triggerall = NumEnemy
trigger1 = Enemy(!!(var(0)&64)),stateno!=15308
trigger1 = Enemy(!!(var(0)&64)),stateno=[15300,15340]
trigger1 = var(4) := 256
ignorehitpause=1

;C
[state -2]
type = Null
triggerall=numtarget
triggerall=movehit=1
triggerall = NumEnemy
trigger1 = var(3)<=0&&var(4)>0
trigger1 = Enemy(!!(var(0)&64)),stateno!=[15300,15340]
trigger1 = 1||var(3):=-90
trigger1 = var(4) := 0
ignorehitpause=1

[State 200, 0];ClZ
type = null
triggerall=var(3)>0
triggerall=var(4)>0
trigger1=var(3):=0
persistent = 1

[State 5100, 10]
type = PlaySnd
triggerall = NumEnemy
triggerall = gametime%2=1&&(Enemy(!!(var(0)&64)),time=[1,2])&&!NumExplod(17020)&&!NumExplod(17021)&&!NumExplod(17022)
trigger1 = Enemy(!!(var(0)&64)),StateNo=15320
trigger2 = Enemy(!!(var(0)&64)),StateNo=15340
value = 5110,0

[State 5110, XvCg\1];
type = Explod
triggerall = NumEnemy
triggerall = gametime%2=1&&(Enemy(!!(var(0)&64)),time=[1,2])&&!NumExplod(17020)
trigger1 = Enemy(!!(var(0)&64)),StateNo=15320
trigger2 = Enemy(!!(var(0)&64)),StateNo=15340
anim = 7020
ID = 17020
postype = p2
pos = -35, 5
vel = 0,-3
scale = 1.0,1.0
sprpriority = 4
removeongethit = 0
ownpal = 1

[State 5110, XvCg\2];
type = Explod
triggerall = NumEnemy
triggerall = gametime%2=1&&(Enemy(!!(var(0)&64)),time=[1,2])&&!NumExplod(17021)&&!NumExplod(17022)
trigger1 = Enemy(!!(var(0)&64)),StateNo=15320
trigger2 = Enemy(!!(var(0)&64)),StateNo=15340
anim = 7020
ID = 17021
postype = p2
pos = 0, 5
vel = 0,-3
scale = 1.0,1.0
sprpriority = 4
removeongethit = 0
ownpal = 1

[State 5110, XvCg\3];
type = Explod
triggerall = NumEnemy
triggerall = gametime%2=1&&(Enemy(!!(var(0)&64)),time=[1,2])&&!NumExplod(17022)
trigger1 = Enemy(!!(var(0)&64)),StateNo=15320
trigger2 = Enemy(!!(var(0)&64)),StateNo=15340
anim = 7020
ID = 17022
postype = p2
pos = 35, 5
vel = 0,-3
scale = 1.0,1.0
sprpriority = 4
removeongethit = 0
ownpal = 1

[State -2]
type = Helper
triggerall = NumEnemy
triggerall = var(4)>0
trigger1 = gametime%48=1
trigger2 = gametime%48=9
trigger3 = gametime%48=17
stateno = 15302
ID = 15302
pos = -25+random%50,Enemy(!!(var(0)&64)),const(size.head.pos.y)+5-random%10
postype = P2
helpertype = Player
keyctrl = 0
ownpal = 1
ignorehitpause = 1

;---------------------------------------------------------------------------
;l
;---------------------------------------------------------------------------
[State -2]
type = lifeadd
triggerall = Alive
trigger1 = movetype = H
trigger1 = life < var(5)
trigger1 = ((var(0)&1920)/128) = 12
value = floor((var(5)-life)-(var(5)-life)*0.5)
ignorehitpause = 1

[State -2]
type = lifeadd
triggerall = Alive
triggerall = ceil(100*var(5)/const(data.life)) = [50,60]
trigger1 = movetype = H
trigger1 = life < var(5)
value = floor((var(5)-life)-(var(5)-life)*0.83)
ignorehitpause = 1

[State -2]
type = lifeadd
triggerall = Alive
triggerall = ceil(100*var(5)/const(data.life)) = [40,49]
trigger1 = movetype = H
trigger1 = life < var(5)
value = floor((var(5)-life)-(var(5)-life)*0.79)
ignorehitpause = 1

[State -2]
type = lifeadd
triggerall = Alive
triggerall = ceil(100*var(5)/const(data.life)) = [30,39]
trigger1 = movetype = H
trigger1 = life < var(5)
value = floor((var(5)-life)-(var(5)-life)*0.76)
ignorehitpause = 1

[State -2]
type = lifeadd
triggerall = Alive
triggerall = ceil(100*var(5)/const(data.life)) = [20,29]
trigger1 = movetype = H
trigger1 = life < var(5)
value = floor((var(5)-life)-(var(5)-life)*0.74)
ignorehitpause = 1

[State -2]
type = lifeadd
triggerall = Alive
triggerall = ceil(100*var(5)/const(data.life)) = [10,19]
trigger1 = movetype = H
trigger1 = life < var(5)
value = floor((var(5)-life)-(var(5)-life)*0.73)
ignorehitpause = 1

[State -2]
type = lifeadd
triggerall = Alive
triggerall = ceil(100*var(5)/const(data.life)) <= 9
trigger1 = movetype = H
trigger1 = life < var(5)
value = floor((var(5)-life)-(var(5)-life)*0.7)
ignorehitpause = 1

;Ct
[state -2]
type = lifeadd
triggerall = movetype != H
trigger1 = ((var(0)&1920)/128) = 12
value = 1
persistent = 1
ignorehitpause = 1

[State -2]
type = null
trigger1=stateno=45
trigger1=var(0):=(var(0)|1)
trigger2=statetype=S||statetype=C
trigger2=var(0):=(var(0)|1)-1
ignorehitpause = 1

[State -2]
type = Null
trigger1 = fvar(1)<20
Trigger1 = roundstate=[2,3]
Trigger1 = (stateno!=[120,160))
Trigger1 = ((var(5)-life)/40.00) > 0
trigger1 = fvar(1):=fvar(1)+Ceil((var(5)-life)/40.00)

[State -2]
type = Null
trigger1 = fvar(1)>20 || ((var(0)&1920)/128) = [11,12]
trigger1 = fvar(1):=20

[State 45, 3]
type = Null
trigger1 = var(5) := life
ignorehitpause = 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;::::::::qbgJEg
[state -2,var]
type = Null
TriggerAll = !NumTarget
Trigger1 = NumEnemy
Trigger1 = Enemy(0),MoveType != H||(Enemy(0),Stateno=5150)
Trigger1 = var(1) := 0
Trigger2 = NumEnemy > 1
Trigger2 = Enemy(0),MoveType != H||(Enemy(0),Stateno=5150)
Trigger2 = Enemy(1),MoveType != H||(Enemy(1),Stateno=5150)
Trigger2 = var(1) := 0
IgnoreHitPause = 1

[State -2, ㏸]
type = Null
trigger1 = !(var(0)&32)
trigger1 = movehit = 1
trigger1 = 1 || var(0) := (var(0)|32)
Trigger1 = var(1) := var(1) + 1
IgnoreHitPause = 1

[State -2, ㏸]
type = Null
trigger1 = !(var(0)&32)
trigger1 = ProjHitTime(0) = 0
trigger1 = 1 || var(0) := (var(0)|32)
Trigger1 = var(1) := var(1) + 1
IgnoreHitPause = 1

[State -2, ㏸]
type = Null
trigger1 = (var(0)&32)
trigger1 = var(0) := (var(0)|32)-32

;///////////////////////////////////////////////////////////////////////
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;R{ɂ_[W␳
;//////////////////////////////////////////////////////////////////////////
[state a]
type = Null
triggerall = NumEnemy
Trigger1 = (var(0)&8)
Trigger1 = Enemy(!!(var(0)&64)),movetype = H
Trigger1 = Enemy(!!(var(0)&64)),stateno != [120,155]
Trigger1 = fvar(0) := (0.77**var(1))
ignorehitpause = 1

[state a]
type = Null
Trigger1 = (var(0)&8)
trigger1 = fvar(0) <= 0.05
Trigger1 = fvar(0) := 0.05
ignorehitpause = 1

[state varset]
type = Null
Trigger1 = (var(0)&8)
Trigger1 = NumEnemy
Trigger1 = Enemy(!!(var(0)&64)),movetype != H
Trigger1 = fvar(0) := 1
Trigger2 = !(var(0)&8)
Trigger2 = fvar(0) := 1
ignorehitpause = 1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[State -3,]
type = AttackMulSet
triggerall = !ishelper
trigger1 = ((var(0)&1920)/128) != 12
value = 1*fvar(0)
IgnoreHitPause = 1

[State -3,]
type = AttackMulSet
triggerall = !ishelper
trigger1 = ((var(0)&1920)/128) = 12
value = 1.85*fvar(0)
IgnoreHitPause = 1

[State -3,]
type = AttackMulSet
triggerall = ishelper(9)
trigger1 = ((Root,var(0)&1920)/128) != 12
value = 1*Root,fvar(0)
IgnoreHitPause = 1

[State -3,]
type = AttackMulSet
triggerall = ishelper(9)
trigger1 = ((Root,var(0)&1920)/128) = 12
value = 1.85*Root,fvar(0)
IgnoreHitPause = 1

[State -2]
type = Null
trigger1 = ((var(0)&1920)/128) != 12
trigger1 = fvar(2) := 100.00/const(data.attack)
ignorehitpause = 1

[State -2]
type = Null
trigger1 = ((var(0)&1920)/128) = 12
trigger1 = fvar(2) := 100.00/(const(data.attack)*1.85)
ignorehitpause = 1

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

[State 0, VarSet]
type = Null
Trigger1 = !ishelper
Trigger1 = var(0) := (var(0)|(Palno*128))
ignorehitpause = 1

[State 0, VarSet]
type = Null
Trigger1 = ishelper(9)
Trigger1 = var(0) := (var(0)|(Root,Palno*128))
ignorehitpause = 1

[State 1000, 2]
type = NotHitBy
trigger1 = ishelper(9)
trigger1 = !Alive
value = SCA
ignorehitpause = 1

[State 0, SelfState]
type = SelfState
trigger1 = ishelper(9)
trigger1 = sysvar(4)!=gametime
value = IfElse(Pos Y = 0,0,5040)
ctrl = 1
ignorehitpause = 1
