actor SakugarneBoss : MegaBuster
{
Weapon.AmmoUse 1
Weapon.AmmoGive 28
Weapon.SlotNumber 6
Obituary "%o was destroyed by %k's Sakugarne."
Inventory.Pickupmessage "Power up! Sakugarne!"
weapon.ammotype "BusterAmmo"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
WEA2 Z 1
loop
Ready:
SAKH A 0 ACS_ExecuteAlways(998,0,45)
SAKH A 1 A_WeaponReady
Goto Fire+1
Deselect:
TNT1 A 0 A_SelectWeapon("QuintBusterBoss")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
TNT1 A 1 A_Lower
Loop
Select:
SAKH A 0 A_TakeInventory("SakugarneActive",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SAKH A 1 A_Raise
Loop
Fire:
SAKH A 0 A_JumpIfInventory("SakugarneActive",1,"AirReady")
SAKH A 0 A_JumpIfInventory("RushJetCounter",1,"NoAmmo")
SAKH A 0 A_JumpIfInventory("BeatCounter",1,"NoAmmo")
SAKH A 0 A_JumpIf(z-floorz>0, "NoAmmo")
SAKH A 0 A_GiveInventory("SakugarneActive",1)
SAKH A 0 A_Stop
SAKH A 0 A_PlaySoundEx("weapon/sakugarne","Weapon")
SAKH AAAABBBB 1 A_SpawnItemEx("Sakugarne1",8,0,-52)
SAKH A 0 ThrustThingZ(0,60,0,0)
SAKH CCCCCCCCCCCCCC 1 A_SpawnItemEx("Sakugarne2",8,0,-52)
Goto Air
Air:
SAKH C 0 A_JumpIf(z-floorz==0, "Jump")
SAKH C 0 A_SpawnItemEx("Sakugarne2",8,0,-52)
SAKH C 0 A_SpawnItemEx("SakugarneCrush",0,0,-10,0,0,-32)
SAKH C 1 A_WeaponReady
SAKH A 0 A_JumpIfInventory("RockCheck",1,"RockSpread")
loop
AirReady:
SAKH C 0 A_SpawnItemEx("SakugarneCrush",0,0,-10,0,0,-32)
SAKH C 0 A_SpawnItemEx("Sakugarne2",8,0,-52)
SAKH C 1 A_JumpIf(z-floorz==0, "Jump2")
SAKH A 0 A_JumpIfInventory("RockCheck",1,"RockSpread")
loop
Jump:
SAKH A 0 A_SpawnItemEx("SakugarneDriller",0,0,0)
SAKH A 0 A_JumpIfInventory("RockDiagonal",1,7)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,0)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,90)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,180)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,270)
SAKH C 0 A_GiveInventory("RockDiagonal",1)
SAKH A 0 A_Jump(256,6)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,45)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,135)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,225)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,315)
SAKH C 0 A_TakeInventory("RockDiagonal",1)
SAKH A 0 A_PlaySoundEx("weapon/sakugarne","Weapon")
SAKH A 0 A_Stop
SAKH AAAA 1 A_SpawnItemEx("Sakugarne1",6,0,-32)
SAKH A 0 A_Stop
SAKH BBBB 1 A_SpawnItemEx("Sakugarne1",6,0,-32)
SAKH A 0 A_JumpIfInventory("QuintDive",1,"JumpTake")
SAKH A 0 A_Recoil(-20)
SAKH A 0 ThrustThingZ(0,60,0,0)
SAKH CCCCCCCCCCCCCC 1 A_SpawnItemEx("Sakugarne2",6,0,-52)
Goto Air
JumpTake:
SAKH B 0 A_TakeInventory("QuintDive",1)
SAKH A 0 A_Stop
SAKH BA 1 A_SpawnItemEx("Sakugarne1",6,0,-32)
goto Jump+1
Jump2:
SAKH A 0 A_SpawnItemEx("SakugarneDriller",0,0,0)
SAKH A 0 A_JumpIfInventory("RockDiagonal",1,7)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,0)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,90)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,180)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,270)
SAKH C 0 A_GiveInventory("RockDiagonal",1)
SAKH A 0 A_Jump(256,6)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,45)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,135)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,225)
SAKH B 0 A_SpawnItemEx("SakuRock",3,0,0,12,0,7,315)
SAKH C 0 A_TakeInventory("RockDiagonal",1)
SAKH A 0 A_PlaySoundEx("weapon/sakugarne","Weapon")
SAKH A 0 A_Stop
SAKH AAA 1 A_SpawnItemEx("Sakugarne1",6,0,-32)
SAKH A 0 A_Stop
SAKH BBB 1 A_SpawnItemEx("Sakugarne1",6,0,-32)
SAKH A 0 A_JumpIfInventory("QuintDive",1,"JumpTake2")
SAKH A 0 A_Recoil(-10)
SAKH A 0 ThrustThingZ(0,80,0,0)
SAKH CCCCCCCCCCCCCC 1 A_SpawnItemEx("Sakugarne2",6,0,-52)
Goto Air
JumpTake2:
SAKH A 0 A_TakeInventory("QuintDive",1)
SAKH A 0 A_Stop
SAKH BA 1 A_SpawnItemEx("Sakugarne1",6,0,-32)
goto Jump2+1
Hold:
SAKH A 1
SAKH A 0 A_Refire
Goto Ready+1
NoAmmo:
SAKH A 0 A_TakeInventory("SakugarneActive",1)
SAKH A 1 ACS_Execute(979,0)
SAKH A 0 A_Refire
goto Ready+1
Altfire:
SAKH C 1 A_GiveInventory("RockCheck",1)
Rockspread:
SAKH A 0 A_Stop
SAKH C 1 ThrustThingZ(0,-200,0,0)
SAKH C 0 A_GiveInventory("QuintDive",1)
SAKH A 0 A_TakeInventory("RockCheck",1)
goto Air
}
}

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

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

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

actor SakuRock
{
PROJECTILE
-NOGRAVITY
Damage (12)
Height 12
Radius 12
scale 2.5
Speed 20
damagetype "SakuDrill"
States
{
Spawn:
POWS A 1
loop
}
}

actor QuintBusterBoss : Megabuster
{
Weapon.AmmoUse 1
Weapon.AmmoGive 3
Weapon.SlotNumber 1
scale 2.0
Obituary "%o was bombed by %k's Quint Buster."
Inventory.Pickupmessage "You Lose! Good day sir!"
weapon.ammotype "BusterAmmo"
+WEAPON.AMMO_OPTIONAL
+WEAPON.DONTBOB
States
{
Spawn:
WEA2 Q 1
stop
Ready:
QBUS B 0 ACS_ExecuteAlways(998,0,45)
QBUS B 1 A_WeaponReady
Goto Ready+1
Deselect:
TNT1 A 0 A_SelectWeapon("SakugarneBoss")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
TNT1 A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
QBUS B 1 A_Raise
Loop
Fire:
QBUS B 0 A_JumpIfNoAmmo("NoAmmo")
QBUS B 0 A_PlaySoundEx("weapon/mbuster","Weapon")
QBUS B 0 A_FireCustomMissile("QShot",random(3,-3),0,8,0)
QBUS CD 3
QBUS B 2
QBUS B 0 A_Refire
goto Ready+1
NoAmmo:
QBUS B 1
Goto Ready
}
}

Actor QShot : MegaShot
{
speed 32
}