diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index aa2a8734a6b..d4f25fb986b 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -237,11 +237,29 @@ playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) return else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.welding) - message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") - log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") - user << "\red You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done." var/obj/structure/reagent_dispensers/fueltank/tank = O - tank.explode() + if(tank.armed) + user << "You are already heating the [O]" + return + tank.armed = 1 + user.visible_message("[user] begins heating the [O].", "You start to heat the [O].") + message_admins("[key_name_admin(user)] is attempting a welder bomb at ([loc.x],[loc.y],[loc.z]) - JMP") + message_mods("[key_name_admin(user)] is attempting a welder bomb at ([loc.x],[loc.y],[loc.z]) - JMP") + if(do_after(user,100)) + if(tank.defuse) + user.visible_message("[user] melts some of the framework on the [O].", "You melt some of the framework.") + tank.defuse = 0 + tank.armed = 0 + return + message_admins("[key_name_admin(user)] triggered a fueltank explosion.") + log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") + user << "\red That was stupid of you." + tank.explode() + return + else + tank.armed = 0 + user << "You thought better of yourself." + return return if (src.welding) remove_fuel(1) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index f259889aee3..5b36998d166 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -88,6 +88,8 @@ icon_state = "weldtank" amount_per_transfer_from_this = 10 var/modded = 0 + var/defuse = 0 + var/armed = 0 var/obj/item/device/assembly_holder/rig = null New() ..()