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