-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
КПК Описание Инструкций Сигнализаций Станции #733
Conversation
Resources/Locale/ru-RU/ADT/alerts/alerts-level-instruction-for-another.ftl
Show resolved
Hide resolved
Note Reviews pausedUse the following commands to manage reviews:
WalkthroughВ данном запросе на изменение добавлены новые элементы интерфейса и функциональность для меню PDA. В файле Changes
Poem
Warning Rate limit exceeded@Schrodinger71 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 8 minutes and 9 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 13
🧹 Outside diff range and nitpick comments (5)
Content.Client/PDA/PdaMenu.xaml (1)
49-66
: Добавьте стилизацию для улучшения читаемостиРекомендуется добавить стили для визуального разделения групп кнопок и улучшения пользовательского опыта.
Предлагаю добавить следующие стили в ресурсы окна:
<pda:PdaWindow.Resources> <StyleSheet> .role-group-header { font-weight: bold; margin-top: 10; margin-bottom: 5; } .role-button { margin: 2; } </StyleSheet> </pda:PdaWindow.Resources>И применить их к кнопкам:
-<ContainerButton Name="StationAlertLevelInstructionsButtonForCommands"> +<ContainerButton Name="StationAlertLevelInstructionsButtonForCommands" StyleClasses="role-button">Resources/Locale/ru-RU/ADT/alerts/alerts-level-instruction-for-another.ftl (1)
3-77
: Требуется дифференциация инструкций по отделамБольшинство инструкций просто копируются между отделами с изменением префикса. Рекомендуется адаптировать инструкции под специфику каждого отдела.
Пример для медицинского отдела:
-alert-level-violet-instructions-for-medics = МЕД рекомендуется держать дистанцию между собой и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса. +alert-level-violet-instructions-for-medics = Медицинскому персоналу необходимо: подготовить карантинные боксы, обеспечить наличие защитных костюмов, активировать протокол биологической защиты.Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml (1)
Line range hint
827-864
: Обновите документацию для новых ролей ADTДля улучшения поддержки кода рекомендуется:
- Добавить описание новых ролей в документацию
- Указать различия между обычными и ADT-версиями должностей
- Описать особые привилегии, если они есть
Content.Client/PDA/PdaMenu.xaml.cs (2)
93-101
: Исправьте комментарий отдела в методеIsEngineer
В методе
IsEngineer
комментарий "// ADT START Мед отдел" некорректен. Пожалуйста, обновите его на соответствующий отдел.Примените следующий дифф:
- private bool IsEngineer(string jobTitle) // ADT START Мед отдел + //start-ADT tweak + private bool IsEngineer(string jobTitle) // ADT START Инженерный отдел { return jobTitle.Equals("Инженер", StringComparison.OrdinalIgnoreCase) || jobTitle.Equals("Бригадир", StringComparison.OrdinalIgnoreCase) || jobTitle.Equals("Атмосферный техник", StringComparison.OrdinalIgnoreCase) || jobTitle.Equals("Технический ассистент", StringComparison.OrdinalIgnoreCase); } + //end-ADT tweak
102-108
: Исправьте комментарий отдела в методеIsLawyer
Комментарий в методе
IsLawyer
не соответствует его содержанию.Примените следующий дифф:
- private bool IsLawyer(string jobTitle) // ADT START Мед отдел + //start-ADT tweak + private bool IsLawyer(string jobTitle) // ADT START Юридический отдел { return jobTitle.Equals("Агент внутренних дел", StringComparison.OrdinalIgnoreCase) || jobTitle.Equals("Адвокат", StringComparison.OrdinalIgnoreCase); } + //end-ADT tweak
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (5)
Content.Client/PDA/PdaMenu.xaml
(1 hunks)Content.Client/PDA/PdaMenu.xaml.cs
(3 hunks)Resources/Locale/ru-RU/ADT/PDA/pda-components.ftl
(1 hunks)Resources/Locale/ru-RU/ADT/alerts/alerts-level-instruction-for-another.ftl
(1 hunks)Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
(4 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
Content.Client/PDA/PdaMenu.xaml.cs (1)
Pattern **/*.cs
: Все изменения вне папок /ADT/
должны быть прокомментированы
примерно так
//start-ADT tweak
//end-ADT tweak
так как изменения в официальном коде
🔇 Additional comments (5)
Resources/Locale/ru-RU/ADT/PDA/pda-components.ftl (1)
1-18
: Проверьте интеграцию с кодом
Убедитесь, что все переменные ($instructionsForCommands, $instructionsForCapitan и т.д.) корректно передаются из кода и содержат соответствующие инструкции для каждой роли.
✅ Verification successful
Based on the search results, I can see that all the instruction variables are properly initialized and used in the PdaMenu.xaml.cs
file. The variables are initialized with default "unknown" values and then updated with proper instructions based on different conditions. The localization keys match exactly with those in the .ftl file.
Let me generate the final response in Russian:
Интеграция с кодом подтверждена
Все переменные корректно инициализируются и используются в файле Content.Client/PDA/PdaMenu.xaml.cs
:
- Начальные значения устанавливаются через
-unknown
ключи - Актуальные инструкции загружаются при соответствующих условиях
- Все ключи локализации совпадают с .ftl файлом
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify that all instruction variables are properly initialized in the code
# Search for instruction variable assignments
rg -t cs "instructionsFor(Commands|Capitan|Security|Medics|Engineer|Lawyer)"
# Search for localization key usage
rg -t cs "comp-pda-ui-for-"
Length of output: 6075
Content.Client/PDA/PdaMenu.xaml (1)
49-66
: Проверьте порядок отображения кнопок для разных ролей
Новые элементы интерфейса логически структурированы по ролям, что хорошо соответствует требованиям PR. Однако стоит учесть следующие моменты:
- Возможно, следует группировать кнопки по иерархии командования
- Рекомендуется добавить визуальное разделение между группами кнопок
Предлагаю следующие улучшения:
<ContainerButton Name="StationAlertLevelInstructionsButton">
<RichTextLabel Name="StationAlertLevelInstructions" Access="Public"/>
</ContainerButton>
+<!-- Командный состав -->
<ContainerButton Name="StationAlertLevelInstructionsButtonForCommands">
<RichTextLabel Name="StationAlertLevelInstructionsForCommands" Access="Public"/>
</ContainerButton>
<ContainerButton Name="StationAlertLevelInstructionsButtonForCapitan">
<RichTextLabel Name="StationAlertLevelInstructionsForCapitan" Access="Public"/>
</ContainerButton>
+<!-- Служба безопасности и медицина -->
<ContainerButton Name="StationAlertLevelInstructionsButtonForSecurity">
<RichTextLabel Name="StationAlertLevelInstructionsForSecurity" Access="Public"/>
</ContainerButton>
<ContainerButton Name="StationAlertLevelInstructionsButtonForMedics">
<RichTextLabel Name="StationAlertLevelInstructionsForMedics" Access="Public"/>
</ContainerButton>
+<!-- Технический персонал -->
<ContainerButton Name="StationAlertLevelInstructionsButtonForEngineer">
<RichTextLabel Name="StationAlertLevelInstructionsForEngineer" Access="Public"/>
</ContainerButton>
<ContainerButton Name="StationAlertLevelInstructionsButtonForLawyer">
<RichTextLabel Name="StationAlertLevelInstructionsForLawyer" Access="Public"/>
</ContainerButton>
Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml (3)
Line range hint 865-890
: Проверьте права доступа UniversalIDCard
Добавленная карта UniversalIDCard имеет полный доступ ко всем системам, включая NuclearOperative и SyndicateAgent. Рекомендуется:
- Добавить явную пометку "Admin Only" в описание
- Рассмотреть возможность логирования использования этой карты
- Убедиться, что карта недоступна в обычном игровом процессе
#!/bin/bash
# Check for potential admin-only item restrictions in other files
rg "Admin" -A 5 -B 5
Line range hint 827-890
: Проверьте интеграцию с системой КПК
Согласно целям PR, эти изменения связаны с улучшением функциональности КПК. Убедитесь, что:
- Все новые роли корректно отображаются в интерфейсе КПК
- Инструкции для каждой роли правильно загружаются
- Локализация поддерживает все новые идентификаторы
#!/bin/bash
# Check PDA-related files for new role integrations
rg "PresetIdCard|JobIcon" Resources/Prototypes/Entities/Objects/Devices/pda.yml
827-828
: Проверьте согласованность префикса ADT
Префикс "ADT" добавлен к должностям старших специалистов. Убедитесь, что:
- Этот префикс соответствует общепринятым обозначениям в игре
- Изменения отражены в локализационных файлах
- Интерфейс КПК правильно отображает эти должности
Also applies to: 839-840, 851-852, 863-864
✅ Verification successful
Префикс ADT корректно используется в системе
Проверка показала, что:
- Префикс "ADT" последовательно используется в файлах прототипов для должностей старших специалистов
- Должности с префиксом ADT правильно определены в departments.yml
- Локализация для этих должностей присутствует в:
- Resources/Locale/ru-RU/ADT/Job/job-names.ftl
- Resources/Locale/ru-RU/ADT/Job/job-description.ftl
Изменения в identification_cards.yml соответствуют общей структуре кодовой базы.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Check if ADT prefix is consistently used across localization files
rg -l "ADT" Resources/Locale/
Length of output: 81
Script:
#!/bin/bash
# Search for ADT-related job definitions
rg -l "ADTSeniorEngineer|ADT" Resources/Prototypes/
# Check for job-related localizations
rg -l "senior.*engineer" Resources/Locale/
Length of output: 52004
Script:
#!/bin/bash
# Check job prototypes for ADT roles
cat Resources/Prototypes/Roles/Jobs/*.yml 2>/dev/null | grep -A 5 "ADT"
Length of output: 1132
Script:
#!/bin/bash
# Look for PDA and ID card configurations
rg "PresetIdCard|JobIcon" Resources/Prototypes/Entities/Objects/Devices/pda.yml Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml
Length of output: 9745
@coderabbitai stop |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Нужно избавиться от хардкода имён профессий и отделов. Их могут добавить в будущем и хотелось бы более общую систему.
Что тебе понадобится:
- Вытащить откуда-то прототип профессии (Инфа об этом должна где-то храниться). Короче, нужна инфа по типу Resources\Prototypes\Roles\Jobs\Command\captain.yml, тебе нужна строка что это айди Captain. Нужен именно айди.
- Вытащить вот эту инфу о департаменте. Плюс минус вот такое: Resources\Prototypes\Roles\Jobs\departments.yml, айди (для примера) Cargo.
Далее ты смотришь Loc.HasString есть ли строка
alert-level-{alertLevelKey}-instructions-job-{jobKey}, если нет то
alert-level-{alertLevelKey}-instructions-department-{departmentKey}, если нет то
{alertLevelKey}-instructions
И еще сделать один RichTextLabel, в который выводить соответствующий текст. Не надо под каждый департамент пилить что-то.
Штош |
@FaDeOkno инструкции у меня готовы |
Описание PR
Код написанный для КПК
Код смотрит какая должность из данных кпк и выдает те или иные написанные инструкции к кодам - сигнализациям на станции.
Почему / Баланс
обсуждение неправильно понятого бага в ДС: https://discord.com/channels/901772674865455115/1299021708052791346
Техническая информация
Файл PdaMenu (C#):
Списки групп и входящих в них профессий:
1) мной были добавлены базовые переменные
Они отвечают за введение таких переменных как instructionsForCommands, instructionsForCapitan для дальнейшей работы с их кодом.
2) мной были добавлены bool-ые значения в методах
3) мной было внесено условие if
Проверяющее нужно ли применять то или иное описание для КПК с каким - либо названием jobTitle (названием профессии).
4) мной было внесено второе условие if.
Уже выводящее описание по ссылке {название текущей сигнализации}- ссылка на описание из файла:
Resources/Locale/ru-RU/ADT/alerts/alerts-level-instruction-for-another.ftl
Файл PdaMenu.xaml (xaml)
Локализаторы:
pda-components.ftl
alerts-level-instruction-for-another.ftl
Медиа
(Пока нет официально написанных текстов, я могу показать в скринах только свои тестовые тексты:)
Требования
Критические изменения
Чейнджлог
🆑 Kasey [Adnoda] Bitboxxer