actor InfernoFireballWep_NormalBar : NormalBar{args 228,220}
actor InfernoFireballWep : BaseMM8BDMWep 
{
Weapon.AmmoUse 1
Weapon.AmmoGive 28
Weapon.SlotNumber 3
Inventory.Pickupmessage "$PU_INFERNOFIREBALL"
Obituary "$OB_INFERNOFIREBALL"
Tag "$TAG_INFERNOFIREBALL"
weapon.ammotype "InfernoFireballAmmo"
inventory.pickupsound "weapon/weaponup"
inventory.icon "IFRBICON"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
SpawnLoop:
IFRB Z 1
loop
Ready:
IFRB A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_INFERNOFIREBALL)
IFRB A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
IFRB A 0 
goto DeselectSwap
Select:
IFRB A 0 
goto SelectSwap
Fire:
IFRB A 0 A_JumpIfNoAmmo("NoAmmo")
IFRB A 0 A_PlaySoundEx("Weapon/FireballShot","Weapon")
IFRB A 0 A_FireCustomMissile("InfernoFireballShot",0,1,8,8)
IFRB B 2
IFRB C 3
IFRB A 0 A_GiveInventory("WeaponCharge",1)
IFRB A 0 A_JumpIfInventory("WeaponCharge",4,"FireCooldown")
IRFB A 0 A_Refire
IFRB AA 2 A_TakeInventory("WeaponCharge",9999)
IFRB A 0
goto Ready+1
FireCooldown:
IFRB CCCBBA 2 A_TakeInventory("WeaponCharge",9999)
IFRB A 5
goto Ready+1
NoAmmo:
IFRB A 0 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor InfernoFireballShot : BasicProjectile
{
+BRIGHT
PROJECTILE
Radius 18
Height 18
+HEXENBOUNCE
-NOGRAVITY
+NOTARGETSWITCH
+DONTSPLASH
bouncefactor 1.0
wallbouncefactor 0.8
Obituary "$OB_INFERNOFIREBALL"
damagetype "InfernoFireball"
scale 2.5
damage (CallACS("vile_cbm_damage",16))
speed 20
reactiontime 34
States
{
Spawn:
IFRB D 0
IFRB D 0 ThrustThingZ(0,14,0,1)
SpawnLoopA:
IFRB D 1 A_SpawnItemEx("InfernoFireballTrail3")
IFRB D 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
IFRB E 1 A_SpawnItemEx("InfernoFireballTrail1")
IFRB E 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
IFRB F 1 A_SpawnItemEx("InfernoFireballTrail2")
IFRB F 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
IFRB F 0 A_Countdown
IFRB F 0 A_ScaleVelocity(1.03)
goto SpawnLoopA
Death:
TNT1 A 0 
stop
}
}

actor InfernoFireballTrail1 : BasicGraphicEffect
{
+BRIGHT
scale 2.5
States
{
SpawnFrame:
TNT1 A 1
IFRB GHLJNO 1 A_SetScale(scalex-0.2,scaley-0.2)
TNT1 A 0 
stop
}
}

actor InfernoFireballTrail2 : InfernoFireballTrail1
{
States
{
SpawnFrame:
TNT1 A 1
IFRB HIJKOM 1 A_SetScale(scalex-0.2,scaley-0.2)
TNT1 A 0 
stop
}
}

actor InfernoFireballTrail3 : InfernoFireballTrail1
{
States
{
SpawnFrame:
TNT1 A 1
IFRB IGKLMN 1 A_SetScale(scalex-0.2,scaley-0.2)
TNT1 A 0 
stop
}
}

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