diff --git a/Content.Client/PDA/PdaMenu.xaml b/Content.Client/PDA/PdaMenu.xaml
index 8c9b4ae2ee6..3942dccb2e9 100644
--- a/Content.Client/PDA/PdaMenu.xaml
+++ b/Content.Client/PDA/PdaMenu.xaml
@@ -46,6 +46,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
? OnProgramItemPressed;
public event Action? OnUninstallButtonPressed;
public event Action? OnInstallButtonPressed;
+
+
+ private bool IsCommand(string jobTitle) // ADT START Главы
+ {
+ return jobTitle.Equals("Главный врач", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Квартирмейстер", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Старший инженер", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Научный руководитель", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Глава службы безопасности", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Глава персонала", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Магистрат", StringComparison.OrdinalIgnoreCase);
+
+ } // ADT END
+
+ private bool IsCapitan(string jobTitle) // ADT START Капитан
+ {
+ return jobTitle.Equals("Капитан", StringComparison.OrdinalIgnoreCase);
+
+ } // ADT END
+
+ private bool IsSecurity(string jobTitle) // ADT START Служба безопасности
+ {
+ return jobTitle.Equals("Надзиратель", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Офицер-Инструктор", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Бригмедик", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Детектив", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Пилот", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Кадет СБ", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Офицер СБ", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Смотритель", StringComparison.OrdinalIgnoreCase);
+
+ } // ADT END
+
+ private bool IsMedics(string jobTitle) // ADT START Мед отдел
+ {
+ return jobTitle.Equals("Интерн", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Химик", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Ведущий Врач", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Патологоанатом", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Парамедик", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Врач", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Психолог", StringComparison.OrdinalIgnoreCase);
+
+ } // ADT END
+
+ private bool IsEngineer(string jobTitle) // ADT START Мед отдел
+ {
+ return jobTitle.Equals("Инженер", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Бригадир", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Атмосферный техник", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Технический ассистент", StringComparison.OrdinalIgnoreCase);
+
+ } // ADT END
+
+ private bool IsLawyer(string jobTitle) // ADT START Мед отдел
+ {
+ return jobTitle.Equals("Агент внутренних дел", StringComparison.OrdinalIgnoreCase) ||
+ jobTitle.Equals("Адвокат", StringComparison.OrdinalIgnoreCase);
+
+ } // ADT END
+
public PdaMenu()
{
IoCManager.InjectDependencies(this);
@@ -151,6 +218,44 @@ public void UpdateState(PdaUpdateState state)
IdInfoLabel.SetMarkup(Loc.GetString("comp-pda-ui",
("owner", _owner),
("jobTitle", _jobTitle)));
+
+ // Инструкции "comp-pda-ui-for-commands (-unknown)" для ролей
+ if (IsCapitan(_jobTitle) || IsCommand(_jobTitle) || IsSecurity(_jobTitle) || IsMedics(_jobTitle) || IsEngineer(_jobTitle) || IsLawyer(_jobTitle))
+ {
+ if (IsCapitan(_jobTitle))
+ {
+ _instructionsForCapitan = Loc.GetString("comp-pda-ui-for-capitan");
+ }
+
+ if (IsCommand(_jobTitle))
+ {
+ _instructionsForCommands = Loc.GetString("comp-pda-ui-for-commands");
+ }
+
+ if (IsSecurity(_jobTitle))
+ {
+ _instructionsForSecurity = Loc.GetString("comp-pda-ui-for-security");
+ }
+
+ if (IsMedics(_jobTitle))
+ {
+ _instructionsForMedics = Loc.GetString("comp-pda-ui-for-medics");
+ }
+
+ if (IsEngineer(_jobTitle))
+ {
+ _instructionsForEngineer = Loc.GetString("comp-pda-ui-for-engineer");
+ }
+
+ if (IsLawyer(_jobTitle))
+ {
+ _instructionsForLawyer = Loc.GetString("comp-pda-ui-for-lawyer");
+ }
+ }
+ else
+ {
+ _instructionsForCommands = Loc.GetString("comp-pda-ui-for-commands-unknown");
+ } // ADT END
}
else
{
@@ -177,11 +282,93 @@ public void UpdateState(PdaUpdateState state)
("color", alertColor),
("level", _alertLevel)
));
- _instructions = Loc.GetString($"{alertLevelKey}-instructions");
- StationAlertLevelInstructions.SetMarkup(Loc.GetString(
- "comp-pda-ui-station-alert-level-instructions",
- ("instructions", _instructions))
- );
+
+ if (IsCapitan(_jobTitle) || IsCommand(_jobTitle) || IsSecurity(_jobTitle) || IsMedics(_jobTitle) || IsEngineer(_jobTitle) || IsLawyer(_jobTitle)) // ADT START
+ {
+ if (IsCapitan(_jobTitle)) // ADT
+ {
+ _instructionsForCapitan = Loc.GetString($"{alertLevelKey}-instructions-for-capitan");
+ StationAlertLevelInstructionsForCapitan.SetMarkup(Loc.GetString(
+ "comp-pda-ui-for-capitan",
+ ("instructionsForCapitan", _instructionsForCapitan))
+ );
+ }
+
+ if (IsCommand(_jobTitle)) // ADT
+ {
+ _instructionsForCommands = Loc.GetString($"{alertLevelKey}-instructions-for-commands");
+ StationAlertLevelInstructionsForCommands.SetMarkup(Loc.GetString(
+ "comp-pda-ui-for-commands",
+ ("instructionsForCommands", _instructionsForCommands))
+ );
+ }
+
+ if (IsSecurity(_jobTitle)) // ADT
+ {
+ _instructionsForSecurity = Loc.GetString($"{alertLevelKey}-instructions-for-security");
+ StationAlertLevelInstructionsForSecurity.SetMarkup(Loc.GetString(
+ "comp-pda-ui-for-security",
+ ("instructionsForSecurity", _instructionsForSecurity))
+ );
+ }
+
+ if (IsMedics(_jobTitle)) // ADT
+ {
+ _instructionsForMedics = Loc.GetString($"{alertLevelKey}-instructions-for-medics");
+ StationAlertLevelInstructionsForMedics.SetMarkup(Loc.GetString(
+ "comp-pda-ui-for-medics",
+ ("instructionsForMedics", _instructionsForMedics))
+ );
+ }
+
+ if (IsEngineer(_jobTitle)) // ADT
+ {
+ _instructionsForEngineer = Loc.GetString($"{alertLevelKey}-instructions-for-engineer");
+ StationAlertLevelInstructionsForEngineer.SetMarkup(Loc.GetString(
+ "comp-pda-ui-for-engineer",
+ ("instructionsForEngineer", _instructionsForEngineer))
+ );
+ }
+
+ if (IsLawyer(_jobTitle)) // ADT
+ {
+ _instructionsForLawyer = Loc.GetString($"{alertLevelKey}-instructions-for-lawyer");
+ StationAlertLevelInstructionsForLawyer.SetMarkup(Loc.GetString(
+ "comp-pda-ui-for-lawyer",
+ ("instructionsForLawyer", _instructionsForLawyer))
+ );
+ }
+
+ // Единичные исключения:
+ if (_jobTitle.Equals("Главный врач", StringComparison.OrdinalIgnoreCase) && alertLevel == "violet") // ADT пример как можно сделать "исключение" (Вирус)
+ {
+ _instructionsForCommands = Loc.GetString($"{alertLevelKey}-instructions-for-another-med");
+ StationAlertLevelInstructionsForCommands.SetMarkup(Loc.GetString(
+ "comp-pda-ui-for-commands",
+ ("instructionsForCommands", _instructionsForCommands))
+ );
+ }
+
+ }
+
+ else // ADT END
+ {
+ _instructions = Loc.GetString($"{alertLevelKey}-instructions");
+ StationAlertLevelInstructions.SetMarkup(Loc.GetString(
+ "comp-pda-ui-station-alert-level-instructions",
+ ("instructions", _instructions))
+ );
+
+ // Единичные исключения:
+ if (_jobTitle.Equals("Клоун", StringComparison.OrdinalIgnoreCase) && alertLevel == "epsilon") // ADT входит в команду another. (Мем)
+ {
+ _instructions = Loc.GetString($"{alertLevelKey}-instructions-for-another-clown");
+ StationAlertLevelInstructions.SetMarkup(Loc.GetString(
+ "comp-pda-ui-station-alert-level-instructions",
+ ("instructions", _instructions))
+ );
+ }
+ }
AddressLabel.Text = state.Address?.ToUpper() ?? " - ";
diff --git a/Resources/Locale/ru-RU/ADT/PDA/pda-components.ftl b/Resources/Locale/ru-RU/ADT/PDA/pda-components.ftl
new file mode 100644
index 00000000000..0c99b916ec0
--- /dev/null
+++ b/Resources/Locale/ru-RU/ADT/PDA/pda-components.ftl
@@ -0,0 +1,18 @@
+# Главы
+comp-pda-ui-for-commands = Инструкции: [color=white]{ $instructionsForCommands }[/color]
+comp-pda-ui-for-commands-unknown = Инструкции: [color=white]{ $instructionsForCommands }[/color]
+# Капитан
+comp-pda-ui-for-capitan = Инструкции: [color=white]{ $instructionsForCapitan }[/color]
+comp-pda-ui-for-capitan-unknown = Инструкции: [color=white]{ $instructionsForCapitan }[/color]
+# Служба безопасности
+comp-pda-ui-for-security = Инструкции: [color=white]{ $instructionsForSecurity }[/color]
+comp-pda-ui-for-security-unknown = Инструкции: [color=white]{ $instructionsForSecurity }[/color]
+# Мед отделе
+comp-pda-ui-for-medics = Инструкции: [color=white]{ $instructionsForMedics }[/color]
+comp-pda-ui-for-medics-unknown = Инструкции: [color=white]{ $instructionsForMedics }[/color]
+# Инжинерный отдел
+comp-pda-ui-for-engineer = Инструкции: [color=white]{ $instructionsForEngineer }[/color]
+comp-pda-ui-for-engineer-unknown = Инструкции: [color=white]{ $instructionsForEngineer }[/color]
+# Юридический отдел
+comp-pda-ui-for-lawyer = Инструкции: [color=white]{ $instructionsForLawyer }[/color]
+comp-pda-ui-for-lawyer-unknown = Инструкции: [color=white]{ $instructionsForLawyer }[/color]
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/ADT/alerts/alerts-level-instruction-for-another.ftl b/Resources/Locale/ru-RU/ADT/alerts/alerts-level-instruction-for-another.ftl
new file mode 100644
index 00000000000..1bd7e0ad14d
--- /dev/null
+++ b/Resources/Locale/ru-RU/ADT/alerts/alerts-level-instruction-for-another.ftl
@@ -0,0 +1,82 @@
+# Главы
+
+alert-level-unknown-instructions-for-commands = Неизвестно.
+alert-level-green-instructions-for-commands = Выполняйте свою работу.
+alert-level-blue-instructions-for-commands = Каждый сотрудник обязан носить свою ID-карту в своём КПК. Также Главам отделов рекомендуется проявлять бдительность и сообщать службе безопасности o любой подозрительной активности.
+alert-level-violet-instructions-for-commands = Главам отделов рекомендуется держать дистанцию между собой и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса. Если вы чувствуете себя плохо - вам следует незамедлительно пройти на обследование, надев заранее стерильную маску.
+alert-level-yellow-instructions-for-commands = Главам отделов необходимо в срочном порядке покинуть опасную зону и, по возможности, оставаться на своих рабочих местах.
+alert-level-red-instructions-for-commands = Переключите режим работы своего костюма в режим "Координаты" и находитесь в своём отделе.
+alert-level-gamma-instructions-for-commands = Главы отделов обязаны проконтролировать статус гражданского персонала входящий в состав их отделов. Корпорация Nanotrasen заверяет вас - опасность скоро будет нейтрализована.
+alert-level-delta-instructions-for-commands = Главам отделов необходимо иметь (при возможности) контакт с другими главами станции. От этого зависит ваше здоровье и безопасность.
+alert-level-epsilon-instructions-for-commands = Все контракты расторгнуты.
+alert-level-amber-instructions-for-commands = Инструкция Янтарного Кода Для Коммандования.
+
+# Капитан
+
+alert-level-unknown-instructions-for-capitan = КАПИТАН Неизвестно.
+alert-level-green-instructions-for-capitan = КАПИТАН Выполняйте свою работу.
+alert-level-blue-instructions-for-capitan = КАПИТАН Каждый сотрудник обязан носить свою ID-карту в своём КПК. Также Главам отделов рекомендуется проявлять бдительность и сообщать службе безопасности o любой подозрительной активности.
+alert-level-violet-instructions-for-capitan = КАПИТАН Главам отделов рекомендуется держать дистанцию между собой и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса. Если вы чувствуете себя плохо - вам следует незамедлительно пройти на обследование, надев заранее стерильную маску.
+alert-level-yellow-instructions-for-capitan = КАПИТАН Главам отделов необходимо в срочном порядке покинуть опасную зону и, по возможности, оставаться на своих рабочих местах.
+alert-level-red-instructions-for-capitan = КАПИТАН Переключите режим работы своего костюма в режим "Координаты" и находитесь в своём отделе.
+alert-level-gamma-instructions-for-capitan = КАПИТАН Главы отделов обязаны проконтролировать статус гражданского персонала входящий в состав их отделов. Корпорация Nanotrasen заверяет вас - опасность скоро будет нейтрализована.
+alert-level-delta-instructions-for-capitan = Капитану необходимо иметь (при возможности) контакт с главами станции. От этого зависит ваше здоровье и безопасность.
+alert-level-epsilon-instructions-for-capitan = Внимание ! Все контракты расторгнуты.
+alert-level-amber-instructions-for-capitan = Инструкция Янтарного Кода Для Капитана.
+
+# Служба Безопасности
+
+alert-level-unknown-instructions-for-security = СЛУЖБА Безопасности Неизвестно.
+alert-level-green-instructions-for-security = СЛУЖБА Безопасности Выполняйте свою работу.
+alert-level-blue-instructions-for-security = СЛУЖБА Безопасности Каждый сотрудник обязан носить свою ID-карту в своём КПК. Также Главам отделов рекомендуется проявлять бдительность и сообщать службе безопасности o любой подозрительной активности.
+alert-level-violet-instructions-for-security = СЛУЖБА Безопасности Главам отделов рекомендуется держать дистанцию между собой и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса. Если вы чувствуете себя плохо - вам следует незамедлительно пройти на обследование, надев заранее стерильную маску.
+alert-level-yellow-instructions-for-security = СЛУЖБА Безопасности Главам отделов необходимо в срочном порядке покинуть опасную зону и, по возможности, оставаться на своих рабочих местах.
+alert-level-red-instructions-for-security = СЛУЖБА Безопасности Переключите режим работы своего костюма в режим "Координаты" и находитесь в своём отделе.
+alert-level-gamma-instructions-for-security = СЛУЖБА Безопасности Главы отделов обязаны проконтролировать статус гражданского персонала входящий в состав их отделов. Корпорация Nanotrasen заверяет вас - опасность скоро будет нейтрализована.
+alert-level-delta-instructions-for-security = СЛУЖБА Безопасности Главам отделов необходимо иметь (при возможности) контакт с другими главами станции. От этого зависит ваше здоровье и безопасность.
+alert-level-epsilon-instructions-for-security = СЛУЖБА Безопасности БЛЯЯЯЯ Все контракты расторгнуты.
+alert-level-amber-instructions-for-security = Инструкция Янтарного Кода Для Службы Безопасности.
+
+# Мед отдел
+
+alert-level-unknown-instructions-for-medics = МЕД Неизвестно.
+alert-level-green-instructions-for-medics = МЕД Выполняйте свою работу.
+alert-level-blue-instructions-for-medics = МЕД Каждый сотрудник обязан носить свою ID-карту в своём КПК. Также Главам отделов рекомендуется проявлять бдительность и сообщать службе безопасности o любой подозрительной активности.
+alert-level-violet-instructions-for-medics = МЕД рекомендуется держать дистанцию между собой и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса. Если вы чувствуете себя плохо - вам следует незамедлительно пройти на обследование, надев заранее стерильную маску.
+alert-level-yellow-instructions-for-medics = МЕД необходимо в срочном порядке покинуть опасную зону и, по возможности, оставаться на своих рабочих местах.
+alert-level-red-instructions-for-medics = МЕД Переключите режим работы своего костюма в режим "Координаты" и находитесь в своём отделе.
+alert-level-gamma-instructions-for-medics = МЕД обязаны проконтролировать статус гражданского персонала входящий в состав их отделов. Корпорация Nanotrasen заверяет вас - опасность скоро будет нейтрализована.
+alert-level-delta-instructions-for-medics = МЕД необходимо иметь (при возможности) контакт с другими главами станции. От этого зависит ваше здоровье и безопасность.
+alert-level-epsilon-instructions-for-medics = МЕД БЛЯЯЯЯ Все контракты расторгнуты.
+alert-level-amber-instructions-for-medics = Инструкция Янтарного Кода Для МЕД ОТДЕЛА.
+
+# Инженерный отдел
+
+alert-level-unknown-instructions-for-engineer = ИНЖЕНЕР Неизвестно.
+alert-level-green-instructions-for-engineer = ИНЖЕНЕР Выполняйте свою работу.
+alert-level-blue-instructions-for-engineer = ИНЖЕНЕР Каждый сотрудник обязан носить свою ID-карту в своём КПК. Также Главам отделов рекомендуется проявлять бдительность и сообщать службе безопасности o любой подозрительной активности.
+alert-level-violet-instructions-for-engineer = ИНЖЕНЕР рекомендуется держать дистанцию между собой и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса. Если вы чувствуете себя плохо - вам следует незамедлительно пройти на обследование, надев заранее стерильную маску.
+alert-level-yellow-instructions-for-engineer = ИНЖЕНЕР необходимо в срочном порядке покинуть опасную зону и, по возможности, оставаться на своих рабочих местах.
+alert-level-red-instructions-for-engineer = ИНЖЕНЕР Переключите режим работы своего костюма в режим "Координаты" и находитесь в своём отделе.
+alert-level-gamma-instructions-for-engineer = ИНЖЕНЕР обязаны проконтролировать статус гражданского персонала входящий в состав их отделов. Корпорация Nanotrasen заверяет вас - опасность скоро будет нейтрализована.
+alert-level-delta-instructions-for-engineer = ИНЖЕНЕР необходимо иметь (при возможности) контакт с другими главами станции. От этого зависит ваше здоровье и безопасность.
+alert-level-epsilon-instructions-for-engineer = ИНЖЕНЕР БЛЯЯЯЯ Все контракты расторгнуты.
+alert-level-amber-instructions-for-engineer = Инструкция Янтарного Кода Для ИНЖЕНЕРНОГО ОТДЕЛА.
+
+# Юридический отдел
+
+alert-level-unknown-instructions-for-lawyer = Юридический Неизвестно.
+alert-level-green-instructions-for-lawyer = Юридический Выполняйте свою работу.
+alert-level-blue-instructions-for-lawyer = Юридический Каждый сотрудник обязан носить свою ID-карту в своём КПК. Также Главам отделов рекомендуется проявлять бдительность и сообщать службе безопасности o любой подозрительной активности.
+alert-level-violet-instructions-for-lawyer = Юридический рекомендуется держать дистанцию между собой и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса. Если вы чувствуете себя плохо - вам следует незамедлительно пройти на обследование, надев заранее стерильную маску.
+alert-level-yellow-instructions-for-lawyer = Юридический необходимо в срочном порядке покинуть опасную зону и, по возможности, оставаться на своих рабочих местах.
+alert-level-red-instructions-for-lawyer = Юридический Переключите режим работы своего костюма в режим "Координаты" и находитесь в своём отделе.
+alert-level-gamma-instructions-for-lawyer = Юридический обязаны проконтролировать статус гражданского персонала входящий в состав их отделов. Корпорация Nanotrasen заверяет вас - опасность скоро будет нейтрализована.
+alert-level-delta-instructions-for-lawyer = Юридический необходимо иметь (при возможности) контакт с другими главами станции. От этого зависит ваше здоровье и безопасность.
+alert-level-epsilon-instructions-for-lawyer = Юридический БЛЯЯЯЯ Все контракты расторгнуты.
+alert-level-amber-instructions-for-lawyer = Инструкция Янтарного Кода Для ЮРИДИЧЕСКОГО ОТДЕЛА.
+
+# Единичные (another+)
+
+alert-level-violet-instructions-for-another-med = Вам необходимо проконтролировать создание || нахождение вакцины для больных. Держите дистанцию от больных для вашей безопасноти.
+alert-level-epsilon-instructions-for-another-clown = Вам не удалось рассмешить людей в черном.
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
index 7af044f3dfe..092ee3f32b6 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
@@ -824,6 +824,8 @@
layers:
- state: default
- state: idseniorengineer
+ - type: PresetIdCard # ADT
+ job: ADTSeniorEngineer
- type: entity
parent: ResearchIDCard
@@ -834,6 +836,8 @@
layers:
- state: default
- state: idseniorresearcher
+ - type: PresetIdCard # ADT
+ job: ADTSeniorResearcher
- type: entity
parent: MedicalIDCard
@@ -844,6 +848,8 @@
layers:
- state: default
- state: idseniorphysician
+ - type: PresetIdCard # ADT
+ job: ADTSeniorPhysician
- type: entity
parent: SecurityIDCard
@@ -854,6 +860,8 @@
layers:
- state: default
- state: idseniorofficer
+ - type: PresetIdCard # ADT
+ job: ADTSeniorOfficer
- type: entity
parent: IDCardStandard