actor RingBoomerangBoss : BaseMM8BDMWep_CBM
{
dropitem "RingBoomerangWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.AmmoUse2 0
Weapon.AmmoGive2 0
Weapon.SlotNumber 4
Obituary "$OB_RINGBOOMERANG"
Inventory.Pickupmessage "Power up! Ring Thing Cometh!"
weapon.ammotype "RingBoomerangClassAmmo"
weapon.ammotype2 "RingBoomerangClassAmmo"
+WEAPON.NOAUTOFIRE
inventory.icon "RingIcon"
States
{
Spawn:
C_04 E 1
loop
Ready:
RINA A 0 ACS_ExecuteAlways(998,0,784)
RINA A 0 A_JumpIfInventory("Once",1,"Ready1")
RINA A 0 A_GiveInventory("RingFlag",1)
RINA A 0 A_GiveInventory("RingFlag2",1)
RINA A 0 A_GiveInventory("HasRing",1)
RINA A 0 A_GiveInventory("HasRing2",1)
TNT1 A 0 A_GiveInventory("Once",1)
Ready1:
RINA A 0 A_Gunflash
Ready2:
RINA A 0 A_GiveInventory("MissingRing",1)
RINA A 0 A_JumpIfInventory("MissingRing",40,"RingRefund")
RINA A 0 A_JumpIfInventory("HasRing",1,"Ready3")
RINA A 0 A_JumpIfInventory("RingFlag",1,"Ready4")
RINA K 0 A_JumpIfInventory("AltThrow",1,"Ready2a")
TNT1 A 1 A_WeaponReady
loop
Ready2a:
TNT1 A 1
goto Ready2
Ready3:
RINA K 0 A_JumpIfInventory("AltThrow",1,"Ready3a")
RINA K 1 A_WeaponReady
Goto Ready2
Ready3a:
RINA K 1
goto Ready2
Ready4:
RINA K 0 A_JumpIfInventory("AltThrow",1,"Ready4a")
RINA Q 1 A_WeaponReady
Goto Ready2
Ready4a:
RINA Q 1
goto Ready2
RingRefund:
RINA A 0 A_TakeInventory("MissingRing",999)
RINA A 0 A_GiveInventory("RingFlag",1)
RINA A 0 A_GiveInventory("HasRing",1)
Goto Ready2
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
TNT1 A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
TNT1 A 1 A_Raise
Loop
Fire:
RINA K 0 A_JumpIfInventory("AltThrow",1,"Ready2")
RINA A 0 A_JumpIfInventory("HasRing",1,"ThrowRing")
RINA G 0 A_GiveInventory("RingFlag",1)
Goto Ready2
ThrowRing:
RINA A 0 A_TakeInventory("RingFlag",1)
RINA A 0 A_TakeInventory("HasRing",1)
RINA A 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
RINA A 0 A_GiveInventory("RingmanMain1_CI",1)
RINA KLMNOP 1
TNT1 A 2
Goto Ready2
AltFire:
RINA K 0 A_JumpIfInventory("AltThrow",1,"Ready2")
RINA A 0 A_JumpIfInventory("HasRing2",1,"AltThrowRing")
RINA A 0 A_GiveInventory("RingFlag2",1)
Goto Ready2
AltThrowRing:
TNT1 A 0 A_GiveInventory("AltThrow",1)
Goto Ready2
Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
RINA K 0 A_JumpIfInventory("AltThrow",1,"LeftThrow")
RINA A 0 A_GiveInventory("MissingRing2",1)
RINA A 0 A_JumpIfInventory("MissingRing2",40,"RingRefund2")
RINA K 0 A_JumpIfInventory("HasRing2",1,"LeftHold")
RINA K 0 A_JumpIfInventory("RingFlag2",1,"LeftCall")
TNT1 A 1
loop
LeftThrow:
RINA A 0 A_TakeInventory("RingFlag2",1)
RINA A 0 A_TakeInventory("HasRing2",1)
RINA A 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
RINA A 0 A_GiveInventory("RingmanMain2_CI",1)
RINA ABCDEF 1
TNT1 A 2
RINA A 0 A_TakeInventory("AltThrow",1)
goto Flash
LeftHold:
RINA A 1
goto Flash
LeftCall:
RINA G 1
goto Flash
RingRefund2:
RINA A 0 A_TakeInventory("MissingRing2",999)
RINA A 0 A_GiveInventory("RingFlag2",1)
RINA A 0 A_GiveInventory("HasRing2",1)
Goto Flash
NoAmmo:
RINA A 1
Goto Ready+2
}
}

actor RingBoomerangerBoss : BaseMM8BDMWep_CBM
{
dropitem "RingBoomerangWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.AmmoUse2 0
Weapon.AmmoGive2 0
Weapon.SlotNumber 5
Obituary "$OB_RINGBOOMERANG"
Inventory.Pickupmessage "Power up! Ring Thing Cometh 2.0!"
weapon.ammotype "RingBoomerangClassAmmo"
weapon.ammotype2 "RingBoomerangClassAmmo"
inventory.icon "RINGSI"
states
{
Spawn:
C_04 E 1
loop

Ready:
RINB A 0 ACS_ExecuteAlways(998,0,784)
RINB A 0 A_JumpIfInventory("Once",1,"Ready1")
RINB A 0 A_GiveInventory("RingFlag",1)
RINB A 0 A_GiveInventory("RingFlag2",1)
RINB A 0 A_GiveInventory("HasRing",1)
RINB A 0 A_GiveInventory("HasRing2",1)
TNT1 A 0 A_GiveInventory("Once",1)
Ready1:
RINB A 0 A_GiveInventory("RingFlag",1)
RINB A 0 A_GiveInventory("RingFlag2",1)
RINB A 0 A_Gunflash
goto Ready2
Ready2:
RINB A 0 A_GiveInventory("MissingRing",1)
RINB A 0 A_JumpIfInventory("MissingRing",40,"RingRefund")
RINB A 0 A_JumpIfInventory("HasRing",1,"Ready3")
RINB A 0 A_JumpIfInventory("RingFlag",1,"Ready4")
RINB K 0 A_JumpIfInventory("AltThrow",1,"Ready2a")
TNT1 A 1 A_WeaponReady
loop
Ready2a:
TNT1 A 1
goto Ready2
Ready3:
RINB K 0 A_JumpIfInventory("AltThrow",1,"Ready3a")
RINB K 1 A_WeaponReady
Goto Ready2
Ready3a:
RINB K 1
goto Ready2
Ready4:
RINB K 0 A_JumpIfInventory("AltThrow",1,"Ready4a")
RINB Q 1 A_WeaponReady
Goto Ready2
Ready4a:
RINB Q 1
goto Ready2
RingRefund:
RINB A 0 A_TakeInventory("MissingRing",999)
RINB A 0 A_GiveInventory("RingFlag",1)
RINB A 0 A_GiveInventory("HasRing",1)
Goto Ready2

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
TNT1 A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
TNT1 A 1 A_Raise
Loop

Fire:
RINB K 0 A_JumpIfInventory("AltThrow",1,"Ready2")
RINB A 0 A_JumpIfInventory("HasRing",1,"ThrowRing")
RINB G 0 A_GiveInventory("RingFlag",1)
Goto Ready2
ThrowRing:
RINB A 0 A_TakeInventory("RingFlag",1)
RINB A 0 A_TakeInventory("HasRing",1)
RINB A 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
RINB A 0 A_GiveInventory("RingmanMain1_CI",1)
RINB KLMNOP 1
TNT1 A 2
RINB A 0 A_GiveInventory("RingFlag",1)
Goto Ready2

AltFire:
RINB K 0 A_JumpIfInventory("AltThrow",1,"Ready2")
RINB A 0 A_JumpIfInventory("HasRing2",1,"AltThrowRing")
RINB A 0 A_GiveInventory("RingFlag2",1)
Goto Ready2
AltThrowRing:
TNT1 A 0 A_GiveInventory("AltThrow",1)
Goto Ready2
Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
RINB K 0 A_JumpIfInventory("AltThrow",1,"LeftThrow")
RINB A 0 A_GiveInventory("MissingRing2",1)
RINB A 0 A_JumpIfInventory("MissingRing2",40,"RingRefund2")
RINB K 0 A_JumpIfInventory("HasRing2",1,"LeftHold")
RINB K 0 A_JumpIfInventory("RingFlag2",1,"LeftCall")
TNT1 A 1
loop
LeftThrow:
RINB A 0 A_TakeInventory("RingFlag2",1)
RINB A 0 A_TakeInventory("HasRing2",1)
RINB A 0 A_PlaySoundEx("weapon/ringboomerang","Weapon")
RINB A 0 A_GiveInventory("RingmanMain2_CI",1)
RINB ABCDEF 1
TNT1 A 2
RINB A 0 A_TakeInventory("AltThrow",1)
RINB A 0 A_GiveInventory("RingFlag2",1)
goto Flash
LeftHold:
RINB A 1
goto Flash
LeftCall:
RINB G 1
goto Flash
RingRefund2:
RINB A 0 A_TakeInventory("MissingRing2",999)
RINB A 0 A_GiveInventory("RingFlag2",1)
RINB A 0 A_GiveInventory("HasRing2",1)
Goto Flash

Altfire:
Fire:
RINB K 0 A_JumpIfInventory("AltThrow",1,"Ready2")
RINB A 0 A_JumpIfInventory("HasRing",1,"ThrowRing")
//RINA G 0 A_GiveInventory("RingFlag",1)
RINB A 0 A_JumpIfInventory("HasRing2",1,"AltThrowRing")
//RINA A 0 A_GiveInventory("RingFlag2",1)
Goto Ready2

NoAmmo:
RINB A 1
Goto Ready+2
}
}

actor RingBoomerangClassAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 2
+INVENTORY.IGNORESKILL
}

actor RingManFlag : OnceC{}

actor RingFlag : OnceC{}

actor RingFlag2 : OnceC{}

actor HasRing : OnceC{}

actor HasRing2 : OnceC{}

actor AltThrow : OnceC{}

actor MissingRing : Inventory
{
inventory.amount 1
inventory.maxamount 100
}

actor MissingRing2 : Inventory
{
inventory.amount 1
inventory.maxamount 100
}

actor RingDisappearFlag : OnceC{}

actor RingReturnFlag : OnceC{}

actor RingLowFlag : OnceC{}

actor IsRing2Flag : OnceC{}


actor RingBoomerangB
{
var int user_POWER;
Translation "192:192=229:229"
PROJECTILE
damagetype "RingBoomerang"
Obituary "$OB_RINGBOOMERANG"
+RIPPER
+HEXENBOUNCE
+NOTARGETSWITCH
+CANBOUNCEWATER
ReactionTime 1
damage (3+user_POWER*13)//15
Radius 12
Height 12
speed 65
scale 2.5
states
{

Spawn:
RINA W 0
RINA WWXXYYZZ 1
RINA W 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"SuperDeath")
goto Spawn2
Spawn2:
RINA W 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA W 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA W 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA W 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
TNT1 A 0 A_SpawnItemEx("RangeGleam",0,0,16)
TNT1 A 0 A_SetUserVar("user_POWER",1)
goto Spawn3
Spawn3:
RINA X 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA X 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA X 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA X 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA Y 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA Y 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA Y 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA Y 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA Z 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA Z 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA Z 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA Z 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA W 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA W 1 A_JumpIfInventory("RingReturnFlag",1,"Return")
RINA W 0 A_GiveInventory("RingBoomerangBFuncB",1)
RINA W 1 A_JumpIfInventory("RingReturnFlag",1,"Return")

RINA W 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"SuperDeath")
loop

Return:
RINA W 0 A_GiveInventory("ResyncPickup",1)
RINA W 0 A_Stop
RINA W 0 A_ChangeFlag("RIPPER",0)
RINA WWXXYYZZ 1 A_GiveInventory("ResyncPickup",1)
RINA W 1 A_CountDown
wait

Death:
RINA W 0 A_JumpIfInventory("IsRing2Flag",1,"Death3")
RINA W 0 A_JumpIf(user_POWER,"Death2")
RINA W 0 A_SpawnItemEx("ReturningRingBLow",0,0,0,0,0,0,0,1)
stop
Death2:
RINA W 0 A_SpawnItemEx("ReturningRingB",0,0,0,0,0,0,0,1)
stop
Death3:
RINA W 0 A_JumpIf(user_POWER,"Death4")
RINA W 0 A_SpawnItemEx("ReturningRingBLow2",0,0,0,0,0,0,0,1)
stop
Death4:
RINA W 0 A_SpawnItemEx("ReturningRingB2",0,0,0,0,0,0,0,1)
stop

SuperDeathX:
TNT1 A 0 A_JumpIfInventory("IsRing2Flag",1,"SuperDeath2")
TNT1 A 0 A_GiveToTarget("RingFlag",1)
stop
SuperDeathX2:
TNT1 A 0 A_GiveToTarget("RingFlag2",1)
stop

SuperDeath:
TNT1 A 0
stop
}
}

actor RingBoomerangBB : RingBoomerangB{translation "192:192=205:205"}
actor RingBoomerangBR : RingBoomerangB{translation "192:192=171:171"}
actor RingBoomerangBO : RingBoomerangB{translation "192:192=104:104"}
actor RingBoomerangBP : RingBoomerangB{translation "192:192=229:229"}


actor ReturningRingB : RingBoomerangB
{
+SEEKERMISSILE
+NOINTERACTION
damage (0)
ReactionTime 15
States
{
Spawn:
RINA W 0
RINA W 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_TARGET)//Target >> Tracer
goto Spawn2
Spawn2:
RINA W 0 A_JumpIfCloser(60,"Death")
RINA WWW 0 A_SeekerMissile(90,90,SMF_PRECISE)
RINA W 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_JumpIfCloser(60,"Death")
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerB",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA W 0 A_Stop
RINA W 0 A_JumpIfCloser(60,"Death")
RINA W 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA W 0 A_GiveInventory("ResyncPickup",1)
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_JumpIfCloser(60,"Death")
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerB2",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_CountDown
RINA W 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop

Spawn3:
RINA W 0 A_JumpIfCloser(60,"Death")
RINA WWW 0 A_SeekerMissile(90,90,SMF_PRECISE)
RINA W 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_JumpIfCloser(60,"Death")
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_Stop
RINA W 0 A_JumpIfCloser(60,"Death")
RINA W 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA W 0 A_GiveInventory("ResyncPickup",1)
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_JumpIfCloser(60,"Death")
RINA W 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA X 0 A_JumpIfCloser(60,"Death")
RINA X 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 0 A_GiveInventory("RingBoomerangBFunc",1)
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Y 0 A_JumpIfCloser(60,"Death")
RINA Y 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA Z 0 A_JumpIfCloser(60,"Death")
RINA Z 1 A_SpawnItemEx("RingBoomerangDamagerBLow",0,0,0,momx,momy,momz,0,8)
RINA W 0 A_CountDown
RINA W 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop
Death:
TNT1 A 0 A_GiveToTarget("HasRing",1)
TNT1 A 1 A_PlaySoundEx("weapon/CutterCatch","Weapon")
stop
}
}

actor ReturningRingBLow : ReturningRingB
{
states
{
Spawn:
RINA W 0
RINA W 0 A_GiveInventory("RingLowFlag",1)
RINA W 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_TARGET)
goto Spawn3
}
}



actor RingBoomerangB2 : RingBoomerangB
{
states
{
Spawn:
RINA W 0
RINA W 0 A_GiveInventory("IsRing2Flag",1)
goto RingBoomerangB::Spawn
}
}

actor RingBoomerangB2B : RingBoomerangB2{translation "192:192=205:205"}
actor RingBoomerangB2R : RingBoomerangB2{translation "192:192=171:171"}
actor RingBoomerangB2O : RingBoomerangB2{translation "192:192=104:104"}
actor RingBoomerangB2P : RingBoomerangB2{translation "192:192=229:229"}

actor ReturningRingB2 : ReturningRingB
{
states
{
Spawn:
RINA W 0
RINA W 0 A_GiveInventory("IsRing2Flag",1)
goto ReturningRingB::Spawn
Death:
TNT1 A 0 A_GiveToTarget("HasRing2",1)
TNT1 A 1 A_PlaySoundEx("weapon/CutterCatch","Weapon")
stop
}
}

actor ReturningRingBLow2 : ReturningRingBLow
{
states
{
Spawn:
RINA W 0
RINA W 0 A_GiveInventory("IsRing2Flag",1)
goto ReturningRingBLow::Spawn
Death:
TNT1 A 0 A_GiveToTarget("HasRing2",1)
TNT1 A 1 A_PlaySoundEx("weapon/CutterCatch","Weapon")
stop
}
}

actor RingBoomerangBFunc : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsRing2Flag",1,"Pickup2")
TNT1 A 0 A_TakeFromTarget("MissingRing",999)
stop
Pickup2:
TNT1 A 0 A_TakeFromTarget("MissingRing2",999)
stop
}
}

actor RingBoomerangBFuncB : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("RingBoomerangBFunc",1)
TNT1 A 0 A_JumpIfInventory("IsRing2Flag",1,"Pickup2")
TNT1 A 0 A_JumpIf(momx*momx+momy*momy+momz*momz<22,"ForceReturn")
TNT1 A 0 A_JumpIfInTargetInventory("RingFlag",1,"Return")
stop
ForceReturn:
TNT1 A 0 A_GiveToTarget("RingFlag",1)
Return:
TNT1 A 0 A_GiveInventory("RingReturnFlag",1)
stop
Pickup2:
TNT1 A 0 A_JumpIf(momx*momx+momy*momy+momz*momz<22,"ForceReturn2")
TNT1 A 0 A_JumpIfInTargetInventory("RingFlag2",1,"Return")
stop
ForceReturn2:
TNT1 A 0 A_GiveToTarget("RingFlag2",1)
goto Return
}
}

actor RingBoomerangDamagerB
{
PROJECTILE
damagetype "RingBoomerang"
Obituary "$OB_RINGBOOMERANG"
+DONTBLAST
damage (16)
radius 12
height 12
States
{
Spawn:
TNT1 A 2
stop
}
}

actor RingBoomerangDamagerB2 : RingBoomerangDamagerB
{
damage (5)
}

actor RingBoomerangDamagerBLow : RingBoomerangDamagerB
{
damage (3)
}

actor RangeGleam : BasicClientSide
{
Renderstyle "Normal"
Alpha 1.0
States
{
Spawn:
FLAS CBABC 2 bright
stop
}
}


actor RingmanMain1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("RingBoomerangB",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("RingBoomerangBB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("RingBoomerangBR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("RingBoomerangBO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("RingBoomerangBP",0,1,8,0)
goto Done
}
}

actor RingmanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("RingBoomerangB2",0,1,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("RingBoomerangB2B",0,1,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("RingBoomerangB2R",0,1,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("RingBoomerangB2O",0,1,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("RingBoomerangB2P",0,1,-8,0)
goto Done
}
}