From db9af97f6296c2e3a303e495a1bda0ed77222de6 Mon Sep 17 00:00:00 2001 From: Warfan1815 <69102610+Warfan1815@users.noreply.github.com> Date: Sun, 4 Feb 2024 23:06:43 +0000 Subject: [PATCH] Mouth and Eyes Surgical Incisions Show on Scanner & Open Surgical Incisions Alone Show Up On Scanner - A Fix To Issue #5639 (#5640) # About the pull request Fixes #5639 This is done by adding open surgical incisions as a way to have a limb show up on scanners Also, the "mouth" and "eyes" zones of the head now have their own snowflake way to be picked up on scanners. # Explain why it's good for the game Incisions probably should be detectable by scanners # Testing Photographs and Procedure Screenshots & Videos ![image](https://github.com/cmss13-devs/cmss13/assets/69102610/a3d105ae-2de3-4e5b-9f0d-fcb93e5f5680) ![image](https://github.com/cmss13-devs/cmss13/assets/69102610/c98585de-3d8f-4628-9e24-6ffb45173c4f) # Changelog :cl: fix: Open surgical incisions now show up on a health scanner even if there is nothing else wrong. fix: Open surgical incisions in the head "zones" (mouth and eyes) now show up independently on health scanner /:cl: --- code/modules/mob/living/living_healthscan.dm | 21 ++++++++++++++++++-- tgui/packages/tgui/interfaces/HealthScan.jsx | 5 +++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/living_healthscan.dm b/code/modules/mob/living/living_healthscan.dm index ebdf852afa68..c06dfc9a7166 100644 --- a/code/modules/mob/living/living_healthscan.dm +++ b/code/modules/mob/living/living_healthscan.dm @@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) bleeding_check = TRUE break - if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE)) + if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE) && !(limb.get_incision_depth())) continue var/list/core_body_parts = list("head", "chest", "groin") var/list/current_list = list( @@ -190,7 +190,6 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "missing" = (limb.status & LIMB_DESTROYED), "limb_status" = null, "bleeding" = bleeding_check, - "open_incision" = limb.get_incision_depth(), "implant" = implant, "internal_bleeding" = internal_bleeding_check ) @@ -248,6 +247,24 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) if(limb_type) current_list["limb_type"] = limb_type + //checking for open incisions, but since eyes and mouths incisions are "head incisions" but not "head surgeries" gotta do some snowflake + if(limb.name == "head") + if(human_target_mob.active_surgeries["head"]) + current_list["open_incision"] = TRUE + + var/zone + if(human_target_mob.active_surgeries["eyes"]) + zone = "eyes" + if(human_target_mob.active_surgeries["mouth"]) + if(zone) + zone = "eyes and mouth" + else + zone = "mouth" + current_list["open_zone_incision"] = capitalize(zone) + + else + current_list["open_incision"] = limb.get_incision_depth() + limb_data_lists["[limb.name]"] = current_list data["limb_data_lists"] = limb_data_lists diff --git a/tgui/packages/tgui/interfaces/HealthScan.jsx b/tgui/packages/tgui/interfaces/HealthScan.jsx index c94d7eda0b45..c941c111d487 100644 --- a/tgui/packages/tgui/interfaces/HealthScan.jsx +++ b/tgui/packages/tgui/interfaces/HealthScan.jsx @@ -389,6 +389,11 @@ const ScannerLimbs = (props) => { [Embedded Object] ) : null} + {limb.open_zone_incision ? ( + + [Open Surgical Incision In {limb.open_zone_incision}] + + ) : null} )}