actor BassBusterC : Weapon
{
Weapon.AmmoUse 1
Weapon.AmmoGive 3
Weapon.SlotNumber 1
scale 2.0
Obituary "%o was bombed by %k's Bass Buster."
Inventory.Pickupmessage "You got the Bass Buster!"
weapon.ammotype "BusterAmmo"
+WEAPON.AMMO_OPTIONAL
+WEAPON.DONTBOB
States
{
Spawn:
TNT1 A 0
stop
Ready:
BASB B 0 A_JumpIfInventory("Once",1,"Ready2")
BUST B 0 ACS_ExecuteAlways(981,0,0)
BASB B 0 A_GiveInventory("Once",1)
Goto Ready2
Ready2:
BASB B 0 ACS_ExecuteAlways(998,0,46)
NEDR A 0 A_GiveInventory("AdapterFlag")
BASB B 1 A_WeaponReady
Goto Ready2+2
Deselect:
BASB B 0 //A_TakeInventory("Once",1)
NEDR A 0 A_TakeInventory("BassDash",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
BASB B 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
TNT1 A 0 SetPlayerProperty(0,0,3)
BASB B 1 A_Raise
Loop
Fire:
NEDR A 0 A_TakeInventory("BassDash",1)
BASB B 0 //SetPlayerProperty(0,1,0)
BASB B 0 A_PlaySoundEx("weapon/mbuster","Weapon")
BASB B 0 A_FireCustomMissile("BassShot2",random(-4,4),0,8,0)
BASB CCD 1
BASB B 1
BASB B 0 A_Refire
BASB B 0 //SetPlayerProperty(0,0,0)
goto Ready2+2
Hold:
Goto Fire
Altfire:
BASB B 0 A_JumpIf(z-floorz==0,"SlideSlide") //A_JumpIf(momz==0, "SlideSlide")
goto Ready2+2
SlideSlide:
NEDR A 0 A_GiveInventory("BassDash",1)
MKIC C 0 A_JumpIfNoAmmo("NoAmmo")
MKIC C 0 A_PlaySoundEx("weapon/chargekick","Weapon")
MKIC C 0 SetPlayerProperty(0,1,0)
BASD B 0 //ACS_ExecuteAlways(191,0,5)
BASD B 2 A_Recoil(-25)
BASD C 8 //SetPlayerProperty(0,0,0)
BASD C 5 SetPlayerProperty(0,0,0)
BASD C 5 //ACS_ExecuteAlways(191,0,0)
NEDR A 0 A_TakeInventory("BassDash",1)
MKIC C 0 A_Refire
BASD B 5
MKIC C 0
goto Ready2+2
NoAmmo:
BASB B 1 ACS_Execute(979,0)
Goto Ready2+2
NoFlash:
TNT1 A 0
stop
}
}


actor BassDash : Inventory
{
inventory.amount 1
inventory.maxamount 2
}

actor BassShot2 : BassShot
{
damage (5)
speed 70
}

actor Jump : Inventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 0
stop
}
}
//)
actor Jumper
{
-SOLID
+NOGRAVITY
+NOBLOCKMAP
Height 0
Radius 0
scale 2.5
+NOINTERACTION
States
{
Spawn:
TNT1 A 1 A_JumpIfInTargetInventory("CutterFlag",998,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("Jump",1,"Boost")
TNT1 A 1 A_JumpIfInTargetInventory("AdapterFlag",1,"Spawn")
stop
Boost:
TNT1 A 0 A_TakeFromTarget("Jump",1)
//TNT1 AAAAAAAAA 2 A_GiveToTarget("BoostGive",1)
Goto BoostLoop1
BoostLoop1:
TNT1 A 1 A_GiveToTarget("JumpGive",1)
TNT1 A 1 A_GiveToTarget("NoJump",1)
TNT1 A 0 A_JumpIfInTargetInventory("AdapterFlag",1,"BoostLoop2")
stop
BoostLoop2:
TNT1 A 0 A_GiveInventory("JumpCount",1)
TNT1 A 0 A_JumpIfInventory("JumpCount",34,"BoostEnd")
TNT1 A 1 A_TakeFromTarget("NoJump",999)
TNT1 A 0 A_JumpIfInventory("JumpCount",9,"BoostLoop2")
TNT1 A 0 A_JumpIfInTargetInventory("AdapterFlag",1,"BoostLoop2")
stop
BoostEnd:
TNT1 A 0// A_Print("BoostEnd")
TNT1 A 7 A_TakeInventory("JumpCount",999)
TNT1 A 1 A_TakeFromTarget("NoJump",999)
TNT1 A 0 A_TakeFromTarget("Jump",1)
Goto Spawn
Death:
TNT1 A 0
stop
}
}

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


actor JumpCount : Inventory
{
inventory.amount 1
inventory.maxamount 30
}


actor JumpGive : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 0
stop
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("NoJump",1,2)
TNT1 A 0 ThrustThingZ(0,40,0,0)
TNT1 A 0
stop
}
}


actor Jumping : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
-INVBAR
States
{
Spawn:
TNT1 A 1
//loop
Use:
TNT1 A 0 A_SpawnItemEx("JumpMan")
TNT1 A 1
//fail
stop
}
}


actor JumpMan
{
-SOLID
+NOGRAVITY
+MISSILE
+NOBLOCKMAP
Height 0
Radius 0
scale 2.5
+NOINTERACTION
States
{
Spawn:
TNT1 A 0 A_JumpIfInTargetInventory("Jump",1,"Boost")
Goto Boost
Boost:
TNT1 A 0 A_TakeFromTarget("Jump",1)
//TNT1 AAAAAAAAA 2 A_GiveToTarget("BoostGive",1)
Goto BoostLoop1
BoostLoop1:
TNT1 A 1 A_GiveToTarget("JumpGive",1)
TNT1 A 1 A_GiveToTarget("NoJump",1)
TNT1 A 0 A_JumpIfInTargetInventory("AdapterFlag",1,"BoostLoop2")
stop
BoostLoop2:
TNT1 A 0 A_GiveInventory("JumpCount",1)
TNT1 A 0 A_JumpIfInventory("JumpCount",34,"BoostEnd")
TNT1 A 1 //A_TakeFromTarget("NoJump",999)
TNT1 A 0 A_JumpIfInventory("JumpCount",9,"BoostLoop2")
TNT1 A 0 A_JumpIfInTargetInventory("AdapterFlag",1,"BoostLoop2")
stop
BoostEnd:
TNT1 A 0// A_Print("BoostEnd")
TNT1 A 7 A_TakeInventory("JumpCount",999)
TNT1 A 1 //A_TakeFromTarget("NoJump",999)
TNT1 A 1 A_TakeFromTarget("Jumping",1)
TNT1 A 0 A_TakeFromTarget("Jump",1)
stop
Death:
TNT1 A 0
stop
}
}