actor Type100 : Weapon
{
  Game Doom
  Weapon.SelectionOrder 1300
  weapon.ammotype "TypeClip"
  weapon.ammouse 1
  weapon.ammogive2 999
  weapon.ammogive1 999
  weapon.ammotype2 "TypeAmmo"
  Obituary "$OB_MPPISTOL" // "%o was tickled by %k's pea shooter."
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" // "Picked up a pistol."
  States
  {
  Ready: 
	TYPE A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    TYPE A 0 A_JumpIfInventory("IsReloading",1,"Reload")	
	TYPE A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")
    TYPE A 1 A_WeaponReady
    loop
  Deselect: 
    TYPE A 0 A_Lower
    TYPE A 0 A_Lower
    TYPE A 1 A_Lower
    loop
  Select:
    TYPE A 0 A_Raise
    TYPE A 0 A_Raise
    TYPE A 1 A_Raise
    loop
  Fire:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE B 0 A_jumpifinventory("doubletap",1,"Fire_doubletap")
    TYPE B 0 A_jumpifinventory("deadshot",1,"Fire_deadshot")
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 3 A_FireBullets(3.5,3.2,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 3 A_FireBullets(3.5,3.2,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Fire_deadshot:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE B 0 A_jumpifinventory("doubletap",1,"Fire_doubletapdeadshot")
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 3 A_FireBullets(1.3,2.1,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 3 A_FireBullets(1.3,2.1,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Fire_doubletapdeadshot:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 2 A_FireBullets(1.3,2.1,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 2 A_FireBullets(1.3,2.1,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Fire_doubletap:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 2 A_FireBullets(3.5,3.2,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 2 A_FireBullets(3.5,3.2,1,random(1250,1250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Reload:
	TYPE A 0 A_TakeInventory("IsReloading",1)
    TYPE A 0 A_jumpifinventory("Speedcola", 1,"Reload_speed")
    TYPE A 0 A_jumpifinventory("TypeClip", 30,"ready")
	TYPE A 0 A_jumpifinventory("Typeammo", 1, 1)
	goto ready
	TYPE D 0 A_playsound("typeout")
	TYPE DEFGH 2
    Goto Reload2
  Reload2:
    TYPE H 0 A_Giveinventory("TypeClip",1)
	TYPE H 0 A_Takeinventory("Typeammo",1)
    TYPE H 0 A_jumpifinventory("TypeClip",30,"reloaddone")
	TYPE H 0 A_jumpifinventory("Typeammo",1,"reload2")
	goto reloaddone
  Reloaddone:
    TYPE H 20
	TYPE HGFED 2
	TYPE D 0 A_playsound("typein")
	goto ready
  Reload_speed:
	TYPE A 0 A_TakeInventory("IsReloading",1)
    TYPE A 0 A_jumpifinventory("TypeClip", 30,"ready")
	TYPE A 0 A_jumpifinventory("Typeammo", 1, 1)
	goto ready
	TYPE D 0 A_playsound("typeout")
	TYPE DEFGH 1
    Goto Reload2_speed
  Reload2_speed:
    TYPE H 0 A_Giveinventory("TypeClip",1)
	TYPE H 0 A_Takeinventory("Typeammo",1)
    TYPE H 0 A_jumpifinventory("TypeClip",30,"reloaddone_speed")
	TYPE H 0 A_jumpifinventory("Typeammo",1,"reload2_speed")
	goto reloaddone_speed
  Reloaddone_speed:
    TYPE H 10
	TYPE HGFED 1
	TYPE D 0 A_playsound("typein")
	goto ready
  ThrowGrenade:
     HNDG BCD 1
     HNDG E 1 A_PlaySound("weapons/grenadepin")
     HNDG FGHH 1
     HNDG I 1 A_PlaySound("weapons/grenadethr") 
     HNDG J 0 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
     HNDG J 0 A_PlaySound("weapons/grenadethr")
     HNDG JKLMNOPQ 1
     HNDG Q 0 A_TakeInventory("thrownade")
     Goto Ready
  Useknife:
     KNFG A 0 A_jumpifinventory("Machete",1,"UseMachete")
     KNFG ABC 2
	 KNFG C 0 A_CustomPunch (110,1,0,"KnifePuff")
	 KNFG DEF 2
	 KNFG F 0 A_TakeInventory("Kinfeammo")
	 goto ready
  UseMachete:
     MHT4 ABC 2
	 MHT4 C 0 A_CustomPunch (450,1,0,"Machetepuff")
	 MHT4 DEFG 2
	 MHT4 G 0 A_TakeInventory("Kinfeammo")
	 goto ready
  Flash:
    TNTT B 0
    Goto LightDone
  Spawn:
    PIST A -1
    Stop
  }
}

actor TypeClip : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 0
    inventory.maxamount 30
    ammo.backpackamount 0
    ammo.backpackmaxamount 30
    +IGNORESKILL
}

actor TypeAmmo : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 30
    inventory.maxamount 180
    ammo.backpackamount 30
    ammo.backpackmaxamount 180
    +IGNORESKILL
    inventory.pickupmessage "Got Pistol! rounds!"  
    States
    {
    Spawn:
      CLIP A -1
      Stop
    }
}

actor PAPType100 : Weapon
{
  Game Doom
  Weapon.SelectionOrder 1300
  weapon.ammotype "PAPTypeClip"
  weapon.ammouse 1
  weapon.ammogive2 999
  weapon.ammogive1 999
  weapon.ammotype2 "PAPTypeAmmo"
  Obituary "$OB_MPPISTOL" // "%o was tickled by %k's pea shooter."
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" // "Picked up a pistol."
  States
  {
  Ready: 
	TYPE A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    TYPE A 0 A_JumpIfInventory("IsReloading",1,"Reload")	
	TYPE A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")
    TYPE A 1 A_WeaponReady
    loop
  Deselect: 
    TYPE A 0 A_Lower
    TYPE A 0 A_Lower
    TYPE A 1 A_Lower
    loop
  Select:
    TYPE A 0 A_Raise
    TYPE A 0 A_Raise
    TYPE A 1 A_Raise
    loop
  Fire:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE B 0 A_jumpifinventory("doubletap",1,"Fire_doubletap")
    TYPE B 0 A_jumpifinventory("deadshot",1,"Fire_deadshot")
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 3 A_FireBullets(3.5,3.2,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 3 A_FireBullets(3.5,3.2,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Fire_deadshot:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE B 0 A_jumpifinventory("doubletap",1,"Fire_doubletapdeadshot")
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 3 A_FireBullets(1.3,2.1,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 3 A_FireBullets(1.3,2.1,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 2
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Fire_doubletapdeadshot:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 2 A_FireBullets(1.3,2.1,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 2 A_FireBullets(1.3,2.1,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Fire_doubletap:
    TYPE B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE B 0 A_Jump(127,2)
	TYPE B 0 A_Jump(256,6)
    TYPE B 0 A_Playsound("Typefire")
	TYPE B 2 A_FireBullets(3.5,3.2,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
	goto ready
    TYPE B 0 A_Playsound("Typefire")
	TYPE C 2 A_FireBullets(3.5,3.2,1,random(2250,2250),"bulletPuff")
	TNTT A 0 A_FireCustomMissile("BulletCasingSpawner",0,0,-6,2)
    TYPE B 0 A_JumpIfNoAmmo("reload") 
    TYPE A 1
    TYPE B 0 A_JumpIfNoAmmo("reload") 
	TYPE C 0 A_REFIRE
	goto ready
  Reload:
	TYPE A 0 A_TakeInventory("IsReloading",1)
    TYPE A 0 A_jumpifinventory("Speedcola", 1,"Reload_speed")
    TYPE A 0 A_jumpifinventory("PAPTypeClip", 60,"ready")
	TYPE A 0 A_jumpifinventory("PAPTypeammo", 1, 1)
	goto ready
	TYPE D 0 A_playsound("typeout")
	TYPE DEFGH 2
    Goto Reload2
  Reload2:
    TYPE H 0 A_Giveinventory("PAPTypeClip",1)
	TYPE H 0 A_Takeinventory("PAPTypeammo",1)
    TYPE H 0 A_jumpifinventory("PAPTypeClip",60,"reloaddone")
	TYPE H 0 A_jumpifinventory("PAPTypeammo",1,"reload2")
	goto reloaddone
  Reloaddone:
    TYPE H 20
	TYPE HGFED 2
	TYPE D 0 A_playsound("typein")
	goto ready
  Reload_speed:
	TYPE A 0 A_TakeInventory("IsReloading",1)
    TYPE A 0 A_jumpifinventory("PAPTypeClip", 60,"ready")
	TYPE A 0 A_jumpifinventory("PAPTypeammo", 1, 1)
	goto ready
	TYPE D 0 A_playsound("typeout")
	TYPE DEFGH 1
    Goto Reload2_speed
  Reload2_speed:
    TYPE H 0 A_Giveinventory("PAPTypeClip",1)
	TYPE H 0 A_Takeinventory("PAPTypeammo",1)
    TYPE H 0 A_jumpifinventory("PAPTypeClip",60,"reloaddone_speed")
	TYPE H 0 A_jumpifinventory("PAPTypeammo",1,"reload2_speed")
	goto reloaddone_speed
  Reloaddone_speed:
    TYPE H 10
	TYPE HGFED 1
	TYPE D 0 A_playsound("typein")
	goto ready
  ThrowGrenade:
     HNDG BCD 1
     HNDG E 1 A_PlaySound("weapons/grenadepin")
     HNDG FGHH 1
     HNDG I 1 A_PlaySound("weapons/grenadethr") 
     HNDG J 0 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
     HNDG J 0 A_PlaySound("weapons/grenadethr")
     HNDG JKLMNOPQ 1
     HNDG Q 0 A_TakeInventory("thrownade")
     Goto Ready
  Useknife:
     KNFG A 0 A_jumpifinventory("Machete",1,"UseMachete")
     KNFG ABC 2
	 KNFG C 0 A_CustomPunch (110,1,0,"KnifePuff")
	 KNFG DEF 2
	 KNFG F 0 A_TakeInventory("Kinfeammo")
	 goto ready
  UseMachete:
     MHT4 ABC 2
	 MHT4 C 0 A_CustomPunch (450,1,0,"Machetepuff")
	 MHT4 DEFG 2
	 MHT4 G 0 A_TakeInventory("Kinfeammo")
	 goto ready
  Flash:
    TNTT B 0
    Goto LightDone
  Spawn:
    PIST A -1
    Stop
  }
}

actor PAPTypeClip : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 0
    inventory.maxamount 60
    ammo.backpackamount 0
    ammo.backpackmaxamount 60
    +IGNORESKILL
}

actor PAPTypeAmmo : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 60
    inventory.maxamount 240
    ammo.backpackamount 60
    ammo.backpackmaxamount 240
    +IGNORESKILL
    inventory.pickupmessage "Got Pistol! rounds!"  
    States
    {
    Spawn:
      CLIP A -1
      Stop
    }
}