mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-15 12:42:50 +00:00
Updates Tools
Adds toolspeed var, which is a multiplier on how 'fast' the tool works. 0.5 means it goes twice as fast. Adds usesound var, which determines what sound is used when a tool is being used. Changes a lot of code to use those two vars instead. Adds 'ayyy' tools, which are ported from /tg/'s abductor gamemode. They're currently admin only but I might make them obtainable by xenoarch later. Adds powertools, also from /tg/. CE starts with them in a new toolbelt that spawns in their locker, ported from (you guessed it) /tg/. Changes welder sprites to look nicer, ported yet again from /tg/. Modified the blue welder slightly so it can be the electric welder sprite. Adds various sounds from /tg/, for tools and welders.
This commit is contained in:
@@ -89,11 +89,11 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/binary/circulator/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/machinery/atmospherics/binary/circulator/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
user.visible_message("[user.name] [anchored ? "secures" : "unsecures"] the bolts holding [src.name] to the floor.", \
|
user.visible_message("[user.name] [anchored ? "secures" : "unsecures"] the bolts holding [src.name] to the floor.", \
|
||||||
"You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.", \
|
"You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.", \
|
||||||
"You hear a ratchet")
|
"You hear a ratchet.")
|
||||||
|
|
||||||
if(anchored)
|
if(anchored)
|
||||||
if(dir & (NORTH|SOUTH))
|
if(dir & (NORTH|SOUTH))
|
||||||
|
|||||||
@@ -11,15 +11,15 @@
|
|||||||
desc = "A one-way air valve that can be used to regulate input or output pressure, and flow rate. Does not require power."
|
desc = "A one-way air valve that can be used to regulate input or output pressure, and flow rate. Does not require power."
|
||||||
|
|
||||||
use_power = 0
|
use_power = 0
|
||||||
|
|
||||||
var/unlocked = 0 //If 0, then the valve is locked closed, otherwise it is open(-able, it's a one-way valve so it closes if gas would flow backwards).
|
var/unlocked = 0 //If 0, then the valve is locked closed, otherwise it is open(-able, it's a one-way valve so it closes if gas would flow backwards).
|
||||||
var/target_pressure = ONE_ATMOSPHERE
|
var/target_pressure = ONE_ATMOSPHERE
|
||||||
var/max_pressure_setting = 15000 //kPa
|
var/max_pressure_setting = 15000 //kPa
|
||||||
var/set_flow_rate = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
|
var/set_flow_rate = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
|
||||||
var/regulate_mode = REGULATE_OUTPUT
|
var/regulate_mode = REGULATE_OUTPUT
|
||||||
|
|
||||||
var/flowing = 0 //for icons - becomes zero if the valve closes itself due to regulation mode
|
var/flowing = 0 //for icons - becomes zero if the valve closes itself due to regulation mode
|
||||||
|
|
||||||
var/frequency = 0
|
var/frequency = 0
|
||||||
var/id = null
|
var/id = null
|
||||||
var/datum/radio_frequency/radio_connection
|
var/datum/radio_frequency/radio_connection
|
||||||
@@ -46,9 +46,9 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/binary/passive_gate/process()
|
/obj/machinery/atmospherics/binary/passive_gate/process()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
last_flow_rate = 0
|
last_flow_rate = 0
|
||||||
|
|
||||||
if(!unlocked)
|
if(!unlocked)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -61,35 +61,35 @@
|
|||||||
pressure_delta = input_starting_pressure - target_pressure
|
pressure_delta = input_starting_pressure - target_pressure
|
||||||
if (REGULATE_OUTPUT)
|
if (REGULATE_OUTPUT)
|
||||||
pressure_delta = target_pressure - output_starting_pressure
|
pressure_delta = target_pressure - output_starting_pressure
|
||||||
|
|
||||||
//-1 if pump_gas() did not move any gas, >= 0 otherwise
|
//-1 if pump_gas() did not move any gas, >= 0 otherwise
|
||||||
var/returnval = -1
|
var/returnval = -1
|
||||||
if((regulate_mode == REGULATE_NONE || pressure_delta > 0.01) && (air1.temperature > 0 || air2.temperature > 0)) //since it's basically a valve, it makes sense to check both temperatures
|
if((regulate_mode == REGULATE_NONE || pressure_delta > 0.01) && (air1.temperature > 0 || air2.temperature > 0)) //since it's basically a valve, it makes sense to check both temperatures
|
||||||
flowing = 1
|
flowing = 1
|
||||||
|
|
||||||
//flow rate limit
|
//flow rate limit
|
||||||
var/transfer_moles = (set_flow_rate/air1.volume)*air1.total_moles
|
var/transfer_moles = (set_flow_rate/air1.volume)*air1.total_moles
|
||||||
|
|
||||||
//Figure out how much gas to transfer to meet the target pressure.
|
//Figure out how much gas to transfer to meet the target pressure.
|
||||||
switch (regulate_mode)
|
switch (regulate_mode)
|
||||||
if (REGULATE_INPUT)
|
if (REGULATE_INPUT)
|
||||||
transfer_moles = min(transfer_moles, calculate_transfer_moles(air2, air1, pressure_delta, (network1)? network1.volume : 0))
|
transfer_moles = min(transfer_moles, calculate_transfer_moles(air2, air1, pressure_delta, (network1)? network1.volume : 0))
|
||||||
if (REGULATE_OUTPUT)
|
if (REGULATE_OUTPUT)
|
||||||
transfer_moles = min(transfer_moles, calculate_transfer_moles(air1, air2, pressure_delta, (network2)? network2.volume : 0))
|
transfer_moles = min(transfer_moles, calculate_transfer_moles(air1, air2, pressure_delta, (network2)? network2.volume : 0))
|
||||||
|
|
||||||
//pump_gas() will return a negative number if no flow occurred
|
//pump_gas() will return a negative number if no flow occurred
|
||||||
returnval = pump_gas_passive(src, air1, air2, transfer_moles)
|
returnval = pump_gas_passive(src, air1, air2, transfer_moles)
|
||||||
|
|
||||||
if (returnval >= 0)
|
if (returnval >= 0)
|
||||||
if(network1)
|
if(network1)
|
||||||
network1.update = 1
|
network1.update = 1
|
||||||
|
|
||||||
if(network2)
|
if(network2)
|
||||||
network2.update = 1
|
network2.update = 1
|
||||||
|
|
||||||
if (last_flow_rate)
|
if (last_flow_rate)
|
||||||
flowing = 1
|
flowing = 1
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
|
|
||||||
// this is the data which will be sent to the ui
|
// this is the data which will be sent to the ui
|
||||||
var/data[0]
|
var/data[0]
|
||||||
|
|
||||||
data = list(
|
data = list(
|
||||||
"on" = unlocked,
|
"on" = unlocked,
|
||||||
"pressure_set" = round(target_pressure*100), //Nano UI can't handle rounded non-integers, apparently.
|
"pressure_set" = round(target_pressure*100), //Nano UI can't handle rounded non-integers, apparently.
|
||||||
@@ -203,16 +203,16 @@
|
|||||||
|
|
||||||
/obj/machinery/atmospherics/binary/passive_gate/Topic(href,href_list)
|
/obj/machinery/atmospherics/binary/passive_gate/Topic(href,href_list)
|
||||||
if(..()) return 1
|
if(..()) return 1
|
||||||
|
|
||||||
if(href_list["toggle_valve"])
|
if(href_list["toggle_valve"])
|
||||||
unlocked = !unlocked
|
unlocked = !unlocked
|
||||||
|
|
||||||
if(href_list["regulate_mode"])
|
if(href_list["regulate_mode"])
|
||||||
switch(href_list["regulate_mode"])
|
switch(href_list["regulate_mode"])
|
||||||
if ("off") regulate_mode = REGULATE_NONE
|
if ("off") regulate_mode = REGULATE_NONE
|
||||||
if ("input") regulate_mode = REGULATE_INPUT
|
if ("input") regulate_mode = REGULATE_INPUT
|
||||||
if ("output") regulate_mode = REGULATE_OUTPUT
|
if ("output") regulate_mode = REGULATE_OUTPUT
|
||||||
|
|
||||||
switch(href_list["set_press"])
|
switch(href_list["set_press"])
|
||||||
if ("min")
|
if ("min")
|
||||||
target_pressure = 0
|
target_pressure = 0
|
||||||
@@ -221,7 +221,7 @@
|
|||||||
if ("set")
|
if ("set")
|
||||||
var/new_pressure = input(usr,"Enter new output pressure (0-[max_pressure_setting]kPa)","Pressure Control",src.target_pressure) as num
|
var/new_pressure = input(usr,"Enter new output pressure (0-[max_pressure_setting]kPa)","Pressure Control",src.target_pressure) as num
|
||||||
src.target_pressure = between(0, new_pressure, max_pressure_setting)
|
src.target_pressure = between(0, new_pressure, max_pressure_setting)
|
||||||
|
|
||||||
switch(href_list["set_flow_rate"])
|
switch(href_list["set_flow_rate"])
|
||||||
if ("min")
|
if ("min")
|
||||||
set_flow_rate = 0
|
set_flow_rate = 0
|
||||||
@@ -230,7 +230,7 @@
|
|||||||
if ("set")
|
if ("set")
|
||||||
var/new_flow_rate = input(usr,"Enter new flow rate limit (0-[air1.volume]kPa)","Flow Rate Control",src.set_flow_rate) as num
|
var/new_flow_rate = input(usr,"Enter new flow rate limit (0-[air1.volume]kPa)","Flow Rate Control",src.set_flow_rate) as num
|
||||||
src.set_flow_rate = between(0, new_flow_rate, air1.volume)
|
src.set_flow_rate = between(0, new_flow_rate, air1.volume)
|
||||||
|
|
||||||
usr.set_machine(src) //Is this even needed with NanoUI?
|
usr.set_machine(src) //Is this even needed with NanoUI?
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
@@ -248,9 +248,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -86,6 +86,7 @@
|
|||||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
|
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
|
||||||
|
|
||||||
if(anchored)
|
if(anchored)
|
||||||
@@ -257,6 +258,7 @@
|
|||||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
turbine = null
|
turbine = null
|
||||||
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
|
user << "<span class='notice'>You [anchored ? "secure" : "unsecure"] the bolts holding \the [src] to the floor.</span>"
|
||||||
updateConnection()
|
updateConnection()
|
||||||
|
|||||||
@@ -227,9 +227,9 @@ Thus, the two variables affect pump operation are set in New():
|
|||||||
user << "<span class='warning'>You cannot unwrench this [src], it too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench this [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -91,8 +91,8 @@
|
|||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -142,9 +142,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -137,9 +137,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
air1.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
air1.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
||||||
air2.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
air2.volume = ATMOS_DEFAULT_VOLUME_MIXER
|
||||||
air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5
|
air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5
|
||||||
|
|
||||||
if (!mixing_inputs)
|
if (!mixing_inputs)
|
||||||
mixing_inputs = list(src.air1 = node1_concentration, src.air2 = node2_concentration)
|
mixing_inputs = list(src.air1 = node1_concentration, src.air2 = node2_concentration)
|
||||||
|
|
||||||
@@ -112,9 +112,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -354,9 +354,9 @@
|
|||||||
user << "<span class='warnng'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
user << "<span class='warnng'>You cannot unwrench \the [src], it too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -78,9 +78,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -358,9 +358,9 @@
|
|||||||
var/obj/item/weapon/weldingtool/WT = W
|
var/obj/item/weapon/weldingtool/WT = W
|
||||||
if (WT.remove_fuel(0,user))
|
if (WT.remove_fuel(0,user))
|
||||||
user << "<span class='notice'>Now welding the vent.</span>"
|
user << "<span class='notice'>Now welding the vent.</span>"
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * WT.toolspeed))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
|
playsound(src.loc, WT.usesound, 50, 1)
|
||||||
if(!welded)
|
if(!welded)
|
||||||
user.visible_message("<span class='notice'>\The [user] welds the vent shut.</span>", "<span class='notice'>You weld the vent shut.</span>", "You hear welding.")
|
user.visible_message("<span class='notice'>\The [user] welds the vent shut.</span>", "<span class='notice'>You weld the vent shut.</span>", "You hear welding.")
|
||||||
welded = 1
|
welded = 1
|
||||||
@@ -407,9 +407,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -278,9 +278,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -298,9 +298,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -90,9 +90,9 @@
|
|||||||
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
user << "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>"
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return 1
|
return 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -142,6 +142,14 @@
|
|||||||
#define DEFAULT_TABLE_MATERIAL "plastic"
|
#define DEFAULT_TABLE_MATERIAL "plastic"
|
||||||
#define DEFAULT_WALL_MATERIAL "steel"
|
#define DEFAULT_WALL_MATERIAL "steel"
|
||||||
|
|
||||||
|
#define MAT_STEEL "steel"
|
||||||
|
#define MAT_GLASS "glass"
|
||||||
|
#define MAT_SILVER "silver"
|
||||||
|
#define MAT_GOLD "gold"
|
||||||
|
#define MAT_TITANIUM "titanium"
|
||||||
|
#define MAT_PHORON "phoron"
|
||||||
|
#define MAT_DIAMOND "diamond"
|
||||||
|
|
||||||
#define SHARD_SHARD "shard"
|
#define SHARD_SHARD "shard"
|
||||||
#define SHARD_SHRAPNEL "shrapnel"
|
#define SHARD_SHRAPNEL "shrapnel"
|
||||||
#define SHARD_STONE_PIECE "piece"
|
#define SHARD_STONE_PIECE "piece"
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/weldingtool/spell
|
/obj/item/weapon/weldingtool/spell
|
||||||
name = "flame"
|
name = "flame"
|
||||||
|
eye_safety_modifier = 3
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/spell/process()
|
/obj/item/weapon/weldingtool/spell/process()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
m = min(m, cable.amount)
|
m = min(m, cable.amount)
|
||||||
m = min(m, 30)
|
m = min(m, 30)
|
||||||
if(m)
|
if(m)
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src.loc, O.usesound, 50, 1)
|
||||||
use_cable(m)
|
use_cable(m)
|
||||||
var/obj/item/stack/cable_coil/CC = new (get_turf(src))
|
var/obj/item/stack/cable_coil/CC = new (get_turf(src))
|
||||||
CC.amount = m
|
CC.amount = m
|
||||||
|
|||||||
@@ -67,13 +67,13 @@
|
|||||||
|
|
||||||
/obj/machinery/meter/examine(mob/user)
|
/obj/machinery/meter/examine(mob/user)
|
||||||
var/t = "A gas flow meter. "
|
var/t = "A gas flow meter. "
|
||||||
|
|
||||||
if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/observer/dead)))
|
if(get_dist(user, src) > 3 && !(istype(user, /mob/living/silicon/ai) || istype(user, /mob/observer/dead)))
|
||||||
t += "<span class='warning'>You are too far away to read it.</span>"
|
t += "<span class='warning'>You are too far away to read it.</span>"
|
||||||
|
|
||||||
else if(stat & (NOPOWER|BROKEN))
|
else if(stat & (NOPOWER|BROKEN))
|
||||||
t += "<span class='warning'>The display is off.</span>"
|
t += "<span class='warning'>The display is off.</span>"
|
||||||
|
|
||||||
else if(src.target)
|
else if(src.target)
|
||||||
var/datum/gas_mixture/environment = target.return_air()
|
var/datum/gas_mixture/environment = target.return_air()
|
||||||
if(environment)
|
if(environment)
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
t += "The sensor error light is blinking."
|
t += "The sensor error light is blinking."
|
||||||
else
|
else
|
||||||
t += "The connect error light is blinking."
|
t += "The connect error light is blinking."
|
||||||
|
|
||||||
user << t
|
user << t
|
||||||
|
|
||||||
/obj/machinery/meter/Click()
|
/obj/machinery/meter/Click()
|
||||||
@@ -90,15 +90,15 @@
|
|||||||
if(istype(usr, /mob/living/silicon/ai)) // ghosts can call ..() for examine
|
if(istype(usr, /mob/living/silicon/ai)) // ghosts can call ..() for examine
|
||||||
usr.examinate(src)
|
usr.examinate(src)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||||
if (!istype(W, /obj/item/weapon/wrench))
|
if (!istype(W, /obj/item/weapon/wrench))
|
||||||
return ..()
|
return ..()
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src]...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
"<span class='notice'>\The [user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src].</span>", \
|
"<span class='notice'>You have unfastened \the [src].</span>", \
|
||||||
|
|||||||
@@ -114,6 +114,7 @@
|
|||||||
disconnect()
|
disconnect()
|
||||||
user << "<span class='notice'>You disconnect \the [src] from the port.</span>"
|
user << "<span class='notice'>You disconnect \the [src] from the port.</span>"
|
||||||
update_icon()
|
update_icon()
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc
|
var/obj/machinery/atmospherics/portables_connector/possible_port = locate(/obj/machinery/atmospherics/portables_connector/) in loc
|
||||||
@@ -121,6 +122,7 @@
|
|||||||
if(connect(possible_port))
|
if(connect(possible_port))
|
||||||
user << "<span class='notice'>You connect \the [src] to the port.</span>"
|
user << "<span class='notice'>You connect \the [src] to the port.</span>"
|
||||||
update_icon()
|
update_icon()
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "<span class='notice'>\The [src] failed to connect to the port.</span>"
|
user << "<span class='notice'>\The [src] failed to connect to the port.</span>"
|
||||||
@@ -173,6 +175,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
user.visible_message("<span class='notice'>[user] opens the panel on [src] and removes [cell].</span>", "<span class='notice'>You open the panel on [src] and remove [cell].</span>")
|
user.visible_message("<span class='notice'>[user] opens the panel on [src] and removes [cell].</span>", "<span class='notice'>You open the panel on [src] and remove [cell].</span>")
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
cell.add_fingerprint(user)
|
cell.add_fingerprint(user)
|
||||||
cell.loc = src.loc
|
cell.loc = src.loc
|
||||||
cell = null
|
cell = null
|
||||||
|
|||||||
@@ -211,7 +211,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, I.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>"
|
user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>"
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
panel_open = !panel_open
|
panel_open = !panel_open
|
||||||
user.visible_message("<span class='warning'>[user] screws the camera's panel [panel_open ? "open" : "closed"]!</span>",
|
user.visible_message("<span class='warning'>[user] screws the camera's panel [panel_open ? "open" : "closed"]!</span>",
|
||||||
"<span class='notice'>You screw the camera's panel [panel_open ? "open" : "closed"].</span>")
|
"<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)
|
||||||
|
|
||||||
else if((iswirecutter(W) || ismultitool(W)) && panel_open)
|
else if((iswirecutter(W) || ismultitool(W)) && panel_open)
|
||||||
interact(user)
|
interact(user)
|
||||||
@@ -374,10 +374,10 @@
|
|||||||
|
|
||||||
// Do after stuff here
|
// Do after stuff here
|
||||||
user << "<span class='notice'>You start to weld the [src]..</span>"
|
user << "<span class='notice'>You start to weld the [src]..</span>"
|
||||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(src.loc, WT.usesound, 50, 1)
|
||||||
WT.eyecheck(user)
|
WT.eyecheck(user)
|
||||||
busy = 1
|
busy = 1
|
||||||
if(do_after(user, 100))
|
if(do_after(user, 100 * WT.toolspeed))
|
||||||
busy = 0
|
busy = 0
|
||||||
if(!WT.isOn())
|
if(!WT.isOn())
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
if(0)
|
if(0)
|
||||||
// State 0
|
// State 0
|
||||||
if(iswrench(W) && isturf(src.loc))
|
if(iswrench(W) && isturf(src.loc))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "You wrench the assembly into place."
|
user << "You wrench the assembly into place."
|
||||||
anchored = 1
|
anchored = 1
|
||||||
state = 1
|
state = 1
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(iswrench(W))
|
else if(iswrench(W))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "You unattach the assembly from its place."
|
user << "You unattach the assembly from its place."
|
||||||
anchored = 0
|
anchored = 0
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
if(3)
|
if(3)
|
||||||
// State 3
|
// State 3
|
||||||
if(isscrewdriver(W))
|
if(isscrewdriver(W))
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, W.usesound, 50, 1)
|
||||||
|
|
||||||
var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+using_map.station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_DEFAULT))
|
var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+using_map.station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_DEFAULT))
|
||||||
if(!input)
|
if(!input)
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
else if(iswirecutter(W))
|
else if(iswirecutter(W))
|
||||||
|
|
||||||
new/obj/item/stack/cable_coil(get_turf(src), 2)
|
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."
|
user << "You cut the wires from the circuits."
|
||||||
state = 2
|
state = 2
|
||||||
return
|
return
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
var/obj/U = locate(/obj) in upgrades
|
var/obj/U = locate(/obj) in upgrades
|
||||||
if(U)
|
if(U)
|
||||||
user << "You unattach an upgrade from the assembly."
|
user << "You unattach an upgrade from the assembly."
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
U.loc = get_turf(src)
|
U.loc = get_turf(src)
|
||||||
upgrades -= U
|
upgrades -= U
|
||||||
return
|
return
|
||||||
@@ -161,10 +161,10 @@
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
user << "<span class='notice'>You start to weld the [src]..</span>"
|
user << "<span class='notice'>You start to weld the [src]..</span>"
|
||||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(src.loc, WT.usesound, 50, 1)
|
||||||
WT.eyecheck(user)
|
WT.eyecheck(user)
|
||||||
busy = 1
|
busy = 1
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * WT.toolspeed))
|
||||||
busy = 0
|
busy = 0
|
||||||
if(!WT.isOn())
|
if(!WT.isOn())
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -68,7 +68,7 @@
|
|||||||
|
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
user << "You [anchored ? "attach" : "detach"] the cell charger [anchored ? "to" : "from"] the ground"
|
user << "You [anchored ? "attach" : "detach"] the cell charger [anchored ? "to" : "from"] the ground"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
|
|
||||||
/obj/machinery/cell_charger/attack_hand(mob/user)
|
/obj/machinery/cell_charger/attack_hand(mob/user)
|
||||||
if(charging)
|
if(charging)
|
||||||
|
|||||||
@@ -234,7 +234,7 @@
|
|||||||
connected = null
|
connected = null
|
||||||
else
|
else
|
||||||
anchored = 1
|
anchored = 1
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
if(anchored)
|
if(anchored)
|
||||||
user.visible_message("[user] secures [src] to the floor.", "You secure [src] to the floor.")
|
user.visible_message("[user] secures [src] to the floor.", "You secure [src] to the floor.")
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
switch(state)
|
switch(state)
|
||||||
if(0)
|
if(0)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
user << "<span class='notice'>You wrench the frame into place.</span>"
|
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||||
anchored = 1
|
anchored = 1
|
||||||
state = 1
|
state = 1
|
||||||
@@ -25,16 +25,16 @@
|
|||||||
if(!WT.isOn())
|
if(!WT.isOn())
|
||||||
user << "The welder must be on for this task."
|
user << "The welder must be on for this task."
|
||||||
return
|
return
|
||||||
playsound(loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(loc, WT.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * WT.toolspeed))
|
||||||
if(!src || !WT.remove_fuel(0, user)) return
|
if(!src || !WT.remove_fuel(0, user)) return
|
||||||
user << "<span class='notice'>You deconstruct the frame.</span>"
|
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||||
new /obj/item/stack/material/plasteel( loc, 4)
|
new /obj/item/stack/material/plasteel( loc, 4)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
if(1)
|
if(1)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||||
anchored = 0
|
anchored = 0
|
||||||
state = 0
|
state = 0
|
||||||
@@ -46,12 +46,12 @@
|
|||||||
user.drop_item()
|
user.drop_item()
|
||||||
P.loc = src
|
P.loc = src
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
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>"
|
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
icon_state = "2"
|
icon_state = "2"
|
||||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
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>"
|
user << "<span class='notice'>You remove the circuit board.</span>"
|
||||||
state = 1
|
state = 1
|
||||||
icon_state = "0"
|
icon_state = "0"
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
circuit = null
|
circuit = null
|
||||||
if(2)
|
if(2)
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
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>"
|
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||||
state = 1
|
state = 1
|
||||||
icon_state = "1"
|
icon_state = "1"
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
if (brain)
|
if (brain)
|
||||||
user << "Get that brain out of there first"
|
user << "Get that brain out of there first"
|
||||||
else
|
else
|
||||||
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(loc, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the cables.</span>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
icon_state = "2"
|
icon_state = "2"
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
icon_state = "3b"
|
icon_state = "3b"
|
||||||
|
|
||||||
if(istype(P, /obj/item/weapon/crowbar) && brain)
|
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>"
|
user << "<span class='notice'>You remove the brain.</span>"
|
||||||
brain.loc = loc
|
brain.loc = loc
|
||||||
brain = null
|
brain = null
|
||||||
@@ -154,7 +154,7 @@
|
|||||||
|
|
||||||
if(4)
|
if(4)
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
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>"
|
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||||
state = 3
|
state = 3
|
||||||
if (brain)
|
if (brain)
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
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>"
|
user << "<span class='notice'>You connect the monitor.</span>"
|
||||||
if(!brain)
|
if(!brain)
|
||||||
var/open_for_latejoin = alert(user, "Would you like this core to be open for latejoining AIs?", "Latejoin", "Yes", "Yes", "No") == "Yes"
|
var/open_for_latejoin = alert(user, "Would you like this core to be open for latejoining AIs?", "Latejoin", "Yes", "Yes", "No") == "Yes"
|
||||||
@@ -229,7 +229,8 @@
|
|||||||
else if(istype(W, /obj/item/weapon/wrench))
|
else if(istype(W, /obj/item/weapon/wrench))
|
||||||
if(anchored)
|
if(anchored)
|
||||||
user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
|
user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
|
||||||
if(!do_after(user,40))
|
playsound(src, W.usesound, 50, 1)
|
||||||
|
if(!do_after(user,40 * W.toolspeed))
|
||||||
user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
|
user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
|
||||||
return
|
return
|
||||||
user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
|
user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
|
||||||
@@ -237,7 +238,8 @@
|
|||||||
return
|
return
|
||||||
else
|
else
|
||||||
user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating...</span>")
|
user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating...</span>")
|
||||||
if(!do_after(user,40))
|
playsound(src, W.usesound, 50, 1)
|
||||||
|
if(!do_after(user,40 * W.toolspeed))
|
||||||
user.visible_message("<span class='notice'>\The [user] decides not to bolt \the [src].</span>")
|
user.visible_message("<span class='notice'>\The [user] decides not to bolt \the [src].</span>")
|
||||||
return
|
return
|
||||||
user.visible_message("<span class='notice'>\The [user] finishes fastening down \the [src]!</span>")
|
user.visible_message("<span class='notice'>\The [user] finishes fastening down \the [src]!</span>")
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
switch(state)
|
switch(state)
|
||||||
if(0)
|
if(0)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
user << "<span class='notice'>You wrench the frame into place.</span>"
|
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||||
src.anchored = 1
|
src.anchored = 1
|
||||||
src.state = 1
|
src.state = 1
|
||||||
@@ -24,16 +24,16 @@
|
|||||||
if(!WT.remove_fuel(0, user))
|
if(!WT.remove_fuel(0, user))
|
||||||
user << "The welding tool must be on to complete this task."
|
user << "The welding tool must be on to complete this task."
|
||||||
return
|
return
|
||||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(src.loc, WT.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * WT.toolspeed))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
user << "<span class='notice'>You deconstruct the frame.</span>"
|
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||||
new /obj/item/stack/material/steel( src.loc, 5 )
|
new /obj/item/stack/material/steel( src.loc, 5 )
|
||||||
qdel(src)
|
qdel(src)
|
||||||
if(1)
|
if(1)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||||
src.anchored = 0
|
src.anchored = 0
|
||||||
src.state = 0
|
src.state = 0
|
||||||
@@ -49,12 +49,12 @@
|
|||||||
else
|
else
|
||||||
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
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>"
|
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||||
src.state = 2
|
src.state = 2
|
||||||
src.icon_state = "2"
|
src.icon_state = "2"
|
||||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
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>"
|
user << "<span class='notice'>You remove the circuit board.</span>"
|
||||||
src.state = 1
|
src.state = 1
|
||||||
src.icon_state = "0"
|
src.icon_state = "0"
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
src.circuit = null
|
src.circuit = null
|
||||||
if(2)
|
if(2)
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
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>"
|
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||||
src.state = 1
|
src.state = 1
|
||||||
src.icon_state = "1"
|
src.icon_state = "1"
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
icon_state = "3"
|
icon_state = "3"
|
||||||
if(3)
|
if(3)
|
||||||
if(istype(P, /obj/item/weapon/wirecutters))
|
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>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
src.state = 2
|
src.state = 2
|
||||||
src.icon_state = "2"
|
src.icon_state = "2"
|
||||||
@@ -101,13 +101,13 @@
|
|||||||
src.icon_state = "4"
|
src.icon_state = "4"
|
||||||
if(4)
|
if(4)
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
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>"
|
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||||
src.state = 3
|
src.state = 3
|
||||||
src.icon_state = "3"
|
src.icon_state = "3"
|
||||||
new /obj/item/stack/material/glass( src.loc, 2 )
|
new /obj/item/stack/material/glass( src.loc, 2 )
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
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>"
|
user << "<span class='notice'>You connect the monitor.</span>"
|
||||||
var/B = new src.circuit.build_path ( src.loc )
|
var/B = new src.circuit.build_path ( src.loc )
|
||||||
src.circuit.construct(B)
|
src.circuit.construct(B)
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
else if(istype(I,/obj/item/weapon/screwdriver))
|
else if(istype(I,/obj/item/weapon/screwdriver))
|
||||||
secured = !secured
|
secured = !secured
|
||||||
user.visible_message("<span class='notice'>The [src] can [secured ? "no longer" : "now"] be modified.</span>")
|
user.visible_message("<span class='notice'>The [src] can [secured ? "no longer" : "now"] be modified.</span>")
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
updateBuildPath()
|
updateBuildPath()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
/*
|
/*
|
||||||
/obj/machinery/computer/pod/attackby(I as obj, user as mob)
|
/obj/machinery/computer/pod/attackby(I as obj, user as mob)
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, W.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20))
|
||||||
if(stat & BROKEN)
|
if(stat & BROKEN)
|
||||||
user << "<span class='notice'>The broken glass falls out.</span>"
|
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||||
|
|||||||
@@ -79,8 +79,8 @@
|
|||||||
switch(state)
|
switch(state)
|
||||||
if(0)
|
if(0)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
user << "<span class='notice'>You wrench the frame into place.</span>"
|
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||||
src.anchored = 1
|
src.anchored = 1
|
||||||
src.state = 1
|
src.state = 1
|
||||||
@@ -89,16 +89,16 @@
|
|||||||
if(!WT.remove_fuel(0, user))
|
if(!WT.remove_fuel(0, user))
|
||||||
user << "The welding tool must be on to complete this task."
|
user << "The welding tool must be on to complete this task."
|
||||||
return
|
return
|
||||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(src.loc, WT.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * WT.toolspeed))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
user << "<span class='notice'>You deconstruct the frame.</span>"
|
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||||
new /obj/item/stack/material/steel( src.loc, 5 )
|
new /obj/item/stack/material/steel( src.loc, 5 )
|
||||||
qdel(src)
|
qdel(src)
|
||||||
if(1)
|
if(1)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||||
src.anchored = 0
|
src.anchored = 0
|
||||||
src.state = 0
|
src.state = 0
|
||||||
@@ -114,12 +114,12 @@
|
|||||||
else
|
else
|
||||||
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
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>"
|
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||||
src.state = 2
|
src.state = 2
|
||||||
src.icon_state = "2"
|
src.icon_state = "2"
|
||||||
if(istype(P, /obj/item/weapon/crowbar) && circuit)
|
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>"
|
user << "<span class='notice'>You remove the circuit board.</span>"
|
||||||
src.state = 1
|
src.state = 1
|
||||||
src.icon_state = "0"
|
src.icon_state = "0"
|
||||||
@@ -127,15 +127,15 @@
|
|||||||
src.circuit = null
|
src.circuit = null
|
||||||
if(2)
|
if(2)
|
||||||
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
|
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>"
|
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||||
src.state = 1
|
src.state = 1
|
||||||
src.icon_state = "1"
|
src.icon_state = "1"
|
||||||
|
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
if(istype(P, /obj/item/weapon/crowbar))
|
||||||
if(battery)
|
if(battery)
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(10))
|
if(do_after(10 * P.toolspeed))
|
||||||
battery.loc = loc
|
battery.loc = loc
|
||||||
user << "<span class='notice'>You remove [battery].</span>"
|
user << "<span class='notice'>You remove [battery].</span>"
|
||||||
battery = null
|
battery = null
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
if(components.len)
|
if(components.len)
|
||||||
user << "There are parts in the way!"
|
user << "There are parts in the way!"
|
||||||
return
|
return
|
||||||
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>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
src.state = 2
|
src.state = 2
|
||||||
src.icon_state = "2"
|
src.icon_state = "2"
|
||||||
@@ -190,13 +190,13 @@
|
|||||||
src.icon_state = "4"
|
src.icon_state = "4"
|
||||||
if(4)
|
if(4)
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
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>"
|
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||||
src.state = 3
|
src.state = 3
|
||||||
src.icon_state = "3"
|
src.icon_state = "3"
|
||||||
new /obj/item/stack/material/glass( src.loc, 2 )
|
new /obj/item/stack/material/glass( src.loc, 2 )
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
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>"
|
user << "<span class='notice'>You connect the monitor.</span>"
|
||||||
var/obj/machinery/computer3/B = new src.circuit.build_path ( src.loc, built=1 )
|
var/obj/machinery/computer3/B = new src.circuit.build_path ( src.loc, built=1 )
|
||||||
/*if(circuit.powernet) B:powernet = circuit.powernet
|
/*if(circuit.powernet) B:powernet = circuit.powernet
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
icon_state = "box_1"
|
icon_state = "box_1"
|
||||||
else
|
else
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
user << "<span class='notice'>You dismantle the frame</span>"
|
user << "<span class='notice'>You dismantle the frame</span>"
|
||||||
new /obj/item/stack/material/steel(src.loc, 5)
|
new /obj/item/stack/material/steel(src.loc, 5)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
user << "<span class='warning'>This frame does not accept circuit boards of this type!</span>"
|
||||||
else
|
else
|
||||||
if(istype(P, /obj/item/weapon/wirecutters))
|
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>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
state = 1
|
state = 1
|
||||||
icon_state = "box_0"
|
icon_state = "box_0"
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
|
|
||||||
if(3)
|
if(3)
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
if(istype(P, /obj/item/weapon/crowbar))
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
state = 2
|
state = 2
|
||||||
circuit.loc = src.loc
|
circuit.loc = src.loc
|
||||||
circuit = null
|
circuit = null
|
||||||
@@ -103,28 +103,28 @@
|
|||||||
component_check = 0
|
component_check = 0
|
||||||
break
|
break
|
||||||
if(component_check)
|
if(component_check)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, src.dir)
|
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, src.dir)
|
||||||
|
|
||||||
if(new_machine.component_parts)
|
if(new_machine.component_parts)
|
||||||
new_machine.component_parts.Cut()
|
new_machine.component_parts.Cut()
|
||||||
else
|
else
|
||||||
new_machine.component_parts = list()
|
new_machine.component_parts = list()
|
||||||
|
|
||||||
src.circuit.construct(new_machine)
|
src.circuit.construct(new_machine)
|
||||||
|
|
||||||
for(var/obj/O in src)
|
for(var/obj/O in src)
|
||||||
if(circuit.contain_parts) // things like disposal don't want their parts in them
|
if(circuit.contain_parts) // things like disposal don't want their parts in them
|
||||||
O.loc = new_machine
|
O.loc = new_machine
|
||||||
else
|
else
|
||||||
O.loc = null
|
O.loc = null
|
||||||
new_machine.component_parts += O
|
new_machine.component_parts += O
|
||||||
|
|
||||||
if(circuit.contain_parts)
|
if(circuit.contain_parts)
|
||||||
circuit.loc = new_machine
|
circuit.loc = new_machine
|
||||||
else
|
else
|
||||||
circuit.loc = null
|
circuit.loc = null
|
||||||
|
|
||||||
new_machine.RefreshParts()
|
new_machine.RefreshParts()
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -761,7 +761,7 @@ About the new airlock wires panel:
|
|||||||
/obj/machinery/door/airlock/proc/can_remove_electronics()
|
/obj/machinery/door/airlock/proc/can_remove_electronics()
|
||||||
return src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN))))
|
return src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN))))
|
||||||
|
|
||||||
/obj/machinery/door/airlock/attackby(C as obj, mob/user as mob)
|
/obj/machinery/door/airlock/attackby(obj/item/C, mob/user as mob)
|
||||||
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
|
//world << text("airlock attackby src [] obj [] mob []", src, C, user)
|
||||||
if(!istype(usr, /mob/living/silicon))
|
if(!istype(usr, /mob/living/silicon))
|
||||||
if(src.isElectrified())
|
if(src.isElectrified())
|
||||||
@@ -781,7 +781,7 @@ About the new airlock wires panel:
|
|||||||
src.welded = 1
|
src.welded = 1
|
||||||
else
|
else
|
||||||
src.welded = null
|
src.welded = null
|
||||||
playsound(src, 'sound/items/Welder.ogg', 75, 1)
|
playsound(src.loc, C.usesound, 75, 1)
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
@@ -792,8 +792,10 @@ About the new airlock wires panel:
|
|||||||
to_chat(usr,"<span class='warning'>The panel is broken and cannot be closed.</span>")
|
to_chat(usr,"<span class='warning'>The panel is broken and cannot be closed.</span>")
|
||||||
else
|
else
|
||||||
src.p_open = 0
|
src.p_open = 0
|
||||||
|
playsound(src, C.usesound, 50, 1)
|
||||||
else
|
else
|
||||||
src.p_open = 1
|
src.p_open = 1
|
||||||
|
playsound(src, C.usesound, 50, 1)
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
else if(istype(C, /obj/item/weapon/wirecutters))
|
else if(istype(C, /obj/item/weapon/wirecutters))
|
||||||
return src.attack_hand(user)
|
return src.attack_hand(user)
|
||||||
@@ -806,9 +808,9 @@ About the new airlock wires panel:
|
|||||||
cable.plugin(src, user)
|
cable.plugin(src, user)
|
||||||
else if(!repairing && istype(C, /obj/item/weapon/crowbar))
|
else if(!repairing && istype(C, /obj/item/weapon/crowbar))
|
||||||
if(can_remove_electronics())
|
if(can_remove_electronics())
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 75, 1)
|
playsound(src, C.usesound, 75, 1)
|
||||||
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.")
|
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.")
|
||||||
if(do_after(user,40))
|
if(do_after(user,40 * C.toolspeed))
|
||||||
to_chat(user,"<span class='notice'>You removed the airlock electronics!</span>")
|
to_chat(user,"<span class='notice'>You removed the airlock electronics!</span>")
|
||||||
|
|
||||||
var/obj/structure/door_assembly/da = new assembly_type(src.loc)
|
var/obj/structure/door_assembly/da = new assembly_type(src.loc)
|
||||||
|
|||||||
@@ -241,8 +241,8 @@
|
|||||||
var/obj/item/weapon/weldingtool/welder = I
|
var/obj/item/weapon/weldingtool/welder = I
|
||||||
if(welder.remove_fuel(0,user))
|
if(welder.remove_fuel(0,user))
|
||||||
user << "<span class='notice'>You start to fix dents and weld \the [repairing] into place.</span>"
|
user << "<span class='notice'>You start to fix dents and weld \the [repairing] into place.</span>"
|
||||||
playsound(src, 'sound/items/Welder.ogg', 100, 1)
|
playsound(src, welder.usesound, 50, 1)
|
||||||
if(do_after(user, 5 * repairing.amount) && welder && welder.isOn())
|
if(do_after(user, (5 * repairing.amount) * welder.toolspeed) && welder && welder.isOn())
|
||||||
user << "<span class='notice'>You finish repairing the damage to \the [src].</span>"
|
user << "<span class='notice'>You finish repairing the damage to \the [src].</span>"
|
||||||
health = between(health, health + repairing.amount*DOOR_REPAIR_AMOUNT, maxhealth)
|
health = between(health, health + repairing.amount*DOOR_REPAIR_AMOUNT, maxhealth)
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -252,7 +252,7 @@
|
|||||||
|
|
||||||
if(repairing && istype(I, /obj/item/weapon/crowbar))
|
if(repairing && istype(I, /obj/item/weapon/crowbar))
|
||||||
user << "<span class='notice'>You remove \the [repairing].</span>"
|
user << "<span class='notice'>You remove \the [repairing].</span>"
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src, I.usesound, 100, 1)
|
||||||
repairing.loc = user.loc
|
repairing.loc = user.loc
|
||||||
repairing = null
|
repairing = null
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -198,12 +198,13 @@
|
|||||||
user.visible_message("<span class='danger'>\The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [W].</span>",\
|
user.visible_message("<span class='danger'>\The [user] [blocked ? "welds" : "unwelds"] \the [src] with \a [W].</span>",\
|
||||||
"You [blocked ? "weld" : "unweld"] \the [src] with \the [W].",\
|
"You [blocked ? "weld" : "unweld"] \the [src] with \the [W].",\
|
||||||
"You hear something being welded.")
|
"You hear something being welded.")
|
||||||
playsound(src, 'sound/items/Welder.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
if(density && istype(C, /obj/item/weapon/screwdriver))
|
if(density && istype(C, /obj/item/weapon/screwdriver))
|
||||||
hatch_open = !hatch_open
|
hatch_open = !hatch_open
|
||||||
|
playsound(src, C.usesound, 50, 1)
|
||||||
user.visible_message("<span class='danger'>[user] has [hatch_open ? "opened" : "closed"] \the [src] maintenance hatch.</span>",
|
user.visible_message("<span class='danger'>[user] has [hatch_open ? "opened" : "closed"] \the [src] maintenance hatch.</span>",
|
||||||
"You have [hatch_open ? "opened" : "closed"] the [src] maintenance hatch.")
|
"You have [hatch_open ? "opened" : "closed"] the [src] maintenance hatch.")
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -217,7 +218,7 @@
|
|||||||
"You start to remove the electronics from [src].")
|
"You start to remove the electronics from [src].")
|
||||||
if(do_after(user,30))
|
if(do_after(user,30))
|
||||||
if(blocked && density && hatch_open)
|
if(blocked && density && hatch_open)
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src, C.usesound, 50, 1)
|
||||||
user.visible_message("<span class='danger'>[user] has removed the electronics from \the [src].</span>",
|
user.visible_message("<span class='danger'>[user] has removed the electronics from \the [src].</span>",
|
||||||
"You have removed the electronics from [src].")
|
"You have removed the electronics from [src].")
|
||||||
|
|
||||||
@@ -262,8 +263,8 @@
|
|||||||
"You hear metal strain.")
|
"You hear metal strain.")
|
||||||
prying = 1
|
prying = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src, C.usesound, 100, 1)
|
||||||
if(do_after(user,30))
|
if(do_after(user,30 * C.toolspeed))
|
||||||
if(istype(C, /obj/item/weapon/crowbar))
|
if(istype(C, /obj/item/weapon/crowbar))
|
||||||
if(stat & (BROKEN|NOPOWER) || !density)
|
if(stat & (BROKEN|NOPOWER) || !density)
|
||||||
user.visible_message("<span class='danger'>\The [user] forces \the [src] [density ? "open" : "closed"] with \a [C]!</span>",\
|
user.visible_message("<span class='danger'>\The [user] forces \the [src] [density ? "open" : "closed"] with \a [C]!</span>",\
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ obj/structure/firedoor_assembly/update_icon()
|
|||||||
else
|
else
|
||||||
icon_state = "door_construction"
|
icon_state = "door_construction"
|
||||||
|
|
||||||
obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob)
|
obj/structure/firedoor_assembly/attackby(obj/item/C, mob/user as mob)
|
||||||
if(istype(C, /obj/item/stack/cable_coil) && !wired && anchored)
|
if(istype(C, /obj/item/stack/cable_coil) && !wired && anchored)
|
||||||
var/obj/item/stack/cable_coil/cable = C
|
var/obj/item/stack/cable_coil/cable = C
|
||||||
if (cable.get_amount() < 1)
|
if (cable.get_amount() < 1)
|
||||||
@@ -27,7 +27,7 @@ obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob)
|
|||||||
user << "<span class='notice'>You wire \the [src].</span>"
|
user << "<span class='notice'>You wire \the [src].</span>"
|
||||||
|
|
||||||
else if(istype(C, /obj/item/weapon/wirecutters) && wired )
|
else if(istype(C, /obj/item/weapon/wirecutters) && wired )
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src.loc, C.usesound, 100, 1)
|
||||||
user.visible_message("[user] cuts the wires from \the [src].", "You start to cut the wires from \the [src].")
|
user.visible_message("[user] cuts the wires from \the [src].", "You start to cut the wires from \the [src].")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40))
|
||||||
@@ -48,7 +48,7 @@ obj/structure/firedoor_assembly/attackby(C as obj, mob/user as mob)
|
|||||||
user << "<span class='warning'>You must secure \the [src] first!</span>"
|
user << "<span class='warning'>You must secure \the [src] first!</span>"
|
||||||
else if(istype(C, /obj/item/weapon/wrench))
|
else if(istype(C, /obj/item/weapon/wrench))
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, C.usesound, 50, 1)
|
||||||
user.visible_message("<span class='warning'>[user] has [anchored ? "" : "un" ]secured \the [src]!</span>",
|
user.visible_message("<span class='warning'>[user] has [anchored ? "" : "un" ]secured \the [src]!</span>",
|
||||||
"You have [anchored ? "" : "un" ]secured \the [src]!")
|
"You have [anchored ? "" : "un" ]secured \the [src]!")
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|||||||
@@ -193,9 +193,9 @@
|
|||||||
|
|
||||||
//If it's opened/emagged, crowbar can pry it out of its frame.
|
//If it's opened/emagged, crowbar can pry it out of its frame.
|
||||||
if (!density && istype(I, /obj/item/weapon/crowbar))
|
if (!density && istype(I, /obj/item/weapon/crowbar))
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src, I.usesound, 50, 1)
|
||||||
user.visible_message("[user] begins prying the windoor out of the frame.", "You start to pry the windoor out of the frame.")
|
user.visible_message("[user] begins prying the windoor out of the frame.", "You start to pry the windoor out of the frame.")
|
||||||
if (do_after(user,40))
|
if (do_after(user,40 * I.toolspeed))
|
||||||
to_chat(user,"<span class='notice'>You pried the windoor out of the frame!</span>")
|
to_chat(user,"<span class='notice'>You pried the windoor out of the frame!</span>")
|
||||||
|
|
||||||
var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc)
|
var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc)
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ var/list/floor_light_cache = list()
|
|||||||
if(!WT.remove_fuel(0, user))
|
if(!WT.remove_fuel(0, user))
|
||||||
user << "<span class='warning'>\The [src] must be on to complete this task.</span>"
|
user << "<span class='warning'>\The [src] must be on to complete this task.</span>"
|
||||||
return
|
return
|
||||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(src.loc, WT.usesound, 50, 1)
|
||||||
if(!do_after(user, 20))
|
if(!do_after(user, 20 * WT.toolspeed))
|
||||||
return
|
return
|
||||||
if(!src || !WT.isOn())
|
if(!src || !WT.isOn())
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -258,8 +258,8 @@
|
|||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
if(state == 0 && !anchored)
|
if(state == 0 && !anchored)
|
||||||
user << "<span class='notice'>You start to wrench the frame into place.</span>"
|
user << "<span class='notice'>You start to wrench the frame into place.</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
anchored = 1
|
anchored = 1
|
||||||
if(!need_circuit && circuit)
|
if(!need_circuit && circuit)
|
||||||
state = 2
|
state = 2
|
||||||
@@ -270,8 +270,8 @@
|
|||||||
user << "<span class='notice'>You wrench the frame into place.</span>"
|
user << "<span class='notice'>You wrench the frame into place.</span>"
|
||||||
|
|
||||||
else if(state == 0 && anchored)
|
else if(state == 0 && anchored)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||||
anchored = 0
|
anchored = 0
|
||||||
|
|
||||||
@@ -279,8 +279,8 @@
|
|||||||
if(state == 0)
|
if(state == 0)
|
||||||
var/obj/item/weapon/weldingtool/WT = P
|
var/obj/item/weapon/weldingtool/WT = P
|
||||||
if(WT.remove_fuel(0, user))
|
if(WT.remove_fuel(0, user))
|
||||||
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * P.toolspeed))
|
||||||
if(src && WT.isOn())
|
if(src && WT.isOn())
|
||||||
user << "<span class='notice'>You deconstruct the frame.</span>"
|
user << "<span class='notice'>You deconstruct the frame.</span>"
|
||||||
new /obj/item/stack/material/steel(src.loc, frame_type.frame_size)
|
new /obj/item/stack/material/steel(src.loc, frame_type.frame_size)
|
||||||
@@ -311,18 +311,18 @@
|
|||||||
else if(istype(P, /obj/item/weapon/screwdriver))
|
else if(istype(P, /obj/item/weapon/screwdriver))
|
||||||
if(state == 1)
|
if(state == 1)
|
||||||
if(need_circuit && circuit)
|
if(need_circuit && circuit)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
user << "<span class='notice'>You screw the circuit board into place.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
|
|
||||||
else if(state == 2)
|
else if(state == 2)
|
||||||
if(need_circuit && circuit)
|
if(need_circuit && circuit)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||||
state = 1
|
state = 1
|
||||||
|
|
||||||
else if(!need_circuit && circuit)
|
else if(!need_circuit && circuit)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You unfasten the outer cover.</span>"
|
user << "<span class='notice'>You unfasten the outer cover.</span>"
|
||||||
state = 0
|
state = 0
|
||||||
|
|
||||||
@@ -334,7 +334,7 @@
|
|||||||
component_check = 0
|
component_check = 0
|
||||||
break
|
break
|
||||||
if(component_check)
|
if(component_check)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
var/obj/machinery/new_machine = new circuit.build_path(src.loc, dir)
|
var/obj/machinery/new_machine = new circuit.build_path(src.loc, dir)
|
||||||
// Handle machines that have allocated default parts in thier constructor.
|
// Handle machines that have allocated default parts in thier constructor.
|
||||||
if(new_machine.component_parts)
|
if(new_machine.component_parts)
|
||||||
@@ -364,7 +364,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(frame_type.frame_class == "alarm")
|
else if(frame_type.frame_class == "alarm")
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You fasten the cover.</span>"
|
user << "<span class='notice'>You fasten the cover.</span>"
|
||||||
var/obj/machinery/B = new circuit.build_path(src.loc)
|
var/obj/machinery/B = new circuit.build_path(src.loc)
|
||||||
B.pixel_x = pixel_x
|
B.pixel_x = pixel_x
|
||||||
@@ -378,7 +378,7 @@
|
|||||||
|
|
||||||
else if(state == 4)
|
else if(state == 4)
|
||||||
if(frame_type.frame_class == "computer")
|
if(frame_type.frame_class == "computer")
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You connect the monitor.</span>"
|
user << "<span class='notice'>You connect the monitor.</span>"
|
||||||
var/obj/machinery/B = new circuit.build_path(src.loc)
|
var/obj/machinery/B = new circuit.build_path(src.loc)
|
||||||
B.pixel_x = pixel_x
|
B.pixel_x = pixel_x
|
||||||
@@ -391,7 +391,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(frame_type.frame_class == "display")
|
else if(frame_type.frame_class == "display")
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You connect the monitor.</span>"
|
user << "<span class='notice'>You connect the monitor.</span>"
|
||||||
var/obj/machinery/B = new circuit.build_path(src.loc)
|
var/obj/machinery/B = new circuit.build_path(src.loc)
|
||||||
B.pixel_x = pixel_x
|
B.pixel_x = pixel_x
|
||||||
@@ -406,7 +406,7 @@
|
|||||||
else if(istype(P, /obj/item/weapon/crowbar))
|
else if(istype(P, /obj/item/weapon/crowbar))
|
||||||
if(state == 1)
|
if(state == 1)
|
||||||
if(need_circuit && circuit)
|
if(need_circuit && circuit)
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the circuit board.</span>"
|
user << "<span class='notice'>You remove the circuit board.</span>"
|
||||||
state = 0
|
state = 0
|
||||||
circuit.forceMove(src.loc)
|
circuit.forceMove(src.loc)
|
||||||
@@ -416,7 +416,7 @@
|
|||||||
|
|
||||||
else if(state == 3)
|
else if(state == 3)
|
||||||
if(frame_type.frame_class == "machine")
|
if(frame_type.frame_class == "machine")
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
if(components.len == 0)
|
if(components.len == 0)
|
||||||
user << "<span class='notice'>There are no components to remove.</span>"
|
user << "<span class='notice'>There are no components to remove.</span>"
|
||||||
else
|
else
|
||||||
@@ -429,13 +429,13 @@
|
|||||||
|
|
||||||
else if(state == 4)
|
else if(state == 4)
|
||||||
if(frame_type.frame_class == "computer")
|
if(frame_type.frame_class == "computer")
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the glass panel.</span>"
|
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||||
state = 3
|
state = 3
|
||||||
new /obj/item/stack/material/glass(src.loc, 2)
|
new /obj/item/stack/material/glass(src.loc, 2)
|
||||||
|
|
||||||
else if(frame_type.frame_class == "display")
|
else if(frame_type.frame_class == "display")
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the glass panel.</span>"
|
user << "<span class='notice'>You remove the glass panel.</span>"
|
||||||
state = 3
|
state = 3
|
||||||
new /obj/item/stack/material/glass(src.loc, 2)
|
new /obj/item/stack/material/glass(src.loc, 2)
|
||||||
@@ -483,25 +483,25 @@
|
|||||||
else if(istype(P, /obj/item/weapon/wirecutters))
|
else if(istype(P, /obj/item/weapon/wirecutters))
|
||||||
if(state == 3)
|
if(state == 3)
|
||||||
if(frame_type.frame_class == "computer")
|
if(frame_type.frame_class == "computer")
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the cables.</span>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||||
|
|
||||||
else if(frame_type.frame_class == "display")
|
else if(frame_type.frame_class == "display")
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the cables.</span>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||||
|
|
||||||
else if(frame_type.frame_class == "alarm")
|
else if(frame_type.frame_class == "alarm")
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the cables.</span>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||||
|
|
||||||
else if(frame_type.frame_class == "machine")
|
else if(frame_type.frame_class == "machine")
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the cables.</span>"
|
user << "<span class='notice'>You remove the cables.</span>"
|
||||||
state = 2
|
state = 2
|
||||||
new /obj/item/stack/cable_coil(src.loc, 5)
|
new /obj/item/stack/cable_coil(src.loc, 5)
|
||||||
|
|||||||
@@ -74,6 +74,7 @@
|
|||||||
if(istype(W, /obj/item/weapon/screwdriver))
|
if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
disable = !disable
|
disable = !disable
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
if(disable)
|
if(disable)
|
||||||
user.visible_message("<span class='warning'>[user] has disabled the [src]!</span>", "<span class='warning'>You disable the connection to the [src].</span>")
|
user.visible_message("<span class='warning'>[user] has disabled the [src]!</span>", "<span class='warning'>You disable the connection to the [src].</span>")
|
||||||
icon_state = "[base_state]-d"
|
icon_state = "[base_state]-d"
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(istype(W, /obj/item/weapon/screwdriver))
|
if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You start to dismantle the IV drip.</span>"
|
user << "<span class='notice'>You start to dismantle the IV drip.</span>"
|
||||||
if(do_after(user, 15))
|
if(do_after(user, 15))
|
||||||
user << "<span class='notice'>You dismantle the IV drip.</span>"
|
user << "<span class='notice'>You dismantle the IV drip.</span>"
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ datum/track/New(var/title_name, var/audio)
|
|||||||
StopPlaying()
|
StopPlaying()
|
||||||
user.visible_message("<span class='warning'>[user] has [anchored ? "un" : ""]secured \the [src].</span>", "<span class='notice'>You [anchored ? "un" : ""]secure \the [src].</span>")
|
user.visible_message("<span class='warning'>[user] has [anchored ? "un" : ""]secured \the [src].</span>", "<span class='notice'>You [anchored ? "un" : ""]secure \the [src].</span>")
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
power_change()
|
power_change()
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
@@ -224,7 +224,7 @@ datum/track/New(var/title_name, var/audio)
|
|||||||
StopPlaying()
|
StopPlaying()
|
||||||
user.visible_message("<span class='warning'>[user] has [anchored ? "un" : ""]secured \the [src].</span>", "<span class='notice'>You [anchored ? "un" : ""]secure \the [src].</span>")
|
user.visible_message("<span class='warning'>[user] has [anchored ? "un" : ""]secured \the [src].</span>", "<span class='notice'>You [anchored ? "un" : ""]secure \the [src].</span>")
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
power_change()
|
power_change()
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -67,7 +67,8 @@
|
|||||||
"<span class='notice'>\The [user] starts to fix part of the microwave.</span>", \
|
"<span class='notice'>\The [user] starts to fix part of the microwave.</span>", \
|
||||||
"<span class='notice'>You start to fix part of the microwave.</span>" \
|
"<span class='notice'>You start to fix part of the microwave.</span>" \
|
||||||
)
|
)
|
||||||
if (do_after(user,20))
|
playsound(src, O.usesound, 50, 1)
|
||||||
|
if (do_after(user,20 * O.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] fixes part of the microwave.</span>", \
|
"<span class='notice'>\The [user] fixes part of the microwave.</span>", \
|
||||||
"<span class='notice'>You have fixed part of the microwave.</span>" \
|
"<span class='notice'>You have fixed part of the microwave.</span>" \
|
||||||
@@ -78,7 +79,7 @@
|
|||||||
"<span class='notice'>\The [user] starts to fix part of the microwave.</span>", \
|
"<span class='notice'>\The [user] starts to fix part of the microwave.</span>", \
|
||||||
"<span class='notice'>You start to fix part of the microwave.</span>" \
|
"<span class='notice'>You start to fix part of the microwave.</span>" \
|
||||||
)
|
)
|
||||||
if (do_after(user,20))
|
if (do_after(user,20 * O.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>\The [user] fixes the microwave.</span>", \
|
"<span class='notice'>\The [user] fixes the microwave.</span>", \
|
||||||
"<span class='notice'>You have fixed the microwave.</span>" \
|
"<span class='notice'>You have fixed the microwave.</span>" \
|
||||||
|
|||||||
@@ -218,6 +218,7 @@
|
|||||||
if(istype(O, /obj/item/weapon/screwdriver))
|
if(istype(O, /obj/item/weapon/screwdriver))
|
||||||
panel_open = !panel_open
|
panel_open = !panel_open
|
||||||
user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].")
|
user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].")
|
||||||
|
playsound(src, O.usesound, 50, 1)
|
||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
if(panel_open)
|
if(panel_open)
|
||||||
overlays += image(icon, icon_panel)
|
overlays += image(icon, icon_panel)
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ Class Procs:
|
|||||||
/obj/machinery/proc/default_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S)
|
/obj/machinery/proc/default_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S)
|
||||||
if(!istype(S))
|
if(!istype(S))
|
||||||
return 0
|
return 0
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, S.usesound, 50, 1)
|
||||||
panel_open = !panel_open
|
panel_open = !panel_open
|
||||||
user << "<span class='notice'>You [panel_open ? "open" : "close"] the maintenance hatch of [src].</span>"
|
user << "<span class='notice'>You [panel_open ? "open" : "close"] the maintenance hatch of [src].</span>"
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -343,8 +343,8 @@ Class Procs:
|
|||||||
if(!circuit)
|
if(!circuit)
|
||||||
return 0
|
return 0
|
||||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, S.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * S.toolspeed))
|
||||||
if(stat & BROKEN)
|
if(stat & BROKEN)
|
||||||
user << "<span class='notice'>The broken glass falls out.</span>"
|
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||||
new /obj/item/weapon/material/shard(src.loc)
|
new /obj/item/weapon/material/shard(src.loc)
|
||||||
@@ -355,7 +355,7 @@ Class Procs:
|
|||||||
/obj/machinery/proc/alarm_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S)
|
/obj/machinery/proc/alarm_deconstruction_screwdriver(var/mob/user, var/obj/item/weapon/screwdriver/S)
|
||||||
if(!istype(S))
|
if(!istype(S))
|
||||||
return 0
|
return 0
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src, S.usesound, 50, 1)
|
||||||
panel_open = !panel_open
|
panel_open = !panel_open
|
||||||
user << "The wires have been [panel_open ? "exposed" : "unexposed"]"
|
user << "The wires have been [panel_open ? "exposed" : "unexposed"]"
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -367,7 +367,7 @@ Class Procs:
|
|||||||
if(!panel_open)
|
if(!panel_open)
|
||||||
return 0
|
return 0
|
||||||
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src.loc, W.usesound, 50, 1)
|
||||||
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
||||||
. = dismantle()
|
. = dismantle()
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ var/global/list/navbeacons = list() // no I don't like putting this in, but it w
|
|||||||
|
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
open = !open
|
open = !open
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
user.visible_message("[user] [open ? "opens" : "closes"] the beacon's cover.", "You [open ? "open" : "close"] the beacon's cover.")
|
user.visible_message("[user] [open ? "opens" : "closes"] the beacon's cover.", "You [open ? "open" : "close"] the beacon's cover.")
|
||||||
|
|
||||||
updateicon()
|
updateicon()
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ var/bomb_set
|
|||||||
|
|
||||||
/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob)
|
/obj/machinery/nuclearbomb/attackby(obj/item/weapon/O as obj, mob/user as mob)
|
||||||
if(istype(O, /obj/item/weapon/screwdriver))
|
if(istype(O, /obj/item/weapon/screwdriver))
|
||||||
|
playsound(src, O.usesound, 50, 1)
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
if(auth)
|
if(auth)
|
||||||
if(opened == 0)
|
if(opened == 0)
|
||||||
@@ -103,7 +104,7 @@ var/bomb_set
|
|||||||
|
|
||||||
user.visible_message("[user] starts cutting loose the anchoring bolt covers on [src].", "You start cutting loose the anchoring bolt covers with [O]...")
|
user.visible_message("[user] starts cutting loose the anchoring bolt covers on [src].", "You start cutting loose the anchoring bolt covers with [O]...")
|
||||||
|
|
||||||
if(do_after(user,40))
|
if(do_after(user,40 * WT.toolspeed))
|
||||||
if(!src || !user || !WT.remove_fuel(5, user)) return
|
if(!src || !user || !WT.remove_fuel(5, user)) return
|
||||||
user.visible_message("[user] cuts through the bolt covers on [src].", "You cut through the bolt cover.")
|
user.visible_message("[user] cuts through the bolt covers on [src].", "You cut through the bolt cover.")
|
||||||
removal_stage = 1
|
removal_stage = 1
|
||||||
@@ -113,7 +114,8 @@ var/bomb_set
|
|||||||
if(istype(O,/obj/item/weapon/crowbar))
|
if(istype(O,/obj/item/weapon/crowbar))
|
||||||
user.visible_message("[user] starts forcing open the bolt covers on [src].", "You start forcing open the anchoring bolt covers with [O]...")
|
user.visible_message("[user] starts forcing open the bolt covers on [src].", "You start forcing open the anchoring bolt covers with [O]...")
|
||||||
|
|
||||||
if(do_after(user,15))
|
playsound(src, O.usesound, 50, 1)
|
||||||
|
if(do_after(user,15 * O.toolspeed))
|
||||||
if(!src || !user) return
|
if(!src || !user) return
|
||||||
user.visible_message("[user] forces open the bolt covers on [src].", "You force open the bolt covers.")
|
user.visible_message("[user] forces open the bolt covers on [src].", "You force open the bolt covers.")
|
||||||
removal_stage = 2
|
removal_stage = 2
|
||||||
@@ -129,8 +131,8 @@ var/bomb_set
|
|||||||
return
|
return
|
||||||
|
|
||||||
user.visible_message("[user] starts cutting apart the anchoring system sealant on [src].", "You start cutting apart the anchoring system's sealant with [O]...")
|
user.visible_message("[user] starts cutting apart the anchoring system sealant on [src].", "You start cutting apart the anchoring system's sealant with [O]...")
|
||||||
|
playsound(src, WT.usesound, 50, 1)
|
||||||
if(do_after(user,40))
|
if(do_after(user,40 * WT.toolspeed))
|
||||||
if(!src || !user || !WT.remove_fuel(5, user)) return
|
if(!src || !user || !WT.remove_fuel(5, user)) return
|
||||||
user.visible_message("[user] cuts apart the anchoring system sealant on [src].", "You cut apart the anchoring system's sealant.")
|
user.visible_message("[user] cuts apart the anchoring system sealant on [src].", "You cut apart the anchoring system's sealant.")
|
||||||
removal_stage = 3
|
removal_stage = 3
|
||||||
@@ -140,8 +142,8 @@ var/bomb_set
|
|||||||
if(istype(O,/obj/item/weapon/wrench))
|
if(istype(O,/obj/item/weapon/wrench))
|
||||||
|
|
||||||
user.visible_message("[user] begins unwrenching the anchoring bolts on [src].", "You begin unwrenching the anchoring bolts...")
|
user.visible_message("[user] begins unwrenching the anchoring bolts on [src].", "You begin unwrenching the anchoring bolts...")
|
||||||
|
playsound(src, O.usesound, 50, 1)
|
||||||
if(do_after(user,50))
|
if(do_after(user,50 * O.toolspeed))
|
||||||
if(!src || !user) return
|
if(!src || !user) return
|
||||||
user.visible_message("[user] unwrenches the anchoring bolts on [src].", "You unwrench the anchoring bolts.")
|
user.visible_message("[user] unwrenches the anchoring bolts on [src].", "You unwrench the anchoring bolts.")
|
||||||
removal_stage = 4
|
removal_stage = 4
|
||||||
@@ -151,8 +153,8 @@ var/bomb_set
|
|||||||
if(istype(O,/obj/item/weapon/crowbar))
|
if(istype(O,/obj/item/weapon/crowbar))
|
||||||
|
|
||||||
user.visible_message("[user] begins lifting [src] off of the anchors.", "You begin lifting the device off the anchors...")
|
user.visible_message("[user] begins lifting [src] off of the anchors.", "You begin lifting the device off the anchors...")
|
||||||
|
playsound(src, O.usesound, 50, 1)
|
||||||
if(do_after(user,80))
|
if(do_after(user,80 * O.toolspeed))
|
||||||
if(!src || !user) return
|
if(!src || !user) return
|
||||||
user.visible_message("[user] crowbars [src] off of the anchors. It can now be moved.", "You jam the crowbar under the nuclear device and lift it off its anchors. You can now move it!")
|
user.visible_message("[user] crowbars [src] off of the anchors. It can now be moved.", "You jam the crowbar under the nuclear device and lift it off its anchors. You can now move it!")
|
||||||
anchored = 0
|
anchored = 0
|
||||||
|
|||||||
@@ -1231,7 +1231,7 @@ Buildable meters
|
|||||||
P.initialize()
|
P.initialize()
|
||||||
P.build_network()
|
P.build_network()
|
||||||
|
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] fastens the [src].", \
|
"[user] fastens the [src].", \
|
||||||
"<span class='notice'>You have fastened the [src].</span>", \
|
"<span class='notice'>You have fastened the [src].</span>", \
|
||||||
@@ -1262,7 +1262,7 @@ Buildable meters
|
|||||||
user << "<span class='warning'>You need to fasten it to a pipe</span>"
|
user << "<span class='warning'>You need to fasten it to a pipe</span>"
|
||||||
return 1
|
return 1
|
||||||
new/obj/machinery/meter( src.loc )
|
new/obj/machinery/meter( src.loc )
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You have fastened the meter to the pipe</span>"
|
user << "<span class='notice'>You have fastened the meter to the pipe</span>"
|
||||||
qdel(src)
|
qdel(src)
|
||||||
//not sure why these are necessary
|
//not sure why these are necessary
|
||||||
|
|||||||
@@ -110,9 +110,9 @@
|
|||||||
return
|
return
|
||||||
else if (istype(W, /obj/item/weapon/wrench))
|
else if (istype(W, /obj/item/weapon/wrench))
|
||||||
if (unwrenched==0)
|
if (unwrenched==0)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to unfasten \the [src] from the floor...</span>"
|
user << "<span class='notice'>You begin to unfasten \the [src] from the floor...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>[user] unfastens \the [src].</span>", \
|
"<span class='notice'>[user] unfastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have unfastened \the [src]. Now it can be pulled somewhere else.</span>", \
|
"<span class='notice'>You have unfastened \the [src]. Now it can be pulled somewhere else.</span>", \
|
||||||
@@ -123,9 +123,9 @@
|
|||||||
if (usr.machine==src)
|
if (usr.machine==src)
|
||||||
usr << browse(null, "window=pipedispenser")
|
usr << browse(null, "window=pipedispenser")
|
||||||
else /*if (unwrenched==1)*/
|
else /*if (unwrenched==1)*/
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to fasten \the [src] to the floor...</span>"
|
user << "<span class='notice'>You begin to fasten \the [src] to the floor...</span>"
|
||||||
if (do_after(user, 20))
|
if (do_after(user, 20 * W.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"<span class='notice'>[user] fastens \the [src].</span>", \
|
"<span class='notice'>[user] fastens \the [src].</span>", \
|
||||||
"<span class='notice'>You have fastened \the [src]. Now it can dispense pipes.</span>", \
|
"<span class='notice'>You have fastened \the [src]. Now it can dispense pipes.</span>", \
|
||||||
|
|||||||
@@ -329,15 +329,15 @@ var/list/turret_icons
|
|||||||
)
|
)
|
||||||
|
|
||||||
wrenching = 1
|
wrenching = 1
|
||||||
if(do_after(user, 50))
|
if(do_after(user, 50 * I.toolspeed))
|
||||||
//This code handles moving the turret around. After all, it's a portable turret!
|
//This code handles moving the turret around. After all, it's a portable turret!
|
||||||
if(!anchored)
|
if(!anchored)
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(loc, I.usesound, 100, 1)
|
||||||
anchored = 1
|
anchored = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
user << "<span class='notice'>You secure the exterior bolts on the turret.</span>"
|
user << "<span class='notice'>You secure the exterior bolts on the turret.</span>"
|
||||||
else if(anchored)
|
else if(anchored)
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(loc, I.usesound, 100, 1)
|
||||||
anchored = 0
|
anchored = 0
|
||||||
user << "<span class='notice'>You unsecure the exterior bolts on the turret.</span>"
|
user << "<span class='notice'>You unsecure the exterior bolts on the turret.</span>"
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -711,14 +711,14 @@ var/list/turret_icons
|
|||||||
switch(build_step)
|
switch(build_step)
|
||||||
if(0) //first step
|
if(0) //first step
|
||||||
if(istype(I, /obj/item/weapon/wrench) && !anchored)
|
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>"
|
user << "<span class='notice'>You secure the external bolts.</span>"
|
||||||
anchored = 1
|
anchored = 1
|
||||||
build_step = 1
|
build_step = 1
|
||||||
return
|
return
|
||||||
|
|
||||||
else if(istype(I, /obj/item/weapon/crowbar) && !anchored)
|
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>"
|
user << "<span class='notice'>You dismantle the turret construction.</span>"
|
||||||
new /obj/item/stack/material/steel(loc, 5)
|
new /obj/item/stack/material/steel(loc, 5)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -736,7 +736,7 @@ var/list/turret_icons
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(istype(I, /obj/item/weapon/wrench))
|
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>"
|
user << "<span class='notice'>You unfasten the external bolts.</span>"
|
||||||
anchored = 0
|
anchored = 0
|
||||||
build_step = 0
|
build_step = 0
|
||||||
@@ -744,7 +744,7 @@ var/list/turret_icons
|
|||||||
|
|
||||||
if(2)
|
if(2)
|
||||||
if(istype(I, /obj/item/weapon/wrench))
|
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>"
|
user << "<span class='notice'>You bolt the metal armor into place.</span>"
|
||||||
build_step = 3
|
build_step = 3
|
||||||
return
|
return
|
||||||
@@ -757,8 +757,8 @@ var/list/turret_icons
|
|||||||
user << "<span class='notice'>You need more fuel to complete this task.</span>"
|
user << "<span class='notice'>You need more fuel to complete this task.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1)
|
playsound(loc, I.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * I.toolspeed))
|
||||||
if(!src || !WT.remove_fuel(5, user)) return
|
if(!src || !WT.remove_fuel(5, user)) return
|
||||||
build_step = 1
|
build_step = 1
|
||||||
user << "You remove the turret's interior metal armor."
|
user << "You remove the turret's interior metal armor."
|
||||||
@@ -784,7 +784,7 @@ var/list/turret_icons
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(istype(I, /obj/item/weapon/wrench))
|
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>"
|
user << "<span class='notice'>You remove the turret's metal armor bolts.</span>"
|
||||||
build_step = 2
|
build_step = 2
|
||||||
return
|
return
|
||||||
@@ -803,7 +803,7 @@ var/list/turret_icons
|
|||||||
|
|
||||||
if(5)
|
if(5)
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(loc, I.usesound, 100, 1)
|
||||||
build_step = 6
|
build_step = 6
|
||||||
user << "<span class='notice'>You close the internal access hatch.</span>"
|
user << "<span class='notice'>You close the internal access hatch.</span>"
|
||||||
return
|
return
|
||||||
@@ -821,7 +821,7 @@ var/list/turret_icons
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(istype(I, /obj/item/weapon/screwdriver))
|
else if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(loc, I.usesound, 100, 1)
|
||||||
build_step = 5
|
build_step = 5
|
||||||
user << "<span class='notice'>You open the internal access hatch.</span>"
|
user << "<span class='notice'>You open the internal access hatch.</span>"
|
||||||
return
|
return
|
||||||
@@ -833,8 +833,8 @@ var/list/turret_icons
|
|||||||
if(WT.get_fuel() < 5)
|
if(WT.get_fuel() < 5)
|
||||||
user << "<span class='notice'>You need more fuel to complete this task.</span>"
|
user << "<span class='notice'>You need more fuel to complete this task.</span>"
|
||||||
|
|
||||||
playsound(loc, pick('sound/items/Welder.ogg', 'sound/items/Welder2.ogg'), 50, 1)
|
playsound(loc, WT.usesound, 50, 1)
|
||||||
if(do_after(user, 30))
|
if(do_after(user, 30 * WT.toolspeed))
|
||||||
if(!src || !WT.remove_fuel(5, user))
|
if(!src || !WT.remove_fuel(5, user))
|
||||||
return
|
return
|
||||||
build_step = 8
|
build_step = 8
|
||||||
@@ -851,7 +851,7 @@ var/list/turret_icons
|
|||||||
qdel(src) // qdel
|
qdel(src) // qdel
|
||||||
|
|
||||||
else if(istype(I, /obj/item/weapon/crowbar))
|
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>"
|
user << "<span class='notice'>You pry off the turret's exterior armor.</span>"
|
||||||
new /obj/item/stack/material/steel(loc, 2)
|
new /obj/item/stack/material/steel(loc, 2)
|
||||||
build_step = 6
|
build_step = 6
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ obj/machinery/recharger
|
|||||||
return
|
return
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
to_chat(user, "You [anchored ? "attached" : "detached"] the recharger.")
|
to_chat(user, "You [anchored ? "attached" : "detached"] the recharger.")
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(loc, G.usesound, 75, 1)
|
||||||
else if(default_deconstruction_screwdriver(user, G))
|
else if(default_deconstruction_screwdriver(user, G))
|
||||||
return
|
return
|
||||||
else if(default_deconstruction_crowbar(user, G))
|
else if(default_deconstruction_crowbar(user, G))
|
||||||
|
|||||||
@@ -68,6 +68,7 @@
|
|||||||
return
|
return
|
||||||
else if(istype(I, /obj/item/weapon/screwdriver))
|
else if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
panel_open = !panel_open
|
panel_open = !panel_open
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
user.visible_message("<span class='notice'>[user] [panel_open ? "opens" : "closes"] the hatch on the [src].</span>", "<span class='notice'>You [panel_open ? "open" : "close"] the hatch on the [src].</span>")
|
user.visible_message("<span class='notice'>[user] [panel_open ? "opens" : "closes"] the hatch on the [src].</span>", "<span class='notice'>You [panel_open ? "open" : "close"] the hatch on the [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
if(!panel_open && user.machine == src)
|
if(!panel_open && user.machine == src)
|
||||||
|
|||||||
@@ -473,7 +473,7 @@
|
|||||||
return
|
return
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
panelopen = !panelopen
|
panelopen = !panelopen
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, I.usesound, 100, 1)
|
||||||
user << text("<font color='blue'>You [] the unit's maintenance panel.</font>",(panelopen ? "open up" : "close"))
|
user << text("<font color='blue'>You [] the unit's maintenance panel.</font>",(panelopen ? "open up" : "close"))
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
return
|
return
|
||||||
@@ -692,6 +692,7 @@
|
|||||||
else if(istype(I,/obj/item/weapon/screwdriver))
|
else if(istype(I,/obj/item/weapon/screwdriver))
|
||||||
|
|
||||||
panel_open = !panel_open
|
panel_open = !panel_open
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
user << "You [panel_open ? "open" : "close"] the maintenance panel."
|
user << "You [panel_open ? "open" : "close"] the maintenance panel."
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
return
|
return
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
user.visible_message("<span class='notice'>\The [user] [anchored ? "secures" : "unsecures"] \the [src].</span>")
|
user.visible_message("<span class='notice'>\The [user] [anchored ? "secures" : "unsecures"] \the [src].</span>")
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
return
|
return
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,7 @@
|
|||||||
if(anchored)
|
if(anchored)
|
||||||
anchored = 0
|
anchored = 0
|
||||||
user << "<span class='notice'>You unscrew the beacon from the floor.</span>"
|
user << "<span class='notice'>You unscrew the beacon from the floor.</span>"
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
disconnect_from_network()
|
disconnect_from_network()
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
@@ -134,6 +135,7 @@
|
|||||||
return
|
return
|
||||||
anchored = 1
|
anchored = 1
|
||||||
user << "<span class='notice'>You screw the beacon to the floor and attach the cable.</span>"
|
user << "<span class='notice'>You screw the beacon to the floor and attach the cable.</span>"
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -38,24 +38,24 @@
|
|||||||
if(0)
|
if(0)
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
if(istype(P, /obj/item/weapon/screwdriver))
|
||||||
user << "You unfasten the bolts."
|
user << "You unfasten the bolts."
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
construct_op ++
|
construct_op ++
|
||||||
if(1)
|
if(1)
|
||||||
if(istype(P, /obj/item/weapon/screwdriver))
|
if(istype(P, /obj/item/weapon/screwdriver))
|
||||||
user << "You fasten the bolts."
|
user << "You fasten the bolts."
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
construct_op --
|
construct_op --
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
user << "You dislodge the external plating."
|
user << "You dislodge the external plating."
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(src.loc, P.usesound, 75, 1)
|
||||||
construct_op ++
|
construct_op ++
|
||||||
if(2)
|
if(2)
|
||||||
if(istype(P, /obj/item/weapon/wrench))
|
if(istype(P, /obj/item/weapon/wrench))
|
||||||
user << "You secure the external plating."
|
user << "You secure the external plating."
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(src.loc, P.usesound, 75, 1)
|
||||||
construct_op --
|
construct_op --
|
||||||
if(istype(P, /obj/item/weapon/wirecutters))
|
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."
|
user << "You remove the cables."
|
||||||
construct_op ++
|
construct_op ++
|
||||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc )
|
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc )
|
||||||
@@ -72,8 +72,8 @@
|
|||||||
user << "<span class='warning'>You need five coils of wire for this.</span>"
|
user << "<span class='warning'>You need five coils of wire for this.</span>"
|
||||||
if(istype(P, /obj/item/weapon/crowbar))
|
if(istype(P, /obj/item/weapon/crowbar))
|
||||||
user << "You begin prying out the circuit board other components..."
|
user << "You begin prying out the circuit board other components..."
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src.loc, P.usesound, 50, 1)
|
||||||
if(do_after(user,60))
|
if(do_after(user,60 * P.toolspeed))
|
||||||
user << "You finish prying out the components."
|
user << "You finish prying out the components."
|
||||||
|
|
||||||
// Drop all the component stuff
|
// Drop all the component stuff
|
||||||
|
|||||||
@@ -183,6 +183,7 @@
|
|||||||
else if(istype(W, /obj/item/weapon/screwdriver))
|
else if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
panel_open = !panel_open
|
panel_open = !panel_open
|
||||||
user << "You [panel_open ? "open" : "close"] the maintenance panel."
|
user << "You [panel_open ? "open" : "close"] the maintenance panel."
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
if(panel_open)
|
if(panel_open)
|
||||||
overlays += image(icon, "[initial(icon_state)]-panel")
|
overlays += image(icon, "[initial(icon_state)]-panel")
|
||||||
@@ -202,13 +203,13 @@
|
|||||||
nanomanager.update_uis(src)
|
nanomanager.update_uis(src)
|
||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/weapon/wrench))
|
else if(istype(W, /obj/item/weapon/wrench))
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
if(anchored)
|
if(anchored)
|
||||||
user.visible_message("[user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
user.visible_message("[user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
||||||
else
|
else
|
||||||
user.visible_message("[user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
|
user.visible_message("[user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
|
||||||
|
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
|
|||||||
@@ -122,7 +122,7 @@
|
|||||||
|
|
||||||
/obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wirecutters))
|
if(istype(W, /obj/item/weapon/wirecutters))
|
||||||
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src.loc, W.usesound, 100, 1)
|
||||||
if(ruined)
|
if(ruined)
|
||||||
user << "<span class='notice'>You remove the remnants of the poster.</span>"
|
user << "<span class='notice'>You remove the remnants of the poster.</span>"
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
if(WT.remove_fuel(0, user))
|
if(WT.remove_fuel(0, user))
|
||||||
damage = 15
|
damage = 15
|
||||||
playsound(loc, 'sound/items/Welder.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
|
|
||||||
health -= damage
|
health -= damage
|
||||||
healthcheck()
|
healthcheck()
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
var/burn_point = null
|
var/burn_point = null
|
||||||
var/burning = null
|
var/burning = null
|
||||||
var/hitsound = null
|
var/hitsound = null
|
||||||
|
var/usesound = null // Like hitsound, but for when used properly and not to kill someone.
|
||||||
var/storage_cost = null
|
var/storage_cost = null
|
||||||
var/slot_flags = 0 //This is used to determine on which slots an item can fit.
|
var/slot_flags = 0 //This is used to determine on which slots an item can fit.
|
||||||
var/no_attack_log = 0 //If it's an item we don't want to log attack_logs with, set this to 1
|
var/no_attack_log = 0 //If it's an item we don't want to log attack_logs with, set this to 1
|
||||||
@@ -78,6 +79,8 @@
|
|||||||
// Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called.
|
// Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called.
|
||||||
var/list/sprite_sheets_obj = list()
|
var/list/sprite_sheets_obj = list()
|
||||||
|
|
||||||
|
var/toolspeed = 1.0 // This is a multipler on how 'fast' a tool works. e.g. setting this to 0.5 will make the tool work twice as fast.
|
||||||
|
|
||||||
/obj/item/New()
|
/obj/item/New()
|
||||||
..()
|
..()
|
||||||
if(embed_chance < 0)
|
if(embed_chance < 0)
|
||||||
|
|||||||
@@ -23,10 +23,10 @@
|
|||||||
hack_state = null
|
hack_state = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/item/device/multitool/hacktool/attackby(var/obj/W, var/mob/user)
|
/obj/item/device/multitool/hacktool/attackby(var/obj/item/W, var/mob/user)
|
||||||
if(isscrewdriver(W))
|
if(isscrewdriver(W))
|
||||||
in_hack_mode = !in_hack_mode
|
in_hack_mode = !in_hack_mode
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, W.usesound, 50, 1)
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
/obj/item/clothing/suit/space/void
|
/obj/item/clothing/suit/space/void
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/device/modkit/afterattack(obj/O, mob/user as mob, proximity)
|
/obj/item/device/modkit/afterattack(obj/item/O, mob/user as mob, proximity)
|
||||||
if(!proximity)
|
if(!proximity)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
user << "<span class='warning'>[O] must be safely placed on the ground for modification.</span>"
|
user << "<span class='warning'>[O] must be safely placed on the ground for modification.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src.loc, O.usesound, 100, 1)
|
||||||
|
|
||||||
user.visible_message("<span class='notice'>\The [user] opens \the [src] and modifies \the [O].</span>","<span class='notice'>You open \the [src] and modify \the [O].</span>")
|
user.visible_message("<span class='notice'>\The [user] opens \the [src] and modifies \the [O].</span>","<span class='notice'>You open \the [src] and modify \the [O].</span>")
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
|
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
|
||||||
var/obj/machinery/clonepod/connecting //same for cryopod linkage
|
var/obj/machinery/clonepod/connecting //same for cryopod linkage
|
||||||
var/obj/machinery/connectable //Used to connect machinery.
|
var/obj/machinery/connectable //Used to connect machinery.
|
||||||
|
toolspeed = 1
|
||||||
|
|
||||||
/obj/item/device/multitool/attack_self(mob/user)
|
/obj/item/device/multitool/attack_self(mob/user)
|
||||||
var/clear = alert("Do you want to clear the buffers on the [src]?",, "Yes", "No",)
|
var/clear = alert("Do you want to clear the buffers on the [src]?",, "Yes", "No",)
|
||||||
@@ -30,4 +31,17 @@
|
|||||||
connecting = null
|
connecting = null
|
||||||
connectable = null
|
connectable = null
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
/obj/item/device/multitool/cyborg
|
||||||
|
name = "multitool"
|
||||||
|
desc = "Optimised and stripped-down version of a regular multitool."
|
||||||
|
toolspeed = 0.5
|
||||||
|
|
||||||
|
/obj/item/device/multitool/ayyy
|
||||||
|
name = "alien multitool"
|
||||||
|
desc = "An omni-technological interface."
|
||||||
|
icon = 'icons/obj/abductor.dmi'
|
||||||
|
icon_state = "multitool"
|
||||||
|
toolspeed = 0.1
|
||||||
|
origin_tech = list(TECH_MAGNETS = 5, TECH_ENGINEERING = 5)
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
anchored = 1
|
anchored = 1
|
||||||
mode = 1
|
mode = 1
|
||||||
src.visible_message("<span class='notice'>[user] attaches [src] to the cable!</span>")
|
src.visible_message("<span class='notice'>[user] attaches [src] to the cable!</span>")
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "Device must be placed over an exposed cable to attach to it."
|
user << "Device must be placed over an exposed cable to attach to it."
|
||||||
@@ -54,6 +55,7 @@
|
|||||||
mode = 0
|
mode = 0
|
||||||
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
|
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
|
||||||
set_light(0)
|
set_light(0)
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
icon_state = "powersink0"
|
icon_state = "powersink0"
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -348,6 +348,7 @@
|
|||||||
|
|
||||||
recalculateChannels()
|
recalculateChannels()
|
||||||
user << "You pop out the encryption keys in the headset!"
|
user << "You pop out the encryption keys in the headset!"
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
|
|
||||||
else
|
else
|
||||||
user << "This headset doesn't have any encryption keys! How useless..."
|
user << "This headset doesn't have any encryption keys! How useless..."
|
||||||
|
|||||||
@@ -113,6 +113,7 @@
|
|||||||
if(istype(W, /obj/item/weapon/screwdriver)) // Opening the intercom up.
|
if(istype(W, /obj/item/weapon/screwdriver)) // Opening the intercom up.
|
||||||
wiresexposed = !wiresexposed
|
wiresexposed = !wiresexposed
|
||||||
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]"
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
if(wiresexposed)
|
if(wiresexposed)
|
||||||
if(!on)
|
if(!on)
|
||||||
icon_state = "intercom-p_open"
|
icon_state = "intercom-p_open"
|
||||||
@@ -123,7 +124,7 @@
|
|||||||
return
|
return
|
||||||
if(wiresexposed && istype(W, /obj/item/weapon/wirecutters))
|
if(wiresexposed && istype(W, /obj/item/weapon/wirecutters))
|
||||||
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
||||||
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
|
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
|
||||||
var/obj/item/weapon/circuitboard/M = circuit
|
var/obj/item/weapon/circuitboard/M = circuit
|
||||||
|
|||||||
@@ -629,6 +629,7 @@ var/global/list/default_medbay_channels = list(
|
|||||||
|
|
||||||
recalculateChannels()
|
recalculateChannels()
|
||||||
user << "You pop out the encryption key in the radio!"
|
user << "You pop out the encryption key in the radio!"
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
|
|
||||||
else
|
else
|
||||||
user << "This radio doesn't have any encryption keys!"
|
user << "This radio doesn't have any encryption keys!"
|
||||||
|
|||||||
@@ -138,6 +138,7 @@
|
|||||||
else
|
else
|
||||||
cover_open = 1
|
cover_open = 1
|
||||||
user << "You unscrew the panel."
|
user << "You unscrew the panel."
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
updateicon()
|
updateicon()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -416,7 +416,8 @@
|
|||||||
/obj/item/device/tape/attackby(obj/item/I, mob/user, params)
|
/obj/item/device/tape/attackby(obj/item/I, mob/user, params)
|
||||||
if(ruined && istype(I, /obj/item/weapon/screwdriver))
|
if(ruined && istype(I, /obj/item/weapon/screwdriver))
|
||||||
to_chat(user, "<span class='notice'>You start winding the tape back in...</span>")
|
to_chat(user, "<span class='notice'>You start winding the tape back in...</span>")
|
||||||
if(do_after(user, 120, target = src))
|
playsound(src, I.usesound, 50, 1)
|
||||||
|
if(do_after(user, 120 * I.toolspeed, target = src))
|
||||||
to_chat(user, "<span class='notice'>You wound the tape back in.</span>")
|
to_chat(user, "<span class='notice'>You wound the tape back in.</span>")
|
||||||
fix()
|
fix()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob)
|
/obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
if(istype(I,/obj/item/weapon/screwdriver))
|
if(istype(I,/obj/item/weapon/screwdriver))
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on \the [src]'s access protocol pins.</span>", "<span class='notice'>You adjust the jumper on the access protocol pins.</span>")
|
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on \the [src]'s access protocol pins.</span>", "<span class='notice'>You adjust the jumper on the access protocol pins.</span>")
|
||||||
if(build_path == /obj/machinery/computer/rdconsole/core)
|
if(build_path == /obj/machinery/computer/rdconsole/core)
|
||||||
name = T_BOARD("RD Console - Robotics")
|
name = T_BOARD("RD Console - Robotics")
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
|
|
||||||
obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mob)
|
obj/item/weapon/circuitboard/rdserver/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
if(istype(I,/obj/item/weapon/screwdriver))
|
if(istype(I,/obj/item/weapon/screwdriver))
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on \the [src]'s access protocol pins.</span>", "<span class='notice'>You adjust the jumper on the access protocol pins.</span>")
|
user.visible_message("<span class='notice'>\The [user] adjusts the jumper on \the [src]'s access protocol pins.</span>", "<span class='notice'>You adjust the jumper on the access protocol pins.</span>")
|
||||||
if(build_path == /obj/machinery/r_n_d/server/core)
|
if(build_path == /obj/machinery/r_n_d/server/core)
|
||||||
name = T_BOARD("RD Console - Robotics")
|
name = T_BOARD("RD Console - Robotics")
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
if(istype(I, /obj/item/weapon/screwdriver))
|
||||||
open_panel = !open_panel
|
open_panel = !open_panel
|
||||||
user << "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>"
|
user << "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>"
|
||||||
|
playsound(src, I.usesound, 50, 1)
|
||||||
else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler ))
|
else if(istype(I, /obj/item/weapon/wirecutters) || istype(I, /obj/item/device/multitool) || istype(I, /obj/item/device/assembly/signaler ))
|
||||||
wires.Interact(user)
|
wires.Interact(user)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
// user << "<span class='warning'>You need to add at least one beaker before locking the assembly.</span>"
|
// user << "<span class='warning'>You need to add at least one beaker before locking the assembly.</span>"
|
||||||
user << "<span class='notice'>You lock the empty assembly.</span>"
|
user << "<span class='notice'>You lock the empty assembly.</span>"
|
||||||
name = "fake grenade"
|
name = "fake grenade"
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3)
|
playsound(src, W.usesound, 50, 1)
|
||||||
icon_state = initial(icon_state) +"_locked"
|
icon_state = initial(icon_state) +"_locked"
|
||||||
stage = 2
|
stage = 2
|
||||||
else if(stage == 2)
|
else if(stage == 2)
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "<span class='notice'>You unlock the assembly.</span>"
|
user << "<span class='notice'>You unlock the assembly.</span>"
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, -3)
|
playsound(src.loc, W.usesound, 50, -3)
|
||||||
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
name = "unsecured grenade with [beakers.len] containers[detonator?" and detonator":""]"
|
||||||
icon_state = initial(icon_state) + (detonator?"_ass":"")
|
icon_state = initial(icon_state) + (detonator?"_ass":"")
|
||||||
stage = 1
|
stage = 1
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
/obj/item/weapon/material/butterflyconstruction/attackby(obj/item/W as obj, mob/user as mob)
|
/obj/item/weapon/material/butterflyconstruction/attackby(obj/item/W as obj, mob/user as mob)
|
||||||
if(istype(W,/obj/item/weapon/screwdriver))
|
if(istype(W,/obj/item/weapon/screwdriver))
|
||||||
user << "You finish the concealed blade weapon."
|
user << "You finish the concealed blade weapon."
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
new /obj/item/weapon/material/butterfly(user.loc, material.name)
|
new /obj/item/weapon/material/butterfly(user.loc, material.name)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -77,6 +77,22 @@
|
|||||||
new /obj/item/weapon/wirecutters(src)
|
new /obj/item/weapon/wirecutters(src)
|
||||||
new /obj/item/device/t_scanner(src)
|
new /obj/item/device/t_scanner(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/belt/utility/chief
|
||||||
|
name = "chief engineer's toolbelt"
|
||||||
|
desc = "Holds tools, looks snazzy."
|
||||||
|
icon_state = "utilitybelt_ce"
|
||||||
|
item_state = "utility_ce"
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/belt/utility/chief/full/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/screwdriver/power(src)
|
||||||
|
new /obj/item/weapon/crowbar/power(src)
|
||||||
|
new /obj/item/weapon/weldingtool/experimental(src)
|
||||||
|
new /obj/item/device/multitool(src)
|
||||||
|
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
|
||||||
|
new /obj/item/weapon/extinguisher/mini(src)
|
||||||
|
new /obj/item/device/analyzer(src)
|
||||||
|
|
||||||
/obj/item/weapon/storage/belt/medical
|
/obj/item/weapon/storage/belt/medical
|
||||||
name = "medical belt"
|
name = "medical belt"
|
||||||
desc = "Can hold various medical equipment."
|
desc = "Can hold various medical equipment."
|
||||||
@@ -208,6 +224,22 @@
|
|||||||
new /obj/item/device/soulstone(src)
|
new /obj/item/device/soulstone(src)
|
||||||
new /obj/item/device/soulstone(src)
|
new /obj/item/device/soulstone(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/belt/utility/ayyy
|
||||||
|
name = "alien belt"
|
||||||
|
desc = "A belt(?) that can hold things."
|
||||||
|
icon = 'icons/obj/abductor.dmi'
|
||||||
|
icon_state = "belt"
|
||||||
|
item_state = "security"
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/belt/utility/ayyy/full/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/screwdriver/ayyy(src)
|
||||||
|
new /obj/item/weapon/wrench/ayyy(src)
|
||||||
|
new /obj/item/weapon/weldingtool/ayyy(src)
|
||||||
|
new /obj/item/weapon/crowbar/ayyy(src)
|
||||||
|
new /obj/item/weapon/wirecutters/ayyy(src)
|
||||||
|
new /obj/item/device/multitool/ayyy(src)
|
||||||
|
new /obj/item/stack/cable_coil(src,30,"white")
|
||||||
|
|
||||||
/obj/item/weapon/storage/belt/champion
|
/obj/item/weapon/storage/belt/champion
|
||||||
name = "championship belt"
|
name = "championship belt"
|
||||||
|
|||||||
@@ -42,8 +42,9 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if (istype(W, /obj/item/weapon/screwdriver))
|
if (istype(W, /obj/item/weapon/screwdriver))
|
||||||
if (do_after(user, 20))
|
if (do_after(user, 20 * W.toolspeed))
|
||||||
src.open =! src.open
|
src.open =! src.open
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
user.show_message(text("<span class='notice'>You [] the service panel.</span>", (src.open ? "open" : "close")))
|
user.show_message(text("<span class='notice'>You [] the service panel.</span>", (src.open ? "open" : "close")))
|
||||||
return
|
return
|
||||||
if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
|
if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
/obj/item/weapon/surgical/surgicaldrill
|
/obj/item/weapon/surgical/surgicaldrill
|
||||||
name = "surgical drill"
|
name = "surgical drill"
|
||||||
desc = "You can drill using this item. You dig?"
|
desc = "You can drill using this item. You dig?"
|
||||||
icon_state = "drill"
|
icon_state = "surgery_drill"
|
||||||
hitsound = 'sound/weapons/circsawhit.ogg'
|
hitsound = 'sound/weapons/circsawhit.ogg'
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 10000)
|
matter = list(DEFAULT_WALL_MATERIAL = 15000, "glass" = 10000)
|
||||||
force = 15.0
|
force = 15.0
|
||||||
|
|||||||
@@ -93,4 +93,5 @@
|
|||||||
/obj/item/weapon/flame/lighter/zippo/c4detonator/attackby(obj/item/weapon/W, mob/user as mob)
|
/obj/item/weapon/flame/lighter/zippo/c4detonator/attackby(obj/item/weapon/W, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/screwdriver))
|
if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
detonator_mode = !detonator_mode
|
detonator_mode = !detonator_mode
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You unscrew the top panel of \the [src] revealing a button.</span>"
|
user << "<span class='notice'>You unscrew the top panel of \the [src] revealing a button.</span>"
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
|
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32
|
||||||
|
|
||||||
|
#define WELDER_FUEL_BURN_INTERVAL 13
|
||||||
|
|
||||||
/* Tools!
|
/* Tools!
|
||||||
* Note: Multitools are /obj/item/device
|
* Note: Multitools are /obj/item/device
|
||||||
*
|
*
|
||||||
@@ -17,7 +19,7 @@
|
|||||||
/obj/item/weapon/wrench
|
/obj/item/weapon/wrench
|
||||||
name = "wrench"
|
name = "wrench"
|
||||||
desc = "A wrench with many common uses. Can be usually found in your hand."
|
desc = "A wrench with many common uses. Can be usually found in your hand."
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/tools.dmi'
|
||||||
icon_state = "wrench"
|
icon_state = "wrench"
|
||||||
flags = CONDUCT
|
flags = CONDUCT
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
@@ -27,7 +29,44 @@
|
|||||||
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
|
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 150)
|
matter = list(DEFAULT_WALL_MATERIAL = 150)
|
||||||
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
|
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
|
||||||
|
usesound = 'sound/items/ratchet.ogg'
|
||||||
|
toolspeed = 1
|
||||||
|
|
||||||
|
/obj/item/weapon/wrench/cyborg
|
||||||
|
name = "automatic wrench"
|
||||||
|
desc = "An advanced robotic wrench. Can be found in industrial synthetic shells."
|
||||||
|
usesound = 'sound/items/drill_use.ogg'
|
||||||
|
toolspeed = 0.5
|
||||||
|
|
||||||
|
/obj/item/weapon/wrench/ayyy
|
||||||
|
name = "alien wrench"
|
||||||
|
desc = "A polarized wrench. It causes anything placed between the jaws to turn."
|
||||||
|
icon = 'icons/obj/abductor.dmi'
|
||||||
|
icon_state = "wrench"
|
||||||
|
usesound = 'sound/effects/empulse.ogg'
|
||||||
|
toolspeed = 0.1
|
||||||
|
origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEER = 5)
|
||||||
|
|
||||||
|
/obj/item/weapon/wrench/power
|
||||||
|
name = "hand drill"
|
||||||
|
desc = "A simple powered hand drill. It's fitted with a bolt bit."
|
||||||
|
icon_state = "drill_bolt"
|
||||||
|
item_state = "drill"
|
||||||
|
usesound = 'sound/items/drill_use.ogg'
|
||||||
|
matter = list(DEFAULT_WALL_MATERIAL = 150, MAT_SILVER = 50, MAT_TITANIUM = 25)
|
||||||
|
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||||
|
force = 8
|
||||||
|
w_class = ITEMSIZE_SMALL
|
||||||
|
throwforce = 8
|
||||||
|
attack_verb = list("drilled", "screwed", "jabbed")
|
||||||
|
toolspeed = 0.25
|
||||||
|
|
||||||
|
/obj/item/weapon/wrench/power/attack_self(mob/user)
|
||||||
|
playsound(get_turf(user),'sound/items/change_drill.ogg',50,1)
|
||||||
|
var/obj/item/weapon/screwdriver/power/s_drill = new /obj/item/weapon/screwdriver/power
|
||||||
|
to_chat(user, "<span class='notice'>You attach the screw driver bit to [src].</span>")
|
||||||
|
qdel(src)
|
||||||
|
user.put_in_active_hand(s_drill)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Screwdriver
|
* Screwdriver
|
||||||
@@ -35,7 +74,7 @@
|
|||||||
/obj/item/weapon/screwdriver
|
/obj/item/weapon/screwdriver
|
||||||
name = "screwdriver"
|
name = "screwdriver"
|
||||||
desc = "You can be totally screwwy with this."
|
desc = "You can be totally screwwy with this."
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/tools.dmi'
|
||||||
icon_state = "screwdriver"
|
icon_state = "screwdriver"
|
||||||
flags = CONDUCT
|
flags = CONDUCT
|
||||||
slot_flags = SLOT_BELT | SLOT_EARS
|
slot_flags = SLOT_BELT | SLOT_EARS
|
||||||
@@ -44,9 +83,13 @@
|
|||||||
throwforce = 5
|
throwforce = 5
|
||||||
throw_speed = 3
|
throw_speed = 3
|
||||||
throw_range = 5
|
throw_range = 5
|
||||||
|
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||||
|
usesound = 'sound/items/screwdriver.ogg'
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 75)
|
matter = list(DEFAULT_WALL_MATERIAL = 75)
|
||||||
attack_verb = list("stabbed")
|
attack_verb = list("stabbed")
|
||||||
sharp = 1
|
sharp = 1
|
||||||
|
toolspeed = 1
|
||||||
|
var/random_color = TRUE
|
||||||
|
|
||||||
suicide_act(mob/user)
|
suicide_act(mob/user)
|
||||||
viewers(user) << pick("<span class='danger'>\The [user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.</span>", \
|
viewers(user) << pick("<span class='danger'>\The [user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.</span>", \
|
||||||
@@ -54,28 +97,29 @@
|
|||||||
return(BRUTELOSS)
|
return(BRUTELOSS)
|
||||||
|
|
||||||
/obj/item/weapon/screwdriver/New()
|
/obj/item/weapon/screwdriver/New()
|
||||||
switch(pick("red","blue","purple","brown","green","cyan","yellow"))
|
if(random_color)
|
||||||
if ("red")
|
switch(pick("red","blue","purple","brown","green","cyan","yellow"))
|
||||||
icon_state = "screwdriver2"
|
if ("red")
|
||||||
item_state = "screwdriver"
|
icon_state = "screwdriver2"
|
||||||
if ("blue")
|
item_state = "screwdriver"
|
||||||
icon_state = "screwdriver"
|
if ("blue")
|
||||||
item_state = "screwdriver_blue"
|
icon_state = "screwdriver"
|
||||||
if ("purple")
|
item_state = "screwdriver_blue"
|
||||||
icon_state = "screwdriver3"
|
if ("purple")
|
||||||
item_state = "screwdriver_purple"
|
icon_state = "screwdriver3"
|
||||||
if ("brown")
|
item_state = "screwdriver_purple"
|
||||||
icon_state = "screwdriver4"
|
if ("brown")
|
||||||
item_state = "screwdriver_brown"
|
icon_state = "screwdriver4"
|
||||||
if ("green")
|
item_state = "screwdriver_brown"
|
||||||
icon_state = "screwdriver5"
|
if ("green")
|
||||||
item_state = "screwdriver_green"
|
icon_state = "screwdriver5"
|
||||||
if ("cyan")
|
item_state = "screwdriver_green"
|
||||||
icon_state = "screwdriver6"
|
if ("cyan")
|
||||||
item_state = "screwdriver_cyan"
|
icon_state = "screwdriver6"
|
||||||
if ("yellow")
|
item_state = "screwdriver_cyan"
|
||||||
icon_state = "screwdriver7"
|
if ("yellow")
|
||||||
item_state = "screwdriver_yellow"
|
icon_state = "screwdriver7"
|
||||||
|
item_state = "screwdriver_yellow"
|
||||||
|
|
||||||
if (prob(75))
|
if (prob(75))
|
||||||
src.pixel_y = rand(0, 16)
|
src.pixel_y = rand(0, 16)
|
||||||
@@ -90,13 +134,55 @@
|
|||||||
M = user
|
M = user
|
||||||
return eyestab(M,user)
|
return eyestab(M,user)
|
||||||
|
|
||||||
|
/obj/item/weapon/screwdriver/ayyy
|
||||||
|
name = "alien screwdriver"
|
||||||
|
desc = "An ultrasonic screwdriver."
|
||||||
|
icon = 'icons/obj/abductor.dmi'
|
||||||
|
icon_state = "screwdriver_a"
|
||||||
|
item_state = "screwdriver_black"
|
||||||
|
usesound = 'sound/items/pshoom.ogg'
|
||||||
|
toolspeed = 0.1
|
||||||
|
random_color = FALSE
|
||||||
|
|
||||||
|
/obj/item/weapon/screwdriver/cyborg
|
||||||
|
name = "powered screwdriver"
|
||||||
|
desc = "An electrical screwdriver, designed to be both precise and quick."
|
||||||
|
usesound = 'sound/items/drill_use.ogg'
|
||||||
|
toolspeed = 0.5
|
||||||
|
|
||||||
|
/obj/item/weapon/screwdriver/power
|
||||||
|
name = "hand drill"
|
||||||
|
desc = "A simple powered hand drill. It's fitted with a screw bit."
|
||||||
|
icon_state = "drill_screw"
|
||||||
|
item_state = "drill"
|
||||||
|
matter = list(DEFAULT_WALL_MATERIAL = 150, MAT_SILVER = 50, MAT_TITANIUM = 25)
|
||||||
|
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||||
|
|
||||||
|
force = 8
|
||||||
|
w_class = ITEMSIZE_SMALL
|
||||||
|
throwforce = 8
|
||||||
|
throw_speed = 2
|
||||||
|
throw_range = 3//it's heavier than a screw driver/wrench, so it does more damage, but can't be thrown as far
|
||||||
|
attack_verb = list("drilled", "screwed", "jabbed", "whacked")
|
||||||
|
hitsound = 'sound/items/drill_hit.ogg'
|
||||||
|
usesound = 'sound/items/drill_use.ogg'
|
||||||
|
toolspeed = 0.25
|
||||||
|
random_color = FALSE
|
||||||
|
|
||||||
|
/obj/item/weapon/screwdriver/power/attack_self(mob/user)
|
||||||
|
playsound(get_turf(user),'sound/items/change_drill.ogg',50,1)
|
||||||
|
var/obj/item/weapon/wrench/power/w_drill = new /obj/item/weapon/wrench/power
|
||||||
|
to_chat(user, "<span class='notice'>You attach the bolt driver bit to [src].</span>")
|
||||||
|
qdel(src)
|
||||||
|
user.put_in_active_hand(w_drill)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Wirecutters
|
* Wirecutters
|
||||||
*/
|
*/
|
||||||
/obj/item/weapon/wirecutters
|
/obj/item/weapon/wirecutters
|
||||||
name = "wirecutters"
|
name = "wirecutters"
|
||||||
desc = "This cuts wires."
|
desc = "This cuts wires."
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/tools.dmi'
|
||||||
icon_state = "cutters"
|
icon_state = "cutters"
|
||||||
flags = CONDUCT
|
flags = CONDUCT
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
@@ -107,11 +193,15 @@
|
|||||||
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
|
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 80)
|
matter = list(DEFAULT_WALL_MATERIAL = 80)
|
||||||
attack_verb = list("pinched", "nipped")
|
attack_verb = list("pinched", "nipped")
|
||||||
|
hitsound = 'sound/items/wirecutter.ogg'
|
||||||
|
usesound = 'sound/items/wirecutter.ogg'
|
||||||
sharp = 1
|
sharp = 1
|
||||||
edge = 1
|
edge = 1
|
||||||
|
toolspeed = 1
|
||||||
|
var/random_color = TRUE
|
||||||
|
|
||||||
/obj/item/weapon/wirecutters/New()
|
/obj/item/weapon/wirecutters/New()
|
||||||
if(prob(50))
|
if(random_color && prob(50))
|
||||||
icon_state = "cutters-y"
|
icon_state = "cutters-y"
|
||||||
item_state = "cutters_yellow"
|
item_state = "cutters_yellow"
|
||||||
..()
|
..()
|
||||||
@@ -129,13 +219,48 @@
|
|||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
/obj/item/weapon/wirecutters/ayyy
|
||||||
|
name = "alien wirecutters"
|
||||||
|
desc = "Extremely sharp wirecutters, made out of a silvery-green metal."
|
||||||
|
icon = 'icons/obj/abductor.dmi'
|
||||||
|
icon_state = "cutters"
|
||||||
|
toolspeed = 0.1
|
||||||
|
origin_tech = list(TECH_MATERIAL = 5, TECH_ENGINEERING = 4)
|
||||||
|
random_color = FALSE
|
||||||
|
|
||||||
|
/obj/item/weapon/wirecutters/cyborg
|
||||||
|
name = "wirecutters"
|
||||||
|
desc = "This cuts wires. With science."
|
||||||
|
usesound = 'sound/items/jaws_cut.ogg'
|
||||||
|
toolspeed = 0.5
|
||||||
|
|
||||||
|
/obj/item/weapon/wirecutters/power
|
||||||
|
name = "jaws of life"
|
||||||
|
desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a cutting head."
|
||||||
|
icon_state = "jaws_cutter"
|
||||||
|
item_state = "jawsoflife"
|
||||||
|
origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2)
|
||||||
|
matter = list(MAT_METAL=150, MAT_SILVER=50, MAT_TITANIUM=25)
|
||||||
|
usesound = 'sound/items/jaws_cut.ogg'
|
||||||
|
force = 15
|
||||||
|
toolspeed = 0.25
|
||||||
|
random_color = FALSE
|
||||||
|
|
||||||
|
/obj/item/weapon/wirecutters/power/attack_self(mob/user)
|
||||||
|
playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1)
|
||||||
|
var/obj/item/weapon/crowbar/power/pryjaws = new /obj/item/weapon/crowbar/power
|
||||||
|
to_chat(user, "<span class='notice'>You attach the pry jaws to [src].</span>")
|
||||||
|
qdel(src)
|
||||||
|
user.put_in_active_hand(pryjaws)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Welding Tool
|
* Welding Tool
|
||||||
*/
|
*/
|
||||||
/obj/item/weapon/weldingtool
|
/obj/item/weapon/weldingtool
|
||||||
name = "welding tool"
|
name = "welding tool"
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/tools.dmi'
|
||||||
icon_state = "welder"
|
icon_state = "welder"
|
||||||
|
item_state = "welder"
|
||||||
flags = CONDUCT
|
flags = CONDUCT
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
|
|
||||||
@@ -157,16 +282,30 @@
|
|||||||
var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
|
var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
|
||||||
var/max_fuel = 20 //The max amount of fuel the welder can hold
|
var/max_fuel = 20 //The max amount of fuel the welder can hold
|
||||||
|
|
||||||
|
var/acti_sound = 'sound/items/welderactivate.ogg'
|
||||||
|
var/deac_sound = 'sound/items/welderdeactivate.ogg'
|
||||||
|
usesound = 'sound/items/Welder2.ogg'
|
||||||
|
var/change_icons = TRUE
|
||||||
|
var/flame_intensity = 2 //how powerful the emitted light is when used.
|
||||||
|
var/flame_color = "#FF9933" // What color the welder light emits when its on. Default is an orange-ish color.
|
||||||
|
var/eye_safety_modifier = 0 // Increasing this will make less eye protection needed to stop eye damage. IE at 1, sunglasses will fully protect.
|
||||||
|
var/burned_fuel_for = 0 // Keeps track of how long the welder's been on, used to gradually empty the welder if left one, without RNG.
|
||||||
|
var/always_process = FALSE // If true, keeps the welder on the process list even if it's off. Used for when it needs to regenerate fuel.
|
||||||
|
toolspeed = 1
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/New()
|
/obj/item/weapon/weldingtool/New()
|
||||||
// var/random_fuel = min(rand(10,20),max_fuel)
|
// var/random_fuel = min(rand(10,20),max_fuel)
|
||||||
var/datum/reagents/R = new/datum/reagents(max_fuel)
|
var/datum/reagents/R = new/datum/reagents(max_fuel)
|
||||||
reagents = R
|
reagents = R
|
||||||
R.my_atom = src
|
R.my_atom = src
|
||||||
R.add_reagent("fuel", max_fuel)
|
R.add_reagent("fuel", max_fuel)
|
||||||
|
update_icon()
|
||||||
|
if(always_process)
|
||||||
|
processing_objects |= src
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/Destroy()
|
/obj/item/weapon/weldingtool/Destroy()
|
||||||
if(welding)
|
if(welding || always_process)
|
||||||
processing_objects -= src
|
processing_objects -= src
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
@@ -216,9 +355,12 @@
|
|||||||
|
|
||||||
/obj/item/weapon/weldingtool/process()
|
/obj/item/weapon/weldingtool/process()
|
||||||
if(welding)
|
if(welding)
|
||||||
if(prob(5))
|
++burned_fuel_for
|
||||||
|
if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL)
|
||||||
remove_fuel(1)
|
remove_fuel(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(get_fuel() < 1)
|
if(get_fuel() < 1)
|
||||||
setWelding(0)
|
setWelding(0)
|
||||||
|
|
||||||
@@ -270,19 +412,25 @@
|
|||||||
/obj/item/weapon/weldingtool/proc/get_fuel()
|
/obj/item/weapon/weldingtool/proc/get_fuel()
|
||||||
return reagents.get_reagent_amount("fuel")
|
return reagents.get_reagent_amount("fuel")
|
||||||
|
|
||||||
|
/obj/item/weapon/weldingtool/proc/get_max_fuel()
|
||||||
|
return max_fuel
|
||||||
|
|
||||||
//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use()
|
//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use()
|
||||||
/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null)
|
/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null)
|
||||||
if(!welding)
|
if(!welding)
|
||||||
return 0
|
return 0
|
||||||
|
if(amount)
|
||||||
|
burned_fuel_for = 0 // Reset the counter since we're removing fuel.
|
||||||
if(get_fuel() >= amount)
|
if(get_fuel() >= amount)
|
||||||
reagents.remove_reagent("fuel", amount)
|
reagents.remove_reagent("fuel", amount)
|
||||||
if(M)
|
if(M)
|
||||||
eyecheck(M)
|
eyecheck(M)
|
||||||
|
update_icon()
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
if(M)
|
if(M)
|
||||||
M << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
M << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
||||||
|
update_icon()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
//Returns whether or not the welding tool is currently on.
|
//Returns whether or not the welding tool is currently on.
|
||||||
@@ -291,7 +439,29 @@
|
|||||||
|
|
||||||
/obj/item/weapon/weldingtool/update_icon()
|
/obj/item/weapon/weldingtool/update_icon()
|
||||||
..()
|
..()
|
||||||
icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]"
|
overlays.Cut()
|
||||||
|
// Welding overlay.
|
||||||
|
if(welding)
|
||||||
|
var/image/I = image(icon, src, "[icon_state]-on")
|
||||||
|
overlays.Add(I)
|
||||||
|
item_state = "[initial(item_state)]1"
|
||||||
|
else
|
||||||
|
item_state = initial(item_state)
|
||||||
|
|
||||||
|
// Fuel counter overlay.
|
||||||
|
if(change_icons && get_max_fuel())
|
||||||
|
var/ratio = get_fuel() / get_max_fuel()
|
||||||
|
ratio = Ceiling(ratio*4) * 25
|
||||||
|
var/image/I = image(icon, src, "[icon_state][ratio]")
|
||||||
|
overlays.Add(I)
|
||||||
|
|
||||||
|
// Lights
|
||||||
|
if(welding && flame_intensity)
|
||||||
|
set_light(flame_intensity, flame_intensity, flame_color)
|
||||||
|
else
|
||||||
|
set_light(0)
|
||||||
|
|
||||||
|
// icon_state = welding ? "[icon_state]1" : "[initial(icon_state)]"
|
||||||
var/mob/M = loc
|
var/mob/M = loc
|
||||||
if(istype(M))
|
if(istype(M))
|
||||||
M.update_inv_l_hand()
|
M.update_inv_l_hand()
|
||||||
@@ -342,12 +512,15 @@
|
|||||||
M << "<span class='notice'>You switch the [src] on.</span>"
|
M << "<span class='notice'>You switch the [src] on.</span>"
|
||||||
else if(T)
|
else if(T)
|
||||||
T.visible_message("<span class='danger'>\The [src] turns on.</span>")
|
T.visible_message("<span class='danger'>\The [src] turns on.</span>")
|
||||||
|
playsound(loc, acti_sound, 50, 1)
|
||||||
src.force = 15
|
src.force = 15
|
||||||
src.damtype = "fire"
|
src.damtype = "fire"
|
||||||
src.w_class = ITEMSIZE_LARGE
|
src.w_class = ITEMSIZE_LARGE
|
||||||
|
src.hitsound = 'sound/items/welder.ogg'
|
||||||
welding = 1
|
welding = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
processing_objects |= src
|
if(!always_process)
|
||||||
|
processing_objects |= src
|
||||||
else
|
else
|
||||||
if(M)
|
if(M)
|
||||||
var/msg = max_fuel ? "welding fuel" : "charge"
|
var/msg = max_fuel ? "welding fuel" : "charge"
|
||||||
@@ -355,22 +528,27 @@
|
|||||||
return
|
return
|
||||||
//Otherwise
|
//Otherwise
|
||||||
else if(!set_welding && welding)
|
else if(!set_welding && welding)
|
||||||
processing_objects -= src
|
if(!always_process)
|
||||||
|
processing_objects -= src
|
||||||
if(M)
|
if(M)
|
||||||
M << "<span class='notice'>You switch \the [src] off.</span>"
|
M << "<span class='notice'>You switch \the [src] off.</span>"
|
||||||
else if(T)
|
else if(T)
|
||||||
T.visible_message("<span class='warning'>\The [src] turns off.</span>")
|
T.visible_message("<span class='warning'>\The [src] turns off.</span>")
|
||||||
|
playsound(loc, deac_sound, 50, 1)
|
||||||
src.force = 3
|
src.force = 3
|
||||||
src.damtype = "brute"
|
src.damtype = "brute"
|
||||||
src.w_class = initial(src.w_class)
|
src.w_class = initial(src.w_class)
|
||||||
src.welding = 0
|
src.welding = 0
|
||||||
|
src.hitsound = initial(src.hitsound)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
//Decides whether or not to damage a player's eyes based on what they're wearing as protection
|
//Decides whether or not to damage a player's eyes based on what they're wearing as protection
|
||||||
//Note: This should probably be moved to mob
|
//Note: This should probably be moved to mob
|
||||||
/obj/item/weapon/weldingtool/proc/eyecheck(mob/user as mob)
|
/obj/item/weapon/weldingtool/proc/eyecheck(mob/living/carbon/user)
|
||||||
if(!iscarbon(user)) return 1
|
if(!istype(user))
|
||||||
var/safety = user:eyecheck()
|
return 1
|
||||||
|
var/safety = user.eyecheck()
|
||||||
|
safety = between(-1, safety + eye_safety_modifier, 2)
|
||||||
if(istype(user, /mob/living/carbon/human))
|
if(istype(user, /mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = user
|
var/mob/living/carbon/human/H = user
|
||||||
var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
|
var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
|
||||||
@@ -410,36 +588,71 @@
|
|||||||
|
|
||||||
/obj/item/weapon/weldingtool/largetank
|
/obj/item/weapon/weldingtool/largetank
|
||||||
name = "industrial welding tool"
|
name = "industrial welding tool"
|
||||||
|
desc = "A slightly larger welder with a larger tank."
|
||||||
|
icon_state = "indwelder"
|
||||||
max_fuel = 40
|
max_fuel = 40
|
||||||
origin_tech = list(TECH_ENGINEERING = 2)
|
origin_tech = list(TECH_ENGINEERING = 2, TECH_PHORON = 2)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60)
|
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 60)
|
||||||
|
|
||||||
|
/obj/item/weapon/weldingtool/largetank/cyborg
|
||||||
|
name = "integrated welding tool"
|
||||||
|
desc = "An advanced welder designed to be used in robotic systems."
|
||||||
|
toolspeed = 0.5
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/hugetank
|
/obj/item/weapon/weldingtool/hugetank
|
||||||
name = "upgraded welding tool"
|
name = "upgraded welding tool"
|
||||||
|
desc = "A much larger welder with a huge tank."
|
||||||
|
icon_state = "indwelder"
|
||||||
max_fuel = 80
|
max_fuel = 80
|
||||||
w_class = ITEMSIZE_NORMAL
|
w_class = ITEMSIZE_NORMAL
|
||||||
origin_tech = list(TECH_ENGINEERING = 3)
|
origin_tech = list(TECH_ENGINEERING = 3)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
|
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
|
||||||
|
|
||||||
|
/obj/item/weapon/weldingtool/mini
|
||||||
|
name = "emergency welding tool"
|
||||||
|
desc = "A miniature welder used during emergencies."
|
||||||
|
icon_state = "miniwelder"
|
||||||
|
max_fuel = 10
|
||||||
|
w_class = ITEMSIZE_SMALL
|
||||||
|
matter = list(MAT_METAL = 30, MAT_GLASS = 10)
|
||||||
|
change_icons = 0
|
||||||
|
toolspeed = 2
|
||||||
|
eye_safety_modifier = 1 // Safer on eyes.
|
||||||
|
|
||||||
|
/obj/item/weapon/weldingtool/ayyy
|
||||||
|
name = "alien welding tool"
|
||||||
|
desc = "An alien welding tool. Whatever fuel it uses, it never runs out."
|
||||||
|
icon = 'icons/obj/abductor.dmi'
|
||||||
|
icon_state = "welder"
|
||||||
|
toolspeed = 0.1
|
||||||
|
flame_color = "#6699FF" // Light bluish.
|
||||||
|
eye_safety_modifier = 2
|
||||||
|
change_icons = 0
|
||||||
|
origin_tech = list(TECH_PHORON = 5 ,TECH_ENGINEERING = 5)
|
||||||
|
always_process = TRUE
|
||||||
|
|
||||||
|
/obj/item/weapon/weldingtool/ayyy/process()
|
||||||
|
if(get_fuel() <= get_max_fuel())
|
||||||
|
reagents.add_reagent("fuel", 1)
|
||||||
|
..()
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/experimental
|
/obj/item/weapon/weldingtool/experimental
|
||||||
name = "experimental welding tool"
|
name = "experimental welding tool"
|
||||||
|
desc = "An experimental welder capable of self-fuel generation. It can output a flame hotter than regular welders."
|
||||||
|
icon_state = "exwelder"
|
||||||
max_fuel = 40
|
max_fuel = 40
|
||||||
w_class = ITEMSIZE_NORMAL
|
w_class = ITEMSIZE_NORMAL
|
||||||
origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3)
|
origin_tech = list(TECH_ENGINEERING = 4, TECH_PHORON = 3)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
|
matter = list(DEFAULT_WALL_MATERIAL = 70, "glass" = 120)
|
||||||
|
toolspeed = 0.5
|
||||||
|
change_icons = 0
|
||||||
|
flame_intensity = 3
|
||||||
|
always_process = TRUE
|
||||||
var/nextrefueltick = 0
|
var/nextrefueltick = 0
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/experimental/New()
|
|
||||||
processing_objects |= src
|
|
||||||
..()
|
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/experimental/Destroy()
|
|
||||||
processing_objects -= src
|
|
||||||
return ..()
|
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/experimental/process()
|
/obj/item/weapon/weldingtool/experimental/process()
|
||||||
..()
|
..()
|
||||||
if(get_fuel() < max_fuel && nextrefueltick < world.time)
|
if(get_fuel() < get_max_fuel() && nextrefueltick < world.time)
|
||||||
nextrefueltick = world.time + 10
|
nextrefueltick = world.time + 10
|
||||||
reagents.add_reagent("fuel", 1)
|
reagents.add_reagent("fuel", 1)
|
||||||
|
|
||||||
@@ -449,12 +662,17 @@
|
|||||||
|
|
||||||
/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC
|
/obj/item/weapon/weldingtool/electric //AND HIS WELDING WAS ELECTRIC
|
||||||
name = "electric welding tool"
|
name = "electric welding tool"
|
||||||
|
desc = "A welder which runs off of electricity."
|
||||||
icon_state = "arcwelder"
|
icon_state = "arcwelder"
|
||||||
max_fuel = 0 //We'll handle the consumption later.
|
max_fuel = 0 //We'll handle the consumption later.
|
||||||
|
item_state = "ewelder"
|
||||||
var/obj/item/weapon/cell/power_supply //What type of power cell this uses
|
var/obj/item/weapon/cell/power_supply //What type of power cell this uses
|
||||||
var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery
|
var/charge_cost = 24 //The rough equivalent of 1 unit of fuel, based on us wanting 10 welds per battery
|
||||||
var/cell_type = /obj/item/weapon/cell/device
|
var/cell_type = /obj/item/weapon/cell/device
|
||||||
var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1
|
var/use_external_power = 0 //If in a borg or hardsuit, this needs to = 1
|
||||||
|
flame_color = "#00CCFF" // Blue-ish, to set it apart from the gas flames.
|
||||||
|
acti_sound = 'sound/effects/sparks4.ogg'
|
||||||
|
deac_sound = 'sound/effects/sparks4.ogg'
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/electric/New()
|
/obj/item/weapon/weldingtool/electric/New()
|
||||||
..()
|
..()
|
||||||
@@ -485,6 +703,15 @@
|
|||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
/obj/item/weapon/weldingtool/electric/get_max_fuel()
|
||||||
|
if(use_external_power)
|
||||||
|
var/obj/item/weapon/cell/external = get_external_power_supply()
|
||||||
|
return external.maxcharge
|
||||||
|
else if(power_supply)
|
||||||
|
return power_supply.maxcharge
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null)
|
/obj/item/weapon/weldingtool/electric/remove_fuel(var/amount = 1, var/mob/M = null)
|
||||||
if(!welding)
|
if(!welding)
|
||||||
return 0
|
return 0
|
||||||
@@ -496,10 +723,12 @@
|
|||||||
power_supply.give(charge_cost) //Give it back to the cell.
|
power_supply.give(charge_cost) //Give it back to the cell.
|
||||||
if(M)
|
if(M)
|
||||||
eyecheck(M)
|
eyecheck(M)
|
||||||
|
update_icon()
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
if(M)
|
if(M)
|
||||||
M << "<span class='notice'>You need more energy to complete this task.</span>"
|
M << "<span class='notice'>You need more energy to complete this task.</span>"
|
||||||
|
update_icon()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob)
|
/obj/item/weapon/weldingtool/electric/attack_hand(mob/user as mob)
|
||||||
@@ -556,7 +785,7 @@
|
|||||||
/obj/item/weapon/crowbar
|
/obj/item/weapon/crowbar
|
||||||
name = "crowbar"
|
name = "crowbar"
|
||||||
desc = "Used to remove floors and to pry open doors."
|
desc = "Used to remove floors and to pry open doors."
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/tools.dmi'
|
||||||
icon_state = "crowbar"
|
icon_state = "crowbar"
|
||||||
flags = CONDUCT
|
flags = CONDUCT
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
@@ -568,6 +797,8 @@
|
|||||||
origin_tech = list(TECH_ENGINEERING = 1)
|
origin_tech = list(TECH_ENGINEERING = 1)
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50)
|
||||||
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
|
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
|
||||||
|
usesound = 'sound/items/crowbar.ogg'
|
||||||
|
toolspeed = 1
|
||||||
|
|
||||||
/obj/item/weapon/crowbar/red
|
/obj/item/weapon/crowbar/red
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/items.dmi'
|
||||||
@@ -592,6 +823,40 @@
|
|||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/item/weapon/crowbar/ayyy
|
||||||
|
name = "alien crowbar"
|
||||||
|
desc = "A hard-light crowbar. It appears to pry by itself, without any effort required."
|
||||||
|
icon = 'icons/obj/abductor.dmi'
|
||||||
|
usesound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||||
|
icon_state = "crowbar"
|
||||||
|
toolspeed = 0.1
|
||||||
|
origin_tech = list(TECH_COMBAT = 4, TECH_ENGINEERING = 4)
|
||||||
|
|
||||||
|
/obj/item/weapon/crowbar/cyborg
|
||||||
|
name = "hydraulic crowbar"
|
||||||
|
desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbars in industrial synthetics."
|
||||||
|
usesound = 'sound/items/jaws_pry.ogg'
|
||||||
|
force = 10
|
||||||
|
toolspeed = 0.5
|
||||||
|
|
||||||
|
/obj/item/weapon/crowbar/power
|
||||||
|
name = "jaws of life"
|
||||||
|
desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a prying head."
|
||||||
|
icon_state = "jaws_pry"
|
||||||
|
item_state = "jawsoflife"
|
||||||
|
matter = list(MAT_METAL=150, MAT_SILVER=50, MAT_TITANIUM=25)
|
||||||
|
origin_tech = list(TECH_MATERIALS = 2, TECH_ENGINEERING = 2)
|
||||||
|
usesound = 'sound/items/jaws_pry.ogg'
|
||||||
|
force = 15
|
||||||
|
toolspeed = 0.25
|
||||||
|
|
||||||
|
/obj/item/weapon/crowbar/power/attack_self(mob/user)
|
||||||
|
playsound(get_turf(user), 'sound/items/change_jaws.ogg', 50, 1)
|
||||||
|
var/obj/item/weapon/wirecutters/power/cutjaws = new /obj/item/weapon/wirecutters/power
|
||||||
|
to_chat(user, "<span class='notice'>You attach the cutting jaws to [src].</span>")
|
||||||
|
qdel(src)
|
||||||
|
user.put_in_active_hand(cutjaws)
|
||||||
|
|
||||||
/*/obj/item/weapon/combitool
|
/*/obj/item/weapon/combitool
|
||||||
name = "combi-tool"
|
name = "combi-tool"
|
||||||
desc = "It even has one of those nubbins for doing the thingy."
|
desc = "It even has one of those nubbins for doing the thingy."
|
||||||
@@ -649,3 +914,5 @@
|
|||||||
tool.afterattack(target,user,1)
|
tool.afterattack(target,user,1)
|
||||||
if(tool)
|
if(tool)
|
||||||
tool.loc = src*/
|
tool.loc = src*/
|
||||||
|
|
||||||
|
#undef WELDER_FUEL_BURN_INTERVAL
|
||||||
@@ -218,6 +218,7 @@
|
|||||||
else
|
else
|
||||||
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
||||||
return
|
return
|
||||||
|
playsound(src, WT.usesound, 50)
|
||||||
new /obj/item/stack/material/steel(src.loc)
|
new /obj/item/stack/material/steel(src.loc)
|
||||||
for(var/mob/M in viewers(src))
|
for(var/mob/M in viewers(src))
|
||||||
M.show_message("<span class='notice'>\The [src] has been cut apart by [user] with \the [WT].</span>", 3, "You hear welding.", 2)
|
M.show_message("<span class='notice'>\The [src] has been cut apart by [user] with \the [WT].</span>", 3, "You hear welding.", 2)
|
||||||
@@ -249,6 +250,7 @@
|
|||||||
else
|
else
|
||||||
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
||||||
return
|
return
|
||||||
|
playsound(src, WT.usesound, 50)
|
||||||
src.welded = !src.welded
|
src.welded = !src.welded
|
||||||
src.update_icon()
|
src.update_icon()
|
||||||
for(var/mob/M in viewers(src))
|
for(var/mob/M in viewers(src))
|
||||||
@@ -259,7 +261,8 @@
|
|||||||
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
||||||
else
|
else
|
||||||
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
|
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
|
||||||
if(do_after(user, 20))
|
playsound(src, W.usesound, 50)
|
||||||
|
if(do_after(user, 20 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
new /obj/item/clothing/suit/storage/hazardvest(src)
|
new /obj/item/clothing/suit/storage/hazardvest(src)
|
||||||
new /obj/item/clothing/mask/gas(src)
|
new /obj/item/clothing/mask/gas(src)
|
||||||
new /obj/item/device/multitool(src)
|
new /obj/item/device/multitool(src)
|
||||||
new /obj/item/weapon/weldingtool/experimental(src)
|
new /obj/item/weapon/storage/belt/utility/chief/full(src)
|
||||||
new /obj/item/device/flash(src)
|
new /obj/item/device/flash(src)
|
||||||
new /obj/item/taperoll/engineering(src)
|
new /obj/item/taperoll/engineering(src)
|
||||||
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
|
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
||||||
else
|
else
|
||||||
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
|
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
else if(istype(W, /obj/item/weapon/wirecutters))
|
else if(istype(W, /obj/item/weapon/wirecutters))
|
||||||
if(rigged)
|
if(rigged)
|
||||||
user << "<span class='notice'>You cut away the wiring.</span>"
|
user << "<span class='notice'>You cut away the wiring.</span>"
|
||||||
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src.loc, W.usesound, 100, 1)
|
||||||
rigged = 0
|
rigged = 0
|
||||||
return
|
return
|
||||||
else return attack_hand(user)
|
else return attack_hand(user)
|
||||||
|
|||||||
@@ -37,9 +37,8 @@
|
|||||||
|
|
||||||
/obj/structure/curtain/attackby(obj/item/P, mob/user)
|
/obj/structure/curtain/attackby(obj/item/P, mob/user)
|
||||||
if(istype(P, /obj/item/weapon/wirecutters))
|
if(istype(P, /obj/item/weapon/wirecutters))
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You start to cut the shower curtains.</span>"
|
user << "<span class='notice'>You start to cut the shower curtains.</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
|
||||||
if(do_after(user, 10))
|
if(do_after(user, 10))
|
||||||
user << "<span class='notice'>You cut the shower curtains.</span>"
|
user << "<span class='notice'>You cut the shower curtains.</span>"
|
||||||
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
|
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
|
||||||
|
|||||||
@@ -167,10 +167,10 @@
|
|||||||
if(istype(W, /obj/item/weapon/weldingtool) && ( (istext(glass)) || (glass == 1) || (!anchored) ))
|
if(istype(W, /obj/item/weapon/weldingtool) && ( (istext(glass)) || (glass == 1) || (!anchored) ))
|
||||||
var/obj/item/weapon/weldingtool/WT = W
|
var/obj/item/weapon/weldingtool/WT = W
|
||||||
if (WT.remove_fuel(0, user))
|
if (WT.remove_fuel(0, user))
|
||||||
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
|
playsound(src, WT.usesound, 50, 1)
|
||||||
if(istext(glass))
|
if(istext(glass))
|
||||||
user.visible_message("[user] welds the [glass] plating off the airlock assembly.", "You start to weld the [glass] plating off the airlock assembly.")
|
user.visible_message("[user] welds the [glass] plating off the airlock assembly.", "You start to weld the [glass] plating off the airlock assembly.")
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * WT.toolspeed))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
to_chat(user, "<span class='notice'>You welded the [glass] plating off!</span>")
|
to_chat(user, "<span class='notice'>You welded the [glass] plating off!</span>")
|
||||||
var/M = text2path("/obj/item/stack/material/[glass]")
|
var/M = text2path("/obj/item/stack/material/[glass]")
|
||||||
@@ -178,14 +178,14 @@
|
|||||||
glass = 0
|
glass = 0
|
||||||
else if(glass == 1)
|
else if(glass == 1)
|
||||||
user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly.")
|
user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly.")
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * WT.toolspeed))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
to_chat(user, "<span class='notice'>You welded the glass panel out!</span>")
|
to_chat(user, "<span class='notice'>You welded the glass panel out!</span>")
|
||||||
new /obj/item/stack/material/glass/reinforced(src.loc)
|
new /obj/item/stack/material/glass/reinforced(src.loc)
|
||||||
glass = 0
|
glass = 0
|
||||||
else if(!anchored)
|
else if(!anchored)
|
||||||
user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.")
|
user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.")
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * WT.toolspeed))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
to_chat(user, "<span class='notice'>You dissasembled the airlock assembly!</span>")
|
to_chat(user, "<span class='notice'>You dissasembled the airlock assembly!</span>")
|
||||||
new /obj/item/stack/material/steel(src.loc, 4)
|
new /obj/item/stack/material/steel(src.loc, 4)
|
||||||
@@ -195,13 +195,13 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/wrench) && state == 0)
|
else if(istype(W, /obj/item/weapon/wrench) && state == 0)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
if(anchored)
|
if(anchored)
|
||||||
user.visible_message("[user] begins unsecuring the airlock assembly from the floor.", "You starts unsecuring the airlock assembly from the floor.")
|
user.visible_message("[user] begins unsecuring the airlock assembly from the floor.", "You starts unsecuring the airlock assembly from the floor.")
|
||||||
else
|
else
|
||||||
user.visible_message("[user] begins securing the airlock assembly to the floor.", "You starts securing the airlock assembly to the floor.")
|
user.visible_message("[user] begins securing the airlock assembly to the floor.", "You starts securing the airlock assembly to the floor.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
to_chat(user, "<span class='notice'>You [anchored? "un" : ""]secured the airlock assembly!</span>")
|
to_chat(user, "<span class='notice'>You [anchored? "un" : ""]secured the airlock assembly!</span>")
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
@@ -218,17 +218,17 @@
|
|||||||
to_chat(user, "<span class='notice'>You wire the airlock.</span>")
|
to_chat(user, "<span class='notice'>You wire the airlock.</span>")
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 )
|
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 )
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
|
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
to_chat(user, "<span class='notice'>You cut the airlock wires.!</span>")
|
to_chat(user, "<span class='notice'>You cut the airlock wires.!</span>")
|
||||||
new/obj/item/stack/cable_coil(src.loc, 1)
|
new/obj/item/stack/cable_coil(src.loc, 1)
|
||||||
src.state = 0
|
src.state = 0
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1)
|
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
|
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))
|
if(do_after(user, 40))
|
||||||
@@ -246,10 +246,10 @@
|
|||||||
src.state = 1
|
src.state = 1
|
||||||
return
|
return
|
||||||
|
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("\The [user] starts removing the electronics from the airlock assembly.", "You start removing the electronics from the airlock assembly.")
|
user.visible_message("\The [user] starts removing the electronics from the airlock assembly.", "You start removing the electronics from the airlock assembly.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
to_chat(user, "<span class='notice'>You removed the airlock electronics!</span>")
|
to_chat(user, "<span class='notice'>You removed the airlock electronics!</span>")
|
||||||
src.state = 1
|
src.state = 1
|
||||||
@@ -282,10 +282,10 @@
|
|||||||
glass = material_name
|
glass = material_name
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
|
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
to_chat(user, "<span class='notice'>Now finishing the airlock.</span>")
|
to_chat(user, "<span class='notice'>Now finishing the airlock.</span>")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
to_chat(user, "<span class='notice'>You finish the airlock!</span>")
|
to_chat(user, "<span class='notice'>You finish the airlock!</span>")
|
||||||
var/path
|
var/path
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
/obj/structure/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/structure/bed/chair/e_chair/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
var/obj/structure/bed/chair/C = new /obj/structure/bed/chair(loc)
|
var/obj/structure/bed/chair/C = new /obj/structure/bed/chair(loc)
|
||||||
playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
C.set_dir(dir)
|
C.set_dir(dir)
|
||||||
part.loc = loc
|
part.loc = loc
|
||||||
part.master = null
|
part.master = null
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
if(istype(O, /obj/item/weapon/wrench))
|
if(istype(O, /obj/item/weapon/wrench))
|
||||||
if(!has_extinguisher)
|
if(!has_extinguisher)
|
||||||
user << "<span class='notice'>You start to unwrench the extinguisher cabinet.</span>"
|
user << "<span class='notice'>You start to unwrench the extinguisher cabinet.</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, O.usesound, 50, 1)
|
||||||
if(do_after(user, 15))
|
if(do_after(user, 15 * O.toolspeed))
|
||||||
user << "<span class='notice'>You unwrench the extinguisher cabinet.</span>"
|
user << "<span class='notice'>You unwrench the extinguisher cabinet.</span>"
|
||||||
new /obj/item/frame/extinguisher_cabinet( src.loc )
|
new /obj/item/frame/extinguisher_cabinet( src.loc )
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -56,22 +56,22 @@
|
|||||||
/obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob)
|
/obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench) && state == 0)
|
if(istype(W, /obj/item/weapon/wrench) && state == 0)
|
||||||
if(anchored && !reinf_material)
|
if(anchored && !reinf_material)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user << "<span class='notice'>Now disassembling the girder...</span>"
|
user << "<span class='notice'>Now disassembling the girder...</span>"
|
||||||
if(do_after(user,40))
|
if(do_after(user,40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You dissasembled the girder!</span>"
|
user << "<span class='notice'>You dissasembled the girder!</span>"
|
||||||
dismantle()
|
dismantle()
|
||||||
else if(!anchored)
|
else if(!anchored)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user << "<span class='notice'>Now securing the girder...</span>"
|
user << "<span class='notice'>Now securing the girder...</span>"
|
||||||
if(do_after(user, 40,src))
|
if(do_after(user, 40 * W.toolspeed, src))
|
||||||
user << "<span class='notice'>You secured the girder!</span>"
|
user << "<span class='notice'>You secured the girder!</span>"
|
||||||
reset_girder()
|
reset_girder()
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
|
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
|
||||||
user << "<span class='notice'>Now slicing apart the girder...</span>"
|
user << "<span class='notice'>Now slicing apart the girder...</span>"
|
||||||
if(do_after(user,30))
|
if(do_after(user,30 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You slice apart the girder!</span>"
|
user << "<span class='notice'>You slice apart the girder!</span>"
|
||||||
dismantle()
|
dismantle()
|
||||||
@@ -82,21 +82,21 @@
|
|||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/screwdriver))
|
else if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
if(state == 2)
|
if(state == 2)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user << "<span class='notice'>Now unsecuring support struts...</span>"
|
user << "<span class='notice'>Now unsecuring support struts...</span>"
|
||||||
if(do_after(user,40))
|
if(do_after(user,40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You unsecured the support struts!</span>"
|
user << "<span class='notice'>You unsecured the support struts!</span>"
|
||||||
state = 1
|
state = 1
|
||||||
else if(anchored && !reinf_material)
|
else if(anchored && !reinf_material)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
reinforcing = !reinforcing
|
reinforcing = !reinforcing
|
||||||
user << "<span class='notice'>\The [src] can now be [reinforcing? "reinforced" : "constructed"]!</span>"
|
user << "<span class='notice'>\The [src] can now be [reinforcing? "reinforced" : "constructed"]!</span>"
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1)
|
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1)
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user << "<span class='notice'>Now removing support struts...</span>"
|
user << "<span class='notice'>Now removing support struts...</span>"
|
||||||
if(do_after(user,40))
|
if(do_after(user,40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You removed the support struts!</span>"
|
user << "<span class='notice'>You removed the support struts!</span>"
|
||||||
reinf_material.place_dismantled_product(get_turf(src))
|
reinf_material.place_dismantled_product(get_turf(src))
|
||||||
@@ -104,9 +104,9 @@
|
|||||||
reset_girder()
|
reset_girder()
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored)
|
else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored)
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user << "<span class='notice'>Now dislodging the girder...</span>"
|
user << "<span class='notice'>Now dislodging the girder...</span>"
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
user << "<span class='notice'>You dislodged the girder!</span>"
|
user << "<span class='notice'>You dislodged the girder!</span>"
|
||||||
icon_state = "displaced"
|
icon_state = "displaced"
|
||||||
@@ -233,15 +233,15 @@
|
|||||||
|
|
||||||
/obj/structure/girder/cult/attackby(obj/item/W as obj, mob/user as mob)
|
/obj/structure/girder/cult/attackby(obj/item/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user << "<span class='notice'>Now disassembling the girder...</span>"
|
user << "<span class='notice'>Now disassembling the girder...</span>"
|
||||||
if(do_after(user,40))
|
if(do_after(user,40 * W.toolspeed))
|
||||||
user << "<span class='notice'>You dissasembled the girder!</span>"
|
user << "<span class='notice'>You dissasembled the girder!</span>"
|
||||||
dismantle()
|
dismantle()
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
|
else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter))
|
||||||
user << "<span class='notice'>Now slicing apart the girder...</span>"
|
user << "<span class='notice'>Now slicing apart the girder...</span>"
|
||||||
if(do_after(user,30))
|
if(do_after(user,30 * W.toolspeed))
|
||||||
user << "<span class='notice'>You slice apart the girder!</span>"
|
user << "<span class='notice'>You slice apart the girder!</span>"
|
||||||
dismantle()
|
dismantle()
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
//Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact
|
//Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact
|
||||||
var/damage = Proj.get_structure_damage()
|
var/damage = Proj.get_structure_damage()
|
||||||
var/passthrough = 0
|
var/passthrough = 0
|
||||||
|
|
||||||
if(!damage) return
|
if(!damage) return
|
||||||
|
|
||||||
//20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area.
|
//20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area.
|
||||||
@@ -96,12 +96,12 @@
|
|||||||
/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(iswirecutter(W))
|
if(iswirecutter(W))
|
||||||
if(!shock(user, 100))
|
if(!shock(user, 100))
|
||||||
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
new /obj/item/stack/rods(get_turf(src), destroyed ? 1 : 2)
|
new /obj/item/stack/rods(get_turf(src), destroyed ? 1 : 2)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored))
|
else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored))
|
||||||
if(!shock(user, 90))
|
if(!shock(user, 90))
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] the grille.</span>", \
|
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] the grille.</span>", \
|
||||||
"<span class='notice'>You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.</span>")
|
"<span class='notice'>You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.</span>")
|
||||||
|
|||||||
@@ -51,8 +51,8 @@
|
|||||||
/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob)
|
/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
if(istype(I, /obj/item/weapon/wrench))
|
if(istype(I, /obj/item/weapon/wrench))
|
||||||
if(!glass)
|
if(!glass)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, I.usesound, 50, 1)
|
||||||
if(do_after(user, 20))
|
if(do_after(user, 20 * I.toolspeed))
|
||||||
user << "<span class='notice'>You unfasten the frame.</span>"
|
user << "<span class='notice'>You unfasten the frame.</span>"
|
||||||
new /obj/item/frame/mirror( src.loc )
|
new /obj/item/frame/mirror( src.loc )
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
new /obj/item/weapon/material/shard( src.loc )
|
new /obj/item/weapon/material/shard( src.loc )
|
||||||
return
|
return
|
||||||
if(!shattered && glass)
|
if(!shattered && glass)
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(src.loc, I.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You remove the glass.</span>"
|
user << "<span class='notice'>You remove the glass.</span>"
|
||||||
glass = !glass
|
glass = !glass
|
||||||
icon_state = "mirror_frame"
|
icon_state = "mirror_frame"
|
||||||
|
|||||||
@@ -414,18 +414,18 @@
|
|||||||
/obj/structure/device/piano/attackby(obj/item/O as obj, mob/user as mob)
|
/obj/structure/device/piano/attackby(obj/item/O as obj, mob/user as mob)
|
||||||
if (istype(O, /obj/item/weapon/wrench))
|
if (istype(O, /obj/item/weapon/wrench))
|
||||||
if (anchored)
|
if (anchored)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, O.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to loosen \the [src]'s casters...</span>"
|
user << "<span class='notice'>You begin to loosen \the [src]'s casters...</span>"
|
||||||
if (do_after(user, 40))
|
if (do_after(user, 40 * O.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] loosens \the [src]'s casters.", \
|
"[user] loosens \the [src]'s casters.", \
|
||||||
"<span class='notice'>You have loosened \the [src]. Now it can be pulled somewhere else.</span>", \
|
"<span class='notice'>You have loosened \the [src]. Now it can be pulled somewhere else.</span>", \
|
||||||
"You hear ratchet.")
|
"You hear ratchet.")
|
||||||
src.anchored = 0
|
src.anchored = 0
|
||||||
else
|
else
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, O.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You begin to tighten \the [src] to the floor...</span>"
|
user << "<span class='notice'>You begin to tighten \the [src] to the floor...</span>"
|
||||||
if (do_after(user, 20))
|
if (do_after(user, 20 * O.toolspeed))
|
||||||
user.visible_message( \
|
user.visible_message( \
|
||||||
"[user] tightens \the [src]'s casters.", \
|
"[user] tightens \the [src]'s casters.", \
|
||||||
"<span class='notice'>You have tightened \the [src]'s casters. Now it can be played again</span>.", \
|
"<span class='notice'>You have tightened \the [src]'s casters. Now it can be played again</span>.", \
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
user << "<span class='notice'>You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.</span>"
|
user << "<span class='notice'>You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.</span>"
|
||||||
if(istype(O, /obj/item/weapon/wrench))
|
if(istype(O, /obj/item/weapon/wrench))
|
||||||
user << "<span class='notice'>You start to unwrench the noticeboard.</span>"
|
user << "<span class='notice'>You start to unwrench the noticeboard.</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, O.usesound, 50, 1)
|
||||||
if(do_after(user, 15))
|
if(do_after(user, 15 * O.toolspeed))
|
||||||
user << "<span class='notice'>You unwrench the noticeboard.</span>"
|
user << "<span class='notice'>You unwrench the noticeboard.</span>"
|
||||||
new /obj/item/frame/noticeboard( src.loc )
|
new /obj/item/frame/noticeboard( src.loc )
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
/obj/structure/sign/attackby(obj/item/tool as obj, mob/user as mob) //deconstruction
|
/obj/structure/sign/attackby(obj/item/tool as obj, mob/user as mob) //deconstruction
|
||||||
if(istype(tool, /obj/item/weapon/screwdriver) && !istype(src, /obj/structure/sign/double))
|
if(istype(tool, /obj/item/weapon/screwdriver) && !istype(src, /obj/structure/sign/double))
|
||||||
|
playsound(src, tool.usesound, 50, 1)
|
||||||
user << "You unfasten the sign with your [tool]."
|
user << "You unfasten the sign with your [tool]."
|
||||||
var/obj/item/sign/S = new(src.loc)
|
var/obj/item/sign/S = new(src.loc)
|
||||||
S.name = name
|
S.name = name
|
||||||
|
|||||||
@@ -88,7 +88,7 @@
|
|||||||
|
|
||||||
/obj/structure/bed/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/structure/bed/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
dismantle()
|
dismantle()
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else if(istype(W,/obj/item/stack))
|
else if(istype(W,/obj/item/stack))
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
user << "\The [src] has no padding to remove."
|
user << "\The [src] has no padding to remove."
|
||||||
return
|
return
|
||||||
user << "You remove the padding from \the [src]."
|
user << "You remove the padding from \the [src]."
|
||||||
playsound(src, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src.loc, W.usesound, 100, 1)
|
||||||
remove_padding()
|
remove_padding()
|
||||||
|
|
||||||
else if(istype(W, /obj/item/weapon/grab))
|
else if(istype(W, /obj/item/weapon/grab))
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ var/global/list/stool_cache = list() //haha stool
|
|||||||
|
|
||||||
/obj/item/weapon/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/item/weapon/stool/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
if(istype(W, /obj/item/weapon/wrench))
|
if(istype(W, /obj/item/weapon/wrench))
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src, W.usesound, 50, 1)
|
||||||
dismantle()
|
dismantle()
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else if(istype(W,/obj/item/stack))
|
else if(istype(W,/obj/item/stack))
|
||||||
@@ -143,7 +143,7 @@ var/global/list/stool_cache = list() //haha stool
|
|||||||
user << "\The [src] has no padding to remove."
|
user << "\The [src] has no padding to remove."
|
||||||
return
|
return
|
||||||
user << "You remove the padding from \the [src]."
|
user << "You remove the padding from \the [src]."
|
||||||
playsound(src, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src.loc, W.usesound, 50, 1)
|
||||||
remove_padding()
|
remove_padding()
|
||||||
else
|
else
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -162,8 +162,8 @@
|
|||||||
if(istype(I, /obj/item/weapon/wrench))
|
if(istype(I, /obj/item/weapon/wrench))
|
||||||
var/newtemp = input(user, "What setting would you like to set the temperature valve to?", "Water Temperature Valve") in temperature_settings
|
var/newtemp = input(user, "What setting would you like to set the temperature valve to?", "Water Temperature Valve") in temperature_settings
|
||||||
user << "<span class='notice'>You begin to adjust the temperature valve with \the [I].</span>"
|
user << "<span class='notice'>You begin to adjust the temperature valve with \the [I].</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
playsound(src.loc, I.usesound, 50, 1)
|
||||||
if(do_after(user, 50))
|
if(do_after(user, 50 * I.toolspeed))
|
||||||
watertemp = newtemp
|
watertemp = newtemp
|
||||||
user.visible_message("<span class='notice'>[user] adjusts the shower with \the [I].</span>", "<span class='notice'>You adjust the shower with \the [I].</span>")
|
user.visible_message("<span class='notice'>[user] adjusts the shower with \the [I].</span>", "<span class='notice'>You adjust the shower with \the [I].</span>")
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
|
|||||||
@@ -93,9 +93,9 @@ obj/structure/windoor_assembly/Destroy()
|
|||||||
var/obj/item/weapon/weldingtool/WT = W
|
var/obj/item/weapon/weldingtool/WT = W
|
||||||
if (WT.remove_fuel(0,user))
|
if (WT.remove_fuel(0,user))
|
||||||
user.visible_message("[user] disassembles the windoor assembly.", "You start to disassemble the windoor assembly.")
|
user.visible_message("[user] disassembles the windoor assembly.", "You start to disassemble the windoor assembly.")
|
||||||
playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1)
|
playsound(src.loc, WT.usesound, 50, 1)
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * WT.toolspeed))
|
||||||
if(!src || !WT.isOn()) return
|
if(!src || !WT.isOn()) return
|
||||||
to_chat(user,"<span class='notice'>You disassembled the windoor assembly!</span>")
|
to_chat(user,"<span class='notice'>You disassembled the windoor assembly!</span>")
|
||||||
if(secure)
|
if(secure)
|
||||||
@@ -109,10 +109,10 @@ obj/structure/windoor_assembly/Destroy()
|
|||||||
|
|
||||||
//Wrenching an unsecure assembly anchors it in place. Step 4 complete
|
//Wrenching an unsecure assembly anchors it in place. Step 4 complete
|
||||||
if(istype(W, /obj/item/weapon/wrench) && !anchored)
|
if(istype(W, /obj/item/weapon/wrench) && !anchored)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("[user] secures the windoor assembly to the floor.", "You start to secure the windoor assembly to the floor.")
|
user.visible_message("[user] secures the windoor assembly to the floor.", "You start to secure the windoor assembly to the floor.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
to_chat(user,"<span class='notice'>You've secured the windoor assembly!</span>")
|
to_chat(user,"<span class='notice'>You've secured the windoor assembly!</span>")
|
||||||
src.anchored = 1
|
src.anchored = 1
|
||||||
@@ -120,10 +120,10 @@ obj/structure/windoor_assembly/Destroy()
|
|||||||
|
|
||||||
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
|
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
|
||||||
else if(istype(W, /obj/item/weapon/wrench) && anchored)
|
else if(istype(W, /obj/item/weapon/wrench) && anchored)
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("[user] unsecures the windoor assembly to the floor.", "You start to unsecure the windoor assembly to the floor.")
|
user.visible_message("[user] unsecures the windoor assembly to the floor.", "You start to unsecure the windoor assembly to the floor.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
to_chat(user,"<span class='notice'>You've unsecured the windoor assembly!</span>")
|
to_chat(user,"<span class='notice'>You've unsecured the windoor assembly!</span>")
|
||||||
src.anchored = 0
|
src.anchored = 0
|
||||||
@@ -146,10 +146,10 @@ obj/structure/windoor_assembly/Destroy()
|
|||||||
|
|
||||||
//Removing wire from the assembly. Step 5 undone.
|
//Removing wire from the assembly. Step 5 undone.
|
||||||
if(istype(W, /obj/item/weapon/wirecutters) && !src.electronics)
|
if(istype(W, /obj/item/weapon/wirecutters) && !src.electronics)
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
|
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src) return
|
if(!src) return
|
||||||
|
|
||||||
to_chat(user,"<span class='notice'>You cut the windoor wires.!</span>")
|
to_chat(user,"<span class='notice'>You cut the windoor wires.!</span>")
|
||||||
@@ -175,10 +175,10 @@ obj/structure/windoor_assembly/Destroy()
|
|||||||
|
|
||||||
//Screwdriver to remove airlock electronics. Step 6 undone.
|
//Screwdriver to remove airlock electronics. Step 6 undone.
|
||||||
else if(istype(W, /obj/item/weapon/screwdriver) && src.electronics)
|
else if(istype(W, /obj/item/weapon/screwdriver) && src.electronics)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.")
|
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
if(!src || !src.electronics) return
|
if(!src || !src.electronics) return
|
||||||
to_chat(user,"<span class='notice'>You've removed the airlock electronics!</span>")
|
to_chat(user,"<span class='notice'>You've removed the airlock electronics!</span>")
|
||||||
step = 1
|
step = 1
|
||||||
@@ -195,10 +195,10 @@ obj/structure/windoor_assembly/Destroy()
|
|||||||
to_chat(usr,"<span class='warning'>The assembly has broken airlock electronics.</span>")
|
to_chat(usr,"<span class='warning'>The assembly has broken airlock electronics.</span>")
|
||||||
return
|
return
|
||||||
to_chat(usr,browse(null, "window=windoor_access")) //Not sure what this actually does... -Ner
|
to_chat(usr,browse(null, "window=windoor_access")) //Not sure what this actually does... -Ner
|
||||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
user.visible_message("[user] pries the windoor into the frame.", "You start prying the windoor into the frame.")
|
user.visible_message("[user] pries the windoor into the frame.", "You start prying the windoor into the frame.")
|
||||||
|
|
||||||
if(do_after(user, 40))
|
if(do_after(user, 40 * W.toolspeed))
|
||||||
|
|
||||||
if(!src) return
|
if(!src) return
|
||||||
|
|
||||||
|
|||||||
@@ -242,29 +242,29 @@
|
|||||||
if(reinf && state >= 1)
|
if(reinf && state >= 1)
|
||||||
state = 3 - state
|
state = 3 - state
|
||||||
update_nearby_icons()
|
update_nearby_icons()
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
user << (state == 1 ? "<span class='notice'>You have unfastened the window from the frame.</span>" : "<span class='notice'>You have fastened the window to the frame.</span>")
|
user << (state == 1 ? "<span class='notice'>You have unfastened the window from the frame.</span>" : "<span class='notice'>You have fastened the window to the frame.</span>")
|
||||||
else if(reinf && state == 0)
|
else if(reinf && state == 0)
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
update_nearby_icons()
|
update_nearby_icons()
|
||||||
update_verbs()
|
update_verbs()
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
user << (anchored ? "<span class='notice'>You have fastened the frame to the floor.</span>" : "<span class='notice'>You have unfastened the frame from the floor.</span>")
|
user << (anchored ? "<span class='notice'>You have fastened the frame to the floor.</span>" : "<span class='notice'>You have unfastened the frame from the floor.</span>")
|
||||||
else if(!reinf)
|
else if(!reinf)
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
update_nearby_icons()
|
update_nearby_icons()
|
||||||
update_verbs()
|
update_verbs()
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
user << (anchored ? "<span class='notice'>You have fastened the window to the floor.</span>" : "<span class='notice'>You have unfastened the window.</span>")
|
user << (anchored ? "<span class='notice'>You have fastened the window to the floor.</span>" : "<span class='notice'>You have unfastened the window.</span>")
|
||||||
else if(istype(W, /obj/item/weapon/crowbar) && reinf && state <= 1)
|
else if(istype(W, /obj/item/weapon/crowbar) && reinf && state <= 1)
|
||||||
state = 1 - state
|
state = 1 - state
|
||||||
playsound(loc, 'sound/items/Crowbar.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
user << (state ? "<span class='notice'>You have pried the window into the frame.</span>" : "<span class='notice'>You have pried the window out of the frame.</span>")
|
user << (state ? "<span class='notice'>You have pried the window into the frame.</span>" : "<span class='notice'>You have pried the window out of the frame.</span>")
|
||||||
else if(istype(W, /obj/item/weapon/wrench) && !anchored && (!state || !reinf))
|
else if(istype(W, /obj/item/weapon/wrench) && !anchored && (!state || !reinf))
|
||||||
if(!glasstype)
|
if(!glasstype)
|
||||||
user << "<span class='notice'>You're not sure how to dismantle \the [src] properly.</span>"
|
user << "<span class='notice'>You're not sure how to dismantle \the [src] properly.</span>"
|
||||||
else
|
else
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
playsound(src, W.usesound, 75, 1)
|
||||||
visible_message("<span class='notice'>[user] dismantles \the [src].</span>")
|
visible_message("<span class='notice'>[user] dismantles \the [src].</span>")
|
||||||
if(dir == SOUTHWEST)
|
if(dir == SOUTHWEST)
|
||||||
var/obj/item/stack/material/mats = new glasstype(loc)
|
var/obj/item/stack/material/mats = new glasstype(loc)
|
||||||
|
|||||||
@@ -57,10 +57,9 @@ var/list/mechtoys = list(
|
|||||||
|
|
||||||
/obj/structure/plasticflaps/attackby(obj/item/P, mob/user)
|
/obj/structure/plasticflaps/attackby(obj/item/P, mob/user)
|
||||||
if(istype(P, /obj/item/weapon/wirecutters))
|
if(istype(P, /obj/item/weapon/wirecutters))
|
||||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
playsound(src, P.usesound, 50, 1)
|
||||||
user << "<span class='notice'>You start to cut the plastic flaps.</span>"
|
user << "<span class='notice'>You start to cut the plastic flaps.</span>"
|
||||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
if(do_after(user, 10 * P.toolspeed))
|
||||||
if(do_after(user, 10))
|
|
||||||
user << "<span class='notice'>You cut the plastic flaps.</span>"
|
user << "<span class='notice'>You cut the plastic flaps.</span>"
|
||||||
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
|
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
|
||||||
A.amount = 4
|
A.amount = 4
|
||||||
|
|||||||
@@ -16,19 +16,19 @@
|
|||||||
make_plating(1)
|
make_plating(1)
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
playsound(src, 'sound/items/Crowbar.ogg', 80, 1)
|
playsound(src, C.usesound, 80, 1)
|
||||||
return
|
return
|
||||||
else if(istype(C, /obj/item/weapon/screwdriver) && (flooring.flags & TURF_REMOVE_SCREWDRIVER))
|
else if(istype(C, /obj/item/weapon/screwdriver) && (flooring.flags & TURF_REMOVE_SCREWDRIVER))
|
||||||
if(broken || burnt)
|
if(broken || burnt)
|
||||||
return
|
return
|
||||||
user << "<span class='notice'>You unscrew and remove the [flooring.descriptor].</span>"
|
user << "<span class='notice'>You unscrew and remove the [flooring.descriptor].</span>"
|
||||||
make_plating(1)
|
make_plating(1)
|
||||||
playsound(src, 'sound/items/Screwdriver.ogg', 80, 1)
|
playsound(src, C.usesound, 80, 1)
|
||||||
return
|
return
|
||||||
else if(istype(C, /obj/item/weapon/wrench) && (flooring.flags & TURF_REMOVE_WRENCH))
|
else if(istype(C, /obj/item/weapon/wrench) && (flooring.flags & TURF_REMOVE_WRENCH))
|
||||||
user << "<span class='notice'>You unwrench and remove the [flooring.descriptor].</span>"
|
user << "<span class='notice'>You unwrench and remove the [flooring.descriptor].</span>"
|
||||||
make_plating(1)
|
make_plating(1)
|
||||||
playsound(src, 'sound/items/Ratchet.ogg', 80, 1)
|
playsound(src, C.usesound, 80, 1)
|
||||||
return
|
return
|
||||||
else if(istype(C, /obj/item/weapon/shovel) && (flooring.flags & TURF_REMOVE_SHOVEL))
|
else if(istype(C, /obj/item/weapon/shovel) && (flooring.flags & TURF_REMOVE_SHOVEL))
|
||||||
user << "<span class='notice'>You shovel off the [flooring.descriptor].</span>"
|
user << "<span class='notice'>You shovel off the [flooring.descriptor].</span>"
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
if(broken || burnt)
|
if(broken || burnt)
|
||||||
if(welder.remove_fuel(0,user))
|
if(welder.remove_fuel(0,user))
|
||||||
user << "<span class='notice'>You fix some dents on the broken plating.</span>"
|
user << "<span class='notice'>You fix some dents on the broken plating.</span>"
|
||||||
playsound(src, 'sound/items/Welder.ogg', 80, 1)
|
playsound(src, welder.usesound, 80, 1)
|
||||||
icon_state = "plating"
|
icon_state = "plating"
|
||||||
burnt = null
|
burnt = null
|
||||||
broken = null
|
broken = null
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
var/obj/item/weapon/weldingtool/WT = W
|
var/obj/item/weapon/weldingtool/WT = W
|
||||||
if( WT.remove_fuel(0,user) )
|
if( WT.remove_fuel(0,user) )
|
||||||
user << "<span class='notice'>You burn away the fungi with \the [WT].</span>"
|
user << "<span class='notice'>You burn away the fungi with \the [WT].</span>"
|
||||||
playsound(src, 'sound/items/Welder.ogg', 10, 1)
|
playsound(src, WT.usesound, 10, 1)
|
||||||
for(var/obj/effect/overlay/wallrot/WR in src)
|
for(var/obj/effect/overlay/wallrot/WR in src)
|
||||||
qdel(WR)
|
qdel(WR)
|
||||||
return
|
return
|
||||||
@@ -183,8 +183,8 @@
|
|||||||
|
|
||||||
if(WT.remove_fuel(0,user))
|
if(WT.remove_fuel(0,user))
|
||||||
user << "<span class='notice'>You start repairing the damage to [src].</span>"
|
user << "<span class='notice'>You start repairing the damage to [src].</span>"
|
||||||
playsound(src, 'sound/items/Welder.ogg', 100, 1)
|
playsound(src.loc, WT.usesound, 100, 1)
|
||||||
if(do_after(user, max(5, damage / 5)) && WT && WT.isOn())
|
if(do_after(user, max(5, damage / 5) * WT.toolspeed) && WT && WT.isOn())
|
||||||
user << "<span class='notice'>You finish repairing the damage to [src].</span>"
|
user << "<span class='notice'>You finish repairing the damage to [src].</span>"
|
||||||
take_damage(-damage)
|
take_damage(-damage)
|
||||||
else
|
else
|
||||||
@@ -208,8 +208,8 @@
|
|||||||
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
||||||
return
|
return
|
||||||
dismantle_verb = "cutting"
|
dismantle_verb = "cutting"
|
||||||
dismantle_sound = 'sound/items/Welder.ogg'
|
dismantle_sound = W.usesound
|
||||||
cut_delay *= 0.7
|
// cut_delay *= 0.7 // Tools themselves now can shorten the time it takes.
|
||||||
else if(istype(W,/obj/item/weapon/melee/energy/blade))
|
else if(istype(W,/obj/item/weapon/melee/energy/blade))
|
||||||
dismantle_sound = "sparks"
|
dismantle_sound = "sparks"
|
||||||
dismantle_verb = "slicing"
|
dismantle_verb = "slicing"
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
if(cut_delay<0)
|
if(cut_delay<0)
|
||||||
cut_delay = 0
|
cut_delay = 0
|
||||||
|
|
||||||
if(!do_after(user,cut_delay))
|
if(!do_after(user,cut_delay * W.toolspeed))
|
||||||
return
|
return
|
||||||
|
|
||||||
user << "<span class='notice'>You remove the outer plating.</span>"
|
user << "<span class='notice'>You remove the outer plating.</span>"
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
switch(construction_stage)
|
switch(construction_stage)
|
||||||
if(6)
|
if(6)
|
||||||
if (istype(W, /obj/item/weapon/wirecutters))
|
if (istype(W, /obj/item/weapon/wirecutters))
|
||||||
playsound(src, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
construction_stage = 5
|
construction_stage = 5
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
user << "<span class='notice'>You cut through the outer grille.</span>"
|
user << "<span class='notice'>You cut through the outer grille.</span>"
|
||||||
@@ -251,8 +251,8 @@
|
|||||||
if(5)
|
if(5)
|
||||||
if (istype(W, /obj/item/weapon/screwdriver))
|
if (istype(W, /obj/item/weapon/screwdriver))
|
||||||
user << "<span class='notice'>You begin removing the support lines.</span>"
|
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) || !istype(src, /turf/simulated/wall) || construction_stage != 5)
|
if(!do_after(user,40 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 5)
|
||||||
return
|
return
|
||||||
construction_stage = 4
|
construction_stage = 4
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
@@ -263,6 +263,7 @@
|
|||||||
construction_stage = 6
|
construction_stage = 6
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
user << "<span class='notice'>You mend the outer grille.</span>"
|
user << "<span class='notice'>You mend the outer grille.</span>"
|
||||||
|
playsound(src, W.usesound, 100, 1)
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
if(4)
|
if(4)
|
||||||
@@ -280,8 +281,8 @@
|
|||||||
cut_cover = 1
|
cut_cover = 1
|
||||||
if(cut_cover)
|
if(cut_cover)
|
||||||
user << "<span class='notice'>You begin slicing through the metal cover.</span>"
|
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) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
|
if(!do_after(user, 60 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
|
||||||
return
|
return
|
||||||
construction_stage = 3
|
construction_stage = 3
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
@@ -290,8 +291,8 @@
|
|||||||
return
|
return
|
||||||
else if (istype(W, /obj/item/weapon/screwdriver))
|
else if (istype(W, /obj/item/weapon/screwdriver))
|
||||||
user << "<span class='notice'>You begin screwing down the support lines.</span>"
|
user << "<span class='notice'>You begin screwing down the support lines.</span>"
|
||||||
playsound(src, 'sound/items/Screwdriver.ogg', 100, 1)
|
playsound(src, W.usesound, 100, 1)
|
||||||
if(!do_after(user,40) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
|
if(!do_after(user,40 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 4)
|
||||||
return
|
return
|
||||||
construction_stage = 5
|
construction_stage = 5
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
@@ -301,8 +302,8 @@
|
|||||||
if(3)
|
if(3)
|
||||||
if (istype(W, /obj/item/weapon/crowbar))
|
if (istype(W, /obj/item/weapon/crowbar))
|
||||||
user << "<span class='notice'>You struggle to pry off the cover.</span>"
|
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) || !istype(src, /turf/simulated/wall) || construction_stage != 3)
|
if(!do_after(user,100 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 3)
|
||||||
return
|
return
|
||||||
construction_stage = 2
|
construction_stage = 2
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
@@ -312,8 +313,8 @@
|
|||||||
if(2)
|
if(2)
|
||||||
if (istype(W, /obj/item/weapon/wrench))
|
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>"
|
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) || !istype(src, /turf/simulated/wall) || construction_stage != 2)
|
if(!do_after(user,40 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 2)
|
||||||
return
|
return
|
||||||
construction_stage = 1
|
construction_stage = 1
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
@@ -333,8 +334,8 @@
|
|||||||
cut_cover = 1
|
cut_cover = 1
|
||||||
if(cut_cover)
|
if(cut_cover)
|
||||||
user << "<span class='notice'>You begin slicing through the support rods.</span>"
|
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) || !istype(src, /turf/simulated/wall) || construction_stage != 1)
|
if(!do_after(user,70 * W.toolspeed) || !istype(src, /turf/simulated/wall) || construction_stage != 1)
|
||||||
return
|
return
|
||||||
construction_stage = 0
|
construction_stage = 0
|
||||||
user.update_examine_panel(src)
|
user.update_examine_panel(src)
|
||||||
@@ -344,8 +345,8 @@
|
|||||||
if(0)
|
if(0)
|
||||||
if(istype(W, /obj/item/weapon/crowbar))
|
if(istype(W, /obj/item/weapon/crowbar))
|
||||||
user << "<span class='notice'>You struggle to pry off the outer sheath.</span>"
|
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) || !istype(src, /turf/simulated/wall) || !user || !W || !T )
|
if(!do_after(user,100 * W.toolspeed) || !istype(src, /turf/simulated/wall) || !user || !W || !T )
|
||||||
return
|
return
|
||||||
if(user.loc == T && user.get_active_hand() == W )
|
if(user.loc == T && user.get_active_hand() == W )
|
||||||
user << "<span class='notice'>You pry off the outer sheath.</span>"
|
user << "<span class='notice'>You pry off the outer sheath.</span>"
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
if(istype(W, /obj/item/weapon/screwdriver))
|
if(istype(W, /obj/item/weapon/screwdriver))
|
||||||
status = !status
|
status = !status
|
||||||
to_chat(user, "<span class='notice'>[src] is now [status ? "secured" : "unsecured"]!</span>")
|
to_chat(user, "<span class='notice'>[src] is now [status ? "secured" : "unsecured"]!</span>")
|
||||||
|
playsound(src, W.usesound, 50, 1)
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user