Now atmos alarms automatically let atmos techs change them if they go off, as well as people can turn that off or make them permamently controllable by the computer

also made it possible for them to mess with any alarm that hasn't had the atmos control completely disabled, but not a way to turn that feature on
This commit is contained in:
Miniature
2012-01-04 22:52:01 +10:30
parent ea70303f21
commit 5a5c620692
2 changed files with 44 additions and 5 deletions
+2 -1
View File
@@ -10,6 +10,7 @@
anchored = 1.0
circuit = "/obj/item/weapon/circuitboard/atmoscontrol"
var/obj/machinery/alarm/current = ""
var/overridden = 0 //not set yet, can't think of a good way to do it
/obj/machinery/computer/atmoscontrol/attack_hand(mob/user)
if(..())
@@ -36,7 +37,7 @@
return ""
var/dat = "<h3>[current.name]</h3><hr>"
dat += current.return_status()
if(current.remote_control)
if(current.remote_control || overridden && current.rcon_setting)
dat += "<hr>[src.return_controls()]"
return dat
+42 -4
View File
@@ -41,6 +41,11 @@
//var/skipprocess = 0 //Experimenting
var/alarm_frequency = 1437
var/remote_control = 0
#define RCON_NO 1
#define RCON_AUTO 2
#define RCON_YES 3
var/rcon_setting = 2
var/rcon_time = 0
#define AALARM_REPORT_TIMEOUT 100
var/datum/radio_frequency/radio_connection
var/locked = 1
@@ -212,9 +217,9 @@
/obj/machinery/alarm/proc/return_text()
if(!(istype(usr, /mob/living/silicon)) && locked)
return "<html><head><title>[src]</title></head><body>[return_status()]<hr><a href='?src=\ref[src]&ctrl=1'>[remote_control ? "Disable" : "Enable"] Remote Control</a><hr><i>(Swipe ID card to unlock interface)</i></body></html>"
return "<html><head><title>[src]</title></head><body>[return_status()]<hr>[rcon_text()]<hr><i>(Swipe ID card to unlock interface)</i></body></html>"
else
return "<html><head><title>[src]</title></head><body>[return_status()]<hr><a href='?src=\ref[src]&ctrl=1'>[remote_control ? "Disable" : "Enable"] Remote Control</a><hr>[return_controls()]</body></html>"
return "<html><head><title>[src]</title></head><body>[return_status()]<hr>[rcon_text()]<hr>[return_controls()]</body></html>"
/obj/machinery/alarm/proc/return_status()
var/turf/location = src.loc
@@ -298,6 +303,24 @@ Temperature: <span class='dl[temperature_dangerlevel]'>[environment.temperature]
return output
/obj/machinery/alarm/proc/rcon_text()
var/dat = "<b>Remote Control:</b><br>"
if(src.rcon_setting == RCON_NO)
dat += "Off"
else
dat += "<a href='?src=\ref[src];rcon=[RCON_NO]'>Off</a>"
dat += " | "
if(src.rcon_setting == RCON_AUTO)
dat += "Auto"
else
dat += "<a href='?src=\ref[src];rcon=[RCON_AUTO]'>Auto</a>"
dat += " | "
if(src.rcon_setting == RCON_YES)
dat += "On"
else
dat += "<a href='?src=\ref[src];rcon=[RCON_YES]'>On</a>"
return dat
/obj/machinery/alarm/proc/return_controls()
var/output = ""//"<B>[alarm_zone] Air [name]</B><HR>"
@@ -492,8 +515,8 @@ table tr:first-child th:first-child { border: none;}
/obj/machinery/alarm/Topic(href, href_list)
if(..())
return
if(href_list["ctrl"])
remote_control = !remote_control
if(href_list["rcon"])
rcon_setting = text2num(href_list["rcon"])
src.updateUsrDialog()
if(href_list["command"])
var/device_id = href_list["id_tag"]
@@ -675,6 +698,21 @@ table tr:first-child th:first-child { border: none;}
mode=AALARM_MODE_SCRUBBING
apply_mode()
//atmos computer remote controll stuff
switch(rcon_setting)
if(RCON_NO)
remote_control = 0
if(RCON_AUTO)
if(danger_level == 2)
remote_control = 1
rcon_time = 60
if(RCON_YES)
remote_control = 1
if(rcon_time > 0)
rcon_time--
else if(rcon_setting == RCON_AUTO)
remote_control = 0
src.updateDialog()
return