;===========================================================================
; 前ステップ
;===========================================================================
;---------------------------------------------------------------------------
[Statedef 100]
type    = S;地上
physics = N;摩擦や重力の影響を受けない
ctrl = 0;コントロールできない
anim = 100
sprpriority = 1;画像表示優先度、エフェクトを重ねたりしない限り適当でも可

[State 100, 1]
type = VelSet;(速度をセット)
trigger1 = time = 0;(0Fに発動、つまりこのステートに入った瞬間)
x = const(velocity.run.fwd.x);(cnsのライフなどの設定から参照)

[State 100]
type = PlaySnd
trigger1 = AnimElem = 1
channel = 3
value = S0,3

[State 100, 2]
type = ChangeState;(ステート変更)
trigger1 = time > 5;(時間経過によって発動(現在20F以上で発動、数字を増やせばステップしている時間が長くなる))
value = 102;(102へ移動のステート)
;---------------------------------------------------------------------------
[Statedef 102]
type    = S;地上
physics = N;摩擦や重力の影響を受けない
ctrl = 0;コントロールできない
anim = 102

[State 102, 1]
type = VelAdd;(速度を加算する)
trigger1 = Vel X > 0;(Vel Xが0より大きい、つまり前進している状態で発動)
x = -0.68;(速度をマイナス方向に与え続ける)

[State 102, 2]
type = VelSet;(速度をセット)
trigger1 = Vel X < 0;(Vel Xが0より小さい、つまり後退している状態で発動)
x = 0;(後退しすぎないように、停止する)

[State 102, 4]
type = ChangeState;(ステート変更)
trigger1 = Animtime = 0;(アニメが終了したら発動)
value = 0;(立ち状態のステート)
ctrl = 1;(移動先でコントロール可能にする)
;---------------------------------------------------------------------------
;===========================================================================
; 後ステップ
;===========================================================================
[Statedef 105]
type    = S;地上
physics = N;摩擦や重力の影響を受けない
ctrl = 0;コントロールできない
anim = 105
sprpriority = 1;画像表示優先度、エフェクトを重ねたりしない限り適当でも可

[State 105, 1]
type = VelSet;(速度をセット)
trigger1 = time = 0;(0Fに発動、つまりこのステートに入った瞬間)
x = const(velocity.run.back.x);(cnsのライフなどの設定から参照)

[State 1010]
type = NotHitBy
trigger1 = AnimElemtime(2) >= 0
trigger1 = AnimElemtime(12) <= 2
value = SCA,AT

[State 105, 2]
type = ChangeState;(ステート変更)
trigger1 = time > 26;(時間経過によって発動(現在26F以上で発動、数字を増やせばステップしている時間が長くなる))
value = 106;(ステップ終了のステート)
;---------------------------------------------------------------------------
[Statedef 106]
type    = S;地上
physics = N;摩擦や重力の影響を受けない
ctrl = 0;コントロールできない
anim = 106

[State 106, 1]
type = VelAdd;(速度を加算する)
trigger1 = Vel X > 0;(Vel Xが0より大きい、つまり前進している状態で発動)
x = -0.68;(速度をマイナス方向に与え続ける)

[State 106, 2]
type = VelSet;(速度をセット)
trigger1 = Vel X < 0;(Vel Xが0より小さい、つまり後退している状態で発動)
x = 0;(後退しすぎないように、停止する)

[State 106, 3]
type = ChangeState;(ステート変更)
trigger1 = Animtime = 0;(アニメが終了したら発動)
value = 0;(立ち状態のステート)
ctrl = 1;(移動先でコントロール可能にする)
;===========================================================================
; 空中ダッシュ
;===========================================================================
;---------------------------------------------------------------------------
;空中ダッシュ開始
[Statedef 110]
type    = A;空中
physics = N;摩擦や重力の影響を受けない
ctrl = 1;コントロール可能
anim = 110
sprpriority = 1;画像表示優先度、エフェクトを重ねたりしない限り適当でも可

[State 110]
type = VarSet;(Varをセットする)
trigger1 = time = 0;(ステートに入った瞬間)
var(1) = 1;(Var(1)を1にする)

[State 110]
type = PlaySnd
trigger1 = AnimElem = 1
channel = 3
value = S0,3

[State 110]
type = Explod
trigger1 = AnimElem = 2
anim = 6000
persistent = 0
IgnoreHitPause = 1
ID = 6000
pos = 15,-35
postype = p1
scale = 0.7,0.7
sprpriority = 3
removeongethit = 1

[State 110]
type = VelSet;(速度をセット)
trigger1 = time = 0;(0Fに発動、つまりこのステートに入った瞬間)
x = const(velocity.run.fwd.x);(cnsのライフなどの設定から参照)
y = 0

[State 110, 2]
type = ChangeState;(ステート変更)
trigger1 = time > 16;(時間経過によって発動(現在20F以上で発動、数字を増やせばステップしている時間が長くなる))
value = 111;(111へ移動のステート)
;---------------------------------------------------------------------------
;空中ダッシュ終了
[Statedef 111]
type    = A;空中
physics = A;接地したら着地ステートに
ctrl = 1;コントロール可能
anim = 111

[State 111, 1]
type = VelAdd;(速度を加算)
trigger1 = time = 0;(ステートに入った瞬間)
x = -0.8*const(velocity.run.fwd.x);(速度をマイナス方向に与える)

[State 111, 3]
type = ChangeAnim;(アニメを変える)
trigger1 = Anim = 111;(111の時に発動)
trigger1 = Animtime = 0;(アニメが終了したら発動)
value = 41;(垂直ジャンプのアニメ)
elem = 16;(20枚目、落下のループが始まる)
;---------------------------------------------------------------------------
;===========================================================================
; 空中バックダッシュ
;===========================================================================
;空中バックダッシュ開始
[Statedef 115]
type    = A;空中
physics = N;摩擦や重力の影響を受けない
ctrl = 1;コントロール可能
anim = 115
sprpriority = 1;画像表示優先度、エフェクトを重ねたりしない限り適当でも可

[State 115, -1]
type = VarSet;(Varをセットする)
trigger1 = time = 0;(ステートに入った瞬間)
var(1) = 1;(Var(1)を1にする)

[State 115, 1]
type = VelSet;(速度をセット)
trigger1 = time = 0;(0Fに発動、つまりこのステートに入った瞬間)
x = -0.4*const(velocity.run.fwd.x);(cnsのライフなどの設定から参照)
y = -1.6

[State 115]
type = PlaySnd
trigger1 = AnimElem = 1
channel = 3
value = S0,3

[State 115]
type = Explod
trigger1 = AnimElem = 2
anim = 6005
persistent = 0
IgnoreHitPause = 1
ID = 6005
pos = -15,-35
postype = p1
scale = 0.7,0.7
sprpriority = 3
removeongethit = 1

[State 115, 2]
type = VelAdd
trigger1 = 1
y = 0.7*Const(movement.yaccel)

[State 115, 3]
type = ChangeState;(ステート変更)
trigger1 = time > 23;(時間経過によって発動(現在20F以上で発動、数字を増やせばステップしている時間が長くなる))
value = 116;(111へ移動のステート)
;---------------------------------------------------------------------------
;空中ダッシュ終了
[Statedef 116]
type    = A;空中
physics = N;接地したら着地ステートに
ctrl = 1;コントロール可能
anim = 111

[State 116, 1]
type = null;VelAdd;(速度を加算)
trigger1 = time = 0;(ステートに入った瞬間)
x = -0.8*const(velocity.run.fwd.x);(速度をマイナス方向に与える)

[State 116, 2]
type = VelAdd
trigger1 = 1
y = 0.7*Const(movement.yaccel)

[State 116, 2]
type = ChangeAnim;(アニメを変える)
trigger1 = Anim = 111;(111の時に発動)
trigger1 = Animtime = 0;(アニメが終了したら発動)
value = 41;(垂直ジャンプのアニメ)
elem = 20;(20枚目、落下のループが始まる)

[State 116, 3]
type = ChangeState;(ステート変更)
trigger1 = Pos Y >= 0;(接地、あるいは地面より深く落ちたら)
trigger1 = Vel Y > 0;(落下中)
value = 52;(着地ステートへ移動)
ctrl = 0

;---------------------------------------------------------------------------
;===========================================================================
; 空中ジャンプ
;===========================================================================
; AirJump Start
[Statedef 46]
type    = A
physics = N
ctrl = 0
velset = 0,0

[State 46]
type = RemoveExplod
trigger1 = time = 0
ID = 622

[State 46]
type = RemoveExplod
trigger1 = time = 0
ID = 610

[State 46]
type = Explod
trigger1 = 1
anim = 6010
IgnoreHitPause = 1
Persistent = 0
ID = 6010
pos = 0,0
postype = p1
scale = 0.9,0.9
sprpriority = 1
removeongethit = 1

[State 46, 1]
type = ChangeAnim
trigger1 = time = 0
value = 42

[State 46, 2]
type = ChangeAnim
trigger1 = !SelfAnimExist(44)
value = 41

[State 46, 3]
type = Varset
trigger1 = time = 0
var(2) = 1

[State 46, 4]
type = VarSet
trigger1 = Time = 0
sysvar(1) = 0

[State 46,5]
type = VarSet
trigger1 = command = "holdfwd"
sysvar(1) = 1

[State 46, 6]
type = VarSet
trigger1 = command = "holdback"
sysvar(1) = -1

[State 46, 7]
type = VelSet
trigger1 = Time = 2
x = ifelse(sysvar(1)=0, const(velocity.airjump.neu.x), ifelse(sysvar(1)=1, const(velocity.airjump.fwd.x), const(velocity.airjump.back.x)))
y = const(velocity.airjump.y)

[State 46, 8]
type = ChangeState
trigger1 = Time = 2
value = 50
ctrl = 1

;===========================================================================
;ハイジャンプ
;===========================================================================
;---------------------------------------------------------------------------
[Statedef 60]
type    = S
physics = S
ctrl = 0
sprpriority = 1

[State 60, 0]
type = ChangeAnim
trigger1 = time < 5
value = 40

[State 60, 1]
type = VarSet
trigger1 = Time = 0
sysvar(1) = 0

[State 60, 2]
type = VarSet
trigger1 = command = "holdfwd"
sysvar(1) = 1

[State 60, 3]
type = VarSet
trigger1 = command = "holdback"
sysvar(1) = -1

[State 60, 4]
type = ChangeAnim
trigger1 = Anim = 40
trigger1 = Animtime = 0
value = 41+((sysvar(1)=1)*1)+((sysvar(1)=-1)*2)

[State 60, 5]
type = CtrlSet
trigger1 = Anim = [41,43]
trigger1 = Animelemtime(1) >= 0
value = 1

[State 60, 6]
type = VelSet
trigger1 = Anim = [41,43]
trigger1 = Animelem = 1
x = ifelse(sysvar(1)=0,(const(velocity.jump.neu.x)*2.4),ifelse(sysvar(1)=1,(const(velocity.jump.fwd.x)*3.8),(const(velocity.jump.back.x)*3.8)))
y = ifelse(sysvar(1)=0,-10,-7.4)
;x = 1.2*const(velocity.run.fwd.x)

[State 60, 7]
type = VelSet
trigger1 = fvar(8) = 1
trigger1 = Anim = [41,43]
trigger1 = Animelem = 1
x = ifelse(sysvar(1)=0,(const(velocity.jump.neu.x)*2.4),ifelse(sysvar(1)=1,(const(velocity.jump.fwd.x)*3.8),(const(velocity.jump.back.x)*3.8)))
y = ifelse(sysvar(1)=0,-12.6,-7.4)
;x = 1.2*const(velocity.run.fwd.x)

[state 60, 8]
type = StatetypeSet
trigger1 = Anim = [41,43]
trigger1 = Animelemtime(1) >= 0
trigger2 = Pos Y < 0
statetype = A
physics = A

[State 60]
type = PlaySnd
trigger1 = Anim = 41
trigger1 = AnimElem = 2
trigger2 = Anim = 42
trigger2 = AnimElem = 2
trigger3 = Anim = 43
trigger3 = AnimElem = 2
value = S0,1

[State 60]
type = Explod
trigger1 = Anim = 41
trigger1 = Animelemtime(1) >= 0
anim = 10500
IgnoreHitPause = 1
Persistent = 0
ID = 10500
pos = 0,0
postype = p1
sprpriority = 3
removeongethit = 1

[State 60]
type = Explod
trigger1 = Anim = 42
trigger1 = Animelemtime(1) >= 0
anim = 10600
IgnoreHitPause = 1
Persistent = 0
ID = 10600
pos = 0,0
postype = p1
sprpriority = 3
removeongethit = 1

[State 60]
type = Explod
trigger1 = Anim = 43
trigger1 = Animelemtime(1) >= 0
anim = 10700
IgnoreHitPause = 1
Persistent = 0
ID = 10700
pos = 0,0
postype = p1
sprpriority = 3
removeongethit = 1

[State 60, 9]
type = ChangeAnim
trigger1 = Anim = 41
trigger1 = AnimTime = 0
value = 44

;---------------------------------------------------------------------------
;ハイジャンプ終了
[Statedef 61]
type    = A
physics = A
ctrl = 1
anim = 111

[State 61]
type = null;VelAdd
trigger1 = time = 0
x = -0.8*const(velocity.run.fwd.x)

[State 61]
type = ChangeAnim
trigger1 = Anim = 111
trigger1 = Animtime = 0
value = 44

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