
ACTOR HereticWeapon : Weapon
{
	Weapon.Kickback 150
}


// Staff --------------------------------------------------------------------

ACTOR Staff : HereticWeapon
{
	Game Heretic
	Weapon.SelectionOrder 3800
	+THRUGHOST
	+WIMPY_WEAPON
	+MELEEWEAPON
	Weapon.sisterweapon "StaffPowered"
	Obituary "$OB_MPSTAFF"
	Tag "$TAG_STAFF"

	action native A_StaffAttack (int damage, class<Actor> puff);

	States
	{
	Ready:	
		STFF A 1 A_WeaponReady
		Loop
	Deselect:
		STFF A 1 A_Lower
		Loop
	Select:
		STFF A 1 A_Raise
		Loop
	Fire:
		STFF B 6
		STFF C 8 A_StaffAttack(random[StaffAttack](5, 20), "StaffPuff")
		STFF B 8 A_ReFire
		Goto Ready
	}
}

ACTOR StaffPowered : Staff
{
	Game Heretic
	Weapon.sisterweapon "Staff"
	Weapon.ReadySound "weapons/staffcrackle"
	+WEAPON.POWERED_UP
	+WEAPON.READYSNDHALF
	+WEAPON.STAFF2_KICKBACK
	Obituary "$OB_MPPSTAFF"
	Tag "$TAG_STAFFP"
	States
	{
	Ready:	
		STFF DEF 4 A_WeaponReady
		Loop
	Deselect:
		STFF D 1 A_Lower
		Loop
	Select:
		STFF D 1 A_Raise
		Loop
	Fire:
		STFF G 6
		STFF H 8 A_StaffAttack(random[StaffAttack](18, 81), "StaffPuff2")
		STFF G 8 A_ReFire
		Goto Ready
	}
}


// Staff puff ---------------------------------------------------------------

ACTOR StaffPuff
{
	RenderStyle Translucent
	Alpha 0.4
	VSpeed 1
	+NOBLOCKMAP
	+NOGRAVITY
	+PUFFONACTORS
	AttackSound "weapons/staffhit"
	States
	{
	Spawn:
		PUF3 A 4 BRIGHT
		PUF3 BCD 4
		Stop
	}
}

// Staff puff 2 -------------------------------------------------------------

ACTOR StaffPuff2
{
	RenderStyle Add
	+NOBLOCKMAP
	+NOGRAVITY
	+PUFFONACTORS
	AttackSound "weapons/staffpowerhit"
	States
	{
	Spawn:
		PUF4 ABCDEF 4 BRIGHT
		Stop
	}
}	



// Gold wand ----------------------------------------------------------------

ACTOR GoldWand : HereticWeapon
{
	Game Heretic
	+BLOODSPLATTER
	Weapon.SelectionOrder 2000
	Weapon.AmmoGive 25
	Weapon.AmmoUse 1
	Weapon.AmmoType "GoldWandAmmo"
	Weapon.SisterWeapon "GoldWandPowered"
	Weapon.YAdjust 5
	Obituary "$OB_MPGOLDWAND"
	Tag "$TAG_GOLDWAND"

	action native A_FireGoldWandPL1 ();
	
	States
	{
	Ready:
		GWND A 1 A_WeaponReady
		Loop
	Deselect:
		GWND A 1 A_Lower
		Loop
	Select:
		GWND A 1 A_Raise
		Loop
	Fire:
		GWND B 3 
		GWND C 5 A_FireGoldWandPL1
		GWND D 3
		GWND D 0 A_ReFire
		Goto Ready
	}
}

ACTOR GoldWandPowered : GoldWand
{
	Game Heretic
	+WEAPON.POWERED_UP
	Weapon.AmmoGive 0
	Weapon.SisterWeapon "GoldWand"
	Obituary "$OB_MPPGOLDWAND"
	Tag "$TAG_GOLDWANDP"

	action native A_FireGoldWandPL2 ();

	States
	{
	Fire:
		GWND B 3 
		GWND C 4 A_FireGoldWandPL2
		GWND D 3
		GWND D 0 A_ReFire
		Goto Ready
	}
}
	

// Gold wand FX1 ------------------------------------------------------------

ACTOR GoldWandFX1
{
	Game Heretic
	SpawnID 151
	Radius 10
	Height 6
	Speed 22
	Damage 2
	Projectile
	RenderStyle Add
	DeathSound "weapons/wandhit"
	Obituary "$OB_MPPGOLDWAND"
	States
	{
	Spawn:
		FX01 AB 6 BRIGHT
		Loop
	Death:
		FX01 EFGH 3 BRIGHT
		Stop
	}
}

// Gold wand FX2 ------------------------------------------------------------

ACTOR GoldWandFX2 : GoldWandFX1
{
	Game Heretic
	SpawnID 152
	Speed 18
	Damage 1
	DeathSound ""
	States
	{
	Spawn:
		FX01 CD 6 BRIGHT
		Loop
	}
}

// Gold wand puff 1 ---------------------------------------------------------

ACTOR GoldWandPuff1
{
	+NOBLOCKMAP
	+NOGRAVITY
	+PUFFONACTORS
	RenderStyle Add
	States
	{
	Spawn:
		PUF2 ABCDE 3 BRIGHT
		Stop
	}
}

// Gold wand puff 2 ---------------------------------------------------------

ACTOR GoldWandPuff2 : GoldWandFX1
{
	Skip_Super
	+NOBLOCKMAP
	+NOGRAVITY
	+PUFFONACTORS
	States
	{
	Spawn:
		Goto Super::Death
	}
}


// Crossbow -----------------------------------------------------------------

ACTOR Crossbow : HereticWeapon 2001
{
	Game Heretic
	SpawnID 27
	Weapon.SelectionOrder 800
	Weapon.AmmoUse 1
	Weapon.AmmoGive 10
	Weapon.AmmoType "CrossbowAmmo"
	Weapon.SisterWeapon "CrossbowPowered"
	Weapon.YAdjust 15
	Inventory.PickupMessage "$TXT_WPNCROSSBOW"
	Tag "$TAG_CROSSBOW"

	action native A_FireCrossbowPL1 ();

	States
	{
	Spawn:
		WBOW A -1
		Stop
	Ready:
		CRBW AAAAAABBBBBBCCCCCC 1 A_WeaponReady
		Loop
	Deselect:
		CRBW A 1 A_Lower
		Loop
	Select:
		CRBW A 1 A_Raise
		Loop
	Fire:
		CRBW D 6 A_FireCrossbowPL1
		CRBW EFGH 3
		CRBW AB 4
		CRBW C 5 A_ReFire
		Goto Ready
	}
}


ACTOR CrossbowPowered : Crossbow
{
	Game Heretic
	+WEAPON.POWERED_UP
	Weapon.AmmoGive 0
	Weapon.SisterWeapon "Crossbow"
	Tag "$TAG_CROSSBOWP"

	action native A_FireCrossbowPL2();

	States
	{
	Fire:
		CRBW D 5 A_FireCrossbowPL2
		CRBW E 3
		CRBW F 2
		CRBW G 3
		CRBW H 2
		CRBW A 3
		CRBW B 3
		CRBW C 4 A_ReFire
		Goto Ready
	}
}


// Crossbow FX1 -------------------------------------------------------------

ACTOR CrossbowFX1
{
	Game Heretic
	SpawnID 147
	Radius 11
	Height 8
	Speed 30
	Damage 10
	Projectile
	RenderStyle Add
	SeeSound "weapons/bowshoot"
	DeathSound "weapons/bowhit"
	Obituary "$OB_MPCROSSBOW"
	States
	{
	Spawn:
		FX03 B 1 BRIGHT
		Loop
	Death:
		FX03 HIJ 8 BRIGHT
		Stop
	}
}


// Crossbow FX2 -------------------------------------------------------------

ACTOR CrossbowFX2 : CrossbowFX1
{
	Game Heretic
	SpawnID 148
	Speed 32
	Damage 6
	Obituary "$OB_MPPCROSSBOW"
	States
	{
	Spawn:
		FX03 B 1 BRIGHT A_SpawnItemEx("CrossbowFX4", random2[BoltSpark]()*0.015625, random2[BoltSpark]()*0.015625, 0, 0,0,0,0,SXF_ABSOLUTEPOSITION, 50)
		Loop
	}
}

// Crossbow FX3 -------------------------------------------------------------

ACTOR CrossbowFX3 : CrossbowFX1
{
	Game Heretic
	SpawnID 149
	Speed 20
	Damage 2
	SeeSound ""
	-NOBLOCKMAP
	+WINDTHRUST
	+THRUGHOST
	States
	{
	Spawn:
		FX03 A 1 BRIGHT
		Loop
	Death:
		FX03 CDE 8 BRIGHT
		Stop
	}
}

// Crossbow FX4 -------------------------------------------------------------

ACTOR CrossbowFX4
{
	+NOBLOCKMAP
	Gravity 0.125
	RenderStyle Add
	States
	{
	Spawn:
		FX03 FG 8 BRIGHT
		Stop
	}
}




// Gauntlets ----------------------------------------------------------------

ACTOR Gauntlets : Weapon 2005
{
	Game Heretic
	SpawnID 32
	+BLOODSPLATTER
	Weapon.SelectionOrder 2300
	+WEAPON.WIMPY_WEAPON
	+WEAPON.MELEEWEAPON
	Weapon.Kickback 0
	Weapon.YAdjust 15
	Weapon.UpSound "weapons/gauntletsactivate"
	Weapon.SisterWeapon "GauntletsPowered"
	Inventory.PickupMessage "$TXT_WPNGAUNTLETS"
	Tag "$TAG_GAUNTLETS"
	Obituary "$OB_MPGAUNTLETS"

	action native A_GauntletAttack (int power);

	States
	{
	Spawn:
		WGNT A -1
		Stop
	Ready:
		GAUN A 1 A_WeaponReady
		Loop
	Deselect:
		GAUN A 1 A_Lower
		Loop
	Select:
		GAUN A 1 A_Raise
		Loop
	Fire:
		GAUN B 4 A_PlayWeaponSound("weapons/gauntletsuse")
		GAUN C 4
	Hold:
		GAUN DEF 4 BRIGHT A_GauntletAttack(0)
		GAUN C 4 A_ReFire
		GAUN B 4 A_Light0
		Goto Ready
	}
}


ACTOR GauntletsPowered : Gauntlets
{
	Game Heretic
	+POWERED_UP
	Tag "$TAG_GAUNTLETSP"
	Obituary "$OB_MPPGAUNTLETS"
	Weapon.SisterWeapon "Gauntlets"
	States
	{
	Ready:
		GAUN GHI 4 A_WeaponReady
		Loop
	Deselect:
		GAUN G 1 A_Lower
		Loop
	Select:
		GAUN G 1 A_Raise
		Loop
	Fire:
		GAUN J 4 A_PlayWeaponSound("weapons/gauntletsuse")
		GAUN K 4
	Hold:
		GAUN LMN 4 BRIGHT A_GauntletAttack(1)
		GAUN K 4 A_ReFire
		GAUN J 4 A_Light0
		Goto Ready
	}
}


// Gauntlet puff 1 ----------------------------------------------------------

ACTOR GauntletPuff1
{
	+NOBLOCKMAP
	+NOGRAVITY
	+PUFFONACTORS
	RenderStyle Translucent
	Alpha 0.4
	VSpeed 0.8
	States
	{
	Spawn:
		PUF1 ABCD 4 BRIGHT
		Stop
	}
}

// Gauntlet puff 2 ---------------------------------------------------------

ACTOR GauntletPuff2 : GauntletPuff1
{
	States
	{
	Spawn:
		PUF1 EFGH 4 BRIGHT
		Stop
	}
}


// The mace itself ----------------------------------------------------------

ACTOR Mace : HereticWeapon
{
	Game Heretic
	SpawnID 31
	Weapon.SelectionOrder 1400
	Weapon.AmmoUse 1
	Weapon.AmmoGive1 50
	Weapon.YAdjust 15
	Weapon.AmmoType "MaceAmmo"
	Weapon.SisterWeapon "MacePowered"
	Inventory.PickupMessage "$TXT_WPNMACE"
	Tag "$TAG_MACE"
	
	action native A_FireMacePL1();
	
	States
	{
	Spawn:
		WMCE A -1
		Stop
	Ready:
		MACE A 1 A_WeaponReady
		Loop
	Deselect:
		MACE A 1 A_Lower
		Loop
	Select:
		MACE A 1 A_Raise
		Loop
	Fire:
		MACE B 4
	Hold:
		MACE CDEF 3 A_FireMacePL1
		MACE C 4 A_ReFire
		MACE DEFB 4
		Goto Ready
	}
}

ACTOR MacePowered : Mace
{
	Game Heretic
	+WEAPON.POWERED_UP
	Weapon.AmmoUse 5
	Weapon.AmmoGive 0
	Weapon.SisterWeapon "Mace"
	Tag "$TAG_MACEP"
	
	action native A_FireMacePL2();
	
	States
	{
	Fire:
	Hold:	
		MACE B 4
		MACE D 4 A_FireMacePL2
		MACE B 4
		MACE A 8 A_ReFire
		Goto Ready
	}
}

// Mace FX1 -----------------------------------------------------------------

ACTOR MaceFX1
{
	Game Heretic
	SpawnID 154
	Radius 8
	Height 6
	Speed 20
	Damage 2
	Projectile
	+THRUGHOST
	BounceType "HereticCompat"
	SeeSound "weapons/maceshoot"
	Obituary "$OB_MPMACE"

	action native A_MacePL1Check();
	action native A_MaceBallImpact();

	States
	{
	Spawn:
		FX02 AB 4 A_MacePL1Check
		Loop
	Death:
		FX02 F 4 BRIGHT A_MaceBallImpact
		FX02 GHIJ 4 BRIGHT
		Stop
	}
}

// Mace FX2 -----------------------------------------------------------------

ACTOR MaceFX2 : MaceFX1
{
	Game Heretic
	SpawnID 156
	Speed 10
	Damage 6
	Gravity 0.125
	-NOGRAVITY
	SeeSound ""

	action native A_MaceBallImpact2();

	States
	{
	Spawn:
		FX02 CD 4
		Loop
	Death:
		FX02 F 4 A_MaceBallImpact2
		goto Super::Death+1
	}
}

// Mace FX3 -----------------------------------------------------------------

ACTOR MaceFX3 : MaceFX1
{
	Game Heretic
	SpawnID 155
	Speed 7
	Damage 4
	-NOGRAVITY
	Gravity 0.125
	States
	{
	Spawn:
		FX02 AB 4
		Loop
	}
}


// Mace FX4 -----------------------------------------------------------------

ACTOR MaceFX4 native
{
	Game Heretic
	SpawnID 153
	Radius 8
	Height 6
	Speed 7
	Damage 18
	Gravity 0.125
	Projectile
	-NOGRAVITY
	+TELESTOMP
	+THRUGHOST
	-NOTELEPORT
	BounceType "HereticCompat"
	SeeSound ""
	Obituary "$OB_MPPMACE"

	action native A_DeathBallImpact();

	States
	{
	Spawn:
		FX02 E 99
		Loop
	Death:
		FX02 C 4 A_DeathBallImpact
		FX02 GHIJ 4 BRIGHT
		Stop
	}
}


// Mace spawn spot ----------------------------------------------------------

ACTOR MaceSpawner : SpecialSpot 2002
{
	Game Heretic
	+NOSECTOR
	+NOBLOCKMAP
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A -1 A_SpawnSingleItem("Mace", 64, 64, 0)
		Stop
	}
}


// Blaster ------------------------------------------------------------------

ACTOR Blaster : HereticWeapon 53
{
	Game Heretic
	SpawnID 28
	+BLOODSPLATTER
	Weapon.SelectionOrder 500
	Weapon.AmmoUse 1
	Weapon.AmmoGive 30
	Weapon.YAdjust 15
	Weapon.AmmoType "BlasterAmmo"
	Weapon.SisterWeapon "BlasterPowered"
	Inventory.PickupMessage "$TXT_WPNBLASTER"
	Tag "$TAG_BLASTER"
	Obituary "$OB_MPBLASTER"

	action native A_FireBlasterPL1();

	States
	{
	Spawn:
		WBLS A -1
		Stop
	Ready:
		BLSR A 1 A_WeaponReady
		Loop
	Deselect:
		BLSR A 1 A_Lower
		Loop
	Select:
		BLSR A 1 A_Raise
		Loop
	Fire:
		BLSR BC 3
	Hold:
		BLSR D 2 A_FireBlasterPL1
		BLSR CB 2
		BLSR A 0 A_ReFire
		Goto Ready
	}
}

ACTOR BlasterPowered : Blaster
{
	Game Heretic
	+WEAPON.POWERED_UP
	Weapon.AmmoUse 5
	Weapon.AmmoGive 0
	Weapon.SisterWeapon "Blaster"
	States
	{
	Fire:
		BLSR BC 0
	Hold:
		BLSR D 3 A_FireCustomMissile("BlasterFX1")
		BLSR CB 4
		BLSR A 0 A_ReFire
		Goto Ready
	}
}

// Blaster FX 1 -------------------------------------------------------------

ACTOR BlasterFX1 : FastProjectile native
{
	Radius 12
	Height 8
	Speed 184
	Damage 2
	SeeSound "weapons/blastershoot"
	DeathSound "weapons/blasterhit"
	+SPAWNSOUNDSOURCE
	Obituary "$OB_MPPBLASTER"
	Tag "$TAG_BLASTERP"

	action native A_SpawnRippers();

	States
	{
	Spawn:
		ACLO E 200
		Loop
	Death:
		FX18 A 3 BRIGHT A_SpawnRippers
		FX18 B 3 BRIGHT
		FX18 CDEFG 4 BRIGHT
		Stop
	}
}

// Blaster smoke ------------------------------------------------------------

ACTOR BlasterSmoke
{
	+NOBLOCKMAP
	+NOGRAVITY
	+NOTELEPORT
	+CANNOTPUSH
	RenderStyle Translucent
	Alpha 0.4
	States
	{
	Spawn:
		FX18 HIJKL 4
		Stop
	}
}

// Ripper -------------------------------------------------------------------

ACTOR Ripper native
{
	Game Heretic
	SpawnID 157
	Radius 8
	Height 6
	Speed 14
	Damage 1
	Projectile
	+RIPPER
	DeathSound "weapons/blasterpowhit"
	Obituary "$OB_MPPBLASTER"
	States
	{
	Spawn:
		FX18 M 4
		FX18 N 5
		Loop
	Death:
		FX18 OPQRS 4 BRIGHT
		Stop
	}
}

// Blaster Puff -------------------------------------------------------------

ACTOR BlasterPuff
{
	+NOBLOCKMAP
	+NOGRAVITY
	+PUFFONACTORS
	RenderStyle Add
	States
	{
	Crash:
		FX17 ABCDE 4 BRIGHT
		Stop
	Spawn:
		FX17 FG 3 BRIGHT
		FX17 HIJKL 4 BRIGHT
		Stop
	}
}


// Skull (Horn) Rod ---------------------------------------------------------

ACTOR SkullRod : HereticWeapon 2004
{
	Game Heretic
	SpawnID 30
	Weapon.SelectionOrder 200
	Weapon.AmmoUse1 1
	Weapon.AmmoGive1 50
	Weapon.YAdjust 15
	Weapon.AmmoType1 "SkullRodAmmo"
	Weapon.SisterWeapon "SkullRodPowered"
	Inventory.PickupMessage "$TXT_WPNSKULLROD"
	Tag "$TAG_SKULLROD"

	action native A_FireSkullRodPL1();

	States
	{
	Spawn:
		WSKL A -1
		Stop
	Ready:
		HROD A 1 A_WeaponReady
		Loop
	Deselect:
		HROD A 1 A_Lower
		Loop
	Select:
		HROD A 1 A_Raise
		Loop
	Fire:
		HROD AB 4 A_FireSkullRodPL1
		HROD B 0 A_ReFire
		Goto Ready
	}
}

ACTOR SkullRodPowered : SkullRod
{
	Game Heretic
	+WEAPON.POWERED_UP
	Weapon.AmmoUse1 5
	Weapon.AmmoGive1 0
	Weapon.SisterWeapon "SkullRod"
	Tag "$TAG_SKULLRODP"

	action native A_FireSkullRodPL2();

	States
	{
	Fire:
		HROD C 2
		HROD D 3
		HROD E 2
		HROD F 3
		HROD G 4 A_FireSkullRodPL2
		HROD F 2
		HROD E 3
		HROD D 2
		HROD C 2 A_ReFire
		Goto Ready
	}
}

// Horn Rod FX 1 ------------------------------------------------------------

ACTOR HornRodFX1
{
	Game Heretic
	SpawnID 160
	Radius 12
	Height 8
	Speed 22
	Damage 3
	Projectile
	+WINDTHRUST
	-NOBLOCKMAP
	RenderStyle Add
	SeeSound "weapons/hornrodshoot"
	DeathSound "weapons/hornrodhit"
	Obituary "$OB_MPSKULLROD"
	States
	{
	Spawn:
		FX00 AB 6 BRIGHT
		Loop
	Death:
		FX00 HI 5 BRIGHT
		FX00 JK 4 BRIGHT
		FX00 LM 3 BRIGHT
		Stop
	}
}


// Horn Rod FX 2 ------------------------------------------------------------

ACTOR HornRodFX2 native
{
	Radius 12
	Height 8
	Speed 22
	Damage 10
	Health 140
	Projectile
	RenderStyle Add
	SeeSound "weapons/hornrodpowshoot"
	DeathSound "weapons/hornrodpowhit"
	Obituary "$OB_MPPSKULLROD"

	action native A_AddPlayerRain();
	action native A_HideInCeiling();
	action native A_SkullRodStorm();

	States
	{
	Spawn:
		FX00 C 3 BRIGHT
		FX00 D 3 BRIGHT A_SeekerMissile(10, 30)
		FX00 E 3 BRIGHT
		FX00 F 3 BRIGHT A_SeekerMissile(10, 30)
		Loop
	Death:
		FX00 H 5 BRIGHT A_AddPlayerRain
		FX00 I 5 BRIGHT
		FX00 J 4 BRIGHT
		FX00 KLM 3 BRIGHT
		FX00 G 1 A_HideInCeiling
		FX00 G 1 A_SkullRodStorm
		Wait
	}
}

// Rain pillar 1 ------------------------------------------------------------

ACTOR RainPillar native
{
	Radius 5
	Height 12
	Speed 12
	Damage 5
	Mass 5
	Projectile
	-ACTIVATEPCROSS
	-ACTIVATEIMPACT
	RenderStyle Add
	Obituary "$OB_MPPSKULLROD"

	action native A_RainImpact();

	States
	{
	Spawn:
		FX22 A -1 BRIGHT
		Stop
	Death:
		FX22 B 4 BRIGHT A_RainImpact
		FX22 CDEF 4 BRIGHT
		Stop
	NotFloor:
		FX22 GHI 4 BRIGHT
		Stop
	}
}

// Rain tracker "inventory" item --------------------------------------------

ACTOR RainTracker : Inventory native
{
	+INVENTORY.UNDROPPABLE
}


// Phoenix Rod --------------------------------------------------------------

ACTOR PhoenixRod : Weapon 2003 native
{
	Game Heretic
	SpawnID 29
	+WEAPON.NOAUTOFIRE
	Weapon.SelectionOrder 2600
	Weapon.Kickback 150
	Weapon.YAdjust 15
	Weapon.AmmoUse 1
	Weapon.AmmoGive 2
	Weapon.AmmoType "PhoenixRodAmmo"
	Weapon.Sisterweapon "PhoenixRodPowered"
	Inventory.PickupMessage "$TXT_WPNPHOENIxROD"
	Tag "$TAG_PHOENIxROD"

	action native A_FirePhoenixPL1();

	States
	{
	Spawn:
		WPHX A -1
		Stop
	Ready:
		PHNX A 1 A_WeaponReady
		Loop
	Deselect:
		PHNX A 1 A_Lower
		Loop
	Select:
		PHNX A 1 A_Raise
		Loop
	Fire:
		PHNX B 5
		PHNX C 7 A_FirePhoenixPL1
		PHNX DB 4
		PHNX B 0 A_ReFire
		Goto Ready
	}
}

ACTOR PhoenixRodPowered : PhoenixRod native
{
	Game Heretic
	+WEAPON.POWERED_UP
	+WEAPON.MELEEWEAPON
	Weapon.SisterWeapon "PhoenixRod"
	Weapon.AmmoGive 0
	Tag "$TAG_PHOENIxRODP"

	action native A_InitPhoenixPL2();
	action native A_FirePhoenixPL2();
	action native A_ShutdownPhoenixPL2();

	States
	{
	Fire:
		PHNX B 3 A_InitPhoenixPL2
	Hold:
		PHNX C 1 A_FirePhoenixPL2
		PHNX B 4 A_ReFire
	Powerdown:
		PHNX B 4 A_ShutdownPhoenixPL2
		Goto Ready
	}
}

// Phoenix FX 1 -------------------------------------------------------------

ACTOR PhoenixFX1 native
{
	Game Heretic
	SpawnID 163
	Radius 11
	Height 8
	Speed 20
	Damage 20
	DamageType Fire
	Projectile
	+THRUGHOST
	+SPECIALFIREDAMAGE
	SeeSound "weapons/phoenixshoot"
	DeathSound "weapons/phoenixhit"
	Obituary "$OB_MPPHOENIXROD"

	action native A_PhoenixPuff();

	States
	{
	Spawn:
		FX04 A 4 BRIGHT A_PhoenixPuff
		Loop
	Death:
		FX08 A 6 BRIGHT A_Explode
		FX08 BC 5 BRIGHT
		FX08 DEFGH 4 BRIGHT
		Stop
	}
}

// Phoenix puff -------------------------------------------------------------

ACTOR PhoenixPuff
{
	+NOBLOCKMAP
	+NOGRAVITY
	+NOTELEPORT
	+CANNOTPUSH
	RenderStyle Translucent
	Alpha 0.4
	States
	{
	Spawn:
		FX04 BCDEF 4
		Stop
	}
}

// Phoenix FX 2 -------------------------------------------------------------

ACTOR PhoenixFX2 native
{
	Radius 6
	Height 8
	Speed 10
	Damage 2
	DamageType Fire
	Projectile
	RenderStyle Add
	Obituary "$OB_MPPPHOENIXROD"

	action native A_FlameEnd();
	action native A_FloatPuff();

	States
	{
	Spawn:
		FX09 ABABA 2 BRIGHT
		FX09 B 2 BRIGHT A_FlameEnd
		FX09 CDEF 2 BRIGHT
		Stop
	Death:
		FX09 G 3 BRIGHT
		FX09 H 3 BRIGHT A_FloatPuff
		FX09 I 4 BRIGHT
		FX09 JK 5 BRIGHT
		Stop
	}
}

