actor AtomicFireWep : MegaBuster 10010
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 5
Obituary "%o was roasted by %k's Atomic Fire."
Inventory.Pickupmessage "Power up! Atomic Fire!"
weapon.ammotype "AtomicAmmo"
inventory.pickupsound "weapon/weaponup"
inventory.icon "ATOMI"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
WEAP E 1
loop
Ready:
HEAT G 0 ACS_ExecuteAlways(998,0,3)
HEAT G 1 ACS_ExecuteAlways(991,0,3)
HEAT G 1 A_WeaponReady
Goto Ready+2
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
HEAT G 1
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HEAT G 1
Loop
Fire:
HEAT G 0 A_JumpIfNoAmmo("NoAmmo")
HEAT G 1
goto Hold
Hold:
HEAT G 0 A_JumpIfNoAmmo("NoAmmo")
HEAT G 0 A_JumpIfInventory("WeaponCharge",1,"Hold2")
HEAT G 2 A_GiveInventory("WeaponCharge",1)
HEAT G 0 ACS_ExecuteAlways(994,0)
HEAT G 0 A_Refire
Goto Fire1
Hold2:
HEAT G 0 A_StopSoundEx ("Weapon") 
HEAT G 0 A_PlaySoundEx("weapon/heat1", "Weapon")
HEAT G 0 A_JumpIfInventory("WeaponCharge",48,"Hold3")
HEAT H 1 ACS_ExecuteAlways(991,0,60)
HEAT G 0 ACS_ExecuteAlways(991,0,3)
HEAT G 1 A_GiveInventory("WeaponCharge",1)
HEAT G 0 A_Refire
Goto Fire1
Hold3:
HEAT G 0 A_StopSoundEx ("Weapon") 
HEAT G 0 A_PlaySoundEx("weapon/heat2", "Weapon")
HEAT G 0 A_JumpIfInventory("WeaponCharge",71,"BotCheck")
HEAT G 1 ACS_ExecuteAlways(991,0,3)
HEAT G 0 ACS_ExecuteAlways(991,0,61)
HEAT I 1 A_GiveInventory("WeaponCharge",1)
HEAT G 0 A_Refire
Goto Fire2
BotCheck:
HEAT G 0 ACS_ExecuteAlways(974,0)
Goto Hold4
Hold4:
HEAT G 0 A_StopSoundEx ("Weapon")
HEAT G 1 ACS_ExecuteAlways(991,0,3)
HEAT G 0 ACS_ExecuteAlways(991,0,62)
HEAT J 1 A_PlaySoundEx("weapon/heat3", "Weapon")
HEAT G 0 A_Refire
Goto Fire3
Fire1:
HEAT G 0 A_StopSoundEx ("Weapon") 
HEAT G 0 A_TakeInventory("WeaponCharge",500)
HEAT G 0 A_ClearRefire
HEAT G 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
HEAT G 0 A_TakeInventory("AtomicAmmo",2)
HEAT G 0 A_FireCustomMissile("AtomicFire1",0,0,8,0)
HEAT KL 2
Goto Ready+1
Fire2:
HEAT G 0 A_StopSoundEx ("Weapon") 
HEAT G 0 A_TakeInventory("WeaponCharge",500)
HEAT G 0 A_ClearRefire
HEAT G 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
HEAT G 0 A_JumpIfInventory("AtomicAmmo", 5, "Fire2r")
HEAT G 0 A_TakeInventory("AtomicAmmo",5)
HEAT G 0 A_FireCustomMissile("AtomicFire1",0,0,8,0)
HEAT KL 2
Goto Ready+1
Fire2r:
HEAT G 0 A_TakeInventory("AtomicAmmo",5)
HEAT G 0 A_FireCustomMissile("AtomicFire2",0,0,8,0)
HEAT KL 2
Goto Ready+1
Fire3:
HEAT G 0 A_StopSoundEx ("Weapon") 
HEAT G 0 A_TakeInventory("WeaponCharge",500)
HEAT G 0 A_ClearRefire
HEAT G 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
HEAT G 0 A_JumpIfInventory("AtomicAmmo", 10, "Fire3r")
HEAT G 0 A_JumpIfInventory("AtomicAmmo", 5, "Fire2r")
HEAT G 0 A_TakeInventory("AtomicAmmo",2)
HEAT G 0 A_FireCustomMissile("AtomicFire1",0,0,8,0)
HEAT KL 3
HEAT G 3
Goto Ready+1
Fire3r:
HEAT G 0 A_TakeInventory("AtomicAmmo",10)
HEAT G 0 A_FireCustomMissile("AtomicFire3",0,0,8,0)
HEAT KL 5
HEAT G 4
Goto Ready+1
NoAmmo:
HEAT G 1 ACS_Execute(979,0)
HEAT G 0 A_Refire
Goto Ready+1
}
}

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

actor AtomicFire1
{
scale 2.5
PROJECTILE
Radius 4
Height 4
Damage (12)
+DONTBLAST
damagetype "WeakFire"
Speed 24
States
{
Spawn:
HEAT AB 3
loop
}
}

actor AtomicFire2 : AtomicFire1
{
Radius 10
Height 10
Damage (50)
damagetype "WeakFire"
+DONTBLAST
States
{
Spawn:
HEAT CD 3
loop
}
}

actor AtomicFire3 : AtomicFire1
{
Radius 15
Height 15
+RIPPER
+DONTBLAST
damagetype "Atomic"
Damage (100)
States
{
Spawn:
HEAT EF 3
loop
}
}

actor WeaponCharge : Inventory
{
inventory.amount 1
inventory.maxamount 5000
States
{
Spawn:
TNT1 A 1
loop
}
}