# Smoke handler for Hell

Object MT_SMOKEHANDLER
#$Name Hell LUA Smoke Handler
#$Sprite CANAA1
#$Category Enemies
MapThingNum = 2187
SpawnState = S_SMOKEHANDLER_SPAWN
SpawnHealth = 2
SeeState = S_SMOKEHANDLER_IDLE
SeeSound = sfx_None
ReactionTime = 0
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_None
Speed = 0
Radius = 32*FRACUNIT
Height = 32*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_None
Flags = MF_NOBLOCKMAP|MF_RUNSPAWNFUNC
RaiseState = S_NULL

# Smoke damage hack for Hell

Object MT_SMOKEGHOST
MapThingNum = -1
SpawnState = S_SMOKEGHOST_SPAWN
SpawnHealth = 2
SeeState = S_SMOKEGHOST_AGONY
SeeSound = sfx_None
ReactionTime = 0
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_None
Speed = 0
Radius = 24*FRACUNIT
Height = 52*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_None
Flags = MF_PAIN|MF_RUNSPAWNFUNC
RaiseState = S_NULL

Object MT_SUPERSMOKEGHOST
MapThingNum = -1
SpawnState = S_SMOKEGHOST_SPAWN
SpawnHealth = 2
SeeState = S_SMOKEGHOST_AGONY
SeeSound = sfx_None
ReactionTime = 0
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_None
Speed = 0
Radius = 24*FRACUNIT
Height = 52*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_None
Flags = MF_PAIN|MF_RUNSPAWNFUNC
RaiseState = S_NULL

# Mine Flayer floor component

Object MT_MINEFLAYERFLOOR
#$Name Mine Flayer (Active Component)
#$Sprite UNIDA1
#$Category Bosses
MapThingNum = 2185
SpawnState = S_MFF_SPAWN
SpawnHealth = 2
SeeState = S_MFF_INITBOSSHEALTH
SeeSound = sfx_None
ReactionTime = 10*TICRATE
AttackSound = sfx_None
PainState = S_MFF_PAIN
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_NULL
MissileState = S_NULL
DeathState = S_MFF_DEATHSTART
XDeathState = S_NULL
DeathSound = sfx_dmpain
Speed = 0
Radius = 260*FRACUNIT
Height = 260*FRACUNIT
DispOffset = 0
Mass = 150000
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_SPECIAL|MF_BOSS|MF_SHOOTABLE
RaiseState = S_NULL

# Mine Flayer ceiling component

Object MT_MINEFLAYERCEILING
#$Name Mine Flayer (Supporting Component)
#$Sprite UNIDB1
#$Category Bosses
MapThingNum = 2186
SpawnState = S_MFC_SPAWN
SpawnHealth = 150000
SeeState = S_MFC_LOOK
SeeSound = sfx_None
ReactionTime = 8*TICRATE
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_MFC_FLAMLOAD
MissileState = S_MFC_RKTLOAD
DeathState = S_XPLD1
XDeathState = S_NULL
DeathSound = sfx_dmpain
Speed = 0
Radius = 216*FRACUNIT
Height = 216*FRACUNIT
DispOffset = 0
Mass = 150000
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_SOLID|MF_NOGRAVITY|MF_RUNSPAWNFUNC
RaiseState = S_NULL

Object MT_MOBSPAWNER
#$Name Ground Enemy Spawner Stalagmite
#$Sprite STLGB1
#$Category Enemies
MapThingNum = 2190
SpawnState = S_MOBSPAWNER_SPAWN
SpawnHealth = 2
SeeState = S_MOBSPAWNER_FIRST
SeeSound = sfx_None
ReactionTime = 15*TICRATE
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_MOBSPAWNER_FIRST
MissileState = S_MOBSPAWNER_SECOND
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_dmpain
Speed = 0
Radius = 32*FRACUNIT
Height = 32*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_NOBLOCKMAP|MF_RUNSPAWNFUNC
RaiseState = S_NULL

Object MT_AIRSPAWNER
#$Name Flying Enemy Spawner Stalagmite
#$Sprite STLGB1
#$Category Enemies
MapThingNum = 2192
SpawnState = S_AIRSPAWNER_SPAWN
SpawnHealth = 2
SeeState = S_AIRSPAWNER_FIRST
SeeSound = sfx_None
ReactionTime = 30*TICRATE
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_AIRSPAWNER_FIRST
MissileState = S_AIRSPAWNER_SECOND
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_dmpain
Speed = 0
Radius = 32*FRACUNIT
Height = 32*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_NOBLOCKMAP|MF_RUNSPAWNFUNC
RaiseState = S_NULL

Object MT_PAINSPAWNER
#$Name Difficult Enemy Spawner Stalagmite
#$Sprite STLGA1
#$Category Enemies
MapThingNum = 2193
SpawnState = S_PAINSPAWNER_SPAWN
SpawnHealth = 2
SeeState = S_PAINSPAWNER_FIRST
SeeSound = sfx_None
ReactionTime = 45*TICRATE
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_PAINSPAWNER_FIRST
MissileState = S_PAINSPAWNER_SECOND
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_dmpain
Speed = 0
Radius = 32*FRACUNIT
Height = 32*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_NOBLOCKMAP|MF_RUNSPAWNFUNC
RaiseState = S_NULL

Object MT_MINIBOSSSPAWNER
#$Name Miniboss Spawner Stalagmite
#$Sprite STLGA1
#$Category Enemies
MapThingNum = 2191
SpawnState = S_MINIBOSSSPAWNER_SPAWN
SpawnHealth = 2
SeeState = S_MINIBOSSSPAWNER_RECHARGE
SeeSound = sfx_None
ReactionTime = 60*TICRATE
AttackSound = sfx_None
PainState = S_NULL
PainChance = 0
PainSound = sfx_None
MeleeState = S_MINIBOSSSPAWNER_FIRST
MissileState = S_MINIBOSSSPAWNER_SECOND
DeathState = S_NULL
XDeathState = S_NULL
DeathSound = sfx_dmpain
Speed = 0
Radius = 32*FRACUNIT
Height = 32*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_NOBLOCKMAP|MF_RUNSPAWNFUNC
RaiseState = S_NULL

Object MT_MF_SCATTERHANDLER_1
MapThingNum = -1
SpawnState = S_MF_SCHD1BLAST
SpawnHealth = 1
SeeState = S_MF_SCHD1BLAST
SeeSound = sfx_None
ReactionTime = 15
AttackSound = sfx_None
PainState = S_MF_SCHD1BLAST
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_MF_SCHD1BLAST
MissileState = S_MF_SCHD1BLAST
DeathState = S_MF_SCHD1BLAST
XDeathState = S_MF_SCHD1BLAST
DeathSound = sfx_dmpain
Speed = 0
Radius = 1*FRACUNIT
Height = 1*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_SPECIAL|MF_PAIN|MF_RUNSPAWNFUNC
RaiseState = S_MF_SCHD1BLAST

Object MT_MF_SCATTERHANDLER_2
MapThingNum = -1
SpawnState = S_MF_SCHD2BLAST
SpawnHealth = 1
SeeState = S_MF_SCHD2BLAST
SeeSound = sfx_None
ReactionTime = 15
AttackSound = sfx_None
PainState = S_MF_SCHD2BLAST
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_MF_SCHD2BLAST
MissileState = S_MF_SCHD2BLAST
DeathState = S_MF_SCHD2BLAST
XDeathState = S_MF_SCHD2BLAST
DeathSound = sfx_dmpain
Speed = 0
Radius = 1*FRACUNIT
Height = 1*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_SPECIAL|MF_PAIN|MF_RUNSPAWNFUNC
RaiseState = S_MF_SCHD2BLAST

Object MT_DYNAMITEPROXY
MapThingNum = -1
SpawnState = S_DPROXY
SpawnHealth = 1
SeeState = S_DPROXY
SeeSound = sfx_None
ReactionTime = 15
AttackSound = sfx_None
PainState = S_DPROXY
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_DPROXY
MissileState = S_DPROXY
DeathState = S_DPROXYX
XDeathState = S_DPROXY
DeathSound = sfx_dmpain
Speed = 0
Radius = 1*FRACUNIT
Height = 1*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_SPECIAL|MF_PAIN|MF_RUNSPAWNFUNC|MF_MISSILE
RaiseState = S_DPROXY

Object MT_TNTPROXY
MapThingNum = -1
SpawnState = S_TPROXY
SpawnHealth = 1
SeeState = S_TPROXY
SeeSound = sfx_None
ReactionTime = 15
AttackSound = sfx_None
PainState = S_TPROXY
PainChance = 0
PainSound = sfx_dmpain
MeleeState = S_TPROXY
MissileState = S_TPROXY
DeathState = S_TPROXYX
XDeathState = S_TPROXY
DeathSound = sfx_dmpain
Speed = 0
Radius = 1*FRACUNIT
Height = 1*FRACUNIT
DispOffset = 0
Mass = 1
Damage = 1
ActiveSound = sfx_s3k81
Flags = MF_SPECIAL|MF_PAIN|MF_RUNSPAWNFUNC|MF_MISSILE
RaiseState = S_TPROXY

State S_MOBSPAWNER_SPAWN
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_MOBSPAWNER_SPAWN
Action = A_Look
Var1 = 0+(2048<<16)
Var2 = 1

State S_MOBSPAWNER_RECHARGE
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_MOBSPAWNER_RECHARGE
Action = A_Boss1Chase
Var1 = 0
Var2 = 0

State S_MOBSPAWNER_FIRST
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_MOBSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_REDCRAWLA

State S_MOBSPAWNER_SECOND
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_MOBSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_PENGUINATOR

State S_AIRSPAWNER_SPAWN
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_AIRSPAWNER_SPAWN
Action = A_Look
Var1 = 0+(2048<<16)
Var2 = 1

State S_AIRSPAWNER_RECHARGE
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_AIRSPAWNER_RECHARGE
Action = A_Boss1Chase
Var1 = 0
Var2 = 0

State S_AIRSPAWNER_FIRST
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_AIRSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_JETTBOMBER

State S_AIRSPAWNER_SECOND
SpriteName = STLG
SpriteFrame = B
Duration = 1
Next = S_AIRSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_JETTGUNNER

State S_PAINSPAWNER_SPAWN
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_PAINSPAWNER_SPAWN
Action = A_Look
Var1 = 0+(2048<<16)
Var2 = 1

State S_PAINSPAWNER_RECHARGE
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_MOBSPAWNER_RECHARGE
Action = A_Boss1Chase
Var1 = 0
Var2 = 0

State S_PAINSPAWNER_FIRST
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_MOBSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_MINUS

State S_PAINSPAWNER_SECOND
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_MOBSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_SPINCUSHION

State S_MINIBOSSSPAWNER_SPAWN
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_MINIBOSSSPAWNER_SPAWN
Action = A_Look
Var1 = 0+(2048<<16)
Var2 = 1

State S_MINIBOSSSPAWNER_RECHARGE
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_MINIBOSSSPAWNER_RECHARGE
Action = A_Boss1Chase
Var1 = 0
Var2 = 0

State S_MINIBOSSSPAWNER_FIRST
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_MINIBOSSSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_FACESTABBER

State S_MINIBOSSSPAWNER_SECOND
SpriteName = STLG
SpriteFrame = A
Duration = 1
Next = S_MINIBOSSSPAWNER_RECHARGE
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_DRAGONBOMBER

State S_SMOKEHANDLER_SPAWN
SpriteName = CANA
SpriteFrame = A
Duration = 1
Next = S_SMOKEHANDLER_IDLE
Action = A_ForceStop
Var1 = 0
Var2 = 0

State S_SMOKEHANDLER_IDLE
SpriteName = CANA
SpriteFrame = A
Duration = 1
Next = S_SMOKEHANDLER_IDLE
Action = A_ForceStop
Var1 = 0
Var2 = 0

State S_SMOKEGHOST_SPAWN
SpriteName = CANG
SpriteFrame = A
Duration = 1
Next = S_SMOKEGHOST_AGONY
Action = A_ForceStop
Var1 = 0
Var2 = 0

State S_SMOKEGHOST_AGONY
SpriteName = CANG
SpriteFrame = A
Duration = 1
Next = S_SMOKEGHOST_AGONY
Action = A_RemoteDamage
Var1 = 0
Var2 = 2

State S_MF_SCHD1BLAST
SpriteName = UNID
SpriteFrame = A
Duration = 2
Next = S_NULL
Action = A_NapalmScatter
Var1 = MT_TNTPROXY+(6<<16)
Var2 = 768+(40<<16)

State S_MF_SCHD2BLAST
SpriteName = UNID
SpriteFrame = A
Duration = 2
Next = S_NULL
Action = A_NapalmScatter
Var1 = MT_DYNAMITEPROXY+(4<<16)
Var2 = 768+(40<<16)

State S_DPROXY
SpriteName = SFLM
SpriteFrame = A
Duration = 1
Next = S_DPROXY
Action = A_FindTracer
Var1 = 0
Var2 = 0

State S_DPROXYX
SpriteName = SFLM
SpriteFrame = A
Duration = 2
Next = S_NULL
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_PROXIMITYTNT

State S_TPROXY
SpriteName = SFLM
SpriteFrame = A
Duration = 1
Next = S_TPROXY
Action = A_FindTracer
Var1 = 0
Var2 = 0

State S_TPROXYX
SpriteName = SFLM
SpriteFrame = A
Duration = 2
Next = S_NULL
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_TNTBARREL

# BOSS REF STATES START HERE

STATE S_MFLOOKREF
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFLOOKREF
Action = A_FaceTarget
Var1 = 0
Var2 = 0

STATE S_MFCTICKER
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFLOOKREF
Action = A_Boss1Chase
Var1 = 0
Var2 = 0

STATE S_MFSOUNDREF
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFSOUNDREF
Action = A_PlaySound
Var1 = sfx_s3k81
Var2 = 0

STATE S_MFF_DEATHS3K
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DEATHS3K
Action = A_SpawnObjectRelative
Var1 = 0
Var2 = MT_SONIC3KBOSSEXPLODE

STATE S_MFF_DEATHSOUND
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DEATHSOUND
Action = A_PlaySound
Var1 = sfx_bkpoof
Var2 = 0

State S_MFC_SPAWN
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_SPAWN
Action = A_Look
Var1 = 0+(6400<<16)
Var2 = 1

State S_MFC_LOOK
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_LOOK
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFCTICKER

STATE S_MFC_RKTLOAD
SpriteName = UNID
SpriteFrame = B
Duration = 35
Next = S_MFC_RKTTARGET
Action = A_PlaySound
Var1 = sfx_beoutb
Var2 = 0

STATE S_MFC_FLAMLOAD
SpriteName = UNID
SpriteFrame = B
Duration = 35
Next = S_MFC_FLAMETARGET
Action = A_PlaySound
Var1 = sfx_s3kd5l
Var2 = 0

State S_MFC_FLAMETARGET
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_FLAMETHROWER_ATTACK
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 0

State S_MFC_FLAMETHROWER_ATTACK
SpriteName = UNID
SpriteFrame = B
Duration = 2
Next = S_MFC_FLAMEREPEAT
Action = A_DualAction
Var1 = S_MFC_FLAMSOUND
Var2 = S_MFC_FLAMETHROWER

State S_MFC_FLAMEREPEAT
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_LOOK
Action = A_Repeat
Var1 = 140
Var2 = S_MFC_FLAMETHROWER_ATTACK

State S_MFC_RKTTARGET
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_AUTOROCKET
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 0

State S_MFC_AUTOROCKET_ATTACK
SpriteName = UNID
SpriteFrame = B
Duration = 5
Next = S_MFC_RKTREPEAT
Action = A_DualAction
Var1 = S_MFC_RKTSOUND
Var2 = S_MFC_AUTOROCKET

State S_MFC_RKTREPEAT
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_LOOK
Action = A_Repeat
Var1 = 18
Var2 = S_MFC_AUTOROCKET_ATTACK

STATE S_MFC_RKTSOUND
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_RKTSOUND
Action = A_PlaySound
Var1 = sfx_brakrl
Var2 = 0

STATE S_MFC_FLAMSOUND
SpriteName = UNID
SpriteFrame = B
Duration = 1
Next = S_MFC_FLAMSOUND
Action = A_PlaySound
Var1 = sfx_s3kc2s
Var2 = 0

State S_MFC_AUTOROCKET
SpriteName = UNID
SpriteFrame = B
Duration = 5
Next = S_MFC_RKTREPEAT
Action = A_FireShot
Var1 = MT_CYBRAKDEMON_MISSILE
Var2 = -32

State S_MFC_FLAMETHROWER
SpriteName = UNID
SpriteFrame = B
Duration = 2
Next = S_MFC_FLAMEREPEAT
Action = A_FireShot
Var1 = MT_CYBRAKDEMON_FLAMESHOT
Var2 = 0

# MINE FLAYER CEILING CODE ENDS HERE

State S_MFF_SPAWN
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_SPAWN
Action = A_Look
Var1 = 0+(3240<<16)
Var2 = 1

State S_MFF_INITBOSSHEALTH
SpriteName = UNID
SpriteFrame = A
Duration = 0
Next = S_MFF_CYCLEWAIT
Action = A_RSRInitBossHealth
Var1 = 0
Var2 = 0

State S_MFF_CYCLEFIND
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_CYCLEWAIT
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 1

State S_MFF_CYCLEWAIT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_CYCLEREPEAT
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_MFF_CYCLEREPEAT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_4RBFIND
Action = A_Repeat
Var1 = 175
Var2 = S_MFF_CYCLEWAIT

State S_MFF_4RBFIND
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_4RBFACE
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 1

State S_MFF_4RBFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_4RBLOB
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFSOUNDREF

State S_MFF_4RBLOB
SpriteName = UNID
SpriteFrame = A
Duration = 7
Next = S_MFF_4RBREPEAT
Action = A_LobShot
Var1 = MT_TNTBARREL
Var2 = 288*FRACUNIT+1*TICRATE

State S_MFF_4RBREPEAT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_NSWAITFACE
Action = A_Repeat
Var1 = 4
Var2 = S_MFF_4RBFIND

State S_MFF_NSWAITFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_NSWAITREPEAT
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_MFF_NSWAITREPEAT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_NSFIND
Action = A_Repeat
Var1 = 105
Var2 = S_MFF_NSWAITFACE

State S_MFF_NSFIND
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_NSFACE
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 0

State S_MFF_NSFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_NSLOB
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFSOUNDREF

State S_MFF_NSLOB
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_SHORTWAITFACE
Action = A_LobShot
Var1 = MT_MF_SCATTERHANDLER_1
Var2 = 288*FRACUNIT+1*TICRATE

State S_MFF_SHORTWAITFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_SHORTWAITREPEAT
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 1

State S_MFF_SHORTWAITREPEAT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DYNFIND
Action = A_Repeat
Var1 = 35
Var2 = S_MFF_SHORTWAITFACE

State S_MFF_DYNFIND
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DYNFACE
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 1

State S_MFF_DYNFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DYNLOB
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFSOUNDREF

State S_MFF_DYNLOB
SpriteName = UNID
SpriteFrame = A
Duration = 7
Next = S_MFF_BARRAGEWAIT
Action = A_LobShot
Var1 = MT_PROXIMITYTNT
Var2 = 288*FRACUNIT+1*TICRATE

State S_MFF_BARRAGEWAIT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_BARRAGEWAITFACE
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 1

State S_MFF_BARRAGEWAITFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_BARRAGEWAITREPEAT
Action = A_FaceTarget
Var1 = 0
Var2 = 0

State S_MFF_BARRAGEWAITREPEAT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_BARRAGEFIND
Action = A_Repeat
Var1 = 50
Var2 = S_MFF_BARRAGEWAITFACE

State S_MFF_BARRAGEFIND
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_BARRAGEFACE
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 0

State S_MFF_BARRAGEFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_BARRAGELOB
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFSOUNDREF

State S_MFF_BARRAGELOB
SpriteName = UNID
SpriteFrame = A
Duration = 24
Next = S_MFF_3RBFIND
Action = A_LobShot
Var1 = MT_CYBRAKDEMON_NAPALM_BOMB_SMALL
Var2 = 288*FRACUNIT+1*TICRATE

State S_MFF_3RBFIND
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_3RBFACE
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 1

State S_MFF_3RBFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_3RBLOB
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFSOUNDREF

State S_MFF_3RBLOB
SpriteName = UNID
SpriteFrame = A
Duration = 7
Next = S_MFF_3RBREPEAT
Action = A_LobShot
Var1 = MT_TNTBARREL
Var2 = 288*FRACUNIT+1*TICRATE

State S_MFF_3RBREPEAT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DYNWINDUP
Action = A_Repeat
Var1 = 3
Var2 = S_MFF_3RBFIND

State S_MFF_DYNWINDUP
SpriteName = UNID
SpriteFrame = A
Duration = 35
Next = S_MFF_DYNSCATTER
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFSOUNDREF

State S_MFF_DYNSCATTER
SpriteName = UNID
SpriteFrame = A
Duration = 70
Next = S_MFF_POSTBARRAGEWAIT
Action = A_LobShot
Var1 = MT_MF_SCATTERHANDLER_2
Var2 = 288*FRACUNIT+1*TICRATE

State S_MFF_POSTBARRAGEWAIT
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_POSTBARRAGEWAITFACE
Action = A_FindTarget
Var1 = MT_PLAYER
Var2 = 0

State S_MFF_POSTBARRAGEWAITFACE
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_1FIRE
Action = A_DualAction
Var1 = S_MFLOOKREF
Var2 = S_MFSOUNDREF

State S_MFF_1FIRE
SpriteName = UNID
SpriteFrame = A
Duration = 24
Next = S_MFF_CYCLEFIND
Action = A_LobShot
Var1 = MT_TNTBARREL
Var2 = 288*FRACUNIT+1*TICRATE

State S_MFF_PAIN
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_FRET
Action = A_LinedefExecuteFromArg
Var1 = 6
Var2 = 0

State S_MFF_FRET
SpriteName = UNID
SpriteFrame = A
Duration = 35
Next = S_MFF_SPAWN
Action = A_Pain
Var1 = 0
Var2 = 0

State S_MFF_DEATHSTART
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DEATH
Action = A_MineFlayerScreenFade
Var1 = 0
Var2 = 0

State S_MFF_DEATH
SpriteName = UNID
SpriteFrame = A
Duration = 2
Next = S_MFF_DEATHREP
Action = A_BossScream
Var1 = 1
Var2 = 0

State S_MFF_DEATHREP
SpriteName = UNID
SpriteFrame = A
Duration = 2
Next = S_MFF_DEATHBIGBLAST
Action = A_Repeat
Var1 = 70
Var2 = S_MFF_DEATH

State S_MFF_DEATHBIGBLAST
SpriteName = UNID
SpriteFrame = A
Duration = 1
Next = S_MFF_DEATHBIG2
Action = A_DualAction
Var1 = S_MFF_DEATHS3K
Var2 = S_MFF_DEATHSOUND

State S_MFF_DEATHBIG2
SpriteName = UNID
SpriteFrame = A
Duration = 2
Next = S_MFF_DEATHBIG3
Action = A_BossScream
Var1 = 1
Var2 = 0

State S_MFF_DEATHBIG3
SpriteName = UNID
SpriteFrame = A
Duration = 2
Next = S_MFF_DEATHBIGBLAST
Action = A_Repeat
Var1 = 17
Var2 = S_MFF_DEATHBIG2