;葤dXe[g

;---------------------------------------------------------------------------
; HITG_SHAKE
[Statedef 35000]
type    = S
movetype= H
physics = N
velset = 0,0

[State 35000, 1] ;Anim for HIT_LIGHT to HIT_HARD
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) != [3,5]
value = ifelse((GetHitVar(groundtype) = 1),5000,5010) + GetHitVar(animtype)

[State 35000, 2] ;Anim for HIT_BACK
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) = [3,5]
value = 5030

[State 35000, 3] ;Anim for HIT_UP/HIT_DIAGUP (only if it exists)
type = ChangeAnim
trigger1 = Time = 0
trigger1 = (GetHitVar(animtype) = [4,5]) && (SelfAnimExist(5047 + GetHitVar(animtype)))
value = 5047 + GetHitVar(animtype) ;5051 - 4 + type

[State 35000, ex] ;dAj(7696)Q
type = ChangeAnim
trigger1 = Time = 0
trigger1 = SelfAnimExist(7696)
value = 7696

[State 35000, ex] ;dAj(9010)Q
type = ChangeAnim
trigger1 = Time = 0
trigger1 = SelfAnimExist(9010)
value = 9010

[State 35000, 4] ;Freeze anim
type = ChangeAnim
trigger1 = Time > 0
value = anim

[State 35000, 5] ;State type gets set to aerial if getting hit up
type = StateTypeSet
trigger1 = Time = 0
trigger1 = GetHitVar(yvel) != 0 || GetHitVar(fall)
trigger2 = Pos Y != 0
statetype = a

[State 35000, 6]
type = ChangeState
trigger1 = HitShakeOver
trigger1 = GetHitVar(yvel) = 0 && !GetHitVar(fall)
value = 35001 ;HITG_SLIDE

[State 35000, 7]
type = ChangeState
trigger1 = HitShakeOver
value = 35030

;---------------------------------------------------------------------------
; HITG_SLIDE
[Statedef 35001]
type    = S
movetype= H
physics = S

[State 35001, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1

[State 35001, 2]
type = ChangeAnim
trigger1 = Anim != 7696
trigger1 = Anim != 9010
trigger1 = AnimTime = 0
value = 5005 + GetHitVar(animtype) + (GetHitVar(groundtype)=2)*10

[State 35001, 3] ;Stop sliding back
type = VelMul
trigger1 = Time >= GetHitVar(slidetime)
x = .6

[State 35001, 4]
type = VelSet
trigger1 = HitOver
x = 0

[State 35001, 5]
type = DefenceMulSet
trigger1 = HitOver
value = 1

[State 35001, 6]
type = SelfState
trigger1 = HitOver
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; HITA_UP (initial going up)
[Statedef 35030]
type    = A
movetype= H
physics = N
ctrl = 0

[State 35030, 1]
type = VelAdd;Gravity
trigger1 = 1
y = GetHitVar(yaccel)

[State 35030, 2]
type = HitVelSet
trigger1 = Time = 0
x = 1
y = 1

[State 35030, 3]
type = ChangeState
triggerall = !HitFall
trigger1 = HitOver
trigger2 = Vel Y > 0    ;Hit ground
trigger2 = Pos Y >= 10  ;.
value = 35040 ;HITA_RECOV

[State 35030, 4]
type = ChangeState
triggerall = HitFall
trigger1 = HitOver
trigger2 = Vel Y > 0    ;Hit ground
trigger2 = Pos Y >= 10  ;.
value = 35050 ;HITA_FALL

[State 35030, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 35035 ;HITA_UP (transition)

;---------------------------------------------------------------------------
; HITA_UP_T (transition)
[Statedef 35035]
type    = A
movetype= H
physics = N

[State 35035, 1]
type = ChangeAnim
trigger1 = Anim != 7696
trigger1 = Anim != 9010
trigger1 = Time = 0
trigger1 = SelfAnimExist(5035)
trigger1 = Anim != [5051,5059] ;Not if in hit up anim
trigger1 = Anim != 5090 ;Not if hit off ground anim
value = 5035

[State 35035, 2]
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 35035, 3]
type = ChangeState
triggerall = !HitFall
trigger1 = HitOver  ;Hit is over
trigger2 = AnimTime = 0 ;Animation over
trigger3 = Vel Y > 0    ;Hit ground
trigger3 = Pos Y >= 10  ;.
trigger4 = Time = 0     ;No transition anim
trigger4 = Anim != 5035 ;.
value = 35040 ;HITA_RECOV

[State 35035, 4]
type = ChangeState
triggerall = HitFall
trigger1 = HitOver  ;Hit is over
trigger2 = AnimTime = 0 ;Anim is over
trigger3 = Vel Y > 0    ;Hit ground
trigger3 = Pos Y >= 10  ;.
trigger4 = Time = 0     ;No transition anim
trigger4 = Anim != 5035 ;.
value = 35050 ;HITA_FALL

;---------------------------------------------------------------------------
; HITA_RECOV (recovering in air, not falling)
[Statedef 35040]
type    = A
movetype= H
physics = N

[State 35040, 1]
type = ChangeState
trigger1 = !Alive
value = 35050

[State 35040, 2]
type = ChangeAnim
triggerall = Anim != 7696
triggerall = Anim != 9010
trigger1 = AnimTime = 0
trigger1 = Anim != 5040
trigger2 = Time = 0
trigger2 = Anim != 5035
value = 5040

[State 35040, 3]
type = CtrlSet
trigger1 = HitOver
value = 1

[State 35040, 4]
type = StateTypeSet
trigger1 = HitOver
movetype = I

[State 35040, 5]
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 35040, 6]
type = SelfState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 52 ;JUMPLAND

;---------------------------------------------------------------------------
; HITA_FALL (knocked up, falling)
[Statedef 35050]
type    = A
movetype= H
physics = N

[State 35050, 1] ;Change anim when done with transition
type = ChangeAnim
triggerall = Anim != 7696
triggerall = Anim != 9010
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 35050, 2] ;Coming down anim
type = ChangeAnim
triggerall = Anim != 7696
triggerall = Anim != 9010
trigger1 = anim = [5050,5059]
trigger1 = Vel Y >= ifelse(anim = 5050, 1, -2)
trigger1 = SelfAnimExist(anim+10)
value = anim+10
persistent = 0

[State 35050, 3] ;Gravity
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 35050, 4] ;Recover near ground
type = SelfState
triggerall = Vel Y > 0
triggerall = Pos Y >= -20
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5200 ;HITFALL_RECOVER

[State 35050, 5]; Recover in mid air
type = SelfState
triggerall = Vel Y > -1
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5210 ;HITFALL_AIRRECOVER

[State 35050, 6]
type = SelfState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= ifelse((anim = [5051,5059]) || (anim = [5061,5069]), 0, 25)
value = 5100 ;HIT_BOUNCE

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