Actor BassV : VCBaseClass
{
Player.ScoreIcon "BASSMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Bass"
player.soundclass "Bassc"
player.startitem "BassBusterV"
player.startitem "NormalArmor"
player.startitem "IsACopywep"
player.startitem "IsBass"
player.startitem "IsNotARobotMaster"
player.startitem "CanDoubleJump"
player.startitem "UltimateAttackItem4"
player.startitem "UltSoundWatcherSpawn4"
player.startitem "CanDoubleJump"
player.startitem "BassBusterLimiter", 105
player.forwardmove 0.8,0.8
player.sidemove 0.78,0.78
player.jumpz 10
States
{
Animation0:
Spawn:
BASS A 0
BASS A 0 A_JumpIfInventory("SuperArmTemp",1,"SpawnCarry")
BASS A 0 A_JumpIfInventory("DeepDiggerFlagL",1,"SpawnCarry")
BASS A 0 A_JumpIfInventory("DeepDiggerFlagR",1,"SpawnCarry")
BASS A 0 A_JumpIfInventory("BaseCustomFlag2",1,"SpawnAdaptor")
BASS B 1 A_JumpIf(z-floorz>0,"Jumping")
SpawnIdle:
BASS A 0 A_JumpIfInventory("SuperArmTemp",1,"SpawnCarryIdle")
BASS A 0 A_JumpIfInventory("DeepDiggerFlagL",1,"SpawnCarryIdle")
BASS A 0 A_JumpIfInventory("DeepDiggerFlagR",1,"SpawnCarryIdle")
BASS A 0 A_JumpIfInventory("BaseCustomFlag2",1,"SpawnAdaptor")
BASS A 0 A_JumpIfHealthLower(26,"Injured")
BASS A 0 A_GiveInventory("VC_Timer",1)
BASS A 0 A_JumpIfInventory("VC_Timer",180,"Blink")
BASS A 1 A_JumpIf(z-floorz>0,"Jumping")
Goto SpawnIdle

Injured:
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
Goto InjuredLoop

InjuredLoop:
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS U 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS U 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS U 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
2BAS T 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"See") 2BAS T 0 A_JumpIfHealthLower(26,1) Goto SpawnIdle 2BAS T 1 A_JumpIf(z-floorz>0,"Jumping")
loop

see:
BASS B 0 A_JumpIfInventory("SuperArmTemp",1,"SeeCarry")
BASS B 0 A_JumpIfInventory("DeepDiggerFlagL",1,"SeeCarry")
BASS B 0 A_JumpIfInventory("DeepDiggerFlagR",1,"SeeCarry")
BASS BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto SpawnIdle
SpawnCarry:
1BAS D 0 A_JumpIf(momx>1||momy>1||momx<-1||momy<-1,"SeeCarry")
1BAS D 1 A_JumpIf(z-floorz>0, "JumpingCarry")
SpawnCarryIdle:
1BAS C 0 A_JumpIf(momx>1||momy>1||momx<-11||momy<-1,"SeeCarry")
1BAS C 1 A_JumpIf(z-floorz>0, "JumpingCarry")
Goto SpawnCarryIdle
SpawnAdaptor:
2BAS JJJ 1
loop

Blink:
2BAS S 0 A_TakeInventory("VC_Timer",999)
2BAS SSSS 1 A_JumpIf(z-floorz>0, "Jumping")
Goto SpawnIdle

SeeCarry:
1BAS DDDDDEEEEEFFFFFEEEEE 1 A_JumpIf(z-floorz>0, "JumpingCarry")
Goto SpawnCarry+1
		
Jumping:
0BAS A 0 A_JumpIfInventory("SuperArmTemp",1,"JumpingCarry")
0BAS A 0 A_JumpIfInventory("DeepDiggerFlagL",1,"JumpingCarry")
0BAS A 0 A_JumpIfInventory("DeepDiggerFlagR",1,"JumpingCarry")
0BAS A 1 A_JumpIf(z-floorz<=0,"Spawn")
loop
JumpingCarry:
1BAS G 1 A_JumpIf(z-floorz<=0, "SpawnCarry")
wait
		
Animation1:
Missile:
BASS FFF 0 A_JumpIfInventory("BaseCustomFlag2",1,"AdaptorBuster")
BASS FFF 0 A_JumpIfInventory("IsUsingElectricShockWep",1,"Animation35")
BASS FFFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Missile2:
BASS GGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto SpawnIdle

JumpingMissile:
BASS FFF 0 A_JumpIfInventory("BaseCustomFlag2",1,"AdaptorBuster")
0BAS BBBBB 1 A_JumpIf(z-floorz<=0, "Missile")
JumpingMissile2:
0BAS BBBBB 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping

AdaptorBuster:
2BAS KKKKK 1 A_JumpIf(z-floorz>0, "JumpingAdaptorBuster")
AdaptorBuster2:
2BAS KKKKK 1 A_JumpIf(z-floorz>0, "JumpingAdaptorBuster2")
Goto SpawnAdaptor
JumpingAdaptorBuster:
2BAS LLLLL 1 A_JumpIf(z-floorz<=0, "AdaptorBuster")
JumpingAdaptorBuster2:
2BAS LLLLL 1 A_JumpIf(z-floorz<=0, "AdaptorBuster2")
Goto SpawnAdaptor
Animation2:
BassDash:
0BAS CCCCCCCCCCCCCCCCCCCC 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn

Animation3:
CrescentKickStart:
0BAS D 1 A_JumpIf(z-floorz>0,"JumpingCrescentKickStart")
wait
JumpingCrescentKickStart:
0BAS E 1 A_JumpIf(z-floorz<=0,"CrescentKickStart")
wait

Animation4:
CrescentKickDash:
2BAS V 1
wait

Animation5:
CrescentKickA:
0BAS KKK 1 A_JumpIf(z-floorz>0,"JumpingCrescentKickA")
Goto Spawn
JumpingCrescentKickA:
0BAS FFF 1 A_JumpIf(z-floorz<=0,"CrescentKickA")
Goto Jumping
Animation6: CrescentKickB: 0BAS GGG 1
Animation7: CrescentKickC: 0BAS HHH 1
Animation8: CrescentKickD: 0BAS III 1
Animation9: CrescentKickE: 0BAS JJJ 1
Animation10:
CrescentKickF:
0BAS KKK 1 A_JumpIf(z-floorz>0,"JumpingCrescentKickF")
Goto Spawn
JumpingCrescentKickF:
0BAS LLL 1 A_JumpIf(z-floorz<=0,"CrescentKickF")
Goto Jumping

Animation11:
BassUltPose:
2BAS AABB 1 A_JumpIfInventory("SuperBassTrigger",1,"BassUltSphere")
loop
BassUltSphere:
2BAS DD 1
BassUltSphereHold:
2BAS EEFF 1 A_JumpIfInventory("BassUltCharge",700,"BassUltSphereEnd")
loop
BassUltSphereEnd:
2BAS DD 1
Goto SuperBassPoseA

Animation12:
SuperBassPoseA:
2BAS GG 1
wait
Animation13:
SuperBassPoseB:
2BAS HH 1
wait

Animation14:
SweepingLaser:
2BAS NN 1
wait

Animation15:
CometDash:
2BAS MM 1
wait

Animation16:
RocketFistA:
2BAS OO 1
wait
Animation17:
RocketFistB:
2BAS PP 1
wait

Animation18:
DarkComet:
BSB2 DD 1
wait

//Copy weapon animations
Animation30:
SkipFireFrame:
TNT1 A 0
Goto SpawnIdle

Animation31:
Throw:
0BAS MMMMM 1 A_JumpIf(z-floorz>0, "JumpingThrow")
Throw2:
0BAS MMMMM 1 A_JumpIf(z-floorz>0, "JumpingThrow2")
Goto SpawnIdle
JumpingThrow:
0BAS NNNNN 1 A_JumpIf(z-floorz<=0, "Throw")
JumpingThrow2:
0BAS NNNNN 1 A_JumpIf(z-floorz<=0, "Throw2")
Goto Jumping

Animation32:
LightningBolt:
0BAS YYYYY 1
Animation33:
LightningBolt2:
0BAS ZZZZZ 1
Goto SpawnIdle

Animation34:
HardKnuckle:
0BAS OOOOO 1 A_JumpIf(z-floorz>0,"JumpingHardKnuckle")
HardKnuckle2:
0BAS OOOOO 1 A_JumpIf(z-floorz>0,"JumpingHardKnuckle2")
Goto SpawnIdle
JumpingHardKnuckle:
0BAS PPPPP 1 A_JumpIf(z-floorz<=0,"HardKnuckle")
JumpingHardKnuckle2:
0BAS PPPPP 1 A_JumpIf(z-floorz<=0,"HardKnuckle2")
Goto Jumping

Animation35:
Hand:
1BAS AAAAA 1 A_JumpIf(z-floorz>0,"JumpingHand")
Hand2:
1BAS AAAAA 1 A_JumpIf(z-floorz>0,"JumpingHand2")
Goto SpawnIdle
JumpingHand:
1BAS BBBBB 1 A_JumpIf(z-floorz<=0,"Hand")
JumpingHand2:
1BAS BBBBB 1 A_JumpIf(z-floorz<=0,"Hand2")
Goto Jumping

Animation36:
ChargeKick:
0BAS CCCCCCCCCCCCCCCCCCCC 1
Goto SpawnIdle

Animation37:
SlashClawA:
1BAS HH 1 A_JumpIf(z-floorz>0, "JumpingSlashClawA")
SlashClawB:
1BAS II 1 A_JumpIf(z-floorz>0, "JumpingSlashClawB")
SlashClawC:
1BAS JJ 1 A_JumpIf(z-floorz>0, "JumpingSlashClawC")
SlashClawD:
Animation38:
NoSlashClaw:
1BAS KKKKKK 1 A_JumpIf(z-floorz>0, "JumpingSlashClawD")
Goto SpawnIdle
JumpingSlashClawA:
1BAS LL 1 A_JumpIf(z-floorz<=0, "SlashClawA")
JumpingSlashClawB:
1BAS MM 1 A_JumpIf(z-floorz<=0, "SlashClawB")
JumpingSlashClawC:
1BAS NN 1 A_JumpIf(z-floorz<=0, "SlashClawC")
JumpingSlashClawD:
1BAS NNNNNN 1 A_JumpIf(z-floorz<=0, "SlashClawD")
Goto Jumping

Animation39:
FlameSwordA:
0BAS QQ 1 A_JumpIf(z-floorz>0,"JumpingFlameSwordA")
FlameSwordB:
0BAS RR 1 A_JumpIf(z-floorz>0,"JumpingFlameSwordB")
FlameSwordC:
0BAS SSSSSSSSSSS 1 A_JumpIf(z-floorz>0,"JumpingFlameSwordC")
FlameSwordD:
Animation40:
NoFlameSword:
0BAS TTTTTTTTT 1 A_JumpIf(z-floorz>0,"JumpingFlameSwordD")
Goto SpawnIdle
JumpingFlameSwordA:
0BAS UU 1 A_JumpIf(z-floorz<=0,"FlameSwordA")
JumpingFlameSwordB:
0BAS VV 1 A_JumpIf(z-floorz<=0,"FlameSwordB")
JumpingFlameSwordC:
0BAS WWWWWWWWWWW 1 A_JumpIf(z-floorz<=0,"FlameSwordC")
JumpingFlameSwordD:
0BAS WWWWWWWWW 1 A_JumpIf(z-floorz<=0,"FlameSwordD")
Goto Jumping

Animation41:
TenguBlade:
0BAS XXXXX 1
Animation42:
TenguBlade2:
0BAS XXXXX 1
Goto SpawnIdle

Animation43:
Breakdash:
1BAS ZZZZZ 1
Animation44:
Breakdash2:
1BAS ZZZZZ 1
Goto SpawnIdle

Animation45:
ArmSwingA:
1BAS OOO 1 A_JumpIf(z-floorz>0, "JumpingArmSwingA")
ArmSwingB:
1BAS PPP 1 A_JumpIf(z-floorz>0, "JumpingArmSwingB")
ArmSwingC:
1BAS QQQQQQQQQ 1 A_JumpIf(z-floorz>0, "JumpingArmSwingC")
Goto SpawnIdle
JumpingArmSwingA:
1BAS OOO 1 A_JumpIf(z-floorz<=0, "ArmSwingA")
JumpingArmSwingB:
1BAS RRR 1 A_JumpIf(z-floorz<=0, "ArmSwingB")
JumpingArmSwingC:
1BAS SSSSSSSSS 1 A_JumpIf(z-floorz<=0, "ArmSwingC")
Goto Jumping

Animation46:
MegaBall:
1BAS TTTTT 1
MegaBall2:
1BAS UUUUU 1
Goto SpawnIdle

Animation47:
Sakugarne:
1BAS VVVVV 1 A_JumpIf(z-floorz>0, "JumpingSakugarne")
Goto SpawnIdle
JumpingSakugarne:
1BAS WWWWW 1 A_JumpIf(z-floorz<=0, "Sakugarne")
Goto Jumping

Animation48:
OilSlider:
1BAS XXXXX 1 A_JumpIf(z-floorz>0, "JumpingOilSlider")
Goto SpawnIdle
JumpingOilSlider:
1BAS YYYYY 1 A_JumpIf(z-floorz<=0, "OilSlider")
Goto Jumping
		
ClassPain:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"ClassPain.Ult")
BASS HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto SpawnIdle
ClassPain.Ult:
2B2S HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto SpawnAdaptor
WeaponGetM:
ClassDeath:
BASS H 0 A_JumpIfInventory("BaseCustomFlag2",1,"ClassDeath.Ult")
BASS H 20 ACS_ExecuteAlways(999,0,0)
BASS H 0 A_PlayerScream 
BASS H 0 A_SpawnItemEx("FakeDeathFXMM9", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
ClassDeath.Ult:
2B2S H 0 A_spawnItemEx("DeadSuperBass",0,0,0,-12)
2B2S H 0 ACS_ExecuteAlways(999,0,0)
TNT1 AAAAAAAAAAAAAAAAAAAA 1 A_SetTranslucent(0.0,0)
2B2S H 0 A_PlayerScream 
NOFX A 1 A_CheckPlayerDone
wait
}
}

Actor BassBusterV : VCBaseWeapon
{
Obituary "$OB_BASS1"
States
{
Ready:
BASB B 1
BASB B 0 A_JumpIfInventory("VCOnce",1,"Ready2")
BASB B 0 A_SpawnItemEx("BassBusterStrengthWatcher")
BASB B 0 A_GiveInventory("VCOnce")
Ready2:
BASB B 0 A_JumpIfInventory("BassDashCoolDown",1,"Ready2.NoAlt")
BASB B 0 A_JumpIf(z-floorz>8,"Ready2.Air")
BASB B 1 A_WeaponReady
BASB B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
BASB B 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
loop
Ready2.Air:
BASB B 0 A_JumpIf(z-floorz<=0,"Ready2")
BASB B 1 A_WeaponReady(WRF_NOSECONDARY)
BASB B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
BASB B 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
loop
Ready2.NoAlt:
BASB B 1 A_WeaponReady(WRF_NOSECONDARY)
BASB B 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
BASB B 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
Goto Ready2
Ready2.Ult:
BASB E 0 A_JumpIfInventory("BassUltCharge",1,1)
Goto DarkComet
BASB E 1 A_WeaponReady(WRF_NOFIRE|WRF_DISABLESWITCH)
BASB E 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"Fire.Ult")
BASB E 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"Altfire.Ult")
BASB E 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1.Ult")
loop

Deselect: 
BASB B 0 A_GiveInventory("MegaDamageModifier")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
BASB B 1 A_Lower
Loop
Select:
BASB B 0 A_TakeInventory("MegaDamageModifier")
BASB B 0 ACS_ExecuteAlways(998,0,46)
Select2:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
BASB B 1 A_Raise
Loop

Fire:
BASB B 0 A_WeaponReady(WRF_NOFIRE)
BASB B 0 A_GiveInventory("BassBusterStartPickUp",1)
FireHold:
BASB B 1 A_GiveInventory("BassMainPickUp",1) BASB C 1
BASB D 1 A_GiveInventory("BassMainPickUp",1) BASB B 1
BASB C 1 A_GiveInventory("BassMainPickUp",1) BASB D 1
BASB B 0 A_Refire("FireHold")
BASB B 0 A_GiveInventory("BassBusterEndPickUp",1)
Goto Ready2

Fire.Ult:
BASB E 0 A_GiveInventory("ToadChargeDamageGive")
Goto Fire.UltHold

Fire.UltHold:
BASB E 0 A_JumpIfInventory("BassUltCharge",1,"Fire.UltHold.Continue")
BASB E 1 A_Jump(256,"DarkBassBuster")
wait
Fire.UltHold.Continue:
BASB E 0 A_JumpIfInventory("BassCharge",28,"UltCharge")
BASB E 1 A_GiveInventory("BassCharge",1)
BASB E 0 A_Refire("Fire.UltHold")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"Fire.UltHold")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"Fire.UltHold")
BASB E 1 A_Jump(256,"DarkBassBuster")
wait

UltCharge:
BASC C 0 A_PlaySoundEx("weapon/coilstart","Weapon")
Goto UltCharge1

UltCharge1:
BASC C 0 A_JumpIfInventory("BassUltCharge",1,"UltCharge1.Continue")
BASC C 1 A_Jump(256,"DarkChargeShot")
wait
UltCharge1.Continue:
BASC C 0 A_JumpIfInventory("BassCharge",56,"UltCharge2")
BASC C 0 ACS_ExecuteAlways(991,0,10873)
BASC C 1 A_GiveInventory("BassCharge",1)
BASC C 0 A_Refire("UltCharge1.a")
BASC C 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1.a")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1.a")
BASB E 1 A_Jump(256,"DarkChargeShot")
wait

UltCharge1.a:
BASC C 1 A_GiveInventory("BassCharge",1)
BASC C 0 A_Refire("UltCharge1.b")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1.b")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1.b")
BASC C 1 A_Jump(256,"DarkChargeShot")
wait

UltCharge1.b:
BASB E 0 ACS_ExecuteAlways(991,0,10872)
BASB E 1 A_GiveInventory("BassCharge",1)
BASB E 0 A_Refire("UltCharge1.c")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1.c")
BASC C 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1.c")
BASC C 1 A_Jump(256,"DarkChargeShot")
wait

UltCharge1.c:
BASB E 1 A_GiveInventory("BassCharge",1)
BASB E 0 A_Refire("UltCharge1")
BASC C 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1")
BASC C 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge1")
BASB E 1 A_Jump(256,"DarkChargeShot")
wait

UltCharge2:
BASB E 0 A_JumpIfInventory("BassUltCharge",1,"UltCharge2.Continue")
BASB E 1 A_Jump(256,"SweepingLaser")
wait
UltCharge2.Continue:
BASB E 0 A_PlaySoundEx("weapon/coilcharge","Weapon")
BASB E 1 ACS_ExecuteAlways(991,0,10872)
BASB E 0 A_Refire("UltCharge2.a")
BASC C 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge2.a")
BASC D 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge2.a")
BASB E 1 A_Jump(256,"SweepingLaser")
wait

UltCharge2.a:
BASC C 1 ACS_ExecuteAlways(991,0,10873)
BASC C 0 A_Refire("UltCharge2.b")
BASC D 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge2.b")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge2.b")
BASC C 1 A_Jump(256,"SweepingLaser")
wait

UltCharge2.b:
BASC D 1 ACS_ExecuteAlways(991,0,10874)
BASC D 0 A_Refire("UltCharge2")
BASB E 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge2")
BASC C 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==3,"UltCharge2")
BASC D 1 A_Jump(256,"SweepingLaser")
wait

DarkBassBuster:
BASB E 0 A_GiveInventory("DarkBassBusterPickUp",1)
BASB EFGF 2
BASB E 0 A_GiveInventory("DarkBassBusterPickUp",1)
BASB EFGF 2
BASB E 0 A_GiveInventory("DarkBassBusterPickUp",1)
BASB EFGF 2
Goto Ready2.Ult

DarkChargeShot:
BASB E 0 A_GiveInventory("DarkChargedBassBusterPickUp",1)
BASB EFGFE 3
Goto Ready2.Ult

SweepingLaser:
BASB E 1 Offset(0,42)ACS_ExecuteAlways(991,0,10872)
BASB E 1 Offset(0,52)A_GiveInventory("ToadChargeDamageTake")
BASB E 1 Offset(0,62)SetPlayerProperty(0,1,4)
BASB E 1 Offset(0,72)ACS_NamedExecuteWithResult("VC_SetState",14)
Goto DarkLaserHold

DarkLaserHold:
TNT1 A 0 A_JumpIfInventory("BassCharge",1,1)
Goto DarkLaserEnd
TNT1 A 1 Offset(0,82)A_ChangeVelocity(40,0,0,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_SpawnItemEx("BassSweepingLaser",0,8)
TNT1 A 0 A_TakeInventory("BassCharge",2) TNT1 A 0 A_PlaySoundEx("weapon/lshot","Weapon") TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",14)
TNT1 A 1 Offset(0,82)A_ChangeVelocity(40,0,0,CVF_RELATIVE|CVF_REPLACE) TNT1 A 0 A_SpawnItemEx("BassSweepingLaser2")
TNT1 A 0 A_TakeInventory("BassCharge",2) TNT1 A 0 A_PlaySoundEx("weapon/lshot","Weapon") TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",14)
loop

DarkLaserEnd:
BASB E 1 Offset(0,72)ACS_NamedExecuteWithResult("VC_SetState",0)
BASB E 1 Offset(0,62)SetPlayerProperty(0,0,4)
BASB E 1 Offset(0,52)A_StopSoundEx("Weapon")
BASB E 1 Offset(0,42)ACS_NamedExecuteWithResult("VC_SetState",0)
BASB E 3 A_WeaponReady(WRF_NOFIRE|WRF_DISABLESWITCH)
Goto Ready2.Ult

AltFire:
BASD A 0 A_JumpIfInventory("NoAltfire",1,"Ready2")
BASD A 2
BASD A 0 A_GiveInventory("BassAltPickUp",1)
BASD BCC 2 A_SpawnItemEx("BassDashDustV",-16)
BASD CCCBA 2
BASD A 0 A_JumpIf(z-floorz>8,"AirHold")
Goto BassDashFinish
AirHold:
BASB B 0 A_JumpIf(z-floorz<=0,"BassDashFinish")
BASB B 1 A_WeaponReady(WRF_NOSECONDARY)
loop
BassDashFinish:
BASB B 1
Goto Ready2

AltFire.Ult:
BASD D 0 A_JumpIfInventory("NoAltfire",1,"Ready2.Ult")
BASD D 0 A_GiveInventory("CometDashPickUp",1)
BASD D 1 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*40,CVF_RELATIVE|CVF_REPLACE) BASD D 0 A_TakeInventory("CometDashTimer",1)
BASD D 0 A_SpawnItemEx("CometDashHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) BASD D 0 ACS_NamedExecuteWithResult("VC_SetState",15)
BASD D 1 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*40,CVF_RELATIVE|CVF_REPLACE) BASD D 0 A_TakeInventory("CometDashTimer",1)
BASD D 0 A_SpawnItemEx("CometDashHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) BASD D 0 ACS_NamedExecuteWithResult("VC_SetState",15)
BASD E 1 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*40,CVF_RELATIVE|CVF_REPLACE) BASD E 0 A_TakeInventory("CometDashTimer",1)
BASD E 0 A_SpawnItemEx("CometDashHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) BASD E 0 ACS_NamedExecuteWithResult("VC_SetState",15)
BASD E 1 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*40,CVF_RELATIVE|CVF_REPLACE) BASD E 0 A_TakeInventory("CometDashTimer",1)
BASD F 0 A_SpawnItemEx("CometDashHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) BASD F 0 ACS_NamedExecuteWithResult("VC_SetState",15)
BASD F 1 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*40,CVF_RELATIVE|CVF_REPLACE) BASD F 0 A_TakeInventory("CometDashTimer",1)
BASD F 0 A_SpawnItemEx("CometDashHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) BASD F 0 ACS_NamedExecuteWithResult("VC_SetState",15)
BASD F 1 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*40,CVF_RELATIVE|CVF_REPLACE) BASD F 0 A_TakeInventory("CometDashTimer",1)
BASD F 0 A_SpawnItemEx("CometDashHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) BASD F 0 ACS_NamedExecuteWithResult("VC_SetState",15)
Goto CometDashHold

CometDashHold:
BASD F 0 A_JumpIfInventory("CometDashTimer",1,1)
Goto CometDashEnd
BASD F 1 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*40,CVF_RELATIVE|CVF_REPLACE) BASD F 0 A_TakeInventory("CometDashTimer",1)
BASD F 0 A_SpawnItemEx("CometDashHitBox",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION) BASD F 0 ACS_NamedExecuteWithResult("VC_SetState",15)
loop

CometDashEnd:
BASD F 0 A_GiveInventory("CometDashEndPickUp",1)
BASD FED 2 ACS_NamedExecuteWithResult("VC_SetState",0)
Goto Ready2.Ult

User1:
BASB B 0 A_GiveInventory("ToadChargeDamageGive")
User1Hold:
BASB B 0 A_JumpIfInventory("BassCharge",28,"Charge0")
BASB B 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASB B 1 A_GiveInventory("BassCharge",1)
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1Hold")
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1Hold")
BASB B 1 A_Jump(256,"Fire")
wait

Charge0:
BASC A 0 A_PlaySoundEx("weapon/coilstart","Weapon")
Charge1:
BASC A 0 A_JumpIfInventory("BassCharge",56,"Charge2")
BASC A 0 ACS_ExecuteAlways(991,0,10870)
BASC A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASC A 1 A_GiveInventory("BassCharge",1)
BASC A 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1.a")
BASC A 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1.a")
BASB B 1 A_Jump(256,"Fire")
wait

Charge1.a:
BASC A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASC A 1 A_GiveInventory("BassCharge",1)
BASC A 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1.b")
BASC A 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1.b")
BASB B 1 A_Jump(256,"Fire")
wait

Charge1.b:
BASB B 0 ACS_ExecuteAlways(991,0,46)
BASB B 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASB B 1 A_GiveInventory("BassCharge",1)
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1.c")
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1.c")
BASC A 1 A_Jump(256,"Fire")
wait

Charge1.c:
BASB B 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASB B 1 A_GiveInventory("BassCharge",1)
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1")
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge1")
BASC A 1 A_Jump(256,"Fire")
wait

Charge2:
BASB B 0 A_PlaySoundEx("weapon/coilcharge","Weapon")
BASB B 1 ACS_ExecuteAlways(991,0,10871) BASB B 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASC A 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge2.a")
BASC B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge2.a")
BASB B 1 A_Jump(256,"CrescentKick")
wait

Charge2.a:
BASC A 1 ACS_ExecuteAlways(991,0,10870) BASC A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASC B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge2.b")
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge2.b")
BASC A 1 A_Jump(256,"CrescentKick")
wait

Charge2.b:
BASC B 1 ACS_ExecuteAlways(991,0,46) BASC B 0 ACS_NamedExecuteWithResult("VC_SetState",3)
BASB B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge2")
BASC A 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"Charge2")
BASC B 1 A_Jump(256,"CrescentKick")
wait

CrescentKick:
BASB B 1 ACS_ExecuteAlways(991,0,46)
BASC A 1 ACS_ExecuteAlways(991,0,10870)
BASC B 1 ACS_ExecuteAlways(991,0,10871)
BASD B 0 ACS_ExecuteAlways(991,0,46)
BASD BB 1 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD B 0 A_GiveInventory("BassThirdPickUp",1)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
BASD C 1 A_SpawnItemEx("BassCrescentKickDetector",40,0,0) BASD C 0 A_JumpIfInventory("CutterFlag2",1,"CrescentKickGo") BASD C 0 ACS_NamedExecuteWithResult("VC_SetState",4)
CrescentKickGo:
BASD C 0 A_GiveInventory("BassThirdPickUp2",1)
BASK A 1 A_Stop BASK A 0 A_SpawnItemEx("CrescentKickDamager") BASK A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
BASK A 1 A_Stop BASK A 0 A_SpawnItemEx("CrescentKickDamager") BASK A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
BASK B 1 A_Stop BASK B 0 A_SpawnItemEx("CrescentKickDamager") BASK B 0 ACS_NamedExecuteWithResult("VC_SetState",6)
BASK B 1 A_Stop BASK B 0 A_SpawnItemEx("CrescentKickDamager") BASK B 0 ACS_NamedExecuteWithResult("VC_SetState",6)
BASK C 1 A_Stop BASK C 0 A_SpawnItemEx("CrescentKickDamager") BASK C 0 ACS_NamedExecuteWithResult("VC_SetState",7)
BASK D 1 A_Stop BASK D 0 A_SpawnItemEx("CrescentKickDamager") BASK D 0 ACS_NamedExecuteWithResult("VC_SetState",7)
BASK D 1 A_Stop BASK D 0 A_SpawnItemEx("CrescentKickDamager") BASK D 0 ACS_NamedExecuteWithResult("VC_SetState",8)
BASK G 1 A_Stop BASK G 0 A_SpawnItemEx("CrescentKickDamager") BASK G 0 ACS_NamedExecuteWithResult("VC_SetState",8)
BASK E 1 A_Stop BASK E 0 A_SpawnItemEx("CrescentKickDamager") BASK E 0 ACS_NamedExecuteWithResult("VC_SetState",9)
BASK F 1 A_Stop BASK F 0 A_SpawnItemEx("CrescentKickDamager") BASK F 0 ACS_NamedExecuteWithResult("VC_SetState",9)
BASK F 1 A_Stop BASK F 0 A_SpawnItemEx("CrescentKickDamager") BASK F 0 ACS_NamedExecuteWithResult("VC_SetState",10)
TNT1 A 1 Offset(30,100)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",10)
TNT1 A 1 Offset(30,100)A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",0)
TNT1 A 1 A_Stop TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",0)
BASB B 1 A_GiveInventory("BassThirdEndPickUp",1)
BASB B 1 Offset(20,70)A_TakeInventory("CutterFlag2",99)
BASB B 1 Offset(17,60)A_TakeInventory("CutterFlag2",99)
BASB B 1 Offset(12,45)
BASB B 1 Offset(8,38)
BASB B 1 Offset(2,34)
BASB B 1 Offset(1,33)
BASB B 1 Offset(1,33)
Goto Ready2

User1.Ult:
BASC EEEEE 1 ACS_NamedExecuteAlways("VC_SetState",0,16)
BASB E 0 A_GiveInventory("BassRocketFishPickUp",1)
BASC F 1 Offset(4,36)ACS_NamedExecuteAlways("VC_SetState",0,17)
BASC F 1 Offset(8,40)ACS_NamedExecuteAlways("VC_SetState",0,17)
BASC F 1 Offset(12,44)ACS_NamedExecuteAlways("VC_SetState",0,17)
BASC F 1 Offset(16,48)ACS_NamedExecuteAlways("VC_SetState",0,17)
Goto RocketFistHold

RocketFistHold:
BASC F 0 A_JumpIfInventory("CutterFlag",70,"RocketFistEnd")
BASC F 1 Offset(16,48)ACS_NamedExecuteAlways("VC_SetState",0,17)
BASC F 0 A_GiveInventory("CutterFlag",1)
loop

RocketFistEnd:
BASB E 0 A_PlaySoundEx("weapon/adapterreturn","Weapon")
BASB E 1 Offset(16,48)ACS_NamedExecuteAlways("VC_SetState",0,16)
BASB E 1 Offset(12,44)ACS_NamedExecuteAlways("VC_SetState",0,16)
BASB E 1 Offset(8,40)ACS_NamedExecuteAlways("VC_SetState",0,0)
BASB E 1 Offset(4,36)ACS_NamedExecuteAlways("VC_SetState",0,0)
BASB E 1 A_WeaponReady(WRF_NOFIRE|WRF_DISABLESWITCH)
Goto Ready2.Ult

UltimateAttack:
BASB BB 1
BASB B 0 A_WeaponReady(WRF_NOFIRE|WRF_DISABLESWITCH)
BASB B 0 A_GiveInventory("BassUltStartPickUp",1)
BASB B 1 Offset(8,40)A_Stop
BASB B 1 Offset(16,48)A_Stop
BASB B 1 Offset(24,56)A_Stop
BASB B 1 Offset(32,64)A_Stop
BASB B 1 Offset(40,72)A_Stop
Goto UltStartHold

UltStartHold:
TNT1 A 1 A_Stop
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"UltTransition")
loop

UltTransition:
TNT1 A 0 A_GiveInventory("BassUltSpherePickUp",1)
UltTransition.Waiting:
TNT1 A 0 A_PlaySoundEx("misc/hugequake2","SoundSlot5")
TNT1 A 0 A_PlaySoundEx("weapon/TrioCharge3","SoundSlot6")
TNT1 A 1 A_Stop TNT1 A 0 A_Quake(4,5,0,250) TNT1 A 0 A_GiveInventory("BassUltCharge",9)
TNT1 A 0 A_JumpIfInventory("BassUltCharge",700,"EndTransition")
TNT1 A 1 A_Stop TNT1 A 0 A_Quake(4,5,0,250) TNT1 A 0 A_GiveInventory("BassUltCharge",9)
TNT1 A 0 A_JumpIfInventory("BassUltCharge",700,"EndTransition")
TNT1 A 1 A_Stop TNT1 A 0 A_Quake(4,5,0,250) TNT1 A 0 A_GiveInventory("BassUltCharge",9)
TNT1 A 0 A_JumpIfInventory("BassUltCharge",700,"EndTransition")
loop

EndTransition:
TNT1 A 0 A_TakeInventory("SuperBassTrigger",1)
BASB E 1 Offset(40,72)A_Stop
BASB E 1 Offset(32,64)A_Stop
BASB E 1 Offset(24,56)A_Stop
BASB E 1 Offset(16,48)A_Stop
BASB E 1 Offset(8,40)A_Stop
BASB E 0 A_WeaponReady(WRF_NOFIRE|WRF_DISABLESWITCH)
BASB E 0 ACS_NamedExecuteAlways("VC_SetState",0,13)
BASB E 0 A_PlaySoundEx("weapon/timestopper","Weapon")
BASC DDDDDDDDDDDDDDD 1 A_Stop
BASC D 0 ACS_NamedExecuteAlways("VC_SetState",0,12)
TNT1 A 0 A_TakeInventory("SuperBassTrigger",1)
BASB EEEEEEEEEE 1 A_Stop
TNT1 A 0 A_GiveInventory("BassUltBeginPickUp",1)
Goto Ready2.Ult

DarkComet:
BASB L 0 A_GiveInventory("DarkCometStartPickUp",1)
BASB L 0 ACS_NamedExecuteAlways("VC_SetState",0,13)
BASB LLLLLMMMMMNNNNNOOOOOOOOOO 1 A_Stop
BASB L 0 ACS_NamedExecuteAlways("VC_SetState",0,12)
BASB OOOOOOOOOO 1 A_Stop
BASB O 0 ACS_NamedExecuteAlways("VC_SetState",0,18)
BASB O 0 A_PlaySoundEx("weapon/coilfire2", "Weapon")
BASB O 0 A_SpawnItemEx("DarkCometRise",0,0,0,0,0,30)
BASB OOOOOOOOOO 1 Offset(0,52)A_Stop
BASB O 1 Offset(0,47)A_Stop
BASB O 1 Offset(0,42)A_Stop
BASB O 1 Offset(0,37)A_Stop
BASB OOOOOOOOOO 1 Offset(0,31)A_Stop
BASB O 0 A_PlaySoundEx("weapon/coilfire2", "Weapon")
BASB O 0 A_SpawnItemEx("DarkCometRise",0,0,0,0,0,30)
BASB OOOOOOOOOO 1 Offset(0,52)A_Stop
BASB O 1 Offset(0,47)A_Stop
BASB O 1 Offset(0,42)A_Stop
BASB O 1 Offset(0,37)A_Stop
BASB OOOOOOOOOO 1 Offset(0,31)A_Stop
BASB NNNNNMMMMMLLLLL 1 A_Stop
BASB L 0 A_GiveInventory("DarkCometEndPickUp",1)
BASB B 1 A_WeaponReady(WRF_NOFIRE|WRF_DISABLESWITCH)
BASB B 0 ACS_NamedExecuteAlways("VC_SetState",0,0)
Goto Ready2
}
}

actor BassDoubleJumpCheckerPickUp : CustomInventory {states{Pickup:TNT1 A 0 A_SpawnItemEx("BassDoubleJumpChecker")stop}}
actor GiveDoubleJumpPickUp : CustomInventory {states{Pickup:TNT1 A 0 A_GiveInventory("CanDoubleJump",1)stop}}
actor BassDoubleJumpPickUp : CustomInventory {states{Pickup:TNT1 A 0 ThrustThingZ(0,50,0,0)stop}}
actor BassDoubleJumpPickUp2 : CustomInventory {states{Pickup:TNT1 A 0 ThrustThingZ(0,60,0,0)stop}}

actor BassDoubleJumpChecker
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIf(z-floorz<=0,"Death")
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIf(z-floorz<=0,"Death")
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIf(z-floorz<=0,"Death")
loop
Death:
TNT1 A 0
TNT1 AA 1 A_GiveToTarget("GiveDoubleJumpPickUp",1)
stop
}
}

actor BassBusterStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(991,0,46)
TNT1 A 0 A_TakeInventory("BassCharge",99)
TNT1 A 0 A_GiveInventory("BaseCustomFlag1",1)
TNT1 A 0 A_GiveInventory("BassBusterSlowDown",1)
TNT1 A 0 A_GiveInventory("ToadChargeDamageTake",1)
stop
}
}

actor BassBusterEndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("BaseCustomFlag1",1)
TNT1 A 0 A_TakeInventory("BassBusterSlowDown",1)
stop
}
}

actor BassBusterWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn: 
TNT1 AA 0
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PowerUltBuildCooldown",1,"Skip")
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"Spawn2")
Skip:
TNT1 A 0 A_GiveToTarget("BassBusterLimiter",1)
TNT1 A 0 A_JumpIfInTargetInventory("IsBass",1,"Spawn")
Goto Death
Spawn2:
TNT1 A 0 A_TakeFromTarget("BassBusterLimiter",1)
TNT1 A 0 A_JumpIfInTargetInventory("IsBass",1,"Spawn")
Goto Death
Death:
TNT1 A 0
stop
}
}

actor BassBusterSlowDown : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration -999
Speed 0.50
}

actor BassMainPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 A 0 A_JumpIfInventory("BassBusterLimiter",52,"Pickup3")
TNT1 A 0 A_JumpIfInventory("BassBusterLimiter",1,"Pickup2")
TNT1 A 0 A_PlaySound("weapon/mbuster",1,1.0)
TNT1 A 0 A_FireCustomMissile("BassVShot3",0,0,8)
stop
Pickup2:
TNT1 A 0 A_PlaySound("weapon/minchrgshot",1,1.0)
TNT1 A 0 A_FireCustomMissile("BassVShot2",0,0,8)
stop
Pickup3:
TNT1 A 0 A_PlaySound("weapon/BassBuster",1,0.7)
TNT1 A 0 A_FireCustomMissile("BassVShot",0,0,8)
stop
}
}

Actor BassVShot
{
PROJECTILE
+DONTBLAST
+SKYEXPLODE
+LOOKALLAROUND
Obituary "$OB_BASS1"
DamageType "BassBusterVC"
Speed 60
Damage (3)
radius 8
height 8
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
TNT1 A 0 A_JumpIf(momz >= 50, "Up")
TNT1 A 0 A_JumpIf(momz > 20 && momz < 50, "HighAngle")
TNT1 A 0 A_JumpIf(momz > -50 && momz < -20, "LowAngle")
TNT1 A 0 A_JumpIf(momz <= -50, "Down")
Goto Forward
Up:
BSH1 A 2
BSH2 A 2
BSH3 A 2
loop
HighAngle:
BSH1 B 2
BSH2 B 2
BSH3 B 2
loop
Forward:
BSH1 C 2
BSH2 C 2
BSH3 C 2
loop
LowAngle:
BSH1 D 2
BSH2 D 2
BSH3 D 2
loop
Down:
BSH1 D 2
BSH2 D 2
BSH3 D 2
loop
Death:
TNT1 A 1 A_Jump(256,"Death2A","Death2B")
wait
Death2A:
BSH5 A 2
Goto Death3
Death2B:
BSH5 B 2
Death3:
BSH5 C 2
stop
}
}

Actor BassVShot2 : BassVShot
{
Damage (2)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
Spawn2:
BSH0 A 1
wait
Death:
BSH5 DEF 2
stop
}
}

Actor BassVShot3 : BassVShot2
{
Damage (1)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
Spawn2:
BASB A 1
wait
Death:
TNT1 A 0
stop
}
}

actor BassAltPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_Recoil(CallACS("VC_XYMob",-35))
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_GiveInventory("BassDashCoolDown",70)
TNT1 A 0 A_SpawnItemEx("BassDashCoolDownWatcher")
TNT1 A 0 A_PlaySoundEx("weapon/chargekick","Weapon")
stop
}
}

actor BassDashCoolDownWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_TakeFromTarget("BassDashCoolDown",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("BassDashCoolDown",1,"Spawn")
Death:
TNT1 A 0
stop
}
}

actor BassDashDustV
{
Scale 1.0
Height 16
Radius 8
+NOGRAVITY
+NOINTERACTION
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_CheckFloor(1)
stop
DRIA MNOPQ 2
stop
}
} 

actor BassThirdPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_Recoil(CallACS("VC_XYMob",-40))
TNT1 A 0 ThrustThingZ(0,25,0,0)
TNT1 A 0 A_SpawnItemEx("BassDashDustV",-16)
TNT1 A 0 A_PlaySoundEx("weapon/chargekick","Weapon")
stop
}
}

actor BassThirdPickUp2 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 A_TakeInventory("BassCharge",99)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
TNT1 A 0 A_GiveInventory("ToadChargeDamageTake")
TNT1 A 0 A_PlaySoundEx("weapon/cfire2","SoundSlot2")
TNT1 A 0 A_PlaySoundEx("weapon/basskick","SoundSlot1")
stop
}
}

actor BassCrescentKickDetector
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
damage (0)
Height 32
Radius 40
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
XDeath:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("CutterFlag2",1)
stop
}
}

actor CrescentKickDamager : BasicExplosion
{
damagetype "BassCrescentKick"
Obituary "$OB_BASS2"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(40,80,0,0,80)
stop
}
}

actor CrescentKickProtect : PowerProtection
{
powerup.duration 25
damagefactor "BassCrescentKick", 0.0
}

actor BassThirdEndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_TakeInventory("CutterFlag2",99)
TNT1 A 0 A_GiveInventory("GravityRestore")
stop
}
}

actor BassUltStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_TakeInventory("IsACopywep",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_SpawnItemEx("TrebleAdaptorSummon")
TNT1 A 0 ACS_NamedExecuteAlways("VC_SetState",0,11)
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,2)
TNT1 A 0 A_TakeInventory("MediumLongUltimateAmmo",400)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
stop
}
}

actor BassUltSpherePickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(991,0,10872)
TNT1 A 0 A_GiveInventory("SuperBassTrigger",1)
stop
}
}

actor BassUltBeginPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,1,3)
TNT1 A 0 A_SpawnItemEx("BassUltWatcher")
TNT1 A 0 A_SpawnItemEx("AdaptorJetWarper")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_GiveInventory("HalfDamageProtection")
TNT1 A 0 ACS_NamedExecuteAlways("VC_SetState",0,0)
stop
}
}

actor TrebleAdaptorSummon
{
PROJECTILE
+NOGRAVITY
+THRUACTORS
+NOINTERACTION
Height 1
Radius 1
scale 2.5
const int OFS_CHG = 32;
var int User_TrableOffset;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_PlaySoundEx("misc/teleport2","Auto")
TNT1 A 0 A_SetUserVar("User_TrableOffset",640)
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,User_TrableOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar("User_TrableOffset",User_TrableOffset-OFS_CHG)
Spawn2:
TRBL F 1 A_Warp(AAPTR_TARGET,0,0,User_TrableOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar("User_TrableOffset",User_TrableOffset-OFS_CHG)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIf(User_TrableOffset<=64,"Death")
loop
Death:
TNT1 A 0 A_GiveToTarget("BaseCustomFlag2",1)
stop
}
}

actor TrebleAdaptorExit : TrebleAdaptorSummon
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_PlaySoundEx("misc/teleport2","Auto")
TNT1 A 0 A_SetUserVar("User_TrableOffset",0)
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,User_TrableOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SetUserVar("User_TrableOffset",User_TrableOffset+OFS_CHG)
Spawn2:
TRBL F 1 A_Warp(AAPTR_TARGET,0,0,User_TrableOffset,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_SetUserVar("User_TrableOffset",User_TrableOffset+OFS_CHG)
TNT1 A 0 A_JumpIf(User_TrableOffset>=640,"Death")
loop
Death:
TNT1 A 0
stop
}
}

actor AdaptorJetWarper
{
Height 0
Radius 0
scale 3.0
+NOCLIP
-SOLID
+NOGRAVITY
+NOINTERACTION
+CLIENTSIDEONLY
+MISSILE
const int JET_X_OFS = -16;
const int JET_Z_OFS = 32;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
TRB2 E 1 A_Warp(AAPTR_TARGET,JET_X_OFS,0,JET_Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_JumpIfInTargetInventory("CometDashTimer",1,"HoldJet")
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,1) Goto Death
TRB2 E 1 A_Warp(AAPTR_TARGET,JET_X_OFS,0,JET_Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_JumpIfInTargetInventory("CometDashTimer",1,"HoldJet")
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,1) Goto Death
TRB2 F 1 A_Warp(AAPTR_TARGET,JET_X_OFS,0,JET_Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_JumpIfInTargetInventory("CometDashTimer",1,"HoldJet")
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,1) Goto Death
TRB2 F 1 A_Warp(AAPTR_TARGET,JET_X_OFS,0,JET_Z_OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_JumpIfInTargetInventory("CometDashTimer",1,"HoldJet")
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death") TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag2",1,"Spawn2") Goto Death
loop
HoldJet:
TNT1 AA 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("CometDashTimer",1,"HoldJet")
Goto Spawn2
Death:
TNT1 A 0
stop
}
}

actor BassUltWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("BassUltCharge",1)
TNT1 A 0 A_JumpIfInTargetInventory("BassUltCharge",1,"Spawn")
Death:
TNT1 A 1
stop
}
}

actor DarkBassBusterPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(991,0,10872)
TNT1 A 0 A_TakeInventory("BassCharge",99)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 A 0 A_GiveInventory("ToadChargeDamageTake")
TNT1 A 0 A_PlaySoundEx("weapon/gemini","Weapon")
TNT1 A 0 A_FireCustomMissile("DarkBassBuster",0,0,1,8,0)
stop
}
}

Actor DarkBassBuster : BassVShot
{
+RIPPER
Obituary "$OB_BASS3"
DamageType "BassBusterVCUlt"
Speed 30
Damage (5)
radius 16
height 16
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
BSH4 EF 2
loop
Death:
TNT1 A 0
stop
}
}


actor DarkChargedBassBusterPickUp : CustomInventory
{
states
{
Pickup:
BASB E 0 ACS_ExecuteAlways(991,0,10872)
BASB E 0 A_TakeInventory("BassCharge",99)
BASB E 0 A_GiveInventory("ToadChargeDamageTake")
BASB E 0 A_PlaySoundEx("weapon/coilfire2", "Weapon")
BASB E 0 A_FireCustomMissile("DarkChargeShot",  0,0,8,0)
BASB E 0 A_FireCustomMissile("DarkChargeShot", 20,0,8,0)
BASB E 0 A_FireCustomMissile("DarkChargeShot",-20,0,8,0)
stop
}
}

Actor DarkChargeShot : BassVShot
{
Obituary "$OB_BASS4"
DamageType "BassBusterVCUlt"
Speed 45
radius 24
height 24
Damage (0)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
BSH4 ABCD 2
loop
Death:
XDeath:
TNT1 A 0 A_PlaySound("weapon/mm9explode2",0,0.5) 
TNT1 A 0 A_Explode(22,96,0,0,48)
NAPA EFGHIJKLMNOPQRS 1 A_Quake(3,5,0,300)
stop
}
}

actor BassSweepingLaser
{
PROJECTILE
+THRUACTORS
+DONTREFLECT
Obituary "$OB_BASS5"
Damagetype "BassBusterVCUlt"
Damage (0)
Speed 0
Height 1
Radius 1
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
BASL A 0 A_SpawnItemEx("BassSweepingLaser",0,0,-16,momx,momy,momz,0,SXF_ABSOLUTEANGLE|SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERPOINTERS)
BASL A 1 BRIGHT A_SpawnItemEx("SweepingLaserDamager")
stop
Death:
BASL A 0 A_SpawnItemEx("SweepingLaserExplode",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
BASL A 1
stop
}
}

actor BassSweepingLaser2 : BassSweepingLaser
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
BASL A 0 A_SpawnItemEx("BassSweepingLaser2",0,0,-16,momx,momy,momz,0,SXF_ABSOLUTEANGLE|SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERPOINTERS)
BASL B 1 BRIGHT A_SpawnItemEx("SweepingLaserDamager")
stop
Death:
BASL A 0 A_SpawnItemEx("SweepingLaserExplode",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
BASL B 1
stop
}
}

actor SweepingLaserDamager
{
species "DustManType"
+THRUSPECIES
PROJECTILE
Obituary "$OB_BASS5"
Damagetype "BassBusterVCUlt"
+RIPPER
+NOINTERACTION
+DONTBLAST
damage (0)
radius 1
height 1
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(4,96,0)
stop
}
}

actor SweepingLaserExplode
{
PROJECTILE
+RIPPER
+FLOORHUGGER
damage (0)
height 1
radius 1
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BASL CCCDDD 1 A_SpawnItemEx("SweepingLaserRubble",0,0,0,Random(12,16),0,Random(12,15),random(0,359),SXF_TRANSFERPOINTERS)
stop
}
}

actor SweepingLaserRubble : SweepingLaserExplode
{
PROJECTILE
Obituary "$OB_BASS5"
Damagetype "BassBusterVCUlt"
-FLOORHUGGER
-NOGRAVITY
damage (4)
gravity 2.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6","Spawn7")
wait
Spawn1:
BASL E 1
wait
Spawn2:
BASL F 1
wait
Spawn3:
BASL G 1
wait
Spawn4:
BASL H 1
wait
Spawn5:
BASL I 1
wait
Spawn6:
BASL J 1
wait
Spawn7:
BASL K 1
wait
}
}

actor CometDashPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 A_ChangeFlag("SOLID",False)
TNT1 A 0 A_GiveInventory("CometDashTimer",25)
TNT1 A 0 A_PlaySoundEx("weapon/superboost","Weapon")
stop
}
}

actor CometDashEndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 A_SpawnItemEx("Resolidifier")
stop
}
}

actor CometDashHitBox
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
-NOBLOCKMAP
damagetype "BassCometDash"
Obituary "$OB_BASS6"
damage (45)
Radius 40
Height 40
Speed 0
scale 2.5
States
{
Spawn:
TNT1 A 1
stop
Death:
XDeath:
TNT1 A 0 
stop
}
}

actor CometDashProtect : PowerProtection
{
powerup.duration 20
damagefactor "BassCometDash", 0.0
}

actor BassRocketFishPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("CutterFlag",999)
TNT1 A 0 A_PlaySoundEx("weapon/adapterfire", "Weapon")
TNT1 A 0 A_FireCustomMissile("BassRocketFist",1,0,8,0)
stop
}
}

actor BassRocketFist
{
PROJECTILE
+SKYEXPLODE
+SEEKERMISSILE
+SCREENSEEKER
+DONTREFLECT
damagetype "BassRocketBuster"
Obituary "$OB_BASS7"
damage (30)
speed 40
Radius 10
Height 10
scale 2.5
reactiontime 35
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
BAPT A 1 A_SeekerMissile (2,10,SMF_LOOK,50,10) BAPT A 0 A_SpawnItemEx("BassFistFX") BAPT A 0 A_CountDown
BAPT A 1 A_SeekerMissile (2,10,SMF_LOOK,50,10) BAPT A 0 A_SpawnItemEx("BassFistFX2") BAPT A 0 A_CountDown
loop
Death:
TNT1 A 1 A_CustomMissile("BassFistReturn",0,0,0,0)
stop
}
}

actor BassFistFX : BasicClientSide
{
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CBUS G 1
stop
}
}

actor BassFistFX2 : BassFistFX
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 1
CBUS H 1
stop
}
}

actor BassFistReturn
{
PROJECTILE
+NOINTERACTION
+DONTREFLECT
damage (0)
speed 40
radius 0
height 0
scale 2.5
reactiontime 35
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
BAPT A 1 A_FaceTarget BAPT A 0 A_SpawnItemEx("BassFistFX") BAPT A 0 A_JumpIfCloser(64,"Death") BAPT A 0 A_CountDown
BAPT A 1 A_FaceTarget BAPT A 0 A_SpawnItemEx("BassFistFX2") BAPT A 0 A_JumpIfCloser(64,"Death") BAPT A 0 A_CountDown
TNT1 A 0 A_CustomMissile("BassFistReturn",0,0,0,0)
stop
Death:
TNT1 A 1 A_GiveToTarget("CutterFlag",70)
stop
}
}

actor DarkCometStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_PlaySoundEx("weapon/mirrorabsorb","Weapon")
stop
}
}

Actor DarkCometRise : BassVShot
{
+RIPPER
+DONTREFLECT
Obituary "$OB_BASS8"
DamageType "BassBusterVCUlt"
Damage (10)
ReactionTime 3
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 AA 1
BSB2 FFFGGGHHHEEE 1
BSB2 FFFGGGHHHEEE 1
BSB2 FFFGGGHHHEEE 1
Death:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadius")
stop
}
}

actor DarkCometDropRadius
{
PROJECTILE
+FLOORHUGGER
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
const int DRK_CMT_DEG = 18;
States
{
Spawn:
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  0)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  1))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  2)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  3))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  4)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  5))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  6)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  7))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  8)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG *  9))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 10)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 11))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 12)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 13))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 14)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 15))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 16)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 17))
TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 18)) TNT1 A 0 A_SpawnItemEx("DarkCometDropRadiusRange",0,0,0,0,0,0,(DRK_CMT_DEG * 19))
stop
}
}

actor DarkCometDropRadiusRange
{
PROJECTILE
+THRUACTORS
Damage(0)
Height 1
Radius 1
Speed 0
const int X_OFS = 160;
const int Z_OFS = -16;
const int Z_VEL = -25;
States
{
Spawn:
TNT1 A 1
TNT1 A 0 A_SpawnItemEx("DarkCometDrop",(X_OFS * 0),0,Z_OFS,0,0,Z_VEL)
TNT1 A 0 A_SpawnItemEx("DarkCometDrop",(X_OFS * 1),0,Z_OFS,0,0,Z_VEL)
TNT1 A 0 A_SpawnItemEx("DarkCometDrop",(X_OFS * 2),0,Z_OFS,0,0,Z_VEL)
TNT1 A 0 A_SpawnItemEx("DarkCometDrop",(X_OFS * 3),0,Z_OFS,0,0,Z_VEL)
TNT1 A 0 A_SpawnItemEx("DarkCometDrop",(X_OFS * 4),0,Z_OFS,0,0,Z_VEL)
Death:
TNT1 A 0
stop
}
}

actor DarkCometDrop
{
PROJECTILE
-NOBLOCKMAP
+RIPPER
+DONTBLAST
+DONTREFLECT
+THRUSPECIES
Species "DarkComet"
Obituary "$OB_BASS8"
DamageType "BassBusterVCUlt"
damage (6)
Radius 8
Height 16
Speed 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 2
Spawn2:
TNT1 A 0 A_GiveToTarget("SuperBassUltBuildCooldownGiver",1)
BSB2 LLMMNNKK 1 A_ChangeVelocity(0,0,-25,CVF_RELATIVE|CVF_REPLACE)
loop
Death:
TNT1 A 0 A_PlaySound("weapon/mm9explode2",0,0.4) 
TNT1 A 0 A_Explode(30,128,0,0,64)
BSB2 OPQRST 2 A_Quake(6,5,0,300)
stop
}
}

actor SuperBassUltBuildCooldownGiver : UltBuildCooldownGiver
{
	Powerup.Duration -1
}

actor DarkCometEndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,3)
TNT1 A 0 ACS_ExecuteAlways(991,0,46)
TNT1 A 0 A_GiveInventory("IsACopywep",1)
TNT1 A 0 A_GiveInventory("CanDoubleJump",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_SpawnItemEx("TrebleAdaptorExit")
TNT1 A 0 A_GiveInventory("GravityRestore",1)
TNT1 A 0 A_TakeInventory("BaseCustomFlag2",1)
TNT1 A 0 A_TakeInventory("HalfDamageProtection")
stop
}
}

actor DeadSuperBass
{
translation "192:192=62:62", "198:198=95:95"
+SOLID
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
Gravity 0.6
Damage (0)
height 0
radius 0
scale 2.5
const int EXPL_DEG = 36;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
2BAS QQQQ 1 A_CheckFloor("Split")
TNT1 A 0 A_SpawnItemEx("DrillExplode",random(-48, 48),0,random(-48, 48),0,0,0,random(0,359))
TNT1 A 0 A_PlaySoundEx("weapon/mm9explode2","SoundSlot5")
2BAS QQQQ 1 A_CheckFloor("Split")
TNT1 A 0 A_SpawnItemEx("DrillExplode",random(-48, 48),0,random(-48, 48),0,0,0,random(0,359))
TNT1 A 0 A_PlaySoundEx("weapon/mm9explode2","SoundSlot6") 
loop
Split:
TNT1 A 0 A_SpawnItemEx("DeadBass",0,0,32,Random(3,6),0,Random(3,6),Random(0,360))
TNT1 A 0 A_SpawnItemEx("DeadTreble",0,0,32,Random(3,6),0,Random(3,6),Random(0,360))
stop
}
}

actor DeadBass
{
translation "192:192=217:217", "198:198=95:95"
+SOLID
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
Damage (0)
height 0
radius 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
BASS H 2
Spawn2:
BASS HHH 1 A_CheckFloor("Defeated")
loop
Defeated:
BASS J 70
SelfDestruct:
TNT1 A 0 A_JumpIfInventory("CutterFlag",35,"Explode")
TNT1 AA 1 A_GiveInventory("CutterFlag",1)
BASS JJ 1 A_GiveInventory("CutterFlag",1)
loop
Explode:
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM9", 0, 0, 32)
stop
}
}

actor DeadTreble
{
Translation "192:192=211:211", "198:198=62:62"
+SOLID
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
Damage (0)
height 0
radius 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ThrustThingZ(0, 30, 0, 1)
2BAS R 2
Spawn2:
2BAS RRR 1 A_CheckFloor("Defeated")
loop
Defeated:
TBS0 B 70
SelfDestruct:
TNT1 A 0 A_JumpIfInventory("CutterFlag",35,"Explode")
TNT1 AA 1 A_GiveInventory("CutterFlag",1)
TBS0 BB 1 A_GiveInventory("CutterFlag",1)
loop
Explode:
TNT1 A 0 A_SpawnItemEx("FakeDeathFXMM9", 0, 0, 32)
stop
}
}

actor IsBass : VCOnce {}
actor IsSuperBass : IsBass {}
actor SuperBassTrigger : IsBass {}

actor CometDashTimer : Inventory
{
inventory.amount 1
inventory.maxamount 25
}

actor BassDashJumpBoost : Powerup 
{
powerup.duration 25
}

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

actor BassDashCoolDown : Inventory
{
inventory.amount 1
inventory.maxamount 70
}

actor BassBusterLimiter : Inventory
{
inventory.amount 1
inventory.maxamount 105
}

actor BassUltCharge : Ammo
{
inventory.amount 1
inventory.maxamount 700
+INVENTORY.IGNORESKILL
}

actor BassBusterStrengthWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 AA 0
TNT1 A 1
Spawn2:
TNT1 A 1 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PowerUltBuildCooldown",1,"Skip")
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"Spawn2B")
Skip:
TNT1 A 0 A_GiveToTarget("BassBusterLimiter",1)
Goto Spawn2
Spawn2B:
TNT1 A 0 A_TakeFromTarget("BassBusterLimiter",1)
Goto Spawn2
Death:
TNT1 AA 0 A_TakeFromTarget("VCOnce",1)
stop
}
}