;=====================================================================
; 投げ技
;=====================================================================
;カンフースルー・改：掴み
[Statedef 800]
type     = U
movetype = A
physics  = N
anim     = 801
ctrl     = 0
velset   = 0,0
sprpriority = 2

[State 800, 移動速度]
type = VelSet
trigger1 = (StateType = A)
x = 0
y = 0

[State 800, ヒット定義（投げ用）];地上
type = HitDef
triggerall = (StateType != A)
trigger1 = Time = 0
attr = S, NT
hitflag = M-  ;マイナスが付加されてるので相手が食らい中の時は掴めない
priority = 1, Miss
sparkno = -1  ;-1だからヒットスパークは表示しない
sprpriority = 1
p1facing = ifelse(command="holdfwd",1,-1)
p2facing = 1
p1stateno = 801
p2stateno = 803
guard.dist = 0 ;相手のガード態勢に入る距離を０にしてるので、ガード不可
fall = 1
fall.recover = 0

[State 800, ステート変更]
type = ChangeState
trigger1 = (StateType != A) && (AnimTime = 0)
value = 0
ctrl = 1

;--------------------------------------------------------------------
;成功（放り投げる）
[Statedef 801]
type     = U
movetype = A
physics  = N
anim     = 861
ctrl     = 0
velset   = 0,0

;*********************************
[State 801, 物理的なキャラの幅]
type = Width
trigger1 = (AnimElemTime(2) >= 0) && (AnimElemTime(12) < 0)
edge = 60,0

[State 801, 軸位置移動]
type = PosAdd
triggerall = (StateType != A)
trigger1 = AnimElem = 15
x = -10
;*********************************
[State 801, 音を鳴らす]
type = PlaySnd
trigger1 = AnimElem = 1
value = 800,0

;*********************************
[State 801, 掴んだ相手の位置１];TargetBindで相手を一時的に拘束
type = TargetBind
trigger1 = AnimElemTime(2) < 0
pos = 40, -140  ;自分の軸位置から相手の軸をX=28・Y=0の位置にする

[State 801, 掴んだ相手の位置２]
type = TargetBind
trigger1 = (AnimElemTime(2) >= 0) && (AnimElemTime(5) < 0)
pos = 58, -140

[State 801, 掴んだ相手の位置３]
type = TargetBind
trigger1 = (AnimElemTime(5) >= 0) && (AnimElemTime(6) < 0)
pos = 47, -140

;********************************* 相手が食らい状態の時のみ機能するTarget系コントローラ
[State 801, 掴んだ相手のライフ増減]
type = TargetLifeAdd
trigger1 = AnimElem = 6
value = -100

[State 801, 掴んだ相手のステート変更]
type = TargetState
trigger1 = AnimElem = 6
value = 804

;*********************************
[State 801, 音を鳴らす]
type = PlaySnd
trigger1 = time = 20
value = 50003,2
volume = 250

[State ]
type = Envshake
trigger1 = time = 20
time = 20
freq = 120
ampl = -4

[State , エフェクト]
type = Explod
trigger1 = time = 20
anim = 20019
postype = p1
pos = 45,-145
scale = 1,1
sprpriority = 2
ownpal = 1
IgnoreHitPause = 1

[State 時間停止]
type = SuperPause
trigger1 = time = 20
anim = -1
sound = s-1
time = 5
movetime = 5
darken = 0
p2defmul = 1

[State , エフェクト]
type = Explod
trigger1 = time = 20
anim = 20031
postype = p1
pos = 45,-145
scale = 1,1
sprpriority = 2
ownpal = 1
IgnoreHitPause = 1

[State ];補正
type = Varset
trigger1 = 1
var(11) = 6
ignorehitpause = 1

[State -2, PowerAdd]
type = PowerAdd
trigger1 = time = 20
value = 90

[State -2, Poweradd]
type = TargetPoweradd
trigger1 = time = 20
value = 45

[State 801, ステート変更]
type = ChangeState
trigger1 = (StateType != A) && (AnimTime = 0)
value = 0
ctrl = 1
;--------------------------------------------------------------------
;相手側１（掴まれて放り投げられるまで）
[Statedef 803]
type     = U
movetype = H
physics  = N
ctrl     = 0
velset   = 0,0
sprpriority = 3

[State 803, 相手のアニメ変更]
type = ChangeAnim2
trigger1 = Time = 0
value = 871

[state ]
type = PalFX
trigger1 = time = 20
time =40
mul = 220,180,230
sinadd = 255,255,255,3
add = 16,16,16
color = 1
invertall = 1
supermovetime = 999

[State 803, 相手ステートに戻す];停止バグ対策
type = SelfState
trigger1 = (Time > 23) ;（※２）
value = 5050

;---------------------------------------------------------------------------
; ※２：GetHitVar
;
; 　食らってしまった『相手の攻撃の効果』を
; 　自分側が「特殊な変数」に変換して判断するトリガー。
;　「GetHitVar(**)」の『**』に該当する、予め決められているパラメータを全て紹介。
;
; 　大概「相手のHitDefとProjectileのパラメータ」から引き出すので、かなり多い（苦笑
;
;
; 　XVelAdd             = 自分が負けて吹っ飛んだ時の「Ｘ軸方向の加速度(float)」を計測する
; 　YVelAdd             = 自分が負けて吹っ飛んだ時の「Ｙ軸方向の加速度(float)」を計測する
; 　Type                = 自分の「食らいアニメの種類」。（0=None・1=High・2=Low・3=Trip）
; 　AnimType            = 相手のHitDefに設定されている「animtype」を判断する
;                        （0=Light・1=Medium・2=Hard・3=Back・4=Up・5=DiagUp）
; 　GroundType          = 相手のHitDefに設定されている「ground.type」を判断する
; 　AirType             = 相手のHitDefに設定されている「air.type」を判断する
;
; 　Damage              = 相手から食らってしまった「ダメージ量」を計測する
; 　HitCount            = 相手の「現在のヒット数」を計測する
; 　FallCount           = 自分が「地面に激突した回数」を判断する
; 　HitShakeTime        = 自分の「ヒット硬直時間」を計測する
; 　HitTime             = 自分の「食らい時間」を計測する
; 　SlideTime           = 相手のHitDefに設定されている「slidetime」を判断する
; 　CtrlTime            = 相手のHitDefに設定されている「(air)guard.ctrltime」を判断する
; 　RecoverTime         = 横に倒れている時の「起き上がるまでの時間」を判断する
;
; 　XOff                = 相手のHitDefに設定されている「"snap"のＸ軸」を判断する（非推奨）
; 　YOff                = 相手のHitDefに設定されている「"snap"のＹ軸」を判断する（非推奨）
; 　ZOff                = 相手のHitDefに設定されている「"snap"のＺ軸」を判断する？（存在しないので無意味）
;
; 　XVel                = 相手のHitDefに設定されている「Ｘ軸の食らい状態の移動速度」を判断する
; 　YVel                = 相手のHitDefに設定されている「Ｙ軸の食らい状態の移動速度」を判断する
; 　YAccel              = 相手のHitDefに設定されている「yaccel」を判断する
; 　chainID             = 相手のHitDefに設定されている「chainID」を判断する
; 　Guarded             =「相手のコンボでの最後の攻撃をガードした場合」を判断する
; 　IsBound             =「TargetBindで掴まれてる状態」を判断する
;
; 　Fall                = 相手のHitDefに設定されている「fall」を判断する
; 　Fall.Damage         = 相手のHitDefに設定されている「fall.damage」を判断する
; 　Fall.XVel           = 相手のHitDefに設定されている「fall.xvelocity」を判断する
; 　Fall.YVel           = 相手のHitDefに設定されている「fall.yvelocity」を判断する
; 　Fall.Recover        = 相手のHitDefに設定されている「fall.recover」を判断する
; 　Fall.RecoverTime    = 相手のHitDefに設定されている「fall.recovertime」を判断する
; 　Fall.Kill           = 相手のHitDefに設定されている「fall.kill」を判断する
; 　Fall.EnvShake.Time  = 相手のHitDefに設定されている「fall.envshake.time」を判断する
; 　Fall.EnvShake.Freq  = 相手のHitDefに設定されている「fall.envshake.freq」を判断する
; 　Fall.EnvShake.Ampl  = 相手のHitDefに設定されている「fall.envshake.ampl」を判断する
; 　Fall.EnvShake.Phase = 相手のHitDefに設定されている「fall.envshake.phase」を判断する
;
;---------------------------------------------------------------------------
;相手側２（放り投げられた）
[Statedef 804]
type     = A
movetype = H
physics  = N
ctrl     = 0
velset   = -5.5,-6.5

[State 804, 速度加算];重力
type = Velset
trigger1 = animelem = 1
x = -5.5
y = -6.5

[State 804, 速度加算];重力
type = VelAdd
trigger1 = 1
y = 0.5

[State 804, ステート変更]
type = ChangeState
triggerall = (Vel Y > 0)
triggerall = (Pos Y >= -20)
triggerall = (Alive)      ;生きている時
triggerall = (CanRecover) ;空中受け身が可能な時
trigger1 = command = "recovery"
value = 5200

[State 804, 相手ステートに戻す]
type = SelfState
triggerall = (Vel Y > 0)
triggerall = (Alive)
triggerall = (CanRecover)
trigger1 = command = "recovery"
value = 5210

[State 804, 相手ステートに戻す]
type = SelfState
trigger1 = (Vel Y > 0) && (Pos Y >= 0)
value = 5100
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
