diff --git a/code/__DEFINES/~skyrat_defines/security_alerts.dm b/code/__DEFINES/~skyrat_defines/security_alerts.dm index 11b5eb3f8b6..c421d2f73fa 100644 --- a/code/__DEFINES/~skyrat_defines/security_alerts.dm +++ b/code/__DEFINES/~skyrat_defines/security_alerts.dm @@ -6,3 +6,5 @@ #define SEC_LEVEL_AMBER 4 #define SEC_LEVEL_RED 5 #define SEC_LEVEL_DELTA 6 +#define SEC_LEVEL_GAMMA 7 //Oh shit bois + diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index b03fcefe72b..8e99bf34c53 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -187,10 +187,10 @@ /datum/config_entry/string/alert_red_downto config_entry_value = "The station's destruction has been averted. There is still however an immediate serious threat to the station. Security may have weapons unholstered at all times, random searches are allowed and advised." - +/* = SKYRAT EDIT REMOVAL BEGIN - MOVED TO MODULAR: ALERTS /datum/config_entry/string/alert_delta config_entry_value = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." - +*/ //SKYRAT EDIT REMOVAL END /datum/config_entry/flag/revival_pod_plants /datum/config_entry/number/revival_brain_life diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 727a1d6f759..2a89c6c2342 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -883,7 +883,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if(!check_rights(R_ADMIN)) return - var/level = input("Select security level to change to","Set Security Level") as null|anything in list("green","blue","red","delta") + var/level = input("Select security level to change to","Set Security Level") as null|anything in list("green","blue","violet","amber","red","delta","gamma") if(level) set_security_level(level) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index e41ef29861a..e4afd627571 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -87,7 +87,7 @@ return priority_announce("Simulations on acausal dimensional event complete. Deploying solution package now. Deployment ETA: ONE MINUTE. ","Central Command Higher Dimensional Affairs") sleep(50) - set_security_level("delta") + set_security_level("gamma") //SKYRAT EDIT CHANGE - ALERTS - ORIGINAL "delta" SSshuttle.registerHostileEnvironment(GLOB.cult_narsie) SSshuttle.lockdown = TRUE sleep(600) diff --git a/config/skyrat/skyrat_config.txt b/config/skyrat/skyrat_config.txt index d6bdb0868ad..2b3fcf74bf2 100644 --- a/config/skyrat/skyrat_config.txt +++ b/config/skyrat/skyrat_config.txt @@ -10,6 +10,10 @@ ALERT_ORANGE_UPTO A major engineering emergency has developed. Non-engineering p ALERT_ORANGE_DOWNTO A major engineering emergency has developed. Non-engineering personnel are required to evacuate any affected areas and obey relevant instructions from engineering staff. ALERT_VIOLET_UPTO A major medical emergency has developed. Non-medical personnel are required to obey all relevant instructions from medical staff. ALERT_VIOLET_DOWNTO A major medical emergency has developed. Non-medical personnel are required to obey all relevant instructions from medical staff. +ALERT_DELTA_UPTO Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill. +ALERT_DELTA_DOWNTO Destruction of the station is still imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill. +ALERT_GAMMA The Solar Federation has placed this system under Gamma Alert status. This galactic system is facing a ZK-Class Reality Failure Scenario. Security Personnel is authorized full access to lethal equipment to enforce Martial Law. Failure to follow emergency procedures is punishable by death. This is not a drill. + ## How long until someone can be put in cryo if they are SSD CRYO_MIN_SSD_TIME 15 diff --git a/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi b/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi index a2d5dd4a2df..06987b564ad 100644 Binary files a/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi and b/modular_skyrat/modules/aesthetics/firealarm/icons/firealarm.dmi differ diff --git a/modular_skyrat/modules/alerts/code/config.dm b/modular_skyrat/modules/alerts/code/config.dm index f4fa1207ed6..6a72aa05280 100644 --- a/modular_skyrat/modules/alerts/code/config.dm +++ b/modular_skyrat/modules/alerts/code/config.dm @@ -15,3 +15,12 @@ /datum/config_entry/string/alert_violet_downto config_entry_value = "A major medical emergency has developed. Non-medical personnel are required to obey all relevant instructions from medical staff." + +/datum/config_entry/string/alert_delta_upto + config_entry_value = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." + +/datum/config_entry/string/alert_delta_downto + config_entry_value = "Destruction of the station is still imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." + +/datum/config_entry/string/alert_gamma + config_entry_value = "The Solar Federation has placed this system under Gamma Alert status. This galactic system is facing a ZK-Class Reality Failure Scenario. Security Personnel is authorized full access to lethal equipment to enforce Martial Law. Failure to follow emergency procedures is punishable by death. This is not a drill." diff --git a/modular_skyrat/modules/alerts/code/firealarm.dm b/modular_skyrat/modules/alerts/code/firealarm.dm index e749258dc45..f082e4d6c92 100644 --- a/modular_skyrat/modules/alerts/code/firealarm.dm +++ b/modular_skyrat/modules/alerts/code/firealarm.dm @@ -14,3 +14,5 @@ . += "The current alert level is red!" if(GLOB.security_level == SEC_LEVEL_DELTA) . += "The current alert level is delta! Evacuate!" + if(GLOB.security_level == SEC_LEVEL_GAMMA) + . += "Gamma alert! All crew to stations!" diff --git a/modular_skyrat/modules/alerts/code/set_security_level.dm b/modular_skyrat/modules/alerts/code/set_security_level.dm index 0f337fa9b70..7ff9c47b264 100644 --- a/modular_skyrat/modules/alerts/code/set_security_level.dm +++ b/modular_skyrat/modules/alerts/code/set_security_level.dm @@ -2,7 +2,7 @@ level = seclevel2num(level) || level //Will not be announced if you try to set to the same level as it already is - if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_DELTA && level != GLOB.security_level) + if(level >= SEC_LEVEL_GREEN && level <= SEC_LEVEL_GAMMA && level != GLOB.security_level) play_security_alert_sound(level) switch(level) if(SEC_LEVEL_GREEN) @@ -13,9 +13,6 @@ else SSshuttle.emergency.modTimer(2) GLOB.security_level = SEC_LEVEL_GREEN - for(var/obj/machinery/firealarm/FA in GLOB.machines) - if(is_station_level(FA.z)) - FA.update_icon() if(SEC_LEVEL_BLUE) if(GLOB.security_level < SEC_LEVEL_BLUE) minor_announce(CONFIG_GET(string/alert_blue_upto), "Attention! Alert level elevated to blue:",1) @@ -26,9 +23,6 @@ if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) SSshuttle.emergency.modTimer(2) GLOB.security_level = SEC_LEVEL_BLUE - for(var/obj/machinery/firealarm/FA in GLOB.machines) - if(is_station_level(FA.z)) - FA.update_icon() if(SEC_LEVEL_VIOLET) if(GLOB.security_level < SEC_LEVEL_VIOLET) minor_announce(CONFIG_GET(string/alert_violet_upto), "Attention! Alert level set to violet:",1) @@ -42,9 +36,6 @@ if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) SSshuttle.emergency.modTimer(1.6) GLOB.security_level = SEC_LEVEL_VIOLET - for(var/obj/machinery/firealarm/FA in GLOB.machines) - if(is_station_level(FA.z)) - FA.update_icon() if(SEC_LEVEL_ORANGE) if(GLOB.security_level < SEC_LEVEL_ORANGE) minor_announce(CONFIG_GET(string/alert_orange_upto), "Attention! Alert level set to orange:",1) @@ -58,25 +49,19 @@ if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) SSshuttle.emergency.modTimer(1.6) GLOB.security_level = SEC_LEVEL_ORANGE - for(var/obj/machinery/firealarm/FA in GLOB.machines) - if(is_station_level(FA.z)) - FA.update_icon() if(SEC_LEVEL_AMBER) if(GLOB.security_level < SEC_LEVEL_AMBER) - minor_announce(CONFIG_GET(string/alert_amber_upto), "Attention! Alert level set to amber:",1) //Skyrat change + minor_announce(CONFIG_GET(string/alert_amber_upto), "Attention! Alert level set to amber:",1) if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) if(GLOB.security_level == SEC_LEVEL_GREEN) SSshuttle.emergency.modTimer(0.4) else SSshuttle.emergency.modTimer(0.66) else - minor_announce(CONFIG_GET(string/alert_amber_downto), "Attention! Alert level set to amber:") //Skyrat change + minor_announce(CONFIG_GET(string/alert_amber_downto), "Attention! Alert level set to amber:") if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) SSshuttle.emergency.modTimer(1.6) GLOB.security_level = SEC_LEVEL_AMBER - for(var/obj/machinery/firealarm/FA in GLOB.machines) - if(is_station_level(FA.z)) - FA.update_icon() if(SEC_LEVEL_RED) if(GLOB.security_level < SEC_LEVEL_RED) minor_announce(CONFIG_GET(string/alert_red_upto), "Attention! Code red!",1) @@ -88,23 +73,29 @@ else minor_announce(CONFIG_GET(string/alert_red_downto), "Attention! Code red!") GLOB.security_level = SEC_LEVEL_RED - - for(var/obj/machinery/firealarm/FA in GLOB.machines) - if(is_station_level(FA.z)) - FA.update_icon() for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines) pod.locked = FALSE if(SEC_LEVEL_DELTA) - minor_announce(CONFIG_GET(string/alert_delta), "Attention! Delta Alert level reached!",1) + if(GLOB.security_level < SEC_LEVEL_DELTA) + minor_announce(CONFIG_GET(string/alert_delta_upto), "Attention! Delta Alert level reached!",1) + if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) + if(GLOB.security_level == SEC_LEVEL_GREEN) + SSshuttle.emergency.modTimer(0.25) + else if(GLOB.security_level == SEC_LEVEL_BLUE) + SSshuttle.emergency.modTimer(0.5) + else + minor_announce(CONFIG_GET(string/alert_delta_downto), "Attention! Delta Alert level reached!",1) + GLOB.security_level = SEC_LEVEL_DELTA + for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines) + pod.locked = FALSE + if(SEC_LEVEL_GAMMA) + minor_announce(CONFIG_GET(string/alert_gamma), "Attention! ZK-Class Reality Failure Scenario Detected, GAMMA Alert Level Reached!",1) if(SSshuttle.emergency.mode == SHUTTLE_CALL || SSshuttle.emergency.mode == SHUTTLE_RECALL) if(GLOB.security_level == SEC_LEVEL_GREEN) - SSshuttle.emergency.modTimer(0.25) + SSshuttle.emergency.modTimer(0.2) else if(GLOB.security_level == SEC_LEVEL_BLUE) - SSshuttle.emergency.modTimer(0.5) - GLOB.security_level = SEC_LEVEL_DELTA - for(var/obj/machinery/firealarm/FA in GLOB.machines) - if(is_station_level(FA.z)) - FA.update_icon() + SSshuttle.emergency.modTimer(0.4) + GLOB.security_level = SEC_LEVEL_GAMMA for(var/obj/machinery/computer/shuttle/pod/pod in GLOB.machines) pod.locked = FALSE if(level >= SEC_LEVEL_RED) @@ -114,6 +105,9 @@ playsound(D, 'sound/machines/boltsup.ogg', 50, TRUE) SSblackbox.record_feedback("tally", "security_level_changes", 1, get_security_level()) SSnightshift.check_nightshift() + for(var/obj/machinery/firealarm/FA in GLOB.machines) + if(is_station_level(FA.z)) + FA.update_icon() else return @@ -133,6 +127,8 @@ return "red" if(SEC_LEVEL_DELTA) return "delta" + if(SEC_LEVEL_GAMMA) + return "gamma" /proc/num2seclevel(num) switch(num) @@ -150,6 +146,8 @@ return "red" if(SEC_LEVEL_DELTA) return "delta" + if(SEC_LEVEL_GAMMA) + return "gamma" /proc/seclevel2num(seclevel) switch( lowertext(seclevel) ) @@ -167,6 +165,8 @@ return SEC_LEVEL_RED if("delta") return SEC_LEVEL_DELTA + if("gamma") + return SEC_LEVEL_GAMMA /proc/play_security_alert_sound(level) switch(level) @@ -182,6 +182,8 @@ alert_sound_to_playing('modular_skyrat/modules/alerts/sound/misc/redalert1.ogg', volume = 50) if(SEC_LEVEL_DELTA) alert_sound_to_playing('modular_skyrat/modules/alerts/sound/misc/deltaklaxon.ogg') + if(SEC_LEVEL_GAMMA) + alert_sound_to_playing('modular_skyrat/modules/alerts/sound/misc/gamma_alert.ogg') /proc/alert_sound_to_playing(soundin, volume = 100, vary = FALSE, frequency = 0, falloff = FALSE, channel = 0, pressure_affected = FALSE, sound/S) if(!S) diff --git a/modular_skyrat/modules/alerts/sound/misc/gamma_alert.ogg b/modular_skyrat/modules/alerts/sound/misc/gamma_alert.ogg new file mode 100644 index 00000000000..086facf747a Binary files /dev/null and b/modular_skyrat/modules/alerts/sound/misc/gamma_alert.ogg differ