diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index e1a9e78f5b3..83ce512ebd9 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -202,6 +202,8 @@
if(user.a_intent == INTENT_HARM)
return
. = TRUE
+ if(operating)
+ return
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
return
try_to_crowbar(I, user)
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 43dada83ca9..17b5756e581 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -360,6 +360,7 @@
constructionStep = CONSTRUCTION_WIRES_EXPOSED
update_icon()
return
+ if(CONSTRUCTION_NOCIRCUIT)
if(istype(C, /obj/item/firelock_electronics))
user.visible_message("[user] starts adding [C] to [src]...", \
"You begin adding a circuit board to [src]...")
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 5991bf0006f..f1ac4e88bbb 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -402,18 +402,19 @@ Class Procs:
/obj/machinery/proc/default_deconstruction_crowbar(user, obj/item/I, ignore_panel = 0)
if(I.tool_behaviour != TOOL_CROWBAR)
return FALSE
- if(!I.use_tool(src, user, 0, volume = I.tool_volume))
+ if(!I.use_tool(src, user, 0, volume = 0))
return FALSE
if((panel_open || ignore_panel) && !(flags & NODECONSTRUCT))
deconstruct(TRUE)
to_chat(user, "You disassemble [src].")
+ I.play_tool_sound(user, I.tool_volume)
return 1
return 0
/obj/machinery/proc/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/I)
if(I.tool_behaviour != TOOL_SCREWDRIVER)
return FALSE
- if(!I.use_tool(src, user, 0, volume = I.tool_volume))
+ if(!I.use_tool(src, user, 0, volume = 0))
return FALSE
if(!(flags & NODECONSTRUCT))
if(!panel_open)
@@ -424,22 +425,25 @@ Class Procs:
panel_open = 0
icon_state = icon_state_closed
to_chat(user, "You close the maintenance hatch of [src].")
+ I.play_tool_sound(user, I.tool_volume)
return 1
return 0
/obj/machinery/proc/default_change_direction_wrench(mob/user, obj/item/I)
if(I.tool_behaviour != TOOL_WRENCH)
return FALSE
- if(!I.use_tool(src, user, 0, volume = I.tool_volume))
+ if(!I.use_tool(src, user, 0, volume = 0))
return FALSE
if(panel_open)
dir = turn(dir,-90)
to_chat(user, "You rotate [src].")
+ I.play_tool_sound(user, I.tool_volume)
return TRUE
return FALSE
/obj/machinery/default_unfasten_wrench(mob/user, obj/item/I, time)
- if(..())
+ . = ..()
+ if(.)
power_change()
/obj/machinery/proc/exchange_parts(mob/user, obj/item/storage/part_replacer/W)
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 7a0cd5e8f03..00d9f94a356 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -307,13 +307,12 @@
/obj/machinery/vending/wirecutter_act(mob/user, obj/item/I)
. = TRUE
- if(!I.use_tool(src, user, 0, volume = I.tool_volume))
- return
- wires.Interact(user)
+ if(I.use_tool(src, user, 0, volume = 0))
+ wires.Interact(user)
/obj/machinery/vending/wrench_act(mob/user, obj/item/I)
. = TRUE
- if(!I.use_tool(src, user, 0, volume = I.tool_volume))
+ if(!I.use_tool(src, user, 0, volume = 0))
return
default_unfasten_wrench(user, I, time = 60)
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 355bb7c89b7..0d0a8ff8d36 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -293,7 +293,7 @@ a {
return FALSE
if(I.tool_behaviour != TOOL_WRENCH)
return FALSE
- if(!I.use_tool(src, user, 0, volume = I.tool_volume))
+ if(!I.tool_use_check(user, 0))
return FALSE
if(!(flags & NODECONSTRUCT))
to_chat(user, "Now [anchored ? "un" : ""]securing [name].")
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 264c5afd088..1f7fd24d803 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -241,7 +241,7 @@
return
TOOL_ATTEMPT_DISMANTLE_MESSAGE
if(I.use_tool(src, user, 20, volume = I.tool_volume) && deconstruction_ready)
- deconstruct(TRUE, 1)
+ deconstruct(TRUE)
TOOL_DISMANTLE_SUCCESS_MESSAGE
/obj/structure/table/wrench_act(mob/user, obj/item/I)
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 21992f43704..b29544c5755 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -114,36 +114,38 @@
return 0
..()
-/obj/item/gun/projectile/revolver/detective/attackby(obj/item/A, mob/user, params)
- if(istype(A, /obj/item/screwdriver))
- if(magazine.caliber == "38")
- to_chat(user, "You begin to reinforce the barrel of [src]...")
- if(magazine.ammo_count())
- afterattack(user, user) //you know the drill
- user.visible_message("[src] goes off!", "[src] goes off in your face!")
- return
- if(do_after(user, 30 * A.toolspeed, target = src))
- if(magazine.ammo_count())
- to_chat(user, "You can't modify it!")
- return
- magazine.caliber = "357"
- desc = "The barrel and chamber assembly seems to have been modified."
- to_chat(user, "You reinforce the barrel of [src]. Now it will fire .357 rounds.")
- else
- to_chat(user, "You begin to revert the modifications to [src]...")
- if(magazine.ammo_count())
- afterattack(user, user) //and again
- user.visible_message("[src] goes off!", "[src] goes off in your face!")
- return
- if(do_after(user, 30 * A.toolspeed, target = src))
- if(magazine.ammo_count())
- to_chat(user, "You can't modify it!")
- return
- magazine.caliber = "38"
- desc = initial(desc)
- to_chat(user, "You remove the modifications on [src]. Now it will fire .38 rounds.")
+/obj/item/gun/projectile/revolver/detective/screwdriver_act(mob/user, obj/item/I)
+ . = TRUE
+ if(!I.tool_use_check(user, 0))
+ return
+ if(magazine.caliber == "38")
+ to_chat(user, "You begin to reinforce the barrel of [src]...")
+ if(magazine.ammo_count())
+ afterattack(user, user) //you know the drill
+ user.visible_message("[src] goes off!", "[src] goes off in your face!")
+ return
+ if(!I.use_tool(src, user, 30, volume = I.tool_volume))
+ return
+ if(magazine.ammo_count())
+ to_chat(user, "You can't modify it!")
+ return
+ magazine.caliber = "357"
+ desc = "The barrel and chamber assembly seems to have been modified."
+ to_chat(user, "You reinforce the barrel of [src]. Now it will fire .357 rounds.")
else
- return ..()
+ to_chat(user, "You begin to revert the modifications to [src]...")
+ if(magazine.ammo_count())
+ afterattack(user, user) //and again
+ user.visible_message("[src] goes off!", "[src] goes off in your face!")
+ return
+ if(!I.use_tool(src, user, 30, volume = I.tool_volume))
+ return
+ if(magazine.ammo_count())
+ to_chat(user, "You can't modify it!")
+ return
+ magazine.caliber = "38"
+ desc = initial(desc)
+ to_chat(user, "You remove the modifications on [src]. Now it will fire .38 rounds.")
/obj/item/gun/projectile/revolver/fingergun //Summoned by the Finger Gun spell, from advanced mimery traitor item
name = "\improper finger gun"