Actor Marine : PlayerPawn replaces DoomPlayer
{
	Health 100
	Player.MaxHealth 100
	+NOSKIN
	+NOICEDEATH
	+NODAMAGETHRUST
	+GHOST
	+QUICKTORETALIATE
	+NOTARGET
	LimitedToTeam 0
	Player.ForwardMove 0.94
	Player.SideMove 0.94	
	Player.soundclass "marine"
	Player.displayname "Marine"
	Player.startitem "NewClip", 100
	Player.startitem "NewShell", 25
	Player.startitem "GrenadeAmmo", 5
	Player.startitem "Riotgun", 1
	Player.startitem "DualPistols", 1
	Player.startitem "Machinegun", 1
	Player.StartItem "ForceReloadItem", 1
	Player.startitem "ArrowSingle", 35
	Player.StartItem "ClassID", 1
	Player.StartItem "HumanTeam", 1
	Player.scoreicon "MARINEST"
	Player.ColorRange 112, 127
	DamageFactor "MarineGrenade", 0.35
	DamageFactor "GhostbusterTrap", 0.0
	DamageFactor "SentryShoot", 0.0
	DamageFactor "HunterSuperIceArrowTrail2", 0.0
	DamageFactor "Drone", 0.0	
	DamageFactor "DimmedVision", 0.5
	DamageFactor "GhostbusterExpander", 0.0
	DamageFactor "Poison", 0.0
	DamageFactor "FlaskT2", 0.0
	Species "Human"
	PainChance "Mohoph", 256
	PainChance "MohophRange", 256
	mass 400
	States
	{
	Spawn:
		PLAY A 1 
		Loop
	See:	
		PLAY AB 5
		PLAY A 0 A_SpawnItemEx ("MarineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		PLAY CD 5
		PLAY A 0 A_SpawnItemEx ("MarineStomp", 0, 0, 0, 0, 0, -20, 0,0, 0) 
		Goto Spawn
	Missile:
		PLAY E 12 
		Goto Spawn
	Melee:
		PLAY F 6 BRIGHT	
		Goto Missile
	Pain: 
		PLAY G 8 A_Pain
		Goto Spawn
	Pain.ChokeAttack:
		PLAY G 1
		TNT1 A 0 A_GiveToTarget("ChokePainHealer", 1)
		TNT1 A 0 A_GiveToTarget("VomitPoints", 2)
		PLAY G 8 A_Pain
		Goto Spawn
	Pain.CreeperHealBall:
		PLAY G 1
		TNT1 G 0 A_GiveToTarget("CreeperHealBallHealer", 1)
		PLAY G 8 A_Pain
		Goto Spawn
	Pain.Creepstun:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_Pain
		PLAY G 18 ACS_ExecuteAlways(986,0)
		Goto Spawn
	Pain.CreeperHealBall:
		PLAY G 1
		PLAY G 1 A_GiveToTarget("CreeperHealBallHealer", 1)
		Goto Pain
	Pain.Impale:
		TNT1 A 0 ThrustThingZ(0,10,0,1)
		Goto Pain
	Pain.DimmedVision:
		TNT1 A 0 A_Pain
		TNT1 A 0 A_GiveInventory("VisionDimmer", 1)
		TNT1 A 0 A_GiveInventory("VisionDimEffect", 1) // ACS_ExecuteAlways(753, 0)
		TNT1 A 0 ACS_ExecuteAlways(754, 0)
		TNT1 A 0 HealThing(1)
		PLAY G 7
		Goto Spawn
	Pain.NightmareCleave:
	    PLAY G 1 A_JumpIfInventory("NightmareCloakChargeCooldown", 1, "Pain")
		TNT1 A 0 A_GiveToTarget("InvisibleCounter", 1)
		TNT1 A 0 A_GiveInventory("NightmareCloakChargeCooldown", 1)
	    Goto Pain
	Pain.MorgBat:
		TNT1 A 0 A_giveToTarget("MorgHeal", 3)
		Goto Pain
	Pain.Mohoph:
		PLAY G 1
		TNT1 A 0 A_GiveToTarget("MohophHeal", 1)
		goto Pain
	Pain.MohophRange:
		PLAY G 1
		TNT1 AAA 0 A_GiveToTarget("MohophHeal", 1)
		Goto Pain
	Death:
	DeathAnim:
		TNT1 A 0 A_GiveToTarget("KilledMarine", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		PLAY H 10
		PLAY I 10 A_PlayerScream
		PLAY J 10 A_NoBlocking
		PLAY KLM 10
		PLAY N -1
		stop
	GibDeath:
	Death.ImpaleBite:
		TNT1 A 0 A_GiveToTarget("ImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("DoubleImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("JitterskullPoints", 1)
		TNT1 A 0 A_GiveToTarget("VomitPoints", 10)
		TNT1 A 0 A_GiveToTarget("KilledMarine", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		TNT1 A 0 A_GiveToTarget("Crunched",1)
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_PlaySound("gibbage/xsplat")
		TNT1 A 0 A_SkullPop("Custom_BloodySkull")
		TNT1 A 0 A_PlaySound("gibbage/playergib") 
		TNT1 A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		TNT1 A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		TNT1 A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		TNT1 A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
		TNT1 A 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		PLAY A 1
		BLAN A -1
		Stop
	DoomXDeath:
		PLAY O 0 ACS_ExecuteAlways(714, 0)
		PLAY O 5
		PLAY P 5 A_XScream
		PLAY Q 5 A_NoBlocking
		PLAY RSTUV 5
		PLAY W -1
		Stop
	Death.CreeperHealBall:
		TNT1 A 0 A_GiveToTarget("CreeperHealBallHealer", 1)
		TNT1 A 0 A_GiveToTarget("CreepHealKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
        Goto DeathAnim
	Death.CreeperMelee:
		TNT1 A 0 A_PlaySoundEx("creeperattack", "Body")
		TNT1 A 0 A_GiveToTarget("Creeperheal",1)
		TNT1 A 0 ACS_ExecuteAlways(997,0)
		TNT1 A 0 A_GiveToTarget("CreeperMeleeKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("KilledMarine", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
//		TNT1 A 0 A_GiveToTarget("GhoulAmmo", 1)
		PLAY H 10 A_SpawnItemEx("SoulSprite", 0, 0, 0, 0, 0, 2)
		PLAY I 10 A_PlayerScream
		PLAY J 10 A_NoBlocking
		PLAY KLM 10
		PLAY N -1
		Stop
	Death.MarineSuicideGrenade:
		PLAY A 0
		Goto DoomXDeath
    Death.SjasScream:
        TNT1 A 0 A_GiveToTarget("SjasScreamKill", 1)
        TNT1 A 0 A_GiveToTarget("SjasMeleeMulti", 1)
		Goto DeathAnim
    Death.JitterMelee:
        TNT1 A 0 A_GiveToTarget("JitterMeleeKill", 1)
        TNT1 A 0 A_GiveToTarget("JitterMeleeMulti", 1)
        Goto GibDeath
    Death.CreepStun:
        TNT1 A 0 A_GiveToTarget("CreepStunKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
        Goto DeathAnim
    Death.ChokeVomit:
        TNT1 A 0 A_GiveToTarget("ChokeVomitKill", 1)
        Goto DeathAnim
    Death.ChokeAttack:
        TNT1 A 0 A_GiveToTarget("ChokeAttackKill", 1)
		TNT1 A 0 A_GiveToTarget("ChokeDeathHealer", 1)
        Goto GibDeath
	Death.ChokeFeast:
		TNT1 A 0 A_GiveToTarget("ChokeFeasTKill", 1)
		Goto DeathAnim		
    Death.ChokeBloodBall:
		TNT1 A 0 A_GiveToTarget("VomitPoints", 15)
        TNT1 A 0 A_GiveToTarget("ChokeBloodBallKill", 1)
		TNT1 A 0 A_GiveToTarget("ChokeBloodBallMulti", 1)
        Goto DeathAnim
    Death.FrostbiteMelee:
        TNT1 A 0 A_GiveToTarget("FrostbiteMeleeKill", 1)
        Goto GibDeath
	Death.FrostbiteMortar:
		TNT1 A 0 A_GiveToTarget("FrostyMortarKill", 1)
		Goto DeathAnim
    Death.FrostbiteIceBreath:
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_PlayerScream
		TNT1 A 0 A_GiveToTarget("FrostyBreathMulti", 1)
		TNT1 A 0 A_GiveToTarget("FrostbiteIceBreathKill", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("KilledMarine", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		TNT1 A 0 A_SpawnItemEx("MarineIceDeath", 0, 0, 0, 0, 0, 0)
		PLAY H 1
		BLAN A -1
		Stop
    Death.Impale:
        TNT1 A 0 A_GiveToTarget("ImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("DoubleImpaleKill", 1)
        Goto DeathAnim
    Death.IceFiendMelee:
        TNT1 A 0 A_GiveToTarget("NightmareMeleeKill", 1)
	Death.DimmedVision:
	DimVisionDeath:
		TNT1 A 0 A_JumpIfInventory("VisionDimmer", 1, 1)
		Goto FadeDeath
		TNT1 A 0 A_GiveToTarget("NightmareHealer", 1)
		TNT1 A 0 A_GiveToTarget("DimDurationEffect", 2)
		TNT1 A 0 A_GiveToTarget("InvisibleCounter", 0)
		TNT1 A 0 A_GiveToTarget("DimmedMeleeKill", 1)
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab1", 5, 0, 1)
		Goto FadeDeath
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab2", 5, 0, 1)
		Goto FadeDeath
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab3", 5, 0, 1)
		Goto FadeDeath
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab4", 5, 0, 1)
	    Goto FadeDeath
	Death.NightmareCleave:
		TNT1 A 0 A_GiveToTarget("CleaveKill", 1)
		TNT1 A 0 A_JumpIfInventory("VisionDimmer", 1, "DimVisionDeath")
		Goto FadeDeath
	FadeDeath:
	    TNT1 A 0 A_GiveToTarget("InvisibleCounter", 8)
		TNT1 A 0 A_GiveToTarget("KilledMarine", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		PLAY G 1
		TNT1 A 0 A_SpawnItemEx("FadeMarine", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
		BLAN A -1
	Stop
	Death.MohophRange:
	Death.Mohoph:
		PLAY A 0 A_GiveToTarget("TransMarine",1)
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		PLAY A 0 A_PlaySoundEx("MohophKill","Body")
		TNT1 A 0 A_GiveToTarget("MohophKill", 1)
		TNT1 A 0 A_GiveToTarget("MohophDamage", 1)
		TNT1 A 0 A_GiveToTarget("MohophDamageText", 1)
		TNT1 A 0 A_GiveToTarget("KilledMarine2", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("MohophJustMorphed", 1, 2)
		TNT1 A 0 A_Jump(256, 2)
		TNT1 A 0 A_GiveToTarget("JustMorphedKill", 1)
		TNT1 A 0 ACS_ExecuteAlways(514, 0, 0)
		PLAY A 0 ACS_ExecuteAlways(976,0)
		TNT1 A 0 A_JumpIfInTargetInventory("MohophWarlockCheck", 1, 1)
		Goto DeathAnim
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		Goto DeathAnim
	Death.MorgMelee:
		TNT1 A 0 A_GiveToTarget("MorgBatAmmo", 2)
		TNT1 A 0 A_GiveToTarget("MorgMeleeKill", 1)
		TNT1 A 0 A_GiveToTarget("MorgMulti", 1)
		Goto DeathAnim
	Death.MorgBat:
		TNT1 A 0 A_GiveToTarget("MorgBatKill", 1)
		Goto DeathAnim		
	}
}

actor MarineStomp : CyborgStomp
{
	deathsound "floor/hardx"
	+CLIENTSIDEONLY
}

Actor PistolReload : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 24
	+IGNORESKILL
}

ACTOR DualPistols : Weapon 2102
{
   Weapon.SelectionOrder 1800
   Inventory.PickupSound "weapons/getweapon02"
   Inventory.PickupMessage "You got an extra Pistol!"
   Obituary "%o was shot by %k's Dual Pistols."
   Weapon.AmmoType1 "PistolReload"
   Weapon.AmmoType2 "GrenadeAmmo"
   Weapon.AmmoGive 0
   Weapon.AmmoUse1 0
   Weapon.AmmoUse2 1
   decal "BulletChip"
   inventory.icon "PISTOLS"
   Weapon.SlotNumber 1
   +WEAPON.NOAUTOAIM
   +WIMPY_WEAPON
   +INVENTORY.UNDROPPABLE
   +AMMO_OPTIONAL
   +WEAPON.ALT_AMMO_OPTIONAL
   States
   {
   Spawn:
      TNT1 A 400
      Stop
   Ready:
	  V2PG A 0 A_JumpIfInventory("ForceReload", 1, "ReloadPistol")
      V2PG A 1 A_WeaponReady
      Loop
   Deselect:
	  TNT1 A 0 ACS_ExecuteAlways(499, 0, 1)
      V2PG A 1 A_Lower
	  TNT1 A 0 A_Lower
      Goto Deselect+1
   Select:
      TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_MARINE_PIST)
	  TNT1 A 0 ACS_ExecuteAlways(499, 0, 0)
      V2PG A 1 A_Raise
	  TNT1 A 0 A_Raise
      Goto Select+2
   Fire:
      V2PG A 1 A_JumpIfInventory("DoublePistolChecker",1,20) //15
      V2PF A 1 A_Light1
      V2PF B 0 A_PlayWeaponSound("pistol/newfire") 
	  V2PF A 0 A_FireBullets(0.5,0.5,1,5,"BulletPuffPistol",FBF_NORANDOM | FBF_USEAMMO)
      V2PF A 1 Bright A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,5,34+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
	  V2PF B 1 A_SpawnItemEx ("pistolcasing",cos(-pitch)*20,5,34+(sin(-pitch)*20),cos(-pitch)*0,-1,random(0,2),0,0,0)
	  V2PF C 0 A_GiveInventory("PistolReload", 1)
      V2PF A 0 A_GiveInventory("DoublePistolChecker",1)
      V2PF A 0 A_Light0
	  V2PG CDEDC 1
	  PSTG A 0 A_JumpIfInventory("PistolReload", 1, 2)
	  PSTG A 0 A_Jump(256, 3)
	  PSTG A 0 A_JumpIfInventory("ForceReload", 1, "ReloadPistol")
	  PSTG A 0 A_JumpIfInventory("PistolReload", 24, "ReloadPistol")
	  PSTG A 0 A_TakeInventory("ForceReload", 1)
	  V2PG A 1 A_ReFire
      Goto Ready
      V2PG A 1
      V2RF A 1 A_Light1
      V2RF A 0 A_PlayWeaponSound("pistol/newfire") 
	  V2RF A 0 A_FireBullets(0.5,0.5,1,5,"BulletPuffPistol",FBF_NORANDOM | FBF_USEAMMO)//5,6
      V2RF A 1 Bright A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,-5,34+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
	  V2RF G 0 A_GiveInventory("PistolReload", 1)
      V2RF A 0 A_TakeInventory("DoublePistolChecker",1)
      V2RF A 0 A_Light0
	  V2RF B 1 A_SpawnItemEx ("pistolcasing",cos(-pitch)*20,-5,34+(sin(-pitch)*20),cos(-pitch)*0, 1,random(0,2),0,0,0)
	  V2RG CDEDC 1
	  V2RF A 0 A_JumpIfInventory("PistolReload", 1, 2)
	  V2RF A 0 A_Jump(256, 3)
	  V2RF A 0 A_JumpIfInventory("ForceReload", 1, "ReloadPistol")
	  V2RF A 0 A_JumpIfInventory("PistolReload", 24, "ReloadPistol")
	  V2RF A 0 A_TakeInventory("ForceReload", 1)
      V2PG A 1 A_ReFire
      Goto Ready
   ReloadPistol:
	  V2PG GHIJKLMNO 1
	  V2PG A 0 A_PlaysoundEx("pistol/reload2", 5)
	  V2PG PQR 1
	  V2PR ABCD 1
	  V2PG A 0 A_PlaysoundEx("pistol/reload1", 5)
	  V2PR EFGHI 2
	  V2PR JKLMNOPQ 1
	  V2PG A 0 A_PlaysoundEx("pistol/reload2", 5)
	  V2PR RSTU 1
	  V2RR ABDEF 1
	  V2PG A 0 A_PlaysoundEx("pistol/reload1", 5)
	  V2RR GHI 2
	  V2RR JKLMNOPQR 1
	  V2RR A 0 A_TakeInventory("PistolReload", 24)
	  V2RR A 0 A_TakeInventory("ForceReload", 1)
	  V2PG A 6
	  Goto Ready
   Altfire:
	  TNT1 A 0 A_JumpIfInventory("GrenadeCooldown",1,"ready")
      V2PG A 0 A_JumpIfInventory("CreeperStunCheck",1,"Doublecheck")
      V2PG A 0 //A_JumpIfInventory("GrenadeCooldown",1,"Ready")
	  V2PG A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMax")
	  V2PG A 0 A_JumpIfInventory("GrenadePower",1,"Grenade")
	  V2PG A 0 A_JumpIfNoAmmo ("NoGrenades") 
	Goto Lower
   Doublecheck:
      V2PG A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMax")
	  V2PG A 0 A_JumpIfInventory("GrenadePower",1,"Grenade")
	  V2PG A 0 A_JumpIfNoAmmo ("NoGrenades") 
	  Goto Lower
	Lower:
	  V2PG A 1 offset (0, 40)
	  V2PG A 1 offset (0, 50)
	  V2PG A 1 offset (0, 60)
	  V2PG A 1 offset (0, 70)
	  V2PG A 1 offset (0, 80)
	  V2PG A 1 offset (0, 90)
	  V2PG A 1 offset (0, 100)
	  V2PG A 1 offset (0, 110)
	  V2PG A 1 offset (0, 120)
	  TNT1 A 3 A_PlayWeaponSound("weapons/grenadepin")
	   goto Grenade
	Return:
	  V2PG A 1 offset (0, 120) ACS_ExecuteAlways(998,0)
	  V2PG A 1 offset (0, 110)
	  V2PG A 1 offset (0, 100)
	  V2PG A 1 offset (0, 90)
	  V2PG A 1 offset (0, 80)
	  V2PG A 1 offset (0, 70)
	  V2PG A 1 offset (0, 60)
	  V2PG A 1 offset (0, 50)
	  V2PG A 1 offset (0, 40)
	  Goto Ready
	NoGrenades:
	  V2PG A 28 A_PlaySound("weapons/grenadeno")
	  Goto Ready
	Grenade:
	  TNT1 A 1 A_GiveInventory("GrenadePower",1)
	  TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
	  TNT1 A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMaxsound")
	  TNT1 A 0 A_Refire
	  Goto Throw
	Throw:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  HNDG IJ 1 offset (0, 40)
	  TNT1 A 0 ACS_NamedExecuteAlways("GrenadeCooldown",0)
	  HNDG A 0 A_PlayWeaponSound("weapons/grenadethrow")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",35,"Throw7")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",30,"Throw6")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",25,"Throw5")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",20,"Throw4")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",15,"Throw3")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",10,"Throw2")
	  HNDG A 1 A_JumpIfInventory("GrenadePower",5,"Throw1")	  
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw1:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade1", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw2:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade2", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw3: 
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade3", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw4:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade4", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw5:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade5", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw6:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade6", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw7:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade7", 0, 1, 0, 10)
	  Goto Throwpt2
	Throwpt2:
	  HNDG LMNOPQ 2
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_GiveInventory("GrenadeCooldown",1)
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
	GrenadeMaxsound:
      TNT1 A 0 ACS_ExecuteAlways(999,0)
	  TNT1 A 0 A_PlayWeaponSound("weapons/grenademax")
	  Goto GrenadeMax
	GrenadeMax:
	  TNT1 A 1 A_GiveInventory("GrenadePower",1)
	  TNT1 A 0 A_JumpIfInventory("GrenadePower",140,"GrenadeSloops")
	  TNT1 A 0 A_Refire
	  TNT1 A 0 A_PlaySoundEx("player/male/grunt1","Voice")
	  Goto Throw
	GrenadeSloops:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  TNT1 A 30 A_FireCustomMissile("ThrowingGrenadeOops", 0, 1, 0, -10)
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
   }
}

Actor Riotgun : Weapon replaces Shotgun
{
  radius 20
  height 16
  Weapon.SlotNumber 2
  weapon.selectionorder 1500
  weapon.kickback 100
  obituary "%o got pummeled by %k's shotgun."
  decal "BulletChip"
  inventory.pickupmessage "You got the shotgun!"
  weapon.ammotype "NewShell"
  inventory.icon "SHOTTY"
  weapon.ammouse 1
  weapon.ammogive 8
  Weapon.AmmoUse2 1
  Weapon.AmmoType2 "GrenadeAmmo"
  +INVENTORY.UNDROPPABLE
  +WEAPON.ALT_AMMO_OPTIONAL
  +WEAPON.NOAUTOAIM
  states
  {
  Spawn:
    SHTG A 400
    stop
  Ready:
    SHTG A 1 A_WeaponReady
    loop
  Deselect: 
    SHTG A 1 A_Lower
	TNT1 A 0 A_Lower
    loop
  Select:
    TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_MARINE_SG)
    SHTG A 1 A_Raise
	TNT1 A 0 A_Raise
    Goto Select+1
  Fire:
      SHTG E 0 A_GunFlash
	  SHTG E 0 A_FireBullets(7, 6, 8, 8, "BulletPuffShotgun", FBF_USEAMMO|FBF_NORANDOM) 
	  SHTG A 0 A_GiveInventory("UsedAmmo", 1)
	  SHTG E 0 A_PlayWeaponSound("weapons/shotgunNew")
      SHTG CDEFGHI 1 bright
	 // SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE", 20, -10, 36, 0, 0, 2, 0,0, 0) 
	  SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE",cos(-pitch)*20,-10,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
      SHTG JKLM 1
	  //SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE", 20, -15, 42, 0, 0, 2, 0,0, 0) 
	  SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
	  SHTG NOPQ 1
	  //SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE", 20, -15, 42, 0, 0, 2, 0,0, 0) 
	  SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
	  SHTG RSTU 1
	  //SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE", 20, -15, 42, 0, 0, 2, 0,0, 0) 
	  SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
	  SHTG V 2
	  //SHTG V 0 A_SpawnItemEx ("shotguncasing", 36, -18, 34, 0, 6, 0, 0,0, 0) 
	  SHTG G 0 A_SpawnItemEx ("shotguncasing",cos(-pitch)*36,-18,34+(sin(-pitch)*36),cos(-pitch)*0,random(5, 8), random(0, 1),0,0,0)
	  SHTG V 2
	  //SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE", 20, -15, 42, 0, 0, 2, 0,0, 0) 
	  SHTG G 0 A_SpawnItemEx ("SHOTGUNSMOKE",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
	  SHTG UTSRQPONMLKJ 1
      SHTG A 1 A_ReFire
      Goto Ready
  Altfire:
	  TNT1 A 0 A_JumpIfInventory("GrenadeCooldown",1,"ready")
	  SHTG A 0 A_JumpIfInventory("CreeperStunCheck",1,"Doublecheck")
	  SHTG A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMax")
	  SHTG A 0 A_JumpIfInventory("GrenadePower",1,"Grenade")
	  SHTG A 0 A_JumpIfNoAmmo ("NoGrenades") 
	  Goto Lower
    Doublecheck:
      SHTG A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMax")
	  SHTG A 0 A_JumpIfInventory("GrenadePower",1,"Grenade")
	  SHTG A 0 A_JumpIfNoAmmo ("NoGrenades") 
	  Goto Lower
	Lower:
	  SHTG A 1 offset (0, 40)
	  SHTG A 1 offset (0, 50)
	  SHTG A 1 offset (0, 60)
	  SHTG A 1 offset (0, 70)
	  SHTG A 1 offset (0, 80)
	  SHTG A 1 offset (0, 90)
	  SHTG A 1 offset (0, 100)
	  SHTG A 1 offset (0, 110)
	  SHTG A 1 offset (0, 120)
	  TNT1 A 3 A_PlayWeaponSound("weapons/grenadepin")
	  Goto Grenade
	Grenade:
	  TNT1 A 1 A_GiveInventory("GrenadePower",1)
	  TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
	  TNT1 A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMaxsound")
	  TNT1 A 0 A_Refire
	  Goto Throw
	Throw:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  HNDG IJ 1 offset (0, 40)
	  TNT1 A 0 ACS_NamedExecuteAlways("GrenadeCooldown",0)
	  HNDG A 0 A_PlayWeaponSound("weapons/grenadethrow")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",35,"Throw7")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",30,"Throw6")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",25,"Throw5")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",20,"Throw4")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",15,"Throw3")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",10,"Throw2")
	  HNDG A 1 A_JumpIfInventory("GrenadePower",5,"Throw1")
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw1:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade1", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw2:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade2", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw3: 
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade3", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw4:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade4", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw5:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade5", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw6:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade6", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw7:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade7", 0, 1, 0, 10)
	  Goto Throwpt2
	Throwpt2:
	  HNDG LMNOPQ 2
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_GiveInventory("GrenadeCooldown",1)
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
	GrenadeMaxsound:
      TNT1 A 0 ACS_ExecuteAlways(999,0)
	  TNT1 A 0 A_PlayWeaponSound("weapons/grenademax")
	  Goto GrenadeMax
	GrenadeMax:
	  TNT1 A 1 A_GiveInventory("GrenadePower",1)
	  TNT1 A 0 A_JumpIfInventory("GrenadePower",140,"GrenadeSloops")
	  TNT1 A 0 A_Refire
	  TNT1 A 0 A_PlaySoundEx("player/male/grunt1","Voice")
	  Goto Throw
	GrenadeSloops:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  TNT1 A 30 A_FireCustomMissile("ThrowingGrenadeOops", 0, 1, 0, -10)
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
	Return:
	  SHTG A 1 offset (0, 120) ACS_ExecuteAlways(998,0)
	  SHTG A 1 offset (0, 110)
	  SHTG A 1 offset (0, 100)
	  SHTG A 1 offset (0, 90)
	  SHTG A 1 offset (0, 80)
	  SHTG A 1 offset (0, 70)
	  SHTG A 1 offset (0, 60)
	  SHTG A 1 offset (0, 50)
	  SHTG A 1 offset (0, 40)
	  Goto Ready
	Flash:
	  NULL A 4 bright A_Light1
	  NULL A 3 bright A_Light2
	  NULL A 0 bright A_Light0
	  stop
	NoGrenades:
	  SHTG A 4 A_PlaySound("weapons/grenadeno")
	  Goto Ready
    }
}

Actor NewShell : Ammo {
	Inventory.Amount 4
	Inventory.MaxAmount 75
	Ammo.BackpackAmount 4
	Ammo.BackpackMaxAmount 100
	Inventory.Icon "SHELA0"
	+IGNORESKILL
}

Actor GrenadePower : Ammo
{
   Inventory.Amount 1
   Inventory.MaxAmount 210
   +IGNORESKILL
}

ACTOR DoublePistolChecker : Inventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 1
}

Actor NewClip : Ammo {
  Inventory.PickupMessage "$GOTCLIP" // "Picked up a clip."
  Inventory.Amount 10
  Inventory.MaxAmount 200
  Ammo.BackpackAmount 10
  Ammo.BackpackMaxAmount 400
  Inventory.Icon "CLIPA0"
  +IGNORESKILL
}

ACTOR Machinegun : Weapon 2109
{
   Weapon.SelectionOrder 680
   Weapon.SlotNumber 3
   Inventory.PickupSound "weapons/getweapon04"
   Inventory.PickupMessage "The Machine Gun!"
   //Obituary "%o was fully perforated by %k's Machine Gun."
   Weapon.AmmoType1 "NewClip"
   Weapon.AmmoGive 0
   decal "BulletChip"
   Weapon.AmmoUse1 1
   Scale 0.8
   inventory.icon "HCNGA0"
   Weapon.AmmoUse2 1
   Weapon.AmmoType2 "GrenadeAmmo"
   AttackSound "weapons/hchngun"
   +WEAPON.ALT_AMMO_OPTIONAL
   +WEAPON.NOAUTOAIM
   States
   {
   Spawn:
      TNT1 A 400
      Stop
	Ready:
		HCGG A 1 A_WeaponReady
		Loop
	Deselect:
		HCGG A 1 A_Lower
		TNT1 A 0 A_Lower
		Loop
	Select:
	    TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_MARINE_MG)
		HCGG A 1 A_Raise
		TNT1 A 0 A_Raise
		Goto Select+1
	Fire:
		SHTG A 0 A_GiveInventory("UsedAmmo", 1)
		TNT1 A 0 A_PlaySound("weapons/minigunup")
		HCGG CD 7 // Spinup
		HCGG AB 6
		Goto Hold
	Hold:
		HCGF A 0 A_GunFlash // 3 2
		//HCGF A 0 A_SpawnItemEx ("chaingunsmoke", 20, 0, 36, 0, 0, 2, 0,0, 0) 
		HCGF A 0 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
	    HCGF A 2 bright A_FireBullets (4.8, 3.6, 1, 1*9, "BulletPuffMachinegun", FBF_USEAMMO|FBF_NORANDOM)
		HCGF B 2 bright A_SpawnItemEx ("bulletcasing",cos(-pitch)*20,0,32+(sin(-pitch)*20),cos(-pitch)*0,8,random(4,8),0,0,0)
		HCGF A 0 A_GunFlash
		//HCGF A 0 A_SpawnItemEx ("chaingunsmoke", 20, 0, 36, 0, 0, 2, 0,0, 0) 
		HCGF A 0 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)
		HCGF C 2 bright A_FireBullets (4.8, 3.6, -1, 9, "BulletPuffMachinegun", FBF_USEAMMO|FBF_NORANDOM)
		HCGF D 2 bright A_SpawnItemEx ("bulletcasing",cos(-pitch)*20,0,32+(sin(-pitch)*20),cos(-pitch)*0,8,random(4,8),0,0,0)
		HCGF A 0 A_Refire
		goto Spindown
	Spindown:
		TNT1 A 0 A_PlaySound("weapons/minigundown")
		HCGF A 0 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0) 
		HCGG GFE 1
		HCGF A 0 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)
	    HCGG B 2 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)
		HCGG B 2 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)
		HCGG B 2 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)
		HCGG C 2 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)
		HCGG C 2 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)
		HCGG C 2 A_SpawnItemEx ("chaingunsmoke",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)
		HCGG D 6 a_weaponready
		Goto Ready
   Altfire:
	  TNT1 A 0 A_JumpIfInventory("GrenadeCooldown",1,"ready")
      MING A 0 A_JumpIfInventory("CreeperStunCheck",1,"Doublecheck")
      MING A 0 //A_JumpIfInventory("GrenadeCooldown",1,"Ready")
	  MING A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMax")
	  MING A 0 A_JumpIfInventory("GrenadePower",1,"Grenade")
	  MING A 0 A_JumpIfNoAmmo ("NoGrenades") 
	  Goto Lower
	   Doublecheck:
		  MING A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMax")
		  MING A 0 A_JumpIfInventory("GrenadePower",1,"Grenade")
		  MING A 0 A_JumpIfNoAmmo ("NoGrenades") 
		Goto Lower
	    Lower:
		  HCGG A 1 offset (0, 40)
		  HCGG A 1 offset (0, 50)
		  HCGG A 1 offset (0, 60)
		  HCGG A 1 offset (0, 70)
		  HCGG A 1 offset (0, 80)
		  HCGG A 1 offset (0, 90)
		  HCGG A 1 offset (0, 100)
		  HCGG A 1 offset (0, 110)
		  HCGG A 1 offset (0, 120)
		  TNT1 A 3 A_PlayWeaponSound("weapons/grenadepin")
		goto Grenade
		 Return:
		  HCGG A 1 offset (0, 120) ACS_ExecuteAlways(998,0)
		  HCGG A 1 offset (0, 110)
		  HCGG A 1 offset (0, 100)
		  HCGG A 1 offset (0, 90)
		  HCGG A 1 offset (0, 80)
		  HCGG A 1 offset (0, 70)
		  HCGG A 1 offset (0, 60)
		  HCGG A 1 offset (0, 50)
		  HCGG A 1 offset (0, 40)
		 Goto Ready
	NoGrenades:
	  HCGG A 28 A_PlaySound("weapons/grenadeno")
	  Goto Ready
	Grenade:
	  TNT1 A 1 A_GiveInventory("GrenadePower",1)
	  TNT1 A 0 A_GiveInventory("UsedAmmo", 1)
	  TNT1 A 0 A_JumpIfInventory("GrenadePower",35,"GrenadeMaxsound")
	  TNT1 A 0 A_Refire
	  Goto Throw
	Throw:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  HNDG IJ 1 offset (0, 40)
	  TNT1 A 0 ACS_NamedExecuteAlways("GrenadeCooldown",0)
	  HNDG A 0 A_PlayWeaponSound("weapons/grenadethrow")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",35,"Throw7")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",30,"Throw6")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",25,"Throw5")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",20,"Throw4")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",15,"Throw3")
	  HNDG A 0 A_JumpIfInventory("GrenadePower",10,"Throw2")
	  HNDG A 1 A_JumpIfInventory("GrenadePower",5,"Throw1")	 
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw1:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade1", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw2:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade2", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw3: 
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade3", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw4:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade4", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw5:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade5", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw6:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade6", 0, 1, 0, 10)
	  Goto Throwpt2
	Throw7:
	  HNDG K 2 A_FireCustomMissile("ThrowingGrenade7", 0, 1, 0, 10)
	  Goto Throwpt2
	Throwpt2:
	  HNDG LMNOPQ 2
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_GiveInventory("GrenadeCooldown",1)
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
	GrenadeMaxsound:
      TNT1 A 0 ACS_ExecuteAlways(999,0)
	  TNT1 A 0 A_PlayWeaponSound("weapons/grenademax")
	  Goto GrenadeMax
	GrenadeMax:
	  TNT1 A 1 A_GiveInventory("GrenadePower",1)
	  TNT1 A 0 A_JumpIfInventory("GrenadePower",140,"GrenadeSloops")
	  TNT1 A 0 A_Refire
	  TNT1 A 0 A_PlaySoundEx("player/male/grunt1","Voice")
	  Goto Throw
	GrenadeSloops:
	  TNT1 A 0 ACS_ExecuteAlways(998,0)
	  TNT1 A 30 A_FireCustomMissile("ThrowingGrenadeOops", 0, 1, 0, -10)
	  TNT1 A 0 A_ClearRefire
	  TNT1 A 0 A_TakeInventory("GrenadePower",500)
	  Goto Return
	}
}

actor GrenadeAmmo : Ammo
{
  inventory.pickupmessage "Picked up a grenade."
  inventory.amount 1
  inventory.maxamount 50
  inventory.icon "PGRND0"
  ammo.backpackamount 10
  ammo.backpackmaxamount 100
  states
  {
  Spawn:
    PGRN A -1
    stop
  }
}

Actor GrenadeExploder
{
	Speed 0
	Height 4
	Radius 4
	Damage (0)
	PROJECTILE
	+BLOODLESSIMPACT
	+RIPPER
	Obituary "%o sucked down %k's grenade."
	damagetype "MarineGrenade"
	States
	{
		Spawn:
			TNT1 A 0
		Goto Death
		Death:
			TNT1 A 1 A_Explode(100,random(150,170),1)
			TNT1 A 1
		Stop
	}
}

Actor ThrowingGrenade
{
	radius 7
	height 5
	Obituary "%o sucked down %k's grenade."
	damagetype "MarineGrenade"
	PROJECTILE
	+DOOMBOUNCE
	+BOUNCEONACTORS
	-NOGRAVITY
	+MTHRUSPECIES
	speed 19
	scale 0.38
	bouncecount 2
	bouncefactor 0.5
	reactiontime 5
	seesound "weapons/grenadebounce"
	States
	{
	Spawn:
		HGRN A 0
		HGRN A 0 ThrustThingZ(0, 20, 0, 1)
		HGRN ABCDEF 2
		HGRN A 0 A_Countdown
		Goto Spawn+2
		Death:
		NKXP A 0 A_SpawnItemEx("GrenadeExplosion", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		NKXP A 1  A_SpawnItem("GrenadeExploder")
		Stop
	}
}

actor ThrowingGrenade1 : ThrowingGrenade
{
	Obituary "%o sucked down %k's grenade."
	speed 24
}

actor ThrowingGrenade2 : ThrowingGrenade
{
	Obituary "%o sucked down %k's grenade."
	speed 29
}

actor ThrowingGrenade3 : ThrowingGrenade
{
	Obituary "%o sucked down %k's grenade."
	speed 34
}

actor ThrowingGrenade4 : ThrowingGrenade
{
	Obituary "%o sucked down %k's grenade."
	speed 39
}

actor ThrowingGrenade5 : ThrowingGrenade
{
	Obituary "%o sucked down %k's grenade."
	speed 44
}

actor ThrowingGrenade6 : ThrowingGrenade
{
	Obituary "%o sucked down %k's grenade."
	speed 49
}

actor ThrowingGrenade7 : ThrowingGrenade
{
	Obituary "%o sucked down %k's grenade."
	speed 54
}

actor GrenadeExplosion
{
	Obituary "%o sucked down %k's grenade."
	Damagetype "MarineGrenade"
	renderstyle translucent
	alpha 1.0
	+NOGRAVITY
	-SOLID
	+NOBLOCKMAP
	radius 1
	height 1
	States
	{
	Spawn:
		NKXP A 0 
		NKXP A 0 A_spawndebris("grenadeflame", 0, 3.5, 1.5)
		NKXP A 0 A_spawndebris("grenadeflamesmoke", 0, 2.0, 1.2)
		NKXP A 0 A_spawndebris("grenadeflamesmoke", 0, 2.0, 1.2)
		NKXP A 0 A_spawndebris("grenadeflamesmoke", 0, 2.0, 1.2)
		NKXP A 0 A_PlaySound("weapons/grenadeexplode", CHAN_AUTO)
		NKXP A 0 acs_executealways(617)
		NKXP BCDEFGHIJKLMNOPQRSTUV 2 bright A_FadeOut(0.04)
		Stop
	}
}

actor grenadeflamesmoke
{
	health 10
	PROJECTILE
	-NOGRAVITY
	-NOBLOCKMAP
	+clientsideonly
	-activateimpact
	scale 0.25
	renderstyle translucent
    Radius 6
	height 6
	speed 0
	damage 0
    Obituary "%o died from %k's grenade debris."
    States
    {
    Spawn:
		SMOK ABCDEFGHIJKLMNOPQ 1 A_FADEOUT(0.03)
		loop
    Death:
        TNT1 A 1
		STOP
    }
}


actor grenadeflame
{
	health 10
	PROJECTILE
	-NOGRAVITY
	-NOBLOCKMAP
	scale 0.1
    Radius 6
	height 6
	speed 0
	damage (1)
	renderstyle translucent
	alpha 0.7
    Obituary "%o died from %k's grenade debris."
    States
    {
    Spawn:
		TNT1 A 0
		TNT1 A 1 a_jump(256, "sprite1", "sprite2", "sprite3")
		sprite1:
		BFIR A 1 bright
		goto sprite1
		sprite2:
		BFIR B 1 bright
		goto sprite2
		sprite3:
		BFIR C 1 bright
		goto sprite3
    Death:
        TNT1 A 1
		STOP
    }
}

actor ThrowingGrenadeOops
{
	Obituary "%k was a maggot and took %o with %hself on the way out!"
	radius 7
	height 5
	+DOOMBOUNCE
	damagetype "MarineSuicideGrenade"
	+BOUNCEONACTORS
	-NOGRAVITY
	speed 30
	scale 0.38
	bouncecount 2
	bouncefactor 0.5
	reactiontime 5
	States
	{
	Spawn:
		HGRN A 0 
		HGRN A 0 A_PlaySound("weapons/grenadeexplode")
		Goto Death
		Death:
		NKXP A 0 A_SpawnItemEx("GrenadeExplosion", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		NKXP A 1 A_Explode(160,160,1)
		NKXP A 0 A_PlaySound("weapons/grenadeexplode")
		Stop
	}
}


Actor BulletPuff2 : BulletPuff
{
	States
	{
	  Spawn:
		PUFF A 0
		TNT1 A 0 A_SpawnDebris("SparkPuff", 1)
		PUFF A 4 bright A_PlaySound("puff/ric")
		PUFF B 4
		Goto Melee
	  Melee:
		PUFF CD 4
		stop
	}
}

Actor SparkPuff : BulletPuff
{
	+DOOMBOUNCE
	+FLOORCLIP
	+DONTSPLASH
	+NOTELEPORT
	-NOGRAVITY
	-LOWGRAVITY
	-ALLOWPARTICLES
	+clientsideonly
	Health 4
	Radius 4
	Height 8
	Speed  1
	Mass   0
	Scale 0.125
	States
	{
	  Spawn:
	  Death:
		BPFF ABABAB 1 bright
		BPFF A 0 bright
		BPFF ABABABABAB 1 bright A_FadeOut(0.01)
		Stop
	}
}

Actor BulletPuffPistol : BulletPuff2
{
	DamageType "MarinePistol"
	obituary "%o got sniped by %k's dual pistols."
}

Actor BulletPuffMachineGun : BulletPuff2
{
	DamageType "MarineMachineGun"
	obituary "%o was perforated by %k's machinegun."
}

Actor BulletPuffShotgun : BulletPuff2
{
	DamageType "MarineShotgun"
	obituary "%o got pummeled by %k's shotgun."
}

actor IsFemale : Inventory
{
    inventory.amount 1
    inventory.maxamount 1
}

actor GrenadeDelayer : PowerDamage
{
	damagefactor "nothing", 0.2
	powerup.duration -4
}

Actor AmmoSatchel2 : CustomInventory
{
	inventory.amount 1
	inventory.maxamount 10
	+INVENTORY.UNDROPPABLE
	+AUTOACTIVATE
	+ALWAYSPICKUP
	states
	{
	Spawn:
		TNT1 A 1
		Stop
	Use:
		TNT1 A 1 A_GiveInventory("NewShell", 5)
		TNT1 A 0 A_GiveInventory("NewClip", 25)
		TNT1 A 0 A_GiveInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_PlaySoundEx ("UseSatchel", 5)
		Stop
	}
}

actor shotgunsmoke
{
	vspeed 3
	renderstyle translucent
	scale 0.05
	alpha 0.25
	+clientsideonly
	+NOGRAVITY
	States
	{
		spawn:
		death:
		SMOK ABCDEFGHIJKLNOPQ 1
		stop
	}
}

actor chaingunsmoke
{
	vspeed 3
	renderstyle translucent
	scale 0.04
	alpha 0.25
	+clientsideonly
	+NOGRAVITY
	States
	{
		spawn:
		death:
		SMOK ABCDEFGHIJKLNOPQ 1
		stop
	}
}

actor CASINGSMOKE
{
	vspeed 1
	renderstyle translucent
	scale 0.025
	alpha 0.2
	+clientsideonly
	+NOGRAVITY
	States
	{
		spawn:
		death:
		SMOK ABCDEFGHIJKLNOPQ 1
		stop
	}
}

actor bulletCASINGSMOKE
{
	vspeed 1
	renderstyle translucent
	scale 0.02
	alpha 0.18
	+clientsideonly
	+NOGRAVITY
	States
	{
		spawn:
		death:
		SMOK ABCDEFGHIJKLNOPQ 1
		stop
	}
}

actor bulletcasing
{
	PROJECTILE
	+CLIENTSIDEONLY
	+DONTSPLASH
	+DOOMBOUNCE
	-ACTIVATEIMPACT
	-NOGRAVITY
	-NOBLOCKMAP
	bouncefactor 0.6
	scale 0.2
    Radius 3
    SeeSound "Weapons/mincase"
    States
    {
    Spawn:
        MCAS A 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS A 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS B 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS B 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS C 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS C 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS D 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS D 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS E 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS E 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS F 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS F 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS G 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS G 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS H 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS H 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS A 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS A 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS B 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS B 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS C 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS C 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS D 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS D 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS E 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS E 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS F 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS F 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS G 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS G 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS H 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        MCAS H 1 A_SpawnItemEx ("bulletCASINGSMOKE", 0, 0, 0, 0, 0, 1, 0,0, 0) 
    Death:
        MCAS C 0 A_Jump (85, "death1", "death2", "death3")
        MCAS C 0 A_Jump (85, "death1", "death2", "death3")
        MCAS C 0 A_Jump (85, "death1", "death2", "death3")
		death0:
		MCAS A 10 a_fadeout(0.05)
        goto death0
		death1:
		MCAS C 10 a_fadeout(0.05)
        goto death1
		death2:
		MCAS E 10 a_fadeout(0.05)
        goto death2
		death3:
		MCAS G 10 a_fadeout(0.05)
        goto death3
    }
}

actor pistolcasing
{
	PROJECTILE
	+CLIENTSIDEONLY
	+DONTSPLASH
	+DOOMBOUNCE
	-ACTIVATEIMPACT
	-NOGRAVITY
	-NOBLOCKMAP
	bouncefactor 0.6
	scale 0.1
    Radius 3
    SeeSound "Weapons/mincase"
    States
    {
    Spawn:
		MCAS ABCDEFGH 2
    Death:
        MCAS C 0 A_Jump (85, "death1", "death2", "death3")
        MCAS C 0 A_Jump (85, "death1", "death2", "death3")
        MCAS C 0 A_Jump (85, "death1", "death2", "death3")
		death0:
		MCAS A 10 a_fadeout(0.05)
        goto death0
		death1:
		MCAS C 10 a_fadeout(0.05)
        goto death1
		death2:
		MCAS E 10 a_fadeout(0.05)
        goto death2
		death3:
		MCAS G 10 a_fadeout(0.05)
        goto death3
    }
}

actor shotguncasing
{
	PROJECTILE
	+CLIENTSIDEONLY
	+DONTSPLASH
	+DOOMBOUNCE
	-ACTIVATEIMPACT
	-NOGRAVITY
	-NOBLOCKMAP
	bouncefactor 0.6
	scale 0.25
    Radius 3
    seesound "Weapons/shotguncasing"
    States
    {
    Spawn:
        LCSC A 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC A 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC A 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC B 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC B 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC B 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC C 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC C 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC C 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC D 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC D 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC D 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC E 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC E 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC E 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC F 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC F 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC F 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC G 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC G 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC G 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC H 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC H 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
        LCSC H 1 A_SpawnItemEx ("casingsmoke", 0, 0, 0, 0, 0, 1, 0,0, 0) 
    Death:
        LCSC C 0 A_Jump (85, "death1", "death2", "death3")
        LCSC C 0 A_Jump (85, "death1", "death2", "death3")
        LCSC C 0 A_Jump (85, "death1", "death2", "death3")
		death0:
		LCSC A 10 a_fadeout(0.05)
        goto death0
		death1:
		LCSC C 10 a_fadeout(0.05)
        goto death1
		death2:
		LCSC E 10 a_fadeout(0.05)
        goto death2
		death3:
		LCSC G 10 a_fadeout(0.05)
        goto death3
    }
}

Actor ShotgunReload : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 6
	+IGNORESKILL
}

actor GrenadeCooldown : inventory { Inventory.MaxAmount 1 }