actor BoomerangRushWep_NormalBar : NormalBar{args 229, 41}
actor BoomerangRushWep : BaseMM8BDMWep
{
Weapon.AmmoUse 1
Weapon.AmmoGive 56
Weapon.SlotNumber 3
Inventory.Pickupmessage "$PU_BOOMERANGRUSH"
Obituary "$OB_BOOMERANGRUSH"
Tag "$TAG_BOOMERANGRUSH"
weapon.ammotype "BoomerangRushAmmo"
inventory.icon "BMRSICON"
States
{
SpawnLoop:
BMRS Z -1
loop
Ready:
BMRS A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_BOOMERANGRUSH)
BMRS A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
BMRS A 0 
goto DeselectSwap
Select:
BMRS A 0 
goto SelectSwap
Fire:
BMRS A 0 A_JumpIfNoAmmo("NoAmmo")
BMRS BF 1
BMRS G 0 A_PlaySound("weapon/boomerangrushdash","Item")
DashAttack:
BMRS A 0 A_JumpIfNoAmmo("DashEnd")
BMRS GG 2 A_SpawnItemEx("BoomerangRushFX",-2)
BMRS G 0 A_PlaySound("weapon/boomerangrushshot","Weapon")
BMRS G 0 A_GiveInventory("BoomerangRushSpeed",1)
BMRS G 0 A_FireCustomMissile("RushBoomerang",12,0,8,0)
BMRS G 0 A_FireCustomMissile("RushBoomerang",-12,1,8,0)
BMRS G 0 A_Refire("DashAttack")
DashEnd:
BMRS DEE 2
BMRS G 0 A_TakeInventory("BoomerangRushSpeed",1)
BMRS CBA 2
BMRS A 0 A_Refire
BMRS A 12
Goto Ready+1
NoAmmo:
BMRS A 1 ACS_NamedExecuteAlways("core_noammo",0)
BMRS A 0 A_Refire
Goto Ready+1
}
}

actor BoomerangRushAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor RushBoomerang : BasicProjectile
{
var int user_PierceRipper;
PROJECTILE
+RIPPER
Radius 10
Height 10
scale 1.5
damagetype "BoomerangRush"
obituary "$OB_BOOMERANGRUSH"
damage (CallACS("vile_cbm_damage",8))
speed 37
reactiontime 3
States
{
Spawn:
BRSH H 0
BRSH AABBCCDDAABB 1 A_Changevelocity(-3,0, 0, CVF_RELATIVE)
TNT1 A 0 A_GiveInventory("PierceRipperLimit", 1)
BRSH CCDDAABBCCDD 1 A_Changevelocity(-3,0, 0, CVF_RELATIVE)
stop
}
}


ACTOR BoomerangRushSpeed : PowerSpeed
{
  +POWERSPEED.NOTRAIL
  Powerup.Duration -3
  Speed 1.22
}

actor BoomerangRushFX : BasicGraphicEffect
{
var int user_TranslateWhiteColors;
translation "0:255=197:197"
scale 2.5
renderstyle translucent
alpha 0.9
States
{
SpawnFrame:
RBFX A 0
RBFX A 0 A_SetScale(scaleX - 0.1, scaleY - 0.1)
RBFX AAA 1 A_FadeOut(0.04)
RBFX B 0 A_SetScale(scaleX - 0.1, scaleY - 0.1)
RBFX BBB 1 A_FadeOut(0.04)
RBFX C 0 A_SetScale(scaleX - 0.1, scaleY - 0.1)
RBFX CCC 1 A_FadeOut(0.04)
loop
}
}