actor SkullBarrierBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_4H"
dropitem "SkullmanWepDroppedX"
Weapon.AmmoUse 2
Weapon.AmmoGive 2
Weapon.AmmoUse2 1
Weapon.AmmoGive2 2
Obituary "$OB_SKULLBUSTER"
Inventory.Pickupmessage "Power up! Skull Buster!"
weapon.ammotype "SkullBusterClassAmmo"
weapon.ammotype2 "SkullBarrierClassAmmo"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_04 H 1
loop
Ready:
SKUB A 0 ACS_ExecuteAlways(998,0,DYE_SKULLMAN)
SKUB A 0 A_GunFlash
goto Ready1D

Ready1D:
SKUB A 0 A_JumpIfInventory("SkullBusterClassAmmo",2,"Ready2D")
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,2)
SKUB A 0 A_JumpIfInventory("SkullBarrierClassAmmo",112,"Ready3D")
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady(WRF_NOFIRE)
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready1")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
goto Ready1
Ready2D:
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,2)
SKUB A 0 A_JumpIfInventory("SkullBarrierClassAmmo",112,"Ready4D")
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady(WRF_NOSECONDARY)
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready2")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
goto Ready2
Ready3D:
SKUB A 0 A_JumpIfInventory("SkullBusterClassAmmo",2,"Ready4D")
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady(WRF_NOPRIMARY)
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready3")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
goto Ready3
Ready4D:
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready4")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
goto Ready4


Ready1:
SKUB A 0 A_JumpIfInventory("SkullBusterClassAmmo",2,"Ready2")
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,2)
SKUB A 0 A_JumpIfInventory("SkullBarrierClassAmmo",112,"Ready3")
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady(WRF_NOFIRE)
SKUB A 0 A_GiveInventory("SkullBusterClassAmmo",3)
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready1")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
loop
Ready2:
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,2)
SKUB A 0 A_JumpIfInventory("SkullBarrierClassAmmo",112,"Ready4")
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady(WRF_NOSECONDARY)
SKUB A 0 A_GiveInventory("SkullBusterClassAmmo",3)
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready2")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
loop
Ready3:
SKUB A 0 A_JumpIfInventory("SkullBusterClassAmmo",2,"Ready4")
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady(WRF_NOPRIMARY)
SKUB A 0 A_GiveInventory("SkullBusterClassAmmo",3)
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready3")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
loop
Ready4:
SKUB A 0 A_JumpIfInventory("SkullPower2",1,2)
SKUB AA 2 A_WeaponReady
SKUB A 0 A_GiveInventory("SkullBusterClassAmmo",3)
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready4")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",2)
loop

Deselect:
TNT1 A 0 A_GiveInventory("SkullBarrierEnd",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SKUB A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SKUB A 1 A_Raise
Loop
Fire:
SKUB A 0 A_JumpIfNoAmmo("NoAmmo")
SKUB A 0 A_JumpIfInventory("SpawningMisfire",1,"NoFire")
SKUB A 0 A_JumpIfInventory("SkullPower2",1,"FireRage")
SKUB A 0 A_PlaySoundEx("weapon/skullbust","Weapon")
SKUB A 0 A_GiveInventory("SkullmanMain_CI",1)


SKUB B 0 A_JumpIfInventory("ShieldCheck",1,2)
SKUB B 0 A_GiveInventory("SkullBarrierClassAmmo",1)
SKUB B 0 A_Jump(128,"FireAnim2")
FireAnim1:
SKUB X 1
Goto FireCont
FireAnim2:
SKUB Z 1
Goto FireCont
FireCont:
SKUB CYY 1
SKUB C 0 A_JumpIfInventory("ShieldCheck",1,2)
SKUB C 0 A_GiveInventory("SkullBarrierClassAmmo",1)
SKUB Y 4
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,2)
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",1)
SKUB BA 2
SKUB A 0 A_Refire
SKUB A 0 A_JumpIfInventory("ShieldCheck",1,"Ready1D")
SKUB A 0 A_GiveInventory("SkullBarrierClassAmmo",1)
Goto Ready1D
FireRage:
SKUB A 0 A_PlaySoundEx("weapon/SkullParryShot","Voice")
//SKUB A 0 A_PlaySoundEx("weapon/skullbust","Weapon")
SKUB A 0 A_GiveInventory("SkullmanMain2_CI",1)
FireRageAnim1:
SKUB X 1
Goto FireRageCont
FireRageAnim2:
SKUB Z 1
Goto FireRageCont
FireRageCont:
SKUB C 1
SKUB Y 1
SKUB BBA 1
SKUB A 0 A_Refire
Goto Ready1D

AltFire:
SKUB A 0 
TNT1 A 0 A_JumpIfInventory("SkullBarrierClassAmmo",112,"SkinSprite")
Goto Ready1D

SkinSprite://altfire is handled by the flash state, but this is here just to initiate the skinsprite effect
SKUB A 1 A_GiveInventory("VivifyDelay4",1)
Goto Ready1D

Flash:
TNT1 A 1 A_JumpIfInventory("SkullBarrierClassAmmo",112,"FlashReady")
loop
FlashReady:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_A") == 1, "Activate")
goto Flash
Activate:
SKUB A 0 A_TakeInventory("SkullBarrierClassAmmo",12)
SKUB A 0 A_GiveInventory("ShieldCheck",1)
SKUB A 0 A_GiveInventory("VivifyDelay4",1)
SKUB A 0 //A_GiveInventory("CounterCheck",1)
SKUB A 0 A_GiveInventory("SkullBarrierCounter",1)
SKUR D 0 A_GiveInventory("SpawningMisfire",1)
//SKUR D 0 A_Jump(6,"Flash.Skull")
goto Flash2
Flash2:
SKUR A 0 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
SKUR A 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUR A 0 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
SKUR A 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUR B 0 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
SKUR B 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUR C 0 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
SKUR C 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUR D 0 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
SKUR D 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)

SKUR H 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
SKUR H 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)

SKUR H 0 ACS_ExecuteAlways(982, 0, 1)//vanilla's skullbarrier script

SKUR H 0 A_TakeInventory("SpawningMisfire",999)
SKUR H 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)//urgh hopefully this tic wont come back to bite me

SKUR H 0 A_JumpIfInventory("SkullRageFlag",1,"RageBarrier")//This is being done so that there can be different sprites for a rage barrier and a missed rage
SKUR H 0 A_ChangeFlag("INVULNERABLE",0)
SKUR I 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_JumpIfInventory("ShieldHits", 1, 1)
Goto MissedHit
TNT1 A 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 0 A_TakeInventory("SkullBarrierClassAmmo",2)
TNT1 A 1 A_JumpIfInventory("ShieldHits", 1, 1)
Goto MissedHit
TNT1 A 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_JumpIfInventory("ShieldHits", 1, "MissWait")
Goto MissedHit

Flash.Skull:
SKUB H 0 A_GiveInventory("SpawningMisfire",1)
SKUB H 0 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUB I 0 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUB J 0 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUB K 0 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
SKUB K 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUB K 0 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
SKUB K 1 A_SpawnItemEx("SkullCounterDude",0,0,0,momx,momy,momz,0,8,0)
SKUB K 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
SKUB K 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)
SKUB K 0 ACS_ExecuteAlways(982,0,1)
SKUB K 0 A_TakeInventory("SpawningMisfire",999)
SKUB K 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)
SKUB K 0 A_JumpIfInventory("SkullRageFlag",1,"RageBarrier.Skull")
SKUB K 0 A_ChangeFlag("INVULNERABLE",0)
SKUB K 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_JumpIfInventory("ShieldHits",1,1)
Goto MissedHit
SKUB J 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 0 A_TakeInventory("SkullBarrierClassAmmo",4)
SKUB I 1 A_JumpIfInventory("ShieldHits",1,1)
Goto MissedHit
SKUB I 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_JumpIfInventory("ShieldHits",1,"MissWait")
Goto MissedHit

MissWait:
TNT1 A 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 0 A_TakeInventory("SkullBarrierClassAmmo",4)
TNT1 A 1 A_JumpIfInventory("ShieldHits", 1, 1)
Goto MissedHit
TNT1 A 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_JumpIfInventory("ShieldHits", 1, 1)
Goto MissedHit
//argh hopefully this wont cause desyncs
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("SkullBarrierClassAmmo",1,"MissWait")
goto MissedEnd
MissedHit:
TNT1 A 1
TNT1 A 0 A_PlaySoundEx("S3_K/MetalSpark","Weapon")
TNT1 A 0 A_GiveInventory("SkullBarrierProtection",1)
Goto MissedEnd
MissedEnd:
TNT1 A 1
TNT1 A 0 A_GiveInventory("SkullBarrierEnd",1)
TNT1 A 1 A_TakeInventory("SkullBarrierClassAmmo",114)
//TNT1 A 0 A_JumpIfINventory("ShieldCheck",1,"missedEnd")//A_TakeInventory("ShieldCheck",99)//Just to double make sure
Goto Flash


RageBarrier.Skull:
SKUB K 0 A_TakeInventory("SkullBarrierClassAmmo",26)
SKUB K 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
SKUB J 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)
SKUB I 0 A_TakeInventory("SkullBarrierClassAmmo",26)
SKUB I 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
SKUB H 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
goto FlashWait+5
RageBarrier:
SKUR A 0 A_TakeInventory("SkullBarrierClassAmmo",26)
SKUR A 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
//SKUR FED 4
SKUR A 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
SKUR B 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
SKUR C 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
SKUR D 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
SKUR H 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
SKUR H 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)
SKUR H 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)
SKUR H 0 A_TakeInventory("SkullBarrierClassAmmo",26)
SKUR I 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
goto FlashWait+5

FlashWait:
TNT1 A 1 A_SpawnItemEx("SkullBarrier1B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier2B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier3B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier4B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier5B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier6B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier7B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 1 A_SpawnItemEx("SkullBarrier8B",0,0,28,momx,momy,momz,0,9,0)
TNT1 A 0 A_TakeInventory("SkullBarrierClassAmmo",26)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_JumpIfInventory("ShieldCheck",1,2)
TNT1 A 0 A_GiveInventory("SkullBarrierEnd",1)
goto Flash//goto FlashAmmo
TNT1 A 0 A_JumpIfInventory("SkullBarrierClassAmmo",1,"FlashWait")
TNT1 A 0 A_GiveInventory("SkullBarrierEnd",1)
goto Flash//goto FlashAmmo
FlashAmmo:
TNT1 A 0 A_JumpIfInventory("SkullBarrierClassAmmo",114,"NoFlash")
TNT1 AAAA 1
TNT1 A 0 A_GiveInventory("SkullBarrierClassAmmo",3)
TNT1 AAAA 1
TNT1 A 0 A_GiveInventory("SkullBarrierClassAmmo",3)
goto FlashAmmo
NoFire:
SKUB A 1
Goto Ready1D
NoAmmo:
SKUB A 0
Goto Ready1D
}
}

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

actor SkullBarrierClassAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 112
+INVENTORY.IGNORESKILL
}

actor CounterCheck : OnceC {}


actor SkullRageFlag : Inventory
{
inventory.amount 1
inventory.maxamount 56
}



actor SkullPower2 : Powerup
{
powerup.Duration 56
}

actor SkullPower3 : PowerSpeed
{
Speed 1.6
powerup.Duration 35
}


actor SkullCounter : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("CounterCheck",1)
TNT1 A 0 A_JumpIfInventory("SkullRageFlag",1,"Pickup2")
TNT1 A 0 A_SpawnItemEx("SkullRageFlagHelper")
goto Pickup2
Pickup2:
TNT1 A 0 //A_SetBlend(white,0.95,5)
TNT1 A 0 A_PlaySoundEx("classes/skullabs","Body")
TNT1 A 0 A_GiveInventory("SkullPower2",1)
TNT1 A 0 A_GiveInventory("SkullPower3",1)
TNT1 A 0 A_GiveInventory("SkullBusterClassAmmo",28)
TNT1 A 0 A_GiveInventory("SkullRageFlag",56)//32
stop
}
}

actor SkullM_CounterRefresh_P : SkullCounter {}

actor SkullBarrierCounter : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("CounterCheck",1)
//TNT1 A 0 A_ChangeFlag("SHOOTABLE",0)
TNT1 A 0 A_GiveInventory("InvulnerableOn_Pickup",1)
TNT1 A 0 A_SpawnItemEx("SkullBarrierSoundHelper")
stop
}
}

actor SkullBarrierEnd : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SkullBarrierBoss",1,"InGame")
stop
InGame:
TNT1 A 0 A_TakeInventory("CounterCheck",1)
//TNT1 A 0 A_ChangeFlag("SHOOTABLE",1)
TNT1 A 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 0 A_TakeInventory("ShieldCheck",1)
TNT1 A 0 A_TakeInventory("ShieldHits", 999)
stop
}
}

actor SkullBarrierSoundPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySound("classes/SkullShieldBuzz",6,1.0)
stop
}
}

actor SkullRageFlagHelper : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_TakeFromTarget("SkullRageFlag",1)
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,1)
TNT1 A 0 A_JumpIfInTargetInventory("SkullRageFlag",1,"Spawn")
TNT1 A 0
stop
}
}

actor SkullBarrierSoundHelper : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 12 A_GiveToTarget("SkullBarrierSoundPickup",1)
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,1)
TNT1 A 0 A_JumpIfInTargetInventory("ShieldCheck",1,"Spawn")
TNT1 A 0
stop
}
}

actor SkullShot : FastProjectile
{
var int user_POWER;
Translation "192:192=196:196","198:198=197:197","204:204=215:215"
PROJECTILE
damagetype "SkullM_Shot"
Obituary "$OB_SKULLBUSTER"
Speed 150
Damage (10-user_POWER)
radius 5
height 5
scale 3
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
W_0D BBBBB 1 A_SpawnItemex("SkullShotFX",0,0,0,0,0,0,0,1)
W_0D B 2 A_SetUserVar("user_POWER",1)
W_0D B 2 A_SetUserVar("user_POWER",2)
W_0D B 2 A_SetUserVar("user_POWER",3)
W_0D B 2 A_SetUserVar("user_POWER",4)
W_0D B 2 A_SetUserVar("user_POWER",5)
W_0D B 2 A_SetUserVar("user_POWER",6)
W_0D B 2 A_SetUserVar("user_POWER",7)
W_0D B 3
wait
Death:
TNT1 A 1
stop
}
}

actor SkullShotFX : BasicClientSide
{
Renderstyle Translucent
Alpha 0.6
States
{
Spawn:
SKUB UV 1 A_Fadeout
loop
}
}

actor SkullShotRage : SkullShot
{
scale 1
damagetype "SkullM_ShotX"
Damage (15)
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
W_0D BB 0 A_SpawnItemex("SkullShotRageFX",0,0,0,0,0,0,0,1)
WISS S 1 A_SpawnItemex("SkullShotRageFX",0,0,0,0,0,0,0,1)
W_0D BB 0 A_SpawnItemex("SkullShotRageFX",0,0,0,0,0,0,0,1)
WISS T 1 A_SpawnItemex("SkullShotRageFX",0,0,0,0,0,0,0,1)
Loop
Death:
TNT1 A 1
stop
}
}

actor SkullShotRageFX : SkullShotFX
{
renderstyle add
Alpha 0.5
}

actor SkullShotB : SkullShot{Translation "192:192=205:205","198:198=74:74","204:204=205:205"}
actor SkullShotR : SkullShot{Translation "192:192=171:171","198:198=41:41","204:204=171:171"}
actor SkullShotO : SkullShot{Translation "192:192=104:104","198:198=128:128","204:204=104:104"}
actor SkullShotP : SkullShot{Translation "192:192=229:229","198:198=232:232","204:204=229:229"}

actor SkullShotRageB : SkullShotRage{Translation "192:192=205:205","198:198=74:74","204:204=205:205"}
actor SkullShotRageR : SkullShotRage{Translation "192:192=171:171","198:198=41:41","204:204=171:171"}
actor SkullShotRageO : SkullShotRage{Translation "192:192=104:104","198:198=128:128","204:204=104:104"}
actor SkullShotRageP : SkullShotRage{Translation "192:192=229:229","198:198=232:232","204:204=229:229"}


actor SkullBarrier1B
{
scale 2.5
-SOLID
+NOGRAVITY
+CLIENTSIDEONLY
+NOTIMEFREEZE
States
{
Spawn:
X_4H A 0
X_4H A 1
stop
}
}
actor SkullBarrier2B : SkullBarrier1B{States{Spawn:X_4H N 0
X_4H B 1
stop}}
actor SkullBarrier3B : SkullBarrier1B{States{Spawn:X_4H O 0
X_4H C 1
stop}}
actor SkullBarrier4B : SkullBarrier1B{States{Spawn:X_4H P 0
X_4H D 1
stop}}
actor SkullBarrier5B : SkullBarrier1B{States{Spawn:X_4H Q 0
X_4H E 1
stop}}
actor SkullBarrier6B : SkullBarrier1B{States{Spawn:X_4H R 0
X_4H F 1
stop}}
actor SkullBarrier7B : SkullBarrier1B{States{Spawn:X_4H S 0
X_4H G 1
stop}}
actor SkullBarrier8B : SkullBarrier1B{States{Spawn:X_4H T 0
X_4H H 1
stop}}


actor SkullCounterDude
{
var int user_USER;
height 56
renderstyle "none"
radius 40
scale 2.5
health 1
-Solid
+NOGRAVITY
States
{
Spawn:
PLAY A 0
PLAY A 0 A_SetUserVar("user_USER",ACS_ExecuteWithResult(257,0))
PLAY A 0 A_ChangeFlag("SHOOTABLE",1)
PLAY A 0 A_ChangeFlag("DONTRIP",1)
PLAY A 1
PLAY A 1
stop
Death:
PLAY A 0
PLAY A 0 ACS_ExecuteAlways(213,0,1,user_USER,ACS_ExecuteWithResult(147,0))
PLAY A 1
stop
}
}

actor SkullmanWepDroppedX : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,2)
TNT1 A 1 A_SpawnItemEx("SkullBarrierWepCDropped")
stop
TNT1 A 1 A_SpawnItemEx("SkullSniperWepCDropped")
stop
}
}

actor SkullmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SkullShot",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SkullShotB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SkullShotR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SkullShotO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SkullShotP",0,1,8,0)
goto Done
}
}

actor SkullmanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("SkullShotRage",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("SkullShotRageB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("SkullShotRageR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("SkullShotRageO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("SkullShotRageP",0,1,8,0)
goto Done
}
}