actor PlasmagunReplacer : BasicWeaponPickup Replaces PLasmaRifle
{
    States
    {

	 Spawn:
		PLAS A 0
		MARN A 0 ACS_NamedExecuteAlways("BDDisableNewGuns", 0, 0, 0, 0)//Check if advanced decorations are disabled.
		PLAS A 2
		TNT1 A 0 A_Jump(48, "Spawn2", "Spawn3")
		
	Vanilla:	
	Spawn1:
		PLAS A 0
		TNT1 A 0 A_SpawnItemEx ("PLasmagunSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 1
		TNT1 A -1
		Stop
	
	 Spawn2:
		PLAS A 0
		TNT1 A 0 A_SpawnItemEx ("RailgunSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 1
		TNT1 A -1
		Stop
		
	Spawn3:
		PLAS A 0
		TNT1 A 0 A_SpawnItemEx ("PlasmaBlasterSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 1
		TNT1 A -1
		Stop
    }
}

ACTOR PlasmaBlasterSpawner: CustomInventory
{
 scale 0.8
 radius 24
 height 24
 //$category "Weapons"
 +THRUACTORS +FORCEXYBILLBOARD
 Inventory.PickupSound "PLSDRAW"
 Inventory.PickupMessage "You got the Plasma Blaster! (Slot 6)"
 Mass 1
    States
    {

	 Spawn:
		PLSG B 0
		PLSG B 2
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 0)
		TNT1 A 0 A_SpawnItem("FakePlasmagunSprite")
		TNT1 A 0 A_SpawnItem("FakeBlasterSprite")
		Loop
	Pickup:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "Purist")
		TNT1 A 0 A_GiveInventory("PlasmaBlaster", 1)
		TNT1 A 0 A_GiveInventory("AmmoCell", 40)
		Stop
	Purist:
	    TNT1 A 0 A_GiveInventory("ClassicPlasmaRifle", 1)
		TNT1 A 0 A_GiveInventory("AmmoCell", 50)
		Stop
    }
}

ACTOR FakeBlasterSprite: RifleSpawner
{
 Scale 0.8
 +NOGRAVITY
 +FLOAT +NOCLIP +NOINTERACTION
 VisibleToPlayerClass BDoomer, Doomer2, TacticalDoomer
 States
    {

	 Spawn:
		PLSG B 0
		PLSG B 2
		Stop
    }
}

ACTOR DropedPlasmaBlaster: PlasmagunSpawner
{
  Inventory.PickupMessage "You got the Plasma Blaster! (Slot 6)"
    States
    {
     Spawn:
		TNT1 A 0
		PLSG B 10
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 0)
		PLSG B -1
		Stop
	 Pickup:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "Purist")
		TNT1 A 0 A_GiveInventory("PlasmaBlaster", 1)
		Stop
	Purist:
	    TNT1 A 0 A_GiveInventory("ClassicPlasmaRifle", 1)
		Stop
		
    }
}