Freeslot
MT_MASTEREMERALD
SPR_MSEM
S_GLOW1
S_GLOW2
S_GLOW3
S_GLOW4
S_GLOW5
S_GLOW6
MT_SUPEREMMYRED
MT_SUPEREMMYORANGE
MT_SUPEREMMYCYAN
MT_SUPEREMMYPURPLE
MT_SUPEREMMYGREEN
MT_SUPEREMMYBLUE
MT_SUPEREMMYSILVER
SPR_SPER
S_SPER1
SPR_SPEB
S_SPEB1
SPR_SPEG
S_SPEG1
SPR_SPEC
S_SPEC1
SPR_SPEY
S_SPEY1
SPR_SPEP
S_SPEP1
SPR_SPES
S_SPES1

#:O The Master Emerald!
Object MT_MASTEREMERALD
#$Name Master Emerald
#$Sprite MSEMA0
MapThingNum = 1043
SpawnState = S_GLOW1
SpawnHealth = 1000
SeeState = S_GLOW1
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 60*FRACUNIT
Height = 60*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_GLOW1
SpriteName = MSEM
SpriteFrame = A
Duration = 7
Next = S_GLOW2

State S_GLOW2
SpriteName = MSEM
SpriteFrame = B
Duration = 7
Next = S_GLOW3

State S_GLOW3
SpriteName = MSEM
SpriteFrame = C
Duration = 7
Next = S_GLOW4

State S_GLOW4
SpriteName = MSEM
SpriteFrame = D
Duration = 7
Next = S_GLOW5

State S_GLOW5
SpriteName = MSEM
SpriteFrame = C
Duration = 7
Next = S_GLOW6

State S_GLOW6
SpriteName = MSEM
SpriteFrame = B
Duration = 7
Next = S_GLOW1

#:O The Super Emeralds?!
Object MT_SUPEREMMYRED
#$Name Super Emerald 6 (Red)
#$Sprite SPERA0
MapThingNum = 1049
SpawnState = S_SPER1
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 36*FRACUNIT
Height = 50*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_SPER1
SpriteName = SPER
SpriteFrame = A
Duration = -1
Next = S_SPER1

Object MT_SUPEREMMYORANGE
#$Name Super Emerald 5 (Orange)
#$Sprite SPEYA0
MapThingNum = 1048
SpawnState = S_SPEY1
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 36*FRACUNIT
Height = 50*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_SPEY1
SpriteName = SPEY
SpriteFrame = A
Duration = -1
Next = S_SPEY1

Object MT_SUPEREMMYSILVER
#$Name Super Emerald 7 (Silver)
#$Sprite SPESA0
MapThingNum = 1050
SpawnState = S_SPES1
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 36*FRACUNIT
Height = 50*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_SPES1
SpriteName = SPES
SpriteFrame = A
Duration = -1
Next = S_SPES1

Object MT_SUPEREMMYBLUE
#$Name Super Emerald 3 (Blue)
#$Sprite SPEBA0
MapThingNum = 1046
SpawnState = S_SPEB1
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 36*FRACUNIT
Height = 50*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_SPEB1
SpriteName = SPEB
SpriteFrame = A
Duration = -1
Next = S_SPEB1

Object MT_SUPEREMMYCYAN
#$Name Super Emerald 4 (Cyan)
#$Sprite SPECA0
MapThingNum = 1047
SpawnState = S_SPEC1
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 36*FRACUNIT
Height = 50*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_SPEC1
SpriteName = SPEC
SpriteFrame = A
Duration = -1
Next = S_SPEC1

Object MT_SUPEREMMYGREEN
#$Name Super Emerald 1 (Green)
#$Sprite SPEGA0
MapThingNum = 1044
SpawnState = S_SPEG1
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 40*FRACUNIT
Height = 50*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_SPEG1
SpriteName = SPEG
SpriteFrame = A
Duration = -1
Next = S_SPEG1

Object MT_SUPEREMMYPURPLE
#$Name Super Emerald 2 (Purple)
#$Sprite SPEPA0
MapThingNum = 1045
SpawnState = S_SPEP1
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 0
DeathState = S_NULL
Radius = 40*FRACUNIT
Height = 50*FRACUNIT
Mass = 100
Flags = MF_SOLID|MF_SCENERY|MF_NOGRAVITY

State S_SPEP1
SpriteName = SPEP
SpriteFrame = A
Duration = -1
Next = S_SPEP1

FREESLOT
MT_KNUXSTAR
S_KNUXSTAR1
S_KNUXSTAR2

Thing MT_KNUXSTAR
doomednum = -1
spawnstate = S_KNUXSTAR1
spawnhealth = 1000
reactiontime = MT_FLINGRING
deathstate = S_RINGEXPLODE
painchance = 150*FRACUNIT
speed = 16*FRACUNIT
radius = 16*FRACUNIT
height = 24*FRACUNIT
mass = 100
flags = MF_NOGRAVITY|MF_FLOAT|MF_MISSILE

FRAME S_KNUXSTAR1
SPRITENAME = SSPK
SPRITEFRAME = A
DURATION = 1
NEXT = S_KNUXSTAR2
ACTION A_SetScale
VAR1 = 5*FRACUNIT
VAR2 = 0

FRAME S_KNUXSTAR2
SPRITENAME = SSPK
SPRITEFRAME = B
DURATION = 1
NEXT = S_KNUXSTAR1
ACTION A_SetScale
VAR1 = 5*FRACUNIT
VAR2 = 0

# Knuckles Boss.

Thing MT_CHUCKLESBOSS
MapThingNum = 4022
#$Name Knuckles (Boss)
#$Sprite MKTEA1 
SpawnState = S_CHUCKLOOK1
SeeState = S_NOTICED1
SpawnHealth = 8
PainState = S_CHUCKBOSSHURT1
DeathState = S_CHUCKBOSSDED1
XDeathState = S_NULL
Damage = 1
Height = 32*FRACUNIT
Radius = 24*FRACUNIT
Speed = 20*FRACUNIT
Flags = MF_BOSS|MF_SPECIAL|MF_SHOOTABLE

State S_CHUCKLOOK1
SpriteName = MKTE
SpriteFrame = A
Action = A_ChangeColorAbsolute
Next = S_CHUCKLOOK2
Duration = 5
VAR2 = SKINCOLOR_LEGACY_RED

State S_CHUCKLOOK2
SpriteName = MKTE
SpriteFrame = B
Action = A_Look
Next = S_CHUCKLOOK1
Duration = 5
VAR1 = 1


# States, spotted, lol.

State S_NOTICED1
SpriteName = MKTE
SpriteFrame = A
Next = S_NOTICED2
Duration = 5

State S_NOTICED2
SpriteName = MKTE
SpriteFrame = B
Next = S_NOTICED3
Duration = 5

State S_NOTICED3
SpriteName = MKTE
SpriteFrame = A
Next = S_NOTICED4
Duration = 5

State S_NOTICED4
SpriteName = MKTE
SpriteFrame = B
Next = S_NOTICED5
Duration = 5

State S_NOTICED5
SpriteName = MKTE
SpriteFrame = A
Next = S_NOTICED6
Duration = 10

State S_NOTICED6
SpriteName = MKTE
SpriteFrame = B
Next = S_NOTICED7
Duration = 15

State S_NOTICED7
SpriteName = MKTE
SpriteFrame = T
Next = S_NOTICED8
Duration = 70

State S_NOTICED8
SpriteName = MKTE
SpriteFrame = T
Action = A_ChangeAngleAbsolute
Next = S_NOTICED9
Duration = 5
VAR1 = 0
VAR2 = 0

State S_NOTICED9
SpriteName = MKTE
SpriteFrame = T
Action = A_FaceTarget
Next = S_CHUCKBOSSSPAWN1
Duration = 5

# Standing (begining.)

State S_CHUCKBOSSSPAWN1
SpriteName = MKTE
SpriteFrame = T
Action = A_ChangeColorAbsolute
Next = S_CHUCKBOSSSPAWN2
Duration = 1
VAR2 = SKINCOLOR_LEGACY_RED

State S_CHUCKBOSSSPAWN2
SpriteName = MKTE
SpriteFrame = T
Action = A_ChangeColorAbsolute
Next = S_CHUCKBOSSGLIDE1
Duration = 100
VAR2 = SKINCOLOR_LEGACY_RED

# Walking. (Those are Lua scripted and will only be used when the speed is different than 0 when Knuckles should be standing.)

State S_CHUCKBOSSWALK1
SpriteName = MKTE
SpriteFrame = X
Action None
Next = S_CHUCKBOSSWALK2
Duration = 4

State S_CHUCKBOSSWALK2
SpriteName = MKTE
SpriteFrame = Y
Action None
Next = S_CHUCKBOSSWALK3
Duration = 4

State S_CHUCKBOSSWALK3
SpriteName = MKTE
SpriteFrame = Z
Action None
Next = S_CHUCKBOSSWALK4
Duration = 4

State S_CHUCKBOSSWALK4
SpriteName = MKTE
SpriteFrame = 26
Action None
Next = S_CHUCKBOSSWALK5
Duration = 4

State S_CHUCKBOSSWALK5
SpriteName = MKTE
SpriteFrame = 27
Action None
Next = S_CHUCKBOSSWALK6
Duration = 4

State S_CHUCKBOSSWALK6
SpriteName = MKTE
SpriteFrame = 28
Action None
Next = S_CHUCKBOSSWALK7
Duration = 4

State S_CHUCKBOSSWALK7
SpriteName = MKTE
SpriteFrame = 29
Action None
Next = S_CHUCKBOSSWALK8
Duration = 4

State S_CHUCKBOSSWALK8
SpriteName = MKTE
SpriteFrame = 30
Action None
Next = S_CHUCKBOSSWALK1
Duration = 4

# Gliding
# Jump

State S_CHUCKBOSSGLIDE1
SpriteName = MKTE
SpriteFrame = T
Action = A_SetObjectFlags
Next = S_CHUCKBOSSGLIDE2
Duration = 1
VAR1 = MF_PAIN
VAR2 = 2

State S_CHUCKBOSSGLIDE2
SpriteName = MKTE
SpriteFrame = T
Action = A_PlaySound
Next = S_CHUCKBOSSGLIDE3
Duration = 1
VAR1 = sfx_jump
VAR2 = 1

State S_CHUCKBOSSGLIDE3
SpriteName = MKTE
SpriteFrame = C
Action = A_BunnyHop
Next = S_CHUCKBOSSGLIDE4
Duration = 1
VAR1 = 10
VAR2 = 5

State S_CHUCKBOSSGLIDE4
SpriteName = MKTE
SpriteFrame = C
Action None
Next = S_CHUCKBOSSGLIDE5
Duration = 1

State S_CHUCKBOSSGLIDE5
SpriteName = MKTE
SpriteFrame = D
Action None
Next = S_CHUCKBOSSGLIDE6
Duration = 2

State S_CHUCKBOSSGLIDE6
SpriteName = MKTE
SpriteFrame = E
Action None
Next = S_CHUCKBOSSGLIDE7
Duration = 2

State S_CHUCKBOSSGLIDE7
SpriteName = MKTE
SpriteFrame = F
Action A_FaceTarget
Next = S_CHUCKBOSSGLIDE8
Duration = 2

# Glide

State S_CHUCKBOSSGLIDE8
SpriteName = MKTE
SpriteFrame = R
Action A_SetObjectFlags
Next = S_CHUCKBOSSGLIDECHECK
Duration = 2
VAR1 = MF_NOGRAVITY
VAR2 = 2

# Check health

State S_CHUCKBOSSGLIDECHECK
SpriteName = MKTE
SpriteFrame = R
Action A_CheckHealth
Next = S_CHUCKBOSSGLIDE9
Duration = 1
VAR1 = 4
VAR2 = S_CHUCKBOSSENDLESSGLIDE

State S_CHUCKBOSSGLIDE9
SpriteName = MKTE
SpriteFrame = R
Action A_SkullAttack
Next = S_CHUCKBOSSGLIDE10
Duration = 35
VAR2 = 0

# (Endless glide)

State S_CHUCKBOSSENDLESSGLIDE
SpriteName = MKTE
SpriteFrame = R
Action A_SkullAttack
Next = S_NULL
Duration = -1
VAR2 = 1

State S_CHUCKBOSSGLIDE10
SpriteName = MKTE
SpriteFrame = R
Action A_SetObjectFlags2
Next = S_CHUCKBOSSGLIDE11
Duration = 1
VAR1 = MF2_SKULLFLY
VAR2 = 1

State S_CHUCKBOSSGLIDE11
SpriteName = MKTE
SpriteFrame = R
Action A_SetObjectFlags
Next = S_CHUCKBOSSGLIDE12
Duration = 1
VAR1 = MF_PAIN
VAR2 = 1

State S_CHUCKBOSSGLIDE12
SpriteName = MKTE
SpriteFrame = U
Action A_SetObjectFlags
Next = S_CHUCKBOSSGLIDE13
Duration = 5
VAR1 = MF_NOGRAVITY
VAR2 = 1

State S_CHUCKBOSSGLIDE13
SpriteName = MKTE
SpriteFrame = V
Action None
Next = S_CHUCKBOSSGLIDE12
Duration = 5

# Climb

State S_CHUCKBOSSCLIMB1
SpriteName = MKTE
SpriteFrame = 31
Action A_ZThrust
Next = S_CHUCKBOSSCLIMB2
Duration = 5
VAR1 = 3
VAR2 = 1<<1

State S_CHUCKBOSSCLIMB2
SpriteName = MKTE
SpriteFrame = 32
Action None
Next = S_CHUCKBOSSCLIMB3
Duration = 5
VAR1 = 5
VAR2 = 1<<1

State S_CHUCKBOSSCLIMB3
SpriteName = MKTE
SpriteFrame = 33
Action None
Next = S_CHUCKBOSSCLIMB4
Duration = 5
VAR1 = 5
VAR2 = 1<<1

State S_CHUCKBOSSCLIMB4
SpriteName = MKTE
SpriteFrame = 34
Action None
Next = S_CHUCKBOSSUNCLIMB1
Duration = 5
VAR1 = 5
VAR2 = 1<<1

# "Unclimb" (jump off the wall)

State S_CHUCKBOSSUNCLIMB1
SpriteName = MKTE
SpriteFrame = 34
Action A_FaceTarget
Next = S_CHUCKBOSSUNCLIMB2
Duration = 1

State S_CHUCKBOSSUNCLIMB2
SpriteName = MKTE
SpriteFrame = 34
Action A_ZThrust
Next = S_CHUCKBOSSUNCLIMB3
Duration = 1
VAR1 = 10
VAR2 = 1<<1

State S_CHUCKBOSSUNCLIMB3
SpriteName = MKTE
SpriteFrame = 34
Action A_Thrust
Next = S_CHUCKBOSSUNCLIMB4
Duration = 1
VAR1 = 5
VAR2 = 1

# Knuckles flies over the player to do a drill attack on him.

State S_CHUCKBOSSUNCLIMB4
SpriteName = MKTE
SpriteFrame = R
Action A_SkullAttack
Next = S_CHUCKBOSSGLIDE10
Duration = 20
VAR2 = 0

# Standing (2)

State S_CHUCKBOSSSTAND1
SpriteName = MKTE
SpriteFrame = T
Action A_SetObjectFlags
Next = S_CHUCKBOSSSTAND2
Duration = 40
VAR1 = MF_NOGRAVITY
VAR2 = 1

State S_CHUCKBOSSSTAND2
SpriteName = MKTE
SpriteFrame = T
Action A_RandomState
Next = S_CHUCKBOSSCHOOSE
Duration = 1
VAR1 = S_CHUCKBOSSGLIDE1
VAR2 = S_CHUCKBOSSSPIN1

# SpinDash.
# Charge

State S_CHUCKBOSSSPIN1
SpriteName = MKTE
SpriteFrame = 35
Action = A_SetObjectFlags
Next = S_CHUCKBOSSSPIN2
Duration = 1
VAR1 = MF_PAIN
VAR2 = 2

State S_CHUCKBOSSSPIN2
SpriteName = MKTE
SpriteFrame = 36
Action = A_PlaySound
Next = S_CHUCKBOSSSPIN3
Duration = 1
VAR1 = sfx_spndsh

State S_CHUCKBOSSSPIN3
SpriteName = MKTE
SpriteFrame = 37
Action None
Next = S_CHUCKBOSSSPIN4
Duration = 2

State S_CHUCKBOSSSPIN4
SpriteName = MKTE
SpriteFrame = 38
Action None
Next = S_CHUCKBOSSSPIN5
Duration = 4

State S_CHUCKBOSSSPIN5
SpriteName = MKTE
SpriteFrame = 35
Action None
Next = S_CHUCKBOSSSPIN6
Duration = 4

State S_CHUCKBOSSSPIN6
SpriteName = MKTE
SpriteFrame = 36
Action = A_PlaySound
Next = S_CHUCKBOSSSPIN7
Duration = 3
VAR1 = sfx_spndsh

State S_CHUCKBOSSSPIN7
SpriteName = MKTE
SpriteFrame = 37
Action None
Next = S_CHUCKBOSSSPIN8
Duration = 3

State S_CHUCKBOSSSPIN7
SpriteName = MKTE
SpriteFrame = 38
Action None
Next = S_CHUCKBOSSSPIN8
Duration = 3

State S_CHUCKBOSSSPIN8
SpriteName = MKTE
SpriteFrame = 35
Action None
Next = S_CHUCKBOSSSPIN9
Duration = 3

State S_CHUCKBOSSSPIN9
SpriteName = MKTE
SpriteFrame = 36
Action = A_PlaySound
Next = S_CHUCKBOSSSPIN10
Duration = 2
VAR1 = sfx_spndsh

State S_CHUCKBOSSSPIN10
SpriteName = MKTE
SpriteFrame = 37
Action None
Next = S_CHUCKBOSSSPIN11
Duration = 2

State S_CHUCKBOSSSPIN11
SpriteName = MKTE
SpriteFrame = 38
Action None
Next = S_CHUCKBOSSSPIN12
Duration = 2

State S_CHUCKBOSSSPIN12
SpriteName = MKTE
SpriteFrame = 35
Action None
Next = S_CHUCKBOSSSPIN13
Duration = 2

State S_CHUCKBOSSSPIN13
SpriteName = MKTE
SpriteFrame = 36
Action = A_PlaySound
Next = S_CHUCKBOSSSPIN14
Duration = 1
VAR1 = sfx_spndsh

State S_CHUCKBOSSSPIN14
SpriteName = MKTE
SpriteFrame = 37
Action None
Next = S_CHUCKBOSSSPIN15
Duration = 1

State S_CHUCKBOSSSPIN15
SpriteName = MKTE
SpriteFrame = 38
Action None
Next = S_CHUCKBOSSSPIN16
Duration = 1

State S_CHUCKBOSSSPIN16
SpriteName = MKTE
SpriteFrame = 35
Action None
Next = S_CHUCKBOSSSPIN17
Duration = 1

State S_CHUCKBOSSSPIN17
SpriteName = MKTE
SpriteFrame = 36
Action A_FaceTarget
Next = S_CHUCKBOSSSPIN18
Duration = 1

State S_CHUCKBOSSSPIN18
SpriteName = MKTE
SpriteFrame = 37
Action A_Thrust
Next = S_CHUCKBOSSSPIN19
Duration = 4
VAR1 = 90
VAR2 = 1

State S_CHUCKBOSSSPIN19
SpriteName = MKTE
SpriteFrame = 38
Action A_PlaySound
Next = S_CHUCKBOSSSPIN20
Duration = 4
VAR1 = sfx_zoom

# Roll. (Loops until hitting a wall.)

State S_CHUCKBOSSSPIN20
SpriteName = MKTE
SpriteFrame = E
Action A_Thrust
Next = S_CHUCKBOSSSPIN22
Duration = 4
VAR1 = 90
VAR2 = 1

State S_CHUCKBOSSSPIN22
SpriteName = MKTE
SpriteFrame = F
Action A_Thrust
Next = S_CHUCKBOSSSPIN23
Duration = 4
VAR1 = 90
VAR2 = 1

State S_CHUCKBOSSSPIN23
SpriteName = MKTE
SpriteFrame = C
Action A_Thrust
Next = S_CHUCKBOSSSPIN24
Duration = 4
VAR1 = 90
VAR2 = 1

State S_CHUCKBOSSSPIN24
SpriteName = MKTE
SpriteFrame = D
Action A_Thrust
Next = S_CHUCKBOSSSPIN20
Duration = 4
VAR1 = 90
VAR2 = 1

# Hurt Frames

State S_CHUCKBOSSHURT1
SpriteName = MKTE
SpriteFrame = Q
Action A_BunnyHop
Next = S_CHUCKBOSSHURT2
Duration = 1
VAR1 = 8
VAR2 = -5

State S_CHUCKBOSSHURT2
SpriteName = MKTE
SpriteFrame = Q
Action A_SetObjectFlags
Next = S_CHUCKBOSSHURT3
Duration = 1
VAR1 = MF_SHOOTABLE|MF_SPECIAL
VAR2 = 1

State S_CHUCKBOSSHURT3
SpriteName = MKTE
SpriteFrame = Q
Action A_SetObjectFlags2
Next = S_CHUCKBOSSHURT4
Duration = 1
VAR1 = MF2_FRET
VAR2 = 1

State S_CHUCKBOSSHURT4
SpriteName = MKTE
SpriteFrame = Q
Action A_PlaySound
Next = S_CHUCKBOSSBLINK1
Duration = 32
VAR1 = sfx_s3k5d
VAR2 = 1

State S_CHUCKBOSSBLINK1
SpriteName = MKTE
SpriteFrame = T
Action None
Next = S_CHUCKBOSSBLINK4
Duration = 15

State S_CHUCKBOSSBLINK2
SpriteName = NULL
SpriteFrame = A
Action None
Next = S_CHUCKBOSSBLINK3
Duration = 5

State S_CHUCKBOSSBLINK3
SpriteName = MKTE
SpriteFrame = T
Action None
Next = S_CHUCKBOSSBLINK4
Duration = 5

State S_CHUCKBOSSBLINK4
SpriteName = NULL
SpriteFrame = T
Action A_CheckHealth
Next = S_CHUCKBOSSBLINK5
Duration = 5
VAR1 = 1
VAR2 = S_CHUCKBOSSPINCH1

State S_CHUCKBOSSBLINK5
SpriteName = MKTE
SpriteFrame = T
Action A_SetObjectFlags
Next = S_CHUCKBOSSSTAND2
Duration = 5
VAR1 = MF_SHOOTABLE|MF_SPECIAL
VAR2 = 2

# Pseudo Hurt Frames, used for Spin colliding with a wall.

State S_CHUCKBOSSKNOCKBACK1
SpriteName = MKTE
SpriteFrame = Q
Action A_SetObjectFlags
Next = S_CHUCKBOSSKNOCKBACK2
Duration = 1
VAR1 = MF_PAIN
VAR2 = 1

State S_CHUCKBOSSKNOCKBACK2
SpriteName = MKTE
SpriteFrame = Q
Action A_PlaySound
Next = S_CHUCKBOSSKNOCKBACK3
Duration = 1
VAR1 = sfx_s3k49

State S_CHUCKBOSSKNOCKBACK3
SpriteName = MKTE
SpriteFrame = Q
Action A_BunnyHop
Next = S_CHUCKBOSSKNOCKBACK4
Duration = 1
VAR1 = 8
VAR2 = -5

State S_CHUCKBOSSKNOCKBACK4
SpriteName = MKTE
SpriteFrame = Q
Action None
Next = S_CHUCKBOSSSTAND1
Duration = 32

# Spin Bump Frames

State S_CHUCKBOSSBUMP1
SpriteName = MKTE
SpriteFrame = C
Action A_PlaySound
Next = S_CHUCKBOSSBUMP2
Duration = 1
VAR1 = sfx_s3k49

State S_CHUCKBOSSBUMP2
SpriteName = MKTE
SpriteFrame = C
Action A_BunnyHop
Next = S_CHUCKBOSSBUMP3
Duration = 1
VAR1 = 8
VAR2 = -5

State S_CHUCKBOSSBUMP3
SpriteName = MKTE
SpriteFrame = C
Action A_FaceTarget
Next = S_CHUCKBOSSBUMP4
Duration = 2

State S_CHUCKBOSSBUMP4
SpriteName = MKTE
SpriteFrame = D
Action None
Next = S_CHUCKBOSSBUMP5
Duration = 4

State S_CHUCKBOSSBUMP5
SpriteName = MKTE
SpriteFrame = E
Action None
Next = S_CHUCKBOSSBUMP6
Duration = 4

State S_CHUCKBOSSBUMP6
SpriteName = MKTE
SpriteFrame = F
Action None
Next = S_CHUCKBOSSBUMP3
Duration = 4

# Pinch Spin bump frames (Super Knuckles)

State S_CHUCKBOSSPINCHBUMP1
SpriteName = MKTE
SpriteFrame = C
Action A_PlaySound
Next = S_CHUCKBOSSPINCHBUMP2
Duration = 1
VAR1 = sfx_s3k49

State S_CHUCKBOSSPINCHBUMP2
SpriteName = MKTE
SpriteFrame = C
Action A_BunnyHop
Next = S_CHUCKBOSSPINCHBUMP3
Duration = 1
VAR1 = 8
VAR2 = -5

State S_CHUCKBOSSPINCHBUMP3
SpriteName = MKTE
SpriteFrame = C
Action A_FaceTarget
Next = S_CHUCKBOSSPINCHBUMP4
Duration = 2

State S_CHUCKBOSSPINCHBUMP4
SpriteName = MKTE
SpriteFrame = D
Action None
Next = S_CHUCKBOSSPINCHBUMP5
Duration = 4

State S_CHUCKBOSSPINCHBUMP5
SpriteName = MKTE
SpriteFrame = E
Action None
Next = S_CHUCKBOSSPINCHBUMP6
Duration = 4

State S_CHUCKBOSSPINCHBUMP6
SpriteName = MKTE
SpriteFrame = F
Action None
Next = S_CHUCKBOSSPINCHBUMP3
Duration = 4



# Knuckles turning Super for Pinch move.

State S_CHUCKBOSSPINCH1
SpriteName = MKTE
SpriteFrame = G
Action = None
Next = S_CHUCKBOSSPINCH2
Duration = 35

State S_CHUCKBOSSPINCH2
SpriteName = MKTE
SpriteFrame = I
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH3
Duration = 5
VAR1 = MF_PAIN|MF_SHOOTABLE
VAR2 = 2

State S_CHUCKBOSSPINCH3
SpriteName = MKTE
SpriteFrame = I
Action A_PlaySound
Next = S_CHUCKBOSSPINCH4
Duration = 1
VAR1 = sfx_supert

State S_CHUCKBOSSPINCH4
SpriteName = MKTE
SpriteFrame = K
Action A_ChangeColorAbsolute
Next = S_CHUCKBOSSPINCH5
Duration = 35
VAR2 = SKINCOLOR_LEGACY_PINK

State S_CHUCKBOSSPINCH5
SpriteName = MKTE
SpriteFrame = G
Action = A_PlaySound
Next = S_CHUCKBOSSPINCH6
Duration = 1
VAR1 = sfx_jump

State S_CHUCKBOSSPINCH6
SpriteName = MKTE
SpriteFrame = C
Action = A_BunnyHop
Next = S_CHUCKBOSSPINCH7
Duration = 1
VAR1 = 10
VAR2 = 0

State S_CHUCKBOSSPINCH7
SpriteName = MKTE
SpriteFrame = C
Action None
Next = S_CHUCKBOSSPINCH8
Duration = 4

State S_CHUCKBOSSPINCH8
SpriteName = MKTE
SpriteFrame = D
Action None
Next = S_CHUCKBOSSPINCH9
Duration = 5

State S_CHUCKBOSSPINCH9
SpriteName = MKTE
SpriteFrame = E
Action None
Next = S_CHUCKBOSSPINCH10
Duration = 5

State S_CHUCKBOSSPINCH10
SpriteName = MKTE
SpriteFrame = F
Action None
Next = S_CHUCKBOSSPINCH11
Duration = 5

State S_CHUCKBOSSPINCH11
SpriteName = MKTE
SpriteFrame = G
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH12
Duration = 20
VAR1 = MF_NOGRAVITY
VAR2 = 2

State S_CHUCKBOSSPINCH12
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH13
Duration = 2
VAR1 = MT_THROWNEXPLOSION

State S_CHUCKBOSSPINCH13
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH14
Duration = 10

State S_CHUCKBOSSPINCH14
SpriteName = MKTE
SpriteFrame = G
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH15
Duration = 20
VAR1 = MF_NOGRAVITY
VAR2 = 2

State S_CHUCKBOSSPINCH15
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH16
Duration = 2
VAR1 = MT_THROWNEXPLOSION

State S_CHUCKBOSSPINCH16
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH17
Duration = 10

State S_CHUCKBOSSPINCH17
SpriteName = MKTE
SpriteFrame = G
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH18
Duration = 20
VAR1 = MF_NOGRAVITY
VAR2 = 2

State S_CHUCKBOSSPINCH18
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH19
Duration = 2
VAR1 = MT_THROWNEXPLOSION

State S_CHUCKBOSSPINCH19
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH20
Duration = 10

State S_CHUCKBOSSPINCH20
SpriteName = MKTE
SpriteFrame = G
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH21
Duration = 60
VAR1 = MF_NOGRAVITY
VAR2 = 2

State S_CHUCKBOSSPINCH21
SpriteName = MKTE
SpriteFrame = I
Action A_TurretFire
Next = S_CHUCKBOSSPINCH22
Duration = 105
VAR1 = MT_THROWNAUTOMATIC

State S_CHUCKBOSSPINCH22
SpriteName = MKTE
SpriteFrame = K
Action A_TurretStop
Next = S_CHUCKBOSSPINCH23
Duration = 10

State S_CHUCKBOSSPINCH23
SpriteName = MKTE
SpriteFrame = R
Action A_Thrust
Next = S_CHUCKBOSSPINCH24
Duration = 35
VAR1 = 20
VAR2 = 1

State S_CHUCKBOSSPINCH24
SpriteName = MKTE
SpriteFrame = U
Action A_SetObjectFlags2
Next = S_CHUCKBOSSPINCH25
Duration = 20
VAR1 = MF2_SKULLFLY
VAR2 = 1

State S_CHUCKBOSSPINCH25
SpriteName = MKTE
SpriteFrame = G
Action A_FaceTarget
Next = S_CHUCKBOSSPINCH26
Duration = 20

State S_CHUCKBOSSPINCH26
SpriteName = MKTE
SpriteFrame = I
Action A_TurretFire
Next = S_CHUCKBOSSPINCH27
Duration = 10
VAR1 = MT_THROWNEXPLOSION

State S_CHUCKBOSSPINCH27
SpriteName = MKTE
SpriteFrame = I
Action A_TurretStop
Next = S_CHUCKBOSSPINCH28
Duration = 5

State S_CHUCKBOSSPINCH28
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH29
Duration = 5

State S_CHUCKBOSSPINCH29
SpriteName = MKTE
SpriteFrame = I
Action None
Next = S_CHUCKBOSSPINCH30
Duration = 5

State S_CHUCKBOSSPINCH30
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH31
Duration = 30

State S_CHUCKBOSSPINCH31
SpriteName = MKTE
SpriteFrame = R
Action A_Thrust
Next = S_CHUCKBOSSPINCH32
Duration = 35
VAR1 = 20
VAR2 = 1

State S_CHUCKBOSSPINCH32
SpriteName = MKTE
SpriteFrame = U
Action A_SetObjectFlags2
Next = S_CHUCKBOSSPINCH33
Duration = 1
VAR1 = MF2_SKULLFLY
VAR2 = 1

State S_CHUCKBOSSPINCH33
SpriteName = MKTE
SpriteFrame = U
Action A_Thrust
Next = S_CHUCKBOSSPINCH34
Duration = 19
VAR1 = 0
VAR2 = 1

State S_CHUCKBOSSPINCH34
SpriteName = MKTE
SpriteFrame = G
Action None
Next = S_CHUCKBOSSPINCH35
Duration = 30

State S_CHUCKBOSSPINCH35
SpriteName = MKTE
SpriteFrame = I
Action A_TurretFire
Next = S_CHUCKBOSSPINCH36
Duration = 10
VAR1 = MT_THROWNBOUNCE

State S_CHUCKBOSSPINCH36
SpriteName = MKTE
SpriteFrame = K
Action A_TurretStop
Next = S_CHUCKBOSSPINCH37
Duration = 10

State S_CHUCKBOSSPINCH37
SpriteName = MKTE
SpriteFrame = U
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH38
Duration = 20
VAR1 = MF_NOGRAVITY
VAR2 = 1

State S_CHUCKBOSSPINCH38
SpriteName = MKTE
SpriteFrame = A
Action None
Next = S_CHUCKBOSSPINCH39
Duration = 5

State S_CHUCKBOSSPINCH39
SpriteName = MKTE
SpriteFrame = B
Action None
Next = S_CHUCKBOSSPINCH40
Duration = 5

State S_CHUCKBOSSPINCH40
SpriteName = MKTE
SpriteFrame = A
Action None
Next = S_CHUCKBOSSPINCH41
Duration = 5

State S_CHUCKBOSSPINCH41
SpriteName = MKTE
SpriteFrame = B
Action None
Next = S_CHUCKBOSSPINCH42
Duration = 5

State S_CHUCKBOSSPINCH42
SpriteName = MKTE
SpriteFrame = A
Action None
Next = S_CHUCKBOSSPINCH43
Duration = 5

State S_CHUCKBOSSPINCH43
SpriteName = MKTE
SpriteFrame = B
Action None
Next = S_CHUCKBOSSPINCH44
Duration = 5

State S_CHUCKBOSSPINCH44
SpriteName = MKTE
SpriteFrame = A
Action None
Next = S_CHUCKBOSSPINCH45
Duration = 5

State S_CHUCKBOSSPINCH45
SpriteName = MKTE
SpriteFrame = B
Action None
Next = S_CHUCKBOSSPINCH46
Duration = 5

State S_CHUCKBOSSPINCH46
SpriteName = MKTE
SpriteFrame = A
Action None
Next = S_CHUCKBOSSPINCH47
Duration = 5

State S_CHUCKBOSSPINCH47
SpriteName = MKTE
SpriteFrame = B
Action None
Next = S_CHUCKBOSSPINCH48
Duration = 5

State S_CHUCKBOSSPINCH48
SpriteName = MKTE
SpriteFrame = A
Action None
Next = S_CHUCKBOSSPINCH49
Duration = 5

State S_CHUCKBOSSPINCH49
SpriteName = MKTE
SpriteFrame = B
Action A_SetObjectFlags
Next = S_CHUCKBOSSSPIN1
Duration = 5
VAR1 = MF_SHOOTABLE|MF_SPECIAL
VAR2 = 2

State S_CHUCKBOSSPINCH50
SpriteName = MKTE
SpriteFrame = C
Action A_BunnyHop
Next = S_CHUCKBOSSPINCH51
Duration = 1
VAR1 = 10

State S_CHUCKBOSSPINCH51
SpriteName = MKTE
SpriteFrame = C
Action A_PlaySound
Next = S_CHUCKBOSSPINCH52
Duration = 4
VAR1 = sfx_jump

State S_CHUCKBOSSPINCH52
SpriteName = MKTE
SpriteFrame = D
Action None
Next = S_CHUCKBOSSPINCH53
Duration = 5

State S_CHUCKBOSSPINCH53
SpriteName = MKTE
SpriteFrame = E
Action None
Next = S_CHUCKBOSSPINCH54
Duration = 5

State S_CHUCKBOSSPINCH54
SpriteName = MKTE
SpriteFrame = F
Action None
Next = S_CHUCKBOSSPINCH55
Duration = 5

State S_CHUCKBOSSPINCH55
SpriteName = MKTE
SpriteFrame = D
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH56
Duration = 1
VAR1 = MF_NOGRAVITY
VAR2 = 2

State S_CHUCKBOSSPINCH56
SpriteName = MKTE
SpriteFrame = G
Action None
Next = S_CHUCKBOSSPINCH57
Duration = 60

State S_CHUCKBOSSPINCH57
SpriteName = MKTE
SpriteFrame = I
Action A_TurretFire
Next = S_CHUCKBOSSPINCH58
Duration = 90
VAR1 = MT_THROWNAUTOMATIC

State S_CHUCKBOSSPINCH58
SpriteName = MKTE
SpriteFrame = K
Action A_TurretStop
Next = S_CHUCKBOSSPINCH59
Duration = 35

State S_CHUCKBOSSPINCH59
SpriteName = MKTE
SpriteFrame = R
Action A_Thrust
Next = S_CHUCKBOSSPINCH60
Duration = 35
VAR1 = 20
VAR2 = 1

State S_CHUCKBOSSPINCH60
SpriteName = MKTE
SpriteFrame = U
Action A_SetObjectFlags2
Next = S_CHUCKBOSSPINCHMID
Duration = 1
VAR1 = MF2_SKULLFLY
VAR2 = 1

State S_CHUCKBOSSPINCHMID
SpriteName = MKTE
SpriteFrame = U
Action A_Thrust
Next = S_CHUCKBOSSPINCH61
Duration = 34
VAR1 = 0
VAR2 = 1

State S_CHUCKBOSSPINCH61
SpriteName = MKTE
SpriteFrame = G
Action None
Next = S_CHUCKBOSSPINCH62
Duration = 35

State S_CHUCKBOSSPINCH62
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH63
Duration = 2
VAR1 = MT_THROWNBOUNCE

State S_CHUCKBOSSPINCH63
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH64
Duration = 20

State S_CHUCKBOSSPINCH64
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH65
Duration = 2
VAR1 = MT_THROWNBOUNCE

State S_CHUCKBOSSPINCH65
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH66
Duration = 15

State S_CHUCKBOSSPINCH66
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH67
Duration = 2
VAR1 = MT_THROWNEXPLOSION

State S_CHUCKBOSSPINCH67
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH68
Duration = 15

State S_CHUCKBOSSPINCH68
SpriteName = MKTE
SpriteFrame = U
Action A_FaceTarget
Next = S_CHUCKBOSSPINCH69
Duration = 35

State S_CHUCKBOSSPINCH69
SpriteName = MKTE
SpriteFrame = G
Action None
Next = S_CHUCKBOSSPINCH70
Duration = 250

State S_CHUCKBOSSPINCH70
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH71
Duration = 1
VAR1 = MT_KNUXSTAR

State S_CHUCKBOSSPINCH71
SpriteName = MKTE
SpriteFrame = K
Action A_PlaySound
Next = S_CHUCKBOSSPINCH72
Duration = 14
VAR1 = sfx_s3k9f

State S_CHUCKBOSSPINCH72
SpriteName = MKTE
SpriteFrame = G
Action None
Next = S_CHUCKBOSSPINCH73
Duration = 70

State S_CHUCKBOSSPINCH73
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH74
Duration = 1
VAR1 = MT_KNUXSTAR

State S_CHUCKBOSSPINCH74
SpriteName = MKTE
SpriteFrame = K
Action A_PlaySound
Next = S_CHUCKBOSSPINCH75
Duration = 14
VAR1 = sfx_s3k9f

State S_CHUCKBOSSPINCH75
SpriteName = MKTE
SpriteFrame = G
Action None
Next = S_CHUCKBOSSPINCH76
Duration = 70

State S_CHUCKBOSSPINCH76
SpriteName = MKTE
SpriteFrame = I
Action A_FireShot
Next = S_CHUCKBOSSPINCH77
Duration = 1
VAR1 = MT_KNUXSTAR

State S_CHUCKBOSSPINCH77
SpriteName = MKTE
SpriteFrame = K
Action A_PlaySound
Next = S_CHUCKBOSSPINCH78
Duration = 14
VAR1 = sfx_s3k9f

State S_CHUCKBOSSPINCH78
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH79
Duration = 70

State S_CHUCKBOSSPINCH79
SpriteName = MKTE
SpriteFrame = I
Action A_PlaySound
Next = S_CHUCKBOSSPINCH80
Duration = 5
VAR1 = sfx_s3k5c

State S_CHUCKBOSSPINCH80
SpriteName = MKTE
SpriteFrame = K
Action None
Next = S_CHUCKBOSSPINCH81
Duration = 60

State S_CHUCKBOSSPINCH81
SpriteName = MKTE
SpriteFrame = I
Action A_PlaySound
Next = S_CHUCKBOSSPINCH82
Duration = 5
VAR1 = sfx_s3k5c

State S_CHUCKBOSSPINCH82
SpriteName = MKTE
SpriteFrame = K
Action A_ChangeColorAbsolute
Next = S_CHUCKBOSSPINCH83
Duration = 20
VAR2 = SKINCOLOR_LEGACY_RED

State S_CHUCKBOSSPINCH83
SpriteName = MKTE
SpriteFrame = I
Action A_PlaySound
Next = S_CHUCKBOSSPINCH84
Duration = 5
VAR1 = sfx_s3k5c

State S_CHUCKBOSSPINCH84
SpriteName = MKTE
SpriteFrame = K
Action A_ChangeColorAbsolute
Next = S_CHUCKBOSSPINCH85
Duration = 10
VAR2 = SKINCOLOR_LEGACY_PINK

State S_CHUCKBOSSPINCH85
SpriteName = MKTE
SpriteFrame = I
Action A_PlaySound
Next = S_CHUCKBOSSPINCH86
Duration = 5
VAR1 = sfx_s3k5c

State S_CHUCKBOSSPINCH84
SpriteName = MKTE
SpriteFrame = K
Action A_ChangeColorAbsolute
Next = S_CHUCKBOSSPINCH85
Duration = 10
VAR2 = SKINCOLOR_LEGACY_RED

State S_CHUCKBOSSPINCH85
SpriteName = MKTE
SpriteFrame = K
Action A_SetObjectFlags
Next = S_CHUCKBOSSPINCH86
Duration = 1
VAR1 = MF_PAIN|MF_NOGRAVITY
VAR2 = 1

State S_CHUCKBOSSPINCH86
SpriteName = MKTE
SpriteFrame = K
Action A_SetObjectFlags
Next = S_CHUCKBOSSGLIDE12
Duration = 1
VAR1 = MF_SHOOTABLE
VAR2 = 2

# Death States

State S_CHUCKBOSSDED1
SpriteName = MKTE
SpriteFrame = W
Action A_SetObjectFlags
Next = S_CHUCKBOSSDED2
Duration = 2
VAR1 = MF_NOCLIP|MF_NOCLIPHEIGHT
VAR2 = 0

State S_CHUCKBOSSDED2
SpriteName = MKTE
SpriteFrame = W
Action A_BunnyHop
Next = S_CHUCKBOSSDED3
Duration = 1
VAR1 = 8

State S_CHUCKBOSSDED3
SpriteName = MKTE
SpriteFrame = W
Action A_PlaySound
Next = S_CHUCKBOSSDED4
Duration = 1
VAR1 = sfx_shldls

State S_CHUCKBOSSDED4
SpriteName = MKTE
SpriteFrame = W
Action None
Next = S_CHUCKBOSSDED6
Duration = 70

State S_CHUCKBOSSDED6
SpriteName = MKTE
SpriteFrame = W
Action A_BossDeath
Next = S_CHUCKBOSSDED7
Duration = -1

State S_CHUCKBOSSDED7
SpriteName = MKTE
SpriteFrame = W
Action A_SetObjectFlags2
Next = S_NULL
Duration = -1
VAR1 = MF_NOCLIPHEIGHT
VAR2 = 2
