
// The Fighter's Hammer -----------------------------------------------------

class FWeapHammer : FighterWeapon
{
	Default
	{
		+BLOODSPLATTER
		Weapon.SelectionOrder 900;
		+WEAPON.AMMO_OPTIONAL +WEAPON.MELEEWEAPON
		Weapon.AmmoUse1 3;
		Weapon.AmmoGive1 25;
		Weapon.KickBack 150;
		Weapon.YAdjust -10;
		Weapon.AmmoType1 "Mana2";
		Inventory.PickupMessage "$TXT_WEAPON_F3";
		Obituary "$OB_MPFWEAPHAMMERM";
		Tag "$TAG_FWEAPHAMMER";
	}

	action native void A_FHammerAttack();
	action native void A_FHammerThrow();

	States
	{
	Spawn:
		WFHM A -1;
		Stop;
	Select:
		FHMR A 1 A_Raise;
		Loop;
	Deselect:
		FHMR A 1 A_Lower;
		Loop;
	Ready:
		FHMR A 1 A_WeaponReady;
		Loop;
	Fire:
		FHMR B 6 Offset (5, 0);
		FHMR C 3 Offset (5, 0) A_FHammerAttack;
		FHMR D 3 Offset (5, 0);
		FHMR E 2 Offset (5, 0);
		FHMR E 10 Offset (5, 150) A_FHammerThrow;
		FHMR A 1 Offset (0, 60);
		FHMR A 1 Offset (0, 55);
		FHMR A 1 Offset (0, 50);
		FHMR A 1 Offset (0, 45);
		FHMR A 1 Offset (0, 40);
		FHMR A 1 Offset (0, 35);
		FHMR A 1;
		Goto Ready;
	}
}

// Hammer Missile -----------------------------------------------------------

class HammerMissile : Actor
{
	Default
	{
		Speed 25;
		Radius 14;
		Height 20;
		Damage 10;
		DamageType "Fire";
		Projectile;
		DeathSound "FighterHammerExplode";
		Obituary "$OB_MPFWEAPHAMMERR";
	}

	States
	{
	Spawn:
		FHFX A 2 Bright;
		FHFX B 2 Bright A_PlaySound ("FighterHammerContinuous");
		FHFX CDEFGH 2 Bright;
		Loop;
	Death:
		FHFX I 3 Bright A_SetTranslucent(1,1);
		FHFX J 3 Bright;
		FHFX K 3 Bright A_Explode (128, 128, 0);
		FHFX LM 3 Bright;
		FHFX N 3;
		FHFX OPQR 3 Bright;
		Stop;
	}
}

// Hammer Puff (also used by fist) ------------------------------------------

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