diff --git a/modular_ss220/aesthetics/firealarm/icons/firealarm.dmi b/modular_ss220/aesthetics/firealarm/icons/firealarm.dmi index ae288310c251..bd06202e2aee 100644 Binary files a/modular_ss220/aesthetics/firealarm/icons/firealarm.dmi and b/modular_ss220/aesthetics/firealarm/icons/firealarm.dmi differ diff --git a/modular_ss220/modular_ss220.dme b/modular_ss220/modular_ss220.dme index 3a61d9ef6079..fbb18418eb6d 100644 --- a/modular_ss220/modular_ss220.dme +++ b/modular_ss220/modular_ss220.dme @@ -84,6 +84,7 @@ #include "shuttles/_shuttles.dme" #include "redis220/_redis220.dme" #include "robolimbs/_robolimbs.dme" +#include "security_levels/_security_levels.dme" // --- PRIME --- // // #define MODPACK_MAIN_ONLY diff --git a/modular_ss220/security_levels/_security_levels.dm b/modular_ss220/security_levels/_security_levels.dm new file mode 100644 index 000000000000..acaf1d8457a0 --- /dev/null +++ b/modular_ss220/security_levels/_security_levels.dm @@ -0,0 +1,4 @@ +/datum/modpack/security_levels + name = "Дополнительные коды на станции" + desc = "Добавляет оранжевый и фиолетовый коды в игру" + author = "Maxiemar" diff --git a/modular_ss220/security_levels/_security_levels.dme b/modular_ss220/security_levels/_security_levels.dme new file mode 100644 index 000000000000..542f376d6d71 --- /dev/null +++ b/modular_ss220/security_levels/_security_levels.dme @@ -0,0 +1,4 @@ +#include "_security_levels.dm" + +#include "code/security_level_datums.dm" +#include "code/SSsecurity_level.dm" diff --git a/modular_ss220/security_levels/code/SSsecurity_level.dm b/modular_ss220/security_levels/code/SSsecurity_level.dm new file mode 100644 index 000000000000..81f25c9f665d --- /dev/null +++ b/modular_ss220/security_levels/code/SSsecurity_level.dm @@ -0,0 +1,13 @@ +/datum/controller/subsystem/security_level/Initialize() + var/list/sorted_levels = list() + for(var/security_level_type in subtypesof(/datum/security_level)) + var/datum/security_level/new_level = new security_level_type + sorted_levels[list("number" = num2text(new_level.number_level, 1), "level" = new_level)] = null // this shit adds list to a list + sorted_levels = sortByKey(sorted_levels, "number") + + SSsecurity_level.available_levels.Cut(); + for(var/security_level_entry in sorted_levels) + var/datum/security_level/level = security_level_entry["level"] + SSsecurity_level.available_levels[level.name] = level + + return ..() diff --git a/modular_ss220/security_levels/code/security_level_datums.dm b/modular_ss220/security_levels/code/security_level_datums.dm new file mode 100644 index 000000000000..d8127548f4a4 --- /dev/null +++ b/modular_ss220/security_levels/code/security_level_datums.dm @@ -0,0 +1,31 @@ +/** + * VIOLET + * + * Medical threat + */ +/datum/security_level/violet + name = "violet" + number_level = SEC_LEVEL_VIOLET + elevating_to_sound = 'sound/misc/notice1.ogg' + ai_announcement_sound = 'sound/AI/blue.ogg' // TODO: to update + color = "darkviolet" + lowering_to_announcement_title = "ВНИМАНИЕ! Уровень угрозы понижен до ФИОЛЕТОВОГО." + lowering_to_announcement_text = "В настоящее время действуют процедуры Фиолетового кода. Медицинский персонал должен получить распоряжения от руководителя отдела. Немедицинский персонал обязан выполнять все соответствующие инструкции медицинского персонала." + elevating_to_announcement_title = "Внимание! Уровень угрозы повышен до ФИОЛЕТОВОГО." + elevating_to_announcement_text = "Возникла серьезная медицинская угроза экипажу станции. Медицинский персонал должен получить распоряжения от руководителя отдела. Немедицинский персонал обязан выполнять все соответствующие инструкции медицинского персонала." + +/** + * ORANGE + * + * Engineering emergency + */ +/datum/security_level/orange + name = "orange" + number_level = SEC_LEVEL_ORANGE + elevating_to_sound = 'sound/misc/notice1.ogg' + ai_announcement_sound = 'sound/AI/blue.ogg' // TODO: to update + color = "gold" + lowering_to_announcement_title = "ВНИМАНИЕ! Уровень угрозы понижен до ОРАНЖЕВОГО." + lowering_to_announcement_text = "В настоящее время действуют процедуры Оранжевого кода. Инженерный персонал должен получить распоряжения от руководителя отдела. Неинженерный персонал обязан покинуть аварийные помещения и выполнять все соответствующие инструкции инженерного персонала." + elevating_to_announcement_title = "Внимание! Уровень угрозы повышен до ОРАНЖЕВОГО." + elevating_to_announcement_text = "Произошла серьезная техническая авария. Инженерный персонал должен получить распоряжения от руководителя отдела. Неинженерный персонал обязан покинуть аварийные помещения и выполнять все соответствующие инструкции инженерного персонала."