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