
ACTOR FISTSOFFREEDOM : weapon
{
	Weapon.UpSound "doomguy/doomfist"
	Weapon.SelectionOrder 3700
    Weapon.Kickback 500
    Obituary "%o got absolutely obliterated by blazing fists of justice and freedom!."
    Tag "FISTS OF JUSTICE AND FREEDOM"
    +WEAPON.WIMPY_WEAPON
    +WEAPON.MELEEWEAPON
	Inventory.RestrictedTo "FreedoomGuyClass"
	States
	{
	Ready:
    FOF1 A 1 A_WeaponReady
    Loop
	Deselect:
		FOF1 A 1 A_Lower
		TNT1 A 0 A_Lower 
		TNT1 A 0 A_Lower 
		Loop
	Select:
		FOF1 A 1 A_Raise
		TNT1 A 0 A_Raise 
		TNT1 A 0 A_Raise 
		Loop
	Fire:
		TNT1 A 0 A_Quake(1, 4, 0, 128, "NOSOUND")
		FOF1 A 1
		TNT1 A 0 A_playsound("skeleton/swing", 6)
		FOF1 B 1 A_JumpIfInventory("PowerStrength", 1, "Berserked")
	NormalPunch:
		TNT1 A 0 A_CustomPunch(8, FALSE,0,"DrPunchPuff")
	ContinuePunch:
		FOF1 CDE 1
		FOF1 FGHIJKL 2
		TNT1 A 0
		Goto Fire2
	Fire2:
		TNT1 A 0 A_Quake(1, 4, 0, 128, "NOSOUND")
		FOF2 A 1
		TNT1 A 0 A_playsound("skeleton/swing", 6)
	NormalPunch2:
		TNT1 A 0 A_CustomPunch(8, FALSE,0,"DrPunchPuff")
	ContinuePunch2:
		FOF2 CDE 1
		FOF2 FGHIJKL 2
		TNT1 A 0
		FOF2 M 2 A_ReFire
		Goto Ready
	Berserked:
		TNT1 A 0 A_CustomPunch(40, FALSE,0,"FreedomBLEEDFist")
	Goto ContinuePunchB
	ContinuePunchB:
		FOF1 CDE 1
		FOF1 FGHIJKL 1
		TNT1 A 0
		Goto FireB2
	FireB2:
		TNT1 A 0 A_Quake(1, 4, 0, 128, "NOSOUND")
		FOF2 A 1
		TNT1 A 0 A_playsound("skeleton/swing", 6)
	NormalPunchB2:
		TNT1 A 0 A_CustomPunch(40, FALSE,0,"FreedomBLEEDFist")
	ContinuePunchB2:
		FOF2 CDE 1
		FOF2 FGHIJKL 1
		TNT1 A 0
		FOF2 M 1 A_ReFire
		Goto Ready
	}
}

ACTOR FreedomBLEEDFist : BulletPuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +ALLOWPARTICLES
  +RANDOMIZE
  +PUFFONACTORS
  +hittracer
  RenderStyle Translucent
  Alpha 1
  Mass 5
  States
  {
  Spawn:
    // Intentional fall-through
	tnt1 A 0
  Xdeath:
	TNT1 A 0 A_playsound("Freedom/Twist", 7,1)

  Death:
//     PUFF CD 4
	BL8A A 2 Bright A_SETSCALE(1.1)
	BL8A B 2 Bright A_SETSCALE(1.3)
	BL8A C 2 Bright A_SETSCALE(1.4)
	BL8A D 2 Bright A_SETSCALE(1.5)
	BL8A E 2 Bright A_SETSCALE(1.6)
	BL8A F 2 Bright A_SETSCALE(1.7)
	
    Stop

	
  }
}
