diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
index 6627d15d73..09335cdf33 100644
--- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
@@ -89,11 +89,11 @@
/obj/machinery/atmospherics/binary/circulator/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
anchored = !anchored
user.visible_message("[user.name] [anchored ? "secures" : "unsecures"] the bolts holding [src.name] to the floor.", \
"You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
if(anchored)
if(dir & (NORTH|SOUTH))
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
index 6a51dc41b1..fa88ef2ab2 100644
--- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
@@ -11,15 +11,15 @@
desc = "A one-way air valve that can be used to regulate input or output pressure, and flow rate. Does not require power."
use_power = 0
-
+
var/unlocked = 0 //If 0, then the valve is locked closed, otherwise it is open(-able, it's a one-way valve so it closes if gas would flow backwards).
var/target_pressure = ONE_ATMOSPHERE
var/max_pressure_setting = 15000 //kPa
var/set_flow_rate = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
var/regulate_mode = REGULATE_OUTPUT
-
+
var/flowing = 0 //for icons - becomes zero if the valve closes itself due to regulation mode
-
+
var/frequency = 0
var/id = null
var/datum/radio_frequency/radio_connection
@@ -46,9 +46,9 @@
/obj/machinery/atmospherics/binary/passive_gate/process()
..()
-
+
last_flow_rate = 0
-
+
if(!unlocked)
return 0
@@ -61,35 +61,35 @@
pressure_delta = input_starting_pressure - target_pressure
if (REGULATE_OUTPUT)
pressure_delta = target_pressure - output_starting_pressure
-
+
//-1 if pump_gas() did not move any gas, >= 0 otherwise
var/returnval = -1
if((regulate_mode == REGULATE_NONE || pressure_delta > 0.01) && (air1.temperature > 0 || air2.temperature > 0)) //since it's basically a valve, it makes sense to check both temperatures
flowing = 1
-
+
//flow rate limit
var/transfer_moles = (set_flow_rate/air1.volume)*air1.total_moles
-
+
//Figure out how much gas to transfer to meet the target pressure.
switch (regulate_mode)
if (REGULATE_INPUT)
transfer_moles = min(transfer_moles, calculate_transfer_moles(air2, air1, pressure_delta, (network1)? network1.volume : 0))
if (REGULATE_OUTPUT)
transfer_moles = min(transfer_moles, calculate_transfer_moles(air1, air2, pressure_delta, (network2)? network2.volume : 0))
-
+
//pump_gas() will return a negative number if no flow occurred
returnval = pump_gas_passive(src, air1, air2, transfer_moles)
-
+
if (returnval >= 0)
if(network1)
network1.update = 1
if(network2)
network2.update = 1
-
+
if (last_flow_rate)
flowing = 1
-
+
update_icon()
@@ -178,7 +178,7 @@
// this is the data which will be sent to the ui
var/data[0]
-
+
data = list(
"on" = unlocked,
"pressure_set" = round(target_pressure*100), //Nano UI can't handle rounded non-integers, apparently.
@@ -203,16 +203,16 @@
/obj/machinery/atmospherics/binary/passive_gate/Topic(href,href_list)
if(..()) return 1
-
+
if(href_list["toggle_valve"])
unlocked = !unlocked
-
+
if(href_list["regulate_mode"])
switch(href_list["regulate_mode"])
if ("off") regulate_mode = REGULATE_NONE
if ("input") regulate_mode = REGULATE_INPUT
if ("output") regulate_mode = REGULATE_OUTPUT
-
+
switch(href_list["set_press"])
if ("min")
target_pressure = 0
@@ -221,7 +221,7 @@
if ("set")
var/new_pressure = input(usr,"Enter new output pressure (0-[max_pressure_setting]kPa)","Pressure Control",src.target_pressure) as num
src.target_pressure = between(0, new_pressure, max_pressure_setting)
-
+
switch(href_list["set_flow_rate"])
if ("min")
set_flow_rate = 0
@@ -230,7 +230,7 @@
if ("set")
var/new_flow_rate = input(usr,"Enter new flow rate limit (0-[air1.volume]kPa)","Flow Rate Control",src.set_flow_rate) as num
src.set_flow_rate = between(0, new_flow_rate, air1.volume)
-
+
usr.set_machine(src) //Is this even needed with NanoUI?
src.update_icon()
src.add_fingerprint(usr)
@@ -248,9 +248,9 @@
user << "You cannot unwrench \the [src], it too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm
index d0417e14dd..1b576e1042 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pipeturbine.dm
@@ -86,6 +86,7 @@
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored
+ playsound(src, W.usesound, 50, 1)
user << "You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor."
if(anchored)
@@ -257,6 +258,7 @@
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored
+ playsound(src, W.usesound, 50, 1)
turbine = null
user << "You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor."
updateConnection()
diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm
index 16f5c0a586..126c6391d4 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm
@@ -227,9 +227,9 @@ Thus, the two variables affect pump operation are set in New():
user << "You cannot unwrench this [src], it too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
index ac7d88301a..6690c7c257 100644
--- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
@@ -91,8 +91,8 @@
add_fingerprint(user)
return 1
user << "You begin to unfasten \the [src]..."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 40))
+ playsound(src, W.usesound, 50, 1)
+ if(do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm
index 9668f7a5a3..c39ca8469b 100644
--- a/code/ATMOSPHERICS/components/portables_connector.dm
+++ b/code/ATMOSPHERICS/components/portables_connector.dm
@@ -142,9 +142,9 @@
user << "You cannot unwrench \the [src], it too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
index 2778566923..ef6a29b910 100755
--- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
@@ -137,9 +137,9 @@
user << "You cannot unwrench \the [src], it too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
index a163c122f0..f8c3e9ff67 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
@@ -68,7 +68,7 @@
air1.volume = ATMOS_DEFAULT_VOLUME_MIXER
air2.volume = ATMOS_DEFAULT_VOLUME_MIXER
air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5
-
+
if (!mixing_inputs)
mixing_inputs = list(src.air1 = node1_concentration, src.air2 = node2_concentration)
@@ -112,9 +112,9 @@
user << "You cannot unwrench \the [src], it too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm
index a7deb70aba..81a870743e 100644
--- a/code/ATMOSPHERICS/components/tvalve.dm
+++ b/code/ATMOSPHERICS/components/tvalve.dm
@@ -354,9 +354,9 @@
user << "You cannot unwrench \the [src], it too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm
index 79e43a8e1c..533e84b8f9 100644
--- a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm
+++ b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm
@@ -78,9 +78,9 @@
user << "You cannot unwrench \the [src], it is too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index c6121dea31..b44f8768ff 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -358,9 +358,9 @@
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user))
user << "Now welding the vent."
- if(do_after(user, 20))
+ if(do_after(user, 20 * WT.toolspeed))
if(!src || !WT.isOn()) return
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(src.loc, WT.usesound, 50, 1)
if(!welded)
user.visible_message("\The [user] welds the vent shut.", "You weld the vent shut.", "You hear welding.")
welded = 1
@@ -407,9 +407,9 @@
user << "You cannot unwrench \the [src], it is too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index 07e3f12524..539ab2ecc8 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -278,9 +278,9 @@
user << "You cannot unwrench \the [src], it is too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm
index 01e6e977bb..7fa8d60a77 100644
--- a/code/ATMOSPHERICS/components/valve.dm
+++ b/code/ATMOSPHERICS/components/valve.dm
@@ -298,9 +298,9 @@
user << "You cannot unwrench \the [src], it is too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm
index c23fc16555..9566be9947 100644
--- a/code/ATMOSPHERICS/pipes.dm
+++ b/code/ATMOSPHERICS/pipes.dm
@@ -90,9 +90,9 @@
user << "You cannot unwrench \the [src], it is too exerted due to internal pressure."
add_fingerprint(user)
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm
index f3b448ee49..1092452e6d 100644
--- a/code/__defines/misc.dm
+++ b/code/__defines/misc.dm
@@ -142,6 +142,14 @@
#define DEFAULT_TABLE_MATERIAL "plastic"
#define DEFAULT_WALL_MATERIAL "steel"
+#define MAT_STEEL "steel"
+#define MAT_GLASS "glass"
+#define MAT_SILVER "silver"
+#define MAT_GOLD "gold"
+#define MAT_TITANIUM "titanium"
+#define MAT_PHORON "phoron"
+#define MAT_DIAMOND "diamond"
+
#define SHARD_SHARD "shard"
#define SHARD_SHRAPNEL "shrapnel"
#define SHARD_STONE_PIECE "piece"
diff --git a/code/game/gamemodes/technomancer/spells/flame_tongue.dm b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
index 01b923ead8..33b4b6204d 100644
--- a/code/game/gamemodes/technomancer/spells/flame_tongue.dm
+++ b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
@@ -28,6 +28,7 @@
/obj/item/weapon/weldingtool/spell
name = "flame"
+ eye_safety_modifier = 3
/obj/item/weapon/weldingtool/spell/process()
return
diff --git a/code/game/machinery/CableLayer.dm b/code/game/machinery/CableLayer.dm
index 2e10ed3b1b..a6c161982d 100644
--- a/code/game/machinery/CableLayer.dm
+++ b/code/game/machinery/CableLayer.dm
@@ -41,7 +41,7 @@
m = min(m, cable.amount)
m = min(m, 30)
if(m)
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, O.usesound, 50, 1)
use_cable(m)
var/obj/item/stack/cable_coil/CC = new (get_turf(src))
CC.amount = m
diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm
index 5f0860606b..3aaeafe9d0 100644
--- a/code/game/machinery/atmoalter/meter.dm
+++ b/code/game/machinery/atmoalter/meter.dm
@@ -67,13 +67,13 @@
/obj/machinery/meter/examine(mob/user)
var/t = "A gas flow meter. "
-
+
if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/observer/dead)))
t += "You are too far away to read it."
-
+
else if(stat & (NOPOWER|BROKEN))
t += "The display is off."
-
+
else if(src.target)
var/datum/gas_mixture/environment = target.return_air()
if(environment)
@@ -82,7 +82,7 @@
t += "The sensor error light is blinking."
else
t += "The connect error light is blinking."
-
+
user << t
/obj/machinery/meter/Click()
@@ -90,15 +90,15 @@
if(istype(usr, /mob/living/silicon/ai)) // ghosts can call ..() for examine
usr.examinate(src)
return 1
-
+
return ..()
/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src]..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"\The [user] unfastens \the [src].", \
"You have unfastened \the [src].", \
diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm
index deee8ed76b..cb0a67cc04 100644
--- a/code/game/machinery/atmoalter/portable_atmospherics.dm
+++ b/code/game/machinery/atmoalter/portable_atmospherics.dm
@@ -114,6 +114,7 @@
disconnect()
user << "You disconnect \the [src] from the port."
update_icon()
+ playsound(src, W.usesound, 50, 1)
return
else
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc
@@ -121,6 +122,7 @@
if(connect(possible_port))
user << "You connect \the [src] to the port."
update_icon()
+ playsound(src, W.usesound, 50, 1)
return
else
user << "\The [src] failed to connect to the port."
@@ -173,6 +175,7 @@
return
user.visible_message("[user] opens the panel on [src] and removes [cell].", "You open the panel on [src] and remove [cell].")
+ playsound(src, I.usesound, 50, 1)
cell.add_fingerprint(user)
cell.loc = src.loc
cell = null
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index 70a6b3c233..860a1135a1 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -211,7 +211,7 @@
return
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
return
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 6885f92a02..05ef232595 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -140,7 +140,7 @@
panel_open = !panel_open
user.visible_message("[user] screws the camera's panel [panel_open ? "open" : "closed"]!",
"You screw the camera's panel [panel_open ? "open" : "closed"].")
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
else if((iswirecutter(W) || ismultitool(W)) && panel_open)
interact(user)
@@ -374,10 +374,10 @@
// Do after stuff here
user << "You start to weld the [src].."
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
+ playsound(src.loc, WT.usesound, 50, 1)
WT.eyecheck(user)
busy = 1
- if(do_after(user, 100))
+ if(do_after(user, 100 * WT.toolspeed))
busy = 0
if(!WT.isOn())
return 0
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index b442d3afa9..44cd61d1d9 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -30,7 +30,7 @@
if(0)
// State 0
if(iswrench(W) && isturf(src.loc))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You wrench the assembly into place."
anchored = 1
state = 1
@@ -48,7 +48,7 @@
return
else if(iswrench(W))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You unattach the assembly from its place."
anchored = 0
update_icon()
@@ -78,7 +78,7 @@
if(3)
// State 3
if(isscrewdriver(W))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+using_map.station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_DEFAULT))
if(!input)
@@ -118,7 +118,7 @@
else if(iswirecutter(W))
new/obj/item/stack/cable_coil(get_turf(src), 2)
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
user << "You cut the wires from the circuits."
state = 2
return
@@ -136,7 +136,7 @@
var/obj/U = locate(/obj) in upgrades
if(U)
user << "You unattach an upgrade from the assembly."
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
U.loc = get_turf(src)
upgrades -= U
return
@@ -161,10 +161,10 @@
return 0
user << "You start to weld the [src].."
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
+ playsound(src.loc, WT.usesound, 50, 1)
WT.eyecheck(user)
busy = 1
- if(do_after(user, 20))
+ if(do_after(user, 20 * WT.toolspeed))
busy = 0
if(!WT.isOn())
return 0
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 2f87553e8e..6cb9e63eb5 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -68,7 +68,7 @@
anchored = !anchored
user << "You [anchored ? "attach" : "detach"] the cell charger [anchored ? "to" : "from"] the ground"
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
/obj/machinery/cell_charger/attack_hand(mob/user)
if(charging)
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 6a055bdfc1..cf06523f6e 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -234,7 +234,7 @@
connected = null
else
anchored = 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(anchored)
user.visible_message("[user] secures [src] to the floor.", "You secure [src] to the floor.")
else
diff --git a/code/game/machinery/computer/ai_core.dm b/code/game/machinery/computer/ai_core.dm
index 0934f14776..80633f4ea4 100644
--- a/code/game/machinery/computer/ai_core.dm
+++ b/code/game/machinery/computer/ai_core.dm
@@ -15,8 +15,8 @@
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
user << "You wrench the frame into place."
anchored = 1
state = 1
@@ -25,16 +25,16 @@
if(!WT.isOn())
user << "The welder must be on for this task."
return
- playsound(loc, 'sound/items/Welder.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(loc, WT.usesound, 50, 1)
+ if(do_after(user, 20 * WT.toolspeed))
if(!src || !WT.remove_fuel(0, user)) return
user << "You deconstruct the frame."
new /obj/item/stack/material/plasteel( loc, 4)
qdel(src)
if(1)
if(istype(P, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
user << "You unfasten the frame."
anchored = 0
state = 0
@@ -46,12 +46,12 @@
user.drop_item()
P.loc = src
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You screw the circuit board into place."
state = 2
icon_state = "2"
if(istype(P, /obj/item/weapon/crowbar) && circuit)
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You remove the circuit board."
state = 1
icon_state = "0"
@@ -59,7 +59,7 @@
circuit = null
if(2)
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You unfasten the circuit board."
state = 1
icon_state = "1"
@@ -81,7 +81,7 @@
if (brain)
user << "Get that brain out of there first"
else
- playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You remove the cables."
state = 2
icon_state = "2"
@@ -146,7 +146,7 @@
icon_state = "3b"
if(istype(P, /obj/item/weapon/crowbar) && brain)
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You remove the brain."
brain.loc = loc
brain = null
@@ -154,7 +154,7 @@
if(4)
if(istype(P, /obj/item/weapon/crowbar))
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You remove the glass panel."
state = 3
if (brain)
@@ -165,7 +165,7 @@
return
if(istype(P, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You connect the monitor."
if(!brain)
var/open_for_latejoin = alert(user, "Would you like this core to be open for latejoining AIs?", "Latejoin", "Yes", "Yes", "No") == "Yes"
@@ -229,7 +229,8 @@
else if(istype(W, /obj/item/weapon/wrench))
if(anchored)
user.visible_message("\The [user] starts to unbolt \the [src] from the plating...")
- if(!do_after(user,40))
+ playsound(src, W.usesound, 50, 1)
+ if(!do_after(user,40 * W.toolspeed))
user.visible_message("\The [user] decides not to unbolt \the [src].")
return
user.visible_message("\The [user] finishes unfastening \the [src]!")
@@ -237,7 +238,8 @@
return
else
user.visible_message("\The [user] starts to bolt \the [src] to the plating...")
- if(!do_after(user,40))
+ playsound(src, W.usesound, 50, 1)
+ if(!do_after(user,40 * W.toolspeed))
user.visible_message("\The [user] decides not to bolt \the [src].")
return
user.visible_message("\The [user] finishes fastening down \the [src]!")
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 54734929c8..6d7243c36c 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -14,8 +14,8 @@
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
user << "You wrench the frame into place."
src.anchored = 1
src.state = 1
@@ -24,16 +24,16 @@
if(!WT.remove_fuel(0, user))
user << "The welding tool must be on to complete this task."
return
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, WT.usesound, 50, 1)
+ if(do_after(user, 20 * WT.toolspeed))
if(!src || !WT.isOn()) return
user << "You deconstruct the frame."
new /obj/item/stack/material/steel( src.loc, 5 )
qdel(src)
if(1)
if(istype(P, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
user << "You unfasten the frame."
src.anchored = 0
src.state = 0
@@ -49,12 +49,12 @@
else
user << "This frame does not accept circuit boards of this type!"
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You screw the circuit board into place."
src.state = 2
src.icon_state = "2"
if(istype(P, /obj/item/weapon/crowbar) && circuit)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the circuit board."
src.state = 1
src.icon_state = "0"
@@ -62,7 +62,7 @@
src.circuit = null
if(2)
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You unfasten the circuit board."
src.state = 1
src.icon_state = "1"
@@ -80,7 +80,7 @@
icon_state = "3"
if(3)
if(istype(P, /obj/item/weapon/wirecutters))
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the cables."
src.state = 2
src.icon_state = "2"
@@ -101,13 +101,13 @@
src.icon_state = "4"
if(4)
if(istype(P, /obj/item/weapon/crowbar))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the glass panel."
src.state = 3
src.icon_state = "3"
new /obj/item/stack/material/glass( src.loc, 2 )
if(istype(P, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You connect the monitor."
var/B = new src.circuit.build_path ( src.loc )
src.circuit.construct(B)
diff --git a/code/game/machinery/computer/camera_circuit.dm b/code/game/machinery/computer/camera_circuit.dm
index 8db87c36ae..436703f724 100644
--- a/code/game/machinery/computer/camera_circuit.dm
+++ b/code/game/machinery/computer/camera_circuit.dm
@@ -41,6 +41,7 @@
else if(istype(I,/obj/item/weapon/screwdriver))
secured = !secured
user.visible_message("The [src] can [secured ? "no longer" : "now"] be modified.")
+ playsound(src, I.usesound, 50, 1)
updateBuildPath()
return
diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm
index 8db5ebd1b8..7b34c026d4 100644
--- a/code/game/machinery/computer/pod.dm
+++ b/code/game/machinery/computer/pod.dm
@@ -53,7 +53,7 @@
/*
/obj/machinery/computer/pod/attackby(I as obj, user as mob)
if(istype(I, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
if(do_after(user, 20))
if(stat & BROKEN)
user << "The broken glass falls out."
diff --git a/code/game/machinery/computer3/buildandrepair.dm b/code/game/machinery/computer3/buildandrepair.dm
index a064d8ce1c..f780e42b27 100644
--- a/code/game/machinery/computer3/buildandrepair.dm
+++ b/code/game/machinery/computer3/buildandrepair.dm
@@ -79,8 +79,8 @@
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
user << "You wrench the frame into place."
src.anchored = 1
src.state = 1
@@ -89,16 +89,16 @@
if(!WT.remove_fuel(0, user))
user << "The welding tool must be on to complete this task."
return
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, WT.usesound, 50, 1)
+ if(do_after(user, 20 * WT.toolspeed))
if(!src || !WT.isOn()) return
user << "You deconstruct the frame."
new /obj/item/stack/material/steel( src.loc, 5 )
qdel(src)
if(1)
if(istype(P, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
user << "You unfasten the frame."
src.anchored = 0
src.state = 0
@@ -114,12 +114,12 @@
else
user << "This frame does not accept circuit boards of this type!"
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You screw the circuit board into place."
src.state = 2
src.icon_state = "2"
if(istype(P, /obj/item/weapon/crowbar) && circuit)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the circuit board."
src.state = 1
src.icon_state = "0"
@@ -127,15 +127,15 @@
src.circuit = null
if(2)
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You unfasten the circuit board."
src.state = 1
src.icon_state = "1"
if(istype(P, /obj/item/weapon/crowbar))
if(battery)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
- if(do_after(10))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(10 * P.toolspeed))
battery.loc = loc
user << "You remove [battery]."
battery = null
@@ -168,7 +168,7 @@
if(components.len)
user << "There are parts in the way!"
return
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the cables."
src.state = 2
src.icon_state = "2"
@@ -190,13 +190,13 @@
src.icon_state = "4"
if(4)
if(istype(P, /obj/item/weapon/crowbar))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the glass panel."
src.state = 3
src.icon_state = "3"
new /obj/item/stack/material/glass( src.loc, 2 )
if(istype(P, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You connect the monitor."
var/obj/machinery/computer3/B = new src.circuit.build_path ( src.loc, built=1 )
/*if(circuit.powernet) B:powernet = circuit.powernet
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 1236ae0e5b..c3b6e010d6 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -42,7 +42,7 @@
icon_state = "box_1"
else
if(istype(P, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user << "You dismantle the frame"
new /obj/item/stack/material/steel(src.loc, 5)
qdel(src)
@@ -72,7 +72,7 @@
user << "This frame does not accept circuit boards of this type!"
else
if(istype(P, /obj/item/weapon/wirecutters))
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the cables."
state = 1
icon_state = "box_0"
@@ -81,7 +81,7 @@
if(3)
if(istype(P, /obj/item/weapon/crowbar))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
state = 2
circuit.loc = src.loc
circuit = null
@@ -103,28 +103,28 @@
component_check = 0
break
if(component_check)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, src.dir)
-
+
if(new_machine.component_parts)
new_machine.component_parts.Cut()
else
new_machine.component_parts = list()
-
+
src.circuit.construct(new_machine)
-
+
for(var/obj/O in src)
if(circuit.contain_parts) // things like disposal don't want their parts in them
O.loc = new_machine
else
O.loc = null
new_machine.component_parts += O
-
+
if(circuit.contain_parts)
circuit.loc = new_machine
else
circuit.loc = null
-
+
new_machine.RefreshParts()
qdel(src)
else
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index dee842b946..06974a43a4 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -761,7 +761,7 @@ About the new airlock wires panel:
/obj/machinery/door/airlock/proc/can_remove_electronics()
return src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN))))
-/obj/machinery/door/airlock/attackby(C as obj, mob/user as mob)
+/obj/machinery/door/airlock/attackby(obj/item/C, mob/user as mob)
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
if(!istype(usr, /mob/living/silicon))
if(src.isElectrified())
@@ -781,7 +781,7 @@ About the new airlock wires panel:
src.welded = 1
else
src.welded = null
- playsound(src, 'sound/items/Welder.ogg', 75, 1)
+ playsound(src.loc, C.usesound, 75, 1)
src.update_icon()
return
else
@@ -792,8 +792,10 @@ About the new airlock wires panel:
to_chat(usr,"The panel is broken and cannot be closed.")
else
src.p_open = 0
+ playsound(src, C.usesound, 50, 1)
else
src.p_open = 1
+ playsound(src, C.usesound, 50, 1)
src.update_icon()
else if(istype(C, /obj/item/weapon/wirecutters))
return src.attack_hand(user)
@@ -806,9 +808,9 @@ About the new airlock wires panel:
cable.plugin(src, user)
else if(!repairing && istype(C, /obj/item/weapon/crowbar))
if(can_remove_electronics())
- playsound(src.loc, 'sound/items/Crowbar.ogg', 75, 1)
+ playsound(src, C.usesound, 75, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.")
- if(do_after(user,40))
+ if(do_after(user,40 * C.toolspeed))
to_chat(user,"You removed the airlock electronics!")
var/obj/structure/door_assembly/da = new assembly_type(src.loc)
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 240610358f..4c3823f11e 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -241,8 +241,8 @@
var/obj/item/weapon/weldingtool/welder = I
if(welder.remove_fuel(0,user))
user << "You start to fix dents and weld \the [repairing] into place."
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
- if(do_after(user, 5 * repairing.amount) && welder && welder.isOn())
+ playsound(src, welder.usesound, 50, 1)
+ if(do_after(user, (5 * repairing.amount) * welder.toolspeed) && welder && welder.isOn())
user << "You finish repairing the damage to \the [src]."
health = between(health, health + repairing.amount*DOOR_REPAIR_AMOUNT, maxhealth)
update_icon()
@@ -252,7 +252,7 @@
if(repairing && istype(I, /obj/item/weapon/crowbar))
user << "You remove \the [repairing]."
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, I.usesound, 100, 1)
repairing.loc = user.loc
repairing = null
return
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 6ccbb46ac1..8be3733c5c 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -198,12 +198,13 @@
user.visible_message("\The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [W].",\
"You [blocked ? "weld" : "unweld"] \the [src] with \the [W].",\
"You hear something being welded.")
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
update_icon()
return
if(density && istype(C, /obj/item/weapon/screwdriver))
hatch_open = !hatch_open
+ playsound(src, C.usesound, 50, 1)
user.visible_message("[user] has [hatch_open ? "opened" : "closed"] \the [src] maintenance hatch.",
"You have [hatch_open ? "opened" : "closed"] the [src] maintenance hatch.")
update_icon()
@@ -217,7 +218,7 @@
"You start to remove the electronics from [src].")
if(do_after(user,30))
if(blocked && density && hatch_open)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, C.usesound, 50, 1)
user.visible_message("[user] has removed the electronics from \the [src].",
"You have removed the electronics from [src].")
@@ -262,8 +263,8 @@
"You hear metal strain.")
prying = 1
update_icon()
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
- if(do_after(user,30))
+ playsound(src, C.usesound, 100, 1)
+ if(do_after(user,30 * C.toolspeed))
if(istype(C, /obj/item/weapon/crowbar))
if(stat & (BROKEN|NOPOWER) || !density)
user.visible_message("\The [user] forces \the [src] [density ? "open" : "closed"] with \a [C]!",\
diff --git a/code/game/machinery/doors/firedoor_assembly.dm b/code/game/machinery/doors/firedoor_assembly.dm
index a96065d2c6..f30c2e6146 100644
--- a/code/game/machinery/doors/firedoor_assembly.dm
+++ b/code/game/machinery/doors/firedoor_assembly.dm
@@ -14,7 +14,7 @@ obj/structure/firedoor_assembly/update_icon()
else
icon_state = "door_construction"
-obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob)
+obj/structure/firedoor_assembly/attackby(obj/item/C, mob/user as mob)
if(istype(C, /obj/item/stack/cable_coil) && !wired && anchored)
var/obj/item/stack/cable_coil/cable = C
if (cable.get_amount() < 1)
@@ -27,7 +27,7 @@ obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob)
user << "You wire \the [src]."
else if(istype(C, /obj/item/weapon/wirecutters) && wired )
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, C.usesound, 100, 1)
user.visible_message("[user] cuts the wires from \the [src].", "You start to cut the wires from \the [src].")
if(do_after(user, 40))
@@ -48,7 +48,7 @@ obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob)
user << "You must secure \the [src] first!"
else if(istype(C, /obj/item/weapon/wrench))
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, C.usesound, 50, 1)
user.visible_message("[user] has [anchored ? "" : "un" ]secured \the [src]!",
"You have [anchored ? "" : "un" ]secured \the [src]!")
update_icon()
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 32ad7a2aae..5449d3436b 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -193,9 +193,9 @@
//If it's opened/emagged, crowbar can pry it out of its frame.
if (!density && istype(I, /obj/item/weapon/crowbar))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, I.usesound, 50, 1)
user.visible_message("[user] begins prying the windoor out of the frame.", "You start to pry the windoor out of the frame.")
- if (do_after(user,40))
+ if (do_after(user,40 * I.toolspeed))
to_chat(user,"You pried the windoor out of the frame!")
var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc)
diff --git a/code/game/machinery/floor_light.dm b/code/game/machinery/floor_light.dm
index fdaf284f3f..40ff7a3b04 100644
--- a/code/game/machinery/floor_light.dm
+++ b/code/game/machinery/floor_light.dm
@@ -31,8 +31,8 @@ var/list/floor_light_cache = list()
if(!WT.remove_fuel(0, user))
user << "\The [src] must be on to complete this task."
return
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if(!do_after(user, 20))
+ playsound(src.loc, WT.usesound, 50, 1)
+ if(!do_after(user, 20 * WT.toolspeed))
return
if(!src || !WT.isOn())
return
diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm
index e91c791b35..c6b32d75db 100644
--- a/code/game/machinery/frame.dm
+++ b/code/game/machinery/frame.dm
@@ -258,8 +258,8 @@
if(istype(P, /obj/item/weapon/wrench))
if(state == 0 && !anchored)
user << "You start to wrench the frame into place."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
anchored = 1
if(!need_circuit && circuit)
state = 2
@@ -270,8 +270,8 @@
user << "You wrench the frame into place."
else if(state == 0 && anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
user << "You unfasten the frame."
anchored = 0
@@ -279,8 +279,8 @@
if(state == 0)
var/obj/item/weapon/weldingtool/WT = P
if(WT.remove_fuel(0, user))
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(user, 20 * P.toolspeed))
if(src && WT.isOn())
user << "You deconstruct the frame."
new /obj/item/stack/material/steel(src.loc, frame_type.frame_size)
@@ -311,18 +311,18 @@
else if(istype(P, /obj/item/weapon/screwdriver))
if(state == 1)
if(need_circuit && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You screw the circuit board into place."
state = 2
else if(state == 2)
if(need_circuit && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You unfasten the circuit board."
state = 1
else if(!need_circuit && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You unfasten the outer cover."
state = 0
@@ -334,7 +334,7 @@
component_check = 0
break
if(component_check)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
var/obj/machinery/new_machine = new circuit.build_path(src.loc, dir)
// Handle machines that have allocated default parts in thier constructor.
if(new_machine.component_parts)
@@ -364,7 +364,7 @@
return
else if(frame_type.frame_class == "alarm")
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You fasten the cover."
var/obj/machinery/B = new circuit.build_path(src.loc)
B.pixel_x = pixel_x
@@ -378,7 +378,7 @@
else if(state == 4)
if(frame_type.frame_class == "computer")
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You connect the monitor."
var/obj/machinery/B = new circuit.build_path(src.loc)
B.pixel_x = pixel_x
@@ -391,7 +391,7 @@
return
else if(frame_type.frame_class == "display")
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You connect the monitor."
var/obj/machinery/B = new circuit.build_path(src.loc)
B.pixel_x = pixel_x
@@ -406,7 +406,7 @@
else if(istype(P, /obj/item/weapon/crowbar))
if(state == 1)
if(need_circuit && circuit)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You remove the circuit board."
state = 0
circuit.forceMove(src.loc)
@@ -416,7 +416,7 @@
else if(state == 3)
if(frame_type.frame_class == "machine")
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
if(components.len == 0)
user << "There are no components to remove."
else
@@ -429,13 +429,13 @@
else if(state == 4)
if(frame_type.frame_class == "computer")
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You remove the glass panel."
state = 3
new /obj/item/stack/material/glass(src.loc, 2)
else if(frame_type.frame_class == "display")
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You remove the glass panel."
state = 3
new /obj/item/stack/material/glass(src.loc, 2)
@@ -483,25 +483,25 @@
else if(istype(P, /obj/item/weapon/wirecutters))
if(state == 3)
if(frame_type.frame_class == "computer")
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You remove the cables."
state = 2
new /obj/item/stack/cable_coil(src.loc, 5)
else if(frame_type.frame_class == "display")
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You remove the cables."
state = 2
new /obj/item/stack/cable_coil(src.loc, 5)
else if(frame_type.frame_class == "alarm")
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You remove the cables."
state = 2
new /obj/item/stack/cable_coil(src.loc, 5)
else if(frame_type.frame_class == "machine")
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You remove the cables."
state = 2
new /obj/item/stack/cable_coil(src.loc, 5)
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 97c430f9d0..1e67fb8b4f 100755
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -74,6 +74,7 @@
if(istype(W, /obj/item/weapon/screwdriver))
add_fingerprint(user)
disable = !disable
+ playsound(src, W.usesound, 50, 1)
if(disable)
user.visible_message("[user] has disabled the [src]!", "You disable the connection to the [src].")
icon_state = "[base_state]-d"
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index e50688b7a9..306a098638 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -66,7 +66,7 @@
return
if(istype(W, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You start to dismantle the IV drip."
if(do_after(user, 15))
user << "You dismantle the IV drip."
diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm
index 4eb0e7d408..5b5bb8c475 100644
--- a/code/game/machinery/jukebox.dm
+++ b/code/game/machinery/jukebox.dm
@@ -84,7 +84,7 @@ datum/track/New(var/title_name, var/audio)
StopPlaying()
user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].")
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
power_change()
update_icon()
return
@@ -224,7 +224,7 @@ datum/track/New(var/title_name, var/audio)
StopPlaying()
user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].")
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
power_change()
update_icon()
return
diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm
index a3b0f9fdd4..5fb948a2d8 100644
--- a/code/game/machinery/kitchen/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -67,7 +67,8 @@
"\The [user] starts to fix part of the microwave.", \
"You start to fix part of the microwave." \
)
- if (do_after(user,20))
+ playsound(src, O.usesound, 50, 1)
+ if (do_after(user,20 * O.toolspeed))
user.visible_message( \
"\The [user] fixes part of the microwave.", \
"You have fixed part of the microwave." \
@@ -78,7 +79,7 @@
"\The [user] starts to fix part of the microwave.", \
"You start to fix part of the microwave." \
)
- if (do_after(user,20))
+ if (do_after(user,20 * O.toolspeed))
user.visible_message( \
"\The [user] fixes the microwave.", \
"You have fixed the microwave." \
diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm
index a18edbc5fa..5b78f81249 100644
--- a/code/game/machinery/kitchen/smartfridge.dm
+++ b/code/game/machinery/kitchen/smartfridge.dm
@@ -218,6 +218,7 @@
if(istype(O, /obj/item/weapon/screwdriver))
panel_open = !panel_open
user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].")
+ playsound(src, O.usesound, 50, 1)
overlays.Cut()
if(panel_open)
overlays += image(icon, icon_panel)
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 6e9f31889d..f476c295e2 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -331,7 +331,7 @@ Class Procs:
/obj/machinery/proc/default_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S)
if(!istype(S))
return 0
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, S.usesound, 50, 1)
panel_open = !panel_open
user << "You [panel_open ? "open" : "close"] the maintenance hatch of [src]."
update_icon()
@@ -343,8 +343,8 @@ Class Procs:
if(!circuit)
return 0
user << "You start disconnecting the monitor."
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src, S.usesound, 50, 1)
+ if(do_after(user, 20 * S.toolspeed))
if(stat & BROKEN)
user << "The broken glass falls out."
new /obj/item/weapon/material/shard(src.loc)
@@ -355,7 +355,7 @@ Class Procs:
/obj/machinery/proc/alarm_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S)
if(!istype(S))
return 0
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, S.usesound, 50, 1)
panel_open = !panel_open
user << "The wires have been [panel_open ? "exposed" : "unexposed"]"
update_icon()
@@ -367,7 +367,7 @@ Class Procs:
if(!panel_open)
return 0
user.visible_message("[user] has cut the wires inside \the [src]!", "You have cut the wires inside \the [src].")
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
new/obj/item/stack/cable_coil(get_turf(src), 5)
. = dismantle()
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index 8700caf785..ac0af16378 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -75,7 +75,7 @@ var/global/list/navbeacons = list() // no I don't like putting this in, but it w
if(istype(I, /obj/item/weapon/screwdriver))
open = !open
-
+ playsound(src, I.usesound, 50, 1)
user.visible_message("[user] [open ? "opens" : "closes"] the beacon's cover.", "You [open ? "open" : "close"] the beacon's cover.")
updateicon()
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index ea5c78d734..018cf75f53 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -56,6 +56,7 @@ var/bomb_set
/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob)
if(istype(O, /obj/item/weapon/screwdriver))
+ playsound(src, O.usesound, 50, 1)
add_fingerprint(user)
if(auth)
if(opened == 0)
@@ -103,7 +104,7 @@ var/bomb_set
user.visible_message("[user] starts cutting loose the anchoring bolt covers on [src].", "You start cutting loose the anchoring bolt covers with [O]...")
- if(do_after(user,40))
+ if(do_after(user,40 * WT.toolspeed))
if(!src || !user || !WT.remove_fuel(5, user)) return
user.visible_message("[user] cuts through the bolt covers on [src].", "You cut through the bolt cover.")
removal_stage = 1
@@ -113,7 +114,8 @@ var/bomb_set
if(istype(O,/obj/item/weapon/crowbar))
user.visible_message("[user] starts forcing open the bolt covers on [src].", "You start forcing open the anchoring bolt covers with [O]...")
- if(do_after(user,15))
+ playsound(src, O.usesound, 50, 1)
+ if(do_after(user,15 * O.toolspeed))
if(!src || !user) return
user.visible_message("[user] forces open the bolt covers on [src].", "You force open the bolt covers.")
removal_stage = 2
@@ -129,8 +131,8 @@ var/bomb_set
return
user.visible_message("[user] starts cutting apart the anchoring system sealant on [src].", "You start cutting apart the anchoring system's sealant with [O]...")
-
- if(do_after(user,40))
+ playsound(src, WT.usesound, 50, 1)
+ if(do_after(user,40 * WT.toolspeed))
if(!src || !user || !WT.remove_fuel(5, user)) return
user.visible_message("[user] cuts apart the anchoring system sealant on [src].", "You cut apart the anchoring system's sealant.")
removal_stage = 3
@@ -140,8 +142,8 @@ var/bomb_set
if(istype(O,/obj/item/weapon/wrench))
user.visible_message("[user] begins unwrenching the anchoring bolts on [src].", "You begin unwrenching the anchoring bolts...")
-
- if(do_after(user,50))
+ playsound(src, O.usesound, 50, 1)
+ if(do_after(user,50 * O.toolspeed))
if(!src || !user) return
user.visible_message("[user] unwrenches the anchoring bolts on [src].", "You unwrench the anchoring bolts.")
removal_stage = 4
@@ -151,8 +153,8 @@ var/bomb_set
if(istype(O,/obj/item/weapon/crowbar))
user.visible_message("[user] begins lifting [src] off of the anchors.", "You begin lifting the device off the anchors...")
-
- if(do_after(user,80))
+ playsound(src, O.usesound, 50, 1)
+ if(do_after(user,80 * O.toolspeed))
if(!src || !user) return
user.visible_message("[user] crowbars [src] off of the anchors. It can now be moved.", "You jam the crowbar under the nuclear device and lift it off its anchors. You can now move it!")
anchored = 0
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 06228dd86f..bd650755e5 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -1231,7 +1231,7 @@ Buildable meters
P.initialize()
P.build_network()
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user.visible_message( \
"[user] fastens the [src].", \
"You have fastened the [src].", \
@@ -1262,7 +1262,7 @@ Buildable meters
user << "You need to fasten it to a pipe"
return 1
new/obj/machinery/meter( src.loc )
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You have fastened the meter to the pipe"
qdel(src)
//not sure why these are necessary
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index 7727b675d2..a9c2813a58 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -110,9 +110,9 @@
return
else if (istype(W, /obj/item/weapon/wrench))
if (unwrenched==0)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to unfasten \the [src] from the floor..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * W.toolspeed))
user.visible_message( \
"[user] unfastens \the [src].", \
"You have unfastened \the [src]. Now it can be pulled somewhere else.", \
@@ -123,9 +123,9 @@
if (usr.machine==src)
usr << browse(null, "window=pipedispenser")
else /*if (unwrenched==1)*/
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to fasten \the [src] to the floor..."
- if (do_after(user, 20))
+ if (do_after(user, 20 * W.toolspeed))
user.visible_message( \
"[user] fastens \the [src].", \
"You have fastened \the [src]. Now it can dispense pipes.", \
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 6d7a6f82a7..096bd090c1 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -329,15 +329,15 @@ var/list/turret_icons
)
wrenching = 1
- if(do_after(user, 50))
+ if(do_after(user, 50 * I.toolspeed))
//This code handles moving the turret around. After all, it's a portable turret!
if(!anchored)
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
anchored = 1
update_icon()
user << "You secure the exterior bolts on the turret."
else if(anchored)
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
anchored = 0
user << "You unsecure the exterior bolts on the turret."
update_icon()
@@ -711,14 +711,14 @@ var/list/turret_icons
switch(build_step)
if(0) //first step
if(istype(I, /obj/item/weapon/wrench) && !anchored)
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
user << "You secure the external bolts."
anchored = 1
build_step = 1
return
else if(istype(I, /obj/item/weapon/crowbar) && !anchored)
- playsound(loc, 'sound/items/Crowbar.ogg', 75, 1)
+ playsound(loc, I.usesound, 75, 1)
user << "You dismantle the turret construction."
new /obj/item/stack/material/steel(loc, 5)
qdel(src)
@@ -736,7 +736,7 @@ var/list/turret_icons
return
else if(istype(I, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(loc, I.usesound, 75, 1)
user << "You unfasten the external bolts."
anchored = 0
build_step = 0
@@ -744,7 +744,7 @@ var/list/turret_icons
if(2)
if(istype(I, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
user << "You bolt the metal armor into place."
build_step = 3
return
@@ -757,8 +757,8 @@ var/list/turret_icons
user << "You need more fuel to complete this task."
return
- playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1)
- if(do_after(user, 20))
+ playsound(loc, I.usesound, 50, 1)
+ if(do_after(user, 20 * I.toolspeed))
if(!src || !WT.remove_fuel(5, user)) return
build_step = 1
user << "You remove the turret's interior metal armor."
@@ -784,7 +784,7 @@ var/list/turret_icons
return
else if(istype(I, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
user << "You remove the turret's metal armor bolts."
build_step = 2
return
@@ -803,7 +803,7 @@ var/list/turret_icons
if(5)
if(istype(I, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
build_step = 6
user << "You close the internal access hatch."
return
@@ -821,7 +821,7 @@ var/list/turret_icons
return
else if(istype(I, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
build_step = 5
user << "You open the internal access hatch."
return
@@ -833,8 +833,8 @@ var/list/turret_icons
if(WT.get_fuel() < 5)
user << "You need more fuel to complete this task."
- playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1)
- if(do_after(user, 30))
+ playsound(loc, WT.usesound, 50, 1)
+ if(do_after(user, 30 * WT.toolspeed))
if(!src || !WT.remove_fuel(5, user))
return
build_step = 8
@@ -851,7 +851,7 @@ var/list/turret_icons
qdel(src) // qdel
else if(istype(I, /obj/item/weapon/crowbar))
- playsound(loc, 'sound/items/Crowbar.ogg', 75, 1)
+ playsound(loc, I.usesound, 75, 1)
user << "You pry off the turret's exterior armor."
new /obj/item/stack/material/steel(loc, 2)
build_step = 6
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index 0d4c49763d..6455fa6430 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -81,7 +81,7 @@ obj/machinery/recharger
return
anchored = !anchored
to_chat(user, "You [anchored ? "attached" : "detached"] the recharger.")
- playsound(loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(loc, G.usesound, 75, 1)
else if(default_deconstruction_screwdriver(user, G))
return
else if(default_deconstruction_crowbar(user, G))
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index d60d49b47e..830c5f8d6d 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -68,6 +68,7 @@
return
else if(istype(I, /obj/item/weapon/screwdriver))
panel_open = !panel_open
+ playsound(src, I.usesound, 50, 1)
user.visible_message("[user] [panel_open ? "opens" : "closes"] the hatch on the [src].", "You [panel_open ? "open" : "close"] the hatch on the [src].")
update_icon()
if(!panel_open && user.machine == src)
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index c6a49b25f7..30a0743e09 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -473,7 +473,7 @@
return
if(istype(I, /obj/item/weapon/screwdriver))
panelopen = !panelopen
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, I.usesound, 100, 1)
user << text("You [] the unit's maintenance panel.",(panelopen ? "open up" : "close"))
updateUsrDialog()
return
@@ -692,6 +692,7 @@
else if(istype(I,/obj/item/weapon/screwdriver))
panel_open = !panel_open
+ playsound(src, I.usesound, 50, 1)
user << "You [panel_open ? "open" : "close"] the maintenance panel."
updateUsrDialog()
return
diff --git a/code/game/machinery/supplybeacon.dm b/code/game/machinery/supplybeacon.dm
index fd69e4f50e..3441b09cbb 100644
--- a/code/game/machinery/supplybeacon.dm
+++ b/code/game/machinery/supplybeacon.dm
@@ -51,7 +51,7 @@
return
anchored = !anchored
user.visible_message("\The [user] [anchored ? "secures" : "unsecures"] \the [src].")
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
return
return ..()
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index 2f53931312..442703a42e 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -126,6 +126,7 @@
if(anchored)
anchored = 0
user << "You unscrew the beacon from the floor."
+ playsound(src, W.usesound, 50, 1)
disconnect_from_network()
return
else
@@ -134,6 +135,7 @@
return
anchored = 1
user << "You screw the beacon to the floor and attach the cable."
+ playsound(src, W.usesound, 50, 1)
return
..()
return
diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm
index 1ab85f34b7..208b9d51e8 100644
--- a/code/game/machinery/telecomms/machine_interactions.dm
+++ b/code/game/machinery/telecomms/machine_interactions.dm
@@ -38,24 +38,24 @@
if(0)
if(istype(P, /obj/item/weapon/screwdriver))
user << "You unfasten the bolts."
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
construct_op ++
if(1)
if(istype(P, /obj/item/weapon/screwdriver))
user << "You fasten the bolts."
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
construct_op --
if(istype(P, /obj/item/weapon/wrench))
user << "You dislodge the external plating."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, P.usesound, 75, 1)
construct_op ++
if(2)
if(istype(P, /obj/item/weapon/wrench))
user << "You secure the external plating."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, P.usesound, 75, 1)
construct_op --
if(istype(P, /obj/item/weapon/wirecutters))
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the cables."
construct_op ++
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc )
@@ -72,8 +72,8 @@
user << "You need five coils of wire for this."
if(istype(P, /obj/item/weapon/crowbar))
user << "You begin prying out the circuit board other components..."
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
- if(do_after(user,60))
+ playsound(src.loc, P.usesound, 50, 1)
+ if(do_after(user,60 * P.toolspeed))
user << "You finish prying out the components."
// Drop all the component stuff
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 3f21665e0b..816f35ad85 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -183,6 +183,7 @@
else if(istype(W, /obj/item/weapon/screwdriver))
panel_open = !panel_open
user << "You [panel_open ? "open" : "close"] the maintenance panel."
+ playsound(src, W.usesound, 50, 1)
overlays.Cut()
if(panel_open)
overlays += image(icon, "[initial(icon_state)]-panel")
@@ -202,13 +203,13 @@
nanomanager.update_uis(src)
return
else if(istype(W, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(anchored)
user.visible_message("[user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
else
user.visible_message("[user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
- if(do_after(user, 20))
+ if(do_after(user, 20 * W.toolspeed))
if(!src) return
user << "You [anchored? "un" : ""]secured \the [src]!"
anchored = !anchored
diff --git a/code/game/objects/effects/decals/contraband.dm b/code/game/objects/effects/decals/contraband.dm
index cd3618c936..0d00d32830 100644
--- a/code/game/objects/effects/decals/contraband.dm
+++ b/code/game/objects/effects/decals/contraband.dm
@@ -122,7 +122,7 @@
/obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wirecutters))
- playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
if(ruined)
user << "You remove the remnants of the poster."
qdel(src)
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index c38b07f402..9ab835b806 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -35,7 +35,7 @@
if(WT.remove_fuel(0, user))
damage = 15
- playsound(loc, 'sound/items/Welder.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
health -= damage
healthcheck()
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 5050509744..4ca9703301 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -10,6 +10,7 @@
var/burn_point = null
var/burning = null
var/hitsound = null
+ var/usesound = null // Like hitsound, but for when used properly and not to kill someone.
var/storage_cost = null
var/slot_flags = 0 //This is used to determine on which slots an item can fit.
var/no_attack_log = 0 //If it's an item we don't want to log attack_logs with, set this to 1
@@ -78,6 +79,8 @@
// Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called.
var/list/sprite_sheets_obj = list()
+ var/toolspeed = 1.0 // This is a multipler on how 'fast' a tool works. e.g. setting this to 0.5 will make the tool work twice as fast.
+
/obj/item/New()
..()
if(embed_chance < 0)
diff --git a/code/game/objects/items/devices/hacktool.dm b/code/game/objects/items/devices/hacktool.dm
index 2f05a6f385..9ae5f62732 100644
--- a/code/game/objects/items/devices/hacktool.dm
+++ b/code/game/objects/items/devices/hacktool.dm
@@ -23,10 +23,10 @@
hack_state = null
return ..()
-/obj/item/device/multitool/hacktool/attackby(var/obj/W, var/mob/user)
+/obj/item/device/multitool/hacktool/attackby(var/obj/item/W, var/mob/user)
if(isscrewdriver(W))
in_hack_mode = !in_hack_mode
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
else
..()
diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm
index 025196b218..ca7ace1a59 100644
--- a/code/game/objects/items/devices/modkit.dm
+++ b/code/game/objects/items/devices/modkit.dm
@@ -14,7 +14,7 @@
/obj/item/clothing/suit/space/void
)
-/obj/item/device/modkit/afterattack(obj/O, mob/user as mob, proximity)
+/obj/item/device/modkit/afterattack(obj/item/O, mob/user as mob, proximity)
if(!proximity)
return
@@ -47,7 +47,7 @@
user << "[O] must be safely placed on the ground for modification."
return
- playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src.loc, O.usesound, 100, 1)
user.visible_message("\The [user] opens \the [src] and modifies \the [O].","You open \the [src] and modify \the [O].")
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 85c680ca98..2164bf18ce 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -22,6 +22,7 @@
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
var/obj/machinery/clonepod/connecting //same for cryopod linkage
var/obj/machinery/connectable //Used to connect machinery.
+ toolspeed = 1
/obj/item/device/multitool/attack_self(mob/user)
var/clear = alert("Do you want to clear the buffers on the [src]?",, "Yes", "No",)
@@ -30,4 +31,17 @@
connecting = null
connectable = null
else
- ..()
\ No newline at end of file
+ ..()
+
+/obj/item/device/multitool/cyborg
+ name = "multitool"
+ desc = "Optimised and stripped-down version of a regular multitool."
+ toolspeed = 0.5
+
+/obj/item/device/multitool/ayyy
+ name = "alien multitool"
+ desc = "An omni-technological interface."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "multitool"
+ toolspeed = 0.1
+ origin_tech = list(TECH_MAGNETS = 5, TECH_ENGINEERING = 5)
\ No newline at end of file
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index 910d983e22..e4c1bb3f20 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -42,6 +42,7 @@
anchored = 1
mode = 1
src.visible_message("[user] attaches [src] to the cable!")
+ playsound(src, I.usesound, 50, 1)
return
else
user << "Device must be placed over an exposed cable to attach to it."
@@ -54,6 +55,7 @@
mode = 0
src.visible_message("[user] detaches [src] from the cable!")
set_light(0)
+ playsound(src, I.usesound, 50, 1)
icon_state = "powersink0"
return
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 6526668b64..ccfb671691 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -348,6 +348,7 @@
recalculateChannels()
user << "You pop out the encryption keys in the headset!"
+ playsound(src, W.usesound, 50, 1)
else
user << "This headset doesn't have any encryption keys! How useless..."
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 106d144834..9aa65bb54e 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -113,6 +113,7 @@
if(istype(W, /obj/item/weapon/screwdriver)) // Opening the intercom up.
wiresexposed = !wiresexposed
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
+ playsound(src, W.usesound, 50, 1)
if(wiresexposed)
if(!on)
icon_state = "intercom-p_open"
@@ -123,7 +124,7 @@
return
if(wiresexposed && istype(W, /obj/item/weapon/wirecutters))
user.visible_message("[user] has cut the wires inside \the [src]!", "You have cut the wires inside \the [src].")
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
new/obj/item/stack/cable_coil(get_turf(src), 5)
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
var/obj/item/weapon/circuitboard/M = circuit
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index fafe92aba5..842fb09816 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -629,6 +629,7 @@ var/global/list/default_medbay_channels = list(
recalculateChannels()
user << "You pop out the encryption key in the radio!"
+ playsound(src, W.usesound, 50, 1)
else
user << "This radio doesn't have any encryption keys!"
diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm
index fb34bb0996..a2d6ce3341 100644
--- a/code/game/objects/items/devices/suit_cooling.dm
+++ b/code/game/objects/items/devices/suit_cooling.dm
@@ -138,6 +138,7 @@
else
cover_open = 1
user << "You unscrew the panel."
+ playsound(src, W.usesound, 50, 1)
updateicon()
return
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 2564b3eff0..791725c14b 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -416,7 +416,8 @@
/obj/item/device/tape/attackby(obj/item/I, mob/user, params)
if(ruined && istype(I, /obj/item/weapon/screwdriver))
to_chat(user, "You start winding the tape back in...")
- if(do_after(user, 120, target = src))
+ playsound(src, I.usesound, 50, 1)
+ if(do_after(user, 120 * I.toolspeed, target = src))
to_chat(user, "You wound the tape back in.")
fix()
return
diff --git a/code/game/objects/items/weapons/circuitboards/computer/research.dm b/code/game/objects/items/weapons/circuitboards/computer/research.dm
index f49b80e6df..fa9ed16797 100644
--- a/code/game/objects/items/weapons/circuitboards/computer/research.dm
+++ b/code/game/objects/items/weapons/circuitboards/computer/research.dm
@@ -8,6 +8,7 @@
/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I,/obj/item/weapon/screwdriver))
+ playsound(src, I.usesound, 50, 1)
user.visible_message("\The [user] adjusts the jumper on \the [src]'s access protocol pins.", "You adjust the jumper on the access protocol pins.")
if(build_path == /obj/machinery/computer/rdconsole/core)
name = T_BOARD("RD Console - Robotics")
diff --git a/code/game/objects/items/weapons/circuitboards/machinery/research.dm b/code/game/objects/items/weapons/circuitboards/machinery/research.dm
index 1e4fe2afd9..31e0d9c063 100644
--- a/code/game/objects/items/weapons/circuitboards/machinery/research.dm
+++ b/code/game/objects/items/weapons/circuitboards/machinery/research.dm
@@ -13,6 +13,7 @@ obj/item/weapon/circuitboard/rdserver
obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I,/obj/item/weapon/screwdriver))
+ playsound(src, I.usesound, 50, 1)
user.visible_message("\The [user] adjusts the jumper on \the [src]'s access protocol pins.", "You adjust the jumper on the access protocol pins.")
if(build_path == /obj/machinery/r_n_d/server/core)
name = T_BOARD("RD Console - Robotics")
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index 1a8cc97def..1e1565a2ae 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -28,6 +28,7 @@
if(istype(I, /obj/item/weapon/screwdriver))
open_panel = !open_panel
user << "You [open_panel ? "open" : "close"] the wire panel."
+ playsound(src, I.usesound, 50, 1)
else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler ))
wires.Interact(user)
else
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 9d6b5d6bd3..0eaf073cfa 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -86,7 +86,7 @@
// user << "You need to add at least one beaker before locking the assembly."
user << "You lock the empty assembly."
name = "fake grenade"
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3)
+ playsound(src, W.usesound, 50, 1)
icon_state = initial(icon_state) +"_locked"
stage = 2
else if(stage == 2)
@@ -96,7 +96,7 @@
return
else
user << "You unlock the assembly."
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3)
+ playsound(src.loc, W.usesound, 50, -3)
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
icon_state = initial(icon_state) + (detonator?"_ass":"")
stage = 1
diff --git a/code/game/objects/items/weapons/improvised_components.dm b/code/game/objects/items/weapons/improvised_components.dm
index 9e6e05a807..105a76473f 100644
--- a/code/game/objects/items/weapons/improvised_components.dm
+++ b/code/game/objects/items/weapons/improvised_components.dm
@@ -9,6 +9,7 @@
/obj/item/weapon/material/butterflyconstruction/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/screwdriver))
user << "You finish the concealed blade weapon."
+ playsound(src, W.usesound, 50, 1)
new /obj/item/weapon/material/butterfly(user.loc, material.name)
qdel(src)
return
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index dfa4f61ba1..af76dca94b 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -77,6 +77,22 @@
new /obj/item/weapon/wirecutters(src)
new /obj/item/device/t_scanner(src)
+/obj/item/weapon/storage/belt/utility/chief
+ name = "chief engineer's toolbelt"
+ desc = "Holds tools, looks snazzy."
+ icon_state = "utilitybelt_ce"
+ item_state = "utility_ce"
+
+/obj/item/weapon/storage/belt/utility/chief/full/New()
+ ..()
+ new /obj/item/weapon/screwdriver/power(src)
+ new /obj/item/weapon/crowbar/power(src)
+ new /obj/item/weapon/weldingtool/experimental(src)
+ new /obj/item/device/multitool(src)
+ new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
+ new /obj/item/weapon/extinguisher/mini(src)
+ new /obj/item/device/analyzer(src)
+
/obj/item/weapon/storage/belt/medical
name = "medical belt"
desc = "Can hold various medical equipment."
@@ -208,6 +224,22 @@
new /obj/item/device/soulstone(src)
new /obj/item/device/soulstone(src)
+/obj/item/weapon/storage/belt/utility/ayyy
+ name = "alien belt"
+ desc = "A belt(?) that can hold things."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "belt"
+ item_state = "security"
+
+/obj/item/weapon/storage/belt/utility/ayyy/full/New()
+ ..()
+ new /obj/item/weapon/screwdriver/ayyy(src)
+ new /obj/item/weapon/wrench/ayyy(src)
+ new /obj/item/weapon/weldingtool/ayyy(src)
+ new /obj/item/weapon/crowbar/ayyy(src)
+ new /obj/item/weapon/wirecutters/ayyy(src)
+ new /obj/item/device/multitool/ayyy(src)
+ new /obj/item/stack/cable_coil(src,30,"white")
/obj/item/weapon/storage/belt/champion
name = "championship belt"
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index abd965f664..4d9be129f7 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -42,8 +42,9 @@
return
if (istype(W, /obj/item/weapon/screwdriver))
- if (do_after(user, 20))
+ if (do_after(user, 20 * W.toolspeed))
src.open =! src.open
+ playsound(src, W.usesound, 50, 1)
user.show_message(text("You [] the service panel.", (src.open ? "open" : "close")))
return
if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index 9364f1b859..be9c0c72d8 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -61,7 +61,7 @@
/obj/item/weapon/surgical/surgicaldrill
name = "surgical drill"
desc = "You can drill using this item. You dig?"
- icon_state = "drill"
+ icon_state = "surgery_drill"
hitsound = 'sound/weapons/circsawhit.ogg'
matter = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 10000)
force = 15.0
diff --git a/code/game/objects/items/weapons/syndie.dm b/code/game/objects/items/weapons/syndie.dm
index 3de967d78f..5d0d1f3863 100644
--- a/code/game/objects/items/weapons/syndie.dm
+++ b/code/game/objects/items/weapons/syndie.dm
@@ -93,4 +93,5 @@
/obj/item/weapon/flame/lighter/zippo/c4detonator/attackby(obj/item/weapon/W, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
detonator_mode = !detonator_mode
+ playsound(src, W.usesound, 50, 1)
user << "You unscrew the top panel of \the [src] revealing a button."
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 8148f7e493..31b0d90b9e 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -1,5 +1,7 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
+#define WELDER_FUEL_BURN_INTERVAL 13
+
/* Tools!
* Note: Multitools are /obj/item/device
*
@@ -17,7 +19,7 @@
/obj/item/weapon/wrench
name = "wrench"
desc = "A wrench with many common uses. Can be usually found in your hand."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "wrench"
flags = CONDUCT
slot_flags = SLOT_BELT
@@ -27,7 +29,44 @@
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
matter = list(DEFAULT_WALL_MATERIAL = 150)
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
+ usesound = 'sound/items/ratchet.ogg'
+ toolspeed = 1
+/obj/item/weapon/wrench/cyborg
+ name = "automatic wrench"
+ desc = "An advanced robotic wrench. Can be found in industrial synthetic shells."
+ usesound = 'sound/items/drill_use.ogg'
+ toolspeed = 0.5
+
+/obj/item/weapon/wrench/ayyy
+ name = "alien wrench"
+ desc = "A polarized wrench. It causes anything placed between the jaws to turn."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "wrench"
+ usesound = 'sound/effects/empulse.ogg'
+ toolspeed = 0.1
+ origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEER = 5)
+
+/obj/item/weapon/wrench/power
+ name = "hand drill"
+ desc = "A simple powered hand drill. It's fitted with a bolt bit."
+ icon_state = "drill_bolt"
+ item_state = "drill"
+ usesound = 'sound/items/drill_use.ogg'
+ matter = list(DEFAULT_WALL_MATERIAL = 150, MAT_SILVER = 50, MAT_TITANIUM = 25)
+ origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+ force = 8
+ w_class = ITEMSIZE_SMALL
+ throwforce = 8
+ attack_verb = list("drilled", "screwed", "jabbed")
+ toolspeed = 0.25
+
+/obj/item/weapon/wrench/power/attack_self(mob/user)
+ playsound(get_turf(user),'sound/items/change_drill.ogg',50,1)
+ var/obj/item/weapon/screwdriver/power/s_drill = new /obj/item/weapon/screwdriver/power
+ to_chat(user, "You attach the screw driver bit to [src].")
+ qdel(src)
+ user.put_in_active_hand(s_drill)
/*
* Screwdriver
@@ -35,7 +74,7 @@
/obj/item/weapon/screwdriver
name = "screwdriver"
desc = "You can be totally screwwy with this."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "screwdriver"
flags = CONDUCT
slot_flags = SLOT_BELT | SLOT_EARS
@@ -44,9 +83,13 @@
throwforce = 5
throw_speed = 3
throw_range = 5
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ usesound = 'sound/items/screwdriver.ogg'
matter = list(DEFAULT_WALL_MATERIAL = 75)
attack_verb = list("stabbed")
sharp = 1
+ toolspeed = 1
+ var/random_color = TRUE
suicide_act(mob/user)
viewers(user) << pick("\The [user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.", \
@@ -54,28 +97,29 @@
return(BRUTELOSS)
/obj/item/weapon/screwdriver/New()
- switch(pick("red","blue","purple","brown","green","cyan","yellow"))
- if ("red")
- icon_state = "screwdriver2"
- item_state = "screwdriver"
- if ("blue")
- icon_state = "screwdriver"
- item_state = "screwdriver_blue"
- if ("purple")
- icon_state = "screwdriver3"
- item_state = "screwdriver_purple"
- if ("brown")
- icon_state = "screwdriver4"
- item_state = "screwdriver_brown"
- if ("green")
- icon_state = "screwdriver5"
- item_state = "screwdriver_green"
- if ("cyan")
- icon_state = "screwdriver6"
- item_state = "screwdriver_cyan"
- if ("yellow")
- icon_state = "screwdriver7"
- item_state = "screwdriver_yellow"
+ if(random_color)
+ switch(pick("red","blue","purple","brown","green","cyan","yellow"))
+ if ("red")
+ icon_state = "screwdriver2"
+ item_state = "screwdriver"
+ if ("blue")
+ icon_state = "screwdriver"
+ item_state = "screwdriver_blue"
+ if ("purple")
+ icon_state = "screwdriver3"
+ item_state = "screwdriver_purple"
+ if ("brown")
+ icon_state = "screwdriver4"
+ item_state = "screwdriver_brown"
+ if ("green")
+ icon_state = "screwdriver5"
+ item_state = "screwdriver_green"
+ if ("cyan")
+ icon_state = "screwdriver6"
+ item_state = "screwdriver_cyan"
+ if ("yellow")
+ icon_state = "screwdriver7"
+ item_state = "screwdriver_yellow"
if (prob(75))
src.pixel_y = rand(0, 16)
@@ -90,13 +134,55 @@
M = user
return eyestab(M,user)
+/obj/item/weapon/screwdriver/ayyy
+ name = "alien screwdriver"
+ desc = "An ultrasonic screwdriver."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "screwdriver_a"
+ item_state = "screwdriver_black"
+ usesound = 'sound/items/pshoom.ogg'
+ toolspeed = 0.1
+ random_color = FALSE
+
+/obj/item/weapon/screwdriver/cyborg
+ name = "powered screwdriver"
+ desc = "An electrical screwdriver, designed to be both precise and quick."
+ usesound = 'sound/items/drill_use.ogg'
+ toolspeed = 0.5
+
+/obj/item/weapon/screwdriver/power
+ name = "hand drill"
+ desc = "A simple powered hand drill. It's fitted with a screw bit."
+ icon_state = "drill_screw"
+ item_state = "drill"
+ matter = list(DEFAULT_WALL_MATERIAL = 150, MAT_SILVER = 50, MAT_TITANIUM = 25)
+ origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+
+ force = 8
+ w_class = ITEMSIZE_SMALL
+ throwforce = 8
+ throw_speed = 2
+ throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far
+ attack_verb = list("drilled", "screwed", "jabbed", "whacked")
+ hitsound = 'sound/items/drill_hit.ogg'
+ usesound = 'sound/items/drill_use.ogg'
+ toolspeed = 0.25
+ random_color = FALSE
+
+/obj/item/weapon/screwdriver/power/attack_self(mob/user)
+ playsound(get_turf(user),'sound/items/change_drill.ogg',50,1)
+ var/obj/item/weapon/wrench/power/w_drill = new /obj/item/weapon/wrench/power
+ to_chat(user, "You attach the bolt driver bit to [src].")
+ qdel(src)
+ user.put_in_active_hand(w_drill)
+
/*
* Wirecutters
*/
/obj/item/weapon/wirecutters
name = "wirecutters"
desc = "This cuts wires."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "cutters"
flags = CONDUCT
slot_flags = SLOT_BELT
@@ -107,11 +193,15 @@
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
matter = list(DEFAULT_WALL_MATERIAL = 80)
attack_verb = list("pinched", "nipped")
+ hitsound = 'sound/items/wirecutter.ogg'
+ usesound = 'sound/items/wirecutter.ogg'
sharp = 1
edge = 1
+ toolspeed = 1
+ var/random_color = TRUE
/obj/item/weapon/wirecutters/New()
- if(prob(50))
+ if(random_color && prob(50))
icon_state = "cutters-y"
item_state = "cutters_yellow"
..()
@@ -129,13 +219,48 @@
else
..()
+/obj/item/weapon/wirecutters/ayyy
+ name = "alien wirecutters"
+ desc = "Extremely sharp wirecutters, made out of a silvery-green metal."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "cutters"
+ toolspeed = 0.1
+ origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
+ random_color = FALSE
+
+/obj/item/weapon/wirecutters/cyborg
+ name = "wirecutters"
+ desc = "This cuts wires. With science."
+ usesound = 'sound/items/jaws_cut.ogg'
+ toolspeed = 0.5
+
+/obj/item/weapon/wirecutters/power
+ name = "jaws of life"
+ desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a cutting head."
+ icon_state = "jaws_cutter"
+ item_state = "jawsoflife"
+ origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
+ matter = list(MAT_METAL=150, MAT_SILVER=50, MAT_TITANIUM=25)
+ usesound = 'sound/items/jaws_cut.ogg'
+ force = 15
+ toolspeed = 0.25
+ random_color = FALSE
+
+/obj/item/weapon/wirecutters/power/attack_self(mob/user)
+ playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1)
+ var/obj/item/weapon/crowbar/power/pryjaws = new /obj/item/weapon/crowbar/power
+ to_chat(user, "You attach the pry jaws to [src].")
+ qdel(src)
+ user.put_in_active_hand(pryjaws)
+
/*
* Welding Tool
*/
/obj/item/weapon/weldingtool
name = "welding tool"
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "welder"
+ item_state = "welder"
flags = CONDUCT
slot_flags = SLOT_BELT
@@ -157,16 +282,30 @@
var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
var/max_fuel = 20 //The max amount of fuel the welder can hold
+ var/acti_sound = 'sound/items/welderactivate.ogg'
+ var/deac_sound = 'sound/items/welderdeactivate.ogg'
+ usesound = 'sound/items/Welder2.ogg'
+ var/change_icons = TRUE
+ var/flame_intensity = 2 //how powerful the emitted light is when used.
+ var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color.
+ var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect.
+ var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG.
+ var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel.
+ toolspeed = 1
+
/obj/item/weapon/weldingtool/New()
// var/random_fuel = min(rand(10,20),max_fuel)
var/datum/reagents/R = new/datum/reagents(max_fuel)
reagents = R
R.my_atom = src
R.add_reagent("fuel", max_fuel)
+ update_icon()
+ if(always_process)
+ processing_objects |= src
..()
/obj/item/weapon/weldingtool/Destroy()
- if(welding)
+ if(welding || always_process)
processing_objects -= src
return ..()
@@ -216,9 +355,12 @@
/obj/item/weapon/weldingtool/process()
if(welding)
- if(prob(5))
+ ++burned_fuel_for
+ if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL)
remove_fuel(1)
+
+
if(get_fuel() < 1)
setWelding(0)
@@ -270,19 +412,25 @@
/obj/item/weapon/weldingtool/proc/get_fuel()
return reagents.get_reagent_amount("fuel")
+/obj/item/weapon/weldingtool/proc/get_max_fuel()
+ return max_fuel
//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use()
/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null)
if(!welding)
return 0
+ if(amount)
+ burned_fuel_for = 0 // Reset the counter since we're removing fuel.
if(get_fuel() >= amount)
reagents.remove_reagent("fuel", amount)
if(M)
eyecheck(M)
+ update_icon()
return 1
else
if(M)
M << "You need more welding fuel to complete this task."
+ update_icon()
return 0
//Returns whether or not the welding tool is currently on.
@@ -291,7 +439,29 @@
/obj/item/weapon/weldingtool/update_icon()
..()
- icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]"
+ overlays.Cut()
+ // Welding overlay.
+ if(welding)
+ var/image/I = image(icon, src, "[icon_state]-on")
+ overlays.Add(I)
+ item_state = "[initial(item_state)]1"
+ else
+ item_state = initial(item_state)
+
+ // Fuel counter overlay.
+ if(change_icons && get_max_fuel())
+ var/ratio = get_fuel() / get_max_fuel()
+ ratio = Ceiling(ratio*4) * 25
+ var/image/I = image(icon, src, "[icon_state][ratio]")
+ overlays.Add(I)
+
+ // Lights
+ if(welding && flame_intensity)
+ set_light(flame_intensity, flame_intensity, flame_color)
+ else
+ set_light(0)
+
+// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]"
var/mob/M = loc
if(istype(M))
M.update_inv_l_hand()
@@ -342,12 +512,15 @@
M << "You switch the [src] on."
else if(T)
T.visible_message("\The [src] turns on.")
+ playsound(loc, acti_sound, 50, 1)
src.force = 15
src.damtype = "fire"
src.w_class = ITEMSIZE_LARGE
+ src.hitsound = 'sound/items/welder.ogg'
welding = 1
update_icon()
- processing_objects |= src
+ if(!always_process)
+ processing_objects |= src
else
if(M)
var/msg = max_fuel ? "welding fuel" : "charge"
@@ -355,22 +528,27 @@
return
//Otherwise
else if(!set_welding && welding)
- processing_objects -= src
+ if(!always_process)
+ processing_objects -= src
if(M)
M << "You switch \the [src] off."
else if(T)
T.visible_message("\The [src] turns off.")
+ playsound(loc, deac_sound, 50, 1)
src.force = 3
src.damtype = "brute"
src.w_class = initial(src.w_class)
src.welding = 0
+ src.hitsound = initial(src.hitsound)
update_icon()
//Decides whether or not to damage a player's eyes based on what they're wearing as protection
//Note: This should probably be moved to mob
-/obj/item/weapon/weldingtool/proc/eyecheck(mob/user as mob)
- if(!iscarbon(user)) return 1
- var/safety = user:eyecheck()
+/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user)
+ if(!istype(user))
+ return 1
+ var/safety = user.eyecheck()
+ safety = between(-1, safety + eye_safety_modifier, 2)
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/H = user
var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
@@ -410,36 +588,71 @@
/obj/item/weapon/weldingtool/largetank
name = "industrial welding tool"
+ desc = "A slightly larger welder with a larger tank."
+ icon_state = "indwelder"
max_fuel = 40
- origin_tech = list(TECH_ENGINEERING = 2)
+ origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2)
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60)
+/obj/item/weapon/weldingtool/largetank/cyborg
+ name = "integrated welding tool"
+ desc = "An advanced welder designed to be used in robotic systems."
+ toolspeed = 0.5
+
/obj/item/weapon/weldingtool/hugetank
name = "upgraded welding tool"
+ desc = "A much larger welder with a huge tank."
+ icon_state = "indwelder"
max_fuel = 80
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_ENGINEERING = 3)
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
+/obj/item/weapon/weldingtool/mini
+ name = "emergency welding tool"
+ desc = "A miniature welder used during emergencies."
+ icon_state = "miniwelder"
+ max_fuel = 10
+ w_class = ITEMSIZE_SMALL
+ matter = list(MAT_METAL = 30, MAT_GLASS = 10)
+ change_icons = 0
+ toolspeed = 2
+ eye_safety_modifier = 1 // Safer on eyes.
+
+/obj/item/weapon/weldingtool/ayyy
+ name = "alien welding tool"
+ desc = "An alien welding tool. Whatever fuel it uses, it never runs out."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "welder"
+ toolspeed = 0.1
+ flame_color = "#6699FF" // Light bluish.
+ eye_safety_modifier = 2
+ change_icons = 0
+ origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5)
+ always_process = TRUE
+
+/obj/item/weapon/weldingtool/ayyy/process()
+ if(get_fuel() <= get_max_fuel())
+ reagents.add_reagent("fuel", 1)
+ ..()
+
/obj/item/weapon/weldingtool/experimental
name = "experimental welding tool"
+ desc = "An experimental welder capable of self-fuel generation. It can output a flame hotter than regular welders."
+ icon_state = "exwelder"
max_fuel = 40
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3)
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
+ toolspeed = 0.5
+ change_icons = 0
+ flame_intensity = 3
+ always_process = TRUE
var/nextrefueltick = 0
-/obj/item/weapon/weldingtool/experimental/New()
- processing_objects |= src
- ..()
-
-/obj/item/weapon/weldingtool/experimental/Destroy()
- processing_objects -= src
- return ..()
-
/obj/item/weapon/weldingtool/experimental/process()
..()
- if(get_fuel() < max_fuel && nextrefueltick < world.time)
+ if(get_fuel() < get_max_fuel() && nextrefueltick < world.time)
nextrefueltick = world.time + 10
reagents.add_reagent("fuel", 1)
@@ -449,12 +662,17 @@
/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC
name = "electric welding tool"
+ desc = "A welder which runs off of electricity."
icon_state = "arcwelder"
max_fuel = 0 //We'll handle the consumption later.
+ item_state = "ewelder"
var/obj/item/weapon/cell/power_supply //What type of power cell this uses
var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery
var/cell_type = /obj/item/weapon/cell/device
var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1
+ flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames.
+ acti_sound = 'sound/effects/sparks4.ogg'
+ deac_sound = 'sound/effects/sparks4.ogg'
/obj/item/weapon/weldingtool/electric/New()
..()
@@ -485,6 +703,15 @@
else
return 0
+/obj/item/weapon/weldingtool/electric/get_max_fuel()
+ if(use_external_power)
+ var/obj/item/weapon/cell/external = get_external_power_supply()
+ return external.maxcharge
+ else if(power_supply)
+ return power_supply.maxcharge
+ else
+ return 0
+
/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null)
if(!welding)
return 0
@@ -496,10 +723,12 @@
power_supply.give(charge_cost) //Give it back to the cell.
if(M)
eyecheck(M)
+ update_icon()
return 1
else
if(M)
M << "You need more energy to complete this task."
+ update_icon()
return 0
/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob)
@@ -556,7 +785,7 @@
/obj/item/weapon/crowbar
name = "crowbar"
desc = "Used to remove floors and to pry open doors."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "crowbar"
flags = CONDUCT
slot_flags = SLOT_BELT
@@ -568,6 +797,8 @@
origin_tech = list(TECH_ENGINEERING = 1)
matter = list(DEFAULT_WALL_MATERIAL = 50)
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
+ usesound = 'sound/items/crowbar.ogg'
+ toolspeed = 1
/obj/item/weapon/crowbar/red
icon = 'icons/obj/items.dmi'
@@ -592,6 +823,40 @@
else
return ..()
+/obj/item/weapon/crowbar/ayyy
+ name = "alien crowbar"
+ desc = "A hard-light crowbar. It appears to pry by itself, without any effort required."
+ icon = 'icons/obj/abductor.dmi'
+ usesound = 'sound/weapons/sonic_jackhammer.ogg'
+ icon_state = "crowbar"
+ toolspeed = 0.1
+ origin_tech = list(TECH_COMBAT = 4, TECH_ENGINEERING = 4)
+
+/obj/item/weapon/crowbar/cyborg
+ name = "hydraulic crowbar"
+ desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbars in industrial synthetics."
+ usesound = 'sound/items/jaws_pry.ogg'
+ force = 10
+ toolspeed = 0.5
+
+/obj/item/weapon/crowbar/power
+ name = "jaws of life"
+ desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a prying head."
+ icon_state = "jaws_pry"
+ item_state = "jawsoflife"
+ matter = list(MAT_METAL=150, MAT_SILVER=50, MAT_TITANIUM=25)
+ origin_tech = list(TECH_MATERIALS = 2, TECH_ENGINEERING = 2)
+ usesound = 'sound/items/jaws_pry.ogg'
+ force = 15
+ toolspeed = 0.25
+
+/obj/item/weapon/crowbar/power/attack_self(mob/user)
+ playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1)
+ var/obj/item/weapon/wirecutters/power/cutjaws = new /obj/item/weapon/wirecutters/power
+ to_chat(user, "You attach the cutting jaws to [src].")
+ qdel(src)
+ user.put_in_active_hand(cutjaws)
+
/*/obj/item/weapon/combitool
name = "combi-tool"
desc = "It even has one of those nubbins for doing the thingy."
@@ -649,3 +914,5 @@
tool.afterattack(target,user,1)
if(tool)
tool.loc = src*/
+
+#undef WELDER_FUEL_BURN_INTERVAL
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index df4fcc83f6..a5d5652408 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -218,6 +218,7 @@
else
user << "You need more welding fuel to complete this task."
return
+ playsound(src, WT.usesound, 50)
new /obj/item/stack/material/steel(src.loc)
for(var/mob/M in viewers(src))
M.show_message("\The [src] has been cut apart by [user] with \the [WT].", 3, "You hear welding.", 2)
@@ -249,6 +250,7 @@
else
user << "You need more welding fuel to complete this task."
return
+ playsound(src, WT.usesound, 50)
src.welded = !src.welded
src.update_icon()
for(var/mob/M in viewers(src))
@@ -259,7 +261,8 @@
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
else
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
- if(do_after(user, 20))
+ playsound(src, W.usesound, 50)
+ if(do_after(user, 20 * W.toolspeed))
if(!src) return
user << "You [anchored? "un" : ""]secured \the [src]!"
anchored = !anchored
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 0feb4fcd4d..b4bb08fd6d 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -32,7 +32,7 @@
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/multitool(src)
- new /obj/item/weapon/weldingtool/experimental(src)
+ new /obj/item/weapon/storage/belt/utility/chief/full(src)
new /obj/item/device/flash(src)
new /obj/item/taperoll/engineering(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 5a6962f710..bdce42f9f0 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -93,7 +93,7 @@
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
else
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
- if(do_after(user, 20))
+ if(do_after(user, 20 * W.toolspeed))
if(!src) return
user << "You [anchored? "un" : ""]secured \the [src]!"
anchored = !anchored
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index add1bd2c2a..da8c5f04cb 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -97,7 +97,7 @@
else if(istype(W, /obj/item/weapon/wirecutters))
if(rigged)
user << "You cut away the wiring."
- playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
rigged = 0
return
else return attack_hand(user)
diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm
index a2fdfd898d..88ff896874 100644
--- a/code/game/objects/structures/curtains.dm
+++ b/code/game/objects/structures/curtains.dm
@@ -37,9 +37,8 @@
/obj/structure/curtain/attackby(obj/item/P, mob/user)
if(istype(P, /obj/item/weapon/wirecutters))
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You start to cut the shower curtains."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 10))
user << "You cut the shower curtains."
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 36796a9a0a..7d1810c46f 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -167,10 +167,10 @@
if(istype(W, /obj/item/weapon/weldingtool) && ( (istext(glass)) || (glass == 1) || (!anchored) ))
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0, user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(src, WT.usesound, 50, 1)
if(istext(glass))
user.visible_message("[user] welds the [glass] plating off the airlock assembly.", "You start to weld the [glass] plating off the airlock assembly.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * WT.toolspeed))
if(!src || !WT.isOn()) return
to_chat(user, "You welded the [glass] plating off!")
var/M = text2path("/obj/item/stack/material/[glass]")
@@ -178,14 +178,14 @@
glass = 0
else if(glass == 1)
user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * WT.toolspeed))
if(!src || !WT.isOn()) return
to_chat(user, "You welded the glass panel out!")
new /obj/item/stack/material/glass/reinforced(src.loc)
glass = 0
else if(!anchored)
user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * WT.toolspeed))
if(!src || !WT.isOn()) return
to_chat(user, "You dissasembled the airlock assembly!")
new /obj/item/stack/material/steel(src.loc, 4)
@@ -195,13 +195,13 @@
return
else if(istype(W, /obj/item/weapon/wrench) && state == 0)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(anchored)
user.visible_message("[user] begins unsecuring the airlock assembly from the floor.", "You starts unsecuring the airlock assembly from the floor.")
else
user.visible_message("[user] begins securing the airlock assembly to the floor.", "You starts securing the airlock assembly to the floor.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
to_chat(user, "You [anchored? "un" : ""]secured the airlock assembly!")
anchored = !anchored
@@ -218,17 +218,17 @@
to_chat(user, "You wire the airlock.")
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 )
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
to_chat(user, "You cut the airlock wires.!")
new/obj/item/stack/cable_coil(src.loc, 1)
src.state = 0
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
if(do_after(user, 40))
@@ -246,10 +246,10 @@
src.state = 1
return
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("\The [user] starts removing the electronics from the airlock assembly.", "You start removing the electronics from the airlock assembly.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
to_chat(user, "You removed the airlock electronics!")
src.state = 1
@@ -282,10 +282,10 @@
glass = material_name
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
to_chat(user, "Now finishing the airlock.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
to_chat(user, "You finish the airlock!")
var/path
diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm
index 2608a311e3..53b2ad224f 100644
--- a/code/game/objects/structures/electricchair.dm
+++ b/code/game/objects/structures/electricchair.dm
@@ -14,7 +14,7 @@
/obj/structure/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
var/obj/structure/bed/chair/C = new /obj/structure/bed/chair(loc)
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
C.set_dir(dir)
part.loc = loc
part.master = null
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index dcc0270abc..bfbc34dcee 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -36,8 +36,8 @@
if(istype(O, /obj/item/weapon/wrench))
if(!has_extinguisher)
user << "You start to unwrench the extinguisher cabinet."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 15))
+ playsound(src.loc, O.usesound, 50, 1)
+ if(do_after(user, 15 * O.toolspeed))
user << "You unwrench the extinguisher cabinet."
new /obj/item/frame/extinguisher_cabinet( src.loc )
qdel(src)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 19f3b48076..14a724e029 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -56,22 +56,22 @@
/obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench) && state == 0)
if(anchored && !reinf_material)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "Now disassembling the girder..."
- if(do_after(user,40))
+ if(do_after(user,40 * W.toolspeed))
if(!src) return
user << "You dissasembled the girder!"
dismantle()
else if(!anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "Now securing the girder..."
- if(do_after(user, 40,src))
+ if(do_after(user, 40 * W.toolspeed, src))
user << "You secured the girder!"
reset_girder()
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
user << "Now slicing apart the girder..."
- if(do_after(user,30))
+ if(do_after(user,30 * W.toolspeed))
if(!src) return
user << "You slice apart the girder!"
dismantle()
@@ -82,21 +82,21 @@
else if(istype(W, /obj/item/weapon/screwdriver))
if(state == 2)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "Now unsecuring support struts..."
- if(do_after(user,40))
+ if(do_after(user,40 * W.toolspeed))
if(!src) return
user << "You unsecured the support struts!"
state = 1
else if(anchored && !reinf_material)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
reinforcing = !reinforcing
user << "\The [src] can now be [reinforcing? "reinforced" : "constructed"]!"
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1)
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "Now removing support struts..."
- if(do_after(user,40))
+ if(do_after(user,40 * W.toolspeed))
if(!src) return
user << "You removed the support struts!"
reinf_material.place_dismantled_product(get_turf(src))
@@ -104,9 +104,9 @@
reset_girder()
else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "Now dislodging the girder..."
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
user << "You dislodged the girder!"
icon_state = "displaced"
@@ -233,15 +233,15 @@
/obj/structure/girder/cult/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "Now disassembling the girder..."
- if(do_after(user,40))
+ if(do_after(user,40 * W.toolspeed))
user << "You dissasembled the girder!"
dismantle()
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
user << "Now slicing apart the girder..."
- if(do_after(user,30))
+ if(do_after(user,30 * W.toolspeed))
user << "You slice apart the girder!"
dismantle()
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 720d8a92d3..5d371b4555 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -65,7 +65,7 @@
//Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact
var/damage = Proj.get_structure_damage()
var/passthrough = 0
-
+
if(!damage) return
//20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area.
@@ -96,12 +96,12 @@
/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(iswirecutter(W))
if(!shock(user, 100))
- playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
new /obj/item/stack/rods(get_turf(src), destroyed ? 1 : 2)
qdel(src)
else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored))
if(!shock(user, 90))
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
anchored = !anchored
user.visible_message("[user] [anchored ? "fastens" : "unfastens"] the grille.", \
"You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.")
diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm
index cd0ab5ec9c..2030167b86 100644
--- a/code/game/objects/structures/mirror.dm
+++ b/code/game/objects/structures/mirror.dm
@@ -51,8 +51,8 @@
/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/wrench))
if(!glass)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src.loc, I.usesound, 50, 1)
+ if(do_after(user, 20 * I.toolspeed))
user << "You unfasten the frame."
new /obj/item/frame/mirror( src.loc )
qdel(src)
@@ -65,7 +65,7 @@
new /obj/item/weapon/material/shard( src.loc )
return
if(!shattered && glass)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
user << "You remove the glass."
glass = !glass
icon_state = "mirror_frame"
diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm
index a39e9658dd..dacd1013c4 100644
--- a/code/game/objects/structures/musician.dm
+++ b/code/game/objects/structures/musician.dm
@@ -414,18 +414,18 @@
/obj/structure/device/piano/attackby(obj/item/O as obj, mob/user as mob)
if (istype(O, /obj/item/weapon/wrench))
if (anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, O.usesound, 50, 1)
user << "You begin to loosen \the [src]'s casters..."
- if (do_after(user, 40))
+ if (do_after(user, 40 * O.toolspeed))
user.visible_message( \
"[user] loosens \the [src]'s casters.", \
"You have loosened \the [src]. Now it can be pulled somewhere else.", \
"You hear ratchet.")
src.anchored = 0
else
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, O.usesound, 50, 1)
user << "You begin to tighten \the [src] to the floor..."
- if (do_after(user, 20))
+ if (do_after(user, 20 * O.toolspeed))
user.visible_message( \
"[user] tightens \the [src]'s casters.", \
"You have tightened \the [src]'s casters. Now it can be played again.", \
diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm
index 174634e3cb..75052f7b86 100644
--- a/code/game/objects/structures/noticeboard.dm
+++ b/code/game/objects/structures/noticeboard.dm
@@ -42,8 +42,8 @@
user << "You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached."
if(istype(O, /obj/item/weapon/wrench))
user << "You start to unwrench the noticeboard."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 15))
+ playsound(src.loc, O.usesound, 50, 1)
+ if(do_after(user, 15 * O.toolspeed))
user << "You unwrench the noticeboard."
new /obj/item/frame/noticeboard( src.loc )
qdel(src)
diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm
index 8125501ca8..96cc5a8ea0 100644
--- a/code/game/objects/structures/signs.dm
+++ b/code/game/objects/structures/signs.dm
@@ -22,6 +22,7 @@
/obj/structure/sign/attackby(obj/item/tool as obj, mob/user as mob) //deconstruction
if(istype(tool, /obj/item/weapon/screwdriver) && !istype(src, /obj/structure/sign/double))
+ playsound(src, tool.usesound, 50, 1)
user << "You unfasten the sign with your [tool]."
var/obj/item/sign/S = new(src.loc)
S.name = name
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 1b9d897b99..0e577bb36b 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -88,7 +88,7 @@
/obj/structure/bed/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
dismantle()
qdel(src)
else if(istype(W,/obj/item/stack))
@@ -123,7 +123,7 @@
user << "\The [src] has no padding to remove."
return
user << "You remove the padding from \the [src]."
- playsound(src, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
remove_padding()
else if(istype(W, /obj/item/weapon/grab))
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index 6592e51b29..f6ee039977 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -109,7 +109,7 @@ var/global/list/stool_cache = list() //haha stool
/obj/item/weapon/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
dismantle()
qdel(src)
else if(istype(W,/obj/item/stack))
@@ -143,7 +143,7 @@ var/global/list/stool_cache = list() //haha stool
user << "\The [src] has no padding to remove."
return
user << "You remove the padding from \the [src]."
- playsound(src, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 50, 1)
remove_padding()
else
..()
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 94aa30c24d..174bf76c6d 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -162,8 +162,8 @@
if(istype(I, /obj/item/weapon/wrench))
var/newtemp = input(user, "What setting would you like to set the temperature valve to?", "Water Temperature Valve") in temperature_settings
user << "You begin to adjust the temperature valve with \the [I]."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 50))
+ playsound(src.loc, I.usesound, 50, 1)
+ if(do_after(user, 50 * I.toolspeed))
watertemp = newtemp
user.visible_message("[user] adjusts the shower with \the [I].", "You adjust the shower with \the [I].")
add_fingerprint(user)
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index 86aca41e17..1d1be70694 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -93,9 +93,9 @@ obj/structure/windoor_assembly/Destroy()
var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user))
user.visible_message("[user] disassembles the windoor assembly.", "You start to disassemble the windoor assembly.")
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(src.loc, WT.usesound, 50, 1)
- if(do_after(user, 40))
+ if(do_after(user, 40 * WT.toolspeed))
if(!src || !WT.isOn()) return
to_chat(user,"You disassembled the windoor assembly!")
if(secure)
@@ -109,10 +109,10 @@ obj/structure/windoor_assembly/Destroy()
//Wrenching an unsecure assembly anchors it in place. Step 4 complete
if(istype(W, /obj/item/weapon/wrench) && !anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("[user] secures the windoor assembly to the floor.", "You start to secure the windoor assembly to the floor.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
to_chat(user,"You've secured the windoor assembly!")
src.anchored = 1
@@ -120,10 +120,10 @@ obj/structure/windoor_assembly/Destroy()
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
else if(istype(W, /obj/item/weapon/wrench) && anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("[user] unsecures the windoor assembly to the floor.", "You start to unsecure the windoor assembly to the floor.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
to_chat(user,"You've unsecured the windoor assembly!")
src.anchored = 0
@@ -146,10 +146,10 @@ obj/structure/windoor_assembly/Destroy()
//Removing wire from the assembly. Step 5 undone.
if(istype(W, /obj/item/weapon/wirecutters) && !src.electronics)
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
to_chat(user,"You cut the windoor wires.!")
@@ -175,10 +175,10 @@ obj/structure/windoor_assembly/Destroy()
//Screwdriver to remove airlock electronics. Step 6 undone.
else if(istype(W, /obj/item/weapon/screwdriver) && src.electronics)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src || !src.electronics) return
to_chat(user,"You've removed the airlock electronics!")
step = 1
@@ -195,10 +195,10 @@ obj/structure/windoor_assembly/Destroy()
to_chat(usr,"The assembly has broken airlock electronics.")
return
to_chat(usr,browse(null, "window=windoor_access")) //Not sure what this actually does... -Ner
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user.visible_message("[user] pries the windoor into the frame.", "You start prying the windoor into the frame.")
- if(do_after(user, 40))
+ if(do_after(user, 40 * W.toolspeed))
if(!src) return
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index ffddffe022..51e37d462f 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -242,29 +242,29 @@
if(reinf && state >= 1)
state = 3 - state
update_nearby_icons()
- playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user << (state == 1 ? "You have unfastened the window from the frame." : "You have fastened the window to the frame.")
else if(reinf && state == 0)
anchored = !anchored
update_nearby_icons()
update_verbs()
- playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user << (anchored ? "You have fastened the frame to the floor." : "You have unfastened the frame from the floor.")
else if(!reinf)
anchored = !anchored
update_nearby_icons()
update_verbs()
- playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user << (anchored ? "You have fastened the window to the floor." : "You have unfastened the window.")
else if(istype(W, /obj/item/weapon/crowbar) && reinf && state <= 1)
state = 1 - state
- playsound(loc, 'sound/items/Crowbar.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user << (state ? "You have pried the window into the frame." : "You have pried the window out of the frame.")
else if(istype(W, /obj/item/weapon/wrench) && !anchored && (!state || !reinf))
if(!glasstype)
user << "You're not sure how to dismantle \the [src] properly."
else
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
visible_message("[user] dismantles \the [src].")
if(dir == SOUTHWEST)
var/obj/item/stack/material/mats = new glasstype(loc)
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index 95fdff3cfb..f7bfd311e2 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -57,10 +57,9 @@ var/list/mechtoys = list(
/obj/structure/plasticflaps/attackby(obj/item/P, mob/user)
if(istype(P, /obj/item/weapon/wirecutters))
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "You start to cut the plastic flaps."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(do_after(user, 10))
+ if(do_after(user, 10 * P.toolspeed))
user << "You cut the plastic flaps."
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
A.amount = 4
diff --git a/code/game/turfs/simulated/floor_attackby.dm b/code/game/turfs/simulated/floor_attackby.dm
index c8cc2660c9..44446af94e 100644
--- a/code/game/turfs/simulated/floor_attackby.dm
+++ b/code/game/turfs/simulated/floor_attackby.dm
@@ -16,19 +16,19 @@
make_plating(1)
else
return
- playsound(src, 'sound/items/Crowbar.ogg', 80, 1)
+ playsound(src, C.usesound, 80, 1)
return
else if(istype(C, /obj/item/weapon/screwdriver) && (flooring.flags & TURF_REMOVE_SCREWDRIVER))
if(broken || burnt)
return
user << "You unscrew and remove the [flooring.descriptor]."
make_plating(1)
- playsound(src, 'sound/items/Screwdriver.ogg', 80, 1)
+ playsound(src, C.usesound, 80, 1)
return
else if(istype(C, /obj/item/weapon/wrench) && (flooring.flags & TURF_REMOVE_WRENCH))
user << "You unwrench and remove the [flooring.descriptor]."
make_plating(1)
- playsound(src, 'sound/items/Ratchet.ogg', 80, 1)
+ playsound(src, C.usesound, 80, 1)
return
else if(istype(C, /obj/item/weapon/shovel) && (flooring.flags & TURF_REMOVE_SHOVEL))
user << "You shovel off the [flooring.descriptor]."
@@ -82,7 +82,7 @@
if(broken || burnt)
if(welder.remove_fuel(0,user))
user << "You fix some dents on the broken plating."
- playsound(src, 'sound/items/Welder.ogg', 80, 1)
+ playsound(src, welder.usesound, 80, 1)
icon_state = "plating"
burnt = null
broken = null
diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm
index 25b4915408..e227bb7467 100644
--- a/code/game/turfs/simulated/wall_attacks.dm
+++ b/code/game/turfs/simulated/wall_attacks.dm
@@ -140,7 +140,7 @@
var/obj/item/weapon/weldingtool/WT = W
if( WT.remove_fuel(0,user) )
user << "You burn away the fungi with \the [WT]."
- playsound(src, 'sound/items/Welder.ogg', 10, 1)
+ playsound(src, WT.usesound, 10, 1)
for(var/obj/effect/overlay/wallrot/WR in src)
qdel(WR)
return
@@ -183,8 +183,8 @@
if(WT.remove_fuel(0,user))
user << "You start repairing the damage to [src]."
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
- if(do_after(user, max(5, damage / 5)) && WT && WT.isOn())
+ playsound(src.loc, WT.usesound, 100, 1)
+ if(do_after(user, max(5, damage / 5) * WT.toolspeed) && WT && WT.isOn())
user << "You finish repairing the damage to [src]."
take_damage(-damage)
else
@@ -208,8 +208,8 @@
user << "You need more welding fuel to complete this task."
return
dismantle_verb = "cutting"
- dismantle_sound = 'sound/items/Welder.ogg'
- cut_delay *= 0.7
+ dismantle_sound = W.usesound
+ // cut_delay *= 0.7 // Tools themselves now can shorten the time it takes.
else if(istype(W,/obj/item/weapon/melee/energy/blade))
dismantle_sound = "sparks"
dismantle_verb = "slicing"
@@ -229,7 +229,7 @@
if(cut_delay<0)
cut_delay = 0
- if(!do_after(user,cut_delay))
+ if(!do_after(user,cut_delay * W.toolspeed))
return
user << "You remove the outer plating."
@@ -242,7 +242,7 @@
switch(construction_stage)
if(6)
if (istype(W, /obj/item/weapon/wirecutters))
- playsound(src, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
construction_stage = 5
user.update_examine_panel(src)
user << "You cut through the outer grille."
@@ -251,8 +251,8 @@
if(5)
if (istype(W, /obj/item/weapon/screwdriver))
user << "You begin removing the support lines."
- playsound(src, 'sound/items/Screwdriver.ogg', 100, 1)
- if(!do_after(user,40) || !istype(src, /turf/simulated/wall) || construction_stage != 5)
+ playsound(src, W.usesound, 100, 1)
+ if(!do_after(user,40 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 5)
return
construction_stage = 4
user.update_examine_panel(src)
@@ -263,6 +263,7 @@
construction_stage = 6
user.update_examine_panel(src)
user << "You mend the outer grille."
+ playsound(src, W.usesound, 100, 1)
update_icon()
return
if(4)
@@ -280,8 +281,8 @@
cut_cover = 1
if(cut_cover)
user << "You begin slicing through the metal cover."
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
- if(!do_after(user, 60) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
+ playsound(src, W.usesound, 100, 1)
+ if(!do_after(user, 60 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
return
construction_stage = 3
user.update_examine_panel(src)
@@ -290,8 +291,8 @@
return
else if (istype(W, /obj/item/weapon/screwdriver))
user << "You begin screwing down the support lines."
- playsound(src, 'sound/items/Screwdriver.ogg', 100, 1)
- if(!do_after(user,40) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
+ playsound(src, W.usesound, 100, 1)
+ if(!do_after(user,40 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
return
construction_stage = 5
user.update_examine_panel(src)
@@ -301,8 +302,8 @@
if(3)
if (istype(W, /obj/item/weapon/crowbar))
user << "You struggle to pry off the cover."
- playsound(src, 'sound/items/Crowbar.ogg', 100, 1)
- if(!do_after(user,100) || !istype(src, /turf/simulated/wall) || construction_stage != 3)
+ playsound(src, W.usesound, 100, 1)
+ if(!do_after(user,100 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 3)
return
construction_stage = 2
user.update_examine_panel(src)
@@ -312,8 +313,8 @@
if(2)
if (istype(W, /obj/item/weapon/wrench))
user << "You start loosening the anchoring bolts which secure the support rods to their frame."
- playsound(src, 'sound/items/Ratchet.ogg', 100, 1)
- if(!do_after(user,40) || !istype(src, /turf/simulated/wall) || construction_stage != 2)
+ playsound(src, W.usesound, 100, 1)
+ if(!do_after(user,40 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 2)
return
construction_stage = 1
user.update_examine_panel(src)
@@ -333,8 +334,8 @@
cut_cover = 1
if(cut_cover)
user << "You begin slicing through the support rods."
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
- if(!do_after(user,70) || !istype(src, /turf/simulated/wall) || construction_stage != 1)
+ playsound(src, W.usesound, 100, 1)
+ if(!do_after(user,70 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 1)
return
construction_stage = 0
user.update_examine_panel(src)
@@ -344,8 +345,8 @@
if(0)
if(istype(W, /obj/item/weapon/crowbar))
user << "You struggle to pry off the outer sheath."
- playsound(src, 'sound/items/Crowbar.ogg', 100, 1)
- if(!do_after(user,100) || !istype(src, /turf/simulated/wall) || !user || !W || !T )
+ playsound(src, W.usesound, 100, 1)
+ if(!do_after(user,100 * W.toolspeed) || !istype(src, /turf/simulated/wall) || !user || !W || !T )
return
if(user.loc == T && user.get_active_hand() == W )
user << "You pry off the outer sheath."
diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm
index 2bfdbb53cd..0fbefc88d8 100644
--- a/code/modules/assembly/shock_kit.dm
+++ b/code/modules/assembly/shock_kit.dm
@@ -30,6 +30,7 @@
if(istype(W, /obj/item/weapon/screwdriver))
status = !status
to_chat(user, "[src] is now [status ? "secured" : "unsecured"]!")
+ playsound(src, W.usesound, 50, 1)
add_fingerprint(user)
return
diff --git a/code/modules/blob/blob.dm b/code/modules/blob/blob.dm
index e06d688f32..2352123fb2 100644
--- a/code/modules/blob/blob.dm
+++ b/code/modules/blob/blob.dm
@@ -142,7 +142,7 @@
if("fire")
damage = (W.force / fire_resist)
if(istype(W, /obj/item/weapon/weldingtool))
- playsound(loc, 'sound/items/Welder.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if("brute")
damage = (W.force / brute_resist)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index f55352b76d..441822d807 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -213,7 +213,7 @@
update_icon()
return
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 50, 1)
user.visible_message("[user] cuts the fingertips off of the [src].","You cut the fingertips off of the [src].")
clipped = 1
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index d1b4a06d23..b8ddcb2fd6 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -225,18 +225,22 @@
if(choice == tank) //No, a switch doesn't work here. Sorry. ~Techhead
user << "You pop \the [tank] out of \the [src]'s storage compartment."
tank.forceMove(get_turf(src))
+ playsound(src, W.usesound, 50, 1)
src.tank = null
else if(choice == cooler)
user << "You pop \the [cooler] out of \the [src]'s storage compartment."
cooler.forceMove(get_turf(src))
+ playsound(src, W.usesound, 50, 1)
src.cooler = null
else if(choice == helmet)
user << "You detatch \the [helmet] from \the [src]'s helmet mount."
helmet.forceMove(get_turf(src))
+ playsound(src, W.usesound, 50, 1)
src.helmet = null
else if(choice == boots)
user << "You detatch \the [boots] from \the [src]'s boot mounts."
boots.forceMove(get_turf(src))
+ playsound(src, W.usesound, 50, 1)
src.boots = null
else
user << "\The [src] does not have anything installed."
diff --git a/code/modules/economy/cash_register.dm b/code/modules/economy/cash_register.dm
index 87f7b53a7f..c9332fb72f 100644
--- a/code/modules/economy/cash_register.dm
+++ b/code/modules/economy/cash_register.dm
@@ -488,8 +488,8 @@
else
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.",
"You begin unsecuring \the [src] from the floor.")
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(!do_after(user, 20))
+ playsound(src, W.usesound, 50, 1)
+ if(!do_after(user, 20 * W.toolspeed))
manipulating = 0
return
if(!anchored)
diff --git a/code/modules/examine/stat_icons.dm b/code/modules/examine/stat_icons.dm
index ba09157d1c..49b511de2e 100644
--- a/code/modules/examine/stat_icons.dm
+++ b/code/modules/examine/stat_icons.dm
@@ -8,11 +8,11 @@ var/global/list/description_icons = list(
"radiation_armor" = image(icon='icons/mob/screen1_stats.dmi',icon_state="radiation_protection"),
"biohazard_armor" = image(icon='icons/mob/screen1_stats.dmi',icon_state="biohazard_protection"),
- "welder" = image(icon='icons/obj/items.dmi',icon_state="welder"),
- "wirecutters" = image(icon='icons/obj/items.dmi',icon_state="cutters"),
- "screwdriver" = image(icon='icons/obj/items.dmi',icon_state="screwdriver"),
- "wrench" = image(icon='icons/obj/items.dmi',icon_state="wrench"),
- "crowbar" = image(icon='icons/obj/items.dmi',icon_state="crowbar"),
+ "welder" = image(icon='icons/obj/tools.dmi',icon_state="welder"),
+ "wirecutters" = image(icon='icons/obj/tools.dmi',icon_state="cutters"),
+ "screwdriver" = image(icon='icons/obj/tools.dmi',icon_state="screwdriver"),
+ "wrench" = image(icon='icons/obj/tools.dmi',icon_state="wrench"),
+ "crowbar" = image(icon='icons/obj/tools.dmi',icon_state="crowbar"),
"multitool" = image(icon='icons/obj/device.dmi',icon_state="multitool"),
"metal sheet" = image(icon='icons/obj/items.dmi',icon_state="sheet-metal"),
diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm
index 27487a4e1f..cc46a8da38 100644
--- a/code/modules/hydroponics/beekeeping/beehive.dm
+++ b/code/modules/hydroponics/beekeeping/beehive.dm
@@ -43,6 +43,7 @@
return
else if(istype(I, /obj/item/weapon/wrench))
anchored = !anchored
+ playsound(loc, I.usesound, 50, 1)
user.visible_message("[user] [anchored ? "wrenches" : "unwrenches"] \the [src].", "You [anchored ? "wrench" : "unwrench"] \the [src].")
return
else if(istype(I, /obj/item/bee_smoker))
@@ -111,7 +112,7 @@
user << "You can't dismantle \the [src] with these bees inside."
return
user << "You start dismantling \the [src]..."
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
if(do_after(user, 30))
user.visible_message("[user] dismantles \the [src].", "You dismantle \the [src].")
new /obj/item/beehive_assembly(loc)
diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm
index 89dc65b147..48b26fd777 100644
--- a/code/modules/hydroponics/seed_storage.dm
+++ b/code/modules/hydroponics/seed_storage.dm
@@ -297,7 +297,7 @@
user << "There are no seeds in \the [O.name]."
return
else if(istype(O, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, O.usesound, 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm
index e69c3eec8a..f906e257b4 100644
--- a/code/modules/hydroponics/trays/tray.dm
+++ b/code/modules/hydroponics/trays/tray.dm
@@ -543,7 +543,7 @@
if(locate(/obj/machinery/atmospherics/portables_connector/) in loc)
return ..()
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, O.usesound, 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index 911891a7d4..a45f5dba2d 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -25,7 +25,7 @@
I.loc = src
update_icon()
-/obj/structure/bookcase/attackby(obj/O as obj, mob/user as mob)
+/obj/structure/bookcase/attackby(obj/item/O as obj, mob/user as mob)
if(istype(O, /obj/item/weapon/book))
user.drop_item()
O.loc = src
@@ -37,13 +37,13 @@
else
name = ("bookcase ([newname])")
else if(istype(O,/obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, O.usesound, 100, 1)
user << (anchored ? "You unfasten \the [src] from the floor." : "You secure \the [src] to the floor.")
anchored = !anchored
else if(istype(O,/obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(loc, O.usesound, 75, 1)
user << "You begin dismantling \the [src]."
- if(do_after(user,25))
+ if(do_after(user,25 * O.toolspeed))
user << "You dismantle \the [src]."
new /obj/item/stack/material/wood(get_turf(src), 3)
for(var/obj/item/weapon/book/b in contents)
diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm
index 5b1cbe496f..9cdac912db 100644
--- a/code/modules/mining/drilling/drill.dm
+++ b/code/modules/mining/drilling/drill.dm
@@ -310,7 +310,7 @@
user << "You can't anchor something to empty space. Idiot."
return
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You [anchored ? "un" : ""]anchor the brace."
anchored = !anchored
diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm
index 873934c0c7..971a04bd22 100644
--- a/code/modules/mob/living/bot/bot.dm
+++ b/code/modules/mob/living/bot/bot.dm
@@ -100,6 +100,7 @@
if(!locked)
open = !open
user << "Maintenance panel is now [open ? "opened" : "closed"]."
+ playsound(src, O.usesound, 50, 1)
else
user << "You need to unlock the controls first."
return
@@ -108,6 +109,7 @@
if(open)
health = min(getMaxHealth(), health + 10)
user.visible_message("[user] repairs [src].","You repair [src].")
+ playsound(src, O.usesound, 50, 1)
else
user << "Unable to repair with the maintenance panel closed."
else
diff --git a/code/modules/mob/living/bot/ed209bot.dm b/code/modules/mob/living/bot/ed209bot.dm
index 80279a4538..ad59b63c39 100644
--- a/code/modules/mob/living/bot/ed209bot.dm
+++ b/code/modules/mob/living/bot/ed209bot.dm
@@ -168,7 +168,7 @@
if(8)
if(istype(W, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
var/turf/T = get_turf(user)
user << "Now attaching the gun to the frame..."
sleep(40)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 30385d5035..8ae2ed52bf 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -697,16 +697,18 @@ var/list/ai_verbs_hidden = list( // For why this exists, refer to https://xkcd.c
else if(istype(W, /obj/item/weapon/wrench))
if(anchored)
+ playsound(src, W.usesound, 50, 1)
user.visible_message("\The [user] starts to unbolt \the [src] from the plating...")
- if(!do_after(user,40))
+ if(!do_after(user,40 * W.toolspeed))
user.visible_message("\The [user] decides not to unbolt \the [src].")
return
user.visible_message("\The [user] finishes unfastening \the [src]!")
anchored = 0
return
else
+ playsound(src, W.usesound, 50, 1)
user.visible_message("\The [user] starts to bolt \the [src] to the plating...")
- if(!do_after(user,40))
+ if(!do_after(user,40 * W.toolspeed))
user.visible_message("\The [user] decides not to bolt \the [src].")
return
user.visible_message("\The [user] finishes fastening down \the [src]!")
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index b5c572398b..a6e0140b41 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -576,6 +576,7 @@
else if(istype(W, /obj/item/weapon/screwdriver) && opened && !cell) // haxing
wiresexposed = !wiresexposed
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
+ playsound(src, W.usesound, 50, 1)
updateicon()
else if(istype(W, /obj/item/weapon/screwdriver) && opened && cell) // radio
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index b7c2306d74..de9517fd0c 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -153,7 +153,7 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/New()
..()
src.modules += new /obj/item/device/flash(src)
- src.modules += new /obj/item/weapon/crowbar(src)
+ src.modules += new /obj/item/weapon/crowbar/cyborg(src)
src.modules += new /obj/item/weapon/extinguisher(src)
/obj/item/weapon/robot_module/robot/standard
@@ -177,7 +177,7 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/standard/New()
..()
src.modules += new /obj/item/weapon/melee/baton/loaded(src)
- src.modules += new /obj/item/weapon/wrench(src)
+ src.modules += new /obj/item/weapon/wrench/cyborg(src)
src.modules += new /obj/item/device/healthanalyzer(src)
src.emag = new /obj/item/weapon/melee/energy/sword(src)
@@ -354,8 +354,8 @@ var/global/list/robot_modules = list(
..()
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/rcd/borg(src)
- src.modules += new /obj/item/weapon/screwdriver(src)
- src.modules += new /obj/item/weapon/wrench(src)
+ src.modules += new /obj/item/weapon/screwdriver/cyborg(src)
+ src.modules += new /obj/item/weapon/wrench/cyborg(src)
src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src)
src.modules += new /obj/item/device/pipe_painter(src)
@@ -395,9 +395,9 @@ var/global/list/robot_modules = list(
..()
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
- src.modules += new /obj/item/weapon/screwdriver(src)
- src.modules += new /obj/item/weapon/wrench(src)
- src.modules += new /obj/item/weapon/wirecutters(src)
+ src.modules += new /obj/item/weapon/screwdriver/cyborg(src)
+ src.modules += new /obj/item/weapon/wrench/cyborg(src)
+ src.modules += new /obj/item/weapon/wirecutters/cyborg(src)
src.modules += new /obj/item/device/multitool(src)
src.modules += new /obj/item/device/t_scanner(src)
src.modules += new /obj/item/device/analyzer(src)
@@ -676,8 +676,8 @@ var/global/list/robot_modules = list(
/obj/item/weapon/robot_module/robot/miner/New()
..()
src.modules += new /obj/item/borg/sight/material(src)
- src.modules += new /obj/item/weapon/wrench(src)
- src.modules += new /obj/item/weapon/screwdriver(src)
+ src.modules += new /obj/item/weapon/wrench/cyborg(src)
+ src.modules += new /obj/item/weapon/screwdriver/cyborg(src)
src.modules += new /obj/item/weapon/storage/bag/ore(src)
src.modules += new /obj/item/weapon/pickaxe/borgdrill(src)
src.modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src)
@@ -710,9 +710,9 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/device/robotanalyzer(src)
src.modules += new /obj/item/weapon/card/robot(src)
src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
- src.modules += new /obj/item/weapon/screwdriver(src)
- src.modules += new /obj/item/weapon/wrench(src)
- src.modules += new /obj/item/weapon/wirecutters(src)
+ src.modules += new /obj/item/weapon/screwdriver/cyborg(src)
+ src.modules += new /obj/item/weapon/wrench/cyborg(src)
+ src.modules += new /obj/item/weapon/wirecutters/cyborg(src)
src.modules += new /obj/item/device/multitool(src)
src.modules += new /obj/item/weapon/surgical/scalpel(src)
src.modules += new /obj/item/weapon/surgical/circular_saw(src)
@@ -809,10 +809,10 @@ var/global/list/robot_modules = list(
..()
src.modules += new /obj/item/borg/sight/meson(src)
src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src)
- src.modules += new /obj/item/weapon/screwdriver(src)
- src.modules += new /obj/item/weapon/wrench(src)
- src.modules += new /obj/item/weapon/crowbar(src)
- src.modules += new /obj/item/weapon/wirecutters(src)
+ src.modules += new /obj/item/weapon/screwdriver/cyborg(src)
+ src.modules += new /obj/item/weapon/wrench/cyborg(src)
+ src.modules += new /obj/item/weapon/crowbar/cyborg(src)
+ src.modules += new /obj/item/weapon/wirecutters/cyborg(src)
src.modules += new /obj/item/device/multitool(src)
src.modules += new /obj/item/device/lightreplacer(src)
src.modules += new /obj/item/weapon/gripper(src)
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index a8e0c6eacb..89a0e5544a 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -40,13 +40,14 @@
icon_state = initial(icon_state)
updateUsrDialog()
else if(istype(P, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
else if(istype(P, /obj/item/weapon/screwdriver))
user << "You begin taking the [name] apart."
- if(do_after(user, 10))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
+ if(do_after(user, 10 * P.toolspeed))
+ playsound(loc, P.usesound, 50, 1)
user << "You take the [name] apart."
new /obj/item/stack/material/steel( src.loc, 4 )
for(var/obj/item/I in contents)
diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm
index 41f0619187..b80a331180 100644
--- a/code/modules/paperwork/papershredder.dm
+++ b/code/modules/paperwork/papershredder.dm
@@ -41,7 +41,7 @@
empty_bin(user, W)
return
else if(istype(W, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
return
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index 74acf07ddb..0870b60c64 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -141,7 +141,7 @@
else
user << "This cartridge is not yet ready for replacement! Use up the rest of the toner."
else if(istype(O, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, O.usesound, 50, 1)
anchored = !anchored
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm
index cafc9641ad..dfea9f494e 100644
--- a/code/modules/power/antimatter/control.dm
+++ b/code/modules/power/antimatter/control.dm
@@ -142,17 +142,17 @@
if(!istype(W) || !user) return
if(istype(W, /obj/item/weapon/wrench))
if(!anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the anchor bolts to the floor.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
src.anchored = 1
connect_to_network()
else if(!linked_shielding.len > 0)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] unsecures the [src.name].", \
"You remove the anchor bolts.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
src.anchored = 0
disconnect_from_network()
else
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 72fbccaa57..eb142aac1e 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -444,9 +444,9 @@
if (terminal)
to_chat(user,"Disconnect the wires first.")
return
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
to_chat(user,"You begin to remove the power control board...") //lpeters - fixed grammar issues //Ner - grrrrrr
- if(do_after(user, 50))
+ if(do_after(user, 50 * W.toolspeed))
if (has_electronics==1)
has_electronics = 0
if ((stat & BROKEN))
@@ -498,12 +498,12 @@
if (has_electronics==1 && terminal)
has_electronics = 2
stat &= ~MAINT
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
to_chat(user,"You screw the circuit electronics into place.")
else if (has_electronics==2)
has_electronics = 1
stat |= MAINT
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
to_chat(user,"You unfasten the electronics.")
else /* has_electronics==0 */
to_chat(user,"There is nothing to secure.")
@@ -512,6 +512,7 @@
else
wiresexposed = !wiresexposed
to_chat(user,"The wires have been [wiresexposed ? "exposed" : "unexposed"].")
+ playsound(src, W.usesound, 50, 1)
update_icon()
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
@@ -567,7 +568,7 @@
user.visible_message("[user.name] starts dismantling the [src]'s power terminal.", \
"You begin to cut the cables...")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
- if(do_after(user, 50))
+ if(do_after(user, 50 * W.toolspeed))
if(terminal && opened && has_electronics!=2)
if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
@@ -599,8 +600,8 @@
user.visible_message("[user.name] begins cutting apart [src] with the [WT.name].", \
"You start welding the APC frame...", \
"You hear welding.")
- playsound(src.loc, 'sound/items/Welder.ogg', 25, 1)
- if(do_after(user, 50))
+ playsound(src, WT.usesound, 25, 1)
+ if(do_after(user, 50 * WT.toolspeed))
if(!src || !WT.remove_fuel(3, user)) return
if (emagged || (stat & BROKEN) || opened==2)
new /obj/item/stack/material/steel(loc)
diff --git a/code/modules/power/batteryrack.dm b/code/modules/power/batteryrack.dm
index 56e2a485ca..7bb37a5662 100644
--- a/code/modules/power/batteryrack.dm
+++ b/code/modules/power/batteryrack.dm
@@ -81,7 +81,7 @@
if(istype(W, /obj/item/weapon/crowbar))
if (charge < (capacity / 100))
if (!output_attempt && !input_attempt)
- playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
var/obj/structure/frame/M = new /obj/structure/frame(src.loc)
M.frame_type = "machine"
M.state = 2
diff --git a/code/modules/power/fusion/core/_core.dm b/code/modules/power/fusion/core/_core.dm
index c78cb47620..74da4e4acb 100644
--- a/code/modules/power/fusion/core/_core.dm
+++ b/code/modules/power/fusion/core/_core.dm
@@ -109,7 +109,7 @@ var/list/fusion_cores = list()
else if(iswrench(W))
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
if(anchored)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the [src.name] to the floor.", \
diff --git a/code/modules/power/fusion/fuel_assembly/fuel_injector.dm b/code/modules/power/fusion/fuel_assembly/fuel_injector.dm
index f0a0fd0426..9f54c48188 100644
--- a/code/modules/power/fusion/fuel_assembly/fuel_injector.dm
+++ b/code/modules/power/fusion/fuel_assembly/fuel_injector.dm
@@ -71,7 +71,7 @@ var/list/fuel_injectors = list()
to_chat(user, "Shut \the [src] off first!")
return
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
if(anchored)
user.visible_message("\The [user] secures \the [src] to the floor.")
else
diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm
index 2817fc11d9..27032a2198 100644
--- a/code/modules/power/generator.dm
+++ b/code/modules/power/generator.dm
@@ -138,11 +138,11 @@
/obj/machinery/power/generator/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
anchored = !anchored
user.visible_message("[user.name] [anchored ? "secures" : "unsecures"] the bolts holding [src.name] to the floor.", \
"You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
use_power = anchored
if(anchored) // Powernet connection stuff.
connect_to_network()
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index dfe01e3cdc..216332cbdd 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -48,9 +48,9 @@
src.add_fingerprint(user)
if (istype(W, /obj/item/weapon/wrench))
if (src.stage == 1)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
usr << "You begin deconstructing [src]."
- if (!do_after(usr, 30))
+ if (!do_after(usr, 30 * W.toolspeed))
return
new /obj/item/stack/material/steel( get_turf(src.loc), sheets_refunded )
user.visible_message("[user.name] deconstructs [src].", \
@@ -78,7 +78,7 @@
new /obj/item/stack/cable_coil(get_turf(src.loc), 1, "red")
user.visible_message("[user.name] removes the wiring from [src].", \
"You remove the wiring from [src].", "You hear a noise.")
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 50, 1)
return
if(istype(W, /obj/item/stack/cable_coil))
@@ -109,7 +109,7 @@
src.stage = 3
user.visible_message("[user.name] closes [src]'s casing.", \
"You close [src]'s casing.", "You hear a noise.")
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
switch(fixture_type)
@@ -418,7 +418,7 @@
// attempt to stick weapon into light socket
else if(status == LIGHT_EMPTY)
if(istype(W, /obj/item/weapon/screwdriver)) //If it's a screwdriver open it.
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] opens [src]'s casing.", \
"You open [src]'s casing.", "You hear a noise.")
var/obj/machinery/light_construct/newlight = null
@@ -455,7 +455,7 @@
/obj/machinery/light/flamp/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You [anchored ? "wrench" : "unwrench"] \the [src]."
if(!lamp_shade)
@@ -467,7 +467,7 @@
else
if(istype(W, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] removes [src]'s lamp shade.", \
"You remove [src]'s lamp shade.", "You hear a noise.")
lamp_shade = 0
diff --git a/code/modules/power/pacman2.dm b/code/modules/power/pacman2.dm
index 881368a313..fc5b58709a 100644
--- a/code/modules/power/pacman2.dm
+++ b/code/modules/power/pacman2.dm
@@ -87,12 +87,13 @@
makepowernets()
else if(istype(O, /obj/item/weapon/screwdriver))
open = !open
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, O.usesound, 50, 1)
if(open)
user << "You open the access panel."
else
user << "You close the access panel."
else if(istype(O, /obj/item/weapon/crowbar) && !open)
+ playsound(loc, O.usesound, 50, 1)
var/obj/machinery/constructable_frame/machine_frame/new_frame = new /obj/machinery/constructable_frame/machine_frame(src.loc)
for(var/obj/item/I in component_parts)
I.loc = src.loc
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 0d3a04d56f..9dbec38fe9 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -80,11 +80,11 @@ var/global/list/rad_collectors = list()
if(P)
user << "Remove the phoron tank first."
return 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
src.anchored = !src.anchored
user.visible_message("[user.name] [anchored? "secures":"unsecures"] the [src.name].", \
"You [anchored? "secure":"undo"] the external bolts.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
if(anchored)
connect_to_network()
else
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 04ba39f0d4..f0af4f7312 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -151,17 +151,17 @@
switch(state)
if(0)
state = 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] secures [src] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
src.anchored = 1
if(1)
state = 0
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] unsecures [src] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
src.anchored = 0
if(2)
user << "\The [src] needs to be unwelded from the floor."
@@ -177,11 +177,11 @@
user << "\The [src] needs to be wrenched to the floor."
if(1)
if (WT.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(loc, WT.usesound, 50, 1)
user.visible_message("[user.name] starts to weld [src] to the floor.", \
"You start to weld [src] to the floor.", \
"You hear welding")
- if (do_after(user,20))
+ if (do_after(user,20 * WT.toolspeed))
if(!src || !WT.isOn()) return
state = 2
user << "You weld [src] to the floor."
@@ -190,11 +190,11 @@
user << "You need more welding fuel to complete this task."
if(2)
if (WT.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(loc, WT.usesound, 50, 1)
user.visible_message("[user.name] starts to cut [src] free from the floor.", \
"You start to cut [src] free from the floor.", \
"You hear welding")
- if (do_after(user,20))
+ if (do_after(user,20 * WT.toolspeed))
if(!src || !WT.isOn()) return
state = 1
user << "You cut [src] free from the floor."
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index 44e086adf5..a801c5b396 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -106,14 +106,14 @@ field_generator power level display
switch(state)
if(0)
state = 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
"You hear ratchet")
src.anchored = 1
if(1)
state = 0
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \
"You hear ratchet")
@@ -129,11 +129,11 @@ field_generator power level display
return
if(1)
if (WT.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(loc, WT.usesound, 50, 1)
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
"You start to weld the [src] to the floor.", \
"You hear welding")
- if (do_after(user,20))
+ if (do_after(user,20 * WT.toolspeed))
if(!src || !WT.isOn()) return
state = 2
user << "You weld the field generator to the floor."
@@ -141,11 +141,11 @@ field_generator power level display
return
if(2)
if (WT.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(loc, WT.usesound, 50, 1)
user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
"You start to cut the [src] free from the floor.", \
"You hear welding")
- if (do_after(user,20))
+ if (do_after(user,20 * WT.toolspeed))
if(!src || !WT.isOn()) return
state = 1
user << "You cut the [src] free from the floor."
diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm
index 1093390b0e..5de10c12b9 100644
--- a/code/modules/power/singularity/generator.dm
+++ b/code/modules/power/singularity/generator.dm
@@ -18,14 +18,14 @@
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/weapon/wrench))
anchored = !anchored
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
if(anchored)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the [src.name] to the floor.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
else
user.visible_message("[user.name] unsecures [src.name] from the floor.", \
"You unsecure the [src.name] from the floor.", \
- "You hear a ratchet")
+ "You hear a ratchet.")
return
return ..()
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index f6770d48c0..80f90fbacc 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -197,7 +197,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
return 0
-/obj/structure/particle_accelerator/proc/process_tool_hit(var/obj/O, var/mob/user)
+/obj/structure/particle_accelerator/proc/process_tool_hit(var/obj/item/O, var/mob/user)
if(!(O) || !(user))
return 0
if(!ismob(user) || !isobj(O))
@@ -207,14 +207,14 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
if(0)
if(iswrench(O))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, O.usesound, 75, 1)
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
temp_state++
if(1)
if(iswrench(O))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, O.usesound, 75, 1)
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
@@ -337,7 +337,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
return 0
-/obj/machinery/particle_accelerator/proc/process_tool_hit(var/obj/O, var/mob/user)
+/obj/machinery/particle_accelerator/proc/process_tool_hit(var/obj/item/O, var/mob/user)
if(!(O) || !(user))
return 0
if(!ismob(user) || !isobj(O))
@@ -346,14 +346,14 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
if(0)
if(iswrench(O))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, O.usesound, 75, 1)
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
temp_state++
if(1)
if(iswrench(O))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, O.usesound, 75, 1)
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 4eba53c42e..f2b763c9bc 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -238,10 +238,12 @@
if(!open_hatch)
open_hatch = 1
user << "You open the maintenance hatch of [src]."
+ playsound(src, W.usesound, 50, 1)
return 0
else
open_hatch = 0
user << "You close the maintenance hatch of [src]."
+ playsound(src, W.usesound, 50, 1)
return 0
if (!open_hatch)
@@ -276,7 +278,7 @@
else
user << "You begin to cut the cables..."
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
- if(do_after(user, 50))
+ if(do_after(user, 50 * W.toolspeed))
if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, src)
diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm
index 5c90637149..f6a40da0c3 100644
--- a/code/modules/power/smes_construction.dm
+++ b/code/modules/power/smes_construction.dm
@@ -335,9 +335,9 @@
user << "You have to disassemble the terminal first!"
return
- playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(get_turf(src), W.usesound, 50, 1)
user << "You begin to disassemble the [src]!"
- if (do_after(usr, 100 * cur_coils)) // More coils = takes longer to disassemble. It's complex so largest one with 5 coils will take 50s
+ if (do_after(usr, (100 * cur_coils) * W.toolspeed)) // More coils = takes longer to disassemble. It's complex so largest one with 5 coils will take 50s with a normal crowbar
if (failure_probability && prob(failure_probability))
total_system_failure(failure_probability, user)
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 8ecf78bfa9..7e4de1841c 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -231,13 +231,13 @@ var/list/solars_list = list()
if(istype(W, /obj/item/weapon/wrench))
anchored = 1
user.visible_message("[user] wrenches the solar assembly into place.")
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
return 1
else
if(istype(W, /obj/item/weapon/wrench))
anchored = 0
user.visible_message("[user] unwrenches the solar assembly from it's place.")
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
return 1
if(istype(W, /obj/item/stack/material) && (W.get_material_name() == "glass" || W.get_material_name() == "rglass"))
@@ -402,9 +402,9 @@ var/list/solars_list = list()
return
-/obj/machinery/power/solar_control/attackby(I as obj, user as mob)
+/obj/machinery/power/solar_control/attackby(obj/item/I, user as mob)
if(istype(I, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "The broken glass falls out."
diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm
index c0172ccee1..08abf452f1 100644
--- a/code/modules/power/turbine.dm
+++ b/code/modules/power/turbine.dm
@@ -229,7 +229,7 @@
/*
/obj/machinery/computer/turbine_computer/attackby(I as obj, user as mob)
if(istype(I, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "The broken glass falls out."
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index fd39bde20b..2c2bae1203 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -208,7 +208,8 @@
if(istype(A, /obj/item/weapon/screwdriver))
if(dna_lock && attached_lock && !attached_lock.controller_lock)
user << "You begin removing \the [attached_lock] from \the [src]."
- if(do_after(user, 25))
+ playsound(src, A.usesound, 50, 1)
+ if(do_after(user, 25 * A.toolspeed))
user << "You remove \the [attached_lock] from \the [src]."
user.put_in_hands(attached_lock)
dna_lock = 0
diff --git a/code/modules/projectiles/guns/launcher/crossbow.dm b/code/modules/projectiles/guns/launcher/crossbow.dm
index 0fdad19238..8918b7d893 100644
--- a/code/modules/projectiles/guns/launcher/crossbow.dm
+++ b/code/modules/projectiles/guns/launcher/crossbow.dm
@@ -167,6 +167,7 @@
var/obj/item/C = cell
C.loc = get_turf(user)
user << "You jimmy [cell] out of [src] with [W]."
+ playsound(src, W.usesound, 50, 1)
cell = null
else
user << "[src] doesn't have a cell installed."
@@ -231,7 +232,7 @@
var/obj/item/weapon/weldingtool/T = W
if(T.remove_fuel(0,user))
if(!src || !T.isOn()) return
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You weld the rods into place."
buildstate++
update_icon()
@@ -267,6 +268,7 @@
else if(istype(W,/obj/item/weapon/screwdriver))
if(buildstate == 5)
user << "You secure the crossbow's various parts."
+ playsound(src, W.usesound, 50, 1)
new /obj/item/weapon/gun/launcher/crossbow(get_turf(src))
qdel(src)
return
diff --git a/code/modules/projectiles/guns/launcher/pneumatic.dm b/code/modules/projectiles/guns/launcher/pneumatic.dm
index 422515de14..e737507b2c 100644
--- a/code/modules/projectiles/guns/launcher/pneumatic.dm
+++ b/code/modules/projectiles/guns/launcher/pneumatic.dm
@@ -191,7 +191,7 @@
var/obj/item/weapon/weldingtool/T = W
if(T.remove_fuel(0,user))
if(!src || !T.isOn()) return
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You weld the pipe into place."
buildstate++
update_icon()
@@ -199,7 +199,7 @@
var/obj/item/weapon/weldingtool/T = W
if(T.remove_fuel(0,user))
if(!src || !T.isOn()) return
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You weld the metal chassis together."
buildstate++
update_icon()
@@ -207,7 +207,7 @@
var/obj/item/weapon/weldingtool/T = W
if(T.remove_fuel(0,user))
if(!src || !T.isOn()) return
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You weld the valve into place."
new /obj/item/weapon/gun/launcher/pneumatic(get_turf(src))
qdel(src)
diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm
index 06c6bbb8eb..5ba448c14d 100644
--- a/code/modules/reagents/dispenser/dispenser2.dm
+++ b/code/modules/reagents/dispenser/dispenser2.dm
@@ -65,9 +65,9 @@
/obj/machinery/chemical_dispenser/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, W.usesound, 50, 1)
user << "You begin to [anchored ? "un" : ""]fasten \the [src]."
- if (do_after(user, 20))
+ if (do_after(user, 20 * W.toolspeed))
user.visible_message(
"\The [user] [anchored ? "un" : ""]fastens \the [src].",
"You have [anchored ? "un" : ""]fastened \the [src].",
@@ -86,6 +86,7 @@
if(C)
user << "You remove \the [C] from \the [src]."
C.loc = loc
+ playsound(src, W.usesound, 50, 1)
else if(istype(W, /obj/item/weapon/reagent_containers/glass) || istype(W, /obj/item/weapon/reagent_containers/food))
if(container)
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index e84a963446..6312d08d84 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -111,6 +111,7 @@
user.visible_message("[user] wrenches [src]'s faucet [modded ? "closed" : "open"].", \
"You wrench [src]'s faucet [modded ? "closed" : "open"]")
modded = modded ? 0 : 1
+ playsound(src, W.usesound, 75, 1)
if (modded)
message_admins("[key_name_admin(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel. (JMP)")
log_game("[key_name(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel.")
@@ -226,7 +227,7 @@
if(istype(I, /obj/item/weapon/wrench))
src.add_fingerprint(user)
if(bottle)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, I.usesound, 50, 1)
if(do_after(user, 20) && bottle)
user << "You unfasten the jug."
var/obj/item/weapon/reagent_containers/glass/cooler_bottle/G = new /obj/item/weapon/reagent_containers/glass/cooler_bottle( src.loc )
@@ -241,15 +242,16 @@
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
else
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
- if(do_after(user, 20, src))
+ if(do_after(user, 20 * I.toolspeed, src))
if(!src) return
user << "You [anchored? "un" : ""]secured \the [src]!"
anchored = !anchored
+ playsound(loc, I.usesound, 50, 1)
return
if(istype(I, /obj/item/weapon/screwdriver))
if(cupholder)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, I.usesound, 50, 1)
user << "You take the cup dispenser off."
new /obj/item/stack/material/plastic( src.loc )
if(cups)
@@ -260,9 +262,9 @@
update_icon()
return
if(!bottle && !cupholder)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, I.usesound, 50, 1)
user << "You start taking the water-cooler apart."
- if(do_after(user, 20) && !bottle && !cupholder)
+ if(do_after(user, 20 * I.toolspeed) && !bottle && !cupholder)
user << "You take the water-cooler apart."
new /obj/item/stack/material/plastic( src.loc, 4 )
qdel(src)
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index 8a5c8cc7b4..2933ee9727 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -257,8 +257,8 @@
if(!WT.remove_fuel(0, user))
user << "The welding tool must be on to complete this task."
return
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if(do_after(user, 20))
+ playsound(src, WT.usesound, 50, 1)
+ if(do_after(user, 20 * WT.toolspeed))
if(!src || !WT.isOn()) return
user << "You deconstruct the frame."
new /obj/item/stack/material/steel( src.loc, 2 )
diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm
index c44220bc3f..597033a6e6 100644
--- a/code/modules/recycling/disposal-construction.dm
+++ b/code/modules/recycling/disposal-construction.dm
@@ -263,16 +263,16 @@
else
density = 1 // We don't want disposal bins or outlets to go density 0
user << "You attach the [nicetype] to the underfloor."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
update()
else if(istype(I, /obj/item/weapon/weldingtool))
if(anchored)
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "Welding the [nicetype] in place."
- if(do_after(user, 20))
+ if(do_after(user, 20 * W.toolspeed))
if(!src || !W.isOn()) return
user << "The [nicetype] has been welded in place!"
update() // TODO: Make this neat
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index ed67be5ea7..28b2e0575b 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -61,12 +61,12 @@
return
if(mode==0) // It's off but still not unscrewed
mode=-1 // Set it to doubleoff l0l
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
user << "You remove the screws around the power connection."
return
else if(mode==-1)
mode=0
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
user << "You attach the screws around the power connection."
return
else if(istype(I,/obj/item/weapon/weldingtool) && mode==-1)
@@ -75,10 +75,10 @@
return
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You start slicing the floorweld off the disposal unit."
- if(do_after(user,20))
+ if(do_after(user,20 * W.toolspeed))
if(!src || !W.isOn()) return
user << "You sliced the floorweld off the disposal unit."
var/obj/structure/disposalconstruct/C = new (src.loc)
@@ -881,7 +881,7 @@
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 50, 1)
// check if anything changed over 2 seconds
var/turf/uloc = user.loc
var/atom/wloc = W.loc
@@ -1361,7 +1361,7 @@
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
// check if anything changed over 2 seconds
var/turf/uloc = user.loc
var/atom/wloc = W.loc
@@ -1478,20 +1478,20 @@
if(istype(I, /obj/item/weapon/screwdriver))
if(mode==0)
mode=1
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "You remove the screws around the power connection."
+ playsound(src, I.usesound, 50, 1)
return
else if(mode==1)
mode=0
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "You attach the screws around the power connection."
+ playsound(src, I.usesound, 50, 1)
return
else if(istype(I,/obj/item/weapon/weldingtool) && mode==1)
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You start slicing the floorweld off the disposal outlet."
- if(do_after(user,20))
+ if(do_after(user,20 * W.toolspeed))
if(!src || !W.isOn()) return
user << "You sliced the floorweld off the disposal outlet."
var/obj/structure/disposalconstruct/C = new (src.loc)
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 53cf935746..b7d489e067 100755
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -424,20 +424,20 @@
if(istype(I, /obj/item/weapon/screwdriver))
if(c_mode==0)
c_mode=1
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
user << "You remove the screws around the power connection."
return
else if(c_mode==1)
c_mode=0
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
user << "You attach the screws around the power connection."
return
else if(istype(I,/obj/item/weapon/weldingtool) && c_mode==1)
var/obj/item/weapon/weldingtool/W = I
if(W.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 50, 1)
user << "You start slicing the floorweld off the delivery chute."
- if(do_after(user,20))
+ if(do_after(user,20 * W.toolspeed))
if(!src || !W.isOn()) return
user << "You sliced the floorweld off the delivery chute."
var/obj/structure/disposalconstruct/C = new (src.loc)
diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm
index 1e7ab79588..701ebb24e4 100644
--- a/code/modules/security levels/keycard authentication.dm
+++ b/code/modules/security levels/keycard authentication.dm
@@ -43,7 +43,8 @@
if(istype(W, /obj/item/weapon/screwdriver))
user << "You begin removing the faceplate from the [src]"
- if(do_after(user, 10))
+ playsound(src, W.usesound, 50, 1)
+ if(do_after(user, 10 * W.toolspeed))
user << "You remove the faceplate from the [src]"
var/obj/structure/frame/A = new /obj/structure/frame(loc)
var/obj/item/weapon/circuitboard/M = new circuit(A)
diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm
index fb643cd9f0..fac9df67f8 100644
--- a/code/modules/shieldgen/emergency_shield.dm
+++ b/code/modules/shieldgen/emergency_shield.dm
@@ -279,7 +279,7 @@
/obj/machinery/shieldgen/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(is_open)
user << "You close the panel."
is_open = 0
@@ -303,7 +303,7 @@
user << "The bolts are covered, unlocking this would retract the covers."
return
if(anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You unsecure the [src] from the floor!"
if(active)
user << "The [src] shuts off!"
@@ -311,7 +311,7 @@
anchored = 0
else
if(istype(get_turf(src), /turf/space)) return //No wrenching these in space!
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
user << "You secure the [src] to the floor!"
anchored = 1
diff --git a/code/modules/shieldgen/sheldwallgen.dm b/code/modules/shieldgen/sheldwallgen.dm
index 300d476056..995df27b48 100644
--- a/code/modules/shieldgen/sheldwallgen.dm
+++ b/code/modules/shieldgen/sheldwallgen.dm
@@ -165,14 +165,14 @@
else if(state == 0)
state = 1
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user << "You secure the external reinforcing bolts to the floor."
src.anchored = 1
return
else if(state == 1)
state = 0
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src, W.usesound, 75, 1)
user << "You undo the external reinforcing bolts."
src.anchored = 0
return
diff --git a/code/modules/shieldgen/shield_capacitor.dm b/code/modules/shieldgen/shield_capacitor.dm
index 24b6746d08..2bddb5af32 100644
--- a/code/modules/shieldgen/shield_capacitor.dm
+++ b/code/modules/shieldgen/shield_capacitor.dm
@@ -41,6 +41,7 @@
user << "Access denied."
else if(istype(W, /obj/item/weapon/wrench))
src.anchored = !src.anchored
+ playsound(src, W.usesound, 75, 1)
src.visible_message("\icon[src] [src] has been [anchored ? "bolted to the floor" : "unbolted from the floor"] by [user].")
if(anchored)
diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm
index 187eb1eb3a..32d34365b4 100644
--- a/code/modules/shieldgen/shield_gen.dm
+++ b/code/modules/shieldgen/shield_gen.dm
@@ -62,6 +62,7 @@
user << "Access denied."
else if(istype(W, /obj/item/weapon/wrench))
src.anchored = !src.anchored
+ playsound(src, W.usesound, 75, 1)
src.visible_message("\icon[src] [src] has been [anchored?"bolted to the floor":"unbolted from the floor"] by [user].")
if(active)
diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm
index cea2c93559..30de715de6 100644
--- a/code/modules/tables/tables.dm
+++ b/code/modules/tables/tables.dm
@@ -140,8 +140,8 @@
var/obj/item/weapon/weldingtool/F = W
if(F.welding)
user << "You begin reparing damage to \the [src]."
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
- if(!do_after(user, 20) || !F.remove_fuel(1, user))
+ playsound(src, F.usesound, 50, 1)
+ if(!do_after(user, 20 * F.toolspeed) || !F.remove_fuel(1, user))
return
user.visible_message("\The [user] repairs some damage to \the [src].",
"You repair some damage to \the [src].")
@@ -229,7 +229,7 @@
"You begin removing the [type_holding] holding \the [src]'s [M.display_name] [what] in place.")
if(sound)
playsound(src.loc, sound, 50, 1)
- if(!do_after(user, 40))
+ if(!do_after(user, delay))
manipulating = 0
return M
user.visible_message("\The [user] removes the [M.display_name] [what] from \the [src].",
@@ -239,18 +239,18 @@
return null
/obj/structure/table/proc/remove_reinforced(obj/item/weapon/screwdriver/S, mob/user)
- reinforced = common_material_remove(user, reinforced, 40, "reinforcements", "screws", 'sound/items/Screwdriver.ogg')
+ reinforced = common_material_remove(user, reinforced, 40 * S.toolspeed, "reinforcements", "screws", S.usesound)
/obj/structure/table/proc/remove_material(obj/item/weapon/wrench/W, mob/user)
- material = common_material_remove(user, material, 20, "plating", "bolts", 'sound/items/Ratchet.ogg')
+ material = common_material_remove(user, material, 20 * W.toolspeed, "plating", "bolts", W.usesound)
/obj/structure/table/proc/dismantle(obj/item/weapon/wrench/W, mob/user)
if(manipulating) return
manipulating = 1
user.visible_message("\The [user] begins dismantling \the [src].",
"You begin dismantling \the [src].")
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
- if(!do_after(user, 20))
+ playsound(src, W.usesound, 50, 1)
+ if(!do_after(user, 20 * W.toolspeed))
manipulating = 0
return
user.visible_message("\The [user] dismantles \the [src].",
diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm
index 43197eebe0..eb70ca64ce 100644
--- a/code/modules/vehicles/vehicle.dm
+++ b/code/modules/vehicles/vehicle.dm
@@ -82,6 +82,7 @@
open = !open
update_icon()
user << "Maintenance panel is now [open ? "opened" : "closed"]."
+ playsound(src, W.usesound, 50, 1)
else if(istype(W, /obj/item/weapon/crowbar) && cell && open)
remove_cell(user)
@@ -94,6 +95,7 @@
if(open)
health = min(maxhealth, health+10)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
+ playsound(src, T.usesound, 50, 1)
user.visible_message("[user] repairs [src]!"," You repair [src]!")
else
user << "Unable to repair with the maintenance panel closed."
diff --git a/code/modules/xenoarcheaology/tools/suspension_generator.dm b/code/modules/xenoarcheaology/tools/suspension_generator.dm
index ec8f2d8f24..6819531706 100644
--- a/code/modules/xenoarcheaology/tools/suspension_generator.dm
+++ b/code/modules/xenoarcheaology/tools/suspension_generator.dm
@@ -133,6 +133,7 @@
anchored = 0
else
anchored = 1
+ playsound(loc, W.usesound, 50, 1)
user << "You wrench the stabilising legs [anchored ? "into place" : "up against the body"]."
if(anchored)
desc = "It is resting securely on four stubby legs."
diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi
index 3a70243e7b..3139d565d4 100644
Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ
diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi
index abdf2bdca9..751f70c5cf 100644
Binary files a/icons/mob/items/lefthand.dmi and b/icons/mob/items/lefthand.dmi differ
diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi
index c8abdbc431..a24f71fea6 100644
Binary files a/icons/mob/items/righthand.dmi and b/icons/mob/items/righthand.dmi differ
diff --git a/icons/obj/abductor.dmi b/icons/obj/abductor.dmi
new file mode 100644
index 0000000000..21ab5cf9f5
Binary files /dev/null and b/icons/obj/abductor.dmi differ
diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi
index 015a3bc345..4f97b40e27 100644
Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 778ec461bb..427b5df5f6 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
new file mode 100644
index 0000000000..5e1ad9e8e0
Binary files /dev/null and b/icons/obj/tools.dmi differ
diff --git a/sound/items/change_drill.ogg b/sound/items/change_drill.ogg
new file mode 100644
index 0000000000..406027a595
Binary files /dev/null and b/sound/items/change_drill.ogg differ
diff --git a/sound/items/change_jaws.ogg b/sound/items/change_jaws.ogg
new file mode 100644
index 0000000000..b6a41eca80
Binary files /dev/null and b/sound/items/change_jaws.ogg differ
diff --git a/sound/items/drill_hit.ogg b/sound/items/drill_hit.ogg
new file mode 100644
index 0000000000..0f8fa631aa
Binary files /dev/null and b/sound/items/drill_hit.ogg differ
diff --git a/sound/items/drill_use.ogg b/sound/items/drill_use.ogg
new file mode 100644
index 0000000000..82f37cd35b
Binary files /dev/null and b/sound/items/drill_use.ogg differ
diff --git a/sound/items/jaws_cut.ogg b/sound/items/jaws_cut.ogg
new file mode 100644
index 0000000000..a0bfd85502
Binary files /dev/null and b/sound/items/jaws_cut.ogg differ
diff --git a/sound/items/jaws_pry.ogg b/sound/items/jaws_pry.ogg
new file mode 100644
index 0000000000..05178bd466
Binary files /dev/null and b/sound/items/jaws_pry.ogg differ
diff --git a/sound/items/pshoom.ogg b/sound/items/pshoom.ogg
new file mode 100644
index 0000000000..5628842f53
Binary files /dev/null and b/sound/items/pshoom.ogg differ
diff --git a/sound/items/welderactivate.ogg b/sound/items/welderactivate.ogg
new file mode 100644
index 0000000000..5218f2ab1c
Binary files /dev/null and b/sound/items/welderactivate.ogg differ
diff --git a/sound/items/welderdeactivate.ogg b/sound/items/welderdeactivate.ogg
new file mode 100644
index 0000000000..22ac4f445c
Binary files /dev/null and b/sound/items/welderdeactivate.ogg differ
diff --git a/sound/weapons/sonic_jackhammer.ogg b/sound/weapons/sonic_jackhammer.ogg
new file mode 100644
index 0000000000..dae5762b2c
Binary files /dev/null and b/sound/weapons/sonic_jackhammer.ogg differ