actor QuadShotgun : Weapon
{
  Game Doom
  Weapon.SelectionOrder 1900
  weapon.ammotype "QuadClip"
  weapon.ammouse 1
  weapon.ammogive2 999
  weapon.ammogive1 999
  weapon.ammotype2 "QuadAmmo"
  States
  {
  Ready:
	LCSG A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    LCSG A 0 A_JumpIfInventory("IsReloading",1,"Reload") 	
	AK47 A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")
    LCSG A 1 A_WeaponReady
    Loop
  Deselect: 
    LCSG A 0 A_Lower
    LCSG A 0 A_Lower
    LCSG A 1 A_Lower
    loop
  Select:
    LCSG A 0 A_Raise
    LCSG A 0 A_Raise
    LCSG A 1 A_Raise
    loop
  Fire:
    LCSG X 0 A_jumpifinventory("deadshot",1,"Fire_deadshot")
    LCSG X 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletap")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_FireBullets(5,5,4,random(450,450),"bulletPuff")
    LCSG X 0 A_Playsound("Weapons/Cannonshotgun")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 3 
    LCSG A 6
    LCSG X 0 A_jumpifnoammo("reload")
    Goto Ready
  Fire_deadshot:
    LCSG X 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletapdeadshot")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_FireBullets(2.5,2,4,random(450,450),"bulletPuff")
    LCSG X 0 A_Playsound("Weapons/Cannonshotgun")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 3 
    LCSG A 6
    LCSG X 0 A_jumpifnoammo("reload")
    Goto Ready
  Fire_Doubletapdeadshot:
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_FireBullets(2.5,2,4,random(450,450),"bulletPuff")
    LCSG X 0 A_Playsound("Weapons/Cannonshotgun")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 2 
    LCSG A 3
    LCSG X 0 A_jumpifnoammo("reload")
    Goto Ready
  Fire_Doubletap:
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_FireBullets(5,5,4,random(450,450),"bulletPuff")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_Playsound("Weapons/Cannonshotgun")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 2 
    LCSG A 3
    Goto Ready
  altfire:
    LCSG A 0 A_jumpifinventory("QuadClip",4,"Bigfire")
	LCSG A 0 A_jumpifinventory("QuadClip",3,"Reload")
	LCSG A 0 A_jumpifinventory("QuadClip",2,"Reload")
	LCSG A 0 A_jumpifinventory("QuadClip",1,"Reload")
	goto ready
  Reload:
	SHTR A 0 A_TakeInventory("IsReloading",1)
    SHTR A 0 A_jumpifinventory("SpeedCola",1,"Reload_speed")
	SHTR A 0 A_jumpifInventory("Quadclip",4,"Reloaddone")
    SHTR A 0 A_JumpIfInventory("Quadammo", 1, 1)
	goto Ready
    LCSG BCDEFGHIJK 2
    LCSG K 1 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
  Goto Reload2
  Reload2:
    NULL A 0 
    NULL A 0 A_TakeInventory("Quadammo",1)
    NULL A 0 A_GiveInventory("Quadclip",1) 
    NULL A 10 A_PlaySoundEx("weapons/cannonshotgunload","SoundSlot7",0)
    NULL A 0 A_weaponready(WRF_NOBOB) 
	NULL E 0 A_jumpifInventory("Quadclip",4,"ReloadDone")
	NULL E 0 A_JumpIfInventory("Quadammo", 1, "Reload2")
    Goto Reloaddone
	
  ReloadDone:
 LCSG KJIHGFED 2
 LCSG C 0 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
 LCSG CB 2
 goto ready
 
  Reload_speed:
	SHTR A 0 A_TakeInventory("IsReloading",1)
	SHTR A 0 A_jumpifInventory("Quadclip",4,"Reloaddone_speed")
    SHTR A 0 A_JumpIfInventory("Quadammo", 1, 1)
	goto Ready
    LCSG BCDEFGHIJK 1
    LCSG K 1 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
  Goto Reload2_speed
  Reload2_speed:
    NULL A 0 
    NULL A 0 A_TakeInventory("Quadammo",1)
    NULL A 0 A_GiveInventory("Quadclip",1) 
    NULL A 5 A_PlaySoundEx("weapons/cannonshotgunload","SoundSlot7",0)
    NULL A 0 A_weaponready(WRF_NOBOB) 
	NULL E 0 A_jumpifInventory("Quadclip",4,"ReloadDone_speed")
	NULL E 0 A_JumpIfInventory("Quadammo", 1, "Reload2_speed")
    Goto Reloaddone_speed
	
  ReloadDone_speed:
 LCSG KJIHGFED 1
 LCSG C 0 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
 LCSG CB 1
 goto ready
 BigFire:
 NULL A 0 A_jumpifinventory("Doubletap",1,"Bigfire_Doubletap")
 NULL A 0 A_TakeInventory("Quadclip",4)
 LCSG X 2
 NULL A 0 A_Light2
 LCSG Y 2 A_Recoil(2)
 NULL AA 0 A_FireBullets (12, 12, 20, random(450,450))
 NULL A 0 A_PlayWeaponSound("weapons/cannonshotgun3")
 LCSG Y 1 A_Light0
 goto reload
 
 BigFire_Doubletap:
 NULL A 0 A_TakeInventory("Quadclip",4)
 LCSG X 1
 NULL A 0 A_Light2
 LCSG Y 1 A_Recoil(2)
 NULL AA 0 A_FireBullets (12, 12, 20, random(450,450))
 NULL A 0 A_PlayWeaponSound("weapons/cannonshotgun3")
 LCSG Y 0 A_Light0
 goto reload
 
  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:
    TNTA A 7 Bright A_Light1
  Spawn:
    LICO A -1
    Stop
  }
}

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

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


actor PAPQuadShotgun : Weapon
{
  Game Doom
  Weapon.SelectionOrder 1900
  weapon.ammotype "PAPQuadClip"
  weapon.ammouse 1
  weapon.ammogive2 999
  weapon.ammogive1 999
  weapon.ammotype2 "QuadAmmo"
  States
  {
  Ready:
	LCSG A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    LCSG A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
	AK47 A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")	
    LCSG A 1 A_WeaponReady
    Loop
  Deselect: 
    LCSG A 0 A_Lower
    LCSG A 0 A_Lower
    LCSG A 1 A_Lower
    loop
  Select:
    LCSG A 0 A_Raise
    LCSG A 0 A_Raise
    LCSG A 1 A_Raise
    loop
  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
  Fire:
    LCSG X 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletap")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_FireBullets(5,5,4,random(550,550),"bulletPuff")
    LCSG X 0 A_Playsound("Weapons/Cannonshotgun")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 3 
    LCSG A 6
    LCSG X 0 A_jumpifnoammo("reload")
    Goto Ready
  Fire_Doubletap:
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_FireBullets(5,5,4,random(550,550),"bulletPuff")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 0 A_Playsound("Weapons/Cannonshotgun")
    LCSG X 0 A_jumpifnoammo("reload")
    LCSG X 2 
    LCSG A 3
    Goto Ready
  altfire:
    LCSG A 0 A_jumpifinventory("PAPQuadClip",8,"Bigfire")
    LCSG A 0 A_jumpifinventory("PAPQuadClip",7,"Bigfire")
    LCSG A 0 A_jumpifinventory("PAPQuadClip",6,"Bigfire")
    LCSG A 0 A_jumpifinventory("PAPQuadClip",5,"Bigfire")
    LCSG A 0 A_jumpifinventory("PAPQuadClip",4,"Bigfire")
    LCSG A 0 A_jumpifinventory("PAPQuadClip",3,"Bigfire")
    LCSG A 0 A_jumpifinventory("PAPQuadClip",2,"Bigfire")
    LCSG A 0 A_jumpifinventory("PAPQuadClip",1,"Bigfire")
	goto ready
  Reload:
	SHTR A 0 A_TakeInventory("IsReloading",1)
    SHTR A 0 A_jumpifinventory("SpeedCola",1,"Reload_speed")
	SHTR A 0 A_jumpifInventory("PAPQuadclip",8,"Reloaddone")
    SHTR A 0 A_JumpIfInventory("Quadammo", 1, 1)
	goto Ready
    LCSG BCDEFGHIJK 2
    LCSG K 1 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
  Goto Reload2
  Reload2:
    NULL A 0 
    NULL A 0 A_TakeInventory("Quadammo",1)
    NULL A 0 A_GiveInventory("PAPQuadclip",1) 
    NULL A 10 A_PlaySoundEx("weapons/cannonshotgunload","SoundSlot7",0)
    NULL A 0 A_weaponready(WRF_NOBOB) 
	NULL E 0 A_jumpifInventory("PAPQuadclip",8,"ReloadDone")
	NULL E 0 A_JumpIfInventory("Quadammo", 1, "Reload2")
    Goto Reloaddone
	
  ReloadDone:
 LCSG KJIHGFED 2
 LCSG C 0 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
 LCSG CB 2
 goto ready
 
  Reload_speed:
	SHTR A 0 A_TakeInventory("IsReloading",1)
	SHTR A 0 A_jumpifInventory("PAPQuadclip",8,"Reloaddone_speed")
    SHTR A 0 A_JumpIfInventory("Quadammo", 1, 1)
	goto Ready
    LCSG BCDEFGHIJK 1
    LCSG K 1 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
  Goto Reload2_speed
  Reload2_speed:
    NULL A 0 
    NULL A 0 A_TakeInventory("Quadammo",1)
    NULL A 0 A_GiveInventory("PAPQuadclip",1) 
    NULL A 5 A_PlaySoundEx("weapons/cannonshotgunload","SoundSlot7",0)
    NULL A 0 A_weaponready(WRF_NOBOB) 
	NULL E 0 A_jumpifInventory("PAPQuadclip",8,"ReloadDone_speed")
	NULL E 0 A_JumpIfInventory("Quadammo", 1, "Reload2_speed")
    Goto Reloaddone_speed
	
  ReloadDone_speed:
 LCSG KJIHGFED 1
 LCSG C 0 A_PlaySoundEx("weapons/sshoto","SoundSlot7",0)
 LCSG CB 1
 goto ready
 
 BigFire:
 NULL A 0 A_jumpifinventory("Doubletap",1,"Bigfire_Doubletap")
 NULL A 0 A_TakeInventory("PAPQuadclip",8)
 LCSG X 2
 NULL A 0 A_Light2
 LCSG Y 2 A_Recoil(2)
 NULL AA 0 A_FireBullets (12, 12, 20, random(550,550))
 NULL A 0 A_PlayWeaponSound("weapons/cannonshotgun3")
 LCSG Y 1 A_Light0
 goto reload
 
 BigFire_Doubletap:
 NULL A 0 A_TakeInventory("PAPQuadclip",8)
 LCSG X 1
 NULL A 0 A_Light2
 LCSG Y 1 A_Recoil(2)
 NULL AA 0 A_FireBullets (12, 12, 20, random(550,550))
 NULL A 0 A_PlayWeaponSound("weapons/cannonshotgun3")
 LCSG Y 0 A_Light0
 goto reload
 
  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
  Flash:
    TNTA A 7 Bright A_Light1
  Spawn:
    LICO A -1
    Stop
  }
}

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