mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-21 15:14:17 +00:00
* Better alert/announcment sounds and Status displays * skyrat edits * Update status_display.dmi * Update flavor_misc.dm * Update communications.dm * skyrat edits * Update status_display.dmi * Update _sm_delam.dm * typo * Update status_display.dmi * Update status_display.dmi --------- Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
108 lines
3.2 KiB
Plaintext
108 lines
3.2 KiB
Plaintext
/datum/computer_file/program/status
|
|
filename = "statusdisplay"
|
|
filedesc = "Status Display"
|
|
program_icon = "signal"
|
|
program_icon_state = "generic"
|
|
requires_ntnet = TRUE
|
|
size = 1
|
|
|
|
extended_desc = "An app used to change the message on the station status displays."
|
|
tgui_id = "NtosStatus"
|
|
|
|
usage_flags = PROGRAM_ALL
|
|
available_on_ntnet = FALSE
|
|
|
|
var/upper_text = ""
|
|
var/lower_text = ""
|
|
|
|
/**
|
|
* Post status display radio packet.
|
|
* Arguments:
|
|
* * command - the status display command
|
|
* * data1 - the data1 value, as defined by status displays
|
|
* * data2 - the data2 value, as defined by status displays
|
|
*/
|
|
/datum/computer_file/program/status/proc/post_status(command, data1, data2)
|
|
var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS)
|
|
if(!frequency)
|
|
return
|
|
|
|
var/datum/signal/status_signal = new(list("command" = command))
|
|
switch(command)
|
|
if("message")
|
|
status_signal.data["top_text"] = data1
|
|
status_signal.data["bottom_text"] = data2
|
|
if("alert")
|
|
status_signal.data["picture_state"] = data1
|
|
|
|
frequency.post_signal(src, status_signal)
|
|
|
|
/**
|
|
* Post a message to status displays
|
|
* Arguments:
|
|
* * upper - Top text
|
|
* * lower - Bottom text
|
|
*/
|
|
/datum/computer_file/program/status/proc/post_message(upper, lower)
|
|
post_status("message", upper, lower)
|
|
log_game("[key_name(usr)] has changed the station status display message to \"[upper] [lower]\" [loc_name(usr)]")
|
|
|
|
/**
|
|
* Post a picture to status displays
|
|
* Arguments:
|
|
* * picture - The picture name
|
|
*/
|
|
/datum/computer_file/program/status/proc/post_picture(picture)
|
|
if (!(picture in GLOB.status_display_approved_pictures))
|
|
return
|
|
if(picture in GLOB.status_display_state_pictures)
|
|
post_status(picture)
|
|
else
|
|
if(picture == "currentalert") // You cannot set Code Blue display during Code Red and similiar
|
|
switch(SSsecurity_level.get_current_level_as_number())
|
|
if(SEC_LEVEL_DELTA)
|
|
post_status("alert", "deltaalert")
|
|
if(SEC_LEVEL_RED)
|
|
post_status("alert", "redalert")
|
|
if(SEC_LEVEL_BLUE)
|
|
post_status("alert", "bluealert")
|
|
if(SEC_LEVEL_GREEN)
|
|
post_status("alert", "greenalert")
|
|
// SKYRAT EDIT ADD START - Alert Levels
|
|
if(SEC_LEVEL_VIOLET)
|
|
post_status("alert", "violetalert")
|
|
if(SEC_LEVEL_ORANGE)
|
|
post_status("alert", "orangealert")
|
|
if(SEC_LEVEL_AMBER)
|
|
post_status("alert", "amberalert")
|
|
if(SEC_LEVEL_GAMMA)
|
|
post_status("alert", "gammaalert")
|
|
// SKYRAT EDIT ADD END - Alert Levels
|
|
else
|
|
post_status("alert", picture)
|
|
|
|
log_game("[key_name(usr)] has changed the station status display message to \"[picture]\" [loc_name(usr)]")
|
|
|
|
/datum/computer_file/program/status/ui_act(action, list/params, datum/tgui/ui)
|
|
switch(action)
|
|
if("setStatusMessage")
|
|
upper_text = reject_bad_text(params["upperText"] || "", MAX_STATUS_LINE_LENGTH)
|
|
lower_text = reject_bad_text(params["lowerText"] || "", MAX_STATUS_LINE_LENGTH)
|
|
|
|
post_message(upper_text, lower_text)
|
|
if("setStatusPicture")
|
|
post_picture(params["picture"])
|
|
|
|
/datum/computer_file/program/status/ui_static_data(mob/user)
|
|
var/list/data = list()
|
|
data["maxStatusLineLength"] = MAX_STATUS_LINE_LENGTH
|
|
return data
|
|
|
|
/datum/computer_file/program/status/ui_data(mob/user)
|
|
var/list/data = list()
|
|
|
|
data["upperText"] = upper_text
|
|
data["lowerText"] = lower_text
|
|
|
|
return data
|