diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 761933f41fd..bf0aff6319b 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -360,7 +360,8 @@ organData["status"] = organStatus - if(istype(E, /obj/item/organ/external/chest) && occupant.is_lung_ruptured()) + var/obj/item/organ/internal/lung_organ = occupant.get_int_organ_by_datum(ORGAN_DATUM_LUNGS) + if(E == occupant.get_organ(lung_organ?.parent_organ) && occupant.is_lung_ruptured()) organData["lungRuptured"] = TRUE if(E.status & ORGAN_INT_BLEEDING) @@ -503,7 +504,8 @@ if(e.status & ORGAN_INT_BLEEDING) ailments |= "Internal Bleeding" - if(istype(e, /obj/item/organ/external/chest) && occupant.is_lung_ruptured()) + var/obj/item/organ/internal/lung_organ = occupant.get_int_organ_by_datum(ORGAN_DATUM_LUNGS) + if(e == occupant.get_organ(lung_organ?.parent_organ) && occupant.is_lung_ruptured()) ailments |= "Lung Ruptured" if(e.status & ORGAN_SPLINTED) ailments |= "Splinted" diff --git a/code/modules/surgery/organs/organ_helpers.dm b/code/modules/surgery/organs/organ_helpers.dm index 0dc2866f1ba..d82e28c0e0d 100644 --- a/code/modules/surgery/organs/organ_helpers.dm +++ b/code/modules/surgery/organs/organ_helpers.dm @@ -16,6 +16,11 @@ /mob/living/carbon/get_int_organ(typepath) return (locate(typepath) in internal_organs) +/mob/living/carbon/proc/get_int_organ_by_datum(tag_to_check) + RETURN_TYPE(/obj/item/organ/internal) + var/datum/organ/organ_datum = internal_organ_datums[tag_to_check] + return organ_datum?.linked_organ + /mob/living/carbon/proc/get_int_organ_datum(tag_to_check) RETURN_TYPE(/datum/organ) return internal_organ_datums[tag_to_check]