From 9a7aee88bd8f5b01711dd947ebbb576afe2f0453 Mon Sep 17 00:00:00 2001 From: Vi3trice <80771500+Vi3trice@users.noreply.github.com> Date: Thu, 30 Jan 2025 00:26:13 -0500 Subject: [PATCH] Cauterize surgery checks for lit implements, tweak lighter/flamethrowers/cautery so they deal burn when appropriate (#28141) * stay cool * Cautery is also weird like that too --- code/game/objects/items/weapons/flamethrower.dm | 2 ++ code/game/objects/items/weapons/lighters.dm | 2 +- code/modules/surgery/generic.dm | 6 ++++++ code/modules/surgery/tools.dm | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index b1f9f9557cf..c12aa4fb62a 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -231,11 +231,13 @@ to_chat(user, "You [lit ? "extinguish" : "ignite"] [src]!") lit = !lit if(lit) + damtype = BURN START_PROCESSING(SSobj, src) if(!warned_admins) message_admins("[ADMIN_LOOKUPFLW(user)] has lit a flamethrower.") warned_admins = TRUE else + damtype = initial(damtype) STOP_PROCESSING(SSobj,src) update_icon() diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm index 96f06a1766b..9900f76473e 100644 --- a/code/game/objects/items/weapons/lighters.dm +++ b/code/game/objects/items/weapons/lighters.dm @@ -78,7 +78,7 @@ hitsound = "swing_hit" force = 0 attack_verb = null //human_defense.dm takes care of it - + damtype = initial(damtype) update_icon() if(user) show_off_message(user) diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index b0fa71e9de3..6e56f010317 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -180,6 +180,12 @@ failure_sound = 'sound/items/welder.ogg' time = 2.4 SECONDS +/datum/surgery_step/generic/cauterize/tool_check(mob/user, obj/item/tool) + if(tool.damtype != BURN) + to_chat(user, "[tool] is too cold to cauterize!") + return FALSE + return TRUE + /datum/surgery_step/generic/cauterize/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery) var/obj/item/organ/external/affected = target.get_organ(target_zone) user.visible_message( diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 49d3ebd3e0e..32bc124a4cd 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -52,6 +52,7 @@ materials = list(MAT_METAL=2500, MAT_GLASS=750) flags = CONDUCT w_class = WEIGHT_CLASS_TINY + damtype = BURN origin_tech = "materials=1;biotech=1" attack_verb = list("burnt") tool_behaviour = TOOL_CAUTERY