From 9b0aeab7cbcb70b2aa9108865677ff00df9b1b3b Mon Sep 17 00:00:00 2001 From: BeebBeebBoob Date: Tue, 7 Jan 2025 15:58:29 +0300 Subject: [PATCH 1/2] tweak: get_heat refactor, heating delay --- code/__HELPERS/unsorted.dm | 49 ------------------- code/_onclick/item_attack.dm | 11 +++-- code/game/gamemodes/wizard/artefact.dm | 2 +- code/game/machinery/doors/airlock_types.dm | 5 +- code/game/objects/items.dm | 8 +-- code/game/objects/items/candle.dm | 4 +- code/game/objects/items/devices/flashlight.dm | 2 + code/game/objects/items/flag.dm | 4 +- code/game/objects/items/latexballoon.dm | 2 +- .../objects/items/stacks/sheets/mineral.dm | 2 +- code/game/objects/items/tools/welder.dm | 2 + code/game/objects/items/weapons/cigs.dm | 14 +++++- .../items/weapons/grenades/ghettobomb.dm | 2 +- code/game/objects/items/weapons/lighters.dm | 5 ++ .../objects/items/weapons/melee/energy.dm | 2 + code/game/objects/structures/false_walls.dm | 2 +- code/game/objects/structures/firepit.dm | 2 +- code/game/objects/structures/fireplace.dm | 2 +- code/game/objects/structures/mineral_doors.dm | 2 +- code/game/objects/structures/statues.dm | 7 ++- code/game/turfs/simulated/floor/mineral.dm | 5 +- code/game/turfs/simulated/walls_mineral.dm | 5 +- code/modules/assembly/igniter.dm | 2 + .../food_and_drinks/drinks/drinks/bottle.dm | 2 +- .../drinks/drinks/shotglass.dm | 2 +- code/modules/hydroponics/grown/towercap.dm | 2 +- .../mining/lavaland/loot/colossus_loot.dm | 2 +- code/modules/paperwork/contract.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- code/modules/paperwork/paper_bundle.dm | 2 +- code/modules/paperwork/paperplane.dm | 2 +- code/modules/paperwork/papershredder.dm | 2 +- code/modules/paperwork/ticketmachine.dm | 2 +- .../projectiles/guns/energy/special.dm | 2 + .../projectiles/guns/throw/crossbow.dm | 2 +- 35 files changed, 73 insertions(+), 92 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 5586a81b04e..02e3df67977 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1018,55 +1018,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) - 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 == 1) - 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(isigniter(W)) - 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 9685413c685..2841b0e2b52 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -114,11 +114,14 @@ . |= ATTACK_CHAIN_NO_AFTERATTACK if(signal_out & COMPONENT_CANCEL_ATTACK_CHAIN) return .|ATTACK_CHAIN_BLOCKED - var/is_hot = is_hot(src) - if(is_hot && target.reagents && !ismob(target)) - to_chat(user, span_notice("You heat [target] with [src].")) - target.reagents.temperature_reagents(is_hot) + var/temperature = get_heat() + if(temperature && target.reagents && !ismob(target) && !istype(target, /obj/item/clothing/mask/cigarette)) + var/reagent_temp = target.reagents.chem_temp + var/time = (reagent_temp / 10) / (temperature / 1000) + if(do_after(user, time, target, interaction_key = src, max_interact_count = 1, cancel_message = "You stop heating up [target].")) + to_chat(user, span_notice("You heat [target] with [src].")) + target.reagents.temperature_reagents(temperature) /** * Called on an object being hit by an item diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index a58e3ab6cdb..5effef97ba7 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -688,7 +688,7 @@ GLOBAL_LIST_EMPTY(multiverse) /obj/item/voodoo/attackby(obj/item/I, mob/user, params) if(target && COOLDOWN_FINISHED(src, cooldown)) add_fingerprint(user) - if(is_hot(I)) + if(I.get_heat()) to_chat(target, span_userdanger("You suddenly feel very hot.")) target.adjust_bodytemperature(50) else if(is_pointed(I)) diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 622ebf8bb73..170b76a171e 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -195,12 +195,11 @@ /obj/machinery/door/airlock/plasma/attackby(obj/item/I, mob/user, params) - var/heat_temp = is_hot(I) - if(heat_temp > 300) + if(I.get_heat() > 300) add_fingerprint(user) add_attack_logs(user, src, "ignited using [I]", ATKLOG_FEW) investigate_log("was ignited by [key_name_log(user)]", INVESTIGATE_ATMOS) - ignite(heat_temp) + ignite(I.get_heat()) return ATTACK_CHAIN_PROCEED_SUCCESS return ..() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index c9fe0e29818..42109ed4262 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -273,7 +273,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/g else return TRUE - + /obj/item/blob_act(obj/structure/blob/B) if(B && B.loc == loc && !QDELETED(src) && !(obj_flags & IGNORE_BLOB_ACT)) obj_destruction(MELEE) @@ -540,6 +540,9 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/g /obj/item/proc/talk_into(mob/M, var/text, var/channel=null) return +//Generic get_heat proc. Returns 0 or number amount of heat an item gives. +/obj/item/proc/get_heat() + return /** * When item is officially left user @@ -915,7 +918,6 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/g if(w_class < WEIGHT_CLASS_BULKY) itempush = FALSE // too light to push anything - var/is_hot = is_hot(src) var/volume = get_volume_by_throwforce_and_or_w_class() var/impact_throwforce = throwforce @@ -927,7 +929,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/g if(. && living.is_in_hands(src)) item_catched = TRUE - if(is_hot && !item_catched) + if(get_heat() && !item_catched) living.IgniteMob() if(impact_throwforce > 0 && !item_catched) diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index 851f0aa12d4..5b6a27e86df 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -47,9 +47,11 @@ return FALSE return TRUE +/obj/item/candle/get_heat() + return lit * 1000 /obj/item/candle/attackby(obj/item/I, mob/user, params) - if(is_hot(I) && light(span_notice("[user] lights [src] with [I]."))) + if(I.get_heat() && light(span_notice("[user] lights [src] with [I]."))) add_fingerprint(user) return ATTACK_CHAIN_PROCEED_SUCCESS return ..() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index caa2e3e215a..2a31185bba6 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -226,6 +226,8 @@ turn_off() STOP_PROCESSING(SSobj, src) +/obj/item/flashlight/flare/get_heat() + return on * 1000 /obj/item/flashlight/flare/proc/turn_off() on = FALSE diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index dcfccd141d5..059119cbb0f 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -15,7 +15,7 @@ /obj/item/flag/attackby(obj/item/I, mob/user, params) . = ..() - if(ATTACK_CHAIN_CANCEL_CHECK(.) || !is_hot(I) || (resistance_flags & ON_FIRE)) + if(ATTACK_CHAIN_CANCEL_CHECK(.) || !I.get_heat() || (resistance_flags & ON_FIRE)) return . . |= ATTACK_CHAIN_SUCCESS user.visible_message( @@ -285,7 +285,7 @@ add_attack_logs(user, src, "has hidden [I] ready for detonation in", ATKLOG_MOST) return ATTACK_CHAIN_BLOCKED_ALL - if(is_hot(I) && !(resistance_flags & ON_FIRE) && boobytrap && trapper) + if(I.get_heat() && !(resistance_flags & ON_FIRE) && boobytrap && trapper) var/turf/bombturf = get_turf(src) add_game_logs("has lit the [src] trapped with [boobytrap] by [key_name_log(trapper)] at [AREACOORD(bombturf)].", user) investigate_log("[key_name_log(user)] has lit the [src] trapped with [boobytrap] by [key_name_log(trapper)].", INVESTIGATE_BOMB) diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index 7824eeabbf9..94290e1b8a6 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -81,7 +81,7 @@ blow(I, user) return ATTACK_CHAIN_PROCEED_SUCCESS - if(state == BALLOON_BLOW && (is_sharp(I) || is_hot(I) || is_pointed(I))) + if(state == BALLOON_BLOW && (is_sharp(I) || I.get_heat() || is_pointed(I))) burst() return ATTACK_CHAIN_PROCEED_SUCCESS diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 27876c98834..77862f73fb0 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -252,7 +252,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ /obj/item/stack/sheet/mineral/plasma/attackby(obj/item/I, mob/user, params) - if(is_hot(I)) + if(I.get_heat()) log_and_set_aflame(user, I) return ATTACK_CHAIN_BLOCKED_ALL return ..() diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm index fd7cbe7613a..527f9ef9592 100644 --- a/code/game/objects/items/tools/welder.dm +++ b/code/game/objects/items/tools/welder.dm @@ -210,6 +210,8 @@ if(tool_enabled) . += "[initial(icon_state)]-on" +/obj/item/weldingtool/get_heat() + return tool_enabled * 2500 /obj/item/weldingtool/largetank name = "industrial welding tool" diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index 1623198aa22..ee6a58d783d 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -61,10 +61,12 @@ 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_PRE_ATTACKBY, PROC_REF(can_light)) /obj/item/clothing/mask/cigarette/Destroy() QDEL_NULL(reagents) STOP_PROCESSING(SSobj, src) + UnregisterSignal(src, COMSIG_ITEM_PRE_ATTACKBY) return ..() @@ -102,7 +104,7 @@ LIGHTERS ARE IN LIGHTERS.DM if(I.tool_enabled) light(span_notice("[user] непринуждённо зажига[pluralize_ru(user, "ет", "ют")] [declent_ru(ACCUSATIVE)] с помощью [I.declent_ru(GENITIVE)]. Чёрт, как же он[genderize_ru(user.gender, "", "а", "о", "и")] крут[genderize_ru(user.gender, "", "а", "о", "ы")].")) return ATTACK_CHAIN_PROCEED_SUCCESS - + if(istype(I, /obj/item/lighter/zippo)) add_fingerprint(user) var/obj/item/lighter/zippo/zippo = I @@ -216,6 +218,14 @@ LIGHTERS ARE IN LIGHTERS.DM . = ..() name = lit ? "lit [initial(name)]" : initial(name) +/obj/item/clothing/mask/cigarette/get_heat() + return lit * 1000 + +/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/proc/light(flavor_text = null) if(lit) @@ -314,6 +324,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/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm index 7331a194e12..f458944bd7a 100644 --- a/code/game/objects/items/weapons/grenades/ghettobomb.dm +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -151,7 +151,7 @@ if(active) return ATTACK_CHAIN_BLOCKED_ALL - if(is_hot(I)) + if(I.get_heat()) trigger(user) return ATTACK_CHAIN_BLOCKED_ALL diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm index d6a060b788f..2d408f0f126 100644 --- a/code/game/objects/items/weapons/lighters.dm +++ b/code/game/objects/items/weapons/lighters.dm @@ -37,6 +37,9 @@ else turn_off_lighter(user) +/obj/item/lighter/get_heat() + return lit * 1500 + /obj/item/lighter/proc/turn_on_lighter(mob/living/user) lit = TRUE w_class = WEIGHT_CLASS_BULKY @@ -359,6 +362,8 @@ var/init_name = initial(name) desc = lit ? "A [init_name]. This one is lit." : burnt ? "A [init_name]. This one has seen better days." : initial(desc) +/obj/item/match/get_heat() + return lit * 1000 /obj/item/match/proc/matchignite() if(!lit && !burnt) diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 619ac098e63..7ed800f792b 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -85,6 +85,8 @@ add_fingerprint(user) update_icon(UPDATE_ICON_STATE) +/obj/item/melee/energy/get_heat() + return active * 3500 /obj/item/melee/energy/axe name = "energy axe" diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index f10084aa8af..ac34dc01d10 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -328,7 +328,7 @@ if(opening) return ..() - if(is_hot(I) > 300) + if(I.get_heat() > 300) add_attack_logs(user, src, "Ignited using [I]", ATKLOG_FEW) investigate_log("was ignited by [key_name_log(user)]",INVESTIGATE_ATMOS) burnbabyburn() diff --git a/code/game/objects/structures/firepit.dm b/code/game/objects/structures/firepit.dm index 4325233b8b1..e4390bae6cc 100644 --- a/code/game/objects/structures/firepit.dm +++ b/code/game/objects/structures/firepit.dm @@ -32,7 +32,7 @@ I.fire_act() return ..() - if(is_hot(I)) + if(I.get_heat()) add_fingerprint(user) if(active) to_chat(user, span_warning("The [name] is already lit!")) diff --git a/code/game/objects/structures/fireplace.dm b/code/game/objects/structures/fireplace.dm index 9ca71103dfd..393d7f3255e 100644 --- a/code/game/objects/structures/fireplace.dm +++ b/code/game/objects/structures/fireplace.dm @@ -87,7 +87,7 @@ qdel(I) return ATTACK_CHAIN_BLOCKED_ALL - if(!is_hot(I)) + if(!I.get_heat()) return ..() add_fingerprint(user) diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 20fb8fa0021..90234dd7b89 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -209,7 +209,7 @@ /obj/structure/mineral_door/transparent/plasma/attackby(obj/item/I, mob/user, params) - var/hot_temp = is_hot(I) + var/hot_temp = I.get_heat() if(hot_temp) add_attack_logs(user, src, "Ignited using [I]", ATKLOG_FEW) investigate_log("was ignited by [key_name_log(user)]",INVESTIGATE_ATMOS) diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 035365cd653..5fc5e105dc6 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -131,11 +131,10 @@ /obj/structure/statue/plasma/attackby(obj/item/I, mob/user, params) - var/is_hot = is_hot(I) - if(is_hot > 300)//If the temperature of the object is over 300, then ignite + if(I.get_heat() > 300)//If the temperature of the object is over 300, then ignite add_attack_logs(user, src, "Ignited using [I]", ATKLOG_FEW) investigate_log("was ignited by [key_name_log(user)]",INVESTIGATE_ATMOS) - ignite(is_hot) + ignite(I.get_heat()) return ATTACK_CHAIN_BLOCKED_ALL return ..() @@ -458,7 +457,7 @@ /obj/structure/statue/unknown/attackby(obj/item/I, mob/user, params) - if(is_hot(I) && light(span_notice("[user] lights [src] with [I]."))) + if(I.get_heat() && light(span_notice("[user] lights [src] with [I]."))) add_fingerprint(user) return ATTACK_CHAIN_PROCEED_SUCCESS return ..() diff --git a/code/game/turfs/simulated/floor/mineral.dm b/code/game/turfs/simulated/floor/mineral.dm index fa13b7a6b03..18a80e5b655 100644 --- a/code/game/turfs/simulated/floor/mineral.dm +++ b/code/game/turfs/simulated/floor/mineral.dm @@ -42,11 +42,10 @@ if(ATTACK_CHAIN_CANCEL_CHECK(.)) return . - var/hot_temp = is_hot(I) - if(hot_temp > 300)//If the temperature of the object is over 300, then ignite + if(I.get_heat() > 300)//If the temperature of the object is over 300, then ignite add_attack_logs(user, src, "Ignited using [I]", ATKLOG_FEW) investigate_log("was ignited by [key_name_log(user)]",INVESTIGATE_ATMOS) - ignite(hot_temp) + ignite(I.get_heat()) return .|ATTACK_CHAIN_BLOCKED_ALL diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index 43c89d59964..cf0f2bc0786 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -104,13 +104,12 @@ . = ..() if(ATTACK_CHAIN_CANCEL_CHECK(.)) return . - var/hot_temp = is_hot(I) - if(hot_temp <= 300) //If the temperature of the object is over 300, then ignite + if(I.get_heat() <= 300) //If the temperature of the object is over 300, then ignite return . . |= ATTACK_CHAIN_BLOCKED_ALL add_attack_logs(user, src, "Ignited using [I]", ATKLOG_FEW) investigate_log("was ignited by [key_name_log(user)]",INVESTIGATE_ATMOS) - ignite(hot_temp) + ignite(I.get_heat()) diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index 0389339efb7..46ef56e8c81 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -63,3 +63,5 @@ activate() add_fingerprint(user) +/obj/item/assembly/igniter/get_heat() + return 20000 diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index ca610bbb5b6..f28db711ed4 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -437,7 +437,7 @@ /obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params) . = ..() - if(ATTACK_CHAIN_CANCEL_CHECK(.) || !is_hot(I)) + if(ATTACK_CHAIN_CANCEL_CHECK(.) || !I.get_heat()) return . add_fingerprint(user) diff --git a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm index 83b58bb84d5..29111b89d66 100644 --- a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm @@ -94,7 +94,7 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/attackby(obj/item/I, mob/user, params) . = ..() - if(!ATTACK_CHAIN_CANCEL_CHECK(.) && is_hot(I)) + if(!ATTACK_CHAIN_CANCEL_CHECK(.) && I.get_heat()) fire_act() diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index c84615e784f..10e776e817c 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -222,7 +222,7 @@ update_icon(UPDATE_OVERLAYS) // update underlays some day return ATTACK_CHAIN_PROCEED_SUCCESS - if(is_hot(I) && StartBurning()) + if(I.get_heat() && StartBurning()) add_fingerprint(user) lighter = user.ckey add_misc_logs(user, "lit a bonfire", src) diff --git a/code/modules/mining/lavaland/loot/colossus_loot.dm b/code/modules/mining/lavaland/loot/colossus_loot.dm index 2fe4ec95358..16fb4cfe780 100644 --- a/code/modules/mining/lavaland/loot/colossus_loot.dm +++ b/code/modules/mining/lavaland/loot/colossus_loot.dm @@ -36,7 +36,7 @@ var/activation_sound = 'sound/effects/break_stone.ogg' /obj/machinery/anomalous_crystal/New() - activation_method = pick("touch","laser","bullet","energy","bomb","mob_bump","weapon","speech") // "heat" removed due to lack of is_hot() + activation_method = pick("touch","laser","bullet","energy","bomb","mob_bump","weapon","speech") ..() /obj/machinery/anomalous_crystal/hear_talk(mob/speaker, list/message_pieces) diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 2a8eaffcab1..4007260ad78 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -188,7 +188,7 @@ to_chat(user, span_notice("You stamp the paper with your rubber stamp, however the ink ignites as you release the stamp.")) return ATTACK_CHAIN_PROCEED - if(is_hot(I)) + if(I.get_heat()) user.visible_message( span_danger("[user] brings [I] next to [src], but it does not catch a fire!"), span_danger("The [name] refuses to ignite!"), diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 8e87d85aa63..11594c7fe8d 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -447,7 +447,7 @@ if(resistance_flags & ON_FIRE) return ATTACK_CHAIN_BLOCKED_ALL - if(is_hot(I)) + if(I.get_heat()) if(!Adjacent(user)) //to prevent issues as a result of telepathically lighting a paper return ATTACK_CHAIN_BLOCKED_ALL diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index 50c13cab267..7483f177a49 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -40,7 +40,7 @@ if(resistance_flags & ON_FIRE) return ATTACK_CHAIN_BLOCKED_ALL - if(is_hot(I)) + if(I.get_heat()) if(!Adjacent(user)) //to prevent issues as a result of telepathically lighting a paper bundles return ATTACK_CHAIN_BLOCKED_ALL diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index bbbd0bde014..173bb691cf2 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -78,7 +78,7 @@ return ATTACK_CHAIN_PROCEED_SUCCESS . = ..() - if(ATTACK_CHAIN_CANCEL_CHECK(.) || !is_hot(I) || !Adjacent(user)) + if(ATTACK_CHAIN_CANCEL_CHECK(.) || !I.get_heat() || !Adjacent(user)) return . . |= ATTACK_CHAIN_BLOCKED_ALL diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm index a8b2336c9ce..1fb732aeeaf 100644 --- a/code/modules/paperwork/papershredder.dm +++ b/code/modules/paperwork/papershredder.dm @@ -129,7 +129,7 @@ if(resistance_flags & ON_FIRE) return ATTACK_CHAIN_BLOCKED_ALL - if(is_hot(I)) + if(I.get_heat()) add_fingerprint(user) if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(10)) user.visible_message( diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm index 0e3ccf77536..cf31118359d 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/I, mob/living/user, params) //Stolen from papercode . = ..() - if(ATTACK_CHAIN_CANCEL_CHECK(.) || !is_hot(I) || !Adjacent(user)) + if(ATTACK_CHAIN_CANCEL_CHECK(.) || !I.get_heat() || !Adjacent(user)) return . . |= ATTACK_CHAIN_BLOCKED_ALL diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 1e1cb7e47c7..27c6b0b3054 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -198,6 +198,8 @@ if(cell) . += "[src] is [round(cell.percent())]% charged." +/obj/item/gun/energy/plasmacutter/get_heat() + return 3800 /obj/item/gun/energy/plasmacutter/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/stack/sheet/mineral/plasma)) diff --git a/code/modules/projectiles/guns/throw/crossbow.dm b/code/modules/projectiles/guns/throw/crossbow.dm index a1afbe1724c..944dc57fbaf 100644 --- a/code/modules/projectiles/guns/throw/crossbow.dm +++ b/code/modules/projectiles/guns/throw/crossbow.dm @@ -269,7 +269,7 @@ /obj/item/arrow/rod/fire/attackby(obj/item/I, mob/user, params) . = ..() - if(!ATTACK_CHAIN_CANCEL_CHECK(.) && is_hot(I)) + if(!ATTACK_CHAIN_CANCEL_CHECK(.) && I.get_heat()) fire_up() From 04c9d4dc01a2b1abf6365f03d500928447c349b2 Mon Sep 17 00:00:00 2001 From: BeebBeebBoob Date: Wed, 8 Jan 2025 00:50:15 +0300 Subject: [PATCH 2/2] welder icon added --- code/game/objects/items/tools/welder.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm index 527f9ef9592..e689daa2784 100644 --- a/code/game/objects/items/tools/welder.dm +++ b/code/game/objects/items/tools/welder.dm @@ -5,6 +5,8 @@ desc = "A standard edition welder provided by Nanotrasen." icon = 'icons/obj/tools.dmi' icon_state = "welder" + righthand_file = 'icons/mob/inhands/tools_righthand.dmi' + lefthand_file = 'icons/mob/inhands/tools_lefthand.dmi' item_state = "welder" belt_icon = "welding_tool" flags = CONDUCT