Actor GMIDFist : Fist Replaces Fist
{
	Weapon.BobRangeX 0.3
	Weapon.BobRangeY 0.5
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.0
	Tag "Bare Hands"
	Inventory.PickupMessage "Thou shalt not see this."
	Obituary "%o lost a fistfight with %k."
    +WEAPON.NOALERT
	+WEAPON.NOAUTOFIRE
	Weapon.UpSound "knuckled"
	states
	{
		Ready:
			FIST A 1 A_WeaponReady
			loop
		Fire:
			TNT1 A 0 A_Jump(256, "Fist1", "Fist2")
			Goto Fist1
		Fist1:
			TNT1 A 0 A_GunFlash("LFistStay")
			TNT1 A 0 A_PlaySound("fist/normalthrow")
			FIS1 BC 1
			FIS1 E 1 A_CustomPunch(2,0,0,"FistPuff")
			FIS1 F 1
			FIS1 EDCBA 1 A_WeaponReady(WRF_NOBOB|WRF_NOSWITCH)
			Goto Ready
		Fist2:
			TNT1 A 0 A_GunFlash("RFistStay")
			TNT1 A 0 A_PlaySound("fist/normalthrow")
			FIS2 BC 1
			FIS2 E 1 A_CustomPunch(2,0,0,"FistPuff")
			FIS2 F 1
			FIS2 EDCBA 1 A_WeaponReady(WRF_NOBOB|WRF_NOSWITCH)
			Goto Ready
		LFistStay:
			FIS2 A 9
			Stop
		RFistStay:
			FIS1 A 9
			Stop
  AltFire:
	TNT1 A 0 A_GunFlash("WeaponStill")
	TNT1 A 0 A_PlaySound ("weapons/KICK")
	FOOT AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT C 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_CustomPunch(5,0,0,"KickPuff")
	FOOT D 0 A_Quake(1,2,0,10)
	FOOT EF 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT FEDCBA 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 0 A_ReFire
	Goto Ready
		WeaponStill:
			FIST A 22
			Goto LightDone
		Deselect:
			FIST A 1 A_Lower
			FIST A 0 A_Lower
			Loop
		Select:
			FIST A 1 A_Raise
			FIST A 0 A_Raise
			Loop
		}
}
Actor GMIDChainsaw : Chainsaw Replaces Chainsaw
{
	Weapon.BobRangeX 0.3
	Weapon.BobRangeY 0.5
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.0
	Weapon.UpSound "weapons/sawup"
	Weapon.ReadySound ""
	Tag "Angle Grinder"
	+WEAPON.NOALERT
	Inventory.PickupMessage "You got the Angle Grinder! Groovy! \cf(\cjSlot 1\cf)"
	Obituary "%o was slaughtered by %k's Angle Grinder."
	States
	{
	Spawn:
	CSAW A -1
	Stop
	Ready:
    SAWG A 1 A_WeaponReady
	Loop
	Fire:
	SAWG A 0 A_AlertMonsters
	SAWG A 0 A_PlaySound("grinder/start", CHAN_WEAPON)
	SAWG ACD 2
	SAWG E 0 A_PlaySound("grinder/continue", CHAN_WEAPON)
	SAWG E 1 A_CustomPunch(2*random(1,10),1,0,"GrinderPuff")
	SAWG FGH 1
	TNT1 A 0 A_Refire("KeepFiring")
	SAWG D 0 A_PlaySound("grinder/stop", CHAN_WEAPON)
	SAWG DCBABBAABBBAAABBBBAAAABBBBBAAAAA 2 A_WeaponReady
	goto Ready
	KeepFiring:
	SAWG E 0 A_AlertMonsters
	SAWG E 0 A_PlaySound("grinder/continue", CHAN_WEAPON)
	SAWG E 1 A_CustomPunch(2*random(1,10),1,0,"GrinderPuff")
	SAWG FGH 1
	TNT1 A 0 A_Refire("KeepFiring")
	SAWG D 0 A_PlaySound("grinder/stop", CHAN_WEAPON)
	SAWG DCBABBAABBBAAABBBBAAAABBBBBAAAAA 2 A_WeaponReady
	goto Ready
  AltFire:
	TNT1 A 0 A_GunFlash("WeaponStill")
	TNT1 A 0 A_PlaySound ("weapons/KICK")
	FOOT AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT C 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_CustomPunch(5,0,0,"KickPuff")
	FOOT D 0 A_Quake(1,2,0,10)
	FOOT EF 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT FEDCBA 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 0 A_ReFire
	Goto Ready
	WeaponStill:
	SAWG A 22
	Goto LightDone
  Deselect:
    SAWG A 1 A_Lower
    SAWG A 0 A_Lower
    Loop
  Select:
    SAWG A 1 A_Raise
    SAWG A 0 A_Raise
    Loop
	}
}

Actor GMIDShotgun : Shotgun Replaces Shotgun
{
	Weapon.BobRangeX 0.3
	Weapon.BobRangeY 0.5
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.0
	Weapon.UpSound "shotcock"
	attacksound ""
	Weapon.AmmoUse 1
	+WEAPON.NOALERT
	Tag "UAC Pump-Action Shotgun"
	Inventory.PickupMessage "You got the UAC Pump-Action Shotgun! \cf(\cjSlot 3\cf)"
	Obituary "%o chewed on %k's Pump-Action Shotgun."
	states
	{
		Spawn:
			SHOT A -1
			Stop
		Fire:
			SHTG A 0 A_AlertMonsters
			SHTG A 0 A_JumpIfInventory("PowerQuadDamageST", 1, "QuadFire")
			SHTG A 3
			SHTG A 0 A_SetPitch(pitch-0.5)
			SHTG A 0 A_PlaySound("weapons/GMSHOTGN", CHAN_WEAPON)
			SHTG A 0 A_Light1
			SHTG A 0 A_FireBullets (5.6, 0, 7, 5, "XaserPuff")
			SHTG B 1 Bright
			SHTG C 0 A_SetPitch(pitch+0.25)
			SHTG C 1 Bright A_Light2
			SHTG D 0 A_SetPitch(pitch+0.25)
			SHTG D 0 A_Light0
			SHTG DEFGHA 1
			SHTG HI 2
			SHTG JK 1
			TNT1 A 0 A_PlaySound("Shotgun/Pump1", CHAN_AUTO)
			SHTG L 0 A_FireCustomMissile("ShotgunCasingSpawner",0,0,17,0)
			SHTG LMM 1
			SHTG M 1 A_PlaySound("Shotgun/Pump2", CHAN_AUTO)
			SHTG L 1
			SHTG KJ 2
			SHTG IH 1
			SHTG A 2
			SHTG A 1 A_ReFire
			goto Ready
		QuadFire:
			SHTG A 3
			TNT1 A 0 A_SetBlend("Blue", 0.50, 16)
			SHTG A 0 A_PlaySound("QuadDamage/Use")
			SHTG A 0 A_SetPitch(pitch-0.5)
			SHTG A 0 A_PlaySound("weapons/GMSHOTGN", CHAN_WEAPON)
			SHTG A 0 A_FireBullets (5.6, 0, 7, 5, "XaserPuff")
			SHTG B 1 Bright
			SHTG C 0 A_SetPitch(pitch+0.25)
			SHTG C 1 Bright A_Light2
			SHTG D 0 A_SetPitch(pitch+0.25)
			SHTG D 0 A_Light0
			SHTG DEFGHA 1
			SHTG HI 2
			SHTG JK 1
			TNT1 A 0 A_PlaySound("Shotgun/Pump1", CHAN_AUTO)
			SHTG L 0 A_FireCustomMissile("ShotgunCasingSpawner",0,0,17,0)
			SHTG LMM 1
			SHTG M 1 A_PlaySound("Shotgun/Pump2", CHAN_AUTO)
			SHTG L 1
			SHTG KJ 2
			SHTG IH 1
			SHTG A 2
			SHTG A 1 A_ReFire
			goto Ready
		Ready:
			SHTG A 1 A_WeaponReady
			Loop
		Deselect:
			SHTG A 1 A_Lower
			SHTG A 0 A_Lower
			Loop
		Select:
			SHTG A 1 A_Raise
			SHTG A 0 A_Raise
			Loop
  AltFire:
	TNT1 A 0 A_GunFlash("WeaponStill")
	TNT1 A 0 A_PlaySound ("weapons/KICK")
	FOOT AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT C 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_CustomPunch(5,0,0,"KickPuff")
	FOOT D 0 A_Quake(1,2,0,10)
	FOOT EF 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT FEDCBA 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 0 A_ReFire
	Goto Ready
		WeaponStill:
			SHTG A 22
			Goto LightDone
		}
}

Actor GMIDSuperShotgun : SuperShotgun Replaces SuperShotgun
{
	Weapon.BobRangeX 0.3
	Weapon.BobRangeY 0.5
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.0
	Weapon.UpSound "dbcock"
	Tag "Sawn-Off"
	Weapon.AmmoUse 2
	+WEAPON.NOALERT
	Inventory.PickupMessage "You got the Sawn-Off! \cf(\cjSlot 3\cf)"
	Obituary "%o was decapitated by %k's Sawn-Off."
	states
	{
	Spawn:
		SGN2 A -1
		Stop
	Ready:
		SHOG A 1 A_WeaponReady
		Loop
	Fire:
		SHOG A 0 A_PlayWeaponSound("weapons/DSDSHTGN")
		SHOG A 0 A_AlertMonsters
		SHOG A 0 A_JumpIfInventory("PowerQuadDamageST", 1, "QuadFire")
		SHOF A 0 A_SetPitch(pitch-1)
		SHOF A 0 A_Light1
		SHOF A 1 A_FireBullets (5.6, 3.55, 20, 5, "XaserPuff")
		SHOF B 0 A_SetPitch(pitch+0.5)
		SHOF B 0 A_Light0
		SHOF B 1 BRIGHT
		SHOG B 0 A_SetPitch(pitch+0.5)
		SHOG BC 1
		SHOG D 2
		SHOG EFGHIJ 1
		SHOG K 1 A_CheckReload
		SHOG L 1 A_PlayWeaponSound ("weapons/ssg1")
		SHOG M 1 A_FireCustomMissile("ShotgunCasingSpawner",0,0,10,0)
		SHOG N 1 A_FireCustomMissile("ShotgunCasingSpawner",0,0,8,0)
		SHOG OPQR 1
		TNT1 A 5
		TNT1 A 1 A_PlayWeaponSound ("weapons/DSDBLOAD")
		TNT1 A 5
		SHOG STUVW 1
		SHOG X 1 A_PlayWeaponSound ("weapons/DSDBCLS")
		SHOG YZ 1
		SHOG A 0 A_ReFire
		goto Ready
	QuadFire:
		TNT1 A 0 A_SetBlend("Blue", 0.50, 16)
		SHOG A 0 A_PlaySound("QuadDamage/Use")
		SHOF A 0 A_SetPitch(pitch-1)
		SHOF A 0 A_Light1
		SHOF A 1 A_FireBullets (5.6, 3.55, 20, 5, "XaserPuff")
		SHOF B 0 A_SetPitch(pitch+0.5)
		SHOF B 0 A_Light0
		SHOF B 1 BRIGHT
		SHOG B 0 A_SetPitch(pitch+0.5)
		SHOG BC 1
		SHOG D 2
		SHOG EFGHIJ 1
		SHOG K 1 A_CheckReload
		SHOG L 1 A_PlayWeaponSound ("weapons/ssg1")
		SHOG M 1 A_FireCustomMissile("ShotgunCasingSpawner",0,0,10,0)
		SHOG N 1 A_FireCustomMissile("ShotgunCasingSpawner",0,0,8,0)
		SHOG OPQR 1
		TNT1 A 5
		TNT1 A 1 A_PlayWeaponSound ("weapons/DSDBLOAD")
		TNT1 A 5
		SHOG STUVW 1
		SHOG X 1 A_PlayWeaponSound ("weapons/DSDBCLS")
		SHOG YZ 1
		SHOG A 0 A_ReFire
		goto Ready
	Deselect:
		SHOG A 1 A_Lower
		SHOG A 0 A_Lower
		Loop
	Select:
		SHOG A 1 A_Raise
		SHOG A 0 A_Raise
		Loop
  AltFire:
	TNT1 A 0 A_GunFlash("WeaponStill")
	TNT1 A 0 A_PlaySound ("weapons/KICK")
	FOOT AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT C 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_CustomPunch(5,0,0,"KickPuff")
	FOOT D 0 A_Quake(1,2,0,10)
	FOOT EF 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT FEDCBA 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 0 A_ReFire
	Goto Ready
	WeaponStill:
		SHOG A 22
		Goto LightDone
	}
}

Actor GMIDBFG9000 : BFG9000 Replaces BFG9000 //Now the "Space Cadet" spell
{
	Weapon.BobRangeX 0.3
	Weapon.BobRangeY 0.5
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.0
	Weapon.UpSound "bfgup"
	Inventory.PickupSound "cadet/pickup"
	Tag "Space Cadet"
	Weapon.AmmoType1 "SmallMana"
	Weapon.AmmoUse 2
	+WEAPON.NOALERT
	Inventory.PickupMessage "You got the ''Space Cadet'' Pinball spell! Time to bring pain and nostalgia upon thee... \cf(\cjSlot 7\cf)"
	Obituary "%o choked on %k's big balls."
	Scale 0.3125
	+FLOATBOB
	states
	{
  Ready:
	PING A 1 A_WeaponReady
	Loop
  Fire:
	PING BC 1
	PING A 0 A_AlertMonsters
	PING D 1 A_FireCustomMissile("IveGotBigBalls")
	PING EFGHGFE 1
	PING D 1 A_ReFire("Hold")
	PING CB 1
	goto Ready
  Hold:
	PING A 0 A_AlertMonsters
	PING D 1 A_FireCustomMissile("IveGotBigBalls")
	PING EFGHGFE 1
	PING D 1 A_ReFire("Hold")
	PING CB 1
	goto Ready
  Deselect:
    PING A 1 A_Lower
    PING A 0 A_Lower
    Loop
  Select:
    PING A 1 A_Raise
    Loop
  Spawn:
    PINB B -1 Bright
    Stop
  AltFire:
	TNT1 A 0 A_GunFlash("WeaponStill")
	TNT1 A 0 A_PlaySound ("weapons/KICK")
	FOOT AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT C 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_CustomPunch(5,0,0,"KickPuff")
	FOOT D 0 A_Quake(1,2,0,10)
	FOOT EF 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT FEDCBA 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 0 A_ReFire
	Goto Ready
  WeaponStill:
	PING A 22
	Goto LightDone
	}
}

ACTOR IveGotBigBalls //My attempt at an AC/DC reference
{
	Radius 6
	Height 8
	Projectile
	Speed 50
	Damage 10
	SeeSound "bigball/fire"
	DeathSound "bigball/hit"
	DamageType "Basic"
	Obituary "%o choked on %k's big balls."
	Scale 0.3125
	States
	{
	  Spawn:
		PINB A 1
		Loop
	  Death:
		TNT1 A 0 A_Explode(100, 128)
		TNT1 AAAAAAAAAA 0 A_SpawnItemEx("IveGotSmallBalls",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(0.5,10.0),frandom(2.0,8.0),0,random(6.0,12.0),random(0,360))
		Stop
	}
}

ACTOR IveGotSmallBalls
{
   Radius 2
   Height 2
   Speed 0
   Damage 0
   Scale 0.3
   ReactionTime 2
   SeeSound ""
   PROJECTILE
   -NOGRAVITY
   +HEXENBOUNCE
   Scale 0.15625
   BounceSound "bigball/bounce"
   DeathSound "bigball/bounce"
   States
   {
   Spawn:
      TNT1 A 0 A_Countdown
      PINB AAAAAAAAAA 2
      TNT1 A 0 A_Jump(128,2)
      TNT1 A 0 A_Countdown
      PINB AAAAAAAAAA 2
      Loop
   Death:
      TNT1 A 1
      Stop
   }
}

ACTOR Blaster_RifleShot
{
	PROJECTILE
	Radius 4
	Height 4
	Speed 26
	Damage 5
	SeeSound "weapons/blasterrifle"
	Scale 1.0
	Decal BulletChip
	DamageType "Electric"
	States
	{
	Spawn:
		TNT1 A 3
		BLAS AA 1 BRIGHT A_CustomMissile ("Blaster_RifleShot_Trail", 0, 0, 0, 2, 0)
		Goto Spawn+1
	Death:
		TNT1 AAA 0 A_SpawnItem ("Blaster_RifleShot_Hit")
		TNT1 A 35
		Stop
	}
}

ACTOR Blaster_RifleShot_Hit : RedParticleFountain
{
	States
	{
	Spawn:
		TNT1 A 16
		Stop
	}
}

ACTOR Blaster_RifleShot_Trail
{
	+NOGRAVITY
	+NOCLIP
	Speed 1
	Translation "112:127=171:191"
	Scale 0.5
	States
	{
	Spawn:
		TNT1 A 1
		BLAS A 2
		Stop
	}
}

ACTOR 40mmGrenadeLauncher : Weapon //29010
{
	Inventory.PickupMessage "You got the ''Pineapple Jammer'' Grenade Launcher! \cf(\cjSlot 5\cf)"
	Weapon.Ammogive 5
	Weapon.AmmoType "RocketAmmo"
	Weapon.AmmoUse 1
	Weapon.SelectionOrder 400
	Weapon.SlotNumber 5
	+WEAPON.EXPLOSIVE
	Obituary "%o was blown up by %k's Pineapple Jammer."
	Tag "Pineapple Jammer"
	Weapon.UpSound "BOLT1R"
	Weapon.BobRangeX 0.3
	Weapon.BobRangeY 0.5
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.0
	+WEAPON.NOALERT
	States
	{
	Ready:
		RGLG A 1 A_WeaponReady
		Loop
	Select:
		RGLG A 1 A_Raise
		RGLG A 0 A_Raise
		Loop
	Deselect:
		RGLG A 1 A_Lower
		RGLG A 0 A_Lower
		Loop
	Fire:
		RGLG A 0 A_AlertMonsters
		RGLG A 0 A_JumpIfInventory("PowerQuadDamageST", 1, "QuadFire")
		RGLG BC 1
		RGLG D 0 A_GunFlash 
		RGLG D 0 A_PlayWeaponSound ("40mm/grenfire")
		RGLG D 0 A_FireCustomMissile ("40mmShot", 0, 1, 1, 10, 1)
		RGLG D 1 A_SetPitch(pitch-1)
	    RGLG EF 1 A_SetPitch(pitch+0.50)
		RGLG GHIJKLMNO 1
		RGLG A 5 
		RGLG A 5 A_ReFire
		Goto Ready
	QuadFire:
		TNT1 A 0 A_SetBlend("Blue", 0.50, 16)
		RGLG A 0 A_PlaySound("QuadDamage/Use")
		RGLG BC 1
		RGLG D 0 A_GunFlash 
		RGLG D 0 A_PlayWeaponSound ("40mm/grenfire")
		RGLG D 0 A_FireCustomMissile ("40mmShot", 0, 1, 1, 10, 1)
		RGLG D 1 A_SetPitch(pitch-1)
	    RGLG EF 1 A_SetPitch(pitch+0.50)
		RGLG GHIJKLMNO 1
		RGLG A 5 
		RGLG A 5 A_ReFire
		Goto Ready
	Flash:
		RGLG D 1 BRIGHT A_Light1
		RGLG E 1 BRIGHT A_Light2
		Goto LightDone
	Spawn:
		GLMM A -1
		Stop
  AltFire:
	TNT1 A 0 A_GunFlash("WeaponStill")
	TNT1 A 0 A_PlaySound ("weapons/KICK")
	FOOT AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT C 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_CustomPunch(5,0,0,"KickPuff")
	FOOT D 0 A_Quake(1,2,0,10)
	FOOT EF 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT FEDCBA 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 0 A_ReFire
	Goto Ready
	WeaponStill:
		RGLG A 22
		Goto LightDone
	}
}

Actor 40mmShot
{
  Radius 11
  Height 8
  Speed 35	
  Damage (15*random(1,16))
  PROJECTILE
  +HEXENBOUNCE 
  -NOGRAVITY
  +EXPLODEONWATER
  BounceFactor 0.8
  BounceCount 6
  ReactionTime 139
  Seesound "40mm/grenbounce"
  Obituary "%o was blown up by %k's Pineapple Jammer."
  States
  {
  Spawn:
    GBPJ A 0 A_CountDown		
    GBPJ A 1 A_CustomMissile("GrenadeSmoke", 3, 0, 0, 1)	 
    Loop
  Death:
	MIS6 B 0 A_NoGravity
	ZXPL A 0 A_PlaySound("explosion/distant", CHAN_AUTO)
	ZXPL A 0 A_PlaySound("newexplosion")
	BEXP D 0 A_SpawnItem("ExplosionSpawner")
	Stop
  }
}

actor PlasmaCannon : Weapon
{
	Weapon.BobRangeX 0.3
	Weapon.BobRangeY 0.5
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.0
    Weapon.SlotNumber 6
    Weapon.SelectionOrder 100
    Weapon.AmmoGive 25
    Weapon.AmmoType "NewCell"
	Weapon.AmmoUse 1
	Obituary "%o tasted %k's Excessive Force."
	Tag "Excessive Force"
    Inventory.Pickupmessage "You got the ''Excessive Force'' Plasma Cannon! \cf(\cjSlot 6\cf)"
    Weapon.upsound "duke/weaponup"
    Scale 0.75
	+WEAPON.NOALERT
    States
    {
      Spawn:
        NCHG Z -1
        Stop
	Ready:
		NCHG A 1 A_WeaponReady
		Loop
	Select:
		NCHG A 1 A_Raise
		NCHG A 0 A_Raise
		Loop
	Deselect:
		NCHG A 1 A_Lower
		NCHG A 0 A_Lower
		Loop
	Fire:
		NCHG A 0 A_AlertMonsters
		NCHG A 0 A_JumpIfInventory("PowerQuadDamageST", 1, "QuadFire")
		NCHG A 0 A_PlayWeaponSound ("plasma/fire")
		NCHG B 1 Bright A_Light1
	    NCHG B 0 A_SetPitch(pitch-1)
		NCHG B 0 A_FireBullets(5.6, 0, 1, 25,"PlasmaCannonPuff")
		NCHG C 1 A_Light0
		NCHG D 1 A_SetPitch(pitch+0.50)
		NCHG E 1 A_SetPitch(pitch+0.50)
		NCHG A 1 A_ReFire
		Goto Ready
	QuadFire:
		TNT1 A 0 A_SetBlend("Blue", 0.50, 16)
		NCHG A 0 A_PlaySound("QuadDamage/Use")
		NCHG A 0 A_PlayWeaponSound ("plasma/fire")
		NCHG B 1 Bright A_Light1
	    NCHG B 0 A_SetPitch(pitch-1)
		NCHG B 0 A_FireBullets(5.6, 0, 1, 25,"PlasmaCannonPuff")
		NCHG C 1 A_Light0
		NCHG D 1 A_SetPitch(pitch+0.50)
		NCHG E 1 A_SetPitch(pitch+0.50)
		NCHG A 1 A_ReFire
		Goto Ready
  AltFire:
	TNT1 A 0 A_GunFlash("WeaponStill")
	TNT1 A 0 A_PlaySound ("weapons/KICK")
	FOOT AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT C 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT D 1 A_CustomPunch(5,0,0,"KickPuff")
	FOOT D 0 A_Quake(1,2,0,10)
	FOOT EF 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	FOOT FEDCBA 1 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 8 A_WeaponReady(WRF_NoFire|WRF_NoSwitch)
	TNT1 A 0 A_ReFire
	Goto Ready
	WeaponStill:
		NCHG A 22
		Goto LightDone
	}
}		  

ACTOR NewCell : Ammo
{
  Inventory.PickupMessage "Picked up a lesser plasma charge. \cf(\cjAmmo for slot 6\cf)"
  Inventory.Amount 20
  Inventory.MaxAmount 300
  Ammo.BackpackAmount 20
  Ammo.BackpackMaxAmount 600
  Inventory.PickupSound "cell/get1"
  Inventory.Icon "CELLA0"
  States
  {
  Spawn:
    CELL A -1
    Stop
  }
}

ACTOR NewCellPack : NewCell
{
  Inventory.PickupMessage "Picked up a greater plasma charge. \cf(\cjAmmo for slot 6\cf)"
  Inventory.PickupSound "cell/get2"
  Inventory.Amount 100
  States
  {
  Spawn:
    CELP A -1
    Stop
  }
}

Actor SmallMana : Ammo
{
	Inventory.Amount 50
	Inventory.MaxAmount 450
	Ammo.BackpackAmount 50
	Ammo.BackpackMaxAmount 900
	Inventory.PickupSound "mana/smallget"
	Inventory.PickupMessage "Picked up a vial of mana. \cf(\cjAmmo for slot 7\cf)"
	Inventory.Icon "HPP1B0"
	+FLOATBOB
	States
	{
	Spawn:
		HPP1 A -1 Bright 
		Stop
	}
}

ACTOR LargeMana : SmallMana
{
	Inventory.Amount 150
	Inventory.PickupSound "mana/largeget"
	Inventory.PickupMessage "Picked up a jar of mana. \cf(\cjAmmo for slot 7\cf)"
	States
	{
	Spawn:
		HPP2 A -1 Bright
		Stop
	}
}

Actor 2GramsofCocaCola : Health Replaces HealthBonus
{
	Game Doom
	+INVENTORY.ALWAYSPICKUP
	Inventory.Amount 2
	Inventory.MaxAmount 250
	Tag "Coca-Cola"
	Inventory.PickupMessage "Drank a can of Coca-Cola. \cf(\cj+2 health\cf)"
	Inventory.PickupSound "coke/up"
	scale 0.2
	states
	{
	Spawn:
		COLA ABCDEFG 3
		Loop
	}
}

Actor 5GramsofCocaCola : 2GramsofCocaCola
{
	Game Doom
	+INVENTORY.ALWAYSPICKUP
	Inventory.Amount 5
	Inventory.MaxAmount 500
	Tag "Coca-Cola Zero"
	Inventory.PickupMessage "Drank a can of Coca-Cola Zero. \cf(\cj+5 health\cf)"
	Inventory.PickupSound "coke/up"
	scale 0.2
	states
	{
	Spawn:
		ZCAF ABCDEFG 3
		Loop
	}
}

ACTOR Apple : Stimpack
{
  Inventory.Amount 10
  Inventory.PickupMessage "Ate an apple. \cf(\cj10 health\cf)"
  Inventory.PickupSound "eating/apple"
  States
  {
  Spawn:
    APPY A -1
    Stop
  }
}

ACTOR Grapes : Stimpack
{
  Inventory.Amount 10
  Inventory.PickupMessage "Ate a set of grapes. \cf(\cj10 health\cf)"
  Inventory.PickupSound "eating/orange"
  States
  {
  Spawn:
    GRAP A -1
    Stop
  }
}

ACTOR Orange : Stimpack
{
  Inventory.Amount 10
  Inventory.PickupMessage "Ate an orange. \cf(\cj10 health\cf)"
  Inventory.PickupSound "eating/orange"
  States
  {
  Spawn:
    ORNG A -1
    Stop
  }
}

ACTOR Hamburg : Medikit
{
  Inventory.Amount 25
  Tag "Hamburger"
  Inventory.PickupMessage "Ate a hamburger. \cf(\cj25 health\cf)"
  Health.LowMessage 25, "Found a hamburger!"
  Inventory.PickupSound "eating/burger"
  States
  {
  Spawn:
    HMBG A -1
    Stop
  }
}

ACTOR EntireChickenYouWeirdo : Medikit
{
  Inventory.Amount 25
  Tag "Chicken"
  Inventory.PickupMessage "Ate an entire chicken. \cf(\cj25 health\cf)"
  Health.LowMessage 25, "Found an entire chicken!"
  Inventory.PickupSound "eating/burger"
  States
  {
  Spawn:
    CHKN A -1 
    Stop
  }
}

ACTOR PizzaZone : Medikit
{
  Inventory.Amount 25
  Tag "Pizza"
  Inventory.PickupMessage "Gourged on an entire pizza. \cf(\cj25 health\cf)"
  Health.LowMessage 25, "Found an entire pizza!"
  Inventory.PickupSound "eating/orange"
  States
  {
  Spawn:
    PIZA A -1 
    Stop
  }
}

Actor ArmorShard : BasicArmorBonus Replaces ArmorBonus
{
	+INVENTORY.ALWAYSPICKUP
	Armor.SaveAmount 5
	Armor.MaxSaveAmount 250
	Armor.SavePercent 25
	Inventory.PickupMessage "Slapped on an armor shard. \cf(\cj+5 armor\cf)"
	Inventory.PickupSound "misc/ar2_pkup"
	states
	{
	Spawn:
		BON3 ABCDCBA 3 BRIGHT
		Loop
	}
}

Actor SuperArmorShard : BasicArmorBonus
{
	+INVENTORY.ALWAYSPICKUP
	Armor.SaveAmount 10
	Armor.MaxSaveAmount 500
	Armor.SavePercent 50
	Inventory.PickupMessage "Slapped on a super armor shard. \cf(\cj+10 armor\cf)"
	Inventory.PickupSound "misc/ar2_pkup"
	states
	{
	Spawn:
		BON4 ABCDCBA 3 BRIGHT
		Loop
	}
}

ACTOR LightArmorVest : GreenArmor replaces GreenArmor
{
  Radius 20
  Height 16
  Inventory.PickupMessage "You are now wearing a light armor vest. \cf(\cj100 armor, 25% protection\cf)"
  Inventory.Icon "ARM1A0"
  Armor.SavePercent 25
  Armor.SaveAmount 100
  Inventory.PickupSound "ARMOR1"
  States
  {
  Spawn:
    ARM1 A 7
    ARM1 A 7 Bright
    Loop
  }
}

ACTOR StrongArmorVest : GreenArmor
{
  Radius 20
  Height 16
  Inventory.PickupMessage "You are now wearing a strong armor vest. \cf(\cj150 armor, 50% protection\cf)"
  Inventory.Icon "ARM3A0"
  Armor.SavePercent 50
  Armor.SaveAmount 150
  Inventory.PickupSound "ARMOR2"
  States
  {
  Spawn:
    ARM3 A 7
    ARM3 A 7 Bright
    Loop
  }
}

ACTOR HeavyArmorVest : BlueArmor replaces BlueArmor
{
  Radius 20
  Height 16
  Inventory.PickupMessage "You are now wearing a heavy armor vest. \cf(\cj200 armor, 75% protection\cf)"
  Inventory.Icon "ARM2A0"
  Armor.SavePercent 75
  Armor.SaveAmount 200
  Inventory.PickupSound "ARMOR3"
  States
  {
  Spawn:
    ARM2 A 7
    ARM2 A 7 Bright
    Loop
  }
}

ACTOR PraetorArmorVest : BlueArmor
{
  Radius 20
  Height 16
  Inventory.PickupMessage "You are now protected by the praetor armor vest! \cf(\cj250 armor, 95% protection\cf)"
  Inventory.Icon "ARM4A0"
  Armor.SavePercent 95
  Armor.SaveAmount 250
  Inventory.PickupSound "ARMOR4"
  States
  {
  Spawn:
    ARM4 A 7
    ARM4 A 7 Bright
    Loop
  }
}

ACTOR SmallSoul : ArmorShard
{
	-COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "You feel a minor surge of protection and power. \cf(\cj+5 armor\cf)"
	Scale 0.53
	Armor.SaveAmount 5
	Armor.MaxSaveAmount 999
	Inventory.PickupSound "eating/heart"
	+FLOATBOB
	States
	{
	Spawn:
		HHRT AAAAAAAAAAAAAAAAAAAABCCCCCCCCCCCCCCCCCCCCB 3 Bright
		Loop
	}
}

ACTOR LargeSoul : SmallSoul
{
	Inventory.PickupMessage "You feel a major surge of protection and power! \cf(\cj+10 armor\cf)"
	Scale 0.7
	Armor.SaveAmount 10
	Inventory.PickupSound "eating/swollenheart"
	States
	{
	Spawn:
		BHRT ABCD 4 Bright
		Loop
	}
}

ACTOR BetterBackpack : Backpack replaces Backpack
{
  Height 26
  Inventory.PickupMessage "Picked up a leather backpack full to the brim of goodies!"
  Inventory.PickupSound "backpack/get"
  States
  {
  Spawn:
    BPAK A -1 
    Stop
  }
}

ACTOR RocketAmmo2 : RocketAmmo replaces RocketAmmo
{
  Inventory.PickupSound "rocket/get"
  Inventory.PickupMessage "Picked up a missile. \cf(\cjAmmo for slot 5\cf)"
}

ACTOR RocketBox2 : RocketBox replaces RocketBox
{
  Inventory.PickupSound "rocketbox/get"
  Inventory.PickupMessage "Picked up a crate full of missiles. \cf(\cjAmmo for slot 5\cf)"
}

Actor Clip2 : Ammo replaces GoldWandAmmo
{
	Scale .58
	Game Doom
	+FLOORCLIP
	+DONTGIB
	Inventory.Amount 10
	Inventory.MaxAmount 200
	Ammo.BackpackAmount 10
	Ammo.BackpackMaxAmount 400
	Inventory.PickupSound "pistolmagazine/get"
	Inventory.Icon "PISAA0"
	Inventory.PickupMessage "Picked up a pistol magazine. \cf(\cjAmmo for slot 2\cf)"
	States
	{
	Spawn:
		PISA A -1 
		Stop
	}
}

Actor ClipBox2 : Clip2 replaces GoldWandHefty
{
	Game Doom
	+FLOORCLIP
	+DONTGIB
	Scale 1.15
	Inventory.Amount 30
	Ammo.BackpackAmount 30
	Inventory.PickupSound "pistolbox/get"
	Inventory.Icon "PISAA0"
	Inventory.PickupMessage "Picked up a box of pistol rounds. \cf(\cjAmmo for slot 2\cf)"
	States
	{
	Spawn:
		BBOX A -1
		Stop
	}
}

Actor Clip3 : Ammo replaces BlasterAmmo
{
	Game Doom
	+FLOORCLIP
	+DONTGIB
	Inventory.Amount 15
	Inventory.MaxAmount 300
	Ammo.BackpackAmount 15
	Ammo.BackpackMaxAmount 600
	Inventory.PickupSound "bulletmagazine/get"
	Inventory.Icon "BLITA0"
	Inventory.PickupMessage "Picked up a chain of bullets. \cf(\cjAmmo for slot 4\cf)"
	States
	{
	Spawn:
		BLIT A -1 
		Stop
	}
}

Actor ClipBox3 : Clip3 replaces BlasterHefty
{
	Game Doom
	+FLOORCLIP
	+DONTGIB
	Inventory.Amount 100
	Ammo.BackpackAmount 100
	Scale 0.65
	Inventory.Icon "BLITA0"
	Inventory.PickupSound "bulletbox/get"
	Inventory.PickupMessage "Picked up a box of bullet chains. \cf(\cjAmmo for slot 4\cf)"
	States
	{
	Spawn:
		CHGP B -1 
		Stop
	}
}

Actor NewShells : Shell replaces CrossbowAmmo
{
	Scale 0.6
	Inventory.PickupSound "shellclip/get"
	Inventory.PickupMessage "Picked up a handful of shotgun shells. \cf(\cjAmmo for slot 3\cf)"
	States
	{
	Spawn:
		SHEL A -1 
		Stop
	}
}

Actor NewShellBox : ShellBox replaces CrossbowHefty
{
	Scale 0.6
	Inventory.PickupSound "shellbox/get"
	Inventory.PickupMessage "Picked up a case of shotgun shells. \cf(\cjAmmo for slot 3\cf)"
}

Actor NewShells2 : Ammo
{
	Scale 0.6
	Inventory.PickupSound "shellclip/get"
	Inventory.PickupMessage "Picked up a handful of ''Dragon's Breath'' shotgun shells! \cf(\cjAmmo for Firestick\cf)"
	Inventory.Amount 4
	Inventory.MaxAmount 25
	Ammo.BackpackMaxAmount 50
	Inventory.Icon "SHELB0"
	States
	{
	Spawn:
		SHEL B -1 
		Stop
	}
}

Actor NewShellBox2 : NewShells2
{
	Inventory.PickupSound "shellbox/get"
	Inventory.PickupMessage "Picked up a case of ''Dragon's Breath'' shotgun shells! \cf(\cjAmmo for Firestick\cf)"
	Inventory.Amount 20
	States
	{
	Spawn:
		SBOX B -1
		Stop
	}
}

actor FistPuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +PUFFONACTORS
  activesound ""
  attacksound "Fist/Hit"
  seesound "Fist/Hit"
  DamageType "Fist"
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1
    stop
  Crash:
     TNT1 A 0
     TNT1 A 1
     stop
  Melee:
     TNT1 A 0
     TNT1 A 1
     stop
  }
}

actor KickPuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +PUFFONACTORS
  activesound ""
  attacksound "FOOT/WALL"
  seesound "FOOT/HIT"
  DamageType "Foot"
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1
    stop
  Crash:
     TNT1 A 0
     TNT1 A 1
     stop
  Melee:
     TNT1 A 0
     TNT1 A 1
     stop
  }
}

actor PlasmaCannonPuff
{
  VSpeed 1
  +NOBLOCKMAP
  +NOGRAVITY
  +ALLOWPARTICLES
  +RANDOMIZE
  RenderStyle Translucent
  scale 0.5
  Alpha 0.5
  States
  {
  Spawn:
	NFZB AB 2 Bright
  Melee:
    NFZB CDEF 2 Bright
    Stop
  }
}

ACTOR XaserBarrel : ExplosiveBarrel replaces ExplosiveBarrel
{
	DamageFactor "Foot", 0
	DamageFactor "Fist", 0
	Obituary "%o was far too close to an explosive barrel."
	+FIREDAMAGE
	+PUSHABLE
   States
   {
   Spawn:
		TOXB A 1
		Loop
   Death:
        TOXB AAA 2 BRIGHT
		ZXPL A 0 A_PlaySound("explosion/distant", CHAN_AUTO)
		ZXPL A 0 A_PlaySound("newexplosion")
		BEXP D 0 A_SpawnItem("ExplosionSpawner")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BarrelParts",frandom(5.0,-5.0),frandom(5.0,-5.0),frandom(0.5,10.0),frandom(2.0,8.0),0,random(6.0,12.0),random(0,360)) 
      Stop
   }
}

ACTOR XaserPuff replaces BulletPuff
{
    Mass		1
	Radius		1
	Height		1
	RenderStyle ADD
	Alpha		0.9
	DamageType "Basic"
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+FORCEXYBILLBOARD
	Decal "BulletChip"
	States
	{
	Spawn:
		XPUF Q 0 BRIGHT
		XPUF Q 0 A_SpawnItemEx("XaserPuffSmoke",0,0,4.0+0.1*random(-10,10),0,0,0,0,SXF_CLIENTSIDE,0)
		XPUF Q 0 A_Jump(128, "PuffMirrored")
		
	PuffNormal:
		XPUF Q 0 A_Jump(32, "PuffNormalAlt")
		XPUF QRSTU 1 BRIGHT
	  PuffNormalEnd:
		XPUF FGH 1 BRIGHT
		Stop
	  PuffNormalAlt:
		XPUF A 0 A_PlaySound("misc/ricochet")
		XPUF ABCDE 1 BRIGHT
		Goto PuffNormalEnd
		
	PuffMirrored:
		XPUF V 0 A_Jump(32, "PuffMirroredAlt")
		XPUF VWXYZ 1 BRIGHT
	  PuffMirroredEnd:
		XPUF NOP 1 BRIGHT
		Stop
	  PuffMirroredAlt:
		XPUF I 0 A_PlaySound("misc/ricochet")
		XPUF IJKLM 1 BRIGHT
		Goto PuffNormalEnd
	}
}

ACTOR XaserPuff_NoTaunt
{
    Mass		1
	Radius		1
	Height		1
	RenderStyle ADD
	Alpha		0.9
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+FORCEXYBILLBOARD
	Decal "BulletChip"
	States
	{
	Spawn:
		XPUF Q 0 BRIGHT
		XPUF Q 0 A_SpawnItemEx("XaserPuffSmoke",0,0,4.0+0.1*random(-10,10),0,0,0,0,SXF_CLIENTSIDE,0)
		XPUF Q 0 A_Jump(128, "PuffMirrored")
		
	PuffNormal:
		XPUF Q 0 A_Jump(32, "PuffNormalAlt")
		XPUF QRSTU 1 BRIGHT
	  PuffNormalEnd:
		XPUF FGH 1 BRIGHT
		Stop
	  PuffNormalAlt:
		XPUF A 0 A_PlaySound("misc/ricochet")
		XPUF ABCDE 1 BRIGHT
		Goto PuffNormalEnd
		
	PuffMirrored:
		XPUF V 0 A_Jump(32, "PuffMirroredAlt")
		XPUF VWXYZ 1 BRIGHT
	  PuffMirroredEnd:
		XPUF NOP 1 BRIGHT
		Stop
	  PuffMirroredAlt:
		XPUF I 0 A_PlaySound("misc/ricochet")
		XPUF IJKLM 1 BRIGHT
		Goto PuffNormalEnd
	}
}

ACTOR XaserPuffSmoke
{
	Radius		1
	Height		1
	RenderStyle ADD
	Alpha		0.3
	Scale		0.4
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+FORCEXYBILLBOARD
	States
	{
	Spawn:
		PFSM ABCDEFGHIJKLMNOP 1
		Stop
	}
}

ACTOR GrinderPuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +PUFFONACTORS
  activesound ""
  attacksound "grinder/hitwall"
  seesound "grinder/hitbody"
  DamageType "Basic"
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1
    stop
  Crash:
     TNT1 A 0
     TNT1 A 1
     stop
  Melee:
     TNT1 A 0
     TNT1 A 1
     stop
  }
}

Actor GamingMarineHavingSexWithCookiedemon
{
Scale 0.35
States
  {
	Spawn:
		CHEA ABABAB 5
		CHEA C 0 A_PlaySound("big/nute")
		CHEA CD 6
		CHEA E 15
		TNT1 A 0 A_SpawnItem("TeleportFog")
		Stop
  }
}
