Freeslot
MT_AIRMAN
S_AIRMANIDLE1
S_AIRMANIDLE2
S_AIRMANIDLE3
S_AIRMANATTACK
S_AIRMANRESET
S_AIRMANJUMP0
S_AIRMANSHOOT0
S_AIRMANJUMP1
S_AIRMANJUMP2
S_AIRMANJUMP3
S_AIRMANSHOOT1
S_AIRMANSHOOT2
S_AIRMANSHOOT3
S_AIRMANSHOOT4
S_AIRMANSHOOT5
S_AIRMANSHOOT6
S_AIRMANPAIN1
S_AIRMANPAIN2
S_AIRMANPAIN3
S_AIRMANPAIN4
S_AIRMANPINCH0
S_AIRMANPINCH1
S_AIRMANPINCH2
S_AIRMANWILLACTUALLYDIE0
S_AIRMANWILLACTUALLYDIE1
S_AIRMANWILLACTUALLYDIE2
S_AIRMANWILLACTUALLYDIE3
MT_AIRSHOT
S_AIRSHOT0
S_AIRSHOT1
S_AIRSHOT2
S_AIRSHOT3
S_AIRSHOTRISECHECK
S_AIRSHOTRISE0
S_AIRSHOTRISE1
S_AIRSHOTRISE2
S_AIRSHOTRISELOOP
S_AIRSHOTFLY1
S_AIRSHOTFLY2
S_AIRSHOTFLY3
MT_LOWAIRSHOT
S_LOWAIRSHOT0
SPR_AIRM
SPR_AIRS

Object MT_AIRMAN
SpawnState = S_AIRMANIDLE1
SeeState = S_AIRMANIDLE1
PainState = S_AIRMANPAIN1
DeathState = S_AIRMANWILLACTUALLYDIE0
xDeathState =  	S_TNTBARREL_EXPL1
MeleeState = S_AIRMANATTACK
ReactionTime = 45
Speed = 0
Radius = 75*FRACUNIT
Height = 75*FRACUNIT
Damage = 3
PainSound = sfx_dmpain
DeathSound = sfx_cybdth
SpawnHealth = 16
MapThingNum = 3350
DispOffset = 0
Flags = MF_SPECIAL|MF_SHOOTABLE|MF_BOSS


#For whatever reason returning to spawnstate wasn't ending the invul timer, so it's dumb SOC hack Time

State S_AIRMANRESET
SpriteName = AIRM
SpriteFrame = A
Action = A_SetObjectFlags2
Var1 = MF2_BOSSNOTRAP
Var2 = 0
Duration = 0
Next = S_AIRMANIDLE2

State S_AIRMANIDLE1
SpriteName = AIRM
SpriteFrame = A
Action = A_FindTarget
Var1 = MT_PLAYER
Duration = 8
Next = S_AIRMANIDLE2


State S_AIRMANIDLE2
SpriteName = AIRM
SpriteFrame = B
Action = A_FaceTarget
Duration = 8
Next = S_AIRMANIDLE3

State S_AIRMANIDLE3
SpriteName = AIRM
SpriteFrame = B
Action = A_Repeat
Var1 = 5
Var2 = S_AIRMANIDLE1
Duration = 0
Next = S_AIRMANATTACK



State S_AIRMANATTACK
SpriteName = AIRM
SpriteFrame = C
Action = A_RandomState
Var1 = S_AIRMANJUMP0
Var2 = S_AIRMANSHOOT0
Duration = 1
Next = S_AIRMANSHOOT0




State S_AIRMANJUMP0
SpriteName = AIRM
SpriteFrame = C
Action = A_FaceTarget
Duration = 0
Next = S_AIRMANJUMP2

State S_AIRMANJUMP1
SpriteName = AIRM
SpriteFrame = C
Action = A_ChangeAngleAbsolute
Var1 = -45
Var2 = 45
Duration = 0
Next = S_AIRMANJUMP2


State S_AIRMANJUMP2
SpriteName = AIRM
SpriteFrame = D
Action = A_BunnyHop
Var1 = 10
Var2 = 30
Duration = 44
Next = S_AIRMANJUMP3

State S_AIRMANJUMP3
SpriteName = AIRM
SpriteFrame = A
Duration = 8
Next = S_AIRMANATTACK


State S_AIRMANSHOOT0
SpriteName = AIRM
SpriteFrame = C
Action = A_Repeat
Var1 = 1
Var2 = 0
Duration = 20
Next = S_AIRMANSHOOT1

State S_AIRMANSHOOT1
SpriteName = AIRM
SpriteFrame = C
Action = A_FaceTarget
Duration = 0
Next = S_AIRMANSHOOT2

State S_AIRMANSHOOT2
SpriteName = AIRM
SpriteFrame = C
Action = A_ChangeAngleRelative
Var1 = -90
Var2 = 90
Duration = 0
Next = S_AIRMANSHOOT3

State S_AIRMANSHOOT3
SpriteName = AIRM
SpriteFrame = C
Action = A_TrapShot
Var1 = MT_AIRSHOT
Duration = 0
Next = S_AIRMANSHOOT4

State S_AIRMANSHOOT4
SpriteName = AIRM
SpriteFrame = C
Action = A_ChangeAngleRelative
Var1 = -45
Var2 = 45
Duration = 0
Next = S_AIRMANSHOOT5

State S_AIRMANSHOOT5
SpriteName = AIRM
SpriteFrame = C
Action = A_TrapShot
Var1 = MT_LOWAIRSHOT
Duration = 0
Next = S_AIRMANSHOOT6

State S_AIRMANSHOOT6
SpriteName = AIRM
SpriteFrame = C
Action = A_Repeat
Var1 = 20
Var2 = S_AIRMANSHOOT1
Duration = 0
Next = S_AIRMANRESET

State S_AIRMANPAIN1
SpriteName = AIRM
SpriteFrame = D
Action = A_Pain
Duration = 40
Next = S_AIRMANPAIN2

State S_AIRMANPAIN2
SpriteName = AIRM
SpriteFrame = D
Action = A_Repeat
Var1 = 1
Var2 = 0
Duration = 0
Next = S_AIRMANPAIN3



State S_AIRMANPAIN3
SpriteName = AIRM
SpriteFrame = D
Action = A_CheckHealth
Var1 = 7
Var2 = S_AIRMANATTACK
Duration = 0
Next = S_AIRMANPAIN4

State S_AIRMANPAIN4
SpriteName = AIRM
SpriteFrame = D
Action = A_CheckHealth
Var1 = 8
Var2 = S_AIRMANPINCH0
Duration = 0
Next = S_AIRMANATTACK




State S_AIRMANPINCH0
SpriteName = AIRM
SpriteFrame = D
Action = A_BossScream
Duration = 4
Next = S_AIRMANPINCH1

State S_AIRMANPINCH1
SpriteName = AIRM
SpriteFrame = C
Action = A_Repeat
Var1 = 20
Var2 = S_AIRMANPINCH0
Duration = 0
Next = S_AIRMANPINCH2

State S_AIRMANPINCH2
SpriteName = AIRM
SpriteFrame = C
Action = A_LinedefExecute
Var1 = 5
Duration = 60
Next = S_AIRMANATTACK

State S_AIRMANWILLACTUALLYDIE0
SpriteName = AIRM
SpriteFrame = D
Action = A_Repeat
Var1 = 1
Var2 = 0
Duration = 1
Next = S_AIRMANWILLACTUALLYDIE1

State S_AIRMANWILLACTUALLYDIE1
SpriteName = AIRM
SpriteFrame = D
Action = A_BossScream
Duration = 4
Next = S_AIRMANWILLACTUALLYDIE2


State S_AIRMANWILLACTUALLYDIE2
SpriteName = AIRM
SpriteFrame = D
Action = A_Repeat
Var1 = 20
Var2 = S_AIRMANWILLACTUALLYDIE1
Duration = 4
Next = S_AIRMANWILLACTUALLYDIE3


State S_AIRMANWILLACTUALLYDIE3
SpriteName = AIRM
SpriteFrame = D
Action = A_BossDeath
Duration = 4
Next = S_NULL


Object MT_AIRSHOT
SpawnState = S_AIRSHOT0
DeathState = S_SMOKE1
Radius = 40*FRACUNIT
Height = 40*FRACUNIT
Speed = 50*FRACUNIT
DispOffset = 0
Flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY

Object MT_LOWAIRSHOT
SpawnState = S_LOWAIRSHOT0
DeathState = S_SMOKE1
Radius = 40*FRACUNIT
Height = 40*FRACUNIT
Speed = 50*FRACUNIT
DispOffset = 0
Flags = MF_NOBLOCKMAP|MF_MISSILE|MF_NOGRAVITY

State S_LOWAIRSHOT0
SpriteName = AIRS
SpriteFrame = A
Action = None
Duration = 1
Next = S_AIRSHOT1

State S_AIRSHOT0
SpriteName = AIRS
SpriteFrame = A
Action = None
Duration = 1
Next = S_AIRSHOTRISECHECK

#This is such a fucking stupid way to get a random vertical speed oh gods why didn't i just use lua???
State S_AIRSHOTRISECHECK
SpriteName = AIRS
SpriteFrame = A
Action = A_RandomStateRange
Var1 = S_AIRSHOTRISE0
Var2 = S_AIRSHOTRISE2
Duration = 0
Next = S_AIRSHOTRISECHECK

State S_AIRSHOTRISE0
SpriteName = AIRS
SpriteFrame = A
Action = A_ZThrust
Var1 = 1
Duration = 0
Next = S_AIRSHOTRISELOOP

State S_AIRSHOTRISE1
SpriteName = AIRS
SpriteFrame = A
Action = A_ZThrust
Var1 = 3
Duration = 0
Next = S_AIRSHOTRISELOOP

State S_AIRSHOTRISE2
SpriteName = AIRS
SpriteFrame = A
Action = None
Duration = 0
Next = S_AIRSHOTRISELOOP

State S_AIRSHOTRISELOOP
SpriteName = AIRS
SpriteFrame = A
Action = A_Repeat
Var1 = 10
Var2 = S_AIRSHOTRISECHECK
Duration = 1
Next = S_AIRSHOT1

State S_AIRSHOT1
SpriteName = AIRS
SpriteFrame = A
Action = A_CapeChase
Duration = 0
Next = S_AIRSHOTFLY1

State S_AIRSHOTFLY1
SpriteName = AIRS
SpriteFrame = A|FF_ANIMATE
Var1 = 2
Var2 = 2
Duration = 10
Next = S_AIRSHOT2

State S_AIRSHOT2
SpriteName = AIRS
SpriteFrame = A
Action = A_ZThrust
Var1 = 0
Var2 = (1<<16)+1
Duration = 1
Next = S_AIRSHOTFLY2

State S_AIRSHOTFLY2
SpriteName = AIRS
SpriteFrame = A|FF_ANIMATE
Var1 = 2
Var2 = 2
Duration = 40
Next = S_AIRSHOT3

State S_AIRSHOT3
SpriteName = AIRS
SpriteFrame = A
Action = A_Thrust
Var1 = 30
Var2 = 0
Duration = 1
Next = S_AIRSHOTFLY3

State S_AIRSHOTFLY3
SpriteName = AIRS
SpriteFrame = A|FF_ANIMATE
Var1 = 2
Var2 = 2
Duration = -1
Next = S_AIRSHOTFLY3