// --------------------------------------------------------------------------
//
// Immolator
//
// --------------------------------------------------------------------------

ACTOR EriImmolator : HellWeapon replaces Pistol
{
	Game Doom
	Scale 0.8
	Weapon.SelectionOrder 1900
	Weapon.AmmoUse 1
	Weapon.AmmoGive 0
	Weapon.AmmoType "FlameAmmo"
	Weapon.SisterWeapon "EriImmolatorPowered"
	Inventory.Pickupmessage "$GOTIMMOLATOR"
	Tag "$TAG_IMMOLATOR"
	+WEAPON.WIMPY_WEAPON
	States
	{
	Ready:
		HIMG AABBCCDDCCBB 1 A_WeaponReady
		Loop
	Deselect:
		HIMG A 0 A_StopSound(CHAN_WEAPON)
	DeselectLoop:
		HIMG AABBCCDDCCBB 1 A_Lower
		Loop
	Select:
		HIMG A 0 ACS_NamedExecute("ImmolatorReplace",0,0,0,0)
		HIMG AABBCCDDCCBB 1 A_Raise
		Wait
	Fire:
	DoFire:
		HIMF A 2 Bright A_GunFlash
		HIMF A 0 Bright A_FireCustomMissile("ImmolatorFireball")
		HIMF B 2 Bright A_PlaySound("weapons/immolatorfire", CHAN_WEAPON)
		HIMF CDEFGH 2 Bright
		HIMF IJ 2 Bright A_ReFire
		HIMG A 0 A_Jump(256, "Ready")
		Goto Ready
	Flash:
		TNT1 A 2 Bright A_Light1
		TNT1 A 2 Bright A_Light2
		TNT1 A 2 Bright A_Light1
		Goto LightDone
 	Spawn:
		HEIM A -1
		Stop
	}
}
ACTOR EriImmolatorPowered : EriImmolator
{
	Weapon.SisterWeapon "EriImmolator"
	+WEAPON.POWERED_UP
	States
	{
	Fire:
	DoFire:
		HIMF A 2 Bright A_PlaySound("weapons/immolatorpow1", CHAN_BODY)
		HIMF A 0 Bright A_PlaySound("weapons/immolatorpow2", CHAN_WEAPON, 1.0, 1)
	Hold:
	DoHold:
		HIMF B 0 Bright A_GunFlash
		HIMF B 2 Bright A_FireCustomMissile("ImmolatorFirestream", 0, 1, 0, -5)
		HIMF CD 2 Bright
		HIMF E 0 Bright A_Refire
		HIMF E 0 Bright A_PlaySound("weapons/immolatorpow3", CHAN_BODY)
		HIMF E 0 Bright A_StopSound(CHAN_WEAPON)
		HIMF EFGHIJ 2 Bright
		HIMG A 0 A_Jump(256, "Ready")
		Goto Ready
	}
}
ACTOR EriImmolatorAsh : EriImmolator replaces GoldWand
{
	Weapon.AmmoType "AshAmmo"
	Weapon.SisterWeapon "EriImmolatorAshPowered"
	States
	{
	Select:
		HIMG AABBCCDDCCBB 1 A_Raise
		Wait
	}
}
ACTOR EriImmolatorAshPowered : EriImmolatorPowered
{
	Weapon.AmmoType "AshAmmo"
	Weapon.SisterWeapon "EriImmolatorAsh"
	+WEAPON.POWERED_UP	
	States
	{
	Select:
		HIMG AABBCCDDCCBB 1 A_Raise
		Wait
	}
}
ACTOR EriImmolatorMana : EriImmolator replaces FWeapAxe
{
	Weapon.AmmoGive 25
	Weapon.AmmoType "Mana1"
	Weapon.SisterWeapon "EriImmolatorManaPowered"
	States
	{
	Select:
		HIMG AABBCCDDCCBB 1 A_Raise
		Wait
	}
}
ACTOR EriImmolatorManaPowered : EriImmolatorPowered
{
	Weapon.AmmoType "Mana1"
	Weapon.SisterWeapon "EriImmolatorMana"
	+WEAPON.POWERED_UP
	States
	{
	Select:
		HIMG AABBCCDDCCBB 1 A_Raise
		Wait
	}
}
ACTOR EriImmolatorAshGiver : WeaponGiver
{
	Inventory.PickupMessage "$GOTIMMOLATOR"
	DropItem "EriImmolatorAsh"
	States
	{
	Spawn:
		HEIM A -1
		Stop
	}
}
ACTOR EriImmolatorAshStrife  : EriImmolatorAshGiver replaces StrifeCrossbow {}


ACTOR ImmolatorFireball
{
	Height 13
	Radius 8
    Speed 20
    Damage (5 * random(1,3))
    Alpha 0.85
    Projectile
	Renderstyle Add
	+SEEKERMISSILE
	+PAINLESS
	+FORCERADIUSDMG
    Decal "PlasmaScorchLower"
	Obituary "$OB_MPIMMOLATOR"
	DamageType "FireBurn"
	Args 2
    States
    {
    Spawn:
        HFBL A 1 Bright A_SpawnItemEx("ImmolatorTrail",0,0,0,0,frandom(-0.05,0.25),frandom(-0.25,0.25),0,SXF_CLIENTSIDE,0)
        Loop
    Death:
		HPUF A 3 Bright A_PlaySound("weapons/immolatorout", CHAN_VOICE)
		HPUF BCDEFG 3 Bright
        Stop
	XDeath:
		HFLM A 0 Bright A_PlaySound("weapons/immolatorhit", CHAN_VOICE)
		HFLM A 0 Bright A_SeekerMissile(90,90,SMF_LOOK,255,0)
		HFLM A 0 Bright A_Stop
		HFLM A 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM A 3 Bright A_PlaySound("weapons/immolatorburn", CHAN_WEAPON, 0.75, 1)
		HFLM B 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM B 3 Bright A_SetScale(0.5)
	Burning:
		HFLM C 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM C 3 Bright A_Explode(2, 32, XF_HURTSOURCE, 0, 16)
		HFLM D 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM D 3 Bright A_Explode(2, 32, XF_HURTSOURCE, 0, 16)
		HFLM E 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM E 3 Bright A_Explode(2, 32, XF_HURTSOURCE, 0, 16)
		HFLM F 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM F 3 Bright A_Explode(2, 32, XF_HURTSOURCE, 0, 16)
		HFLM G 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM G 3 Bright A_Explode(2, 32, XF_HURTSOURCE, 0, 16)
		HFLM H 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM H 3 Bright A_Explode(2, 32, XF_HURTSOURCE, 0, 16)
		HFLM I 0 Bright A_Warp(AAPTR_TRACER, 8, 0, 24, 0, WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) HFLM I 3 Bright A_Explode(2, 32, XF_HURTSOURCE, 0, 16)
		HFLM I 0 Bright A_CountdownArg (0, "Burnout")
		Loop
	Burnout:
		HFLM J 3 Bright A_PlaySound("weapons/immolatorout", CHAN_WEAPON)
		HFLM KLM 3 Bright
		Stop
    }
}
ACTOR ImmolatorFirestream : ImmolatorFireball
{
	Obituary "$OB_MPIMMOLATORPOW"
	Scale 0.5
	States
	{
	Spawn:
		HFLM AAABBBCCCIIIJJJKKKLLLMMM 1 Bright A_SpawnItemEx("ImmolatorTrail2",0,0,0,0,frandom(-0.05,0.25),frandom(-0.25,0.25),0,SXF_CLIENTSIDE,0)
		Stop
    Death:
		HFLM K 3 Bright A_PlaySound("weapons/immolatorout", CHAN_VOICE)
		HFLM LM 3 Bright
        Stop
	}
}

ACTOR ImmolatorTrail : EriTrail
{ 
	Renderstyle Add
	Alpha 0.85
    Scale 0.75
	States
	{
	Spawn:
		HFBL ABC 2 Bright
		Stop
	}
}

ACTOR ImmolatorTrail2 : ImmolatorTrail
{
	Alpha 0.5
	Scale 0.5
	States
	{
	Spawn:
		HFLM KLM 2 Bright
		Stop
	}
}