; キャラクター『夢月』のコマンドファイルです。うぐ〜。
; コマンドに関する設定は４部構成になっています。
;==============================================================================
; Win版専用パート
;==============================================================================
;------------------------------------------------------------------------------
; ここはWin版から（正確にはLinux版から）追加された要素の二つ。
; コマンド関連の初期設定を任意に指定出来るようになった(`・ω・´)
;
;『ボタンリマップ』はボタン配置変更用の項目。
; 定義パートでいちいち変更しなくても良いようになっちゃった。
; 面倒臭い人用かな！（ﾏﾃｺﾗ
;
;『デフォルト設定』では各[Command]で省略した場合の
; 入力受付時間と入力記憶時間を予め決めておく項目。
;
;
; この２項目は省略可能。
;------------------------------------------------------------------------------
;-| ボタンリマップ（ボタンコンフィグ）|---------------------------------------- 第１部

[Remap]
x = x      ;Ｘボタンの入力判定を実際に押すボタンに割り当てる。
y = y      ;Ｙボタン　　　　　　　　　〃
z = z      ;Ｚボタン　　　　　　　　　〃
a = a      ;Ａボタン　　　　　　　　　〃
b = b      ;Ｂボタン　　　　　　　　　〃
c = c      ;Ｃボタン　　　　　　　　　〃
s = s      ;スタートボタン　　　　　　〃

;------------------------------------------------------------------------------
; 例えば「本来Ｘボタンで出す弱パンチをＢボタンに変えたい場合」なら、
;
; x = b
;
; で簡単に出来る。使わないボタンを使っているボタンに割り当てる事も可能。
;------------------------------------------------------------------------------
;-| デフォルト設定 |----------------------------------------------------------- 第２部

[Defaults]
command.time = 15  ;標準のコマンド入力受付時間。
                   ;各コマンドで省略している場合に有効。
                   ;このパラメータを消した場合、デフォルトは１フレームになる。
                   ;（　M.U.G.E.Nでの１フレーム　＝　１／６０秒　）

command.buffer.time = 1  ;標準のコマンド入力記憶時間。
                         ;入力した直後にコマンドを記憶し、
                         ;指を離してもコマンドが成功している状態を
                         ;ここで設定した時間の分維持する。
                         ;１〜３０フレームまでの間で設定可能。
                         ;デフォルトは１フレーム。

;============================================================================== 第３部
; コマンド定義パート（入力キーを設定する）
;==============================================================================
;------------------------------------------------------------------------------
; ここがキーとボタンの組み合わせで格闘ゲームにおける
;『入力コマンド』を直接設定・編集するパート。
;
; 一つずつコマンドに名前を付けて入力キーを組み合わせる単純な作業になるけど、
; 組み合わせが独特だから覚えるのは難易度が少し高い。
;
; 下記で「書式の決まり」と「組み合わせに必要なアルファベットと記号」を
; 全て説明しましょう。
;------------------------------------------------------------------------------
;■書式の決まり■
;
; [Command]         ：入力コマンドを１個定義する。
; name = "***"      ：コマンド名を決める。大文字と小文字も区別される。
; command = ###     ：実際に入力するキーを組み合わせる。詳細は後述。
; time = &&&        ：入力受付時間を設定（オプション）。
; buffer.time = @@@ ：入力記憶時間を設定（オプション）。
;
; 小ネタでも説明している通り、登録が可能な数は最大『１２８個』まで。
;
;
;※『必須コマンド名』と書いてるコマンドは、システム側で処理してます。
;　コマンド名を変えたり、消してはいけません。キーの変更は出来ます。
;------------------------------------------------------------------------------
;■必要なアルファベットと記号■
;
; 上記の「command = ###」の『###』に該当する部分で、
; 組み合わせるキーとボタンを設定しなければならない。
;
; ※設定したキーやボタンはM.U.G.E.Nのオプションモードにある
;  「キーコンフィグ」にて設定したキーなどに対応しています。
;
; ★方向キー★（全て必ず大文字で）
;
; 　B 　：「後方」にキーを入れる（ Backward ）
; 　D 　：「下方」にキーを入れる（ Downward ）
; 　F 　：「前方」にキーを入れる（ Forward ）
; 　U 　：「上方」にキーを入れる（ Upward ）
;
; 　DB　：「後ろ斜め下」にキーを入れる（「D」と「B」が同時に入力された事を認識）
; 　UB　：「後ろ斜め上」にキーを入れる（「U」と「B」が同時に入力された事を認識）
; 　DF　：「前斜め下」にキーを入れる（「D」と「F」が同時に入力された事を認識）
; 　UF　：「前斜め上」にキーを入れる（「U」と「F」が同時に入力された事を認識）
;
; ★ボタン★（全て必ず小文字で）
;
; 　a 　：「Ａボタン」を押す
; 　b 　：「Ｂボタン」を押す
; 　c 　：「Ｃボタン」を押す
; 　x 　：「Ｘボタン」を押す
; 　y 　：「Ｙボタン」を押す
; 　z 　：「Ｚボタン」を押す
; 　s 　：「スタートボタン」を押す
;
; ★記号★（入力効果を変化させる命令）
;
; 　/ 　：（スラッシュ）キーやボタンを「押しっぱなし」にしている事を認識する場合に追加する
;
; 　　（例）：　/b       = Ｂボタンを押したままにする
; 　　　　　　　/F       = 前キーを押したままにする
; 　　　　　　　/U,z     = 上キーを押したままＺボタンを入力する
;
;　　━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
;
; 　~ 　：（チルダ）キーやボタンが「離された時」を認識する場合に追加する
;
; 　　（例）：　~x       = Ｘボタンを離す
; 　　　　　　　~DF      =「前斜め下」のキーを離す
; 　　　　　　　~DB,F,c  =「後ろ斜め下」を離した後に前キー・Ｃボタンの順番に入力する
;
; 　　　　　　※「ボタンを離すまでの時間（溜め時間）」も設定する事が出来る
;
; 　　　　　　　~30x     = Ｘボタンを押したままにして、３０フレーム以上経ったら離す
; 　　　　　　　~50B,F,a = 後ろキーを５０フレームまで溜めて前キー・Ａボタンの順番に入力する
;
;　　━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
;
; 　$ 　：（ドル）方向キーの「複数の内どれかが入力されている事」を認識する場合に追加する
;
; 　　（例）：　$B       =「後方」「後ろ斜め下」「後ろ斜め上」のどれかが入力されている状態
; 　　　　　　　$UF      =「前」「上」「前斜め上」のどれかが入力されている状態
;
; 　　　　　　※この記号は「方向キー」でしか使えません。
;
;　　━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
;
; 　+ 　：（プラス）ボタンを「同時押し」している事を認識する場合に追加する
;
; 　　（例）：　x+y      = ＸボタンとＹボタンを同時押しする
; 　　　　　　　a+b+c    = ＡボタンとＢボタンとＣボタンを同時押しする
;
; 　　　　　　※この記号は「ボタン」でしか使えません。
;
;　　━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
;
; 　> 　：（グレーターザン）大なり（Win版で追加された記号）
; 　　　　　　　　　　　　「他のキーが入力されていない事を確認して、そのキーを押す」場合
;
; 　　（例）：　a,>~a    = Ａボタン以外が入力されていない状態でＡボタンを離す
; 　　　　　　　F,>~F,>F = 前キー以外が入力されていない状態で前キーを離し、
;　　　　　　　　　　　　　もう一度前キーを入力する
;
;-------------------------------------------------------------------------------
; ●これらの記号は全て組み合わせて使う事が出来る●
;
; 　　（例）：　~80$DB,DF,F,/a+y+c
; 　　　　　　　
; 　　　　　　「後方」「下」「後ろ斜め下」のどれかを８０フレームまで溜めて
; 　　　　　　「前斜め下」→「前」を入力した後、ＡとＹとＣを同時押ししたままにする
;

--| AI |--------------------------------------------------------
[Command]
name = "AI0"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI1"
command = b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b
time = 0
[Command]
name = "AI2"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI3"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI4"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI5"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI6"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI7"
command = F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
time = 0
[Command]
name = "AI8"
command = D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D
time = 0
[Command]
name = "AI9"
command = B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B
time = 0
[Command]
name = "AI10"
command = U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U
time = 0
[Command]
name = "AI11"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI12"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI13"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI14"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI15"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI16"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI17"
command = a,B,c,x,y,z,s,B,D,F,U,a,b,c,x,y,z,s,s
time = 0
[Command]
name = "AI18"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI19"
command = b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b
time = 0
[Command]
name = "AI20"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI21"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI22"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI23"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI24"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI25"
command = F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
time = 0
[Command]
name = "AI26"
command = D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D
time = 0
[Command]
name = "AI27"
command = B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B
time = 0
[Command]
name = "AI28"
command = U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U
time = 0
[Command]
name = "AI29"
command = a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a
time = 0
[Command]
name = "AI30"
command = c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c
time = 0
[Command]
name = "AI31"
command = x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
time = 0
[Command]
name = "AI32"
command = y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
time = 0
[Command]
name = "AI33"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI34"
command = s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s
time = 0
[Command]
name = "AI35"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI36"
command = z,z,z,z,z,z,a,a,a,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI37"
command = z,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,z,z,z
time = 0
[Command]
name = "AI38"
command = z,z,z,z,z,a,a,a,z,z,z,z,z,a,a,a,z,z,z
time = 0
[Command]
name = "AI39"
command = z,z,z,z,z,a,a,a,z,z,z,z,z,z,a,a,z,z,z
time = 0
[Command]
name = "AI40"
command = z,z,z,z,a,a,a,z,z,z,z,a,z,z,a,a,z,z,z
time = 0
[Command]
name = "AI41"
command = z,z,z,a,z,z,z,z,z,z,z,z,z,a,a,z,z,z,z
time = 0
[Command]
name = "AI42"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI43"
command = z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,a,a,z
time = 0
[Command]
name = "AI44"
command = z,z,a,a,a,a,z,z,z,z,z,z,z,z,z,a,a,a,z
time = 0
[Command]
name = "AI45"
command = z,z,z,z,z,z,a,a,z,z,z,z,z,a,a,a,a,z,z
time = 0
[Command]
name = "AI46"
command = z,z,z,z,z,z,z,z,a,a,a,a,a,a,z,z,z,z,z
time = 0
[Command]
name = "AI47"
command = z,z,z,a,a,a,a,z,z,z,z,z,z,z,z,z,z,z,z
time = 0
[Command]
name = "AI48"
command = z,z,z,z,z,a,a,a,z,z,z,a,a,a,z,z,a,z,a
time = 0
[Command]
name = "AI49"
command = z,z,z,z,a,a,a,z,z,z,z,z,a,a,a,z,z,z,z
time = 0
[Command]
name = "AI50"
command = z,z,z,a,a,z,z,z,z,z,z,z,z,z,a,a,z,z,z
time = 0

;------------------------------------------------------------------------------
;-| 超必殺技 |-----------------------------------------------------------------

;※名前が同じならば、違うコマンドでも同じステートの技を出す事が可能。

[Command]
name = "TripleKFPalm"
command = ~D, DF, F, D, DF, F, x
time = 20

[Command]
name = "TripleKFPalm"
command = ~D, DF, F, D, DF, F, y
time = 20

[Command]
name = "super1"
command = ~B, DB, D, DF, F, c
time = 20

[Command]
name = "super2"
command = ~F, DF, D, DB, B, c
time = 20

[Command]
name = "SmashKFUpper"
command = ~D, DB, B, D, DB, B, y;~F, D, DF, F, D, DF, y
time = 20

;------------------------------------------------------------------------------
;-| 必殺技 |-------------------------------------------------------------------

[Command]
name = "upper_x"
command = ~F, D, DF, x

[Command]
name = "upper_y"
command = ~F, D, DF, y

[Command]
name = "upper_xy"
command = ~F, D, DF, x+y

[Command]
name = "QCF_x"
command = ~D, DF, F, x

[Command]
name = "QCF_y"
command = ~D, DF, F, y

[Command]
name = "QCF_xy"
command = ~D, DF, F, x+y

[Command]
name = "QCB_x"
command = ~D, DB, B, x

[Command]
name = "QCB_y"
command = ~D, DB, B, y

[Command]
name = "QCB_xy"
command = ~D, DB, B, x+y

[Command]
name = "QCB_a"
command = ~D, DB, B, a

[Command]
name = "QCB_b"
command = ~D, DB, B, b

[Command]
name = "FF_ab"
command = F, F, a+b

[Command]
name = "Fz"
command = F, z

[Command]
name = "Bz"
command = B, z

;---------------------------
;(「板投げ」用にコマンドを追加してます)
[Command]
name = "boart"
command = ~D, DF, F, a

[Command]
name = "board"
command = ~D, DF, F, b

;------------------------------------------------------------------------------
;-| キー２回連続入力 |---------------------------------------------------------

[Command]
name = "FF"       ;必須コマンド名
command = F, F
time = 10

[Command]
name = "BB"       ;必須コマンド名
command = B, B
time = 10

;------------------------------------------------------------------------------
;-| 同時押し |-----------------------------------------------------------------

[Command]
name = "recovery" ;必須コマンド名
command = x+y
time = 1

;------------------------------------------------------------------------------
;-| 方向キー＋ボタン |---------------------------------------------------------

[Command]
name = "down_a"
command = /$D,a
time = 1

[Command]
name = "down_b"
command = /$D,b
time = 1

;------------------------------------------------------------------------------
;-| ボタン単発 |---------------------------------------------------------------

[Command]
name = "a"
command = a
time = 1

[Command]
name = "b"
command = b
time = 1

[Command]
name = "c"
command = c
time = 1

[Command]
name = "x"
command = x
time = 1

[Command]
name = "y"
command = y
time = 1

[Command]
name = "z"
command = z
time = 1

[Command]
name = "start"
command = s
time = 1

;---------------------------
;(「パワー溜め」用にコマンドを追加してます)
[Command]
name = "hold_c"
command = /c

;------------------------------------------------------------------------------
;-| 方向キー |-----------------------------------------------------------------

[Command]
name = "holdfwd"   ;必須コマンド名
command = /$F
time = 1

[Command]
name = "holdback"  ;必須コマンド名
command = /$B
time = 1

[Command]
name = "holdup"    ;必須コマンド名
command = /$U
time = 1

[Command]
name = "holddown"  ;必須コマンド名
command = /$D
time = 1

[command]
name = "fwd"
command = F
time = 1

[command]
name = "back"
command = B
time = 1

[command]
name = "up"
command = U
time = 1

[command]
name = "down"
command = D
time = 1

[Statedef 10000]
anim=10000;なにも表示しないｱﾆﾒでもいいけど入れなくても全然問題ない
ctrl=0

[State 10000,間違いで本体が来たら立ちへ移行]
type=selfstate
trigger1=!ishelper
value=0

[State 10000,プレイヤー判定]
type=varset
trigger1=command="up"&&root,command="up"
trigger2=command="down"&&root,command="down"
trigger3=command="back"&&root,command="back"
trigger4=command="fwd"&&root,command="fwd"
trigger5=command="a"&&root,command="a"
trigger6=command="b"&&root,command="b"
trigger7=command="c"&&root,command="c"
trigger8=command="x"&&root,command="x"
trigger9=command="y"&&root,command="y"
trigger10=command="z"&&root,command="z"
trigger11=command="start"&&root,command="start"
var(59)=-1

[State 10000,立ったら消失]
Type = DestroySelf
triggerAll = isHelper
trigger1 = root,var(59)||var(59)=-1
trigger2=command="up"&&root,command="up"
trigger3=command="down"&&root,command="down"
trigger4=command="back"&&root,command="back"
trigger5=command="fwd"&&root,command="fwd"
trigger6=command="a"&&root,command="a"
trigger7=command="b"&&root,command="b"
trigger8=command="c"&&root,command="c"
trigger9=command="x"&&root,command="x"
trigger10=command="y"&&root,command="y"
trigger11=command="z"&&root,command="z"
trigger12=command="start"&&root,command="start"

[State 10000,ﾌﾗｸﾞON]
type=varset
triggerall=var(59)!=-1
trigger1=root,command="up"
trigger2=root,command="down"
trigger3=root,command="back"
trigger4=root,command="fwd"
trigger5=root,command="a"
trigger6=root,command="b"
trigger7=root,command="c"
trigger8=root,command="x"
trigger9=root,command="y"
trigger10=root,command="z"
trigger11=root,command="start"
var(59)=1

;============================================================================== 第４部
; ステートエントリーパート（技などを出せるようにするための条件を設定）
;==============================================================================
;------------------------------------------------------------------------------
; コマンド名と入力するコマンドを設定しただけじゃ意味が無いので、ここから
;「実際に入力したコマンドでどの番号のステートをどういう条件で出せるか」
; を決めなければならない。
;
; ステートコントローラ「ChangeState」しか使わないけど、
; そんなに難しくないのでトリガーを覚えてたらすぐ出来る。
;
; ここさえ押さえておけば簡単なトリガー設定の流れは覚えられるかと。
;
; エントリーの順番にはある程度の法則があるけど、
; おまけフォルダの「小ネタ.txt」を参照。（波動拳が暴発ﾅﾝﾀﾗｶﾝﾀﾗ）
;
; ChangeStateなどステートコントローラの基本的な設置例は
; おまけフォルダの「テンプレート.txt」を参照。
;------------------------------------------------------------------------------
; ■準常時監視ステート（−１）■
; コマンドファイル（のステートエントリーパート）に必要な項目です。
; 絶対に消してはいけないので要注意。
;
; 通常の食らい状態以外の「P2StateNo」や「TargetState」等で制御された、
; 作成者が任意に指定した相手側の食らいステートに限り、
; 登録したステートコントローラが有効にはなりません。
;------------------------------------------------------------------------------

[Statedef -1] ;←この行は絶対に消さないでね。必須項目です。

[State -1, AI起動用ヘルパー]
type=helper
trigger1 = !NumHelper(10000)
trigger1 = roundstate=2
trigger1 = alive
trigger1 = var(59)=0
trigger1 = (PrevStateNo=[190,194]) || PrevStateNo = 5900
trigger1 = ctrl&&stateno=0
helpertype=normal
name = "AI"
stateno = 10000
ID = 10000
pos = 9999,9999
keyctrl = 1
pausemovetime = 2147483647
supermovetime = 2147483647
persistent = 0

;念のため↓も付けておく
[State -1, 関係無いステートに行かないように]
type = changestate
trigger1 = ishelper(10000)
trigger1 = stateno != 10000
value = 10000

;---------------------------------------------------------------------------
[State -1, AI]
type = VarSet
triggerall = !var(59) 
triggerall = RoundState = [1,2]
trigger1 = Command = "AI0"
trigger2 = Command = "AI1"
trigger3 = Command = "AI2"
trigger4 = Command = "AI3"
trigger5 = Command = "AI4"
trigger6 = Command = "AI5"
trigger7 = Command = "AI6"
trigger8 = Command = "AI7"
trigger9 = Command = "AI8"
trigger10 = Command = "AI9"
trigger11 = Command = "AI10"
trigger12 = Command = "AI11"
trigger13 = Command = "AI12"
trigger14 = Command = "AI13"
trigger15 = Command = "AI14"
trigger16 = Command = "AI15"
trigger17 = Command = "AI16"
trigger18 = Command = "AI17"
trigger19 = Command = "AI18"
trigger20 = Command = "AI19"
trigger21 = Command = "AI20"
trigger22 = Command = "AI21"
trigger23 = Command = "AI22"
trigger24 = Command = "AI23"
trigger25 = Command = "AI24"
trigger26 = Command = "AI25"
trigger27 = Command = "AI26"
trigger28 = Command = "AI27"
trigger29 = Command = "AI28"
trigger30 = Command = "AI29"
trigger31 = Command = "AI30"
trigger32 = Command = "AI31"
trigger33 = Command = "AI32"
trigger34 = Command = "AI33"
trigger35 = Command = "AI34"
trigger36 = Command = "AI35"
trigger37 = Command = "AI36"
trigger38 = Command = "AI37"
trigger39 = Command = "AI38"
trigger40 = Command = "AI39"
trigger41 = Command = "AI40"
trigger42 = Command = "AI41"
trigger43 = Command = "AI42"
trigger44 = Command = "AI43"
trigger45 = Command = "AI44"
trigger46 = Command = "AI45"
trigger47 = Command = "AI46"
trigger48 = Command = "AI47"
trigger49 = Command = "AI48"
trigger50 = Command = "AI49"
trigger51 = Command = "AI50"
trigger52 = NumHelper(10000)
trigger52 = Helper(10000),var(59)
;trigger53 = 1 ;AI常時起動 OFFにする場合は左端に;をつけてください
var(59) = 5 ;レベル変更可能 (弱 １〜５ 強)

[State -1]
Type = VarSet
triggerall = var(59)
triggerall = RoundState = 2
trigger1 = NumEnemy = 1
trigger2 = NumEnemy = 2
trigger2 = EnemyNear(0),life > 0
var(58) = 0
IgnoreHitPause = 1

[State -1]
Type = VarSet
triggerall = var(59)
triggerall = RoundState = 2
trigger1 = NumEnemy = 2
trigger1 = EnemyNear(0),life <= 0
var(58) = 1
IgnoreHitPause = 1

;投げステート
;---------------------------------------------------------------------------
;投げ
[State -1]
type = ChangeState
value = 800
triggerall = var(59)
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = P2BodyDist X < 25
trigger1 = ctrl
trigger1 = random <= var(59)*140
trigger1 = P2BodyDist X = [-5,10]
trigger1 = EnemyNear(var(58)),Statetype != A
trigger1 = EnemyNear(var(58)),MoveType != H
trigger1 = (PrevStateNo = [5000,5270])
trigger2 = ctrl
trigger2 = random <= var(59)*140
trigger2 = P2BodyDist X = [-5,10]
trigger2 = EnemyNear(var(58)),Statetype != A
trigger2 = EnemyNear(var(58)),StateNo = [120,155]

;対空ステート
;---------------------------------------------------------------------------
;対空用ハイパーデーモンネイル
[State -1]
type = ChangeState
value = 3050
triggerall = var(59) = 5
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = power >= 1000
trigger1 = ctrl || stateno = 11
trigger1 = EnemyNear(var(58)),StateType = A
trigger1 = P2bodydist X = [-5,50]
trigger1 = P2bodydist Y = [-80,-20]
trigger1 = random<=var(59)*200
trigger1 = EnemyNear(var(58)),Vel X >= 0
trigger1 = EnemyNear(var(58)),Vel Y >= 0 || (EnemyNear(var(58)),time > 9 && var(59) = 5)

;対空用弱クレセントサマー
[State -1]
type = ChangeState
value = 1050
triggerall = var(59) > 4
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = ctrl || stateno = 11
trigger1 = EnemyNear(var(58)),StateType = A
trigger1 = P2bodydist X = [-5,50]
trigger1 = P2bodydist Y = [-80,-20]
trigger1 = random<=var(59)*170
trigger1 = EnemyNear(var(58)),Vel X >= 0
trigger1 = EnemyNear(var(58)),Vel Y >= 0 || (EnemyNear(var(58)),time > 9 && var(59) = 5)

;ガードステート
;---------------------------------------------------------------------------
[State -1,ガード]
Type = ChangeState
Value = 120
triggerall = var(59) && RoundState = 2
triggerall = StateNo!=[120,155]
triggerall = Ctrl || (stateno = 100)
triggerall = inguarddist
trigger1 = random<=var(59)*175
trigger2 = P2BodyDist X>90||EnemyNear(var(50)),Time>50
trigger2 = Random<=var(59)*200
trigger3 = P2BodyDist X = [-5,90]
trigger3 = PrevStateNo = [5000,5270]
trigger3 = random <= var(59)*200

;当て身ステート
;---------------------------------------------------------------------------
;ライトニングナイトメア
[State -1]
type = ChangeState
value = 3000
triggerall = var(59) = 5
triggerall = var(20) = 1
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = ctrl
triggerall = EnemyNear(var(58)),Alive
triggerall = Alive
triggerall = Enemynear(var(58)),facing != facing
triggerall = !isHelper
triggerall = EnemyNear(var(58)),Numproj = 0
triggerall = P2statetype != L
triggerall = P2movetype != H
triggerall = Statetype != L
triggerall = P2dist x >= 0
triggerall = power >= 1000
trigger1 = ctrl
trigger1 = p2bodydist X <= ceil(45 * const(size.xscale))

;技ステート
;---------------------------------------------------------------------------
;デモンネイル
[State -1]
type = ChangeState
value = 1000
triggerall = var(59) = [4,5]
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = stateno = 241
trigger1 = movehit
trigger1 = random <= var(59)*180

;強クレセントサマー
[State -1]
type = ChangeState
value = 1060
triggerall = var(59) = [1,3]
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = stateno = 231
trigger1 = movehit
trigger1 = random <= var(59)*180

;弱サイレントスパーク
[State -1]
type = ChangeState
value = 1200
triggerall = var(59) > 3
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = stateno = 242
trigger1 = moveguarded
trigger1 = random <= var(59)*180
trigger2 = var(59) = [4,5]
trigger2 = stateno = 241
trigger2 = moveguarded
trigger2 = random <= var(59)*180

;基本技ステート(通常時)
;---------------------------------------------------------------------------
;立ち一段目(パンチ派生)
[State -1]
type = ChangeState
value = 240
triggerall = var(59) = [4,5]
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = ctrl || stateno = 11
trigger1 = random <= var(59)*120
trigger1 = P2BodyDist X = [-5,30]
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;立ち二段目
[State -1]
type = ChangeState
value = 241
triggerall = var(59) = [4,5]
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = P2BodyDist X <= 40
trigger1 = stateno = 240
trigger1 = movecontact
trigger1 = random <= var(59)*200

;立ち一段目(キック派生)
[State -1]
type = ChangeState
value = 230
triggerall = var(59) = [1,3]
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = ctrl || stateno = 11
trigger1 = random <= var(59)*130
trigger1 = P2BodyDist X = [-5,15]
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;立ち二段目(キック)
[State -1]
type = ChangeState
value = 231
triggerall = var(59) = [1,3]
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = P2BodyDist X <= 25
trigger1 = stateno = 230
trigger1 = movecontact
trigger1 = random <= var(59)*150

;立ち回りステート
;---------------------------------------------------------------------------
;ダッシュ
[State -1]
type = changestate
value = 100
triggerall = var(59) > 1
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = ctrl
trigger1 = !inguarddist
trigger1 = random <= var(59)*160
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),MoveType != A
trigger1 = p2bodydist X >= 120

;バックステップ
[State -1]
type = ChangeState
value = 105
triggerall = var(59)
triggerall = RoundState = 2
triggerall = statetype != A
trigger1 = ctrl
trigger1 = random <= var(59)*100
trigger1 = EnemyNear(var(58)),StateType = L
trigger1 = p2bodydist X = [-5,80]
trigger1 = BackEdgeBodyDist > 40

;牽制ステート
;---------------------------------------------------------------------------
;発狂
[State -1]
type = ChangeState
value = 195
triggerall = var(59) > 4
triggerall = var(20) = 0
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = !NumProj
triggerall = power >= 1000
trigger1 = ctrl
trigger1 = !inguarddist
trigger1 = PrevStateNo != 195
trigger1 = random <= var(59)*180
trigger1 = p2bodydist X >= 70 
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;弱サイレントスパーク
[State -1]
type = ChangeState
value = 1200
triggerall = var(59)
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = !NumProj
trigger1 = ctrl
trigger1 = !inguarddist
trigger1 = PrevStateNo != 1200
trigger1 = random <= var(59)*140
trigger1 = P2BodyDist X >= 140
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;エリーさん
[State -1]
type = ChangeState
value = 900
triggerall = var(59)
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = !NumProj
triggerall = Numhelper(901) = 0
triggerall = power >= 200
trigger1 = ctrl
trigger1 = !inguarddist
trigger1 = PrevStateNo != 900
trigger1 = random <= var(59)*140
trigger1 = P2BodyDist X >= 140
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;強サイレントスパーク
[State -1]
type = ChangeState
value = 1210
triggerall = var(59)
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = !NumProj
trigger1 = ctrl
trigger1 = !inguarddist
trigger1 = PrevStateNo != 1210
trigger1 = random <= var(59)*120
trigger1 = P2BodyDist X >= 140
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;しゃがみ射撃
[State -1]
type = ChangeState
value = 440
triggerall = var(59)
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = !NumProj
trigger1 = ctrl
trigger1 = !inguarddist
trigger1 = PrevStateNo != 440
trigger1 = random <= var(59)*40
trigger1 = P2BodyDist X >= 200
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;立ち射撃
[State -1]
type = ChangeState
value = 200
triggerall = var(59)
triggerall = RoundState = 2
triggerall = statetype != A
triggerall = !NumProj
trigger1 = ctrl
trigger1 = !inguarddist
trigger1 = PrevStateNo != 200
trigger1 = random <= var(59)*40
trigger1 = P2BodyDist X >= 200
trigger1 = EnemyNear(var(58)),StateType != L
trigger1 = EnemyNear(var(58)),StateType != A

;空中移動＆立ち回りステート
;---------------------------------------------------------------------------
[State -1,ｼﾞｬﾝﾌﾟ]
Type     = ChangeState
Value    = 40
triggerall = var(59) && RoundState = 2
triggerall = StateType != A
triggerall = EnemyNear(var(58)),MoveType != H
trigger1 = ctrl || stateno = 11
trigger1 = !inguarddist
trigger1 = PrevStateNo != 5120
trigger1 = (EnemyNear(var(58)),StateType != L) && (EnemyNear(var(58)),StateType != A)
trigger1 = random <= var(59)*70
trigger1 = p2bodydist X = [100,140] 
trigger1 = EnemyNear(var(58)),StateNo != [120,159]
trigger2 = var(59) != 5
trigger2 = ctrl || stateno = 11
trigger2 = !inguarddist
trigger2 = random <= var(59)*100
trigger2 = p2statetype = L && BackEdgeBodyDist > 20
trigger2 = p2bodydist X = [-5,30]
trigger3 = ctrl || stateno = 11
trigger3 = EnemyNear(var(58)),HitDefAttr=SCA,AT
trigger3 = random <= var(59)*160
trigger3 = EnemyNear(var(58)),Time>=30||(!Time&&var(59)>3) || var(59)>4
trigger3 = EnemyNear(var(58)),Time>=50 || (PrevStateNo=[5000,5270]) || (PrevStateNo=[120,159])

;==============================================================================
; 超必殺技
;==============================================================================
;------------------------------------------------------------------------------

[State -1, ライトニングナイトメア];ゲージレベル１
type = ChangeState
value = 3000
triggerall = !var(59)
triggerall = command = "super1"  ;「SmashKFUpper」の名前のコマンドが入力されたら
triggerall = power >= 1000             ;パワーゲージがレベル１以上溜まっている時（※）
triggerall = statetype != A            ;「空中」ではない時
triggerall = Var(0)=10000
trigger1 = ctrl                        ;コントロールが可能な場合
trigger2 = hitdefattr = SC, NA, SA, HA ;自分の「HitDefの一部の攻撃属性」が出ている時（テンプレート参照）
trigger2 = stateno != [3000,3050)      ;現在のステートが「3050以上、3100未満」の間のどれかな場合
trigger2 = movecontact                 ;攻撃が相手に触れている時（ヒット・ガード両方）
trigger3 = (StateNo = 1300) && (Time = [12,38]) ;ちょっとこ丸が追加

;------------------------------------------------------------------------------
[State -1, ハイパーデモンネイル];ゲージレベル１
type = ChangeState
value = 3050
triggerall = !var(59)
triggerall = command = "super2"  ;「SmashKFUpper」の名前のコマンドが入力されたら
triggerall = power >= 1000             ;パワーゲージがレベル１以上溜まっている時（※）
triggerall = statetype != A            ;「空中」ではない時
trigger1 = ctrl                        ;コントロールが可能な場合
trigger2 = hitdefattr = SC, NA, SA, HA ;自分の「HitDefの一部の攻撃属性」が出ている時（テンプレート参照）
trigger2 = stateno != [3050,3100)      ;現在のステートが「3050以上、3100未満」の間のどれかな場合
trigger2 = movecontact                 ;攻撃が相手に触れている時（ヒット・ガード両方）
trigger3 = (StateNo = 1300) && (Time = [12,38]) ;ちょっとこ丸が追加

;------------------------------------------------------------------------------
; ここで↑にて実際に使っている「スマッシュカンフーアッパーのChangeState」を例に
; 見て行きましょ！m9っ｀Д´)
;
; まず特定のコマンドを入力したいならば、
; 必ず『呼び出すコマンドのトリガー』は設定しましょう。
; 特殊な条件でない限り、コマンドは通常「triggerall」の方で設定した方が良い。
;
;「triggerall」とは『有効になる状況を限定するための条件』を指定する。
; triggerallの条件が有効にならない限り、trigger1以降の条件も有効にはならない。
; 何個でも増やせる。ステート作成の基本テクニックの一つなので覚えておいてね。
; しかしtriggerallはtrigger1以降が無いと「単体では」使えないので注意。
;（trigger1以降を全てコメント化してM.U.G.E.Nでそのキャラを選んで試してみよう）
;
;
; ※『パワーゲージ』は「スーパーコンボゲージ」や「超必殺技ゲージ」などで
; 　呼ばれてる部分のゲージです。
; 　ゲージが「１０００ポイント」なら『レベル１』と同じ意味になります。
;
; 　まぁパッと見、M.U.G.E.Nのパワーゲージって仕組みが
; 　ストＺＥＲＯシリーズの「スーパーコンボレベルゲージ」まんまだよね（苦笑
;------------------------------------------------------------------------------
;==============================================================================
; 必殺技
;==============================================================================
;------------------------------------------------------------------------------
; 変数の使い方の例。
;
; カンフーマンの「地上で必殺技が出せる状況」や、
; 通常技から必殺技へ繋ぐ時の「キャンセル」の部分を設定している。
; 地上で成功すれば、『変数の例２』のステートコントローラで設定した
; 変数が実行され、それ以外なら『変数の例１』でリセットする、という処理。
;
; 個人的にはこの方法はオススメしない。kfmcでの方法を推薦します。

[State -1, 変数の例１];必殺技の発生条件リセット
type = VarSet
trigger1 = 1
var(1) = 0 ;変数用パラメータの記述方法その１（その２は「板投げ」のステートにて）

[State -1, 変数の例２];必殺技の発生条件をチェック
type = VarSet
trigger1 = statetype != A
trigger1 = ctrl
trigger2 = (stateno = [200,299]) || (stateno = [400,499])
trigger2 = stateno != 440 ;[Statedef 440]（足払いのステート）ではない時
trigger2 = movecontact
var(1) = 1

;------------------------------------------------------------------------------
;------------------------------------------------------------------------------
[State -1, クレセントサマー（弱）]
type = ChangeState
value = 1050
triggerall = !var(59)
triggerall = command = "QCB_a"
trigger1 = var(1)

[State -1, クレセントサマー（強）]
type = ChangeState
value = 1060
triggerall = !var(59)
triggerall = command = "QCB_b"
trigger1 = var(1)

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

[State -1, デモンネイル]
type = ChangeState
value = 1000
triggerall = !var(59)
trigger1 = command = "boart"
trigger1 = var(1)
trigger2 = command = "board"
trigger2 = var(1)

;------------------------------------------------------------------------------
[State -1, 空中スパーク(弱)]
type = ChangeState
value = 1202
triggerall = !var(59)
triggerall = command = "QCB_x"
trigger1 = statetype = A
trigger1 = ctrl

[State -1, 空中スパーク(強)]
type = ChangeState
value = 1212
triggerall = !var(59)
triggerall = command = "QCB_y"
trigger1 = statetype = A
trigger1 = ctrl

[State -1, サイレントスパーク(弱)]
type = ChangeState
value = 1200
triggerall = !var(59)
triggerall = command = "QCB_x"
trigger1 = var(1)

[State -1, サイレントスパーク(強)]
type = ChangeState
value = 1210
triggerall = !var(59)
triggerall = command = "QCB_y"
trigger1 = var(1)

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

[State -1, ストライカー：エリー]
type = ChangeState
value = 900
triggerall = !var(59)
triggerall = command = "QCF_y"
triggerall = command != "holddown"
triggerall =Numhelper(901)=0
triggerall = power >= 200
trigger1 = statetype = S
trigger1 = ctrl

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

[State -1, ストライカー：くるみ]
type = ChangeState
value = 910
triggerall = !var(59)
triggerall = command = "QCF_x"
triggerall = command != "holddown"
triggerall =Numhelper(911)=0
triggerall = power >= 150
trigger1 = statetype = S
trigger1 = ctrl

;==============================================================================
;==============================================================================
; 移動関連
;==============================================================================
;------------------------------------------------------------------------------

[State -1, 走る]
type = ChangeState
value = 100
triggerall = !var(59)
trigger1 = command = "Fz"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = command = "FF"
trigger2 = statetype = S
trigger2 = ctrl

[State -1, バックステップ]
type = ChangeState
value = 105
triggerall = !var(59)
trigger1 = command = "Bz"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = command = "BB"
trigger2 = statetype = S
trigger2 = ctrl

;==============================================================================
; 特殊技
;==============================================================================
;------------------------------------------------------------------------------

[State -1, つかみ投げ];投げ技
type = ChangeState
value = 800
triggerall = !var(59)
triggerall = command = "y"
triggerall = statetype = S
triggerall = ctrl
triggerall = stateno != 100
trigger1 = command = "holdfwd"
trigger1 = p2bodydist X < 3
trigger1 = (p2statetype = S) || (p2statetype = C)
trigger1 = p2movetype != H
trigger2 = command = "holdback"
trigger2 = p2bodydist X < 5
trigger2 = (p2statetype = S) || (p2statetype = C)
trigger2 = p2movetype != H

;------------------------------------------------------------------------------
;==============================================================================
; 通常攻撃技
;==============================================================================
;------------------------------------------------------------------------------

[State -1, 立ち弱パンチ]
type = ChangeState
value = 200
triggerall = !var(59)
triggerall = command = "x"
triggerall = command != "holddown"
triggerall =Numhelper(201)=0
triggerall =Numhelper(202)=0
triggerall =Numhelper(203)=0
triggerall =Numhelper(204)=0
triggerall =Numhelper(205)=0
triggerall =Numhelper(206)=0
triggerall =Numhelper(207)=0
triggerall =Numhelper(208)=0
trigger1 = statetype = S
trigger1 = ctrl

[State -1, 立ち強パンチ]
type = ChangeState
value = 210
triggerall = !var(59)
triggerall = command = "y"
triggerall = command != "holddown"
triggerall =Numhelper(211)=0
trigger1 = statetype = S
trigger1 = ctrl

[State -1, 立ち弱キック]
type = ChangeState
value = 230
triggerall = !var(59)
triggerall = command = "a"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl

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

[State -1]
type = ChangeState
value = 231
triggerall = !var(59)
triggerall = command = "a"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl = 1
trigger2 = stateno = 230
trigger2 = movecontact

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

[State -1, 立ち強キック]
type = ChangeState
value = 240
triggerall = !var(59)
triggerall = command = "b"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = (stateno = 200) && time > 5
trigger3 = (stateno = 230) && time > 6

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

[State -1]
type = ChangeState
value = 241
triggerall = !var(59)
triggerall = command = "b"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl = 1
trigger2 = stateno = 240
trigger2 = movecontact

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

[State -1]
type = ChangeState
value = 242
triggerall = !var(59)
triggerall = command = "b"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl = 1
trigger2 = stateno = 241
trigger2 = movecontact

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

[State -1, 発狂]
type = ChangeState
value = 195
triggerall = !var(59)
triggerall = command = "start"
triggerall = power >= 1000
trigger1 = var(20) = 0
trigger1 = statetype != A
trigger1 = ctrl

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

[State -1, しゃがみ弱パンチ]
type = ChangeState
value = 400
triggerall = !var(59)
triggerall = command = "a"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl

[State -1, しゃがみ強パンチ]
type = ChangeState
value = 410
triggerall = !var(59)
triggerall = command = "b"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl
trigger2 = (stateno = 400) || (stateno = 430)
trigger2 = (time > 9) || (movecontact && time > 5)

[State -1, しゃがみ弱キック]
type = ChangeState
value = 430
triggerall = !var(59)
triggerall = command = "x"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl

[State -1, しゃがみ強キック]
type = ChangeState
value = 440
triggerall = !var(59)
triggerall = command = "y"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl

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

[State -1, ジャンプ弱パンチ]
type = ChangeState
value = 600
triggerall = !var(59)
triggerall = command = "x"
trigger1 = statetype = A
trigger1 = ctrl
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

[State -1, ジャンプ強パンチ]
type = ChangeState
value = 610
triggerall = !var(59)
triggerall = command = "y"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 || stateno = 630
trigger2 = movecontact
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

[State -1, ジャンプ弱キック]
type = ChangeState
value = 630
triggerall = !var(59)
triggerall = command = "a"
trigger1 = statetype = A
trigger1 = ctrl
;trigger2 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

[State -1, ジャンプ強キック]
type = ChangeState
value = 640
triggerall = !var(59)
triggerall = command = "b"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 || stateno = 630
trigger2 = movecontact
;trigger3 = stateno = 1350 ;Win版のカンフーマンには「ブロッキング」が搭載予定だったらしい

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