diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm index 62760b8c2b5..8f4e7f2dbea 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm @@ -22,12 +22,16 @@ /obj/item/organ/cyberimp/arm/on_mob_remove(mob/living/carbon/arm_owner) . = ..() + UnregisterSignal(arm_owner, COMSIG_CARBON_POST_ATTACH_LIMB) on_limb_detached(hand) /obj/item/organ/cyberimp/arm/proc/on_limb_attached(mob/living/carbon/source, obj/item/bodypart/limb) SIGNAL_HANDLER if(!limb || QDELETED(limb) || limb.body_zone != zone) return + handle_attachment(limb) + +/obj/item/organ/cyberimp/arm/proc/handle_attachment(obj/item/bodypart/limb) if(hand) on_limb_detached(hand) RegisterSignal(limb, COMSIG_BODYPART_REMOVED, PROC_REF(on_limb_detached)) @@ -88,9 +92,10 @@ /obj/item/organ/cyberimp/arm/toolkit/on_mob_remove(mob/living/carbon/arm_owner) . = ..() + UnregisterSignal(arm_owner, COMSIG_KB_MOB_DROPITEM_DOWN) Retract() -/obj/item/organ/cyberimp/arm/toolkit/on_limb_attached(mob/living/carbon/source, obj/item/bodypart/limb) +/obj/item/organ/cyberimp/arm/toolkit/handle_attachment(obj/item/bodypart/limb) . = ..() RegisterSignal(limb, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_item_attack_self))