ACTOR GE007HandGrenade : Weapon
{
  Weapon.Kickback 100
  Scale 0.1
      Weapon.Ammotype1 "GE007HandGrenades"
   Weapon.AmmoUse1 1
  Weapon.AmmoGive1 1
	+WEAPON.AMMO_OPTIONAL
  Inventory.PickupMessage "Picked up a Hand Grenade."
  tag "Hand Grenade"
  Obituary  "%o lost a few teeth to %k's Hand Grenade."
  	Inventory.PickupSound "GE007/Weapons/WeaponSFX1"
  States
  {
	Spawn:
		TKA1 Z -1
		stop
	Select:
		TNT1 A 1 A_Raise
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		loop
	Deselect:
		TNT1 A 1 A_Lower
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		loop
	Ready:
		TNT1 A 1 A_WeaponReady
		loop
	Fire:
	
		 	TNT1 A 0 A_PlaySound ("GE007/Weapons/ProxThrow","Weapon")
		TNT1 A 30 A_FireCustomMissile("GE007GrenadeThrow", 0, 1, 5, 0, 0)
		TNT1 A 0 A_Refire
		goto Ready
  }
}

actor GE007GrenadeThrow
{
  Radius 8
  Height 8
  PROJECTILE
  Speed 15
  Damage 100
  Scale 0.1
  BounceCount 3
  BounceFactor 0.5
  Gravity 0.6
  DamageType Grenade
  +HEXENBOUNCE
  +FORCEXYBILLBOARD
  -NOGRAVITY
    Obituary  "%o found %k's Hand Grenade."
  States
  {
  Spawn:
	TF01 A 0
	TF01 A 0 Thing_ChangeTID(0, 255)
	TF01 A 0 ThrustThingZ(0, 25, 0, 1)
	TF01 A 0 A_StopSound
	TF03 A 1
	goto Spawn+4
  Death:
	MISL B 0 bright A_Explode(64, 128, 1)
	MISL B 0 A_NoGravity
	TNT1 A 0 radius_quake(2, 10, 0, 3, 0)
	TNT1 A 0 A_PlaySoundEx("GE007/Weapons/Boom", "Auto", 0)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris1", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-5, 5), Random(-5, 5), Random(-6, 7), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris2", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-5, 5), Random(-5, 5), Random(-6, 7), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris3", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-5, 5), Random(-5, 5), Random(-6, 7), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris4", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-5, 5), Random(-5, 5), Random(-6, 7), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris5", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-5, 5), Random(-5, 5), Random(-6, 7), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris1", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-3, 3), Random(-3, 3), Random(1, 6), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris2", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-3, 3), Random(-3, 3), Random(1, 6), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris3", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-3, 3), Random(-3, 3), Random(1, 6), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris4", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-3, 3), Random(-3, 3), Random(1, 6), Random(-360, 360), 128, 24)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("Debris5", Random(-8, 8), Random(-8, 8), Random(-8, 8), Random(-3, 3), Random(-3, 3), Random(1, 6), Random(-360, 360), 128, 24)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", 0, 0, 0, 0, 0, 0, 0, 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 A 0 A_SpawnItemEx ("ExplosionSmoke2", Random(-44, 44), Random(-44, 44), Random(0, 38), 0, 0, 0, 0, 128, 0)
	TNT1 A 3 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	TNT1 AAAAAAA 5 A_SpawnItemEx ("RollingExplosion3", Random(-24, 24), Random(-24, 24), Random(0, 38), 0, 0, 0, Random(-360, 360), 0, 0)
	stop
  }
}

actor GE007GrenadeTrail
{
  Projectile
  Radius 1
  Height 1
  Damage 0
  Speed 0
  Scale 0.08
  RenderStyle Add
  Alpha 0.6
  +NOCLIP
  +FORCEXYBILLBOARD
  States
  {
   Spawn:
   TNT1 A 0
   TNT1 A 2
   SMOK ABCDEFGHIJKLMNOPQ 1
   stop
  }
}

actor RollingExplosion3
{
  Radius 1
  Height 1
  Speed 0
  Scale 1.25
  Obituary "%o went out in a blaze of %k's glory."
  RenderStyle Translucent
  Alpha 0.9
  -SOLID
  +NOGRAVITY
  +NODAMAGETHRUST
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
   FIR2 ABCDEFGH 2 BRIGHT A_Explode(10, 56, 1)
   FIR2 IJKLMN 2 BRIGHT
   stop
  }
}

actor ExplosionSmoke2
{
  Projectile
  Radius 1
  Height 1
  Damage 0
  Speed 0
  Scale 0.6
  RenderStyle Translucent
  Alpha 0.3
  +NOCLIP
  +FORCEXYBILLBOARD
  States
  {
   Spawn:
   SMO2 ABCDEFGHIJKLMNOPQ 10
   stop
  }
}

actor Debris1
{
  Projectile
  Speed 3
  Height 1
  Radius 1
  Gravity 0.2
  RenderStyle Translucent
  Alpha 1.0
  -NOGRAVITY
  -ACTIVATEMCROSS
  -ACTIVATEPCROSS
  -ACTIVATEIMPACT
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
   DEB1 ABCDEFGH 4
   DEB1 A 0 A_CheckFloor("Death")
   loop
  Death:
   TNT1 A 1
   stop
  }
}

actor Debris2
{
  Projectile
  Speed 3
  Height 1
  Radius 1
  Gravity 0.12
  RenderStyle Translucent
  Alpha 1.0
  -NOGRAVITY
  -ACTIVATEMCROSS
  -ACTIVATEPCROSS
  -ACTIVATEIMPACT
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
   DEB2 ABCDEFGH 4
   DEB2 A 0 A_CheckFloor("Death")
   loop
  Death:
   TNT1 A 1
   stop
  }
}

actor Debris3
{
  Projectile
  Speed 3
  Height 1
  Radius 1
  Gravity 0.3
  RenderStyle Translucent
  Alpha 1.0
  -NOGRAVITY
  -ACTIVATEMCROSS
  -ACTIVATEPCROSS
  -ACTIVATEIMPACT
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
   DEB3 ABCDEFGH 4
   DEB3 A 0 A_CheckFloor("Death")
   loop
  Death:
   TNT1 A 1
   stop
  }
}

actor Debris4
{
  Projectile
  Speed 3
  Height 1
  Radius 1
  Gravity 0.1
  RenderStyle Translucent
  Alpha 1.0
  -NOGRAVITY
  -ACTIVATEMCROSS
  -ACTIVATEPCROSS
  -ACTIVATEIMPACT
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
   DEB4 ABCDEFGH 4
   DEB4 A 0 A_CheckFloor("Death")
   loop
  Death:
   TNT1 A 1
   stop
  }
}

actor Debris5
{
  Projectile
  Speed 3
  Height 1
  Radius 1
  Gravity 0.5
  RenderStyle Translucent
  Alpha 1.0
  -NOGRAVITY
  -ACTIVATEMCROSS
  -ACTIVATEPCROSS
  -ACTIVATEIMPACT
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
   DEB5 ABCDEFGH 3
   DEB5 A 0 A_CheckFloor("Death")
   loop
  Death:
   TNT1 A 1
   stop
  }
}

ACTOR GE007HandGrenadesPickup : Custominventory
{
   Scale 0.1
 Inventory.PickupMessage "Picked up some Hand Grenades."
  	Inventory.PickupSound "GE007/Weapons/WeaponSFX1"
   States
   {
   Spawn:
		TKA2 A -1
	  loop
   Pickup:
	  TNT1 A 0 A_GiveInventory("GE007HandGrenade")
	  	  TNT1 A 0 A_GiveInventory("GE007HandGrenades", 4)
	  stop
   }
}