ACTOR DemonTechPistol : "Handgun "
{
  Scale 0.8
  +NOAUTOFIRE
  +WEAPON.NOALERT
  +WEAPON.AMMO_OPTIONAL
  +INVENTORY.UNDROPPABLE
  Weapon.PreferredSkin "Handgun-Marine"
  Weapon.SelectionOrder 5000
  Weapon.KickBack 60
  Inventory.PickupSound "weapons/pickuptp"
  Weapon.AmmoGive 15
  Weapon.AmmoUse 1
  Weapon.AmmoType "DTPistolMagazine"
  Weapon.AmmoType2 "DemonAmmo"
  Inventory.Pickupmessage "Demon Tech Pistol"
  Obituary "%o isn't supposed to see %k's Demon Tech Pistol obituary." 
  Tag "Demon Tech Pistol"
  Weapon.SisterWeapon "PoweredDemonTechPistol"
  States
  {
  Spawn:
	DTPS Z -1
	Loop
  Ready:
	TNT1 A 0 A_PlayWeaponSound("weapons/pickuptp")
	DTP0 ABCD 1
	TNT1 A 0 A_JumpIfInventory("DTPistolMagazine",1,"Ready2")
	Goto Ready3
  Ready2:
	TNT1 A 0 A_JumpIfInventory("DTPistolMagazine",1,1)
	Goto Ready3
	DTPS A 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	Loop
  Ready3:
	TNT1 A 0 A_JumpIfInventory("DTPistolMagazine",1,"Ready2")
	DTPS T 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	Loop
  Deselect:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	DTPS A 1 A_Lower
	TNT1 A 0 A_Lower
	Goto Deselect+1
  Select:
	TNT1 A 0 A_Raise
	Wait
  Fire:
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_PlaySound("weapons/demontechfire",1)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 A 0 A_FireCustomMissile("DemonTechProjectile",frandom(-1,1),1,0,0,0,frandom(-1,1))
	TNT1 A 0 A_Light1
	DTPS BC 2 Bright A_GunFlash
	TNT1 A 0 A_Light0
	DTPS DEFGH 1
	DTPS IIJJ 1 A_WeaponReady
	Goto Ready2
  Empty:
	DTPS T 10 A_PlayWeaponSound("weapons/click")
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",1,"AltFire")
	Goto Ready2
  AltFire:
	TNT1 A 0 A_JumpIfInventory("DTPistolMagazine",16,"Ready2")
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",1,2)
	TNT1 A 0
	Goto Ready2 
	DTPS K 2 A_PlaySound("weapons/pistolclipout")
	DTPS LMNO 2
	DTPS O 16 A_FireCustomMissile("PistolEmptyMagSpawner",0,0,0,1)
  Reload:
	TNT1 A 0 A_TakeInventory("DemonAmmo",1)
	TNT1 A 0 A_GiveInventory("DTPistolMagazine",1)
	TNT1 A 0 A_JumpIfInventory("DTPistolMagazine",16,"Full")
	TNT1 A 0 A_JumpIfInventory("DemonAmmo",1,"Reload")
	Goto Full 
  Full:
	DTPS P 4 A_PlayWeaponSound("weapons/pistolclipin")
	DTPS Q 2 A_PlayWeaponSound("weapons/pistolsnap")
	DTPS RST 2
	TNT1 A 0 A_PlaySound("weapons/demontechsteam",1)
	DTPS UVWXYZ 2
	Goto Ready2
  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") 
	DTP0 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,TIF_NOTAKEINFINITE)
	HGNE A 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0,false)
	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") 
	DTP0 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,false)
	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
	}
}

ACTOR DTPistolMagazine : Ammo
{
Inventory.Amount 0
Inventory.MaxAmount 16
Ammo.BackpackAmount 0
Ammo.BackpackMaxAmount 16
Inventory.Icon "DTPIZ0"
+IGNORESKILL
}