diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 4da165e3c28..6b75b8b1a4f 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1694,6 +1694,26 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays) if(exposed_temperature > (T0C + heat_resistance)) take_damage(round(exposed_volume / 100), BURN, 0, 0) +/obj/machinery/door/airlock/wrench_act(mob/living/user, obj/item/tool) + if(!istype(tool, /obj/item/wrench/bolter)) + return + if(!locked) + return TRUE + if(!panel_open) + to_chat(user, "You do not have access to [src]'s bolts, open the panel first!") + return TRUE + if(security_level != AIRLOCK_SECURITY_NONE) + to_chat(user, "You do not have access to [src]'s bolts, remove the reinforcements first!") + return TRUE + + user.visible_message("[user] has stuck a wrench into [src] and is struggling to raise the bolts!", "You struggle to raise the bolts of [src].") + if(!do_after(user, 5 SECONDS, target = src)) + return TRUE + locked = FALSE + playsound(src, boltUp, 30, FALSE, 3) + update_icon() + return TRUE // Prevents you hitting the door if you're on harm intent, and you do the unbolt do_after. + #undef AIRLOCK_CLOSED #undef AIRLOCK_CLOSING #undef AIRLOCK_OPEN diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 7873e3a3d03..f5249ae9169 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -126,3 +126,11 @@ user.dust() user.visible_message("[user]'s soul coalesces into a new [W.name]!") return OBLITERATION + +/obj/item/wrench/bolter + name = "airlock bolt wrench" + desc = "A large wrench designed to interlock with an airlock's bolting mechanisms, allowing it to lift the bolts regardless of power." + icon_state = "bolter_wrench" + origin_tech = "materials=5;engineering=4" + w_class = WEIGHT_CLASS_NORMAL + toolspeed = 2.5 diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index a55ed297076..63f1eb4ca92 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -290,3 +290,13 @@ materials = list(MAT_SILVER = 4000, MAT_TITANIUM = 6000, MAT_URANIUM = 4000, MAT_PLASMA = 4000) build_path = /obj/item/clothing/shoes/magboots/gravity category = list("Equipment") + +/datum/design/bolterwrench + name = "Door Bolt Wrench" + desc = "A large wrench designed to interlock with an airlock's bolting mechanisms, allowing it to lift the bolts regardless of power." + id = "bolter_wrench" + req_tech = list("materials" = 6, "engineering" = 5) + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_TITANIUM = 3000) + build_path = /obj/item/wrench/bolter + category = list("Equipment") diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 144293a31c0..33942e4a03c 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 2d5bf273be5..01cee2e989d 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index ed5a31bc613..f37ea956eba 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ