actor SpreaderFlameWep_NormalBar : NormalBar{args 49, 227}
actor SpreaderFlameWep : BaseMM8BDMWep
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 4
Inventory.Pickupmessage "$PU_SPREADERFLAME"
Obituary "$OB_SPREADERFLAME"
Tag "$TAG_SPREADERFLAME"
weapon.ammotype "SpreaderFlameAmmo"
inventory.icon "SPRFICON"
States
{
SpawnLoop:
SPRF Z -1
loop
Ready:
SPRF A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_SPREADERFLAME)
SPRF A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
SPRF A 0
goto DeselectSwap
Select:
SPRF A 0
goto SelectSwap
Fire:
SPRF A 0 A_JumpIfNoAmmo("NoAmmo")
SPRF A 0 A_PlaySoundEx("weapon/mbuster","Weapon")
SPRF A 0 A_FireCustomMissile("SpreaderFlameShot",0,1,8,0)
SPRF BCAA 5
SPRF A 0 A_Refire
Goto Ready+1
NoAmmo:
SPRF A 1 ACS_NamedExecute("core_noammo",0)
Goto Ready+1
}
}

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

actor SpreaderFlameShot : BasicProjectile
{
Translation "198:198=227:227", "192:192=49:49"
PROJECTILE
Obituary "$OB_SPREADERFLAME"
damagetype "SpreaderFlame"
+BRIGHT
+HEXENBOUNCE
-BOUNCEONFLOORS
-BOUNCEONCEILINGS
-NOGRAVITY
Damage (CallACS("vile_cbm_damage",35))
Radius 10
Height 10
Speed 22
Scale 2.5
States
{
Spawn:
TNT1 A 0
SPRF J 1 ThrustThingZ(0,10,0,1)
SPRF J 2
Goto Spawn+2
Crash:
XDeath:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
Stop
Death:
TNT1 A 0 A_JumpIf(CeilingZ - FloorZ <=48 , "FireCheckOnly")
TNT1 A 0 A_JumpIf(z-ceilingz==0-10,"FireCheckOnly")
SPRF H 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
SPRF H 0 A_CheckFloor("Floor")
SPRF H 0 A_JumpIf(CeilingZ-Z < 12, "Floor")
Goto Floor
Floor:
TNT1 A 0 A_SpawnItemEx("SpreaderFlameWave2",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("SpreaderFlameWave",20,15,0,15,0,0,-10,1)
TNT1 A 0 A_SpawnItemEx("SpreaderFlameWave",20,-15,0,15,0,0,10,1)
Stop
FireCheckOnly:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,-16)
stop
}
}


actor SpreaderFlameWave : BasicProjectile
{
PROJECTILE
Obituary "$OB_SPREADERFLAME"
damagetype "SpreaderFlame"
+DONTBLAST
//+RIPPER
+FLOORHUGGER
+DONTREFLECT
+THRUGHOST
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
+BRIGHT
Bouncefactor 1.0
WallBouncefactor 1.0
BounceCount 4
Damage (CallACS("vile_cbm_damage",18))
Radius 10
Height 48
Speed 20
Scale 2.5
States
{
Spawn:
SPRF A 0
SPRF H 0 A_PlaySoundEx("misc/sunstarshot","Weapon")
SPRF D 1
SPRF E 1 
SPRF D 1
SPRF EDED 1
TRIB A 0 A_SetPitch(pitch+1)
TRIB A 0 A_JumpIf(pitch>2,"Wave")
TNT1 A 0 A_SpawnItemEx("SpreaderFlameWave",20,15,0,15,0,0,-10,SXF_TRANSFERTRANSLATION|SXF_TRANSFERPITCH)
TNT1 A 0 A_SpawnItemEx("SpreaderFlameWave",20,-15,0,15,0,0,10,SXF_TRANSFERTRANSLATION|SXF_TRANSFERPITCH)
SPRF B 0 A_SpawnItemEx("SpreaderFlameWave2",0,0,0,0,0,0,0,1)
stop
Wave:
SPRF B 0 A_SpawnItemEx("SpreaderFlameWave2",0,0,0,0,0,0,0,1)
stop
}
}

actor SpreaderFlameWave2 : BasicProjectile
{
PROJECTILE
Obituary "$OB_SPREADERFLAME"
damagetype "SpreaderFlame"
+DONTBLAST
+FLOORHUGGER
+BRIGHT
Mass 4
Damage (CallACS("vile_cbm_damage",18))
Radius 10
Height 48
Speed 0
Scale 2.5
States
{
Spawn:
SPRF D 0
SPRF D 0 A_SpawnItemEx("OilPitIgnite",0,0,0)
SPRF H 0 A_PlaySoundEx("misc/sunstarshot","Weapon")
SPRF DEFGHI 1
Spawn2:
SPRF HIHIHIHIHI 1
SPRF H 0 A_GiveInventory("WeaponCharge",1)
SPRF H 0 A_JumpIfInventory("WeaponCharge",Mass,"SpawnEnd")
goto Spawn+3
SpawnEnd:
SPRF HIHGFEDD 1
stop
Death:
TNT1 A 0
Stop
}
}

