
// The Almighty Sigil! ------------------------------------------------------

class Sigil : Weapon native
{
	Default
	{
		Weapon.Kickback 100;
		Weapon.SelectionOrder 4000;
		Health 1;
		+FLOORCLIP
		+WEAPON.CHEATNOTWEAPON
		Inventory.PickupSound "weapons/sigilcharge";
		Tag "$TAG_SIGIL";
		Inventory.Icon "I_SGL1";
		Inventory.PickupMessage "$TXT_SIGIL";
	}
	
	action native void A_SelectPiece ();
	action native void A_SelectSigilView ();
	action native void A_SelectSigilDown ();
	action native void A_SelectSigilAttack ();
	action native void A_SigilCharge ();
	action native void A_FireSigil1 ();
	action native void A_FireSigil2 ();
	action native void A_FireSigil3 ();
	action native void A_FireSigil4 ();
	action native void A_FireSigil5 ();
	
	States
	{
	Spawn:
		SIGL A 1;
		SIGL A -1 A_SelectPiece;
		Stop;
		SIGL B -1;
		Stop;
		SIGL C -1;
		Stop;
		SIGL D -1;
		Stop;
		SIGL E -1;
		Stop;
	Ready:
		SIGH A 0 Bright A_SelectSigilView;
		Wait;
		SIGH A 1 Bright A_WeaponReady;
		Wait;
		SIGH B 1 Bright A_WeaponReady;
		Wait;
		SIGH C 1 Bright A_WeaponReady;
		Wait;
		SIGH D 1 Bright A_WeaponReady;
		Wait;
		SIGH E 1 Bright A_WeaponReady;
		Wait;
	Deselect:
		SIGH A 1 Bright A_SelectSigilDown;
		Wait;
		SIGH A 1 Bright A_Lower;
		Wait;
		SIGH B 1 Bright A_Lower;
		Wait;
		SIGH C 1 Bright A_Lower;
		Wait;
		SIGH D 1 Bright A_Lower;
		Wait;
		SIGH E 1 Bright A_Lower;
		Wait;
	Select:
		SIGH A 1 Bright A_SelectSigilView;
		Wait;
		SIGH A 1 Bright A_Raise;
		Wait;
		SIGH B 1 Bright A_Raise;
		Wait;
		SIGH C 1 Bright A_Raise;
		Wait;
		SIGH D 1 Bright A_Raise;
		Wait;
		SIGH E 1 Bright A_Raise;
		Wait;
	
	Fire:
		SIGH A 0 Bright A_SelectSigilAttack;

		SIGH A 18 Bright A_SigilCharge;
		SIGH A 3 Bright A_GunFlash;
		SIGH A 10 A_FireSigil1;
		SIGH A 5;
		Goto Ready;

		SIGH B 18 Bright A_SigilCharge;
		SIGH B 3 Bright A_GunFlash;
		SIGH B 10 A_FireSigil2;
		SIGH B 5;
		Goto Ready;

		SIGH C 18 Bright A_SigilCharge;
		SIGH C 3 Bright A_GunFlash;
		SIGH C 10 A_FireSigil3;
		SIGH C 5;
		Goto Ready;

		SIGH D 18 Bright A_SigilCharge;
		SIGH D 3 Bright A_GunFlash;
		SIGH D 10 A_FireSigil4;
		SIGH D 5;
		Goto Ready;

		SIGH E 18 Bright A_SigilCharge;
		SIGH E 3 Bright A_GunFlash;
		SIGH E 10 A_FireSigil5;
		SIGH E 5;
		Goto Ready;
	Flash:
		SIGF A 4 Bright A_Light2;
		SIGF B 6 Bright A_LightInverse;
		SIGF C 4 Bright A_Light1;
		SIGF C 0 Bright A_Light0;
		Stop;
	}
}

// Sigil 1 ------------------------------------------------------------------

class Sigil1 : Sigil
{
	Default
	{
		Inventory.Icon "I_SGL1";
		Health 1;
	}
}

// Sigil 2 ------------------------------------------------------------------

class Sigil2 : Sigil
{
	Default
	{
		Inventory.Icon "I_SGL2";
		Health 2;
	}
}

// Sigil 3 ------------------------------------------------------------------

class Sigil3 : Sigil
{
	Default
	{
		Inventory.Icon "I_SGL3";
		Health 3;
	}
}

// Sigil 4 ------------------------------------------------------------------

class Sigil4 : Sigil
{
	Default
	{
		Inventory.Icon "I_SGL4";
		Health 4;
	}
}

// Sigil 5 ------------------------------------------------------------------

class Sigil5 : Sigil
{
	Default
	{
		Inventory.Icon "I_SGL5";
		Health 5;
	}
}
