ACTOR ScoutScatterPistol : SFortScatterPistol
{
	Weapon.AmmoType2 "RocketAmmo"
	Weapon.AmmoUse2 1
	Weapon.AmmoGive2 0
	Inventory.RestrictedTo "ScoutPlayer"
	+WEAPON.ALT_AMMO_OPTIONAL
	States
	{
	Fire:
	FireNormal:
	  TNT1 A 0 A_TakeInventory("PowerInvulnerable",1)
	  TNT1 A 0 A_PlaySound("weapons/scatterf",CHAN_WEAPON)
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"Quad")
	  TNT1 A 0 A_FireBullets(0.0,0.0,1,12,"ScoutBulletPuff",FBF_NORANDOM)
	  TNT1 A 0 A_FireBullets(7.0,3.5,9,12,"ScoutBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
	  SPRP B 2 Bright A_GunFlash
	  SPRP G 5
	  SPRP CB 4
	  SPRP A 9 //6
	  TNT1 A 0 A_Refire
	  Goto Ready
	Quad:
      TNT1 A 0 A_Playsound("misc/qdmg",CHAN_AUTO)
	  Goto Fire+3 //+3
	AltFire:
	  TNT1 A 0 A_JumpIfNoAmmo("NoGrenades")
	  TNT1 A 0 A_TakeInventory("RocketAmmo",1)
	  HGRN A 1 Offset(1,83)
	  HGRN A 1 Offset(1,73)
	  HGRN A 1 Offset(1,63)
	  HGRN A 1 Offset(1,53)
	  HGRN A 1 Offset(1,43)
	  HGRN A 1 Offset(1,33)
	  TNT1 A 0 A_TakeInventory("PowerInvulnerable",1)
      HGRN B 2
	  HGRN D 3 A_Playsound("grenade/arm",CHAN_WEAPON)
	  HGRN CDE 3
	  HGRN F 1 Offset(10,40)
	  HGRN F 1 Offset(20,50)
	  HGRN F 1 Offset(30,60)
	  HGRN F 1 Offset(40,70)
	  HGRN F 1 Offset(50,80)
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"AltQuad")
	AltQuadDone:
	  TNT1 A 0 A_Playsound("grenade/throw",CHAN_AUTO)
	  TNT1 A 0 A_JumpIf(pitch > 54,"GrenadeJump")
	GrenadeJumpDone:
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortHandGrenadeProj",0,0,0,0,0,7)
	  HNDG BCD 2
	  TNT1 A 12
	  SPRP A 1 Offset(6,83)
	  SPRP A 1 Offset(5,73)
	  SPRP A 1 Offset(4,63)
	  SPRP A 1 Offset(3,53)
	  SPRP A 1 Offset(2,43)
	  SPRP A 1 Offset(1,33)
	  Goto Ready
	AltQuad:
	  TNT1 A 0 A_Playsound("misc/qdmg",CHAN_AUTO)
	  Goto AltQuadDone
	GrenadeJump:
	  TNT1 A 0 A_JumpIf(pitch > 90,"GrenadeJumpDone")
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortGrenadeJumpProj",0,0,0,0,0,6)
	  Goto GrenadeJumpDone+1
	NoGrenades:
	  TNT1 A 0 ACS_NamedExecuteAlways("NoGrenades",0)
	  SPRP A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_ALLOWRELOAD)
	  Goto Ready
	Reload:
	  TNT1 A 0 A_Print("$INFO_SCOUT",0.0625)
	  Goto Ready
	}
}

ACTOR ScoutFist : SFortFist
{
	Weapon.AmmoType2 "RocketAmmo"
	Weapon.AmmoUse2 1
	Weapon.AmmoGive2 0
	Inventory.RestrictedTo "ScoutPlayer"
	+WEAPON.ALT_AMMO_OPTIONAL
	States
	{
	Select:
	  TNT1 A 0 A_Raise
      PUNG A 1 A_Raise
      Loop
	AltFire:
	  TNT1 A 0 A_JumpIfNoAmmo("NoGrenades")
	  TNT1 A 0 A_TakeInventory("RocketAmmo",1)
	  HGRN A 1 Offset(1,83)
	  HGRN A 1 Offset(1,73)
	  HGRN A 1 Offset(1,63)
	  HGRN A 1 Offset(1,53)
	  HGRN A 1 Offset(1,43)
	  HGRN A 1 Offset(1,33)
	  TNT1 A 0 A_TakeInventory("PowerInvulnerable",1)
      HGRN B 2
	  HGRN D 3 A_Playsound("grenade/arm",CHAN_WEAPON)
	  HGRN CDE 3
	  HGRN F 1 Offset(10,40)
	  HGRN F 1 Offset(20,50)
	  HGRN F 1 Offset(30,60)
	  HGRN F 1 Offset(40,70)
	  HGRN F 1 Offset(50,80)
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"AltQuad")
	AltQuadDone:
	  TNT1 A 0 A_Playsound("grenade/throw",CHAN_AUTO)
	  TNT1 A 0 A_JumpIf(pitch > 54,"GrenadeJump")
	GrenadeJumpDone:
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortHandGrenadeProj",0,0,0,0,0,7)
	  HNDG BCD 2
	  TNT1 A 12
	  PUNG A 1 Offset(6,83)
	  PUNG A 1 Offset(5,73)
	  PUNG A 1 Offset(4,63)
	  PUNG A 1 Offset(3,53)
	  PUNG A 1 Offset(2,43)
	  PUNG A 1 Offset(1,33)
	  Goto Ready
	AltQuad:
	  TNT1 A 0 A_Playsound("misc/qdmg",CHAN_AUTO)
	  Goto AltQuadDone
	GrenadeJump:
	  TNT1 A 0 A_JumpIf(pitch > 90,"GrenadeJumpDone")
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortGrenadeJumpProj",0,0,0,0,0,6)
	  Goto GrenadeJumpDone+1
	NoGrenades:
	  TNT1 A 0 ACS_NamedExecuteAlways("NoGrenades",0)
	  PUNG A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_ALLOWRELOAD)
	  Goto Ready
	Reload:
	  TNT1 A 0 A_Print("$INFO_SCOUT",0.0625)
	  Goto Ready
	}
}

ACTOR ScoutBurstPistol : SFortBurstPistol
{
	Weapon.AmmoType2 "RocketAmmo"
	Weapon.AmmoUse2 1
	Weapon.AmmoGive2 0
	Inventory.RestrictedTo "ScoutPlayer"
	+WEAPON.ALT_AMMO_OPTIONAL
	States
	{
	Select:
	  TNT1 A 0 A_Raise
      PISG A 1 A_Raise
      Loop
	Fire:
	FireNormal:
	  TNT1 A 0 A_TakeInventory("PowerInvulnerable",1)
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"Quad")
	  TNT1 A 0 A_GunFlash
      GLOK A 1 A_FireBullets(2.1,1.75,-1,15,"ScoutBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
      GLOK B 2
	  TNT1 A 0 A_GunFlash
      GLOK A 1 A_FireBullets(2.1,1.75,-1,15,"ScoutBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
      GLOK B 2
	  TNT1 A 0 A_GunFlash
      GLOK A 1 A_FireBullets(2.1,1.75,-1,15,"ScoutBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
	FireEnd:
	  GLOK B 2
      GLOK A 9
      GLOK A 3 A_ReFire
      Goto Ready
	Quad:
      TNT1 A 0 A_Playsound("misc/qdmg2",CHAN_7)
	  TNT1 A 0 A_GunFlash
      GLOK A 1 A_FireBullets(2.1,1.75,-1,15,"ScoutBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
      GLOK B 2
      TNT1 A 0 A_Playsound("misc/qdmg2",CHAN_7)
	  TNT1 A 0 A_GunFlash
      GLOK A 1 A_FireBullets(2.1,1.75,-1,15,"ScoutBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
      GLOK B 2
      TNT1 A 0 A_Playsound("misc/qdmg2",CHAN_7)
	  TNT1 A 0 A_GunFlash
      GLOK A 1 A_FireBullets(2.1,1.75,-1,15,"ScoutBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
	  Goto FireEnd
	AltFire:
	  TNT1 A 0 A_JumpIfNoAmmo("NoGrenades")
	  TNT1 A 0 A_TakeInventory("RocketAmmo",1)
	  HGRN A 1 Offset(1,83)
	  HGRN A 1 Offset(1,73)
	  HGRN A 1 Offset(1,63)
	  HGRN A 1 Offset(1,53)
	  HGRN A 1 Offset(1,43)
	  HGRN A 1 Offset(1,33)
	  TNT1 A 0 A_TakeInventory("PowerInvulnerable",1)
      HGRN B 2
	  HGRN D 3 A_Playsound("grenade/arm",CHAN_WEAPON)
	  HGRN CDE 3
	  HGRN F 1 Offset(10,40)
	  HGRN F 1 Offset(20,50)
	  HGRN F 1 Offset(30,60)
	  HGRN F 1 Offset(40,70)
	  HGRN F 1 Offset(50,80)
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"AltQuad")
	AltQuadDone:
	  TNT1 A 0 A_Playsound("grenade/throw",CHAN_AUTO)
	  TNT1 A 0 A_JumpIf(pitch > 54,"GrenadeJump")
	GrenadeJumpDone:
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortHandGrenadeProj",0,0,0,0,0,7)
	  HNDG BCD 2
	  TNT1 A 12
	  PISG A 1 Offset(6,83)
	  PISG A 1 Offset(5,73)
	  PISG A 1 Offset(4,63)
	  PISG A 1 Offset(3,53)
	  PISG A 1 Offset(2,43)
	  PISG A 1 Offset(1,33)
	  Goto Ready
	AltQuad:
	  TNT1 A 0 A_Playsound("misc/qdmg",CHAN_AUTO)
	  Goto AltQuadDone
	GrenadeJump:
	  TNT1 A 0 A_JumpIf(pitch > 90,"GrenadeJumpDone")
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortGrenadeJumpProj",0,0,0,0,0,6)
	  Goto GrenadeJumpDone+1
	NoGrenades:
	  TNT1 A 0 ACS_NamedExecuteAlways("NoGrenades",0)
	  PISG A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_ALLOWRELOAD)
	  Loop
	  Goto Ready
	Reload:
	  TNT1 A 0 A_Print("$INFO_SCOUT",0.0625)
	  Goto Ready
	}
}

ACTOR ScoutNailPistol : SFortNailPistol
{
	Weapon.AmmoType2 "RocketAmmo"
	Weapon.AmmoUse2 1
	Weapon.AmmoGive2 0
	Inventory.RestrictedTo "ScoutPlayer"
	+WEAPON.ALT_AMMO_OPTIONAL
	States
	{
	Select:
	  TNT1 A 0 A_Raise
      NPIS A 1 A_Raise
      Loop
	AltFire:
	  TNT1 A 0 A_JumpIfNoAmmo("NoGrenades")
	  TNT1 A 0 A_TakeInventory("RocketAmmo",1)
	  HGRN A 1 Offset(1,83)
	  HGRN A 1 Offset(1,73)
	  HGRN A 1 Offset(1,63)
	  HGRN A 1 Offset(1,53)
	  HGRN A 1 Offset(1,43)
	  HGRN A 1 Offset(1,33)
	  TNT1 A 0 A_TakeInventory("PowerInvulnerable",1)
      HGRN B 2
	  HGRN D 3 A_Playsound("grenade/arm",CHAN_WEAPON)
	  HGRN CDE 3
	  HGRN F 1 Offset(10,40)
	  HGRN F 1 Offset(20,50)
	  HGRN F 1 Offset(30,60)
	  HGRN F 1 Offset(40,70)
	  HGRN F 1 Offset(50,80)
	  TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"AltQuad")
	AltQuadDone:
	  TNT1 A 0 A_Playsound("grenade/throw",CHAN_AUTO)
	  TNT1 A 0 A_JumpIf(pitch > 54,"GrenadeJump")
	GrenadeJumpDone:
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortHandGrenadeProj",0,0,0,0,0,7)
	  HNDG BCD 2
	  TNT1 A 12
	  NPIS A 1 Offset(6,83)
	  NPIS A 1 Offset(5,73)
	  NPIS A 1 Offset(4,63)
	  NPIS A 1 Offset(3,53)
	  NPIS A 1 Offset(2,43)
	  NPIS A 1 Offset(1,33)
	  Goto Ready
	AltQuad:
	  TNT1 A 0 A_Playsound("misc/qdmg",CHAN_AUTO)
	  Goto AltQuadDone
	GrenadeJump:
	  TNT1 A 0 A_JumpIf(pitch > 90,"GrenadeJumpDone")
	  HNDG A 2 Offset(1,33) A_FireCustomMissile("SFortGrenadeJumpProj",0,0,0,0,0,6)
	  Goto GrenadeJumpDone+1
	NoGrenades:
	  TNT1 A 0 ACS_NamedExecuteAlways("NoGrenades",0)
	  NPIS A 1 A_WeaponReady(WRF_NOSECONDARY|WRF_ALLOWRELOAD)
	  Goto Ready
	Reload:
	  TNT1 A 0 A_Print("$INFO_SCOUT",0.0625)
	  Goto Ready
	}
}

ACTOR SFortHandGrenadeProj
{
	Radius 10
	Height 20
	Speed 45
	Health 5
	Damage (40)
	DamageType "Grenade"
	DamageFactor "Normal", 0.0
	DamageFactor "ScoutBullet", 1.0
	BounceType "Hexen"
	BounceSound "grenade/bounce"
	Renderstyle Translucent
	Alpha 1.0
	Projectile
	ProjectileKickBack 3000
	Gravity 0.4
	BounceFactor 0.9
	WallBounceFactor 0.9
	Decal RevenantScorch
	Obituary "%o was fragged by %k's hand grenade."
	SelfObituary "%o found %p own grenade again."
	+NODAMAGEEVENTSCRIPT
	+CANBOUNCEWATER
	+GRENADETRAIL
	+DEHEXPLOSION
	+SHOOTABLE
	+NOBLOOD
	+NORADIUSDMG
	+NOTAUTOAIMED
	-NOGRAVITY
	-NOBLOCKMAP
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_PlaySound("grenade/tick",CHAN_BODY,1,1)
	  HGN1 ABCDEFGHABCDEFGHABCDEFGH 4 Bright A_ScaleVelocity(0.9)
	  HGN1 A 2 Bright
	  HGN1 A 1 A_Die
	  Goto Death
	Death:
	XDeath:
	  TNT1 A 0 A_StopSound(CHAN_BODY)
	  TNT1 A 0 A_PlaySound("weapons/debris",CHAN_BODY)
	  TNT1 A 0 A_PlaySound("weapons/rocklx",CHAN_VOICE)
	  TNT1 A 0 A_ScaleVelocity(0)
	  TNT1 A 0 A_SetScale(2.0)
	  TNT1 A 0 A_ChangeFlag(NOGRAVITY,1)
	  TNT1 A 0 A_Explode(32,256,1,0,32)
	  MISL B 8 Bright A_Explode(96,256,0,0,32)
	  MISL C 6 Bright
	  MISL D 4 Bright
	  Stop
	}
}

ACTOR SFortGrenadeJumpProj : SFortHandGrenadeProj
{
	BounceType None
	SelfObituary "%o was too hurt for a grenade jump."
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 0 A_PlaySound("grenade/tick",CHAN_BODY,1,1)
	  HGN1 A 2 Bright
	  HGN1 A 1 A_Die
	  Goto Death
	}
}
/*
ACTOR FistGrenadeItem : Inventory {}
ACTOR PistolGrenadeItem : Inventory {}
ACTOR AutoShotgunGrenadeItem : Inventory {}
ACTOR NailgunGrenadeItem : Inventory {}
*/
ACTOR ScoutBulletPuff : SFortBulletPuff
{
	DamageType "ScoutBullet"
}