mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-11 10:11:09 +00:00
[MIRROR] Reworks the styling of the announcements and expands major announcements to also be colourable. [MDB IGNORE] (#24596)
* Reworks the styling of the announcements and expands major announcements to also be colourable. * Skyrat edits * Skyrat edits --------- Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
@@ -2,14 +2,19 @@
|
||||
|
||||
// these four are just text spans that furnish the TEXT itself with the appropriate CSS classes
|
||||
#define MAJOR_ANNOUNCEMENT_TITLE(string) ("<span class='major_announcement_title'>" + string + "</span>")
|
||||
#define SUBHEADER_ANNOUNCEMENT_TITLE(string) ("<span class='subheader_announcement_text'>" + string + "</span>")
|
||||
#define MAJOR_ANNOUNCEMENT_TEXT(string) ("<span class='major_announcement_text'>" + string + "</span>")
|
||||
#define MINOR_ANNOUNCEMENT_TITLE(string) ("<span class='minor_announcement_title'>" + string + "</span>")
|
||||
#define MINOR_ANNOUNCEMENT_TEXT(string) ("<span class='minor_announcement_text'>" + string + "</span>")
|
||||
|
||||
#define ANNOUNCEMENT_HEADER(string) ("<span class='announcement_header'>" + string + "</span>")
|
||||
|
||||
// these two are the ones that actually give the striped background
|
||||
#define CHAT_ALERT_DEFAULT_SPAN(string) ("<div class='chat_alert_default'>" + string + "</div>")
|
||||
#define CHAT_ALERT_COLORED_SPAN(color, string) ("<div class='chat_alert_" + color + "'>" + string + "</div>")
|
||||
|
||||
#define ANNOUNCEMENT_COLORS list("default", "green", "blue", "pink", "yellow", "orange", "red", "purple")
|
||||
|
||||
/**
|
||||
* Make a big red text announcement to
|
||||
*
|
||||
@@ -32,7 +37,7 @@
|
||||
* * encode_title - if TRUE, the title will be HTML encoded
|
||||
* * encode_text - if TRUE, the text will be HTML encoded
|
||||
*/
|
||||
/proc/priority_announce(text, title = "", sound, type, sender_override, has_important_message = FALSE, list/mob/players, encode_title = TRUE, encode_text = TRUE)
|
||||
/proc/priority_announce(text, title = "", sound, type, sender_override, has_important_message = FALSE, list/mob/players, encode_title = TRUE, encode_text = TRUE, color_override)
|
||||
if(!text)
|
||||
return
|
||||
|
||||
@@ -55,7 +60,7 @@
|
||||
if(ANNOUNCEMENT_TYPE_PRIORITY)
|
||||
header = MAJOR_ANNOUNCEMENT_TITLE("Priority Announcement")
|
||||
if(length(title) > 0)
|
||||
header += MINOR_ANNOUNCEMENT_TITLE(title)
|
||||
header += SUBHEADER_ANNOUNCEMENT_TITLE(title)
|
||||
if(ANNOUNCEMENT_TYPE_CAPTAIN)
|
||||
header = MAJOR_ANNOUNCEMENT_TITLE("Captain's Announcement")
|
||||
GLOB.news_network.submit_article(text, "Captain's Announcement", "Station Announcements", null)
|
||||
@@ -64,15 +69,19 @@
|
||||
else
|
||||
header += generate_unique_announcement_header(title, sender_override)
|
||||
|
||||
announcement_strings += header
|
||||
announcement_strings += ANNOUNCEMENT_HEADER(header)
|
||||
|
||||
///If the announcer overrides alert messages, use that message.
|
||||
if(SSstation.announcer.custom_alert_message && !has_important_message)
|
||||
announcement_strings += SSstation.announcer.custom_alert_message
|
||||
announcement_strings += MAJOR_ANNOUNCEMENT_TEXT(SSstation.announcer.custom_alert_message)
|
||||
else
|
||||
announcement_strings += MAJOR_ANNOUNCEMENT_TEXT(text)
|
||||
|
||||
var/finalized_announcement = CHAT_ALERT_DEFAULT_SPAN(jointext(announcement_strings, "<br>"))
|
||||
var/finalized_announcement
|
||||
if(color_override)
|
||||
finalized_announcement = CHAT_ALERT_COLORED_SPAN(color_override, jointext(announcement_strings, ""))
|
||||
else
|
||||
finalized_announcement = CHAT_ALERT_DEFAULT_SPAN(jointext(announcement_strings, ""))
|
||||
|
||||
dispatch_announcement_to_players(finalized_announcement, players, sound)
|
||||
|
||||
@@ -118,14 +127,15 @@
|
||||
message = html_encode(message)
|
||||
|
||||
var/list/minor_announcement_strings = list()
|
||||
minor_announcement_strings += MINOR_ANNOUNCEMENT_TITLE(title)
|
||||
if(title != null && title != "")
|
||||
minor_announcement_strings += ANNOUNCEMENT_HEADER(MINOR_ANNOUNCEMENT_TITLE(title))
|
||||
minor_announcement_strings += MINOR_ANNOUNCEMENT_TEXT(message)
|
||||
|
||||
var/finalized_announcement
|
||||
if(color_override)
|
||||
finalized_announcement = CHAT_ALERT_COLORED_SPAN(color_override, jointext(minor_announcement_strings, "<br>"))
|
||||
finalized_announcement = CHAT_ALERT_COLORED_SPAN(color_override, jointext(minor_announcement_strings, ""))
|
||||
else
|
||||
finalized_announcement = CHAT_ALERT_DEFAULT_SPAN(jointext(minor_announcement_strings, "<br>"))
|
||||
finalized_announcement = CHAT_ALERT_DEFAULT_SPAN(jointext(minor_announcement_strings, ""))
|
||||
|
||||
var/custom_sound = sound_override || (alert ? 'modular_skyrat/modules/alerts/sound/alerts/alert1.ogg' : 'sound/misc/notice2.ogg') // SKYRAT EDIT CHANGE - CUSTOM ANNOUNCEMENTS - Original: 'sound/misc/notice1.ogg'
|
||||
dispatch_announcement_to_players(finalized_announcement, players, custom_sound, should_play_sound)
|
||||
@@ -148,10 +158,10 @@
|
||||
message = selected_level.lowering_to_announcement
|
||||
|
||||
var/list/level_announcement_strings = list()
|
||||
level_announcement_strings += MINOR_ANNOUNCEMENT_TITLE(title)
|
||||
level_announcement_strings += ANNOUNCEMENT_HEADER(MINOR_ANNOUNCEMENT_TITLE(title))
|
||||
level_announcement_strings += MINOR_ANNOUNCEMENT_TEXT(message)
|
||||
|
||||
var/finalized_announcement = CHAT_ALERT_COLORED_SPAN(current_level_color, jointext(level_announcement_strings, "<br>"))
|
||||
var/finalized_announcement = CHAT_ALERT_COLORED_SPAN(current_level_color, jointext(level_announcement_strings, ""))
|
||||
|
||||
dispatch_announcement_to_players(finalized_announcement, GLOB.player_list, current_level_sound)
|
||||
|
||||
@@ -165,9 +175,9 @@
|
||||
returnable_strings += MAJOR_ANNOUNCEMENT_TITLE(sender_override)
|
||||
|
||||
if(length(title) > 0)
|
||||
returnable_strings += MINOR_ANNOUNCEMENT_TITLE(title)
|
||||
returnable_strings += SUBHEADER_ANNOUNCEMENT_TITLE(title)
|
||||
|
||||
return jointext(returnable_strings, "<br>")
|
||||
return jointext(returnable_strings, "")
|
||||
|
||||
/// Proc that just dispatches the announcement to our applicable audience. Only the announcement is a mandatory arg.
|
||||
/proc/dispatch_announcement_to_players(announcement, list/players, sound_override = null, should_play_sound = TRUE)
|
||||
|
||||
@@ -38,7 +38,7 @@ SUBSYSTEM_DEF(communications)
|
||||
else
|
||||
var/list/message_data = user.treat_message(input)
|
||||
if(syndicate)
|
||||
priority_announce(html_decode(message_data["message"]), null, 'sound/misc/announce_syndi.ogg', ANNOUNCEMENT_TYPE_SYNDICATE, has_important_message = TRUE, players = players)
|
||||
priority_announce(html_decode(message_data["message"]), null, 'sound/misc/announce_syndi.ogg', ANNOUNCEMENT_TYPE_SYNDICATE, has_important_message = TRUE, players = players, color_override = "red")
|
||||
else
|
||||
priority_announce(html_decode(message_data["message"]), null, ANNOUNCER_CAPTAIN, ANNOUNCEMENT_TYPE_CAPTAIN, has_important_message = TRUE, players = players) // SKYRAT EDIT CHANGE - 'sound/misc/announce.ogg' to ANNOUNCER_CAPTAIN
|
||||
COOLDOWN_START(src, nonsilicon_message_cooldown, COMMUNICATION_COOLDOWN)
|
||||
|
||||
@@ -50,6 +50,10 @@
|
||||
var/print_report = TRUE
|
||||
/// The sound that's going to accompany our message.
|
||||
var/played_sound = DEFAULT_ANNOUNCEMENT_SOUND
|
||||
/// The colour of the announcement when sent
|
||||
var/announcement_color = "default"
|
||||
/// The subheader to include when sending the announcement. Keep blank to not include a subheader
|
||||
var/subheader = ""
|
||||
/// A static list of preset names that can be chosen.
|
||||
var/list/preset_names = list(CENTCOM_PRESET, SYNDICATE_PRESET, WIZARD_PRESET, CUSTOM_PRESET)
|
||||
|
||||
@@ -79,6 +83,8 @@
|
||||
data["announce_contents"] = announce_contents
|
||||
data["print_report"] = print_report
|
||||
data["played_sound"] = played_sound
|
||||
data["announcement_color"] = announcement_color
|
||||
data["subheader"] = subheader
|
||||
|
||||
return data
|
||||
|
||||
@@ -86,6 +92,7 @@
|
||||
var/list/data = list()
|
||||
data["command_name_presets"] = preset_names
|
||||
data["announcer_sounds"] = list(DEFAULT_ANNOUNCEMENT_SOUND) + GLOB.announcer_keys
|
||||
data["announcement_colors"] = ANNOUNCEMENT_COLORS
|
||||
|
||||
return data
|
||||
|
||||
@@ -108,6 +115,13 @@
|
||||
announce_contents = !announce_contents
|
||||
if("toggle_printing")
|
||||
print_report = !print_report
|
||||
if("update_announcement_color")
|
||||
var/colors = ANNOUNCEMENT_COLORS
|
||||
var/chosen_color = params["updated_announcement_color"]
|
||||
if(chosen_color in colors)
|
||||
announcement_color = chosen_color
|
||||
if("set_subheader")
|
||||
subheader = params["new_subheader"]
|
||||
if("submit_report")
|
||||
if(!command_name)
|
||||
to_chat(ui_user, span_danger("You can't send a report with no command name."))
|
||||
@@ -136,7 +150,13 @@
|
||||
report_sound = SSstation.announcer.get_rand_report_sound()
|
||||
|
||||
if(announce_contents)
|
||||
priority_announce(command_report_content, null, report_sound, has_important_message = TRUE)
|
||||
var/chosen_color = announcement_color
|
||||
if(chosen_color == "default")
|
||||
if(command_name == SYNDICATE_PRESET)
|
||||
chosen_color = "red"
|
||||
else if(command_name == WIZARD_PRESET)
|
||||
chosen_color = "purple"
|
||||
priority_announce(command_report_content, subheader == ""? null : subheader, report_sound, has_important_message = TRUE, color_override = chosen_color)
|
||||
|
||||
if(!announce_contents || print_report)
|
||||
print_command_report(command_report_content, "[announce_contents ? "" : "Classified "][command_name] Update", !announce_contents)
|
||||
|
||||
@@ -73,7 +73,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec)
|
||||
war_was_declared(memo = war_declaration)
|
||||
|
||||
/obj/item/nuclear_challenge/proc/war_was_declared(mob/living/user, memo)
|
||||
priority_announce(memo, title = "Declaration of War", sound = 'sound/machines/alarm.ogg', has_important_message = TRUE)
|
||||
priority_announce(memo, title = "Declaration of War", sound = 'sound/machines/alarm.ogg', has_important_message = TRUE, sender_override = "Nuclear Operative Outpost", color_override = "red")
|
||||
if(user)
|
||||
to_chat(user, "You've attracted the attention of powerful forces within the syndicate. \
|
||||
A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission.")
|
||||
@@ -168,7 +168,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec)
|
||||
return
|
||||
#endif
|
||||
|
||||
priority_announce(memo, title = "Declaration of War", sound = 'sound/machines/alarm.ogg', has_important_message = TRUE)
|
||||
priority_announce(memo, title = "Declaration of War", sound = 'sound/machines/alarm.ogg', has_important_message = TRUE, sender_override = "Nuclear Operative Outpost", color_override = "red")
|
||||
|
||||
/obj/item/nuclear_challenge/literally_just_does_the_message/distribute_tc()
|
||||
return
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
/proc/pirates_answered(datum/comm_message/threat, datum/pirate_gang/chosen_gang, payoff, initial_send_time)
|
||||
if(world.time > initial_send_time + RESPONSE_MAX_TIME)
|
||||
priority_announce(chosen_gang.response_too_late, sender_override = chosen_gang.ship_name)
|
||||
priority_announce(chosen_gang.response_too_late, sender_override = chosen_gang.ship_name, color_override = chosen_gang.announcement_color)
|
||||
return
|
||||
if(!threat?.answered)
|
||||
return
|
||||
@@ -51,9 +51,9 @@
|
||||
if(plundered_account)
|
||||
if(plundered_account.adjust_money(-payoff))
|
||||
chosen_gang.paid_off = TRUE
|
||||
priority_announce(chosen_gang.response_received, sender_override = chosen_gang.ship_name)
|
||||
priority_announce(chosen_gang.response_received, sender_override = chosen_gang.ship_name, color_override = chosen_gang.announcement_color)
|
||||
else
|
||||
priority_announce(chosen_gang.response_not_enough, sender_override = chosen_gang.ship_name)
|
||||
priority_announce(chosen_gang.response_not_enough, sender_override = chosen_gang.ship_name, color_override = chosen_gang.announcement_color)
|
||||
|
||||
/proc/spawn_pirates(datum/comm_message/threat, datum/pirate_gang/chosen_gang)
|
||||
if(chosen_gang.paid_off)
|
||||
|
||||
@@ -47,6 +47,8 @@ GLOBAL_LIST_INIT(heavy_pirate_gangs, init_pirate_gangs(is_heavy = TRUE))
|
||||
|
||||
/// Have the pirates been paid off?
|
||||
var/paid_off = FALSE
|
||||
/// The colour of their announcements when sent to players
|
||||
var/announcement_color = "red"
|
||||
|
||||
/datum/pirate_gang/New()
|
||||
. = ..()
|
||||
@@ -133,6 +135,7 @@ GLOBAL_LIST_INIT(heavy_pirate_gangs, init_pirate_gangs(is_heavy = TRUE))
|
||||
response_received = "Thank you for your generosity. Your money will not be wasted."
|
||||
response_too_late = "We hope you like skin cancer!"
|
||||
response_not_enough = "This is not nearly enough for our operations. I'm afraid we'll have to borrow some."
|
||||
announcement_color = "purple"
|
||||
|
||||
///Previous Nanotrasen Assitant workers fired for many reasons now looking for revenge and your bank account.
|
||||
/datum/pirate_gang/grey
|
||||
@@ -150,6 +153,7 @@ GLOBAL_LIST_INIT(heavy_pirate_gangs, init_pirate_gangs(is_heavy = TRUE))
|
||||
response_received = "Wait, you ACTUALLY gave us the money? Thanks, but we're coming for the rest anyways!"
|
||||
response_too_late = "Nothing, huh? Looks like the Tide's coming aboard!"
|
||||
response_not_enough = "You trying to cheat us? That's fine, we'll take your station as collateral."
|
||||
announcement_color = "yellow"
|
||||
|
||||
|
||||
///Agents from the space I.R.S. heavily armed to stea- I mean, collect the station's tax dues
|
||||
@@ -173,6 +177,7 @@ GLOBAL_LIST_INIT(heavy_pirate_gangs, init_pirate_gangs(is_heavy = TRUE))
|
||||
response_too_late = "Too late, A team has already been sent out resolve this matter directly."
|
||||
response_not_enough = "You filed your taxes incorrectly, A team has been sent to assist in liquidating assets and arrest you for tax fraud. \
|
||||
Nothing personel kid."
|
||||
announcement_color = "yellow"
|
||||
|
||||
//Mutated Ethereals who have adopted bluespace technology in all the wrong ways.
|
||||
/datum/pirate_gang/lustrous
|
||||
@@ -191,3 +196,4 @@ GLOBAL_LIST_INIT(heavy_pirate_gangs, init_pirate_gangs(is_heavy = TRUE))
|
||||
response_received = "An excellent haul, the synthesis shall resume."
|
||||
response_too_late = "You were not ready then, and now that time has passed. We can only go forward, never back."
|
||||
response_not_enough = "You have insulted us, but there shall be no feud, only swift justice!"
|
||||
announcement_color = "purple"
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
target_door.req_one_access = list()
|
||||
INVOKE_ASYNC(target_door, TYPE_PROC_REF(/obj/machinery/door/airlock, open))
|
||||
CHECK_TICK
|
||||
priority_announce("AULIE OXIN FIERA!!", null, 'sound/magic/knock.ogg', sender_override = "[invoker.real_name]")
|
||||
priority_announce("AULIE OXIN FIERA!!", null, 'sound/magic/knock.ogg', sender_override = "[invoker.real_name]", color_override = "purple")
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
)
|
||||
|
||||
/datum/grand_finale/armageddon/trigger(mob/living/carbon/human/invoker)
|
||||
priority_announce(pick(possible_last_words), null, 'sound/magic/voidblink.ogg', sender_override = "[invoker.real_name]")
|
||||
priority_announce(pick(possible_last_words), null, 'sound/magic/voidblink.ogg', sender_override = "[invoker.real_name]", color_override = "purple")
|
||||
var/turf/current_location = get_turf(invoker)
|
||||
invoker.gib(DROP_ALL_REMAINS)
|
||||
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
|
||||
/datum/round_event/shuttle_insurance/proc/answered()
|
||||
if(EMERGENCY_AT_LEAST_DOCKED)
|
||||
priority_announce("You are definitely too late to purchase insurance, my friends. Our agents don't work on site.",sender_override = ship_name)
|
||||
priority_announce("You are definitely too late to purchase insurance, my friends. Our agents don't work on site.",sender_override = ship_name, color_override = "red")
|
||||
return
|
||||
if(insurance_message && insurance_message.answered == 1)
|
||||
var/datum/bank_account/station_balance = SSeconomy.get_dep_account(ACCOUNT_CAR)
|
||||
if(!station_balance?.adjust_money(-insurance_evaluation))
|
||||
priority_announce("You didn't send us enough money for shuttle insurance. This, in the space layman's terms, is considered scamming. We're keeping your money, scammers!",sender_override = ship_name)
|
||||
priority_announce("You didn't send us enough money for shuttle insurance. This, in the space layman's terms, is considered scamming. We're keeping your money, scammers!", sender_override = ship_name, color_override = "red")
|
||||
return
|
||||
priority_announce("Thank you for purchasing shuttle insurance!",sender_override = ship_name)
|
||||
priority_announce("Thank you for purchasing shuttle insurance!", sender_override = ship_name, color_override = "red")
|
||||
SSshuttle.shuttle_insurance = TRUE
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
flashwindow = TRUE,
|
||||
ignore_mapload = TRUE,
|
||||
ignore_key,
|
||||
header,
|
||||
header = "",
|
||||
notify_suiciders = TRUE,
|
||||
notify_volume = 100
|
||||
)
|
||||
|
||||
@@ -359,7 +359,7 @@
|
||||
SSshuttle.emergency_last_call_loc = null
|
||||
|
||||
if(!silent) // SKYRAT EDIT ADDITION
|
||||
priority_announce("The emergency shuttle has been called. [red_alert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(600)] minutes.[reason][SSshuttle.emergency_last_call_loc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ][SSshuttle.admin_emergency_no_recall ? "\n\nWarning: Shuttle recall subroutines disabled; Recall not possible." : ""]", null, ANNOUNCER_SHUTTLECALLED, ANNOUNCEMENT_TYPE_PRIORITY)
|
||||
priority_announce("The emergency shuttle has been called. [red_alert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(600)] minutes.[reason][SSshuttle.emergency_last_call_loc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ][SSshuttle.admin_emergency_no_recall ? "\n\nWarning: Shuttle recall subroutines disabled; Recall not possible." : ""]", null, ANNOUNCER_SHUTTLECALLED, ANNOUNCEMENT_TYPE_PRIORITY, color_override = "orange")
|
||||
|
||||
/obj/docking_port/mobile/emergency/cancel(area/signalOrigin)
|
||||
if(mode != SHUTTLE_CALL)
|
||||
@@ -374,7 +374,7 @@
|
||||
SSshuttle.emergency_last_call_loc = signalOrigin
|
||||
else
|
||||
SSshuttle.emergency_last_call_loc = null
|
||||
priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergency_last_call_loc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, ANNOUNCER_SHUTTLERECALLED, ANNOUNCEMENT_TYPE_PRIORITY)
|
||||
priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergency_last_call_loc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, ANNOUNCER_SHUTTLERECALLED, ANNOUNCEMENT_TYPE_PRIORITY, color_override = "orange")
|
||||
|
||||
SSticker.emergency_reason = null
|
||||
|
||||
@@ -463,7 +463,7 @@
|
||||
mode = SHUTTLE_DOCKED
|
||||
setTimer(SSshuttle.emergency_dock_time)
|
||||
send2adminchat("Server", "The Emergency Shuttle has docked with the station.")
|
||||
priority_announce("[SSshuttle.emergency] has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, ANNOUNCER_SHUTTLEDOCK, ANNOUNCEMENT_TYPE_PRIORITY)
|
||||
priority_announce("[SSshuttle.emergency] has docked with the station. You have [timeLeft(600)] minutes to board the Emergency Shuttle.", null, ANNOUNCER_SHUTTLEDOCK, ANNOUNCEMENT_TYPE_PRIORITY, color_override = "orange")
|
||||
ShuttleDBStuff()
|
||||
addtimer(CALLBACK(src, PROC_REF(announce_shuttle_events)), 20 SECONDS)
|
||||
|
||||
@@ -516,7 +516,7 @@
|
||||
mode = SHUTTLE_ESCAPE
|
||||
launch_status = ENDGAME_LAUNCHED
|
||||
setTimer(SSshuttle.emergency_escape_time * engine_coeff)
|
||||
priority_announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, ANNOUNCEMENT_TYPE_PRIORITY)
|
||||
priority_announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, ANNOUNCEMENT_TYPE_PRIORITY, color_override = "orange")
|
||||
INVOKE_ASYNC(SSticker, TYPE_PROC_REF(/datum/controller/subsystem/ticker, poll_hearts))
|
||||
bolt_all_doors() //SKYRAT EDIT ADDITION
|
||||
SSmapping.mapvote() //If no map vote has been run yet, start one.
|
||||
@@ -584,7 +584,7 @@
|
||||
mode = SHUTTLE_ESCAPE
|
||||
launch_status = ENDGAME_LAUNCHED
|
||||
setTimer(SSshuttle.emergency_escape_time)
|
||||
priority_announce("The Emergency Shuttle is preparing for direct jump. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, ANNOUNCEMENT_TYPE_PRIORITY)
|
||||
priority_announce("The Emergency Shuttle is preparing for direct jump. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, ANNOUNCEMENT_TYPE_PRIORITY, color_override = "orange")
|
||||
|
||||
///Generate a list of events to run during the departure
|
||||
/obj/docking_port/mobile/emergency/proc/setup_shuttle_events()
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/datum/controller/subsystem/shuttle/proc/autoEnd()
|
||||
if(EMERGENCY_IDLE_OR_RECALLED)
|
||||
SSshuttle.emergency.request(silent = TRUE)
|
||||
priority_announce("The shift has come to an end and the shuttle called. [SSsecurity_level.get_current_level_as_number() == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, ANNOUNCER_SHUTTLECALLED, "Priority")
|
||||
priority_announce("The shift has come to an end and the shuttle called. [SSsecurity_level.get_current_level_as_number() == SEC_LEVEL_RED ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [emergency.timeLeft(600)] minutes.", null, ANNOUNCER_SHUTTLECALLED, "Priority", color_override = "orange")
|
||||
log_game("Round end vote passed. Shuttle has been auto-called.")
|
||||
message_admins("Round end vote passed. Shuttle has been auto-called.")
|
||||
emergency_no_recall = TRUE
|
||||
|
||||
@@ -59,6 +59,7 @@ GLOBAL_VAR(first_officer)
|
||||
response_received = "Should be it, thank you for cooperation. Novaya Rossiyskaya Imperiya collegial secretary out."
|
||||
response_too_late = "Your response was very delayed. We have been instructed to send in the patrol ship for second attempt negotiations, stand by."
|
||||
response_not_enough = "Your bank balance does not hold enough money at the moment or the system has been overriden. We are sending a patrol ship for second attempt negotiations, stand by."
|
||||
announcement_color = "purple"
|
||||
|
||||
/datum/pirate_gang/nri_raiders/generate_message(payoff)
|
||||
var/number = rand(1,99)
|
||||
@@ -520,9 +521,9 @@ GLOBAL_VAR(first_officer)
|
||||
|
||||
/obj/machinery/shuttle_scrambler/nri/send_notification()
|
||||
if(active)
|
||||
priority_announce("We're intercepting all of the current and future supply deliveries until you're more cooperative with the dispatch. So, please do be.","NRI IAC HQ",ANNOUNCER_NRI_RAIDERS,"Priority")
|
||||
priority_announce("We're intercepting all of the current and future supply deliveries until you're more cooperative with the dispatch. So, please do be.","NRI IAC HQ",ANNOUNCER_NRI_RAIDERS,"Priority", color_override = "purple")
|
||||
else
|
||||
priority_announce("We've received a signal to stop the blockade; you're once again free to do whatever you were doing before.","NRI IAC HQ",ANNOUNCER_NRI_RAIDERS,"Priority")
|
||||
priority_announce("We've received a signal to stop the blockade; you're once again free to do whatever you were doing before.","NRI IAC HQ",ANNOUNCER_NRI_RAIDERS,"Priority", color_override = "purple")
|
||||
|
||||
/datum/antagonist/cop
|
||||
name = "\improper NRI Police Officer"
|
||||
|
||||
@@ -142,7 +142,7 @@ GLOBAL_LIST_INIT(call911_do_and_do_not, list(
|
||||
poll_question = "The station has ordered $35,000 in pizza. Will you deliver?"
|
||||
cell_phone_number = "Dogginos"
|
||||
list_to_use = "dogginos"
|
||||
priority_announce(announcement_message, announcer, 'sound/effects/families_police.ogg', has_important_message=TRUE)
|
||||
priority_announce(announcement_message, announcer, 'sound/effects/families_police.ogg', has_important_message=TRUE, color_override = "yellow")
|
||||
var/list/candidates = poll_ghost_candidates(poll_question, "deathsquad")
|
||||
|
||||
if(candidates.len)
|
||||
@@ -565,7 +565,7 @@ GLOBAL_LIST_INIT(call911_do_and_do_not, list(
|
||||
var/datum/bank_account/station_balance = SSeconomy.get_dep_account(ACCOUNT_CAR)
|
||||
station_balance?.adjust_money(SOLFED_FINE_AMOUNT) // paying for the gas to drive all the fuckin' way out to the frontier
|
||||
|
||||
priority_announce(announcement_message, announcement_source, 'sound/effects/families_police.ogg', has_important_message = TRUE)
|
||||
priority_announce(announcement_message, announcement_source, 'sound/effects/families_police.ogg', has_important_message = TRUE, color_override = "yellow")
|
||||
var/list/candidates = poll_ghost_candidates(ghost_poll_msg, jobban_to_check)
|
||||
|
||||
if(candidates.len)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
@use 'sass:map';
|
||||
@use 'sass:color';
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
@@ -1044,70 +1045,201 @@ em {
|
||||
border-bottom: 1px dashed #fff;
|
||||
}
|
||||
|
||||
.major_announcement_title {
|
||||
color: #cc0000; // SKYRAT EDIT CHANGE - ORIGINAL: color: #ff0066
|
||||
text-decoration: underline;
|
||||
font-weight: bold;
|
||||
font-size: 175%;
|
||||
}
|
||||
|
||||
.major_announcement_text {
|
||||
color: #eaeaea;
|
||||
font-weight: bold;
|
||||
font-size: 125%;
|
||||
}
|
||||
|
||||
.minor_announcement_title {
|
||||
color: #33d5ff;
|
||||
font-weight: bold;
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
.minor_announcement_text {
|
||||
color: #eaeaea;
|
||||
font-size: 125%;
|
||||
}
|
||||
|
||||
// SKYRAT EDIT CHANGE BEGIN - Remove neon colors, replaced with less saturated
|
||||
/*
|
||||
$alert-stripe-colors: (
|
||||
'default': #292929,
|
||||
'default': #00283a,
|
||||
'green': #003d00,
|
||||
'blue': #00283a,
|
||||
'pink': #30001b,
|
||||
'yellow': #574a00,
|
||||
'orange': #593400,
|
||||
'red': #540000,
|
||||
'red': #420000,
|
||||
'purple': #2c0030,
|
||||
);
|
||||
|
||||
$alert-background-colors: (
|
||||
'default': #252525,
|
||||
'green': #003800,
|
||||
$alert-stripe-alternate-colors: (
|
||||
'default': #003045,
|
||||
'green': #004700,
|
||||
'blue': #003045,
|
||||
'pink': #400025,
|
||||
'yellow': #4d4100,
|
||||
'orange': #6b4200,
|
||||
'red': #6b0000,
|
||||
'purple': #3a0040,
|
||||
'red': #520000,
|
||||
'purple': #38003d,
|
||||
);
|
||||
|
||||
$alert-major-header-colors: (
|
||||
'default': #33d5ff,
|
||||
'green': #00ff80,
|
||||
'blue': #33d5ff,
|
||||
'pink': #ff80b3,
|
||||
'yellow': #fff4e0,
|
||||
'orange': #feefe7,
|
||||
'red': #ffa8c4,
|
||||
'purple': #c7a1f7,
|
||||
);
|
||||
|
||||
$alert-subheader-header-colors: (
|
||||
'default': #ff9ebb,
|
||||
'green': #ffb3c9,
|
||||
'blue': #ff9ebb,
|
||||
'pink': #75e3ff,
|
||||
'yellow': #75e3ff,
|
||||
'orange': #bdf1ff,
|
||||
'red': #75e3ff,
|
||||
'purple': #75e3ff,
|
||||
);
|
||||
*/
|
||||
|
||||
$alert-stripe-colors: (
|
||||
'default': #0e152c,
|
||||
'green': #0f2e0f,
|
||||
'blue': #121c3a,
|
||||
'pink': #240c19,
|
||||
'yellow': #574a00,
|
||||
'orange': #431b16,
|
||||
'red': #420000,
|
||||
'purple': #220c24,
|
||||
);
|
||||
|
||||
$alert-stripe-alternate-colors: (
|
||||
'default': #111934,
|
||||
'green': #123512,
|
||||
'blue': #151f41,
|
||||
'pink': #301022,
|
||||
'yellow': #4d4100,
|
||||
'orange': #50211b,
|
||||
'red': #520000,
|
||||
'purple': #2b0f2e,
|
||||
);
|
||||
|
||||
$alert-major-header-colors: (
|
||||
'default': #94a5db,
|
||||
'green': #00a854,
|
||||
'blue': #94a5db,
|
||||
'pink': #e990c3,
|
||||
'yellow': #e6af4c,
|
||||
'orange': #e79f79,
|
||||
'red': #ff4542,
|
||||
'purple': #bf9cde,
|
||||
);
|
||||
|
||||
$alert-subheader-header-colors: (
|
||||
'default': #c5ba7c,
|
||||
'green': #d5a0a0,
|
||||
'blue': #c5ba7c,
|
||||
'pink': #f7cfcf,
|
||||
'yellow': #ffddbd,
|
||||
'orange': #ffddbd,
|
||||
'red': #e9aa72,
|
||||
'purple': #f7cfcf,
|
||||
);
|
||||
// SKYRAT EDIT CHANGE END
|
||||
|
||||
$border-width: 4;
|
||||
|
||||
$border-width-px: $border-width * 1px;
|
||||
|
||||
.major_announcement_title {
|
||||
font-size: 175%;
|
||||
padding: 0rem 0.5rem;
|
||||
line-height: 100%;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.subheader_announcement_text {
|
||||
font-weight: bold;
|
||||
padding: 0 0.5rem;
|
||||
padding-top: 0.25rem;
|
||||
line-height: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: left;
|
||||
font-size: 125%;
|
||||
}
|
||||
|
||||
.major_announcement_text {
|
||||
color: #eaeaea;
|
||||
background-color: #131313;
|
||||
font-weight: bold;
|
||||
font-size: 100%;
|
||||
text-align: left;
|
||||
padding: 0.5rem 0.5rem;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.minor_announcement_title {
|
||||
font-weight: bold;
|
||||
padding: 0 0.5rem;
|
||||
padding-top: 0;
|
||||
line-height: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: left;
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
.minor_announcement_text {
|
||||
background-color: #202020;
|
||||
color: #eaeaea;
|
||||
padding: 0.5rem 0.5rem;
|
||||
text-align: left;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.announcement_header {
|
||||
padding: 0.5rem 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
@each $color-name, $color-value in $alert-stripe-colors {
|
||||
.chat_alert_#{$color-name} {
|
||||
color: #ffffff;
|
||||
padding: 0.5em 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.5rem 0.5rem;
|
||||
box-shadow: none;
|
||||
font-weight: bold;
|
||||
border: 1px solid $color-value;
|
||||
margin: 0.5em 0 0.5em 0;
|
||||
padding: 0.5em 0.75em;
|
||||
background-color: map.get($alert-background-colors, $color-name);
|
||||
background-image: repeating-linear-gradient(
|
||||
margin: 1rem 0 1rem 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-image: repeating-linear-gradient(
|
||||
-45deg,
|
||||
transparent,
|
||||
transparent 10px,
|
||||
map.get($alert-stripe-alternate-colors, $color-name),
|
||||
map.get($alert-stripe-alternate-colors, $color-name) 10px,
|
||||
$color-value 10px,
|
||||
$color-value 20px
|
||||
);
|
||||
border-image-slice: $border-width fill;
|
||||
border-width: $border-width-px;
|
||||
border-image-width: $border-width-px;
|
||||
border-image-outset: 0 0 0 0;
|
||||
border-image-repeat: repeat repeat;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .major_announcement_title {
|
||||
color: map.get($alert-major-header-colors, $color-name);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .minor_announcement_title {
|
||||
color: map.get($alert-major-header-colors, $color-name);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .subheader_announcement_text {
|
||||
color: map.get($alert-subheader-header-colors, $color-name);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .minor_announcement_text {
|
||||
background-color: darken(map.get($alert-stripe-colors, $color-name), 5);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .major_announcement_text {
|
||||
background-color: darken(map.get($alert-stripe-colors, $color-name), 5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
@use 'sass:map';
|
||||
@use 'sass:color';
|
||||
|
||||
html,
|
||||
body {
|
||||
@@ -977,70 +978,207 @@ h2.alert {
|
||||
border-bottom: 1px dashed #000;
|
||||
}
|
||||
|
||||
// SKYRAT EDIT CHANGE BEGIN - Remove neon colors, replaced with less saturated
|
||||
/*
|
||||
$alert-stripe-colors: (
|
||||
'default': #b3bfff,
|
||||
'green': #adffad,
|
||||
'blue': #b3bfff,
|
||||
'pink': #ffb3df,
|
||||
'yellow': #fff3b3,
|
||||
'orange': #ffe2b3,
|
||||
'red': #ffb3b3,
|
||||
'purple': #fac2ff,
|
||||
);
|
||||
|
||||
$alert-stripe-alternate-colors: (
|
||||
'default': #bdc8ff,
|
||||
'green': #bdffbd,
|
||||
'blue': #bdc8ff,
|
||||
'pink': #ffc2e5,
|
||||
'yellow': #fff5c2,
|
||||
'orange': #ffe8c2,
|
||||
'red': #ffc2c2,
|
||||
'purple': #fbd1ff,
|
||||
);
|
||||
|
||||
$alert-major-header-colors: (
|
||||
'default': #003061,
|
||||
'green': #005229,
|
||||
'blue': #003061,
|
||||
'pink': #800033,
|
||||
'yellow': #754900,
|
||||
'orange': #823208,
|
||||
'red': #800029,
|
||||
'purple': #450d8c,
|
||||
);
|
||||
|
||||
$alert-subheader-header-colors: (
|
||||
'default': #6b0020,
|
||||
'green': #6b0020,
|
||||
'blue': #6b0020,
|
||||
'pink': #002c85,
|
||||
'yellow': #002c85,
|
||||
'orange': #002c85,
|
||||
'red': #002c85,
|
||||
'purple': #002c85,
|
||||
);
|
||||
*/
|
||||
|
||||
$alert-stripe-colors: (
|
||||
'default': #c6ccec,
|
||||
'green': #ceebc2,
|
||||
'blue': #c6ccec,
|
||||
'pink': #ecc6d9,
|
||||
'yellow': #fff3b3,
|
||||
'orange': #ffe2b3,
|
||||
'red': #ffbbb3,
|
||||
'purple': #e6d1f0,
|
||||
);
|
||||
|
||||
$alert-stripe-alternate-colors: (
|
||||
'default': #ced3ef,
|
||||
'green': #d8efce,
|
||||
'blue': #ced3ef,
|
||||
'pink': #f0d1e1,
|
||||
'yellow': #fff5c2,
|
||||
'orange': #ffe8c2,
|
||||
'red': #ffc8c2,
|
||||
'purple': #ead9f2,
|
||||
);
|
||||
|
||||
$alert-major-header-colors: (
|
||||
'default': #003061,
|
||||
'green': #1f440e,
|
||||
'blue': #003061,
|
||||
'pink': #602040,
|
||||
'yellow': #990f00,
|
||||
'orange': #b14810,
|
||||
'red': #a80e00,
|
||||
'purple': #5b2673,
|
||||
);
|
||||
|
||||
$alert-subheader-header-colors: (
|
||||
'default': #991200,
|
||||
'green': #002c85,
|
||||
'blue': #991200,
|
||||
'pink': #002c85,
|
||||
'yellow': #214164,
|
||||
'orange': #002c85,
|
||||
'red': #483c3c,
|
||||
'purple': #991200,
|
||||
);
|
||||
// SKYRAT EDIT CHANGE END
|
||||
|
||||
$border-width: 4;
|
||||
|
||||
$border-width-px: $border-width * 1px;
|
||||
|
||||
.major_announcement_title {
|
||||
color: #cc0000; // SKYRAT EDIT CHANGE - ORIGINAL: color: #ff0066
|
||||
text-decoration: underline;
|
||||
font-weight: bold;
|
||||
font-size: 175%;
|
||||
padding: 0rem 0.5rem;
|
||||
line-height: 100%;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.major_announcement_text {
|
||||
color: #202020;
|
||||
.subheader_announcement_text {
|
||||
font-weight: bold;
|
||||
padding: 0 0.5rem;
|
||||
padding-top: 0.25rem;
|
||||
line-height: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: left;
|
||||
font-size: 125%;
|
||||
}
|
||||
|
||||
.minor_announcement_title {
|
||||
color: #007ee6;
|
||||
.major_announcement_text {
|
||||
color: #131313;
|
||||
background-color: #eaeaea;
|
||||
font-weight: bold;
|
||||
font-size: 100%;
|
||||
text-align: left;
|
||||
padding: 0.5rem 0.5rem;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.minor_announcement_title {
|
||||
font-weight: bold;
|
||||
padding: 0 0.5rem;
|
||||
padding-top: 0;
|
||||
line-height: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: left;
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
.minor_announcement_text {
|
||||
background-color: #eaeaea;
|
||||
color: #202020;
|
||||
font-size: 125%;
|
||||
padding: 0.5rem 0.5rem;
|
||||
text-align: left;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
$alert-stripe-colors: (
|
||||
'default': #dedede,
|
||||
'green': #c2ffcc,
|
||||
'blue': #b8e6ff,
|
||||
'pink': #ffc2f4,
|
||||
'yellow': #ffe880,
|
||||
'orange': #ffbb99,
|
||||
'red': #ff99aa,
|
||||
'purple': #d7c2ff,
|
||||
);
|
||||
|
||||
$alert-background-colors: (
|
||||
'default': #d1d1d1,
|
||||
'green': #a8ffb7,
|
||||
'blue': #a8e1ff,
|
||||
'pink': #ffb3f3,
|
||||
'yellow': #fff0ad,
|
||||
'orange': #ffc9ad,
|
||||
'red': #ffadbb,
|
||||
'purple': #ccb3ff,
|
||||
);
|
||||
.announcement_header {
|
||||
padding: 0.5rem 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
@each $color-name, $color-value in $alert-stripe-colors {
|
||||
.chat_alert_#{$color-name} {
|
||||
color: #ffffff;
|
||||
padding: 0.5em 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
padding: 0.5rem 0.5rem;
|
||||
box-shadow: none;
|
||||
font-weight: bold;
|
||||
border: 1px solid $color-value;
|
||||
margin: 0.5em 0 0.5em 0;
|
||||
padding: 0.5em 0.75em;
|
||||
background-color: map.get($alert-background-colors, $color-name);
|
||||
background-image: repeating-linear-gradient(
|
||||
margin: 1rem 0 1rem 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-image: repeating-linear-gradient(
|
||||
-45deg,
|
||||
transparent,
|
||||
transparent 10px,
|
||||
map.get($alert-stripe-alternate-colors, $color-name),
|
||||
map.get($alert-stripe-alternate-colors, $color-name) 10px,
|
||||
$color-value 10px,
|
||||
$color-value 20px
|
||||
);
|
||||
border-image-slice: $border-width fill;
|
||||
border-width: $border-width-px;
|
||||
border-image-width: $border-width-px;
|
||||
border-image-outset: 0 0 0 0;
|
||||
border-image-repeat: repeat repeat;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .major_announcement_title {
|
||||
color: map.get($alert-major-header-colors, $color-name);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .minor_announcement_title {
|
||||
color: map.get($alert-major-header-colors, $color-name);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .subheader_announcement_text {
|
||||
color: map.get($alert-subheader-header-colors, $color-name);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .minor_announcement_text {
|
||||
background-color: lighten(
|
||||
map.get($alert-stripe-alternate-colors, $color-name),
|
||||
5
|
||||
);
|
||||
}
|
||||
|
||||
.chat_alert_#{$color-name} .major_announcement_text {
|
||||
background-color: lighten(
|
||||
map.get($alert-stripe-alternate-colors, $color-name),
|
||||
5
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useBackend, useLocalState } from '../backend';
|
||||
import { Button, Dropdown, Input, Section, Stack, TextArea } from '../components';
|
||||
import { Box, Button, Dropdown, Input, Section, Stack, TextArea } from '../components';
|
||||
import { Window } from '../layouts';
|
||||
|
||||
type Data = {
|
||||
@@ -8,6 +8,9 @@ type Data = {
|
||||
command_name: string;
|
||||
command_name_presets: string[];
|
||||
command_report_content: string;
|
||||
announcement_color: string;
|
||||
announcement_colors: string[];
|
||||
subheader: string;
|
||||
custom_name: string;
|
||||
played_sound: string;
|
||||
print_report: string;
|
||||
@@ -18,15 +21,17 @@ export const CommandReport = () => {
|
||||
<Window
|
||||
title="Create Command Report"
|
||||
width={325}
|
||||
height={525}
|
||||
height={685}
|
||||
theme="admin">
|
||||
<Window.Content>
|
||||
<Stack fill vertical>
|
||||
<Stack.Item>
|
||||
<CentComName />
|
||||
<AnnouncementColor />
|
||||
<AnnouncementSound />
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<AnnouncementSound />
|
||||
<SubHeader />
|
||||
</Stack.Item>
|
||||
<Stack.Item>
|
||||
<ReportText />
|
||||
@@ -71,6 +76,50 @@ const CentComName = (props, context) => {
|
||||
);
|
||||
};
|
||||
|
||||
/** Allows the user to set the "sender" of the message via dropdown */
|
||||
const SubHeader = (props, context) => {
|
||||
const { act, data } = useBackend<Data>(context);
|
||||
const { subheader } = data;
|
||||
|
||||
return (
|
||||
<Section title="Set report subheader" textAlign="center">
|
||||
<Box>Keep blank to not include a subheader</Box>
|
||||
<Input
|
||||
width="100%"
|
||||
mt={1}
|
||||
value={subheader}
|
||||
placeholder={subheader}
|
||||
onChange={(_, value) =>
|
||||
act('set_subheader', {
|
||||
new_subheader: value,
|
||||
})
|
||||
}
|
||||
/>
|
||||
</Section>
|
||||
);
|
||||
};
|
||||
|
||||
/** Features a section with dropdown for the announcement colour. */
|
||||
const AnnouncementColor = (props, context) => {
|
||||
const { act, data } = useBackend<Data>(context);
|
||||
const { announcement_colors = [], announcement_color } = data;
|
||||
|
||||
return (
|
||||
<Section title="Set announcement color" textAlign="center">
|
||||
<Dropdown
|
||||
width="100%"
|
||||
displayText={announcement_color}
|
||||
options={announcement_colors}
|
||||
onSelected={(value) =>
|
||||
act('update_announcement_color', {
|
||||
updated_announcement_color: value,
|
||||
})
|
||||
}
|
||||
/>
|
||||
</Section>
|
||||
);
|
||||
};
|
||||
|
||||
/** Features a section with dropdown for sounds. */
|
||||
const AnnouncementSound = (props, context) => {
|
||||
const { act, data } = useBackend<Data>(context);
|
||||
|
||||
Reference in New Issue
Block a user