/*
 * eriguns2: hydra
 * (c) xaser 2017
 * sprites (c) Amuscaria
 */

Actor HydraLastFiredRight : Inventory { Inventory.MaxAmount 1 }
Actor HydraLastFiredLeft : Inventory { Inventory.MaxAmount 1 }

Actor EriHydra : HellWeapon Replaces GrenadeLauncher 5011
{
	Scale 0.8
	Weapon.SelectionOrder 100
	Weapon.AmmoUse 2
	Weapon.AmmoGive 20
	Weapon.AmmoType "FlameAmmo"
	Weapon.SisterWeapon "EriHydraPowered"
	Inventory.PickupMessage "$GOTHYDRA"
	Tag "$TAG_HYDRA"
	Obituary "$OB_MPHYDRA"
	States
	{
	Ready:
		HYDG A 1 A_WeaponReady
		Loop
	Deselect:
		HYDG A 1 A_Lower
		Loop
	Select:
		HYDG A 1 A_Raise
		Loop
	Fire:
		TNT1 A 0 A_JumpIfInventory("HydraLastFiredLeft", 1, "FireRight")
		TNT1 A 0 A_JumpIfInventory("HydraLastFiredRight", 1, "FireLeft")
		HYDG A 0 
	FireLeft:
		TNT1 A 0 A_PlaySound("weapons/hydrafire", CHAN_WEAPON)
		TNT1 A 0 A_PlaySound("weapons/hydrafire1", CHAN_WEAPON)
		HYDG A 2 A_GunFlash("FlashLeft")
		TNT1 A 0 A_PlaySound("weapons/hydrafire3", CHAN_WEAPON)
		HYDG B 2 A_FireCustomMissile("HydraRocket", frandom(0, -8/2), 1, -8)
		HYDG CB 2
		TNT1 A 0 A_TakeInventory("HydraLastFiredRight", 1)
		TNT1 A 0 A_GiveInventory("HydraLastFiredLeft", 1)
		HYDG A 0 A_Refire
		Goto Ready
	FireRight:
		TNT1 A 0 A_PlaySound("weapons/hydrafire", CHAN_WEAPON)
		TNT1 A 0 A_PlaySound("weapons/hydrafire1", CHAN_WEAPON)
		HYDG A 2 A_GunFlash("FlashRight")
		TNT1 A 0 A_PlaySound("weapons/hydrafire2", CHAN_WEAPON)
		HYDG D 2 A_FireCustomMissile("HydraRocket", frandom(0, 8/2), 1, 8)
		HYDG ED 2
		TNT1 A 0 A_TakeInventory("HydraLastFiredLeft", 1)
		TNT1 A 0 A_GiveInventory("HydraLastFiredRight", 1)
		HYDG A 0 A_Refire
		Goto Ready
	FlashLeft:
		HYDF A 2 Bright A_Light(1)
		HYDF B 2 Bright A_Light(2)
		HYDF C 2 Bright A_Light(1)
		Goto LightDone
	FlashRight:
		HYDF D 2 Bright A_Light(1)
		HYDF E 2 Bright A_Light(2)
		HYDF F 2 Bright A_Light(1)
		Goto LightDone
	Spawn:
		HEYD A -1
		Stop
	}
}

Actor EriHydraPowered : EriHydra
{
	Weapon.AmmoGive 0
	Weapon.SisterWeapon "EriHydra"
	Obituary "$OB_MPHYDRAPOW"
	+WEAPON.POWERED_UP
	States
	{
	Fire:
		TNT1 A 0 A_Recoil(0.5)
		TNT1 A 0 A_PlaySound("weapons/hydrafire" , CHAN_WEAPON)
		TNT1 A 0 A_PlaySound("weapons/hydrafire1", CHAN_5)
		TNT1 A 0 A_PlaySound("weapons/hydrafire2", CHAN_AUTO)
		TNT1 A 0 A_GunFlash
		HYDG A 2 A_FireCustomMissile("HydraRocket", frandom(0, 8), 0, 8)
		HYDG A 0 A_FireCustomMissile("HydraRocket", frandom(0, -8), 1, -8)
		TNT1 A 0 A_Recoil(0.5)
		TNT1 A 0 A_PlaySound("weapons/hydrafire" , CHAN_WEAPON)
		TNT1 A 0 A_PlaySound("weapons/hydrafire1", CHAN_5)
		TNT1 A 0 A_PlaySound("weapons/hydrafire3", CHAN_AUTO)
		HYDG F 2 A_FireCustomMissile("HydraSeeker", frandom(0, 8), 0, 8)
		HYDG F 0 A_FireCustomMissile("HydraSeeker", frandom(0, -8), 1, -8)
		HYDG GF 2
		HYDG A 0 A_Refire
		Goto Ready
	Flash:
		HYDF G 2 Bright A_Light(1)
		HYDF H 2 Bright A_Light(2)
		HYDF I 2 Bright A_Light(1)
		Goto LightDone
	}
}
/*
class EriHydraMana : EriHydra
{
	Default
	{
		Weapon.AmmoUse 1;
		Weapon.AmmoGive 25;
		Weapon.AmmoType "Mana1";
		Weapon.SisterWeapon "EriHydraManaPowered";
	}
}

class EriHydraManaPowered : EriHydraPowered
{
	Default
	{
		Weapon.AmmoUse 1;
		Weapon.AmmoType "Mana1";
		Weapon.SisterWeapon "EriHydraMana";
		+WEAPON.POWERED_UP;
	}
}
*/

Actor HydraRocket : FastProjectile
{
	Damage 6
	Radius 8
	Height 8
	Speed 30
	Scale 0.5
	DeathSound "weapons/hydrahit"
	Decal "PlasmaScorchLower"
	DamageType "Explosive"
	MissileType "HydraRocketTrail"
	MissileHeight 8
	+FORCERADIUSDMG
	States
	{
	Spawn:
		HYRK A -1 Bright
		Stop
	Death:
		TNT1 A 0 A_Explode(20, 64, XF_HURTSOURCE)
		TNT1 A 0 A_SetScale(random(0, 1)*2-1, random(0, 1)*2-1)
		TNT1 A 0 A_SetTranslucent(1.0, 1)
		HYRK B 3 Bright
		HYRK CDEF 3 Bright
		Stop
	}
}

Actor HydraRocketTrail : EriTrail
{
	RenderStyle "Add"
	Alpha 0.2
	Scale 0.2
	States
	{
	Spawn:
		MTRL HBDFG 1 Bright
		Stop
	}
}

Actor HydraSeeker : HydraRocket
{
	MissileType "HydraSeekerTrail"
	+SEEKERMISSILE
	States
	{
	Spawn:
		HYRK A 1 Bright A_SeekerMissile(8, 8, SMF_LOOK | SMF_PRECISE, 256, 16)
		Loop
	}
}

Actor HydraSeekerTrail : HydraRocketTrail
{
	States
	{
	Spawn:
		MTRL HABDFG 1 Bright
		Stop
	}
}
