actor FireStormBoss : BaseMM8BDMWep_CBM 
{
tag "$TAGC_1E"
dropitem "FireStormWepCDropped"
Weapon.AmmoUse1 0
Weapon.AmmoGive 28
Obituary "$OB_FIRESTORM"
Inventory.Pickupmessage "Power up! Fire Storm!"
weapon.ammotype "BurningJusticeAmmo"
States
{
Spawn:
C_01 E 1
loop
Ready:
FIRB A 0 ACS_ExecuteAlways(998,0,DYE_FIREMAN)
goto Ready1
Ready1:
FIRB A 0 A_JumpIfInventory("BurningJusticeAmmo",28,"Ready2")
FIRB A 7 A_WeaponReady(8)
FIRB A 0 A_GiveInventory("BurningJusticeAmmo",1)
loop
Ready2:
FIRB A 7 A_WeaponReady
FIRB A 0 A_GiveInventory("BurningJusticeAmmo",1)
loop
Deselect:
FIRB AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FIRB A 1 A_Lower
Loop
Select:
FIRB AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
FIRB A 1 A_Raise
Loop
Fire:
FIRB A 0 A_PlaySoundEx("weapon/firemanshot","Weapon")
FIRB A 0 A_GiveInventory("FiremanMain_CI",1)
FIRB A 0 A_JumpIfInventory("IsBot",1,"BotFire")
FIRB B 1 OffSet(-3,29)
FIRB B 2 OffSet(-7,23)A_GunFlash
FIRB B 2 OffSet(-14,17)
FIRB A 2 OffSet(-17,15)
FIRB A 2 OffSet(-15,17)A_GiveInventory("BurningJusticeAmmo",1)
FIRB A 2 OffSet(-12,20)
FIRB A 2 OffSet(-9,23)
FIRB A 2 OffSet(-6,26)
FIRB A 1 OffSet(-3,29)//16
Goto Ready1
Altfire:
FIRB C 2 offset(2,32)A_GiveInventory("FiremanAlt_CI",1)
FIRB C 2 offset(-12,38)
FIRB D 2 offset(2,16)
FIRB E 2 offset(2,40)
FIRB E 8 offset(20,24)
FIRB E 2 offset(22,36)
FIRB E 2 offset(16,56)
FIRB E 2 offset(8,76)
FIRB A 2 offset(8,22)
FIRB A 2 A_WeaponReady(14)
Goto Ready1

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_FireCustomMissile("FiremanStormShield",0,0,0,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,0,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,315,9,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,270,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,225,9,0)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_FireCustomMissile("FiremanStormShield",0,0,0,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,180,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,135,9,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,90,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,45,9,0)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_FireCustomMissile("FiremanStormShield",0,0,0,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,0,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,315,9,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,270,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,225,9,0)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_FireCustomMissile("FiremanStormShield",0,0,0,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,180,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,135,9,0)
TNT1 A 0 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,90,9,0)
TNT1 A 1 A_JumpIfInventory("PowerRage_ST",1,1)
TNT1 A 1 A_SpawnItemEx("FiremanStormShieldFX",64,0,34,momx,momy,momz,45,9,0)
stop

BotFire:
FIRB A 0 A_JumpIfInventory("BurningJusticeAmmo",28,"Altfire")
FIRB A 0 A_GiveInventory("BotHugFlag",1)
FIRB B 1 OffSet(-3,29)A_GiveInventory("BurningJusticeAmmo",random(1,3))
FIRB B 2 OffSet(-7,23)A_GunFlash
FIRB B 2 OffSet(-14,17)
FIRB A 2 OffSet(-17,15)
FIRB A 2 OffSet(-15,17)
FIRB A 2 OffSet(-12,20)
FIRB A 2 OffSet(-9,23)
FIRB A 2 OffSet(-6,26)
FIRB A 1 OffSet(-3,29)
FIRB A 0 A_TakeInventory("BotHugFlag",999)
Goto Ready1
}
}

actor BurningJusticeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor FiremanStormShot
{
var int user_P;
translation "202:202=248:248", "199:199=41:41"
PROJECTILE
damagetype "FireM_Storm"
Obituary "$OB_FIRESTORM"
+BRIGHT
Alpha 0.4
damage (100+user_P)
Radius 12
Height 20
speed 40
Scale 2.0
States
{
Spawn:
TNT1 A 1
FWVE M 2 A_FadeIn(0.1)
FWVE M 0 A_SetUserVar("user_P",30)
FWVE NOMNO 2 A_FadeIn(0.1)
Spawn2:
FWVE MNO 2
loop
Death:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("FiremanStormShotBit",0,0,0,0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("CBM_OilPitIgnite",0,0,8)
stop
}
}

actor FiremanStormShotB : FiremanStormShot{translation "202:202=205:205", "199:199=74:74"}
actor FiremanStormShotR : FiremanStormShot{translation "202:202=171:171", "199:199=41:41"}
actor FiremanStormShotO : FiremanStormShot{translation "202:202=104:104", "199:199=128:128"}
actor FiremanStormShotP : FiremanStormShot{translation "202:202=229:229", "199:199=232:232"}

actor FiremanStormShotBit
{
PROJECTILE
Obituary "$OB_FIRESTORM"
damagetype "FireM_StormBit"
+DONTBLAST
+DONTREFLECT
+FLOORHUGGER
+THRUACTORS
+BRIGHT
reactiontime 5
Damage (0)
Radius 12
Height 6
Speed 0
Scale 2.5
States
{
Spawn:
//FWVE BX 3 //Bass BX, bad memories
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("CBM_OilPitIgnite",0,0,8)
TNT1 A 0 A_SpawnItemEx("FiremanStormShotBitD")
FWVE PQP 3
FWVE Q 0 A_SpawnItemEx("FiremanStormShotBitD")
FWVE QPQ 3
FWVE P 0 A_SpawnItemEx("FiremanStormShotBitD")
FWVE PQP 3
FWVE Q 0 A_SpawnItemEx("FiremanStormShotBitD")
FWVE QPQ 3
FWVE P 0 A_SpawnItemEx("FiremanStormShotBitD")
FWVE PQ 3
stop
}
}

actor FiremanStormShotBitD : FiremanStormShotBit
{
-THRUACTORS
+RIPPER
Damage (30)
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
}
}


actor FireManWaveStart : BasicHelper
{
translation "202:202=248:248", "199:199=41:41"
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_SpawnItemEx("FireManWaveTime",20,0,24,5,0,0,0,1)
stop
}
}

actor FireManWaveStartB : FireManWaveStart{translation "202:202=205:205", "199:199=74:74"}
actor FireManWaveStartR : FireManWaveStart{translation "202:202=171:171", "199:199=41:41"}
actor FireManWaveStartO : FireManWaveStart{translation "202:202=104:104", "199:199=128:128"}
actor FireManWaveStartP : FireManWaveStart{translation "202:202=229:229", "199:199=232:232"}

actor FireManWaveTime
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
+THRUACTORS
+FLOORHUGGER
Damage (0)
Radius 20
Height 26
Speed 5
States
{
Spawn:
TNT1 A 0
TNT1 A 8 A_SpawnItemEx("FireManWaveD",0,0,0,0,0,0,0,1)
Loop
}
}

actor FireManWaveD
{
PROJECTILE
Obituary "$OB_FIRESTORMW"
damagetype "FireM_Wave"
+DONTBLAST
+DONTREFLECT
+RIPPER
+FLOORHUGGER
+BRIGHT
Radius 20
Height 26
Damage (30)
Speed 0
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("CBM_OilPitIgnite",0,0,8)
FWVE UVW 2
FWVE X 0 A_PlaySoundEx("weapon/FireManWave","Weapon")
FWVE XYXYXYXYXYXYXYXYXYXYXY 2
FWVE W 0 A_SpawnItemEx("CBM_OilPitIgnite",0,0,8)
FWVE WVU 2
stop
Death:
TNT1 A 1
stop
}
}

actor FiremanStormShieldFX : BasicExplosion
{
+FORCEXYBILLBOARD
+BRIGHT
renderstyle translucent
alpha 0.6
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,2,3)
Y_1E D 2
stop
Y_1E E 2
stop
Y_1E F 2
stop
}
}

actor FiremanStormShield : BasicExplosion
{
Obituary "$OB_FIRESTORM"
damagetype "FireM_Spin"
States
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(40,80,0,0,80)
stop
}
}


actor FiremanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("FiremanStormShot",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("FiremanStormShotB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("FiremanStormShotR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("FiremanStormShotO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("FiremanStormShotP",0,1,8,0)
goto Done
}
}

actor FiremanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("FireManWaveStart",0,1,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("FireManWaveStartB",0,1,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("FireManWaveStartR",0,1,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("FireManWaveStartO",0,1,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("FireManWaveStartP",0,1,0,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("BurningJusticeAmmo",4)
TNT1 A 0 A_TakeInventory("BurningJusticeAmmo",24,1)
stop
}
}