actor FireStormBoss : Weapon 
{
+WEAPON.DONTBOB
Weapon.AmmoUse1 0
Weapon.AmmoGive 42
Weapon.SlotNumber 1
Obituary "%o was melted by %k's FireStorm."
Inventory.Pickupmessage "Power up! Fire Storm!"
weapon.ammotype "FireyAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
FIRB A 0 ACS_ExecuteAlways(998,0,109)
FIRB A 0 A_JumpIfInventory("FireyAmmo",42,"Ready2")
FIRB A 10 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
FIRB A 0 A_GiveInventory("FireyAmmo",1)
Goto Ready+1
Ready2:
FIRB A 1 A_WeaponReady(WRF_NOSWITCH)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FIRB A 10 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
FIRB A 10 A_Raise
Loop
Fire:
FIRB A 0 A_PlaySoundEx("weapon/firestorm","Weapon")
FIRB B 0 A_FireCustomMissile("FireStormO",0,1,8,0)
FIRB B 0 A_SpawnItemEx("FireShield1Boss",48,0,34)
FIRB B 1 A_SpawnItemEx("FireShield2Boss",-38,-22,34)
FIRB B 0 A_SpawnItemEx("FireShield3Boss",22,38,34)
FIRB B 1 A_SpawnItemEx("FireShield1Boss",-48,0,34)
FIRB B 0 A_SpawnItemEx("FireShield2Boss",-22,38,34)
FIRB B 1 A_SpawnItemEx("FireShield3Boss",-22,-38,34)
FIRB B 0 A_SpawnItemEx("FireShield1Boss",0,48,34)
FIRB B 1 A_SpawnItemEx("FireShield2Boss",22,-38,34)
FIRB H 0 A_SpawnItemEx("FireShield3Boss",-38,22,34)
FIRB H 0 A_SpawnItemEx("FireShield1Boss",0,-48,34)
FIRB B 1 A_SpawnItemEx("FireShield2Boss",38,22,34)
FIRB B 0 A_SpawnItemEx("FireShield3Boss",38,-22,34)
FIRB H 0 A_SpawnItemEx("FireShield1Boss",48,0,34)
FIRB B 1 A_SpawnItemEx("FireShield2Boss",-38,-22,34)
FIRB H 0 A_SpawnItemEx("FireShield3Boss",22,38,34)
FIRB B 1 A_SpawnItemEx("FireShield1Boss",-48,0,34)
FIRB H 0 A_SpawnItemEx("FireShield2Boss",-22,38,34)
FIRB B 1 A_SpawnItemEx("FireShield3Boss",-22,-38,34)
FIRB H 0 A_SpawnItemEx("FireShield1Boss",0,48,34)
FIRB B 1 A_SpawnItemEx("FireShield2Boss",22,-38,34)
FIRB H 0 A_SpawnItemEx("FireShield3Boss",-38,22,34)
FIRB H 0 A_SpawnItemEx("FireShield1Boss",0,-48,34)
FIRB B 1 A_SpawnItemEx("FireShield2Boss",38,22,34)
FIRE H 0 A_SpawnItemEx("FireShield3Boss",38,-22,34)
FIRB B 5
FIRB A 0 A_GiveInventory("FireyAmmo",1)
Goto Ready+1
Altfire:
FIRB A 0 A_JumpIfInventory("FireyAmmo",42,"Burn")
Goto Ready+1
Burn:
FIRB A 0 A_TakeInventory("FIREYammo",42)
FIRB B 0 A_SpawnItemEx ("BurnWave",20,0,10)
FIRB A 10 
Goto ready+1
NoAmmo:
FIRB A 0
Goto Ready+1
}
}

actor FIREYammo : Ammo
{
inventory.amount 1
inventory.maxamount 42
}

actor FireStormO
{
PROJECTILE
+DONTBLAST
//+RIPPER
Radius 12
Height 20
scale 2.5
//damagetype "FireSpin"
damagetype "FireStorm"
damage (13)
speed 40
States
{
Spawn:
FIRT ABC 2 //A_CustomMissile("EnemyCheck")
loop
Crash:
TNT1 A 1 A_SpawnItemEx ("FireHit",4,0,0)
stop
Death:
stop
}
}
actor EnemyCheck
{
PROJECTILE
+DONTBLAST
Radius 12
Height 1
Scale 2.5
Damage(0)
speed 41
States
{
Spawn:
TNT1 A 1
stop
Crash:
TNT1 A 1 A_SpawnItemEx ("FireHit",0,0,0)
stop
Death:
stop
}
}

actor FireHit
{
PROJECTILE
+DONTBLAST
+FLOORHUGGER
+RIPPER
Scale 2.5
Height 5
Speed 0
Radius 12
damagetype "FireSpin"
Damage (0)
reactiontime 5
States
{
Spawn:
FWVE B 0
FWVE B 0 A_SpawnItemEx("FireHitDamager")
FWVE BXB 3
FWVE B 0 A_SpawnItemEx("FireHitDamager")
FWVE XBX 3
FWVE B 0 A_SpawnItemEx("FireHitDamager")
FWVE BXB 3
FWVE B 0 A_SpawnItemEx("FireHitDamager")
FWVE XBX 3
FWVE B 0 A_SpawnItemEx("FireHitDamager")
FWVE BX 3 //Bass BX, bad memories
stop
}
}

actor FireHitDamager : FireHit
{
Damage (3)
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
}
}

actor FirePillar
{
PROJECTILE
-MISSILE
+DONTBLAST
-RIPPER
+FLOORHUGGER
Scale 2.5
-NOGRAVITY
Height 20
Speed 0
Radius 20
damagetype "FireSpin"
Damage (20)
reactiontime 5
States
{
Spawn:
TRCH A 1 
TRCH A 0 ACS_Execute(202,0)
loop
Flame:
TRCH A 0 A_ChangeFlag("MISSILE",1)
TRCH A 1 A_CountDown
TRCH ABABABABABABAB 1
loop
}
}

actor BurnWave
{
PROJECTILE
+MISSILE
+DONTBLAST
+RIPPER
+FLOORHUGGER
Scale 2.5
Height 25
Speed 0
Radius 20
damagetype "FireSpin"
Damage (3)
States
{
Spawn:
FWVE XBXB 1
FWVE CDCD 1
FWVE F 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
FWVE F 0 A_SpawnItemEx("BurnWave",40,0,0)
FWVE EFEFEFEF 5   
stop
Death:
TNT1 A 0
stop
}
}

actor FireShield1Boss : FireShield1
{
States
{
Spawn:
FWVE G 0 
FWVE G 2 A_Explode(3,128,0)
stop
}
}

actor FireShield2Boss : FireShield2
{
States
{
Spawn:
FWVE H 0 
FWVE H 2
stop
}
}

actor FireShield3Boss : FireShield3
{
States
{
Spawn:
FWVE I 0 
FWVE I 2
stop
}
}