actor HardKnuckleBoss : MegaBuster 20049
{
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 1
Obituary "%o was smacked by %k's Hard Knuckle."
weapon.ammotype "QuakeAmmo"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
WEAP T 1
loop
Ready:
HFIS A 0 ACS_ExecuteAlways(998,0,18)
HFIS A 0 A_GunFlash
RINA A 0 A_GiveInventory("HasFist",1)
RINA A 0 A_GiveInventory("HasFist2",1)
goto Ready2
Ready2:
HFIS A 0 A_JumpIfInventory("QuakeAmmo",28,"Ready2Full")
HFIS A 10 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
HFIS A 0 A_GiveInventory("QuakeAmmo",1)
Goto Ready2
Ready3:
HFIS A 0 A_GiveInventory("MissingFist",1)
HFIS A 0 A_JumpIfInventory("MissingFist",40, "FistRefund")
HFIS A 0 A_JumpIfInventory("HasFist",1,"Ready2")
HFIS F 0 A_JumpIfInventory("QuakeAmmo",28,"Ready3Full")
HFIS F 1 A_WeaponReady(WRF_NOSECONDARY|WRF_NOSWITCH)
Goto Ready3
Ready2Full:
HFIS A 1 A_WeaponReady(WRF_NOSWITCH)
loop
Ready3Full:
HFIS F 1 A_WeaponReady(WRF_NOSWITCH)
Goto Ready3
FistRefund:
HFIS A 0 A_GiveInventory("HasFist",1)
goto Ready2
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FIST A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
FIST A 1 A_Raise
Loop
Fire:
HFIS A 0 A_JumpIfInventory("HasFist",1,"Fisted")
HFIS A 0 A_JumpIfInventory("HasFist2",1,"Fisted2")
Goto Ready3
Fisted:
HFIS A 0 A_PlaySoundEx("weapon/mbuster","Weapon")
HFIS A 0 A_TakeInventory("MissingFist",999)
HFIS A 0 A_TakeInventory("HasFist",1)
HFIS B 2 A_SpawnItemEx("HardKnuckleFX",-1,8,32,0,0,0)
HFIS CDE 2 
//HFIS B 0 SetPlayerProperty(0,1,0)
//TNT1 A 0 ACS_ExecuteAlways(191,0,5)
HFIS F 2 A_FireCustomMissile("BossHardKnuckle",0,0,10,-2)
//HFIS GHI 2
HFIS F 6
//TNT1 A 0 ACS_ExecuteAlways(191,0,0)
//HFIS B 0 SetPlayerProperty(0,0,0)
//HFIS JKLMNOP 2
//HFIS A 0 A_Refire
HFIS F 14
Goto Ready3
Fisted2:
HFIS A 0 A_GiveInventory("AltFist",1)
goto Fisted2Wait1
Fisted2Wait1:
HFIS A 0 A_JumpIfInventory("HasFist",1,"Fisted2Wait2")
HFIS F 1
HFIS A 0 A_JumpIfInventory("AltFist",1,"Fisted2Wait1")
goto Ready3
Fisted2Wait2:
HFIS A 1
HFIS A 0 A_JumpIfInventory("AltFist",1,"Fisted2Wait2")
goto Ready2
Altfire:
HFIS A 0 A_JumpIfInventory("Quaking",1,"Boost")
HFIS A 0 A_JumpIfInventory("QuakeAmmo",28,"QuakeStart")
HFIS A 0 A_JumpIfInventory("HasFist",1,"Ready2")
Goto Ready3
QuakeStart:
HFIS A 0 A_TakeInventory("Quaking",999)
HFIS A 0 A_GiveInventory("Quaking",1)
HFIS A 0 A_TakeInventory("HardEnd",999)
GRAB B 0 A_TakeInventory("JumpCancler",1)
HFIS A 0 A_GiveInventory("LadderDisable",1)
HFIS A 0 A_TakeInventory("QuakeAmmo",3)
TNT1 A 0 A_PlaySoundEx("weapon/superboost","Weapon")
WISS A 0 A_SpawnItemEX("BoosterFX", 0, 0, 0, 0, 0, 0, 0, 0)
HFIS A 0 A_Recoil(-1)
TNT1 A 0 ThrustThingZ(0,50,0,0)
HFIS QR 2
TNT1 A 1
QuakeContinue:
TNT1 A 0 A_JumpIf(momz<=0, "QuakeDown")
TNT1 A 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOPRIMARY)
goto QuakeContinue
Boost:
HFIS A 0 A_JumpIfInventory("QuakeAmmo",1,"Boost2")
goto QuakeContinue
Boost2:
TNT1 A 0 A_PlaySoundEx("weapon/superboost","Weapon")
HFIS A 0 A_TakeInventory("QuakeAmmo",3)
WISS A 0 A_SpawnItemEX("BoosterFX", 0, 0, 0, 0, 0, 0, 0, 0)
HFIS A 0 A_Recoil(-1)
TNT1 A 3 ThrustThingZ(0,7,0,1)
goto QuakeContinue
QuakeDown:
TNT1 A 0 ThrustThingZ(0,1,1,1)
SAKH C 0 A_SpawnItemEx("HardCrush",0,0,-10,0,0,-10)
HFIS A 0 A_GiveInventory("Quaking",1)
HFIS A 0 A_JumpIf(z-floorz==0, "QuakeCrash")
HFIS A 0 A_JumpIfInventory("Quaking",999,"QuakeCrash")
TNT1 A 1 A_GiveInventory("HardSoundGive",1)
loop
QuakeCrash:
HFIS A 0 A_JumpIfInventory("Quaking",50,"QuakeCrash5")
HFIS A 0 A_JumpIfInventory("Quaking",40,"QuakeCrash4")
HFIS A 0 A_JumpIfInventory("Quaking",30,"QuakeCrash4")
HFIS A 0 A_JumpIfInventory("Quaking",20,"QuakeCrash3")
HFIS A 0 A_JumpIfInventory("Quaking",10,"QuakeCrash2")
goto QuakeCrash1
QuakeCrash6:
HFIS A 0 A_PlaySoundEX("weapon/hardquakeland","Weapon")
HFIS A 0 A_FireCustomMissile ("QuakeDamage6",0,0,0,0)
goto QuakeEnd
QuakeCrash5:
HFIS A 0 A_PlaySoundEX("weapon/hardquakeland","Weapon")
HFIS A 0 A_FireCustomMissile ("QuakeDamage5",0,0,0,0)
goto QuakeEnd
QuakeCrash4:
HFIS A 0 A_PlaySoundEX("weapon/hardquakeland","Weapon")
HFIS A 0 A_FireCustomMissile ("QuakeDamage4",0,0,0,0)
goto QuakeEnd
QuakeCrash3:
HFIS A 0 A_PlaySoundEX("weapon/hardquakeland","Weapon")
HFIS A 0 A_FireCustomMissile ("QuakeDamage3",0,0,0,0)
goto QuakeEnd
QuakeCrash2:
HFIS A 0 A_PlaySoundEX("weapon/hardquakeland","Weapon")
HFIS A 0 A_FireCustomMissile ("QuakeDamage2",0,0,0,0)
goto QuakeEnd
QuakeCrash1:
HFIS A 0 A_PlaySoundEX("weapon/hardquakeland","Weapon")
HFIS A 0 A_FireCustomMissile ("QuakeDamage",0,0,0,0)
goto QuakeEnd
QuakeEnd:
HFIS A 0 A_GiveInventory("Stuck",1)
TNT1 AAAAAAAAAAAA 1 A_Stop
HFIS A 0 A_TakeInventory("Quaking",999)
HFIS A 0 A_TakeInventory("Stuck",1)
HFIS A 0 A_GiveInventory("HardEnd",1)
HFIS A 0 A_GiveInventory("LadderEnable",1)
TNT1 A 1 ThrustThingZ(0,30,0,0)
HFIS A 0 A_TakeInventory("QuakeAmmo",28)
HFIS A 0 A_JumpIfInventory("HasFist",1,"Ready2")
Goto Ready3
NoAmmo:
HFIS A 0
//HFIS A 1 ACS_Execute(979,0)
Goto Ready2
Flash:
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 A 1 A_JumpIfInventory("AltFist", 1, "FlashFisted")
HFI2 A 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFIS A 0 A_GiveInventory("QuakeAmmo",1)
loop
FlashFisted:
HFI2 A 0 A_PlaySoundEx("weapon/mbuster","Weapon")
HFIS A 0 A_TakeInventory("MissingFist2",999)
HFIS A 0 A_TakeInventory("HasFist2",1)
HFI2 B 2 A_SpawnItemEx("HardKnuckleFX",-1,8,32,0,0,0)
HFI2 CDE 2 
//HFIS B 0 SetPlayerProperty(0,1,0)
//TNT1 A 0 ACS_ExecuteAlways(191,0,5)
HFI2 F 2 A_FireCustomMissile("BossHardKnuckle2",0,0,-10,-2)
HFI2 F 6
//TNT1 A 0 ACS_ExecuteAlways(191,0,0)
//HFIS GHI 2
//HFIS B 0 SetPlayerProperty(0,0,0)
//HFIS JKLMNOP 2
//HFIS A 0 A_Refire
HFI2 F 14
HFIS A 0 A_TakeInventory("AltFist",1)
goto Flash2
Flash2:
HFIS A 0 A_GiveInventory("MissingFist2",1)
HFIS A 0 A_JumpIfInventory("MissingFist2",40, "FistRefund2")
HFIS A 0 A_JumpIfInventory("HasFist2",1,"Flash")
HFI2 F 0 A_JumpIfInventory("Quaking", 1, "HideFist")
HFI2 F 1
Goto Flash2
FistRefund2:
HFIS A 0 A_GiveInventory("HasFist2",1)
goto Flash
HideFist:
HFI2 QR 2
goto HideFist2
HideFist2:
TNT1 A 1
HFI2 F 0 A_JumpIfInventory("Quaking", 1, "HideFist2")
HFI2 F 0 A_JumpIfInventory("HasFist2",1,"Flash")
goto Flash2
}
}

actor HasFist : Inventory
{
inventory.amount 1
inventory.maxamount 1
}
actor HasFist2 : HasFist
{
}

actor AltFist : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor MissingFist : Inventory
{
inventory.amount 1
inventory.maxamount 100
}
actor MissingFist2 : MissingFist
{
}

actor Quaking : Inventory
{
inventory.amount 1
inventory.maxamount 999
}

actor Stuck : Inventory
{
inventory.amount 1
inventory.maxamount 1
}
actor HardEnd : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor HardSoundGive : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 0
stop
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("Quaking", 15, "Sound")
stop
Sound:
TNT1 A 0 A_PlaySoundEx("weapon/hardglitch","weapon")
stop
}
}

actor HardSoundGive2 : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 0
stop
Pickup:
TNT1 A 0
TNT1 A 0 A_PlayWeaponSound("weapon/adapterreturn")
stop
}
}

actor HardCrush
{
PROJECTILE
damage (10)
Radius 15
Height 2
Obituary "%o was crushed by %k."
renderstyle none
States
{
Spawn:
TNT1 A 1
stop
}
}

actor QuakeDamage
{
+NOGRAVITY
+MISSILE
+SKYEXPLODE
+NOINTERACTION
+RIPPER
height 1
radius 200
damage (5)
damagetype "NeutralShock"
Obituary "%o was crushed by %k."
-SOLID
States
{
Spawn:
TNT1 A 1
stop
}
}

actor QuakeDamage2 : QuakeDamage
{
radius 300
damage (10)
}
actor QuakeDamage3 : QuakeDamage
{
radius 400
damage (15)
}
actor QuakeDamage4 : QuakeDamage
{
radius 500
damage (20)
}
actor QuakeDamage5 : QuakeDamage
{
radius 600
damage (25)
}
actor QuakeDamage6 : QuakeDamage
{
radius 700
damage (30)
}

actor QuakeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor BossHardKnuckle : HardKnuckle
{
Radius 6
Height 6
Damage (30)
States
{
Spawn:
HARB B 3 A_TakeFromTarget("MissingFist",999)
loop
Death:
TNT1 A 0
goto Continue
Continue:
TNT1 A 0 A_CustomMissile("BossHardKnuckleReturn",0,0,0,0)
stop
XDeath:
TNT1 A 0 A_JumpIfCloser(60,"Return")
TNT1 A 0 A_CustomMissile("BossHardKnuckleReturnHarmless",0,0,0,0)
stop
Return:
SAPT J 0 A_GiveToTarget("HasFist",1)
SAPT J 0 A_GiveToTarget("HardSoundGive2",1)
stop
}
}

actor BossHardKnuckleReturn : BossHardKnuckle
{
Speed 19
States
{
Spawn:
HARB B 0
HARB B 1 //A_FaceTarget
HARB B 0 A_TakeFromTarget("MissingFist",999)
SAPT J 0 A_JumpIfCloser(60,"Return")
goto Death+1
Death:
HARB B 0 A_Jump(256, "XDeath")
HARB B 0
goto Continue
}
}

actor BossHardKnuckleReturnHarmless : BossHardKnuckleReturn
{
Damage (0)
States
{
Spawn:
HARB B 0
HARB B 1 //A_FaceTarget
HARB B 0 A_TakeFromTarget("MissingFist",999)
SAPT J 0 A_JumpIfCloser(60,"Return")
goto XDeath
}
}

actor BossHardKnuckle2 : BossHardKnuckle
{
States
{
Spawn:
HARB B 3 A_TakeFromTarget("MissingFist2",999)
loop
Death:
TNT1 A 0
goto Continue
Continue:
TNT1 A 0 A_CustomMissile("BossHardKnuckleReturn2",0,0,0,0)
stop
XDeath:
TNT1 A 0 A_JumpIfCloser(60,"Return")
TNT1 A 0 A_CustomMissile("BossHardKnuckleReturnHarmless2",0,0,0,0)
stop
Return:
SAPT J 0 A_GiveToTarget("HasFist2",1)
SAPT J 0 A_GiveToTarget("HardSoundGive2",1)
stop
}
}

actor BossHardKnuckleReturn2 : BossHardKnuckle2
{
Speed 19
States
{
Spawn:
HARB B 0
HARB B 1 //A_FaceTarget
HARB B 0 A_TakeFromTarget("MissingFist2",999)
SAPT J 0 A_JumpIfCloser(60,"Return")
goto Death+1
Death:
HARB B 0 A_Jump(256, "XDeath")
HARB B 0
goto Continue
}
}

actor BossHardKnuckleReturnHarmless2 : BossHardKnuckleReturn2
{
Damage (0)
States
{
Spawn:
HARB B 0
HARB B 1 //A_FaceTarget
HARB B 0 A_TakeFromTarget("MissingFist2",999)
SAPT J 0 A_JumpIfCloser(60,"Return")
goto XDeath
}
}