;-| Super Motions |--------------------------------------------------------

[Command]
name = "QCF_ab"
command = ~D, DF, F, a+b

[Command]
name = "QCB_ab"
command = ~D, DB, B, a+b

;-| Special Motions |------------------------------------------------------

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

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

[Command]
name = "FDF_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

;-| Double Tap |-----------------------------------------------------------

[Command]
name = "FF"
command = F, F
time = 10

[Command]
name = "BB"
command = B, B
time = 10

;-| 2/3 Button Combination |-----------------------------------------------

[Command]
name = "recovery"
command = x+y
time = 1

;-| Single Button |---------------------------------------------------------
[Command]
name = "a"
command = a
time = 1

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

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

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

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

;-| Hold Dir |--------------------------------------------------------------

[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

;---------------------------------------------------------------------------
[Statedef -1]

;dragon
[State -1]
type = ChangeState
value = 400
triggerall = (command = "QCB_ab") && (Power > 2999) && (!Var(2))
trigger1 = statetype != A && ctrl

;dragon fwd
[State -1]
type = ChangeState
value = 404
triggerall = (command = "QCF_ab") && (Power > 2999) && (!Var(2))
trigger1 = statetype != A && ctrl

;---------------------------------------------------------------------------
;warp b
[State -1]
type = ChangeState
value = 331
triggerall = (command = "QCB_b") && (!Pos Y)
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;warp a
[State -1]
type = ChangeState
value = 330
triggerall = (command = "QCB_a") && (!Pos Y)
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;---------------------------------------------------------------------------
;dash c
[State -1]
type = ChangeState
value = 322
triggerall = (command = "FDF_xy") && (!Pos Y) && (Power > 999) && (!Var(2))
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;dash b
[State -1]
type = ChangeState
value = 321
triggerall = (command = "FDF_y") && (!Pos Y)
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;dash a
[State -1]
type = ChangeState
value = 320
triggerall = (command = "FDF_x") && (!Pos Y)
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;---------------------------------------------------------------------------
;punch c
[State -1]
type = ChangeState
value = 312
triggerall = (command = "QCF_xy") && (Power > 999) && (!Pos Y) && (!Var(2))
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;punch b
[State -1]
type = ChangeState
value = 311
triggerall = (command = "QCF_y") && (!Pos Y)
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;punch b air
[State -1]
type = ChangeState
value = 314
trigger1 = (command = "QCF_y") && (Pos Y) && ((ctrl) || (stateno = [210, 213]) && (movecontact))

;punch a
[State -1]
type = ChangeState
value = 310
trigger1 = (command = "QCF_x") && ((ctrl) || (stateno = [200, 213]) && (movecontact)) || (command = "QCF_y") && (Pos Y) && ((ctrl) || (stateno = [210, 213]) && (movecontact))

;---------------------------------------------------------------------------
;sword c
[State -1]
type = ChangeState
value = 302
triggerall = (command = "QCB_xy") && (!Pos Y) && (Power > 999) && (!Var(2))
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;sword b
[State -1]
type = ChangeState
value = 301
triggerall = (command = "QCB_y") && (!Pos Y)
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;sword a
[State -1]
type = ChangeState
value = 300
triggerall = (command = "QCB_x") && (!Pos Y)
trigger1 = (ctrl) || (stateno = [200, 207]) && (movecontact)

;---------------------------------------------------------------------------
;throw
[State -1]
type = ChangeState
value = 290
trigger1 = (statetype = S) && (ctrl) && (command = "recovery")

;---------------------------------------------------------------------------
;Jump_B
[State -1]
type = ChangeState
value = 213
triggerall = command = "b" && statetype = A
trigger1 = (ctrl) || (MoveContact) && (Var(2))
trigger2 = (stateno = [210, 212]) && (movecontact)

;Jump_Y
[State -1]
type = ChangeState
value = 212
triggerall = command = "y" && statetype = A
trigger1 = (ctrl) || (MoveContact) && (Var(2))
trigger2 = (stateno = [210, 211]) && (movecontact)

;Jump_A
[State -1]
type = ChangeState
value = 211
triggerall = command = "a" && statetype = A
trigger1 = (ctrl) || (MoveContact) && (Var(2))
trigger2 = (stateno = 210) && (movecontact)

;Jump_X
[State -1]
type = ChangeState
value = 210
triggerall = command = "x" && statetype = A
trigger1 = (ctrl) || (MoveContact) && (Var(2))

;---------------------------------------------------------------------------
;Crouch_B
[State -1]
type = ChangeState
value = 207
triggerall = command = "b" && command = "holddown"
trigger1 = (statetype = C) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))
trigger2 = (stateno = [200, 205]) && (movecontact)

;Stand_B
[State -1]
type = ChangeState
value = 206
triggerall = command = "b" && command != "holddown"
trigger1 = (statetype = S) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))
trigger2 = (stateno = [200, 205]) && (movecontact)

;Crouch_Y
[State -1]
type = ChangeState
value = 205
triggerall = command = "y" && command = "holddown"
trigger1 = (statetype = C) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))
trigger2 = (stateno = [200, 203]) && (movecontact)

;Stand_Y
[State -1]
type = ChangeState
value = 204
triggerall = command = "y" && command != "holddown"
trigger1 = (statetype = S) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))
trigger2 = (stateno = [200, 203]) && (movecontact)

;Crouch_A
[State -1]
type = ChangeState
value = 203
triggerall = command = "a" && command = "holddown"
trigger1 = (statetype = C) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))
trigger2 = (stateno = [200, 201]) && (movecontact)

;Stand_A
[State -1]
type = ChangeState
value = 202
triggerall = command = "a" && command != "holddown"
trigger1 = (statetype = S) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))
trigger2 = (stateno = [200, 201]) && (movecontact)

;Crouch_X
[State -1]
type = ChangeState
value = 201
triggerall = command = "x" && command = "holddown"
trigger1 = (statetype = C) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))

;Stand_X
[State -1]
type = ChangeState
value = 200
triggerall = command = "x" && command != "holddown"
trigger1 = (statetype = S) && (ctrl) || (MoveContact) && (Pos Y = 0) && (Var(2))

;---------------------------------------------------------------------------
;Taunt
[State -1]
type = ChangeState
value = 195
trigger1 = command = "s" && statetype != A && ctrl

;---------------------------------------------------------------------------
;RunBack
[State -1]
type = ChangeState
value = 105
trigger1 = (command = "BB") && (statetype = S) && (ctrl)

;RunFwd
[State -1]
type = ChangeState
value = 100
trigger1 = (command = "FF") && (statetype = S) && (ctrl)