diff --git a/code/__defines/gamemode.dm b/code/__defines/gamemode.dm index 7a2e1276cc5..b1707e9b8c0 100644 --- a/code/__defines/gamemode.dm +++ b/code/__defines/gamemode.dm @@ -5,9 +5,10 @@ // Security levels. #define SEC_LEVEL_GREEN 0 -#define SEC_LEVEL_BLUE 1 -#define SEC_LEVEL_RED 2 -#define SEC_LEVEL_DELTA 3 +#define SEC_LEVEL_YELLOW 1 +#define SEC_LEVEL_BLUE 2 +#define SEC_LEVEL_RED 3 +#define SEC_LEVEL_DELTA 4 #define BE_PLANT "BE_PLANT" #define BE_SYNTH "BE_SYNTH" diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 4112756f3cc..55b9be85b99 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -106,6 +106,7 @@ var/list/gamemode_cache = list() var/alert_desc_green = "All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced." var/alert_desc_blue_upto = "The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted." var/alert_desc_blue_downto = "The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed." + var/alert_desc_yellow_to = "The station is now under an elevated alert status due to a confirmed biological hazard. All crew are to follow command instruction in order to ensure a safe return to standard operations." var/alert_desc_red_upto = "There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised." var/alert_desc_red_downto = "The self-destruct mechanism has been deactivated, 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." var/alert_desc_delta = "The station's self-destruct mechanism has been engaged. 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." @@ -598,6 +599,9 @@ var/list/gamemode_cache = list() if("alert_green") config.alert_desc_green = value + if("alert_yellow") + config.alert_desc_yellow_to = value + if("alert_delta") config.alert_desc_delta = value diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 9f93d907f86..258be2083e6 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -49,16 +49,19 @@ switch(seclevel) if("green") previous_state = icon_state - set_light(l_range = L_WALLMOUNT_RANGE, l_power = L_WALLMOUNT_POWER, l_color = COLOR_LIME) + set_light(l_range = L_WALLMOUNT_RANGE, l_power = L_WALLMOUNT_POWER, l_color = LIGHT_COLOR_GREEN) if("blue") previous_state = icon_state - set_light(l_range = L_WALLMOUNT_RANGE, l_power = L_WALLMOUNT_POWER, l_color = "#1024A9") + set_light(l_range = L_WALLMOUNT_RANGE, l_power = L_WALLMOUNT_POWER, l_color = LIGHT_COLOR_BLUE) + if("yellow") + previous_state = icon_state + set_light(l_range = L_WALLMOUNT_HI_RANGE, l_power = L_WALLMOUNT_HI_POWER, l_color = LIGHT_COLOR_YELLOW) if("red") previous_state = icon_state - set_light(l_range = L_WALLMOUNT_HI_RANGE, l_power = L_WALLMOUNT_HI_POWER, l_color = COLOR_RED) + set_light(l_range = L_WALLMOUNT_HI_RANGE, l_power = L_WALLMOUNT_HI_POWER, l_color = LIGHT_COLOR_RED) if("delta") previous_state = icon_state - set_light(l_range = L_WALLMOUNT_HI_RANGE, l_power = L_WALLMOUNT_HI_POWER, l_color = "#FF6633") + set_light(l_range = L_WALLMOUNT_HI_RANGE, l_power = L_WALLMOUNT_HI_POWER, l_color = LIGHT_COLOR_ORANGE) add_overlay("overlay_[seclevel]") diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 17a3bb9b922..b25652ff909 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -825,7 +825,7 @@ var/list/admin_verbs_cciaa = list( set category = "Admin" if(!check_rights(R_ADMIN)) return - var sec_level = input(usr, "It's currently code [get_security_level()].", "Select Security Level") as null|anything in (list("green","blue","red","delta")-get_security_level()) + var sec_level = input(usr, "It's currently code [get_security_level()].", "Select Security Level") as null|anything in (list("green","blue","red", "yellow", "delta")-get_security_level()) if(alert("Switch from code [get_security_level()] to code [sec_level]?","Change security level?","Yes","No") == "Yes") set_security_level(sec_level) log_admin("[key_name(usr)] changed the security level to code [sec_level].",admin_key=key_name(usr)) diff --git a/code/modules/modular_computers/file_system/programs/command/comm.dm b/code/modules/modular_computers/file_system/programs/command/comm.dm index 2e3e99cf82a..a34d7c5d5ba 100644 --- a/code/modules/modular_computers/file_system/programs/command/comm.dm +++ b/code/modules/modular_computers/file_system/programs/command/comm.dm @@ -78,6 +78,7 @@ data["current_security_level_title"] = num2seclevel(security_level) data["def_SEC_LEVEL_DELTA"] = SEC_LEVEL_DELTA + data["def_SEC_LEVEL_YELLOW"] = SEC_LEVEL_YELLOW data["def_SEC_LEVEL_BLUE"] = SEC_LEVEL_BLUE data["def_SEC_LEVEL_GREEN"] = SEC_LEVEL_GREEN @@ -225,7 +226,7 @@ var/old_level = security_level if(!current_level) current_level = SEC_LEVEL_GREEN if(current_level < SEC_LEVEL_GREEN) current_level = SEC_LEVEL_GREEN - if(current_level > SEC_LEVEL_BLUE) current_level = SEC_LEVEL_BLUE //Cannot engage delta with this + if(current_level > SEC_LEVEL_BLUE) current_level = SEC_LEVEL_BLUE set_security_level(current_level) if(security_level != old_level) log_game("[key_name(usr)] has changed the security level to [get_security_level()].",ckey=key_name(usr)) @@ -235,6 +236,8 @@ feedback_inc("alert_comms_green",1) if(SEC_LEVEL_BLUE) feedback_inc("alert_comms_blue",1) + if(SEC_LEVEL_YELLOW) + feedback_inc("alert_comms_yellow",1) else usr << "You press button, but red light flashes and nothing happens." //This should never happen current_status = STATE_DEFAULT @@ -439,4 +442,4 @@ Command action procs log_game("[user? key_name(user) : "Autotransfer"] has called the shuttle.") message_admins("[user? key_name_admin(user) : "Autotransfer"] has called the shuttle.", 1) - return \ No newline at end of file + return diff --git a/code/modules/security levels/security levels.dm b/code/modules/security levels/security levels.dm index cfe45283c09..c3b53b33537 100644 --- a/code/modules/security levels/security levels.dm +++ b/code/modules/security levels/security levels.dm @@ -1,8 +1,9 @@ /var/security_level = 0 //0 = code green -//1 = code blue -//2 = code red -//3 = code delta +//1 = code yellow +//2 = code blue +//3 = code red +//4 = code delta //config.alert_desc_blue_downto /var/datum/announcement/priority/security/security_announcement_up = new(do_log = 0, do_newscast = 1, new_sound = sound('sound/misc/notice1.ogg')) @@ -16,6 +17,8 @@ level = SEC_LEVEL_BLUE if("red") level = SEC_LEVEL_RED + if("yellow") + level = SEC_LEVEL_YELLOW if("delta") level = SEC_LEVEL_DELTA @@ -33,6 +36,10 @@ security_announcement_down.Announce("[config.alert_desc_blue_downto]", "Attention! Security level lowered to blue.") security_level = SEC_LEVEL_BLUE SSnightlight.end_temp_disable() + if(SEC_LEVEL_YELLOW) + security_announcement_up.Announce("[config.alert_desc_yellow_to]", "Attention! Biohazard alert declared!") + security_level = SEC_LEVEL_YELLOW + SSnightlight.end_temp_disable() if(SEC_LEVEL_RED) if(security_level < SEC_LEVEL_RED) security_announcement_up.Announce("[config.alert_desc_red_upto]", "Attention! Security level elevated to red!") @@ -58,6 +65,8 @@ return "green" if(SEC_LEVEL_BLUE) return "blue" + if(SEC_LEVEL_YELLOW) + return "yellow" if(SEC_LEVEL_RED) return "red" if(SEC_LEVEL_DELTA) @@ -69,6 +78,8 @@ return "green" if(SEC_LEVEL_BLUE) return "blue" + if(SEC_LEVEL_YELLOW) + return "yellow" if(SEC_LEVEL_RED) return "red" if(SEC_LEVEL_DELTA) @@ -80,6 +91,8 @@ return SEC_LEVEL_GREEN if("blue") return SEC_LEVEL_BLUE + if("yellow") + return SEC_LEVEL_BLUE if("red") return SEC_LEVEL_RED if("delta") diff --git a/config/example/config.txt b/config/example/config.txt index 9399d6b1635..c7db3c67665 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -5,6 +5,7 @@ ALERT_GREEN All threats to the station have passed. Security may not have weapons visible, privacy laws are once again fully enforced. ALERT_BLUE_UPTO The station has received reliable information about possible hostile activity on the station. Security staff may have weapons visible, random searches are permitted. ALERT_BLUE_DOWNTO The immediate threat has passed. Security may no longer have weapons drawn at all times, but may continue to have them visible. Random searches are still allowed. +ALERT_YELLOW_TO The station is now under an elevated alert status due to a confirmed biological hazard. All crew are to follow command instruction in order to ensure a safe return to standard operations. ALERT_RED_UPTO There is an immediate serious threat to the station. Security may have weapons unholstered at all times. Random searches are allowed and advised. ALERT_RED_DOWNTO The self-destruct mechanism has been deactivated, 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. ALERT_DELTA The station's self-destruct mechanism has been engaged. 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. diff --git a/html/changelogs/printer16-Codeyellow.yml b/html/changelogs/printer16-Codeyellow.yml new file mode 100644 index 00000000000..096e4f8cf87 --- /dev/null +++ b/html/changelogs/printer16-Codeyellow.yml @@ -0,0 +1,4 @@ +author: Printer16 +delete-after: True +changes: + - rscadd: "Added a new code: Code Yellow. This is used for biological threats (IE. carp or space vines) and does not allow security to search without a warrant." diff --git a/icons/obj/monitors.dmi b/icons/obj/monitors.dmi index 847351791b5..30ac352d29f 100644 Binary files a/icons/obj/monitors.dmi and b/icons/obj/monitors.dmi differ diff --git a/nano/templates/communication.tmpl b/nano/templates/communication.tmpl index 141c8ba89f2..2d50e527744 100644 --- a/nano/templates/communication.tmpl +++ b/nano/templates/communication.tmpl @@ -56,6 +56,7 @@