Adds a crew monitor program to modular computers (#12705)

* Should add crew monitor program

Fairly basic, just exports the crew monitor UI and imports it in a different Ntos UI like how secureye was done.

* Forgot this

ctrl C ctrl V failed me again

* Adds an alarm icon and adds theos's request

Took me long enough to do this

* Forgot about the define

this is probably important

* Changed the header icon and made it update with alarms

Forgot to change this when mashing ctrl C ctrl V

* Fixed alarms and ported header icons from bay

Fixed alarms triggering from off Z level deaths and ported header icons from bay. Untested, but parts of this already existed on my test server so it should work.
This commit is contained in:
nmajask
2021-11-27 10:41:36 -05:00
committed by GitHub
parent dd25156af6
commit 1310aeeb95
13 changed files with 184 additions and 87 deletions

View File

@@ -0,0 +1,56 @@
/datum/computer_file/program/crew_monitor
filename = "crewmon"
filedesc = "Crew Suit Sensor Monitor"
extended_desc = "This program allows for viewing of crew members vitals via their suit sensors."
category = PROGRAM_CATEGORY_CREW
ui_header = "alarm_green.gif"
program_icon_state = "crew"
requires_ntnet = TRUE
transfer_access = ACCESS_MEDICAL
available_on_ntnet = TRUE
usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP | PROGRAM_TABLET | PROGRAM_PHONE //| PROGRAM_TELESCREEN // For my other PR
network_destination = "tracking program"
size = 5
tgui_id = "NtosCrewMonitor"
program_icon = "heartbeat"
var/program_icon_state_alarm = "crew-red"
var/alarm = FALSE
/datum/computer_file/program/crew_monitor/New()
..()
set_signals()
/datum/computer_file/program/crew_monitor/Destroy()
..()
clear_signals()
/datum/computer_file/program/crew_monitor/proc/set_signals()
RegisterSignal(GLOB.crewmonitor, COMSIG_MACHINERY_CREWMON_UPDATE, .proc/update_overlay, override = TRUE)
/datum/computer_file/program/crew_monitor/proc/clear_signals()
UnregisterSignal(GLOB.crewmonitor, COMSIG_MACHINERY_CREWMON_UPDATE)
/datum/computer_file/program/crew_monitor/proc/update_overlay()
var/z = usr.z
if(!z)
var/turf/T = get_turf(usr)
z = T.z
if(GLOB.crewmonitor?["[z]"].death_list.len > 0)
alarm = TRUE
else
alarm = FALSE
if(alarm)
program_icon_state = program_icon_state_alarm
ui_header = "crew_red.gif"
else
program_icon_state = initial(program_icon_state)
ui_header = "crew_green.gif"
if(istype(computer))
computer.update_icon()
/datum/computer_file/program/crew_monitor/ui_data(mob/user)
var/list/data = get_header_data()
data |= GLOB.crewmonitor.ui_data(user)
update_overlay()
return data

View File

@@ -219,7 +219,7 @@
requires_ntnet = TRUE
transfer_access = ACCESS_MEDICAL
available_on_ntnet = TRUE
program_icon = "heartbeat"
program_icon = "street-view"
/datum/computer_file/program/radar/lifeline/find_atom()
return locate(selected) in GLOB.carbon_list