actor MarleyShackleWep_NormalBar : NormalBar {args 88, 94}

actor MarleyShackleWep : BaseMM8BDMWep
{
Weapon.AmmoUse 2
Weapon.AmmoGive 28
Weapon.SlotNumber 4
Inventory.Pickupmessage "$PU_MARLEYSHACKLE"
Obituary "$OB_MARLEYSHACKLE"
Tag "$TAG_MARLEYSHACKLE"
weapon.ammotype "MarleyShackleAmmo"
inventory.icon "MSKLICON"
States
{
SpawnLoop:
MSKL Z -1
loop
Ready:
MSKL A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_MARLEYSHACKLE)
MSKL A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
MSKL A 0
goto DeselectSwap
Select:
MSKL A 0
goto SelectSwap
Fire:
MSKL A 0 A_JumpIfNoAmmo("NoAmmo")
MSKL A 0 A_PlaySoundEx("weapons/mm9/lasertridentfire","Weapon")
MSKL A 0 A_FireCustomMissile("MarleyShackle",0,1,8,0)
MSKL B 2
MSKL C 8
MSKL B 2
MSKL A 5
MSKL A 0 A_Refire
Goto Ready+1
NoAmmo:
MSKL A 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

actor MarleyShackleAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

Actor MarleyShackle : RollingCutterBase
{
Radius 10
Height 10
var int user_PierceRipper;
var int user_backwardsdamage;
Damage (CallACS("vile_cbm_damage",24) - CallACS("vile_cbm_damage",user_backwardsdamage))
obituary "$OB_MARLEYSHACKLE"
damagetype "MarleyShackle" 
scale 2.5
Speed 64
+DONTREFLECT
States
{
Spawn:
MSKL DD 0 A_GiveInventory("PierceRipperLimit", 1)
MSKL D 0 ACS_NamedExecuteWithResult("vile_MetalCatcherStart")
MSKL D 0 A_SetUserVar("user_backwardsdamage",0)
MSKL D 0 ACS_NamedExecuteWithResult("core_drawhookshot", ACS_NamedExecuteWithResult("core_gettarget"), 32, 0, DHS_MAXDIST + 1024)
MSKL DDDDDDD 1 A_SpawnItemEx("ThunderClawPegHelper")
goto Death
Death:
MSKL F 0 A_GiveInventory("PierceRipperLimit", 1)
MSKL F 0 A_SetUserVar("user_backwardsdamage",24)
MSKL F 0 ACS_NamedExecuteWithResult("vile_MetalCatcher_FaceTargetCenter")
MSKL F 0 A_ChangeVelocity(cos(-pitch)*CallACS("vile_MetalCatcher_GetSpeed"),0,-sin(-pitch)*CallACS("vile_MetalCatcher_GetSpeed"),CVF_RELATIVE|CVF_REPLACE)
MSKL F 0 A_JumpIfCloser(64,"OK")
MSKL F 1 A_SpawnItemEx("ThunderClawPegHelper")
MSKL F 0 A_Explode(CallACS("vile_cbm_damage",24),10,0,0,10)
loop
OK: TNT1 A 0
stop
}
}

actor MarleyShackleFX : BasicGraphicEffect
{
	+NOTIMEFREEZE
	States
	{
		Spawn:
			MSKL E 0
			MSKL E 1
			stop
	}
}