actor AtomicFireBoss : MegaBuster 20010
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 1
Obituary "%o was roasted by %k's Atomic Fire."
Inventory.Pickupmessage "Power up! Flame Blast!"
weapon.ammotype "ZippoAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
HEAA A 0 ACS_ExecuteAlways(998,0,504)
HEAA A 0 A_JumpIfInventory("ZippoAmmo",2,"Ready2")
HEAA A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
Recharge:
HEAA A 0 A_JumpIfInventory("ZippoAmmo",2,"Recharge2")
HEAA A 10 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
HEAA A 0 A_GiveInventory("ZippoAmmo",1)
loop
Ready2:
HEAA A 0 A_JumpIfInventory("ZippoAmmo",7,"Ready3")
HEAA A 5 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
Recharge2:
HEAA A 0 A_JumpIfInventory("ZippoAmmo",7,"Recharge3")
HEAA A 10 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
HEAA A 0 A_GiveInventory("ZippoAmmo",1)
loop
Ready3:
HEAA A 5 A_WeaponReady(WRF_NOSWITCH)
Recharge3:
HEAA A 10 A_WeaponReady(WRF_NOSWITCH)
HEAA A 0 A_GiveInventory("ZippoAmmo",1)
loop
Deselect:
ICEB A 0 A_TakeInventory("AtomicFireBoss")
ICEB A 0 A_GiveInventory("AtomicFireBoss")
HEAA A 1 A_SelectWeapon("AtomicFireBoss")
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HEAA A 1 A_Raise
Loop
Fire:
HEAA A 0 A_JumpIfNoAmmo("NoAmmo")
HEAA A 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
HEAA ABCDEFG 2
HEAA A 0 A_FireCustomMissile("HeatBlastS",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatBlastM",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatBlastF",0,0,8,0)
HEAA A 0 A_TakeInventory("ZippoAmmo",2)
HEAA HI 1
HEAA A 3
HEAA A 0 A_Refire
Goto Ready+1
/*Altfire:
HEAA A 0 A_JumpIfInventory("ZippoAmmo",1,"FlameTackle")
goto Ready+1
FlameTackle:
HEAA A 0 A_GiveInventory("OnFire",1)
HEAA A 0 A_PlaySoundEx("Weapon/atomicfire","Weapon")
HEAA A 5 A_FireCustomMissile("HeatDamage",0,0,8,0)
HEAA A 0 A_Recoil(-10)
HEAA A 5 A_FireCustomMissile("HeatDamage",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-10)
HEAA A 5 A_FireCustomMissile("HeatDamage",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-10)
HEAA A 0 A_TakeInventory("ZippoAmmo",1)
HEAA A 0 A_TakeInventory("OnFire",1)
Goto Ready+1*/
AltFire:
//AltHold:
HEAA A 0 A_JumpIfInventory("ZippoAmmo",1,"ShieldStart")
goto StopEverything
ShieldStart:
HEAA A 0 A_JumpIfInventory("PainFlagA",1,"ShieldUp")
HEAA A 0 A_JumpIfInventory("ZippoAmmo",7,"ShieldStart2")
goto StopEverything
ShieldStart2:
TNT1 A 0 ACS_ExecuteAlways(648,0,1)
HEAA A 0 SetPlayerProperty(0,1,0)
HEAA A 0 A_GiveInventory("PainFlagA",1)
HEAA A 0 A_TakeInventory("ZippoAmmo",1)
ShieldUp:
HEAA A 0 A_SpawnItemEx("HeatShield")
HEAA A 1
HEAA A 0 A_GiveInventory("HeatArmor",1)
HEAA A 0 A_JumpIfInventory("PainFlagB",1,"Launch")
HEAA A 0 A_Refire
Goto StopEverything
Launch:
HEAA A 0 A_ChangeFlag("SOLID",0)
HEAA A 0 A_GiveInventory("StunArmor",1)
HEAA A 0 ACS_ExecuteAlways(991,0,504)
HEAT G 0 A_StopSoundEx ("Weapon") 
HEAT G 0 A_TakeInventory("WeaponCharge",500)
HEAT G 0 A_ClearRefire
HEAA A 0 SetPlayerProperty(0,1,0)
HEAA A 0 SetPlayerProperty(0,1,3)
HEAA A 0 A_GiveInventory("OnFire2",1)
HEAA A 0 A_PlaySoundEx("Weapon/heattackle","Weapon")
TNT1 A 5 A_FireCustomMissile("HeatDamage",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-20)
TNT1 A 5 A_FireCustomMissile("HeatDamage2",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-20)
TNT1 A 5 A_FireCustomMissile("HeatDamage2",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-20)
TNT1 A 5 A_FireCustomMissile("HeatDamage2",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-20)
TNT1 A 5 A_FireCustomMissile("HeatDamage2",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-20)
TNT1 A 5 A_FireCustomMissile("HeatDamage2",0,0,8,0)
HEAA A 0 A_FireCustomMissile("HeatFX",0,0,8,0)
HEAA A 0 A_Recoil(-20)
HEAA A 0 A_TakeInventory("ZippoAmmo",3)
StopEverything:
HEAA A 0 A_TakeInventory("ZippoAmmo",7)
HEAA A 0 A_TakeInventory("PainFlagA",999)
HEAA A 0 A_TakeInventory("PainFlagB",999)
HEAA A 0 A_TakeInventory("HeatShieldFrame",999)
HEAA A 0 A_TakeInventory("BasicArmor",999)
HEAA A 0 A_TakeInventory("StunArmor",999)
HEAA A 0 A_TakeInventory("OnFire2",1)
HEAA A 0 A_ChangeFlag("SOLID",1)
HEAA A 0 A_ChangeFlag("SHOOTABLE",1)
TNT1 A 0 ACS_ExecuteAlways(648,0,0)
HEAA A 0 SetPlayerProperty(0,0,0)
HEAA A 0 SetPlayerProperty(0,0,3)
Goto Ready+1
NoAmmo:
HEAA A 0
//HEAA A 1 ACS_Execute(979,0)
Goto Ready+1
}
}

actor HeatShieldFrame : Inventory
{
inventory.amount 1
inventory.maxamount 5
}

actor HeatShield
{
PROJECTILE
+NOINTERACTION
+MISSILE
Radius 0
Height 0
scale 2.5
speed 0
States
{
Spawn:
HEAS A 0
HEAS A 0 A_JumpIfInTargetInventory("HeatShieldFrame",3,"Frame2")
HEAS A 0 A_GiveToTarget("HeatShieldFrame",1)
HEAS A 1
stop
Frame2:
HEAS A 0 A_JumpIfInTargetInventory("HeatShieldFrame",5,"Consume")
HEAS A 0 A_GiveToTarget("HeatShieldFrame",1)
HEAS B 1
stop
Consume:
HEAS A 0 A_TakeFromTarget("ZippoAmmo",1)
HEAS A 0 A_TakeFromTarget("HeatShieldFrame",5)
HEAS B 1
stop
}
}

actor HeatBlastS // : MaceFX1
{
PROJECTILE
Damage (10)
Height 5
Radius 6
+DONTBLAST
-NOGRAVITY
damagetype "WeakFire" //"Atomic"
Scale 2.5
speed 28
States
{
Spawn:
HEAP ABC 3
loop
Death:
HEAP A 0 A_SpawnItemEx("HeatPillar",0,0,0)
stop
}
}

actor HeatBlastM : HeatBlastS
{
speed 34
}

actor HeatBlastF : HeatBlastS
{
Gravity 0.7
speed 38
}

actor HeatPillar
{
PROJECTILE
-MISSILE
+DONTBLAST
Scale 2.5
-NOGRAVITY
damagetype "WeakFire" //"Atomic"
Gravity 0.4
Height 48
Speed 0
Radius 5
Damage (15)
reactiontime 5
States
{
Spawn:
HEAP D 0 
HEAP D 0 ACS_Execute(202,0)
HEAP ABC 3 A_JumpIf(z-floorz==0,"Flame")
loop
Flame:
HEAP D 0 A_ChangeFlag("FLOORHUGGER",1)
HEAP D 0 A_ChangeFlag("MISSILE",1)
HEAP D 0 A_CountDown
HEAP DEFDEFDEF 3
loop
Death:
HEAP D 0 
stop
}
}

actor HeatDamage
{
PROJECTILE
Radius 7
Height 7
scale 2.5
damage (15)
damagetype "WeakFire" //"Atomic"
Obituary "%o was heat tackled by %k."
speed 40
States
{
Spawn:
TNT1 A 1
stop
}
}

actor HeatDamage2 : HeatDamage
{
damage (45)
}

actor OnFire : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor OnFire2 : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor PainFlagA : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor PainFlagB : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor HeatFX
{
PROJECTILE
Radius 7
Height 7
scale 2.5
damage (10)
damagetype "WeakFire" //"Atomic"
Obituary "%o was heat tackled by %k."
speed 0
States
{
Spawn:
HEFX ABC 5
stop
}
}

actor ZippoAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor HeatArmor : BasicArmorPickup
{
Armor.Savepercent 75
Armor.Saveamount 100
States
{
Spawn:
PLAY A 1
loop
}
}