Freeslot
SPR_CBSWA1
SPR_CBSWAA2A8
SPR_CBSWA4A6
SPR_CBSWA3A7
SPR_CBSWA5
MT_CYBRAK2016
MT_CYBRAK2016_MISSILE
MT_CYBRAK2016_SLUG
MT_CYBRAK2016_SPARK
MT_CYBRAK2016_SLASH
MT_CYBRAK2016_WATCHYOASS
S_CYBRAK2016_START
S_CYBRAK2016_LMAO
S_CYBRAK2016_STANDINGTHEREMENACINGLY
S_CYBRAK2016_TIMETOCHOOSE
S_CYBRAK2016_ROCKETDIRECTION
S_CYBRAK2016_SECONDCHOICE
S_CYBRAK2016_BLADETRY
S_CYBRAK2016_GUNACTION
S_CYBRAK2016_DASHCHOICE
S_CYBRAK2016_SWING
S_CYBRAK2016_SWINGEVIL
S_CYBRAK2016_SLASHFACE
S_CYBRAK2016_SLASHSOUND
S_CYBRAK2016_SLASH
S_CYBRAK2016_DASHPREPF
S_CYBRAK2016_DASHSIDES
S_CYBRAK2016_DASHSOUND
S_CYBRAK2016_DASHSOUND2
S_CYBRAK2016_DASHPREP
S_CYBRAK2016_DASHLEFT
S_CYBRAK2016_DASHRIGHT
S_CYBRAK2016_DASHPREPF
S_CYBRAK2016_DASHFACEF
S_CYBRAK2016_DASHFACEF2
S_CYBRAK2016_DASHFORWARD
S_CYBRAK2016_MELEE
S_CYBRAK2016_MELEE2
S_CYBRAK2016_MELEESOUND
S_CYBRAK2016_MELEESOUND2
S_CYBRAK2016_MELEEATKHIT
S_CYBRAK2016_MELEEATK
S_CYBRAK2016_DASHBACKP
S_CYBRAK2016_DASHFACEB
S_CYBRAK2016_DASHFACEB2
S_CYBRAK2016_DASHBACK
S_CYBRAK2016_QUICKSCOPE
S_CYBRAK2016_QUICKCHARGE
S_CYBRAK2016_QUICKSOUND
S_CYBRAK2016_QUICKREPEAT
S_CYBRAK2016_RAILGUN
S_CYBRAK2016_TARGET
S_CYBRAK2016_TARGCHASE
S_CYBRAK2016_AIRSTRIKE
S_CYBRAK2016_AIRSIREN
S_CYBRAK2016_AIRCOVER
S_CYBRAK2016_AIRDROP
S_CYBRAK2016_ROCKETFORWARD1
S_CYBRAK2016_ROCKETFORWARD2
S_CYBRAK2016_ROCKETFORWARD3
S_CYBRAK2016_ROCKETFORWARD4
S_CYBRAK2016_ROCKETFORWARD5
S_CYBRAK2016_ROCKETFORWARD6
S_CYBRAK2016_ROCKETFACE1
S_CYBRAK2016_ROCKETFACE2
S_CYBRAK2016_ROCKETFACE3
S_CYBRAK2016_ROCKETFACE4
S_CYBRAK2016_ROCKETFACE5
S_CYBRAK2016_ROCKETFACE6
S_CYBRAK2016_ROCKETFIRE1
S_CYBRAK2016_ROCKETFIRE2
S_CYBRAK2016_ROCKETFIRE3
S_CYBRAK2016_ROCKETFIRE4
S_CYBRAK2016_ROCKETFIRE5
S_CYBRAK2016_ROCKETFIRE6
S_CYBRAK2016_ROCKETFIRE13
S_CYBRAK2016_ROCKETPREP13
S_CYBRAK2016_ROCKETSTEPSFX1
S_CYBRAK2016_ROCKETSTEPSFX2
S_CYBRAK2016_ROCKETREPEAT
S_CYBRAK2016_ROCKETBACKWARD1
S_CYBRAK2016_ROCKETBACKWARD2
S_CYBRAK2016_ROCKETBACKWARD3
S_CYBRAK2016_ROCKETBACKWARD4
S_CYBRAK2016_ROCKETBACKWARD5
S_CYBRAK2016_ROCKETBACKWARD6
S_CYBRAK2016_ROCKETFACEB1
S_CYBRAK2016_ROCKETFACEB2
S_CYBRAK2016_ROCKETFACEB3
S_CYBRAK2016_ROCKETFACEB4
S_CYBRAK2016_ROCKETFACEB5
S_CYBRAK2016_ROCKETFACEB6
S_CYBRAK2016_ROCKETFIREB1
S_CYBRAK2016_ROCKETFIREB2
S_CYBRAK2016_ROCKETFIREB3
S_CYBRAK2016_ROCKETFIREB4
S_CYBRAK2016_ROCKETFIREB5
S_CYBRAK2016_ROCKETFIREB6
S_CYBRAK2016_ROCKETFIREB13
S_CYBRAK2016_ROCKETPREPB13
S_CYBRAK2016_ROCKETSTEPSFXB1
S_CYBRAK2016_ROCKETSTEPSFXB2
S_CYBRAK2016_ROCKETREPEATB
S_CYBRAK2016_BIGOWIE
S_CYBRAK2016_RECOVER
S_CYBRAK2016_ITDIES
S_CYBRAK2016_EXPLODE
S_CYBRAK2016_EXPLODEONLOOP
S_CYBRAK2016_OOPS
S_CYBRAK2016_TEETER
S_CYBRAK2016_EEP
S_CYBRAK2016_THEBIGGERTHEYARE
S_CYBRAK2016_THUNK
S_CYBRAK2016_MSPAWN
S_CYBRAK2016_MX1
S_CYBRAK2016_MX2
S_CYBRAK2016_MX3
S_CYBRAK2016_SSPAWN
S_CYBRAK2016_SLASH1


# the big boi

Object MT_CYBRAK2016
MapThingNum = 3501
SpawnState = S_CYBRAK2016_LMAO
SpawnHealth = 12
SeeState = S_CYBRAK2016_START
SeeSound = sfx_None
ReactionTime = 15
AttackSound = sfx_None
PainState = S_CYBRAK2016_BIGOWIE
PainChance = 0
PainSound = sfx_behurt
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_CYBRAK2016_ITDIES
XDeathState = S_NULL
DeathSound = sfx_behurt
Speed = 40
Radius = 48*FRACUNIT
Height = 160*FRACUNIT
DispOffset = 0
Mass = 100
Damage = 1
ActiveSound = sfx_bewar1
Flags = MF_SPECIAL|MF_BOSS|MF_SHOOTABLE
RaiseState = S_NULL


# slow rockets

Object MT_CYBRAK2016_MISSILE
SpawnState = S_CYBRAK2016_MSPAWN
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_brakrl
ReactionTime = 8
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_CYBRAK2016_MX1
XDeathState = S_NULL
DeathSound = sfx_brakrx
Speed = 20*FRACUNIT
Radius = 11*FRACUNIT
Height = 8*FRACUNIT
DispOffset = 0
Mass = 100
Damage = 32*FRACUNIT
ActiveSound = sfx_None
Flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY
RaiseState = S_NULL


# railgun target marker

Object MT_CYBRAK2016_WATCHYOASS
SpawnState = S_CYBRAK2016_TARGET
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 8
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_None
Speed = 10*FRACUNIT
Radius = 32*FRACUNIT
Height = 64*FRACUNIT
DispOffset = 0
Mass = 100
Damage = 1
ActiveSound = sfx_None
Flags = MF_NOBLOCKMAP|MF_RUNSPAWNFUNC|MF_NOGRAVITY
RaiseState = S_NULL


# railgun slug

Object MT_CYBRAK2016_SLUG
SpawnState = S_CYBRAK2016_SSPAWN
SpawnHealth = 1000
SeeState = S_NULL
SeeSound = sfx_trfire
ReactionTime = 8
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_rail2
Speed = 100*FRACUNIT
Radius = 8*FRACUNIT
Height = 16*FRACUNIT
DispOffset = 0
Mass = 100
Damage = 32*FRACUNIT
ActiveSound = sfx_None
Flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY
RaiseState = S_NULL


# stomp shockwave

Object MT_CYBRAK2016_SPARK
SpawnState = S_SSPK1
SpawnHealth = 1
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 8
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_None
Speed = 20*FRACUNIT
Radius = 8*FRACUNIT
Height = 8*FRACUNIT
DispOffset = 0
Mass = 100
Damage = 1
ActiveSound = sfx_None
Flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY
RaiseState = S_NULL


# blade swing projectile

Object MT_CYBRAK2016_SLASH
SpawnState = S_CYBRAK2016_SLASH1
SpawnHealth = 1
SeeState = S_NULL
SeeSound = sfx_None
ReactionTime = 8
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_None
Speed = 20*FRACUNIT
Radius = 64*FRACUNIT
Height = 3*FRACUNIT
DispOffset = 0
Mass = 100
Damage = 1
ActiveSound = sfx_None
Flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY
RaiseState = S_NULL


# boss handler between attacks: look for target, wait a bit to give them some room, choose attack

State S_CYBRAK2016_LMAO
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_Look
Var1 = 0
Var2 = 0

State S_CYBRAK2016_START
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_STANDINGTHEREMENACINGLY
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_STANDINGTHEREMENACINGLY
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_TIMETOCHOOSE
Action = A_Repeat
Var1 = 35
Var2 = S_CYBRAK2016_START


# attack choice handler, tries: rockets, dashing, blade, railgun or napalm

State S_CYBRAK2016_TIMETOCHOOSE
SpriteName = BRAK
SpriteFrame = A
Duration = 0
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_ROCKETDIRECTION
Var2 = S_CYBRAK2016_SECONDCHOICE

State S_CYBRAK2016_ROCKETDIRECTION
SpriteName = BRAK
SpriteFrame = A
Duration = 1*TICRATE
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_ROCKETFORWARD1
Var2 = S_CYBRAK2016_ROCKETBACKWARD1

State S_CYBRAK2016_SECONDCHOICE
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_DASHCHOICE
Var2 = S_CYBRAK2016_BLADETRY

State S_CYBRAK2016_DASHCHOICE
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_DASHPREPF
Var2 = S_CYBRAK2016_DASHSIDES

State S_CYBRAK2016_BLADETRY
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_SWING
Var2 = S_CYBRAK2016_GUNACTION

State S_CYBRAK2016_GUNACTION
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_QUICKSCOPE
Var2 = S_CYBRAK2016_AIRSTRIKE


# the dashing section

# sideways dashing preparation: look at the victim, play some sounds

State S_CYBRAK2016_DASHSIDES
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_DASHSOUND
Action = A_FaceTarget

State S_CYBRAK2016_DASHSOUND
SpriteName = BRAK
SpriteFrame = A
Duration = 20
Next = S_CYBRAK2016_DASHSOUND2
Action = A_PlaySound
Var1 = sfx_s3kc5s
Var2 = 1+1<<16

State S_CYBRAK2016_DASHSOUND2
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_DASHPREP
Action = A_PlaySound
Var1 = sfx_zoom
Var2 = 1+1<<16

# this randomises which dash he performs

State S_CYBRAK2016_DASHPREP
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_DASHLEFT
Var2 = S_CYBRAK2016_DASHRIGHT

# dash to the left

State S_CYBRAK2016_DASHLEFT
SpriteName = BRAK
SpriteFrame = A
Duration = 60
Next = S_CYBRAK2016_LMAO
Action = A_MoveRelative
Var1 = 270
Var2 = 60

# dash to the right

State S_CYBRAK2016_DASHRIGHT
SpriteName = BRAK
SpriteFrame = A
Duration = 60
Next = S_CYBRAK2016_LMAO
Action = A_MoveRelative
Var1 = 90
Var2 = 60

# forward dashing preparation since this one's a bit different

State S_CYBRAK2016_DASHPREPF
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_DASHFACEF
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_DASHFACEF
SpriteName = BRAK
SpriteFrame = A
Duration = 20
Next = S_CYBRAK2016_DASHFACEF2
Action = A_PlaySound
Var1 = sfx_s3kc5s
Var2 = 1+1<<16

State S_CYBRAK2016_DASHFACEF2
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_DASHFORWARD
Action = A_PlaySound
Var1 = sfx_zoom
Var2 = 1+1<<16

State S_CYBRAK2016_DASHFORWARD
SpriteName = BRAK
SpriteFrame = A
Duration = 40
Next = S_CYBRAK2016_MELEE
Action = A_Thrust
Var1 = 100
Var2 = 0

# handles brak's stomp attack after the forward dash: look at target, play a sound, launch the projectiles, wait a moment

State S_CYBRAK2016_MELEE
SpriteName = BRAK
SpriteFrame = E
Duration = 5
Next = S_CYBRAK2016_MELEE2
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_MELEE2
SpriteName = BRAK
SpriteFrame = F
Duration = 5
Next = S_CYBRAK2016_MELEESOUND
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_MELEESOUND
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_MELEESOUND2
Action = A_PlaySound
Var1 = sfx_bestep
Var2 = 1+1<<16

State S_CYBRAK2016_MELEESOUND2
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_MELEEATKHIT
Action = A_PlaySound
Var1 = sfx_bestp2
Var2 = 1+1<<16

State S_CYBRAK2016_MELEEATKHIT
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_MELEEATK
Action = A_MultiShot
Var1 = 32+MT_CYBRAK2016_SPARK<<16
Var2 = -40

State S_CYBRAK2016_MELEEATK
SpriteName = BRAK
SpriteFrame = G
Duration = 7
Next = S_CYBRAK2016_LMAO
Action = A_FaceTarget
Var1 = 0
Var2 = 0


# rocket spam forward: move, face target, fire, play stomp sound every so often, repeat; uses tons of states to animate his walk cycle

State S_CYBRAK2016_ROCKETFORWARD1
SpriteName = BRAK
SpriteFrame = B
Duration = 7
Next = S_CYBRAK2016_ROCKETFACE1
Action = A_Thrust
Var1 = 10
Var2 = 1

State S_CYBRAK2016_ROCKETFACE1
SpriteName = BRAK
SpriteFrame = B
Duration = 1
Next = S_CYBRAK2016_ROCKETFIRE1
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIRE1
SpriteName = BRAK
SpriteFrame = B
Duration = 0
Next = S_CYBRAK2016_ROCKETFORWARD2
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETFORWARD2
SpriteName = BRAK
SpriteFrame = C
Duration = 7
Next = S_CYBRAK2016_ROCKETFACE2
Action = A_Thrust
Var1 = 10
Var2 = 1

State S_CYBRAK2016_ROCKETFACE2
SpriteName = BRAK
SpriteFrame = C
Duration = 1
Next = S_CYBRAK2016_ROCKETFIRE2
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIRE2
SpriteName = BRAK
SpriteFrame = C
Duration = 0
Next = S_CYBRAK2016_ROCKETFORWARD3
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETFORWARD3
SpriteName = BRAK
SpriteFrame = D
Duration = 7
Next = S_CYBRAK2016_ROCKETSTEPSFX1
Action = A_Thrust
Var1 = 10
Var2 = 1

State S_CYBRAK2016_ROCKETSTEPSFX1
SpriteName = BRAK
SpriteFrame = D
Duration = 1
Next = S_CYBRAK2016_ROCKETFACE3
Action = A_PlaySound
Var1 = sfx_bestep
Var2 = 1+1<<16

State S_CYBRAK2016_ROCKETFACE3
SpriteName = BRAK
SpriteFrame = D
Duration = 1
Next = S_CYBRAK2016_ROCKETFIRE3

State S_CYBRAK2016_ROCKETFIRE3
SpriteName = BRAK
SpriteFrame = D
Duration = 0
Next = S_CYBRAK2016_ROCKETFORWARD4
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFORWARD4
SpriteName = BRAK
SpriteFrame = E
Duration = 7
Next = S_CYBRAK2016_ROCKETFACE4
Action = A_Thrust
Var1 = 10
Var2 = 1

State S_CYBRAK2016_ROCKETFACE4
SpriteName = BRAK
SpriteFrame = E
Duration = 1
Next = S_CYBRAK2016_ROCKETFIRE4
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIRE4
SpriteName = BRAK
SpriteFrame = E
Duration = 0
Next = S_CYBRAK2016_ROCKETFORWARD5
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETFORWARD5
SpriteName = BRAK
SpriteFrame = F
Duration = 7
Next = S_CYBRAK2016_ROCKETFACE5
Action = A_Thrust
Var1 = 10
Var2 = 1

State S_CYBRAK2016_ROCKETFACE5
SpriteName = BRAK
SpriteFrame = F
Duration = 1
Next = S_CYBRAK2016_ROCKETFIRE5
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIRE5
SpriteName = BRAK
SpriteFrame = F
Duration = 0
Next = S_CYBRAK2016_ROCKETFORWARD6
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETFORWARD6
SpriteName = BRAK
SpriteFrame = G
Duration = 7
Next = S_CYBRAK2016_ROCKETSTEPSFX2
Action = A_Thrust
Var1 = 10
Var2 = 1

State S_CYBRAK2016_ROCKETSTEPSFX2
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_ROCKETFACE6
Action = A_PlaySound
Var1 = sfx_bestep
Var2 = 1+1<<16

State S_CYBRAK2016_ROCKETFACE6
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_ROCKETFIRE6
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIRE6
SpriteName = BRAK
SpriteFrame = G
Duration = 0
Next = S_CYBRAK2016_ROCKETREPEAT
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETREPEAT
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_ROCKETPREP13
Action = A_Repeat
Var1 = 2
Var2 = S_CYBRAK2016_ROCKETFORWARD1

State S_CYBRAK2016_ROCKETPREP13
SpriteName = BRAK
SpriteFrame = A
Duration = 7
Next = S_CYBRAK2016_ROCKETFIRE13
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIRE13
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0


# rocket spam backward: move, face target, fire, play stomp sound every so often, repeat; uses tons of states to animate his walk cycle

State S_CYBRAK2016_ROCKETBACKWARD1
SpriteName = BRAK
SpriteFrame = B
Duration = 7
Next = S_CYBRAK2016_ROCKETFACEB1
Action = A_Thrust
Var1 = -4
Var2 = 1

State S_CYBRAK2016_ROCKETFACEB1
SpriteName = BRAK
SpriteFrame = B
Duration = 1
Next = S_CYBRAK2016_ROCKETFIREB1
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIREB1
SpriteName = BRAK
SpriteFrame = B
Duration = 0
Next = S_CYBRAK2016_ROCKETBACKWARD2
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETBACKWARD2
SpriteName = BRAK
SpriteFrame = C
Duration = 7
Next = S_CYBRAK2016_ROCKETFACEB2
Action = A_Thrust
Var1 = -4
Var2 = 1

State S_CYBRAK2016_ROCKETFACEB2
SpriteName = BRAK
SpriteFrame = C
Duration = 1
Next = S_CYBRAK2016_ROCKETFIREB2
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIREB2
SpriteName = BRAK
SpriteFrame = C
Duration = 0
Next = S_CYBRAK2016_ROCKETBACKWARD3
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETBACKWARD3
SpriteName = BRAK
SpriteFrame = D
Duration = 7
Next = S_CYBRAK2016_ROCKETSTEPSFXB1
Action = A_Thrust
Var1 = -4
Var2 = 1

State S_CYBRAK2016_ROCKETSTEPSFXB1
SpriteName = BRAK
SpriteFrame = D
Duration = 1
Next = S_CYBRAK2016_ROCKETFACEB3
Action = A_PlaySound
Var1 = sfx_bestep
Var2 = 1+1<<16

State S_CYBRAK2016_ROCKETFACEB3
SpriteName = BRAK
SpriteFrame = D
Duration = 1
Next = S_CYBRAK2016_ROCKETFIREB3

State S_CYBRAK2016_ROCKETFIREB3
SpriteName = BRAK
SpriteFrame = D
Duration = 0
Next = S_CYBRAK2016_ROCKETBACKWARD4
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETBACKWARD4
SpriteName = BRAK
SpriteFrame = E
Duration = 7
Next = S_CYBRAK2016_ROCKETFACEB4
Action = A_Thrust
Var1 = -4
Var2 = 1

State S_CYBRAK2016_ROCKETFACEB4
SpriteName = BRAK
SpriteFrame = E
Duration = 1
Next = S_CYBRAK2016_ROCKETFIREB4
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIREB4
SpriteName = BRAK
SpriteFrame = E
Duration = 0
Next = S_CYBRAK2016_ROCKETBACKWARD5
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETBACKWARD5
SpriteName = BRAK
SpriteFrame = F
Duration = 7
Next = S_CYBRAK2016_ROCKETFACEB5
Action = A_Thrust
Var1 = -4
Var2 = 1

State S_CYBRAK2016_ROCKETFACEB5
SpriteName = BRAK
SpriteFrame = F
Duration = 1
Next = S_CYBRAK2016_ROCKETFIREB5
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIREB5
SpriteName = BRAK
SpriteFrame = F
Duration = 0
Next = S_CYBRAK2016_ROCKETBACKWARD6
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETBACKWARD6
SpriteName = BRAK
SpriteFrame = G
Duration = 7
Next = S_CYBRAK2016_ROCKETSTEPSFXB2
Action = A_Thrust
Var1 = -4
Var2 = 1

State S_CYBRAK2016_ROCKETSTEPSFXB2
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_ROCKETFACEB6
Action = A_PlaySound
Var1 = sfx_bestep
Var2 = 1+1<<16

State S_CYBRAK2016_ROCKETFACEB6
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_ROCKETFIREB6
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIREB6
SpriteName = BRAK
SpriteFrame = D
Duration = 0
Next = S_CYBRAK2016_ROCKETREPEATB
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0

State S_CYBRAK2016_ROCKETREPEATB
SpriteName = BRAK
SpriteFrame = B
Duration = 1
Next = S_CYBRAK2016_ROCKETPREPB13
Action = A_Repeat
Var1 = 2
Var2 = S_CYBRAK2016_ROCKETBACKWARD1

State S_CYBRAK2016_ROCKETPREPB13
SpriteName = BRAK
SpriteFrame = A
Duration = 7
Next = S_CYBRAK2016_ROCKETFIREB13
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_ROCKETFIREB13
SpriteName = BRAK
SpriteFrame = G
Duration = 1
Next = S_CYBRAK2016_LMAO
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_MISSILE
Var2 = 0


# blade swing attack: face target, telegraph, play attack sound, launch destroyer blade

State S_CYBRAK2016_SWING
SpriteName = BRAK
SpriteFrame = I
Duration = 1
Next = S_CYBRAK2016_SWINGEVIL
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_SWINGEVIL
SpriteName = BRAK
SpriteFrame = I
Duration = 1*TICRATE
Next = S_CYBRAK2016_SLASHFACE
Action = A_PlaySound
Var1 = sfx_bewar4
Var2 = 1+1<<16

State S_CYBRAK2016_SLASHFACE
SpriteName = BRAK
SpriteFrame = U
Duration = 1
Next = S_CYBRAK2016_SLASHSOUND
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_SLASHSOUND
SpriteName = BRAK
SpriteFrame = U
Duration = 1
Next = S_CYBRAK2016_SLASH
Action = A_PlaySound
Var1 = sfx_s3k5e
Var2 = 1+1<<16

State S_CYBRAK2016_SLASH
SpriteName = BRAK
SpriteFrame = U
Duration = 25
Next = S_CYBRAK2016_LMAO
Action = A_TrapShot
Var1 = MT_CYBRAK2016_SLASH+0<<16
Var2 = 0+(0)<<16


# brak railgun attack: spawn the target marker, play a sound, give the player ample fucking warning, cave in their skull

State S_CYBRAK2016_QUICKSCOPE
SpriteName = BRAK
SpriteFrame = H
Duration = 1
Next = S_CYBRAK2016_QUICKSOUND
Action = A_VileTarget
Var1 = MT_CYBRAK2016_WATCHYOASS
Var2 = 0

State S_CYBRAK2016_QUICKSOUND
SpriteName = BRAK
SpriteFrame = H
Duration = 0
Next = S_CYBRAK2016_QUICKCHARGE
Action = A_PlaySound
Var1 = sfx_bechrg
Var2 = 0+1<<16

State S_CYBRAK2016_QUICKCHARGE
SpriteName = BRAK
SpriteFrame = H
Duration = 1
Next = S_CYBRAK2016_QUICKREPEAT
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_QUICKREPEAT
SpriteName = BRAK
SpriteFrame = H
Duration = 1
Next = S_CYBRAK2016_RAILGUN
Action = A_Repeat
Var1 = 140
Var2 = S_CYBRAK2016_QUICKCHARGE

State S_CYBRAK2016_RAILGUN
SpriteName = BRAK
SpriteFrame = H
Duration = 1*TICRATE
Next = S_CYBRAK2016_LMAO
Action = A_BrakFireShot
Var1 = MT_CYBRAK2016_SLUG
Var2 = 0


# target marker handler, just normal archvile attack things

State S_CYBRAK2016_TARGET
SpriteName = TARG
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_TARGCHASE
Action = A_VileFire
Var1 = 0
Var2 = 0

State S_CYBRAK2016_TARGCHASE
SpriteName = TARG
SpriteFrame = A
Duration = 1
Next = S_NULL
Action = A_Repeat
Var1 = 140
Var2 = S_CYBRAK2016_TARGET


# napalm: telegraph, drop the thing, wait a moment

State S_CYBRAK2016_AIRSTRIKE
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_AIRSIREN
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_AIRSIREN
SpriteName = BRAK
SpriteFrame = A
Duration = 1*TICRATE
Next = S_CYBRAK2016_AIRDROP
Action = A_PlaySound
Var1 = sfx_bewar3
Var2 = 1+1<<16

State S_CYBRAK2016_AIRDROP
SpriteName = BRAK
SpriteFrame = V
Duration = 8
Next = S_CYBRAK2016_AIRCOVER
Action = A_BrakLobShot
Var1 = MT_CYBRAKDEMON_NAPALM_BOMB_LARGE
Var2 = 96

State S_CYBRAK2016_AIRCOVER
SpriteName = BRAK
SpriteFrame = A
Duration = 6
Next = S_CYBRAK2016_LMAO
Action = A_FaceTarget
Var1 = 0
Var2 = 0


# pain: recover state is there to ensure he either forward dashes or back rockets after being whacked

State S_CYBRAK2016_BIGOWIE
SpriteName = BRAK
SpriteFrame = S
Duration = 1*TICRATE
Next = S_CYBRAK2016_RECOVER
Action = A_Pain
Var1 = 0
Var2 = 0

State S_CYBRAK2016_RECOVER
SpriteName = BRAK
SpriteFrame = S
Duration = 0
Next = S_CYBRAK2016_LMAO
Action = A_RandomState
Var1 = S_CYBRAK2016_ROCKETBACKWARD1
Var2 = S_CYBRAK2016_DASHPREPF


# death lmao: wait 2 tics for some reason, explode 26 times, fall over; removes his flags so that he goes down the elevator if he dies on it

State S_CYBRAK2016_ITDIES
SpriteName = BRAK
SpriteFrame = S
Duration = 2
Next = S_CYBRAK2016_EXPLODE

State S_CYBRAK2016_EXPLODE
SpriteName = BRAK
SpriteFrame = S
Duration = 4
Next = S_CYBRAK2016_EXPLODEONLOOP
Action = A_BossScream
Var1 = 0
Var2 = MT_SONIC3KBOSSEXPLODE

State S_CYBRAK2016_EXPLODEONLOOP
SpriteName = BRAK
SpriteFrame = S
Duration = 0
Next = S_CYBRAK2016_OOPS
Action = A_Repeat
Var1 = 26
Var2 = S_CYBRAK2016_EXPLODE

State S_CYBRAK2016_OOPS
SpriteName = BRAK
SpriteFrame = N
Duration = 14
Next = S_CYBRAK2016_TEETER
Action = A_PlaySound
Var1 = SFX_BEFALL
Var2 = 0

State S_CYBRAK2016_TEETER
SpriteName = BRAK
SpriteFrame = O
Duration = 7
Next = S_CYBRAK2016_EEP

State S_CYBRAK2016_EEP
SpriteName = BRAK
SpriteFrame = P
Duration = 5
Next = S_CYBRAK2016_THEBIGGERTHEYARE

State S_CYBRAK2016_THEBIGGERTHEYARE
SpriteName = BRAK
SpriteFrame = Q
Duration = 3
Next = S_CYBRAK2016_THUNK

State S_CYBRAK2016_THUNK
SpriteName = BRAK
SpriteFrame = R
Duration = -1
Next = S_NULL
Action = A_SetObjectFlags
Var1 = MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT
Var2 = 1


# unused back dash states

State S_CYBRAK2016_DASHBACKP
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_DASHFACEB
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_CYBRAK2016_DASHFACEB
SpriteName = BRAK
SpriteFrame = A
Duration = 20
Next = S_CYBRAK2016_DASHFACEB2
Action = A_PlaySound
Var1 = sfx_s3kc5s
Var2 = 1+1<<16

State S_CYBRAK2016_DASHFACEB2
SpriteName = BRAK
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_DASHBACK
Action = A_PlaySound
Var1 = sfx_zoom
Var2 = 1+1<<16

State S_CYBRAK2016_DASHBACK
SpriteName = BRAK
SpriteFrame = A
Duration = 40
Next = S_CYBRAK2016_LMAO
Action = A_Thrust
Var1 = -40
Var2 = 0


# missile states: spawning, explosion

State S_CYBRAK2016_MSPAWN
SpriteName = RCKT
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_MSPAWN
Var1 = 0
Var2 = 0

State S_CYBRAK2016_MX1
SpriteName = RCKT
SpriteFrame = B
Duration = 8
Next = S_CYBRAK2016_MX2
Action = A_Explode
Var1 = 0
Var2 = 0

State S_CYBRAK2016_MX2
SpriteName = RCKT
SpriteFrame = C
Duration = 6
Next = S_CYBRAK2016_MX3
Var1 = 0
Var2 = 0

State S_CYBRAK2016_MX3
SpriteName = RCKT
SpriteFrame = D
Duration = 4
Next = S_NULL
Var1 = 0
Var2 = 0


# railgun slug state

State S_CYBRAK2016_SSPAWN
SpriteName = JETF
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_SSPAWN
Action = A_SetObjectFlags2
Var1 = MF2_RAILRING
Var2 = 2


# destroyer blade state

State S_CYBRAK2016_SLASH1
SpriteName = CBSW
SpriteFrame = A
Duration = 1
Next = S_CYBRAK2016_SLASH1
Var1 = 0
Var2 = 0