// --------------------------------------------------------------------------
//
// Nailgun
//
// --------------------------------------------------------------------------

ACTOR EriNailgun : HellWeapon 5011
{
	Game Doom
	Scale 0.8
	Weapon.SelectionOrder 700
	Weapon.AmmoUse 1
	Weapon.AmmoGive 20
	Weapon.AmmoType "NailAmmo"
	Weapon.SisterWeapon "EriNailgunPowered"
	Inventory.PickupMessage "$GOTNAILGUN"
	Tag "$TAG_NAILGUN"
	States
	{
	Ready:
		HNAG A 1 A_WeaponReady
		Loop
	Deselect:
		HNAG A 1 A_Lower
		Loop
	Select:
		HNAG A 1 A_Raise
		Loop
	Fire:
		HNAF A 0 Bright A_GunFlash
		HNAF A 0 Bright A_CheckForReload(2, "Fire2")
		HNAF A 0 Bright A_ResetReloadCounter
		HNAF A 0 Bright A_PlaySound("weapons/nailbone1", CHAN_WEAPON)
		HNAF A 0 Bright A_PlaySound("weapons/nailgunextra", CHAN_VOICE, 0.5)
		HNAF A 2 Bright A_FireCustomMissile("Nail", 0, 1, -4)
		HNAF B 2 Bright
		HNAG A 2
		Goto Ready
	Fire2:
		HNAF A 0 Bright A_PlaySound("weapons/nailbone2", CHAN_WEAPON)
		HNAF A 0 Bright A_PlaySound("weapons/nailgunextra", CHAN_VOICE, 0.5)
		HNAF C 2 Bright A_FireCustomMissile("Nail", 0, 1, 4)
		HNAF D 2 Bright
		HNAG A 2
		Goto Ready
	Flash:
		TNT1 A 2 Bright A_Light2
		TNT1 A 2 Bright A_Light1
		Goto LightDone
	Spawn:
		HENG A -1
		Stop
	}
}
ACTOR EriNailgunPowered : EriNailgun
{
	Weapon.AmmoUse 4
	Weapon.AmmoGive 0
	Weapon.SisterWeapon "EriNailgun"
	+WEAPON.POWERED_UP
	States
	{
	Fire:
		HNAF A 0 Bright A_PlaySound("weapons/nailbone3", CHAN_WEAPON)
		HNAF A 0 Bright A_PlaySound("weapons/nailgunextra", CHAN_VOICE, 1.0)
		HNAF E 0 Bright A_FireCustomMissile("SuperNail", 0, 0, -3)
		HNAF E 2 Bright A_FireCustomMissile("SuperNail", 0, 1,  3)
		HNAF F 2 Bright 
		HNAG EAA 2
		Goto Ready
	}
}
ACTOR EriNailgunMana : EriNailgun replaces CWeapStaff
{
	Weapon.AmmoGive 25
	Weapon.AmmoType "Mana1"
	Weapon.SisterWeapon "EriNailgunManaPowered"
}
ACTOR EriNailgunManaPowered : EriNailgunPowered
{
	Weapon.AmmoType "Mana1"
	Weapon.SisterWeapon "EriNailgunMana"
	+WEAPON.POWERED_UP	
}
ACTOR EriNailgunGiver : WeaponGiver
{
	Inventory.PickupMessage "$GOTNAILGUN"
	DropItem "EriNailgun"
	States
	{
	Spawn:
		HENG A -1
		Stop
	}
}
ACTOR EriNailgunHeretic : EriNailgunGiver replaces Blaster    {}
ACTOR EriNailgunStrife  : EriNailgunGiver replaces AssaultGun {}
ACTOR EriNailgunStrife2 : EriNailgunGiver replaces AssaultGunStanding
{
	States
	{
	Spawn:
		HENG B -1
		Stop
	}
}

ACTOR Nail : FastProjectile
{
	Radius 4
	Height 8
	Speed 40
	Damage 4
	Projectile
	+THRUACTORS
	+NODAMAGETHRUST
	+BLOODSPLATTER
	Scale 0.75
	MissileType "NailTrail"
	MissileHeight 8
	SeeSound "weapons/nailgunfire"
	Obituary "$OB_MPNAILGUN"
	Decal "BulletChip"
	var int user_xvel;
	var int user_yvel;
	var int user_zvel;
	States
	{
	Spawn:
		NAIL A 0
		NAIL A 0 A_SetUserVar("user_xvel", velx)
		NAIL A 0 A_SetUserVar("user_yvel", vely)
		NAIL A 0 A_SetUserVar("user_zvel", velz)
		NAIL A 0 A_Jump(256, "Fly")
	Fly:
		NAIL A -1 A_ChangeFlag("THRUACTORS",0)
		Stop
	Death:
	Crash:
		PUFF A 3 A_PlaySound("weapons/nailgunhit")
		PUFF BCD 3
		Stop
	XDeath:
		TNT1 A 0 A_PlaySound("weapons/nailgunblood")
	SpawnSubNail:
		TNT1 A 1 A_SpawnItemEx("SubNail",0,0,0,user_xvel,user_yvel,user_zvel,angle,SXF_ABSOLUTEANGLE | SXF_ABSOLUTEMOMENTUM | SXF_NOCHECKPOSITION | SXF_TRANSFERPOINTERS)
		Stop
	}
}
ACTOR QNail : Nail
{
	SeeSound ""
}
ACTOR SubNail : Nail
{
	SeeSound ""
	States
	{
	Fly:
		NAIL A 1 
		NAIL A 0 A_ChangeFlag("THRUACTORS",0)
		NAIL AAAAAA 1 A_SpawnItemEx("MiniBlood", frandom(-0.1,0.1), 0, frandom(-0.1,0.1))
		NAIL A -1
		Stop
	XDeath:
		TNT1 A 0 A_PlaySound("weapons/nailgunblood")
		Stop
	}
}
ACTOR MiniBlood : Blood
{
	Scale 0.5
	Gravity 0.5
}

ACTOR SuperNail : Nail
{
	+RIPPER
	-THRUACTORS
	Damage (2)
	Obituary "$OB_MPNAILGUNPOW"
	MissileType "NailTrailHot"
	DamageType "Ripper"
	SeeSound ""
	States
	{
	Spawn:
	Fly:
		NAIL B -1 BRIGHT
		Stop
	Death:
	Crash:
	XDeath:
		PUFF A 3 A_PlaySound("weapons/nailgunhit")
		PUFF BCD 3
		Stop
	}
}

ACTOR NailTrail : EriTrail
{ 
	Alpha 0.25
	Scale 0.5
	RenderStyle Add
	States
	{
	Spawn:
		NTRL IACEG 1 BRIGHT
		Stop
	}
}
ACTOR NailTrailHot : NailTrail
{
	Alpha 0.5
	Scale 0.075
	VSpeed 0.5
	States
	{
	Spawn:
		HFLM ZABCIJKLM 1 BRIGHT
		Stop
	}
}