ACTOR HQShotGun : HQWeapon
{
   +Ammo_CheckBoth
   Inventory.PickupMessage "\c[White][ \c[Orange]Hornback 870c \"Flatliner\" Shotgun\c- \c[White]]"
   Tag "Hornback 870c \"Flatliner\""
   Weapon.SelectionOrder 1900
   Weapon.AmmoUse1 1
   Weapon.AmmoUse2 1
   Weapon.AmmoGive2 4
   Weapon.Kickback 4
   weapon.ammotype1 "870Loaded"
   weapon.ammotype2 "ShellAmmo"
   Weapon.UpSound "SHTSEL"
   Inventory.PickupSound "SHTPKP"
   Weapon.SlotNumber 3
   Scale 0.3
   +NOALERT
   +NOAUTOAIM
   obituary "%o left a 12-gauge hole on %k's heart."
   States
   {
  Spawn:
    PMPT A -1
    Stop
   Ready: 
     PMPO A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2|WRF_ALLOWUSER3)
     PMPO A 0 A_JumpIfInventory("PumpShotty",1,"Pump")
      Loop
   Deselect:
      NULL A 0 A_JumpIf(CountInv("HQGrabbedBarrel") == 1,"ZeroFucksGiven")
      PMPZ A 0 A_JumpIfInventory("ReloadingShotty",1,"QuickFire")
      PMPO A 1 A_Lower(20)
      Loop
   Select:
      TNT1 A 1
	  TNT1 A 0 A_TakeInventory("ReloadingShotty",99)
      TNT1 A 0 A_JumpIfInventory("HQShotgunToken",1,"SelectNormal") 
      TNT1 A 0 A_Giveinventory("HarleyTalk",1)
	  TNT1 A 0 A_Giveinventory("HQShotgunToken",1)
      TNT1 A 0 A_Playsound("HQVSHT",CHAN_VOICE)
      Goto SelectNormal
  SelectNormal:
      PMPO A 1 A_Raise(20)
      LOOP
   Fire:
    PMPO A 0 A_JumpIf(CountInv("870Loaded") == 0,"Reload")
    PMPZ A 0 A_JumpIfInventory("ReloadingShotty",1,"QuickFire")
	PMPO A 0 A_GiveInventory("PumpShotty",1)
	PMPO A 0 A_AlertMonsters
	PMPO AAAAAA 0 A_FireCustomMissile("MuzzleSmoke",frandom(-9.0,9.5),0,7,3,FPF_NOAUTOAIM,frandom(-9.0,9.5))
    PMPO A 0
 	{
	If (CountInv("ShotgunAlt") && CountInv("ShellAmmo2") > 0)
	{
	A_PlayWeaponSound("PUMPALT");
	A_FireCustomMissile("FlammableHeater", frandom(-4.5,4.5), 0, Random(4, 6), Random(8, 13),FPF_NOAUTOAIM,frandom(-4.5,4.5));
	A_FireCustomMissile("FlammableHeater", frandom(-4.5,4.5), 0, Random(4, 6), Random(8, 13),FPF_NOAUTOAIM,frandom(-4.5,4.5));
	A_FireCustomMissile("FlammableHeater", frandom(-4.5,4.5), 0, Random(4, 6), Random(8, 13),FPF_NOAUTOAIM,frandom(-4.5,4.5));
	A_FireCustomMissile("FlammableHeater", frandom(-4.5,4.5), 0, Random(4, 6), Random(8, 13),FPF_NOAUTOAIM,frandom(-4.5,4.5));
	A_FireCustomMissile("FlareShotParticle",frandom(-6.5,6.5), 0, 5, 8, FPF_NOAUTOAIM,frandom(-6.5,6.5));
	A_FireCustomMissile("FlareShotParticle",frandom(-6.5,6.5), 0, 5, 8, FPF_NOAUTOAIM,frandom(-6.5,6.5));
	A_FireCustomMissile("FlareShotParticle",frandom(-6.5,6.5), 0, 5, 8, FPF_NOAUTOAIM,frandom(-6.5,6.5));
	A_FireCustomMissile("FlareShotParticle",frandom(-6.5,6.5), 0, 5, 8, FPF_NOAUTOAIM,frandom(-6.5,6.5));
	A_FireCustomMissile("FlareShotParticle",frandom(-6.5,6.5), 0, 5, 8, FPF_NOAUTOAIM,frandom(-6.5,6.5));
	A_FireCustomMissile("FlareShotParticle",frandom(-6.5,6.5), 0, 5, 8, FPF_NOAUTOAIM,frandom(-6.5,6.5));
	A_FireBullets(20.5, 2.5,10,9,"DisasterFlammablePuff",1);
	A_TakeInventory("ShellAmmo2",1);
	}
	Else
	{
	A_PlayWeaponSound("PUMPFIR");
	A_FireCustomMissile("MuzzleSparks",frandom(-8.0,8.5),0,7,8,FPF_NOAUTOAIM,frandom(-8.0,8.5));
	A_FireCustomMissile("MuzzleSparks",frandom(-8.0,8.5),0,7,8,FPF_NOAUTOAIM,frandom(-8.0,8.5));
	A_FireCustomMissile("MuzzleSparks",frandom(-8.0,8.5),0,7,8,FPF_NOAUTOAIM,frandom(-8.0,8.5));
	A_FireCustomMissile("MuzzleSparks",frandom(-8.0,8.5),0,7,8,FPF_NOAUTOAIM,frandom(-8.0,8.5));
	A_FireCustomMissile("MuzzleSparks",frandom(-8.0,8.5),0,7,8,FPF_NOAUTOAIM,frandom(-8.0,8.5));
	A_FireCustomMissile("MuzzleSparks",frandom(-8.0,8.5),0,7,8,FPF_NOAUTOAIM,frandom(-8.0,8.5));
	A_FireBullets(4.5,4.5,10,9,"DisasterShotgunPuff",1);
	}
	} 
	PMPF AB 1 BRIGHT
	NULL A 0 A_ZoomFactor(0.975)
    NULL A 0 A_SetPitch(Pitch -1.8)
	MGNF B 0 A_Quake(8, 6, 0, 48576, "None")
	MGNF B 0 A_Recoil(2)
    PMPF C 3
	PMPF DE 2
	NULL A 0 A_ZoomFactor(1.000)
	PMPF F 1
	PMPF G 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_NOPRIMARY|WRF_NOSECONDARY|WRF_ALLOWZOOM|WRF_NOBOB|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
	TNT1 A 0 A_Jump(100,"Pump2")
	PMPO A 3 A_WeaponReady(WRF_ALLOWRELOAD|WRF_NOPRIMARY|WRF_NOSECONDARY|WRF_ALLOWZOOM|WRF_NOBOB|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
    Goto Pump
	Pump:
	PMPP AD 1
	PMPO A 0 A_PlaySoundEX("PUMPPMP",CHAN_7)
	LUGE B 0 A_FireCustomMissile("12GCaseSpawn",345+random(-8,8),0,8,-8,0)
	PMPP B 3 A_TakeInventory("PumpShotty",99)
	PMPP CDE 2
	PMPO A 2
	Goto Ready
	Pump2:
	PMPA A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_NOPRIMARY|WRF_NOSECONDARY|WRF_ALLOWZOOM|WRF_NOBOB|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
	PMPA OP 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_NOPRIMARY|WRF_NOSECONDARY|WRF_ALLOWZOOM|WRF_NOBOB|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
	PMPA CE 1 //BCDE 1
	PMPA A 0 A_PlaySoundEX("PUMPPMP",CHAN_7)
	LUGE B 0 A_FireCustomMissile("12GCaseSpawn",345+random(-8,8),0,-18,-8,0)
	PMPA F 2 A_TakeInventory("PumpShotty",99)
	PMPA G 2
	PMPA HIJKLN 1
	PMPA PO 1 //POA 1
	Goto Ready
  AltFire:
    PMPZ A 0 A_JumpIfInventory("ReloadingShotty",1,"QuickFire")
    PMPZ A 0 A_JumpIf(CountInv("ShellAmmo") < 5,"Ready")
    PMPZ AC 1
    TNT1 A 0 A_Overlay (-3, "MineThrow")
    PMPZ D 8
    PMPZ CBA 2
    Goto Ready
 MineThrow:
    TNT1 A 1 A_PlaySound("PUMPTHW",CHAN_7)
	TNT1 A 1
	THR2 AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	THR2 C 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	THR2 C 0
	{
	If (CountInv("ShotgunAlt") && CountInv("ShellAmmo2") > 4)
	{
	A_FireCustomMissile("12GBlackMineCasingSoup",frandom(-7.5,-7.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_TakeInventory("ShellAmmo2",1);
	A_FireCustomMissile("12GRedMineCasingSoup",frandom(-5.5,-5.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_TakeInventory("ShellAmmo2",1);
	A_FireCustomMissile("12GBlackMineCasingSoup",frandom(-1.5,-1.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_TakeInventory("ShellAmmo2",1);
	A_FireCustomMissile("12GRedMineCasingSoup",frandom(5.5,5.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_TakeInventory("ShellAmmo2",1);
	A_FireCustomMissile("12GRedMineCasingSoup",frandom(7.5,7.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_TakeInventory("ShellAmmo2",1);
	}
	Else
	{
	A_FireCustomMissile("12GBlackMineCasing",frandom(-7.5,-7.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_FireCustomMissile("12GRedMineCasing",frandom(-5.5,-5.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_FireCustomMissile("12GBlackMineCasing",frandom(-1.5,-1.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_FireCustomMissile("12GRedMineCasing",frandom(5.5,5.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	A_FireCustomMissile("12GRedMineCasing",frandom(7.5,7.0),1,-8,10,FPF_NOAUTOAIM,frandom(-3.5,3.5));
	}
	} 
    THR2 DE 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	TNT1 A 10
	Stop
    Reload:
  PMPO A 0 A_JumpIfInventory("870Loaded", 8, 2)
  PMPO A 0 A_JumpIfInventory("ShellAmmo", 1, "ReloadWork")
  PMPO A 1 A_WeaponReady
  Goto Spin
	ReloadWork:
  PMPR A 0 A_GiveInventory("ReloadingShotty",1)
  PMPR ABCD 2
  ReloadLoop:
  PMPR E 1
  PMPR A 0 A_PlaySoundEX("PUMPREL",CHAN_7)
  PMPR FG 1
  PMPR H 0 A_TakeInventory("ShellAmmo", 1)
  PMPR H 0 A_GiveInventory("870Loaded", 1)
  PMPR HI 1 A_WeaponReady(WRF_NoSecondary|WRF_NoBob|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
  PMPR D 3 A_WeaponReady(WRF_NoSecondary|WRF_NoBob|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
  PMPR H 0 A_JumpIfInventory("870Loaded", 8, "ReloadFinish")
  PMPR H 0 A_JumpIfInventory("ShellAmmo", 1, "ReloadLoop")
  Goto ReloadFinish
  ReloadFinish:
  PMPR CBA 2
  PMPO A 1 A_TakeInventory("ReloadingShotty",99)
  Goto Ready
  QuickFire:
  PMPR C 1
  PMPR A 1 A_TakeInventory("ReloadingShotty",99)
  Goto Ready
  Flash:
    PMPF A 3 Bright A_Light1
    PMPF A 3 Bright A_Light0
    Goto LightDone
  QuickZoom:
  PMPR C 1
  PMPR A 1 A_TakeInventory("ReloadingShotty",99)
  Goto Zoom
  Zoom:
   PMPZ A 0 A_JumpIfInventory("ReloadingShotty",1,"QuickFire")
   PMPZ AC 1
   TNT1 A 0 A_Overlay (-3, "QuickMelee")
   PMPZ D 8
   PMPZ CBA 2
   Goto Ready
  User1:
   PMPZ A 0 A_JumpIfInventory("ReloadingShotty",1,"QuickFire")
   MELE A 0 A_JumpIfInventory("ThrowableAmmo",1,1)
   Goto GrenadeDry
   PMPZ AC 1
   TNT1 A 0 A_Overlay (-3, "ThrowNao")
   PMPZ D 8
   PMPZ CBA 2
   Goto Ready
   User2:
   PMPZ A 0 A_JumpIfInventory("ReloadingShotty",1,"QuickFire")
   SOCH A 0 A_JumpIfInventory("StimAmmo",1,1)
   Goto StimDry
   SOCH A 0 A_JumpIfInventory("SpeedItem",1,2)
   SOCH A 0 A_JumpIfHealthLower(100, 1)
   Goto HealthFull
   PMPZ AC 1
   TNT1 A 0 A_Overlay (-3, "InjectorPlunge")
   PMPZ D 30
   PMPZ CBA 2
   Goto Ready
   GrenadeDry:
   PMPO A 1 ACS_NamedExecute("NoGrenades", 0)
   Goto Ready
   HealthFull:
   PMPO A 1 ACS_NamedExecute("FullHealth", 0)
   Goto Ready
   StimDry:
   PMPO A 1 ACS_NamedExecute("NoStims", 0)
   Goto Ready
   Spin:
   PMPS A 1
   MASP C 0 A_PlaySound("PUMPSWS",CHAN_7)
   PMPS BCDEFG 1
   PMPS HIJK 1
   PMPS LM 1
   PMPO A 7 A_WeaponReady(WRF_NoSecondary|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2)
   Goto Ready
  User3:
  SOCO A 0 A_JumpIfInventory("ShotgunAlt", 1, "AmmoToggle2")
  SOCO A 0 A_JumpIfInventory("ShellAmmo2", 1, "AmmoToggle1")
  Goto AmmoToggle3
  AmmoToggle1:
  PMPR A 1 A_GiveInventory("ShotgunAlt", 1)
  Goto AmmoSwapAnim
  AmmoToggle2:
  PMPR A 1 A_TakeInventory("ShotgunAlt", 99)
  Goto AmmoSwapAnim
  AmmoToggle3:
  PMPO A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2|WRF_ALLOWUSER3)
  Goto Ready
  AmmoSwapAnim:
  TNT1 A 0 A_GiveInventory("SheReloads",1)
  PMPR BCD 1
  PMPR E 1
  PMPR A 0 A_PlaySoundEX("PUMPREL",CHAN_7)
  PMPR FG 1
  PMPR HI 1
  PMPR D 2
  PMPR A 0 A_PlaySoundEX("PUMPREL",CHAN_7)
  PMPR FG 1
  PMPR HI 1
  PMPR D 2
  PMPR CBA 1
  PMPP AD 1
  PMPO A 0 A_PlaySoundEX("PUMPPMP",CHAN_7)
  PMPP B 3
  PMPP CDE 2
  PMPO A 2
  TNT1 A 0 A_TakeInventory("SheReloads",99)
  Goto Ready
  }
}

ACTOR 870Loaded : Ammo
{
   +IGNORESKILL
   Inventory.Amount 0
   Inventory.MaxAmount 8
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 8
}

ACTOR MuzzleSmoke
{
  Radius 11
  Height 8
  Speed 75
  Damage (0)
  Projectile
  +RANDOMIZE
  -SOLID
  +NOCLIP
  +THRUACTORS
  Alpha 0.7
  RenderStyle Add
  Scale 0.2
  States
  {  
  Spawn:
    BRBL AAA 1 bright A_SpawnItemEx("ShotgunSmoke",0,0.2*random(-10,10),0.2*random(-10,10),0,0,0,0,0,0)
	BRBL A 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)
    stop
  }
}

ACTOR MuzzleSparks
{
  Radius 11
  Height 8
  Speed 45
  Projectile
  +RANDOMIZE
  +DEHEXPLOSION
  -NOGRAVITY
  +ROLLSPRITE
  RenderStyle Add
  Alpha  0.6
  Scale 0.9
  Gravity 0.4
  States
  {
  Spawn:
  TNT1 A 2
  PINO A 2 BRIGHT A_SetRoll(Roll+frandom(8,25),SPF_INTERPOLATE)
  PINO AAAA 1 BRIGHT { A_FadeOut(0.05,1); A_SetRoll(Roll+frandom(8,25),SPF_INTERPOLATE); }
  Stop
  Death:
  TNT1 A 0
  Stop
  }
}

ACTOR RedShotMine : SwitchingDecoration
{
  Health 1
  Radius 16
  Height 16
  Mass 12
  Species "Shell"
  MaxTargetRange 48
  DamageFactor 	"Melee", 0
  DamageFactor 	"Kick", 0
  DamageFactor 	"Explosion", 0
  Scale 0.14
  +SHOOTABLE
  +NOBLOOD
  +FORCEPAIN
  +FRIENDLY
  +THRUSPECIES
  +LOOKALLAROUND +FIXMAPTHINGPOS
  Activation THINGSPEC_Activate | THINGSPEC_Switch | THINGSPEC_Default | THINGSPEC_ThingTargets
  +USESPECIAL 
  States
  {
  Spawn:
    CAS2 I 0 NoDelay A_Jump(124,"Spawn2")
	"####" I 30 A_LookEx(LOF_NOSOUNDCHECK, 0, 50, 0, 360)
	Loop
  Spawn2:
	"####" J 30 A_LookEx(LOF_NOSOUNDCHECK, 0, 50, 0, 360)
	Loop
  See:
	"####" "#" 1 A_Chase("Melee", 0, CHF_DONTMOVE)
	Loop
  Melee:
  Death:
	TNT1 A 0
	TNT1 A 0
	{
	A_ChangeFlag("NOGRAVITY",1); A_ChangeFlag("USESPECIAL",0);
    A_ChangeFlag("SHOOTABLE",0); A_ChangeFlag("SOLID",0);
	A_SpawnItemEx("MineShotEffect",0,0,1,0,0,0,0,SXF_NOCHECKPOSITION,0); //A_CustomMissile("MineShotEffect",0,0,0,0);
	}
	Stop
  Death.Quietly:
	TNT1 A 0
	Stop
	Active: 	
	Inactive:
    "####" "#" 0
    "####" "#" 0 A_JumpIf(CountInv("Backpack",AAPTR_TARGET),"BackpackShellPickup")
	ShellPickup:
	"####" "#" 0
    "####" "#" 0 A_JumpIf(CountInv("ShellAmmo",AAPTR_TARGET) == 30,"PickupFailure")
    Goto ShellPickupNow
	BackpackShellPickup:
    "####" "#" 0
    "####" "#" 0 A_JumpIf(CountInv("ShellAmmo",AAPTR_TARGET) == 60,"PickupFailure")
    Goto ShellPickupNow
	ShellPickupNow:
	"####" I 0
	"####" I 3 { ThrustThingZ(0,10,0,1); A_ChangeFlag(IGNORESKILL,TRUE); }
	"####" I 1 { A_GiveToTarget("ShellAmmo",1); A_PlaySound("PUMPSPK",CHAN_7,0.9); }
	TNT1 A 1 A_ChangeFlag("NOINTERACTION", true)
	TNT1 A 2 
	TNT1 A 0 A_Die("Quietly")
    Stop
	PickupFailure:
	"####" I 3 ThrustThingZ(0,10,0,1)
	"####" J 2
	"####" "#" 0 A_Jump(256,"Spawn")
	Stop
  }
}

ACTOR BlackShotMine : RedShotMine
{
  States
  {
  Spawn:
    CAS3 I 0 NoDelay A_Jump(124,"Spawn2")
	CAS3 I 30 A_LookEx(LOF_NOSOUNDCHECK, 0, 50, 0, 360)
	Loop
  Spawn2:
	CAS3 J 30 A_LookEx(LOF_NOSOUNDCHECK, 0, 50, 0, 360)
	Loop
  }
}

ACTOR MineShotEffect
{
  RenderStyle Add
  +NOGRAVITY
  +FORCEPAIN
  +NOBLOCKMAP
  +NOTIMEFREEZE
  +ROLLSPRITE
  +ROLLCENTER
  +NOCLIP
  +NOEXTREMEDEATH
  Scale 0.9
  Alpha 0.67
  DamageType "Kick"
  Decal "Scorch"
  States
  {
  Spawn:
    TNT1 A 0
  Death:
    FLCR A 0 A_ChangeFlag("NOCLIP",0)
	FX08 B 0 A_PlaySound("PUMPXPL")
	PTNT I 0 A_RadiusThrust(5, 64, RTF_AFFECTSOURCE|RTF_THRUSTZ)
    FLCR A 0 A_ChangeFlag("NOBLOCKMAP",0)
	FLCR A 0 A_Explode(80,15)
    TNT1 A 0 A_SetScale(0.5)
	FLCR A 0 A_AlertMonsters
    TNT1 A 0 A_CustomMissile("BKSmoke",22,0,(random(0,360)),CMF_AIMDIRECTION)
	TNT1 A 0 A_SpawnItemEx("12gFlash", 0, 0, 0, 0, 0, 0, 0, SXF_CLIENTSIDE)
	TNT1 A 0 A_ChangeFlag("NOTIMEFREEZE",0)
    TNT1 AAA 0 A_SpawnItemEx ("12gExplode2",0,0,0,2,0,random(1,2),random(0,359),SXF_CLIENTSIDE)
    TNT1 AAAA 0 A_SpawnItemEx ("12gExplode",0,0,0,2,0,random(1,3),random(0,359),SXF_CLIENTSIDE)
    TNT1 AAA 0 A_SpawnItemEx ("12gExplode3",0,0,0,2,0,random(2,4),random(0,359),SXF_CLIENTSIDE)
    TNT1 EEEEEEEEEEE 1 A_Quake(15,18,0,3200,"none")
    Stop
   }
  }

ACTOR ShotDebris : FastProjectile
{
	+NOGRAVITY
	+NOINTERACTION
	+THRUACTORS
	Speed 70
	MissileHeight 8
	MissileType "ShotSparks"
	States
	{
	Spawn:
		TNT1 AAAA 1 Bright
		Stop
	Death:
	Crash:
	FLFR A 0
    Stop
	}
}

  ACTOR ShotSparks : DisasterShotSmoke
{
    Alpha 0.4
	Scale  0.05
	States
	{
    Spawn:
    FLFR EFGHIJKLMNO 1 bright { A_FadeOut(0.01,1); A_SetRoll(Roll+frandom(8,25),SPF_INTERPOLATE);}
    Stop
    }
}

ACTOR FireflyShotSmoke : DisasterShotSmoke
{
    Alpha 0.9
	Scale  0.2
	States
	{
    Spawn:
	FLFR E 0
    FLFR E 1 bright A_ChangeFlag("SPRITEFLIP", random(0,1))
	FLFR FGHIJKLMNO 1 bright { A_FadeOut(0.02,1); A_SetScale(ScaleX + 0.01); A_SetRoll(Roll+frandom(8,15),SPF_INTERPOLATE); }
    Stop
    }
}

ACTOR FlammableHeater : DisasterShotSmoke
{
    Speed 20
    Alpha 0.9
	Scale  0.8
	States
	{
    Spawn:
	TNT1 A 2
    FLFR A 1 bright A_ChangeFlag("SPRITEFLIP", random(0,1))
	FLFR BCDEFGHIJKLMNO 1 bright { A_FadeOut(0.02,1); A_SetScale(ScaleX + 0.01); A_SetRoll(Roll+frandom(8,15),SPF_INTERPOLATE); }
    Stop
    }
}

ACTOR DisasterFlammablePuff: DisasterPuff
{
    DamageType "Fire"
	States
	{
	Spawn:
		TNT1 A 0
	Death:
	XDeath:
		TNT1 A 0 A_CheckFlag("NOBLOOD","ObjectTarget",AAPTR_TRACER)
		TNT1 A 0 A_Jump(256,"EnemyTarget")
		Goto EnemyTarget
	Crash:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"ObjectTarget")
		Goto ObjectTarget
	EnemyTarget:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("DisasterShotSmoke")
		TNT1 A 0 A_CheckFlag("NOBLOOD","ObjectTarget",AAPTR_TRACER)
		TNT1 A 0 A_RearrangePointers(AAPTR_TARGET,AAPTR_TARGET,AAPTR_NULL)
		TNT1 A 0 A_ChangeFlag("THRUACTORS",false)
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",false)
	    FLFR A 0 A_SpawnItemEX("FlamethrowerSticky")
        FLFR AAAAAAA 0 { A_FadeOut(0.05,1); A_SpawnItemEx("FireflyShotSmoke", Random(-20, 20), Random(-20, 20), Random(10, -10), 0, 1, 2, 0, 128);}
        FLFR MNO 1 bright { A_SpawnItemEx("FireflyShotSmoke", Random(-20, 20), Random(-20, 20), Random(10, -10), 0, 0, 0, 0, 128);}
		Stop
	ObjectTarget:
		TNT1 A 0 A_SpawnItem("HQShotSparks")
		TNT1 A 0 A_RearrangePointers(AAPTR_TARGET,AAPTR_TARGET,AAPTR_NULL)
		TNT1 A 0 A_ChangeFlag("THRUACTORS",false)
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",false)
		TNT1 A 0 A_PlaySound("Casing/Ricochet",CHAN_AUTO,0.75)
		Goto Puff
	Puff:
		PING A 0
		PING A 0 A_Jump(156,2)
		PING A 0 A_PlaySound("Casing/Ricochet",CHAN_BODY,0.5)
		PING A 0 A_Jump(92, "Altdeath","AltDeath2")
        FLFR AAAAAAA 0 { A_FadeOut(0.05,1); A_SpawnItemEx("FireflyShotSmoke", Random(-20, 20), Random(-20, 20), Random(10, -10), 0, 1, 2, 0, 128);}
        FLFR MNO 1 bright { A_SpawnItemEx("FireflyShotSmoke", Random(-20, 20), Random(-20, 20), Random(10, -10), 0, 0, 0, 0, 128);}
	TNT1 AAAAAAAAAAAAAAAAAAAAAAA 1 bright { A_SpawnItemEx("SmolDarkSmoke2",random(-8,8),random(-3,3),random(0,46),0,1,0.5,0,0,0); A_SpawnItemEx("FireflyShotSmoke", Random(-5, 5), Random(-5, 5), Random(10, -10), 0, 1, 2, 0, 128); A_Explode(5, 50, 0, True, 10, 0);}
	TNT1 AAAAAAAAAAAAAAAAAAAAAAA 1 bright { A_SpawnItemEx("SmolDarkSmoke2",random(-8,8),random(-3,3),random(0,46),0,1,0.5,0,0,0); A_SpawnItemEx("FireflyShotSmoke", Random(-5, 5), Random(-5, 5), Random(10, -10), 0, 1, 2, 0, 128); A_Explode(5, 50, 0, True, 10, 0);}
		stop
	}
}

Actor PumpShotty : QuinnBoolean { Inventory.MaxAmount 1 }
Actor ReloadingShotty : QuinnBoolean { Inventory.MaxAmount 1 }
Actor ShotgunAlt : QuinnBoolean { Inventory.MaxAmount 1 }