diff --git a/.gitignore b/.gitignore
index 03c121e080..b563ac3f98 100644
--- a/.gitignore
+++ b/.gitignore
@@ -181,3 +181,5 @@ Temporary Items
.apdisk
*.before
+
+.atom-build.json
\ No newline at end of file
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 349dfda037..ee18eee594 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -83,7 +83,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
@@ -93,7 +93,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
@@ -102,7 +102,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))
@@ -113,7 +113,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 f7b172a445..58a8729df0 100644
--- a/code/game/machinery/announcement_system.dm
+++ b/code/game/machinery/announcement_system.dm
@@ -78,7 +78,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 649dc556fe..852bc2a070 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -126,7 +126,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!"
@@ -134,7 +134,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 d51fee69c7..7b15b7f53e 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -41,7 +41,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)
@@ -71,7 +71,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(usr, "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)
@@ -96,7 +96,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
@@ -115,7 +115,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
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 852d4a6582..ab84b1612c 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."
@@ -21,7 +21,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
@@ -31,7 +31,7 @@
qdel(src)
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."
@@ -40,7 +40,7 @@
if(istype(P, /obj/item/weapon/circuitboard/computer) && !circuit)
if(!user.drop_item())
return
- playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You place the circuit board inside the frame."
icon_state = "1"
circuit = P
@@ -51,12 +51,12 @@
user << "This frame does not accept circuit boards of this type!"
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You screw the circuit board into place."
state = 2
icon_state = "2"
if(istype(P, /obj/item/weapon/crowbar) && circuit)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the circuit board."
state = 1
icon_state = "0"
@@ -65,7 +65,7 @@
circuit = null
if(2)
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You unfasten the circuit board."
state = 1
icon_state = "1"
@@ -84,7 +84,7 @@
user << "You need five lengths of cable to wire the frame!"
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"
@@ -108,14 +108,14 @@
src.icon_state = "4"
if(4)
if(istype(P, /obj/item/weapon/crowbar))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(src.loc, P.usesound, 50, 1)
user << "You remove the glass panel."
state = 3
icon_state = "3"
var/obj/item/stack/sheet/glass/G = new (loc, 2)
G.add_fingerprint(user)
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 ca867853fa..5523e47e8e 100644
--- a/code/game/machinery/computer/computer.dm
+++ b/code/game/machinery/computer/computer.dm
@@ -96,7 +96,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))
deconstruction()
diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm
index 327abfaa09..5bd38111bd 100644
--- a/code/game/machinery/constructable_frame.dm
+++ b/code/game/machinery/constructable_frame.dm
@@ -85,7 +85,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))
@@ -96,7 +96,7 @@
qdel(src)
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]."
@@ -105,7 +105,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
@@ -131,7 +131,7 @@
user << "This frame does not accept circuit boards of this type!"
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"
@@ -140,7 +140,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)
@@ -163,7 +163,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.construction()
for(var/obj/O in new_machine.component_parts)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 1afec0c473..d5999d7de8 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -870,7 +870,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)
@@ -882,7 +882,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))
@@ -937,6 +937,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 [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)")
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 53de5f9dd7..afa989a290 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -440,7 +440,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.")
@@ -448,7 +448,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.")
@@ -463,7 +463,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.")
@@ -471,7 +471,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.")
@@ -484,7 +484,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 c63ea2149d..771b900d1e 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -246,14 +246,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 36abdb51fd..44a005e231 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -134,7 +134,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()
@@ -153,7 +153,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)
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil()
coil.amount = 5
coil.loc = user.loc
@@ -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 ..()
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index ae8e248240..6824ebe611 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -338,7 +338,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
@@ -347,7 +347,7 @@ Class Procs:
. = istype(C) && (panel_open || ignore_panel) && !(flags & NODECONSTRUCT)
if(.)
deconstruction()
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, C.usesound, 50, 1)
var/obj/structure/frame/machine/M = new /obj/structure/frame/machine(loc)
transfer_fingerprints_to(M)
M.state = 2
@@ -358,7 +358,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
@@ -372,7 +372,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
@@ -381,7 +381,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 4e92cf434d..5ac7b22e2e 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 345dfec445..8b32b15698 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -202,7 +202,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."
@@ -228,11 +228,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!"
@@ -417,13 +417,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 09d255e1a3..8229882e29 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -21,6 +21,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s
var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default
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 c35b04a34b..59f0e9fdbc 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 0488a20426..410d1d19f5 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -34,6 +34,22 @@
/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 65a47d5537..7925a50ca0 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -24,13 +24,14 @@
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")
toolspeed = 1
/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)
@@ -46,6 +47,32 @@
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."
@@ -53,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.")
@@ -102,11 +129,12 @@
materials = list(MAT_METAL=75)
attack_verb = list("stabbed")
hitsound = 'sound/weapons/bladeslice.ogg'
+ usesound = 'sound/items/Screwdriver.ogg'
toolspeed = 1
/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)
@@ -135,11 +163,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
/*
@@ -160,6 +217,7 @@
origin_tech = "materials=1;engineering=1"
attack_verb = list("pinched", "nipped")
hitsound = 'sound/items/Wirecutter.ogg'
+ usesound = 'sound/items/Wirecutter.ogg'
toolspeed = 1
/obj/item/weapon/wirecutters/New(loc, var/param_color = null)
@@ -182,7 +240,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)
@@ -199,6 +257,36 @@
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
*/
@@ -213,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
@@ -378,6 +469,7 @@
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'
@@ -389,6 +481,7 @@
else
if(!message)
user << "You switch [src] off."
+ playsound(loc, deac_sound, 50, 1)
else
user << "[src] shuts off!"
force = 3
@@ -514,6 +607,7 @@
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
@@ -525,7 +619,7 @@
toolspeed = 1
/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)
@@ -555,5 +649,30 @@
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)
\ No newline at end of file
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 85fe324eca..d9d0a95e1b 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -17,7 +17,7 @@
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(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."
@@ -39,7 +39,7 @@
return
if(1)
if(istype(P, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(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."
@@ -56,13 +56,13 @@
P.loc = src
return
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You screw the circuit board into place."
state = 2
icon_state = "2"
return
if(istype(P, /obj/item/weapon/crowbar) && circuit)
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You remove the circuit board."
state = 1
icon_state = "0"
@@ -71,7 +71,7 @@
return
if(2)
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
- playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You unfasten the circuit board."
state = 1
icon_state = "1"
@@ -95,7 +95,7 @@
if (brain)
user << "Get that brain out of there first!"
else
- playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You remove the cables."
state = 2
icon_state = "2"
@@ -163,7 +163,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.loc = loc
brain = null
@@ -172,7 +172,7 @@
if(4)
if(istype(P, /obj/item/weapon/crowbar))
- playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
+ playsound(loc, P.usesound, 50, 1)
user << "You remove the glass panel."
state = 3
if (brain)
@@ -183,7 +183,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)
@@ -202,7 +202,7 @@
if(istype(A, /obj/item/device/aicard))//Is it?
A.transfer_ai("INACTIVE","AICARD",src,user)
else if(istype(A, /obj/item/weapon/wrench))
- playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
+ playsound(loc, A.usesound, 50, 1)
user.visible_message("[user] [anchored ? "fastens" : "unfastens"] [src].", \
"You start to [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor...")
switch(anchored)
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index 2941bf9c3c..a7b0226321 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -517,7 +517,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.")
@@ -532,7 +532,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.")
@@ -558,7 +558,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...")
@@ -571,7 +571,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))
@@ -588,7 +588,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...")
@@ -610,7 +610,7 @@
if(G)
if(G.get_amount() >= 1)
if(istype(G, /obj/item/stack/sheet/rglass) || istype(G, /obj/item/stack/sheet/glass))
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", \
"You start to install [G.name] into the airlock assembly...")
if(do_after(user, 40, target = src))
@@ -638,7 +638,7 @@
else if(istype(G, /obj/item/stack/sheet/mineral))
var/M = G.sheettype
if(G.get_amount() >= 2)
- playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
+ playsound(src.loc, W.usesound, 100, 1)
user.visible_message("[user] adds [G.name] to the airlock assembly.", \
"You start to install [G.name] into the airlock assembly...")
if(do_after(user, 40, target = src))
@@ -651,7 +651,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...")
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index ed54a36736..b57859331b 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -18,7 +18,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))
@@ -30,7 +30,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)
@@ -43,7 +43,7 @@
if(!istype(loc, /turf/open/floor))
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."
@@ -51,7 +51,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."
@@ -76,7 +76,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."
@@ -334,7 +334,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/showcase.dm b/code/game/objects/structures/showcase.dm
index 170b709328..f6b85d537c 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)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 7def710169..c16605b126 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -227,7 +227,7 @@
return
if(disassembling)
user << "You start disassembling [src]..."
- playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
+ playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20, target = src))
new frame(src.loc)
for(var/i = 1, i <= buildstackamount, i++)
@@ -350,7 +350,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))
@@ -496,7 +496,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)
rack_destroy()
return
if(user.a_intent == "harm")
@@ -610,4 +610,3 @@
R.add_fingerprint(user)
qdel(src)
return
-
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index f9289288eb..a22fb1c8b7 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 58f3de3d68..045bd9bbf1 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -191,7 +191,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)
@@ -216,7 +216,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)
@@ -224,7 +224,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 e339189cf5..a868ddc4fc 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
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 90875a5cb5..002a4f1d8a 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -177,7 +177,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( !istype(src, /turf/closed/wall) || !user || !WT || !WT.isOn() || !T )
return 1
diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm
index 0212e8f32d..fd7c428865 100644
--- a/code/game/turfs/simulated/walls_reinforced.dm
+++ b/code/game/turfs/simulated/walls_reinforced.dm
@@ -65,7 +65,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."
@@ -74,7 +74,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 )
@@ -105,7 +105,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 )
@@ -120,7 +120,7 @@
if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) )
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 || !W || !T )
@@ -136,7 +136,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 )
@@ -152,7 +152,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 )
@@ -170,7 +170,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 )
@@ -185,7 +185,7 @@
if( istype(W, /obj/item/weapon/gun/energy/plasmacutter) )
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, 70, target = src))
if( !istype(src, /turf/closed/wall/r_wall) || !user || !W || !T )
@@ -201,7 +201,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 )
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index aa10961a8f..34bdf16a73 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -612,7 +612,7 @@
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."
var/obj/item/stack/cable_coil/cable = new /obj/item/stack/cable_coil(loc)
cable.amount = 5
@@ -620,7 +620,7 @@
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()
@@ -642,7 +642,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."
@@ -683,7 +683,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
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index de9f37bb4a..4c4d91022e 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -37,7 +37,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/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm
index d006bfb6ee..b225b736d7 100644
--- a/code/modules/food_and_drinks/food/snacks/meat.dm
+++ b/code/modules/food_and_drinks/food/snacks/meat.dm
@@ -190,6 +190,23 @@
icon_state = "meatwheat_clump"
bitesize = 4
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon
+ name = "raw piece of bacon"
+ desc = "A raw piece of bacon."
+ icon_state = "bacon"
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/bacon
+ bitesize = 2
+ list_reagents = list("nutriment" = 1)
+ filling_color = "#B22222"
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/bacon
+ name = "piece of bacon"
+ desc = "A delicious piece of bacon."
+ icon_state = "baconcooked"
+ list_reagents = list("nutriment" = 2)
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ filling_color = "#854817"
+
////////////////////////////////////// MEAT STEAKS ///////////////////////////////////////////////////////////
diff --git a/code/modules/food_and_drinks/food/snacks_burgers.dm b/code/modules/food_and_drinks/food/snacks_burgers.dm
index 061a28d6c9..7aebb685cd 100644
--- a/code/modules/food_and_drinks/food/snacks_burgers.dm
+++ b/code/modules/food_and_drinks/food/snacks_burgers.dm
@@ -196,4 +196,10 @@
name = "rat burger"
desc = "Pretty much what you'd expect..."
icon_state = "ratburger"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
\ No newline at end of file
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/burger/baconburger
+ name = "bacon burger"
+ desc = "The perfect combination of all things American."
+ icon_state = "baconburger"
+ bonus_reagents = list("nutriment" = 8, "vitamin" = 1)
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
index 96d32d3902..a2f4389558 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
@@ -73,6 +73,10 @@
input = /obj/item/weapon/reagent_containers/food/snacks/meat/slab
output = /obj/item/weapon/reagent_containers/food/snacks/faggot
+/datum/food_processor_process/bacon
+ input = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet
+ output = /obj/item/weapon/reagent_containers/food/snacks/meat/rawbacon
+
/datum/food_processor_process/sweetpotato
input = /obj/item/weapon/reagent_containers/food/snacks/grown/potato/sweet
output = /obj/item/weapon/reagent_containers/food/snacks/yakiimo
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm
index 8b70e10f14..9db8cb7006 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm
@@ -252,4 +252,15 @@
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/rat
+ category = CAT_FOOD
+
+/datum/crafting_recipe/food/baconburger
+ name = "Bacon Burger"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/meat/bacon = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/bun = 1
+ )
+
+ result = /obj/item/weapon/reagent_containers/food/snacks/burger/baconburger
category = CAT_FOOD
\ No newline at end of file
diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm
index 03ecc1e671..7114a8b13d 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
diff --git a/code/modules/mining/lavaland/lavaland_areas.dm b/code/modules/mining/lavaland/lavaland_areas.dm
index d87b231061..f77a278ef8 100644
--- a/code/modules/mining/lavaland/lavaland_areas.dm
+++ b/code/modules/mining/lavaland/lavaland_areas.dm
@@ -9,7 +9,7 @@
icon_state = "explored"
music = null
requires_power = 1
- ambientsounds = list('sound/ambience/ambimine.ogg')
+ ambientsounds = list('sound/ambience/ambilava.ogg')
/area/lavaland/underground
name = "Lavaland Caves"
@@ -21,7 +21,7 @@
power_environ = 0
power_equip = 0
power_light = 0
- ambientsounds = list('sound/ambience/ambimine.ogg')
+ ambientsounds = list('sound/ambience/ambilava.ogg')
/area/lavaland/surface/outdoors
diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm
index cc05c51103..4db80c3bac 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)
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index 88d12fbd1c..965322a3ce 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 ed590a2496..9df9e9337c 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -373,7 +373,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)
@@ -425,12 +425,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 4e6059ae5d..79a7990a40 100644
--- a/code/modules/power/gravitygenerator.dm
+++ b/code/modules/power/gravitygenerator.dm
@@ -186,7 +186,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
@@ -216,7 +216,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 97855e2e16..fbf343381d 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -58,7 +58,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
@@ -98,13 +98,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)
@@ -308,7 +308,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.")
var/obj/machinery/light_construct/newlight = null
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 9b602af5ea..02ba3df07e 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 67c4e44821..9a88564a0e 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -236,10 +236,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))
@@ -438,7 +438,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."
diff --git a/code/modules/recycling/disposal-structures.dm b/code/modules/recycling/disposal-structures.dm
index 5e116c89d7..283369a5d1 100644
--- a/code/modules/recycling/disposal-structures.dm
+++ b/code/modules/recycling/disposal-structures.dm
@@ -751,11 +751,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 92e8647ee4..48f33cff94 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -434,6 +434,26 @@ 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)
+ category = list("Equipment")
+
/datum/design/diskplantgene
name = "Plant data disk"
desc = "A disk for storing plant genetic data."
diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm
index 108b2f320f..7e43f0c611 100644
--- a/code/modules/shuttle/emergency.dm
+++ b/code/modules/shuttle/emergency.dm
@@ -326,8 +326,16 @@
launch_status = ENDGAME_LAUNCHED
timer = world.time
priority_announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority")
+ for(var/mob/Player in mob_list)
+ if(!istype(Player,/mob/living/silicon || /mob/living/simple_animal))
+ if(Player.mind)
+ if(Player.stat != DEAD && !isbrain(Player))
+ if(Player.z != 2)
+ Player << sound('sound/ambience/deserted.ogg', repeat = 0, wait = 0, volume = 50, channel = 1)
+
if(SHUTTLE_ESCAPE)
+
if(time_left <= 50 && !end_sound_played) //4 seconds left:Hyperspace trip completed. - should sync up with the landing
end_sound_played = 1 //Only rev them up once.
for(var/area/shuttle/escape/E in world)
diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi
index c8f507d1ae..4806e76ffd 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 41449fa3df..672ec85d4c 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 9f249c233f..592e42e0b7 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 872acd78a8..5d5e99aaba 100644
Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ
diff --git a/icons/obj/food/burgerbread.dmi b/icons/obj/food/burgerbread.dmi
index b7e1165b67..6947e03398 100644
Binary files a/icons/obj/food/burgerbread.dmi and b/icons/obj/food/burgerbread.dmi differ
diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi
index 3165c60ff0..afaf6b89c2 100644
Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index cf34d32c5c..cd0d3f835e 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ
diff --git a/sound/ambience/ambilava.ogg b/sound/ambience/ambilava.ogg
new file mode 100644
index 0000000000..51b788b2aa
Binary files /dev/null and b/sound/ambience/ambilava.ogg differ
diff --git a/sound/ambience/deserted.ogg b/sound/ambience/deserted.ogg
new file mode 100644
index 0000000000..88f574d01c
Binary files /dev/null and b/sound/ambience/deserted.ogg differ
diff --git a/sound/items/WelderActivate.ogg b/sound/items/WelderActivate.ogg
new file mode 100644
index 0000000000..5218f2ab1c
Binary files /dev/null and b/sound/items/WelderActivate.ogg differ
diff --git a/sound/items/WelderDeactivate.ogg b/sound/items/WelderDeactivate.ogg
new file mode 100644
index 0000000000..22ac4f445c
Binary files /dev/null and b/sound/items/WelderDeactivate.ogg differ
diff --git a/sound/items/change_drill.ogg b/sound/items/change_drill.ogg
new file mode 100644
index 0000000000..406027a595
Binary files /dev/null and b/sound/items/change_drill.ogg differ
diff --git a/sound/items/change_jaws.ogg b/sound/items/change_jaws.ogg
new file mode 100644
index 0000000000..b6a41eca80
Binary files /dev/null and b/sound/items/change_jaws.ogg differ
diff --git a/sound/items/drill_hit.ogg b/sound/items/drill_hit.ogg
new file mode 100644
index 0000000000..0f8fa631aa
Binary files /dev/null and b/sound/items/drill_hit.ogg differ
diff --git a/sound/items/drill_use.ogg b/sound/items/drill_use.ogg
new file mode 100644
index 0000000000..82f37cd35b
Binary files /dev/null and b/sound/items/drill_use.ogg differ
diff --git a/sound/items/jaws_cut.ogg b/sound/items/jaws_cut.ogg
new file mode 100644
index 0000000000..a0bfd85502
Binary files /dev/null and b/sound/items/jaws_cut.ogg differ
diff --git a/sound/items/jaws_pry.ogg b/sound/items/jaws_pry.ogg
new file mode 100644
index 0000000000..05178bd466
Binary files /dev/null and b/sound/items/jaws_pry.ogg differ