mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
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:
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user