; このキャラクターの基本データ、サイズ等を決めるための第一CNSファイル。
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------

[Data];データ
life              = 1000    ;最大体力
power             = 5000    ;最大パワーゲージ
attack            = 100     ;攻撃力%
defence           = 100     ;防御力%
fall.defence_up   = 50      ;ダウン時に攻撃された時に一時的に上がる防御力
liedown.time      = 60      ;倒れてから起き上がるまでの最大時間
airjuggle         = 10000000;エアジャグルポイント
sparkno           = S8050       ;hitdefで設定していない時の基本ヒットスパークナンバー
guard.sparkno     = S9000      ;hitdefで設定していない時の基本ガードスパークナンバー
KO.echo           = 0       ;0にするとKOされた時に声にエコーがかからない
volume            = 128     ;音量
intpersistindex   = 20      ;Varの次ラウンド持ち越し設定
floatpersistindex = 25      ;同じくFVarの次ラウンド持ち越し設定

; 変数持ち越しの例
; IntPersistIndex = 20　（Var(20)以降の変数が次のラウンドへ持ち越され、それ以外は0に戻る）
; FloatPersistIndex = 25（FVar(25)以降の変数が次のラウンドへ持ち越され、それ以外は0に戻る）


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

[Size];サイズ
xscale           = 1       	;キャラの横の大きさ（絶対値・float）
yscale           = 1       	;キャラの縦の大きさ（絶対値・float）
ground.back      = 15      	;地上にいる時の「後方の物理的な幅」
ground.front     = 16      	;地上にいる時の「前方の物理的な幅」
air.back         = 12      	;空中にいる時の「後方の物理的な幅」
air.front        = 12      	;空中にいる時の「前方の物理的な幅」
height           = 65      	;キャラの物理的な高さ（高いほど相手は飛び越しにくくなる）
attack.dist      = 80     	;相手がガード態勢に入る最低の距離
proj.attack.dist = 90      	;自分の「Projectile」に対して相手がガード態勢に入る最低の距離
proj.doscale     = 0       	;xscaleとyscaleを「Projectile」にも影響させるか否か（0=させない・1=させる）
head.pos         = 5,-90  	;キャラの標準の頭の座標（Bind系で適用される）
mid.pos          = 0,-50  	;キャラの標準の体中心の座標（Bind系で適用される）
shadowoffset     = 0       	;影のＹ軸方向の位置座標
draw.offset      = 0,0     	;キャラの表示座標（Ｘ軸,Ｙ軸）

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

[Velocity];移動速度
walk.fwd     = 2.5         ;前進速度（Ｘ軸・[Statedef 20]に適用される）
walk.back    = -2        ;後退速度（Ｘ軸・[Statedef 20]に適用される）
run.fwd      = 7.2,0       ;前方に走る速度（Ｘ軸,Ｙ軸・[Statedef 100]に適用される）
run.back     = -5.5,-1.0   ;後方に走る速度（Ｘ軸,Ｙ軸・[Statedef 105]に適用される）
jump.neu     = 0,-8.5     ;垂直ジャンプの速度（Ｘ軸,Ｙ軸・[Statedef 40]に適用される）
jump.back    = -2.15       ;後方ジャンプの速度（Ｘ軸・[Statedef 40]に適用される）
jump.fwd     = 2.5         ;前方ジャンプの速度（Ｘ軸・[Statedef 40]に適用される）
runjump.back = -2.55,-6.1  ;後方に走ってからのジャンプ速度（Ｘ軸,Ｙ軸・[Statedef 40]に適用される）
runjump.fwd  = 4,-6.1      ;前方に走ってからのジャンプ速度（Ｘ軸,Ｙ軸・[Statedef 40]に適用される）
airjump.neu  = 0,-8.0      ;空中垂直ジャンプ速度（Ｘ軸,Ｙ軸・[Statedef 45]に適用される）
airjump.back = -3.2        ;空中後方ジャンプ速度（Ｘ軸・[Statedef 45]に適用される）
airjump.fwd  = 3.2   
air.gethit.groundrecover   = -.15,-3.5  ;地上受身の速度（x,y）
air.gethit.airrecover.mul  = .5,.2      ;空中受身に掛かる加速度（x,y）ブレーキ効果
air.gethit.airrecover.add  = 0,-4.5     ;空中受身の速度（x,y）
air.gethit.airrecover.back = -1         ;空中受身時に後ろを押した場合の追加速度 x
air.gethit.airrecover.fwd  = 0          ;空中受身時に前を押した場合の追加速度 x
air.gethit.airrecover.up   = -2         ;空中受身時に上を押した場合の追加速度 y
air.gethit.airrecover.down = 1.5        ;空中受身時に下を押した場合の追加速度 y
 
;---------------------------------------------------------------------------

[Movement];動作
airjump.num     = 2                     ;空中ジャンプの回数
airjump.height  = 35                    ;空中ジャンプに必要な最低限の高さ
yaccel          = .44                   ;垂直方向にかかる加速度（重力）
stand.friction  = .85                   ;立ち状態の摩擦係数
crouch.friction = .82                   ;屈み状態の摩擦係数
stand.friction.threshold     = 2                ;立ち状態で滑っている時、この速度未満になると止まる
crouch.friction.threshold    = .05              ;屈み状態で滑っている時、この速度未満になると止まる
air.gethit.groundlevel       = 25               ;この数値以上床下に落ちると、地面にぶつかる
air.gethit.groundrecover.ground.threshold = -20 ;Y座標がこの値以上で、地上受身が出来る
air.gethit.groundrecover.groundlevel      = 10  ;Y座標がこの位置になると地上受身開始
air.gethit.airrecover.threshold           = -1  ;Y速度がこの値以上になると空中受身が出来る
air.gethit.airrecover.yaccel = .35              ;受身中に掛かる重力
air.gethit.trip.groundlevel  = 15               ;転倒技を受けた時、この値以上床下に落ちると地面にぶつかる
down.bounce.offset           = 0, 20            ;地面でバウンドする瞬間、この位置に補正される（x,y）
down.bounce.yaccel           = .4               ;バウンド中の重力
down.bounce.groundlevel      = 12               ;バウンド後、Y座標がこの値でダウンモーションに入る
down.friction.threshold      = .05              ;ダウン状態で滑っている時、この速度未満になると止まる

;---------------------------------------------------------------------------
;勝利台詞（英語）
[Quotes]
; victory0～99まで設定可能
victory1 = "・・・。"
;victory2 = "You need a lot of training. Come back in ten years."
;victory3 = "You look familiar. Did I see you on TV?"
;victory4 = "Your moves are too predictable. You want to learn Kung Fu Palm? It's not for novices."
;victory5 = "That was a good workout."
;victory6 = "I want to challenge more skilled fighters."
;victory7 = "I'm Kung Fu Man!"

;日本語
[ja.Quotes]
victory1 = "・・・。"

;以降、更新の度に追加予定


;---------------------------------------------------------------------------
; Varの使用状況
; ここに自分が使ったvarをメモしておくといろいろと好都合ですわよ？

; var(0) コモンステートのsysvar0代用
; var(1) コモンステートのsysvar1代用
; var(2) コモンステートのsysvar2代用

; var(4)　試合開始判断フラグ
; var(5)　擬似硬直システム変数
; var(6)

; var(21) 永タゲ用コンボ管理

;fvar(10) mapelaoVar
;fvar(11) mapelaoVar

;sysfvar(4) mapelaoVar

;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
; 基本行動のステート
;---------------------------------------------------------------------------
; タイムオーバー時

[Statedef 170]
type   = S
ctrl   = 0   ;ここでCtrlSetを簡略化できます。　1=自由に動かせる
anim   = 170
velset = 0,0 ;ここでVelSetを簡略化できます。　x方向,y方向 の順

[State 170, 無敵]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1


;---------------------------------------------------------------------------
; 勝利ポーズ分岐
;
;ここで勝利ポーズを選択する。　MatchOverは試合終了を判定するので、
;一回目と二回目勝利を別のポーズにしたい時に便利。

[Statedef 180]
type = S


[State 180, 勝利ポーズ1]
type = ChangeState
triggerall = RoundState != 0 ;エンディング対策
trigger1 = Time = 0
value = 181+random%2


;---------------------------------------------------------------------------
; 勝利ポーズ1
[Statedef 181]
type   = S
ctrl   = 0
velset = 0,0

[State 181, 無敵]
type = NotHitBy
trigger1 = 1
value = SCA

[State 181, 勝利宣言]
type = AssertSpecial
trigger1 = Time < 190
flag = RoundNotOver

[state ]
type=changeanim
trigger1 = anim !=1113
value = 1113

[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(3)=0
anim = 7043
postype = p1
pos = 0,-70
bindtime=1
scale = 0.6,0.6
ignorehitpause =1
sprpriority =-5
ownpal =1

[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(3)=0
anim = 1111
postype = p1
pos = 0,0
bindtime=1
scale = 1,1
vel = 0,-2
ignorehitpause =1
sprpriority =4
ownpal =1

[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(3)=0
anim = 7134
postype = p1
pos = 0,0
bindtime=1
scale = 1,0.6
ignorehitpause =1
sprpriority =-4
ownpal =1
[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(3)=0
anim = 7329
postype = p1
pos = 0,0
bindtime=1
scale = 1,0.6
ignorehitpause =1
sprpriority =-4
ownpal =1

[state ]
type=Velset
trigger1 = 1
x = 0
y = 0

[State 210, Snd]
type=playsnd
trigger1 = animelemtime(4)=0
value=0,14
freqmul = 1
[State 210, Snd]
type=playsnd
trigger1 = animelemtime(4)=0
value=1,32
freqmul = 1


;勝利ポーズ2
[Statedef 182]
type   = S
physics  = N
ctrl   = 0

[State 182, 勝利フラグ]
type = AssertSpecial
trigger1 = Time < 190
flag = RoundNotOver

[State 181, 無敵]
type = NotHitBy
trigger1 = 1
value = SCA

[state ]
type=changeanim
trigger1 = anim !=13
value = 13

[state ]
type=velset
trigger1 = animelemtime(1)=0
x = 0
y = 0

[state ]
type=velset
trigger1 = animelemtime(5)=0
y = 2
[state ]
type=veladd
trigger1 = animelemtime(5)>=0
x = 0.3
y = -0.5

[State 効果音]
type = PlaySnd
trigger1 = animelemtime(5)=0
value = S10000,1
[State 効果音]
type = PlaySnd
trigger1 = animelemtime(5)=1
value = S1,4
freqmul = 1.15

[State 0, ScreenBound]
type = ScreenBound
trigger1 = 1
value = 0
movecamera = 0,0

;---------------------------------------------------------------------------
; イントロ分岐
;
; ここではRandomを使っています。
; Randomは0～999の値をランダムに返すので、いろいろな分岐条件に使います。
; これは同じ時間に2箇所以上で指定しても違う値になってしまうので
; 分岐条件をifelseによって指定しています。

;イントロ選択
[Statedef 190]	
type   = S
ctrl   = 0
anim   = 0
velset = 0,0

[State 190, 確率分岐]
type = ChangeState
trigger1 = Time = 1
value = 191
;       ifelse(条件指定, 条件に合う場合の値, 条件に合わない場合の値)
; Randomが600未満なら191に移行、それ以外なら192へ移行するという意味


;---------------------------------------------------------------------------
; イントロ

[Statedef 191]
type   = S
ctrl   = 0
anim   = 191
velset = 0,0

[State 191, アニメ変更]
type = ChangeAnim
trigger1 = RoundState = 0
value = 191

[State 191, 特殊効果]
type = AssertSpecial
trigger1 = 1
flag = Intro

[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(2)=0
anim = 1112
postype = p1
pos = 0,-24
bindtime=1
facing = -1
scale = 1,1
vel = 0,2
ignorehitpause =1
sprpriority =4
ownpal =1
[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(2)=0
anim = 7229
postype = p1
pos = 0,0
bindtime=1
scale = 1,0.6
ignorehitpause =1
sprpriority =-4
ownpal =1
[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(2)=0
anim = 7043
postype = p1
pos = 0,-40
bindtime=1
vfacing = -1
scale = 0.6,0.6
ignorehitpause =1
sprpriority =-5
ownpal =1

[State 210, Snd]
type=playsnd
trigger1 = animelemtime(2)=0
value=0,14
freqmul = 1
[State 210, Snd]
type=playsnd
trigger1 = animelemtime(2)=0
value=1,32
freqmul = 1

[State 210, Snd]
type=playsnd
trigger1 = animelemtime(8)=0
value=0,5
freqmul = 1
[State 210, Snd]
type=playsnd
trigger1 = animelemtime(8)=0
value=1,3
freqmul = 1

[State 210, Snd]
type=playsnd
trigger1 = animelemtime(8)=0
value=100,21
freqmul = 1

[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(8)=0
trigger2 = animelemtime(8)=4
trigger3 = animelemtime(8)=8
anim = 7120
postype = p1
pos = 17,-70
bindtime=1
facing = ifelse(random%2=0,1,-1)
vfacing = ifelse(random%2=0,1,-1)
scale = 0.3,0.3
vel = 0,-5
ignorehitpause =1
sprpriority =5
ownpal =1
[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(8)=0
anim = 7021
postype = p1
pos = 0,0
bindtime=1
facing = ifelse(random%2=0,1,-1)
scale = 1,1
ignorehitpause =1
sprpriority =5
ownpal =1

[State , エフェクト表示]
type = Explod
trigger1 = animelemtime(8)=0
anim = 7018
postype = p1
pos = 0,-50
bindtime=1
facing = ifelse(random%2=0,1,-1)
vfacing = ifelse(random%2=0,1,-1)
scale = 1,1
ignorehitpause =1
sprpriority =-5
ownpal =1

[State 191, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0

;---------------------------------------
;前空中ダッシュ
[Statedef 110]
type = A ;ﾀｲﾌﾟ:S 立ち,C しゃがみ,A 空中 , L liedown 
movetype = I ;移動タイプ:A 攻撃,I 普通,H くらい 
physics = A ;摩擦(重力):S 立ち,C しゃがみ,A 空中  
velset = 6,-4 ;移動距離 横,縦 
ctrl = 0  ;コントロール可能 
anim = 103  ;アニメーション番号 
sprpriority = 2 ;レイヤー優先度 


 [State 110, 音]
type = PlaySnd   ;音を鳴らす 
trigger1 = Time = 0 ;タイムが0のとき 
value = 5, 3   ;音番号 

 [State 110, 終わり]
type  = ChangeState    ;終わるときはこれにする 
trigger1  = AnimTime  =  0  ;ｱﾆﾒ終了してから0経過したとき 
value  = 51    ;ステート51(ジャンプ下降)へ 
ctrl  = 1    ;コントロール可 

;-----------------------------------------------
 ;後ろ空中ダッシュ

[Statedef 111]

type = A ;ﾀｲﾌﾟ:S 立ち,C しゃがみ,A 空中 , L liedown 
movetype = I ;移動タイプ:A 攻撃,I 普通,H くらい 
physics = A ;摩擦(重力):S 立ち,C しゃがみ,A 空中  
velset = -6,-4 ;移動距離 横,縦 
ctrl = 0  ;コントロール可能 
anim = 105  ;アニメーション番号 
sprpriority = 2 ;レイヤー優先度 

 [State 111, 音]

type = PlaySnd   ;音を鳴らす 
trigger1 = Time = 0 ;タイムが0のとき 
value = 5, 3  ;音番号 

 [State 111, 終わり]

type  = ChangeState    ;終わるときはこれにする 
trigger1  = AnimTime  =  0  ;ｱﾆﾒ終了してから0経過したとき 
value  = 51    ;ステート51(ジャンプ下降)へ 
ctrl  = 1    ;コントロール可 


;-----------------------------------------------
 ;ハイジャンプ

[Statedef 99]

type = S ;ﾀｲﾌﾟ:S 立ち,C しゃがみ,A 空中 , L liedown 
movetype = A ;移動タイプ:A 攻撃,I 普通,H くらい 
physics = S ;摩擦(重力):S 立ち,C しゃがみ,A 空中  
velset = 0,-6 ;移動距離 横,縦 
ctrl = 0  ;コントロール可能 
anim = 41  ;アニメーション番号 
sprpriority = 2 ;レイヤー優先度 

 [State 99, 音]

type = PlaySnd   ;音を鳴らす 
trigger1 = Time = 0 ;タイムが0のとき 
value = 0, 2   ;音番号 

 [State 99, 終わり]

type  = ChangeState    ;終わるときはこれにする 
trigger1  = AnimTime  =  0  ;ｱﾆﾒ終了してから0経過したとき 
value  = 51    ;ステート51(ジャンプ下降)へ 
ctrl  = 1    ;コントロール可 



;---------------------------------------------------------------------------
; アピール、挑発行動等

[Statedef 195]
type     = S
movetype = I
physics  = S
anim     = 195
velset   = 0,0
ctrl     = 0
sprpriority = 2 ;ここで表示優先度を決定できます。　範囲は-5～5、大きいほど手前に表示される
facep2 = 1      ;相手の方を向いてから（結構重要）

[State 195, パワーが溜まる];(闘婚風味)
type = PowerAdd
trigger1 = Time = 44
value = 300

[State 1300, Effect];
 type = Explod
 trigger1 = animelem = 2
 anim = 10450
 scale = 0.4,0.4
 postype = p1
 pos = 0,-50
 supermovetime = 100
 pausemovetime = 100
sprpriority = 10
 ownpal = 1
 bindtime = -1
 removeongethit = 1

[State 700, 効果音]
type = PlaySnd
trigger1 = Time = 8
value = S18000, 4

[state ***];弾丸追加
type = VarAdd
trigger1 = time = 0
trigger1 = var(56)=0
var(57) = 1
ignorehitpause = 1

[State 195, コントロールセット]
type = CtrlSet
trigger1 = Time = 48
value = 1

[State 195, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

[Statedef 196]
type     = S
movetype = I
physics  = S
anim     = 173
velset   = 0,0
ctrl     = 0
sprpriority = 2 ;ここで表示優先度を決定できます。　範囲は-5～5、大きいほど手前に表示される
facep2 = 1      ;相手の方を向いてから（結構重要）

[state ***];一撃ゲージ追加
type = null;VarAdd
trigger1 = time = 0
var(58) = 500
ignorehitpause = 1

[State 195, パワーが溜まる];(闘婚風味)
type = PowerAdd
trigger1 = animelem = 7
value = 250

[State 195, コントロールセット]
type = CtrlSet
trigger1 = Time = 48
value = 1

[State 195, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1


[Statedef 197]
type     = S
movetype = I
physics  = S
anim     = 174
velset   = 0,0
ctrl     = 0
sprpriority = 2 ;ここで表示優先度を決定できます。　範囲は-5～5、大きいほど手前に表示される
facep2 = 1      ;相手の方を向いてから（結構重要）

[State アニメ周回]
type = ChangeAnim
triggerall= command = "holdstart"
trigger1 = animelem = 11
value = 174
elem = 7

[State 195, パワーが溜まる];(闘婚風味)
type = PowerAdd
trigger1 = animelem = 10
value = 120

[State 3010, Effect];　エフェクトを出す
type = Explod
trigger1 = animelem = 10
anim = 6000
scale = 1.5,1.5
postype = p1
pos = 0,-50
sprpriority = -2
supermovetime = 999
ownpal = 1 ;独自のパレット
bindtime = -1
removetime = -2

[State 3010, Effect];　エフェクトを出す
type = Explod
trigger1 = animelem = 10
anim = 6023
scale = 0.5,0.5
postype = p1
pos = 0,-0
sprpriority = -2
supermovetime = 999
ownpal = 1 ;独自のパレット
bindtime = -1
removetime = -2
[State 3010, Effect];　エフェクトを出す
type = Explod
trigger1 = animelem = 10
anim = 6023
facing = -1
scale = 0.5,0.5
postype = p1
pos = 0,-0
sprpriority = -2
supermovetime = 999
ownpal = 1 ;独自のパレット
bindtime = -1
removetime = -2

[State 195, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
