Skip to content

Обновление минитменов + их звания#83

Open
EmperorStukov wants to merge 3 commits intoss14-art:masterfrom
EmperorStukov:ranking-rework
Open

Обновление минитменов + их звания#83
EmperorStukov wants to merge 3 commits intoss14-art:masterfrom
EmperorStukov:ranking-rework

Conversation

@EmperorStukov
Copy link
Contributor

@EmperorStukov EmperorStukov commented Mar 27, 2026

Описание

Описание изменений.


TODO

  • Задача
  • Завершенная задача

Медиа

Пример медиа


Чеклист перед мерджем

  • Описание изменений понятно и информативно
  • Все TODO выполнены или задокументированы для будущего
  • Добавлены скриншоты/видео (если применимо)
  • Код протестирован

Breaking changes

Changelog


Спасибо за вклад в Ratgore! 🐀

Summary by CodeRabbit

Заметки выпуска

  • New Features

    • Введена система ранговой прогрессии для ряда должностей CMM с уровнями и требованиями по игровому времени
    • Добавлены новые резиновые печати; одна печать добавлена в стартовый инвентарь маршала
  • Localization

    • Обновлены русские названия и описания должностей (терминология приведена в единый вид)
    • Добавлены новые локализованные строки для знаков и печатей
    • Отрегулирован регистр/аббревиатуры в префиксах рангов NCWL и DSM

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8ddb1da9-1503-4de0-bcbd-209db2094aec

📥 Commits

Reviewing files that changed from the base of the PR and between 84a8098 and 24a99e5.

📒 Files selected for processing (2)
  • Resources/Prototypes/_Crescent/Roles/Jobs/DSM/governor.yml
  • Resources/Prototypes/_Rat/Roles/Ranks/DSM/dsm_nobles.yml

📝 Walkthrough

Walkthrough

Добавлены и зарегистрированы ранги CMM, в нескольких job‑прототипах добавлены секции ranks и заменён ChatRank→LanguageAdder, добавлены два резиновых штампа (прототипы + локализация), а также правки русских строк локализации и мелкие правки капитализации в рангах NCWL.

Changes

Cohort / File(s) Summary
Русская локализация — имена и описания должностей
Resources/Locale/ru-RU/_Crescent/job/job-names.ftl, Resources/Locale/ru-RU/_Crescent/job/job-description.ftl
Обновлены строки локализации: изменение значений ключей названий (job-name-ncwl-worker-overboss, job-name-logisticsofficer) и корректировки в описаниях должностей (замена упоминаний «Minutemen/CMM» на «минитменов», добавлен фрагмент в ordnanceman).
Локализация штампов
Resources/Locale/ru-RU/_Rat/stamp.ftl, Resources/Locale/ru-RU/ss14-ru/prototypes/_rat/objects/misc/stamps.ftl
Добавлены два ключа локализации для штампов и описания для новых резиновых штампов (rat-stamp-name-tsfc-colonial-marshal, rat-stamp-name-tsfc-minutemen-command, ent-RatRubberStampCMMMarshal, ent-RatRubberStampCMM и их .desc).
Прототипы должностей CMM — ранги и языки
Resources/Prototypes/_Crescent/Roles/Jobs/TSP/...
combatphysician.yml, deputymarshal.yml, machinist.yml, marshal.yml, minuteman.yml, ordnanceman.yml, watchmaster.yml, ...
Во множестве job‑файлов добавлены секции ranks с playtime‑требованиями; везде заменён ChatRank на LanguageAdder (adds: American, Tradeband). В marshal.yml также добавлен штамп в стартовый инвентарь.
Набор рангов CMM
Resources/Prototypes/_Rat/Roles/Ranks/CMM/cmm_ranks.yml
Добавлен новый файл с 15 определениями рангов CMM (id, name, prefix, paygrade).
Объекты — резиновые штампы
Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml
Добавлены два новых entity: RatRubberStampCMMMarshal и RatRubberStampCMM с компонентами Stamp и Sprite, заданными stampedName, stampedColor и stampState.
Исправления капитализации в рангах NCWL
Resources/Prototypes/_Rat/Roles/Ranks/NCWL/ncwl_enlisted.yml, .../ncwl_kommissariat.yml, .../ncwl_officers.yml
Снижена капитализация в префиксах нескольких рангов (аббревиатуры приведены к строчному виду).
DSM — правки рангов/ключей
Resources/Prototypes/_Crescent/Roles/Jobs/DSM/governor.yml, Resources/Prototypes/_Rat/Roles/Ranks/DSM/dsm_nobles.yml
Удалены/переименованы некоторые записи рангов в Governor; в dsm_nobles.yml изменён id/имя одного ранга и скорректированы префиксы у другого.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 Штампы блеснули, ранги в ряд встали,
Языки добавил — два голоса в дали,
Минитменам честь, и клеймо на листе,
Морковный салют я шлю на ходу,
Пушистый марш — и вперёд, в ремесле!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок PR точно отражает основные изменения: обновление системы звания для миниутменов и локализацию их описаний.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-marshal
  • stampedName: 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-cmostamps.rsi) и paper_stamp-cmobureaucracy.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

📥 Commits

Reviewing files that changed from the base of the PR and between f09a2cf and d7289f6.

📒 Files selected for processing (16)
  • Resources/Locale/ru-RU/_Crescent/job/job-description.ftl
  • Resources/Locale/ru-RU/_Crescent/job/job-names.ftl
  • Resources/Locale/ru-RU/_Rat/stamp.ftl
  • Resources/Locale/ru-RU/ss14-ru/prototypes/_rat/objects/misc/stamps.ftl
  • Resources/Prototypes/_Crescent/Roles/Jobs/TSP/combatphysician.yml
  • Resources/Prototypes/_Crescent/Roles/Jobs/TSP/deputymarshal.yml
  • Resources/Prototypes/_Crescent/Roles/Jobs/TSP/machinist.yml
  • Resources/Prototypes/_Crescent/Roles/Jobs/TSP/marshal.yml
  • Resources/Prototypes/_Crescent/Roles/Jobs/TSP/minuteman.yml
  • Resources/Prototypes/_Crescent/Roles/Jobs/TSP/ordnanceman.yml
  • Resources/Prototypes/_Crescent/Roles/Jobs/TSP/watchmaster.yml
  • Resources/Prototypes/_Rat/Entities/Objects/Misc/stamps.yml
  • Resources/Prototypes/_Rat/Roles/Ranks/CMM/cmm_ranks.yml
  • Resources/Prototypes/_Rat/Roles/Ranks/NCWL/ncwl_enlisted.yml
  • Resources/Prototypes/_Rat/Roles/Ranks/NCWL/ncwl_kommissariat.yml
  • Resources/Prototypes/_Rat/Roles/Ranks/NCWL/ncwl_officers.yml

job-name-courtier = Придворный
job-name-ministerlabor = Министр Промышленности
job-name-logisticsofficer = Министр Финансов
job-name-logisticsofficer = Министр Финансов # удалили
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Комментарий # удалили будет отображаться как часть названия должности.

В формате 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.

Suggested change
job-name-logisticsofficer = Министр Финансов # удалили
# job-name-logisticsofficer = Министр Финансов
Suggested change
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.

Comment on lines +42 to +48
- type: LanguageAdder
addSpoken:
- American
- Tradeband
addUnderstood:
- American
- Tradeband
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Удаление ChatRank приведёт к потере отображения звания в радио.

Та же проблема, что и в watchmaster.ymlChatRankComponent удалён, что приведёт к тому, что 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, и убедитесь, что сущность содержит
нужный компонент для корректной генерации префикса.

Comment on lines +44 to +50
- type: LanguageAdder
addSpoken:
- American
- Tradeband
addUnderstood:
- American
- Tradeband
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Удаление 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.

Comment on lines +6 to +20
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: []
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Критическая ошибка синтаксиса 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.

Suggested change
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.

@EmperorStukov
Copy link
Contributor Author

Исправил сука

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant