;-----------------------------------------------------------------------------
[Statedef -2];常時監視ステート(相手に行動を制御されても関係無く常に実行される)
;---------------------- Integer variable list ----------------------

; var(2):= 40 Jump var  1
; var(3):= 40Jump var  2
; var(4):= 100, 40 Attack buffer var, system by VANS
; var(5) Air Juggle check
; var(6):= Ukemi
; var(7):= HD Neomax damage check
; var(8):= counter hit var
;var(10):= HD switch
;var(11):= Kaiser Tomahawk cancel var
;var(12):= Poweradds in HD
;var(13):= Cancel damage check
;var(14):= counterhit reset
;var(15):= AI air attack check
;var(16):= AI special check
;var(17):= AI zone routine check
;var(18):= AI zone routine check
;var(19):= AI zone routine check
;var(20):= AI super usage routine check
;var(21):= introvar
;var(22):= turns mode health check
;var(23):= AI jump check
;var(24):=AI jump check
;var(26):= run check
;var(27):= blockcheck
;var(30):=AI jump check
;var(57):= Drive gauge value
;---------------------- Float variable list ----------------------

; fvar(2):= damage dampner
;---------------------- Integer variable list ----------------------



;-------buffer



;[State 0, VarSet]
;type = VarSet
;trigger1 =(var(31)=7||var(31)=20)  &&animtime=0  && var(2)=0
;
;v = 43   ;fv = 10
;value =10;-wait 34 ticks before proceeding 
;ignorehitpause = 1

;[State 0, VarSet]
;type = VarSet
;trigger1 =(var(41)=11)  &&stateno=52 && time=1 
;
;v = 43   ;fv = 10
;value =26;-wait 34 ticks before proceeding 
;ignorehitpause = 1

[State 0, VarSet]
type =VarSet
trigger1 =numhelper(1000)=0 
trigger1 =numhelper(1025)=0 
trigger1 =numhelper(1030)=0 
trigger1 =numhelper(1050)=0 
trigger1 =numhelper(1075)=0 
trigger1 =numhelper(1080)=0 
v = 25   ;fv = 10
value = 0

[State 0, VarSet]
type = Varadd
trigger1 = var(43)>0
v =43    ;fv = 10
value = -1 ; subtract as soon as its not 0
;[State 0, VarSet]
;type = VarSet
;trigger1 =(var(31)=32)  &&animtime=0&& stateno=1010 
;v = 43    ;fv = 10
;value =3;-wait 34 ticks before proceeding 
;ignorehitpause = 1
[State 0, VarSet]
type = VarSet
trigger1 =(var(41)=33||var(41)=43)  &&animtime=0&& stateno=1000
v = 43    ;fv = 10
value =7;-wait 34 ticks before proceeding 
ignorehitpause = 1

[State 0, VarSet]
type = VarSet
triggerall = stateno=[200,699]
trigger1 = p2statetype=A &&movehit=1 &&var(14)=0
v = 5   ;fv = 10
value = 1
ignorehitpause =0 
;----------
[State 0, VarSet]
type = VarSet
trigger1 = var(41)>0
trigger2 = movetype=A
v = 45    ;fv = 10
value = stateno
;ignorehitpause = 
;persistent = 

[State 0, VarSet]
type = VarSet
trigger1 = var(41)=0
v = 45   ;fv = 10
value = 0

[State 0, VarSet]
type = VarSet
trigger1 = p2movetype!=H || p2stateno=5210 || p2stateno=5201
trigger2 = stateno=[800,810]
trigger3 = var(41)=2
trigger4 = var(41)=24
trigger5 = var(41)=4
trigger6 = var(41)=38
trigger7 = var(41)=49
trigger8 = stateno=2510
trigger9 = var(41)=139
v = 41    ;fv = 10
value = 0
ignorehitpause = 1


[State 0, DisplayToClipboard]
type = DisplayToClipboard
trigger1 = 1
text = "var(10) = %f  vel x = %f var(19)=%d var(17)=%d"
params = p2bodydist x,p2bodydist y,prevstateno,(helper(10003),var(35))
ignorehitpause = 1
;persistent = 


;================================================================================
; ------- Front corner fix --------
;===============================================================================
;To prevent switching sides while making combos.
[State -2, Width]
type = Width
trigger1 = facing != enemynear, facing
trigger1 = movetype != H
edge = 8,0
ignorehitpause = 1

[State 0, StateTypeSet]
type = StateTypeSet
triggerall = movetype=I
triggerall = (enemy,ctrl) || enemy,prevstateno=5120
trigger1 = stateno=[200,3999]
movetype = A 
;-----------------------------------------------------------------------------
;-----------------------------------------------------------------------------
[State -2, Helper]
type = Helper
trigger1 = roundstate=2
triggerall = NumHelper(7000) < 1
helpertype = normal ;player
name = "drive"
ID = 7000
stateno = 7000
pos = 0,0
postype = left   ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermovetime =999
pausemovetime = 999
ignorehitpause = 1

[State -2, Helper]
type = Helper
triggerall = stateno!=2510
trigger1 = winko && (stateno = [2000,3305]) && movehit
triggerall = NumHelper(11009) < 1
helpertype = normal ;player
name = "winko"
ID = 11009
stateno = 11009
pos = 0,0
postype = left   ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermovetime =999
pausemovetime = 999
ignorehitpause = 1

[State -2, Helper]
type = Helper
trigger1 = winko && (stateno = 3210) 
triggerall = NumHelper(11009) < 1
helpertype = normal ;player
name = "winko"
ID = 11009
stateno = 11009
pos = 0,0
postype = left   ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermove =999
pausemove = 999
ignorehitpause = 1
[State 100, VarSet]
type = VarSet
trigger1 =var(57)>1000 
v = 57   ;v = 570
value = 1000
ignorehitpause =1 
persistent = 1
[State 0, VarSet]
type = VarSet
trigger1 =var(10)=1 && roundstate!=2 
v = 57   ;fv = 10
value = 0
;ignorehitpause = 
;persistent = 

;ignorehitpause = 
;persistent = 
[State 10, VarSet]
type = VarSet
trigger1 =var(57)<=0 
v = 57   ;v = 570
value =0
[State 0, AttackMulSet]
type = AttackMulSet
trigger1 = 1
time = 1
value = fvar(2)
[State 0, VarSet]
type = VarSet
triggerall = enemy,movetype = H&&(p2stateno!=[120,155])
trigger1 =1
fv =2 ;v = 570
value = ifelse(fvar(2)>.1,1-(.05*(enemy,gethitvar(hitcount))),.1)
ignorehitpause=1

[State 0, VarSet]
type = VarSet
trigger1 =(stateno=[1000,1611]) && fvar(2)<.3
trigger2= projcontact=1
fv = 2   ;fv = 10
value = .3
ignorehitpause =1 
persistent = 1
[State 0, VarSet]
type = VarSet
triggerall = stateno!=[3200,3299]
trigger1 =(stateno=[2000,3325]) && fvar(2)<.4
fv = 2   ;fv = 10
value = .4
ignorehitpause =1 
persistent = 1
[State 0, VarSet]
type = VarSet
trigger1 =(stateno=[3200,3299]) && fvar(2)<.5
fv = 2   ;fv = 10
value = .5
ignorehitpause =1 
persistent = 1

[State 0, VarSet]
type = VarSet
trigger1 = enemy,movetype != H ||(p2stateno=[120,155])
fv = 2   ;v = 570
value = 1
ignorehitpause =  1
persistent =  1

[State -2, 二人目のイントロ]
type = ChangeState             ;二人目でもイントロを作る
value = 190                    ;イントロへ
triggerall = TeamMode = Turns  ;ターンモード
triggerall = enemy,teammode=turns 
trigger1 = stateno = 5900  

;ここでtrigger用に自分の初期ライフを確認します
[State -2, ライフ確認]
type = VarSet
triggerall = RoundState = [0,1] ;開始前の間
trigger1 = RoundNo = 1          ;一試合目
trigger2 = TeamMode = Turns     ;5900でイントロを作らないと ↓
trigger2 = RoundsExisted = 0    ;これは使えません
v = 22
value = Life   ;Var(22)に自分のライフを保存

[State -2, ライフ取得ミス対策]
type = VarSet
triggerall = Var(22) = [0,100] ;ライフが100以下と認識されたら
triggerall = Time = 1
trigger1 = RoundNo = 1
trigger2 = RoundsExisted = 0
v = 22
value = const(data.life) ;自分のデータに書かれたLifeにする
[State 700, エフェクト表示]
type = Explod
trigger1 = enemy,animelemtime(1)=1 && enemy,anim =614&& p2stateno=1151
anim = 1420
postype = P2
pos =0, 0
sprpriority = -5
ownpal = 0
scale=.5,.5
[State 700, エフェクト表示]
type = Explod
trigger1 = enemy,animelemtime(1)=1 && enemy,anim =614&& p2stateno=1151
anim = 1425
postype = P2
pos = 0, 0
sprpriority = 15
ownpal = 0
scale=.5,.5

[State 0, PlaySnd]
type = PlaySnd
triggerall = p2stateno=1151
trigger1 = enemy,animelemtime(1)=1 && enemy,anim =614
value = S12,9

[State 0, PlaySnd]
type = PlaySnd
trigger1= enemy,animelemtime(1)=2 && p2stateno=1361
value = S12,9
[State 111, VarSet]
type = VarSet
trigger1 =(p2movetype!=A && movetype !=A && p2statetype!=A)|| p2stateno=5120
v = 14    ;fv = 10
value = 0
;ignorehitpause = 
;persistent = 
[State 0, StateTypeSet]
type = StateTypeSet
trigger1 = var(14)=0 && var(5)=1 && p2statetype=A 
trigger2= roundstate!=2 && movetype=A
trigger3= prevstateno=440
trigger4 = helper(10003),var(35)=0 && enemy,hitfall&& var(8)=0
movetype = I  
[State 122, VarSet]
type = VarSet
trigger1 =p2statetype!=A || p2stateno=5120
v = 5   ;fv = 10
value = 0
;ignorehitpause = 
;persistent = 
[State 112, VarSet]
type = VarSet
trigger1 = time=0 && var(14)=1&& (stateno=[200,650])
v = 14   ;fv = 10
value = 0
[State 113, VarSet]
type = VarSet
trigger1 = p2movetype=A 
v = 8   ;v = 570
value = 1

[State 114, VarSet]
type = VarSet
trigger1 = p2movetype!=A && movetype !=A
v = 8   ;v = 570
value = 0

[State 123, VarSet]
type = VarSet
triggerall =var(10)=0
trigger1 =movehit && (stateno=1100||stateno=1150||stateno=1160) 
v = 11    ;v = 570
value = 1
[State 124, VarSet]
type = VarSet
triggerall =var(10)=1
trigger1 =movecontact&& (stateno=1100||stateno=1150||stateno=1160) 
v = 11    ;v = 570
value = 2


[State 125, VarSet]
type = VarSet
trigger1 =p2movetype!=H
v = 11    ;v = 570
value = 0



[State 12, VarSet]
type = VarSet
trigger1 = (stateno=[1000,1610]) &&movehit
v = 16    ;fv = 10
value = stateno
ignorehitpause = 1

[State 0, VarSet]
type = Varadd
trigger1 =moveguarded=1
v = 27  ;fv = 10
value = 1
ignorehitpause = 0
;persistent = 
[State 0, VarSet]
type = VarSet
trigger1 =movehit 
v =27   ;fv = 10
value = 0
;ignorehitpause = 
;persistent = 

[State 0, VarRangeSet]
type = VarRangeSet
trigger1 = p2movetype!=H 
value = 0 ;fvalue = 0
first =15
last = 16 ;39
;ignorehitpause = 
;persistent = 

[State -2, 残像]
type = AfterImage
trigger1 = Movetype = H
time = 1

[State -2,]
type = StopSnd
trigger1 = Movetype = H
channel = 4

[State -2,]
type = StopSnd
trigger1 = command != "holdfwd"
trigger2 = Anim != 100
channel = 6

[State -2,]
type = StopSnd
trigger1 = Movetype = H
channel = 7

[State -2,]
type = StopSnd
trigger1 = Movetype = H
channel = 9


[State 0, VarSet]
type = VarSet
trigger1 = (life> ceil(lifemax/2.15)) &&(p2life<ceil(enemy,lifemax/1.7))
trigger2 = (p2life>= ceil(enemy,lifemax/3.3)) 
trigger3 = power < 4750 && roundno=1&&(p2life>= ceil(enemy,lifemax/2.5))
v = 20   ;fv = 10
value = 0
[State 0, VarSet]
type = VarSet
trigger1 = (life<= ceil(lifemax/2.15)) &&(p2life>= ceil(enemy,lifemax/1.7))
trigger2 = (p2life< ceil(enemy,lifemax/3.3))
trigger3 = power >= 4750 && roundno=1&&(p2life< ceil(enemy,lifemax/2.5))
v = 20   ;fv = 10
value = 1
;ignorehitpause = 
;persistent = 



 [State 0, VarSet]
type = VarSet
triggerall = AILEvel>0
trigger1 = statetype = A
trigger2 = movetype=H
trigger3= prevstateno=40
trigger4= (p2stateno=[5090,5109]) &&(p2stateno=[5121,5899])
trigger5= var(41)>0
trigger6= p2movetype=A && p2bodydist x <70
trigger7 = backedgebodydist <40
trigger8=helper(10003),var(11)=1||helper(10003),var(10)=1
v=30
value = 0

[State 0, VarSet]
type = VarSet
triggerall = statetype != A
trigger1 = ctrl && p2movetype=A && p2statetype=C
trigger2 =p2statetype = C  && ctrl
trigger3 =(p2bodydist x =[80,140]) && ctrl && enemy,numproj>0
trigger4= enemy,hitdefattr=SC,AT
trigger5=(p2stateno=5110 &&P2BodyDist X = [90,150])
trigger6 = stateno=101 && p2movetype=A
v = 30   ;fv = 10
value = 1
;---------------------------------------------------------------------------
;ブリッツボールエフェクト
;
;[Statedef 1001]
;type     = A
;movetype = I
;physics  = N
;ctrl     = 0
;anim     = 1001
;sprpriority = 15
;
;[State 170, 無敵]
;type = NotHitBy
;trigger1 = 1
;value = SCA
;
;[State 1001, 特殊効果]
;type = AssertSpecial
;trigger1 = 1
;flag = NoShadow ;影を消す
;
;[State 1000, ]
;type = Velset
;triggerall = Root,Stateno = 1000 || Root,Stateno = 1050
;trigger1 = time >= 0
;x = 4
;
;[State 1000, ]
;type = Velset
;triggerall = Root,Stateno = 1025 || Root,Stateno = 1075
;trigger1 = time >= 0
;x = 8
;
;[State 3000]
;type = Explod
;trigger1 = Vel X = 4
;trigger1 = (GameTime%6) = 0
;trigger2 = Vel X = 8
;trigger2 = (GameTime%4) = 0
;anim = 1015
;pos = 0,0
;postype = p1
;sprpriority = 15
;ownpal = 1
;
;[State 1001, このヘルパーを消す]
;type = DestroySelf
;trigger1 = Root,numprojID(1000) = 0


;---------------------------------------------------------------------------------
[Statedef -3];常時監視ステート(p2statenoなどで相手に行動を制御された時は実行しない)
;---------------------------------------------------------------------------------
[State 0, Helper]
type = Helper
trigger1 =numhelper(10003)=0
helpertype = normal ;player
name = "neutrality"
ID =  10003
stateno = 9999
pos = 61,-37
postype = p1    ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 1
size.xscale =1*const(size.xscale)
size.yscale =1*const(size.yscale)
ignorehitpause=1
[State 0, VarSet]
type = VarSet
triggerall = movetype=I && (p2movetype!=H||p2statetype=L) 
trigger1 =var(40)=1 && var(10)=0
v = 57    ;v = 570
value =1000
ignorehitpause =0
[State 0, VarSet]
type = VarSet
trigger1 = roundsexisted = 0 && roundstate < 2
trigger1 = !AILevel && (enemy, AILevel = 0) && power = powermax && (enemy, power = enemy,powermax)
v = 40    ;fv = 10
value = 1
[State 0, VarSet]
type = VarSet
trigger1 =stateno!=[1000,1999] 
v = 28   ;fv = 10
value = 0
;ignorehitpause = 
;persistent = 
[State 0, PlayerPush]
type = PlayerPush
triggerall = p2statetype!=A
triggerall = stateno=[600,699]
trigger1 = P2BodyDist Y + (24 * Const(size.xscale)) > Enemy, Const(Size.Height)
value = 0
ignorehitpause=1
; fvar(2):= -2

[State 0, VarSet]
type = VarSet
trigger1 =stateno!=[40,53]
v = 2    ;fv = 10
value = 0
;ignorehitpause = 
;persistent = 

      ;I,A,H
;ignorehitpause = 
;persistent = 
[State 0, AssertSpecial]
type = AssertSpecial
trigger1 = 1
flag = noairguard
ignorehitpause=1



[State 0, VarSet]
type = Varadd
triggerall=var(10)=1&&time=0
trigger1= stateno=1080
trigger2=stateno=1075
trigger3=stateno=1160 
trigger4=stateno=1365 
trigger5=stateno=1451 
trigger6=stateno=1551
trigger7=stateno=1651
trigger8=stateno=2000 
trigger9=stateno=2100
trigger10=stateno=2500
trigger11=(stateno=700||stateno=710||stateno=300) && prevstateno=[150,153]
v = 12    ;v = 570
value = -1000
[State 0, VarSet]
type = Varadd
triggerall=var(10)=1&&time=0
trigger1=stateno=3000
trigger2=stateno=3100
trigger3=stateno=2800
trigger4=stateno=3200
v = 12    ;v = 570
value = -2000



[State 0, VarRangeSet]
type = VarRangeSet
trigger1 = var(24)=1&&movehit 
value = 0 ;fvalue = 0
first = 23
last = 24 ;39
;ignorehitpause = 
;persistent = 



[State 0, VarSet]
type = VarSet
trigger1 = var(10)=0||(stateno!=[1000,3210])
v = 12    ;v = 570
value = power

[State 0, PowerSet]
type = PowerSet
trigger1 = var(10)=1&&(stateno!=[1000,3210])
value = var(12)
;ignorehitpause = 
;persistent = 
 
[State 1, VarSet]
type = Varadd
triggerall=var(10)=0
trigger1 =projcontact=1||projcanceltime(1000)=1 
v = 18    ;v = 570
value = 1
ignorehitpause=1
[State 2, VarSet]
type = VarSet
trigger1 =var(17)>=7
v = 19    ;fv = 10
value = ifelse((var(18)/var(17)>.4),1,0)
;ignorehitpause = 
;persistent = 




[State 0, VarSet]
type = Varset
trigger1 =var(57)<=0&& (stateno!=[3200,3210]) 
v = 10    ;v = 570
value = 0

[State -2, Helper]
type = Helper
trigger1 = winko &&projhittime(2000)=[1,3]
triggerall = NumHelper(11009) < 1
helpertype = normal ;player
name = "winko"
ID = 11009
stateno = 11009
pos = 0,0
postype = left   ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermovetime =999
pausemovetime = 999
ignorehitpause = 1

;※※※※※※※※※※※※※※※※※※※※ハイジャンプ・東方萃夢想風味
;理論は簡単
;ハイジャンプコマンドを入れた「瞬間」、varスイッチを１にする。
;でハイジャンプのコマンドは最後がU、つまりジャンプする。
;そしてジャンプステート５０の時にvarスイッチが１以上ならveladdで加速します。
;varスイッチを０にするトリガーは「ステート５０の２フレーム目」です。

;[State 0, DisplayToClipboard]
;type = DisplayToClipboard
;trigger1 = 1
;text = "var(10) = %d var(10) = %d  vel x = %f y=%f"
;params = var(23), var(5),FVAR(2),p2bodydist y
;ignorehitpause = 1
;persistent = 

[State 0, AssertSpecial]
type = AssertSpecial
trigger1 = 1
ignorehitpause = 1
persistent =1
flag = noairguard
;================================================================================
; ------- KOF Cornerpush System by Vans --------
;===============================================================================
[State -2, Superpause Check]
type = VarAdd
triggerall=stateno!=[900,901]
trigger1 = Var(31)
var(31) = -1

[State -2, Reset Time counter]
type = VarSet
triggerall=stateno!=[900,901]
trigger1 = movecontact = 1
var(32) = 0

[State -2, Accel]
type = VarSet
triggerall=stateno!=[900,901]
triggerall = roundstate = 2
triggerall = Var(31) <= 0
triggerall = numtarget >= 1
trigger1 = target, hitshakeover
fvar(6) = (target, gethitvar(xvel)*exp((-0.1886)*((var(32)))))

[State -2, Push]
type = PosAdd
triggerall=stateno!=[900,901]
triggerall = roundstate = 2
triggerall = !var(31)
triggerall = numtarget >= 1
triggerall = stateno!=[2000,3300]
triggerall = (target, BackEdgeBodyDist <= 0) || (target, FrontEdgeBodyDist <= 0)
triggerall = stateno != [900,949]
triggerall = stateno != [956,979]
triggerall = target,statetype != A
triggerall = target,statetype != L
triggerall = (numproj=0 &&((stateno=[1000,1080])&&animelemtime(6)<0))||stateno!=[1000,1080]
trigger1 = Statetype != A
x = ifelse(facing = -1,fvar(6),-fvar(6))

[State -2, Increase]
type = VarSet
triggerall=stateno!=[900,901]
triggerall = numtarget >= 1
triggerall = target, hitshakeover
trigger1 = Var(31) <= 0
trigger1 = var(32)
var(32) = var(32)+1

[State -2, Time counter]
type = VarSet
triggerall=stateno!=[900,901]
trigger1 = !var(32)
trigger1 = fvar(6)
var(32) = 1

[State -2, Freeze Pos During Superpause]
type = PosFreeze
triggerall=stateno!=[900,901]
trigger1 = Var(31)
trigger2=projcontact=1 || stateno=[1000,1080]
value = 1
ignorehitpause=1

[State -2, Drop]
type = VarSet
triggerall=stateno!=[900,901]
triggerall = fvar(6)
trigger1 = !numtarget
;trigger2 = projcontact = 1
trigger3 = movecontact = 1
fvar(6) = 0
ignorehitpause = 1

[State -2, TargetDrop]
type = TargetDrop
triggerall=stateno!=[900,901]
trigger1 = numhelper(1005)
trigger1 = helper(1005), numtarget
trigger2 = numhelper(1021)
trigger2 = helper(1021), numtarget
;---------------------[‰‰?o]
[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 0
time = 1
add = 96,96,0
color = 186
ignorehitpause = 1

[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 1
trigger2 = gametime % 14 = 13
time = 1
add = 84,84,0
color = 196
ignorehitpause = 1

[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 2
trigger2 = gametime % 14 = 12
time = 1
add = 72,72,0
color = 206
ignorehitpause = 1

[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 3
trigger2 = gametime % 14 = 11
time = 1
add = 60,60,0
color = 216
ignorehitpause = 1

[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 4
trigger2 = gametime % 14 = 10
time = 1
add = 48,48,0
color = 226
ignorehitpause = 1

[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 5
trigger2 = gametime % 14 = 9
time = 1
add = 36,36,0
color = 236
ignorehitpause = 1

[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 6
trigger2 = gametime % 14 = 8
time = 1
add = 24,24,0
color = 246
ignorehitpause = 1

[State a];“_??
type = palfx
triggerall = var(10) > 0
trigger1 = gametime % 14 = 7
time = 1
add = 12,12,0
color = 256
ignorehitpause = 1

