actor ScrewCrusherBoss : BaseMM8BDMWep_CBM 
{
tag "$TAGC_KB"
dropitem "ScrewCrusherWepCDropped"
Weapon.AmmoUse 1
Weapon.AmmoGive 0
Weapon.SlotNumber 1
Obituary "$OB_SCREWCRUSHER"
Inventory.Pickupmessage "Power up! Screw Crusher!"
weapon.ammotype "ScrewCrushAmmo"
//inventory.icon "PunkIco2" dont need this no more
States
{
Spawn:
C_0K B 1
loop
Ready:
PNKA A 0 ACS_ExecuteAlways(998,0,DYE_PUNK)
goto Ready1
Ready1:
PNKA A 0 A_JumpIfInventory("ScrewCrushAmmo",28,"Ready2")
PNKA A 7 A_WeaponReady
PNKA A 0 A_GiveInventory("ScrewCrushAmmo",2)
loop
Ready2:
PNKA A 1 A_WeaponReady(WRF_ALLOWRELOAD)
loop
Deselect:
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 2
PNKA B 2 OffSet(-70,72)
PNKA B 2 OffSet(-121,112)
PNKA C 0 A_PlaySoundEx("weapon/screwcrusher","Weapon")
PNKA C 0 A_GiveInventory("PunkMain_CI",1)
PNKA F 2 OffSet(1,33)
PNKA F 2 OffSet(-21,56)
PNKA F 2 OffSet(-35,84)
TNT1 A 2 OffSet(1,101)
TNT1 A 3 //A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNKA A 1 Offset(0,90)
PNKA A 1 OffSet(0,69)
PNKA A 1 OffSet(0,48)
PNKA A 0 A_GiveInventory("ScrewCrushAmmo",2)
Goto Ready1
Fire2:
PNKA B 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNKA B 1 OffSet(-70,72)
PNKA B 1 OffSet(-121,112)
PNKA C 0 A_PlaySoundEx("weapon/screwcrusher","Weapon")
PNKA C 0 A_GiveInventory("PunkMain2_CI",1)
PNKA F 1 OffSet(1,33)
PNKA F 1 OffSet(-21,56)
PNKA F 2 OffSet(-35,84)
TNT1 A 0 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
TNT1 A 4 A_Refire
PNKA A 2 OffSet(0,69)
PNKA A 2 OffSet(0,48)
Goto Ready1
SpinF:
PNKA K 0 A_TakeInventory("PunkSpinning",999)
PNKA K 0 A_GiveInventory("PunkSpinning2",1)
goto SpinAttack3
AltFire:  
PNKA B 2
PNKA B 2 OffSet(-70,72)
PNKA B 2 OffSet(-121,112)
PNKA C 0 A_PlaySoundEx("weapon/screwcrusher","Weapon")
PNKA C 0 A_GiveInventory("PunkMain2_CI",1)
PNKA F 2 OffSet(1,33)
PNKA F 2 OffSet(-21,56)
PNKA F 2 OffSet(-35,84)
TNT1 A 2 OffSet(1,101)
TNT1 A 3 //A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNK1 K 1 Offset(0,90)
PNK1 K 1 OffSet(0,69)
PNK1 K 1 OffSet(0,48)
PNK1 K 0 A_GiveInventory("ScrewCrushAmmo",2)
Goto Ready1

Reload:
PNKA A 0 A_JumpIfInventory("PunkTimer",1,"StopSpin")
PNKA A 0 A_JumpIfInventory("ScrewCrushAmmo",28,"SpinAttack")
goto Ready1
SpinAttack:
PNKA K 0 A_GiveInventory("InvulnerableOn_Pickup",1)
PNKA K 0 SetPlayerProperty(0,1,0)
PNKA K 0 A_ChangeFlag("NOGRAVITY",1)
PNKA K 0 A_GiveInventory("PunkSpinning",1)
PNKA K 0 A_GiveInventory("PunkTimer",1)
PNKA K 0 ThrustThingZ(0,8,0,1)
PNKA A 2 OffSet(0,48) A_GiveInventory("PunkAltTakeStop_P",1)
PNKA A 2 OffSet(0,69) A_GiveInventory("PunkAltTakeStop_P",1)
PNKA A 2 OffSet(0,90) A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 AA 2 A_GiveInventory("PunkAltTakeStop_P",1)

TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWRELOAD)
goto SpinAttack2

SpinAttack2:
TNT1 A 0 //A_Stop
TNT1 A 0 A_GiveInventory("StunArmor",1)
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("SOLID",1)
TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
TNT1 A 0 //A_GiveInventory("SelfTotallyFrozen",1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)
TNT1 A 0 //ThrustThingZ(0,100,0,1)
PNKA A 0 //A_Stop

PNKA A 0 A_ChangeVelocity(Cos(pitch)*100,0,-sin(pitch)*100,3)//A_Recoil(-100)
PNKA A 0 A_PlaySoundEx("weapon/GameBoyPunkRam","Weapon")
PNKA A 0 A_GiveInventory("BossPunkArmor")
PNKA A 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",2)
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",2)
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",2)
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 0 A_TakeInventory("StunArmor",999)
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",28)
StopSpin:
PNKA M 0 A_ChangeFlag("THRUACTORS",0)
PNKA M 0 A_SpawnItemEx("ResolidifyPlayer_H")
PNKA M 0 A_TakeInventory("ScrewCrushAmmo",5)
PNKA M 0 A_TakeInventory("PunkTimer",999)
PNKA M 0 A_GiveInventory("PunkStopping",1)
PNKA M 0 A_TakeInventory("PunkSpinning",999)
PNKA M 0 A_TakeInventory("PunkSpinning2",999)
PNKA M 0 A_GiveInventory("InvulnerableOff_Pickup",1)
PNKA M 0 A_Jump(256,"StopSpin2")
StopSpin2:
TNT1 A 1 OffSet(0,90)
PNKA A 1 OffSet(0,69)
PNKA A 1 OffSet(0,48)
PNKA A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNKA A 0 A_TakeInventory("BasicArmor",999)
PNKA A 0 A_ChangeFlag("NOGRAVITY",0)
PNKA A 0 SetPlayerProperty(0,0,0)
PNKA A 0 //A_GiveInventory("SelfTotallyUnfrozen",1)
PNKA A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
PNKA A 0 A_TakeInventory("PunkStopping",999)
Goto Ready1

StopSpin3:
PNKA M 0 A_ChangeFlag("THRUACTORS",0)
PNKA M 0 A_SpawnItemEx("ResolidifyPlayer_H")
PNKA M 0 A_TakeInventory("ScrewCrushAmmo",5)
PNKA M 0 A_TakeInventory("PunkTimer",999)
PNKA M 0 A_GiveInventory("PunkStopping",1)
PNKA M 0 A_TakeInventory("PunkSpinning",999)
PNKA M 0 A_TakeInventory("PunkSpinning2",999)
PNKA M 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 1 OffSet(0,90)
TNT1 A 0 A_Recoil(15)
PNKA A 0 A_TakeInventory("BasicArmor",999)
PNKA A 1 OffSet(0,69)
PNKA A 1 OffSet(0,48)
PNKA A 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNKA A 0 A_ChangeFlag("NOGRAVITY",0)
PNKA A 0 SetPlayerProperty(0,0,0)
PNKA A 0 //A_GiveInventory("SelfTotallyUnfrozen",1)
PNKA A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
PNKA A 0 A_TakeInventory("PunkStopping",999)
Goto Ready1
}
}

actor BounceCrusherBoss : ScrewCrusherBoss 
{
Weapon.SlotNumber 2
tag "$TAGC_KB2"
inventory.icon "PunkIcon"
States
{
Ready:
PNK1 K 0 ACS_ExecuteAlways(998,0,DYE_PUNK)
goto Ready1
Ready1:
PNK1 K 0 A_JumpIfInventory("ScrewCrushAmmo",28,"Ready2")
PNK1 K 7 A_WeaponReady(WRF_NOSECONDARY)
PNK1 K 0 A_GiveInventory("ScrewCrushAmmo",2)
loop
Ready2:
PNK1 K 1 A_WeaponReady
loop
Fire:
PNKA B 2
PNKA B 2 OffSet(-70,72)
PNKA B 2 OffSet(-121,112)
PNKA C 0 A_PlaySoundEx("weapon/screwcrusher","Weapon")
PNKA C 0 A_GiveInventory("PunkMain2_CI",1)
PNKA F 2 OffSet(1,33)
PNKA F 2 OffSet(-21,56)
PNKA F 2 OffSet(-35,84)
TNT1 A 2 OffSet(1,101)
TNT1 A 3 //A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNK1 K 1 Offset(0,90)
PNK1 K 1 OffSet(0,69)
PNK1 K 1 OffSet(0,48)
PNK1 K 0 A_GiveInventory("ScrewCrushAmmo",2)
Goto Ready1

AltFire:
PNKA A 0 A_JumpIfInventory("PunkTimer",1,"StopSpin")
PNKA A 0 A_JumpIfInventory("ScrewCrushAmmo",28,"SpinAttack")
goto Ready1

SpinAttack:
PNK1 K 0 A_GiveInventory("InvulnerableOn_Pickup",1)
PNK1 K 0 SetPlayerProperty(0,1,0)
PNK1 K 0 A_ChangeFlag("NOGRAVITY",1)
PNK1 K 0 A_GiveInventory("PunkSpinning",1)
PNK1 K 0 A_GiveInventory("PunkTimer",1)
PNK1 K 0 ThrustThingZ(0,8,0,1)
PNK1 K 2 OffSet(0,48) A_GiveInventory("PunkAltTakeStop_P",1)
PNK1 K 2 OffSet(0,69) A_GiveInventory("PunkAltTakeStop_P",1)
PNK1 K 2 OffSet(0,90) A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 AA 2 A_GiveInventory("PunkAltTakeStop_P",1)

TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
TNT1 A 0 A_GiveInventory("PunkAltTakeStop_P",1)
TNT1 A 2 A_WeaponReady(6)
goto SpinAttack2

SpinAttack2:
TNT1 A 0 //A_Stop
TNT1 A 0 A_GiveInventory("StunArmor",1)
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("SOLID",1)
TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
TNT1 A 0 //A_GiveInventory("SelfTotallyFrozen",1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)
TNT1 A 0 //ThrustThingZ(0,100,0,1)
PNKA A 0 //A_Stop

PNKA A 0 A_ChangeVelocity(Cos(pitch)*100,0,-sin(pitch)*100,3)//A_Recoil(-100)
PNKA A 0 A_PlaySoundEx("weapon/GameBoyPunkRam","Weapon")
PNKA A 0 A_GiveInventory("BossPunkArmor")
PNKA A 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",2)
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",2)
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",2)
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 1 A_SpawnItemEx("PunkMeleeC",0,0,28,momx,momy,momz,0,8)
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"StopSpin3")
TNT1 A 0 A_TakeInventory("StunArmor",999)
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",28)
StopSpin:
PNKA M 0 A_ChangeFlag("THRUACTORS",0)
PNKA M 0 A_SpawnItemEx("ResolidifyPlayer_H")
PNKA M 0 A_TakeInventory("ScrewCrushAmmo",5)
PNKA M 0 A_TakeInventory("PunkTimer",999)
PNKA M 0 A_GiveInventory("PunkStopping",1)
PNKA M 0 A_TakeInventory("PunkSpinning",999)
PNKA M 0 A_TakeInventory("PunkSpinning2",999)
PNKA M 0 A_GiveInventory("InvulnerableOff_Pickup",1)
PNKA M 0 A_Jump(256,"StopSpin2")
StopSpin2:
TNT1 A 1 OffSet(0,90)
PNK1 K 1 OffSet(0,69)
PNK1 K 1 OffSet(0,48)
PNK1 K 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNK1 A 0 A_TakeInventory("BasicArmor",999)
PNK1 K 0 A_ChangeFlag("NOGRAVITY",0)
PNK1 K 0 SetPlayerProperty(0,0,0)
PNK1 K 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
PNK1 K 0 A_TakeInventory("PunkStopping",999)
Goto Ready1
StopSpin3:
PNKA M 0 A_ChangeFlag("THRUACTORS",0)
PNKA M 0 A_SpawnItemEx("ResolidifyPlayer_H")
PNKA M 0 A_TakeInventory("ScrewCrushAmmo",5)
PNKA M 0 A_TakeInventory("PunkTimer",999)
PNKA M 0 A_GiveInventory("PunkStopping",1)
PNKA M 0 A_TakeInventory("PunkSpinning",999)
PNKA M 0 A_TakeInventory("PunkSpinning2",999)
PNKA M 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 1 OffSet(0,90)
TNT1 A 0 A_Recoil(15)
PNK1 K 0 A_TakeInventory("BasicArmor",999)
PNK1 K 1 OffSet(0,69)
PNK1 K 1 OffSet(0,48)
PNK1 K 5 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PNK1 K 0 A_ChangeFlag("NOGRAVITY",0)
PNK1 K 0 SetPlayerProperty(0,0,0)
PNK1 K 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
PNK1 K 0 A_TakeInventory("PunkStopping",999)
Goto Ready1
}
}

actor BossPunkArmor : BasicArmorPickup
{
Armor.Savepercent 50.001
Armor.Saveamount 50
//Armor.MaxSaveAmount 20
}

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

actor PunkTimer :OnceC{}

actor PunkStopDelay : Powerup
{
Powerup.Duration 35
}

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

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

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


actor PunkAltTakeStop_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("ScrewCrushAmmo",1)
TNT1 A 0 A_Stop
stop
}
}

actor PunkMeleeC : BasicExplosion //biggest disjoint in the game
{
damagetype "Punk_Ram"
Obituary "$OB_PUNKRAM"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PunkMeleeBoostPickup",1)
TNT1 A 3 A_Explode(30,48,0,0,48)
stop
XDeath:
TNT1 A 0 A_PlaySoundEx("weapon/blizzstrike","Body")
stop
}
}

actor PunkBodySlam : BasicExplosion
{
Translation "192:192=216:216","198:198=42:42"
Obituary "$OB_URANUSSLAM"
states
{
Spawn:
TNT1 A 1
TNT1 A 0 A_PlaySoundEx("misc/hugequake","Voice")
TNT1 A 0 A_Quake(9,10,0,300)
TNT1 AAAAAAA 0 A_SpawnItemEx("UranusDeepDiggerSlamFX",random(0,32),0,0,random(0,2),0,random(15,20),random(0,359),1)
TNT1 A 3
TNT1 AAAAAAA 0 A_SpawnItemEx("UranusDeepDiggerSlamFX",random(32,64),0,0,random(0,4),0,random(10,15),random(0,359),1)
TNT1 A 3
TNT1 AAAAAAA 0 A_SpawnItemEx("UranusDeepDiggerSlamFX",random(64,96),0,0,random(0,8),0,random(3,10),random(0,359),1)
TNT1 A 10
stop
}
}

actor PunkBodySlamB : PunkBodySlam{Translation "192:192=205:205","198:198=74:74"}
actor PunkBodySlamR : PunkBodySlam{Translation "192:192=171:171","198:198=41:41"}
actor PunkBodySlamO : PunkBodySlam{Translation "192:192=104:104","198:198=128:128"}
actor PunkBodySlamP : PunkBodySlam{Translation "192:192=229:229","198:198=232:232"}


actor Punk_RamProtect : PowerProtection
{
Powerup.Duration 50
DamageFactor "Punk_Ram", 0
}

actor PunkMeleeBoostPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Recoil(-0.11)
stop
}
}

actor PunkMeleeStopPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PunkStopDelay",1,"No")
goto Pickup2
Pickup2:
TNT1 A 0 A_Stop
TNT1 A 0 A_GiveInventory("PunkStopDelay",1)
stop
No:
TNT1 A 0
stop
}
}

actor ScrewCrusherPunkC
{
Translation "198:198=42:42", "202:202=37:37"
PROJECTILE
Obituary "$OB_SCREWCRUSHER"
damagetype "ScrewCrusher"
damage (18)
Radius 10
Height 12
speed 55
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
PNKA TU 2
loop
}
}

actor ScrewCrusherPunkCB : ScrewCrusherPunkC{translation "202:202=205:205", "198:198=74:74"}
actor ScrewCrusherPunkCR : ScrewCrusherPunkC{translation "202:202=171:171", "198:198=41:41"}
actor ScrewCrusherPunkCO : ScrewCrusherPunkC{translation "202:202=104:104", "198:198=128:128"}
actor ScrewCrusherPunkCP : ScrewCrusherPunkC{translation "202:202=229:229", "198:198=232:232"}

actor BounceCrusherSpawner
{
Translation "198:198=42:42", "202:202=37:37"
PROJECTILE
Obituary "$OB_SCREWCRUSHER"
damagetype "ScrewCrusher"
damage (15)
Radius 10
Height 12
Bouncetype None
-NOGRAVITY
+BOUNCEONFLOORS//
+BOUNCEONWALLS//
+BOUNCEONCEILINGS//
+DONTSPLASH
bouncefactor 0.9
wallbouncefactor 0.8
Bouncecount 6
speed 40
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
PNKB TU 2
loop
Death:
PNKA T 0
stop
}
}

actor BounceCrusherSpawnerB : BounceCrusherSpawner{translation "202:202=205:205", "198:198=74:74"}
actor BounceCrusherSpawnerR : BounceCrusherSpawner{translation "202:202=171:171", "198:198=41:41"}
actor BounceCrusherSpawnerO : BounceCrusherSpawner{translation "202:202=104:104", "198:198=128:128"}
actor BounceCrusherSpawnerP : BounceCrusherSpawner{translation "202:202=229:229", "198:198=232:232"}


actor BounceCrusher : ScrewCrusherPunkC
{
Radius 12
Height 12
damage (15)
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
PNKB T 0
PNKB T 0 A_Recoil(-16)
TNT1 A 1 ThrustThingZ(0,65,0,1)
PNKB TU 3 A_CountDown
Goto Spawn+3
}
}

/*
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
}
}
*/


actor PunkMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ScrewCrusherPunkC",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ScrewCrusherPunkCB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ScrewCrusherPunkCR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ScrewCrusherPunkCO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ScrewCrusherPunkCP",0,0,8,0)
goto Done
}
}

actor PunkMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BounceCrusherSpawner",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BounceCrusherSpawnerB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BounceCrusherSpawnerR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BounceCrusherSpawnerO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BounceCrusherSpawnerP",0,0,8,0)
goto Done
}
}
