actor Punch : FastProjectile
{
 speed 70
 damage 4
 +BLOODSPLATTER
 +STRIFEDAMAGE
 projectile
 SeeSound None
 DeathSound None
 height 4
 radius 5
 mass 80000
 states
 {
  spawn:
	TNT1 A 1
	stop
  death:
	TNT1 A 0 A_PlaySound("weapons/punchwall", CHAN_AUTO)
	TNT1 A 0 radius_quake(1, 6, 0, 8, 0)
	TNT1 A 6
	stop
  xdeath:
	TNT1 A 0 A_PlaySound("weapons/fisthit", CHAN_AUTO)
	TNT1 A 0 radius_quake(3, 7, 0, 8, 0)
	TNT1 A 6
	stop
  }
}

actor ZerkedPunch : Punch
{
 damage 34
 +FORCEPAIN
 Decal Crack
 states
 {
  spawn:
	TNT1 A 1
	stop
  death:
	TNT1 A 0 A_PlaySound("weapons/punchwall", CHAN_AUTO)
	TNT1 A 0 radius_quake(3, 6, 0, 8, 0)
	TNT1 A 6
	stop
  xdeath:
	TNT1 A 0 A_PlaySound("weapons/fisthit", CHAN_AUTO)
	TNT1 A 0 radius_quake(8, 7, 0, 8, 0)
	TNT1 A 6
	stop
  }
}

actor NewFists : AliensWeapon
{
 weapon.kickback 200
 weapon.selectionorder 3600
 weapon.slotnumber 1
 tag "Your Fists"
 +weapon.meleeweapon
 +weapon.wimpy_weapon
 +weapon.noalert
 +weapon.noautofire
 states
 {
  Ready:
	PUNG A 1
  Crack:
	PUNG A 1
	KNUK ABC 2
	KNUK D 1 A_PlaySound("weapons/knucklecrack")
	KNUK DCBA 2
  ActiveReady:
	TNT1 A 0 A_JumpIfInventory("KickItem", 1, "PreKick")
	TNT1 A 0 A_JumpIfInventory("TrackerToggle", 1, "PreTrack")
	IDLP A 1 A_WeaponReady
	loop
  Select:
	IDLP A 0 A_Raise
	IDLP A 1 A_Raise
	loop
  Deselect:
	IDLP A 0 A_Lower
	IDLP A 1 A_Lower
	loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("RadarActive", 1, "TrackerLower")
	IDLP A 1 
	IDLP B 1 
	IDLP C 1 A_SetPitch(+2 + pitch)
	PUN5 A 1 A_SetPitch(+3 + pitch)
	TNT1 A 0 A_PlaySound("weapons/swingfist")
	PUN5 B 1
	PUN5 C 1 A_SetPitch(-2 + pitch)
	PUN5 D 1 A_SetPitch(-3 + pitch)
	TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "BerserkFire")
	TNT1 A 0 A_FireCustomMissile("Punch", 0, 0, 0, 0, 0)
	PUN5 E 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 F 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 G 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 H 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 B 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 A 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	goto activeready
  BerserkFire:
	TNT1 A 0 A_FireCustomMissile("ZerkedPunch", 0, 0, 0, 0, 0)
	PUN5 E 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 F 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 G 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 H 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 B 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN5 A 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	goto activeready
  AltFire:
	TNT1 A 0 A_JumpIfInventory("RadarActive", 1, "TrackerLower")
	IDLP A 1 
	IDLP B 1 
	IDLP C 1 A_SetPitch(+2 + pitch)
	PUN6 A 1 A_SetPitch(+3 + pitch)
	TNT1 A 0 A_PlaySound("weapons/swingfist")
	PUN6 B 1
	PUN6 C 1 A_SetPitch(-2 + pitch)
	PUN6 D 1 A_SetPitch(-3 + pitch)
	TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "BerserkAltFire")
	TNT1 A 0 A_FireCustomMissile("Punch", 0, 0, 0, 0, 0)
	PUN6 E 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 F 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 G 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 H 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 B 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 A 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	goto activeready
  BerserkAltFire:
	TNT1 A 0 A_FireCustomMissile("ZerkedPunch", 0, 0, 0, 0, 0)
	PUN6 E 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 F 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 G 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 H 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 B 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	PUN6 A 1 A_WeaponReady(WRF_NOBOB)
	TNT1 A 0 A_WeaponReady(WRF_NOBOB)
	goto activeready
  PreKick:
	PUCH A 1 offset(-8, 40)
	PUCH A 1 offset(-24, 56)
	PUCH A 1 offset(-40, 72)
	PUCH A 1 offset(-50, 88)
	PUCH A 1 offset(-66, 104)
	goto Kick
  PostKick:
	PUCH A 1 offset(-66, 104)
    PUCH A 1 offset(-50, 88)
	PUCH A 1 offset(-40, 72)
	PUCH A 1 offset(-24, 56)
	PUCH A 1 offset(-8, 40)
	goto activeready
  PreTrack:
	PUCH A 1 offset(-8, 40)
	PUCH A 1 offset(-24, 56)
	PUCH A 1 offset(-40, 72)
	PUCH A 1 offset(-50, 88)
	PUCH A 1 offset(-66, 104)
	goto TrackRaise
  PostTrack:
	PUCH A 1 offset(-66, 104)
    PUCH A 1 offset(-50, 88)
	PUCH A 1 offset(-40, 72)
	PUCH A 1 offset(-24, 56)
	PUCH A 1 offset(-8, 40)
	goto activeready
  }
}

actor fistcheck : inventory
{
	Inventory.MaxAmount 1
}