
// Cleric Weapon Piece ------------------------------------------------------

ACTOR ClericWeaponPiece : WeaponPiece
{
	Inventory.PickupSound "misc/w_pkup"
	Inventory.PickupMessage "$TXT_WRAITHVERGE_PIECE"
	Inventory.ForbiddenTo FighterPlayer, MagePlayer
	WeaponPiece.Weapon CWeapWraithverge
	+FLOATBOB
	+NOGRAVITY
}

// Cleric Weapon Piece 1 ----------------------------------------------------

ACTOR CWeaponPiece1 : ClericWeaponPiece 18
{
	Game Hexen
	SpawnID 33
	WeaponPiece.Number 1
	States
	{
	Spawn:
		WCH1 A -1
		Stop
	}
}

// Cleric Weapon Piece 2 ----------------------------------------------------

ACTOR CWeaponPiece2 : ClericWeaponPiece 19
{
	Game Hexen
	SpawnID 34
	WeaponPiece.Number 2
	States
	{
	Spawn:
		WCH2 A -1
		Stop
	}
}

// Cleric Weapon Piece 3 ----------------------------------------------------

ACTOR CWeaponPiece3 : ClericWeaponPiece 20
{
	Game Hexen
	SpawnID 35
	WeaponPiece.Number 3
	States
	{
	Spawn:
		WCH3 A -1
		Stop
	}
}

// Wraithverge Drop ---------------------------------------------------------

ACTOR WraithvergeDrop
{
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 1 A_DropWeaponPieces("CWeaponPiece1", "CWeaponPiece2", "CWeaponPiece3")
		Stop
	}
}

// Cleric's Wraithverge (Holy Symbol?) --------------------------------------

ACTOR CWeapWraithverge : ClericWeapon native
{
	Game Hexen
	Health 3
	Weapon.SelectionOrder 3000
	+WEAPON.PRIMARY_USES_BOTH
	+Inventory.NoAttenPickupSound
	Weapon.AmmoUse1 18
	Weapon.AmmoUse2 18
	Weapon.AmmoGive1 20
	Weapon.AmmoGive2 20
	Weapon.KickBack 150
	Weapon.AmmoType1 "Mana1"
	Weapon.AmmoType2 "Mana2"
	Inventory.PickupMessage "$TXT_WEAPON_C4"
	Tag "$TAG_CWEAPWRAITHVERGE"
	Inventory.PickupSound "WeaponBuild"

	action native A_CHolyAttack();
	action native A_CHolyPalette();

	States
	{
	Spawn:
		TNT1 A -1
		Stop
	Ready:
		CHLY A 1 A_WeaponReady
		Loop
	Select:
		CHLY A 1 A_Raise
		Loop
	Deselect:
		CHLY A 1 A_Lower
		Loop
	Fire:
		CHLY AB 1 Bright Offset (0, 40)
		CHLY CD 2 Bright Offset (0, 43)
		CHLY E 2 Bright Offset (0, 45)
		CHLY F 6 Bright Offset (0, 48) A_CHolyAttack
		CHLY GG 2 Bright Offset (0, 40) A_CHolyPalette
		CHLY G 2 Offset (0, 36) A_CHolyPalette
		Goto Ready
	}
}

// Holy Missile -------------------------------------------------------------

ACTOR HolyMissile
{
	Speed 30
	Radius 15
	Height 8
	Damage 4
	Projectile
	-ACTIVATEIMPACT -ACTIVATEPCROSS
	+EXTREMEDEATH

	action native A_CHolyAttack2();

	States
	{
	Spawn:
		SPIR PPPP 3 Bright A_SpawnItemEx("HolyMissilePuff")
	Death:
		SPIR P 1 Bright A_CHolyAttack2
		Stop
	}
}

// Holy Missile Puff --------------------------------------------------------

ACTOR HolyMissilePuff
{
	Radius 4
	Height 8
	+NOBLOCKMAP +NOGRAVITY +DROPOFF
	+NOTELEPORT
	RenderStyle "Translucent"
	Alpha 0.4
	States
	{
	Spawn:
		SPIR QRSTU 3
		Stop
	}
}

// Holy Puff ----------------------------------------------------------------

ACTOR HolyPuff
{
	+NOBLOCKMAP +NOGRAVITY
	RenderStyle Translucent
	Alpha 0.6
	States
	{
	Spawn:
		SPIR KLMNO 3
		Stop
	}
}

// Holy Spirit --------------------------------------------------------------

ACTOR HolySpirit native
{
	Health 105
	Speed 12
	Radius 10
	Height 6
	Damage 3
	Projectile
	+RIPPER +SEEKERMISSILE
	+FOILINVUL +SKYEXPLODE +NOEXPLODEFLOOR +CANBLAST
	+EXTREMEDEATH
	RenderStyle Translucent
	Alpha 0.4
	DeathSound "SpiritDie"
	Obituary "$OB_MPCWEAPWRAITHVERGE"

	action native A_CHolySeek();
	action native A_CHolyCheckScream();

	States
	{
	Spawn:
		SPIR AAB 2 A_CHolySeek
		SPIR B 2 A_CHolyCheckScream
		Loop
	Death:
		SPIR D 4
		SPIR E 4 A_Scream
		SPIR FGHI 4
		Stop
	}
}

// Holy Tail ----------------------------------------------------------------

ACTOR HolyTail
{
	Radius 1
	Height 1
	+NOBLOCKMAP +NOGRAVITY +DROPOFF +NOCLIP
	+NOTELEPORT
	RenderStyle Translucent
	Alpha 0.6

	action native A_CHolyTail();

	States
	{
	Spawn:
		SPIR C 1 A_CHolyTail
		Loop
	TailTrail:
		SPIR D -1
		Stop
	}
}

// Holy Tail Trail ---------------------------------------------------------

ACTOR HolyTailTrail : HolyTail
{
	States
	{
	Spawn:
		Goto TailTrail
	}
}
