ACTOR "Plasma Handgun" : Weapon 18650
{
//$Category Weapons/LCA/DJB
//$Sprite PLSPA0
//$Title "Plasma Handgun"
	Scale 0.85
	Weapon.PreferredSkin "PlasmaHandgun-Marine"
	Weapon.SlotNumber 2
	Weapon.SelectionOrder 5000
	Weapon.KickBack 60
	Inventory.PickupSound "weapons/pickuptp"
	Inventory.Pickupmessage "Plasma Handgun"
	Weapon.AmmoGive 1
	Weapon.AmmoUse 4
	Weapon.AmmoType "PlasmaHGCell"
	Weapon.AmmoType2 "PlasmaHGCell"
	Tag "Plasma Handgun"
	Obituary "%o caught one right between the eyes by %k's Plasma Handgun." 
	+WEAPON.NOAUTOAIM
	+NOAUTOFIRE
	+WEAPON.AMMO_OPTIONAL
	+WEAPON.NOALERT
	+INVENTORY.UNDROPPABLE
	States {
   Select:
	  TNT1 A 0 A_Raise
      Wait
	Ready:
		TNT1 A 0 A_PlayWeaponSound("weapons/pickuptp")
		PHGR ABCD 1
		TNT1 A 0 A_JumpIfInventory("PlasmaHGCell",5,4)
		PHGG B 3
		TNT1 A 0 A_GiveInventory("PlasmaHGCell",2)
		TNT1 A 0 A_TakeInventory("PlasmaCharge",100)
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		PHGG A 3 A_WeaponReady
		TNT1 A 0 A_GiveInventory("PlasmaHGCell",2)
		Goto Ready+5
	Deselect:
		TNT1 A 0 A_TakeInventory("PlasmaCharge",100)
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		TNT1 A 0 A_TakeInventory("MineAction",1)
		TNT1 A 0 A_TakeInventory("RailgunAction",1)
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
		TNT1 A 0 A_JumpIfInventory("PlasmaHGCell",1,2)
		PHGG B 1 A_Lower
		Goto Deselect+6
	    TNT1 A 0
		Goto Deselect+6
	Fire:
		TNT1 A 0 A_JumpIfInventory("PlasmaHGCell",4,1)
		Goto Ready+5
		TNT1 A 0 A_PlaySound("weapons/PHGFire")
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 Radius_Quake(1,2,0,1,0)
		TNT1 A 0 Bright A_FireCustomMissile("PHGProjectile",Random(-8,8)*0.1,5,0,8,0,Random(-4,4)*0.1)
	FireReady:
		TNT1 A 0 A_GunFlash
		PHGF A 2
		TNT1 A 0 A_Light0
		PHGF B 2
		PHGF CDEF 2 A_WeaponReady
		PHGG A 1
		Goto Ready+5
	AltFire:
		PHGG A 0 A_JumpIfInventory("PlasmaHGCell",40,"AltHold")
		Goto Ready+5
	AltHold:
		PHGG A 0 A_JumpIfInventory("PlasmaCharge",1,2)
		TNT1 A 0 A_PlaySound("weapons/PHGCharge",CHAN_WEAPON)
		PHGG A 0 A_JumpIfInventory("PlasmaCharge",100,6)
		PHGG A 1 A_GiveInventory("PlasmaCharge",2)
		TNT1 A 0 A_ReFire
		TNT1 A 0 A_StopSound(CHAN_WEAPON)
		TNT1 A 0 A_TakeInventory("PlasmaCharge",100)
		TNT1 A 0 A_TakeInventory("PlasmaHGCell",4)
		Goto Fire
		TNT1 A 0 A_PlaySound("weapons/PHGIdle",CHAN_WEAPON)
		PHGC ABCD 1 Bright
		TNT1 A 0 A_ReFire
		TNT1 A 0 A_StopSound(CHAN_WEAPON)
		TNT1 A 0 A_TakeInventory("PlasmaCharge",100)
		TNT1 A 0 A_TakeInventory("PlasmaHGCell",40)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 Radius_Quake(1,2,0,1,0)
		TNT1 A 0 Bright A_FireCustomMissile("PlasmaFireBall",Random(-8,8)*0.1,1,0,8,0,Random(-4,4)*0.1)
	FireReady2:
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_Light0
		PHGF A 2
		TNT1 A 0 A_PlaySound("railgunner/chargedshot")
		PHGF B 2
		PHGF C 2
		PHGF DEF 2
		PHGG A 1
		Goto Ready+5
	GrenadeCheck:
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		Goto Ready+5
	GrenadeToss:
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
		PHGR DCBA 1
		TNT1 A 4
		HGRN ABC 1
		HGRN D 2
		HGRN EFG 1
		HGRN HI 2
		TNT1 A 15 A_PlayWeaponSound("weapons/hgrenadepin")
		TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
		TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1)
		HGNE A 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
		HGRN J 1
		HGRN KLM 2
		HGRN NO 1
		TNT1 A 6
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
		TNT1 A 0 A_TakeInventory("Hand Grenade",1)
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		TNT1 A 0
		Goto Ready+1
	MineCheck:
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
		TNT1 A 0 A_TakeInventory("MineAction",1)
		Goto Ready+5
	MineToss:
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
		PHGR DCBA 1
		TNT1 A 8
		TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
		MINE ABCDEF 1
		TNT1 A 0 A_TakeInventory("MineAmmo",1)
		MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0)
		MINE HI 1
		MINE JK 2
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,2)
		TNT1 A 0 A_TakeInventory("Land Mine",1)
		TNT1 A 0 A_TakeInventory("MineAction",1)
		TNT1 A 0
		TNT1 A 5
		Goto Ready+1
	Spawn:
		PHGI A -1
		Stop
	}
}
ACTOR "PlasmaCharge" : Inventory {
	Inventory.MaxAmount 100
}
ACTOR PlasmaHGCell : Ammo {
	Inventory.Amount 100
	Inventory.MaxAmount 100
	Ammo.BackpackAmount 100
	Ammo.BackpackMaxAmount 100
	Inventory.Icon "PLSPA0"
	+IGNORESKILL
}