From 45e9b853661d1ff320b3e2f0951d580b38acf145 Mon Sep 17 00:00:00 2001 From: Luc <89928798+lewcc@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:06:35 -0700 Subject: [PATCH] Fixes embed surgery on IPCs not working (#21848) * Fixes embed surgery on synths not working * Oops * owner -> victim --- code/modules/surgery/organs/organ_external.dm | 9 ++++++--- code/modules/surgery/remove_embedded_object.dm | 9 +-------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 2d56706c846..9b8475ec1f9 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -169,6 +169,9 @@ parent.children = list() parent.children.Add(src) + if(owner.has_embedded_objects()) + owner.throw_alert("embeddedobject", /obj/screen/alert/embeddedobject) + /obj/item/organ/external/attempt_become_organ(obj/item/organ/external/parent,mob/living/carbon/human/H) if(parent_organ != parent.limb_name) return FALSE @@ -781,11 +784,11 @@ Note that amputating the affected organ does in fact remove the infection from t I.forceMove(src) RegisterSignal(I, COMSIG_MOVABLE_MOVED, PROC_REF(remove_embedded_object)) - if(!owner.has_embedded_objects()) - owner.clear_alert("embeddedobject") - . = ..() + if(!victim.has_embedded_objects()) + victim.clear_alert("embeddedobject") + // Attached organs also fly off. if(!ignore_children) for(var/obj/item/organ/external/O in children) diff --git a/code/modules/surgery/remove_embedded_object.dm b/code/modules/surgery/remove_embedded_object.dm index 77af1a584ee..513fcd1f022 100644 --- a/code/modules/surgery/remove_embedded_object.dm +++ b/code/modules/surgery/remove_embedded_object.dm @@ -24,12 +24,10 @@ . = ..() if(!.) return FALSE - if(!istype(target)) - return FALSE var/obj/item/organ/external/affected = target.get_organ(user.zone_selected) if(!affected) return FALSE - if(affected.is_robotic()) + if(!length(affected.embedded_objects)) return FALSE return TRUE @@ -39,11 +37,6 @@ return FALSE if(!istype(target)) return FALSE - var/obj/item/organ/external/affected = target.get_organ(user.zone_selected) - if(!affected) - return FALSE - if(!affected.is_robotic()) - return FALSE return TRUE