;---------------------------------------------------------------------------
; ここから下は-3のステートを書いてください、ここに書いたものはゲーム中
; に条件が成立すればいつでも開始するステートです。
;---------------------------------------------------------------------------
[Statedef -3]
[State BGM]
type = VarSet
trigger1 = alive && roundstate=2 && !ishelper
var(50) = 1 ;0 BGM off, 1 BGM A, 2 BGM B, 3 BGM C

[State AI]
type = VarSet
triggerall = alive && roundstate=2 && !ishelper && ctrl
trigger1 = AILevel
trigger2 = 0;0 auto-AI off, 1 auto-AI on
var(59) = 1

;CONFIG ENDS HERE

[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 ]
type = DisplayToClipboard
trigger1 = 1
text = "dist X=%d, dist Y=%d"
params = floor(p2bodydist X),floor(p2bodydist Y)

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

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

[State ]
type = ChangeState
triggerall = var(59) && ctrl
trigger1 = p2bodydist X<=0
trigger1 = random<=700
value = 7003+random%2
ignorehitpause = 1

[State ]
type = ChangeState
triggerall = var(59) && ctrl
trigger1 = (p2bodydist X=[0,100]) 
trigger1 = random<=700
value = 7000
ignorehitpause = 1

[State ]
type = ChangeState
triggerall = var(59) && ctrl
trigger1 = (p2bodydist X=[100,200]) 
trigger1 = random<=700
value = 7001+random%2
ignorehitpause = 1

[State ]
type = ChangeState
triggerall = var(59) && ctrl
trigger1 = p2bodydist X>=0
trigger1 = random<=700
value = 7004+random%2
ignorehitpause = 1

[State ]
type = ChangeState
trigger1 = var(59) && ctrl 
value = 7000+random%6
ignorehitpause = 1

[State 191, 2] 
type = AssertSpecial
trigger1 = 1
flag = NoAutoTurn

[State -3, Lose]
type = ChangeState
triggerall = StateNo!=5150 && roundstate>=2 && !ishelper
trigger1 = !Alive || life=0
value = 5150

[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

;ゲーム中に常にいつでも開始したいステート、ここでは「着地音」に使用しています
;下の条件は「52か106のステートに移動して１フレーム目に」と言う事です。
;52と106はバックステップとジャンプの着地のステートです。
[State -3, Landing Sound]
type = PlaySnd
triggerall = Time = 1
trigger1 = stateno = 52 
trigger2 = stateno = 106 
value = 40, 0