From 1d5b0bd934a4afc9382f933f1f3783a18ea5aa68 Mon Sep 17 00:00:00 2001 From: Lucy Date: Mon, 16 Sep 2024 06:21:40 -0400 Subject: [PATCH] Makes no-heal challenge less of a pain for medbay --- .../objects/items/devices/scanners/health_analyzer.dm | 5 +++++ .../machinery/components/unary_devices/cryo.dm | 9 +++++++++ monkestation/code/modules/surgery/healing.dm | 4 ++++ tgstation.dme | 1 + 4 files changed, 19 insertions(+) create mode 100644 monkestation/code/modules/surgery/healing.dm diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index 0ef37ba652a6..146d4b387395 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -164,6 +164,11 @@ else render_list += "Subject has been husked.\n" + // monkestation edit: no-heal challenge + if(HAS_TRAIT(target, TRAIT_NO_HEALS)) + render_list += "Subject cannot be healed by any known methods.\n" + // monkestation end + if(target.stamina.loss) if(advanced) render_list += "Fatigue level: [target.stamina.loss]%.\n" diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 579c3fa62cec..af1f78552796 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -298,6 +298,15 @@ radio.talk_into(src, msg, radio_channel) return + // monkestation start: kick no-healers out + if(HAS_TRAIT(mob_occupant, TRAIT_NO_HEALS)) + playsound(src, 'sound/machines/cryo_warning.ogg', volume) + radio.talk_into(src, "Patient is unable to be healed, ejecting.", radio_channel) + set_on(FALSE) + open_machine() + return + // monkerstation end + patient_dead = FALSE if(mob_occupant.get_organic_health() >= mob_occupant.getMaxHealth()) // Don't bother with fully healed people. diff --git a/monkestation/code/modules/surgery/healing.dm b/monkestation/code/modules/surgery/healing.dm new file mode 100644 index 000000000000..1801bb4edf8b --- /dev/null +++ b/monkestation/code/modules/surgery/healing.dm @@ -0,0 +1,4 @@ +/datum/surgery/healing/can_start(mob/user, mob/living/patient) + if(HAS_TRAIT(patient, TRAIT_NO_HEALS)) + return FALSE + return ..() diff --git a/tgstation.dme b/tgstation.dme index 03945169b298..d06d5f9ad452 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7860,6 +7860,7 @@ #include "monkestation\code\modules\storytellers\storytellers\vote.dm" #include "monkestation\code\modules\storytellers\storytellers\warrior.dm" #include "monkestation\code\modules\surgery\blood_filter.dm" +#include "monkestation\code\modules\surgery\healing.dm" #include "monkestation\code\modules\surgery\nif_debonding.dm" #include "monkestation\code\modules\surgery\advanced\brainwashing.dm" #include "monkestation\code\modules\surgery\bodyparts\arachnid_bodyparts.dm"