diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index 3c9b1d1ec2d..4be8046aecd 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -564,6 +564,8 @@
///from base of obj/item/pre_attack(): (atom/target, mob/user, params)
#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack"
#define COMPONENT_NO_ATTACK (1<<0)
+///from base of obj/item/pre_attack(): (atom/target, mob/user, params)
+#define COMSIG_ITEM_BEING_ATTACKED "item_being_attacked"
///from base of obj/item/afterattack(): (atom/target, mob/user, params)
#define COMSIG_ITEM_AFTERATTACK "item_afterattack"
///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 6bf10711157..ee1008b7ec3 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1171,55 +1171,6 @@ GLOBAL_LIST_INIT(can_embed_types, typecacheof(list(
if(is_type_in_typecache(W, GLOB.can_embed_types))
return 1
-/proc/is_hot(obj/item/W as obj)
- if(W.tool_behaviour == TOOL_WELDER)
- if(W.tool_enabled)
- return 2500
- else
- return 0
- if(istype(W, /obj/item/lighter))
- var/obj/item/lighter/O = W
- if(O.lit)
- return 1500
- else
- return 0
- if(istype(W, /obj/item/match))
- var/obj/item/match/O = W
- if(O.lit)
- return 1000
- else
- return 0
- if(istype(W, /obj/item/clothing/mask/cigarette))
- var/obj/item/clothing/mask/cigarette/O = W
- if(O.lit)
- return 1000
- else
- return 0
- if(istype(W, /obj/item/candle))
- var/obj/item/candle/O = W
- if(O.lit)
- return 1000
- else
- return 0
- if(istype(W, /obj/item/flashlight/flare))
- var/obj/item/flashlight/flare/O = W
- if(O.on)
- return 1000
- else
- return 0
- if(istype(W, /obj/item/gun/energy/plasmacutter))
- return 3800
- if(istype(W, /obj/item/melee/energy))
- var/obj/item/melee/energy/O = W
- if(O.active)
- return 3500
- else
- return 0
- if(istype(W, /obj/item/assembly/igniter))
- return 20000
- else
- return 0
-
//Whether or not the given item counts as sharp in terms of dealing damage
/proc/is_sharp(obj/O)
if(!O)
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index ea78bd77695..abde11138fa 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -26,12 +26,17 @@
/obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby!
if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_CANCEL_ATTACK_CHAIN)
return TRUE
- if(is_hot(src) && A.reagents && !ismob(A))
+
+ if(SEND_SIGNAL(A, COMSIG_ITEM_BEING_ATTACKED, src, user, params) & COMPONENT_CANCEL_ATTACK_CHAIN)
+ return TRUE
+
+ var/temperature = get_heat()
+ if(temperature && A.reagents && !ismob(A) && !istype(A, /obj/item/clothing/mask/cigarette))
var/reagent_temp = A.reagents.chem_temp
- var/time = (reagent_temp / 10) / (is_hot(src) / 1000)
+ var/time = (reagent_temp / 10) / (temperature / 1000)
if(do_after_once(user, time, TRUE, user, TRUE, attempt_cancel_message = "You stop heating up [A]."))
to_chat(user, "You heat [A] with [src].")
- A.reagents.temperature_reagents(is_hot(src))
+ A.reagents.temperature_reagents(temperature)
return TRUE //return FALSE to avoid calling attackby after this proc does stuff
// No comment
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 3b3aa9c7616..6c0a6bd9dff 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -201,12 +201,12 @@
DA.update_name()
qdel(src)
-/obj/machinery/door/airlock/plasma/attackby(obj/C, mob/user, params)
- if(is_hot(C) > 300)
- message_admins("Plasma airlock ignited by [key_name_admin(user)] in ([x],[y],[z] - JMP)")
+/obj/machinery/door/airlock/plasma/attackby(obj/item/C, mob/user, params)
+ if(C.get_heat() > 300)
+ message_admins("Plasma airlock ignited by [key_name_admin(user)] in ([x],[y],[z] - JMP)")
log_game("Plasma airlock ignited by [key_name(user)] in ([x],[y],[z])")
investigate_log("was ignited by [key_name(user)]","atmos")
- ignite(is_hot(C))
+ ignite(C.get_heat())
else
return ..()
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 61f4e4b8656..d6ba038494c 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -133,7 +133,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
/// Holder var for the item outline filter, null when no outline filter on the item.
var/outline_filter
-
/obj/item/New()
..()
@@ -646,7 +645,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
if(w_class < WEIGHT_CLASS_BULKY)
itempush = FALSE //too light to push anything
if(isliving(hit_atom)) //Living mobs handle hit sounds differently.
- if(is_hot(src))
+ if(get_heat())
var/mob/living/L = hit_atom
L.IgniteMob()
var/volume = get_volume_by_throwforce_and_or_w_class()
@@ -902,3 +901,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.regenerate_icons()
+
+/obj/item/proc/get_heat()
+ return
diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm
index 3dde2eb17be..00ae37bb2b2 100644
--- a/code/game/objects/items/candle.dm
+++ b/code/game/objects/items/candle.dm
@@ -42,7 +42,7 @@
return TRUE
/obj/item/candle/attackby(obj/item/W, mob/user, params)
- if(is_hot(W))
+ if(W.get_heat())
light("[user] lights [src] with [W].")
return
return ..()
@@ -152,6 +152,9 @@
infinite = FALSE
wax = 1 // next process will burn it out
+/obj/item/candle/get_heat()
+ return lit * 1000
+
#undef TALL_CANDLE
#undef MID_CANDLE
#undef SHORT_CANDLE
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index d471e918c6e..62ac9244111 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -230,6 +230,9 @@
return TRUE
return ..()
+/obj/item/flashlight/flare/get_heat()
+ return produce_heat * on * 1000
+
// GLOWSTICKS
/obj/item/flashlight/flare/glowstick
diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm
index 302b2703d95..665faa1d6d1 100644
--- a/code/game/objects/items/flag.dm
+++ b/code/game/objects/items/flag.dm
@@ -13,7 +13,7 @@
/obj/item/flag/attackby(obj/item/W, mob/user, params)
. = ..()
- if(is_hot(W) && !(resistance_flags & ON_FIRE))
+ if(W.get_heat() && !(resistance_flags & ON_FIRE))
user.visible_message("[user] lights [src] with [W].", "You light [src] with [W].", "You hear a low whoosh.")
fire_act()
@@ -259,7 +259,7 @@
log_game("[key_name(user)] has hidden [I] in [src] ready for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).")
investigate_log("[key_name(user)] has hidden [I] in [src] ready for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).", INVESTIGATE_BOMB)
add_attack_logs(user, src, "has hidden [I] ready for detonation in", ATKLOG_MOST)
- else if(is_hot(I) && !(resistance_flags & ON_FIRE) && boobytrap && trapper)
+ else if(I.get_heat() && !(resistance_flags & ON_FIRE) && boobytrap && trapper)
var/turf/bombturf = get_turf(src)
var/area/A = get_area(bombturf)
log_game("[key_name_admin(user)] has lit [src] trapped with [boobytrap] by [key_name_admin(trapper)] at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).")
diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm
index d936ec32227..03415cbecf5 100644
--- a/code/game/objects/items/latexballoon.dm
+++ b/code/game/objects/items/latexballoon.dm
@@ -61,5 +61,5 @@
var/obj/item/tank/T = W
blow(T, user)
return
- if(is_sharp(W) || is_hot(W) || is_pointed(W))
+ if(is_sharp(W) || W.get_heat() || is_pointed(W))
burst()
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 8aab03be8a5..588e3f243e8 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -264,7 +264,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
return TRUE
/obj/item/stack/sheet/mineral/plasma/attackby(obj/item/I, mob/living/user, params)
- if(is_hot(I))
+ if(I.get_heat())
log_and_set_aflame(user, I)
else
return ..()
diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm
index 60ec8bf0efc..72f286458d9 100644
--- a/code/game/objects/items/tools/welder.dm
+++ b/code/game/objects/items/tools/welder.dm
@@ -207,6 +207,9 @@
if(reagents.check_and_add("fuel", maximum_fuel, 2 * coeff))
update_icon()
+/obj/item/weldingtool/get_heat()
+ return tool_enabled * 2500
+
/obj/item/weldingtool/largetank
name = "industrial welding tool"
desc = "A slightly larger welder with a larger tank."
diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm
index 9c54f803b83..6e2d363c319 100644
--- a/code/game/objects/items/weapons/cigs.dm
+++ b/code/game/objects/items/weapons/cigs.dm
@@ -47,12 +47,19 @@ LIGHTERS ARE IN LIGHTERS.DM
reagents.set_reacting(FALSE) // so it doesn't react until you light it
if(list_reagents)
reagents.add_reagent_list(list_reagents)
+ RegisterSignal(src, COMSIG_ITEM_BEING_ATTACKED, PROC_REF(can_light))
/obj/item/clothing/mask/cigarette/Destroy()
QDEL_NULL(reagents)
STOP_PROCESSING(SSobj, src)
return ..()
+/obj/item/clothing/mask/cigarette/proc/can_light(obj/item/cigarette, obj/item/lighting_item)
+ SIGNAL_HANDLER
+ if(lighting_item.get_heat())
+ light()
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
/obj/item/clothing/mask/cigarette/decompile_act(obj/item/matter_decompiler/C, mob/user)
if(isdrone(user))
C.stored_comms["wood"] += 1
@@ -250,6 +257,8 @@ LIGHTERS ARE IN LIGHTERS.DM
STOP_PROCESSING(SSobj, src)
qdel(src)
+/obj/item/clothing/mask/cigarette/get_heat()
+ return lit * 1000
/obj/item/clothing/mask/cigarette/menthol
list_reagents = list("nicotine" = 40, "menthol" = 20)
diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm
index bf720995b07..235ec5816c9 100644
--- a/code/game/objects/items/weapons/lighters.dm
+++ b/code/game/objects/items/weapons/lighters.dm
@@ -125,6 +125,9 @@
item_state = "[initial(item_state)][lit ? "-on" : ""]"
return ..()
+/obj/item/lighter/get_heat()
+ return lit * 1500
+
// Zippo lighters
/obj/item/lighter/zippo
name = "zippo lighter"
@@ -304,6 +307,9 @@
if(istype(mask_item, /obj/item/clothing/mask/cigarette))
return mask_item
+/obj/item/match/get_heat()
+ return lit * 1000
+
/obj/item/match/firebrand
name = "firebrand"
desc = "An unlit firebrand. It makes you wonder why it's not just called a stick."
diff --git a/code/game/objects/items/weapons/melee/energy_melee_weapons.dm b/code/game/objects/items/weapons/melee/energy_melee_weapons.dm
index 92768750e7e..2086e1677e0 100644
--- a/code/game/objects/items/weapons/melee/energy_melee_weapons.dm
+++ b/code/game/objects/items/weapons/melee/energy_melee_weapons.dm
@@ -85,6 +85,9 @@
add_fingerprint(user)
return
+/obj/item/melee/energy/get_heat()
+ return active * 3500
+
/obj/item/melee/energy/axe
name = "energy axe"
desc = "An energised battle axe."
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index d8203fe9fcd..e6bd754e6e2 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -284,7 +284,7 @@
canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS)
/obj/structure/falsewall/plasma/attackby(obj/item/W, mob/user, params)
- if(is_hot(W) > 300)
+ if(W.get_heat() > 300)
var/turf/T = locate(user)
message_admins("Plasma falsewall ignited by [key_name_admin(user)] in [ADMIN_VERBOSEJMP(T)]")
log_game("Plasma falsewall ignited by [key_name(user)] in [AREACOORD(T)]")
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index 6a4eb718120..20424ff6b73 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -177,8 +177,8 @@
sheetType = /obj/item/stack/sheet/mineral/plasma
/obj/structure/mineral_door/transparent/plasma/attackby(obj/item/W, mob/user)
- if(is_hot(W))
- message_admins("Plasma mineral door ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)", 0, 1)
+ if(W.get_heat())
+ message_admins("Plasma mineral door ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)", 0, 1)
log_game("Plasma mineral door ignited by [key_name(user)] in ([x], [y], [z])")
investigate_log("was ignited by [key_name(user)]","atmos")
TemperatureAct(100)
diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm
index 849b4cc1d59..c7310b9141d 100644
--- a/code/game/objects/structures/statues.dm
+++ b/code/game/objects/structures/statues.dm
@@ -125,11 +125,11 @@
..()
/obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params)
- if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite
+ if(W.get_heat() > 300)//If the temperature of the object is over 300, then ignite
message_admins("[key_name_admin(user)] ignited a plasma statue at [COORD(loc)]")
log_game("[key_name(user)] ignited plasma a statue at [COORD(loc)]")
investigate_log("[key_name(user)] ignited a plasma statue at [COORD(loc)]", "atmos")
- ignite(is_hot(W))
+ ignite(W.get_heat())
return
return ..()
diff --git a/code/game/turfs/simulated/floor/mineral_floors.dm b/code/game/turfs/simulated/floor/mineral_floors.dm
index fb75450a8a5..d33d5a8d2f3 100644
--- a/code/game/turfs/simulated/floor/mineral_floors.dm
+++ b/code/game/turfs/simulated/floor/mineral_floors.dm
@@ -36,11 +36,11 @@
PlasmaBurn()
/turf/simulated/floor/mineral/plasma/attackby(obj/item/W, mob/user, params)
- if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite
- message_admins("Plasma flooring was ignited by [key_name_admin(user)]([ADMIN_QUE(user,"?")]) ([ADMIN_FLW(user,"FLW")]) in ([x],[y],[z] - JMP)",0,1)
+ if(W.get_heat() > 300)//If the temperature of the object is over 300, then ignite
+ message_admins("Plasma flooring was ignited by [key_name_admin(user)]([ADMIN_QUE(user,"?")]) ([ADMIN_FLW(user,"FLW")]) in ([x],[y],[z] - JMP)",0,1)
log_game("Plasma flooring was ignited by [key_name(user)] in ([x],[y],[z])")
investigate_log("was ignited by [key_name(user)]","atmos")
- ignite(is_hot(W))
+ ignite(W.get_heat())
return
..()
diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm
index 5f7bb041f3a..57a7f7dbc04 100644
--- a/code/game/turfs/simulated/walls_mineral.dm
+++ b/code/game/turfs/simulated/walls_mineral.dm
@@ -106,12 +106,12 @@
smoothing_groups = list(SMOOTH_GROUP_SIMULATED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_PLASMA_WALLS)
canSmoothWith = list(SMOOTH_GROUP_PLASMA_WALLS)
-/turf/simulated/wall/mineral/plasma/attackby(obj/item/W as obj, mob/user as mob)
- if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite
- message_admins("Plasma wall ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)",0,1)
+/turf/simulated/wall/mineral/plasma/attackby(obj/item/W, mob/user)
+ if(W.get_heat() > 300)//If the temperature of the object is over 300, then ignite
+ message_admins("Plasma wall ignited by [key_name_admin(user)] in ([x], [y], [z] - JMP)",0,1)
log_game("Plasma wall ignited by [key_name(user)] in ([x], [y], [z])")
investigate_log("was ignited by [key_name(user)]","atmos")
- ignite(is_hot(W))
+ ignite(W.get_heat())
return
..()
diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm
index 509d30e35b6..dd9c6f9ec05 100644
--- a/code/modules/assembly/igniter.dm
+++ b/code/modules/assembly/igniter.dm
@@ -59,3 +59,6 @@
if(!istype(loc, /obj/item/assembly_holder))
activate()
add_fingerprint(user)
+
+/obj/item/assembly/igniter/get_heat()
+ return 2000
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index b618c902a40..5307f00752d 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -372,7 +372,7 @@
new /obj/effect/hotspot(get_turf(target))
/obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params)
- if(is_hot(I) && !active)
+ if(I.get_heat() && !active)
active = TRUE
var/turf/bombturf = get_turf(src)
var/area/bombarea = get_area(bombturf)
diff --git a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm
index 680c32c7e01..c181349498b 100644
--- a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm
@@ -98,7 +98,7 @@
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/attackby(obj/item/W)
..()
- if(is_hot(W))
+ if(W.get_heat())
fire_act()
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/attack_hand(mob/user, pickupfireoverride = TRUE)
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index 9303991005a..43525465b32 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -137,7 +137,7 @@
to_chat(user, "You add a rod to [src].")
var/image/U = image(icon='icons/obj/hydroponics/equipment.dmi',icon_state="bonfire_rod",pixel_y=16)
underlays += U
- if(is_hot(W))
+ if(W.get_heat())
lighter = user.ckey
user.create_log(MISC_LOG, "lit a bonfire", src)
StartBurning()
diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm
index 55d7083777a..84a9006f9e0 100644
--- a/code/modules/mob/living/carbon/human/species/golem.dm
+++ b/code/modules/mob/living/carbon/human/species/golem.dm
@@ -761,6 +761,6 @@
if(resistance_flags & ON_FIRE)
return
- if(is_hot(P))
+ if(P.get_heat())
visible_message("[src] bursts into flames!")
fire_act()
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index df08b12638e..59df9c8eba7 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -460,7 +460,7 @@
to_chat(user, "You stamp the paper with your rubber stamp.")
playsound(user, 'sound/items/handling/standard_stamp.ogg', 50, vary = TRUE)
- if(is_hot(P))
+ if(P.get_heat())
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10))
user.visible_message("[user] accidentally ignites [user.p_themselves()]!", \
"You miss the paper and accidentally light yourself on fire!")
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 21afc9c66b3..60646ef54c6 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -53,7 +53,7 @@
to_chat(user, "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")
user.unEquip(W)
W.loc = src
- else if(is_hot(W))
+ else if(W.get_heat())
burnpaper(W, user)
else if(istype(W, /obj/item/paper_bundle))
user.unEquip(W)
@@ -85,7 +85,7 @@
user.visible_message("[user] holds [heating_object] up to [src], it looks like [user.p_theyre()] trying to burn it!", "You hold [heating_object] up to [src], burning it slowly.")
- if(!do_after(user, 2 SECONDS, target = src) || !is_hot(heating_object))
+ if(!do_after(user, 2 SECONDS, target = src) || !heating_object.get_heat())
return
user.visible_message("[user] burns right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.", \
"You burn right through [src], turning it to ash. It flutters through the air before settling on the floor in a heap.")
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index 16999baf0ed..e894c699d41 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -70,7 +70,7 @@
internal_paper.attackby(P, user) //spoofed attack to update internal paper.
update_icon()
- else if(is_hot(P))
+ else if(P.get_heat())
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10))
user.visible_message("[user] accidentally ignites [user.p_themselves()]!", \
"You miss [src] and accidentally light yourself on fire!")
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index 75e999732af..5b231a81701 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -214,7 +214,7 @@
/obj/item/ticket_machine_ticket/attackby(obj/item/P, mob/living/carbon/human/user, params) //Stolen from papercode
..()
- if(is_hot(P))
+ if(P.get_heat())
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10))
user.visible_message("[user] accidentally ignites [user.p_themselves()]!", \
"You miss the paper and accidentally light yourself on fire!")
diff --git a/code/modules/projectiles/guns/energy/special_eguns.dm b/code/modules/projectiles/guns/energy/special_eguns.dm
index cced4f362f0..51fbb320263 100644
--- a/code/modules/projectiles/guns/energy/special_eguns.dm
+++ b/code/modules/projectiles/guns/energy/special_eguns.dm
@@ -190,6 +190,9 @@
/obj/item/gun/energy/plasmacutter/update_overlays()
return list()
+/obj/item/gun/energy/plasmacutter/get_heat()
+ return 3800
+
/obj/item/gun/energy/plasmacutter/adv
name = "advanced plasma cutter"
icon_state = "adv_plasmacutter"