
// The Fighter's Axe --------------------------------------------------------

class FWeapAxe : FighterWeapon native
{
	Default
	{
		Weapon.SelectionOrder 1500;
		+WEAPON.AXEBLOOD +WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON
		Weapon.AmmoUse1 2;
		Weapon.AmmoGive1 25;
		Weapon.KickBack 150;
		Weapon.YAdjust -12;
		Weapon.AmmoType1 "Mana1";
		Inventory.PickupMessage "$TXT_WEAPON_F2";
		Obituary "$OB_MPFWEAPAXE";
		Tag "$TAG_FWEAPAXE";
	}

	action native void A_FAxeCheckUp();
	action native void A_FAxeCheckReady();
	action native void A_FAxeCheckAtk();
	action native void A_FAxeAttack();
	action native void A_FAxeCheckUpG();
	action native void A_FAxeCheckReadyG();

	States
	{
	Spawn:
		WFAX A -1;
		Stop;
	Select:
		FAXE A 1 A_FAxeCheckUp;
		Loop;
	Deselect:
		FAXE A 1 A_Lower;
		Loop;
	Ready:
		FAXE A 1 A_FAxeCheckReady;
		Loop;
	Fire:
		FAXE B 4 Offset (15, 32) A_FAxeCheckAtk;
		FAXE C 3 Offset (15, 32);
		FAXE D 2 Offset (15, 32);
		FAXE D 1 Offset (-5, 70) A_FAxeAttack;
		FAXE D 2 Offset (-25, 90);
		FAXE E 1 Offset (15, 32);
		FAXE E 2 Offset (10, 54);
		FAXE E 7 Offset (10, 150);
		FAXE A 1 Offset (0, 60) A_ReFire;
		FAXE A 1 Offset (0, 52);
		FAXE A 1 Offset (0, 44);
		FAXE A 1 Offset (0, 36);
		FAXE A 1;
		Goto Ready;
	SelectGlow:
		FAXE L 1 A_FAxeCheckUpG;
		Loop;
	DeselectGlow:
		FAXE L 1 A_Lower;
		Loop;
	ReadyGlow:
		FAXE LLL 1 A_FAxeCheckReadyG;
		FAXE MMM 1 A_FAxeCheckReadyG;
		Loop;
	FireGlow:
		FAXE N 4 Offset (15, 32);
		FAXE O 3 Offset (15, 32);
		FAXE P 2 Offset (15, 32);
		FAXE P 1 Offset (-5, 70) A_FAxeAttack;
		FAXE P 2 Offset (-25, 90);
		FAXE Q 1 Offset (15, 32);
		FAXE Q 2 Offset (10, 54);
		FAXE Q 7 Offset (10, 150);
		FAXE A 1 Offset (0, 60) A_ReFire;
		FAXE A 1 Offset (0, 52);
		FAXE A 1 Offset (0, 44);
		FAXE A 1 Offset (0, 36);
		FAXE A 1;
		Goto ReadyGlow;
	}
}

// Axe Puff -----------------------------------------------------------------

class AxePuff : Actor
{
	Default
	{
		+NOBLOCKMAP +NOGRAVITY
		+PUFFONACTORS
		RenderStyle "Translucent";
		Alpha 0.6;
		SeeSound "FighterAxeHitThing";
		AttackSound "FighterHammerHitWall";
		ActiveSound "FighterHammerMiss";
	}
	States
	{
	Spawn:
		FHFX STUVW 4;
		Stop;
	}
}

// Glowing Axe Puff ---------------------------------------------------------

class AxePuffGlow : AxePuff
{
	Default
	{
		+PUFFONACTORS
		RenderStyle "Add";
		Alpha 1;
	}
	States
	{
	Spawn:
		FAXE RSTUVWX 4 Bright;
		Stop;
	}
}
