actor SSTFist : Fist replaces Fist
{
  Game Doom
  Weapon.SelectionOrder 3699
  Weapon.Kickback 100
  +WEAPON.WIMPY_WEAPON
  +WEAPON.MELEEWEAPON
  +inventory.undroppable
  +Noautofire
  +NOALERT
  +Weapon.AXEBLOOD
  //+Bloodsplatter
  Obituary "%o was beaten down by %k."
  attacksound "punches"
  Weapon.preferredSkin "FistSkin"
  States
  {
  Ready:
    FIST B 1 A_WeaponReady
    loop
  Deselect:
    FIST B 1 A_Lower
    FIST B 0 A_Lower
    loop
  Select: 
    TNT1 A 0 A_JumpIfInventory("InstantSwitch",1, "Ready")
    FIST B 1 A_Raise
    FIST B 0 A_Raise
    loop
  Fire:
    FIST C 0 A_JumpIfInventory("PowerStrength",1,"Fire.Berserk")
  Fire1:
    FIST TC 1	
	FIST D 0 A_PlayWeaponSound("fistjab")
    FIST G 1 A_CustomPunch (2*random(4,10),1,0,"BulletPuff")//A_Punch
  Hold:
    FIST C 0 A_JumpIfInventory("PowerStrength",1,"Hold.Berserk")
    FIST G 1
    PLA3 A 0 A_JumpIf (((velx*velx) + (vely*vely)) > 80, "RunningPunch")
    FIST G 2 A_Refire
    FIST FE 1
    FIST D 1 A_WeaponReady
    FIST CC 35 A_WeaponReady
    goto Ready
  RunningPunch:
    FIST G 1 A_CustomPunch (2*random(1,10),1,0,"BulletPuff")
    FIST G 2 A_Refire
    FIST FE 1
    FIST D 1 A_WeaponReady
    FIST CC 35 A_WeaponReady
    goto Ready
  Fire.Berserk:
    FIST T 1 A_Recoil(-4)
    FIST C 1 A_Recoil(-10)
	FIST D 0 A_PlayWeaponSound("fistjab")
    FIST G 1 A_CustomPunch (2*random(40,100),1,0,"BerserkPuff")//A_Punch
  Hold.Berserk:
    FIST G 1
    PLA3 A 0 A_JumpIf (((velx*velx) + (vely*vely)) > 80, "RunningBerserk")
    FIST G 0 A_Refire
	FIST G 8
    FIST FE 1
    FIST D 1 A_WeaponReady
    FIST CC 35 A_WeaponReady
    goto Ready
  RunningBerserk:
    FIST G 1 A_CustomPunch (2*random(25,75),1,0,"BerserkPuff")
    FIST G 0 A_Refire
	FIST G 8
    FIST FE 1
    FIST D 1 A_WeaponReady
    FIST CC 35 A_WeaponReady
    goto Ready
  AltFire:
  	FIST QRST 1
  AltHold:
  	FIST U 1
  	TNT1 A 0 A_Refire
	FIST C 0 A_PlayWeaponSound("fistwhoosh")
	FIST C 0 A_Recoil(-2)
    FIST C 0 A_JumpIfInventory("PowerStrength",1,"SlugBerserk")
	
    FIST D 1
    FIST F 0 A_ZoomFactor(1.5)
    FIST G 1 A_Saw("", "ragdoll/hit", 5, "none")
	FIST F 0 A_SetAngle(angle+7)
    FIST F 0 A_ZoomFactor(1.2)
    FIST H 1 A_Saw("", "ragdoll/hit", 2, "none")
	FIST F 0 A_SetAngle(angle+5)
    FIST F 0 A_ZoomFactor(1.0)
    FIST I 1 A_Saw("", "ragdoll/hit", 2, "none")
	FIST F 0 A_SetAngle(angle+3)
    FIST JKKKL 1
    FIST MNO 1 A_SetAngle(angle-4)
    FIST P 1 A_SetAngle(angle-3)
    FIST CC 35 A_WeaponReady
    goto Ready
  SlugBerserk:
    FIST D 1 A_Recoil(-4)
    FIST F 0 A_ZoomFactor(1.6)
    FIST G 1 A_CustomPunch (190,1,0,"BerserkPuff")
	FIST F 0 A_SetAngle(angle+5)
    FIST F 0 A_ZoomFactor(1.3)
    FIST H 1 A_Saw("", "ragdoll/hit", 2, "none")
	FIST F 0 A_SetAngle(angle+3)
    FIST F 0 A_ZoomFactor(1.0)
    FIST I 1
	FIST F 0 A_SetAngle(angle+1)
    FIST JJKKKKI 1
    FIST HGF 1 A_SetAngle(angle-2)
    FIST E 1 A_SetAngle(angle-3)
    FIST D 1
    FIST CC 35 A_WeaponReady
    goto Ready
  Spawn:
    TNT1 A -1
    Stop
  }
}
ACTOR BerserkPuff
{
	+NOBLOCKMAP
	+NOGRAVITY
	-ALLOWPARTICLES
	-RANDOMIZE
	+PUFFONACTORS
	RenderStyle Add
	Alpha 1.0
	VSpeed 0
	Mass 5
	scale 0.65
	DamageType "Rocket"
	States
	{
	Spawn:
		PUFF A 4 Bright
		PUFF B 4
		PUFF CD 4
		Stop
	Melee:
	XDeath:
		RMIS B 0 Bright
		TNT1 A 0 Radius_Quake(6,random(8,16),0,3, 0)
		RMIS B 0 Bright A_PlaySoundEx("berserkhit", "SoundSlot6")
		MISL BBBBCCCCDDDD 1 Bright A_Fadeout(0.08)
		Stop
	}
}