Ports n' Stuff (#65)
* baykun * spooky lavaland music * deserted sound + burger fix * powertools * forgot * ex d * atom support * Revert "atom support" This reverts commit 5c9790bfef97b3a5b3bf324950de6cbe91af71d9. * ignore atom file for my setup * oh whoops xd
@@ -181,3 +181,5 @@ Temporary Items
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
*.before
|
||||
|
||||
@@ -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 << "<span class='notice'>You start removing [src]'s front panel's screws...</span>"
|
||||
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 << "<span class='notice'>You start removing [src]'s front panel...</span>"
|
||||
playsound(loc, 'sound/items/Crowbar.ogg', 100, 1)
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
if(do_after(user,30/I.toolspeed,target=src))
|
||||
user << "<span class='notice'>You remove [src]'s front panel.</span>"
|
||||
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 << "<span class='notice'>You start cutting [src]'s inner plate...</span>"
|
||||
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 << "<span class='notice'>You start prying off [src]'s inner plate...</span>"
|
||||
playsound(loc, 'sound/items/Crowbar.ogg', 100, 1)
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
if(do_after(user,50/I.toolspeed,target=src))
|
||||
user << "<span class='notice'>You pry off [src]'s inner plate. You can see the core's green glow!</span>"
|
||||
deconstruction_state = NUKESTATE_CORE_EXPOSED
|
||||
|
||||
@@ -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 << "<span class='notice'>You [panel_open ? "open" : "close"] the maintenance hatch of [src].</span>"
|
||||
update_icon()
|
||||
|
||||
@@ -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 = "<span class='notice'>You attach [W] into the assembly's inner circuits.</span>"
|
||||
var/msg2 = "<span class='notice'>[src] already has that upgrade!</span>"
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
panel_open = !panel_open
|
||||
user << "<span class='notice'>You screw the camera's panel [panel_open ? "open" : "closed"].</span>"
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
return
|
||||
|
||||
if(panel_open)
|
||||
|
||||
@@ -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 << "<span class='notice'>You unattach the assembly from its place.</span>"
|
||||
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 << "<span class='notice'>You cut the wires from the circuits.</span>"
|
||||
state = 2
|
||||
return
|
||||
@@ -115,7 +115,7 @@
|
||||
var/obj/U = locate(/obj) in upgrades
|
||||
if(U)
|
||||
user << "<span class='notice'>You unattach an upgrade from the assembly.</span>"
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
U.loc = get_turf(src)
|
||||
upgrades -= U
|
||||
return
|
||||
|
||||
@@ -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 << "<span class='notice'>You start wrenching the frame into place...</span>"
|
||||
if(do_after(user, 20/P.toolspeed, target = src))
|
||||
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||
@@ -21,7 +21,7 @@
|
||||
if(!WT.isOn())
|
||||
user << "<span class='warning'>The welding tool must be on to complete this task!</span>"
|
||||
return
|
||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
user << "<span class='notice'>You start deconstructing the frame...</span>"
|
||||
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 << "<span class='notice'>You start to unfasten the frame...</span>"
|
||||
if(do_after(user, 20/P.toolspeed, target = src))
|
||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||
@@ -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 << "<span class='notice'>You place the circuit board inside the frame.</span>"
|
||||
icon_state = "1"
|
||||
circuit = P
|
||||
@@ -51,12 +51,12 @@
|
||||
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||
|
||||
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 << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||
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 << "<span class='notice'>You remove the circuit board.</span>"
|
||||
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 << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||
state = 1
|
||||
icon_state = "1"
|
||||
@@ -84,7 +84,7 @@
|
||||
user << "<span class='warning'>You need five lengths of cable to wire the frame!</span>"
|
||||
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 << "<span class='notice'>You remove the cables.</span>"
|
||||
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 << "<span class='notice'>You remove the glass panel.</span>"
|
||||
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 << "<span class='notice'>You connect the monitor.</span>"
|
||||
var/obj/B = new src.circuit.build_path (src.loc, circuit)
|
||||
transfer_fingerprints_to(B)
|
||||
|
||||
@@ -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 << "<span class='notice'> You start to disconnect the monitor...</span>"
|
||||
if(do_after(user, 20/I.toolspeed, target = src))
|
||||
deconstruction()
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
user << "<span class='warning'>You need five length of cable to wire the frame!</span>"
|
||||
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("<span class='warning'>[user] disassembles the frame.</span>", \
|
||||
"<span class='notice'>You start to disassemble the frame...</span>", "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 << "<span class='notice'>You start [anchored ? "un" : ""]securing [name]...</span>"
|
||||
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 << "<span class='notice'>You [anchored ? "un" : ""]secure [name].</span>"
|
||||
@@ -105,7 +105,7 @@
|
||||
if(2)
|
||||
if(istype(P, /obj/item/weapon/wrench))
|
||||
user << "<span class='notice'>You start [anchored ? "un" : ""]securing [name]...</span>"
|
||||
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 << "<span class='notice'>You [anchored ? "un" : ""]secure [name].</span>"
|
||||
anchored = !anchored
|
||||
@@ -131,7 +131,7 @@
|
||||
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||
|
||||
if(istype(P, /obj/item/weapon/wirecutters))
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
playsound(src.loc, P.usesound, 50, 1)
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
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)
|
||||
|
||||
@@ -870,7 +870,7 @@ var/list/airlock_overlays = list()
|
||||
beingcrowbarred = 0
|
||||
if(panel_open && charge)
|
||||
user << "<span class='notice'>You carefully start removing [charge] from [src]...</span>"
|
||||
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 << "<span class='warning'>You slip and [charge] detonates!</span>"
|
||||
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.", \
|
||||
"<span class='notice'>You start to remove electronics from the airlock assembly...</span>")
|
||||
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 << "<span class='warning'>The bolts are down, it won't budge!</span>"
|
||||
return
|
||||
|
||||
if(welded)
|
||||
user << "<span class='warning'>It's welded, it won't budge!</span>"
|
||||
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 << "<span class='warning'>Despite your attempts, the [src] refuses to open.</span>"
|
||||
|
||||
/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)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) in ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)")
|
||||
|
||||
@@ -440,7 +440,7 @@
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
if(construction_state == GEAR_SECURE)
|
||||
user.visible_message("<span class='notice'>[user] begins unfastening [src]'s gear...</span>", "<span class='notice'>You begin unfastening [src]'s gear...</span>")
|
||||
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("<span class='notice'>[user] unfastens [src]'s gear!</span>", "<span class='notice'>[src]'s gear shifts slightly with a pop.</span>")
|
||||
@@ -448,7 +448,7 @@
|
||||
construction_state = GEAR_UNFASTENED
|
||||
else if(construction_state == GEAR_UNFASTENED)
|
||||
user.visible_message("<span class='notice'>[user] begins fastening [src]'s gear...</span>", "<span class='notice'>You begin fastening [src]'s gear...</span>")
|
||||
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("<span class='notice'>[user] fastens [src]'s gear!</span>", "<span class='notice'>[src]'s gear shifts back into place.</span>")
|
||||
@@ -463,7 +463,7 @@
|
||||
return 0
|
||||
else if(construction_state == GEAR_UNFASTENED)
|
||||
user.visible_message("<span class='notice'>[user] begins loosening [src]'s gear...</span>", "<span class='notice'>You begin loosening [src]'s gear...</span>")
|
||||
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("<span class='notice'>[user] loosens [src]'s gear!</span>", "<span class='notice'>[src]'s gear pops off and dangles loosely.</span>")
|
||||
@@ -471,7 +471,7 @@
|
||||
construction_state = GEAR_LOOSE
|
||||
else if(construction_state == GEAR_LOOSE)
|
||||
user.visible_message("<span class='notice'>[user] begins tightening [src]'s gear...</span>", "<span class='notice'>You begin tightening [src]'s gear into place...</span>")
|
||||
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("<span class='notice'>[user] tightens [src]'s gear!</span>", "<span class='notice'>You firmly tighten [src]'s gear into place.</span>")
|
||||
@@ -484,7 +484,7 @@
|
||||
return 1
|
||||
else if(construction_state == GEAR_LOOSE)
|
||||
user.visible_message("<span class='notice'>[user] begins slowly lifting off [src]'s gear...</span>", "<span class='notice'>You slowly begin lifting off [src]'s gear...</span>")
|
||||
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("<span class='notice'>[user] lifts off [src]'s gear, causing it to fall apart!</span>", "<span class='notice'>You lift off [src]'s gear, causing it to fall \
|
||||
|
||||
@@ -246,14 +246,14 @@
|
||||
if(density || operating)
|
||||
user << "<span class='warning'>You need to open the door to access the maintenance panel!</span>"
|
||||
return
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
panel_open = !panel_open
|
||||
user << "<span class='notice'>You [panel_open ? "open":"close"] the maintenance panel of the [src.name].</span>"
|
||||
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].", \
|
||||
"<span class='notice'>You start to remove electronics from the [src.name]...</span>")
|
||||
if(do_after(user,40/I.toolspeed, target = src))
|
||||
|
||||
@@ -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 << "<span class='notice'>The wires have been [panel_open ? "exposed" : "unexposed"].</span>"
|
||||
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].", \
|
||||
"<span class='notice'>You start prying out the circuit...</span>")
|
||||
if(do_after(user, 20/W.toolspeed, target = src))
|
||||
@@ -199,7 +199,7 @@
|
||||
"<span class='notice'>You remove the fire alarm assembly from the wall.</span>")
|
||||
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 ..()
|
||||
|
||||
@@ -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("<span class='notice'>[usr] pries open \the [src].</span>", "<span class='notice'>You pry open \the [src].</span>")
|
||||
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 << "<span class='notice'>You rotate [src].</span>"
|
||||
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 << "<span class='notice'>You begin [anchored ? "un" : ""]securing [name]...</span>"
|
||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
playsound(loc, W.usesound, 50, 1)
|
||||
if(do_after(user, time/W.toolspeed, target = src))
|
||||
user << "<span class='notice'>You [anchored ? "un" : ""]secure [name].</span>"
|
||||
anchored = !anchored
|
||||
|
||||
@@ -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 << "<span class='notice'>You secure the external bolts.</span>"
|
||||
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 << "<span class='notice'>You dismantle the turret construction.</span>"
|
||||
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 << "<span class='notice'>You unfasten the external bolts.</span>"
|
||||
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 << "<span class='notice'>You bolt the metal armor into place.</span>"
|
||||
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 << "<span class='notice'>You remove the turret's metal armor bolts.</span>"
|
||||
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 << "<span class='notice'>You close the internal access hatch.</span>"
|
||||
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 << "<span class='notice'>You open the internal access hatch.</span>"
|
||||
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 << "<span class='notice'>You pry off the turret's exterior armor.</span>"
|
||||
new /obj/item/stack/sheet/metal(loc, 2)
|
||||
build_step = PTURRET_CLOSED
|
||||
|
||||
@@ -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 << "<span class='notice'>You open the panel and expose the wiring.</span>"
|
||||
@@ -228,11 +228,11 @@
|
||||
user << "<span class='warning'>The bolts are covered! Unlocking this would retract the covers.</span>"
|
||||
return
|
||||
if(!anchored && !isinspace())
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user << "<span class='notice'>You secure \the [src] to the floor!</span>"
|
||||
anchored = 1
|
||||
else if(anchored)
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user << "<span class='notice'>You unsecure \the [src] from the floor!</span>"
|
||||
if(active)
|
||||
user << "<span class='notice'>\The [src] shuts off!</span>"
|
||||
@@ -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 << "<span class='notice'>You secure the external reinforcing bolts to the floor.</span>"
|
||||
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 << "<span class='notice'>You undo the external reinforcing bolts.</span>"
|
||||
anchored = 0
|
||||
return
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
user << "<span class='warning'>Turn off [src] before you perform this action!</span>"
|
||||
return 0
|
||||
user.visible_message("<span class='notice'>[user] unscrews [src]'s maintenance panel and begins fiddling with its innards...</span>", "<span class='notice'>You begin resetting [src]...</span>")
|
||||
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("<span class='notice'>[user] refastens [src]'s maintenance panel!</span>", "<span class='notice'>You reset [src] to its factory settings!</span>")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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("<span class='suicide'>[user] is beating \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.</span>")
|
||||
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 << "<span class='notice'>You attach the screw driver bit to the [src].</span>"
|
||||
user.unEquip(src)
|
||||
user.put_in_active_hand(s_drill)
|
||||
qdel(src)
|
||||
|
||||
obj/item/weapon/wrench/power/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[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("<span class='suicide'>[user] is praying to the medical wrench to take \his soul. It looks like \he's trying to commit suicide.</span>")
|
||||
@@ -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("<span class='suicide'>[user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is stabbing the [src.name] into \his heart! It looks like \he's trying to commit suicide.</span>"))
|
||||
user.visible_message(pick("<span class='suicide'>[user] is stabbing the [src] into \his temple! It looks like \he's trying to commit suicide.</span>", \
|
||||
"<span class='suicide'>[user] is stabbing the [src] into \his heart! It looks like \he's trying to commit suicide.</span>"))
|
||||
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("<span class='suicide'>[user] is putting the [src] up to \his temple, it looks like they're trying to commit suicide</span>")
|
||||
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 << "<span class='notice'>You attach the bolt driver bit to the [src].</span>"
|
||||
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("<span class='suicide'>[user] is cutting at \his arteries with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is cutting at \his arteries with the [src]! It looks like \he's trying to commit suicide.</span>")
|
||||
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("<span class='suicide'>[user] is the [src] around \his neck, it looks like \he's trying to rip \his head off!</span>")
|
||||
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("<span class='suicide'>[user] doesn't have a head to cutt off, but dies anyway.</span>")
|
||||
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 << "<span class='notice'>You attach the pry jaws to the [src].</span>"
|
||||
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 << "<span class='notice'>You switch [src] on.</span>"
|
||||
playsound(loc, acti_sound, 50, 1)
|
||||
force = 15
|
||||
damtype = "fire"
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
@@ -389,6 +481,7 @@
|
||||
else
|
||||
if(!message)
|
||||
user << "<span class='notice'>You switch [src] off.</span>"
|
||||
playsound(loc, deac_sound, 50, 1)
|
||||
else
|
||||
user << "<span class='warning'>[src] shuts off!</span>"
|
||||
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("<span class='suicide'>[user] is beating \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
user.visible_message("<span class='suicide'>[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.</span>")
|
||||
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("<span class='suicide'>[user] is putting his head in the [src], it looks like \he's trying to commit suicide!</span>")
|
||||
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 << "<span class='notice'>You attach the cutting jaws to the [src].</span>"
|
||||
user.unEquip(src)
|
||||
user.put_in_active_hand(cutjaws)
|
||||
qdel(src)
|
||||
@@ -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 << "<span class='notice'>You start wrenching the frame into place...</span>"
|
||||
if(do_after(user, 20/P.toolspeed, target = src))
|
||||
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||
@@ -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 << "<span class='notice'>You start to unfasten the frame...</span>"
|
||||
if(do_after(user, 20/P.toolspeed, target = src))
|
||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||
@@ -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 << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||
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 << "<span class='notice'>You remove the circuit board.</span>"
|
||||
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 << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||
state = 1
|
||||
icon_state = "1"
|
||||
@@ -95,7 +95,7 @@
|
||||
if (brain)
|
||||
user << "<span class='warning'>Get that brain out of there first!</span>"
|
||||
else
|
||||
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
playsound(loc, P.usesound, 50, 1)
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
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 << "<span class='notice'>You remove the brain.</span>"
|
||||
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 << "<span class='notice'>You remove the glass panel.</span>"
|
||||
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 << "<span class='notice'>You connect the monitor.</span>"
|
||||
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].", \
|
||||
"<span class='notice'>You start to [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor...</span>")
|
||||
switch(anchored)
|
||||
|
||||
@@ -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.", \
|
||||
"<span class='notice'>You start to secure the airlock assembly to the floor...</span>", \
|
||||
"<span class='italics'>You hear wrenching.</span>")
|
||||
@@ -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.", \
|
||||
"<span class='notice'>You start to unsecure the airlock assembly from the floor...</span>", \
|
||||
"<span class='italics'>You hear wrenching.</span>")
|
||||
@@ -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.", \
|
||||
"<span class='notice'>You start to cut the wires from the airlock assembly...</span>")
|
||||
|
||||
@@ -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.", \
|
||||
"<span class='notice'>You start to install electronics into the airlock assembly...</span>")
|
||||
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.", \
|
||||
"<span class='notice'>You start to remove electronics from the airlock assembly...</span>")
|
||||
|
||||
@@ -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.", \
|
||||
"<span class='notice'>You start to install [G.name] into the airlock assembly...</span>")
|
||||
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.", \
|
||||
"<span class='notice'>You start to install [G.name] into the airlock assembly...</span>")
|
||||
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.", \
|
||||
"<span class='notice'>You start finishing the airlock...</span>")
|
||||
|
||||
|
||||
@@ -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("<span class='warning'>[user] disassembles the girder.</span>", \
|
||||
"<span class='notice'>You start to disassemble the girder...</span>", "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 << "<span class='notice'>You start unsecuring support struts...</span>"
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
if(state != GIRDER_REINF)
|
||||
@@ -43,7 +43,7 @@
|
||||
if(!istype(loc, /turf/open/floor))
|
||||
user << "<span class='warning'>A floor must be present to secure the girder!</span>"
|
||||
return
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
||||
playsound(src.loc, W.usesound, 100, 1)
|
||||
user << "<span class='notice'>You start securing the girder...</span>"
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
user << "<span class='notice'>You secure the girder.</span>"
|
||||
@@ -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 << "<span class='notice'>You start unsecuring the girder...</span>"
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
user << "<span class='notice'>You unsecure the girder.</span>"
|
||||
@@ -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 << "<span class='notice'>You start removing support struts...</span>"
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
user << "<span class='notice'>You remove the support struts.</span>"
|
||||
@@ -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 << "<span class='notice'>You start slicing apart the girder...</span>"
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
if( !WT.isOn() )
|
||||
|
||||
@@ -45,16 +45,16 @@
|
||||
if(istype(W, /obj/item/weapon/screwdriver) && !anchored)
|
||||
if(deconstruction_state == SHOWCASE_SCREWDRIVERED)
|
||||
user << "<span class='notice'>You screw the screws back into the showcase.</span>"
|
||||
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 << "<span class='notice'>You unscrew the screws.</span>"
|
||||
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 << "<span class='notice'>You start to crowbar the showcase apart...</span>"
|
||||
new /obj/item/stack/sheet/metal (get_turf(src), 4)
|
||||
qdel(src)
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
return
|
||||
if(disassembling)
|
||||
user << "<span class='notice'>You start disassembling [src]...</span>"
|
||||
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 << "<span class='notice'>You start strengthening the reinforced table...</span>"
|
||||
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
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
if(WD.dir == dir)
|
||||
user << "<span class='warning'>There is already a windoor in that location!</span>"
|
||||
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.", "<span class='notice'>You start to secure the windoor assembly to the floor...</span>")
|
||||
|
||||
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.", "<span class='notice'>You start to unsecure the windoor assembly to the floor...</span>")
|
||||
|
||||
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.", "<span class='notice'>You start to cut the wires from airlock assembly...</span>")
|
||||
|
||||
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.", "<span class='notice'>You start to install electronics into the airlock assembly...</span>")
|
||||
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.", "<span class='notice'>You start to uninstall electronics from the airlock assembly...</span>")
|
||||
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
@@ -245,7 +245,7 @@
|
||||
usr << "<span class='warning'>The assembly is missing electronics!</span>"
|
||||
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.", "<span class='notice'>You start prying the windoor into the frame...</span>")
|
||||
|
||||
if(do_after(user, 40/W.toolspeed, target = src))
|
||||
|
||||
@@ -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 ? "<span class='notice'>You begin to unscrew the window from the frame...</span>" : "<span class='notice'>You begin to screw the window to the frame...</span>")
|
||||
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 ? "<span class='notice'>You begin to lever the window into the frame...</span>" : "<span class='notice'>You begin to lever the window out of the frame...</span>")
|
||||
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 << "<span class='notice'> You begin to disassemble [src]...</span>"
|
||||
if(do_after(user, 40/I.toolspeed, target = src))
|
||||
if(qdeleted(src))
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
user << "<span class='danger'>You unscrew the planks.</span>"
|
||||
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
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if( WT.remove_fuel(0,user) )
|
||||
user << "<span class='notice'>You begin slicing through the outer plating...</span>"
|
||||
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
|
||||
|
||||
@@ -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 << "<span class='notice'>You cut the outer grille.</span>"
|
||||
@@ -74,7 +74,7 @@
|
||||
if(1)
|
||||
if (istype(W, /obj/item/weapon/screwdriver))
|
||||
user << "<span class='notice'>You begin removing the support lines...</span>"
|
||||
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 << "<span class='notice'>You begin slicing through the metal cover...</span>"
|
||||
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 << "<span class='notice'>You begin slicing through the metal cover...</span>"
|
||||
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 << "<span class='notice'>You struggle to pry off the cover...</span>"
|
||||
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 << "<span class='notice'>You start loosening the anchoring bolts which secure the support rods to their frame...</span>"
|
||||
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 << "<span class='notice'>You begin slicing through the support rods...</span>"
|
||||
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 << "<span class='notice'>You begin slicing through the support rods...</span>"
|
||||
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 << "<span class='notice'>You struggle to pry off the outer sheath...</span>"
|
||||
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 )
|
||||
|
||||
@@ -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 << "<span class='notice'>You cut the final wires.</span>"
|
||||
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 << "<span class='notice'>The wires have been [panel_open ? "exposed" : "unexposed"].</span>"
|
||||
update_icon()
|
||||
@@ -642,7 +642,7 @@
|
||||
if(istype(W, /obj/item/weapon/crowbar))
|
||||
user.visible_message("[user.name] removes the electronics from [src.name].",\
|
||||
"<span class='notice'>You start prying out the circuit...</span>")
|
||||
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 <<"<span class='notice'>You remove the air alarm electronics.</span>"
|
||||
@@ -683,7 +683,7 @@
|
||||
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
user << "<span class='notice'>You detach \the [src] from the wall.</span>"
|
||||
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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 ///////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
@@ -196,4 +196,10 @@
|
||||
name = "rat burger"
|
||||
desc = "Pretty much what you'd expect..."
|
||||
icon_state = "ratburger"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
|
||||
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)
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 << "<span class='notice'>You start attaching the gun to the frame...</span>"
|
||||
sleep(40)
|
||||
|
||||
@@ -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 << "<span class='notice'>\The [storedcutter] has been [cuttersecured ? "unsecured" : "secured"].</span>"
|
||||
cuttersecured = !cuttersecured
|
||||
return
|
||||
|
||||
@@ -373,7 +373,7 @@
|
||||
if (terminal)
|
||||
user << "<span class='warning'>Disconnect the wires first!</span>"
|
||||
return
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
user << "<span class='notice'>You are trying to remove the power control board...</span>" //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 << "<span class='notice'>You screw the circuit electronics into place.</span>"
|
||||
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 << "<span class='notice'>You unfasten the electronics.</span>"
|
||||
else /* has_electronics==0 */
|
||||
user << "<span class='warning'>There is nothing to secure!</span>"
|
||||
|
||||
@@ -186,7 +186,7 @@ var/const/GRAV_NEEDS_WRENCH = 3
|
||||
if(GRAV_NEEDS_SCREWDRIVER)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
user << "<span class='notice'>You secure the screws of the framework.</span>"
|
||||
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 << "<span class='notice'>You secure the plating to the framework.</span>"
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
||||
playsound(src.loc, I.usesound, 75, 1)
|
||||
set_fix()
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -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 << "<span class='notice'>You begin deconstructing [src]...</span>"
|
||||
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].", \
|
||||
"<span class='notice'>You remove the wiring from [src].</span>", "<span class='italics'>You hear clicking.</span>")
|
||||
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.", \
|
||||
"<span class='notice'>You close [src]'s casing.</span>", "<span class='italics'>You hear screwing.</span>")
|
||||
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.", \
|
||||
"<span class='notice'>You open [src]'s casing.</span>", "<span class='italics'>You hear a noise.</span>")
|
||||
var/obj/machinery/light_construct/newlight = null
|
||||
|
||||
@@ -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 << "<span class='notice'>You open the access panel.</span>"
|
||||
else
|
||||
|
||||
@@ -236,10 +236,10 @@
|
||||
anchored = !anchored
|
||||
if(anchored)
|
||||
user.visible_message("[user] wrenches the solar assembly into place.", "<span class='notice'>You wrench the solar assembly into place.</span>")
|
||||
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.", "<span class='notice'>You unwrench the solar assembly from its place.</span>")
|
||||
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 << "<span class='notice'>The broken glass falls out.</span>"
|
||||
|
||||
@@ -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 << "<span class='notice'>You remove the screws around the power connection.</span>"
|
||||
else if(mode==1)
|
||||
mode=0
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
playsound(src.loc, I.usesound, 50, 1)
|
||||
user << "<span class='notice'>You attach the screws around the power connection.</span>"
|
||||
|
||||
else if(istype(I,/obj/item/weapon/weldingtool) && mode==1)
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 115 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 11 KiB |