Level B0
Levelname = Knuckles
SubTitle = Guardian of the Master Emerald
Act = 0
Music = KNUX
TypeOfLevel = Singleplayer,Co-op,Competition,Race
SelectHeading = SA and SA2 Bosses
NextLevel = 1
SkyNum = 1
RecordAttack = true
LevelSelect = 1
BonusType = Boss
StartRings = 10
WarningTitle = true

Freeslot
MT_KNUCKLES
SPR_KNBS
SPR_KSPN
S_KNUXBOSS_STND1
S_KNUXBOSS_STND2
S_KNUXBOSS_STND3
S_KNUXBOSS_LOOK
S_KNUXBOSS_LOOK1
S_KNUXBOSS_LOOK2
S_KNUXBOSS_LOOK3
S_KNUXBOSS_LOOK4
S_KNUXBOSS_OUCH
S_KNUXBOSS_OW
S_KNUXBOSS_OW1
S_KNUXBOSS_OW2
S_KNUXBOSS_OW3
S_KNUXBOSS_OW4
S_KNUXBOSS_OW5
S_KNUXBOSS_END
S_KNUXBOSS_END1
S_KNUXBOSS_END2
S_KNUXBOSS_END3
S_KNUXBOSS_END4
S_KNUXBOSS_END5
S_KNUXBOSS_END6
S_ENDING1
S_ENDING2
S_KNUXSPIN1
S_KNUXSPIN2
S_KNUXSPIN3
S_KNUXSPIN4
S_KNUXSPIN5
S_KNUXSPIN6
S_KNUXSPIN7
S_KNUXSPIN8
S_KNUXSPIN9
S_KNUXSPIN10
S_KNUXSPIN11
S_KNUXSPIN12
S_KNUXDASH1
S_KNUXDASH2
S_KNUXDASH3
S_KNUXDASH4
S_KNUXDASH5
S_KNUXDASH6
S_KNUXDASH7
S_KNUXDASH8
S_KNUXDASH9
S_KNUXDASH10
S_KNUXDASH11
S_KNUXDASH12
S_KNUXBOSS_JUMP1
S_KNUXBOSS_JUMP2
S_KNUXBOSS_JUMP3
S_KNUXBOSS_JUMP4
S_KNUXBOSS_JUMP5
S_KNUXBOSS_JUMP6
S_KNUXBOSS_JUMP7
S_KNUXBOSS_JUMP8
S_KNUXBOSS_JUMP9
S_KNUXBOSS_JUMP10
S_KNUXBOSS_JUMP11
S_KNUXBOSS_JUMP12
S_KNUXBOSS_JUMP13
S_KNUXBOSS_JUMP14
S_KNUXBOSS_GLIDE
S_KNUXBOSS_GLIDE1
S_KNUXBOSS_GLIDE2
S_KNUXBOSS_GLIDE3
S_KNUXBOSS_GLIDE4
S_KNUXBOSS_GLIDE5
S_KNUXBOSS_GLIDE6
S_KNUXBOSS_GLIDE7
S_KNUXBOSS_GLIDE8
S_KNUXBOSS_GLIDE9
S_KNUXBOSS_GLIDE10
S_KNUXBOSS_GLIDE11
S_KNUXBOSS_GLIDE12
S_KNUXBOSS_GLIDE13
S_KNUXBOSS_GLIDE14
S_KNUXBOSS_GLIDE15
S_KNUXBOSS_GLIDE16


#It's Chucklefuck himself! HP: 8, 3 different attacks to be cycled through, no pinch phase because Knux isn't that smart. Knux: SHUT UP!!!.
Object MT_KNUCKLES
MapThingNum = 3365
SpawnState = S_KNUXBOSS_STND1
SpawnHealth = 8
SeeState = S_KNUXBOSS_LOOK
SeeSound = sfx_None
ReactionTime = 32
AttackSound = sfx_none
PainState = S_KNUXBOSS_OUCH
PainChance = S_NULL
PainSound = sfx_s3k5f
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_KNUXBOSS_END1
DeathSound = sfx_none
XDeathState = S_NULL
Speed = 5
Radius = 16*FRACUNIT
Height = 56*FRACUNIT
Mass = 100
Damage = 0
ActiveSound = sfx_None
RaiseState = S_NULL
Flags = MF_SPECIAL|MF_SHOOTABLE|MF_BOSS

# Look at him, he's taunting you!
State S_KNUXBOSS_STND1
SpriteName = KNBS
SpriteFrame = A
Duration = 10
Next = S_KNUXBOSS_STND2
Action A_SetObjectFlags
Var1 = MF_SPECIAL|MF_BOSS|MF_PAIN
Var2 = 0

State S_KNUXBOSS_STND2
SpriteName = KNBS
SpriteFrame = C
Duration = 7
Next = S_KNUXBOSS_STND3
Action A_Look
Var1 = 0
Var2 = 0

State S_KNUXBOSS_STND3
SpriteName = KNBS
SpriteFrame = D
Duration = 7
Next = S_KNUXBOSS_STND2
Action A_Look
Var1 = 0
Var2 = 0

# "!" You've been spotted! Will he spindash or choose something else?
State S_KNUXBOSS_LOOK
SpriteName = KNBS
SpriteFrame = A
Duration = 1
Next S_KNUXBOSS_LOOK1
Action A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXBOSS_LOOK1
SpriteName = KNBS
SpriteFrame = A
Duration = 35
Next S_KNUXBOSS_LOOK2
Action A_SetObjectFlags
Var1 = MF_SPECIAL|MF_SHOOTABLE|MF_BOSS
Var2 = 0

State S_KNUXBOSS_LOOK2
SpriteName = KNBS
SpriteFrame = C
Duration = 17
Next = S_KNUXBOSS_LOOK3
Action = A_SetObjectFlags
Var1 = MF_SPECIAL|MF_BOSS|MF_PAIN
Var2 = 0

State S_KNUXBOSS_LOOK3
SpriteName = KNBS
SpriteFrame = D
Duration = 17
Next = S_KNUXBOSS_LOOK1
Action = A_RandomState
Var1 = S_KNUXBOSS_JUMP1
Var2 = S_KNUXBOSS_LOOK4

#If he chooses another attack, will he glide or jump at the player?
State S_KNUXBOSS_LOOK4
SpriteName = KNBS
SpriteFrame = A
Duration = 1
Next = S_KNUXBOSS_LOOK3
Action = A_RandomState
Var1 = S_KNUXBOSS_GLIDE1
Var2 = S_KNUXSPIN1

#Ok Knux, time to spindash!
State S_KNUXSPIN1
SpriteName = KSPN
SpriteFrame = A
Duration = 2
Next = S_KNUXSPIN2
Action = A_PlaySound
Var1 = sfx_s3k6b
Var2 = 0

State S_KNUXSPIN2
SpriteName = KSPN
SpriteFrame = B
Duration = 2
Next = S_KNUXSPIN3
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXSPIN3
SpriteName = KSPN
SpriteFrame = C
Duration = 2
Next = S_KNUXSPIN4
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXSPIN4
SpriteName = KSPN
SpriteFrame = D
Duration = 2
Next = S_KNUXSPIN5
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXSPIN5
SpriteName = KSPN
SpriteFrame = A
Duration = 2
Next = S_KNUXSPIN6
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXSPIN6
SpriteName = KSPN
SpriteFrame = B
Duration = 2
Next = S_KNUXSPIN7
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXSPIN7
SpriteName = KSPN
SpriteFrame = C
Duration = 2
Next = S_KNUXSPIN8
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXSPIN8
SpriteName = KSPN
SpriteFrame = D
Duration = 2
Next = S_KNUXDASH1
Action = A_FaceTarget
Var1 = 0
Var2 = 0

#Go Knuckles, Go!
State S_KNUXDASH1
SpriteName = KNBS
SpriteFrame = E
Duration = 3
Next = S_KNUXDASH2
Action = A_PlaySound
Var1 = sfx_zoom
Var2 = 0

State S_KNUXDASH2
SpriteName = KNBS
SpriteFrame = F
Duration = 3
Next = S_KNUXDASH3
Action = A_Thrust
Var1 = 60
Var2 = 0

State S_KNUXDASH3
SpriteName = KNBS
SpriteFrame = G
Duration = 3
Next = S_KNUXDASH4
Action A_SetObjectFlags
Var1 = MF_SPECIAL|MF_SHOOTABLE|MF_BOSS
Var2 = 0

State S_KNUXDASH4
SpriteName = KNBS
SpriteFrame = H
Duration = 3
Next = S_KNUXDASH5

State S_KNUXDASH5
SpriteName = KNBS
SpriteFrame = E
Duration = 3
Next = S_KNUXDASH6

State S_KNUXDASH6
SpriteName = KNBS
SpriteFrame = F
Duration = 3
Next = S_KNUXDASH7

State S_KNUXDASH7
SpriteName = KNBS
SpriteFrame = G
Duration = 3
Next = S_KNUXDASH8

State S_KNUXDASH8
SpriteName = KNBS
SpriteFrame = H
Duration = 3
Next = S_KNUXDASH9

State S_KNUXDASH9
SpriteName = KNBS
SpriteFrame = E
Duration = 3
Next = S_KNUXDASH10

State S_KNUXDASH10
SpriteName = KNBS
SpriteFrame = F
Duration = 3
Next = S_KNUXDASH11

State S_KNUXDASH11
SpriteName = KNBS
SpriteFrame = G
Duration = 3
Next = S_KNUXDASH12
Action A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXDASH12
SpriteName = KNBS
SpriteFrame = H
Duration = 1
Next = S_KNUXBOSS_STND1
Action A_ForceStop
Var1 = 0
Var2 = 0

#Duo-op!
State S_KNUXBOSS_JUMP1
SpriteName = KNBS
SpriteFrame = A
Duration = 0
Next = S_KNUXBOSS_JUMP2
Action A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXBOSS_JUMP2
Spritename = KNBS
SpriteFrame = E
Duration = 1
Next = S_KNUXBOSS_JUMP3
Action A_BunnyHop
Var1 = 10
Var2 = 14

State S_KNUXBOSS_JUMP3
SpriteName = KNBS
SpriteFrame = F
Duration = 3
Next = S_KNUXBOSS_JUMP4
Action A_PlaySound
Var1 = sfx_Jump
Var2 = 0

State S_KNUXBOSS_JUMP4
SpriteName = KNBS
SpriteFrame = G
Duration = 3
Next = S_KNUXBOSS_JUMP5

State S_KNUXBOSS_JUMP5
SpriteName = KNBS
SpriteFrame = H
Duration = 4
Next = S_KNUXBOSS_JUMP6

State S_KNUXBOSS_JUMP6
SpriteName = KNBS
SpriteFrame = E
Duration = 4
Next = S_KNUXBOSS_JUMP7

State S_KNUXBOSS_JUMP7
SpriteName = KNBS
SpriteFrame = F
Duration = 4
Next = S_KNUXBOSS_JUMP8
Action A_SetObjectFlags
Var1 = MF_SPECIAL|MF_SHOOTABLE|MF_BOSS
Var2 = 0

State S_KNUXBOSS_JUMP8
SpriteName = KNBS
SpriteFrame = G
Duration = 4
Next = S_KNUXBOSS_JUMP9

State S_KNUXBOSS_JUMP9
SpriteName = KNBS
SpriteFrame = H
Duration = 4
Next = S_KNUXBOSS_JUMP10

State S_KNUXBOSS_JUMP10
SpriteName = KNBS
SpriteFrame = E
Duration = 4
Next = S_KNUXBOSS_JUMP11

State S_KNUXBOSS_JUMP11
SpriteName = KNBS
SpriteFrame = F
Duration = 4
Next S_KNUXBOSS_JUMP12

State S_KNUXBOSS_JUMP12
SpriteName = KNBS
SpriteFrame = G
Duration = 3
Next S_KNUXBOSS_JUMP13

State S_KNUXBOSS_JUMP13
SpriteName = KNBS
SpriteFrame = H
Duration = 3
Next S_KNUXBOSS_JUMP14
Action A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXBOSS_JUMP14
SpriteName = KNBS
SpriteFrame = A
Duration = 2
Next = S_KNUXBOSS_STND1
Action = A_ForceStop
Var1 = 0
Var2 = 0

#Look out from above! Knuckles used Glide!
State S_KNUXBOSS_GLIDE1
SpriteName = KNBS
SpriteFrame = A
Duration = 0
Next = S_KNUXBOSS_GLIDE2
Action A_SetObjectFlags
Var1 = MF_NOGRAVITY
Var2 = 2

State S_KNUXBOSS_GLIDE2
SpriteName = KNBS
SpriteFrame = E
Duration = 2
Next = S_KNUXBOSS_GLIDE3
Action A_BunnyHop
Var1 = 10
Var2 = 0

State S_KNUXBOSS_GLIDE3
SpriteName = KNBS
SpriteFrame = F
Duration = 2
Next = S_KNUXBOSS_GLIDE4
Action A_PlaySound
Var1 = sfx_s3k60
Var2 = 0

State S_KNUXBOSS_GLIDE4
SpriteName = KNBS
SpriteFrame = G
Duration = 2
Next = S_KNUXBOSS_GLIDE5

State S_KNUXBOSS_GLIDE5
SpriteName = KNBS
SpriteFrame = H
Duration = 2
Next = S_KNUXBOSS_GLIDE
Action A_SetObjectFlags
Var1 = MF_PAIN
Var2 = 2

State S_KNUXBOSS_GLIDE
SpriteName = KNBS
SpriteFrame = I
Duration = 0
Next = S_KNUXBOSS_GLIDE6
Action A_ForceStop
Var1 = 0
Var2 = 0

State S_KNUXBOSS_GLIDE6
SpriteName = KNBS
SpriteFrame = I
Duration = 10
Next = S_KNUXBOSS_GLIDE7
Action A_Thrust
Var1 = 15
Var2 = 0

State S_KNUXBOSS_GLIDE7
SpriteName = KNBS
SpriteFrame = J
Duration = 2
Next = S_KNUXBOSS_GLIDE8
Action A_ZThrust
Var1 = -1
Var2 = 0|0

State S_KNUXBOSS_GLIDE8
SpriteName = KNBS
SpriteFrame = I
Duration = 2
Next = S_KNUXBOSS_GLIDE9
Action None
Var1 = 0
Var2 = 0

State S_KNUXBOSS_GLIDE9
SpriteName = KNBS
SpriteFrame = J
Duration = 2
Next = S_KNUXBOSS_GLIDE10
Action None
Var1 = 15
Var2 = 0

State S_KNUXBOSS_GLIDE10
SpriteName = KNBS
SpriteFrame = I
Duration = 2
Next = S_KNUXBOSS_GLIDE11
Action None
Var1 = 0
Var2 = 0

State S_KNUXBOSS_GLIDE11
SpriteName = KNBS
SpriteFrame = J
Duration = 2
Next = S_KNUXBOSS_GLIDE12
Action None
Var1 = 15
Var2 = 0

State S_KNUXBOSS_GLIDE12
SpriteName = KNBS
SpriteFrame = I
Duration = 2
Next = S_KNUXBOSS_GLIDE13
Action None
Var1 = 0
Var2 = 0

State S_KNUXBOSS_GLIDE13
SpriteName = KNBS
SpriteFrame = L
Duration = 0
Next = S_KNUXBOSS_GLIDE14
Action A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXBOSS_GLIDE14
SpriteName = KNBS
SpriteFrame = L
Duration = 0
Next = S_KNUXBOSS_GLIDE15
Action A_SetObjectFlags
Var1 = MF_SPECIAL|MF_SHOOTABLE|MF_BOSS
Var2 = 0

State S_KNUXBOSS_GLIDE15
SpriteName = KNBS
SpriteFrame = L
Duration = 15
Next = S_KNUXBOSS_GLIDE16
Action None
Var1 = 0
Var2 = 0

State S_KNUXBOSS_GLIDE16
SpriteName = KNBS
SpriteFrame = L
Duration = 0
Next = S_KNUXBOSS_STND1
Action A_ForceStop
Var1 = 0
Var2 = 0

#Knuckles: Oh no!
State S_KNUXBOSS_OUCH
SpriteName = KNBS
SpriteFrame = K
Duration = 0
Next = S_KNUXBOSS_OW
Action A_ForceStop
Var1 = 0
Var2 = 0

State S_KNUXBOSS_OW
SpriteName = KNBS
SpriteFrame = K
Duration = 1
Next = S_KNUXBOSS_OW1
Action A_FaceTarget
Var1 = 0
Var2 = 0

State S_KNUXBOSS_OW1
SpriteName = KNBS
SpriteFrame = K
Duration = 1
Next = S_KNUXBOSS_OW2
Action A_SetObjectFlags
Var1 = MF_SHOOTABLE
Var2 = 1

State S_KNUXBOSS_OW2
SpriteName = KNBS
SpriteFrame = K
Duration = 1
Next = S_KNUXBOSS_OW3
Action A_PlaySound
Var1 = sfx_s3k5f
Var2 = 0

State S_KNUXBOSS_OW3
SpriteName = KNBS
SpriteFrame = K
Duration = 11
Next = S_KNUXBOSS_OW4
Action A_BunnyHop
Var1 = 5
Var2 = -10

State S_KNUXBOSS_OW4
SpriteName = KNBS
SpriteFrame = K
Duration = 15
Next = S_KNUXBOSS_OW5
Action None
Var1 = 0
Var2 = 0

State S_KNUXBOSS_OW5
SpriteName = KNBS
SpriteFrame = K
Duration = 1
Next = S_KNUXBOSS_STND1
Action A_SetObjectFlags
Var1 = MF_SHOOTABLE
Var2 = 2

#Knuckles is ded
State S_KNUXBOSS_END
SpriteName = KNBS
SpriteFrame = K
Duration = 0
Next = S_KNUXBOSS_END1
Action A_ForceStop
Var1 = 0
Var2 = 0

State S_KNUXBOSS_END1
SpriteName = KNBS
SpriteFrame = K
Duration = 0
Next = S_KNUXBOSS_END2
Action A_SetObjectFlags
Var1 = MF_SPECIAL
Var2 = 0

State S_KNUXBOSS_END2
SpriteName = KNBS
SpriteFrame = K
Duration = 1
Next = S_KNUXBOSS_END3
Action A_PlaySound
Var1 = sfx_s3kbel
Var2 = 0

State S_KNUXBOSS_END3
SpriteName = KNBS
SpriteFrame = K
Duration = 11
Next = S_KNUXBOSS_END4
Action A_BunnyHop
Var1 = 5
Var2 = -10

State S_KNUXBOSS_END4
SpriteName = KNBS
SpriteFrame = K
Duration = 14
Next = S_KNUXBOSS_END5

State S_KNUXBOSS_END5
SpriteName = KNBS
SpriteFrame = B
Duration = 1
Next = S_ENDING1
Action None
Var1 = 0
Var2 = 0

State S_ENDING1
SpriteName = KNBS
SpriteFrame = B
Duration = 140
Next = S_NULL
Action A_ForceWin
Var1 = 0
Var2 = 0



