diff --git a/code/WorkInProgress/Mini/atmos_control.dm b/code/WorkInProgress/Mini/atmos_control.dm index e1aa431fd7f..b5a656ce352 100644 --- a/code/WorkInProgress/Mini/atmos_control.dm +++ b/code/WorkInProgress/Mini/atmos_control.dm @@ -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 = "

[current.name]


" dat += current.return_status() - if(current.remote_control) + if(current.remote_control || overridden && current.rcon_setting) dat += "
[src.return_controls()]" return dat diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index f022e1ec89c..2d24ac4c8b8 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -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 "[src][return_status()]
[remote_control ? "Disable" : "Enable"] Remote Control
(Swipe ID card to unlock interface)" + return "[src][return_status()]
[rcon_text()]
(Swipe ID card to unlock interface)" else - return "[src][return_status()]
[remote_control ? "Disable" : "Enable"] Remote Control
[return_controls()]" + return "[src][return_status()]
[rcon_text()]
[return_controls()]" /obj/machinery/alarm/proc/return_status() var/turf/location = src.loc @@ -298,6 +303,24 @@ Temperature: [environment.temperature] return output +/obj/machinery/alarm/proc/rcon_text() + var/dat = "Remote Control:
" + if(src.rcon_setting == RCON_NO) + dat += "Off" + else + dat += "Off" + dat += " | " + if(src.rcon_setting == RCON_AUTO) + dat += "Auto" + else + dat += "Auto" + dat += " | " + if(src.rcon_setting == RCON_YES) + dat += "On" + else + dat += "On" + return dat + /obj/machinery/alarm/proc/return_controls() var/output = ""//"[alarm_zone] Air [name]
" @@ -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