From 61e12c78393dad329fcfc0caeb1394ca58824e11 Mon Sep 17 00:00:00 2001 From: atermonera Date: Sat, 5 Feb 2022 14:18:10 -0800 Subject: [PATCH 1/2] Fixes powertool sprites, fixes unfastening atmospheric devices --- code/ATMOSPHERICS/atmospherics.dm | 8 ++++---- .../components/binary_devices/passive_gate.dm | 2 +- code/ATMOSPHERICS/components/binary_devices/pump.dm | 2 +- code/ATMOSPHERICS/components/omni_devices/omni_base.dm | 2 +- code/ATMOSPHERICS/components/portables_connector.dm | 2 +- .../components/trinary_devices/trinary_base.dm | 2 +- code/ATMOSPHERICS/components/tvalve.dm | 2 +- code/ATMOSPHERICS/components/unary/heat_exchanger.dm | 2 +- code/ATMOSPHERICS/components/unary/outlet_injector.dm | 2 +- code/ATMOSPHERICS/components/unary/vent_pump.dm | 2 +- code/ATMOSPHERICS/components/unary/vent_scrubber.dm | 2 +- code/ATMOSPHERICS/components/valve.dm | 2 +- code/modules/tools/tools/crowbar.dm | 4 +++- code/modules/tools/tools/screwdriver.dm | 6 ++++-- 14 files changed, 22 insertions(+), 18 deletions(-) diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index ea1189c1cb..41b8c9fdf8 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -230,15 +230,15 @@ Pipelines + Other Objects -> Pipe network // layer = initial(layer) + PIPE_LAYER_OFFSET(piping_layer) /obj/machinery/atmospherics/default_deconstruction_wrench(var/obj/item/weapon/W as obj, var/mob/user as mob) - if (!W.get_tool_quality(TOOL_WRENCH)) + if(!W.get_tool_quality(TOOL_WRENCH)) //TRUE, skip return FALSE - if(!can_unwrench()) - to_chat(user, "You cannot unwrench \the [src], it too exerted due to internal pressure.") + if(!can_unwrench()) // TRUE, skil + to_chat(user, "You cannot unwrench \the [src], it too exerted due to internal pressure.") else playsound(src, W.usesound, 50, 1, preference = /datum/client_preference/pickup_sounds) to_chat(user, "You begin to unfasten \the [src]...") - if (do_after(user, 40 * W.get_tool_speed(TOOL_WRENCH))) + if(do_after(user, 40 * W.get_tool_speed(TOOL_WRENCH))) user.visible_message( \ "\The [user] unfastens \the [src].", \ "You have unfastened \the [src].", \ diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 456bf6761f..aee713afb8 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -284,7 +284,7 @@ if (unlocked) to_chat(user, "You cannot unwrench \the [src], turn it off first.") return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) #undef REGULATE_NONE #undef REGULATE_INPUT diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 0da858d11a..bb33687672 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -245,4 +245,4 @@ Thus, the two variables affect pump operation are set in New(): if (!(stat & NOPOWER) && use_power) to_chat(user, "You cannot unwrench this [src], turn it off first.") return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm index 3a2bd1a5f1..4a6dd9fd79 100644 --- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm +++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm @@ -82,7 +82,7 @@ /obj/machinery/atmospherics/omni/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(!W.get_tool_quality(TOOL_WRENCH)) return ..() - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) /obj/machinery/atmospherics/omni/attack_hand(user as mob) if(..()) diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm index 37b3611bb7..1714185022 100644 --- a/code/ATMOSPHERICS/components/portables_connector.dm +++ b/code/ATMOSPHERICS/components/portables_connector.dm @@ -154,4 +154,4 @@ return TRUE if(locate(/obj/machinery/portable_atmospherics, src.loc)) return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W,user) diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index 8279ed77c5..268e4eff9c 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -54,7 +54,7 @@ /obj/machinery/atmospherics/trinary/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if (!W.get_tool_quality(TOOL_WRENCH)) return ..() - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) // Housekeeping and pipe network stuff below /obj/machinery/atmospherics/trinary/get_neighbor_nodes_for_init() diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index d8f657689c..8665c85302 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -332,7 +332,7 @@ if(istype(src, /obj/machinery/atmospherics/tvalve/digital)) to_chat(user, "You cannot unwrench \the [src], it's too complicated.") return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) /obj/machinery/atmospherics/tvalve/mirrored diff --git a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm index ab800040ca..22320a66e5 100644 --- a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm +++ b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm @@ -73,4 +73,4 @@ if (level==1 && isturf(T) && !T.is_plating()) to_chat(user, "You must remove the plating first.") return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index 0ef41c04b5..9af1e7f2b5 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -163,5 +163,5 @@ /obj/machinery/atmospherics/unary/outlet_injector/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if (!W.get_tool_quality(TOOL_WRENCH)) return ..() - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 5a6081ef8e..0e014d3e12 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -425,7 +425,7 @@ if (node && node.level==1 && isturf(T) && !T.is_plating()) to_chat(user, "You must remove the plating first.") return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) #undef DEFAULT_PRESSURE_DELTA diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 8cf56c98cf..53b240cf83 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -273,7 +273,7 @@ if (node && node.level==1 && isturf(T) && !T.is_plating()) to_chat(user, "You must remove the plating first.") return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) /obj/machinery/atmospherics/unary/vent_scrubber/examine(mob/user) diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index aa9fc24120..3bdea5a88a 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -293,7 +293,7 @@ if (istype(src, /obj/machinery/atmospherics/valve/digital) && !src.allowed(user)) to_chat(user, "Access denied.") return TRUE - return default_deconstruction_wrench(user, W) + return default_deconstruction_wrench(W, user) /obj/machinery/atmospherics/valve/examine(mob/user) diff --git a/code/modules/tools/tools/crowbar.dm b/code/modules/tools/tools/crowbar.dm index 20e897685a..439f42a4fc 100644 --- a/code/modules/tools/tools/crowbar.dm +++ b/code/modules/tools/tools/crowbar.dm @@ -69,6 +69,7 @@ /obj/item/weapon/tool/hydraulic_cutter name = "jaws of life" desc = "A set of jaws of life, compressed through the magic of science." + icon = 'icons/obj/tools.dmi' icon_state = "jaws_pry" item_state = "jawsoflife" matter = list(MAT_METAL=150, MAT_SILVER=50) @@ -82,5 +83,6 @@ playsound(src, 'sound/items/change_jaws.ogg', 50, 1) set_tool_quality(TOOL_CROWBAR, state ? TOOL_QUALITY_GOOD : TOOL_QUALITY_NONE) set_tool_quality(TOOL_WIRECUTTER, state ? TOOL_QUALITY_NONE : TOOL_QUALITY_GOOD) + icon_state = state ? "jaws_pry" : "jaws_cutter" + to_chat(user, "You attach the [state ? "prying" : "cutting"] jaws to [src].") state = !state - to_chat(user, "You attach the cutting jaws to [src].") diff --git a/code/modules/tools/tools/screwdriver.dm b/code/modules/tools/tools/screwdriver.dm index 43c8cebb13..d5f64123f9 100644 --- a/code/modules/tools/tools/screwdriver.dm +++ b/code/modules/tools/tools/screwdriver.dm @@ -106,6 +106,7 @@ /obj/item/weapon/tool/powerdrill name = "hand drill" desc = "A simple powered hand drill." + icon = 'icons/obj/tools.dmi' icon_state = "drill_screw" item_state = "drill" matter = list(MAT_STEEL = 150, MAT_SILVER = 50) @@ -126,5 +127,6 @@ playsound(src,'sound/items/change_drill.ogg',50,1) set_tool_quality(TOOL_SCREWDRIVER, state ? TOOL_QUALITY_GOOD : TOOL_QUALITY_NONE) set_tool_quality(TOOL_WRENCH, state ? TOOL_QUALITY_NONE : TOOL_QUALITY_GOOD) - state = !state - to_chat(user, "You attach the bolt driver bit to [src].") \ No newline at end of file + icon_state = state ? "drill_screw" : "drill_bolt" + to_chat(user, "You attach the [state ? "screw" : "bolt"] driver bit to [src].") + state = !state \ No newline at end of file From ac5e245c41db5c03352e32cf4eaa13cda21fb9f9 Mon Sep 17 00:00:00 2001 From: atermonera Date: Sat, 5 Feb 2022 14:40:19 -0800 Subject: [PATCH 2/2] Fixes robosurgery --- code/_helpers/unsorted.dm | 8 ++++---- code/modules/surgery/robotics.dm | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 48a4445e19..d6de4f25fe 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1124,13 +1124,13 @@ Turf and target are seperate in case you want to teleport some distance from a t // The RNG with table/rollerbeds comes into play in do_surgery() so that fail_step() can be used instead. /proc/can_operate(mob/living/carbon/M, mob/living/user) // You can, technically, always operate on yourself after standing still. Inadvised, but you can. - if(istype(user) && \ + return M.lying || \ + ( M == user && \ user.allow_self_surgery && \ user.a_intent == I_HELP && \ - !M.isSynthetic()) - return TRUE - return M.lying + !M.isSynthetic() + ) // Returns an instance of a valid surgery surface. /mob/living/proc/get_surgery_surface(mob/living/user) diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index bc28847768..1f609c5486 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -34,7 +34,7 @@ /obj/item/weapon/material/knife = 50 ) - allowed_procs = list(IS_SCREWDRIVER = 100) + allowed_procs = list(TOOL_SCREWDRIVER = 100) req_open = 0 @@ -73,7 +73,7 @@ /obj/item/weapon/material/kitchen/utensil = 50 ) - allowed_procs = list(IS_CROWBAR = 100) + allowed_procs = list(TOOL_CROWBAR = 100) min_duration = 30 max_duration = 40 @@ -110,7 +110,7 @@ /obj/item/weapon/material/kitchen/utensil = 50 ) - allowed_procs = list(IS_CROWBAR = 100) + allowed_procs = list(TOOL_CROWBAR = 100) min_duration = 70 max_duration = 100 @@ -237,7 +237,7 @@ /obj/item/weapon/surgical/bonegel = 30, \ ) - allowed_procs = list(IS_SCREWDRIVER = 100) + allowed_procs = list(TOOL_SCREWDRIVER = 100) min_duration = 70 max_duration = 90 @@ -355,7 +355,7 @@ /////////////////////////////////////////////////////////////// /decl/surgery_step/robotics/attach_organ_robotic - allowed_procs = list(IS_SCREWDRIVER = 100) + allowed_procs = list(TOOL_SCREWDRIVER = 100) min_duration = 100 max_duration = 120 @@ -405,7 +405,7 @@ /decl/surgery_step/robotics/install_mmi allowed_tools = list( - /obj/item/device/mmi = 100 + /obj/item/device/mmi = 100 ) min_duration = 60 @@ -487,7 +487,7 @@ /decl/surgery_step/robotics/install_nymph allowed_tools = list( - /obj/item/weapon/holder/diona = 100 + /obj/item/weapon/holder/diona = 100 ) min_duration = 60