actor RaygunMark2 : Weapon
{
  Game Doom
  Weapon.SelectionOrder 1500
  weapon.ammotype "RAYM2Clip"
  weapon.ammouse 1
  weapon.ammogive 999
  weapon.ammogive2 999
  weapon.ammotype2 "RAYM2Ammo"
  Obituary "$OB_MPPISTOL" // "%o was tickled by %k's pea shooter."
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" // "Picked up a pistol."
  +noautofire
  States
  {
  Ready:
	RAYM A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    RAYM A 0 A_JumpIfInventory("IsReloading",1,"Reload")
	RAYM A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")  
    RAYM A 1 A_WeaponReady
    loop  
  Deselect: 
    RAYM A 0 A_Lower
    RAYM A 0 A_Lower
    RAYM A 1 A_Lower
    loop
  Select:
    RAYM A 0 A_Raise
    RAYM A 0 A_Raise
    RAYM A 1 A_Raise
    loop
  Fire:
    RAYM L 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM L 0 A_jumpifnoammo("Reload")
    RAYM L 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletap")
    RAYM BC 3
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("RaygunMark2Shot",0,1,16,0)
	RAYM A 2
    RAYM BC 3
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("RaygunMark2Shot",0,1,16,0)
	RAYM A 2
    RAYM BC 3
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("RaygunMark2Shot",0,1,16,0)
	RAYM A 3
    RAYM A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM A 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_Doubletap:
    RAYM L 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM L 0 A_jumpifnoammo("Reload")
    RAYM BC 2
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("RaygunMark2Shot",0,1,16,0)
	RAYM A 1
    RAYM BC 2
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("RaygunMark2Shot",0,1,16,0)
	RAYM A 1
    RAYM BC 2
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("RaygunMark2Shot",0,1,16,0)
	RAYM A 1
    RAYM A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM A 0 A_jumpifnoammo("Reload")
	goto ready
  Reload:
	RAYM A 0 A_TakeInventory("IsReloading",1)
    RAYM A 0 A_jumpifinventory("Speedcola", 1,"Reload_speed")
    RAYM A 0 A_jumpifinventory("RAYM2Clip", 21,"ready")
	RAYM A 0 A_jumpifinventory("RAYM2Ammo", 1, 1)
	goto ready
	RAYM DEFG 2
	RAYM G 20 A_playsound("RAYM2CLOT")
	goto reload2
  Reload2:
    RAYM O 0 A_Giveinventory("RAYM2clip",1)
	RAYM O 0 A_Takeinventory("RAYM2Ammo",1)
    RAYM O 0 A_jumpifinventory("RAYM2clip",21,"reloaddone")
	RAYM O 0 A_jumpifinventory("RAYM2Ammo",1,"reload2")
	goto reloaddone
  reloaddone:
	RAYM G 15 A_playsound("RAYM2CLIN")
	RAYM HIJ 2
	goto ready
  Reload_speed:
	RAYM A 0 A_TakeInventory("IsReloading",1)
    RAYM A 0 A_jumpifinventory("RAYM2Clip", 21,"ready")
	RAYM A 0 A_jumpifinventory("RAYM2Ammo", 1, 1)
	goto ready
	RAYM DEFG 1
	RAYM G 10 A_playsound("RAYM2CLOT")
	goto reload2_speed
  Reload2_speed:
    RAYM O 0 A_Giveinventory("RAYM2clip",1)
	RAYM O 0 A_Takeinventory("RAYM2Ammo",1)
    RAYM O 0 A_jumpifinventory("RAYM2clip",21,"reloaddone_speed")
	RAYM O 0 A_jumpifinventory("RAYM2Ammo",1,"reload2_speed")
	goto reloaddone_speed
  reloaddone_speed:
	RAYM G 7 A_playsound("RAYM2CLIN")
	RAYM GHIJ 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:
    GEWE Z -1
	stop
  }
}


actor RAYM2Ammo : Ammo
{
    inventory.amount 162
    inventory.maxamount 162
    +IGNORESKILL 
}

Actor RAYM2Clip : Ammo
{
 Inventory.Amount 1
 Inventory.MaxAmount 21
}

actor RaygunMark2Shot
{
  Radius 6
  Height 8
  Speed 45
  Damage (random(32667,32667))
  DamageType PHD
  Projectile
  SeeSound "RAYM2FIRE"
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  +ripper
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItem ("RaygunMark2Trail")
    loop
  }
}


actor RaygunMark2Trail
{
  Radius 2
  Height 2
  Renderstyle Add
  Scale 0.6
  +NOINTERACTION
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunMark2Trail2")
    stop
  }
}

actor RaygunMark2Trail2 : RaygunMark2Trail
{
  Scale 0.5
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunMark2Trail3")
    stop
  }
}

actor RaygunMark2Trail3 : RaygunMark2Trail
{
  Scale 0.4
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunMark2Trail4")
    stop
  }
}

actor RaygunMark2Trail4 : RaygunMark2Trail
{
  Scale 0.3
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunMark2Trail5")
    stop
  }
}

actor RaygunMark2Trail5 : RaygunMark2Trail
{
  Scale 0.2
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunMark2Trail6")
    stop
  }
}

actor RaygunMark2Trail6 : RaygunMark2Trail
{
  Scale 0.1
  
  States
  {
  Spawn:
    RAYL A 3 bright
    stop
  }
}

actor PAPRaygunMark2 : Weapon
{
  Game Doom
  Weapon.SelectionOrder 1500
  weapon.ammotype "PAPRAYM2Clip"
  weapon.ammouse 1
  weapon.ammogive 999
  weapon.ammogive2 999
  weapon.ammotype2 "PAPRAYM2Ammo"
  Obituary "$OB_MPPISTOL" // "%o was tickled by %k's pea shooter."
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" // "Picked up a pistol."
  +noautofire
  States
  {
  Ready:
	RAYM A 0 A_JumpIfInventory("thrownade",1,"ThrowGrenade")
    RAYM A 0 A_JumpIfInventory("IsReloading",1,"Reload")
	RAYM A 0 A_JumpIfInventory("Kinfeammo",1,"UseKnife")  
    RAYM A 1 A_WeaponReady
    loop  
  Deselect: 
    RAYM A 0 A_Lower
    RAYM A 0 A_Lower
    RAYM A 1 A_Lower
    loop
  Select:
    RAYM A 0 A_Raise
    RAYM A 0 A_Raise
    RAYM A 1 A_Raise
    loop
  Fire:
    RAYM L 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM L 0 A_jumpifnoammo("Reload")
    RAYM L 0 A_jumpifinventory("Doubletap",1,"Fire_Doubletap")
    RAYM BC 2
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("PAPRaygunMark2Shot",0,1,16,0)
	RAYM A 2
    RAYM BC 2
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("PAPRaygunMark2Shot",0,1,16,0)
	RAYM A 2
    RAYM BC 2
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("PAPRaygunMark2Shot",0,1,16,0)
	RAYM A 2
    RAYM A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM A 0 A_jumpifnoammo("Reload")
	goto ready
  Fire_Doubletap:
    RAYM L 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM L 0 A_jumpifnoammo("Reload")
    RAYM BC 1
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("PAPRaygunMark2Shot",0,1,16,0)
	RAYM A 1
    RAYM BC 1
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("PAPRaygunMark2Shot",0,1,16,0)
	RAYM A 1
    RAYM BC 1
	RAYM D 0 A_playsound("RAYM2FIRE")
	RAYM D 0 A_FireCustomMissile("PAPRaygunMark2Shot",0,1,16,0)
	RAYM A 2
    RAYM A 0 A_JumpIfInventory("IsReloading",1,"Reload") 
    RAYM A 0 A_jumpifnoammo("Reload")
	goto ready
  Reload:
	RAYM A 0 A_TakeInventory("IsReloading",1)
    RAYM A 0 A_jumpifinventory("Speedcola", 1,"Reload_speed")
    RAYM A 0 A_jumpifinventory("PAPRAYM2Clip", 42,"ready")
	RAYM A 0 A_jumpifinventory("PAPRAYM2Ammo", 1, 1)
	goto ready
	RAYM DEFG 2
	RAYM G 20 A_playsound("RAYM2CLOT")
	goto reload2
  Reload2:
    RAYM O 0 A_Giveinventory("PAPRAYM2clip",1)
	RAYM O 0 A_Takeinventory("PAPRAYM2Ammo",1)
    RAYM O 0 A_jumpifinventory("PAPRAYM2clip",42,"reloaddone")
	RAYM O 0 A_jumpifinventory("PAPRAYM2Ammo",1,"reload2")
	goto reloaddone
  reloaddone:
	RAYM G 15 A_playsound("RAYM2CLIN")
	RAYM GHIJ 2
	goto ready
  Reload_speed:
	RAYM A 0 A_TakeInventory("IsReloading",1)
    RAYM A 0 A_jumpifinventory("PAPRAYM2Clip", 42,"ready")
	RAYM A 0 A_jumpifinventory("PAPRAYM2Ammo", 1, 1)
	goto ready
	RAYM DEFG 1
	RAYM G 10 A_playsound("RAYM2CLOT")
	goto reload2_speed
  Reload2_speed:
    RAYM O 0 A_Giveinventory("PAPRAYM2clip",1)
	RAYM O 0 A_Takeinventory("PAPRAYM2Ammo",1)
    RAYM O 0 A_jumpifinventory("PAPRAYM2clip",42,"reloaddone_speed")
	RAYM O 0 A_jumpifinventory("PAPRAYM2Ammo",1,"reload2_speed")
	goto reloaddone_speed
  reloaddone_speed:
	RAYM G 7 A_playsound("RAYM2CLIN")
	RAYM GHIJ 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:
    GEWE Z -1
	stop
  }
}


actor PAPRAYM2Ammo : Ammo
{
    inventory.amount 201
    inventory.maxamount 201
    +IGNORESKILL 
}

Actor PAPRAYM2Clip : Ammo
{
 Inventory.Amount 1
 Inventory.MaxAmount 42
}

actor PAPRaygunMark2Shot
{
  Radius 6
  Height 8
  Speed 50
  Damage (random(40000,40000))
  DamageType PHD
  Projectile
  SeeSound "RAYM2FIRE"
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  +ripper
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItem ("PAPRaygunMark2Trail")
    loop
  }
}


actor PAPRaygunMark2Trail
{
  Radius 2
  Height 2
  Renderstyle Add
  Scale 0.6
  +NOINTERACTION
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("PAPRaygunMark2Trail2")
    stop
  }
}

actor PAPRaygunMark2Trail2 : PAPRaygunMark2Trail
{
  Scale 0.5
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("PAPRaygunMark2Trail3")
    stop
  }
}

actor PAPRaygunMark2Trail3 : PAPRaygunMark2Trail
{
  Scale 0.4
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("PAPRaygunMark2Trail4")
    stop
  }
}

actor PAPRaygunMark2Trail4 : PAPRaygunMark2Trail
{
  Scale 0.3
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("PAPRaygunMark2Trail5")
    stop
  }
}

actor PAPRaygunMark2Trail5 : PAPRaygunMark2Trail
{
  Scale 0.2
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("PAPRaygunMark2Trail6")
    stop
  }
}

actor PAPRaygunMark2Trail6 : PAPRaygunMark2Trail
{
  Scale 0.1
  
  States
  {
  Spawn:
    RAYL A 3 bright
    stop
  }
}

