;---------------------------------------------------------------------------
;AI行動用
[Statedef 7000];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 200
ctrl = 0

;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;AI行動用
[Statedef 7001];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 210
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7002];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 230
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7003];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 240
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7004];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 250
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7010];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 220
ctrl = 0

;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;AI行動用
[Statedef 7011];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 1100
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7012];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 1400
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7013];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 1200
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7014];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 1000
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7015];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 1300
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7016];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 1500
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7020];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 3000
ctrl = 0

;---------------------------------------------------------------------------
;AI行動用
[Statedef 7021];近距離
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air

[State 200, 7]
type = ChangeState
trigger1 = 1
value = 3100
ctrl = 0


;---------------------------------------------------------------------------
[Statedef -3]

;ゲーム中に常にいつでも開始したいステート、ここでは「着地音」に使用しています
;下の条件は「52か106のステートに移動して１フレーム目に」と言う事です。
;52と106はバックステップとジャンプの着地のステートです。
;---------------------------------------------------------------------------
; ここから下は-3のステートを書いてください、ここに書いたものはゲーム中
; に条件が成立すればいつでも開始するステートです。
;---------------------------------------------------------------------------

;1000 - reppyuken
;1100 - combo
;1200 - kaiser wave
;1300 - columns
;1400 - dash
;1500 - curb proj
;3000 - super ball
;3100 - super slash

[State -3]
type = Varset
trigger1=!ishelper
trigger2=ishelper
sysfvar(0) = gametime+123456789
ignorehitpause = 1

[State -3]
type=varset
trigger1=!ishelper
trigger2=ishelper
var(53)=gametime+gametime%10
ignorehitpause=1

[State -3,varset]
type = varset
trigger1 = !ishelper
trigger2=ishelper
sysfvar(2) = gametime + gametime%256 + gametime%65536 + gametime%2
ignorehitpause = 1

[State -3,varset]
type = varset
trigger1 = !ishelper
trigger2=ishelper
sysfvar(3) = 53*gametime+52+gametime%5
ignorehitpause = 1

;This controller plays a sound everytime KFM lands from a jump, or
;from his back-dash.
[State -3, Landing Sound]
type = PlaySnd
triggerall = Time = 1
trigger1 = stateno = 52 ;Jump land
trigger2 = stateno = 106 ;Run-back land
value = 0,2

[State -3]
Type = Varset
Trigger1 = NumEnemy=1
var(55)  = EnemyNear(0),ID
ignorehitpause = 1

[State -3]
Type = Varset
Trigger1 = !NumPartner
Trigger1 = NumEnemy>=2
var(55)  = ifelse((EnemyNear(0),Alive),(EnemyNear(0),ID),(EnemyNear(1),ID))
ignorehitpause = 1

[State -3]
Type = Varset
TriggerAll = NumPartner
TriggerAll = NumEnemy>=2
Trigger1 = !NumTarget
Trigger1 = !Partner,NumTarget
Trigger2 = NumTarget>=2
Trigger3 = Partner,NumTarget>=2
Trigger4 = NumTarget||Partner,NumTarget
Trigger4 = (!EnemyNear(0),Alive)||(!EnemyNear(1),Alive)
var(55)  = ifelse((EnemyNear(0),Alive),(EnemyNear(0),ID),(EnemyNear(1),ID))
ignorehitpause = 1

[State -3,EnemyNear0ID]
Type       = Varset
TriggerAll = NumPartner
TriggerAll = NumEnemy>=2
TriggerAll = EnemyNear(0),ID!=var(55)
TriggerAll = (EnemyNear(0),Alive)&&(EnemyNear(1),Alive)
Trigger1   = !Numtarget
Trigger1   = Partner,NumTarget=1
Trigger1   = EnemyNear(1),MoveType = H
Trigger1   = EnemyNear(0),MoveType != H
Trigger2   = Numtarget=1
Trigger2   = Abs(EnemyNear(0),Pos X - Pos X) <= Abs(EnemyNear(0),Pos X - Partner,Pos X)
Trigger2   = Partner,NumTarget=1
Trigger2   = EnemyNear(1),MoveType = H
Trigger2   = EnemyNear(0),MoveType != H
Trigger3   = Numtarget=1
Trigger3   = Partner,NumTarget=1
Trigger3   = EnemyNear(1),MoveType = H
Trigger3   = EnemyNear(0),MoveType = H
var(55)    = EnemyNear(0),ID
ignorehitpause = 1

[State -3,EnemyNear1ID]
Type       = Varset
TriggerAll = NumPartner
TriggerAll = NumEnemy>=2
TriggerAll = EnemyNear(1),ID!=var(55)
TriggerAll = (EnemyNear(0),Alive)&&(EnemyNear(1),Alive)
Trigger1   = !Numtarget
Trigger1   = Partner,NumTarget=1
Trigger1   = EnemyNear(0),MoveType = H
Trigger1   = EnemyNear(1),MoveType != H
Trigger2   = Numtarget=1
Trigger2   = Abs(EnemyNear(1),Pos X - Pos X) <= Abs(EnemyNear(1),Pos X - Partner,Pos X)
Trigger2   = Partner,NumTarget=1
Trigger2   = EnemyNear(0),MoveType = H
Trigger2   = EnemyNear(1),MoveType != H
var(55)    = EnemyNear(1),ID
ignorehitpause = 1

[State custom]
type = varset 
trigger1 = roundstate=1 && roundsexisted=0
trigger2 = (playerID(var(55)),authorname="anamochi") || (playerID(var(55)),authorname="Moiky") || (playerID(var(55)),authorname="moiky")
trigger2 = (playerID(var(55)),var(25)=0)
trigger3 = (playerID(var(55)),name="PRIVATE-MACHINE") && (playerID(var(55)),var(4)=0)
var(57) = 3

[State custom 2]
type = varset
trigger1 = var(57)<0
trigger2 = (playerID(var(55)),authorname="Dark Ruler") || (playerID(var(55)),authorname="Light Ruler") || (playerID(var(55)),authorname="Dark Ruler, Edited by Gigapowier") || (playerID(var(55)),authorname="Dark Ruler, butchered by Arxos") || (playerID(var(55)),authorname="Blazemanxd (original : dark ruler's skelegon)")
trigger3 = (playerID(var(55)),authorname="fhqwhgads7")
trigger4 = (playerID(var(55)),authorname="anamochi") || (playerID(var(55)),authorname="Moiky") || (playerID(var(55)),authorname="moiky")
trigger4 = (playerID(var(55)),var(25)=1)
trigger5 = (playerID(var(55)),authorname="O Ilusionista")
trigger5 = (playerID(var(55)),name="Death-O") || (playerID(var(55)),name="Evil Oak") || (playerID(var(55)),name="Saline Slimer") || (playerID(var(55)),name="Ooze-O") || (playerID(var(55)),name="Mindless One-O") || (playerID(var(55)),name="Gi-Le-Farg")
trigger6 = (playerID(var(55)),authorname="O Ilusionista & Balthazar") || (playerID(var(55)),authorname="O Ilusionista & Magma Dragoon MKII") || (playerID(var(55)),authorname="O Ilusionista & RamzaNeko") || (playerID(var(55)),authorname="Ethan Lives & O Ilusionista")
trigger7 = (playerID(var(55)),authorname="The_None + Balthazar") || (playerID(var(55)),authorname="aokmaniac13+The_None")
trigger8 = (playerID(var(55)),authorname="Excursion/N64Mario/kalangueb")
trigger9 = (playerID(var(55)),authorname="N64Mario")
trigger9 = (playerID(var(55)),name="apocalypse") || (playerID(var(55)),name="Omega Inarabbita")
trigger10 = (playerID(var(55)),authorname="O Ilusionista")
trigger10 = (playerID(var(55)),name="Summon Demon") || (playerID(var(55)),name="Robot Guard") || (playerID(var(55)),name="Starro") || (playerID(var(55)),name="Giant Spiders")
trigger11 = (playerID(var(55)),name="William Wallace")
trigger12 = (playerID(var(55)),authorname="jor8a") && (playerID(var(55)),name="")
trigger13 = (playerID(var(55)),name="Synn") || (playerID(var(55)),authorname="Artistropeadope")
trigger14 = (playerID(var(55)),authorname="Moiky") || (playerID(var(55)),authorname="moiky")
trigger14 = (playerID(var(55)),name="GozokuDaisya") || (playerID(var(55)),name="Suika_N") || (playerID(var(55)),name="PERSAN") || (playerID(var(55)),name="C_B_A_S")
trigger15 = (playerID(var(55)),authorname="MabsKMK") || (playerID(var(55)),authorname="mabskmk")
trigger16 = (playerID(var(55)),authorname="Brergrsart")
trigger16 = (playerID(var(55)),name="DuaneDuaneRevolution") || (playerID(var(55)),name="My Name Is A Double Entendre") || (playerID(var(55)),name="Rokettotanku")
trigger17 = (playerID(var(55)),authorname="Kung Fu Man")
trigger18 = (playerID(var(55)),authorname="XSlaught") || (playerID(var(55)),authorname="Stever76 & Excursion")
trigger19 = (playerID(var(55)),authorname="jor8a/TheTrueAnalysis/Brergrsart") && (playerID(var(55)),var(30)=1)
trigger20 = (playerID(var(55)),authorname="YANMAR")
trigger21 = (playerID(var(55)),authorname="otto")
trigger21 = (playerID(var(55)),name="Metal Patchouli") || (playerID(var(55)),name="Zero")|| (playerID(var(55)),name="Sniper") || (playerID(var(55)),name="Otto&Wifes") || (playerID(var(55)),name="Atomic Dust Amiba") || (playerID(var(55)),name="Uzaku")
trigger22 = (playerID(var(55)),authorname="TheKill") || (playerID(var(55)),authorname="TheKill, edited by Below273")
trigger23 = (playerID(var(55)),authorname="HSR")
trigger23 = (playerID(var(55)),name="ALIEN QUEEN") || (playerID(var(55)),name="OMEGA") || (playerID(var(55)),name="Shinryu")
trigger24 = (playerID(var(55)),authorname="ahuron")
trigger24 = (playerID(var(55)),name="ToadMan") || (playerID(var(55)),name="Final Sigma W") || (playerID(var(55)),name="Ultimate Armor") || (playerID(var(55)),name="Lavos Core") || (playerID(var(55)),name="Lavos Spawn") || (playerID(var(55)),name="Sun God")
trigger25 = (playerID(var(55)),authorname="supermystery") || (playerID(var(55)),authorname="supermystery, DarkLordXelrick")
trigger26 = (playerID(var(55)),name="PRIVATE-MACHINE") && (playerID(var(55)),var(4)=1)
trigger27 = (playerID(var(55)),authorname="suika_no_otto")
trigger27 = (playerID(var(55)),name="Eye_guardian") || (playerID(var(55)),name="Masked_dedede")
trigger28 = (playerID(var(55)),authorname="Nazrin_no_otto")
trigger28 = (playerID(var(55)),name="Obstinate_tank") || (playerID(var(55)),name="Lomias") || (playerID(var(55)),name="LastStarman") || (playerID(var(55)),name="Final_GoliathDoll")
trigger29 = (playerID(var(55)),authorname="ahuron")
trigger29 = (playerID(var(55)),name="Makamaka") || (playerID(var(55)),name="Son Of Sun") || (playerID(var(55)),name="M-DuoLon")
trigger30 = (playerID(var(55)),authorname="ahuron, edited by Kestel")
trigger31 = (playerID(var(55)),authorname="otto")
trigger31 = (playerID(var(55)),name="NecochaosblackG666mk2") || (playerID(var(55)),name="Atomic Dust Oniichan") || (playerID(var(55)),name="Influenza")
trigger32 = (playerID(var(55)),authorname="Sophia Gryna")
trigger33 = (playerID(var(55)),authorname="みかえる")
trigger33 = (playerID(var(55)),name="Balrog") || (playerID(var(55)),name="Mizuchi Angel") || (playerID(var(55)),name="Angelia_MA")
trigger34 = (playerID(var(55)),authorname="incurable")
var(57) = 0
 
[State custom 3]
type = Varadd
triggerall = p2movetype=H && !time
trigger1 = (playerID(var(55)),stateno=1400000)
var(57) = 99999

[State ]
type = DisplayToClipboard
trigger1 = 1
text = "power=%d, custom=%d, dist X=%d, dist Y=%d"
params = var(56),var(57),floor(p2bodydist X),floor(p2bodydist Y)

;==========================================================================================
[State on]
type = Varset
triggerall = !var(59) && roundstate=2 && ctrl && !ishelper 
trigger1 = AILevel
;trigger2 = 1 ;Auto-activation
var(59) = 1
ignorehitpause = 1

[State off]
type = varset
triggerall = var(59)!=0
trigger1 = roundstate!=2 || !alive
var(59) = 0
ignorehitpause = 1

[State -3]
type = ChangeState
value = 7020
triggerall = var(59) && statetype!=A && ctrl
triggerall = var(56)>=1000
trigger1 = (p2bodydist X<=80) && (p2bodydist Y=[-80,10])
trigger1 = Random <= 400

[State -3]
type = ChangeState
value = 7021
triggerall = var(59) && statetype!=A && ctrl && var(57)>0
triggerall = var(56)>=1000 && (p2bodydist Y=[-100,50])
trigger1 = ((playerID(var(55)),hitfall=0) && (playerID(var(55)),stateno!=[5100,5150]))
trigger1 = Random <= 400

[State -3]
type = ChangeState
value = 7000+random%5
trigger1 = (playerID(var(55)),movetype!=A)
trigger1 = var(59) && statetype!=A && ctrl
trigger1 = (p2bodydist X=[-5,30]) && (p2bodydist Y=[-40,10])

[State -3]
type = ChangeState
value = 7015
triggerall = var(59) && statetype!=A && ctrl
trigger1 = numhelper(10001) || numhelper(12001)
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7010+random%3
triggerall = var(59) && statetype!=A && ctrl
trigger1 = (p2bodydist X=[-2,100]) && (p2bodydist Y=[-40,10])
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7014
triggerall = var(59) && statetype!=A && ctrl
trigger1 = p2bodydist X>=100 && (playerID(var(55)),pos Y>=0)
trigger1 = Random <= 300

[State -3]
type = ChangeState
value = 7013+random%2
triggerall = var(59) && statetype!=A && ctrl
trigger1 = p2bodydist X>=100 && (p2bodydist Y=[-40,10])
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7010+random%5
triggerall = var(59) && statetype!=A && ctrl
trigger1 = (p2bodydist Y=[-40,10])
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7016
triggerall = var(59) && statetype!=A && ctrl
trigger1 = (p2bodydist X>=100) && (p2bodydist Y=[-120,10])
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7015
triggerall = var(59) && statetype!=A && ctrl
trigger1 = (p2bodydist Y=[-40,10])
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7020
triggerall = var(59) && statetype!=A && ctrl
triggerall = var(56)>=1000
trigger1 = (p2bodydist X<=80) && (p2bodydist Y=[-80,30])
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7021
triggerall = var(59) && statetype!=A && ctrl && var(57)>0
triggerall = var(56)>=1000 && (p2bodydist Y=[-100,50])
trigger1 = ((playerID(var(55)),hitfall=0) && (playerID(var(55)),stateno!=[5100,5150]))
trigger1 = Random <= 500

[State -3]
type = ChangeState
value = 7020+random%2
trigger1 = var(59) && statetype!=A && ctrl
triggerall = var(56)>=1000

[State -3]
type = ChangeState
value = 7010+random%7
trigger1 = var(59) && statetype!=A && ctrl

[State -3]
type = ChangeState
value = 7000+random%5
trigger1 = var(59) && statetype!=A && ctrl

