mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Air alarms improved. New functions are:
- mass control all air machines in area (5 modes) - adjustable alarm thresholds - air alarm in server room now is preset to treat temperature 80 K as okay. EMP now affects bots internal cameras. Fixed problem with AI clicking on mulebot. Some fixes for welding with unlit welder, mostly cosmetic. Airlock controller (as in EVA) now react to commands faster. Access controller (was in engineering and virology in past) was speeded up too. One is installed into Incinerator to demonstrate that now it isn't fucking slow. Airlock in toxin mixing room now have pump, so airlock can work properly. Added some intercoms to medbay lobby. Doors now won't lag due do mapmakers mistakes. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1187 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -120,15 +120,17 @@
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = id
|
||||
signal.data["device"] = "ADVP"
|
||||
signal.data["power"] = on?("on"):("off")
|
||||
signal.data["direction"] = pump_direction?("release"):("siphon")
|
||||
signal.data["checks"] = pressure_checks
|
||||
signal.data["input"] = input_pressure_min
|
||||
signal.data["output"] = output_pressure_max
|
||||
signal.data["external"] = external_pressure_bound
|
||||
|
||||
signal.data = list(
|
||||
"tag" = id,
|
||||
"device" = "ADVP",
|
||||
"power" = on,
|
||||
"direction" = pump_direction?("release"):("siphon"),
|
||||
"checks" = pressure_checks,
|
||||
"input" = input_pressure_min,
|
||||
"output" = output_pressure_max,
|
||||
"external" = external_pressure_bound,
|
||||
"sigtype" = "status"
|
||||
)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
return 1
|
||||
@@ -143,57 +145,55 @@
|
||||
set_frequency(frequency)
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id))
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
|
||||
return 0
|
||||
|
||||
switch(signal.data["command"])
|
||||
if("power_on")
|
||||
on = 1
|
||||
if("power" in signal.data)
|
||||
on = text2num(signal.data["power"])
|
||||
|
||||
if("power_off")
|
||||
on = 0
|
||||
if("power_toggle" in signal.data)
|
||||
on = !on
|
||||
|
||||
if("power_toggle")
|
||||
on = !on
|
||||
if("set_direction" in signal.data)
|
||||
pump_direction = text2num(signal.data["set_direction"])
|
||||
|
||||
if("set_direction")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
if(number > 0.5)
|
||||
pump_direction = 1
|
||||
else
|
||||
pump_direction = 0
|
||||
if("checks" in signal.data)
|
||||
pressure_checks = text2num(signal.data["checks"])
|
||||
|
||||
if("set_checks")
|
||||
var/number = round(text2num(signal.data["parameter"]),1)
|
||||
pressure_checks = number
|
||||
if("purge" in signal.data)
|
||||
pressure_checks &= ~1
|
||||
pump_direction = 0
|
||||
|
||||
if("purge")
|
||||
pressure_checks &= ~1
|
||||
pump_direction = 0
|
||||
if("stabalize" in signal.data)
|
||||
pressure_checks |= 1
|
||||
pump_direction = 1
|
||||
|
||||
if("stabalize")
|
||||
pressure_checks |= 1
|
||||
pump_direction = 1
|
||||
if("set_input_pressure" in signal.data)
|
||||
input_pressure_min = between(
|
||||
0,
|
||||
text2num(signal.data["set_input_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
if("set_input_pressure")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), ONE_ATMOSPHERE*50)
|
||||
if("set_output_pressure" in signal.data)
|
||||
output_pressure_max = between(
|
||||
0,
|
||||
text2num(signal.data["set_output_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
input_pressure_min = number
|
||||
|
||||
if("set_output_pressure")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), ONE_ATMOSPHERE*50)
|
||||
|
||||
output_pressure_max = number
|
||||
|
||||
if("set_external_pressure")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), ONE_ATMOSPHERE*50)
|
||||
|
||||
external_pressure_bound = number
|
||||
if("set_external_pressure" in signal.data)
|
||||
external_pressure_bound = between(
|
||||
0,
|
||||
text2num(signal.data["set_external_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
if("status" in signal.data)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
return //do not update_icon
|
||||
//if(signal.data["tag"])
|
||||
spawn(5)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
update_icon()
|
||||
@@ -22,6 +22,10 @@ obj/machinery/atmospherics/binary/pump
|
||||
var/on = 0
|
||||
var/target_pressure = ONE_ATMOSPHERE
|
||||
|
||||
var/frequency = 0
|
||||
var/id = null
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
/*
|
||||
attack_hand(mob/user)
|
||||
on = !on
|
||||
@@ -87,14 +91,18 @@ obj/machinery/atmospherics/binary/pump
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = id
|
||||
signal.data["device"] = "AGP"
|
||||
signal.data["power"] = on
|
||||
signal.data["target_output"] = target_pressure
|
||||
signal.data = list(
|
||||
"tag" = id,
|
||||
"device" = "AGP",
|
||||
"power" = on,
|
||||
"target_output" = target_pressure,
|
||||
"sigtype" = "status"
|
||||
)
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
return 1
|
||||
|
||||
interact(mob/user as mob)
|
||||
var/dat = {"<b>Power: </b><a href='?src=\ref[src];power=1'>[on?"On":"Off"]</a><br>
|
||||
<b>Desirable output pressure: </b>
|
||||
@@ -104,35 +112,34 @@ obj/machinery/atmospherics/binary/pump
|
||||
user << browse("<HEAD><TITLE>[src.name] control</TITLE></HEAD><TT>[dat]</TT>", "window=atmo_pump")
|
||||
onclose(user, "atmo_pump")
|
||||
|
||||
var/frequency = 0
|
||||
var/id = null
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
initialize()
|
||||
..()
|
||||
if(frequency)
|
||||
set_frequency(frequency)
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id))
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
|
||||
return 0
|
||||
|
||||
switch(signal.data["command"])
|
||||
if("power_on")
|
||||
on = 1
|
||||
if("power" in signal.data)
|
||||
on = text2num(signal.data["power"])
|
||||
|
||||
if("power_off")
|
||||
on = 0
|
||||
if("power_toggle" in signal.data)
|
||||
on = !on
|
||||
|
||||
if("power_toggle")
|
||||
on = !on
|
||||
if("set_output_pressure" in signal.data)
|
||||
target_pressure = between(
|
||||
0,
|
||||
text2num(signal.data["set_output_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
if("set_output_pressure")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), ONE_ATMOSPHERE*50)
|
||||
if("status" in signal.data)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
return //do not update_icon
|
||||
|
||||
target_pressure = number
|
||||
spawn(5)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
@@ -74,11 +74,13 @@ obj/machinery/atmospherics/binary/volume_pump
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = id
|
||||
signal.data["device"] = "APV"
|
||||
signal.data["power"] = on
|
||||
signal.data["transfer_rate"] = transfer_rate
|
||||
|
||||
signal.data = list(
|
||||
"tag" = id,
|
||||
"device" = "APV",
|
||||
"power" = on,
|
||||
"transfer_rate" = transfer_rate,
|
||||
"sigtype" = "status"
|
||||
)
|
||||
radio_connection.post_signal(src, signal)
|
||||
|
||||
return 1
|
||||
@@ -89,25 +91,27 @@ obj/machinery/atmospherics/binary/volume_pump
|
||||
set_frequency(frequency)
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id))
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
|
||||
return 0
|
||||
|
||||
switch(signal.data["command"])
|
||||
if("power_on")
|
||||
on = 1
|
||||
if("power" in signal.data)
|
||||
on = text2num(signal.data["power"])
|
||||
|
||||
if("power_off")
|
||||
on = 0
|
||||
if("power_toggle" in signal.data)
|
||||
on = !on
|
||||
|
||||
if("power_toggle")
|
||||
on = !on
|
||||
if("set_transfer_rate" in signal.data)
|
||||
transfer_rate = between(
|
||||
0,
|
||||
text2num(signal.data["set_transfer_rate"]),
|
||||
air1.volume
|
||||
)
|
||||
|
||||
if("set_transfer_rate")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), air1.volume)
|
||||
if("status" in signal.data)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
return //do not update_icon
|
||||
|
||||
transfer_rate = number
|
||||
|
||||
spawn(5)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
update_icon()
|
||||
@@ -80,10 +80,14 @@
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = id
|
||||
signal.data["device"] = "AO"
|
||||
signal.data["power"] = on
|
||||
signal.data["volume_rate"] = volume_rate
|
||||
signal.data = list(
|
||||
"tag" = id,
|
||||
"device" = "AO",
|
||||
"power" = on,
|
||||
"volume_rate" = volume_rate,
|
||||
//"timestamp" = world.time,
|
||||
"sigtype" = "status"
|
||||
)
|
||||
|
||||
radio_connection.post_signal(src, signal)
|
||||
|
||||
@@ -95,36 +99,31 @@
|
||||
set_frequency(frequency)
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id) || !signal.data["command"])
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
|
||||
return 0
|
||||
|
||||
switch(signal.data["command"])
|
||||
if("power_on")
|
||||
on = 1
|
||||
if("power" in signal.data)
|
||||
on = text2num(signal.data["power"])
|
||||
|
||||
if("power_off")
|
||||
on = 0
|
||||
if("power_toggle" in signal.data)
|
||||
on = !on
|
||||
|
||||
if("power_toggle")
|
||||
on = !on
|
||||
if("inject" in signal.data)
|
||||
spawn inject()
|
||||
return
|
||||
|
||||
if("inject")
|
||||
spawn inject()
|
||||
return
|
||||
if("set_volume_rate" in signal.data)
|
||||
var/number = text2num(signal.data["set_volume_rate"])
|
||||
volume_rate = between(0, number, air_contents.volume)
|
||||
|
||||
if("set_volume_rate")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), air_contents.volume)
|
||||
if("status" in signal.data)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
return //do not update_icon
|
||||
|
||||
volume_rate = number
|
||||
|
||||
if("status")
|
||||
//broadcast_status
|
||||
|
||||
else
|
||||
log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
|
||||
return
|
||||
spawn(5)
|
||||
//log_admin("DEBUG \[[world.timeofday]\]: outlet_injector/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
|
||||
//return
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
return
|
||||
if (!node)
|
||||
on = 0
|
||||
//broadcast_status()
|
||||
//broadcast_status() // from now air alarm/control computer should request update purposely --rastaf0
|
||||
if(!on)
|
||||
return 0
|
||||
|
||||
@@ -136,12 +136,13 @@
|
||||
"area" = src.area_uid,
|
||||
"tag" = src.id_tag,
|
||||
"device" = "AVP",
|
||||
"power" = on?("on"):("off"),
|
||||
"power" = on,
|
||||
"direction" = pump_direction?("release"):("siphon"),
|
||||
"checks" = pressure_checks,
|
||||
"internal" = internal_pressure_bound,
|
||||
"external" = external_pressure_bound,
|
||||
"timestamp" = air_master.current_cycle,
|
||||
"timestamp" = world.time,
|
||||
"sigtype" = "status"
|
||||
)
|
||||
|
||||
radio_connection.post_signal(src, signal, radio_filter_out)
|
||||
@@ -153,74 +154,82 @@
|
||||
..()
|
||||
|
||||
//some vents work his own spesial way
|
||||
radio_filter_in = frequency==initial(frequency)?(RADIO_FROM_AIRALARM):null
|
||||
radio_filter_out = frequency==initial(frequency)?(RADIO_TO_AIRALARM):null
|
||||
radio_filter_in = frequency==1439?(RADIO_FROM_AIRALARM):null
|
||||
radio_filter_out = frequency==1439?(RADIO_TO_AIRALARM):null
|
||||
if(frequency)
|
||||
set_frequency(frequency)
|
||||
update_icon()
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
//log_admin("DEBUG \[[world.timeofday]\]: /obj/machinery/atmospherics/unary/vent_pump/receive_signal([signal.debug_print()])")
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || !signal.data["command"])
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command"))
|
||||
return 0
|
||||
|
||||
switch(signal.data["command"])
|
||||
if("power_on")
|
||||
on = 1
|
||||
if("purge" in signal.data)
|
||||
pressure_checks &= ~1
|
||||
pump_direction = 0
|
||||
|
||||
if("power_off")
|
||||
on = 0
|
||||
if("stabalize" in signal.data)
|
||||
pressure_checks |= 1
|
||||
pump_direction = 1
|
||||
|
||||
if("power_toggle")
|
||||
on = !on
|
||||
if("power" in signal.data)
|
||||
on = text2num(signal.data["power"])
|
||||
|
||||
if("toggle_checks")
|
||||
pressure_checks = (pressure_checks?0:3)
|
||||
if("power_toggle" in signal.data)
|
||||
on = !on
|
||||
|
||||
if("set_direction")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
if(number > 0.5)
|
||||
pump_direction = 1
|
||||
else
|
||||
pump_direction = 0
|
||||
if("checks" in signal.data)
|
||||
pressure_checks = text2num(signal.data["checks"])
|
||||
|
||||
if("purge")
|
||||
pressure_checks &= ~1
|
||||
pump_direction = 0
|
||||
if("checks_toggle" in signal.data)
|
||||
pressure_checks = (pressure_checks?0:3)
|
||||
|
||||
if("stabalize")
|
||||
pressure_checks |= 1
|
||||
pump_direction = 1
|
||||
if("direction" in signal.data)
|
||||
pump_direction = text2num(signal.data["direction"])
|
||||
|
||||
if("set_checks")
|
||||
var/number = round(text2num(signal.data["parameter"]),1)
|
||||
pressure_checks = number
|
||||
if("set_internal_pressure" in signal.data)
|
||||
internal_pressure_bound = between(
|
||||
0,
|
||||
text2num(signal.data["set_internal_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
if("set_internal_pressure")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), ONE_ATMOSPHERE*50)
|
||||
if("set_external_pressure" in signal.data)
|
||||
external_pressure_bound = between(
|
||||
0,
|
||||
text2num(signal.data["set_external_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
internal_pressure_bound = number
|
||||
if("adjust_internal_pressure" in signal.data)
|
||||
internal_pressure_bound = between(
|
||||
0,
|
||||
internal_pressure_bound + text2num(signal.data["adjust_internal_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
if("set_external_pressure")
|
||||
var/number = text2num(signal.data["parameter"])
|
||||
number = min(max(number, 0), ONE_ATMOSPHERE*50)
|
||||
if("adjust_external_pressure" in signal.data)
|
||||
external_pressure_bound = between(
|
||||
0,
|
||||
external_pressure_bound + text2num(signal.data["adjust_external_pressure"]),
|
||||
ONE_ATMOSPHERE*50
|
||||
)
|
||||
|
||||
external_pressure_bound = number
|
||||
if("init" in signal.data)
|
||||
name = signal.data["init"]
|
||||
return
|
||||
|
||||
if("init")
|
||||
name = signal.data["parameter"]
|
||||
return
|
||||
if("status" in signal.data)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
return //do not update_icon
|
||||
|
||||
if("status")
|
||||
//broadcast_status
|
||||
|
||||
else
|
||||
log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
|
||||
return
|
||||
//log_admin("DEBUG \[[world.timeofday]\]: vent_pump/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
update_icon()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
hide(var/i) //to make the little pipe section invisible, the icon changes.
|
||||
@@ -235,7 +244,7 @@
|
||||
return
|
||||
|
||||
attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||
if (W:remove_fuel(2,user))
|
||||
user << "\blue Now welding the vent."
|
||||
if(do_after(user, 20))
|
||||
|
||||
@@ -63,13 +63,14 @@
|
||||
"area" = area_uid,
|
||||
"tag" = id_tag,
|
||||
"device" = "AScr",
|
||||
"timestamp" = air_master.current_cycle,
|
||||
"on" = on,
|
||||
"timestamp" = world.time,
|
||||
"power" = on,
|
||||
"scrubbing" = scrubbing,
|
||||
"panic" = panic,
|
||||
"filter_co2" = scrub_CO2,
|
||||
"filter_toxins" = scrub_Toxins,
|
||||
"filter_n2o" = scrub_N2O,
|
||||
"sigtype" = "status"
|
||||
)
|
||||
radio_connection.post_signal(src, signal, radio_filter_out)
|
||||
|
||||
@@ -160,42 +161,68 @@
|
||||
*/
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || !signal.data["command"])
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
if(!signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command"))
|
||||
return 0
|
||||
|
||||
switch(signal.data["command"])
|
||||
if("toggle_power")
|
||||
on = !on
|
||||
if("toggle_scrubbing")
|
||||
scrubbing = !scrubbing
|
||||
if("toggle_co2_scrub")
|
||||
scrub_CO2 = !scrub_CO2
|
||||
if("toggle_tox_scrub")
|
||||
scrub_Toxins = !scrub_Toxins
|
||||
if("toggle_n2o_scrub")
|
||||
scrub_N2O = !scrub_N2O
|
||||
if("toggle_panic_siphon")
|
||||
panic = !panic
|
||||
if(panic)
|
||||
on = 1
|
||||
scrubbing = 0
|
||||
volume_rate = 2000
|
||||
else
|
||||
scrubbing = 1
|
||||
volume_rate = initial(volume_rate)
|
||||
if("init")
|
||||
name = signal.data["parameter"]
|
||||
return
|
||||
|
||||
if("status")
|
||||
//broadcast_status
|
||||
if("power" in signal.data)
|
||||
on = text2num(signal.data["power"])
|
||||
if("power_toggle" in signal.data)
|
||||
on = !on
|
||||
|
||||
if("panic_siphon" in signal.data) //must be before if("scrubbing" thing
|
||||
panic = text2num(signal.data["panic_siphon"])
|
||||
if(panic)
|
||||
on = 1
|
||||
scrubbing = 0
|
||||
volume_rate = 2000
|
||||
else
|
||||
log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
|
||||
return
|
||||
scrubbing = 1
|
||||
volume_rate = initial(volume_rate)
|
||||
if("toggle_panic_siphon" in signal.data)
|
||||
panic = !panic
|
||||
if(panic)
|
||||
on = 1
|
||||
scrubbing = 0
|
||||
volume_rate = 2000
|
||||
else
|
||||
scrubbing = 1
|
||||
volume_rate = initial(volume_rate)
|
||||
|
||||
if("scrubbing" in signal.data)
|
||||
scrubbing = text2num(signal.data["scrubbing"])
|
||||
if("toggle_scrubbing" in signal.data)
|
||||
scrubbing = !scrubbing
|
||||
|
||||
if("co2_scrub" in signal.data)
|
||||
scrub_CO2 = text2num(signal.data["co2_scrub"])
|
||||
if("toggle_co2_scrub" in signal.data)
|
||||
scrub_CO2 = !scrub_CO2
|
||||
|
||||
if("tox_scrub" in signal.data)
|
||||
scrub_Toxins = text2num(signal.data["tox_scrub"])
|
||||
if("toggle_tox_scrub" in signal.data)
|
||||
scrub_Toxins = !scrub_Toxins
|
||||
|
||||
if("n2o_scrub" in signal.data)
|
||||
scrub_N2O = text2num(signal.data["n2o_scrub"])
|
||||
if("toggle_n2o_scrub" in signal.data)
|
||||
scrub_N2O = !scrub_N2O
|
||||
|
||||
if("init" in signal.data)
|
||||
name = signal.data["init"]
|
||||
return
|
||||
|
||||
if("status" in signal.data)
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
return //do not update_icon
|
||||
|
||||
// log_admin("DEBUG \[[world.timeofday]\]: vent_scrubber/receive_signal: unknown command \"[signal.data["command"]]\"\n[signal.debug_print()]")
|
||||
spawn(2)
|
||||
broadcast_status()
|
||||
update_icon()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
power_change()
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
icon_state = "alert:0"
|
||||
var/list/priority_alarms = list()
|
||||
var/list/minor_alarms = list()
|
||||
var/receive_frequency = "1437"
|
||||
var/receive_frequency = 1437
|
||||
|
||||
|
||||
/obj/machinery/computer/atmosphere/siphonswitch
|
||||
|
||||
@@ -18,17 +18,6 @@
|
||||
global
|
||||
gl_uid = 1
|
||||
|
||||
/obj/machinery/alarm
|
||||
name = "alarm"
|
||||
icon = 'monitors.dmi'
|
||||
icon_state = "alarm0"
|
||||
anchored = 1.0
|
||||
var/skipprocess = 0 //Experimenting
|
||||
var/alarm_frequency = "1437"
|
||||
use_power = 1
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 0
|
||||
|
||||
/obj/machinery/autolathe
|
||||
name = "Autolathe"
|
||||
icon_state = "autolathe"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
heat_capacity = 700000
|
||||
|
||||
/turf/space/New()
|
||||
icon = 'space.dmi'
|
||||
// icon = 'space.dmi'
|
||||
icon_state = "[pick(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)]"
|
||||
|
||||
/turf/simulated
|
||||
|
||||
@@ -83,33 +83,30 @@
|
||||
a.triggerAlarm("Power", src, source)
|
||||
return
|
||||
|
||||
/area/proc/atmosalert()
|
||||
if(src.name == "Space") //No atmos alarms in space
|
||||
return
|
||||
if(!(src.atmosalm))
|
||||
src.atmosalm = 1
|
||||
/area/proc/atmosalert(danger_level)
|
||||
// if(src.type==/area) //No atmos alarms in space
|
||||
// return 0 //redudant
|
||||
if(danger_level != src.atmosalm)
|
||||
//src.updateicon()
|
||||
src.mouse_opacity = 0
|
||||
var/list/cameras = list()
|
||||
for(var/obj/machinery/camera/C in src)
|
||||
cameras += C
|
||||
for(var/mob/living/silicon/aiPlayer in world)
|
||||
aiPlayer.triggerAlarm("Atmosphere", src, cameras, src)
|
||||
for(var/obj/machinery/computer/station_alert/a in world)
|
||||
a.triggerAlarm("Atmosphere", src, cameras, src)
|
||||
return
|
||||
|
||||
/area/proc/atmosreset()
|
||||
if(src.atmosalm)
|
||||
src.atmosalm = 0
|
||||
src.mouse_opacity = 0
|
||||
//src.updateicon()
|
||||
for(var/mob/living/silicon/aiPlayer in world)
|
||||
aiPlayer.cancelAlarm("Atmosphere", src, src)
|
||||
for(var/obj/machinery/computer/station_alert/a in world)
|
||||
a.cancelAlarm("Atmosphere", src, src)
|
||||
return
|
||||
|
||||
//src.mouse_opacity = 0
|
||||
if (danger_level==2)
|
||||
var/list/cameras = list()
|
||||
for(var/area/RA in src.related)
|
||||
//src.updateicon()
|
||||
for(var/obj/machinery/camera/C in RA)
|
||||
cameras += C
|
||||
for(var/mob/living/silicon/aiPlayer in world)
|
||||
aiPlayer.triggerAlarm("Atmosphere", src, cameras, src)
|
||||
for(var/obj/machinery/computer/station_alert/a in world)
|
||||
a.triggerAlarm("Atmosphere", src, cameras, src)
|
||||
else if (src.atmosalm == 2)
|
||||
for(var/mob/living/silicon/aiPlayer in world)
|
||||
aiPlayer.cancelAlarm("Atmosphere", src, src)
|
||||
for(var/obj/machinery/computer/station_alert/a in world)
|
||||
a.cancelAlarm("Atmosphere", src, src)
|
||||
src.atmosalm = danger_level
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/area/proc/firealert()
|
||||
if(src.name == "Space") //no fire alarms in space
|
||||
|
||||
@@ -10,7 +10,7 @@ obj/machinery/door/airlock
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal || signal.encryption) return
|
||||
|
||||
if(id_tag != signal.data["tag"]) return
|
||||
if(id_tag != signal.data["tag"] || !signal.data["command"]) return
|
||||
|
||||
switch(signal.data["command"])
|
||||
if("open")
|
||||
@@ -32,7 +32,7 @@ obj/machinery/door/airlock
|
||||
locked = 0
|
||||
update_icon()
|
||||
|
||||
sleep(5)
|
||||
sleep(2)
|
||||
open(1)
|
||||
|
||||
locked = 1
|
||||
@@ -44,7 +44,7 @@ obj/machinery/door/airlock
|
||||
close(1)
|
||||
|
||||
locked = 1
|
||||
sleep(5)
|
||||
sleep(2)
|
||||
update_icon()
|
||||
|
||||
send_status()
|
||||
@@ -54,7 +54,7 @@ obj/machinery/door/airlock
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.data["tag"] = id_tag
|
||||
signal.data["timestamp"] = air_master.current_cycle
|
||||
signal.data["timestamp"] = world.time
|
||||
|
||||
signal.data["door_status"] = density?("closed"):("open")
|
||||
signal.data["lock_status"] = locked?("locked"):("unlocked")
|
||||
@@ -127,7 +127,7 @@ obj/machinery/airlock_sensor
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.data["tag"] = id_tag
|
||||
signal.data["timestamp"] = air_master.current_cycle
|
||||
signal.data["timestamp"] = world.time
|
||||
|
||||
var/datum/gas_mixture/air_sample = return_air()
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,7 @@ obj/machinery/air_sensor
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.data["tag"] = id_tag
|
||||
signal.data["timestamp"] = air_master.current_cycle
|
||||
signal.data["timestamp"] = world.time
|
||||
|
||||
var/datum/gas_mixture/air_sample = return_air()
|
||||
|
||||
@@ -55,6 +55,7 @@ obj/machinery/air_sensor
|
||||
signal.data["toxins"] = 0
|
||||
signal.data["nitrogen"] = 0
|
||||
signal.data["carbon_dioxide"] = 0
|
||||
signal.data["sigtype"]="status"
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
|
||||
@@ -215,7 +216,7 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
output += "<BR>"
|
||||
|
||||
if(output_info)
|
||||
var/power = (output_info["power"] == "on")
|
||||
var/power = (output_info["power"])
|
||||
var/output_pressure = output_info["internal"]
|
||||
output += {"<B>Output</B>: [power?("Open"):("On Hold")] <A href='?src=\ref[src];out_refresh_status=1'>Refresh</A><BR>
|
||||
Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
@@ -244,83 +245,43 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["adj_pressure"])
|
||||
var/change = text2num(href_list["adj_pressure"])
|
||||
pressure_setting = between(0, pressure_setting + change, 50*ONE_ATMOSPHERE)
|
||||
spawn(1)
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
if(!radio_connection)
|
||||
return 0
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
if(href_list["in_refresh_status"])
|
||||
input_info = null
|
||||
if(!radio_connection)
|
||||
return 0
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = input_tag
|
||||
signal.data["command"] = "status"
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
signal.data = list ("tag" = input_tag, "status")
|
||||
|
||||
if(href_list["in_toggle_injector"])
|
||||
input_info = null
|
||||
if(!radio_connection)
|
||||
return 0
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = input_tag
|
||||
signal.data["command"] = "power_toggle"
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
signal.data = list ("tag" = input_tag, "power_toggle")
|
||||
|
||||
if(href_list["out_refresh_status"])
|
||||
output_info = null
|
||||
if(!radio_connection)
|
||||
return 0
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = output_tag
|
||||
signal.data["command"] = "status"
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
signal.data = list ("tag" = output_tag, "status")
|
||||
|
||||
if(href_list["out_toggle_power"])
|
||||
output_info = null
|
||||
if(!radio_connection)
|
||||
return 0
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = output_tag
|
||||
signal.data["command"] = "power_toggle"
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
signal.data = list ("tag" = output_tag, "power_toggle")
|
||||
|
||||
if(href_list["out_set_pressure"])
|
||||
output_info = null
|
||||
if(!radio_connection)
|
||||
return 0
|
||||
signal.data = list ("tag" = output_tag, "set_internal_pressure" = "[pressure_setting]")
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
signal.data["sigtype"]="command"
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
signal.data["tag"] = output_tag
|
||||
signal.data["command"] = "set_internal_pressure"
|
||||
signal.data["parameter"] = "[pressure_setting]"
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["adj_pressure"])
|
||||
var/change = text2num(href_list["adj_pressure"])
|
||||
pressure_setting = min(max(0, pressure_setting + change), 50*ONE_ATMOSPHERE)
|
||||
|
||||
spawn(7)
|
||||
attack_hand(usr)
|
||||
spawn(5)
|
||||
src.updateDialog()
|
||||
|
||||
fuel_injection
|
||||
icon = 'computer.dmi'
|
||||
@@ -386,12 +347,11 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = device_tag
|
||||
|
||||
if(injecting)
|
||||
signal.data["command"] = "power_on"
|
||||
else
|
||||
signal.data["command"] = "power_off"
|
||||
signal.data = list(
|
||||
"tag" = device_tag,
|
||||
"power" = injecting,
|
||||
"sigtype"="command"
|
||||
)
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
@@ -441,10 +401,11 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = device_tag
|
||||
signal.data["command"] = "status"
|
||||
|
||||
signal.data = list(
|
||||
"tag" = device_tag,
|
||||
"status",
|
||||
"sigtype"="command"
|
||||
)
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
if(href_list["toggle_automation"])
|
||||
@@ -458,9 +419,11 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = device_tag
|
||||
signal.data["command"] = "power_toggle"
|
||||
signal.data = list(
|
||||
"tag" = device_tag,
|
||||
"power_toggle",
|
||||
"sigtype"="command"
|
||||
)
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
@@ -471,79 +434,79 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
|
||||
signal.data["tag"] = device_tag
|
||||
signal.data["command"] = "inject"
|
||||
signal.data = list(
|
||||
"tag" = device_tag,
|
||||
"inject",
|
||||
"sigtype"="command"
|
||||
)
|
||||
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
/obj/machinery/computer/atmos_alert
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
initialize()
|
||||
set_frequency(receive_frequency)
|
||||
/obj/machinery/computer/atmos_alert/initialize()
|
||||
set_frequency(receive_frequency)
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
if(!signal || signal.encryption) return
|
||||
/obj/machinery/computer/atmos_alert/receive_signal(datum/signal/signal)
|
||||
if(!signal || signal.encryption) return
|
||||
|
||||
var/zone = signal.data["zone"]
|
||||
var/severity = signal.data["alert"]
|
||||
var/zone = signal.data["zone"]
|
||||
var/severity = signal.data["alert"]
|
||||
|
||||
if(!zone || !severity) return
|
||||
if(!zone || !severity) return
|
||||
|
||||
minor_alarms -= zone
|
||||
priority_alarms -= zone
|
||||
if(severity=="severe")
|
||||
priority_alarms += zone
|
||||
else if (severity=="minor")
|
||||
minor_alarms += zone
|
||||
else /*"clear"*/
|
||||
//do nothing
|
||||
minor_alarms -= zone
|
||||
priority_alarms -= zone
|
||||
if(severity=="severe")
|
||||
priority_alarms += zone
|
||||
else if (severity=="minor")
|
||||
minor_alarms += zone
|
||||
/*else "clear"*/
|
||||
//do nothing
|
||||
update_icon()
|
||||
|
||||
proc
|
||||
set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, receive_frequency)
|
||||
receive_frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, receive_frequency, RADIO_ATMOSIA)
|
||||
/obj/machinery/computer/atmos_alert/proc/set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, receive_frequency)
|
||||
receive_frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, receive_frequency, RADIO_ATMOSIA)
|
||||
|
||||
/obj/machinery/computer/atmos_alert/attack_hand(mob/user)
|
||||
user << browse(return_text(),"window=computer")
|
||||
user.machine = src
|
||||
onclose(user, "computer")
|
||||
|
||||
attack_hand(mob/user)
|
||||
user << browse(return_text(),"window=computer")
|
||||
user.machine = src
|
||||
onclose(user, "computer")
|
||||
/obj/machinery/computer/atmos_alert/process()
|
||||
..()
|
||||
src.updateDialog()
|
||||
|
||||
process()
|
||||
/obj/machinery/computer/atmos_alert/update_icon()
|
||||
if(priority_alarms.len)
|
||||
icon_state = "alert:2"
|
||||
|
||||
if(priority_alarms.len)
|
||||
icon_state = "alert:2"
|
||||
else if(minor_alarms.len)
|
||||
icon_state = "alert:1"
|
||||
|
||||
else if(minor_alarms.len)
|
||||
icon_state = "alert:1"
|
||||
else
|
||||
icon_state = "alert:0"
|
||||
|
||||
else
|
||||
icon_state = "alert:0"
|
||||
/obj/machinery/computer/atmos_alert/proc/return_text()
|
||||
var/priority_text
|
||||
var/minor_text
|
||||
|
||||
..()
|
||||
if(priority_alarms.len)
|
||||
for(var/zone in priority_alarms)
|
||||
priority_text += "<FONT color='red'><B>[zone]</B></FONT> <A href='?src=\ref[src];priority_clear=[ckey(zone)]'>X</A><BR>"
|
||||
else
|
||||
priority_text = "No priority alerts detected.<BR>"
|
||||
|
||||
src.updateDialog()
|
||||
if(minor_alarms.len)
|
||||
for(var/zone in minor_alarms)
|
||||
minor_text += "<B>[zone]</B> <A href='?src=\ref[src];minor_clear=[ckey(zone)]'>X</A><BR>"
|
||||
else
|
||||
minor_text = "No minor alerts detected.<BR>"
|
||||
|
||||
proc/return_text()
|
||||
var/priority_text
|
||||
var/minor_text
|
||||
|
||||
if(priority_alarms.len)
|
||||
for(var/zone in priority_alarms)
|
||||
priority_text += "<FONT color='red'><B>[zone]</B></FONT> <A href='?src=\ref[src];priority_clear=[ckey(zone)]'>X</A><BR>"
|
||||
else
|
||||
priority_text = "No priority alerts detected.<BR>"
|
||||
|
||||
if(minor_alarms.len)
|
||||
for(var/zone in minor_alarms)
|
||||
minor_text += "<B>[zone]</B> <A href='?src=\ref[src];minor_clear=[ckey(zone)]'>X</A><BR>"
|
||||
else
|
||||
minor_text = "No minor alerts detected.<BR>"
|
||||
|
||||
var/output = {"<B>[name]</B><HR>
|
||||
var/output = {"<B>[name]</B><HR>
|
||||
<B>Priority Alerts:</B><BR>
|
||||
[priority_text]
|
||||
<BR>
|
||||
@@ -552,20 +515,21 @@ Rate: [volume_rate] L/sec<BR>"}
|
||||
[minor_text]
|
||||
<BR>"}
|
||||
|
||||
return output
|
||||
return output
|
||||
|
||||
Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
/obj/machinery/computer/atmos_alert/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
if(href_list["priority_clear"])
|
||||
var/removing_zone = href_list["priority_clear"]
|
||||
for(var/zone in priority_alarms)
|
||||
if(ckey(zone) == removing_zone)
|
||||
priority_alarms -= zone
|
||||
if(href_list["priority_clear"])
|
||||
var/removing_zone = href_list["priority_clear"]
|
||||
for(var/zone in priority_alarms)
|
||||
if(ckey(zone) == removing_zone)
|
||||
priority_alarms -= zone
|
||||
|
||||
if(href_list["minor_clear"])
|
||||
var/removing_zone = href_list["minor_clear"]
|
||||
for(var/zone in minor_alarms)
|
||||
if(ckey(zone) == removing_zone)
|
||||
minor_alarms -= zone
|
||||
if(href_list["minor_clear"])
|
||||
var/removing_zone = href_list["minor_clear"]
|
||||
for(var/zone in minor_alarms)
|
||||
if(ckey(zone) == removing_zone)
|
||||
minor_alarms -= zone
|
||||
update_icon()
|
||||
@@ -44,15 +44,16 @@
|
||||
var/datum/signal/signal = new
|
||||
signal.source = src
|
||||
signal.transmission_method = 1
|
||||
|
||||
signal.data["tag"] = id
|
||||
signal.data["device"] = "AM"
|
||||
signal.data["pressure"] = round(env_pressure)
|
||||
|
||||
signal.data = list(
|
||||
"tag" = id,
|
||||
"device" = "AM",
|
||||
"pressure" = round(env_pressure),
|
||||
"sigtype" = "status"
|
||||
)
|
||||
radio_connection.post_signal(src, signal)
|
||||
|
||||
/obj/machinery/meter/examine()
|
||||
set src in oview(1)
|
||||
set src in view(3)
|
||||
|
||||
var/t = "A gas flow meter. "
|
||||
if (src.target)
|
||||
@@ -71,10 +72,10 @@
|
||||
/obj/machinery/meter/Click()
|
||||
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
return 1
|
||||
|
||||
var/t = null
|
||||
if (get_dist(usr, src) <= 3 || istype(usr, /mob/living/silicon/ai))
|
||||
if (get_dist(usr, src) <= 3 || istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/dead))
|
||||
if (src.target)
|
||||
var/datum/gas_mixture/environment = target.return_air()
|
||||
if(environment)
|
||||
@@ -87,7 +88,7 @@
|
||||
usr << "\blue <B>You are too far away.</B>"
|
||||
|
||||
usr << t
|
||||
return
|
||||
return 1
|
||||
|
||||
/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
|
||||
@@ -130,6 +130,14 @@
|
||||
stat &= ~EMPED
|
||||
if (was_on)
|
||||
turn_on()
|
||||
|
||||
|
||||
/obj/machinery/bot/attack_ai(mob/user as mob)
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
|
||||
/******************************************************************/
|
||||
// Navigation procs
|
||||
// Used for A-star pathfinding
|
||||
|
||||
@@ -111,12 +111,6 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
|
||||
usr << "You press the weird button."
|
||||
src.updateUsrDialog()
|
||||
|
||||
/obj/machinery/bot/cleanbot/attack_ai()
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
|
||||
/obj/machinery/bot/cleanbot/attackby(obj/item/weapon/W, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
||||
if(src.allowed(usr))
|
||||
|
||||
@@ -156,12 +156,6 @@ Auto Patrol: []"},
|
||||
mode = SECBOT_IDLE
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/bot/ed209/attack_ai(mob/user as mob)
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
|
||||
/obj/machinery/bot/ed209/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if ((istype(W, /obj/item/weapon/card/emag)) && (!src.emagged))
|
||||
user << "\red You short out [src]'s target assessment circuits."
|
||||
@@ -750,6 +744,8 @@ Auto Patrol: []"},
|
||||
|
||||
|
||||
/obj/machinery/bot/ed209/emp_act(severity)
|
||||
if (cam)
|
||||
cam.emp_act(severity)
|
||||
if (severity > 2)
|
||||
..(severity-1)
|
||||
else if (severity==2 && prob(70))
|
||||
@@ -809,7 +805,7 @@ Auto Patrol: []"},
|
||||
src.item_state = "ed209_shell"
|
||||
src.icon_state = "ed209_shell"
|
||||
del(W)
|
||||
else if ((istype(W, /obj/item/weapon/weldingtool)) && (src.build_step == 3))
|
||||
else if ((istype(W, /obj/item/weapon/weldingtool) && W:welding) && (src.build_step == 3))
|
||||
if (W:remove_fuel(1,user))
|
||||
src.build_step++
|
||||
src.name = "shielded frame assembly"
|
||||
|
||||
@@ -155,13 +155,6 @@
|
||||
targetdirection = null
|
||||
src.updateUsrDialog()
|
||||
|
||||
|
||||
/obj/machinery/bot/floorbot/attack_ai()
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
|
||||
/obj/machinery/bot/floorbot/process()
|
||||
set background = 1
|
||||
|
||||
|
||||
@@ -95,10 +95,6 @@
|
||||
src.icon_state = "medibot[src.on]"
|
||||
src.updateUsrDialog()
|
||||
|
||||
|
||||
/obj/machinery/bot/medbot/attack_ai(mob/user as mob)
|
||||
return toggle_power()
|
||||
|
||||
/obj/machinery/bot/medbot/attack_paw(mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
@@ -143,7 +139,10 @@
|
||||
usr.machine = src
|
||||
src.add_fingerprint(usr)
|
||||
if ((href_list["power"]) && (src.allowed(usr)))
|
||||
src.toggle_power()
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
|
||||
else if((href_list["adj_threshold"]) && (!src.locked))
|
||||
var/adjust_num = text2num(href_list["adj_threshold"])
|
||||
@@ -310,14 +309,6 @@
|
||||
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/bot/medbot/proc/toggle_power()
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
return
|
||||
|
||||
/obj/machinery/bot/medbot/proc/assess_patient(mob/living/carbon/C as mob)
|
||||
//Time to see if they need medical help!
|
||||
if(C.stat == 2)
|
||||
@@ -447,6 +438,11 @@
|
||||
src.stunned = min(stunned+10,20)
|
||||
..()
|
||||
|
||||
/obj/machinery/bot/medbot/emp_act(severity)
|
||||
if (cam)
|
||||
cam.emp_act(severity)
|
||||
..()
|
||||
|
||||
/obj/machinery/bot/medbot/explode()
|
||||
src.on = 0
|
||||
for(var/mob/O in hearers(src, null))
|
||||
|
||||
@@ -195,14 +195,14 @@
|
||||
|
||||
|
||||
/obj/machinery/bot/mulebot/attack_ai(var/mob/user)
|
||||
usr.machine = src
|
||||
user.machine = src
|
||||
interact(user, 1)
|
||||
|
||||
/obj/machinery/bot/mulebot/attack_hand(var/mob/user)
|
||||
. = ..()
|
||||
if (.)
|
||||
return
|
||||
usr.machine = src
|
||||
user.machine = src
|
||||
interact(user, 0)
|
||||
|
||||
/obj/machinery/bot/mulebot/proc/interact(var/mob/user, var/ai=0)
|
||||
|
||||
@@ -160,12 +160,6 @@ Auto Patrol: []"},
|
||||
mode = SECBOT_IDLE
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/bot/secbot/attack_ai(mob/user as mob)
|
||||
if (src.on)
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
|
||||
/obj/machinery/bot/secbot/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if ((istype(W, /obj/item/weapon/card/emag)) && (!src.emagged))
|
||||
user << "\red You short out [src]'s target assessment circuits."
|
||||
@@ -696,6 +690,11 @@ Auto Patrol: []"},
|
||||
src.target = user
|
||||
src.mode = SECBOT_HUNT
|
||||
|
||||
/obj/machinery/bot/secbot/emp_act(severity)
|
||||
if (cam)
|
||||
cam.emp_act(severity)
|
||||
..()
|
||||
|
||||
//Secbot Construction
|
||||
|
||||
/obj/item/clothing/head/helmet/attackby(var/obj/item/device/radio/signaler/S, mob/user as mob)
|
||||
@@ -726,7 +725,7 @@ Auto Patrol: []"},
|
||||
|
||||
/obj/item/weapon/secbot_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
if ((istype(W, /obj/item/weapon/weldingtool)) && (!src.build_step))
|
||||
if ((istype(W, /obj/item/weapon/weldingtool) && W:welding) && (!src.build_step))
|
||||
if(W:remove_fuel(1,user))
|
||||
src.build_step++
|
||||
src.overlays += image('aibots.dmi', "hs_hole")
|
||||
|
||||
@@ -55,85 +55,92 @@ datum/computer/file/embedded_program/access_controller
|
||||
target_state = ACCESS_STATE_INTERNAL
|
||||
|
||||
process()
|
||||
switch(state)
|
||||
if(ACCESS_STATE_INTERNAL) // state -1
|
||||
if(target_state > state)
|
||||
if(memory["interior_status"] == "locked")
|
||||
state = ACCESS_STATE_LOCKED
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
if(memory["interior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
|
||||
if(ACCESS_STATE_LOCKED)
|
||||
if(target_state < state)
|
||||
if(memory["exterior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
if(memory["exterior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else
|
||||
if(memory["interior_status"] == "closed" || memory["interior_status"] == "open")
|
||||
state = ACCESS_STATE_INTERNAL
|
||||
var/process_again = 1
|
||||
while(process_again)
|
||||
process_again = 0
|
||||
switch(state)
|
||||
if(ACCESS_STATE_INTERNAL) // state -1
|
||||
if(target_state > state)
|
||||
if(memory["interior_status"] == "locked")
|
||||
state = ACCESS_STATE_LOCKED
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
signal.data["command"] = "unlock"
|
||||
if(memory["interior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
|
||||
if(ACCESS_STATE_LOCKED)
|
||||
if(target_state < state)
|
||||
if(memory["exterior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
if(memory["exterior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else if(target_state > state)
|
||||
if(memory["interior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
if(memory["interior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
if(memory["interior_status"] == "closed" || memory["interior_status"] == "open")
|
||||
state = ACCESS_STATE_INTERNAL
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
signal.data["command"] = "secure_open"
|
||||
post_signal(signal)
|
||||
else if(target_state > state)
|
||||
if(memory["interior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
if(memory["interior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else
|
||||
if(memory["exterior_status"] == "closed" || memory["exterior_status"] == "open")
|
||||
state = ACCESS_STATE_EXTERNAL
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
signal.data["command"] = "secure_open"
|
||||
post_signal(signal)
|
||||
else
|
||||
if(memory["exterior_status"] == "closed" || memory["exterior_status"] == "open")
|
||||
state = ACCESS_STATE_EXTERNAL
|
||||
if(memory["interior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
if(memory["interior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else if(memory["exterior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
if(memory["exterior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
|
||||
if(ACCESS_STATE_EXTERNAL) //state 1
|
||||
if(target_state < state)
|
||||
if(memory["exterior_status"] == "locked")
|
||||
state = ACCESS_STATE_LOCKED
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
signal.data["command"] = "unlock"
|
||||
if(memory["exterior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else
|
||||
if(memory["interior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
if(memory["interior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else if(memory["exterior_status"] != "locked")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
if(memory["exterior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
|
||||
if(ACCESS_STATE_EXTERNAL) //state 1
|
||||
if(target_state < state)
|
||||
if(memory["exterior_status"] == "locked")
|
||||
state = ACCESS_STATE_LOCKED
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
if(memory["exterior_status"] == "closed")
|
||||
signal.data["command"] = "lock"
|
||||
else
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
|
||||
|
||||
return 1
|
||||
|
||||
@@ -32,7 +32,7 @@ datum/computer/file/embedded_program/airlock_controller
|
||||
memory["interior_status"] = signal.data["door_status"]
|
||||
|
||||
else if(receive_tag==airpump_tag)
|
||||
if(signal.data["power"]=="on")
|
||||
if(signal.data["power"])
|
||||
memory["pump_status"] = signal.data["direction"]
|
||||
else
|
||||
memory["pump_status"] = "off"
|
||||
@@ -57,119 +57,146 @@ datum/computer/file/embedded_program/airlock_controller
|
||||
target_state = AIRLOCK_STATE_CLOSED
|
||||
|
||||
process()
|
||||
switch(state)
|
||||
if(AIRLOCK_STATE_INOPEN) // state -2
|
||||
if(target_state > state)
|
||||
if(memory["interior_status"] == "closed")
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else
|
||||
if(memory["pump_status"] != "off")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = airpump_tag
|
||||
signal.data["command"] = "power_off"
|
||||
post_signal(signal)
|
||||
|
||||
if(AIRLOCK_STATE_PRESSURIZE)
|
||||
if(target_state < state)
|
||||
if(sensor_pressure >= ONE_ATMOSPHERE*0.95)
|
||||
if(memory["interior_status"] == "open")
|
||||
state = AIRLOCK_STATE_INOPEN
|
||||
var/process_again = 1
|
||||
while(process_again)
|
||||
process_again = 0
|
||||
switch(state)
|
||||
if(AIRLOCK_STATE_INOPEN) // state -2
|
||||
if(target_state > state)
|
||||
if(memory["interior_status"] == "closed")
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
signal.data["command"] = "secure_open"
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = airpump_tag
|
||||
if(memory["pump_status"] == "siphon")
|
||||
signal.data["command"] = "stabalize"
|
||||
else if(memory["pump_status"] != "release")
|
||||
signal.data["command"] = "power_on"
|
||||
post_signal(signal)
|
||||
else if(target_state > state)
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
if(memory["pump_status"] != "off")
|
||||
var/datum/signal/signal = new
|
||||
signal.data = list(
|
||||
"tag" = airpump_tag,
|
||||
"power" = 0,
|
||||
"sigtype"="command"
|
||||
)
|
||||
post_signal(signal)
|
||||
|
||||
if(AIRLOCK_STATE_CLOSED)
|
||||
if(target_state > state)
|
||||
if(memory["interior_status"] == "closed")
|
||||
state = AIRLOCK_STATE_DEPRESSURIZE
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else if(target_state < state)
|
||||
if(memory["exterior_status"] == "closed")
|
||||
state = AIRLOCK_STATE_PRESSURIZE
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
if(AIRLOCK_STATE_PRESSURIZE)
|
||||
if(target_state < state)
|
||||
if(sensor_pressure >= ONE_ATMOSPHERE*0.95)
|
||||
if(memory["interior_status"] == "open")
|
||||
state = AIRLOCK_STATE_INOPEN
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
signal.data["command"] = "secure_open"
|
||||
post_signal(signal)
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data = list(
|
||||
"tag" = airpump_tag,
|
||||
"sigtype"="command"
|
||||
)
|
||||
if(memory["pump_status"] == "siphon")
|
||||
signal.data["stabalize"] = 1
|
||||
else if(memory["pump_status"] != "release")
|
||||
signal.data["power"] = 1
|
||||
post_signal(signal)
|
||||
else if(target_state > state)
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
process_again = 1
|
||||
|
||||
else
|
||||
if(memory["pump_status"] != "off")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = airpump_tag
|
||||
signal.data["command"] = "power_off"
|
||||
post_signal(signal)
|
||||
|
||||
if(AIRLOCK_STATE_DEPRESSURIZE)
|
||||
var/target_pressure = ONE_ATMOSPHERE*0.05
|
||||
if(sanitize_external)
|
||||
target_pressure = ONE_ATMOSPHERE*0.01
|
||||
|
||||
if(sensor_pressure <= target_pressure)
|
||||
if(AIRLOCK_STATE_CLOSED)
|
||||
if(target_state > state)
|
||||
if(memory["exterior_status"] == "open")
|
||||
state = AIRLOCK_STATE_OUTOPEN
|
||||
if(memory["interior_status"] == "closed")
|
||||
state = AIRLOCK_STATE_DEPRESSURIZE
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = interior_door_tag
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else if(target_state < state)
|
||||
if(memory["exterior_status"] == "closed")
|
||||
state = AIRLOCK_STATE_PRESSURIZE
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
signal.data["command"] = "secure_open"
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else if(target_state < state)
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
else if((target_state < state) && !sanitize_external)
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.data["tag"] = airpump_tag
|
||||
if(memory["pump_status"] == "release")
|
||||
signal.data["command"] = "purge"
|
||||
else if(memory["pump_status"] != "siphon")
|
||||
signal.data["command"] = "power_on"
|
||||
post_signal(signal)
|
||||
|
||||
if(AIRLOCK_STATE_OUTOPEN) //state 2
|
||||
if(target_state < state)
|
||||
if(memory["exterior_status"] == "closed")
|
||||
if(sanitize_external)
|
||||
state = AIRLOCK_STATE_DEPRESSURIZE
|
||||
else
|
||||
else
|
||||
if(memory["pump_status"] != "off")
|
||||
var/datum/signal/signal = new
|
||||
signal.data = list(
|
||||
"tag" = airpump_tag,
|
||||
"power" = 0,
|
||||
"sigtype"="command"
|
||||
)
|
||||
post_signal(signal)
|
||||
|
||||
if(AIRLOCK_STATE_DEPRESSURIZE)
|
||||
var/target_pressure = ONE_ATMOSPHERE*0.05
|
||||
if(sanitize_external)
|
||||
target_pressure = ONE_ATMOSPHERE*0.01
|
||||
|
||||
if(sensor_pressure <= target_pressure)
|
||||
if(target_state > state)
|
||||
if(memory["exterior_status"] == "open")
|
||||
state = AIRLOCK_STATE_OUTOPEN
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
signal.data["command"] = "secure_open"
|
||||
post_signal(signal)
|
||||
else if(target_state < state)
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
process_again = 1
|
||||
else if((target_state < state) && !sanitize_external)
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else
|
||||
if(memory["pump_status"] != "off")
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = airpump_tag
|
||||
signal.data["command"] = "power_off"
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.data = list(
|
||||
"tag" = airpump_tag,
|
||||
"sigtype"="command"
|
||||
)
|
||||
if(memory["pump_status"] == "release")
|
||||
signal.data["purge"] = 1
|
||||
else if(memory["pump_status"] != "siphon")
|
||||
signal.data["power"] = 1
|
||||
post_signal(signal)
|
||||
|
||||
if(AIRLOCK_STATE_OUTOPEN) //state 2
|
||||
if(target_state < state)
|
||||
if(memory["exterior_status"] == "closed")
|
||||
if(sanitize_external)
|
||||
state = AIRLOCK_STATE_DEPRESSURIZE
|
||||
process_again = 1
|
||||
else
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
process_again = 1
|
||||
else
|
||||
var/datum/signal/signal = new
|
||||
signal.data["tag"] = exterior_door_tag
|
||||
signal.data["command"] = "secure_close"
|
||||
post_signal(signal)
|
||||
else
|
||||
if(memory["pump_status"] != "off")
|
||||
var/datum/signal/signal = new
|
||||
signal.data = list(
|
||||
"tag" = airpump_tag,
|
||||
"power" = 0,
|
||||
"sigtype"="command"
|
||||
)
|
||||
post_signal(signal)
|
||||
|
||||
memory["sensor_pressure"] = sensor_pressure
|
||||
memory["processing"] = state != target_state
|
||||
sensor_pressure = null
|
||||
//sensor_pressure = null //not sure if we can comment this out. Uncomment in case of problems -rastaf0
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -42,7 +42,8 @@ obj/machinery/embedded_controller
|
||||
if(!signal || signal.encryption) return
|
||||
|
||||
if(program)
|
||||
return program.receive_signal(signal, receive_method, receive_param)
|
||||
program.receive_signal(signal, receive_method, receive_param)
|
||||
//spawn(5) program.process() //no, program.process sends some signals and machines respond and we here again and we lag -rastaf0
|
||||
|
||||
Topic(href, href_list)
|
||||
if(..())
|
||||
@@ -50,8 +51,10 @@ obj/machinery/embedded_controller
|
||||
|
||||
if(program)
|
||||
program.receive_user_command(href_list["command"])
|
||||
spawn(5) program.process()
|
||||
|
||||
usr.machine = src
|
||||
spawn(5) src.updateDialog()
|
||||
|
||||
process()
|
||||
if(program)
|
||||
|
||||
@@ -783,7 +783,7 @@
|
||||
//SN src = null
|
||||
del(src)
|
||||
return
|
||||
if (!( istype(W, /obj/item/weapon/weldingtool) ))
|
||||
if (!( istype(W, /obj/item/weapon/weldingtool) && W:welding))
|
||||
return
|
||||
if (!( src.status ))
|
||||
src.status = 1
|
||||
@@ -875,7 +875,7 @@
|
||||
//SN src = null
|
||||
del(src)
|
||||
return
|
||||
if (!( istype(W, /obj/item/weapon/weldingtool) ))
|
||||
if (!( istype(W, /obj/item/weapon/weldingtool) && W:welding ))
|
||||
return
|
||||
if (!( src.status ))
|
||||
src.status = 1
|
||||
@@ -935,7 +935,7 @@
|
||||
//SN src = null
|
||||
del(src)
|
||||
return
|
||||
if (( istype(W, /obj/item/weapon/weldingtool) ))
|
||||
if (( istype(W, /obj/item/weapon/weldingtool) && W:welding))
|
||||
return
|
||||
if (!( src.status ))
|
||||
src.status = 1
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
user << "\red The [src.name] needs to be unwelded from the floor."
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/weapon/weldingtool))
|
||||
else if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||
if(active)
|
||||
user << "Turn off the [src] first."
|
||||
return
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
if(2)
|
||||
user << "\red The [src.name] needs to be unwelded from the floor."
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/weldingtool))
|
||||
else if(istype(W, /obj/item/weapon/weldingtool) && W:welding)
|
||||
switch(state)
|
||||
if(0)
|
||||
user << "\red The [src.name] needs to be wrenched to the floor."
|
||||
|
||||
12665
maps/tgstation.2.0.3.dmm
12665
maps/tgstation.2.0.3.dmm
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user