actor RingBoomerangWep : MegaBuster 10058
{
Weapon.AmmoUse 1
Weapon.AmmoGive 112
Weapon.SlotNumber 4
Obituary "%k ran rings around %o with Ring Boomerangs."
Inventory.Pickupmessage "Power up! Ring Boomerang!"
weapon.ammotype "RingBoomerangAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
inventory.icon "RINGSI"
Scale 2.0
States
{
Spawn:
WEA2 H 1
loop
Ready:
RING E 0 ACS_ExecuteAlways(998,0,27)
RING E 1 A_WeaponReady
Goto Ready+1
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
RING E 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
RING E 1 A_Raise
Loop
Fire:
RING E 0 A_JumpIfNoAmmo("NoAmmo")
RING E 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
RING E 0 A_FireCustomMissile("RingBoomerang",0,1,8,0)
RING FG 4
RING E 15
RING E 0 A_Refire
Goto Ready+1
NoAmmo:
RING E 1 ACS_Execute(979,0)
Goto Ready+1
}
}

actor RingBoomerangAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
}

actor RingBoomerang
{
PROJECTILE
Radius 8
Height 8
scale 2.5
damage (0)
+RIPPER
damagetype "Ring"
+HEXENBOUNCE
+NOTARGETSWITCH
meleerange 12
damagetype "Ring"
speed 65
reactiontime 20
States
{
Spawn:
RING A 0
RING AA 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING BB 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING CC 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING DD 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING A 0 A_Stop
RING A 0 A_JumpIfInTargetInventory("CutterFlag",999,"Death")
RING A 0 A_JumpIfCloser(32,"Death")
RING A 2 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING B 0 A_JumpIfCloser(32,"Death")
RING BB 1 //A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING C 0 A_JumpIfCloser(32,"Death")
RING CC 1 //A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING D 0 A_JumpIfCloser(32,"Death")
RING DD 1 //A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING A 0 A_CustomMissile("ReturningRing",0,0,0,0)
stop
Death:
RING A 0
stop
}
}

actor ReturningRing : RingBoomerang
{
+NOINTERACTION
damagetype "Ring"
radius 0
height 0
States
{
Spawn:
RING A 0
RING A 0 A_JumpIfCloser(32,"Death")
RING AA 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING B 0 A_JumpIfCloser(32,"Death")
RING BB 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING C 0 A_JumpIfCloser(32,"Death")
RING CC 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING D 0 A_JumpIfCloser(32,"Death")
RING DD 1 A_SpawnItemEx("RingBoomerangDamager",0,0,0,2,0,0)
RING A 0 A_Stop
stop
}
}

actor RingBoomerangDamager
{
damagetype "Ring"
PROJECTILE
+RIPPER
damage (15)
radius 10
height 10
States
{
Spawn:
TNT1 A 2
stop
}
}