diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 6b59f02057f..3135d4fd9ed 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -100,7 +100,7 @@ var/bomb_set
switch(deconstruction_state)
if(NUKESTATE_INTACT)
if(istype(I, /obj/item/weapon/screwdriver/nuke))
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
user << "You start removing [src]'s front panel's screws..."
if(do_after(user, 60/I.toolspeed,target=src))
deconstruction_state = NUKESTATE_UNSCREWED
@@ -110,7 +110,7 @@ var/bomb_set
if(NUKESTATE_UNSCREWED)
if(istype(I, /obj/item/weapon/crowbar))
user << "You start removing [src]'s front panel..."
- playsound(loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
if(do_after(user,30/I.toolspeed,target=src))
user << "You remove [src]'s front panel."
deconstruction_state = NUKESTATE_PANEL_REMOVED
@@ -119,7 +119,7 @@ var/bomb_set
if(NUKESTATE_PANEL_REMOVED)
if(istype(I, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/welder = I
- playsound(loc, 'sound/items/Welder.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
user << "You start cutting [src]'s inner plate..."
if(welder.remove_fuel(1,user))
if(do_after(user,80/I.toolspeed,target=src))
@@ -130,7 +130,7 @@ var/bomb_set
if(NUKESTATE_WELDED)
if(istype(I, /obj/item/weapon/crowbar))
user << "You start prying off [src]'s inner plate..."
- playsound(loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
if(do_after(user,50/I.toolspeed,target=src))
user << "You pry off [src]'s inner plate. You can see the core's green glow!"
deconstruction_state = NUKESTATE_CORE_EXPOSED
diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm
index f957f81704a..a85776fef79 100644
--- a/code/game/machinery/announcement_system.dm
+++ b/code/game/machinery/announcement_system.dm
@@ -76,7 +76,7 @@ var/list/announcement_systems = list()
/obj/machinery/announcement_system/attackby(obj/item/P, mob/user, params)
if(istype(P, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
panel_open = !panel_open
user << "You [panel_open ? "open" : "close"] the maintenance hatch of [src]."
update_icon()
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 558c5d02c1d..05e66436bbd 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -128,7 +128,7 @@
return
user.electrocute_act(10, src)
-/obj/machinery/camera/attackby(obj/W, mob/living/user, params)
+/obj/machinery/camera/attackby(obj/item/W, mob/living/user, params)
var/msg = "You attach [W] into the assembly's inner circuits."
var/msg2 = "[src] already has that upgrade!"
@@ -136,7 +136,7 @@
if(istype(W, /obj/item/weapon/screwdriver))
panel_open = !panel_open
user << "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)
return
if(panel_open)
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 87b08024f3f..1df5077ed9c 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -43,7 +43,7 @@
return
else 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 unattach the assembly from its place."
new /obj/item/wallframe/camera(get_turf(src))
qdel(src)
@@ -73,7 +73,7 @@
if(3)
// State 3
if(istype(W, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
var/input = stripped_input(user, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13")
if(!input)
@@ -98,7 +98,7 @@
else if(istype(W, /obj/item/weapon/wirecutters))
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
@@ -117,7 +117,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.loc, W.usesound, 50, 1)
U.loc = get_turf(src)
upgrades -= U
return
@@ -138,4 +138,4 @@
/obj/structure/camera_assembly/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
new /obj/item/stack/sheet/metal(loc)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index f62a0be4816..a5d12712a9b 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -9,7 +9,7 @@
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You start wrenching the frame into place..."
if(do_after(user, 20/P.toolspeed, target = src))
user << "You wrench the frame into place."
@@ -22,7 +22,7 @@
if(!WT.isOn())
user << "The welding tool must be on to complete this task!"
return
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You start deconstructing the frame..."
if(do_after(user, 20/P.toolspeed, target = src))
if(!src || !WT.isOn()) return
@@ -33,7 +33,7 @@
return
if(1)
if(istype(P, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You start to unfasten the frame..."
if(do_after(user, 20/P.toolspeed, target = src))
user << "You unfasten the frame."
@@ -55,13 +55,13 @@
user << "This frame does not accept circuit boards of this type!"
return
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."
state = 2
icon_state = "2"
return
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."
state = 1
icon_state = "0"
@@ -71,7 +71,7 @@
return
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."
state = 1
icon_state = "1"
@@ -92,7 +92,7 @@
return
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."
state = 2
icon_state = "2"
@@ -118,7 +118,7 @@
return
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."
state = 3
icon_state = "3"
@@ -126,7 +126,7 @@
G.add_fingerprint(user)
return
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/B = new src.circuit.build_path (src.loc, circuit)
transfer_fingerprints_to(B)
diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm
index 38ef9137c09..0da26bc5ba4 100644
--- a/code/game/machinery/computer/computer.dm
+++ b/code/game/machinery/computer/computer.dm
@@ -82,7 +82,7 @@
/obj/machinery/computer/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver) && circuit && !(flags&NODECONSTRUCT))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
user << " You start to disconnect the monitor..."
if(do_after(user, 20/I.toolspeed, target = src))
deconstruct(TRUE, user)
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index ec10b96b79f..de90e7e936a 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -97,7 +97,7 @@
user << "You need five length of cable to wire the frame!"
return
if(istype(P, /obj/item/weapon/screwdriver) && !anchored)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user.visible_message("[user] disassembles the frame.", \
"You start to disassemble the frame...", "You hear banging and clanking.")
if(do_after(user, 40/P.toolspeed, target = src))
@@ -109,7 +109,7 @@
return
if(istype(P, /obj/item/weapon/wrench))
user << "You start [anchored ? "un" : ""]securing [name]..."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, P.usesound, 75, 1)
if(do_after(user, 40/P.toolspeed, target = src))
if(state == 1)
user << "You [anchored ? "un" : ""]secure [name]."
@@ -119,7 +119,7 @@
if(2)
if(istype(P, /obj/item/weapon/wrench))
user << "You start [anchored ? "un" : ""]securing [name]..."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, P.usesound, 75, 1)
if(do_after(user, 40/P.toolspeed, target = src))
user << "You [anchored ? "un" : ""]secure [name]."
anchored = !anchored
@@ -148,7 +148,7 @@
return
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"
@@ -158,7 +158,7 @@
if(3)
if(istype(P, /obj/item/weapon/crowbar))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
state = 2
circuit.loc = src.loc
components.Remove(circuit)
@@ -182,7 +182,7 @@
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, 1)
new_machine.on_construction()
for(var/obj/O in new_machine.component_parts)
@@ -309,4 +309,4 @@ micro-manipulator, console screen, beaker, Microlaser, matter bin, power cells.
/obj/item/weapon/circuitboard/machine/clockwork
name = "clockwork board (Report This)"
- icon_state = "clock_mod"
\ No newline at end of file
+ icon_state = "clock_mod"
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index cf112181ff3..a780d26d25d 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -913,7 +913,7 @@ var/list/airlock_overlays = list()
beingcrowbarred = 0
if(panel_open && charge)
user << "You carefully start removing [charge] from [src]..."
- playsound(get_turf(src), 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(get_turf(src), I.usesound, 50, 1)
if(!do_after(user, 150/I.toolspeed, target = src))
user << "You slip and [charge] detonates!"
charge.ex_act(1)
@@ -925,7 +925,7 @@ var/list/airlock_overlays = list()
charge = null
return
if( beingcrowbarred && (density && welded && !operating && src.panel_open && (!hasPower()) && !src.locked) )
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src.loc, I.usesound, 100, 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/I.toolspeed, target = src))
@@ -954,6 +954,31 @@ var/list/airlock_overlays = list()
else
close(2)
+ if(istype(I, /obj/item/weapon/crowbar/power))
+ if(isElectrified())
+ shock(user,100)//it's like sticking a forck in a power socket
+ return
+
+ if(!density)//already open
+ return
+
+ if(locked)
+ user << "The bolts are down, it won't budge!"
+ return
+
+ if(welded)
+ user << "It's welded, it won't budge!"
+ return
+
+ var/time_to_open = 5
+ if(hasPower())
+ time_to_open = 50
+ playsound(src, 'sound/machines/airlock_alien_prying.ogg',100,1) //is it aliens or just the CE being a dick?
+ if(do_after(user, time_to_open,target = src))
+ open(2)
+ if(density && !open(2))
+ user << "Despite your attempts, the [src] refuses to open."
+
/obj/machinery/door/airlock/plasma/attackby(obj/item/C, mob/user, params)
if(C.is_hot() > 300)//If the temperature of the object is over 300, then ignite
message_admins("Plasma airlock ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_COORDJMP(src)]")
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index cf42af56410..97e147448c3 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -460,7 +460,7 @@
if(istype(I, /obj/item/weapon/screwdriver))
if(construction_state == GEAR_SECURE)
user.visible_message("[user] begins unfastening [src]'s gear...", "You begin unfastening [src]'s gear...")
- playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
if(!do_after(user, 75 / I.toolspeed, target = src))
return 1 //Returns 1 so as not to have extra interactions with the tools used (i.e. prying open)
user.visible_message("[user] unfastens [src]'s gear!", "[src]'s gear shifts slightly with a pop.")
@@ -468,7 +468,7 @@
construction_state = GEAR_UNFASTENED
else if(construction_state == GEAR_UNFASTENED)
user.visible_message("[user] begins fastening [src]'s gear...", "You begin fastening [src]'s gear...")
- playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
if(!do_after(user, 75 / I.toolspeed, target = src))
return 1
user.visible_message("[user] fastens [src]'s gear!", "[src]'s gear shifts back into place.")
@@ -483,7 +483,7 @@
return 0
else if(construction_state == GEAR_UNFASTENED)
user.visible_message("[user] begins loosening [src]'s gear...", "You begin loosening [src]'s gear...")
- playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
if(!do_after(user, 80 / I.toolspeed, target = src))
return 1
user.visible_message("[user] loosens [src]'s gear!", "[src]'s gear pops off and dangles loosely.")
@@ -491,7 +491,7 @@
construction_state = GEAR_LOOSE
else if(construction_state == GEAR_LOOSE)
user.visible_message("[user] begins tightening [src]'s gear...", "You begin tightening [src]'s gear into place...")
- playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
if(!do_after(user, 80 / I.toolspeed, target = src))
return 1
user.visible_message("[user] tightens [src]'s gear!", "You firmly tighten [src]'s gear into place.")
@@ -504,7 +504,7 @@
return 1
else if(construction_state == GEAR_LOOSE)
user.visible_message("[user] begins slowly lifting off [src]'s gear...", "You slowly begin lifting off [src]'s gear...")
- playsound(src, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src, I.usesound, 50, 1)
if(!do_after(user, 85 / I.toolspeed, target = src))
return 1
user.visible_message("[user] lifts off [src]'s gear, causing it to fall apart!", "You lift off [src]'s gear, causing it to fall \
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 02cb9157938..7cb67847aa8 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -215,14 +215,14 @@
if(density || operating)
user << "You need to open the door to access the maintenance panel!"
return
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
panel_open = !panel_open
user << "You [panel_open ? "open":"close"] the maintenance panel of the [src.name]."
return
if(istype(I, /obj/item/weapon/crowbar))
if(panel_open && !density && !operating)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src.loc, I.usesound, 100, 1)
user.visible_message("[user] removes the electronics from the [src.name].", \
"You start to remove electronics from the [src.name]...")
if(do_after(user,40/I.toolspeed, target = src))
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index faf731632d8..6384a693eb3 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -136,7 +136,7 @@
add_fingerprint(user)
if(istype(W, /obj/item/weapon/screwdriver) && buildstage == 2)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
panel_open = !panel_open
user << "The wires have been [panel_open ? "exposed" : "unexposed"]."
update_icon()
@@ -155,7 +155,7 @@
else if (istype(W, /obj/item/weapon/wirecutters))
buildstage = 1
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
new /obj/item/stack/cable_coil(user.loc, 5)
user << "You cut the wires from \the [src]."
update_icon()
@@ -173,7 +173,7 @@
return
else if(istype(W, /obj/item/weapon/crowbar))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
user.visible_message("[user.name] removes the electronics from [src.name].", \
"You start prying out the circuit...")
if(do_after(user, 20/W.toolspeed, target = src))
@@ -199,7 +199,7 @@
"You remove the fire alarm assembly from the wall.")
var/obj/item/wallframe/firealarm/frame = new /obj/item/wallframe/firealarm()
frame.loc = user.loc
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
qdel(src)
return
return ..()
@@ -289,4 +289,4 @@
return
for(var/area/RA in A.related)
RA.partyalert()
- return
\ No newline at end of file
+ return
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index ce2ac895743..0439e7faea8 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -292,7 +292,7 @@ Class Procs:
/obj/machinery/proc/default_pry_open(obj/item/weapon/crowbar/C)
. = !(state_open || panel_open || is_operational() || (flags & NODECONSTRUCT)) && istype(C)
if(.)
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, C.usesound, 50, 1)
visible_message("[usr] pries open \the [src].", "You pry open \the [src].")
open_machine()
return 1
@@ -300,7 +300,7 @@ Class Procs:
/obj/machinery/proc/default_deconstruction_crowbar(obj/item/weapon/crowbar/C, ignore_panel = 0)
. = istype(C) && (panel_open || ignore_panel) && !(flags & NODECONSTRUCT)
if(.)
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, C.usesound, 50, 1)
deconstruct(TRUE)
/obj/machinery/deconstruct(disassembled = TRUE)
@@ -324,7 +324,7 @@ Class Procs:
/obj/machinery/proc/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/weapon/screwdriver/S)
if(istype(S) && !(flags & NODECONSTRUCT))
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, S.usesound, 50, 1)
if(!panel_open)
panel_open = 1
icon_state = icon_state_open
@@ -338,7 +338,7 @@ Class Procs:
/obj/machinery/proc/default_change_direction_wrench(mob/user, obj/item/weapon/wrench/W)
if(panel_open && istype(W))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, W.usesound, 50, 1)
setDir(turn(dir,-90))
user << "You rotate [src]."
return 1
@@ -347,7 +347,7 @@ Class Procs:
/obj/proc/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20)
if(istype(W) && !(flags & NODECONSTRUCT))
user << "You begin [anchored ? "un" : ""]securing [name]..."
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, W.usesound, 50, 1)
if(do_after(user, time/W.toolspeed, target = src))
user << "You [anchored ? "un" : ""]secure [name]."
anchored = !anchored
diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm
index 4e92cf434d9..5ac7b22e2e2 100644
--- a/code/game/machinery/porta_turret/portable_turret_construct.dm
+++ b/code/game/machinery/porta_turret/portable_turret_construct.dm
@@ -23,14 +23,14 @@
switch(build_step)
if(PTURRET_UNSECURED) //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 = PTURRET_BOLTED
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/sheet/metal( loc, 5)
qdel(src)
@@ -48,7 +48,7 @@
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 = PTURRET_UNSECURED
@@ -57,7 +57,7 @@
if(PTURRET_START_INTERNAL_ARMOUR)
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 = PTURRET_INTERNAL_ARMOUR_ON
return
@@ -94,7 +94,7 @@
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 = PTURRET_START_INTERNAL_ARMOUR
return
@@ -111,7 +111,7 @@
if(PTURRET_SENSORS_ON)
if(istype(I, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, I.usesound, 100, 1)
build_step = PTURRET_CLOSED
user << "You close the internal access hatch."
return
@@ -128,7 +128,7 @@
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 = PTURRET_SENSORS_ON
user << "You open the internal access hatch."
return
@@ -159,7 +159,7 @@
qdel(src)
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/sheet/metal(loc, 2)
build_step = PTURRET_CLOSED
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index 036959b4ec9..fad92884531 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -154,7 +154,7 @@
/obj/machinery/shieldgen/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/screwdriver))
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
panel_open = !panel_open
if(panel_open)
user << "You open the panel and expose the wiring."
@@ -180,11 +180,11 @@
user << "The bolts are covered! Unlocking this would retract the covers."
return
if(!anchored && !isinspace())
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user << "You secure \the [src] to the floor!"
anchored = 1
else if(anchored)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user << "You unsecure \the [src] from the floor!"
if(active)
user << "\The [src] shuts off!"
@@ -376,13 +376,13 @@
return
else if(!anchored && !isinspace()) //Can't fasten this thing in space
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, W.usesound, 75, 1)
user << "You secure the external reinforcing bolts to the floor."
anchored = 1
return
else //You can unfasten it tough, if you somehow manage to fasten it.
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, W.usesound, 75, 1)
user << "You undo the external reinforcing bolts."
anchored = 0
return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index c01cad9f22a..fd00a10656b 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -25,6 +25,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
var/hitsound = null
+ var/usesound = null
var/throwhitsound = null
var/w_class = 3
var/slot_flags = 0 //This is used to determine on which slots an item can fit.
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index c35b04a34b0..59f0e9fdbc6 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -121,7 +121,7 @@
user << "Turn off [src] before you perform this action!"
return 0
user.visible_message("[user] unscrews [src]'s maintenance panel and begins fiddling with its innards...", "You begin resetting [src]...")
- playsound(user, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(user, I.usesound, 50, 1)
if(!do_after(user, 40/I.toolspeed, target = user))
return 0
user.visible_message("[user] refastens [src]'s maintenance panel!", "You reset [src] to its factory settings!")
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 6a340caac7f..5060df42338 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -34,6 +34,23 @@
/obj/item/clothing/gloves/
)
+/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)//This can be changed if this is too much
+ 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)
+ //much roomier now that we've managed to remove two tools
+
+
/obj/item/weapon/storage/belt/utility/full/New()
..()
new /obj/item/weapon/screwdriver(src)
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 7e0f3b1c966..7c225fe21e8 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -24,6 +24,7 @@
force = 5
throwforce = 7
w_class = 2
+ usesound = 'sound/items/Ratchet.ogg'
materials = list(MAT_METAL=150)
origin_tech = "materials=1;engineering=1"
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
@@ -31,7 +32,7 @@
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
/obj/item/weapon/wrench/suicide_act(mob/user)
- user.visible_message("[user] is beating \himself to death with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.")
playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -47,6 +48,31 @@
icon_state = "wrench_brass"
toolspeed = 2
+/obj/item/weapon/wrench/power
+ name = "Hand Drill"
+ desc ="A simple powered drill with a bolt bit"
+ icon_state = "drill_bolt"
+ item_state = "drill"
+ usesound = 'sound/items/drill_use.ogg'
+ materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
+ origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get
+ force = 8 //might or might not be too high, subject to change
+ throwforce = 8
+ attack_verb = list("drilled", "screwed", "jabbed")
+ toolspeed = 4
+
+/obj/item/weapon/wrench/power/attack_self(mob/user)
+ playsound(get_turf(user),'sound/items/change_drill.ogg',50,1)
+ var/obj/item/weapon/wirecutters/power/s_drill = new /obj/item/weapon/screwdriver/power
+ user << "You attach the screw driver bit to the [src]."
+ user.unEquip(src)
+ user.put_in_active_hand(s_drill)
+ qdel(src)
+
+obj/item/weapon/wrench/power/suicide_act(mob/user)
+ user.visible_message("[user] is pressing the [src] against \his head, it looks like he's trying to drill \his head off")
+ return (BRUTELOSS)
+
/obj/item/weapon/wrench/medical
name = "medical wrench"
desc = "A medical wrench with common(medical?) uses. Can be found in your hand."
@@ -54,7 +80,7 @@
force = 2 //MEDICAL
throwforce = 4
origin_tech = "materials=1;engineering=1;biotech=3"
- attack_verb = list("wrenched", "medicaled", "tapped", "jabbed")
+ attack_verb = list("wrenched", "medicaled", "tapped", "jabbed", "whacked")
/obj/item/weapon/wrench/medical/suicide_act(mob/user)
user.visible_message("[user] is praying to the medical wrench to take \his soul. It looks like \he's trying to commit suicide.")
@@ -103,12 +129,13 @@
materials = list(MAT_METAL=75)
attack_verb = list("stabbed")
hitsound = 'sound/weapons/bladeslice.ogg'
+ usesound = 'sound/items/Screwdriver.ogg'
toolspeed = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
/obj/item/weapon/screwdriver/suicide_act(mob/user)
- user.visible_message(pick("[user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.", \
- "[user] is stabbing the [src.name] into \his heart! It looks like \he's trying to commit suicide."))
+ user.visible_message(pick("[user] is stabbing the [src] into \his temple! It looks like \he's trying to commit suicide.", \
+ "[user] is stabbing the [src] into \his heart! It looks like \he's trying to commit suicide."))
return(BRUTELOSS)
/obj/item/weapon/screwdriver/New(loc, var/param_color = null)
@@ -137,11 +164,40 @@
icon_state = "screwdriver_brass"
toolspeed = 2
+/obj/item/weapon/screwdriver/power
+ name = "Hand Drill"
+ desc = "A simple hand drill with a screwdriver bit attached."
+ icon_state = "drill_screw"
+ item_state = "drill"
+ materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
+ origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get
+ force = 8 //might or might not be too high, subject to change
+ 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 = 4
+
+/obj/item/weapon/screwdriver/power/suicide_act(mob/user)
+ user.visible_message("[user] is putting the [src] up to \his temple, it looks like they're trying to commit suicide")
+ return(BRUTELOSS)
+
+/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/b_drill = new /obj/item/weapon/wrench/power
+ user << "You attach the bolt driver bit to the [src]."
+ user.unEquip(src)
+ user.put_in_active_hand(b_drill)
+ qdel(src)
+
/obj/item/weapon/screwdriver/cyborg
name = "powered screwdriver"
desc = "An electrical screwdriver, designed to be both precise and quick."
icon = 'icons/obj/items_cyborg.dmi'
icon_state = "screwdriver_cyborg"
+ usesound = 'sound/items/drill_use.ogg'
toolspeed = 2
/*
@@ -159,9 +215,9 @@
throw_range = 7
w_class = 2
materials = list(MAT_METAL=80)
- origin_tech = "materials=1;engineering=1"
attack_verb = list("pinched", "nipped")
hitsound = 'sound/items/Wirecutter.ogg'
+ usesound = 'sound/items/Wirecutter.ogg'
toolspeed = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
@@ -185,7 +241,7 @@
..()
/obj/item/weapon/wirecutters/suicide_act(mob/user)
- user.visible_message("[user] is cutting at \his arteries with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is cutting at \his arteries with the [src]! It looks like \he's trying to commit suicide.")
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -202,6 +258,35 @@
icon_state = "cutters_cyborg"
toolspeed = 2
+/obj/item/weapon/wirecutters/power
+ name = "Jaws of Life"
+ desc = "A set of jaws of life, the magic of science has managed to fit it down into a device small enough to fit in a tool belt. It's fitted with a cutting head"
+ icon_state = "jaws_cutter"
+ item_state = "jawsoflife"
+ origin_tech = "materials=2;engineering=2"
+ materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
+ usesound = 'sound/items/jaws_cut.ogg'
+ toolspeed = 4
+
+/obj/item/weapon/wirecutters/power/suicide_act(mob/user)
+ user.visible_message("[user] is the [src] around \his neck, it looks like \he's trying to rip \his head off!")
+ playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1)
+ var/mob/living/carbon/C = user
+ var/obj/item/bodypart/BP = C.get_bodypart("head")
+ if(BP)
+ BP.drop_limb()// <- i have no idea why this works, but it does
+ playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1)
+ else
+ user.visible_message("[user] doesn't have a head to cutt off, but dies anyway.")
+ return (BRUTELOSS)
+
+/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
+ user << "You attach the pry jaws to the [src]."
+ user.unEquip(src)
+ user.put_in_active_hand(pryjaws)
+ qdel(src)
/*
* Welding Tool
*/
@@ -216,6 +301,9 @@
force = 3
throwforce = 5
hitsound = "swing_hit"
+ usesound = 'sound/items/Welder.ogg'
+ var/acti_sound = 'sound/items/WelderActivate.ogg'
+ var/deac_sound = 'sound/items/WelderDeactivate.ogg'
throw_speed = 3
throw_range = 5
w_class = 2
@@ -249,6 +337,7 @@
else
item_state = "[initial(item_state)]"
+
/obj/item/weapon/weldingtool/update_icon()
if(change_icons)
var/ratio = get_fuel() / max_fuel
@@ -381,6 +470,7 @@ obj/item/weapon/weldingtool/proc/switched_on(mob/user)
if(welding)
if(get_fuel() >= 1)
user << "You switch [src] on."
+ playsound(loc, acti_sound, 50, 1)
force = 15
damtype = "fire"
hitsound = 'sound/items/welder.ogg'
@@ -391,6 +481,7 @@ obj/item/weapon/weldingtool/proc/switched_on(mob/user)
switched_off(user)
else
user << "You switch [src] off."
+ playsound(loc, deac_sound, 50, 1)
switched_off(user)
//Switches the welder off
@@ -547,6 +638,7 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user)
desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors."
icon = 'icons/obj/tools.dmi'
icon_state = "crowbar"
+ usesound = 'sound/items/Crowbar.ogg'
flags = CONDUCT
slot_flags = SLOT_BELT
force = 5
@@ -559,7 +651,7 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
/obj/item/weapon/crowbar/suicide_act(mob/user)
- user.visible_message("[user] is beating \himself to death with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.")
playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -589,5 +681,30 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user)
name = "hydraulic crowbar"
desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbar in construction cyborgs."
icon = 'icons/obj/items_cyborg.dmi'
+ usesound = 'sound/items/jaws_pry.ogg'
force = 10
toolspeed = 2
+
+/obj/item/weapon/crowbar/power
+ name = "Jaws of Life"
+ desc = "A set of jaws of life, the magic of science has managed to fit it down into a device small enough to fit in a tool belt. It's fitted with a prying head"
+ icon_state = "jaws_pry"
+ item_state = "jawsoflife"
+ materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
+ origin_tech = "materials=2;engineering=2"
+ usesound = 'sound/items/jaws_pry.ogg'
+ force = 15
+ toolspeed = 4
+
+/obj/item/weapon/crowbar/power/suicide_act(mob/user)
+ user.visible_message("[user] is putting his head in the [src], it looks like \he's trying to commit suicide!")
+ playsound(loc, 'sound/items/jaws_pry.ogg', 50, 1, -1)
+ return (BRUTELOSS)
+
+/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
+ user << "You attach the cutting jaws to the [src]."
+ user.unEquip(src)
+ user.put_in_active_hand(cutjaws)
+ qdel(src)
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 946fbeaabf8..f261df2aa8e 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -32,7 +32,7 @@
/obj/structure/AIcore/attackby(obj/item/P, mob/user, params)
if(istype(P, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \
"You start to [anchored ? "unfasten [src] from" : "fasten [src] to"] the floor...")
if(do_after(user, 20/P.toolspeed, target = src))
@@ -69,13 +69,13 @@
return
if(CIRCUIT_CORE)
if(istype(P, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You screw the circuit board into place."
state = SCREWED_CORE
icon_state = "2"
return
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 circuit board."
state = EMPTY_CORE
icon_state = "0"
@@ -84,7 +84,7 @@
return
if(SCREWED_CORE)
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 = CIRCUIT_CORE
icon_state = "1"
@@ -106,7 +106,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 = SCREWED_CORE
icon_state = "2"
@@ -165,7 +165,7 @@
return
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.forceMove(loc)
brain = null
@@ -174,7 +174,7 @@
if(GLASS_CORE)
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 = CABLED_CORE
if(brain)
@@ -185,7 +185,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."
new /mob/living/silicon/ai (loc, laws, brain)
feedback_inc("cyborg_ais_created",1)
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index bf2a6435626..850a436d9db 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -508,7 +508,7 @@
break
if(door_check)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] secures the airlock assembly to the floor.", \
"You start to secure the airlock assembly to the floor...", \
"You hear wrenching.")
@@ -523,7 +523,7 @@
user << "There is another door here!"
else
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] unsecures the airlock assembly from the floor.", \
"You start to unsecure the airlock assembly from the floor...", \
"You hear wrenching.")
@@ -549,7 +549,7 @@
src.name = "wired airlock assembly"
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 )
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] cuts the wires from the airlock assembly.", \
"You start to cut the wires from the airlock assembly...")
@@ -562,7 +562,7 @@
src.name = "secured airlock assembly"
else if(istype(W, /obj/item/weapon/electronics/airlock) && state == 1 )
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src.loc, 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, target = src))
@@ -579,7 +579,7 @@
else if(istype(W, /obj/item/weapon/crowbar) && state == 2 )
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] removes the electronics from the airlock assembly.", \
"You start to remove electronics from the airlock assembly...")
@@ -642,7 +642,7 @@
glass_type = /obj/machinery/door/airlock/glass
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] finishes the airlock.", \
"You start finishing the airlock...")
@@ -697,4 +697,4 @@
else
var/obj/item/stack/sheet/mineral/mineral_path = text2path("/obj/item/stack/sheet/mineral/[mineral]")
new mineral_path(T, 2)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 7209637f484..7311da106e4 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -20,7 +20,7 @@
add_fingerprint(user)
if(istype(W, /obj/item/weapon/screwdriver))
if(state == GIRDER_DISPLACED)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] disassembles the girder.", \
"You start to disassemble the girder...", "You hear clanking and banging noises.")
if(do_after(user, 40/W.toolspeed, target = src))
@@ -32,7 +32,7 @@
M.add_fingerprint(user)
qdel(src)
else if(state == GIRDER_REINF)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user << "You start unsecuring support struts..."
if(do_after(user, 40/W.toolspeed, target = src))
if(state != GIRDER_REINF)
@@ -45,7 +45,7 @@
if(!isfloorturf(loc))
user << "A floor must be present to secure the girder!"
return
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user << "You start securing the girder..."
if(do_after(user, 40/W.toolspeed, target = src))
user << "You secure the girder."
@@ -53,7 +53,7 @@
transfer_fingerprints_to(G)
qdel(src)
else if(state == GIRDER_NORMAL && can_displace)
- playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user << "You start unsecuring the girder..."
if(do_after(user, 40/W.toolspeed, target = src))
user << "You unsecure the girder."
@@ -78,7 +78,7 @@
qdel(src)
else if(istype(W, /obj/item/weapon/wirecutters) && state == GIRDER_REINF_STRUTS)
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user << "You start removing support struts..."
if(do_after(user, 40/W.toolspeed, target = src))
user << "You remove the support struts."
@@ -316,7 +316,7 @@
else if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0,user))
- playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
user << "You start slicing apart the girder..."
if(do_after(user, 40/W.toolspeed, target = src))
if( !WT.isOn() )
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index a3b1b12d7a9..01a68a0ff97 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -80,11 +80,11 @@
add_fingerprint(user)
if(istype(W, /obj/item/weapon/wirecutters))
if(!shock(user, 100))
- playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
deconstruct()
else if((istype(W, /obj/item/weapon/screwdriver)) && (isturf(loc) || anchored))
if(!shock(user, 90))
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
anchored = !anchored
user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \
"You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.")
diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm
index 170b709328e..4e8af420a9b 100644
--- a/code/game/objects/structures/showcase.dm
+++ b/code/game/objects/structures/showcase.dm
@@ -45,16 +45,16 @@
if(istype(W, /obj/item/weapon/screwdriver) && !anchored)
if(deconstruction_state == SHOWCASE_SCREWDRIVERED)
user << "You screw the screws back into the showcase."
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
deconstruction_state = SHOWCASE_CONSTRUCTED
else if (deconstruction_state == SHOWCASE_CONSTRUCTED)
user << "You unscrew the screws."
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
deconstruction_state = SHOWCASE_SCREWDRIVERED
if(istype(W, /obj/item/weapon/crowbar) && deconstruction_state == SHOWCASE_SCREWDRIVERED)
if(do_after(user, 20/W.toolspeed, target = src))
- playsound(loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
user << "You start to crowbar the showcase apart..."
new /obj/item/stack/sheet/metal (get_turf(src), 4)
qdel(src)
@@ -73,4 +73,4 @@
if(SHOWCASE_SCREWDRIVERED)
user << "The showcase has its screws loosened."
else
- user << "If you see this, something is wrong."
\ No newline at end of file
+ user << "If you see this, something is wrong."
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 7a5f362fb86..ca61f2f7022 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -104,14 +104,14 @@
if(!(flags & NODECONSTRUCT))
if(istype(I, /obj/item/weapon/screwdriver) && deconstruction_ready)
user << "You start disassembling [src]..."
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
if(do_after(user, 20, target = src))
deconstruct(TRUE)
return
if(istype(I, /obj/item/weapon/wrench) && deconstruction_ready)
user << "You start deconstructing [src]..."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
if(do_after(user, 40, target = src))
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
deconstruct(TRUE, 1)
@@ -301,7 +301,7 @@
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(WT.remove_fuel(0, user))
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
if(deconstruction_ready)
user << "You start strengthening the reinforced table..."
if (do_after(user, 50/W.toolspeed, target = src))
@@ -424,7 +424,7 @@
/obj/structure/rack/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)
return
if(user.a_intent == "harm")
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index 13e6ea0570f..bc7ce257f0a 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -101,7 +101,7 @@
if(WD.dir == dir)
user << "There is already a windoor in that location!"
return
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, 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/W.toolspeed, target = src))
@@ -120,7 +120,7 @@
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
else if(istype(W, /obj/item/weapon/wrench) && anchored)
- playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
+ playsound(loc, 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/W.toolspeed, target = src))
@@ -177,7 +177,7 @@
//Removing wire from the assembly. Step 5 undone.
if(istype(W, /obj/item/weapon/wirecutters))
- playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(loc, 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/W.toolspeed, target = src))
@@ -196,7 +196,7 @@
else if(istype(W, /obj/item/weapon/electronics/airlock))
if(!user.drop_item())
return
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly...")
W.loc = src
@@ -215,7 +215,7 @@
if(!electronics)
return
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, 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/W.toolspeed, target = src))
@@ -245,7 +245,7 @@
usr << "The assembly is missing electronics!"
return
usr << browse(null, "window=windoor_access")
- playsound(loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(loc, 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/W.toolspeed, target = src))
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 008ae109c1d..a426f311f8c 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -143,7 +143,7 @@
if(!(flags&NODECONSTRUCT))
if(istype(I, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(loc, I.usesound, 75, 1)
if(reinf && (state == 2 || state == 1))
user << (state == 2 ? "You begin to unscrew the window from the frame..." : "You begin to screw the window to the frame...")
else if(reinf && state == 0)
@@ -168,7 +168,7 @@
else if (istype(I, /obj/item/weapon/crowbar) && reinf && (state == 0 || state == 1))
user << (state == 0 ? "You begin to lever the window into the frame..." : "You begin to lever the window out of the frame...")
- playsound(loc, 'sound/items/Crowbar.ogg', 75, 1)
+ playsound(loc, I.usesound, 75, 1)
if(do_after(user, 40/I.toolspeed, target = src))
//If state was out of frame, put into frame, else do the reverse
state = (state == 0 ? 1 : 0)
@@ -176,7 +176,7 @@
return
else if(istype(I, /obj/item/weapon/wrench) && !anchored)
- playsound(loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(loc, I.usesound, 75, 1)
user << " You begin to disassemble [src]..."
if(do_after(user, 40/I.toolspeed, target = src))
if(qdeleted(src))
diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm
index f4e9934dd27..3a7a9c9339a 100644
--- a/code/game/turfs/simulated/floor/fancy_floor.dm
+++ b/code/game/turfs/simulated/floor/fancy_floor.dm
@@ -18,7 +18,7 @@
user << "You unscrew the planks."
new floor_tile(src)
make_plating()
- playsound(src, 'sound/items/Screwdriver.ogg', 80, 1)
+ playsound(src, C.usesound, 80, 1)
return
/turf/open/floor/wood/cold
@@ -140,4 +140,4 @@
/turf/open/floor/fakespace/New()
..()
- icon_state = "[rand(0,25)]"
\ No newline at end of file
+ icon_state = "[rand(0,25)]"
diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm
index 1c7ee6a608a..882833f1079 100644
--- a/code/game/turfs/simulated/wall/reinf_walls.dm
+++ b/code/game/turfs/simulated/wall/reinf_walls.dm
@@ -63,7 +63,7 @@
switch(d_state)
if(0)
if (istype(W, /obj/item/weapon/wirecutters))
- playsound(src, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
src.d_state = 1
update_icon()
user << "You cut the outer grille."
@@ -72,7 +72,7 @@
if(1)
if (istype(W, /obj/item/weapon/screwdriver))
user << "You begin removing the support lines..."
- playsound(src, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(do_after(user, 40, target = src))
if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T )
@@ -103,7 +103,7 @@
if( WT.remove_fuel(0,user) )
user << "You begin slicing through the metal cover..."
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(do_after(user, 60, target = src))
if( !istype(src, /turf/closed/wall/r_wall) || !user || !WT || !WT.isOn() || !T )
@@ -134,7 +134,7 @@
if (istype(W, /obj/item/weapon/crowbar))
user << "You struggle to pry off the cover..."
- playsound(src, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(do_after(user, 100, target = src))
if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T )
@@ -150,7 +150,7 @@
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)
+ playsound(src, W.usesound, 100, 1)
if(do_after(user, 40, target = src))
if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T )
@@ -168,7 +168,7 @@
if( WT.remove_fuel(0,user) )
user << "You begin slicing through the support rods..."
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(do_after(user, 100, target = src))
if( !istype(src, /turf/closed/wall/r_wall) || !user || !WT || !WT.isOn() || !T )
@@ -199,7 +199,7 @@
if( istype(W, /obj/item/weapon/crowbar) )
user << "You struggle to pry off the outer sheath..."
- playsound(src, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(do_after(user, 100, target = src))
if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T )
@@ -223,4 +223,4 @@
/turf/closed/wall/r_wall/singularity_pull(S, current_size)
if(current_size >= STAGE_FIVE)
if(prob(30))
- dismantle_wall()
\ No newline at end of file
+ dismantle_wall()
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index e3760fcd446..9e8a747be88 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -176,7 +176,7 @@
var/obj/item/weapon/weldingtool/WT = W
if( WT.remove_fuel(0,user) )
user << "You begin slicing through the outer plating..."
- playsound(src, 'sound/items/Welder.ogg', 100, 1)
+ playsound(src, W.usesound, 100, 1)
if(do_after(user, slicing_duration/W.toolspeed, target = src))
if(!iswallturf(src) || !user || !WT || !WT.isOn() || !T)
return 1
@@ -268,4 +268,3 @@
/turf/closed/wall/acid_melt()
dismantle_wall(1)
-
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index f73dc6b4cc9..17328a60e68 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -631,14 +631,14 @@
switch(buildstage)
if(2)
if(istype(W, /obj/item/weapon/wirecutters) && panel_open && wires.is_all_cut())
- playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
user << "You cut the final wires."
new /obj/item/stack/cable_coil(loc, 5)
buildstage = 1
update_icon()
return
else if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up.
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
panel_open = !panel_open
user << "The wires have been [panel_open ? "exposed" : "unexposed"]."
update_icon()
@@ -660,7 +660,7 @@
if(istype(W, /obj/item/weapon/crowbar))
user.visible_message("[user.name] removes the electronics from [src.name].",\
"You start prying out the circuit...")
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
if (do_after(user, 20/W.toolspeed, target = src))
if (buildstage == 1)
user <<"You remove the air alarm electronics."
@@ -701,7 +701,7 @@
if(istype(W, /obj/item/weapon/wrench))
user << "You detach \the [src] from the wall."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
new /obj/item/wallframe/airalarm( user.loc )
qdel(src)
return
@@ -730,4 +730,4 @@
if(!disassembled)
I.obj_integrity = I.max_integrity * 0.5
new /obj/item/stack/cable_coil(loc, 3)
- qdel(src)
\ No newline at end of file
+ qdel(src)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index 2a62684c873..f188c91b3f6 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -40,7 +40,7 @@
if(istype(I, /obj/item/weapon/screwdriver))
var/new_setting = "Heater"
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
if(build_path == initial(heater.build_path))
newtype = freezer
new_setting = "Freezer"
diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm
index eea162ee3ca..58eb0891ee2 100644
--- a/code/modules/jobs/job_types/engineering.dm
+++ b/code/modules/jobs/job_types/engineering.dm
@@ -29,7 +29,7 @@ Chief Engineer
name = "Chief Engineer"
id = /obj/item/weapon/card/id/silver
- belt = /obj/item/weapon/storage/belt/utility/full
+ belt = /obj/item/weapon/storage/belt/utility/chief/full
l_pocket = /obj/item/device/pda/heads/ce
ears = /obj/item/device/radio/headset/heads/ce
uniform = /obj/item/clothing/under/rank/chief_engineer
@@ -125,4 +125,4 @@ Atmospheric Technician
dufflebag = /obj/item/weapon/storage/backpack/dufflebag/engineering
box = /obj/item/weapon/storage/box/engineer
pda_slot = slot_l_store
- backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
\ No newline at end of file
+ backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1)
diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm
index 63a58a5f705..4e12d7c2fab 100644
--- a/code/modules/mob/living/simple_animal/bot/construction.dm
+++ b/code/modules/mob/living/simple_animal/bot/construction.dm
@@ -174,7 +174,7 @@
if(8)
if(istype(W, /obj/item/weapon/screwdriver))
- playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
var/turf/T = get_turf(user)
user << "You start attaching the gun to the frame..."
sleep(40)
@@ -460,4 +460,4 @@
overlays -= "hs_arm"
new /obj/item/bodypart/l_arm/robot(get_turf(src))
user << "You remove the robot arm from [src]."
- build_step--
\ No newline at end of file
+ build_step--
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index e66f9992800..8f959443ddd 100644
--- a/code/modules/paperwork/paper_cutter.dm
+++ b/code/modules/paperwork/paper_cutter.dm
@@ -55,7 +55,7 @@
update_icon()
return
if(istype(P, /obj/item/weapon/screwdriver) && storedcutter)
- playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src, P.usesound, 50, 1)
user << "\The [storedcutter] has been [cuttersecured ? "unsecured" : "secured"]."
cuttersecured = !cuttersecured
return
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index e25ef50c5a4..79475cd0469 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -378,7 +378,7 @@
if (terminal)
user << "Disconnect the wires first!"
return
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, W.usesound, 50, 1)
user << "You are trying to remove the power control board..." //lpeters - fixed grammar issues
if(do_after(user, 50/W.toolspeed, target = src))
if (has_electronics==1)
@@ -430,12 +430,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)
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)
user << "You unfasten the electronics."
else /* has_electronics==0 */
user << "There is nothing to secure!"
diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm
index ccae16644f3..55e4f0c87d2 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -190,7 +190,7 @@ var/const/GRAV_NEEDS_WRENCH = 3
if(GRAV_NEEDS_SCREWDRIVER)
if(istype(I, /obj/item/weapon/screwdriver))
user << "You secure the screws of the framework."
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, I.usesound, 50, 1)
broken_state++
update_icon()
return
@@ -220,7 +220,7 @@ var/const/GRAV_NEEDS_WRENCH = 3
if(GRAV_NEEDS_WRENCH)
if(istype(I, /obj/item/weapon/wrench))
user << "You secure the plating to the framework."
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, I.usesound, 75, 1)
set_fix()
return
return ..()
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 9584b5487a6..fb62d3c5960 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -62,7 +62,7 @@
switch(stage)
if(1)
if(istype(W, /obj/item/weapon/wrench))
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, W.usesound, 75, 1)
usr << "You begin deconstructing [src]..."
if (!do_after(usr, 30/W.toolspeed, target = src))
return
@@ -102,13 +102,13 @@
new /obj/item/stack/cable_coil(get_turf(loc), 1, "red")
user.visible_message("[user.name] removes the wiring from [src].", \
"You remove the wiring from [src].", "You hear clicking.")
- playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
+ playsound(loc, W.usesound, 100, 1)
return
if(istype(W, /obj/item/weapon/screwdriver))
user.visible_message("[user.name] closes [src]'s casing.", \
"You close [src]'s casing.", "You hear screwing.")
- playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
+ playsound(loc, W.usesound, 75, 1)
switch(fixture_type)
if("tube")
newlight = new /obj/machinery/light/built(loc)
@@ -328,7 +328,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.loc, W.usesound, 75, 1)
user.visible_message("[user.name] opens [src]'s casing.", \
"You open [src]'s casing.", "You hear a noise.")
deconstruct()
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 0eea1f23925..2d9fa7036d5 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -241,7 +241,7 @@ display round(lastgen) and plasmatank amount
return
else if(istype(O, /obj/item/weapon/screwdriver))
panel_open = !panel_open
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, O.usesound, 50, 1)
if(panel_open)
user << "You open the access panel."
else
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 6b19344e683..78faf820177 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -212,10 +212,10 @@
anchored = !anchored
if(anchored)
user.visible_message("[user] wrenches the solar assembly into place.", "You wrench the solar assembly into place.")
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, W.usesound, 75, 1)
else
user.visible_message("[user] unwrenches the solar assembly from its place.", "You unwrench the solar assembly from its place.")
- playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
+ playsound(src.loc, W.usesound, 75, 1)
return 1
if(istype(W, /obj/item/stack/sheet/glass) || istype(W, /obj/item/stack/sheet/rglass))
@@ -277,7 +277,7 @@
var/lastgen = 0
var/track = 0 // 0= off 1=timed 2=auto (tracker)
var/trackrate = 600 // 300-900 seconds
- var/nexttime = 0 // time for a panel to rotate of 1° in manual tracking
+ var/nexttime = 0 // time for a panel to rotate of 1 degree in manual tracking
var/obj/machinery/power/tracker/connected_tracker = null
var/list/connected_panels = list()
@@ -416,7 +416,7 @@
/obj/machinery/power/solar_control/attackby(obj/item/I, mob/user, params)
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/I.toolspeed, target = src))
if (src.stat & BROKEN)
user << "The broken glass falls out."
@@ -474,9 +474,9 @@
connected_tracker.unset_control()
if(track==1 && trackrate) //manual tracking and set a rotation speed
- if(nexttime <= world.time) //every time we need to increase/decrease the angle by 1°...
+ if(nexttime <= world.time) //every time we need to increase/decrease the angle by 1�...
targetdir = (targetdir + trackrate/abs(trackrate) + 360) % 360 //... do it
- nexttime += 36000/abs(trackrate) //reset the counter for the next 1°
+ nexttime += 36000/abs(trackrate) //reset the counter for the next 1�
//rotates the panel to the passed angle
/obj/machinery/power/solar_control/proc/set_panels(currentdir)
diff --git a/code/modules/recycling/disposal-structures.dm b/code/modules/recycling/disposal-structures.dm
index 0e8751652fc..4298503adea 100644
--- a/code/modules/recycling/disposal-structures.dm
+++ b/code/modules/recycling/disposal-structures.dm
@@ -696,11 +696,11 @@
if(istype(I, /obj/item/weapon/screwdriver))
if(mode==0)
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."
else if(mode==1)
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."
else if(istype(I,/obj/item/weapon/weldingtool) && mode==1)
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index a532b35573d..74ce440180a 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -505,6 +505,25 @@ datum/design/diagnostic_hud_night
build_path = /obj/item/clothing/glasses/science
category = list("Equipment")
+/datum/design/handdrill
+ name = "Hand Drill"
+ desc = "A small electric hand drill with an interchangable screwdriver and bolt bit"
+ id = "handdrill"
+ req_tech = list("materials" = 4, "engineering" = 6)
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500)
+ build_path = /obj/item/weapon/screwdriver/power
+ category = list("Equipment")
+
+/datum/design/jawsoflife
+ name = "Jaws of Life"
+ desc = "A small, compact Jaws of Life with an interchangable pry jaws and cutting jaws"
+ id = "jawsoflife"
+ req_tech = list("materials" = 4, "engineering" = 6, "magnets" = 6) // added one more requirment since the Jaws of Life are a bit OP
+ build_path = /obj/item/weapon/crowbar/power
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
+
/datum/design/diskplantgene
name = "Plant data disk"
desc = "A disk for storing plant genetic data."
diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi
index 974d473eacd..732f2d2d906 100644
Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index 57bb27f6455..8902386aa60 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index 08c0e0c1d7d..f57be4f9412 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi
index ec2ca29fa8c..8a29fa78ffc 100644
Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index cf34d32c5c0..cd0d3f835ed 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ
diff --git a/sound/items/WelderActivate.ogg b/sound/items/WelderActivate.ogg
new file mode 100644
index 00000000000..5218f2ab1cf
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 00000000000..22ac4f445cb
Binary files /dev/null and b/sound/items/WelderDeactivate.ogg differ
diff --git a/sound/items/change_drill.ogg b/sound/items/change_drill.ogg
new file mode 100644
index 00000000000..406027a5955
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 00000000000..b6a41eca806
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 00000000000..0f8fa631aa1
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 00000000000..82f37cd35bb
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 00000000000..a0bfd855029
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 00000000000..05178bd4663
Binary files /dev/null and b/sound/items/jaws_pry.ogg differ