Files
Bubberstation/code/modules/security_levels/security_level_datums.dm
MrMelbert 0675ddf6cb Doubles time between mail shipments and blocks mail on red / delta alert (the amount of mail is not changing don't worry) (#91869)
## About The Pull Request

1. Mail is now shipped every 2 SSeconomy ticks, rather than every
SSeconomy ticks. The amount of mail per round will not change.

2. Mail is not shipped during Red or Delta alert. Mail will still
continue to pile up for if the station returns to blue alert.

## Why It's Good For The Game

1. The time between cargo shipments is like five minutes. This means you
get mail practically every cargo shipment, if only a few pieces. I think
it's a bit spammy, so doubling time between shipments means you actually
get substantial shipments of mail and you don't have to pay attention to
mail constantly.

2. In the event of an emergency and the cargo shuttle has to fly back
and forth for emergency supplies (like guns for a blob), being blocked
because of mail is annoying. It's also reasonable from an in character
perspective that they would hold your mail until the emergency is
resolved.

## Changelog

🆑 Melbert
qol: Mail is now shipped every 10 minutes rather than every 5 minutes.
The amount of mail remains unchanged (so you get 1 crate with 6 mail
instead of 2 crates with 3 mail each).
qol: Mail is no longer shipped while the station is on red alert - mail
held will be sent if the station returns to blue alert.
/🆑
2025-06-28 16:28:27 -06:00

114 lines
3.8 KiB
Plaintext

/**
* Security levels
*
* These are used by the security level subsystem. Each one of these represents a security level that a player can set.
*
* Base type is abstract
*/
/datum/security_level
/// The name of this security level.
var/name = "not set"
/// A three-letter shortform of the security level.
var/name_shortform = "not set"
/// The color of our announcement divider.
var/announcement_color = "default"
/// The numerical level of this security level, see defines for more information.
var/number_level = -1
/// Icon state that will be displayed on displays during this security level
var/status_display_icon_state
/// The color of the fire alarm light set when changed to this security level
var/fire_alarm_light_color
/// The sound that we will play when this security level is set
var/sound
/// The looping sound that will be played while the security level is set
var/looping_sound
/// The looping sound interval
var/looping_sound_interval
/// The shuttle call time modification of this security level
var/shuttle_call_time_mod = 0
/// Our announcement when lowering to this level
var/lowering_to_announcement
/// Our announcement when elevating to this level
var/elevating_to_announcement
/// Our configuration key for lowering to text, if set, will override the default lowering to announcement.
var/lowering_to_configuration_key
/// Our configuration key for elevating to text, if set, will override the default elevating to announcement.
var/elevating_to_configuration_key
/// if TRUE, stops mail shipments from being sent during this security level
var/disables_mail = FALSE
/datum/security_level/New()
. = ..()
if(lowering_to_configuration_key) // I'm not sure about you, but isn't there an easier way to do this?
lowering_to_announcement = global.config.Get(lowering_to_configuration_key)
if(elevating_to_configuration_key)
elevating_to_announcement = global.config.Get(elevating_to_configuration_key)
/**
* GREEN
*
* No threats
*/
/datum/security_level/green
name = "green"
name_shortform = "GRN"
announcement_color = "green"
sound = 'sound/announcer/notice/notice2.ogg' // Friendly beep
number_level = SEC_LEVEL_GREEN
status_display_icon_state = "greenalert"
fire_alarm_light_color = LIGHT_COLOR_BLUEGREEN
lowering_to_configuration_key = /datum/config_entry/string/alert_green
shuttle_call_time_mod = ALERT_COEFF_GREEN
/**
* BLUE
*
* Caution advised
*/
/datum/security_level/blue
name = "blue"
name_shortform = "BLU"
announcement_color = "blue"
sound = 'sound/announcer/notice/notice1.ogg' // Angry alarm
number_level = SEC_LEVEL_BLUE
status_display_icon_state = "bluealert"
fire_alarm_light_color = LIGHT_COLOR_ELECTRIC_CYAN
lowering_to_configuration_key = /datum/config_entry/string/alert_blue_downto
elevating_to_configuration_key = /datum/config_entry/string/alert_blue_upto
shuttle_call_time_mod = ALERT_COEFF_BLUE
/**
* RED
*
* Hostile threats
*/
/datum/security_level/red
name = "red"
name_shortform = "RED"
announcement_color = "red"
sound = 'sound/announcer/notice/notice3.ogg' // More angry alarm
number_level = SEC_LEVEL_RED
status_display_icon_state = "redalert"
fire_alarm_light_color = LIGHT_COLOR_FLARE
lowering_to_configuration_key = /datum/config_entry/string/alert_red_downto
elevating_to_configuration_key = /datum/config_entry/string/alert_red_upto
shuttle_call_time_mod = ALERT_COEFF_RED
disables_mail = TRUE
/**
* DELTA
*
* Station destruction is imminent
*/
/datum/security_level/delta
name = "delta"
name_shortform = "Δ"
announcement_color = "purple"
sound = 'sound/announcer/alarm/airraid.ogg' // Air alarm to signify importance
number_level = SEC_LEVEL_DELTA
status_display_icon_state = "deltaalert"
fire_alarm_light_color = LIGHT_COLOR_INTENSE_RED
elevating_to_configuration_key = /datum/config_entry/string/alert_delta
shuttle_call_time_mod = ALERT_COEFF_DELTA
disables_mail = TRUE