From 7d1a67d0c871db57d45c89d8bee060cc4e251512 Mon Sep 17 00:00:00 2001 From: XDTM Date: Wed, 14 Dec 2016 06:09:41 +0100 Subject: [PATCH] Abductor tools and tool sound refactor. (#22125) * Everything in the PR * I'm taking that as a yes --- code/datums/wires/wires.dm | 4 +- .../miniantags/abduction/abduction.dm | 3 +- .../miniantags/abduction/abduction_gear.dm | 8 ++- code/game/machinery/PDApainter.dm | 4 +- code/game/machinery/buttons.dm | 2 +- code/game/machinery/camera/camera.dm | 4 +- code/game/machinery/camera/camera_assembly.dm | 4 +- code/game/machinery/cell_charger.dm | 2 +- code/game/machinery/deployable.dm | 2 +- code/game/machinery/doors/airlock.dm | 8 +-- code/game/machinery/doors/firedoor.dm | 16 ++--- code/game/machinery/doppler_array.dm | 4 +- code/game/machinery/droneDispenser.dm | 4 +- code/game/machinery/flasher.dm | 6 +- code/game/machinery/newscaster.dm | 6 +- code/game/machinery/pipe/construction.dm | 4 +- code/game/machinery/pipe/pipe_dispenser.dm | 4 +- .../porta_turret/portable_turret_construct.dm | 4 +- code/game/machinery/recharger.dm | 2 +- code/game/machinery/syndicatebomb.dm | 8 +-- code/game/mecha/mecha_construction_paths.dm | 18 ++++-- code/game/objects/effects/contraband.dm | 2 +- code/game/objects/items/devices/multitool.dm | 10 ++- .../items/weapons/grenades/chem_grenade.dm | 2 +- .../objects/items/weapons/grenades/plastic.dm | 2 +- code/game/objects/items/weapons/powerfist.dm | 2 +- .../objects/items/weapons/storage/belt.dm | 18 ++++++ code/game/objects/items/weapons/tools.dm | 51 ++++++++++++++- code/game/objects/structures/ai_core.dm | 2 +- .../objects/structures/beds_chairs/bed.dm | 4 +- .../objects/structures/beds_chairs/chair.dm | 2 +- .../structures/crates_lockers/closets.dm | 6 +- .../structures/crates_lockers/crates/bins.dm | 2 +- code/game/objects/structures/displaycase.dm | 7 +- code/game/objects/structures/electricchair.dm | 4 +- code/game/objects/structures/extinguisher.dm | 2 +- code/game/objects/structures/fireaxe.dm | 2 +- code/game/objects/structures/fluff.dm | 4 +- code/game/objects/structures/kitchen_spike.dm | 6 +- code/game/objects/structures/musician.dm | 4 +- code/game/objects/structures/reflector.dm | 2 +- code/game/objects/structures/signs.dm | 4 +- code/game/objects/structures/statues.dm | 8 +-- code/game/objects/structures/table_frames.dm | 2 +- code/game/objects/structures/tables_racks.dm | 4 +- code/game/objects/structures/window.dm | 2 +- code/game/turfs/simulated/floor.dm | 3 +- code/game/turfs/simulated/floor/misc_floor.dm | 6 +- code/game/turfs/simulated/floor/plating.dm | 2 +- .../game/turfs/simulated/floor/reinf_floor.dm | 2 +- code/game/turfs/simulated/wall/misc_walls.dm | 4 +- code/game/turfs/simulated/wall/reinf_walls.dm | 6 +- .../atmospherics/machinery/atmosmachinery.dm | 3 +- .../components/unary_devices/vent_pump.dm | 4 +- .../components/unary_devices/vent_scrubber.dm | 2 +- .../atmospherics/machinery/other/meter.dm | 3 +- .../machinery/portable/canister.dm | 2 +- .../portable/portable_atmospherics.dm | 6 +- code/modules/clothing/gloves/color.dm | 2 +- code/modules/hydroponics/hydroponics.dm | 6 +- code/modules/library/lib_items.dm | 8 +-- code/modules/mining/mine_items.dm | 4 +- code/modules/mining/satchel_ore_boxdm.dm | 4 +- .../modules/mob/living/silicon/robot/robot.dm | 2 +- .../friendly/drone/interaction.dm | 3 +- code/modules/paperwork/filingcabinet.dm | 2 +- code/modules/paperwork/photocopier.dm | 2 +- code/modules/power/antimatter/control.dm | 6 +- code/modules/power/apc.dm | 2 +- code/modules/power/singularity/collector.dm | 5 +- code/modules/power/singularity/emitter.dm | 4 +- .../power/singularity/field_generator.dm | 4 +- code/modules/power/singularity/generator.dm | 4 +- .../particle_accelerator.dm | 4 +- .../particle_accelerator/particle_control.dm | 4 +- .../guns/energy/kinetic_accelerator.dm | 2 +- code/modules/recycling/conveyor2.dm | 2 +- .../recycling/disposal-construction.dm | 2 +- code/modules/recycling/disposal-unit.dm | 2 +- code/modules/research/designs.dm | 60 ++++++++++++++++++ .../research/designs/medical_designs.dm | 60 ++++++++++++++++++ .../surgery/bodyparts/robot_bodyparts.dm | 2 +- code/modules/surgery/organs/autoimplanter.dm | 2 +- code/modules/surgery/surgery_step.dm | 2 +- code/modules/telesci/telepad.dm | 4 +- code/modules/vehicles/scooter.dm | 2 +- icons/obj/abductor.dmi | Bin 51373 -> 55429 bytes 87 files changed, 358 insertions(+), 162 deletions(-) diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index c65098f5b5c..778c284ea4c 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -200,7 +200,7 @@ var/list/wire_name_directory = list() for(var/color in colors) payload.Add(list(list( "color" = color, - "wire" = (IsAdminGhost(user) ? get_wire(color) : null), + "wire" = (IsAdminGhost(user) || (user.is_holding_item_of_type(/obj/item/device/multitool/abductor)) ? get_wire(color) : null), "cut" = is_color_cut(color), "attached" = is_attached(color) ))) @@ -217,7 +217,7 @@ var/list/wire_name_directory = list() switch(action) if("cut") if(istype(I, /obj/item/weapon/wirecutters) || IsAdminGhost(usr)) - playsound(holder, 'sound/items/Wirecutter.ogg', 20, 1) + playsound(holder, I.usesound, 20, 1) cut_color(target_wire) . = TRUE else diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 7f591b6691e..4f266c44132 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -228,10 +228,11 @@ console.vest = V V.flags |= NODROP agent.equip_to_slot_or_del(V, slot_wear_suit) - agent.equip_to_slot_or_del(new /obj/item/weapon/abductor_baton(agent), slot_belt) + agent.equip_to_slot_or_del(new /obj/item/weapon/abductor_baton(agent), slot_in_backpack) agent.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/alien(agent), slot_in_backpack) agent.equip_to_slot_or_del(new /obj/item/device/abductor/silencer(agent), slot_in_backpack) agent.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/abductor(agent), slot_head) + agent.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/military/abductor/full(agent), slot_belt) /datum/game_mode/abduction/proc/equip_scientist(var/mob/living/carbon/human/scientist,var/team_number) diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index e7104322f15..7cdd3ac1f0c 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -484,30 +484,35 @@ Congratulations! You are now trained for xenobiology research!"} desc = "It's a gleaming sharp knife made out of silvery-green metal." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/hemostat/alien name = "alien hemostat" desc = "You've never seen this before." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/retractor/alien name = "alien retractor" desc = "You're not sure if you want the veil pulled back." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/circular_saw/alien name = "alien saw" desc = "Do the aliens also lose this, and need to find an alien hatchet?" icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/surgicaldrill/alien name = "alien drill" desc = "Maybe alien surgeons have finally found a use for the drill." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/weapon/cautery/alien name = "alien cautery" @@ -515,6 +520,7 @@ Congratulations! You are now trained for xenobiology research!"} Unless..." icon = 'icons/obj/abductor.dmi' origin_tech = "materials=2;biotech=2;abductor=2" + toolspeed = 0.25 /obj/item/clothing/head/helmet/abductor name = "agent headgear" @@ -554,7 +560,7 @@ Congratulations! You are now trained for xenobiology research!"} /obj/structure/table_frame/abductor/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) user << "You start disassembling [src]..." - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 30*I.toolspeed, target = src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) for(var/i = 1, i <= framestackamount, i++) diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 9c1a557f4e7..442509f745e 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -87,7 +87,7 @@ user.visible_message("[user] is repairing [src].", \ "You begin repairing [src]...", \ "You hear welding.") - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) if(do_after(user,40*WT.toolspeed, 1, target = src)) if(!WT.isOn() || !(stat & BROKEN)) return @@ -146,4 +146,4 @@ /obj/machinery/pdapainter/power_change() ..() - update_icon() \ No newline at end of file + update_icon() diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 9f6e8394ee7..f610a58fe49 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -89,7 +89,7 @@ if(!device && !board && istype(W, /obj/item/weapon/wrench)) user << "You start unsecuring the button frame..." - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, W.usesound, 50, 1) if(do_after(user, 40*W.toolspeed, target = src)) user << "You unsecure the button frame." transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 24a93a02a11..7ac6fc20b63 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -374,9 +374,9 @@ return 0 user << "You start to weld [src]..." - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + playsound(src.loc, WT.usesound, 50, 1) busy = 1 - if(do_after(user, 100, target = src)) + if(do_after(user, 100*WT.toolspeed, target = src)) 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 1df5077ed9c..c69ac8df6e4 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -128,8 +128,8 @@ if(!WT.remove_fuel(0, user)) return 0 user << "You start to weld \the [src]..." - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, target = src)) + playsound(src.loc, WT.usesound, 50, 1) + if(do_after(user, 20*WT.toolspeed, target = src)) if(WT.isOn()) playsound(loc, 'sound/items/Welder2.ogg', 50, 1) return 1 diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 4255cf42eec..59b579766a6 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -65,7 +65,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.loc, W.usesound, 75, 1) else return ..() diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index ef15b461a24..17b9c80420d 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -32,7 +32,7 @@ if(obj_integrity < max_integrity) if(WT.remove_fuel(0,user)) user << "You begin repairing [src]..." - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) if(do_after(user, 40*I.toolspeed, target = src)) obj_integrity = Clamp(obj_integrity + 20, 0, max_integrity) else diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index bb0677d66e7..001b71f0775 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1065,12 +1065,12 @@ var/list/airlock_overlays = list() return if(AIRLOCK_SECURITY_PLASTEEL) if(istype(C, /obj/item/weapon/wirecutters)) - var/obj/item/weapon/W = C + var/obj/item/weapon/wirecutters/W = C if(src.hasPower() && src.shock(user, 60)) // Protective grille of wiring is electrified return - user << "You started cutting through outer grille" + user << "You start cutting through outer grille." playsound(src, W.usesound, 100, 1) - if(do_after(user, 10, 1, target = src)) + if(do_after(user, 10*W.toolspeed, 1, target = src)) if(!panel_open) return user.visible_message("[user] cut through \the [src]'s outer grille.", @@ -1119,7 +1119,7 @@ var/list/airlock_overlays = list() user.visible_message("[user] is [welded ? "unwelding":"welding"] the airlock.", \ "You begin [welded ? "unwelding":"welding"] the airlock...", \ "You hear welding.") - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, W.usesound, 40, 1) if(do_after(user,40*W.toolspeed, 1, target = src)) if(density && !operating)//Door must be closed to weld. if(!user || !W || !W.isOn() || !user.loc ) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 292db513798..ea55c1852dd 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -49,7 +49,7 @@ return//Already doing something. if(istype(C, /obj/item/weapon/wrench) && panel_open) - playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) + playsound(get_turf(src), C.usesound, 50, 1) user.visible_message("[user] starts undoing [src]'s bolts...", \ "You start unfastening [src]'s floor bolts...") if(!do_after(user, 50*C.toolspeed, target = src)) @@ -218,7 +218,7 @@ switch(constructionStep) if(CONSTRUCTION_PANEL_OPEN) if(istype(C, /obj/item/weapon/crowbar)) - playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + playsound(get_turf(src), C.usesound, 50, 1) user.visible_message("[user] starts prying something out from [src]...", \ "You begin prying out the wire cover...") if(!do_after(user, 50*C.toolspeed, target = src)) @@ -235,7 +235,7 @@ if(locate(/obj/machinery/door/firedoor) in get_turf(src)) user << "There's already a firelock there." return - playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) + playsound(get_turf(src), C.usesound, 50, 1) user.visible_message("[user] starts bolting down [src]...", \ "You begin bolting [src]...") if(!do_after(user, 30*C.toolspeed, target = src)) @@ -274,7 +274,7 @@ if(CONSTRUCTION_WIRES_EXPOSED) if(istype(C, /obj/item/weapon/wirecutters)) - playsound(get_turf(src), 'sound/items/Wirecutter.ogg', 50, 1) + playsound(get_turf(src), C.usesound, 50, 1) user.visible_message("[user] starts cutting the wires from [src]...", \ "You begin removing [src]'s wires...") if(!do_after(user, 60*C.toolspeed, target = src)) @@ -291,7 +291,7 @@ if(istype(C, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/W = C if(W.remove_fuel(1, user)) - playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1) + playsound(get_turf(src), W.usesound, 50, 1) user.visible_message("[user] starts welding a metal plate into [src]...", \ "You begin welding the cover plate back onto [src]...") if(!do_after(user, 80*C.toolspeed, target = src)) @@ -308,7 +308,7 @@ if(istype(C, /obj/item/weapon/crowbar)) user.visible_message("[user] begins removing the circuit board from [src]...", \ "You begin prying out the circuit board from [src]...") - playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + playsound(get_turf(src), C.usesound, 50, 1) if(!do_after(user, 50*C.toolspeed, target = src)) return if(constructionStep != CONSTRUCTION_GUTTED) @@ -316,7 +316,7 @@ user.visible_message("[user] removes [src]'s circuit board.", \ "You remove the circuit board from [src].") new /obj/item/weapon/electronics/firelock(get_turf(src)) - playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1) + playsound(get_turf(src), C.usesound, 50, 1) constructionStep = CONSTRUCTION_NOCIRCUIT update_icon() return @@ -342,7 +342,7 @@ if(istype(C, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/W = C if(W.remove_fuel(1,user)) - playsound(get_turf(src), 'sound/items/Welder.ogg', 50, 1) + playsound(get_turf(src), W.usesound, 50, 1) user.visible_message("[user] begins cutting apart [src]'s frame...", \ "You begin slicing [src] apart...") if(!do_after(user, 80*C.toolspeed, target = src)) diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 979d4ce2761..436fcfb1e5a 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -32,7 +32,7 @@ var/list/doppler_arrays = list() anchored = 0 power_change() user << "You unfasten [src]." - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, O.usesound, 50, 1) else return ..() @@ -108,4 +108,4 @@ var/list/doppler_arrays = list() name = "integrated tachyon-doppler module" integrated = 1 max_dist = 21 //Should detect most explosions in hearing range. - use_power = 0 \ No newline at end of file + use_power = 0 diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index 161d75da59d..48dfe0f55b1 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -268,7 +268,7 @@ else if(istype(O, /obj/item/weapon/crowbar)) materials.retrieve_all() - playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + playsound(loc, O.usesound, 50, 1) user << "You retrieve the materials from [src]." else if(istype(O, /obj/item/weapon/weldingtool)) @@ -286,7 +286,7 @@ complete this task!" return - playsound(src, 'sound/items/Welder.ogg', 50, 1) + playsound(src, WT.usesound, 50, 1) user.visible_message( "[user] begins patching up \ [src] with [WT].", diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index e18d92d582e..3a8b8c2fd36 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -62,7 +62,7 @@ if (istype(W, /obj/item/weapon/wirecutters)) if (bulb) user.visible_message("[user] begins to disconnect [src]'s flashbulb.", "You begin to disconnect [src]'s flashbulb...") - playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) + playsound(src.loc, W.usesound, 100, 1) if(do_after(user, 30*W.toolspeed, target = src) && bulb) user.visible_message("[user] has disconnected [src]'s flashbulb!", "You disconnect [src]'s flashbulb.") bulb.forceMove(loc) @@ -83,7 +83,7 @@ else if (istype(W, /obj/item/weapon/wrench)) if(!bulb) user << "You start unsecuring the flasher frame..." - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, W.usesound, 50, 1) if(do_after(user, 40*W.toolspeed, target = src)) user << "You unsecure the flasher frame." deconstruct(TRUE) @@ -173,7 +173,7 @@ /obj/machinery/flasher/portable/attackby(obj/item/weapon/W, mob/user, params) if (istype(W, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(src.loc, W.usesound, 100, 1) if (!anchored && !isinspace()) user << "[src] is now secured." diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 3737e33c5e2..6d3082ef242 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -716,7 +716,7 @@ var/list/obj/machinery/newscaster/allCasters = list() /obj/machinery/newscaster/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/weapon/wrench)) user << "You start [anchored ? "un" : ""]securing [name]..." - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, I.usesound, 50, 1) if(do_after(user, 60*I.toolspeed, target = src)) playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) if(stat & BROKEN) @@ -735,7 +735,7 @@ var/list/obj/machinery/newscaster/allCasters = list() user.visible_message("[user] is repairing [src].", \ "You begin repairing [src]...", \ "You hear welding.") - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) if(do_after(user,40*WT.toolspeed, 1, target = src)) if(!WT.isOn() || !(stat & BROKEN)) return @@ -1046,4 +1046,4 @@ var/list/obj/machinery/newscaster/allCasters = list() scribble = s attack_self(user) else - return ..() \ No newline at end of file + return ..() diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index b1aad2508c7..df11945eb44 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -232,7 +232,7 @@ var/global/list/pipeID2State = list( T.flipped = flipped A.on_construction(pipe_type, color) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user.visible_message( \ "[user] fastens \the [src].", \ "You fasten \the [src].", \ @@ -270,6 +270,6 @@ var/global/list/pipeID2State = list( 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.loc, W.usesound, 50, 1) user << "You fasten the meter to the pipe." qdel(src) diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index ab4951b9a91..ff7ebe46bd6 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -79,7 +79,7 @@ return else if (istype(W, /obj/item/weapon/wrench)) if (!anchored && !isinspace()) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user << "You begin to fasten \the [src] to the floor..." if (do_after(user, 40*W.toolspeed, target = src)) add_fingerprint(user) @@ -92,7 +92,7 @@ if (usr.machine==src) usr << browse(null, "window=pipedispenser") else if(anchored) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user << "You begin to unfasten \the [src] from the floor..." if (do_after(user, 20*W.toolspeed, target = src)) add_fingerprint(user) diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index a8578b9e249..963a8eb0872 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -69,7 +69,7 @@ user << "You need more fuel to complete this task!" return - playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) + playsound(loc, WT.usesound, 50, 1) user << "You start to remove the turret's interior metal armor..." if(do_after(user, 20*I.toolspeed, target = src)) if(!WT.isOn() || !WT.remove_fuel(5, user)) @@ -139,7 +139,7 @@ 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) + playsound(loc, WT.usesound, 50, 1) user << "You begin to weld the turret's armor down..." if(do_after(user, 30*I.toolspeed, target = src)) if(!WT.isOn() || !WT.remove_fuel(5, user)) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 4042ea46f26..cb66398ddd2 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -34,7 +34,7 @@ anchored = !anchored power_change() user << "You [anchored ? "attached" : "detached"] [src]." - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, G.usesound, 75, 1) return var/allowed = is_type_in_list(G, allowed_devices) diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index e284d55b2d3..835c415fba7 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -106,14 +106,14 @@ user << "The bomb must be placed on solid ground to attach it." else user << "You firmly wrench the bomb to the floor." - playsound(loc, 'sound/items/ratchet.ogg', 50, 1) + playsound(loc, I.usesound, 50, 1) anchored = 1 if(active) user << "The bolts lock in place." else if(!active) user << "You wrench the bomb from the floor." - playsound(loc, 'sound/items/ratchet.ogg', 50, 1) + playsound(loc, I.usesound, 50, 1) anchored = 0 else user << "The bolts are locked down!" @@ -157,7 +157,7 @@ user << "You need more fuel to complete this task!" return - playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1) + playsound(loc, WT.usesound, 50, 1) user << "You start to cut the [src] apart..." if(do_after(user, 20*I.toolspeed, target = src)) if(!WT.isOn() || !WT.remove_fuel(5, user)) @@ -437,7 +437,7 @@ /obj/item/weapon/bombcore/chemical/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/crowbar) && beakers.len > 0) - playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + playsound(loc, I.usesound, 50, 1) for (var/obj/item/B in beakers) B.loc = get_turf(src) beakers -= B diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index ddae085d50f..17a28beec44 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -10,13 +10,16 @@ else return 0 else if(istype(used_atom, /obj/item/weapon/wrench)) - playsound(holder, 'sound/items/Ratchet.ogg', 50, 1) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) else if(istype(used_atom, /obj/item/weapon/screwdriver)) - playsound(holder, 'sound/items/Screwdriver.ogg', 50, 1) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) else if(istype(used_atom, /obj/item/weapon/wirecutters)) - playsound(holder, 'sound/items/Wirecutter.ogg', 50, 1) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) else if(istype(used_atom, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = used_atom @@ -42,13 +45,16 @@ else return 0 else if(istype(used_atom, /obj/item/weapon/wrench)) - playsound(holder, 'sound/items/Ratchet.ogg', 50, 1) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) else if(istype(used_atom, /obj/item/weapon/screwdriver)) - playsound(holder, 'sound/items/Screwdriver.ogg', 50, 1) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) else if(istype(used_atom, /obj/item/weapon/wirecutters)) - playsound(holder, 'sound/items/Wirecutter.ogg', 50, 1) + var/obj/item/weapon/W = used_atom + playsound(holder, W.usesound, 50, 1) else if(istype(used_atom, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = used_atom diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 918c4251a88..4f2af045897 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -201,7 +201,7 @@ list(name = "- Carbon Dioxide", desc = " This informational poster teaches the v /obj/structure/sign/poster/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wirecutters)) - playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) if(ruined) user << "You remove the remnants of the poster." qdel(src) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index db453c9cabf..e3177d8dadb 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -88,4 +88,12 @@ /obj/item/device/multitool/cyborg name = "multitool" desc = "Optimised and stripped-down version of a regular multitool." - toolspeed = 0.5 \ No newline at end of file + toolspeed = 0.5 + +/obj/item/device/multitool/abductor + name = "alien multitool" + desc = "An omni-technological interface." + icon = 'icons/obj/abductor.dmi' + icon_state = "multitool" + toolspeed = 0.1 + origin_tech = "magnets=5;engineering=5;abductor=3" \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 551b346bd99..ad052bcdfe7 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -54,7 +54,7 @@ if(beakers.len) stage_change(READY) user << "You lock the [initial(name)] assembly." - playsound(loc, 'sound/items/Screwdriver.ogg', 25, -3) + playsound(loc, I.usesound, 25, -3) else user << "You need to add at least one beaker before locking the [initial(name)] assembly!" else if(stage == READY && !nadeassembly) diff --git a/code/game/objects/items/weapons/grenades/plastic.dm b/code/game/objects/items/weapons/grenades/plastic.dm index 5077520266f..1937d80e003 100644 --- a/code/game/objects/items/weapons/grenades/plastic.dm +++ b/code/game/objects/items/weapons/grenades/plastic.dm @@ -35,7 +35,7 @@ update_icon() return if(nadeassembly && istype(I, /obj/item/weapon/wirecutters)) - playsound(src, 'sound/items/Wirecutter.ogg', 20, 1) + playsound(src, I.usesound, 20, 1) nadeassembly.loc = get_turf(src) nadeassembly.master = null nadeassembly = null diff --git a/code/game/objects/items/weapons/powerfist.dm b/code/game/objects/items/weapons/powerfist.dm index d7b720b8d86..3353fdda15b 100644 --- a/code/game/objects/items/weapons/powerfist.dm +++ b/code/game/objects/items/weapons/powerfist.dm @@ -43,7 +43,7 @@ fisto_setting = 3 if(3) fisto_setting = 1 - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, W.usesound, 50, 1) user << "You tweak \the [src]'s piston valve to [fisto_setting]." else if(istype(W, /obj/item/weapon/screwdriver)) if(tank) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index aa369e109cd..4fa685e8d52 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -258,6 +258,24 @@ item_state = "military" max_w_class = WEIGHT_CLASS_SMALL +/obj/item/weapon/storage/belt/military/abductor + name = "agent belt" + desc = "A belt used by abductor agents." + icon = 'icons/obj/abductor.dmi' + icon_state = "belt" + item_state = "security" + +/obj/item/weapon/storage/belt/military/abductor/full/New() + ..() + new /obj/item/weapon/screwdriver/abductor(src) + new /obj/item/weapon/wrench/abductor(src) + new /obj/item/weapon/weldingtool/abductor(src) + new /obj/item/weapon/crowbar/abductor(src) + new /obj/item/weapon/wirecutters/abductor(src) + new /obj/item/device/multitool/abductor(src) + new /obj/item/stack/cable_coil(src,30,"white") + + /obj/item/weapon/storage/belt/military/army name = "army belt" desc = "A belt used by military forces." diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 69846f7ac1d..9dff3262f3a 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -47,6 +47,15 @@ icon_state = "wrench_brass" toolspeed = 0.5 +/obj/item/weapon/wrench/abductor + 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 = "materials=5;engineering=5;abductor=3" + /obj/item/weapon/wrench/power name = "Hand Drill" desc ="A simple powered drill with a bolt bit" @@ -162,6 +171,14 @@ icon_state = "screwdriver_brass" toolspeed = 0.5 +/obj/item/weapon/screwdriver/abductor + name = "alien screwdriver" + desc = "An ultrasonic screwdriver." + icon = 'icons/obj/abductor.dmi' + icon_state = "screwdriver" + usesound = 'sound/items/PSHOOM.ogg' + toolspeed = 0.1 + /obj/item/weapon/screwdriver/power name = "Hand Drill" desc = "A simple hand drill with a screwdriver bit attached." @@ -238,7 +255,7 @@ /obj/item/weapon/wirecutters/suicide_act(mob/user) user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1, -1) + playsound(loc, usesound, 50, 1, -1) return (BRUTELOSS) /obj/item/weapon/wirecutters/brass @@ -247,6 +264,14 @@ icon_state = "cutters_brass" toolspeed = 0.5 +/obj/item/weapon/wirecutters/abductor + 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 = "materials=5;engineering=4;abductor=3" + /obj/item/weapon/wirecutters/cyborg name = "wirecutters" desc = "This cuts wires." @@ -386,7 +411,7 @@ if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM) if(src.remove_fuel(1)) - playsound(loc, 'sound/items/Welder.ogg', 50, 1) + playsound(loc, usesound, 50, 1) user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", "You start fixing some of the dents on [H]'s [affecting.name].") if(!do_mob(user, H, 50)) return @@ -580,6 +605,19 @@ /obj/item/weapon/weldingtool/mini/flamethrower_screwdriver() return +/obj/item/weapon/weldingtool/abductor + 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 + light_intensity = 0 + origin_tech = "plasmatech=5;engineering=5;abductor=3" + +/obj/item/weapon/weldingtool/abductor/process() + if(get_fuel() <= max_fuel) + reagents.add_reagent("welding_fuel", 1) + ..() /obj/item/weapon/weldingtool/hugetank name = "upgraded industrial welding tool" @@ -655,6 +693,15 @@ icon_state = "crowbar_brass" toolspeed = 0.5 +/obj/item/weapon/crowbar/abductor + 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 = "combat=4;engineering=4;abductor=3" + /obj/item/weapon/crowbar/large name = "crowbar" desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big." diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 2bce2a0f6d1..c5785016965 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -48,7 +48,7 @@ if(!WT.isOn()) user << "The welder must be on for this task!" return - playsound(loc, 'sound/items/Welder.ogg', 50, 1) + playsound(loc, WT.usesound, 50, 1) user << "You start to deconstruct the frame..." if(do_after(user, 20*P.toolspeed, target = src) && src && state == EMPTY_CORE && WT && WT.remove_fuel(0, user)) user << "You deconstruct the frame." diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index d11b3d3cd04..86b46b499e9 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -33,7 +33,7 @@ /obj/structure/bed/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) deconstruct(TRUE) else return ..() @@ -166,4 +166,4 @@ /obj/structure/bed/alien name = "resting contraption" desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?" - icon_state = "abed" \ No newline at end of file + icon_state = "abed" diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 01548ff0c06..9e4729ab8ac 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -35,7 +35,7 @@ /obj/structure/chair/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) deconstruct() else if(istype(W, /obj/item/assembly/shock_kit)) if(!user.drop_item()) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index efae35c257d..eac2e80318b 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -236,7 +236,7 @@ if(do_after(user, 40*WT.toolspeed, 1, target = src)) if(opened || !WT.isOn()) return - playsound(loc, 'sound/items/welder.ogg', 50, 1) + playsound(loc, WT.usesound, 50, 1) welded = !welded user.visible_message("[user] [welded ? "welds shut" : "unweldeds"] \the [src].", "You [welded ? "weld" : "unwelded"] \the [src] with \the [WT].", @@ -246,7 +246,7 @@ if(isinspace() && !anchored) return anchored = !anchored - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) user.visible_message("[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You hear a ratchet.") @@ -439,4 +439,4 @@ /obj/structure/closet/contents_explosion(severity, target) for(var/atom/A in contents) A.ex_act(severity, target) - CHECK_TICK \ No newline at end of file + CHECK_TICK diff --git a/code/game/objects/structures/crates_lockers/crates/bins.dm b/code/game/objects/structures/crates_lockers/crates/bins.dm index 6182f8f9b51..f07fda8219b 100644 --- a/code/game/objects/structures/crates_lockers/crates/bins.dm +++ b/code/game/objects/structures/crates_lockers/crates/bins.dm @@ -33,7 +33,7 @@ do_animate() else if(istype(W, /obj/item/weapon/wrench)) anchored = !anchored - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) else return ..() diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 71e7ab23338..fac248ed1da 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -125,7 +125,7 @@ var/obj/item/weapon/weldingtool/WT = W if(obj_integrity < max_integrity && WT.remove_fuel(5, user)) user << "You begin repairing [src]." - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) if(do_after(user, 40*W.toolspeed, target = src)) obj_integrity = max_integrity playsound(loc, 'sound/items/Welder2.ogg', 50, 1) @@ -204,7 +204,7 @@ /obj/structure/displaycase_chassis/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) //The player can only deconstruct the wooden frame user << "You start disassembling [src]..." - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 30*I.toolspeed, target = src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) new /obj/item/stack/sheet/mineral/wood(get_turf(src)) @@ -212,7 +212,7 @@ else if(istype(I, /obj/item/weapon/electronics/airlock)) user << "You start installing the electronics into [src]..." - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, I.usesound, 50, 1) if(user.unEquip(I) && do_after(user, 30, target = src)) I.loc = src electronics = I @@ -250,4 +250,3 @@ desc = "A glass lab container for storing interesting creatures." start_showpiece_type = /obj/item/clothing/mask/facehugger/lamarr req_access = list(access_rd) - diff --git a/code/game/objects/structures/electricchair.dm b/code/game/objects/structures/electricchair.dm index a4a086584f1..f875095bd69 100644 --- a/code/game/objects/structures/electricchair.dm +++ b/code/game/objects/structures/electricchair.dm @@ -13,7 +13,7 @@ /obj/structure/chair/e_chair/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench)) var/obj/structure/chair/C = new /obj/structure/chair(loc) - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, W.usesound, 50, 1) C.setDir(dir) part.loc = loc part.master = null @@ -44,4 +44,4 @@ buckled_mob << "You feel a deep shock course through your body!" spawn(1) buckled_mob.electrocute_act(85, src, 1) - visible_message("The electric chair went off!", "You hear a deep sharp shock!") \ No newline at end of file + visible_message("The electric chair went off!", "You hear a deep sharp shock!") diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 10e5083373b..6df654c883a 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -40,7 +40,7 @@ /obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench) && !stored_extinguisher) user << "You start unsecuring [name]..." - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, I.usesound, 50, 1) if(do_after(user, 60*I.toolspeed, target = src)) playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) user << "You unsecure [name]." diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 6af2c3ac84b..6cd3b901318 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -30,7 +30,7 @@ var/obj/item/weapon/weldingtool/WT = I if(obj_integrity < max_integrity && WT.remove_fuel(2, user)) user << "You begin repairing [src]." - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) if(do_after(user, 40*I.toolspeed, target = src)) obj_integrity = max_integrity playsound(loc, 'sound/items/Welder2.ogg', 50, 1) diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index eef73b53451..83b7fde171b 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -13,7 +13,7 @@ /obj/structure/fluff/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/weapon/wrench) && deconstructible) user.visible_message("[user] starts disassembling [src]...", "You start disassembling [src]...") - playsound(user, 'sound/items/Ratchet.ogg', 50, 1) + playsound(user, I.usesound, 50, 1) if(!do_after(user, 50, target = src)) return 0 user.visible_message("[user] disassembles [src]!", "You break down [src] into scrap metal.") @@ -159,4 +159,4 @@ /obj/structure/fluff/divine/shrine name = "shrine" desc = "A shrine dedicated to a deity." - icon_state = "shrine" \ No newline at end of file + icon_state = "shrine" diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index f88bf1c1eba..d3fa057eb9a 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -27,11 +27,11 @@ if(!WT.remove_fuel(0, user)) return user << "You begin cutting \the [src] apart..." - playsound(src.loc, "sound/items/Welder.ogg", 40, 1) + playsound(src.loc, WT.usesound, 40, 1) if(do_after(user, 40*WT.toolspeed, 1, target = src)) if(!WT.isOn()) return - playsound(src.loc, "sound/items/Welder.ogg", 50, 1) + playsound(src.loc, WT.usesound, 50, 1) visible_message("[user] slices apart \the [src].", "You cut \the [src] apart with \the [WT].", "You hear welding.") @@ -61,7 +61,7 @@ /obj/structure/kitchenspike/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/crowbar)) if(!has_buckled_mobs()) - playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) if(do_after(user, 20*I.toolspeed, target = src)) user << "You pry the spikes out of the frame." deconstruct(TRUE) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index 3826c5397a9..5dabd381870 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -348,7 +348,7 @@ /obj/structure/piano/attackby(obj/item/O, mob/user, params) if (istype(O, /obj/item/weapon/wrench)) if (!anchored && !isinspace()) - 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*O.toolspeed, target = src)) user.visible_message( \ @@ -357,7 +357,7 @@ "You hear ratchet.") anchored = 1 else 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*O.toolspeed, target = src)) user.visible_message( \ diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index bc5557615ca..7f8e9c9ff58 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -45,7 +45,7 @@ if(anchored) user << "Unweld the [src] first!" if(do_after(user, 80*W.toolspeed, target = src)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user << "You dismantle the [src]." new framebuildstacktype(loc, framebuildstackamount) new buildstacktype(loc, buildstackamount) diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index a88db7536cb..fbd7a9707c6 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -28,7 +28,7 @@ if(istype(O, /obj/item/weapon/wrench) && buildable_sign) user.visible_message("[user] starts removing [src]...", \ "You start unfastening [src].") - playsound(src, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src, O.usesound, 50, 1) if(!do_after(user, 30*O.toolspeed, target = src)) return playsound(src, 'sound/items/Deconstruct.ogg', 50, 1) @@ -265,5 +265,3 @@ name = "escape arm" desc = "A direction sign, pointing out which way the escape shuttle dock is." icon_state = "direction_evac" - - diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 3fd1e5c2b9d..fe4f6d8d632 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -19,7 +19,7 @@ user.changeNext_move(CLICK_CD_MELEE) if(istype(W, /obj/item/weapon/wrench)) if(anchored) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(src.loc, W.usesound, 100, 1) user.visible_message("[user] is loosening the [name]'s bolts.", \ "You are loosening the [name]'s bolts...") if(do_after(user,40*W.toolspeed, target = src)) @@ -32,7 +32,7 @@ if(!isfloorturf(src.loc)) user.visible_message("A floor must be present to secure the [name]!") return - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(src.loc, W.usesound, 100, 1) user.visible_message("[user] is securing the [name]'s bolts...", \ "You are securing the [name]'s bolts...") if(do_after(user, 40*W.toolspeed, target = src)) @@ -63,7 +63,7 @@ qdel(src) else if(istype(W, /obj/item/weapon/weldingtool) && !anchored) - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, W.usesound, 40, 1) user.visible_message("[user] is slicing apart the [name].", \ "You are slicing apart the [name]...") if(do_after(user, 40*W.toolspeed, target = src)) @@ -322,4 +322,4 @@ /obj/structure/statue/snow/snowman name = "snowman" desc = "Several lumps of snow put together to form a snowman." - icon_state = "snowman" \ No newline at end of file + icon_state = "snowman" diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index e1f81dc9ec0..7e6c66e1f0d 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -25,7 +25,7 @@ /obj/structure/table_frame/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/wrench)) user << "You start disassembling [src]..." - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 30*I.toolspeed, target = src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) deconstruct(TRUE) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 84c93456db5..e0a231e7c2a 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -102,14 +102,14 @@ if(istype(I, /obj/item/weapon/screwdriver) && deconstruction_ready) user << "You start disassembling [src]..." playsound(src.loc, I.usesound, 50, 1) - if(do_after(user, 20, target = src)) + if(do_after(user, 20*I.toolspeed, target = src)) deconstruct(TRUE) return if(istype(I, /obj/item/weapon/wrench) && deconstruction_ready) user << "You start deconstructing [src]..." playsound(src.loc, I.usesound, 50, 1) - if(do_after(user, 40, target = src)) + if(do_after(user, 40*I.toolspeed, target = src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) deconstruct(TRUE, 1) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index cea4e779eeb..0fcfafdf536 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -134,7 +134,7 @@ if(obj_integrity < max_integrity) if(WT.remove_fuel(0,user)) user << "You begin repairing [src]..." - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) if(do_after(user, 40*I.toolspeed, target = src)) obj_integrity = max_integrity playsound(loc, 'sound/items/Welder2.ogg', 50, 1) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 054359aeb6b..ea0431e0ed9 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -147,7 +147,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," if(floor_tile) PoolOrNew(floor_tile, src) make_plating() - playsound(src, 'sound/items/Crowbar.ogg', 80, 1) + playsound(src, C.usesound, 80, 1) return 1 return 0 @@ -185,4 +185,3 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," /turf/open/floor/acid_melt() ChangeTurf(baseturf) - diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 15d337c8922..203f46e07ba 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -134,11 +134,11 @@ /turf/open/floor/clockwork/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/weapon/crowbar)) user.visible_message("[user] begins slowly prying up [src]...", "You begin painstakingly prying up [src]...") - playsound(src, 'sound/items/Crowbar.ogg', 20, 1) + playsound(src, I.usesound, 20, 1) if(!do_after(user, 70*I.toolspeed, target = src)) return 0 user.visible_message("[user] pries up [src]!", "You pry up [src]!") - playsound(src, 'sound/items/Crowbar.ogg', 80, 1) + playsound(src, I.usesound, 80, 1) make_plating() return 1 return ..() @@ -214,4 +214,4 @@ for(var/obj/structure/spacevine/SV in src) qdel(SV) . = ..() - UpdateAffectingLights() \ No newline at end of file + UpdateAffectingLights() diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 65355893159..de9cabe70bf 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -65,7 +65,7 @@ if( welder.isOn() && (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 = icon_plating burnt = 0 broken = 0 diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index 83b63bd6c82..662985e7b99 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -25,7 +25,7 @@ return if(istype(C, /obj/item/weapon/wrench)) user << "You begin removing rods..." - playsound(src, 'sound/items/Ratchet.ogg', 80, 1) + playsound(src, C.usesound, 80, 1) if(do_after(user, 30*C.toolspeed, target = src)) if(!istype(src, /turf/open/floor/engine)) return diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm index e255b6bc512..84f5c48b04f 100644 --- a/code/game/turfs/simulated/wall/misc_walls.dm +++ b/code/game/turfs/simulated/wall/misc_walls.dm @@ -83,7 +83,7 @@ var/obj/item/weapon/weldingtool/WT = I if(!WT.remove_fuel(0,user)) return 0 - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, WT.usesound, 100, 1) user.visible_message("[user] begins slowly breaking down [src]...", "You begin painstakingly destroying [src]...") if(!do_after(user, 120*WT.toolspeed, target = src)) return 0 @@ -156,5 +156,3 @@ desc = "A huge chunk of rusted reinforced metal." icon = 'icons/turf/walls/rusty_reinforced_wall.dmi' hardness = 15 - - diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index a369c41c177..0d042d2e6a9 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -142,7 +142,7 @@ var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0,user)) user << "You begin welding the metal cover back to the frame..." - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, WT.usesound, 100, 1) if(do_after(user, 60*WT.toolspeed, target = src)) if(!istype(src, /turf/closed/wall/r_wall) || !WT || !WT.isOn() || d_state != CUT_COVER) return 1 @@ -201,7 +201,7 @@ if(istype(W, /obj/item/weapon/wrench)) user << "You start tightening the bolts which secure the support rods to their frame..." - playsound(src, 'sound/items/Ratchet.ogg', 100, 1) + playsound(src, W.usesound, 100, 1) if(do_after(user, 40*W.toolspeed, target = src)) if(!istype(src, /turf/closed/wall/r_wall) || !W || d_state != SUPPORT_RODS) return 1 @@ -225,7 +225,7 @@ var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0,user)) user << "You begin welding the support rods back together..." - playsound(src, 'sound/items/Welder.ogg', 100, 1) + playsound(src, WT.usesound, 100, 1) if(do_after(user, 100*WT.toolspeed, target = src)) if(!istype(src, /turf/closed/wall/r_wall) || !WT || !WT.isOn() || d_state != SHEATH) return 1 diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 2111f11e304..191e56f1723 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -136,7 +136,7 @@ Pipelines + Other Objects -> Pipe network var/unsafe_wrenching = FALSE var/internal_pressure = int_air.return_pressure()-env_air.return_pressure() - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user << "You begin to unfasten \the [src]..." if (internal_pressure > 2*ONE_ATMOSPHERE) user << "As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?" @@ -288,4 +288,3 @@ Pipelines + Other Objects -> Pipe network //Used for certain children of obj/machinery/atmospherics to not show pipe vision when mob is inside it. /obj/machinery/atmospherics/proc/can_see_pipes() return 1 - diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index 643fdd2a241..f9897593750 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -247,7 +247,7 @@ if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if (WT.remove_fuel(0,user)) - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) user << "You begin welding the vent..." if(do_after(user, 20*W.toolspeed, target = src)) if(!src || !WT.isOn()) return @@ -300,4 +300,4 @@ #undef NO_BOUND #undef SIPHONING -#undef RELEASING \ No newline at end of file +#undef RELEASING diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index 6b825b1d42c..2b535e472a7 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -339,7 +339,7 @@ if(istype(W, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0,user)) - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) user << "Now welding the scrubber." if(do_after(user, 20*W.toolspeed, target = src)) if(!src || !WT.isOn()) diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm index 711b5746ba2..18fecd84249 100644 --- a/code/modules/atmospherics/machinery/other/meter.dm +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -98,7 +98,7 @@ /obj/machinery/meter/attackby(obj/item/weapon/W, mob/user, params) if (istype(W, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user << "You begin to unfasten \the [src]..." if (do_after(user, 40*W.toolspeed, target = src)) user.visible_message( \ @@ -141,4 +141,3 @@ /obj/machinery/meter/turf/initialize() if (!target) src.target = loc - diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 49b5824890e..9b992ce623b 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -203,7 +203,7 @@ if(stat & BROKEN) if(!WT.remove_fuel(0, user)) return - playsound(loc, 'sound/items/Welder.ogg', 40, 1) + playsound(loc, WT.usesound, 40, 1) user << "You begin cutting [src] apart..." if(do_after(user, 30, target = src)) deconstruct(TRUE) diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index de885f918fb..c5c510f95cb 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -91,7 +91,7 @@ if(!(stat & BROKEN)) if(connected_port) disconnect() - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user.visible_message( \ "[user] disconnects [src].", \ "You unfasten [src] from the port.", \ @@ -106,7 +106,7 @@ if(!connect(possible_port)) user << "[name] failed to connect to the port." return - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user.visible_message( \ "[user] connects [src].", \ "You fasten [src] to the port.", \ @@ -123,4 +123,4 @@ else investigate_log("was smacked with \a [I] by [key_name(user)].", "atmos") add_fingerprint(user) - ..() \ No newline at end of file + ..() diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index ec0cec172db..9d9b41f84ff 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -45,7 +45,7 @@ if(istype(W, /obj/item/weapon/wirecutters)) if(can_be_cut && icon_state == initial(icon_state))//only if not dyed user << "You snip the fingertips off of [src]." - playsound(user.loc,'sound/items/Wirecutter.ogg', rand(10,50), 1) + playsound(user.loc, W.usesound, rand(10,50), 1) new /obj/item/clothing/gloves/fingerless(user.loc) qdel(src) ..() diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 2b184b89dd0..ebacae58aa9 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -823,7 +823,7 @@ if(!anchored && !isinspace()) user.visible_message("[user] begins to wrench [src] into place.", \ "You begin to wrench [src] in place...") - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, O.usesound, 50, 1) if (do_after(user, 20*O.toolspeed, target = src)) if(anchored) return @@ -833,7 +833,7 @@ else if(anchored) user.visible_message("[user] begins to unwrench [src].", \ "You begin to unwrench [src]...") - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, O.usesound, 50, 1) if (do_after(user, 20*O.toolspeed, target = src)) if(!anchored) return @@ -843,7 +843,7 @@ else if(istype(O, /obj/item/weapon/wirecutters) && unwrenchable) using_irrigation = !using_irrigation - playsound(src, 'sound/items/Wirecutter.ogg', 50, 1) + playsound(src, O.usesound, 50, 1) user.visible_message("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses.", \ "You [using_irrigation ? "" : "dis"]connect [src]'s irrigation hoses.") for(var/obj/machinery/hydroponics/h in range(1,src)) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index 6d5f0e6ea29..2fef96919e9 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -39,13 +39,13 @@ switch(state) if(0) if(istype(I, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) if(do_after(user, 20*I.toolspeed, target = src)) user << "You wrench the frame into place." anchored = 1 state = 1 if(istype(I, /obj/item/weapon/crowbar)) - playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) if(do_after(user, 20*I.toolspeed, target = src)) user << "You pry the frame apart." deconstruct(TRUE) @@ -59,7 +59,7 @@ state = 2 icon_state = "book-0" if(istype(I, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) user << "You unwrench the frame." anchored = 0 state = 0 @@ -87,7 +87,7 @@ if(contents.len) user << "You need to remove the books first!" else - playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) user << "You pry the shelf out." new /obj/item/stack/sheet/mineral/wood(loc, 2) state = 1 diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index e50d1499907..60f841088ea 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -358,7 +358,7 @@ /obj/item/device/gps/computer/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user.visible_message("[user] disassembles the gps.", \ "You start to disassemble the gps...", "You hear clanking and banging noises.") if(do_after(user, 20*W.toolspeed, target = src)) @@ -431,7 +431,7 @@ /obj/structure/fans/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user.visible_message("[user] disassembles the fan.", \ "You start to disassemble the fan...", "You hear clanking and banging noises.") if(do_after(user, 20*W.toolspeed, target = src)) diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 5a873df3d19..4b64884ccf8 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -20,7 +20,7 @@ S.remove_from_storage(O, src) //This will move the item to this item's contents user << "You empty the ore in [S] into \the [src]." else if(istype(W, /obj/item/weapon/crowbar)) - playsound(loc, 'sound/items/Crowbar.ogg', 50, 1) + playsound(loc, W.usesound, 50, 1) var/obj/item/weapon/crowbar/C = W if(do_after(user, 50*C.toolspeed, target = src)) user.visible_message("[user] pries \the [src] apart.", "You pry apart \the [src].", "You hear splitting wood.") @@ -70,4 +70,4 @@ if(user) WD.add_fingerprint(user) dump_box_contents() - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index f6a41f460dd..fd51e4f5edc 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -418,7 +418,7 @@ spark_system.start() return else - playsound(src, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src, W.usesound, 50, 1) user << "You start to unfasten [src]'s securing bolts..." if(do_after(user, 50*W.toolspeed, target = src) && !cell) user.visible_message("[user] deconstructs [src]!", "You unfasten the securing bolts, and [src] falls to pieces!") diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 20eb47f5e7f..d884482ae5b 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -95,7 +95,7 @@ else if(istype(I, /obj/item/weapon/wrench) && user != src) //They aren't required to be hacked, because laws can change in other ways (i.e. admins) user.visible_message("[user] starts resetting [src]...", \ "You press down on [src]'s factory reset control...") - playsound(src, 'sound/items/Ratchet.ogg', 50, 1) + playsound(src, I.usesound, 50, 1) if(!do_after(user, 50*I.toolspeed, target = src)) return user.visible_message("[user] resets [src]!", \ @@ -199,4 +199,3 @@ name = "Select Vision Filter" button_icon_state = "drone_vision" procname = /mob/living/simple_animal/drone/verb/toggle_statics - diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 8cf41f3a6bd..634aaf90fe7 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -55,7 +55,7 @@ updateUsrDialog() else if(istype(P, /obj/item/weapon/wrench)) user << "You begin to [anchored ? "wrench" : "unwrench"] [src]." - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, P.usesound, 50, 1) if(do_after(user, 20, target = src)) user << "You successfully [anchored ? "wrench" : "unwrench"] [src]." anchored = !anchored diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 139129da822..d2dc6e34dbf 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -298,7 +298,7 @@ if(isinspace()) user << "There's nothing to fasten [src] to!" return - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, O.usesound, 50, 1) user << "You start [anchored ? "unwrenching" : "wrenching"] [src]..." if(do_after(user, 20*O.toolspeed, target = src)) if(qdeleted(src)) diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index 10e864deb8d..485165fa681 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -160,14 +160,14 @@ /obj/machinery/power/am_control_unit/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/weapon/wrench)) if(!anchored) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, 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.") src.anchored = 1 connect_to_network() else if(!linked_shielding.len > 0) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) user.visible_message("[user.name] unsecures the [src.name].", \ "You remove the anchor bolts.", \ "You hear a ratchet.") @@ -360,4 +360,4 @@ check_core_stability() updateDialog() - return \ No newline at end of file + return diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 3bfa193934e..5431c834e44 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -552,7 +552,7 @@ user.visible_message("[user.name] welds [src].", \ "You start welding the APC frame...", \ "You hear welding.") - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + playsound(src.loc, WT.usesound, 50, 1) if(do_after(user, 50*W.toolspeed, target = src)) if(!src || !WT.remove_fuel(3, user)) return if ((stat & BROKEN) || opened==2) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 2e3bec5e47a..f8f1b905268 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -81,14 +81,14 @@ var/global/list/rad_collectors = list() user << "Remove the plasma tank first!" return 1 if(!anchored && !isinspace()) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 1 user.visible_message("[user.name] secures the [src.name].", \ "You secure the external bolts.", \ "You hear a ratchet.") connect_to_network() else if(anchored) - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 0 user.visible_message("[user.name] unsecures the [src.name].", \ "You unsecure the external bolts.", \ @@ -157,4 +157,3 @@ var/global/list/rad_collectors = list() flick("ca_deactive", src) update_icons() return - diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 2f84aa2784c..3164bccbf90 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -215,14 +215,14 @@ if(0) if(isinspace()) return state = 1 - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, 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 a ratchet") src.anchored = 1 if(1) state = 0 - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, 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 a ratchet.") diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index ae66949a54d..1ee60307cf0 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -91,14 +91,14 @@ field_generator power level display if(FG_UNSECURED) if(isinspace()) return state = FG_SECURED - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) user.visible_message("[user.name] secures [name] to the floor.", \ "You secure the external reinforcing bolts to the floor.", \ "You hear ratchet.") anchored = 1 if(FG_SECURED) state = FG_UNSECURED - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) user.visible_message("[user.name] unsecures [name] reinforcing bolts from the floor.", \ "You undo the external reinforcing bolts.", \ "You hear ratchet.") diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index c1aba816b87..fec3ffd8a34 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -26,13 +26,13 @@ user.visible_message("[user.name] secures [src.name] to the floor.", \ "You secure the [src.name] to the floor.", \ "You hear a ratchet.") - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 1 else if(anchored) user.visible_message("[user.name] unsecures [src.name] from the floor.", \ "You unsecure the [src.name] from the floor.", \ "You hear a ratchet.") - playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(src.loc, W.usesound, 75, 1) anchored = 0 else return ..() diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm index 64538f978c1..0b86f0a3545 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm @@ -99,7 +99,7 @@ switch(construction_state) if(PA_CONSTRUCTION_UNSECURED) if(istype(W, /obj/item/weapon/wrench) && !isinspace()) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 1 user.visible_message("[user.name] secures the [name] to the floor.", \ "You secure the external bolts.") @@ -107,7 +107,7 @@ did_something = TRUE if(PA_CONSTRUCTION_UNWIRED) if(istype(W, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 0 user.visible_message("[user.name] detaches the [name] from the floor.", \ "You remove the external bolts.") diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index e19bfbfc589..0bdaea83a66 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -271,7 +271,7 @@ switch(construction_state) if(PA_CONSTRUCTION_UNSECURED) if(istype(W, /obj/item/weapon/wrench) && !isinspace()) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 1 user.visible_message("[user.name] secures the [name] to the floor.", \ "You secure the external bolts.") @@ -279,7 +279,7 @@ did_something = TRUE if(PA_CONSTRUCTION_UNWIRED) if(istype(W, /obj/item/weapon/wrench)) - playsound(loc, 'sound/items/Ratchet.ogg', 75, 1) + playsound(loc, W.usesound, 75, 1) anchored = 0 user.visible_message("[user.name] detaches the [name] from the floor.", \ "You remove the external bolts.") diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 4fc3f39acfa..65fed246a27 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -31,7 +31,7 @@ if(istype(A, /obj/item/weapon/crowbar)) if(modkits.len) user << "You pry the modifications out." - playsound(loc, 'sound/items/Crowbar.ogg', 100, 1) + playsound(loc, A.usesound, 100, 1) for(var/obj/item/borg/upgrade/modkit/M in modkits) M.uninstall(src) else diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index d0544411c21..09337e8e2fa 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -130,7 +130,7 @@ else if(istype(I, /obj/item/weapon/wrench)) if(!(stat & BROKEN)) - playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) + playsound(loc, I.usesound, 50, 1) setDir(turn(dir,-45)) update_move_direction() user << "You rotate [src]." diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index 1d4cbc1cf32..447e5a70695 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -224,7 +224,7 @@ level = 1 // We don't want disposal bins to disappear under the floors density = 0 user << "You attach the [nicetype] to the underfloor." - playsound(loc, 'sound/items/Ratchet.ogg', 100, 1) + playsound(loc, I.usesound, 100, 1) update_icon() else if(istype(I, /obj/item/weapon/weldingtool)) diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index 3e8033772e4..40b66555f89 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -77,7 +77,7 @@ mode = SCREWS_OUT else mode = PRESSURE_OFF - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + playsound(src.loc, I.usesound, 50, 1) user << "You [mode == SCREWS_OUT ? "remove":"attach"] the screws around the power connection." return else if(istype(I,/obj/item/weapon/weldingtool) && mode == SCREWS_OUT) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 20f35932e6d..c44cbc2db32 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -526,6 +526,66 @@ other types of metals and chemistry for reagents). materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500) category = list("Equipment") +/datum/design/alienwrench + name = "Alien Wrench" + desc = "An advanced wrench obtained through Abductor technology." + id = "alien_wrench" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/wrench/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienwirecutters + name = "Alien Wirecutters" + desc = "Advanced wirecutters obtained through Abductor technology." + id = "alien_wirecutters" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/wirecutters/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienscrewdriver + name = "Alien Screwdriver" + desc = "An advanced screwdriver obtained through Abductor technology." + id = "alien_screwdriver" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/screwdriver/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/aliencrowbar + name = "Alien Crowbar" + desc = "An advanced crowbar obtained through Abductor technology." + id = "alien_crowbar" + req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4) + build_path = /obj/item/weapon/crowbar/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienwelder + name = "Alien Welding Tool" + desc = "An advanced welding tool obtained through Abductor technology." + id = "alien_welder" + req_tech = list("engineering" = 5, "plasmatech" = 5, "abductor" = 4) + build_path = /obj/item/weapon/weldingtool/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + +/datum/design/alienmultitool + name = "Alien Multitool" + desc = "An advanced multitool obtained through Abductor technology." + id = "alien_multitool" + req_tech = list("engineering" = 5, "programming" = 5, "abductor" = 4) + build_path = /obj/item/device/multitool/abductor + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000) + category = list("Equipment") + /datum/design/diskplantgene name = "Plant data disk" desc = "A disk for storing plant genetic data." diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 876c43fa4b6..18831a9934f 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -115,6 +115,66 @@ build_path = /obj/item/device/extinguisher_refill category = list("Medical Designs") +/datum/design/alienscalpel + name = "Alien Scalpel" + desc = "An advanced scalpel obtained through Abductor technology." + id = "alien_scalpel" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/scalpel/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/alienhemostat + name = "Alien Hemostat" + desc = "An advanced hemostat obtained through Abductor technology." + id = "alien_hemostat" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/hemostat/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/alienretractor + name = "Alien Retractor" + desc = "An advanced retractor obtained through Abductor technology." + id = "alien_retractor" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/retractor/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/aliensaw + name = "Alien Circular Saw" + desc = "An advanced surgical saw obtained through Abductor technology." + id = "alien_saw" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/circular_saw/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/aliendrill + name = "Alien Drill" + desc = "An advanced drill obtained through Abductor technology." + id = "alien_drill" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/surgicaldrill/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + category = list("Medical Designs") + +/datum/design/aliencautery + name = "Alien Cautery" + desc = "An advanced cautery obtained through Abductor technology." + id = "alien_cautery" + req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3) + build_path = /obj/item/weapon/cautery/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + ///////////////////////////////////////// //////////Cybernetic Implants//////////// ///////////////////////////////////////// diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index a5cefa1a0a7..24a9622a33d 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -128,7 +128,7 @@ user << "You insert the flash into the eye socket." else if(istype(W, /obj/item/weapon/crowbar)) if(flash1 || flash2) - playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + playsound(src.loc, W.usesound, 50, 1) user << "You remove the flash from [src]." if(flash1) flash1.forceMove(user.loc) diff --git a/code/modules/surgery/organs/autoimplanter.dm b/code/modules/surgery/organs/autoimplanter.dm index 34cd550d5dc..b8d8ea21f07 100644 --- a/code/modules/surgery/organs/autoimplanter.dm +++ b/code/modules/surgery/organs/autoimplanter.dm @@ -51,7 +51,7 @@ var/turf/open/floorloc = get_turf(user) floorloc.contents += contents user << "You remove the [storedorgan] from [src]." - playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1) + playsound(get_turf(user), I.usesound, 50, 1) storedorgan = null if(uses != INFINITE) uses-- diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 6017784f611..3e08808ebc4 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -42,7 +42,7 @@ surgery.step_in_progress = 0 return - if(do_after(user, time, target = target)) + if(do_after(user, time * tool.toolspeed, target = target)) var/advance = 0 var/prob_chance = 100 diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm index 9955958c4af..e2ce393bc48 100644 --- a/code/modules/telesci/telepad.dm +++ b/code/modules/telesci/telepad.dm @@ -75,11 +75,11 @@ user << "\The [src] is now secured." else if(istype(W, /obj/item/weapon/screwdriver)) if(stage == 0) - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) + playsound(src, W.usesound, 50, 1) user << "You unscrew the telepad's tracking beacon." stage = 1 else if(stage == 1) - playsound(src, 'sound/items/Screwdriver.ogg', 50, 1) + playsound(src, W.usesound, 50, 1) user << "You screw in the telepad's tracking beacon." stage = 0 else if(istype(W, /obj/item/weapon/weldingtool) && stage == 1) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 535d407358a..a70a6a495ec 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -122,7 +122,7 @@ /obj/vehicle/scooter/skateboard/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/screwdriver)) user << "You begin to deconstruct and remove the wheels on [src]..." - playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1) + playsound(get_turf(user), I.usesound, 50, 1) if(do_after(user, 20, target = src)) user << "You deconstruct the wheels on [src]." new /obj/item/stack/sheet/metal(get_turf(src),5) diff --git a/icons/obj/abductor.dmi b/icons/obj/abductor.dmi index 13dac82bed727fe1173ce5778b7332910b6f47fd..88d50bb602682d581d5ca10cae6c20254be7f9ee 100644 GIT binary patch literal 55429 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 d{}F|tBZCh}{{zW{ZL$CW literal 51373 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⪚^ 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 CwHhq|