actor LeechCrossbowWep_NormalBar : NormalBar{args 103,41}
actor LeechCrossbowWep : BaseMM8BDMWep
{
Weapon.AmmoUse 5
Weapon.AmmoGive 30
Weapon.SlotNumber 2
Inventory.Pickupmessage "$PU_LEECHCROSSBOW"
Obituary "$OB_LEECHCROSSBOW"
Tag "$TAG_LEECHCROSSBOW"
weapon.ammotype "LeechCrossbowAmmo"
inventory.icon "LCBWICON"
States
{
SpawnLoop:
LCBW Z -1
loop
Ready:
LCBW A 0 ACS_NamedExecuteWithResult("core_weaponcolor", COLOR_LEECHCROSSBOW)
LCBW A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
LCBW A 0 
goto DeselectSwap
Select:
LCBW A 0 
goto SelectSwap
Fire:
LCBW B 0 A_JumpIfNoAmmo("NoAmmo")
LCBW B 0 A_PlaySoundEx("weapon/icewavespawn","Weapon")
ONSG B 0 A_PlaySoundEx("weapon/coilexplode","SoundSlot6")
LCBW B 1 A_FireCustomMissile("LeechCrossbow",0,1,8,0)
LCBW B 8
LCBW C 10
LCBW A 5
Goto Ready+1
NoAmmo:
LCBW A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

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

actor LeechCrossbow : BasicProjectile
{
PROJECTILE
Radius 14
Height 14
Obituary "$OB_LEECHCROSSBOW"
damagetype "LeechCrossbow"
+HITTRACER
scale 3.0
damage (CallACS("vile_cbm_damage",8))
speed 50
reactiontime 5
States
{
Spawn:
LCBW D 1
loop
Xdeath:
LCBW A 0 A_JumpIfInventory("CanBeGrabBustered", 1, "Latch", AAPTR_TRACER)
stop
Death:
LCBW D 0
goto Latch
Latch:
LCBW D 0
LCBW A 0 A_GiveInventory("TracerAndTargetTeamsMatchCheck",1)
LCBW A 0 A_JumpIfInventory("TracerAndTargetTeamsMatchFlag", 1, "Die")
LCBW D 0 A_JumpIf(ACS_NamedExecuteWithResult("vile_usagikunaicheck",1)==0, "Die")
LCBW D 0 A_JumpIfInventory("UsagiKunaiFlag",8,"Latch2")
LCBW D 0 A_JumpIfInventory("UsagiKunaiFlag2",40,"Die")
LCBW D 1 A_Warp(AAPTR_TRACER,-4,0,28,0,WARPF_COPYINTERPOLATION|WARPF_NOCHECKPOSITION)
LCBW D 0 A_GiveInventory("UsagiKunaiFlag",1)
LCBW D 0 A_GiveInventory("UsagiKunaiFlag2",1)
loop
Die:
MMFX BCDE 3
stop
Latch2:
LCBW D 0
LCBW D 0 A_SpawnItemEx("LeechCrossbowDamager")
LCBW D 0 A_GiveToTarget("LeechCrossbowHealBurst",1)
LCBW D 0 A_TakeInventory("UsagiKunaiFlag",999)
goto Latch+4
LatchLoop:
LCBW D 0 A_SpawnItemEx("LeechCrossbowDamager")
LCBW D 0 A_GiveToTarget("LeechCrossbowHealBurst",1)
LCBW D 0 A_GiveInventory("UsagiKunaiFlag",1)
goto Latch
}
}

actor LeechCrossbowDamager : BasicProjectile
{
PROJECTILE
radius 1
height 1
+THRUGHOST
damage (CallACS("vile_cbm_damage",4))
Obituary "$OB_LEECHCROSSBOW"
damagetype "LeechCrossbow"
States
{
Spawn:
TNT1 A 1
loop
Death:
TNT1 A 0
stop
}
}

actor LeechCrossbowHealBurst : CustomInventory
{
States
{
Pickup:
TNT1 A 0 
TNT1 A 0 A_PlaySoundEx("item/energyup","Body")
TNT1 A 0 A_GiveInventory("Health", CallACS("vile_cbm_damage",4))
TNT1 AAAA 0 A_SpawnItemEx("ETankParticle1",50,0,24,momx,momy,momz+random(1,4),random(1,8)*45,SXF_ABSOLUTEMOMENTUM|SXF_WEPFXCOLOR)
stop
Nope:
TNT1 A 0
stop
}
}
