Обновление минитменов + их звания#83
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughДобавлены и зарегистрированы ранги CMM, в нескольких job‑прототипах добавлены секции ranks и заменён ChatRank→LanguageAdder, добавлены два резиновых штампа (прототипы + локализация), а также правки русских строк локализации и мелкие правки капитализации в рангах NCWL. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml (1)
134-134:⚠️ Potential issue | 🟡 MinorОпечатка в существующем коде.
Строка
suffix: DoNotMapstamp-syndicateсодержит опечатку — вероятно, должно бытьsuffix: DoNotMap. Рекомендуется исправить при возможности.Предлагаемое исправление
- suffix: DoNotMapstamp-syndicate + suffix: DoNotMap🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml` at line 134, В файле YAML исправьте опечатку в значении ключа suffix: вместо текущего "DoNotMapstamp-syndicate" замените на корректное значение "DoNotMap" (обратите внимание на ключ suffix и значение DoNotMapstamp-syndicate в записи сущности штампа), чтобы соответствовать ожидаемому семантическому идентификатору.
♻️ Duplicate comments (2)
Resources/Prototypes/_Crescent/Roles/Jobs/TSP/combatphysician.yml (1)
42-48:⚠️ Potential issue | 🟠 MajorУдаление ChatRank — аналогичная проблема с отображением званий.
Как и в остальных файлах, требуется либо вернуть
ChatRankкомпонент, либо подтвердить, что это намеренное удаление функционала отображения званий в радио.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/combatphysician.yml` around lines 42 - 48, The YAML removed a ChatRank component that other roles rely on for displaying ranks in radio; inspect the Role/Job definition around the LanguageAdder block and either reintroduce the ChatRank component (add a ChatRank entry with the same structure used in other role files) so radio rank display works, or if rank display was intentionally removed, update all consumers and tests to stop expecting ChatRank and add a clear comment in this role to document the intended removal; search for the ChatRank symbol and mirror the implementation from a working role to restore behavior or add verification that no ChatRank references remain.Resources/Prototypes/_Crescent/Roles/Jobs/TSP/marshal.yml (1)
36-42:⚠️ Potential issue | 🟠 MajorУдаление ChatRank — та же проблема с отображением званий в радио.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/marshal.yml` around lines 36 - 42, The radio no longer shows ranks because ChatRank was removed; restore rank visibility by reintroducing ChatRank into the language mappings used by the radio: update the LanguageAdder configuration (the addSpoken and addUnderstood lists in the LanguageAdder block) to include "ChatRank" (or re-add the ChatRank mapping logic) so the radio display can recognize and render ranks again; modify the LanguageAdder entries shown (addSpoken, addUnderstood) to include "ChatRank" or restore the ChatRank handling function if it was extracted.
🧹 Nitpick comments (2)
Resources/Locale/ru-RU/_Rat/stamp.ftl (1)
34-36: Несоответствие префикса в ключах локализации.Новые ключи используют префикс
tsfc(например,rat-stamp-name-tsfc-colonial-marshal), но штампы относятся к фракции CMM, а не TFSC. Для согласованности с именами сущностей (RatRubberStampCMMMarshal,RatRubberStampCMM) рекомендуется использовать префиксcmm:Предлагаемое переименование
# CMM -rat-stamp-name-tsfc-colonial-marshal = Колониальный маршал -rat-stamp-name-tsfc-minutemen-command = Командование минитменов +rat-stamp-name-cmm-colonial-marshal = Колониальный маршал +rat-stamp-name-cmm-minutemen-command = Командование минитменовПри переименовании также потребуется обновить ссылки в
stamps.yml:
stampedName: rat-stamp-name-cmm-colonial-marshalstampedName: rat-stamp-name-cmm-minutemen-command🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Locale/ru-RU/_Rat/stamp.ftl` around lines 34 - 36, Ключи локализации используют неверный префикс "tsfc" — нужно переименовать их в префикс "cmm" чтобы совпадать с сущностями RatRubberStampCMMMarshal и RatRubberStampCMM; конкретно заменить rat-stamp-name-tsfc-colonial-marshal → rat-stamp-name-cmm-colonial-marshal и rat-stamp-name-tsfc-minutemen-command → rat-stamp-name-cmm-minutemen-command в этом файле, а затем обновить соответствующие ссылки в stamps.yml (поля stampedName) на новые ключи.Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml (1)
200-226: Исправьте форматsuffixдля согласованности с остальными штампами.Новые штампы CMM используют
suffix: DO NOT MAP, но все остальные штампы в файле используютsuffix: DoNotMap. Приведите формат в соответствие:suffix: DoNotMapСпрайт-состояния
stamp-cmo(вstamps.rsi) иpaper_stamp-cmo(вbureaucracy.rsi) корректны и существуют.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml` around lines 200 - 226, В файле stamps.yml два новых CMM-штампа (entities с name "colonial marshal rubber stamp" id RatRubberStampCMMMarshal и "minuteman command rubber stamp" id RatRubberStampCMM) используют несоответствующий формат суффикса `suffix: DO NOT MAP`; замените эти значения на согласованный формат `suffix: DoNotMap` в обоих блоках, сохраните остальные поля (components, Stamp/Sprite) без изменений.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Resources/Locale/ru-RU/_Crescent/job/job-names.ftl`:
- Line 50: The string for key job-name-logisticsofficer includes a trailing " #
удалили" which will be rendered as part of the job name; either delete the
entire line if the job is removed, or if the job is still used, remove the " #
удалили" suffix so the value becomes just "Министр Финансов"; ensure no inline
"#" remains in the value and use a full-line FTL comment (starting the line with
#) if you intend to comment out the entry.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/machinist.yml`:
- Around line 42-48: В файле удалён компонент ChatRankComponent, из‑за чего
ChatRankSystem не сможет добавить префикс звания к радио‑сообщениям;
восстановите или добавьте обратно ChatRankComponent в объявление роли (рядом с
LanguageAdder) чтобы ChatRankSystem мог его найти и использовать — проверьте
название компонента ChatRankComponent и поведение системы ChatRankSystem,
ориентируясь на аналогичную конфигурацию в watchmaster.yml, и убедитесь, что
сущность содержит нужный компонент для корректной генерации префикса.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/marshal.yml`:
- Around line 6-15: В секции ranks у рангов RatRankCMMMarshalHigh и
RatRankCMMMarshalLead указан неверный трекер JobDeputyMarshalCMM: замените его
на корректный трекер JobMarshalCMM (чтобы соответствовать playTimeTracker =
JobMarshalCMM) — проверьте записи для RatRankCMMMarshalHigh и
RatRankCMMMarshalLead и обновите поле tracker с JobDeputyMarshalCMM на
JobMarshalCMM для согласованности с остальными TSP работами.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/minuteman.yml`:
- Around line 44-50: The replacement of the ChatRank component with
LanguageAdder breaks radio-chat rank display; restore ChatRank instead of
removing it and add LanguageAdder as an additional component so both exist.
Locate the entry where LanguageAdder replaces ChatRank (look for the
LanguageAdder block and the missing ChatRank symbol) and reintroduce the
ChatRank component (preserving its original keys/values) alongside
LanguageAdder, or merge LanguageAdder into the same role list without deleting
ChatRank to ensure functions referencing ChatRank continue to work.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/ordnanceman.yml`:
- Around line 6-20: The YAML has a syntax error: the standalone "min: 144000"
under the ranks mapping is missing its rank identifier. Edit the ranks block so
that every "min:" is nested under a rank key (e.g., add the missing rank ID for
the 144000 (40h) threshold or move that "min: 144000" under an existing rank
key); ensure the structure matches the other entries such as
RatRankCMMMinutemanThird, RatRankCMMMinutemanSrLead, RatRankCMMMinutemanLead and
RatRankCMMMinutemanSenior so the parser can load the ordnanceman prototype
correctly.
---
Outside diff comments:
In `@Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml`:
- Line 134: В файле YAML исправьте опечатку в значении ключа suffix: вместо
текущего "DoNotMapstamp-syndicate" замените на корректное значение "DoNotMap"
(обратите внимание на ключ suffix и значение DoNotMapstamp-syndicate в записи
сущности штампа), чтобы соответствовать ожидаемому семантическому
идентификатору.
---
Duplicate comments:
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/combatphysician.yml`:
- Around line 42-48: The YAML removed a ChatRank component that other roles rely
on for displaying ranks in radio; inspect the Role/Job definition around the
LanguageAdder block and either reintroduce the ChatRank component (add a
ChatRank entry with the same structure used in other role files) so radio rank
display works, or if rank display was intentionally removed, update all
consumers and tests to stop expecting ChatRank and add a clear comment in this
role to document the intended removal; search for the ChatRank symbol and mirror
the implementation from a working role to restore behavior or add verification
that no ChatRank references remain.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/marshal.yml`:
- Around line 36-42: The radio no longer shows ranks because ChatRank was
removed; restore rank visibility by reintroducing ChatRank into the language
mappings used by the radio: update the LanguageAdder configuration (the
addSpoken and addUnderstood lists in the LanguageAdder block) to include
"ChatRank" (or re-add the ChatRank mapping logic) so the radio display can
recognize and render ranks again; modify the LanguageAdder entries shown
(addSpoken, addUnderstood) to include "ChatRank" or restore the ChatRank
handling function if it was extracted.
---
Nitpick comments:
In `@Resources/Locale/ru-RU/_Rat/stamp.ftl`:
- Around line 34-36: Ключи локализации используют неверный префикс "tsfc" —
нужно переименовать их в префикс "cmm" чтобы совпадать с сущностями
RatRubberStampCMMMarshal и RatRubberStampCMM; конкретно заменить
rat-stamp-name-tsfc-colonial-marshal → rat-stamp-name-cmm-colonial-marshal и
rat-stamp-name-tsfc-minutemen-command → rat-stamp-name-cmm-minutemen-command в
этом файле, а затем обновить соответствующие ссылки в stamps.yml (поля
stampedName) на новые ключи.
In `@Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml`:
- Around line 200-226: В файле stamps.yml два новых CMM-штампа (entities с name
"colonial marshal rubber stamp" id RatRubberStampCMMMarshal и "minuteman command
rubber stamp" id RatRubberStampCMM) используют несоответствующий формат суффикса
`suffix: DO NOT MAP`; замените эти значения на согласованный формат `suffix:
DoNotMap` в обоих блоках, сохраните остальные поля (components, Stamp/Sprite)
без изменений.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: aa04bb41-532d-4673-8840-5e24c42987fc
📒 Files selected for processing (16)
Resources/Locale/ru-RU/_Crescent/job/job-description.ftlResources/Locale/ru-RU/_Crescent/job/job-names.ftlResources/Locale/ru-RU/_Rat/stamp.ftlResources/Locale/ru-RU/ss14-ru/prototypes/_rat/objects/misc/stamps.ftlResources/Prototypes/_Crescent/Roles/Jobs/TSP/combatphysician.ymlResources/Prototypes/_Crescent/Roles/Jobs/TSP/deputymarshal.ymlResources/Prototypes/_Crescent/Roles/Jobs/TSP/machinist.ymlResources/Prototypes/_Crescent/Roles/Jobs/TSP/marshal.ymlResources/Prototypes/_Crescent/Roles/Jobs/TSP/minuteman.ymlResources/Prototypes/_Crescent/Roles/Jobs/TSP/ordnanceman.ymlResources/Prototypes/_Crescent/Roles/Jobs/TSP/watchmaster.ymlResources/Prototypes/_Rat/Entities/Objects/Misc/stamps.ymlResources/Prototypes/_Rat/Roles/Ranks/CMM/cmm_ranks.ymlResources/Prototypes/_Rat/Roles/Ranks/NCWL/ncwl_enlisted.ymlResources/Prototypes/_Rat/Roles/Ranks/NCWL/ncwl_kommissariat.ymlResources/Prototypes/_Rat/Roles/Ranks/NCWL/ncwl_officers.yml
| job-name-courtier = Придворный | ||
| job-name-ministerlabor = Министр Промышленности | ||
| job-name-logisticsofficer = Министр Финансов | ||
| job-name-logisticsofficer = Министр Финансов # удалили |
There was a problem hiding this comment.
Комментарий # удалили будет отображаться как часть названия должности.
В формате FTL символ # начинает комментарий только в начале строки. Здесь # удалили является частью значения и будет отображаться игрокам как "Министр Финансов # удалили".
Если должность удалена, следует либо удалить строку, либо закомментировать её полностью. Если должность всё ещё используется, уберите # удалили.
Варианты исправления
Если должность удалена:
-job-name-logisticsofficer = Министр Финансов # удалили
+# job-name-logisticsofficer = Министр ФинансовЕсли должность используется:
-job-name-logisticsofficer = Министр Финансов # удалили
+job-name-logisticsofficer = Министр Финансов📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| job-name-logisticsofficer = Министр Финансов # удалили | |
| # job-name-logisticsofficer = Министр Финансов |
| job-name-logisticsofficer = Министр Финансов # удалили | |
| job-name-logisticsofficer = Министр Финансов |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Locale/ru-RU/_Crescent/job/job-names.ftl` at line 50, The string
for key job-name-logisticsofficer includes a trailing " # удалили" which will be
rendered as part of the job name; either delete the entire line if the job is
removed, or if the job is still used, remove the " # удалили" suffix so the
value becomes just "Министр Финансов"; ensure no inline "#" remains in the value
and use a full-line FTL comment (starting the line with #) if you intend to
comment out the entry.
| - type: LanguageAdder | ||
| addSpoken: | ||
| - American | ||
| - Tradeband | ||
| addUnderstood: | ||
| - American | ||
| - Tradeband |
There was a problem hiding this comment.
Удаление ChatRank приведёт к потере отображения звания в радио.
Та же проблема, что и в watchmaster.yml — ChatRankComponent удалён, что приведёт к тому, что ChatRankSystem не сможет добавить префикс звания в радио-сообщения.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/machinist.yml` around lines 42
- 48, В файле удалён компонент ChatRankComponent, из‑за чего ChatRankSystem не
сможет добавить префикс звания к радио‑сообщениям; восстановите или добавьте
обратно ChatRankComponent в объявление роли (рядом с LanguageAdder) чтобы
ChatRankSystem мог его найти и использовать — проверьте название компонента
ChatRankComponent и поведение системы ChatRankSystem, ориентируясь на
аналогичную конфигурацию в watchmaster.yml, и убедитесь, что сущность содержит
нужный компонент для корректной генерации префикса.
| - type: LanguageAdder | ||
| addSpoken: | ||
| - American | ||
| - Tradeband | ||
| addUnderstood: | ||
| - American | ||
| - Tradeband |
There was a problem hiding this comment.
Удаление ChatRank — аналогичная проблема.
Как и в других файлах, замена ChatRank на LanguageAdder без сохранения первого компонента сломает отображение званий в радио-чате.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/minuteman.yml` around lines 44
- 50, The replacement of the ChatRank component with LanguageAdder breaks
radio-chat rank display; restore ChatRank instead of removing it and add
LanguageAdder as an additional component so both exist. Locate the entry where
LanguageAdder replaces ChatRank (look for the LanguageAdder block and the
missing ChatRank symbol) and reintroduce the ChatRank component (preserving its
original keys/values) alongside LanguageAdder, or merge LanguageAdder into the
same role list without deleting ChatRank to ensure functions referencing
ChatRank continue to work.
| ranks: | ||
| min: 144000 # 40 hours | ||
| RatRankCMMMinutemanThird: | ||
| - !type:CharacterPlaytimeRequirement | ||
| tracker: JobOrdnancemanCMM | ||
| min: 108000 # 30 hours | ||
| RatRankCMMMinutemanSrLead: | ||
| - !type:CharacterPlaytimeRequirement | ||
| tracker: JobOrdnancemanCMM | ||
| min: 72000 # 20 hours | ||
| RatRankCMMMinutemanLead: | ||
| - !type:CharacterPlaytimeRequirement | ||
| tracker: JobOrdnancemanCMM | ||
| min: 36000 # 10 hours | ||
| RatRankCMMMinutemanSenior: [] |
There was a problem hiding this comment.
Критическая ошибка синтаксиса YAML — min: без идентификатора ранга.
Строка 7 содержит min: 144000 без указания идентификатора ранга. Это приведёт к ошибке парсинга YAML и невозможности загрузить прототип должности.
Сравнивая с deputymarshal.yml, правильный формат: сначала ID ранга, затем требования.
Предлагаемое исправление
ranks:
- min: 144000 # 40 hours
- RatRankCMMMinutemanThird:
+ RatRankCMMMinutemanThird:
- !type:CharacterPlaytimeRequirement
tracker: JobOrdnancemanCMM
- min: 108000 # 30 hours
+ min: 144000 # 40 hours
RatRankCMMMinutemanSrLead:
- !type:CharacterPlaytimeRequirement
tracker: JobOrdnancemanCMM
- min: 72000 # 20 hours
+ min: 108000 # 30 hours
RatRankCMMMinutemanLead:
- !type:CharacterPlaytimeRequirement
tracker: JobOrdnancemanCMM
- min: 36000 # 10 hours
+ min: 72000 # 20 hours
+ RatRankCMMMinutemanMiddle:
+ - !type:CharacterPlaytimeRequirement
+ tracker: JobOrdnancemanCMM
+ min: 36000 # 10 hours
RatRankCMMMinutemanSenior: []Примечание: Также необходимо добавить недостающий ранг для 40 часов или скорректировать пороговые значения согласно задуманной логике прогрессии.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ranks: | |
| min: 144000 # 40 hours | |
| RatRankCMMMinutemanThird: | |
| - !type:CharacterPlaytimeRequirement | |
| tracker: JobOrdnancemanCMM | |
| min: 108000 # 30 hours | |
| RatRankCMMMinutemanSrLead: | |
| - !type:CharacterPlaytimeRequirement | |
| tracker: JobOrdnancemanCMM | |
| min: 72000 # 20 hours | |
| RatRankCMMMinutemanLead: | |
| - !type:CharacterPlaytimeRequirement | |
| tracker: JobOrdnancemanCMM | |
| min: 36000 # 10 hours | |
| RatRankCMMMinutemanSenior: [] | |
| ranks: | |
| RatRankCMMMinutemanThird: | |
| - !type:CharacterPlaytimeRequirement | |
| tracker: JobOrdnancemanCMM | |
| min: 144000 # 40 hours | |
| RatRankCMMMinutemanSrLead: | |
| - !type:CharacterPlaytimeRequirement | |
| tracker: JobOrdnancemanCMM | |
| min: 108000 # 30 hours | |
| RatRankCMMMinutemanLead: | |
| - !type:CharacterPlaytimeRequirement | |
| tracker: JobOrdnancemanCMM | |
| min: 72000 # 20 hours | |
| RatRankCMMMinutemanMiddle: | |
| - !type:CharacterPlaytimeRequirement | |
| tracker: JobOrdnancemanCMM | |
| min: 36000 # 10 hours | |
| RatRankCMMMinutemanSenior: [] |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Crescent/Roles/Jobs/TSP/ordnanceman.yml` around lines 6
- 20, The YAML has a syntax error: the standalone "min: 144000" under the ranks
mapping is missing its rank identifier. Edit the ranks block so that every
"min:" is nested under a rank key (e.g., add the missing rank ID for the 144000
(40h) threshold or move that "min: 144000" under an existing rank key); ensure
the structure matches the other entries such as RatRankCMMMinutemanThird,
RatRankCMMMinutemanSrLead, RatRankCMMMinutemanLead and RatRankCMMMinutemanSenior
so the parser can load the ordnanceman prototype correctly.
|
Исправил сука |
Описание
Описание изменений.
TODO
Медиа
Чеклист перед мерджем
Breaking changes
Changelog
Спасибо за вклад в Ratgore! 🐀
Summary by CodeRabbit
Заметки выпуска
New Features
Localization