actor GyroAttackBoss : MegaBuster 
{
Weapon.AmmoUse 0
Weapon.AmmoGive 56
Weapon.SlotNumber 1
Obituary "%o was chopped by %k's Gyro Attack."
weapon.ammotype "GyroFly"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
GYAR A 0 ACS_ExecuteAlways(998,0,44)
goto Ready2
Ready2:
GYAR A 0 A_JumpIfInventory("GyroTrigger2", 1, "Ready3")
GYAR A 0 A_JumpIfInventory("GyroFly", 1, "Ready2HasAmmo")
GYAR A 7 A_WeaponReady(WRF_NOSWITCH|WRF_NOSECONDARY)
GYAR A 0 A_GiveInventory("GyroFly",1)
Goto Ready2
Ready2HasAmmo:
GYAR A 7 A_WeaponReady(WRF_NOSWITCH)
GYAR A 0 A_GiveInventory("GyroFly",1)
Goto Ready2
Ready3:
GYAR A 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOSECONDARY)
Goto Ready2
Deselect:
GYAR A 1 SetPlayerProperty(0, 0, 3)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
GYAR A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
GYAR A 1 A_Raise
Loop
Fire:
//WOOD I 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
GYAR A 1 SetPlayerProperty(0, 0, 3)
GYAR A 0 A_FireCustomMissile("GyroAttackClass",0,0,8,0)
GYAR BCD 2
GYAR EFG 2
//GYAR HI 2
GYAR A 15
GYAR A 0 A_JumpIfInventory("GyroTrigger2", 1, 2)
GYAR A 0 A_GiveInventory("GyroFly",1)
GYAR A 0 A_Refire
Goto Ready2
Altfire:
GYAR A 0 A_GiveInventory("GyroTrigger",1)
GYAR A 0 A_GiveInventory("GyroTrigger2",1)
GYAR A 1 A_JumpIfInventory("GyroFly", 1, "Fly")
goto Fall
Fly:
TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,2)
GYAR A 0 SetPlayerProperty(0, 1, 3)
GYAR A 5 A_TakeInventory("GyroFly",1)
GYAR A 0 A_ReFire
//GYAR A 1 A_WeaponReady
Goto Fall
Fall:
GYAR A 0 SetPlayerProperty(0, 0, 3)
GYAR A 0 A_TakeInventory("GyroTrigger",999)
GYAR A 0 A_GunFlash
goto Ready2
Flash:
TNT1 A 1 A_JumpIf(z-floorz==0, "CanFlyAgain")
TNT1 A 0 A_JumpIf(momz==0, "momzverify")
loop
momzverify:
TNT1 A 1 A_JumpIf(z-floorz==0, "CanFlyAgain")
TNT1 A 0 A_JumpIf(momz==0, "CanFlyAgain")
goto Flash
CanFlyAgain:
TNT1 A 1 A_TakeInventory("GyroTrigger2",999)
stop
NoFlash:
TNT1 A 0
stop
}
}

actor GyroFly : Ammo
{
inventory.amount 1
inventory.maxamount 56
}

actor GyroAttackClass
{
PROJECTILE
Radius 15
Height 8
scale 2.5
damage (30)
speed 40
damagetype "Gyro"
States
{
Spawn:
GYCS A 0
GYCS A 0 A_PlaySoundEx("weapon/gyroattack","Auto")
GYCS A 2
GYCS B 2
loop
Death:
GYRO A 0 A_CustomMissile("GyroAttackClass2",1,0,0,2,0)
GYRO A 0 A_CustomMissile("GyroAttackClass2",-1,0,0,2,0)
stop
XDeath:
GYRO A 0
stop
}
}

actor GyroAttackClass2 : GyroAttackClass
{
States
{
Death:
goto XDeath
}
}

actor GyroTrigger : Ammo
{
inventory.amount 1
inventory.maxamount 1
}

actor GyroTrigger2 : Ammo
{
inventory.amount 1
inventory.maxamount 1
}