actor LimoBoogieWep_NormalBar : NormalBar{args 250, 44}
actor LimoBoogieWep : BaseMM8BDMWep
{
Weapon.AmmoUse 5
Weapon.AmmoGive 30
Weapon.SlotNumber 4
Inventory.Pickupmessage "$PU_LIMOBOOGIE"
Obituary "$OB_LIMOBOOGIE"
weapon.ammotype "LimoBoogieAmmo"
Tag "$TAG_LIMOBOOGIE"
inventory.icon "LBGIICON"
States
{
SpawnLoop:
LBGI Z -1
loop
Ready:
LBGI A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_LIMOBOOGIE)
LBGI A 0 A_TakeInventory("WeaponCharge", 9999)
LBGI A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
LBGI A 0 A_TakeInventory("WeaponCharge",999)
LBGI A 0 A_TakeInventory("WeaponCharge", 9999)
LBGI A 0 
goto DeselectSwap
Select:
LBGI A 0 
goto SelectSwap
Fire:
LBGI A 0 A_JumpIfNoAmmo("NoAmmo")
LBGI B 0 ACS_NamedExecuteWithResult("core_freezeplayer",0,0)
LBGI BD 3
goto DashAmmoGive
FireRepeat:
LBGI A 0 A_JumpIfNoAmmo("NoAmmo")
LBGI BBDD 1 A_Stop
goto DashAmmoGive
DashAmmoGive:
LBGI G 0 A_GiveInventory("WeaponCharge", 14)
goto DashAttackStart
DashAttackStart:
LBGI B 0 A_Stop
TNT1 A 0 ACS_NamedExecuteWithResult("core_freezeplayer",0,1)
TNT1 E 0 ACS_NamedExecuteWithResult("core_unsolidplayer",0,USP_TOGGLEON)
LBGI E 0 A_PlaySound("misc/honkhonk","Weapon")
LGBI E 0 A_SpawnItemEx("ProtoDust", -32, 0, 0)
LBGI E 0 A_SpawnItemEx("LimoBoogieWave", 48, 0, 32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)
LBGI E 0 A_GiveInventory("LimoBoogieTake",1)
DashAttack:
LBGI E 0 A_ChangeVelocity(35,0,0,CVF_RELATIVE|CVF_REPLACE)
LGBI E 0 ACS_NamedExecute("vile_statechange",0,2)
LBGI E 1 A_SpawnItemEx("LimoBoogieDash", 48, 0, 32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)
LGBI E 0 A_SpawnItemEx("ProtoDust", -32, 0, 0)
LBGI E 0 A_TakeInventory("WeaponCharge", 1)
LBGI E 0 A_JumpIfInventory("WeaponCharge", 1, "DashAttack")
goto DashFinish
DashFinish:
LBGI G 0 A_Stop
LBGI A 0 A_JumpIfInventory("IsBot",1,2) //NOPE
LBGI D 1 A_Stop
LBGI A 0 ACS_NamedExecuteWithResult("core_freezeplayer",0,0)
LBGI D 0 ACS_NamedExecuteWithResult("core_unsolidplayer",0,USP_TOGGLEOFF_DAMAGE,10)
LBGI D 1 A_Stop
LBGI D 2
LBGI CBA 2
LBGI A 12
LBGI A 0 A_Refire
Goto Ready+1
NoAmmo:
LBGI A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor LimoBoogieProtect : PowerProtection
{
Powerup.Duration 15
damagefactor "LimoBoogie", 0.0
}

actor LimoBoogieTake : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("LimoBoogieAmmo", 5, TIF_NOTAKEINFINITE)
stop
}
}
 
actor LimoBoogieDash : BasicProjectile
{
PROJECTILE
Radius 48
Height 48
scale 2.5
+DONTREFLECT
damage (CallACS("vile_cbm_damage",45))
Translation "4:4=250:250", "225:225=44:44"
speed 20
damagetype "LimoBoogie"
Obituary "$OB_LIMOBOOGIE"
States
{
Spawn:
TNT1 D 0
TNT1 DEF 2 A_SpawnItemEx("PropBlowerEffect")
stop
}
}

actor LimoBoogieWave : BasicGraphicEffect
{
Radius 7
Height 15
scale 3.0
States
{
SpawnFrame:
LBGI D 0 
LBGI FFFGGG 1 A_Warp(AAPTR_TARGET, 40, 8, 32, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
LBGI F 0 A_JumpIfInTargetInventory("WeaponCharge",1,"SpawnFrame")
stop
}
}

actor LimoBoogieAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 30
+INVENTORY.IGNORESKILL
}
