actor Model1887 : Weapon
{
  Game Doom
  Weapon.SelectionOrder 700
  weapon.ammotype "ModelClip"
  weapon.ammouse 1
  weapon.ammogive2 999
  weapon.ammogive1 999
  weapon.ammotype2 "ModelAmmo"
  Obituary "$OB_MPPISTOL" // "%o was tickled by %k's pea shooter."
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" // "Picked up a pistol."
  States
  {
  Ready:
	MSSG A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    MSSG A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")
    MSSG A 1 A_WeaponReady
    Loop
  Deselect:
    MSSG A 0 A_Lower
    MSSG A 0 A_Lower
    MSSG A 1 A_Lower
    Loop
  Select:
    MSSG A 0 A_Raise
    MSSG A 0 A_Raise
    MSSG A 1 A_Raise
    Loop
  Fire:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifinventory("deadshot",1,"Fire_deadshot")
    MSSF A 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletap")
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(6.3,8.5,8,random(250,250),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 3
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 3
	MSSG D 3
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 2
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_deadshot:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletapdeadshot")
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(3,4,8,random(250,250),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 3
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 3
	MSSG D 3
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 2
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_Doubletapdeadshot:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(3,4,8,random(250,250),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 2
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 2
	MSSG D 2
	MSSG D 0 A_PlaySound("Model/close")
	MSSG C 2
	MSSG B 1
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_Doubletap:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(6.3,8.5,8,random(250,250),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 2
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 2
	MSSG D 2
	MSSG D 0 A_PlaySound("Model/close")
	MSSG C 2
	MSSG B 1
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Reload:	
    MSSG C 0 A_takeinventory("IsReloading",1)
    MSSG C 0 A_jumpifinventory("SpeedCola",1,"Reload_speed")
    MSSG C 0 A_jumpifinventory("Modelclip",8,"ready")
	MSSG C 0 A_jumpifinventory("Modelammo",1,1)
	goto ready
    MSSG ABC 3
	MSSG C 0 A_PlaySound("Model/open")
    MSSG D 10
	goto reload2
  Reload2:
    MSSG D 0 A_playsound("Model/load")
    MSSG D 5 
    MSSG D 0 A_Giveinventory("Modelclip",1)
    MSSG D 0 A_Takeinventory("Modelammo",1)
    MSSG D 4
    MSSG D 0 A_Jumpifinventory("Modelclip",8,"reloaddone")
    MSSG D 0 A_Jumpifinventory("Modelammo",1,"reload2")
	goto reloaddone
  Reloaddone:
	MSSG E 3
	MSSG D 3
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 2
	goto ready
  Reload_speed:	
    MSSG C 0 A_takeinventory("IsReloading",1)
    MSSG C 0 A_jumpifinventory("Modelclip",8,"ready")
	MSSG C 0 A_jumpifinventory("Modelammo",1,1)
	goto ready
    MSSG ABC 2
	MSSG C 0 A_PlaySound("Model/open")
    MSSG D 5
	goto reload2_speed
  Reload2_speed:
    MSSG D 0 A_playsound("Model/load")
    MSSG D 3 
    MSSG D 0 A_Giveinventory("Modelclip",1)
    MSSG D 0 A_Takeinventory("Modelammo",1)
    MSSG D 2
    MSSG D 0 A_Jumpifinventory("Modelclip",8,"reloaddone_speed")
    MSSG D 0 A_Jumpifinventory("Modelammo",1,"reload2_speed")
	goto reloaddone_speed
  Reloaddone_speed:
	MSSG E 2
	MSSG D 2
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 1
	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 A 0
	stop
  Spawn:
    MSSI A -1
	stop
  }
}

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

actor ModelAmmo : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 8
    inventory.maxamount 64
    ammo.backpackamount 8
    ammo.backpackmaxamount 64
    +IGNORESKILL
    inventory.pickupmessage "Got Model rounds!"  
    States
    {
    Spawn:
      CLIP A -1
      Stop
    }
}

actor Model115 : Weapon
{
  Game Doom
  Weapon.SelectionOrder 700
  weapon.ammotype "PAPModelClip"
  weapon.ammouse 1
  weapon.ammogive2 999
  weapon.ammogive1 999
  weapon.ammotype2 "PAPModelAmmo"
  Obituary "$OB_MPPISTOL" // "%o was tickled by %k's pea shooter."
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" // "Picked up a pistol."
  States
  {
  Ready:
	MSSG A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    MSSG A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")
    MSSG A 1 A_WeaponReady
    Loop
  Deselect:
    MSSG A 0 A_Lower
    MSSG A 0 A_Lower
    MSSG A 1 A_Lower
    Loop
  Select:
    MSSG A 0 A_Raise
    MSSG A 0 A_Raise
    MSSG A 1 A_Raise
    Loop
  Fire:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifinventory("deadshot",1,"Fire_deadshot")
    MSSF A 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletap")
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(4,4.5,10,random(500,500),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 3
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 3
	MSSG D 3
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 2
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_deadshot:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletapdeadshot")
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(2,2.5,10,random(500,500),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 3
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 3
	MSSG D 3
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 2
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_Doubletapdeadshot:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(2,2.5,10,random(500,500),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 2
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 2
	MSSG D 2
	MSSG D 0 A_PlaySound("Model/close")
	MSSG C 2
	MSSG B 1
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_Doubletap:
    MSSF A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSF A 0 A_jumpifnoammo("Reload")
    MSSF A 0
    MSSF A 0 A_FireBullets(4,4.5,10,random(500,500),"bulletPuff")
	MSSF A 0 A_PlaySound("Model/Fire")
	MSSF A 3
	MSSF B 4
	MSSG C 2
	MSSG D 0 A_PlaySound("Model/open")
	MSSG D 0 A_FireCustomMissile("ShellCasingSpawner",0,0,-30,2)
	MSSG DE 2
	MSSG D 2
	MSSG D 0 A_PlaySound("Model/close")
	MSSG C 2
	MSSG B 1
    MSSG B 0 A_jumpifnoammo("Reload")
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	MSSG B 1 A_Refire
    MSSG B 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    MSSG B 0 A_jumpifnoammo("Reload")
	goto ready
  Reload:	
    MSSG C 0 A_takeinventory("IsReloading",1)
    MSSG C 0 A_jumpifinventory("SpeedCola",1,"Reload_speed")
    MSSG C 0 A_jumpifinventory("PAPModelclip",16,"ready")
	MSSG C 0 A_jumpifinventory("PAPModelammo",1,1)
	goto ready
    MSSG ABC 3
	MSSG C 0 A_PlaySound("Model/open")
    MSSG D 10
    MSSG D 0 A_playsound("Model/load")
	goto reload2
  Reload2:
    MSSG D 0 A_Giveinventory("PAPModelclip",1)
    MSSG D 0 A_Takeinventory("PAPModelammo",1)
    MSSG D 0 A_Jumpifinventory("PAPModelclip",16,"reloaddone")
    MSSG D 0 A_Jumpifinventory("PAPModelammo",1,"reload2")
	goto reloaddone
  Reloaddone:
	MSSG E 3
	MSSG D 3
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 2
	goto ready
  Reload_speed:	
    MSSG C 0 A_takeinventory("IsReloading",1)
    MSSG C 0 A_jumpifinventory("PAPModelclip",16,"ready")
	MSSG C 0 A_jumpifinventory("PAPModelammo",1,1)
	goto ready
    MSSG ABC 2
	MSSG C 0 A_PlaySound("Model/open")
    MSSG D 5
    MSSG D 0 A_playsound("Model/load")
	goto reload2_speed
  Reload2_speed:
    MSSG D 0 A_Giveinventory("PAPModelclip",1)
    MSSG D 0 A_Takeinventory("PAPModelammo",1)
    MSSG D 0 A_Jumpifinventory("PAPModelclip",16,"reloaddone_speed")
    MSSG D 0 A_Jumpifinventory("PAPModelammo",1,"reload2_speed")
	goto reloaddone_speed
  Reloaddone_speed:
	MSSG E 2
	MSSG D 2
	MSSG D 0 A_PlaySound("Model/close")
	MSSG CB 1
	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 A 0
	stop
  Spawn:
    MSSI A -1
	stop
  }
}

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

actor PAPModelAmmo : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 16
    inventory.maxamount 128
    ammo.backpackamount 16
    ammo.backpackmaxamount 128
    +IGNORESKILL
    inventory.pickupmessage "Got Model rounds!"  
    States
    {
    Spawn:
      CLIP A -1
      Stop
    }
}