actor ScrewCrusherBoss : MegaBuster 
{
Weapon.AmmoUse 1
Weapon.AmmoGive 0
Weapon.SlotNumber 1
Obituary "%o was crushed by %k's Screw Crusher."
Inventory.Pickupmessage "Power up! Screw Crusher!"
weapon.ammotype "ScrewCrushAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
States
{
Spawn:
TNT1 A 0
stop
Ready:
PNKA A 0 ACS_ExecuteAlways(998,0,77)
PNKA A 0 A_JumpIfInventory("ScrewCrushAmmo",28,"Ready2")
PNKA A 5 A_WeaponReady(WRF_NOSECONDARY)
PNKA A 0 A_GiveInventory("ScrewCrushAmmo",1)
Goto Ready+1
Ready2:
PNKA A 1 A_WeaponReady
loop
Deselect:
TNT1 A 0 A_SelectWeapon("BounceCrusherBoss")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
TNT1 A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
PNKA A 1 A_Raise
Loop
Fire:
//PNKA A 0 A_JumpIfInventory("WepToggleFlag",1,"Fire2")
PNKA ABC 2
PNKA A 0 A_PlaySoundEx("weapon/screwcrusher","Weapon")
PNKA A 0 A_FireCustomMissile("ScrewCrusherPunkCust",0,0,8,0)
PNKA DEFG 2
PNKA A 5
PNKA A 0 A_GiveInventory("ScrewCrushAmmo",2)
Goto Ready+1
Fire2:
PNKA K 0 Offset(0,32)
PNKA ABC 2
PNKA A 0 A_PlaySoundEx("weapon/screwcrusher","Weapon")
PNKA A 0 A_FireCustomMissile("BounceCrusher",0,0,8,0)
PNKA D 2
PNKA A 0 A_Refire
PNKA EFG 2
Goto Ready+1
AltFire:
PNKA A 0 A_JumpIfInventory("PunkTimer",1,"StopSpin")
PNKA A 0 A_JumpIfInventory("ScrewCrushAmmo",28,"SpinAttack")
goto Ready+1
SpinAttack:
PNKA A 0 A_ChangeFlag("INVULNERABLE",1)
PNKA A 0 SetPlayerProperty(0,1,0)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
PNKA A 0 A_GiveInventory("PunkSpinning",1)
PNKA A 0 A_GiveInventory("PunkTimer",1)
PNKA KLM 1
TNT1 A 2 A_Stop
TNT1 A 0 A_Stop
TNT1 A 2 A_Stop
TNT1 A 0 A_Stop
TNT1 A 2 A_Stop
TNT1 A 0 A_Stop
TNT1 A 2 A_Stop
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
TNT1 A 2 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
TNT1 A 0 A_Stop
CHAA A 0 A_GiveInventory("StunArmor",1)
PNKA A 0 SetPlayerProperty(0,1,4)
CHAA A 0 A_GiveInventory("StayLocked",1)
TNT1 A 0 ThrustThingZ(0,100,0,1)
PNKA A 0 A_Stop
PNKA A 0 A_Recoil(-100)
PNKA A 0 A_PlaySound("weapon/screwcrusher")
PNKA A 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("PunkMeleeCust")
CHAA A 0 A_TakeInventory("StunArmor",999)
PNKA A 0 A_TakeInventory("ScrewCrushAmmo",28)
StopSpin:
PNKA A 0 A_TakeInventory("ScrewCrushAmmo",14)
TNT1 A 0 A_TakeInventory("PunkTimer",999)
PNKA A 0 A_GiveInventory("PunkStopping",1)
PNKA A 0 A_TakeInventory("PunkSpinning",999)
PNKA MLK 1
PNKA K 4 Offset(0,-8)
PNKA A 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
PNKA A 0 SetPlayerProperty(0,0,0)
PNKA A 0 SetPlayerProperty(0,0,4)
CHAA A 0 A_TakeInventory("StayLocked",999)
PNKA A 0 A_TakeInventory("PunkStopping",999)
Goto Ready+1
}
}

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

actor PunkTimer : Ammo
{
inventory.amount 1
inventory.maxamount 24
}

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

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

actor PunkMeleeCust : PunkMelee
{
PROJECTILE
damagetype "Screw"
Obituary "%o got Punk'd by %k."
States
{
Spawn:
TNT1 A 0 
TNT1 A 1 A_Explode(12, 80, 0)
stop
}
}

actor ScrewCrusherPunkCust : ScrewCrusherPunk
{
+DONTBLAST
damage (23)
speed 55
damagetype "Screw"
}

/*
actor Bouncer : CustomInventory //not the big black ones
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "PunkIcon"
scale 2.0
+COUNTITEM
+INVBAR
states
{
Spawn:
ALIE A 1
stop
Use:
TNT1 A 0 //A_PlaySoundEx("item/refill", "Item")
TNT1 A 0 A_GiveInventory("WepToggleFlag",1)
TNT1 A 0 A_GiveInventory("Un-Bouncer",1)
stop
}
}

actor Un-Bouncer : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "PunkIcon"
scale 2.0
+COUNTITEM
+INVBAR
states
{
Spawn:
ALIE A 1
stop
Use:
TNT1 A 0 //A_PlaySoundEx("item/refill", "Item")
TNT1 A 0 A_TakeInventory("WepToggleFlag",1)
TNT1 A 0 A_GiveInventory("Bouncer",1)
stop
}
}
*/