ACTOR Knuckles : Fist replaces Fist
{
	Weapon.SelectionOrder 3700
	Weapon.SlotNumber 1
	Weapon.BobStyle "Smooth"
	Weapon.BobSpeed 2.0
	Weapon.BobRangeX 0.30
	Weapon.BobRangeY 0.40
	Obituary "%o was mauled by %k's fists"
	Tag "Knuckles"
	+WEAPON.WIMPY_WEAPON
	+WEAPON.MELEEWEAPON
	+WEAPON.NOALERT
	States
	{
	Ready:
		PKFS A 1 Offset(-90,79)
		PKFS A 1 Offset(-75,69)
		PKFS A 1 Offset(-60,60)
		PKFS A 1 Offset(-45,52)
		PKFS A 1 Offset(-30,45)
		PKFS A 1 Offset(-15,39)
		PKFS A 1 Offset(-1,35)
		PKFS A 0 Offset(0,32)
	ReadyII:
		PKFS A 1 A_WeaponReady
		Loop
	Select:
		TNT1 A 0 Offset(0,32)
		PKFS A 1 A_Raise
		Loop
	Deselect:
		PKFS A 1 Offset(-5,35)
		PKFS A 1 Offset(-15,39)
		PKFS A 1 Offset(-30,45)
		PKFS A 1 Offset(-40,52)
		PKFS A 1 Offset(-45,60)
		PKFS A 1 Offset(-49,75)
		PKFS A 1 Offset(-51,90)
		TNT1 A 3 Offset(0,32)
		TNT1 A 0 A_Lower
		Wait
	Fire:
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "BerserkPunch")
		TNT1 A 0 A_PlaySound("weapons/fist/swing")
		PKFS BC 1
		PKFS D 1 A_ZoomFactor(0.995)
		TNT1 A 0 A_Custompunch(2*Random(1,10),1,0,"FistPuff",96)
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_JumpIfInventory("MeleeAlarm", 1, "PunchAlert")
		Goto PunchEnd
	BerserkPunch:
		TNT1 A 0 A_PlaySound("weapons/fist/swing")
		PKFS BC 1
		PKFS D 1 A_ZoomFactor(0.995)
		TNT1 A 0 A_Custompunch(20*Random(1,10),1,0,"FistPuff",96)
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_JumpIfInventory("MeleeAlarm", 1, "PunchAlert")
		Goto PunchEnd
	PunchAlert:
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_TakeInventory("MeleeAlarm",1)
	PunchEnd:
		PKFS EFGHI 2
		PKFS JKL 1
		PKFS A 1 A_ReFire
		Goto ReadyII
	AltFire:
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "BerserkKick")
		TNT1 A 0 A_PlaySound("weapons/foot/swing")
		KICK ABC 2
		KICK D 1
		KICK D 1 A_ZoomFactor(0.995)
		TNT1 A 0 A_Custompunch(2*random(5,15),1,0,"FootPuff",128)
		TNT1 A 0 A_RadiusThrust(5000, 64, RTF_NOIMPACTDAMAGE)
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_JumpIfInventory("MeleeAlarm", 1, "KickAlert")
		Goto KickEnd
	BerserkKick:
		TNT1 A 0 A_PlaySound("weapons/foot/swing")
		KICK ABC 2
		KICK D 1
		KICK D 1 A_ZoomFactor(0.995)
		TNT1 A 0 A_Custompunch(20*random(5,15),1,0,"FootPuff",128)
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_JumpIfInventory("MeleeAlarm", 1, "KickAlert")
		Goto KickEnd
	KickAlert:
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_TakeInventory("MeleeAlarm",1)
	KickEnd:
		KICK EF 1
		KICK GGEDDCCBBA 1
		PKFS A 1
		PKFS A 5 A_ReFire
		Goto ReadyII
	}
}

Actor MeleeAlarm : Inventory
{
	Inventory.Maxamount 1
}

Actor FistPuff : BulletPuff
{
	SeeSound "weapons/fist/punch"
	AttackSound "weapons/fist/punch"
	+PUFFONACTORS
	+PUFFGETSOWNER
	States
	{
	Spawn:
		TNT1 A 0
	Melee:
		TNT1 A 0 A_GiveToTarget("MeleeAlarm",1)
		PUFF CD 4
		Stop
	}
}

Actor FootPuff : FistPuff
{
	SeeSound "weapons/foot/kick"
	AttackSound "weapons/foot/kick"
}