;
;oXP
;
[Statedef 15050] 
Type    = A
MoveType= H
PhySics = N

[State 15050]
Type = ChangeAnim
Trigger1 = AnimTime=0
Trigger1 = Anim=5035
Trigger2 = Time=0
Trigger2 = Anim!=5035
Trigger2 = (Anim!=[5051,5059])&&(Anim!=[5061,5069])
Trigger2 = Anim!=5090
value = 5050

[State 15050]
Type = ChangeAnim
Trigger1 = Anim=[5050,5059]
Trigger1 = Vel Y>=ifelse(anim = 5050,1,-2)
Trigger1 = SelfAnimExist(anim+10)
value = anim+10
persistent = 0

[State 15050]
Type = Velset
Trigger1 = Time= 0
x = GetHitVar(xvel)*ifelse(Facing=1,1,-1)
y = GetHitVar(yvel)*0.7
persistent = 0

[State 15050]
Type = VelAdd
Trigger1 = 1
y = (abs(GetHitVar(yaccel)))

[State 15050]
Type = ChangeState
Trigger1 = Vel Y>0
Trigger1 = Pos Y>=-5;ifelse((anim=[5051,5059])||(anim=[5061,5069]),0,25)
value = 15101

[Statedef 15101]
Type    = A
moveType= H
PhySics = N


[state 15050 a]
type = turn
trigger1 = p2dist x<0
trigger1 = time<1

[State 15101]
Type = EnvShake
Trigger1 = Time=0

[state 15101]
type = lifeadd
trigger1 = time = 1
value = -5
kill = 0
absolute = 1
persistent = 0
IgNoreHitPause = 1

[State 15101]
Type = ChangeAnim
;TriggerAll=anim = 5071
Trigger1 = !Time
value = 5072

[State 15101]
Type = ChangeAnim
TriggerAll=Time=0
Trigger1 = Anim!=[5070,5073]
Trigger1 = Anim!=[5101,5109]
Trigger2 = !SelfAnimExist(5160+(Anim%10))
value = 5160

[State 15101]
Type = ChangeAnim
TriggerAll=Time=0
Trigger1 = anim=[5101,5109]
Trigger1 = SelfAnimExist(5160+(Anim%10))
value = 5160+(Anim%10)

[State 15101]
Type = VelSet
Trigger1 = time=1
y = -(abs(GetHitVar(yaccel)))*2.5

[State 15101]
Type = PosSet
Trigger1 = Time=0
y = -5

[State 15101]
Type = VelAdd
Trigger1 = time>1
y = Const(MoveMent.Yaccel)*1.15

[State 15101]
Type = ChangeState
Trigger1 = Vel Y>0
Trigger1 = Pos Y >= 0
value = 15110

[Statedef 15110]
Type    = L
moveType= H
PhySics = N

[State 15110]
Type = EnvShake
Trigger1 = Time=0

[State 15110]
Type = ChangeAnim
persistent = 0
TriggerAll=Time=0
Trigger1 = anim=[5070,5073]
value = 5111

[State 15110]
Type = ChangeAnim
persistent = 0
TriggerAll=Time=0
Trigger1 = anim=[5080,5099]
value = 5110

[State 15110]
Type = ChangeAnim
TriggerAll=Time=0
TriggerAll=anim!=[5110,5119]
Trigger1 = anim!=[5161,5169]
Trigger2 = !SelfAnimExist(5170+(anim%10)) 
value = 5170

[State 15110]
Type = ChangeAnim
TriggerAll=Time=0
TriggerAll=anim!=[5110,5119]
Trigger1 = anim=[5161,5169]
Trigger1 = SelfAnimExist(5170+(anim % 10))
value = 5170+(anim%10)

[State 15110]
Type = ChangeAnim
value = 5171
TriggerAll=Time=0
Trigger1 = anim=[5070,5073]

[state 15110]
type = lifeadd
trigger1 = time = 1
value = -5
kill = 0
absolute = 1 
persistent = 0
IgNoreHitPause = 1

[State 15110]
Type = PosSet
Trigger1 = Time=0
y = 0

[State 15110]
Type = VarSet
Trigger1 = Time=0
Trigger1 = GetHitVar(fAll.yvel)!=0
sysvar(1) = floor(vel y)

[State 15110]
Type = PlaySnd
Trigger1 = Time=0
Trigger1 = !SysVar(0)
value = F7,(sysvar(1)>5)+(sysvar(1)>14)

[State 15110]
Type = GameMakeAnim
Trigger1 = Time=0
Trigger1 = !SysVar(0)
value = 60+(sysvar(1)>5)+(sysvar(1)>14)
pos = 0, 0
under = sysvar(1) <= 14

[State 15110]
Type = velset
Trigger1 = Time=0
y = 0

[State 15110]
Type = ChangeAnim
persistent=0
TriggerAll=anim=[5171,5179]
TriggerAll=SelfAnimExist(5110+(Anim%10))
Trigger1 = AnimTime=0
Trigger2 = SysVar(0)
value = 5110+(Anim%10)

[State 15110]
Type = ChangeAnim
persistent=0
TriggerAll=Anim!=[5111,5119]
Trigger1 = AnimTime=0
Trigger2 = SysVar(0)
value = 5110

[State 15110]
Type = SelfState
TriggerAll=!alive
Trigger1 = Time>0
value = 5150
 
[State 15110]
Type = ChangeState
TriggerAll=alive
Trigger1 = Time>24
value = 15120
 
[State 15110]
Type = VarSet
Trigger1 = SysVar(0)
Trigger1 = Time=0
sysvar(0) = 0

[State 15110]
Type = velmul
Trigger1 = 1
x = 0.85

[State 15110]
Type = ForceFeedback
Trigger1 = alive
Trigger1 = Time=0
time = 8
ampl = 240
waveform = sine

[State 15110]
Type = ForceFeedback
Trigger1 = !alive
Trigger1 = Time=0
ampl = 200,7,-.467
time = 30
waveform = sine
[Statedef 15120]
Type    = L
MoveType= I
PhySics = N

[State 15120, 4]
type = HitFallSet
trigger1 = AnimTime = 0
value = 1

[State 15120, 1a] ;Get up anim (normal)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim != [5111,5119]
trigger2 = !SelfAnimExist(5120 + (anim % 10))
value = 5120

[State 15120, 1b] ;Get up anim (for hit up/diag-up)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim = [5111,5119]
trigger1 = SelfAnimExist(5120 + (anim % 10))
value = 5120 + (anim % 10)

[State 15120]
Type = NotHitBy
Trigger1 = 1
value = SCA
time = 1

[State 15120]
Type = NotHitBy
Trigger1 = AnimTime = 0
value = ,NT,ST,HT
time = 12

[State 15120]
Type = NotHitBy
Trigger1 = AnimTime = 0
value2 = SCA
time = 3

[State 15120]
Type = SelfState
Trigger1 = AnimTime = 0
value = 0
ctrl = 1
;
[Statedef 25050] 
Type    = A
MoveType= H
PhySics = N

[State 15050]
Type = ChangeAnim
Trigger1 = AnimTime=0
Trigger1 = Anim=5035
Trigger2 = Time=0
Trigger2 = Anim!=5035
Trigger2 = (Anim!=[5051,5059])&&(Anim!=[5061,5069])
Trigger2 = Anim!=5090
value = 5050

[State 15050]
Type = ChangeAnim
Trigger1 = Anim=[5050,5059]
Trigger1 = Vel Y>=ifelse(anim = 5050,1,-2)
Trigger1 = SelfAnimExist(anim+10)
value = anim+10
persistent = 0

[State 15050]
Type = Velset
Trigger1 = Time= 0
x = GetHitVar(xvel)*ifelse(Facing=1,1,-1)
y = GetHitVar(yvel)*0.7
persistent = 0

[State 15050]
Type = VelAdd
Trigger1 = 1
y = (abs(GetHitVar(yaccel)))

[State 15050]
Type = ChangeState
Trigger1 = Vel Y>0
Trigger1 = Pos Y>=-5;ifelse((anim=[5051,5059])||(anim=[5061,5069]),0,25)
value = 25101

[Statedef 25101]
Type    = A
moveType= H
PhySics = N

[state 15050 a]
type = turn
trigger1 = p2dist x<0
trigger1 = time<1

[State 15101]
Type = EnvShake
Trigger1 = Time=0

[state 15101]
type = lifeadd
trigger1 = time = 1
value = -5
kill = 0
absolute = 1 
persistent = 0
IgNoreHitPause = 1

[State 15101]
Type = ChangeAnim
;TriggerAll=anim = 5071
Trigger1 = !Time
value = 5072

[State 15101]
Type = ChangeAnim
TriggerAll=Time=0
Trigger1 = Anim!=[5070,5073]
Trigger1 = Anim!=[5101,5109]
Trigger2 = !SelfAnimExist(5160+(Anim%10))
value = 5160

[State 15101]
Type = ChangeAnim
TriggerAll=Time=0
Trigger1 = anim=[5101,5109]
Trigger1 = SelfAnimExist(5160+(Anim%10))
value = 5160+(Anim%10)

[State 15101]
Type = VelSet
Trigger1 = time=1
y = -(abs(GetHitVar(yaccel)))*0.85

[State 15101]
Type = PosSet
Trigger1 = Time=0
y = -5

[State 15101]
Type = VelAdd
Trigger1 = time>1
y = Const(MoveMent.Yaccel)

[State 15101]
Type = ChangeState
Trigger1 = Vel Y>0
Trigger1 = Pos Y >= 0
value = 15110
[Statedef 35050]
Type    = A
MoveType= H
PhySics = N

[State 15050, 1] ;Change anim when done with transition
type = ChangeAnim
trigger1 = AnimTime = 0
trigger1 = Anim = 5035
trigger2 = Time = 0     ;If no transition anim
trigger2 = Anim != 5035
trigger2 = (Anim != [5051, 5059]) && (Anim != [5061, 5069])
trigger2 = Anim != 5090 ;Not if hit off ground anim
value = 5050

[State 15050, 2] ;Coming down anim
type = ChangeAnim
trigger1 = anim = [5050,5059]
trigger1 = Vel Y >= ifelse(anim = 5050, 1, -2)
trigger1 = SelfAnimExist(anim+10)
value = anim+10
persistent = 0

[State 15050]
Type = VelAdd
Trigger1 = 1
y = GetHitVar(yaccel)

[State 15050]
Type = ChangeState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= ifelse((anim = [5051,5059]) || (anim = [5061,5069]), 0, 25)
value = 35100

[Statedef 35100]
Type    = A
MoveType= H
PhySics = N

[State 15100, 1]
type = VelSet
trigger1 = Time = 0
trigger1 = GetHitVar(fall.yvel) = 0
trigger1 = vel x > 1
x = 1

[State 15100]
Type = FAllEnvShake
Trigger1 = Time = 0

[State 15100]
Type = VarSet
Trigger1 = Time = 0
sysvar(1) = floor(vel y)

[State 15100, 2] ;Hit ground anim (normal)
type = ChangeAnim
triggerall = time = 0
trigger1 = (anim != [5051,5059]) && (anim != [5061,5069])
trigger2 = !SelfAnimExist(5100 + (anim % 10))
value = 5100

[State 15100, 3] ;Hit ground anim (for hit up)
type = ChangeAnim
trigger1 = time = 0
trigger1 = (anim = [5051,5059]) || (anim = [5061,5069])
trigger1 = SelfAnimExist(5100 + (anim % 10))
value = 5100 + (anim % 10)

[State 15100]
Type = ChangeAnim
TriggerAll=Anim=5070||Anim=5073
Trigger1 = Time = 0
value = 5071

[State 15100, 4]
type = PosSet
trigger1 = Time = 0
y = 0

[State 15100, 5]
type = VelSet
trigger1 = Time = 0
y = 0

[State 15100, 6] ;Reduce speed
type = VelMul
trigger1 = Time = 0
x = 0.75

[State 15100]
Type = ChangeState
Trigger1 = Time = 0
Trigger1 = GetHitVar(fAll.yvel) = 0
value = 25110

[State 15100,]
Type = GameMakeAnim
Trigger1 = Time = 1
value = 60 + (sysvar(1) > 5) + (sysvar(1) > 14)
pos = 0,0
under = sysvar(1) <= 14

[state 15110]
type = lifeadd
trigger1 = time = 1
value = -5
kill = 0
absolute = 1 
persistent = 0
IgNoreHitPause = 1

[State 15100]
Type = PlaySnd
Trigger1 = Time = 1
value = F7, (sysvar(1) > 5) + (sysvar(1) > 14)

[State 15100]
Type = PosFreeze
Trigger1 = 1

[State 15100]
Type = ChangeState
Trigger1 = Pos Y >= 0
value = 35101

[State 15100]
Type = ForceFeedback
Trigger1 = Time = 0
waveform = sinesquare
Ampl = 128,-3,-.2,.005
Time = 20

[Statedef 35101]
Type    = A
MoveType= H
PhySics = N

[state 15050 a]
type = turn
trigger1 = p2dist x<0
trigger1 = time<1

[State 15100]
Type = ChangeAnim
Trigger1 = Time = 0
value = 5072

[State 15101, 1] ;Coming hit ground anim (normal)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim != [5101,5109]
trigger2 = !SelfAnimExist(5160 + (anim % 10))
value = 5160

[State 15101, 2] ;Coming hit ground anim (for hit up)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim = [5101,5109]
trigger1 = SelfAnimExist(5160 + (anim % 10))
value = 5160 + (anim % 10)

[State 15101]
Type = HitFAllVel
Trigger1 = Time = 0

[State 15101]
Type = PosSet
Trigger1 = Time = 0
y = 20

[State 15101]
Type = VelAdd
Trigger1 = 1
y = .4

[State 15101]
Type = ChangeState
Trigger1 = Vel Y>0
Trigger1 = Pos Y>=0
value = 35110

[Statedef 35110]
Type    = L
MoveType= H
PhySics = N

[State 15110, EnvShake]
type = FallEnvShake
trigger1 = Time = 0

[State 15110, 1] ;For hit up/up-diag type (from state 5081)
type = ChangeAnim
persistent = 0
trigger1 = SelfAnimExist(5110 + (anim % 10))
trigger1 = anim = [5081,5089]
value = 5110 + (anim % 10)

[State 15110, 2] ;Hit ground anim (normal)
type = ChangeAnim
triggerall = time = 0
triggerall = anim != [5110,5119] ;Not already changed anim
trigger1 = anim != [5161,5169]
trigger2 = !SelfAnimExist(5170 + (anim % 10))
value = 5170

[State 15110, 3] ;Hit ground anim (for hit up)
type = ChangeAnim
triggerall = time = 0
triggerall = anim != [5110,5119] ;Not already changed anim
trigger1 = anim = [5161,5169]
trigger1 = SelfAnimExist(5170 + (anim % 10))
value = 5170 + (anim % 10)

[State 15110]
Type = ChangeAnim
value = 5171
TriggerAll=Time = 0
Trigger1 = Anim=[5070,5073]

[State 15110]
Type = HitFAllDamage
Trigger1 = Time = 0

[State 15110]
Type = PosSet
Trigger1 = Time = 0
y = 0

[State 15110, Var] ;Get fall velocity
type = VarSet
trigger1 = Time = 0
trigger1 = GetHitVar(fall.yvel) != 0
sysvar(1) = floor(vel y)

[State 15110, 6]
type = PlaySnd
trigger1 = Time = 0
trigger1 = !SysVar(0)
value = F7, (sysvar(1) > 5) + (sysvar(1) > 14)

[State 5110, 7]
type = GameMakeAnim
trigger1 = Time = 0
trigger1 = !SysVar(0)
value = 60 + (sysvar(1) > 5) + (sysvar(1) > 14)
pos = 0, 0
under = sysvar(1) <= 14

[State 15110]
Type = velset
Trigger1 = Time = 0
y = 0

[State 15110, 9] ;For hit up type
type = ChangeAnim
persistent = 0
triggerall = anim = [5171,5179]
triggerall = SelfAnimExist(5110 + (anim % 10))
trigger1 = AnimTime = 0
trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground anim
value = 5110 + (anim % 10)

[State 15110, 10] ;For normal
type = ChangeAnim
persistent = 0
triggerall = Anim != [5111,5119]
trigger1 = AnimTime = 0
trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground frame
value = 5110

[State 15110]
Type = SelfState
TriggerAll=!alive
Trigger1 = Time>0
value = 5150
 
[State 15110]
Type = ChangeState
TriggerAll=alive
Trigger1 = Time>20
value = 15120
 
[State 15110, 12]
type = VarSet
trigger1 = SysVar(0)
trigger1 = Time = 0
sysvar(0) = 0

[State 15110, 13] ;Friction
type = VelMul
trigger1 = 1
x = 0.85

[State 15110, 14]
type = ForceFeedback
trigger1 = alive
trigger1 = Time = 0
time = 8
ampl = 240
waveform = sine

[State 15110, 15]
type = ForceFeedback
trigger1 = !alive
trigger1 = Time = 0
ampl = 200, 7, -.467
time = 30
waveform = sine