[Begin Action 0]
Clsn2Default: 2
 Clsn2[0] = -13,  0, 16,-79
 Clsn2[1] =   5,-79, -7,-93
0,0, 0,0, 10
0,1, 0,0, 7
0,2, 0,0, 7
0,3, 0,0, 7
0,4, 0,0, 7
0,5, 0,0, 45
0,4, 0,0, 7
0,3, 0,0, 7
0,2, 0,0, 7
0,1, 0,0, 7
0,0, 0,0, 40

; Turning
[Begin Action 5]
Clsn2Default: 2
 Clsn2[0] = -10,  0, 10,-79
 Clsn2[1] =  -4,-92,  6,-79
5,0, 0,0, 4, H
5,0, 0,0, 4

; Crouch Turning
[Begin Action 6]
Clsn2Default: 3
 Clsn2[0] =  10,  0,-10,-47
 Clsn2[1] =   5,-47, -5,-60
 Clsn2[2] =  10,-39, 15,  0
6,0, 0,0, 4, H
6,0, 0,0, 4

; Stand to crouch
[Begin Action 10]
Clsn2: 2
 Clsn2[0] = -12,  0, 17,-65
 Clsn2[1] =  -7,-81,  6,-65
11,0, 0,0, 2
Clsn2: 2
 Clsn2[0] = -12,-52, 17,  0
 Clsn2[1] =  -7,-67,  6,-52
11,1, 0,0, 2

; Crouching animation
[Begin Action 11]
Clsn2: 2
 Clsn2[0] =  19,  0,-15,-48
 Clsn2[1] =  -6,-62,  6,-48
11,2, 0,0, 1

; Crouch to Stand
[Begin Action 12]
Clsn2: 2
 Clsn2[0] = -12,-52, 17,  0
 Clsn2[1] =  -7,-67,  6,-52
11,1, 0,0, 2
Clsn2: 2
 Clsn2[0] = -12,  0, 17,-65
 Clsn2[1] =  -7,-81,  6,-65
11,0, 0,0, 2

; Walking Forward
[Begin Action 20]
Clsn2Default: 2
 Clsn2[0] = -14,  0, 16,-81
 Clsn2[1] =   6,-81, -7,-96
20,0, 0,0, 3
20,1, 0,0, 3
20,2, 0,0, 3
20,3, 0,0, 3
20,4, 0,0, 3
20,5, 0,0, 3
20,6, 0,0, 3
20,7, 0,0, 3
20,8, 0,0, 3
20,9, 0,0, 3
20,10, 0,0, 3
20,11, 0,0, 3
20,12, 0,0, 3
20,13, 0,0, 3
20,14, 0,0, 3
20,15, 0,0, 3

; Walking Back
[Begin Action 21]
Clsn2Default: 2
 Clsn2[0] = -14,  0, 16,-81
 Clsn2[1] =   6,-81, -7,-96
21,11, 0,0, 3
21,10, 0,0, 3
21,9, 0,0, 3
21,8, 0,0, 3
21,7, 0,0, 3
21,6, 0,0, 3
21,5, 0,0, 3
21,4, 0,0, 3
21,3, 0,0, 3
21,2, 0,0, 3
21,1, 0,0, 3
21,0, 0,0, 3
21,15, 0,0, 3
21,14, 0,0, 3
21,13, 0,0, 3
21,12, 0,0, 3

; Jump start frame
[Begin Action 40]
Clsn2: 2
 Clsn2[0] = -15,  0, 16,-67
 Clsn2[1] =  -6,-83,  6,-67
11,0, 0,0, 3

; Starting Jumping up
[Begin Action 41]
Clsn2: 2
 Clsn2[0] =  12,-11,-11,-94
 Clsn2[1] =  -6,-109,  6,-94
41,0, 0,0, 7
Clsn2: 2
 Clsn2[0] = -11,-86, 12,-28
 Clsn2[1] =  -6,-101,  8,-86
41,1, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-77, 14,-33
 Clsn2[1] =   0,-91, 11,-77
41,2, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-73, 14,-35
 Clsn2[1] =   3,-86, 15,-69
41,3, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-73, 14,-35
 Clsn2[1] =   3,-86, 15,-69
41,4, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-33, 14,-77
 Clsn2[1] =  -2,-93, 11,-76
41,5, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-84, 14,-27
 Clsn2[1] =  -3,-99,  9,-84
41,6, 0,0, 4
Loopstart
Clsn2Default: 2
 Clsn2[0] =  14,-23,-11,-90
 Clsn2[1] =  -4,-105,  9,-89
41,7, 0,0, 4
41,8, 0,0, 4

; Starting Jumping forwards
[Begin Action 42]
Clsn2: 2
 Clsn2[0] =  12,-11,-11,-94
 Clsn2[1] =  -6,-109,  6,-94
42,0, 0,0, 5
Clsn2: 2
 Clsn2[0] = -11,-86, 14,-28
 Clsn2[1] =   5,-96, 17,-85
42,1, 0,0, 5
Clsn2: 2
 Clsn2[0] = -11,-77, 14,-33
 Clsn2[1] =   0,-91, 11,-77
41,2, 0,0, 3
Clsn2: 2
 Clsn2[0] = -11,-73, 14,-35
 Clsn2[1] =   3,-86, 15,-69
41,3, 0,0, 4
Clsn2: 1
 Clsn2[0] = -18,-75, 18,-44
42,3, 0,0, 3
Clsn2: 1
 Clsn2[0] = -18,-75, 18,-44
42,4, 0,0, 3
Clsn2: 1
 Clsn2[0] = -18,-75, 18,-44
42,5, 0,0, 3
Clsn2: 2
 Clsn2[0] = -11,-33, 14,-77
 Clsn2[1] =  -2,-93, 11,-76
41,5, 0,0, 3
Clsn2: 2
 Clsn2[0] = -11,-84, 14,-27
 Clsn2[1] =  -3,-99,  9,-84
41,6, 0,0, 5
Loopstart
Clsn2Default: 2
 Clsn2[0] =  14,-23,-11,-90
 Clsn2[1] =  -4,-105,  9,-89
41,7, 0,0, 4
41,8, 0,0, 4

; Starting Jumping backwards
[Begin Action 43]
Clsn2: 2
 Clsn2[0] =  12,-11,-11,-94
 Clsn2[1] =  -6,-109,  6,-94
43,0, 0,0, 6
Clsn2: 2
 Clsn2[0] = -11,-86, 12,-28
 Clsn2[1] =  -6,-101,  8,-86
43,1, 0,0, 5
Clsn2: 2
 Clsn2[0] = -11,-77, 14,-33
 Clsn2[1] =   0,-91, 11,-77
41,2, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-73, 14,-35
 Clsn2[1] =   3,-86, 15,-69
41,3, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-73, 14,-35
 Clsn2[1] =   3,-86, 15,-69
41,4, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-33, 14,-77
 Clsn2[1] =  -2,-93, 11,-76
41,5, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-84, 14,-27
 Clsn2[1] =  -3,-99,  9,-84
41,6, 0,0, 5
Loopstart
Clsn2Default: 2
 Clsn2[0] =  14,-23,-11,-90
 Clsn2[1] =  -4,-105,  9,-89
41,7, 0,0, 4
41,8, 0,0, 4

; Peak and coming down from Jumping up
;[Begin Action 44]

; Peak and coming down from Jumping forwards
;[Begin Action 45]

; Peak and coming down from Jumping backwards
;[Begin Action 46]

; Jump land animation
[Begin Action 47]
Clsn2: 2
 Clsn2[0] =  15,  0,-16,-68
 Clsn2[1] =  -5,-79,  6,-68
11,0, 0,0, 3

; Run forwards
[Begin Action 100]
Clsn2Default: 2
 Clsn2[0] =  14,  0,-15,-79
 Clsn2[1] =  14,-79,  1,-91
100,0, 0,0, 5
100,1, 0,0, 5
100,2, 0,0, 5
100,3, 0,0, 5
100,4, 0,0, 5
100,5, 0,0, 5

; Hop backwards
[Begin Action 105]
Clsn2: 3
 Clsn2[0] =  -9,-94, 14,-56
 Clsn2[1] =   2,-61, 25,-34
 Clsn2[2] =   6,-90, -6,-104
43,0, 0,0, 4
Clsn2: 2
 Clsn2[0] =  -8,-28, 10,-81
 Clsn2[1] =   6,-81, -5,-94
43,1, 0,0, 4
Clsn2Default: 2
 Clsn2[0] =  -8,-33, 13,-77
 Clsn2[1] =   0,-90, 10,-77
41,6, 0,0, 4
41,3, 0,0, 4
41,2, 0,0, 4
Clsn2: 2
 Clsn2[0] =  -8,-28, 10,-81
 Clsn2[1] =   6,-81, -5,-94
41,1, 0,0, -1

;---------------------------
; Lose
[Begin Action 170]
5000, 0,-5,0, 5
5000,10,-5,0, 6
5000,11,-5,0, 9
5000,10,-5,0, 5
5000, 0,-5,0, 3
5010, 0, 5,0, 3
5300, 3, 5,0, 4
5300, 2, 5,0, 2
5300, 1, 5,0, -1

;---------------------------
; Win
[Begin Action 181]
Clsn2Default: 1
 Clsn2[0] =  17,  0,-12,-83
200,0, 0,0, 4
181,0, 0,0, 5
181,1, 0,0, 5
181,2, 0,0, 5
181,3, 0,0, 5
181,4, 0,0, 5
181,5, 0,0, 5
181,6, 0,0, 30
181,5, 0,0, 7
181,4, 0,0, 6
181,3, 0,0, 5
181,2, 0,0, -1

;-----------------------------------
; INTRO
[Begin Action 190]
Clsn2Default: 1
 Clsn2[0] =  17,  0,-12,-83
0,3, 0,0, 7
0,2, 0,0, 7
0,1, 0,0, 7
0,0, 0,0, 20
240,0,-8,0, 4
240,1,-8,0, 3
240,2,-8,0, 6
240,3,-8,0, 5
240,4,-8,0, 4
200,0, 0,0, 4

; INTRO -- WOOD (projectile)
[Begin Action 191]
191,3, 0,0, 8
191,2, 0,0, 8
191,1, 0,0, 8
191,0, 0,0, 8

; INTRO -- WOODBREAK (projectile)
; Note: Putting -1,0 for the sprite means it does not draw anything
[Begin Action 192]
192,0, 0,0, 5
192,1, 0,0, 8
 -1,0, 0,0, 1
192,1, 0,0, 3
 -1,0, 0,0, 1
192,1, 0,0, 3
 -1,0, 0,0, 2
192,1, 0,0, 3
 -1,0, 0,0, 2
Loopstart
192,1, 0,0, 1
 -1,0, 0,0, 3

;---------------------------
; Taunt
[Begin Action 195]
Clsn2Default: 2
 Clsn2[0] =  18,  0,-10,-79
 Clsn2[1] =  -1,-94, 12,-78
200,0, 0,0, 2
Clsn2: 2
 Clsn2[0] =  13,  0,-13,-84
 Clsn2[1] =  -7,-99,  6,-85
181,0, 0,0, 4
Clsn2: 2
 Clsn2[0] = -13,-88, 13,  0
 Clsn2[1] =  -8,-105,  4,-87
181,2, 0,0, 4
Clsn2: 2
 Clsn2[0] = -13,-88, 13,  0
 Clsn2[1] =   5,-84, 17,-104
181,3, 0,0, 4
Clsn2: 2
 Clsn2[0] = -13,-88, 13,  0
 Clsn2[1] =  14,-76, 27,-95
181,4, 0,0, 4
Clsn2: 2
 Clsn2[0] =  13,  0,-13,-78
 Clsn2[1] =  36,-81,  9,-64
181,5, 0,0, 4
Clsn2: 2
 Clsn2[0] =  13,  0,-13,-78
 Clsn2[1] =   9,-79, 38,-62
181,6, 0,0, 12
Clsn2: 2
 Clsn2[0] =  13,  0,-13,-78
 Clsn2[1] =  36,-81,  9,-64
181,5, 0,0, 3
Clsn2: 2
 Clsn2[0] = -13,-88, 13,  0
 Clsn2[1] =  14,-76, 27,-95
181,4, 0,0, 3
Clsn2: 2
 Clsn2[0] = -13,-88, 13,  0
 Clsn2[1] =   5,-84, 17,-104
181,3, 0,0, 3
Clsn2: 2
 Clsn2[0] = -13,-88, 13,  0
 Clsn2[1] =  -8,-105,  4,-87
181,2, 0,0, 3
Clsn2: 2
 Clsn2[0] =  13,  0,-13,-84
 Clsn2[1] =  -7,-99,  6,-85
181,0, 0,0, 3
200,0, 0,0, 2

;-----------------------------------
; Stand Light Punch
[Begin Action 200]
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,0, 0,0, 2
200,1, 0,0, 1
Clsn1: 1
 Clsn1[0] =  16,-80, 61,-71
Clsn2: 3
 Clsn2[0] =  19,  0,-10,-80
 Clsn2[1] =   6,-94, 18,-78
 Clsn2[2] =  19,-80, 61,-71
200,2, 0,0, 4
200,1, 0,0, 3
200,0, 0,0, 2

;-----------------------------------
; Stand Strong Punch
[Begin Action 210]
Clsn2: 2
 Clsn2[0] =  19,  0,-10,-81
 Clsn2[1] =   0,-96, 12,-80
200,0, 0,0, 2
Clsn2: 3
 Clsn2[0] = -11,  0, 43,-32
 Clsn2[1] =  41,-32, 12,-75
 Clsn2[2] =  21,-91, 34,-75
210,0, 0,0, 2
Clsn2: 3
 Clsn2[0] =  45,  0, -7,-32
 Clsn2[1] =  19,-73, 48,-24
 Clsn2[2] =  35,-89, 48,-72
210,1, 0,0, 2
Clsn2: 3
 Clsn2[0] =  47,-31, -6,  0
 Clsn2[1] =  17,-31, 47,-78
 Clsn2[2] =  31,-94, 42,-76
210,2, 0,0, 2
Clsn1: 2
 Clsn1[0] =  27,-86, 64,-60
 Clsn1[1] =  64,-63, 79,-82
Clsn2: 5
 Clsn2[0] =  40,  0,-11,-32
 Clsn2[1] =  34,-32,  5,-86
 Clsn2[2] =  13,-97, 26,-77
 Clsn2[3] =  34,-60, 64,-86
 Clsn2[4] =  64,-63, 79,-82
210,3, 0,0, 2
Clsn2: 3
 Clsn2[0] =  40,  0,-11,-32
 Clsn2[1] =  34,-32,  5,-86
 Clsn2[2] =  13,-97, 26,-77
210,4, 0,0, 4
Clsn2: 3
 Clsn2[0] = -11,  0, 32,-39
 Clsn2[1] =  24,-39, -1,-81
 Clsn2[2] =  20,-79,  8,-95
210,5, 0,0, 6
Clsn2: 2
 Clsn2[0] = -10,  0, 19,-81
 Clsn2[1] =   0,-96, 12,-80
200,0, 0,0, 3

; Standing Light Kick
[Begin Action 230]
Clsn2: 2
 Clsn2[0] =  19,  0,-10,-81
 Clsn2[1] =   0,-96, 12,-80
200,0, 0,0, 2
Clsn2: 2
 Clsn2[0] = -10,-84, 19,  0
 Clsn2[1] =   2,-99, 15,-83
230,0, 0,0, 2
Clsn1: 3
 Clsn1[0] =  38,-53, 14,-36
 Clsn1[1] =  35,-42, 56,-29
 Clsn1[2] =  69,-34, 53,-23
Clsn2: 5
 Clsn2[0] =  -6,-84, 18,  0
 Clsn2[1] =   6,-98, 19,-83
 Clsn2[2] =  18,-53, 38,-36
 Clsn2[3] =  56,-29, 35,-42
 Clsn2[4] =  53,-23, 69,-34
230,1, 0,0, 3
Clsn2: 5
 Clsn2[0] =  -6,-84, 18,  0
 Clsn2[1] =   6,-98, 19,-83
 Clsn2[2] =  32,-37, 18,-54
 Clsn2[3] =  32,-42, 45,-29
 Clsn2[4] =  52,-22, 44,-34
230,2, 0,0, 3
Clsn2: 2
 Clsn2[0] = -10,-84, 19,  0
 Clsn2[1] =   2,-99, 15,-83
230,0, 0,0, 3
200,0, 0,0, 2

; Standing Strong Kick
[Begin Action 240]
Clsn2Default: 3
 Clsn2[0] = -13,-82,  6,  0
 Clsn2[1] = -12,-95,  0,-81
 Clsn2[2] =  24,-28,  2,-66
240,0, 0,0, 4
240,1, 0,0, 3
Clsn1: 1
 Clsn1[0] =   4,-65, 67,-50
Clsn2: 4
 Clsn2[0] =   6,  0, -9,-62
 Clsn2[1] = -20,-80,  4,-57
 Clsn2[2] = -19,-94, -7,-79
 Clsn2[3] =  67,-50,  3,-65
240,2, 0,0, 4
Clsn1: 1
 Clsn1[0] =  70,-65,  8,-50
Clsn2: 4
 Clsn2[0] =   9,  0, -7,-62
 Clsn2[1] = -18,-80,  6,-57
 Clsn2[2] = -16,-94, -4,-80
 Clsn2[3] =   3,-65, 70,-50
240,3, 0,0, 4
Clsn2: 4
 Clsn2[0] =  -6, -1,  9,-60
 Clsn2[1] = -12,-81, 13,-55
 Clsn2[2] =  -9,-92,  2,-81
 Clsn2[3] =   9,-57, 37,-39
240,4, 0,0, 4
Clsn2: 3
 Clsn2[0] =  -2,  0, 30,-58
 Clsn2[1] =  -2,-79, 22,-58
 Clsn2[2] =   1,-94, 12,-79
240,5, 0,0, 3
Clsn2: 2
 Clsn2[0] =  -9,  0, 17,-80
 Clsn2[1] =   0,-94, 12,-81
200,0, 0,0, 3

; Crouching light punch
[Begin Action 400]
Clsn2: 2
 Clsn2[0] =  18,  0,-15,-48
 Clsn2[1] =  -4,-63,  9,-48
400,0, 0,0, 3
Clsn1: 1
 Clsn1[0] =  54,-40, 17,-48
Clsn2: 3
 Clsn2[0] = -14,  0, 19,-48
 Clsn2[1] =   0,-63, 12,-48
 Clsn2[2] =  18,-48, 54,-40
400,1, 0,0, 6
Clsn2: 2
 Clsn2[0] =  18,  0,-15,-48
 Clsn2[1] =  -4,-63,  9,-48
400,0, 0,0, 3

; Crouching strong punch
[Begin Action 410]
Clsn2Default: 2
 Clsn2[0] = -10,  0, 30,-58
 Clsn2[1] =   2,-76, 14,-58
410,0, 0,0, 2
410,1, 0,0, 2
Clsn1: 1
 Clsn1[0] =  45,-37, 20,-62
Clsn2: 3
 Clsn2[0] =  -2,  0, 32,-55
 Clsn2[1] =   9,-75, 21,-54
 Clsn2[2] =  45,-37, 20,-62
410,2, 0,0, 3
Clsn1: 2
 Clsn1[0] =  51,-79, 29,-57
 Clsn1[1] =  44,-94, 57,-74
Clsn2: 4
 Clsn2[0] =  -1,  0, 39,-42
 Clsn2[1] =  14,-43, 34,-83
 Clsn2[2] =  51,-79, 34,-62
 Clsn2[3] =  44,-94, 57,-74
410,3, 0,0, 7
Clsn2: 3
 Clsn2[0] =  37,  0, -5,-37
 Clsn2[1] =   6,-37, 36,-64
 Clsn2[2] =  13,-78, 25,-64
410,4, 0,0, 5
410,0, 0,0, 3

; Crouching Light Kick
[Begin Action 430]
Clsn2: 3
 Clsn2[0] =  28,  0,-15,-28
 Clsn2[1] = -19,-49, 14,-28
 Clsn2[2] =  -1,-47,-13,-60
430,0, 0,0, 2
Clsn2: 3
 Clsn2[0] =  29,  0,-21,-31
 Clsn2[1] =  11,-23,-19,-45
 Clsn2[2] =  -7,-42,-18,-54
430,1, 0,0, 2
Clsn1: 3
 Clsn1[0] =  24,-24,  8,-13
 Clsn1[1] =  23,-19, 45,-10
 Clsn1[2] =  45,-11, 63,  0
Clsn2: 5
 Clsn2[0] =  11,  0,-20,-41
 Clsn2[1] = -21,-50,-10,-38
 Clsn2[2] =  24,-24,  8,-13
 Clsn2[3] =  23,-19, 45,-10
 Clsn2[4] =  45,-11, 63,  0
430,2, 0,0, 3
Clsn2: 5
 Clsn2[0] = -20,-41, 11,  0
 Clsn2[1] = -21,-50,-10,-39
 Clsn2[2] =  11,-25, 24,-13
 Clsn2[3] =  23,-19, 43,-10
 Clsn2[4] =  43,-11, 60,  0
430,3, 0,0, 4
Clsn2: 3
 Clsn2[0] =  29,  0,-21,-31
 Clsn2[1] =  11,-23,-19,-45
 Clsn2[2] =  -7,-42,-18,-54
430,1, 0,0, 3
Clsn2: 3
 Clsn2[0] =  28,  0,-15,-28
 Clsn2[1] = -19,-49, 14,-28
 Clsn2[2] =  -1,-47,-13,-60
430,0, 0,0, 3

; Crouching Strong Kick
[Begin Action 440]
Clsn2: 3
 Clsn2[0] = -15,  0, 28,-28
 Clsn2[1] =  -7,-28, 25,-50
 Clsn2[2] =   7,-65, 19,-48
440,0, 0,0, 4
Clsn2Default: 3
 Clsn2[0] =  26,  0,-17,-24
 Clsn2[1] =  -7,-24, 27,-48
 Clsn2[2] =   7,-58, 20,-46
440,1, 0,0, 3
440,2, 0,0, 2
Clsn1: 3
 Clsn1[0] =  40,-10, 18,-25
 Clsn1[1] =  40,-17, 58, -4
 Clsn1[2] =  76,  1, 58,-10
Clsn2: 5
 Clsn2[0] =  17,-52, -7,  0
 Clsn2[1] =  40,-10, 12,-25
 Clsn2[2] =  40,-17, 58, -4
 Clsn2[3] =  76,  1, 58,-10
 Clsn2[4] =   8,-59, 20,-46
440,3, 0,0, 4
Clsn2Default: 4
 Clsn2[0] =  17,  0, -7,-52
 Clsn2[1] =   8,-59, 20,-46
 Clsn2[2] =  17,-27, 33,-11
 Clsn2[3] =  33,-17, 52, -4
440,4, 0,0, 5
440,5, 0,0, 3
Clsn2: 3
 Clsn2[0] =  26,  0,-17,-24
 Clsn2[1] =  -7,-24, 27,-48
 Clsn2[2] =   7,-58, 20,-46
440,6, 0,0, 5
Clsn2: 3
 Clsn2[0] = -15,  0, 28,-28
 Clsn2[1] =  -7,-28, 25,-50
 Clsn2[2] =   7,-65, 19,-48
440,0, 0,0, 4

; Jump light punch
[Begin Action 600]
Clsn2Default: 2
 Clsn2[0] = -11,-72, 16,-27
 Clsn2[1] =  -5,-87,  8,-72
600,0, 0,0, 3
Clsn1: 2
 Clsn1[0] =  15,-70, 31,-60
 Clsn1[1] =  49,-54, 29,-65
Clsn2: 4
 Clsn2[0] = -13,-72, 17,-27
 Clsn2[1] =   0,-87, 12,-71
 Clsn2[2] =  15,-70, 31,-60
 Clsn2[3] =  49,-54, 29,-65
600,1, 0,0, 11
Clsn2: 4
 Clsn2[0] = -13,-72, 17,-27
 Clsn2[1] =   0,-87, 12,-71
 Clsn2[2] =  15,-70, 31,-60
 Clsn2[3] =  49,-54, 29,-65
600,1, 0,0, 4
600,0, 0,0, -1

; Jump strong punch
[Begin Action 610]
Clsn2: 2
 Clsn2[0] = -13,-76, 18,-24
 Clsn2[1] =  -2,-88, 11,-73
610,0, 0,0, 3
Clsn2: 2
 Clsn2[0] =  20,-23,-10,-76
 Clsn2[1] =   7,-91, 27,-68
610,1, 0,0, 3
Clsn1: 1
 Clsn1[0] =  23,-45, 57,-77
Clsn2: 3
 Clsn2[0] =  20,-23,-10,-76
 Clsn2[1] =  18,-85, 30,-70
 Clsn2[2] =  57,-45, 20,-77
610,2, 0,0, 6
Clsn2: 2
 Clsn2[0] = -10,-77, 20,-23
 Clsn2[1] =  10,-92, 23,-71
610,3, 0,0, 12
Clsn2: 2
 Clsn2[0] = -10,-77, 20,-23
 Clsn2[1] =   6,-92, 30,-71
610,1, 0,0, -1

; Jump light kick
[Begin Action 630]
Clsn2: 2
 Clsn2[0] = -15,-72, 17,-24
 Clsn2[1] =  -8,-91,  4,-72
640,0, 0,0, 3
Clsn1: 1
 Clsn1[0] =  11,-54, 35,-37
Clsn2: 3
 Clsn2[0] = -22,-72, 15,-33
 Clsn2[1] = -11,-90,  0,-71
 Clsn2[2] =  11,-54, 35,-37
630,1, 0,0, 3
Clsn1: 2
 Clsn1[0] =  34,-30, 13,-48
 Clsn1[1] =  21,-38,  7,-52
Clsn2: 3
 Clsn2[0] =  -7,-89,  5,-73
 Clsn2[1] =  19,-34,-18,-74
 Clsn2[2] =  13,-48, 34,-30
630,2, 0,0, 15
Clsn2: 2
 Clsn2[0] = -22,-72, 15,-33
 Clsn2[1] = -11,-90,  0,-71
630,1, 0,0, -1

; Jump strong kick
[Begin Action 640]
Clsn2: 2
 Clsn2[0] = -15,-72, 17,-24
 Clsn2[1] =  -8,-91,  4,-72
640,0, 0,0, 6
Clsn1: 2
 Clsn1[0] =  43,-48, 13,-33
 Clsn1[1] =  43,-42, 69,-28
Clsn2: 4
 Clsn2[0] = -21,-73, 15,-29
 Clsn2[1] =  -4,-73,-15,-90
 Clsn2[2] =  15,-48, 43,-33
 Clsn2[3] =  43,-42, 69,-28
640,1, 0,0, 6
Clsn2: 3
 Clsn2[0] = -19,-73, 14,-32
 Clsn2[1] =  14,-48, 35,-35
 Clsn2[2] = -12,-89, -2,-73
640,2, 0,0, 8
Clsn2: 2
 Clsn2[0] = -15,-72, 17,-24
 Clsn2[1] =  -8,-91,  4,-72
640,0, 0,0, -1

;-----------------------------------
; Kung Fu Throw Attempt
[Begin Action 800]
Clsn1: 1
 Clsn1[0] =  26,-81,  8,  0
Clsn2Default: 2
 Clsn2[0] =  -8,  0, 21,-81
 Clsn2[1] =  10,-94, 20,-80
800,0, 0,0, 1
800,0, 0,0, 1
800,1, 0,0, 3
800,2, 0,0, 10
800,4, 0,0, 4
800,0, 0,0, 3

;-----------------------------------
;Kung Fu Throw
[Begin Action 810]
800, 0, 0,0, 2
800, 1, 0,0, 3
800, 2, 0,0, 10
800, 3, 0,0, 5
800, 4, 0,0, 3
800, 5, 0,0, 4
800, 6, 0,0, 4
800, 7, 0,0, 3
800, 8, 0,0, 3
800, 9, 0,0, 3
800,10, 0,0, 5
800,11, 0,0, 4, H
800,11, 0,0, 4, H
800,12, 0,0, 12, H
200, 0, 0,0, 5

;-----------------------------------
;Thrown by Kung Fu Throw (animation for opponent)
; Note: Use ONLY the required frames documented in spr.txt and spr.gif.
;       It is important to be restricted to the required frames so that
;       the throw animation will look correct for any given character.
;       Notice that the animation timings are synchronized to KFM's
;       throw animation (action 810).
[Begin Action 820]
5000, 0, 0,0, 2
5010, 0, 0,0, 3
5010,10, 0,0, 10
5010,10, 0,0, 5
5010, 0, 0,0, 3
5061, 0, 0,0, 4
5071, 0, 0,0, 4
5071,10, 0,0, 3
5071,20, 0,0, 3
5031, 0, 0,0, 3, HV
5011, 0, 0,-40, 5, HV
Clsn2: 2
 Clsn2[0] = -26,-38,  6,-69
 Clsn2[1] =  18,-81,-12,-55
5030,40, 0,0, 5
Clsn2: 1
 Clsn2[0] = -26,-32, 20,-66
5030,30, 0,0,-1

;-----------------------------------
; Light Kung Fu Palm
[Begin Action 1000]
Clsn2: 2
 Clsn2[0] = -14,  0, 15,-80
 Clsn2[1] =  -6,-94,  7,-80
200,0, -5,0, 1
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 2
Clsn2Default: 3
 Clsn2[0] =  31,  0,-34,-33
 Clsn2[1] =  -8,-67, 20,-33
 Clsn2[2] =   5,-81, 18,-67
1000,1, 0,0, 2
1000,2, 0,0, 2
1000,3, 0,0, 1
Clsn1: 1
 Clsn1[0] =  68,-66,  9,-44
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-66, 68,-46
1000,4, 0,0, 3
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-64, 68,-46
1000,5, 0,0, 7
1000,7, 0,0, 4
1000,2, 0,0, 3
1000,1, 0,0, 3
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 3
Clsn2: 2
 Clsn2[0] = -14,  0, 15,-80
 Clsn2[1] =  -6,-94,  7,-80
200,0, -5,0, 2

;-----------------------------------
; Strong Kung Fu Palm
[Begin Action 1010]
Clsn2: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,0, 0,0, 2
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 2
Clsn2Default: 3
 Clsn2[0] =  31,  0,-34,-33
 Clsn2[1] =  -8,-67, 20,-33
 Clsn2[2] =   5,-81, 18,-67
1000,1, 0,0, 2
1000,2, 0,0, 2
1000,3, 0,0, 1
Clsn1: 1
 Clsn1[0] =  68,-66,  9,-44
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-66, 68,-46
1000,4, 0,0, 3
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-64, 68,-46
1000,5, 0,0, 5
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-64, 68,-46
1000,6, 0,0, 5
1000,7, 0,0, 4
1000,2, 0,0, 3
1000,1, 0,0, 3
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 3
Clsn2: 2
 Clsn2[0] = -15,  0, 15,-80
 Clsn2[1] =  -5,-94,  7,-79
200,0, -5,0, 3

;-----------------------------------
; Fast Kung Fu Palm
[Begin Action 1020]
Clsn2: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,0, 0,0, 2
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 3
Clsn2Default: 3
 Clsn2[0] =  31,  0,-34,-33
 Clsn2[1] =  -8,-67, 20,-33
 Clsn2[2] =   5,-81, 18,-67
1000,1, 0,0, 3
1000,3, 0,0, 2
Clsn1: 1
 Clsn1[0] =  66,-66,  9,-44
Clsn2Default: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-66, 66,-46
1000,4, 0,0, 5
Clsn1: 1
 Clsn2[0] =  66,-66,  9,-44
1000,5, 0,0, 4
Clsn2Default: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-64, 66,-46
1000,6, 0,0, 4
1000,5, 0,0, 4
1000,6, 0,0, 3
1000,7, 0,0, 3
1000,1, 0,0, 3
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 3
Clsn2: 2
 Clsn2[0] = -15,  0, 15,-80
 Clsn2[1] =  -6,-94,  7,-80
200,0, -5,0, 2

; Hit by Fast Kung Fu Palm
[Begin Action 1025]
Clsn2: 1
 Clsn2[0] = -29,-73,  8,-27
5010,10, 0,0, 4
Clsn2: 1
 Clsn2[0] = -29,-73,  8,-27
5010,20, 0,0, 4
Clsn2Default: 1
 Clsn2[0] = -29,-82, 12,-48
5030, 0, 0,0, 4
5030,10, 0,0, -1

; Hit by Fast Kung Fu Palm - hit wall
[Begin Action 1027]
Clsn2Default: 1
 Clsn2[0] = -33,-68,  1,-23
5010,20, 0,0, 3
5010,10, 0,0, 3
5010, 0, 0,0, 2

;-----------------------------------
; Light Kung Fu Knee - move forwards
[Begin Action 1050]
Clsn2: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,0, 0,0, 2
Clsn2: 4
 Clsn2[0] =  25,  0,-16,-41
 Clsn2[1] = -16,  0,-39,-21
 Clsn2[2] =  18,-41, -7,-71
 Clsn2[3] =   5,-81, 15,-68
1050,0, 0,0, 3
Clsn2: 2
 Clsn2[0] =  24,  0, -9,-79
 Clsn2[1] =   7,-91, 19,-78
1050,1, 0,0, 2
Clsn1: 1
 Clsn1[0] =   5,-67, 24,-36
Clsn2: 2
 Clsn2[0] = -12,-105, 10,  0
 Clsn2[1] =   5,-67, 24,-31
1050,2, 0,0, 2

;-----------------------------------
; Light Kung Fu Knee - jump
[Begin Action 1051]
Clsn1: 1
 Clsn1[0] =  34,-90,  9,-49
Clsn2Default: 4
 Clsn2[0] = -13,-101, 13,-60
 Clsn2[1] =  -6,-34,  9,-60
 Clsn2[2] =  30,-80,  9,-49
 Clsn2[3] =   6,-110, 18,-95
1050,3, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,4, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,3, 0,0, 4
Clsn2: 3
 Clsn2[0] =  -8,-97, 12,-35
 Clsn2[1] =  16,-92,  5,-105
 Clsn2[2] =  10,-71, 25,-40
1050,5, 0,0, 4
Clsn2: 3
 Clsn2[0] =  -8,-95, 12,-33
 Clsn2[1] =   6,-104, 16,-92
 Clsn2[2] =  10,-64, 29,-33
1050,6, 0,0, 4
Clsn2: 3
 Clsn2[0] =  10,-27,-11,-95
 Clsn2[1] =   6,-104, 16,-92
 Clsn2[2] =  27,-27, 10,-63
1050,7, 0,0, -1

;-----------------------------------
; Light Kung Fu Knee - land
[Begin Action 1052]
Clsn2: 3
 Clsn2[0] =  26,  0,-11,-47
 Clsn2[1] =  16,-47, -9,-77
 Clsn2[2] =  16,-76,  5,-88
1052,0, 0,0, 2
Clsn2: 3
 Clsn2[0] =  27,  0,-10,-37
 Clsn2[1] =  -5,-65, 19,-36
 Clsn2[2] =  18,-63,  8,-74
1052,1, 0,0, 4
Clsn2: 3
 Clsn2[0] =  15,  0,-12,-40
 Clsn2[1] = -11,-40,  9,-70
 Clsn2[2] =   1,-79, 11,-67
1052,2, 0,0, 4
Clsn2: 2
 Clsn2[0] = -16,-85, 14,  0
 Clsn2[1] =  -1,-95,  9,-84
1052,3, 0,0, 3

;-----------------------------------
; Light Kung Fu Knee - kick
[Begin Action 1055]
Clsn2: 2
 Clsn2[0] = -16,-87, 19,-48
 Clsn2[1] =  -7,-99,  3,-86
1055,0, 0,0, 2
Clsn2: 2
 Clsn2[0] =  19,-48,-16,-87
 Clsn2[1] =  -6,-99,  5,-86
1055,1, 0,0, 2
Clsn2: 2
 Clsn2[0] = -16,-87, 19,-48
 Clsn2[1] =  -6,-101,  3,-87
1055,2, 0,0, 1
Clsn2: 3
 Clsn2[0] = -16,-93, 14,-41
 Clsn2[1] =  -9,-104,  3,-90
 Clsn2[2] =  31,-100, 13,-78
1055,3, 0,0, 1
Clsn1: 2
 Clsn1[0] =  14,-96, 32,-44
 Clsn1[1] =  45,-111, 30,-77
Clsn2: 4
 Clsn2[0] = -16,-93, 14,-41
 Clsn2[1] =  -9,-104,  3,-90
 Clsn2[2] =  14,-96, 32,-44
 Clsn2[3] =  45,-111, 30,-77
1055,4, 0,0, 3
Clsn2: 3
 Clsn2[0] = -16,-93, 14,-41
 Clsn2[1] =  -9,-104,  3,-90
 Clsn2[2] =  31,-94, 14,-72
1055,5, 0,0, 7
Clsn2: 3
 Clsn2[0] = -16,-41, 14,-93
 Clsn2[1] =  -9,-104,  3,-90
 Clsn2[2] =  14,-77, 31,-65
1055,6, 0,0, 3
Clsn2: 3
 Clsn2[0] = -16,-93, 14,-41
 Clsn2[1] =  -9,-104,  3,-90
 Clsn2[2] =  14,-73, 28,-51
1055,7, 0,0, 3
Clsn2: 2
 Clsn2[0] =  14,-33,-11,-92
 Clsn2[1] =  -3,-103,  9,-89
41,6, 0,-5, 3
Loopstart
Clsn2Default: 2
 Clsn2[0] =  14,-23,-11,-90
 Clsn2[1] =  -4,-105,  9,-89
41,7, 0,0, 4
41,8, 0,0, 4

;-----------------------------------
; Light Kung Fu Knee - kick land
[Begin Action 1056]
Clsn2: 2
 Clsn2[0] = -15,-65, 15,  0
 Clsn2[1] =  -6,-80,  5,-64
11,1, 0,0, 4
Clsn2: 2
 Clsn2[0] =  13,  0,-15,-53
 Clsn2[1] =  -6,-68,  5,-53
11,0, 0,0, 3

;-----------------------------------
; Strong Kung Fu Knee - move forwards
[Begin Action 1060]
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,0, 0,0, 2
Clsn2: 4
 Clsn2[0] =  38,  0, -3,-41
 Clsn2[1] =  -3,  0,-26,-21
 Clsn2[2] =  31,-41,  6,-71
 Clsn2[3] =  18,-81, 31,-68
1050,0, 0,0, 3
Clsn2: 2
 Clsn2[0] =  24,  0, -9,-79
 Clsn2[1] =   7,-91, 19,-78
1050,1, 0,0, 2
Clsn1: 1
 Clsn1[0] =   5,-67, 24,-36
Clsn2: 2
 Clsn2[0] = -12,-105, 10,  0
 Clsn2[1] =   5,-67, 24,-31
1050,2, 0,0, 2

;-----------------------------------
; Strong Kung Fu Knee - jump
[Begin Action 1061]
Clsn1: 1
 Clsn1[0] =  34,-90,  9,-49
Clsn2Default: 4
 Clsn2[0] = -13,-101, 13,-60
 Clsn2[1] =  -6,-34,  9,-60
 Clsn2[2] =  30,-80,  9,-49
 Clsn2[3] =   6,-110, 18,-95
1050,3, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,4, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,3, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,4, 0,0, 4
Clsn2: 3
 Clsn2[0] =  -8,-97, 12,-35
 Clsn2[1] =  16,-92,  5,-105
 Clsn2[2] =  10,-71, 25,-40
1050,5, 0,0, 5
Clsn2: 3
 Clsn2[0] =  -8,-95, 12,-33
 Clsn2[1] =   6,-104, 16,-92
 Clsn2[2] =  10,-64, 29,-33
1050,6, 0,0, 5
Clsn2: 3
 Clsn2[0] =  10,-27,-11,-95
 Clsn2[1] =   6,-104, 16,-92
 Clsn2[2] =  27,-27, 10,-63
1050,7, 0,0, -1

;-----------------------------------
; Fast Kung Fu Knee - move forwards
[Begin Action 1070]
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,0, 0,0, 2
Clsn2: 4
 Clsn2[0] =  38,  0, -3,-41
 Clsn2[1] =  -3,  0,-26,-21
 Clsn2[2] =  31,-41,  6,-71
 Clsn2[3] =  18,-81, 31,-68
1050,0, 0,0, 2
Clsn2: 2
 Clsn2[0] =  24,  0, -9,-79
 Clsn2[1] =   7,-91, 19,-78
1050,1, 0,0, 2
Clsn1: 1
 Clsn1[0] =   5,-67, 26,-36
Clsn2: 2
 Clsn2[0] = -12,-105, 10,  0
 Clsn2[1] =   5,-67, 26,-31
1050,2, 0,0, 1

;-----------------------------------
; Fast Kung Fu Knee - jump
[Begin Action 1071]
Clsn1: 1
 Clsn1[0] =  34,-90,  9,-49
Clsn2Default: 4
 Clsn2[0] = -13,-101, 13,-60
 Clsn2[1] =  -6,-34,  9,-60
 Clsn2[2] =  30,-80,  9,-49
 Clsn2[3] =   6,-110, 18,-95
1050,3, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,4, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,3, 0,0, 4
Clsn1: 1
 Clsn1[0] =  30,-80,  9,-49
1050,4, 0,0, 4
Clsn2: 3
 Clsn2[0] =  -8,-97, 12,-35
 Clsn2[1] =  16,-92,  5,-105
 Clsn2[2] =  10,-71, 25,-40
1050,5, 0,0, 5
Clsn2: 3
 Clsn2[0] =  -8,-95, 12,-33
 Clsn2[1] =   6,-104, 16,-92
 Clsn2[2] =  10,-64, 29,-33
1050,6, 0,0, 5
Clsn2: 3
 Clsn2[0] =  10,-27,-11,-95
 Clsn2[1] =   6,-104, 16,-92
 Clsn2[2] =  27,-27, 10,-63
1050,7, 0,0, -1

;-----------------------------------
; Light Kung Fu Upper
[Begin Action 1100]
Clsn2Default: 1
 Clsn2[0] = -12,  0, 16,-94
1100,0, 0,0, 2
1100,1, 0,0, 1
Clsn1: 1
 Clsn1[0] =  22,-58, 43,-38
Clsn2: 2
 Clsn2[0] =  28,  0, -3,-85
 Clsn2[1] =  22,-58, 43,-38
1100,2, 0,0, 2
Clsn2: 2
 Clsn2[0] =  28,  0, -3,-85
 Clsn2[1] =  23,-92, 34,-76
1100,3, 0,0, 2
Clsn2: 2
 Clsn2[0] =  31,  0, -3,-85
 Clsn2[1] =  14,-96, 27,-80
1100,4, 0,0, 1
Clsn2: 1
 Clsn2[0] =  32,  0,  1,-96
1100,5, 0,0, 1
Clsn1: 1
 Clsn1[0] =  30,-60, 55,-131
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  30,-131, 44,-93
1100,6, 0,0, 1
Clsn1: 1
 Clsn1[0] =  30,-93, 44,-131
1100,6, 0,0, 3
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  27,-110, 38,-93
1100,7, 0,0, 4
1100,6, 0,0, 4
1100,8, 0,0, 3
Clsn2: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  32,-80, 43,-97
1100,9, 0,0, 3
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,1, 0,0, 2
200,0, 0,0, 2

;-----------------------------------
; Strong Kung Fu Upper
[Begin Action 1110]
Clsn2Default: 1
 Clsn2[0] = -12,  0, 16,-94
1100,0, 0,0, 2
1100,1, 0,0, 2
Clsn1: 1
 Clsn1[0] =  22,-58, 43,-38
Clsn2: 2
 Clsn2[0] =  28,  0, -3,-85
 Clsn2[1] =  22,-58, 43,-38
1100,2, 0,0, 3
Clsn2: 2
 Clsn2[0] =  28,  0, -3,-85
 Clsn2[1] =  23,-92, 34,-76
1100,3, 0,0, 2
Clsn2: 2
 Clsn2[0] =  31,  0, -3,-85
 Clsn2[1] =  14,-96, 27,-80
1100,4, 0,0, 1
Clsn2: 1
 Clsn2[0] =  32,  0,  1,-96
1100,5, 0,0, 1
Clsn1: 1
 Clsn1[0] =  30,-60, 55,-131
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  30,-131, 44,-93
1100,6, 0,0, 1
Clsn1: 1
 Clsn1[0] =  30,-93, 44,-131
1100,6, 0,0, 3
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  27,-110, 38,-93
1100,7, 0,0, 4
1100,6, 0,0, 4
1100,7, 0,0, 4
1100,8, 0,0, 4
Clsn2: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  32,-80, 43,-97
1100,9, 0,0, 3
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,1, 0,0, 2
200,0, 0,0, 2

;-----------------------------------
; Fast Kung Fu Upper
[Begin Action 1120]
Clsn2Default: 1
 Clsn2[0] = -12,  0, 16,-94
1100,0, 0,0, 2
1100,1, 0,0, 1
Clsn1: 1
 Clsn1[0] =  22,-58, 43,-38
Clsn2: 2
 Clsn2[0] =  28,  0, -3,-85
 Clsn2[1] =  22,-58, 43,-38
1100,2, 0,0, 2
Clsn1: 1
 Clsn1[0] =  25,-62, 46,-42
Clsn2: 2
 Clsn2[0] =  28,  0, -3,-85
 Clsn2[1] =  25,-62, 46,-42
1100,3, 0,0, 1
Clsn2: 2
 Clsn2[0] =  31,  0, -3,-85
 Clsn2[1] =  14,-96, 27,-80
1100,4, 0,0, 1
Clsn2: 1
 Clsn2[0] =  32,  0,  1,-96
1100,5, 0,0, 1
Clsn1: 1
 Clsn1[0] =  30,-60, 55,-131
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  30,-131, 44,-93
1100,6, 0,0, 1
Clsn1: 1
 Clsn1[0] =  30,-93, 44,-131
1100,6, 0,0, 3
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  27,-110, 38,-93
1100,7, 0,0, 4
1100,6, 0,0, 4
1100,7, 0,0, 4
1100,8, 0,0, 4
Clsn2: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  32,-80, 43,-97
1100,9, 0,0, 3
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,1, 0,0, 2
200,0, 0,0, 2

;-----------------------------------
; Light Kung Fu Blow
[Begin Action 1200]
Clsn2Default: 2
 Clsn2[0] = -14,-84, 17,  0
 Clsn2[1] =  -5,-96,  6,-81
1210,0, 0,0, 3
1210,1, 0,0, 6
1210,0, 0,0, 2
Clsn2: 2
 Clsn2[0] =  19,  1,-13,-82
 Clsn2[1] =   1,-80, 12,-96
1210,2, 0,0, 1
Clsn2: 2
 Clsn2[0] =  -7,-80, 34,  0
 Clsn2[1] =  11,-93, 24,-79
1210,3, 0,0, 1
Clsn1: 2
 Clsn1[0] = -14,-72, 17,-55
 Clsn1[1] =  54,-72, 91,-50
Clsn2: 4
 Clsn2[0] =  17,-71, 51,  0
 Clsn2[1] =  37,-82, 50,-69
 Clsn2[2] =  -9,-22, 17,  0
 Clsn2[3] = -14,-72, 91,-55
1210,4, 0,0, 2
Clsn2: 4
 Clsn2[0] =  52,  0, 14,-70
 Clsn2[1] =  33,-82, 45,-69
 Clsn2[2] =  -9,  0, 18,-19
 Clsn2[3] =   1,-71, 73,-56
1210,5, 0,0, 6
Clsn2: 3
 Clsn2[0] =  53,  0, -8,-40
 Clsn2[1] =   6,-73, 46,-32
 Clsn2[2] =  37,-68, 23,-84
1210,6, 0,0, 4
Clsn2: 2
 Clsn2[0] =  -7,-80, 34,  0
 Clsn2[1] =  11,-93, 24,-79
1210,3, 0,0, 3
Clsn2: 2
 Clsn2[0] =  19,  1,-13,-82
 Clsn2[1] =   1,-80, 12,-96
200, 0, 0,0, 3

;-----------------------------------
; Strong Kung Fu Blow
[Begin Action 1210]
Clsn2Default: 2
 Clsn2[0] = -14,-84, 17,  0
 Clsn2[1] =  -5,-96,  6,-81
1210,0, 0,0, 4
1210,1, 0,0, 8
1210,0, 0,0, 3
Clsn2: 2
 Clsn2[0] =  19,  1,-13,-82
 Clsn2[1] =   1,-80, 12,-96
1210,2, 0,0, 1
Clsn2: 2
 Clsn2[0] =  -7,-80, 34,  0
 Clsn2[1] =  11,-93, 24,-79
1210,3, 0,0, 1
Clsn1: 2
 Clsn1[0] = -14,-72, 17,-55
 Clsn1[1] =  54,-72, 91,-50
Clsn2: 4
 Clsn2[0] =  17,-71, 51,  0
 Clsn2[1] =  37,-82, 50,-69
 Clsn2[2] =  -9,-22, 17,  0
 Clsn2[3] = -14,-72, 91,-55
1210,4, 0,0, 2
Clsn2: 4
 Clsn2[0] =  52,  0, 14,-70
 Clsn2[1] =  33,-82, 45,-69
 Clsn2[2] =  -9,  0, 18,-19
 Clsn2[3] =   1,-71, 73,-56
1210,5, 0,0, 8
Clsn2: 3
 Clsn2[0] =  53,  0, -8,-40
 Clsn2[1] =   6,-73, 46,-32
 Clsn2[2] =  37,-68, 23,-84
1210,6, 0,0, 4
Clsn2: 2
 Clsn2[0] =  -7,-80, 34,  0
 Clsn2[1] =  11,-93, 24,-79
1210,3, 0,0, 3
Clsn2: 2
 Clsn2[0] =  19,  1,-13,-82
 Clsn2[1] =   1,-80, 12,-96
200, 0, 0,0, 2

;-----------------------------------
; Fast Kung Fu Blow
[Begin Action 1220]
Clsn2Default: 2
 Clsn2[0] = -14,-84, 17,  0
 Clsn2[1] =  -5,-96,  6,-81
1210,0, 0,0, 2
1210,1, 0,0, 3
1210,0, 0,0, 2
Clsn2: 2
 Clsn2[0] =  19,  1,-13,-82
 Clsn2[1] =   1,-80, 12,-96
1210,2, 0,0, 1
Clsn2: 2
 Clsn2[0] =  -7,-80, 34,  0
 Clsn2[1] =  11,-93, 24,-79
1210,3, 0,0, 1
Clsn1: 2
 Clsn1[0] = -14,-72, 17,-55
 Clsn1[1] =  54,-72, 91,-50
Clsn2: 4
 Clsn2[0] =  17,-71, 51,  0
 Clsn2[1] =  37,-82, 50,-69
 Clsn2[2] =  -9,-22, 17,  0
 Clsn2[3] = -14,-72, 91,-55
1210,4, 0,0, 3
Clsn2: 4
 Clsn2[0] =  52,  0, 14,-70
 Clsn2[1] =  33,-82, 45,-69
 Clsn2[2] =  -9,  0, 18,-19
 Clsn2[3] =   1,-71, 73,-56
1210,5, 0,0, 12
Clsn2: 3
 Clsn2[0] =  53,  0, -8,-40
 Clsn2[1] =   6,-73, 46,-32
 Clsn2[2] =  37,-68, 23,-84
1210,6, 0,0, 4
Clsn2: 2
 Clsn2[0] =  -7,-80, 34,  0
 Clsn2[1] =  11,-93, 24,-79
1210,3, 0,0, 4
Clsn2: 2
 Clsn2[0] =  19,  1,-13,-82
 Clsn2[1] =   1,-80, 12,-96
200, 0, 0,0, 3

;-----------------------------------
; Triple Kung Fu Palm
[Begin Action 3000]
Clsn2: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,0, 0,0, 3
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 2
Clsn2Default: 3
 Clsn2[0] =  31,  0,-34,-33
 Clsn2[1] =  -8,-67, 20,-33
 Clsn2[2] =   5,-81, 18,-67
1000,1, 0,0, 3
1000,2, 0,0, 4
1000,3, 0,0, 1
Clsn1: 1
 Clsn1[0] =  68,-71,  9,-40
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-71, 68,-40
1000,4, 0,0, 2
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-64, 68,-46
1000,5, 0,0, 2
1000,7, 0,0, 2
1000,2, 0,0, 2
1000,1, 0,0, 1
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 3
Clsn2Default: 3
 Clsn2[0] =  31,  0,-34,-33
 Clsn2[1] =  -8,-67, 20,-33
 Clsn2[2] =   5,-81, 18,-67
1000,2, 0,0, 2
1000,3, 0,0, 1
Clsn1: 1
 Clsn1[0] =  68,-71,  9,-40
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-71, 68,-40
1000,4, 0,0, 2
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-64, 68,-46
1000,5, 0,0, 2
1000,7, 0,0, 2
1000,2, 0,0, 2
1000,1, 0,0, 1
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 3
Clsn2Default: 3
 Clsn2[0] =  31,  0,-34,-33
 Clsn2[1] =  -8,-67, 20,-33
 Clsn2[2] =   5,-81, 18,-67
1000,2, 0,0, 2
1000,3, 0,0, 1
Clsn1: 1
 Clsn1[0] =  68,-71,  9,-40
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-71, 68,-40
1000,4, 0,0, 3
Clsn2: 4
 Clsn2[0] =  29,  0,-37,-32
 Clsn2[1] =  21,-32, -8,-65
 Clsn2[2] =   5,-74, 17,-61
 Clsn2[3] =  21,-64, 68,-46
1000,5, 0,0, 5
1000,6, 0,0, 5
1000,5, 0,0, 5
1000,6, 0,0, 5
1000,5, 0,0, 5
1000,6, 0,0, 4
Clsn2Default: 3
 Clsn2[0] =  31,  0,-34,-33
 Clsn2[1] =  -8,-67, 20,-33
 Clsn2[2] =   5,-81, 18,-67
1000,7, 0,0, 4
1000,1, 0,0, 3
Clsn2: 3
 Clsn2[0] =  32,-39,-25,  0
 Clsn2[1] =  16,-39,-10,-73
 Clsn2[2] =   2,-86, 13,-72
1000,0, 0,0, 3
Clsn2: 2
 Clsn2[0] = -15,  0, 15,-80
 Clsn2[1] =  -6,-94,  7,-80
200,0, -5,0, 3

;-----------------------------------
; Smash Kung Fu Upper
[Begin Action 3050]
Clsn2Default: 1
 Clsn2[0] = -12,  0, 16,-94
1100,0, 0,0, 1
1100,0, 0,0, 1
1100,1, 0,0, 1
Clsn2Default: 2
 Clsn2[0] =  28,  0, -3,-85
 Clsn2[1] =  23,-92, 34,-76
1100,2, 0,0, 1
1100,3, 0,0, 1
Clsn2: 2
 Clsn2[0] =  31,  0, -3,-85
 Clsn2[1] =  14,-96, 27,-80
1100,4, 0,0, 1
Clsn2: 1
 Clsn2[0] =  32,  0,  1,-96
1100,5, 0,0, 1
Clsn1: 1
 Clsn1[0] =  30,-40, 55,-131
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  30,-131, 44,-93
1100,6, 0,0, 2
Clsn1: 1
 Clsn1[0] =  30,-93, 44,-131
1100,6, 0,0, 3
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  27,-110, 38,-93
1100,7, 0,0, 5
1100,6, 0,0, 5
1100,7, 0,0, 5
1100,6, 0,0, 5
1100,8, 0,0, 5
Clsn2: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  32,-80, 43,-97
1100,9, 0,0, 3
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,1, 0,0, 2
200,0, 0,0, 2

; Smash Kung Fu Upper (success)
[Begin Action 3051]
Clsn2Default: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  27,-110, 38,-93
1100,6, 0,0, 5
1100,7, 0,0, 5
1100,6, 0,0, 5
1100,7, 0,0, 5
1100,6, 0,0, 5
1100,7, 0,0, 5
1100,6, 0,0, 5
1100,8, 0,0, 4
Clsn2: 2
 Clsn2[0] =  32,  0,  1,-96
 Clsn2[1] =  32,-80, 43,-97
1100,9, 0,0, 3
Clsn2Default: 2
 Clsn2[0] = -10,  0, 19,-80
 Clsn2[1] =   0,-94, 12,-80
200,1, 0,0, 2
200,0, 0,0, 2

;--------------------
; GUARDSTART (stand)
[Begin Action 120]
Clsn2Default: 4
 Clsn2[0] =  14,  0,-13,-43
 Clsn2[1] = -11,-43, 12,-86
 Clsn2[2] =  -1,-86,-11,-94
 Clsn2[3] = -20,-78, 13,-58
120,0, 0,0, 1

; GUARDSTART (crouch)
[Begin Action 121]
Clsn2: 2
 Clsn2[0] = -17,  0, 16,-56
 Clsn2[1] =   3,-56, -9,-64
121,0, 0,0, 1

; GUARDSTART (air)
[Begin Action 122]
Clsn2: 2
 Clsn2[0] =  22,-38,  0,-88
 Clsn2[1] =   9,-31, -9,-76
122,0, 0,0, 1

; GUARD (stand)
[Begin Action 130]
Clsn2Default: 4
 Clsn2[0] =  14,  0,-13,-43
 Clsn2[1] = -11,-43, 12,-86
 Clsn2[2] =  -1,-86,-11,-94
 Clsn2[3] = -20,-78, 13,-58
120,0, 0,0, -1

; GUARD (crouch)
[Begin Action 131]
Clsn2: 2
 Clsn2[0] = -17,  0, 16,-56
 Clsn2[1] =   3,-56, -9,-64
121,0, 0,0, -1

; GUARD (air)
[Begin Action 132]
Clsn2: 2
 Clsn2[0] =  22,-38,  0,-88
 Clsn2[1] =   9,-31, -9,-76
122,0, 0,0, -1

; GUARDEND (stand)
[Begin Action 140]
Clsn2Default: 4
 Clsn2[0] =  14,  0,-13,-43
 Clsn2[1] = -11,-43, 12,-86
 Clsn2[2] =  -1,-86,-11,-94
 Clsn2[3] = -20,-78, 13,-58
120,0, 0,0, 5

; GUARDEND (crouch)
[Begin Action 141]
Clsn2: 2
 Clsn2[0] = -17,  0, 16,-56
 Clsn2[1] =   3,-56, -9,-64
121,0, 0,0, 1

; GUARDEND (air)
[Begin Action 142]
Clsn2: 2
 Clsn2[0] =  22,-38,  0,-88
 Clsn2[1] =   9,-31, -9,-76
122,0, 0,0, 1

; Hit back while guarding (stand)
[Begin Action 150]
Clsn2Default: 4
 Clsn2[0] =  14,  0,-13,-43
 Clsn2[1] = -11,-43, 12,-86
 Clsn2[2] =  -1,-86,-11,-94
 Clsn2[3] = -20,-78, 13,-58
120,1, 0,0, 4
120,2, 0,0, 8
120,1, 0,0, 4
120,0, 0,0, -1

; Hit back while guarding (crouch)
[Begin Action 151]
Clsn2: 2
 Clsn2[0] = -17,  0, 16,-56
 Clsn2[1] =   3,-56, -9,-64
121,0, 0,0, -1

; Hit back while guarding (air)
[Begin Action 152]
Clsn2: 2
 Clsn2[0] =  22,-38,  0,-88
 Clsn2[1] =   9,-31, -9,-76
122,0, 0,0, -1

;---------------------------
; Stand/Air Hit high (light)
[Begin Action 5000]
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -17,-94, -4,-79
5000, 0, 0,0, 4
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -12,-77,-25,-94
5000,10, 0,0, 4

;Stand/Air Hit high (medium)
[Begin Action 5001]
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -12,-77,-25,-94
5000,10, 0,0, 5
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -32,-89,-15,-60
5000,11, 0,0, 5

;Stand/Air Hit high (hard)
[Begin Action 5002]
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -32,-89,-15,-60
5000,11, 0,0, 5
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -14,-55,-37,-87
5000,20, 0,0, 5

;---------------------------
;Stand Recover high (light)
[Begin Action 5005]
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -32,-89,-15,-60
5000,11, 0,0, 3
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -12,-77,-25,-94
5000,10, 0,0, 3
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -17,-94, -4,-79
5000, 0, 0,0, -1

;Stand Recover high (medium)
[Begin Action 5006]
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -14,-55,-37,-87
5000,20, 0,0, 3
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -32,-89,-15,-60
5000,11, 0,0, 4
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -12,-77,-25,-94
5000,10, 0,0, 4
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -17,-94, -4,-79
5000, 0, 0,0, -1

;Stand Recover high (hard)
[Begin Action 5007]
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -14,-55,-37,-87
5000,21, 0,0, 5
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -32,-89,-15,-60
5000,11, 0,0, 4
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -12,-77,-25,-94
5000,10, 0,0, 4
Clsn2: 2
 Clsn2[0] = -18,-79, 16,  0
 Clsn2[1] = -17,-94, -4,-79
5000, 0, 0,0, -1

;---------------------------
;Stand/Air Hit low (light)
[Begin Action 5010]
Clsn2: 2
 Clsn2[0] =  16,  0,-24,-76
 Clsn2[1] = -12,-72,  1,-88
5010, 0, 0,0, 5
Clsn2: 2
 Clsn2[0] = -27,-76, 16,  0
 Clsn2[1] = -12,-66,  1,-81
5010,10, 0,0, 5

;Stand/Air Hit low (medium)
[Begin Action 5011]
Clsn2: 2
 Clsn2[0] = -27,-76, 16,  0
 Clsn2[1] = -12,-66,  1,-81
5010,10, 0,0, 5
Clsn2: 1
 Clsn2[0] = -27,-76, 16,  0
5010,20, 0,0, 5
Clsn2: 1
 Clsn2[0] = -27,-76, 16,  0
5010,21, 0,0, 5

;Stand/Air Hit low (hard)
[Begin Action 5012]
Clsn2Default: 1
 Clsn2[0] = -27,-76, 16,  0
5010,20, 0,0, 1
5010,21, 0,0, 5
5010,20, 0,0, 5
5010,21, 0,0, 5

;---------------------------
;Stand Recover low (light)
[Begin Action 5015]
Clsn2: 2
 Clsn2[0] = -27,-76, 16,  0
 Clsn2[1] = -12,-66,  1,-81
5010,10, 0,0, 1
Clsn2: 2
 Clsn2[0] =  16,  0,-24,-76
 Clsn2[1] = -12,-72,  1,-88
5010, 0, 0,0, -1

;Stand Recover low (medium)
[Begin Action 5016]
Clsn2: 1
 Clsn2[0] = -27,-76, 16,  0
5010,20, 0,0, 1
Clsn2: 2
 Clsn2[0] = -27,-76, 16,  0
 Clsn2[1] = -12,-66,  1,-81
5010,10, 0,0, 4
Clsn2: 2
 Clsn2[0] =  16,  0,-24,-76
 Clsn2[1] = -12,-72,  1,-88
5010, 0, 0,0, -1

;Stand Recover low (hard)
[Begin Action 5017]
Clsn2: 1
 Clsn2[0] = -27,-76, 16,  0
5010,20, 0,0, 1
Clsn2: 2
 Clsn2[0] = -27,-76, 16,  0
 Clsn2[1] = -12,-66,  1,-81
5010,10, 0,0, -1

;---------------------------
;Crouch Hit (light)
[Begin Action 5020]
Clsn2Default: 3
 Clsn2[0] =  18,  0,-15,-27
 Clsn2[1] =  11,-27,-15,-50
 Clsn2[2] =  -2,-49,-14,-62
5020, 0, 0,0, 5
5020,10, 0,0, 5

;Crouch Hit (medium)
[Begin Action 5021]
Clsn2Default: 3
 Clsn2[0] =  18,  0,-15,-27
 Clsn2[1] =  11,-27,-15,-50
 Clsn2[2] =  -2,-49,-14,-62
5020,10, 0,0, 5
5020,20, 0,0, 5

;Crouch Hit (hard)
[Begin Action 5022]
Clsn2Default: 3
 Clsn2[0] =  18,  0,-15,-27
 Clsn2[1] =  11,-27,-15,-50
 Clsn2[2] =  -2,-49,-14,-62
5020,20, 0,0, 5
5020,20, 0,0, 5

;---------------------------
;Crouch Recover (light)
[Begin Action 5025]
Clsn2Default: 3
 Clsn2[0] =  18,  0,-15,-27
 Clsn2[1] =  11,-27,-15,-50
 Clsn2[2] =  -2,-49,-14,-62
5020,10, 0,0, 1
5020, 0, 0,0, -1

;Crouch Recover (medium)
[Begin Action 5026]
Clsn2Default: 3
 Clsn2[0] =  18,  0,-15,-27
 Clsn2[1] =  11,-27,-15,-50
 Clsn2[2] =  -2,-49,-14,-62
5020,20, 0,0, 3
5020,10, 0,0, 5
5020, 0, 0,0, -1

;Crouch Recover (hard)
[Begin Action 5027]
Clsn2Default: 3
 Clsn2[0] =  18,  0,-15,-27
 Clsn2[1] =  11,-27,-15,-50
 Clsn2[2] =  -2,-49,-14,-62
5020,20, 0,0, 4
5020,10, 0,0, 4
5020, 0, 0,0, -1

;---------------------------
;Stand/Air Hit back
[Begin Action 5030]
Clsn2: 2
 Clsn2[0] = -21,-88,  5,-61
 Clsn2[1] =  -8,-66, 16,-38
5030, 0, 0,0, 5

;Stand/Air Hit transition
[Begin Action 5035]
Clsn2: 2
 Clsn2[0] = -21,-88,  5,-61
 Clsn2[1] =  -8,-66, 16,-38
5030, 0, 0,0, 4
Clsn2: 2
 Clsn2[0] =  19,-39, -5,-66
 Clsn2[1] =   2,-57,-26,-83
5030,10, 0,0, 7

;---------------------------
;Air Recover
[Begin Action 5040]
Clsn2: 1
 Clsn2[0] = -18,-77, 18,-42
42,5, 0,0, 3
Clsn2: 1
 Clsn2[0] = -18,-77, 18,-42
42,4, 0,0, 3
Clsn2: 1
 Clsn2[0] = -18,-77, 18,-42
42,3, 0,0, 3
Clsn2: 1
 Clsn2[0] =  14,-30,-17,-75
41,4, 0,0, 3
Clsn2: 2
 Clsn2[0] = -11,-33, 14,-77
 Clsn2[1] =  -2,-93, 11,-76
41,5, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-84, 14,-27
 Clsn2[1] =  -3,-99,  9,-84
41,6, 0,0, 4
Loopstart
Clsn2Default: 2
 Clsn2[0] =  14,-23,-11,-90
 Clsn2[1] =  -4,-105,  9,-89
41,7, 0,0, 4
41,8, 0,0, 4

;---------------------------
;Air Fall (going up)
[Begin Action 5050]
Clsn2Default: 2
 Clsn2[0] =  24,-44, -2,-76
 Clsn2[1] =  -2,-44,-33,-67
5030,30, 0,0, 5
5030,31, 0,0, 5

;---------------------------
;Air Fall (up-type, going up)
[Begin Action 5051]
Clsn2: 1
 Clsn2[0] = -19,-105, 14,-25
5060, 0, 0,0, 3
Clsn2: 1
 Clsn2[0] = -19,-105, 14,-25
5060, 1, 0,0, 3

;---------------------------
;Air Fall (up-type, coming down)
[Begin Action 5061]
Clsn2: 2
 Clsn2[0] =   5,-61,-24,-98
 Clsn2[1] =  -8,-65, 20,-30
5030, 0, 0,0, 5
Clsn2: 2
 Clsn2[0] = -31,-85,  0,-55
 Clsn2[1] =  26,-32, -4,-65
5030,10, 0,0, 5
Clsn2: 1
 Clsn2[0] = -33,-69, 24,-44
5030,30, 0,0, 5
Clsn2: 2
 Clsn2[0] =   2,-71,-25,-42
 Clsn2[1] =   0,-58, 22,-86
5030,40, 0,0, 5
Clsn2: 2
 Clsn2[0] =   5,-72,-19,-34
 Clsn2[1] =  18,-96, -4,-63
5030,50, 0,0, 5
Clsn2: 1
 Clsn2[0] = -20,-84,  9,-20
5060,10, 0,0, -1

;---------------------------
;Tripped
[Begin Action 5070]
Clsn2: 2
 Clsn2[0] =  16,  0,-11,-76
 Clsn2[1] =   0,-91, 11,-76
5010,10, 8, 0, 5
Clsn2: 2
 Clsn2[0] = -13,-57, 10,-30
 Clsn2[1] =  -2,-57,-27,-88
5030, 0,-8, 0, 5
Clsn2: 2
 Clsn2[0] =  12,-39,-13,-66
 Clsn2[1] =  -6,-57,-34,-83
5030,10,-8, 0, -1

;---------------------------
;LieDown Hit (stay down)
[Begin Action 5080]
Clsn2Default: 1
 Clsn2[0] =  22,  0,-26,-21
5040,20, 0,0, 4
5040, 0, 0,0, 4
5040,10, 0,0, -1

;---------------------------
;LieDown Hit (hit up into air)
[Begin Action 5090]
Clsn2: 2
 Clsn2[0] =  19,-39, -5,-66
 Clsn2[1] =   2,-57,-26,-83
5030,10, 0,0, 7

;---------------------------
; Hit ground from fall
[Begin Action 5100]
Clsn2Default: 1
 Clsn2[0] =  22,  0,-26,-21
5040, 0, 0,0, 3

; Bounce into air
[Begin Action 5160]
Clsn2: 1
 Clsn2[0] = -30,-47, 23,-23
5030,30, 0,20, -1

; Hit ground from bounce
[Begin Action 5170]
Clsn2: 1
 Clsn2[0] =  22,  0,-26,-21
5040, 0, 0,0, 3

;---------------------------
; Hit ground from fall (up-type)
[Begin Action 5101]
Clsn2Default: 1
 Clsn2[0] =  22,  0,-26,-21
5040,1, 0,0, 4
5040,0, 0,0, 2

;---------------------------
; LieDown
[Begin Action 5110]
Clsn2: 1
 Clsn2[0] =  22,  0,-26,-21
5040,10, 0,0, 1

; Get up from LieDown
[Begin Action 5120]
Clsn2Default: 1
 Clsn2[0] =  17,  0,-13,-53
5040,11, 0,0, 5
11,2, 0,0, 3
11,1, 0,0, 3
11,0, 0,0, 3

;LieDead animation
[Begin Action 5150]
Clsn2: 1
 Clsn2[0] =  22,  0,-26,-21
5040,10, 0,0, 1

;---------------------------
; Fall-recovery near ground
[Begin Action 5200]
Clsn2: 1
 Clsn2[0] =  16,-46,-14,-75
41,4, 0,-120, 3, VH
Clsn2: 1
 Clsn2[0] = -18,-75, 18,-44
42,3, 0,0, 4
Clsn2: 1
 Clsn2[0] =  14,-45,-17,-73
41,4, 0,0, 4
Clsn2: 2
 Clsn2[0] =  -8,-28, 10,-81
 Clsn2[1] =   6,-81, -5,-94
41,1, 0,0, -1

;Fall-recovery in mid-air
[Begin Action 5210]
Clsn2: 1
 Clsn2[0] = -18,-75, 18,-44
42,5, 0,0, 3
Clsn2: 1
 Clsn2[0] = -18,-75, 18,-44
42,4, 0,0, 3
Clsn2: 1
 Clsn2[0] = -18,-75, 18,-44
42,3, 0,0, 3
Clsn2: 1
 Clsn2[0] =  14,-45,-17,-73
41,4, 0,0, 3
Clsn2: 2
 Clsn2[0] = -11,-33, 14,-77
 Clsn2[1] =  -2,-93, 11,-76
41,5, 0,0, 4
Clsn2: 2
 Clsn2[0] = -11,-84, 14,-27
 Clsn2[1] =  -3,-99,  9,-84
41,6, 0,0, 4
Loopstart
Clsn2Default: 2
 Clsn2[0] =  14,-23,-11,-90
 Clsn2[1] =  -4,-105,  9,-89
41,7, 0,0, 4
41,8, 0,0, 4

;---------------------------
; Dizzy
[Begin Action 5300]
Clsn2Default: 1
 Clsn2[0] =  22,  0,-20,-87
5300,0, 0,0, 8
5300,1, 0,0, 8
5300,2, 0,0, 8
5300,3, 0,0, 8
5300,2, 0,0, 8
5300,1, 0,0, 8
; KFM's constants and state file.
; There are comments scattered through this file, so you may like to
; take a look if would like to learn more about the cns.

; KFM̒萔ƏԂ̃t@CłB
; ̃t@C̒ɂ͒߂U炳Ă̂ŁACNSK
; ǂł݂炢łB

[Data]
;Amount of life to start with
;̗̓Q[W̏l
life = 1000
;attack power (more is stronger)
;U_[W
attack = 100
;defensive power (more is stronger)
;̗̓p[
defence = 100
;Percentage to increase defense everytime player is knocked down
fall.defence_up = 50
;Time which player lies down for, before getting up
liedown.time = 60
;Number of points for juggling
airjuggle = 15
;Default hit spark number for HitDefs
sparkno = 2
;Default guard spark number
guard.sparkno = 40
;1 to enable echo on KO
KO.echo = 0
;Volume offset (negative for softer)
volume = 0
;Variables with this index and above will not have their values
;reset to 0 between rounds or matches. There are 60 int variables,
;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39.
;If omitted, then it defaults to 60 and 40 for integer and float
;variables repectively, meaning that none are persistent, i.e. all
;are reset. If you want your variables to persist between matches,
;you need to override state 5900 from common1.cns.
IntPersistIndex = 60
FloatPersistIndex = 40

[Size]
xscale = 1          ;Horizontal scaling factor.
yscale = 1         ;Vertical scaling factor.
ground.back = 15     ;Player width (back, ground)
ground.front = 16    ;Player width (front, ground)
air.back = 12        ;Player width (back, air)
air.front = 12       ;Player width (front, air)
height = 60          ;Height of player (for opponent to jump over)
attack.dist = 160    ;Default attack distance
proj.attack.dist = 90 ;Default attack distance for projectiles
proj.doscale = 0     ;Set to 1 to scale projectiles too
head.pos = -5, -90   ;Approximate position of head
mid.pos = -5, -60    ;Approximate position of midsection
shadowoffset = 0     ;Number of pixels to vertically offset the shadow
draw.offset = 0,0    ;Player drawing offset in pixels (x, y)

[Velocity]
walk.fwd  = 2.4      ;Walk forward
walk.back = -2.2     ;Walk backward
run.fwd  = 4.6, 0    ;Run forward (x, y)
run.back = -4.5,-3.8 ;Hop backward (x, y)
jump.neu = 0,-8.4    ;Neutral jumping velocity (x, y)
jump.back = -2.55    ;Jump back Speed (x, y)
jump.fwd = 2.5       ;Jump forward Speed (x, y)
runjump.back = -2.55,-8.1 ;Running jump speeds (opt)
runjump.fwd = 4,-8.1      ;.
airjump.neu = 0,-8.1      ;.
airjump.back = -2.55      ;Air jump speeds (opt)
airjump.fwd = 2.5         ;.

[Movement]
airjump.num = 1      ;Number of air jumps allowed (opt)
airjump.height = 35  ;Minimum distance from ground before you can air jump (opt)
yaccel = .44         ;Vertical acceleration
stand.friction = .85  ;Friction coefficient when standing
crouch.friction = .82 ;Friction coefficient when crouching


[Remap]
x = x
y = y
z = z
a = a
b = b
c = c
s = s

;-| Default Values |-------------------------------------------------------
[Defaults]
; Default value for the "time" parameter of a Command. Minimum 1.
command.time = 15

; Default value for the "buffer.time" parameter of a Command. Minimum 1,
; maximum 30.
command.buffer.time = 1


;-| Super Motions |--------------------------------------------------------
;The following two have the same name, but different motion.
;Either one will be detected by a "command = TripleKFPalm" trigger.
;Time is set to 20 (instead of default of 15) to make the move
;easier to do.
;
[Command]
name = "TripleKFPalm"
command = ~D, DF, F, D, DF, F, x
time = 20

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

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

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

;-| Special Motions |------------------------------------------------------
[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 = "FF_ab"
command = F, F, a+b

[Command]
name = "FF_a"
command = F, F, a

[Command]
name = "FF_b"
command = F, F, b

;-| Double Tap |-----------------------------------------------------------
[Command]
name = "FF"     ;Required (do not remove)
command = F, F
time = 10

[Command]
name = "BB"     ;Required (do not remove)
command = B, B
time = 10

;-| 2/3 Button Combination |-----------------------------------------------
[Command]
name = "recovery";Required (do not remove)
command = x+y
time = 1

;-| Dir + Button |---------------------------------------------------------
[Command]
name = "down_a"
command = /$D,a
time = 1

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

;-| Single Button |---------------------------------------------------------
[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

;-| Hold Dir |--------------------------------------------------------------
[Command]
name = "holdfwd";Required (do not remove)
command = /$F
time = 1

[Command]
name = "holdback";Required (do not remove)
command = /$B
time = 1

[Command]
name = "holdup" ;Required (do not remove)
command = /$U
time = 1

[Command]
name = "holddown";Required (do not remove)
command = /$D
time = 1

;---------------------------------------------------------------------------
; 2. State entry
; --------------
; This is where you define what commands bring you to what states.
;
; Each state entry block looks like:
;   [State -1, Label]           ;Change Label to any name you want to use to
;                               ;identify the state with.
;   type = ChangeState          ;Don't change this
;   value = new_state_number
;   trigger1 = command = command_name
;   . . .  (any additional triggers)
;
; - new_state_number is the number of the state to change to
; - command_name is the name of the command (from the section above)
; - Useful triggers to know:
;   - statetype
;       S, C or A : current state-type of player (stand, crouch, air)
;   - ctrl
;       0 or 1 : 1 if player has control. Unless "interrupting" another
;                move, you'll want ctrl = 1
;   - stateno
;       number of state player is in - useful for "move interrupts"
;   - movecontact
;       0 or 1 : 1 if player's last attack touched the opponent
;                useful for "move interrupts"
;
; Note: The order of state entry is important.
;   State entry with a certain command must come before another state
;   entry with a command that is the subset of the first.
;   For example, command "fwd_a" must be listed before "a", and
;   "fwd_ab" should come before both of the others.
;
; For reference on triggers, see CNS documentation.
;
; Just for your information (skip if you're not interested):
; This part is an extension of the CNS. "State -1" is a special state
; that is executed once every game-tick, regardless of what other state
; you are in.


; Don't remove the following line. It's required by the CMD standard.
[Statedef -1]

;===========================================================================
;---------------------------------------------------------------------------
;Smash Kung Fu Upper (uses one super bar)
;X}bVEJt[EEbp[iQ[WxPj
[State -1, Smash Kung Fu Upper]
type = ChangeState
value = 3050
triggerall = command = "SmashKFUpper"
triggerall = power >= 1000
triggerall = statetype != A
trigger1 = ctrl
trigger2 = hitdefattr = SC, NA, SA, HA
trigger2 = stateno != [3050,3100)
trigger2 = movecontact

;---------------------------------------------------------------------------
;Triple Kung Fu Palm (uses one super bar)
;OJt[˂iQ[WxPj
[State -1, Triple Kung Fu Palm]
type = ChangeState
value = 3000
triggerall = command = "TripleKFPalm"
triggerall = power >= 1000
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = statetype != A
trigger2 = hitdefattr = SC, NA, SA, HA
trigger2 = stateno != [3000,3050)
trigger2 = movecontact

;===========================================================================
;This is not a move, but it sets up var(1) to be 1 if conditions are right
;for a combo into a special move (used below).
;Since a lot of special moves rely on the same conditions, this reduces
;redundant logic.
[State -1, Combo condition Reset]
type = VarSet
trigger1 = 1
var(1) = 0

[State -1, Combo condition Check]
type = VarSet
trigger1 = statetype != A
trigger1 = ctrl
trigger2 = (stateno = [200,299]) || (stateno = [400,499])
trigger2 = stateno != 440 ;Except for sweep kick
trigger2 = movecontact
var(1) = 1

;---------------------------------------------------------------------------
;Fast Kung Fu Knee (1/3 super bar)
;Jt[RiQ[WxP^Rj
[State -1, Fast Kung Fu Knee]
type = ChangeState
value = 1070
triggerall = command = "FF_ab"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Knee
;Jt[Rij
[State -1, Light Kung Fu Knee]
type = ChangeState
value = 1050
triggerall = command = "FF_a"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Knee
;Jt[Rij
[State -1, Strong Kung Fu Knee]
type = ChangeState
value = 1060
triggerall = command = "FF_b"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Fast Kung Fu Palm (1/3 super bar)
;Jt[˂iQ[WxP^Rj
[State -1, Fast Kung Fu Palm]
type = ChangeState
value = 1020
triggerall = command = "QCF_xy"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Palm
;Jt[˂ij
[State -1, Light Kung Fu Palm]
type = ChangeState
value = 1000
triggerall = command = "QCF_x"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Palm
;Jt[˂ij
[State -1, Strong Kung Fu Palm]
type = ChangeState
value = 1010
triggerall = command = "QCF_y"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Fast Kung Fu Upper (1/3 super bar)
;Jt[EEbp[
[State -1, Fast Kung Fu Upper]
type = ChangeState
value = 1120
triggerall = command = "upper_xy"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Upper
;Jt[EEbp[ij
[State -1, Light Kung Fu Upper]
type = ChangeState
value = 1100
triggerall = command = "upper_x"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Upper
;Jt[EEbp[ij
[State -1, Strong Kung Fu Upper]
type = ChangeState
value = 1110
triggerall = command = "upper_y"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Fast Kung Fu Blow (1/3 super bar)
[State -1, Fast Kung Fu Blow]
type = ChangeState
value = 1220
triggerall = command = "QCB_xy"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Blow
[State -1, Light Kung Fu Blow]
type = ChangeState
value = 1200
triggerall = command = "QCB_x"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Blow
[State -1, Strong Kung Fu Blow]
type = ChangeState
value = 1210
triggerall = command = "QCB_y"
trigger1 = var(1) ;Use combo condition (above)

;===========================================================================
;---------------------------------------------------------------------------
;Run Fwd
;_bV
[State -1, Run Fwd]
type = ChangeState
value = 100
trigger1 = command = "FF"
trigger1 = statetype = S
trigger1 = ctrl

;---------------------------------------------------------------------------
;Run Back
;ރ_bV
[State -1, Run Back]
type = ChangeState
value = 105
trigger1 = command = "BB"
trigger1 = statetype = S
trigger1 = ctrl

;---------------------------------------------------------------------------
;Kung Fu Throw
;
[State -1, Kung Fu Throw]
type = ChangeState
value = 800
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


;===========================================================================
;---------------------------------------------------------------------------
;Stand Light Punch
;p`
[State -1, Stand Light Punch]
type = ChangeState
value = 200
triggerall = command = "x"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = stateno = 200
trigger2 = time > 6

;---------------------------------------------------------------------------
;Stand Strong Punch
;p`
[State -1, Stand Strong Punch]
type = ChangeState
value = 210
triggerall = command = "y"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = (stateno = 200) && time > 5
trigger3 = (stateno = 230) && time > 6

;---------------------------------------------------------------------------
;Stand Light Kick
;LbN
[State -1, Stand Light Kick]
type = ChangeState
value = 230
triggerall = command = "a"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = (stateno = 200) && time > 7
trigger3 = (stateno = 230) && time > 9

;---------------------------------------------------------------------------
;Standing Strong Kick
;LbN
[State -1, Standing Strong Kick]
type = ChangeState
value = 240
triggerall = command = "b"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = (stateno = 200) && time > 5
trigger3 = (stateno = 230) && time > 6

;---------------------------------------------------------------------------
;Taunt
;
[State -1, Taunt]
type = ChangeState
value = 195
triggerall = command = "start"
trigger1 = statetype != A
trigger1 = ctrl

;---------------------------------------------------------------------------
;Crouching Light Punch
;Ⴊݎp`
[State -1, Crouching Light Punch]
type = ChangeState
value = 400
triggerall = command = "x"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl

;---------------------------------------------------------------------------
;Crouching Strong Punch
;Ⴊ݋p`
[State -1, Crouching Strong Punch]
type = ChangeState
value = 410
triggerall = command = "y"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl
trigger2 = (stateno = 400) || (stateno = 430)
trigger2 = (time > 9) || (movecontact && time > 5)

;---------------------------------------------------------------------------
;Crouching Light Kick
;ႪݎLbN
[State -1, Crouching Light Kick]
type = ChangeState
value = 430
triggerall = command = "a"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl
trigger2 = (stateno = 400) || (stateno = 430)
trigger2 = (time > 9) || (movecontact && time > 5)

;---------------------------------------------------------------------------
;Crouching Strong Kick
;Ⴊ݋LbN
[State -1, Crouching Strong Kick]
type = ChangeState
value = 440
triggerall = command = "b"
triggerall = command = "holddown"
trigger1 = statetype = C
trigger1 = ctrl
trigger2 = (stateno = 400) || (stateno = 430)
trigger2 = (time > 9) || (movecontact && time > 5)

;---------------------------------------------------------------------------
;Jump Light Punch
;󒆎p`
[State -1, Jump Light Punch]
type = ChangeState
value = 600
triggerall = command = "x"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600
trigger2 = statetime >= 7
trigger3 = stateno = 1350 ;Air blocking

;---------------------------------------------------------------------------
;Jump Strong Punch
[State -1, Jump Strong Punch]
type = ChangeState
value = 610
triggerall = command = "y"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 || stateno = 630 ;jump_x or jump_a
trigger2 = movecontact
trigger3 = stateno = 1350 ;Air blocking

;---------------------------------------------------------------------------
;Jump Light Kick
[State -1, Jump Light Kick]
type = ChangeState
value = 630
triggerall = command = "a"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 1350 ;Air blocking

;---------------------------------------------------------------------------
;Jump Strong Kick
;󒆋LbN
[State -1, Jump Strong Kick]
type = ChangeState
value = 640
triggerall = command = "b"
trigger1 = statetype = A
trigger1 = ctrl
trigger2 = stateno = 600 || stateno = 630 ;jump_x or jump_a
trigger2 = movecontact
trigger3 = stateno = 1350 ;Air blocking

[Statedef 0]
type = S
physics = S
sprpriority = 0

[State 0, 1]
type = ChangeAnim
trigger1 = Anim != 0 && Anim != 5
trigger2 = Anim = 5 && AnimTime = 0 ;Turn anim over
value = 0

[State 0, 2]
type = VelSet
trigger1 = Time = 0
y = 0

[State 0, 3] ;Stop moving if low velocity or 4 ticks pass
type = VelSet
trigger1 = abs(vel x) < 2
trigger2 = Time = 4
x = 0

[State 0, 4] ;Are you dead?
type = ChangeState
trigger1 = !alive
value = 5050

;---------------------------------------------------------------------------
; Stand to Crouch
[Statedef 10]
type    = C
physics = C
anim = 10

[State 10, 1]
type = VelMul
trigger1 = Time = 0
x = .75

[State 10, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 11

;---------------------------------------------------------------------------
; Crouching
[Statedef 11]
type    = C
physics = C
anim = 11
sprpriority = 0

[State 11, 1] ;Change from turning animation
type = ChangeAnim
trigger1 = Anim = 6 && AnimTime = 0
value = 11

;---------------------------------------------------------------------------
; Crouch to Stand
[Statedef 12]
type    = S
physics = S
anim = 12

[State 12, 1]
type = ChangeState
trigger1 = AnimTime = 0
value = 0

;---------------------------------------------------------------------------
; Walk
[Statedef 20]
type    = S
physics = S
sprpriority = 0

[State 20, 1]
type = VelSet
trigger1 = command = "holdfwd"
x = const(velocity.walk.fwd.x)

[State 20, 2]
type = VelSet
trigger1 = command = "holdback"
x = const(velocity.walk.back.x)

[State 20, 3]
type = ChangeAnim
triggerall = vel x > 0
trigger1 = Anim != 20 && Anim != 5
trigger2 = Anim = 5 && AnimTime = 0
value = 20

[State 20, 4]
type = ChangeAnim
triggerall = vel x < 0
trigger1 = Anim != 21 && Anim != 5
trigger2 = Anim = 5 && AnimTime = 0
value = 21

;---------------------------------------------------------------------------
; Jump Start
[Statedef 40]
type    = S
physics = S
anim = 40
ctrl = 0
sprpriority = 1

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

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

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

[State 40, 4]
type = VelSet
trigger1 = AnimTime = 0
x = ifelse(sysvar(1)=0, const(velocity.jump.neu.x), ifelse(sysvar(1)=1, const(velocity.jump.fwd.x), const(velocity.jump.back.x)))
y = const(velocity.jump.y)

[State 40, 5]
type = VelSet
trigger1 = AnimTime = 0
trigger1 = prevstateno = 100 ;RUN_FWD
trigger1 = sysvar(1) = 1
x = const(velocity.runjump.fwd.x)

[State 40, 6]
type = ChangeState
trigger1 = AnimTime = 0
value = 50
ctrl = 1

;---------------------------------------------------------------------------
; AirJump Start
[Statedef 45]
type    = A
physics = N
ctrl = 0
velset = 0,0

[State 45, 1]
type = ChangeAnim
trigger1 = SelfAnimExist(44)
value = 44

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

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

[State 45, 4]
type = VarSet
trigger1 = command = "holdfwd"
sysvar(1) = 1

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

[State 45, 6]
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 45, 7]
type = ChangeState
trigger1 = Time = 2
value = 50
ctrl = 1

;---------------------------------------------------------------------------
; Jump Up
[Statedef 50]
type    = A
physics = A

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

[State 50, 2]
type = ChangeAnim
trigger1 = Time = 0
value = ifelse((vel x)=0, 41, ifelse((vel x)>0, 42, 43))

[State 50, 3]
type = ChangeAnim
trigger1 = Vel y > -2
trigger1 = SelfAnimExist(anim + 3)
persistent = 0
value = Anim + 3

;---------------------------------------------------------------------------
; Jump Down (empty state for compatibility)
[Statedef 51]
type    = A
physics = A

[State 51, 1]
type = Null
trigger1 = 1

;---------------------------------------------------------------------------
; Jump Land
[Statedef 52]
type    = S
physics = S
ctrl = 0
anim = 47

[State 52, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 52, 3]
type = CtrlSet
trigger1 = Time = 3
value = 1

[State 52, 4]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; RUN_FWD
[Statedef 100]
type    = S
physics = S
anim = 100
sprpriority = 1

[State 100, 1]
type = VelSet
trigger1 = 1
x = const(velocity.run.fwd.x)

[State 100, 2] ;Prevent run from canceling into walk
type = AssertSpecial
trigger1 = 1
flag = NoWalk

[State 100, 3] ;Prevent from turning
type = AssertSpecial
trigger1 = 1
flag = NoAutoTurn

[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 0

;---------------------------------------------------------------------------
; RUN_BACK
[Statedef 105]
type    = A
physics = A
ctrl = 0
anim = 105
sprpriority = 1

[State 105, 1]
type = VelSet
trigger1 = Time = 0
x = const(velocity.run.back.x)
y = const(velocity.run.back.y)

[State 105, 2]
type = CtrlSet
trigger1 = Time = 2
value = 1

[State 105, 3]
type = ChangeState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 106

;---------------------------------------------------------------------------
; RUN_BACK2 (land)
[Statedef 106]
type    = S
physics = S
ctrl = 0
anim = 47

[State 106, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 106, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 106, 3]
type = MakeDust
trigger1 = Time = 2
pos = -5,-2
spacing = 1

[State 106, 4]
type = ChangeState
trigger1 = Time = 7
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; RUN_UP
[Statedef 110]
type    = S
physics = N

[State 110, 0]
type = CtrlSet
trigger1 = Time = 0
value = 0

[State 110, 1]
type = ChangeAnim
trigger1 = Time = 0
value = 110

[State 110, 2]
type = HitBy
trigger1 = Time = 0
value = SCA, NT, ST, HT
time = 30

[State 110, 3]
type = VelSet
trigger1 = Time = 0
x = 0
z = -7

[State 110, 4]
type = VelMul
trigger1 = 1
z = 0.8

[State 110, 5]
type = VelSet
trigger1 = AnimTime = -8
z = 0

[State 110, 7]
type = CtrlSet
trigger1 = AnimTime = 0
value = 1

[State 110, 8]
type = ChangeState
trigger1 = AnimTime = 0
value = 0

;---------------------------------------------------------------------------
; RUN_DOWN
[Statedef 115]
type    = S
physics = N

[State 115, 0]
type = CtrlSet
trigger1 = Time = 0
value = 0

[State 115, 1]
type = ChangeAnim
trigger1 = Time = 0
value = 110

[State 115, 2]
type = HitBy
trigger1 = Time = 0
value = SCA, NT, ST, HT
time = 30

[State 115, 3]
type = VelSet
trigger1 = Time = 0
x = 0
z = 7

[State 115, 4]
type = VelMul
trigger1 = 1
z = 0.8

[State 115, 5]
type = VelSet
trigger1 = AnimTime = -8
z = 0

[State 115, 7]
type = CtrlSet
trigger1 = AnimTime = 0
value = 1

[State 115, 8]
type = ChangeState
trigger1 = AnimTime = 0
value = 0

;---------------------------------------------------------------------------
; GUARD (start)
[Statedef 120]
type = U    ;Leave state type unchanged
physics = U ;Leave physics unchanged

[State 120, 1]
type = ChangeAnim
trigger1 = Time = 0
value = 120 + (statetype = C) + (statetype = A)*2

[State 120, 2]
type = StateTypeSet
trigger1 = Time = 0 && statetype = S
physics = S

[State 120, 3]
type = StateTypeSet
trigger1 = Time = 0 && statetype = C
physics = C

[State 120, 4]
type = StateTypeSet
trigger1 = Time = 0 && statetype = A
physics = A

[State 120, Hi to Lo]
type = StateTypeSet
trigger1 = statetype = S && command = "holddown"
statetype = C
physics = C

[State 120, Lo to Hi]
type = StateTypeSet
trigger1 = statetype = C && command != "holddown"
statetype = S
physics = S

[State 120, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 130 + (statetype = C) + (statetype = A)*2

[State 120, Stop Guarding]
type = ChangeState
trigger1 = command != "holdback"
trigger2 = !inguarddist
value = 140

;---------------------------------------------------------------------------
; STAND GUARD (guarding)
[Statedef 130]
type    = S
physics = S

[State 130, 1]
type = ChangeAnim
trigger1 = Anim != 130
value = 130

[State 130, Hi to Lo]
type = ChangeState
trigger1 = command = "holddown"
value = 131

[State 130, Stop Guarding]
type = ChangeState
trigger1 = command != "holdback"
trigger2 = !inguarddist
value = 140

;---------------------------------------------------------------------------
; CROUCH GUARD (guarding)
[Statedef 131]
type    = C
physics = C

[State 131, 1]
type = ChangeAnim
trigger1 = Anim != 131
value = 131

[State 131, Lo to Hi]
type = ChangeState
trigger1 = command != "holddown"
value = 130

[State 131, Stop Guarding]
type = ChangeState
trigger1 = command != "holdback"
trigger2 = !inguarddist
value = 140

;---------------------------------------------------------------------------
; AIR GUARD (guarding)
[Statedef 132]
type    = A
physics = N

[State 132, 1]
type = ChangeAnim
trigger1 = Anim != 132
value = 132

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

[State 132, 3]
type = VarSet
trigger1 = 1
sysvar(0) = (pos y >= 0) && (vel y > 0)

[State 132, 4]
type = VelSet
trigger1 = sysvar(0)
y = 0

[State 132, 5]
type = PosSet
trigger1 = sysvar(0)
y = 0

[State 132, 6]
type = ChangeState
trigger1 = sysvar(0)
trigger1 = command = "holdback"
trigger1 = inguarddist
value = 130

[State 132, 7]
type = ChangeState
trigger1 = sysvar(0)
value = 52

[State 132, Stop Guarding]
type = ChangeState
trigger1 = command != "holdback"
trigger2 = !inguarddist
value = 140

;---------------------------------------------------------------------------
; GUARD (end)
[Statedef 140]
type = U    ;Leave state type unchanged
physics = U ;Leave physics unchanged
ctrl = 1

[State 140, 1]
type = ChangeAnim
trigger1 = Time = 0
value = 140 + (statetype = C) + (statetype = A)*2

[State 140, 2]
type = StateTypeSet
trigger1 = Time = 0 && statetype = S
physics = S

[State 140, 3]
type = StateTypeSet
trigger1 = Time = 0 && statetype = C
physics = C

[State 140, 4]
type = StateTypeSet
trigger1 = Time = 0 && statetype = A
physics = A

[State 140, Hi to Lo]
type = StateTypeSet
trigger1 = statetype = S && command = "holddown"
statetype = C
physics = C

[State 140, Lo to Hi]
type = StateTypeSet
trigger1 = statetype = C && command != "holddown"
statetype = S
physics = S

;[State 140, 5] ;Implemented within engine
;type = ChangeState
;trigger1 = AnimTime = 0
;value = (statetype = C)*11 + (statetype = A)*51

;---------------------------------------------------------------------------
; SGUARDHIT (shaking)
[Statedef 150]
type    = S
movetype= H
physics = N
velset = 0,0

[State 150, 1]
type = ChangeAnim
trigger1 = 1
value = 150

[State 150, 2]
type = ChangeState
trigger1 = HitShakeOver
value = 151 + 2*(command = "holddown")

[State 150, Hi to Lo]
type = StateTypeSet
trigger1 = statetype = S && command = "holddown"
statetype = C
physics = C

[State 150, Lo to Hi]
type = StateTypeSet
trigger1 = statetype = C && command != "holddown"
statetype = S
physics = S

[State 150, 3]
type = ForceFeedback
trigger1 = time = 0
waveform = square
time = 3

;---------------------------------------------------------------------------
; SGUARDHIT2 (knocked back)
[Statedef 151]
type    = S
movetype= H
physics = S
anim = 150

[State 151, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1

[State 151, 2]
type = VelSet
trigger1 = Time = GetHitVar(slidetime)
trigger2 = HitOver
x = 0

[State 151, 3]
type = CtrlSet
trigger1 = Time = GetHitVar(ctrltime)
value = 1

[State 151, Hi to Lo]
type = StateTypeSet
trigger1 = statetype = S && command = "holddown"
statetype = C
physics = C

[State 151, Lo to Hi]
type = StateTypeSet
trigger1 = statetype = C && command != "holddown"
statetype = S
physics = S

[State 151, 4]
type = ChangeState
trigger1 = HitOver
value = 130
ctrl = 1

;---------------------------------------------------------------------------
; CGUARDHIT (shaking)
[Statedef 152]
type    = C
movetype= H
physics = N
velset = 0,0

[State 152, 1]
type = ChangeAnim
trigger1 = 1
value = 151

[State 152, 3]
type = ChangeState
trigger1 = HitShakeOver
value = 151 + 2*(command = "holddown")

[State 152, Hi to Lo]
type = StateTypeSet
trigger1 = statetype = S && command = "holddown"
statetype = C
physics = C

[State 152, Lo to Hi]
type = StateTypeSet
trigger1 = statetype = C && command != "holddown"
statetype = S
physics = S

[State 152, 4]
type = ForceFeedback
trigger1 = time = 0
waveform = square
time = 4

;---------------------------------------------------------------------------
; CGUARDHIT2 (knocked back)
[Statedef 153]
type    = C
movetype= H
physics = C
anim = 151

[State 153, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1

[State 153, 2]
type = VelSet
trigger1 = Time = GetHitVar(slidetime)
trigger2 = HitOver
x = 0

[State 153, 3]
type = CtrlSet
trigger1 = Time = GetHitVar(ctrltime)
value = 1

[State 153, Hi to Lo]
type = StateTypeSet
trigger1 = statetype = S && command = "holddown"
statetype = C
physics = C

[State 153, Lo to Hi]
type = StateTypeSet
trigger1 = statetype = C && command != "holddown"
statetype = S
physics = S

[State 153, 4]
type = ChangeState
trigger1 = HitOver
value = 131
ctrl = 1

;---------------------------------------------------------------------------
; AGUARDHIT (shaking)
[Statedef 154]
type    = A
movetype= H
physics = N
velset = 0,0

[State 154, 1]
type = ChangeAnim
trigger1 = 1
value = 152

[State 154, 2]
type = ChangeState
trigger1 = HitShakeOver
value = 155 ;AGUARDHIT2

[State 154, 3]
type = ForceFeedback
trigger1 = time = 0
waveform = square
time = 4

;---------------------------------------------------------------------------
; AGUARDHIT2 (knocked away)
[Statedef 155]
type    = A
movetype= H
physics = N
anim = 152

[State 155, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1
y = 1

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

[State 155, 3]
type = CtrlSet
trigger1 = Time = GetHitVar(ctrltime)
value = 1

[State 155, 4]
type = VarSet
trigger1 = 1
sysvar(0) = (pos y >= 0) && (vel y > 0)

[State 155, 5]
type = VelSet
trigger1 = sysvar(0)
y = 0

[State 155, 6]
type = PosSet
trigger1 = sysvar(0)
y = 0

[State 155, 6]
type = ChangeState
trigger1 = sysvar(0)
trigger1 = command = "holdback"
trigger1 = inguarddist
value = 130

[State 155, 7]
type = ChangeState
trigger1 = sysvar(0)
value = 52

;---------------------------------------------------------------------------
; LOSE (Time over)
[Statedef 170]
type = S
ctrl = 0
anim = 170
velset = 0,0

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

;---------------------------------------------------------------------------
; DRAWGAME (Time over)
[Statedef 175]
type = S
ctrl = 0
velset = 0,0

[State 175, 1] ; If no anim, use go to lose state.
type = ChangeState
trigger1 = Time = 0
trigger1 = !SelfAnimExist(175)
value = 170

[State 175, 2]
type = ChangeAnim
trigger1 = Time = 0
value = 175

[State 175, 3]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

;---------------------------------------------------------------------------
; PREINTRO
[Statedef 190]
type = S
ctrl = 0
velset = 0,0

[State 190, 1]
type = ChangeAnim
trigger1 = SelfAnimExist(190)
value = 190

[State 190, 2] ;Go straight to intro.
type = ChangeState
trigger1 = Time = 0
value = 191

;---------------------------------------------------------------------------
; INTRO (override this state to give character an intro)
[Statedef 191]
type = S
ctrl = 0

[State 191, 1]
type = ChangeState
trigger1 = Time = 0
value = 0

;---------------------------------------------------------------------------
; HITG_SHAKE
[Statedef 5000]
type    = S
movetype= H
physics = N
velset = 0,0

[State 5000, 1] ;Anim for HIT_LIGHT to HIT_HARD
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) != [3,5]
value = ifelse((GetHitVar(groundtype) = 1),5000,5010) + GetHitVar(animtype)

[State 5000, 2] ;Anim for HIT_BACK
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) = [3,5]
value = 5030

[State 5000, 3] ;Anim for HIT_UP/HIT_DIAGUP (only if it exists)
type = ChangeAnim
trigger1 = Time = 0
trigger1 = (GetHitVar(animtype) = [4,5]) && (SelfAnimExist(5047 + GetHitVar(animtype)))
value = 5047 + GetHitVar(animtype) ;5051 - 4 + type

[State 5000, 4] ;Freeze anim
type = ChangeAnim
trigger1 = Time > 0
value = anim

[State 5000, 5] ;State type gets set to aerial if getting hit up
type = StateTypeSet
trigger1 = Time = 0
trigger1 = GetHitVar(yvel) != 0 || GetHitVar(fall)
trigger2 = Pos Y != 0
statetype = a

[State 5000, 6]
type = ChangeState
trigger1 = HitShakeOver
trigger1 = GetHitVar(yvel) = 0 && !GetHitVar(fall)
value = 5001 ;HITG_SLIDE

[State 5000, 7]
type = ChangeState
trigger1 = HitShakeOver
value = 5030

[State 5000, FFB Light]
type = ForceFeedback
trigger1 = anim = 5000
trigger2 = anim = 5010
persistent = 0
time = 6
waveform = square

[State 5000, FFB Medium]
type = ForceFeedback
trigger1 = anim = 5001
trigger2 = anim = 5011
persistent = 0
time = 8
waveform = sinesquare
ampl = 110,-1,-.3

[State 5000, FFB Hard]
type = ForceFeedback
trigger1 = anim = 5012
trigger2 = anim = 5002
trigger3 = anim = 5030
persistent = 0
time = 15
waveform = sinesquare
ampl = 140

;---------------------------------------------------------------------------
; HITG_SLIDE
[Statedef 5001]
type    = S
movetype= H
physics = S

[State 5001, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1

[State 5001, 2]
type = ChangeAnim
trigger1 = AnimTime = 0
value = 5005 + GetHitVar(animtype) + (GetHitVar(groundtype)=2)*10

[State 5001, 3] ;Stop sliding back
type = VelMul
trigger1 = Time >= GetHitVar(slidetime)
x = .6

[State 5001, 4]
type = VelSet
trigger1 = HitOver
x = 0

[State 5001, 5]
type = DefenceMulSet
trigger1 = HitOver
value = 1

[State 5001, 6]
type = ChangeState
trigger1 = HitOver
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; HITC_SHAKE
[Statedef 5010]
type    = C
movetype= H
physics = N
velset = 0,0

[State 5010, 1] ;Anim for HIT_LIGHT to HIT_HARD
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) != [3,5]
value = 5020 + GetHitVar(animtype)

[State 5010, 2] ;Anim for HIT_BACK
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) = [3,5]
value = 5030

[State 5010, 3] ;Anim for HIT_UP/HIT_DIAGUP (only if it exists)
type = ChangeAnim
trigger1 = Time = 0
trigger1 = (GetHitVar(animtype) = [4,5]) && (SelfAnimExist(5047 + GetHitVar(animtype)))
value = 5047 + GetHitVar(animtype) ;5051 - 4 + type

[State 5010, 4] ;Freeze anim
type = ChangeAnim
trigger1 = Time > 0
value = anim

[State 5010, 5] ;State type gets set to aerial if getting hit up
type = StateTypeSet
triggerall = Time = 0
trigger1 = GetHitVar(yvel) != 0 || GetHitVar(fall)
trigger2 = Pos Y != 0
statetype = a

[State 5010, 6]
type = ChangeState
trigger1 = HitShakeOver
trigger1 = GetHitVar(yvel) = 0 && !GetHitVar(fall)
value = 5011 ;HITC_SLIDE

[State 5010, 7]
type = ChangeState
trigger1 = HitShakeOver
value = 5030

[State 5010, FFB Light]
type = ForceFeedback
trigger1 = anim = 5020
persistent = 0
time = 6
waveform = square

[State 5010, FFB Medium]
type = ForceFeedback
trigger1 = anim = 5021
persistent = 0
time = 8
waveform = sinesquare
ampl = 110,-1,-.3

[State 5010, FFB Hard]
type = ForceFeedback
trigger1 = anim = 5022
persistent = 0
time = 15
waveform = sinesquare
ampl = 140

;---------------------------------------------------------------------------
; HITC_SLIDE
[Statedef 5011]
type    = C
movetype= H
physics = C

[State 5011, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1

[State 5011, 2]
type = ChangeAnim
trigger1 = AnimTime = 0
value = 5025 + GetHitVar(animtype)

[State 5011, 3] ;Stop sliding back
type = VelMul
trigger1 = Time >= GetHitVar(slidetime)
x = .6

[State 5011, 4]
type = VelSet
trigger1 = HitOver
x = 0

[State 5011, 5]
type = DefenceMulSet
trigger1 = HitOver
value = 1

[State 5011, 6]
type = ChangeState
trigger1 = HitOver
value = 11
ctrl = 1


;---------------------------------------------------------------------------
; HITA_SHAKE
[Statedef 5020]
type    = A
movetype= H
physics = N
velset = 0,0

[State 5020, 1] ;Anim for HIT_LIGHT to HIT_HARD
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) != [3,5]
value = ifelse((GetHitVar(airtype) = 1),5000,5010) + GetHitVar(animtype)

[State 5020, 2] ;Anim for HIT_BACK
type = ChangeAnim
trigger1 = Time = 0
trigger1 = GetHitVar(animtype) = [3,5]
value = 5030

[State 5020, 3] ;Anim for HIT_UP/HIT_DIAGUP (only if it exists)
type = ChangeAnim
trigger1 = Time = 0
trigger1 = (GetHitVar(animtype) = [4,5]) && (SelfAnimExist(5047 + GetHitVar(animtype)))
value = 5047 + GetHitVar(animtype) ;5051 - 4 + type

[State 5020, 4] ;Freeze anim
type = ChangeAnim
trigger1 = Time > 0
value = anim

[State 5020, 5]
type = ChangeState
trigger1 = HitShakeOver
value = 5030

[State 5020, FFB Light]
type = ForceFeedback
trigger1 = anim = 5000
trigger2 = anim = 5010
persistent = 0
time = 6
waveform = square

[State 5020, FFB Medium]
type = ForceFeedback
trigger1 = anim = 5001
trigger2 = anim = 5011
persistent = 0
time = 8
waveform = sinesquare
ampl = 110,-1,-.3

[State 5020, FFB Hard]
type = ForceFeedback
trigger1 = anim = 5012
trigger2 = anim = 5002
trigger3 = anim = 5030
trigger4 = anim = [5051,5059]
persistent = 0
time = 15
waveform = sinesquare
ampl = 140

;---------------------------------------------------------------------------
; HITA_UP (initial going up)
[Statedef 5030]
type    = A
movetype= H
physics = N
ctrl = 0

[State 5030, 1]
type = VelAdd;Gravity
trigger1 = 1
y = GetHitVar(yaccel)

[State 5030, 2]
type = HitVelSet
trigger1 = Time = 0
x = 1
y = 1

[State 5030, 3]
type = ChangeState
triggerall = !HitFall
trigger1 = HitOver
trigger2 = Vel Y > 0    ;Hit ground
trigger2 = Pos Y >= 10  ;.
value = 5040 ;HITA_RECOV

[State 5030, 4]
type = ChangeState
triggerall = HitFall
trigger1 = HitOver
trigger2 = Vel Y > 0    ;Hit ground
trigger2 = Pos Y >= 10  ;.
value = 5050 ;HITA_FALL

[State 5030, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 5035 ;HITA_UP (transition)

;---------------------------------------------------------------------------
; HITA_UP_T (transition)
[Statedef 5035]
type    = A
movetype= H
physics = N

[State 5035, 1]
type = ChangeAnim
trigger1 = Time = 0
trigger1 = SelfAnimExist(5035)
trigger1 = Anim != [5051,5059] ;Not if in hit up anim
trigger1 = Anim != 5090 ;Not if hit off ground anim
value = 5035

[State 5035, 2]
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 5035, 3]
type = ChangeState
triggerall = !HitFall
trigger1 = HitOver  ;Hit is over
trigger2 = AnimTime = 0 ;Animation over
trigger3 = Vel Y > 0    ;Hit ground
trigger3 = Pos Y >= 10  ;.
trigger4 = Time = 0     ;No transition anim
trigger4 = Anim != 5035 ;.
value = 5040 ;HITA_RECOV

[State 5035, 4]
type = ChangeState
triggerall = HitFall
trigger1 = HitOver  ;Hit is over
trigger2 = AnimTime = 0 ;Anim is over
trigger3 = Vel Y > 0    ;Hit ground
trigger3 = Pos Y >= 10  ;.
trigger4 = Time = 0     ;No transition anim
trigger4 = Anim != 5035 ;.
value = 5050 ;HITA_FALL

;---------------------------------------------------------------------------
; HITA_RECOV (recovering in air, not falling)
[Statedef 5040]
type    = A
movetype= H
physics = N

[State 5040, 1]
type = ChangeState
trigger1 = !Alive
value = 5050

[State 5040, 2]
type = ChangeAnim
trigger1 = AnimTime = 0
trigger1 = Anim != 5040
trigger2 = Time = 0
trigger2 = Anim != 5035
value = 5040

[State 5040, 3]
type = CtrlSet
trigger1 = HitOver
value = 1

[State 5040, 4]
type = StateTypeSet
trigger1 = HitOver
movetype = I

[State 5040, 5]
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 5040, 6]
type = ChangeState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 52 ;JUMPLAND

;---------------------------------------------------------------------------
; HITA_FALL (knocked up, falling)
[Statedef 5050]
type    = A
movetype= H
physics = N

[State 5050, 1] ;Change anim when done with transition
type = ChangeAnim
trigger1 = AnimTime = 0
trigger1 = Anim = 5035
trigger2 = Time = 0     ;If no transition anim
trigger2 = Anim != 5035
trigger2 = (Anim != [5051, 5059]) && (Anim != [5061, 5069])
trigger2 = Anim != 5090 ;Not if hit off ground anim
value = 5050

[State 5050, 2] ;Coming down anim
type = ChangeAnim
trigger1 = anim = [5050,5059]
trigger1 = Vel Y >= ifelse(anim = 5050, 1, -2)
trigger1 = SelfAnimExist(anim+10)
value = anim+10
persistent = 0

[State 5050, 3] ;Gravity
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 5050, 4] ;Recover near ground
type = ChangeState
triggerall = Vel Y > 0
triggerall = Pos Y >= -20
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5200 ;HITFALL_RECOVER

[State 5050, 5]; Recover in mid air
type = ChangeState
triggerall = Vel Y > -1
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5210 ;HITFALL_AIRRECOVER

[State 5050, 6]
type = ChangeState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= ifelse((anim = [5051,5059]) || (anim = [5061,5069]), 0, 25)
value = 5100 ;HIT_BOUNCE

;---------------------------------------------------------------------------
; HIT_TRIP (shaking)
[Statedef 5070]
type    = A
movetype= H
physics = N
velset = 0,0

[State 5070, 1]
type = ChangeAnim
trigger1 = 1
value = 5070

[State 5070, 2]
type = ChangeState
trigger1 = HitShakeOver
value = 5071

[State 5070, 3]
type = ForceFeedback
trigger1 = time = 0
time = 12
waveform = sinesquare
ampl = 140

;---------------------------------------------------------------------------
; HIT_TRIP2 (fall through air)
[Statedef 5071]
type    = A
movetype= H
physics = N

[State 5071, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1
y = 1

[State 5071, 2] ;Acceleration
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 5071, 3] ;Hit ground
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 15
type = ChangeState
value = 5110

;---------------------------------------------------------------------------
; HITL_SHAKE
[Statedef 5080]
type    = L
movetype= H
physics = N
velset = 0,0

[State 5080, 1] ;Set default anim
type = VarSet
trigger1 = time = 0
sysvar(2) = ifelse (GetHitVar(yvel) = 0, 5080, 5090)

[State 5080, 2]
type = VarAdd
trigger1 = time = 0
trigger1 = (anim = [5081,5089]) || (anim = [5111,5119])
trigger1 = SelfAnimExist(sysvar(2) + (anim % 10))
sysvar(2) = anim % 10

[State 5080, 3] ;If 5090 doesn't exist, default to 5030
type = VarSet
trigger1 = time = 0
trigger1 = sysvar(2) = 5090
trigger1 = !SelfAnimExist(5090)
sysvar(2) = 5030

[State 5080, 3] ;Freeze
type = ChangeAnim
trigger1 = 1
value = sysvar(2)

[State 5080, 4]
type = ChangeState
trigger1 = HitShakeOver
trigger1 = GetHitVar(yvel) = 0
value = 5081 ;HITL_SLIDE

[State 5080, 5]
type = ChangeState
trigger1 = HitShakeOver
trigger1 = GetHitVar(yvel) != 0
value = 5030 ;HITA_UP

;---------------------------------------------------------------------------
; HITL_SLIDE
[Statedef 5081]
type    = L
movetype= H
physics = C

[State 5081, 1]
type = HitVelSet
trigger1 = Time = 0
x = 1

[State 5081, 2]
type = VelSet
trigger1 = HitOver
x = 0

[State 5081, 3] ;Don't show hit ground frame
type = VarSet
trigger1 = Time = 0
sysvar(0) = 1

[State 5081, 4]
type = ChangeState
trigger1 = HitOver
value = 5110 ;HIT_LIEDOWN

;---------------------------------------------------------------------------
; HIT_BOUNCE (hit ground)
[Statedef 5100]
type    = L
movetype= H
physics = N

[State 5100, 1]
type = VelSet
trigger1 = Time = 0
trigger1 = GetHitVar(fall.yvel) = 0
trigger1 = vel x > 1
x = 1

[State 5100, EnvShake]
type = FallEnvShake
trigger1 = Time = 0

[State 5100, Var] ;Save fall velocity
type = VarSet
trigger1 = Time = 0
sysvar(1) = floor(vel y)

[State 5100, 2] ;Hit ground anim (normal)
type = ChangeAnim
triggerall = time = 0
trigger1 = (anim != [5051,5059]) && (anim != [5061,5069])
trigger2 = !SelfAnimExist(5100 + (anim % 10))
value = 5100

[State 5100, 3] ;Hit ground anim (for hit up)
type = ChangeAnim
trigger1 = time = 0
trigger1 = (anim = [5051,5059]) || (anim = [5061,5069])
trigger1 = SelfAnimExist(5100 + (anim % 10))
value = 5100 + (anim % 10)

[State 5100, 4]
type = PosSet
trigger1 = Time = 0
y = 0

[State 5100, 5]
type = VelSet
trigger1 = Time = 0
y = 0

[State 5100, 6] ;Reduce speed
type = VelMul
trigger1 = Time = 0
x = 0.75

[State 5100, 7]
type = ChangeState
trigger1 = Time = 0
trigger1 = GetHitVar(fall.yvel) = 0
value = 5110 ;HIT_LIEDOWN

[State 5100, 8]
type = GameMakeAnim
trigger1 = Time = 1
value = 60 + (sysvar(1) > 5) + (sysvar(1) > 14)
pos = 0, 0
under = sysvar(1) <= 14

[State 5100, 9]
type = HitFallDamage
trigger1 = Time = 3

[State 5100, 10]
type = PlaySnd
trigger1 = Time = 1
value = F7, (sysvar(1) > 5) + (sysvar(1) > 14)

[State 5100, 11]
type = PosFreeze
trigger1 = 1

[State 5100, 12]
type = ChangeState
trigger1 = AnimTime = 0
value = 5101

[State 5100, 13]
type = ForceFeedback
trigger1 = Time = 0
waveform = sinesquare
ampl = 128,-3,-.2,.005
time = 20

;---------------------------------------------------------------------------
; HIT_BOUNCE (bounce into air)
[Statedef 5101]
type    = L
movetype= H
physics = N

[State 5101, 1] ;Coming hit ground anim (normal)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim != [5101,5109]
trigger2 = !SelfAnimExist(5160 + (anim % 10))
value = 5160

[State 5101, 2] ;Coming hit ground anim (for hit up)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim = [5101,5109]
trigger1 = SelfAnimExist(5160 + (anim % 10))
value = 5160 + (anim % 10)

[State 5101, 3]
type = HitFallVel
trigger1 = Time = 0

[State 5101, 4]
type = PosSet
trigger1 = Time = 0
y = 20

[State 5101, 5] ;Acceleration
type = VelAdd
trigger1 = 1
y = .4

[State 5101, 6] ;Hit ground
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 12
type = ChangeState
value = 5110

;---------------------------------------------------------------------------
; HIT_LIEDOWN
[Statedef 5110]
type    = L
movetype= H
physics = N

[State 5110, EnvShake]
type = FallEnvShake
trigger1 = Time = 0

[State 5110, 1] ;For hit up/up-diag type (from state 5081)
type = ChangeAnim
persistent = 0
trigger1 = SelfAnimExist(5110 + (anim % 10))
trigger1 = anim = [5081,5089]
value = 5110 + (anim % 10)

[State 5110, 2] ;Hit ground anim (normal)
type = ChangeAnim
triggerall = time = 0
triggerall = anim != [5110,5119] ;Not already changed anim
trigger1 = anim != [5161,5169]
trigger2 = !SelfAnimExist(5170 + (anim % 10))
value = 5170

[State 5110, 3] ;Hit ground anim (for hit up)
type = ChangeAnim
triggerall = time = 0
triggerall = anim != [5110,5119] ;Not already changed anim
trigger1 = anim = [5161,5169]
trigger1 = SelfAnimExist(5170 + (anim % 10))
value = 5170 + (anim % 10)

[State 5110, 4]
type = HitFallDamage
trigger1 = Time = 0

[State 5110, 5]
type = PosSet
trigger1 = Time = 0
y = 0

[State 5110, Var] ;Get fall velocity
type = VarSet
trigger1 = Time = 0
trigger1 = GetHitVar(fall.yvel) != 0
sysvar(1) = floor(vel y)

[State 5110, 6]
type = PlaySnd
trigger1 = Time = 0
trigger1 = !SysVar(0)
value = F7, (sysvar(1) > 5) + (sysvar(1) > 14)

[State 5110, 7]
type = GameMakeAnim
trigger1 = Time = 0
trigger1 = !SysVar(0)
value = 60 + (sysvar(1) > 5) + (sysvar(1) > 14)
pos = 0, 0
under = sysvar(1) <= 14

[State 5110, 8]
type = VelSet
trigger1 = Time = 0
y = 0

[State 5110, 9] ;For hit up type
type = ChangeAnim
persistent = 0
triggerall = anim = [5171,5179]
triggerall = SelfAnimExist(5110 + (anim % 10))
trigger1 = AnimTime = 0
trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground anim
value = 5110 + (anim % 10)

[State 5110, 10] ;For normal
type = ChangeAnim
persistent = 0
triggerall = Anim != [5111,5119]
trigger1 = AnimTime = 0
trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground frame
value = 5110

[State 5110, 11] ;If just died
type = ChangeState
triggerall = !alive
trigger1 = AnimTime = 0
trigger2 = SysVar(0) ;SysVar(0) = 1 avoids hit ground frame
trigger3 = Anim = [5110,5119]
value = 5150

[State 5110, 12]
type = VarSet
trigger1 = SysVar(0)
trigger1 = Time = 0
sysvar(0) = 0

[State 5110, 13] ;Friction
type = VelMul
trigger1 = 1
x = 0.85

[State 5110, 14]
type = ForceFeedback
trigger1 = alive
trigger1 = Time = 0
time = 8
ampl = 240
waveform = sine

[State 5110, 15]
type = ForceFeedback
trigger1 = !alive
trigger1 = Time = 0
ampl = 200, 7, -.467
time = 30
waveform = sine

;---------------------------------------------------------------------------
; HIT_GETUP
[Statedef 5120]
type    = L
movetype= I
physics = N

[State 5120, 1a] ;Get up anim (normal)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim != [5111,5119]
trigger2 = !SelfAnimExist(5120 + (anim % 10))
value = 5120

[State 5120, 1b] ;Get up anim (for hit up/diag-up)
type = ChangeAnim
triggerall = time = 0
trigger1 = anim = [5111,5119]
trigger1 = SelfAnimExist(5120 + (anim % 10))
value = 5120 + (anim % 10)

[State 5120, 2]
type = VelSet
trigger1 = Time = 0
x = 0

[State 5120, 3]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

[State 5120, 4]
type = HitFallSet
trigger1 = AnimTime = 0
value = 1

[State 5120, 5] ;Can't be thrown right after getting up
type = NotHitBy
trigger1 = AnimTime = 0
value = , NT,ST,HT
time = 12

[State 5120, 6] ;Can't be hit right after getting up (short time)
type = NotHitBy
trigger1 = AnimTime = 0
value2 = SCA
time = 3

[State 5120, 7]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; HIT_LIEDEAD
[Statedef 5150]
type    = L
movetype= H
physics = N
sprpriority = -3

[State 5150, 1] ;Normal anim
type = ChangeAnim
triggerall = Time = 0
triggerall = SelfAnimExist(5140)
trigger1 = (anim != [5111,5119]) && (anim != [5171,5179])
trigger2 = !SelfAnimExist(5140 + (anim % 10))
value = 5140

[State 5150, 3] ;Hit up type anim
type = ChangeAnim
trigger1 = Time = 0
trigger1 = (anim = [5111,5119]) || (anim = [5171,5179])
trigger1 = SelfAnimExist(5140 + (anim % 10))
value = 5140 + (anim % 10)

[State 5150, 4] ;Match over anim
type = ChangeAnim
persistent = 0
;trigger1 = Time = 0
trigger1 = MatchOver = 1
trigger1 = Anim = [5140,5149]
trigger1 = SelfAnimExist(anim+10)
value = anim+10

[State 5150, 5] ;Switch to 5110 if liedead anim does not exist
type = ChangeAnim
trigger1 = Time = 0
trigger1 = Anim != [5140,5159]
trigger1 = Anim != [5110,5119]
value = 5110

[State 5150, 6] ;Friction
type = VelMul
trigger1 = 1
x = 0.85

[State 5150, 7] ;Friction
type = VelSet
trigger1 = Vel x < .05
persistent = 0
x = 0

[State 5150, 8]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

;---------------------------------------------------------------------------
; HIT_FALLRECOVER (still falling)
[Statedef 5200]
type    = A
movetype= H
physics = N

[State 5200, 1] ;Change anim if done with transition
type = ChangeAnim
trigger1 = Anim = 5035
trigger1 = AnimTime = 0
value = 5050

[State 5200, 2]
type = VelAdd
trigger1 = 1
y = GetHitVar(yaccel)

[State 5200, 3]
type = SelfState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 10
value = 5201

;---------------------------------------------------------------------------
; HIT_FALLRECOVER (on the ground)
[Statedef 5201]
type    = A
movetype= H
physics = A
anim = 5200

[State 5201, 1] ;Turn if not facing opponent
type = Turn
trigger1 = Time = 0
trigger1 = p2dist X < -5

[State 5201, 2]
type = VelSet
trigger1 = Time = 0
x = -.15
y = -3.5

[State 5201, 3]
type = PosSet
trigger1 = Time = 0
y = 0

[State 5201, 4]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

[State 5201, 5] ;Blink white
type = PalFX
trigger1 = Time = 0
time = 3
add = 128,128,128 ;256,256,256

[State 5201, 6]
type = GameMakeAnim
trigger1 = Time = 1
value = 60
pos = 0, 0
under = 1

;---------------------------------------------------------------------------
; HIT_AIRFALLRECOVER
[Statedef 5210]
type    = A
movetype= I
physics = N
anim = 5210
ctrl = 0

[State 5210, 1] ;Blink white
type = PalFX
trigger1 = Time = 0
time = 3
add = 128,128,128 ;256,256,256

[State 5210, 1]
type = PosFreeze
trigger1 = Time = 0
value = 4

[State 5210, 2] ;Turn if not facing opponent
type = Turn
trigger1 = Time = 0
trigger1 = p2dist X < -20

[State 5210, 1]
type = VelMul
trigger1 = Time = 4
x = .8
y = .8

[State 5210, 1]
type = VelAdd
trigger1 = Time = 4
y = -4.5

[State 5210, 1]
type = VelMul
trigger1 = Time = 4
trigger1 = Vel Y > 0
y = .5

[State 5210, 1]
type = VelAdd
trigger1 = Time = 4
trigger1 = Vel Y > -3
y = -2

[State 5210, 1]
type = VelAdd
trigger1 = Time = 4
trigger1 = Vel Y > -2
y = -1

[State 5210, 2] ;Go up
type = VelAdd
trigger1 = Time = 4
trigger1 = Command = "holdup"
y = -2

[State 5210, 2] ;Go down
type = VelAdd
trigger1 = Time = 4
trigger1 = Command = "holddown"
y = 1.5

[State 5210, 2] ;Go fwd
type = VelMul
trigger1 = Time = 4
trigger1 = Command = "holdfwd"
x = 1

[State 5210, 2] ;Go back
type = VelAdd
trigger1 = Time = 4
trigger1 = Command = "holdback"
x = -1

[State 5210, 3]
type = NotHitBy
trigger1 = Time = 0
value = SCA
time = 15

[State 5210, 4]
type = CtrlSet
trigger1 = Time = 20
value = 1

[State 5210, 5]
type = VelAdd;Gravity
trigger1 = Time >= 4
y = .35

[State 5210, 5] ;Land on ground
type = ChangeState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 52 ;JUMP_LAND
ctrl = 1

;---------------------------------------------------------------------------
; Continue?
[Statedef 5500]
type = S
ctrl = 0
anim = 5300
velset = 0,0

[State 5500, 1] ;Use continue animation if available
type = ChangeAnim
trigger1 = time = 0
trigger1 = SelfAnimExist(5500)
value = 5500

;---------------------------------------------------------------------------
; Initialize (at the start of the round)
[Statedef 5900]
type = S

[State 5900, 1] ;Clear all int variables
type = VarRangeSet
trigger1 = roundsexisted = 0
value = 0

[State 5900, 2] ;Clear all float variables
type = VarRangeSet
trigger1 = roundsexisted = 0
fvalue = 0

[State 5900, 3] ;Intro for round 1
type = ChangeState
trigger1 = roundno = 1
value = 190
[Statedef 170]
type = S
ctrl = 0
anim = 170
velset = 0,0

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

;---------------------------------------------------------------------------
; Win state decider
; CNS difficulty: basic
; CNS x: {
[Statedef 180]
type = S

[State 180, 1]
type = ChangeState
trigger1 = Time = 0
value = 181

;---------------------------------------------------------------------------
; Win pose 1 - Bow
; CNS difficulty: basic
; CNS x: {
[Statedef 181]
type = S
ctrl = 0
anim = 181
velset = 0,0

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

;---------------------------------------------------------------------------
; Introduction
; CNS difficulty: basic
; CNS x: {
[Statedef 191]
type = S
ctrl = 0
anim = 190
velset = 0,0

[State 191, 1] ;Freeze animation until PreIntro is over
type = ChangeAnim
trigger1 = RoundState = 0
value = 190

[State 191, 2] ;Assert this until you want "round 1, fight" to begin
type = AssertSpecial
trigger1 = 1
flag = Intro

[State 191, 3] ;Change to stand state when done
type = ChangeState
trigger1 = AnimTime = 0
value = 0

; You can delete the following two controllers if you're building your own
; character using KFM. These are the wood pieces that KFM kicks.
; ꂪKFMR؂̔łBKFMCNSM̃LɗpĂȂA
; ɂ̃Rg[炢łB
[State 191, Wood 1]
type = Explod
trigger1 = RoundState != 0
persistent = 0
anim = 191
postype = p1
pos = 260, -90
velocity = -4.2, -7
accel = 0, .32
removetime = 48

[State 191, Wood 2]
type = Explod
trigger1 = AnimElemTime(7) = 1
anim = 192
postype = p1
pos = 60, -70
velocity = 2, -4
accel = 0, .32
removetime = 35

; You can delete the following two controllers if you're building your own
; character using KFM. These play back the sounds of the wood block being
; broken.
[State 191, Snd 1]
type = PlaySnd
trigger1 = AnimElem = 7
value = F5,2
volume = -40

[State 191, Snd 2]
type = PlaySnd
trigger1 = AnimElemTime(7) = 3
value = F5,3
volume = -80

;---------------------------------------------------------------------------
; Taunt
; CNS difficulty: easy
[Statedef 195]
type = S
ctrl = 0
anim = 195
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 195, 1]
type = CtrlSet
trigger1 = Time = 40
value = 1

[State 195, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1


;---------------------------------------------------------------------------
; Stand Light Punch
; CNS difficulty: easy
[Statedef 200]
type    = S                      ;State-type: S-stand, C-crouch, A-air, L-liedown
movetype= A                      ;Move-type: A-attack, I-idle, H-gethit
physics = S                      ;Physics: S-stand, C-crouch, A-air
juggle  = 1                      ;Number of air juggle points move takes
;Commonly-used controllers:
velset = 0,0                     ;Set velocity (x,y) (Def: no change)
ctrl = 0                         ;Set ctrl (Def: no change)
anim = 200                       ;Change animation (Def: no change)
poweradd = 20                    ;Power to add (Def: 0)
sprpriority = 2                  ;Set p1's sprite layering priority to 2 (in front)

[State 200, 1]
type = HitDef
trigger1 = AnimElem = 3
attr = S, NA                     ;Attribute: Standing, Normal Attack
damage = 23, 0                   ;Damage that move inflicts, guard damage
animtype = Light                 ;Animation type: Light, Medium, Heavy, Back (def: Light)
guardflag = MA                   ;Flags on how move is to be guarded against
hitflag = MAF                    ;Flags of conditions that move can hit
priority = 3, Hit                ;Attack priority: 0 (least) to 7 (most), 4 default
;Hit/Miss/Dodge type (Def: Hit)
pausetime = 8, 8                 ;Time attacker pauses, time opponent shakes
sparkno = 0                      ;Spark anim no (Def: set above)
sparkxy = -10, -76               ;X-offset for the "hit spark" rel. to p2,
;Y-offset for the spark rel. to p1
hitsound = 5, 0                  ;Sound to play on hit
guardsound = 6, 0                ;Sound to play on guard
ground.type = High               ;Type: High, Low, Trip (def: Normal)
ground.slidetime = 5             ;Time that the opponent slides back
ground.hittime  = 10             ;Time opponent is in hit state
ground.velocity = -4             ;Velocity at which opponent is pushed
airguard.velocity = -1.9,-.8     ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2))
air.type = High                  ;Type: High, Low, Trip (def: same as ground.type)
air.velocity = -1.4,-3           ;X-velocity at which opponent is pushed,
;Y-velocity at which opponent is pushed
air.hittime = 12                 ;Time before opponent regains control in air

[State 200, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 0

[State 200, 7]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Standing strong punch
; CNS difficulty: easy
; Note the width controller. It makes KFM's push box larger, so he doesn't
; stand so close to the opponent. Hit Ctrl-C and look at the red bar at his
; feet.
; The sprpriority for this state is at -1, instead of the usual 2 for
; attacks. This makes KFM appear behind the opponent initially.
; The SprPriority controller in [State 210, 4] brings KFM to the front when
; his arm has swung over.
; To stop KFM from pausing in his swing frame, there is a ChangeAnim in
; [State 210, 3] that detects if the hit has come in contact with the
; opponent during that frame, and switches to the next animation element
; (notice the elem=6 parameter). If you don't see what I mean, try commenting
; out that controller, then hit someone with this attack.
[Statedef 210]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 65
ctrl = 0
velset = 0,0
anim = 210
sprpriority = -1

[State 210, Width]
type = Width
trigger1 = (AnimElemTime (2) >= 0) && (AnimElemTime (7) < 0)
value = 15,0

[State 210, 1]
type = PlaySnd
trigger1 = Time = 2
value = 0, 4

[State 210, 2]
type = HitDef
trigger1 = AnimElem = 3
attr = S, NA
animtype  = Medium
damage    = 57
guardflag = MA
pausetime = 12,12
sparkno = 1
sparkxy = -10,-70
hitsound   = 5,2
guardsound = 6,0
ground.type = High
ground.slidetime = 12
ground.hittime  = 13
ground.velocity = -5.5
air.velocity = -2.5,-4

[State 210, 3]
type = ChangeAnim
trigger1 = AnimElemTime(5) > 0 && AnimElemTime(6) <= 0
trigger1 = movecontact
ignorehitpause = 1
persistent = 0
value = 210
elem = 6

[State 210, 4]
type = SprPriority
trigger1 = AnimElem = 5
value = 2

[State 210, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Standing light kick
; CNS difficulty: easy
[Statedef 230]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 22
ctrl = 0
velset = 0,0
anim = 230
sprpriority = 2

[State 230, 1]
type = PlaySnd
trigger1 = Time = 2
value = 0, 1

[State 230, 2]
type = HitDef
trigger1 = Time = 0
attr = S, NA
animtype  = Medium
damage    = 26
guardflag = MA
pausetime = 12,12
sparkno = 0
sparkxy = -10,-37
hitsound   = 5,1
guardsound = 6,0
ground.type = Low
ground.slidetime = 10
ground.hittime  = 11
ground.velocity = -5
air.velocity = -2.5,-3.5

[State 230, 3]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Standing strong kick
; CNS difficulty: easy
[Statedef 240]
type    = S
movetype= A
physics = S
juggle  = 5
poweradd= 65
ctrl = 0
velset = 0,0
anim = 240
sprpriority = 2

[State 240, 1]
type = PlaySnd
trigger1 = Time = 2
value = 0, 1

[State 240, 2]
type = HitDef
trigger1 = Time = 0
attr = S, NA
animtype  = Medium
damage    = 63
guardflag = MA
pausetime = 12,12
sparkno = 1
sparkxy = -10,-60
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 12
ground.hittime  = 15
ground.velocity = -6
air.velocity = -2.2,-3.2

[State 240, 3]
type = PosAdd
trigger1 = AnimElem = 7
x = 12

[State 240, 4]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
;Crouching light punch
; CNS difficulty: easy
; Description: Simple crouching attack. The HitDef's guardflag parameter
;     is set to "L", meaning that the move can only be guarded low
;     (crouching), and not by standing or jumping opponents.
;     Like for all light attacks, it's a good idea to keep the slidetime
;     and hittime parameters at a smaller number, so the opponent isn't
;     stunned for too long. For all crouching attacks you have to
;     remember to set the attr parameter to indicate that it is crouching
;     attack. In this case, "C, NA" stands for "crouching, normal attack".
;     The HitDef's priority is set at 3, instead of the default of 4,
;     so this attack has a lower priority than most others, meaning
;     KFM will get hit instead of trading hits with his opponent if
;     their attack collision boxes (Clsn1) intersect each other's Clsn2
;     boxes at the same time.
[Statedef 400]
type    = C
movetype= A
physics = C
juggle  = 5
poweradd= 15
ctrl = 0
anim = 400
sprpriority = 2

[State 400, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 0

[State 400, 2]
type = HitDef
trigger1 = Time = 0
attr = C, NA
damage    = 23
priority  = 3
animtype  = Light
hitflag = MAF
guardflag = L
pausetime = 10,11
sparkno = 0
sparkxy = -10,-42
hitsound   = 5,0
guardsound = 6,0
ground.type = Low
ground.slidetime = 4
ground.hittime  = 10
ground.velocity = -4
air.velocity = -1.5,-3

[State 400, 3]
type = CtrlSet
trigger1 = Time = 5
value = 1

[State 400, 4]
type = ChangeState
trigger1 = AnimTime = 0
value = 11

;---------------------------------------------------------------------------
;Crouching strong punch
; CNS difficulty: easy
; Description: This is a 2-hit move. It is done by having two HitDefs
;     triggered, one for each frame of animation that hits.
;     Notice how the first hit cannot be guarded by an opponent in the
;     air, because of the "M" in the guardflag, meaning it can only
;     be guarded "middle". The second hit has an "MA" guardflag, so
;     it can be guarded both on the ground and in the air.
; CNS x: 
; ڍ: ͉ł񔭂UłB
; łłAj[V̖͈XHitDefo^Ă܂B
; ꔭڂ̍UHitDefɂguardflaguMvimiddleiK[hj
; ɃZbgĂ̂ŁA͋󒆂ŃK[hł܂B񔭖
; ̍UguardflaǵuMAvimiddle+airi{󒆃K[hjŁA
; nA󒆂łK[h邱Ƃł܂B
[Statedef 410]
type    = C
movetype= A
physics = C
juggle  = 6
poweradd= 50
ctrl = 0
anim = 410
sprpriority = 2

[State 410, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 0

;This is the first hit, triggered on the 3rd element of animation.
[State 410, 2]
type = HitDef
trigger1 = AnimElem = 3
attr = C, NA
damage    = 37
animtype  = Medium
hitflag = MAF
guardflag = M
pausetime = 12,12
sparkno = 1
sparkxy = -10,-55
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 12
ground.hittime  = 15
ground.velocity = -4
air.velocity = -3,-4

;This is the second hit, triggered on the 4th element of animation.
[State 410, 3]
type = HitDef
trigger1 = AnimElem = 4
attr = C, NA
damage    = 36
animtype  = Medium
hitflag = MAF
guardflag = MA
pausetime = 12,12
sparkxy = -10,-83
hitsound   = 5,2
guardsound = 6,0
ground.type = High
ground.slidetime = 12
ground.hittime  = 15
ground.velocity = -7
air.velocity = -3,-4

[State 410, 4]
type = ChangeState
trigger1 = AnimTime = 0
value = 11
ctrl = 1

;---------------------------------------------------------------------------
;Crouching light kick
; CNS difficulty: easy
[Statedef 430]
type    = C
movetype= A
physics = C
juggle  = 5
poweradd= 22
ctrl = 0
anim = 430
sprpriority = 2

[State 430, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 0

[State 430, 2]
type = HitDef
trigger1 = Time = 0
attr = C, NA
damage    = 28
animtype  = Light
hitflag = MAFD
guardflag = L
pausetime = 12,12
sparkno = 0
sparkxy = -10,-8
hitsound   = 5,1
guardsound = 6,0
ground.type = Low
ground.slidetime = 6
ground.hittime  = 10
ground.velocity = -5
air.velocity = -2,-3
down.velocity = -5,0
down.hittime = 20

[State 430, 3]
type = ChangeState
trigger1 = AnimTime = 0
value = 11
ctrl = 1

;---------------------------------------------------------------------------
;Crouch Strong Kick
; CNS difficulty: easy
; Description: This move uses "Trip" for the "ground.type" parameter in
;     its HitDef. It's a special type that puts the opponent in a tripped
;     animation as he falls. Also, the hitflag parameter in the HitDef
;     is set to "MAFD". The "D" indicates that a downed opponent can be
;     hit by the attack.
; CNS x: 
; ڍ:
[Statedef 440]
type    = C
movetype= A
physics = C
juggle  = 7
poweradd= 70
ctrl = 0
anim = 440
sprpriority = 2

[State 440, 2]
type = PlaySnd
trigger1 = Time = 2
value = 0, 2

[State 440, 3]
type = HitDef
trigger1 = Time = 0
attr = C, NA
damage    = 72
hitflag = MAFD
guardflag = L
pausetime = 12,12
sparkno = 1
sparkxy = -5,-10
hitsound   = 5,2
guardsound = 6,0
ground.type = Trip
ground.slidetime = 10
ground.hittime  = 15
ground.velocity = -1.5,-2
air.velocity = -1.2,-3
guard.velocity = -5
fall = 1

[State 440, 4]
type = ChangeState
trigger1 = AnimTime = 0
value = 11
ctrl = 1

;---------------------------------------------------------------------------
;Jump Light Punch
; CNS difficulty: easy
[Statedef 600]
type    = A
movetype= A
physics = A
juggle  = 2
poweradd= 11
ctrl = 0
anim = 600
sprpriority = 2

[State 600, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 0

[State 600, 2]
type = HitDef
trigger1 = Time = 0
attr = A, NA
damage    = 20
guardflag = HA
priority = 3
pausetime = 7,8
sparkno = 0
sparkxy = -10,-58
hitsound   = 5,0
guardsound = 6,0
ground.type = High
ground.slidetime = 5
ground.hittime  = 5
ground.velocity = -4
air.velocity = -1.3,-3

[State 600, 3]
type = CtrlSet
trigger1 = Time = 17
value = 1

;---------------------------------------------------------------------------
;Jump Strong Punch
; CNS difficulty: easy
[Statedef 610]
type    = A
movetype= A
physics = A
juggle  = 4
poweradd= 65
ctrl = 0
anim = 610
sprpriority = 2

[State 610, 2]
type = PlaySnd
trigger1 = Time = 2
value = 0, 1

[State 610, 3]
type = HitDef
trigger1 = Time = 0
attr = A, NA
damage = 72
guardflag = HA
priority = 4
pausetime = 12,12
sparkno = 1
sparkxy = -10,-55
hitsound   = 5,3
guardsound = 6,0
animtype = Med
ground.type = High
ground.slidetime = 17
ground.hittime  = 17
ground.velocity = -5
air.velocity = -3,-4

;---------------------------------------------------------------------------
;Jump Light Kick
; CNS difficulty: easy
[Statedef 630]
type    = A
movetype= A
physics = A
juggle  = 3
poweradd= 20
ctrl = 0
anim = 630
sprpriority = 2

[State 630, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 0

[State 630, 2]
type = HitDef
trigger1 = Time = 0
attr = A, NA
damage = 26
guardflag = HA
priority = 3
pausetime = 8,8
sparkno = 1
sparkxy = -5,-35
hitsound   = 5,0
guardsound = 6,0
ground.type = High
ground.slidetime = 6
ground.hittime  = 6
ground.velocity = -4
air.velocity = -2,-3

;---------------------------------------------------------------------------
;Jump Strong Kick
; CNS difficulty: easy
[Statedef 640]
type    = A
movetype= A
physics = A
juggle  = 4
poweradd= 65
ctrl = 0
anim = 640
sprpriority = 2

[State 640, 2]
type = PlaySnd
trigger1 = Time = 2
value = 0, 1

[State 640, 3]
type = HitDef
trigger1 = Time = 0
attr = A, NA
damage    = 70
guardflag = HA
priority = 4
pausetime = 12,12
sparkno = 1
sparkxy = -10,-40
hitsound   = 5,3
guardsound = 6,0
animtype = Med
ground.type = High
ground.slidetime = 15
ground.hittime  = 15
ground.velocity = -5
air.velocity = -3,-4

;---------------------------------------------------------------------------
;Kung Fu Throw - Attempt
; CNS difficulty: medium-advanced
; Description: Throws are not difficult to make, although then can be
;     tedious at times. Throw attempt states have a HitDef of a
;     special format. The key parameters in a throw are p1stateno
;     and p2stateno. If the HitDef successfully connects, then
;     the attacker will change to the state number specified by
;     p1stateno, and the opponent will be change to the state
;     number assigned to p2stateno. The special thing about p2stateno
;     is that the opponent will be temporarily brought into the
;     attacker's state file. In this case, no matter who the
;     opponent is, he will be taken to state 820 of this file (kfm.cns)
;     and remain here until the end of the throw (look at his debug
;     information when he is being thrown; the text changes to yellow
;     to mean that he is in another player's state file).
[Statedef 800]
type    = S
movetype= A
physics = S
juggle  = 0
velset = 0,0
ctrl = 0
anim = 800
sprpriority = 2

; Notes: The '-' symbol in the hitflag field means that it only affects
;   players who are not in a hit state. This prevents KFM from combo-ing
;   into the throw. The priority should be set to a low number, such as
;   1 or 2, so that the throw does not take precedence over normal attacks.
;   The type of priority must always be set to "Miss" or "Dodge" for throws,
;   otherwise strange behavior can result.
[State 800, 1]
type = HitDef
Trigger1 = Time = 0
attr = S, NT          ;Attributes: Standing, Normal Throw
hitflag = M-          ;Affect only ground people who are not being hit
priority = 1, Miss    ;Throw has low priority, must be miss or dodge type.
sparkno = -1          ;No spark
p1sprpriority = 1     ;Draw p1's sprite in front of p2
                      ;p2's sprite priority is set to 0 by default
p1facing = 1
p2facing = 1          ;Force p2 to face KFM
p1stateno = 810       ;On success, KFM changes to state 810
p2stateno = 820       ;If hit, p2 changes to state 820 in KFM's cns
guard.dist = 0        ;This prevents p2 from going into a guard state if close
fall = 1              ;Force p2 into falling down

[State 800, 2]
type = ChangeState
Trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
;Kung Fu Throw - Throwing the opponent
; Description: In this state, KFM throws the opponent by binding him to
;     various offsets based on his current frame of animation. For
;     example, [State 810, Bind 1] binds the opponent to an offset of
;     28 pixels in front of KFM. That puts him around where KFM's hand
;     is at. Is is important to keep the opponent bound using a
;     TargetBind controller at all times, until you let him go. This
;     is especially important if your player has a Clsn2 box that
;     allows him to get hit while throwing someone. Each time a player
;     gets hit, all his bound targets will be set to a fall state. If
;     the opponent is not bound, then he may get stuck in his thrown
;     state when his attacker is knocked out of the throw halfway.
; Notes: There is a TargetLifeAdd controller to decrease the opponent's
;     life, and a TargetState controller to change his state to a
;     falling state when KFM lets go of him.
[Statedef 810]
type    = S
movetype= A
physics = N
anim = 810
poweradd = 60

; Here a variable, var(2), is used to remember whether or not the
; player was holding forward at the start of the state. This variable
; is checked later on to turn KFM around if necessary.
[State 810, Holding fwd?]
type = VarSet
trigger1 = Time = 0
var(2) = command = "holdfwd"

[State 810, Grab Sound]
type = PlaySnd
trigger1 = AnimElem = 2
value = 1, 1

[State 810, Throw Sound]
type = PlaySnd
trigger1 = AnimElem = 7
value = 800, 0

[State 810, Bind 1]
type = TargetBind
trigger1 = AnimElemTime(2) < 0
pos = 28, 0

[State 810, Width 2-11]
type = Width
trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(12) < 0
edge = 60,0

[State 810, Bind 2-4]
type = TargetBind
trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(5) < 0
pos = 58, 0

[State 810, Bind 5]
type = TargetBind
trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0
pos = 47, 0

[State 810, holdfwd - Turn 6] ;If was holding fwd before, turn now
type = Turn
trigger1 = var(2)
trigger1 = AnimElem = 6

[State 810, holdfwd - Pos 6] ;If was holding fwd before, move a little
type = PosAdd
trigger1 = var(2)
trigger1 = AnimElem = 6
x = -37

[State 810, holdfwd - Turn Target 6] ;If was holding fwd before, turn target too
type = TargetFacing
trigger1 = var(2)
trigger1 = AnimElem = 6
value = -1

[State 810, Bind 6]
type = TargetBind
trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(7) < 0
pos = 41, -60

[State 810, Bind 7]
type = TargetBind
trigger1 = AnimElemTime(7) >= 0 && AnimElemTime(8) < 0
pos = 25, -75

[State 810, Bind 8]
type = TargetBind
trigger1 = AnimElemTime(8) >= 0 && AnimElemTime(9) < 0
pos = 15, -90

[State 810, Bind 9]
type = TargetBind
trigger1 = AnimElemTime(9) >= 0 && AnimElemTime(10) < 0
pos = -5, -96

[State 810, Bind 10]
type = TargetBind
trigger1 = AnimElemTime(10) >= 0 && AnimElemTime(11) < 0
pos = -14, -90

[State 810, Bind 11]
type = TargetBind
trigger1 = AnimElem = 11
pos = -50, -50

[State 810, Hurt 11]
type = TargetLifeAdd
trigger1 = AnimElem = 11
value = -78

[State 810, Throw 11]
type = TargetState
trigger1 = AnimElem = 11
value = 821

[State 810, Turn 12]
type = Turn
trigger1 = AnimElem = 12

[State 810, Pos 15]
type = PosAdd
trigger1 = AnimElem = 15
x = -10

[State 810, State End]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
;Thrown by Kung Fu Throw
; (a custom gethit state)
; Description: This is the state that the opponent changes to after being
;     hit by KFM's throw HitDef. The important thing here is to use a
;     ChangeAnim2 controller. The difference between ChangeAnim2 and
;     ChangeAnim is that ChangeAnim2 changes the player's animation to
;     an action in the AIR file of the attacker (in this case, kfm.air),
;     whereas ChangeAnim always changes the player to an action in his
;     own AIR file. Look at Action 820 in kfm.air for some extra
;     comments.
[Statedef 820]
type    = A
movetype= H
physics = N
velset = 0,0

[State 820, 1]
type = ChangeAnim2
Trigger1 = Time = 0
value = 820

;In case attacker loses binding on player for any reason, this controller
;guarantees that the player will never get stuck in this thrown state.
[State 820, 2]
type = SelfState
trigger1 = !gethitvar(isbound)
value = 5050

;---------------------------------------------------------------------------
;Thrown by Kung Fu Throw - thrown into the air
; (a custom gethit state)
; Description: This state has the opponent flying through the air and
;     falling down onto the ground. The SelfState controller sets the
;     opponent back using to his own state file when he his the ground.
;     Controllers 821,2 and 821,3 allow the opponent to recover by
;     hitting his recovery command when he is falling.
[Statedef 821]
type    = A
movetype= H
physics = N
velset = 2.8,-7
poweradd = 40

[State 821, 1] ;Gravity
type = VelAdd
Trigger1 = 1
y = .4

[State 821, 2] ; Recover near ground (use ChangeState)
type = ChangeState
triggerall = Vel Y > 0
triggerall = Pos Y >= -20
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5200 ;HITFALL_RECOVER

[State 821, 3] ; Recover in mid air (use SelfState)
type = SelfState
triggerall = Vel Y > 0
triggerall = alive
triggerall = CanRecover
trigger1 = Command = "recovery"
value = 5210 ;HITFALL_AIRRECOVER

[State 821, 4] ;Hit ground
type = SelfState
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 5100 ;Hit ground


;---------------------------------------------------------------------------
; Kung Fu Palm
; CNS difficulty: medium
; Description: This is like a standard attack, but with some differences.
;   There are two HitDefs in this attack. One is triggered when the
;   opponent is near (using a p2bodydist trigger), and the other
;   when the opponent is farther away. The main differences between
;   the near and far versions of the HitDefs is that the near version
;   has a "fall" parameter set to 1, causing the opponent to be knocked
;   down. Other minor differences are the damage, and the velocity to
;   give the opponent.
;   The line "attr = S, SA" line means this is a Standing, Special Attack.
;   It is important you have the attr parameter set correctly for all
;   you HitDefs.
[Statedef 1000]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 110
velset = 0,0
anim = 1000
ctrl = 0
sprpriority = 2

[State 1000, 1]
type = PlaySnd
trigger1 = Time = 8
value = 0, 3

[State 1000, 2]
type = PosAdd
trigger1 = AnimElem = 2
x = 20

[State 1000, 3]
type = PosAdd
trigger1 = AnimElem = 3
trigger2 = AnimElem = 13
x = 10

[State 1000, 4]
type = PosAdd
trigger1 = AnimElem = 5
x = 5

[State 1000, 5] ;Opponent near
type = HitDef
trigger1 = AnimElem = 5
trigger1 = p2bodydist X < 40
attr = S, SA
animtype  = Hard
damage    = 90, 4
priority  = 5
guardflag = MA
pausetime = 15,15
sparkxy = -10,-60
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 12
ground.hittime  = 15
ground.velocity = -4,-3.5
air.velocity = -4,-3
fall = 1

[State 1000, 6] ;Opponent not near
type = HitDef
trigger1 = AnimElem = 5
trigger1 = p2bodydist X >= 40
attr = S, SA
animtype  = Hard
damage    = 85, 4
priority  = 4
guardflag = MA
pausetime = 15,15
sparkxy = -10,-60
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 12
ground.hittime  = 15
ground.velocity = -7
air.velocity = -4,-2.5

[State 1000, 6]
type = PosAdd
trigger1 = AnimElem = 9
x = -5

[State 1000, 7]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Strong Kung Fu Palm
; CNS difficulty: medium
[Statedef 1010]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 120
velset = 0,0
anim = 1010
ctrl = 0
sprpriority = 2

[State 1010, 1]
type = PlaySnd
trigger1 = Time = 9
value = 0, 3

[State 1010, 2]
type = PosAdd
trigger1 = AnimElem = 2
x = 20

[State 1010, 3]
type = PosAdd
trigger1 = AnimElem = 3
trigger2 = AnimElem = 13
x = 10

[State 1010, 4]
type = PosAdd
trigger1 = AnimElem = 5
x = 5

[State 1010, 5]
type = VelSet
trigger1 = AnimElem = 5
x = 4

[State 1010, 6] ;Opponent near
type = HitDef
trigger1 = AnimElem = 5
trigger1 = p2bodydist X < 40
attr = S, SA
animtype  = Hard
damage    = 90, 4
priority  = 5
guardflag = MA
pausetime = 15,15
sparkxy = -10,-60
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 12
ground.hittime  = 15
ground.velocity = -4,-3.5
air.velocity = -4,-3
fall = 1

[State 1010, 7] ;Opponent not near
type = HitDef
trigger1 = AnimElem = 5
trigger1 = p2bodydist X >= 40
attr = S, SA
animtype  = Hard
damage    = 85, 4
priority  = 4
guardflag = MA
pausetime = 15,15
sparkxy = -10,-60
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 12
ground.hittime  = 15
ground.velocity = -7
air.velocity = -4,-2.5

[State 1010, 8]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Fast Kung Fu Palm
; CNS difficulty: advanced
; Description: This is a complicated attack move. If you're a beginner,
;     you should skip looking at this for now and check it later when
;     you are more comfortable with the cns.
;     This move puts the other player in a custom get-hit state.
;     The line "p2stateno = 1025" in the HitDef does this. KFM has some
;     palette effects as well as after-image effects.
[Statedef 1020]
type    = S
movetype= A
physics = N
juggle  = 6
poweradd= -330
velset = 0,0
anim = 1020
ctrl = 0
sprpriority = 2

[State 1020, Friction]
type = VelMul
trigger1 = 1
x = .85 * ifelse (AnimElemTime(6) < 0, 1, .8)

[State 1020, Afterimage]
type = AfterImage
trigger1 = Time = 0
length = 13
PalBright   =  30, 30,  0
PalContrast =  70, 70, 20
PalAdd      = -10,-10,-10
PalMul      = .85,.85,.50
TimeGap  = 1
FrameGap = 2
Trans = Add
time = 2

[State 1020, Afterimage]
type = AfterImageTime
trigger1 = AnimElemTime(8) < 0
time = 2

[State 1020, Blink Yellow]
type = PalFX
trigger1 = Time = 0
time = 20
add = 32,16,0
sinadd = 64,32,5,3

[State 1020, 1]
type = PlaySnd
trigger1 = Time = 2
value = 0, 3

[State 1020, 2]
type = PosAdd
trigger1 = AnimElem = 2
x = 20

[State 1020, 3]
type = PosAdd
trigger1 = AnimElem = 3
trigger2 = AnimElem = 12
x = 10

[State 1020, 4]
type = PosAdd
trigger1 = AnimElem = 4
x = 5

[State 1020, 5]
type = VelSet
trigger1 = AnimElem = 4
x = 13

[State 1020, 6]
type = HitDef
trigger1 = AnimElem = 4
attr = S, SA
animtype  = Hard
damage    = 95, 5
getpower  = 0
priority  = 4
guardflag = MA
pausetime = 8,7
sparkxy = -10,-60
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 20
ground.hittime  = 20
ground.velocity = -8,-7
guard.velocity = -7
air.velocity = -8,-7
airguard.velocity = -5, -4
fall = 1
p2stateno = 1025    ;Make p2 go to state 1025 on hit
p2facing = 1        ;Force to face p1

[State 1020, 7]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;------------------
; Hit by Fast Kung Fu Palm - shaking from the hit
; (a custom gethit state)
; See State 1020 for details
[Statedef 1025]
type    = A
movetype= H
physics = N
velset = 0,0

[State 1025, Anim] ;Custom animation
type = ChangeAnim2
trigger1 = 1
value = 1025

[State 1025, State]
type = ChangeState
trigger1 = HitShakeOver = 1
value = 1026

;------------------
; Hit by Fast Kung Fu Palm - flying through the air
; (a custom gethit state)
[Statedef 1026]
type    = A
movetype= H
physics = N

[State 1026, Velocity]
type = HitVelSet
trigger1 = Time = 0
x = 1
y = 1

[State 1026, Gravity]
type = VelAdd
trigger1 = 1
y = .45

[State 1026, No scroll]
type = ScreenBound
triggerall = Pos y < -15
trigger1 = BackEdgeBodyDist < 65
trigger2 = FrontEdgeBodyDist < 65
value = 1
movecamera = 0,1

[State 1026, Hit wall]
type = ChangeState
triggerall = Pos y < -15
trigger1 = BackEdgeBodyDist <= 20
trigger2 = FrontEdgeBodyDist <= 20
value = 1027

[State 1026, Hit ground]
type = SelfState
trigger1 = (Vel y > 0) && (Pos y >= 0)
value = 5100

;------------------
; Hit by Fast Kung Fu Palm - hit wall
; (a custom gethit state)
[Statedef 1027]
type    = A
movetype= H
physics = N

[State 1027, Turn]
type = Turn
trigger1 = (Time = 0) && (FrontEdgeBodyDist <= 30)

[State 1027, Pos]
type = PosAdd
trigger1 = Time = 0
x = 15 - BackEdgeBodyDist

[State 1027, Stop moving]
type = PosFreeze
trigger1 = 1
x = 1
y = 1

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

[State 1027, Spark]
type = Explod
trigger1 = Time = 0
anim = F72
pos = 0, floor (screenpos y) - 50
postype = back
sprpriority = 3

[State 1027, Anim]
type = ChangeAnim2
trigger1 = Time = 0
value = 1027

[State 1027, Sound]
type = PlaySnd
trigger1 = Time = 0
value = F7,0

[State 1027, State]
type = ChangeState
trigger1 = AnimTime = 0
value = 1028

;------------------
; Hit by Fast Kung Fu Palm - bounce off wall
; (a custom gethit state)
[Statedef 1028]
type    = A
movetype= H
physics = N

[State 1028, 1]
type = NotHitBy
trigger1 = 1
value = , NA, NP

[State 1028, Vel Y]
type = VelSet
trigger1 = Time = 0
y = -6

[State 1028, Vel X]
type = VelSet
trigger1 = Time = 0
x = 1.6

[State 1028, Turn]
type = Turn
trigger1 = (Time = 0) && (BackEdgeDist < 30)

[State 1028, Gravity]
type = VelAdd
trigger1 = 1
y = .35

[State 1028, Anim 5050] ;Self falling animation
type = ChangeAnim
trigger1 = Time = 0
trigger1 = !SelfAnimExist(5052)
value = 5050

[State 1028, Anim 5052] ;Self falling animation (diagup type)
type = ChangeAnim
trigger1 = Time = 0
trigger1 = SelfAnimExist(5052)
value = 5052

[State 1028, Anim 5060] ;Coming down - normal
type = ChangeAnim
trigger1 = Vel Y > -2
trigger1 = Anim = 5050
trigger1 = SelfAnimExist(5060)
persistent = 0
value = 5060

[State 1028, Anim 5062] ;Coming down - diagup type
type = ChangeAnim
trigger1 = Vel Y > -2
trigger1 = Anim = 5052
trigger1 = SelfAnimExist(5062)
persistent = 0
value = 5062

[State 1028, Hit ground]
type = SelfState
trigger1 = (Vel y > 0) && (Pos y >= 0)
value = 5100

;---------------------------------------------------------------------------
; Kung Fu Knee
; CNS difficulty: medium
; Description: Like the Kung Fu Palm, this is a special attack. This attack
;     begins on the ground, launches KFM into the air, then ends when KFM
;     lands on the ground. To achieve this, we use three states. The first
;     has KFM starting on the ground (note that type = S in the Statedef).
;     The ChangeState controller brings KFM into the second state (state
;     1051) when his ground animation ends. The second state controls KFM's
;     movement into the air and back towards the ground. The last state
;     (state 1052) stops KFM from moving when he touches the ground, and
;     brings him back to his stand state (state 0) when the animation is
;     over. More details are given in comments before each of the following
;     states.
[Statedef 1050]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 110
velset = 0,0
anim = 1050
ctrl = 0
sprpriority = 2

[State 1050, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 2

[State 1050, 2]
type = null;PosAdd
trigger1 = AnimElem = 2
x = 15

[State 1050, 3]
type = PosAdd
trigger1 = AnimElem = 4
x = 20

[State 1050, 4]
type = HitDef
trigger1 = Time = 0
attr = A, SA
animtype  = Medium
damage    = 80, 4
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = -10,-70
hitsound   = 5,3
guardsound = 6,0
ground.type = Low
ground.slidetime = 20
ground.hittime  = 20
ground.velocity = -3.5,-7
guard.velocity = -7
air.velocity = -3.5,-7
fall = 1

[State 1050, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 1051

;------------------
; Light Kung Fu Knee - jump
; Description: This state uses a velset parameter in the Statedef to make
;     KFM move upwards. A value of 2,-6 means 2 pixels/tick forwards, and
;     6 pixels/tick upwards. Since this is an aerial state, the type is set
;     to A in the Statedef.
;     Notice that physics = N (N for None) here. This means we are not using
;     the built-in aerial physics model (physics = A), so we have complete
;     control over what KFM does in this state. Since we do not have
;     physics = A to take care of gravity for us, we need to put in our own
;     controller for that. Controller 1051,1 does the work of pulling KFM
;     down towards the ground. Controller 1051,2 checks if KFM has reached
;     the ground, and changes to state 1052 if so.
;     In this state's Statedef, we will use the hitdefpersist parameter to
;     retain the HitDef information from the last state. If we did not have
;     hitdefpersist, the HitDef will be turned off between state changes.
[Statedef 1051]
type    = A
movetype= A
physics = N
velset = 2,-6
anim = 1051
hitdefpersist = 1 ;Keep the HitDef from previous state active

[State 1051, 1] ;Gravity
type = VelAdd
trigger1 = 1
y = .45

[State 1051, 2]
type = ChangeState
trigger1 = Command = "a" || Command = "b"
trigger1 = Vel y < -1
value = 1055

[State 1051, 3] ;Change state when KFM is close to ground
type = ChangeState
trigger1 = Vel Y > 0 && Pos Y >= -10
value = 1052

;------------------
; Light Kung Fu Knee - land
; Description: This is KFM's landing state. There is a velset in the
;     Statedef to stop KFM from moving. Since KFM's y-position can be any
;     number greater than -10 upon entering this state (see the ChangeState
;     controller in State 1051), we need to reset it to 0, the ground
;     level. That is what controller 1052,1 is for.
[Statedef 1052]
type    = S
movetype= I
physics = S
anim = 1052
sprpriority = 1
velset = 0,0

[State 1052, 1] ;Reset y-position to ground level
type = PosSet
trigger1 = Time = 0
y = 0

[State 1052, 2] ;Play a sound for landing
type = PlaySnd
trigger1 = Time = 0
value = 40, 0

[State 1052, 3] ;Give KFM back control early
type = CtrlSet
trigger1 = AnimElem = 3, -1
value = 1

[State 1052, 4] ;Move KFM back a little
type = PosAdd
trigger1 = AnimElem = 4
x = -15

[State 1052, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;------------------
; Kung Fu Knee - kick
[Statedef 1055]
type    = A
movetype= A
physics = N
anim = 1055

[State 1055, 1]
type = PlaySnd
trigger1 = Time = 0
value = 100,0
channel = 0

[State 1055, 2]
type = PlaySnd
trigger1 = Time = 0
value = 0, 1

[State 1055, 3]
type = PosAdd
trigger1 = Time = 0
x = 10
y = -10

[State 1055, 4] ;Gravity
type = VelAdd
trigger1 = 1
y = .45

[State 1055, 5]
type = HitDef
trigger1 = Time = 0
attr = A, SA
animtype  = Med
damage    = 35 + (prevstateno = 1061)*5, 2
priority  = 4
guardflag = MA
pausetime = 12,12
sparkxy = 0,-90
hitsound   = 5,2
guardsound = 6,0
ground.type = High
ground.slidetime = 15
ground.hittime  = 16
ground.velocity = -6
guard.velocity = -8
guard.ctrltime = 12
air.velocity = -4,-5
airguard.velocity = -4,-4.5
air.fall = 1

[State 1055, 6] ;Change state when KFM is close to ground
type = ChangeState
trigger1 = Vel Y > 0 && Pos Y >= -5
value = 1056

;------------------
; Kung Fu Knee - land from kick
[Statedef 1056]
type    = S
movetype= I
physics = S
anim = 1056
sprpriority = 1
velset = 0,0

[State 1056, 1] ;Reset y-position to ground level
type = PosSet
trigger1 = Time = 0
y = 0

[State 1056, 2] ;Play a sound for landing
type = PlaySnd
trigger1 = Time = 0
value = 40, 0

[State 1056, 3]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Strong Kung Fu Knee
[Statedef 1060]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 120
velset = 0,0
anim = 1060
ctrl = 0
sprpriority = 2

[State 1060, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 2

[State 1060, 2]
type = PosAdd
trigger1 = AnimElem = 2
x = 6

[State 1060, 3]
type = PosAdd
trigger1 = AnimElem = 4
x = 21

[State 1060, 4]
type = HitDef
trigger1 = Time = 0
attr = A, SA
animtype  = Medium
damage    = 90, 4
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = -10,-70
hitsound   = 5,3
guardsound = 6,0
ground.type = Low
ground.slidetime = 20
ground.hittime  = 20
ground.velocity = -3.5,-7.5
guard.velocity = -7
air.velocity = -3.5,-7.5
fall = 1

[State 1060, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 1061

;------------------
; Strong Kung Fu Knee - jump
[Statedef 1061]
type    = A
movetype= A
physics = N
velset = 2.5,-7.5
anim = 1061
hitdefpersist = 1 ;Keep the HitDef from previous state active

[State 1061, 1]
type = VelAdd
trigger1 = 1
y = .45

[State 1061, 2]
type = ChangeState
trigger1 = Command = "a" || Command = "b"
trigger1 = Vel y < -1
value = 1055

[State 1061, 3]
type = ChangeState
trigger1 = Vel Y > 0 && Pos Y >= -10
value = 1052

;---------------------------------------------------------------------------
; Fast Kung Fu Knee
; Description: This version of the Kung Fu Knee hits up to 3 times (including
;     the kick).
[Statedef 1070]
type    = S
movetype= A
physics = S
juggle  = 6
poweradd= -330
velset = 0,0
anim = 1070
ctrl = 0
sprpriority = 2

[State 1070, Afterimage]
type = AfterImage
trigger1 = Time = 0
length = 13
PalBright   =  30, 30,  0
PalContrast =  70, 70, 20
PalAdd      = -10,-10,-10
PalMul      = .85,.85,.50
TimeGap  = 1
FrameGap = 2
Trans = Add
time = 2

[State 1070, Afterimage]
type = AfterImageTime
trigger1 = 1
time = 2

[State 1070, Blink Yellow]
type = PalFX
trigger1 = Time = 0
time = 20
add = 32,16,0
sinadd = 64,32,5,3

[State 1070, 1]
type = PlaySnd
trigger1 = Time = 1
value = 0, 2

[State 1070, 2]
type = PosAdd
trigger1 = AnimElem = 2
x = 6

[State 1070, 3]
type = PosAdd
trigger1 = AnimElem = 4
x = 21

[State 1070, 4]
type = HitDef
trigger1 = Time = 0
attr = S, SA
animtype  = Medium
getpower  = 0
damage    = 35, 3
priority  = 5
hitflag   = MA
guardflag = MA
pausetime = 8,7
sparkxy = -10,-70
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 18
ground.hittime  = 18
ground.velocity = -2,-6
guard.velocity = -7
air.velocity = -2,-6
fall = 1
fall.animtype = Med
fall.recovertime = 30

[State 1070, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 1071

;------------------
; Fast Kung Fu Knee - jump
[Statedef 1071]
type    = A
movetype= A
physics = N
velset = 2.5,-9
anim = 1071

[State 1071, Blink Yellow]
type = PalFX
trigger1 = Time = 0
time = 18
add = 32,16,0
sinadd = 64,32,5,3

[State 1071, Afterimage]
type = AfterImageTime
trigger1 = Vel Y < 0
time = 2

[State 1071, 1]
type = VelAdd
trigger1 = 1
y = .5

[State 1071, 2]
type = VelAdd
trigger1 = Vel Y >= -1
y = .2

[State 1071, 3]
type = HitDef
trigger1 = Time = 0
attr = A, SA
animtype  = Medium
getpower  = 0
damage    = 68, 4
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = -10,-70
hitsound   = 5,3
guardsound = 6,0
ground.type = Low
ground.slidetime = 18
ground.hittime  = 18
ground.velocity = -3,-9.5
guard.velocity = -7
air.velocity = -3,-9.5
fall = 1
fall.recovertime = 30

[State 1071, 4]
type = ChangeState
trigger1 = Command = "a" || Command = "b"
trigger1 = Vel y < -1
trigger1 = Time > 0
value = 1075

[State 1071, 5]
type = ChangeState
trigger1 = Vel Y > 0 && Pos Y >= -10
value = 1052

;------------------
; Fast Kung Fu Knee - kick
[Statedef 1075]
type    = A
movetype= A
physics = N
anim = 1055

[State 1075, Afterimage]
type = AfterImageTime
trigger1 = 1
time = 2

[State 1075, Blink Yellow]
type = PalFX
trigger1 = Time = 0
time = 20
add = 32,16,0
sinadd = 64,32,5,3

[State 1075, 1]
type = PlaySnd
trigger1 = Time = 0
value = 100,0
channel = 0

[State 1075, 2]
type = PlaySnd
trigger1 = Time = 0
value = 0, 1

[State 1075, 3]
type = PosAdd
trigger1 = Time = 0
x = 10
y = -10

[State 1075, 4] ;Gravity
type = VelAdd
trigger1 = 1
y = .45

[State 1075, 5]
type = VelAdd
trigger1 = Vel Y >= -1
y = .2

[State 1075, 6]
type = HitDef
trigger1 = Time = 0
attr = A, SA
animtype  = Med
damage    = 42, 2
getpower  = 0
priority  = 4
guardflag = MA
pausetime = 12,12
sparkxy = 0,-90
hitsound   = 5,2
guardsound = 6,0
ground.type = High
ground.slidetime = 15
ground.hittime  = 18
ground.velocity = -6
guard.velocity = -6
air.velocity = -4,-6
airguard.velocity = -4,-4.5
air.fall = 1

[State 1075, 7] ;Change state when KFM is close to ground
type = ChangeState
trigger1 = Vel Y > 0 && Pos Y >= -5
value = 1056


;---------------------------------------------------------------------------
; Light Kung Fu Upper
; CNS difficulty: easy
; Description: This is a simple special attack that can hit twice. Notice
;     the use of the Width controller to keep opponents from getting too
;     close to KFM during his uppercut (press Ctrl-C, and look at the
;     yellow bar at KFM's feet during the move).
;     The second HitDef has some interesting parameters. fall.recovertime
;     is used to prevent the opponent (p2) from recovering immediately
;     after being hit (eg. press x+y with KFM to recover). This gives the
;     attacking KFM a chance to follow up with an extra attack, such as
;     a Kung Fu Knee. The yaccel parameter, set at 0.4, makes p2 fall at a
;     greater value of acceleration than the default, which is 0.35.
[Statedef 1100]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 110
velset = 0,0
anim = 1100
ctrl = 0
sprpriority = 2

[State 1100, Width]
type = Width
trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(13) < 0
value = 5,0

[State 1100, 1]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 2

[State 1100, 2]
type = HitDef
trigger1 = Time = 0
attr = S, SA
animtype  = Med
damage    = 52, 4
priority  = 5
guardflag = MA
pausetime = 4,8
sparkxy = 0,-48
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime  = 18
ground.velocity = -3
guard.velocity = -6
air.velocity = -2,-2
airguard.velocity = -4,-4.5
p2facing = 1
forcestand = 1         ;Force p2 into a standing state if hit

[State 1100, 3]
type = HitDef
trigger1 = AnimElem = 7
attr = S, SA
animtype  = Up
damage    = 55, 4
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = 0,-110
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime  = 18
ground.velocity = -1,-9.5
guard.velocity = -6
air.velocity = -1,-7.5
airguard.velocity = -4,-4.5
p2facing = 1
fall = 1                   ;Make p2 fall down
fall.recovertime = 40      ;40 ticks before p2 can recover from fall
yaccel = .4                ;p2 will accelerate down at .4 pixels/sec^2 when falling

[State 1100, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Strong Kung Fu Upper
[Statedef 1110]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 120
velset = 0,0
anim = 1110
ctrl = 0
sprpriority = 2

[State 1110, Width]
type = Width
trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0
value = 5,0

[State 1110, 1]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 2

[State 1110, 2]
type = HitDef
trigger1 = Time = 0
attr = S, SA
animtype  = Med
damage    = 57, 4
priority  = 5
guardflag = MA
pausetime = 4,8
sparkxy = 0,-48
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime  = 18
ground.velocity = -3
guard.velocity = -6
air.velocity = -2,-2
airguard.velocity = -4,-4.5
p2facing = 1
forcestand = 1

[State 1110, 3]
type = HitDef
trigger1 = AnimElem = 7
attr = S, SA
animtype  = Up
damage    = 60, 4
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = 0,-110
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 15
ground.hittime  = 18
ground.velocity = -1,-10.5
guard.velocity = -6
air.velocity = -1,-8.5
airguard.velocity = -4,-4.5
p2facing = 1
fall = 1
fall.recovertime = 50
yaccel = .4

[State 1110, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Fast Kung Fu Upper
[Statedef 1120]
type    = S
movetype= A
physics = S
juggle  = 6
poweradd= -330
velset = 0,0
anim = 1120
ctrl = 0
sprpriority = 2

[State 1120, Width]
type = Width
trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0
value = 5,0

[State 1120, Afterimage]
type = AfterImage
trigger1 = Time = 0
length = 13
PalBright   =  30, 30,  0
PalContrast =  70, 70, 20
PalAdd      = -10,-10,-10
PalMul      = .85,.85,.50
TimeGap  = 1
FrameGap = 2
Trans = Add
time = 2

[State 1120, Afterimage]
type = AfterImageTime
trigger1 = AnimTime < -2
time = 2

[State 1120, Blink Yellow]
type = PalFX
trigger1 = Time = 0
time = 20
add = 32,16,0
sinadd = 64,32,5,3

[State 1120, 1]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 2

[State 1120, 2]
type = HitDef
trigger1 = Time = 0
trigger2 = AnimElem = 4
attr = S, SA
animtype  = Med
damage    = 30, 4
getpower  = 0
priority  = 5
guardflag = MA
pausetime = 6,10
sparkxy = 0, ifelse(Time = 0, -48, -55)
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 18
ground.hittime  = 21
ground.velocity = -3
guard.velocity = -6
air.velocity = -2,-2
airguard.velocity = -4,-4.5
p2facing = 1
forcestand = 1

[State 1120, 3]
type = HitDef
trigger1 = AnimElem = 7
attr = S, SA
animtype  = Up
damage    = 68, 4
getpower  = 0
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = 0,-110
hitsound   = 5,2
guardsound = 6,0
ground.type = Low
ground.slidetime = 18
ground.hittime  = 21
ground.velocity = -1.2,-11
guard.velocity = -6
air.velocity = -1.2,-9
airguard.velocity = -4,-4.5
p2facing = 1
fall = 1
fall.recovertime = 60
yaccel = .4

[State 1120, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Light Kung Fu Blow
; CNS difficulty: easy
; Notes: This uses the EnvShake controller to shake the screen. It makes the
;        move look stronger.
[Statedef 1200]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 100
velset = 0,0
anim = 1200
ctrl = 0
sprpriority = 2

[State 1200, 1]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 3

[State 1200, Width 1]
type = Width
trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0
value = 10,0

[State 1200, Width 2]
type = Width
trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0
value = 20,0

[State 1200, Shake Screen]
type = EnvShake
trigger1 = AnimElem = 6
time = 4     ;Time to shake screen
ampl = 2     ;Amount to shake
freq = 180   ;A frequency of 180 shakes the screen rapidly

[State 1200, 2]
type = HitDef
trigger1 = Time = 0
attr = S, SA
animtype  = Hard
damage    = 100, 6
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = 0,-65
hitsound   = 5,3
guardsound = 6,0
ground.type = Low
ground.slidetime = 16
ground.hittime  = 18
ground.velocity = -10
ground.cornerpush.veloff = -12 ;To push far away when p2 is in corner
guard.velocity = -7
air.velocity = -3.5,-4.5
airguard.velocity = -3.5,-4.5

[State 1200, 3]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Strong Kung Fu Blow
; CNS difficulty: easy
[Statedef 1210]
type    = S
movetype= A
physics = S
juggle  = 4
poweradd= 120
velset = 0,0
anim = 1210
ctrl = 0
sprpriority = 2

[State 1210, 1]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 3

[State 1210, Width 1]
type = Width
trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0
value = 10,0

[State 1210, Width 2]
type = Width
trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0
value = 20,0

[State 1210, Shake Screen]
type = EnvShake
trigger1 = AnimElem = 6
time = 8
ampl = 2
freq = 170   ;A frequency of less than 180 causes a dampening effect

[State 1210, 2]
type = HitDef
trigger1 = Time = 0
attr = S, SA
animtype  = Hard
damage    = 125, 9
priority  = 5
guardflag = MA
pausetime = 12,12
sparkxy = 0,-65
hitsound   = 5,3
guardsound = 6,0
ground.type = Low
ground.slidetime = 18
ground.hittime  = 20
ground.velocity = -10
ground.cornerpush.veloff = -15 ;To push far away when p2 is in corner
guard.velocity = -8
air.velocity = -4,-4.5
airguard.velocity = -4,-4.5

[State 1210, 3]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Fast Kung Fu Blow
; CNS difficulty: easy
[Statedef 1220]
type    = S
movetype= A
physics = S
juggle  = 6
poweradd= -330
velset = 0,0
anim = 1220
ctrl = 0
sprpriority = 2

[State 1220, Afterimage]
type = AfterImage
trigger1 = Time = 0
length = 13
PalBright   =  30, 30,  0
PalContrast =  70, 70, 20
PalAdd      = -10,-10,-10
PalMul      = .85,.85,.50
TimeGap  = 1
FrameGap = 2
Trans = Add
time = 2

[State 1220, Afterimage]
type = AfterImageTime
trigger1 = AnimTime < -2
time = 2

[State 1220, Blink Yellow]
type = PalFX
trigger1 = Time = 0
time = 20
add = 32,16,0
sinadd = 64,32,5,3

[State 1220, 1]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 3

[State 1220, Width 1]
type = Width
trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0
value = 10,0

[State 1220, Width 2]
type = Width
trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0
value = 20,0

[State 1220, Shake Screen]
type = EnvShake
trigger1 = AnimElem = 6
time = 8
ampl = 3
freq = 170

[State 1220, 2]
type = HitDef
trigger1 = Time = 0
attr = S, SA
animtype  = Hard
damage    = 125, 9
getpower  = 0
priority  = 5
guardflag = MA
pausetime = 15,15
sparkxy = 0,-65
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 20
ground.hittime  = 30
ground.velocity = -15
ground.cornerpush.veloff = -20 ;To push far away when p2 is in corner
guard.velocity = -9
air.velocity = -5,-5
airguard.velocity = -5,-5
air.fall = 1
fall.animtype = Hard           ;Show "hard" animtype when hit for a fall
yaccel = .4                    ;Fall faster

[State 1220, 3]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1


;---------------------------------------------------------------------------
; Triple Kung Fu Palm (hyper)
; CNS difficulty: medium
; Notes: Notice that the HitDefs in supers have "getpower = 0". This makes
;        sure KFM doesn't recharge his super guage as he hits.
;        Also, the attributes for the HitDefs is "HA" for "hyper attack",
;        ie. "attr = S, HA".
;        Notice how the first HitDef is reused twice by allowing it to
;        trigger on two animation elements.
[Statedef 3000]
type    = S
movetype= A
physics = S
juggle  = 4
velset = 0,0
anim = 3000
ctrl = 0
sprpriority = 2

[State 3000, Width]
type = Width
trigger1 = AnimElem = 2, >= 0
value = 15,0

[State 3000, Super A]
type = SuperPause
trigger1 = AnimElem = 2, 1
pos = 25, -57
anim = 100
sound = 20, 0
poweradd = -1000

[State 3000, Super B]
type = AfterImage
trigger1 = AnimElem = 2, 1
time = 2

[State 3000, Super C]
type = AfterImageTime
trigger1 = AnimElemTime(2) >= 1 && Time < 60
time = 2

[State 3000, Super D]
type = NotHitBy
trigger1 = AnimElem = 2
value = , NA, SA, AT
time = 11

[State 3000, Super E]
type = NotHitBy
trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(14) < 0
value2 = C, NA
time = 1

[State 3000, 1]
type = PlaySnd
trigger1 = AnimElem = 4
trigger2 = AnimElem = 12
trigger3 = AnimElem = 20
value = 0, 3

[State 3000, 2]
type = PosAdd
trigger1 = AnimElem = 2
x = 20

[State 3000, 3]
type = PosAdd
trigger1 = AnimElem = 3
trigger2 = AnimElem = 11
trigger3 = AnimElem = 13
trigger4 = AnimElem = 19
trigger5 = AnimElem = 21
trigger4 = AnimElem = 31
x = 10

[State 3000, 4]
type = VelSet
trigger1 = AnimElem = 5
trigger2 = AnimElem = 13
trigger3 = AnimElem = 21
x = 6

[State 3000, 4]
type = PosAdd
trigger1 = AnimElem = 5
x = 5

[State 3000, 5]
type = HitDef
trigger1 = AnimElem = 5
trigger2 = AnimElem = 13
attr = S, HA
animtype  = Hard
damage    = 72,4
getpower  = 0
priority  = 6
guardflag = MA
pausetime = 15,15
sparkxy = -10,-60
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 30
ground.hittime  = 30
ground.velocity = -6
air.velocity = -3,-2.8
air.fall = 1
fall.animtype = Hard
fall.recover = 0

[State 3000, 6]
type = HitDef
trigger1 = AnimElem = 21
attr = S, HA
animtype  = Hard
damage    = 75,4
getpower  = 0
priority  = 5
guardflag = MA
pausetime = 15,15
sparkxy = -10,-60
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 30
ground.hittime  = 30
ground.velocity = -5, -4
guard.velocity = -12
air.velocity = -5,-4
airguard.velocity = -3,-3
fall.animtype = Hard
fall = 1
fall.recover = 0

[State 3000, 7]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;---------------------------------------------------------------------------
; Smash Kung Fu Upper (hyper)
; CNS difficulty: medium
; Description: This is very similar to KFM's Strong and Light Kung Fu Uppers.
;     There is just one HitDef, for a screen-shaking hit. The envshake
;     parameters are used to make this effect. You can find out more about
;     each parameter in the CNS documentation.
;     The fall.recover parameter is set at 0, meaning that p2 cannot recover
;     from the fall by entering his recovery command (for KFM, that is x+y).
;     This gives the attacking KFM a chance to follow up with another attack,
;     such as the Fast Kung Fu Palm.
;     Note that there is a ChangeState controller used to make KFM change to
;     a success state if he hits. The success state has KFM hold his arm
;     up longer for a dramatic effect.
[Statedef 3050]
type    = S
movetype= A
physics = S
juggle  = 4
velset = 0,0
anim = 3050
ctrl = 0
sprpriority = 2

[State 3050, Width]
type = Width
trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(16) < 0
value = 5,0

[State 3050, Super A]
type = SuperPause
trigger1 = AnimElem = 2
pos = -5, -55
anim = 100
sound = 20, 0
poweradd = -1000

[State 3050, Super B]
type = AfterImage
trigger1 = AnimElem = 2
time = 2

[State 3050, Super C]
type = AfterImageTime
trigger1 = AnimElemTime(2) >= 0
time = 2

[State 3050, Super D]
type = NotHitBy
trigger1 = AnimElem = 2
value = , NA, SA, AT
time = 6

[State 3050, 1]
type = PlaySnd
trigger1 = AnimElem = 4
value = 0, 2

[State 3050, 2]
type = HitDef
trigger1 = Time = 0
attr = S, HA
animtype  = Up               ;Make p2 use "Up" type animation on hit
damage    = 155, 12
getpower  = 0
priority  = 5
guardflag = MA
pausetime = 30,30
sparkno = 3
sparkxy = 0,-110
hitsound   = 5,4
guardsound = 6,0
ground.type = Low
ground.slidetime = 26
ground.hittime  = 26
ground.velocity = -1.3,-25
guard.velocity = -11
air.velocity = -1.3,-25
airguard.velocity = -4.5,-5
envshake.time = 25           ;Parameters for shaking the screen on hit
envshake.ampl = 7
envshake.freq = 176
p2facing = 1                 ;Force p2 to face p1 on hit
fall = 1
fall.recover = 0             ;Prevent p2 from recovering
fall.damage = 70             ;p2 will take 70 damage on hitting the ground
fall.envshake.ampl = 6       ;Parameters for shaking the screen on fall
fall.envshake.freq = 178
fall.envshake.time = 15
mindist = 50,-100            ;Keep p2 a minimum of 50 pixels away from p1, and no higher than 100 pixels up
maxdist = 100,-10            ;Keep p2 a maximum of 100 pixels away from p1, and no lower than 10 pixels below
yaccel = .8                  ;Accelerate p2 downwards rapidly

;This controller below makes Kung Fu man change to a success state if he
;successfully hits the Smash Kung Fu Upper.
[State 3050, 4]
type = ChangeState
trigger1 = MoveHit
value = 3051

[State 3050, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

;------------------
; Smash Kung Fu Upper (success)
; Description: This is the state that KFM changes to if he successfully hits
;     with Smash Kung Fu Upper. KFM holds his arm high for a short while
;     longer, then changes back to his idle stand state.
[Statedef 3051]
type    = S
movetype= A
physics = S
anim = 3051

[State 3051, 1]
type = AfterImageTime
trigger1 = AnimTime < -2
time = 2

[State 3051, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1


;---------------------------------------------------------------------------
; Override common states (use same number to override) :
;---------------------------------------------------------------------------

;---------------------------------------------------------------------------
; States that are always executed (use statedef -2)
;---------------------------------------------------------------------------

;---------------------------------------------------------------------------
; States that are executed when in self's state file (use statedef -3)
;---------------------------------------------------------------------------

[statedef 180000]
ctrl = 0
type=U
anim=111889
movetype=U
physics=N
hitdefpersist=1
movehitpersist=1
hitpausemovetime=9999999
[State ]
type = PlaySnd
trigger1 =time=10
value = S8888,2
volume =1000
channel =8889
lowpriority =8889
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=10
anim =4040
ID =4040
pos=80,-250
postype =p1
facing = -1
removetime = -2
scale =.7,.5
vel=.4,1.5
sprpriority =2147483647
ontop = 1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=96
anim =4041
ID =4041
pos=80+96*0.4,-250+1.5*96
postype =p1
facing = -1
removetime = -2
vel=-.5,.5
sprpriority =2147483647
ontop = 1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =time<160
ID =4041
scale =.7-0.004*(time-96),.5-0.004*(time-96)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =time>158
id =4041
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=158
anim =4042
ID =4042
pos=0,-40
postype =p1
facing = 1
removetime = -2
sprpriority =2147483647
ontop = 1
scale =0.01,0.01
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=158
value = S8888,0
volume =1000
channel =7777
lowpriority =7777
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =time<=338
ID =4042
scale =0.1+0.005*(time-158),0.1+0.005*(time-158)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=159
anim =4043
ID =4043
pos=0,-40
postype =p1
facing = 1
removetime = -2
sprpriority =-1
ontop = 0
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = VarAdd
trigger1 =time>=338
trigger1 =time<518
trigger1 =var(40)=[0,60]
var(40)=1
ignorehitpause =1
[State ]
type = Varset
trigger1 =var(40)>60
trigger2 =time>518
var(40)=0
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =time>338
ID =4043
scale =1+0.025*var(40),1+0.025*var(40)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =var(40)=1
value = S8888,3
volume =1000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=340
value = S8888,4
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = ChangeState
trigger1 =time>518
value =180001
ctrl = 0
ignorehitpause =1
[statedef 180001]
type=U
movetype=U
physics=N
hitdefpersist=1
movehitpersist=1
hitpausemovetime=9999999
[State ]
type = ChangeAnim
trigger1 =time<=136
value = 132
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=5
value = S8888,5
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=0
anim =10025
ID =10025
pos=0,-80
postype =p1
facing = 1
removetime = -2
sprpriority =-1
ontop = 0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=60
anim =180001
ID =180001
pos=0,-80
postype =p1
facing = 1
removetime = -2
sprpriority =2147483647
ontop = 1
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=60
value = S8888,6
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=120
value = S8888,7
volume =10000
channel =random
freqmul =1.0
lowpriority =random
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =numexplod(180001)
trigger1 =time<300
ID =180001
scale =1+0.04*(time-120),1+0.04*(time-120)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Changestate
trigger1 =time>190
value =180002
ignorehitpause =1
[statedef 180002]
type=U
movetype=U
physics=N
hitdefpersist=1
movehitpersist=1
hitpausemovetime=9999999
[State ]
type = Explod
trigger1 =time=0
anim =180002
ID =180002
pos=0,-80
postype =p1
facing = 1
removetime = -2
sprpriority =2147483647
ontop = 1
scale =3,3
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =time=10
id =180001
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =anim!=0
value = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Changestate
trigger1 =time>60
value =0
ignorehitpause =1
[statedef 180003]
ctrl = 0
anim=181
[State ]
type = VarSet
trigger1 =1
sysvar(3)=88899917
ignorehitpause =1
[State ]
type = AssertSpecial
triggerall=name="Dominate Akane Inuwaka"
trigger1 =time<120
flag = roundnotover
ignorehitpause =1
[State ]
type = PlaySnd
triggerall=name="Dominate Akane Inuwaka"
trigger1 =time=5
value = S181,0
volume =0
channel =random
lowpriority =random
ignorehitpause =1
[statedef -2]
[state ]
type = helper
triggerall=name="Dominate Akane Inuwaka"
triggerall =!ishelper
trigger1 =!numhelper(1111222)
ID = 1111222
helpertype = player
name = "hitdefy"
pos = 0,0
postype = P1
keyctrl = 0
ownpal = 1
pausemovetime = 9999999999
supermovetime = 9999999999
ignorehitpause =1
[State 0, LifeSet]
type = LifeSet
triggerall=name="Dominate Akane Inuwaka"&&enemy,name!="Dominate Akane Inuwaka"
trigger1 =!roundstate
value =lifemax/3
[State ]
type = Varset
trigger1 =!ishelper&&(stateno!=888777||stateno!=888888||stateno!=888999)
trigger1 =var(7)
var(7)=0
ignorehitpause = 1
[State ]
type = AngleDraw
triggerall=name="Dominate Akane Inuwaka"
trigger1 =1
scale =.5,.5

[State ]
type = VarAdd
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&stateno=800015
trigger1 =var(13)=[0,25]
var(13)=1
ignorehitpause = 1
[State ]
type = Varset
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&stateno!=800015
var(13)=0
ignorehitpause = 1
[state 1]
type=varadd
triggerall=name="Dominate Akane Inuwaka"
triggerall=!ishelper
trigger1=sysvar(0)=[0,120]
sysvar(0)=1
ignorehitpause=1
[state 1]
type=varadd
triggerall=name="Dominate Akane Inuwaka"
trigger1=!ishelper&&roundstate>=2
sysvar(1)=1
ignorehitpause=1
[state 1]
type=varadd
triggerall=name="Dominate Akane Inuwaka"
triggerall=!ishelper
trigger1=sysvar(2)=[0,60]
sysvar(2)=1
ignorehitpause=1
[state 1]
type=varset
triggerall=name="Dominate Akane Inuwaka"
triggerall=!ishelper
trigger1=sysvar(2)>60
sysvar(2)=0
ignorehitpause=1
[state 1]
type=varset
triggerall=name="Dominate Akane Inuwaka"
triggerall=!ishelper
trigger1=sysvar(0)>120
sysvar(0)=0
ignorehitpause=1
[state 1]
type=varset
triggerall=name="Dominate Akane Inuwaka"
triggerall=!ishelper
trigger1=var(0)<0
var(0)=60
ignorehitpause=1
[state 1]
type=varadd
triggerall=name="Dominate Akane Inuwaka"
triggerall=!ishelper
triggerall=gametime%7=1
trigger1=var(0)=[0,60]
var(0)=-1
ignorehitpause=1
[State ]
type = AssertSpecial
triggerall=name="Dominate Akane Inuwaka"
trigger1 =ishelper
trigger1 =root,stateno=[180000,180002]
flag = intro
ignorehitpause =1
[State ]
type = AssertSpecial
triggerall=name="Dominate Akane Inuwaka"
trigger1 =ishelper
trigger1 =roundno>1&&root,stateno=0&&root,time<600
flag = intro
ignorehitpause =1
[State ]
type = AssertSpecial
triggerall=name="Dominate Akane Inuwaka"
trigger1 =ishelper
trigger1 =roundstate=4&&root,time<120
flag = roundnotover
ignorehitpause =1
[State ]
type = AssertSpecial
triggerall=name="Dominate Akane Inuwaka"
trigger1 =ishelper
flag = invisible
flag2 = noshadow
flag3 = globalnoshadow
ignorehitpause =1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[State ]
type = Explod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&anim=0
trigger1 =!numexplod(7111)
trigger1 =roundstate
anim =7111
ID =7111
pos=0,-50
postype =p1
facing = 1
bindtime=-1
removetime = -2
sprpriority =0
ontop = 1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&anim=0
trigger1 =!numexplod(7112)
trigger1 =roundstate
anim =7111
ID =7112
pos=0,-50
postype =p1
facing = 1
bindtime=-1
removetime = -2
sprpriority =0
ontop = 1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = RemoveExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&anim!=0
id =7111
ignorehitpause =1
[State ]
type = RemoveExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&anim!=0
id =7112
ignorehitpause =1
[State ]
type = VarAdd
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7111)
trigger1 =var(57)=[0,360]
var(57)=1
ignorehitpause =1
[State ]
type = Varset
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7111)
trigger1 =var(57)>360
var(57)=0
ignorehitpause =1
[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7111)
trigger1 =var(57)=[1,90]
ID =7111
scale =0+0.006*(var(57)),.54-0.006*(var(57))
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7111)
trigger1 =var(57)=[91,180]
ID =7111
scale =0.54-0.006*(var(57)-90),0+0.006*(var(57)-90)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7111)
trigger1 =var(57)=[181,270]
ID =7111
scale =0+0.006*(var(57)-180),.54-0.006*(var(57)-180)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7111)
trigger1 =var(57)=[271,360]
ID =7111
scale =.54-0.006*(var(57)-270),0+0.006*(var(57)-270)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1

[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7112)
trigger1 =var(57)=[1,90]
ID =7112
scale =1.08-0.012*(var(57)),0+0.012*(var(57))
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7112)
trigger1 =var(57)=[91,180]
ID =7112
scale =0-0.012*(var(57)-90),1.08-0.012*(var(57)-90)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7112)
trigger1 =var(57)=[181,270]
ID =7112
scale =-1.08+0.012*(var(57)-180),0-0.012*(var(57)-180)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
triggerall=name="Dominate Akane Inuwaka"
trigger1 =numexplod(7112)
trigger1 =var(57)=[271,360]
ID =7112
scale =0+0.012*(var(57)-270),-1.08+0.012*(var(57)-270)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[state ]
type = varset
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!roundstate&&sysvar(3)=88899917
sysvar(3):=0
ignorehitpause =1
[state ]
type = selfstate
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&roundstate=4&&win&&sysvar(3)!=88899917
value =180003
ignorehitpause =1
[state ]
type = selfstate
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&!roundstate&&roundno=1&&stateno!=180000
value =180000
ignorehitpause =1


[state ]
type = selfstate
triggerall=name="Dominate Akane Inuwaka"
trigger1 =ishelper
value = 4444
ignorehitpause =1
[statedef -3]
[State 16]
type = VarRandom
triggerall=name="Dominate Akane Inuwaka"
trigger1 =!ishelper&&roundstate=2
trigger1 =stateno!=[800001,800019]
v =39
range =0,7000
ignorehitpause =1

[State 14]
type = ChangeState
triggerall=name="Dominate Akane Inuwaka"
trigger1 =PrevStateNo!=800001
trigger1 =roundstate=2&&numenemy&&var(39)=[0,500]
trigger1 =stateno!=[800001,800019]
value =800001
ignorehitpause =1
[State 13]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =PrevStateNo!=800002
trigger1 =roundstate=2&&numenemy&&var(39)=[500,1000]
trigger1 =stateno!=[800001,800019]
value =800002
ignorehitpause =1
[State 12]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =PrevStateNo!=800003
triggerall =roundstate=2&&numenemy
triggerall =stateno!=[800001,800019]
trigger1 =var(39)=[1000,1500]
value =800003
ignorehitpause =1
[State 11]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =PrevStateNo!=800005
trigger1 =roundstate=2&&numenemy&&var(39)=[1500,2000]
trigger1 =stateno!=[800001,800019]
value =800004
ignorehitpause =1
[State 10]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =PrevStateNo!=800007
trigger1 =roundstate=2&&numenemy&&var(39)=[2000,2500]
trigger1 =stateno!=[800001,800019]
value =800006
ignorehitpause =1
[State 9]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
trigger1 =roundstate=2&&numenemy&&var(39)=[2500,3000]
trigger1 =stateno!=[800001,800019]
trigger1 =p2bodydist x>80||p2bodydist y>30
value =800008
ignorehitpause =1
[State 8]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
trigger1 =roundstate=2&&numenemy&&var(39)=[3000,3500]
trigger1 =stateno!=[800001,800019]
trigger1 =BackEdgeBodyDist<30&&PrevStateNo!=800009
value =800009
ignorehitpause =1

[State 7]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
trigger1 =roundstate=2&&numenemy&&var(39)=[3500,4000]
trigger1 =stateno!=[800001,800019]
trigger1 =sysvar(1)>1200&&PrevStateNo!=800010
value =800010
ignorehitpause =1
[State 6]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
trigger1 =roundstate=2&&numenemy&&var(39)=[4000,4500]
trigger1 =stateno!=[800001,800019]
trigger1 =sysvar(1)>1200&&PrevStateNo!=800011
value =800011
ignorehitpause =1

[State 5]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =roundstate=2&&numenemy
triggerall =stateno!=[800001,800019]
trigger1 =var(39)=[4500,5000]
trigger1 =PrevStateNo!=800014
trigger2 =PrevStateNo=800019
value =800013
ignorehitpause =1
[State 4]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
trigger1 =roundstate=2&&numenemy&&var(39)=[5000,5500]
trigger1 =stateno!=[800001,800019]
trigger1 =sysvar(1)>1200&&PrevStateNo!=800015
value =800015
ignorehitpause =1
[State 3]
type =ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =roundstate=2
triggerall =numenemy&&stateno!=[800001,800019]
trigger1 =var(39)=[5500,6000]
trigger1 =PrevStateNo!=800017
trigger2 =PrevStateNo=800015
value =800017
ignorehitpause =1
[State 2]
type = ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =stateno!=[800001,800019]
triggerall =roundstate=2&&numenemy
trigger1 =var(39)=[6000,6500]
trigger1 =PrevStateNo!=800019
trigger2 =PrevStateNo=800010
trigger3 =PrevStateNo=800013
value =800019
ignorehitpause =1
[State 1]
type =  ChangeState
triggerall=name="Dominate Akane Inuwaka"
triggerall =roundstate=2
triggerall =stateno!=[800001,800019]
trigger1 =numenemy&&var(39)=[6500,7000]
trigger1 =PrevStateNo!=800012
trigger2 =PrevStateNo=800017
value =800012
ignorehitpause =1

[statedef 800019]
ignorehitpause =1
hitdefpersist=1
movehitpersist=1
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1

[State 2]
type = PlaySnd
trigger1 =anim=22121
trigger1 =animelem=1,=0
value = S9999,17
volume =10000
channel = random
lowpriority =random
ignorehitpause =1

[State 2]
type = PlaySnd
trigger1 =var(39)=1
value = S9999,15
volume =10000
channel = 7
lowpriority =7
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1 =var(39)=1
value = S8888,3
volume =10000
channel = 8
lowpriority =8
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1 =enemy,life=0
value = S9999,11
volume =10000
channel = 9
lowpriority =9
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=22121
trigger1 =animelem=3,=30
anim =10025
ID =10025
pos=0,-80
postype =p1
facing = 1
removetime = -2
sprpriority =-1
ontop = 0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=22121
trigger1 =animelem=3,=120
anim =180001
ID =180001
pos=0,-80
postype =p1
facing = 1
removetime = -2
sprpriority =2147483647
ontop = 1
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=22121
trigger1 =animelem=3,=180
anim =180002
ID =180002
pos=0,-80
postype =p1
facing =1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =3,3
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =anim=22121
trigger1 =animelem=3,=180
id =180001
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=22121
trigger1 =animelem=3,=180
anim =22120
ID =22120
pos=150,120
postype =left
facing =1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=22121
trigger1 =animelem=3,=180
anim =22120
ID =22122
pos=150,120
postype =left
facing =1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = VarAdd
trigger1 =animelem=3,>=180
trigger1 =var(39)=[0,60]
var(39)=1
ignorehitpause =1
[State ]
type = Varset
trigger1 =var(39)>60
var(39)=0
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =numexplod(22120)
ID =22120
scale =.5+0.08*var(39),.5+0.08*var(39)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=60
value = S8888,6
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=120
value = S8888,7
volume =10000
channel =random
freqmul =1.0
lowpriority =random
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =numexplod(180001)
trigger1 =time<300
ID =180001
scale =1+0.04*(time-144),1+0.04*(time-144)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = allPalFX
trigger1 =enemy,life=0
time =15
mul = 256,256,256
invertall=1
color =0
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =time>=660
ignorehitpause =1
[State ]
type = VarSet
trigger1 =1
var(18)=4
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1=anim!=22121
value = 22121
ignorehitpause =1
[State 3]
type = AssertSpecial
trigger1 =anim=22121
trigger1 =animelem=3,>120
flag= noBG
flag2 = noFG
flag3 = nobardisplay
ignorehitpause =1
[State ]
type = AssertSpecial
trigger1 =anim=22121
trigger1 =animelem=3,>120
flag = invisible
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =time>=358
ignorehitpause =1
[state ]
type=projectile
trigger1=time=300
projanim=11101
projid=111888999
projremove=0
projremovetime=-2
projpriority=2000000000
projsprpriority=2000000000
attr=SCA, NT, ST, HT
hitflag=mafdhl
affectteam =E
damage=180,20
sparkno=-1
hitsound=-1
fall=1
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000
[State ]
type = ChangeState
trigger1 =time>=360
value =0
ignorehitpause =1

[statedef 800017]
ignorehitpause =1

;;;;;;;;;;;;;;;;;;
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1

[State 1]
type = PalFX
trigger1 =anim=160
trigger1 =animelem=3,=0
time = 48
add = 64, 64,0
sinadd = 64,64,0,3
ignorehitpause=1
[State 2]
type = PlaySnd
trigger1 =time=5
value = S9999,16
volume =10000
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1 =anim=160
trigger1 =animelem=3,=0
value = S9999,10
volume =10000
channel = random
lowpriority =random
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1 =anim=160
trigger1 =animelem=3,=90
value = S9999,14
volume =10000
channel = random
lowpriority =random
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1 =anim=160
trigger1 =animelem=3,=240
value = S9999,14
volume =10000
channel = random
lowpriority =random
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1 =anim=160
trigger1 =animelem=3,=540
value = S8888,6
volume =10000
channel = random
lowpriority =random
ignorehitpause =1
[State 4]
type = Explod
trigger1 =anim=160
trigger1 =animelem=3,=0
anim =16933
ID =16933
pos=0,-100
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop =0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause = 1

[State 6]
type = Explod
trigger1 =anim=160
trigger1 =animelem=3,=90
anim =32767
ID =32767
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop = 0
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State 6]
type = Explod
trigger1 =anim=160
trigger1 =animelem=3,=90
anim =2259
ID =2259
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =!numexplod(2259)
id =32767
ignorehitpause =1
[State ]
type = VarSet
trigger1 =1
var(18)=3
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1=anim!=160
value = 160
ignorehitpause =1
[State 3]
type = AssertSpecial
trigger1 =numexplod(2259)
flag= noBG
flag2 = noFG
flag3 = nobardisplay
ignorehitpause =1
[state ]
type=projectile
trigger1=time=500
projanim=11101
projid=111888999
projremove=0
projremovetime=-2
projpriority=2000000000
projsprpriority=2000000000
attr=SCA, NT, ST, HT
hitflag=mafdhl
affectteam =E
damage=180,20
sparkno=-1
fall=1
hitsound=-1
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000

[State ]
type = ChangeState
trigger1 =time>=660
value =0
ignorehitpause =1
[statedef 800015]
ignorehitpause =1
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1
[State 1]
type = PalFX
trigger1=anim=10092
trigger1=animelem=5,=0
time = 48
add = 150, 120,0
sinadd = 150,120,0,3
ignorehitpause=1
[State 2]
type = PlaySnd
trigger1 =time=5
value = S9999,12
volume =10000
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1=anim=10092
trigger1=animelem=5,=0
value = S9999,10
volume =10000
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1=time=60
value = S9999,13
volume =10000
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1=time=60
value = S9999,15
volume =10000
loop=1
channel =2
lowpriority =2
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1=time=520
value = S3200,1
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State 2]
type = PlaySnd
trigger1=time=660
value = S9999,14
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = StopSnd
trigger1 =time>=960
channel =2
ignorehitpause =1
[State 3]
type = AssertSpecial
trigger1 =time>=60
flag= noBG
flag2 = noFG
flag3 = nobardisplay
ignorehitpause =1
[State 4]
type = Explod
trigger1=anim=10092
trigger1=animelem=5,=0
anim =16933
ID =16933
pos=0,-80
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop =0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause = 1
[State 5]
type = Explod
trigger1 =time=5
anim =22119
ID =22119
pos=40+180*(teamside=2),90
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =4
ontop = 1
scale =.29,.22
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State 6]
type = Explod
trigger1 =time=60
anim =32767
ID =32767
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop =0
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State 6]
type = Explod
trigger1=time=60
anim =13002
ID =13002
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =time>1060
id =32767
ignorehitpause =1
[State ]
type = VarSet
trigger1 =1
var(18)=2
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1=anim!=10092
value = 10092
ignorehitpause =1
[state ]
type=projectile
trigger1=time=900
projanim=11101
projid=111888999
projremove=0
projremovetime=-2
projpriority=2000000000
projsprpriority=2000000000
attr=SCA, NT, ST, HT
hitflag=mafdhl
affectteam =E
damage=500,100
sparkno=-1
hitsound=-1
fall=1
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000
[State ]
type = ChangeState
trigger1 =time>=1060
value =0
ignorehitpause =1
[statedef 800013]
ignorehitpause =1
;;;;;;;;;;;;;;;;;;
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1

[State 4]
type = PlaySnd
trigger1 =time=5
value = S4260,0
volume =10000
ignorehitpause =1
[State 5]
type = Explod
trigger1 =time=1
anim =22118
ID =22118
pos=10+250*(teamside=2),90
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =4
ontop = 1
scale =.29,.22
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1=time=0
value = 1000
ignorehitpause =1
[State ]
type = VarSet
trigger1 =1
var(18)=1
ignorehitpause =1
[State ]
type = ChangeState
trigger1 =(time>5)
value =800014
ignorehitpause =1
[statedef 800014]
anim=11144
ignorehitpause =1
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1
[state ]
type=projectile
trigger1=time=20
projanim=11101
projid=111888999
projremove=0
projremovetime=-2
projpriority=2000000000
projsprpriority=2000000000
attr=SCA, NT, ST, HT
hitflag=mafdhl
affectteam =E
damage=180,20
sparkno=-1
fall=1
hitsound=-1
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000
[State ]
type = ChangeState
trigger1 =animtime=0
value =0
ignorehitpause =1


[statedef 800012]
anim=10092
[State ]
type = VelSet
trigger1 =p2bodydist x>0&&BackEdgeDist>5
x =0+18*(enemy,life=0)
y =0-18*(enemy,life=0)
ignorehitpause=1

[State ]
type = VelSet
trigger1 =p2bodydist x<0&&BackEdgeDist<5
x=0
y=0
ignorehitpause=1
[State ]
type = posSet
trigger1 =pos y<-160
y =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1
[State ]
type = PalFX
trigger1=animelem=5,=0
time = 390
add = 0, 0,180
sinadd = 0,0,180,3
ignorehitpause=1
[State ]
type = PlaySnd
trigger1 =animelem=5,=0
value = S9999,10
volume =10000
ignorehitpause =1

[State ]
type = Explod
trigger1 =animelem=5,=0
anim =22116
ID =22116
pos=10+270*(teamside=2),90
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =4
ontop = 1
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =animelem=5,=0
anim =22115
ID =22115
pos=60+180*(teamside=2),70
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =4
ontop = 1
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =animelem=5,=0
anim =22113
ID =22113
pos=10+290*(teamside=2),70
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =animelem=5,=0
anim =16933
ID =16933
pos=0,-80
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop =0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=90
anim =10010
ID =10010
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop = 0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=10
value = S4100,2
channel =random
lowpriority =random
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=90
value = S6350,0
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=120
value = S3200,0
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=135
value = S3200,1
volume =10000
channel =random
lowpriority =random
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=180
value = S2750,0
channel =random
lowpriority =random
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=190
value = S8888,6
channel =random
lowpriority =random
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=300
value = S9999,2
channel =random
lowpriority =random
volume =10000
ignorehitpause =1
[state ]
type=projectile
trigger1=time=350
projanim=11101
projid=111888999
projremove=0
projremovetime=-2
projpriority=2000000000
projsprpriority=2000000000
attr=SCA, NT, ST, HT
hitflag=mafdhl
affectteam =E
damage=180,20
sparkno=-1
fall=1
hitsound=-1
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000
[State ]
type = ChangeState
trigger1 =time>390
value =0
ignorehitpause =1
[statedef 800011]
anim=181
ignorehitpause=1

[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1

[State ]
type = VelSet
trigger1 =vel x!=0
x=0
ignorehitpause=1
[State ]
type = posSet
trigger1 =pos y<-30
y =0
ignorehitpause=1
[State ]
type = allPalFX
trigger1 =enemy,life=0
time =15
mul = 256,256,256
invertall=1
color =0
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=116
anim =22114
ID =22114
pos=40+220*(teamside=2),70
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=116
anim =22112
ID =22112
pos=60+180*(teamside=2),50
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=116
anim =22111
ID =22111
pos=40+220*(teamside=2),50
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=116
anim =5151
ID =5151
pos=80,-80
postype =p1
facing = 1
removetime =-2
sprpriority =0
ontop = 0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = varadd
trigger1 =time>=116
trigger1 =var(40)=[0,60]
var(40)=1
ignorehitpause =1
[State ]
type = varset
trigger1 =var(40)>60
var(40)=0
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =1
ID =5151
scale =1+0.03*var(40),1+0.03*var(40)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =time>600
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =animelem=2,=0
value = S15190,0
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =var(40)=30
value = S8888,3
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =enemy,life=0
value = S9999,11
volume =10000
ignorehitpause =1
[state ]
type=projectile
trigger1=time=500
projanim=11101
projid=111888999
projremove=0
projremovetime=-2
projpriority=2000000000
projsprpriority=2000000000
attr=SCA, NT, ST, HT
hitflag=mafdhl
affectteam =E
damage=180,20
fall=1
sparkno=-1
hitsound=-1
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000

[State ]
type = ChangeState
trigger1 =time>600
value =0
ignorehitpause =1



[statedef 800010]
ignorehitpause=1
[State ]
type = ChangeAnim
trigger1 =time=5
value =2500
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =time=202
value =2501
ignorehitpause =1
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1
[State ]
type = PlaySnd
trigger1 =time=0
value = S4100,1
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=2500&&animelem=5,=0
value = S9999,10
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=2500&&animelem=9,=0
value = S9999,9
volume =10000
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=2500&&animelem=5,=0
anim =16933
ID =16933
pos=0,-120
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop =0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = EnvShake
trigger1 =anim=2500&&animelem=9,=0
time =120
freq =80
ampl =-10
ignorehitpause = 1
[State ]
type = BGPalFX
trigger1 =anim=2500&&animelem=9,=0
time =120
add = 88,0,0
mul = 256,0,0
invertall=0
color =0
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=2500&&animelem=9,=0
anim =10091
ID =10091
pos=0,120
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =2
ontop =1
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1

[State ]
type = Explod
trigger1 =anim=2500&&animelem=9,=0
anim =22113
ID =22113
pos=10+290*(teamside=2),70
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=2500&&animelem=9,=0
anim =22111
ID =22111
pos=40+220*(teamside=2),50
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[state ]
type=projectile
trigger1=time=20
projanim=11101
projid=111888999
projremove=0
projremovetime=-2
projpriority=2000000000
projsprpriority=2000000000
attr=SCA, NT, ST, HT
hitflag=mafdhl
affectteam =E
damage=180,20
fall=1
sparkno=-1
hitsound=-1
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000
[State ]
type = ChangeState
trigger1 =anim=2501&&animtime=0
value =0
ignorehitpause =1








[statedef 800009]
anim=81111
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1
[State ]
type = PlaySnd
trigger1 =time=0
value = S4100,0
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=60
value = S9999,7
volume =10000
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=10
anim =22111
ID =22111
pos=40+220*(teamside=2),50
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=10
anim =22112
ID =22112
pos=60+180*(teamside=2),50
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1

[State ]
type = Explod
trigger1 =time=10
anim =44222
ID =44222
pos=10+290*(teamside=2),50
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.29,.29
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=10
anim =10026
ID =10026
pos=50,-80
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =1
ontop = 0
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =time=60
anim =10060
ID =10060
pos=60,-80
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ModifyExplod
trigger1 =time>120
ID =10060
scale =1,1-0.0083*(time-120)
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type =RemoveExplod
trigger1 =time>240
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = ChangeState
trigger1 =time>240
value =0
ignorehitpause =1



[statedef 800008]
anim=81111
ignorehitpause=1
[State ]
type = Turn
trigger1 =facing=enemynear,facing
ignorehitpause =1
[State ]
type = VelSet
trigger1 =vel x!=0
x =0
ignorehitpause=1
[State ]
type = VelSet
trigger1 =vel y!=0
y =0
ignorehitpause=1
[State ]
type = posSet
trigger1 =1
y =0
ignorehitpause=1
[State ]
type = PlaySnd
trigger1 =time=0
value = S2000,2
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=30
value = S9999,4
volume =10000
ignorehitpause =1
[state 1]
type=projectile
trigger1=(time=[30,40])&&random<500
trigger1=numprojid(10002)=0
projanim=10002
projid=10002
projremove=1
projremovetime=240
projhitanim=10003
projstagebound=20
projpriority=4
projsprpriority=4
projedgebound=20
projmisstime=10
velocity=12,0
projscale=1,1
offset=50,-80
postype=p1
attr=C,HP
affectteam =E
damage=5,2
hitsound=s9999,5
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000
[state 2]
type=projectile
trigger1=(time=[30,40])&&random>500
trigger1=numprojid(10002)=0
trigger1=numprojid(10011)=0
projanim=10011
projid=10011
projremove=1
projremovetime=240
projhitanim=10012
projstagebound=40
projpriority=4
projsprpriority=4
projedgebound=20
projmisstime=10
velocity=12,-4
projscale=1,1
offset=50,-80
postype=p1
attr=C,HP
affectteam =E
damage=5,2
hitsound=s9999,5
ignorehitpause=1
pausemovetime=2000000000
supermovetime=2000000000

[State ]
type = ChangeState
trigger1 =time>120
value =0
ignorehitpause =1

[statedef 800006]
ignorehitpause=1
[State ]
type = ChangeAnim
trigger1 =time=0
value =450
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =anim=450&&time>=60&&anim!=451
value =451
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =anim=451&&time>=84
value =1100
ignorehitpause =1
[State ]
type = PosSet
trigger1 =anim=1100&& animelem=1,=0
x = 0
y = 40
ignorehitpause = 1
[State ]
type = PosSet
trigger1 =anim=8887&&animelem=3,<0
x = 0
y = -100
ignorehitpause = 1
[State ]
type = VelSet
trigger1 =anim=1100
x = 0
y = -2
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =anim!=160&&anim=1100&&pos y<-105
value =160
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =anim!=8887&&anim=160&&animelem=3,>=210
value =8887
ignorehitpause =1

[State ]
type = velSet
trigger1 =anim=160&&(animelem=1,>=0||animelem=2,>=0||animelem=3,<=60)
x = 0
y = 0
ignorehitpause =1
[State ]
type = velSet
trigger1 =anim=160&&animelem=3,>60&&animelem=3,<=150
x = 0
y = 2
ignorehitpause =1
[State ]
type = VelSet
trigger1 =anim=8887&& animelem=10,=0
x = 0
y = 25
ignorehitpause =1
[State ]
type = VelSet
trigger1 =anim=8887&& animelem=10,>6
x = 0
y = 0
ignorehitpause =1
[State ]
type = AssertSpecial
trigger1 =anim=160&&animelem=3,>150&&animelem=3,<210
flag = nobg
flag2 = nobardisplay
ignorehitpause =1
[State ]
type = AngleDraw
trigger1 =anim=160&&animelem=3,>60&&animelem=3,<=150
scale=1+.011*(animelemtime(3)-60),1+.011*(animelemtime(3)-60)
ignorehitpause=1
[State ]
type = AngleDraw
trigger1 =anim=160&&animelem=3,>150&&animelem=3,<210
scale=1+.011*90,1+.011*90
ignorehitpause=1
[State ]
type = AngleDraw
trigger1 =anim=8887&&animelem=10,>8&&animelem=10,<=60
scale=1+.011*(animelemtime(10)-8),1+.011*(animelemtime(10)-8)
ignorehitpause=1
[State ]
type = AngleDraw
trigger1 =anim=8887&&animelem=10,>60
scale=1+.011*52,1+.011*52
ignorehitpause=1




[State ]
type = ScreenBound
trigger1 =1
value = 1
movecamera =1,1
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=1100&&!numexplod(12269)
anim =12269
ID =12269
pos=45,-140
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =4
ontop = 0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=160&&!numexplod(8043)
anim =8043
ID =8043
pos=-240,-270
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop = 1
scale =1.5,1.01
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=8887&&animelem=10,=9
anim =29098
ID =29098
pos=0,-50
postype =p1
facing = 1
bindtime=-1
removetime =-2
sprpriority =0
ontop = 0
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = EnvShake
trigger1 =animelem=10,=9
time =30
freq =30
ampl =-40
ignorehitpause = 1


[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=0
value = S4100,2
volume =10000
freqmul=1.1
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1100&&time=84
value = S4000,0
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1100&&time=99
value = S4000,1
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1100&&time=114
value = S4000,2
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1100&&time=129
value = S4000,3
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1100&&time=144
value = S4000,4
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1100&&time=159
value = S4000,4
volume =10000
ignorehitpause =1

[State ]
type = PlaySnd
trigger1 =anim=160&&animelem=1,=0
value = S8888,1
volume =10000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=300
value = S9999,3
volume =10000
channel=7
lowpriority=7
ignorehitpause =1



[State ]
type = PlaySnd
trigger1 =anim=8887&&animelem=10,=9
value = S9999,1
volume =10000
ignorehitpause =1







[State ]
type = ChangeState
trigger1 =anim=8887&&animelem=10,>68
value =800007
ignorehitpause =1


[statedef 800007]
[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = PosSet
trigger1 =1
y = 0
ignorehitpause = 1
[State ]
type = ChangeAnim
trigger1 =time=0
value =29899
ignorehitpause =1
[State ]
type = AngleDraw
trigger1 =animelem>=1&&animelem=3,<3
scale=1.572-time*0.1048,1.572-time*0.1048
ignorehitpause=1
[State ]
type = ChangeState
trigger1 =animtime=0
value =0
ignorehitpause =1






[statedef 800004]
ignorehitpause=1
[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =time=0
value =900
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =anim=900&&animtime=0
value =901
ignorehitpause =1
[State ]
type = VelSet
trigger1 =anim=901&&P2bodydist x>0
x =8
y=0
ignorehitpause =1
[State ]
type = VelSet
trigger1 =anim=901&&P2bodydist x<=0
x =0
y=0
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =anim=901&&P2bodydist x<=0
value =1600
ignorehitpause =1
[State ]
type = AssertSpecial
trigger1 =anim=1600&&animelem=3,>30
flag = nobg
flag2 = invisible
flag3 = nobardisplay
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=1600&&animelem=3,=30
anim =48935
ID =48935
pos=80,-10
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=1600&&animelem=3,=60
anim =11223
ID =11223
pos=0,0
postype =left
facing = 1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =.5,.5
ownpal = 0
bindtime=-1
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=1600&&animelem=3,=90
anim =11224
ID =11224
pos=0,110
postype =left
facing = 1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =.5,.5
ownpal = 0
bindtime=-1
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=1600&&animelem=3,=120
anim =11225
ID =11225
pos=220,0
postype =left
facing = 1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =.5,.5
bindtime=-1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = Explod
trigger1 =anim=1600&&animelem=3,=150
anim =11226
ID =11226
pos=220,110
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =.5,.5
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1600&&animelem=3,=0
value = S2000,0
volume =10000
freqmul=1.1
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=1600&&animelem=3,=60
trigger2 =anim=1600&&animelem=3,=90
trigger3 =anim=1600&&animelem=3,=120
trigger4 =anim=1600&&animelem=3,=150
value = S8888,8
volume =10000
ignorehitpause =1
[State ]
type = RemoveExplod
trigger1 =time>240
ignorehitpause =1
[State ]
type = ChangeState
trigger1 =time>300
value =800005
ignorehitpause =1
[statedef 800005]
anim=12267
ignorehitpause=1
[State ]
type = Explod
trigger1 =time=0
anim =12268
ID =12268
postype =left
facing = 1
bindtime=-1
removetime =-2
sprpriority =2147483647
ontop = 1
scale =4,4
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1
[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=0
value = S8888,9
volume =10000
ignorehitpause =1
[State ]
type = ChangeState
trigger1 =time>60
value =0
ignorehitpause =1

[statedef 800003]
ignorehitpause=1
[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =time=0
value =6230
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =time=30
trigger1 =anim!=950
value =950
ignorehitpause =1
[State ]
type = VelSet
trigger1 =anim=950&&FrontEdgeBodyDist>0
x =30
ignorehitpause =1
[State ]
type = Turn
trigger1 =anim=950&&FrontEdgeBodyDist<=0
ignorehitpause = 1
[State ]
type = VelSet
trigger1 =anim=950&&FrontEdgeBodyDist<=0
x =30
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =time=60
trigger1 =anim!=910
value =910
ignorehitpause =1
[State ]
type = VelSet
trigger1 =anim=910&&FrontEdgeBodyDist>0
x =30
ignorehitpause =1
[State ]
type = Turn
trigger1 =anim=910&&FrontEdgeBodyDist<=0
ignorehitpause = 1
[State ]
type = VelSet
trigger1 =anim=910&&FrontEdgeBodyDist<=0
x =30
ignorehitpause =1

[State ]
type = PlaySnd
trigger1 =time=0
value = S1200,0
volume =1000
ignorehitpause =1

[State ]
type = PlaySnd
trigger1 =time=30
value = S4000,0
volume =1000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=60
value = S4000,2
volume =1000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=90
value = S4000,3
volume =1000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =time=120
value = S4000,4
volume =1000
ignorehitpause =1
[State ]
type =MakeDust
trigger1 =anim=910||anim=950
pos =pos x, 0
spacing =1
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =time=120
value =2200
ignorehitpause =1
[State ]
type = Turn
trigger1 =anim=2200&&time=120&&BackEdgeDist>100
ignorehitpause = 1
[State ]
type = PosSet
trigger1 =anim=2200&&time=120
y =-80
ignorehitpause = 1
[State ]
type = ScreenBound
trigger1 =1
value = 1
movecamera =1,1
ignorehitpause =1

[State ]
type = Velset
trigger1 =anim=2200&&time<133
x =20
y =8
ignorehitpause =1
[State ]
type = Velset
trigger1 =anim=2200&&time>132
x =0
y =0
ignorehitpause =1
[State ]
type = AngleDraw
trigger1 =anim=2200&&time<133
scale=1+0.098*(time-120),1+0.098*(time-120)
ignorehitpause=1
[State ]
type = AngleDraw
trigger1 =anim=2200&&time>132
scale=1+0.098*12,1+0.098*12
ignorehitpause=1

[State ]
type = ChangeState
trigger1 =time>300
value =0
ignorehitpause =1





[statedef 800002]
ignorehitpause=1
[State ]
type = ChangeAnim
trigger1 =P2BodyDist X > 40
trigger1 =anim!=100
value =100
ignorehitpause =1
[State ]
type = Velset
trigger1 = anim=100
x = 3
ignorehitpause =1
[State ]
type = Turn
trigger1 =P2BodyDist X < 0
ignorehitpause = 1
[State ]
type = posset
trigger1 = 1
y=0
ignorehitpause =1
[State ]
type = ChangeAnim
triggerall =P2BodyDist y =[-10,10]
trigger1 =P2BodyDist X =[-40,40]
triggerall =anim!=250
value =250
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=250
trigger1 =animelem=4,=0
value = S226,0
volume =1000
ignorehitpause =1


[State ]
type = ChangeState
trigger1 =time>22&&animtime=0
value =0
ignorehitpause =1



[statedef 800001]
ignorehitpause=1
[State ]
type = ChangeAnim
trigger1 =P2BodyDist X > 0
trigger1 =P2BodyDist X > 30
trigger2 =P2BodyDist X < -30
trigger2 =P2BodyDist X < 0
triggerall =anim!=20
value =20
ignorehitpause =1
[State ]
type = Velset
trigger1 =anim=20
x = 1.5
ignorehitpause =1
[State ]
type = Turn
trigger1 =P2BodyDist X < 0
ignorehitpause = 1
[State ]
type = posset
trigger1 = 1
y=0
ignorehitpause =1
[State ]
type = ChangeAnim
triggerall =P2BodyDist y =[-10,10]
trigger1 =P2BodyDist X =[-30,30]
triggerall =anim!=200&&anim!=210&&anim!=220&&anim!=225
value =ifelse((random=[0,100]),ifelse((random=[101,200]),200,210),ifelse((random=[201,300]),220,225))
ignorehitpause =1

[State ]
type = Explod
trigger1 =anim=225&&animelem=4,=0
anim =1306
ID =1306
pos=80,-50
postype =p1
facing = 1
removetime =-2
sprpriority =4
ontop = 1
scale =1,1
ownpal = 0
supermovetime=2147483647
pausemovetime=2147483647
ignorehitpause =1

[State ]
type = PlaySnd
trigger1 =anim=200
trigger1 =animelem=3,=0
value = S200,1
volume =1000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=210
trigger1 =animelem=3,=0
value = S210,1
volume =1000
ignorehitpause =1
[State ]
type = PlaySnd
trigger1 =anim=220
trigger1 =animelem=3,=0
value = S220,1
volume =1000
ignorehitpause =1    '
[State ]
type = PlaySnd
trigger1 =anim=225
trigger1 =animelem=3,=0
value = S220,2
volume =1000
ignorehitpause =1

[State ]
type = ChangeState
trigger1 =time>64&&animtime=0
value =0
ignorehitpause =1
[statedef 4444]
type    = S
movetype= A
physics = N
velset = 0,0
ctrl = 0
sprpriority =4
ignorehitpause=1
[State a]
type = afterimage
trigger1 =gametime%15=1
trigger1 =anim=910||anim=950||anim=900||anim=1100||anim=8887
time =15
trans = add1
timegap =1
framegap =2
length =20
palcolor=150
ownpal = 0
palbright = 0,0,200
palcontrast = 0,0,12;
palpostbright = 0,0,100
paladd = 0,0,80
palmul = 0,0,2.56
ignorehitpause =1
[State a]
type = afterimage
trigger1 =gametime%15=1
trigger1 =anim=20||anim=40
time =15
trans = add1
timegap =1
framegap =2
length =60
palcolor=20
ownpal = 0
palbright = 0,0,200
palcontrast = 0,0,12;
palpostbright = 0,0,100
paladd = 0,0,80
palmul = 0,0,2.56
ignorehitpause =1
[State a]
type = afterimage
trigger1 =gametime%15=1
trigger1 =anim=200||anim=210||anim=220||anim=225
time = 15
trans = add1
timegap =1
framegap =2
length =60
palcolor=150
ownpal = 0
palbright = 0,0,200
palcontrast = 0,0,12;
palpostbright = 0,0,100
paladd = 0,0,80
palmul = 0,0,2.56
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =roundstate=2
trigger1 =anim!=root,anim
trigger1 =root,anim!=0
trigger1 =root,stateno=[800001,800008]
trigger1 =root,sysvar(1)<7000
value = root,anim
elem = 0
ignorehitpause =1
[State ]
type = ChangeAnim
trigger1 =roundstate!=2
trigger2 =root,anim=0
trigger3 =root,stateno!=[800001,800008]
trigger4 =root,sysvar(1)>7000
value = 11101
ignorehitpause =1

[State ]
type = null;PosSet
trigger1=1
x =root,pos x
y = root, pos y
ignorehitpause =1
[State ]
type = BindToRoot
trigger1 =1
time = -1
facing =1
ignorehitpause =1

[State ]
type =AssertSpecial
trigger1 =1
flag = invisible
flag2 = noshadow
flag3 = globalnoshadow
ignorehitpause =1
[state ]
type = hitdef
trigger1=anim=200
trigger1=AnimElem = 3, >= 0
trigger2=anim=210
trigger2=AnimElem = 3, >= 0
trigger3=anim=220
trigger3=AnimElem = 3, >= 0||AnimElem = 4, >= 0||AnimElem = 5, >= 0||AnimElem = 9, >= 0
trigger4=anim=225
trigger4=AnimElem = 7, >= 0||AnimElem = 11, >= 0
attr =S,NA
animtype =Up
numhits =1
sparkxy = -5,-35
hitflag =MADF
guardflag = MA
sparkno =s7000
damage=1,0
hitsound =S420,0
priority = 7, Hit
ground.type = Low
affectteam =E
ignorehitpause=1


[state ]
type = hitdef
trigger1=anim=450
trigger1=enemy,stateno!=888777
attr = S, NA
animtype  = Hard
damage    =1,0
getpower  = 0
priority  = 4
guardflag =
sparkno=-1
pausetime = 8,8
hitsound=-1
ground.type = Low
ground.slidetime = 22
ground.hittime  = 22
ground.velocity = -32,-28
guard.velocity = -28
air.velocity = -32,-28
airguard.velocity = -20, -16
fall=1
p2stateno=888777
ignorehitpause=1

[state ]
type = hitdef
trigger1=gametime%6=1
trigger1=anim=1100
trigger1=enemy,stateno=888777
attr = S, NA
animtype  = Hard
damage    =2,1
getpower  = 0
priority  = 4
pausetime = 8,8
sparkxy = -10,-120
hitsound = s420,0
sparkno =s7003
ground.type = Low
ground.slidetime = 22
ground.hittime  = 22
ground.velocity = -32,-28
guard.velocity = -28
air.velocity = -32,-28
airguard.velocity = -20, -16
p2stateno=888777
fall=1
ignorehitpause=1

[state ]
type = hitdef
trigger1=anim=901&&(animelem=1,=0||animelem=2,=0)
trigger1=enemy,stateno!=888888
attr = S, NA
animtype  = Hard
damage    =3,1
getpower  = 0
priority  = 4
guardflag =
sparkno=-1
pausetime = 8,8
hitsound=-1
ground.type = Low
ground.slidetime = 22
ground.hittime  = 22
ground.velocity = -32,-28
guard.velocity = -28
air.velocity = -32,-28
airguard.velocity = -20, -16
p2stateno=888888
ignorehitpause=1
[State ]
type = VarRandom
trigger1 =1
v =49
range =-100,100
ignorehitpause =1
[State ]
type = VarRandom
trigger1 =1
v =50
range =-100,100
ignorehitpause =1
[state ]
type = hitdef
trigger1=anim=1600&&animelem=3,>=0
trigger1=gametime%3=1&&root,time>240
attr = S, NA
animtype  = Hard
damage    =3,1
getpower  = 0
priority  = 4
guardflag = MA
pausetime = 8,8
ground.type = Low
ground.slidetime = 22
ground.hittime  = 22
ground.velocity = -32,-28
guard.velocity = -28
sparkxy =var(49),var(50)
hitsound = s2300,3
sparkno =s7002
air.velocity = -32,-28
airguard.velocity = -20, -16
p2stateno=888888
ignorehitpause=1





[state ]
type = hitdef
trigger1=gametime%6=1
trigger1=anim=910||anim=950
attr = S, NA
animtype  = Hard
damage    =10,2
getpower  = 0
priority  = 4
guardflag = MA
pausetime = 8,2
sparkxy = -5,-35
hitsound   = s2300,3
ground.type = Low
sparkno =s7002
ground.slidetime = 22
ground.hittime  = 22
ground.velocity = -32,-28
guard.velocity = -28
air.velocity = -32,-28
airguard.velocity = -20, -16
p2stateno=888999
ignorehitpause=1

[state ]
type = hitdef
trigger1=gametime%6=1
trigger1=anim=2200&&root,time>240
trigger1=enemy,stateno=888999
attr = S,NA
animtype  = Hard
damage    =1,0
getpower  = 0
priority  = 4
guardflag = MA
pausetime = 8,7
sparkxy = -5,-35
hitsound   = s2300,3
ground.type = Low
sparkno =s7004
ground.slidetime = 22
ground.hittime  = 22
ground.velocity = -32,-28
guard.velocity = -28
air.velocity = -32,-28
airguard.velocity = -20, -16
fall = 1
p2stateno=888999
ignorehitpause=1


[state ]
type = hitdef
trigger1=anim=250
trigger1=AnimElem = 6, >= 0 ||AnimElem = 7, >= 0||AnimElem = 8, >= 0
attr =S,NA
animtype =hard
numhits =1
sparkxy = -5,-35
hitflag =MADF
guardflag = MA
sparkno =s7001
damage=3,1
hitsound =S420,0
priority = 7, Hit
ground.type = Low
ground.slidetime = 28
ground.hittime  = 28
ground.velocity = -5.2,-10
guard.velocity = -44
air.velocity = -5.2,-10
airguard.velocity = -18,-20
envshake.time = 25
envshake.ampl = 28
envshake.freq = 176
p2facing = 1
fall = 1
fall.recover = 0
fall.damage =100
fall.envshake.ampl = 24
fall.envshake.freq = 178
fall.envshake.time = 15
affectteam =E
ignorehitpause=1

[statedef 888777]
type    = A
movetype= H
physics = N
[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = ChangeAnim2
trigger1 =time=0
value =5556
ignorehitpause =1
[State ]
type = ChangeAnim2
trigger1 =enemy,anim=8887
value =5557
ignorehitpause =1
[State ]
type = PosSet
trigger1 =enemy,anim=1100
x = enemy,pos x+20
y = enemy,pos y-50
ignorehitpause =1
[State ]
type = PosSet
trigger1 =enemy,anim=8887
x = enemy,pos x-20
y = enemy,pos y-40
ignorehitpause =1
[State ]
type = varadd
trigger1 =1
var(7)=1
ignorehitpause =1
[State ]
type = lifeadd
trigger1 =var(7)=5
value=-300
ignorehitpause =1
[State ]
type = selfState
trigger1 =enemynear,anim=8887&&enemynear,animelem=10,>30
trigger2 =enemy,time>600
value =5100
ignorehitpause =1
[statedef 888888]
type    = A
movetype= H
physics = N
[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = ChangeAnim2
trigger1 =time=0
value =5050
ignorehitpause =1
[State ]
type = AssertSpecial
trigger1 =1
flag= invisible
ignorehitpause =1
[State ]
type =AssertSpecial
trigger1 =enemy,stateno=800004
flag = noko
ignorehitpause =1
[State ]
type = varadd
trigger1 =1
var(7)=1
ignorehitpause =1
[State ]
type = lifeadd
trigger1 =var(7)=5
value=-300
ignorehitpause =1
[State ]
type = selfState
trigger1 =enemy,stateno=800005&&enemy,animtime=0
trigger2 =enemy,time>600
value =5100
ignorehitpause =1
[statedef 888999]
type    = A
movetype= H
physics = N
[State ]
type = CtrlSet
trigger1 =1
value = 0
ignorehitpause =1
[State ]
type = ChangeAnim2
trigger1 =time=0
value =5556
ignorehitpause =1
[State ]
type =AssertSpecial
trigger1 =1
flag = noautoturn
ignorehitpause =1
[State ]
type = ChangeAnim2
trigger1 =enemy,anim=2200&&enemy,time>=240&&anim!=5555
value =5555
ignorehitpause =1
[State ]
type = Varset
trigger1 =anim!=5555
var(0)=0
ignorehitpause =1
[State ]
type = VarAdd
trigger1 =anim=5555
var(0)=1
ignorehitpause =1
[State ]
type = PosSet
trigger1 =1
y=0
x=0
ignorehitpause =1
[State ]
type = PosFreeze
trigger1 =1
value = 1
ignorehitpause =1
[State ]
type = varadd
trigger1 =1
var(7)=1
ignorehitpause =1
[State ]
type = lifeadd
trigger1 =var(7)=5
value=-300
ignorehitpause =1
[State ]
type = selfState
trigger1 =enemy,anim=2200&&enemy,time>=300
trigger2 =enemy,time>600
value =5100
ignorehitpause =1
