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/_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
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