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