actor TopSpinBoss : MegaBuster 20039
{
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 1
Obituary "%o was twisted by %k's Top Spin."
weapon.ammotype "BusterAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
XTOP A 0 ACS_ExecuteAlways(998,0,26)
XTOP A 0 A_TakeInventory("SpinTime",1)
XTOP A 1 A_WeaponReady(WRF_NOSWITCH)
Goto Ready+2
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
XTOP A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
XTOP A 1 A_Raise
Loop
AltFire:
//XTOP F 0 A_JumpIfNoAmmo ("NoAmmo")
XTOP F 0 A_FireCustomMissile ("SpinTop",0,0,8,0)
XTOP F 0 A_FireCustomMissile ("SpinTop",15,0,8,0)
XTOP F 0 A_FireCustomMissile ("SpinTop",-15,0,8,0)
XTOP F 0 A_PlaySoundEx ("weapon/topspin","weapon")
XTOP GHIJKL 2
XTOP MF 2
XTOP A 10
Goto Ready+1
fire:
XTOP A 1 A_JumpIfInventory("SpinTime",1,"SpinEnd")
XTOP A 1 ACS_Execute(195,0)
XTOP A 1 A_PlaySoundEx("weapon/topspin","Weapon")
//XTOP A 1 A_JumpIfNoAmmo("NoAmmo")
XTOP A 1 A_JumpIf(momz==0, "NoAmmo")
XTOP A 1 A_TakeInventory("TopAmmo", 5)
Goto Spin
Spin:
XTOP A 0 A_GiveInventory("SpinTime",1)
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP B 1 A_JumpIf(z-floorz<=0, "Fire")
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP B 1 A_JumpIf(z-floorz<=0, "Fire")
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP C 1 A_JumpIf(z-floorz<=0, "Fire")
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP C 1 A_JumpIf(z-floorz<=0, "Fire")
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP D 1 A_JumpIf(z-floorz<=0, "Fire")
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP D 1 A_JumpIf(z-floorz<=0, "Fire")
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1 A_JumpIf(z-floorz<=0, "Fire")
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1 A_JumpIf(z-floorz<=0, "Fire")
TNT1 A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
TNT1 A 0 ACS_ExecuteAlways(990,0,1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
TNT1 A 1 A_JumpIf(z-floorz<=0, "Fire")
Goto Spin+33
SpinEnd:
XTOP A 0 A_TakeInventory("SpinTime",1)
XTOP A 1 ACS_Execute(979,0)
XTOP A 35
XTOP A 0 A_Refire
Goto Ready+1
NoAmmo:
XTOP A 0 A_Recoil(-60)
XTOP A 0 A_GiveInventory("SpinTime",1)
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP B 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP B 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP C 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP C 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP D 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP D 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1
XTOP A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
XTOP A 0 ACS_ExecuteAlways(990,0,1)
XTOP A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP E 1

TNT1 A 0 A_SpawnItemEx("TopManRadius",8,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
TNT1 A 0 ACS_ExecuteAlways(990,0,1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",999,"Ready")
XTOP A 0 A_TakeInventory("SpinTime",1)
XTOP A 1 ACS_Execute(979,0)
XTOP A 35
XTOP A 0 A_Refire
Goto Ready+1
}
}

actor Spintop
{
PROJECTILE
Radius 10
+DONTBLAST
Height 10
scale 2.5
damage (15)
speed 35
damagetype "TopThrow"
Obituary "%o was given a spinning by %k's Spinning Tops."
States
{
Spawn:
TOPX ABC 3
loop
}
}

actor TopManRadius : TopRadius
{
damagetype "TopSpinB"
States
{
Spawn:
TNT1 A 0
TOPS A 2 A_Explode(10,85,0)
stop
}
}