Переработка шестой улицы (СРМ) в новую фракцию - #155
Conversation
|
RSI Diff Bot; head commit 2e2ce50 merging into 519945b Resources/Textures/Objects/Materials/ore.rsi/ore.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandateberet.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandatecommand.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandatecommanderhelmet.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandatecoronet.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandatehelmet.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandatejuggernauthelmet.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandateknight.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/mandatesoldier.rsi
Resources/Textures/_Crescent/Clothing/SRM/Head/ritterhelmet.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmor.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecommand.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecoronet.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatejuggernaut.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateknight.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatesoldier.rsi
Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateworker.rsi
Resources/Textures/_Crescent/Clothing/SRM/Uniform/ordercombat.rsi
Resources/Textures/_Crescent/Clothing/SRM/Uniform/ordermedic.rsi
Resources/Textures/_Crescent/Clothing/SRM/Uniform/orderofficer.rsi
|
📝 WalkthroughПошаговое описаниеДобавлены новые прототипы одежды и брони для ордена КНС с полным набором локализаций на русском языке. Включены определения сущностей для харддостов, нагрудников, шлемов и комбинезонов, а также метаданные текстур для соответствующих спрайтов. Изменения
Оценка сложности рецензирования🎯 3 (Умеренная) | ⏱️ ~25 минут Возможно связанные PR
Рекомендуемые рецензенты
Стихотворение
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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: 17
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/Clothing/KNC/Neck/misc.yml (1)
1-86:⚠️ Potential issue | 🔴 CriticalКритические дубликаты ID прототипов.
Все семь ID (
ClothingNeckImperialBow,ClothingNeckImperialBowJeweled,ClothingNeckCloakImperialGovernor,ClothingNeckCloakInspector,ClothingNeckCloakImperialAdjutant,ClothingNeckCloakImperialCapelet,ClothingNeckImperialGreatcoat) уже определены вResources/Prototypes/_Crescent/Entities/Clothing/Empire/Neck/misc.yml. Дублирующиеся ID приведут к ошибке загрузки прототипов. Кроме того, некоторые из этих ID ссылаются в файлах рецептов и загрузок (imperialcrafts.yml,neck.yml), что усугубляет конфликт.Решение: либо удалить этот файл (если нужно переиспользовать существующие сущности из _Crescent), либо переименовать все ID на уникальные для KNC версии (например, добавить префикс
ClothingNeckKNC...).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Neck/misc.yml` around lines 1 - 86, This file duplicates existing prototype IDs causing load errors; either remove this file to use the originals from _Crescent or rename all entity IDs to unique KNC variants (e.g., change ClothingNeckImperialBow, ClothingNeckImperialBowJeweled, ClothingNeckCloakImperialGovernor, ClothingNeckCloakInspector, ClothingNeckCloakImperialAdjutant, ClothingNeckCloakImperialCapelet, ClothingNeckImperialGreatcoat → ClothingNeckKNCImperialBow, ClothingNeckKNCImperialBowJeweled, ClothingNeckKNCCloakImperialGovernor, etc.), and update any references in recipe/load files such as imperialcrafts.yml and neck.yml to the new IDs so all links are consistent.
🧹 Nitpick comments (10)
Resources/Textures/_Rat/Interface/Misc/job_icons.rsi/meta.json (1)
16-30: Несогласованность форматирования: использование табуляции вместо пробелов.Новые записи состояний KNC (строки 16-29) используют табуляцию для отступов, в то время как остальной файл использует пробелы. Это нарушает единообразие форматирования.
♻️ Предлагаемое исправление форматирования
"name": "Pretorian" - }, - { - "name": "KNC_Lorde" - }, - { - "name": "KNC_Banneret" - }, - { - "name": "KNC_Knight" - }, - { - "name": "KNC_Squire" - }, - { - "name": "KNC_Levy" + }, + { + "name": "KNC_Lorde" + }, + { + "name": "KNC_Banneret" + }, + { + "name": "KNC_Knight" + }, + { + "name": "KNC_Squire" + }, + { + "name": "KNC_Levy" }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Textures/_Rat/Interface/Misc/job_icons.rsi/meta.json` around lines 16 - 30, The new JSON entries for KNC ("KNC_Lorde", "KNC_Banneret", "KNC_Knight", "KNC_Squire", "KNC_Levy") use tabs for indentation while the rest of the file uses spaces; replace the tab characters with the same number of spaces used elsewhere in the file to match existing formatting (ensure the "name" lines align with other entries and preserve the surrounding commas/braces exactly).Resources/Prototypes/_Crescent/Roles/factions.yml (3)
208-229: Новая фракция KNC — оформление корректное.Структура прототипа
KNCсогласована с остальными фракциями в файле (descriptionPrefix,buttonColor,description,color,weight,enabled,icon). Weight 5 разумно вписывается в ранжирование относительно TFSC (6) и TAP (4). Описание иdescriptionPrefixсоответствуют заявленному вайтлист-режиму. Небольшая придирка по тексту: вdescriptionPrefixу других фракций форматМИНИМАЛЬНОЕ ВРЕМЯ ИГРЫ: ..., а здесьМИНИМАЛЬНОЕ ВРЕМЯ: ...— можно унифицировать для консистентности UI.Предложение по унификации строки префикса
- МИНИМАЛЬНОЕ ВРЕМЯ: Только по вайтлисту + МИНИМАЛЬНОЕ ВРЕМЯ ИГРЫ: Только по вайтлисту🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Crescent/Roles/factions.yml` around lines 208 - 229, Unify the descriptionPrefix format for faction KNC by changing its descriptionPrefix value from "МИНИМАЛЬНОЕ ВРЕМЯ: Только по вайтлисту" to the same pattern used elsewhere ("МИНИМАЛЬНОЕ ВРЕМЯ ИГРЫ: Только по вайтлисту"); locate the KNC faction entry (type: faction, id: KNC) and update the descriptionPrefix field to the standardized string so the UI displays consistently with other factions.
230-232: Иконка KNC временно переиспользует спрайт SRM — не забыть заменить.icon: sprite: /Textures/_Crescent/faction_icons.rsi state: srmKNC использует тот же
state: srm, что и отключённая теперь фракция SRM. Это согласуется с пунктом TODO «Иконки» в описании PR (ещё не выполнено), то есть сейчас это осознанный placeholder. Две небольшие рекомендации:
- Перед мерджем добавить выделенный стейт (например,
knc) вResources/Textures/_Crescent/faction_icons.rsiи переключитьstateна него, либо явно оставить TODO-комментарий рядом с блокомicon, чтобы placeholder не потерялся.- Учитывая, что SRM выключен (
enabled: false), а KNC позиционируется как его идейный преемник в рамках этого реворка, общий спрайт визуально не собьёт игроков — но в миксовом раунде/UI два разных ID, указывающих на один и тот же state, могут путать при отладке/логах.Если хочется, могу набросать заготовку отдельной иконки (именования/структуру stateʼа в
faction_icons.rsi/meta.json) — дайте знать.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Crescent/Roles/factions.yml` around lines 230 - 232, В блоке icon для фракции KNC указан placeholder state: srm, который дублирует отключённую SRM; замените его на выделенный стейт (например, knc) в файле Resources/Textures/_Crescent/faction_icons.rsi (добавьте соответствующий стейт в его meta/rsn), и переключите state в Resources/Prototypes/_Crescent/Roles/factions.yml с srm на knc; если нельзя сейчас добавить файл-стейт — оставьте чёткий TODO-комментарий рядом с блоком icon (указав sprite: /Textures/_Crescent/faction_icons.rsi и state: srm) чтобы не потерять placeholder перед мерджем.
207-207: Маркер## RATGORE— OK, но желательно единообразие.Комментарий-секция
## RATGOREудобен, но в репозитории встречаются и другие стили маркеров (# RATGORE, и т.п. в соседних файлах). Если в проекте принята конкретная конвенция для разделителей контента, стоит придерживаться её. Не блокирующе.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Crescent/Roles/factions.yml` at line 207, The header marker "## RATGORE" is inconsistent with other files; determine the repository's chosen section delimiter (e.g. "# RATGORE" vs "## RATGORE") by checking existing files and replace the "## RATGORE" marker with the project's standard marker so this file uses the same header style as other faction sections.Resources/Prototypes/_Rat/Entities/Clothing/KNC/Neck/misc.yml (1)
28-35: Непоследовательный отступ внутриcomponents:.В прототипах Bow/BowJeweled/Greatcoat используется 2-пробельный отступ (
- type: Sprite), а в Governor/Inspector/Adjutant/Capelet — 3-пробельный (- type: Sprite). YAML это переварит, но для единообразия стиля стоит привести к одному формату.Also applies to: 42-46, 53-57, 64-71
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Neck/misc.yml` around lines 28 - 35, Внутри блока components есть непоследовательный отступ: строки с "- type: Sprite" / "- type: Clothing" и т.д. используют разное количество пробелов; приведи все элементы списка в этом файле к единому 2-пробельному отступу (или к формату, принятому в репозитории) — исправь отступы перед "- type: Sprite", "- type: Clothing" и "- type: ReverseEngineering" и сохраняй одинаковый отступ для элементов recipes (например для ClothingNeckCloakImperialGovernor), аналогично поправь также упомянутые диапазоны (42-46, 53-57, 64-71).Resources/Prototypes/_Rat/Roles/Ranks/KNC/knc_ranks.yml (1)
8-92: Несогласованный форматpaygrade.Для Lorde/Banneret используется формат с дефисом и буквенным префиксом (
KNC-L2,KNC-B3…), а для Knight/Squire/Levy — без дефиса и без буквы (KNC9…KNC1). Это затруднит парсинг/сортировку и выглядит как копипаста из разных источников. Рекомендуется привести к единой схеме (например,KNC-K3/KNC-S2/KNC-V1) либо полностью к числовой.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Roles/Ranks/KNC/knc_ranks.yml` around lines 8 - 92, Paygrade values are inconsistent (some like KNC-L2/KNC-B3 use a hyphen+letter, others like KNC9..KNC1 use no hyphen/letter); update all paygrade fields to a single consistent schema (e.g., hyphenated with role letter: KNC-L2 for RatRankKNCLordeStandart, KNC-B3/KNC-B2/KNC-B1 for RatRankKNCBanneretSenior/Middle/Junior, and convert the knights/squires/levy entries RatRankKNCKnightSenior/Middle/Junior, RatRankKNCSquireSenior/Middle/Junior, RatRankKNCLevySenior/Middle/Junior to the same pattern — e.g., KNC-K9/KNC-K8/KNC-K7 for knights, KNC-S6/KNC-S5/KNC-S4 for squires, KNC-V3/KNC-V2/KNC-V1 for levy — or choose another consistent numeric-only scheme and apply it to every paygrade field so parsing/sorting will be uniform.Resources/Prototypes/_Rat/Entities/Clothing/KNC/OuterClothing/outerclothing.yml (2)
177-219: Juggernaut безReverseEngineering— осознанно?Другие боевые хардсьюты (
ImperialSoldier,ImperialKnight) имеют блокReverseEngineeringс рецептами иdifficulty. УClothingOuterHardsuitImperialJuggernautтакого блока нет. Если это сознательно (эндгейм-шмотка, не подлежащая реверс-инжинирингу) — можно оставить, но стоит зафиксировать это решение комментарием в YAML, чтобы в будущем не приняли за упущение.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/OuterClothing/outerclothing.yml` around lines 177 - 219, ClothingOuterHardsuitImperialJuggernaut is missing a ReverseEngineering block unlike other hardsuits (e.g., ImperialSoldier, ImperialKnight); either add a ReverseEngineering component with the appropriate recipes and difficulty matching project conventions or, if intentional (not reversable endgame item), add an inline YAML comment under the entity explaining the deliberate omission to prevent future confusion. Reference the entity id ClothingOuterHardsuitImperialJuggernaut and the ReverseEngineering block when making the change.
43-77: LGTM наClothingOuterHardsuitKNCLorde— единственная KNC-специфичная запись в файле, параметры и parent согласуются сClothingOuterHardsuitImperialCommand.Мелочь: стоит обдумать целесообразность размещения Imperial/Clarizian-хардсьютов в каталоге
/KNC/OuterClothing/, раз KNC-специфичный здесь только Lorde; остальное по смыслу — DSM/Crescent-контент. Не блокер.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/OuterClothing/outerclothing.yml` around lines 43 - 77, This is a non-blocking housekeeping suggestion: consider moving the non-KNC-specific Imperial/Clarizian hardsuit assets out of the /KNC/OuterClothing/ directory so only the KNC-specific item (id: ClothingOuterHardsuitKNCLorde) remains there; if you move files, update the sprite reference (_Crescent/Clothing/Empire/OuterClothing/mandatecommand.rsi), the parent (ClothingOuterHardsuitImperialCommand) and the clothingPrototype (ClothingHeadHelmetHardsuitImperialCommand) to their new paths or adjust names accordingly to keep references valid.Resources/Prototypes/_Rat/Entities/Clothing/KNC/Head/helmets.yml (2)
615-624:ClothingHeadHatDSMCapsoftлежит в каталогеKNC/Head/.Идентификатор и спрайт (
dsm_cap.rsi) принадлежат DSM, а файл находится в KNC-каталоге. Либо перенесите прототип в DSM-файл, либо переименуйте, если это KNC-кап в DSM-цветах. Сейчас структура каталогов вводит в заблуждение при поиске по фракции.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Head/helmets.yml` around lines 615 - 624, Prototype ClothingHeadHatDSMCapsoft references DSM assets (sprite dsm_cap.rsi) but is located under KNC/Head, causing faction confusion; fix by either moving this prototype into the DSM faction file (so ClothingHeadHatDSMCapsoft and sprite _Crescent/Clothing/Empire/Head/dsm_cap.rsi live with other DSM prototypes) or rename the prototype and replace the sprite with the correct KNC asset (or update sprite path) so the identifier ClothingHeadHatDSMCapsoft no longer misrepresents faction ownership; ensure the component entries (type: Sprite and type: Clothing) reference the corrected identifier/sprite.
67-67: Выравнять именованиеClarize/Clarizianдля улучшения читаемости кода.В файле встречаются смешанные варианты:
ClothingHeadHelmetHardsuitClarizeWorker,ClothingHeadHelmetHardsuitClarizeиClothingHeadHelmetClarizianTrooperHelmet. Поиск по этим ID требует использования альтернативных регулярных выражений. Хотя различие кажется семантическим (рабочее снаряжение vs военное), оно не задокументировано явно. При следующем рефакторинге стоит рассмотреть либо унификацию, либо явное документирование этого соглашения об именовании.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Head/helmets.yml` at line 67, В файле встречается смешанное именование сущностей (ClothingHeadHelmetHardsuitClarizeWorker, ClothingHeadHelmetHardsuitClarize, ClothingHeadHelmetClarizianTrooperHelmet); приведите его к единому виду: выберите одно написание (Clarize или Clarizian), переименуйте все соответствующие id в этом файле и все внутренние/внешние ссылки на эти id (поиск/замена по проекту) и обновите любые связанные документирующие файлы или конвенции; в качестве альтернативы, если различие семантическое, добавьте явную запись в документацию/комментарий в YAML, объясняющую правило, и согласуйте имена внутри одной семантической группы (обновить ClothingHeadHelmetHardsuitClarizeWorker, ClothingHeadHelmetHardsuitClarize, ClothingHeadHelmetClarizianTrooperHelmet соответственно).
🤖 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/Prototypes/_Rat/Entities/Clothing/KNC/Uniform/jumpsuits.yml`:
- Line 22: Fix two English article typos in the jumpsuits.yml descriptions:
change the description value "An knight's silken suit." to "A knight's silken
suit." and change "A apothecary's jumpsuit with Order livery." to "An
apothecary's jumpsuit with Order livery." — locate and update the relevant
description fields in the Uniform/jumpsuits entries.
- Around line 11-12: В компоненте ClothingAddFaction у трёх KNC-предметов одежды
замените значение faction: SRM на faction: KNC — поискать все вхождения
компонента ClothingAddFaction в файле jumpsuits.yml для предметов KNC (три
места, соответствующие KNC по директории/ID/описанию) и заменить строку faction:
SRM на faction: KNC, чтобы ссылка указывала на включённую фракцию KNC.
In `@Resources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_banneret.yml`:
- Around line 67-77: В файле с прототипом стартового снаряжения замените
унаследованные от старой СРМ плейсхолдеры либо на КНЦ-аналоги, либо
задокументируйте их как намеренные плейсхолдеры: найдите поля id: MontagnePDA,
ClothingUniformJumpsuitHunter, ClothingHeadHelmetHunterBasic,
ClothingOuterArmorHunterDusterMontagne, ClothingBackpackSRM и любые access-теги
Hunter / HunterSenior и либо подмените их на соответствующие КНЦ-прототипы, либо
добавьте явную TODO/запись в changelog рядом с этими полями, указывающую что они
временные и будут заменены после создания «Прототипов доспехов/оружия/догтагов».
In `@Resources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_levy.yml`:
- Around line 7-14: В файле с требованиями рангов замените неверный tracker
JobTenderSRM на правильный JobLevyKNC для записей RatRankKNCLevySenior и
RatRankKNCLevyMiddle: откройте блокы с !type:CharacterPlaytimeRequirement для
RatRankKNCLevySenior и RatRankKNCLevyMiddle и поменяйте значение tracker с
JobTenderSRM на JobLevyKNC, чтобы соответствовать playTimeTracker, объявленному
в задании и в play_time_trackers.yml.
In `@Resources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_lorde.yml`:
- Line 11: Rename the misspelled rank identifier RatRankKNCLordeStandart to
RatRankKNCLordeStandard across the codebase; update every occurrence (including
the counterpart in knc_ranks.yml) so the identifier is consistent, and run a
quick search to ensure no remaining references to "Standart" remain to avoid
breaking references.
In `@Resources/Prototypes/_Rat/Roles/Ranks/KNC/knc_ranks.yml`:
- Around line 18-22: The rank definition RatRankKNCBanneretSenior uses name:
"Рыцарь-коммандор Дома Ромейн" and prefix: "Рыцарь-коммандор", which collides
with the Empire job-name "Рыцарь-коммандор"; to fix this, update the name and/or
prefix in the RatRankKNCBanneretSenior entry to a distinct title (e.g., alter
the base rank word or add a qualifier like "Рыцарь-коммандор (Ромейн)" or choose
an alternative rank term) so it no longer matches job-name-knight, keeping the
id RatRankKNCBanneretSenior unchanged and ensuring any display or prefix
references reflect the new string.
- Around line 59-74: The three rank entries RatRankKNCSquireSenior,
RatRankKNCSquireMiddle, and RatRankKNCSquireJunior use inconsistent prefix terms
("Мл. рыцарь", "Эсквайр", "Сквайр"); pick a consistent prefix scheme and update
the prefix fields for those IDs to match (for example: "Мл. оруженосец" for
RatRankKNCSquireSenior, "Ст. оруженосец" or "Оруженосец-ветеран" for
RatRankKNCSquireMiddle, and "Оруженосец" for RatRankKNCSquireJunior), or
alternatively adjust the name fields to make the existing prefixes
explicit—apply the change to the prefix property of each rank entry so HUD/log
output is uniform.
- Around line 10-14: Rename the rank ID RatRankKNCLordeStandart to
RatRankKNCLordeStandard in the knc_ranks.yml entry (and adjust the
human-readable name if needed), and then update the corresponding rank reference
inside KNC_lorde.yml (the job file that references the lord rank) so it points
to RatRankKNCLordeStandard instead of the misspelled ID to keep references
consistent.
In `@Resources/Textures/_Rat/Clothing/KNC/Head/KNCbanneret.rsi/meta.json`:
- Around line 17-22: Replace the incorrect state names "off-equipped-HELMET" and
"on-equipped-HELMET" in KNCbanneret.rsi/meta.json with the standard
"equipped-HELMET" used by the rendering system (matching the pattern in
KNCcommanderhelmet.rsi/meta.json); if the "off-"/"on-" variants are required for
alternate visuals, instead revert them to "equipped-HELMET" and add separate,
explicitly handled state keys only after implementing the necessary rendering
logic to recognize those variants.
In `@Resources/Textures/_Rat/Clothing/KNC/Head/KNCjuggernauthelmet.rsi/meta.json`:
- Around line 17-22: В meta.json замените некорректные состояния
"off-equipped-HELMET" и "on-equipped-HELMET" на ожидаемое системой состояние
"equipped-HELMET" в объекте, где указаны поля "name" (ищите строки с именами
состояний и ключи "directions"), чтобы рендер использовал единый корректный
идентификатор экипированного шлема.
In `@Resources/Textures/_Rat/Clothing/KNC/Head/KNCknight.rsi/meta.json`:
- Around line 3-4: В поле "license" в meta.json сейчас пусто, нужно заполнить
его корректной лицензией: определите подходящий SPDX-идентификатор или точную
лицензию проекта (например "CC-BY-4.0" или "All Rights Reserved" в зависимости
от политики) и заменить пустую строку в ключе "license" на этот идентификатор;
убедитесь, что значение синтаксически корректно (строка) и согласовано с текстом
в ключе "copyright".
In `@Resources/Textures/_Rat/Clothing/KNC/Head/KNCritterhelmet.rsi/meta.json`:
- Around line 3-4: Поле "license" сейчас пустое — замените пустую строку на
явное значение лицензии, согласованное с лицензией репозитория (например
"CC-BY-SA-4.0" или "All Rights Reserved"), обновив значение свойства "license" в
meta.json и убедившись, что оно соответствует политике проекта; оставьте другие
поля (например "copyright") без изменений.
In `@Resources/Textures/_Rat/Clothing/KNC/Head/KNCsoldier.rsi/meta.json`:
- Around line 17-22: The meta.json contains incorrect state names
"off-equipped-HELMET" and "on-equipped-HELMET" which the clothing system doesn't
recognize; replace those entries so the equipped helmet state uses the single
expected name "equipped-HELMET" (remove or rename both "off-equipped-HELMET" and
"on-equipped-HELMET" to "equipped-HELMET") ensuring the "name" fields match the
system expectation and keep "directions": 4 unchanged.
In
`@Resources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCjuggernaut.rsi/meta.json`:
- Around line 3-4: The metadata declares "license": null while the "copyright"
field contains an "All rights reserved" notice for the Hullrot asset
(KNCjuggernaut.rsi meta.json), which makes the sprite incompatible with SS14
licensing; either obtain written permission from the author to relicense to a
compatible license and update the "license" and "copyright" fields accordingly,
replace the file with a source that has a compatible license (e.g., the original
tgstation/Shiptest equivalent) and update the metadata, or remove/replace the
asset by redrawing it and setting a compatible license; until one of these fixes
is completed, remove the meta.json reference (and any prototypes using this
asset) from the merge to prevent including the incompatible asset.
In `@Resources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCknight.rsi/meta.json`:
- Around line 3-4: The metadata for asset KNCknight.rsi has an empty "license"
field and a restrictive copyright string containing "All rights reserved. Do not
copy, use, modify, or redistribute." which is incompatible with SS14
open-licensing; update the "license" field to a valid SPDX identifier (or remove
the asset from the repo if no relicense permission) and replace the copyright
text with a permissive notice that matches the chosen SPDX license, or obtain
written permission from the Hullrot team to relicense; apply the same fix to the
other affected asset metadata (KNCjuggernaut.rsi) so both use valid SPDX
identifiers and permissive copyright statements.
In `@Resources/Textures/_Rat/Clothing/KNC/Uniform/KNCcombat.rsi/meta.json`:
- Around line 3-4: Поле "license" в meta.json пустое, из-за чего правовой статус
ассета неоднозначен; заполните ключ "license" явным значением, принятом в
репозитории (например стандартным идентификатором лицензии или
"proprietary"/конкретный SPDX-тег), чтобы согласовать его с уже существующей
строкой "copyright" и политиками репо; отредактируйте значение ключа "license" в
том же объекте JSON, не меняя другие поля.
In `@Resources/Textures/_Rat/Clothing/KNC/Uniform/KNCofficer.rsi/meta.json`:
- Around line 3-4: Поле "license" в meta.json пустое, из‑за этого метаданные
неполны; откройте
Resources/Textures/_Rat/Clothing/KNC/Uniform/KNCofficer.rsi/meta.json и
заполните ключ "license" явной лицензией (например SPDX идентификатором вроде
"SPDX: CC-BY-4.0" или текстом "All Rights Reserved"), либо укажите точную строку
правового режима, согласованную с проектом; сохраните JSON как валидную строку.
---
Outside diff comments:
In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Neck/misc.yml`:
- Around line 1-86: This file duplicates existing prototype IDs causing load
errors; either remove this file to use the originals from _Crescent or rename
all entity IDs to unique KNC variants (e.g., change ClothingNeckImperialBow,
ClothingNeckImperialBowJeweled, ClothingNeckCloakImperialGovernor,
ClothingNeckCloakInspector, ClothingNeckCloakImperialAdjutant,
ClothingNeckCloakImperialCapelet, ClothingNeckImperialGreatcoat →
ClothingNeckKNCImperialBow, ClothingNeckKNCImperialBowJeweled,
ClothingNeckKNCCloakImperialGovernor, etc.), and update any references in
recipe/load files such as imperialcrafts.yml and neck.yml to the new IDs so all
links are consistent.
---
Nitpick comments:
In `@Resources/Prototypes/_Crescent/Roles/factions.yml`:
- Around line 208-229: Unify the descriptionPrefix format for faction KNC by
changing its descriptionPrefix value from "МИНИМАЛЬНОЕ ВРЕМЯ: Только по
вайтлисту" to the same pattern used elsewhere ("МИНИМАЛЬНОЕ ВРЕМЯ ИГРЫ: Только
по вайтлисту"); locate the KNC faction entry (type: faction, id: KNC) and update
the descriptionPrefix field to the standardized string so the UI displays
consistently with other factions.
- Around line 230-232: В блоке icon для фракции KNC указан placeholder state:
srm, который дублирует отключённую SRM; замените его на выделенный стейт
(например, knc) в файле Resources/Textures/_Crescent/faction_icons.rsi (добавьте
соответствующий стейт в его meta/rsn), и переключите state в
Resources/Prototypes/_Crescent/Roles/factions.yml с srm на knc; если нельзя
сейчас добавить файл-стейт — оставьте чёткий TODO-комментарий рядом с блоком
icon (указав sprite: /Textures/_Crescent/faction_icons.rsi и state: srm) чтобы
не потерять placeholder перед мерджем.
- Line 207: The header marker "## RATGORE" is inconsistent with other files;
determine the repository's chosen section delimiter (e.g. "# RATGORE" vs "##
RATGORE") by checking existing files and replace the "## RATGORE" marker with
the project's standard marker so this file uses the same header style as other
faction sections.
In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Head/helmets.yml`:
- Around line 615-624: Prototype ClothingHeadHatDSMCapsoft references DSM assets
(sprite dsm_cap.rsi) but is located under KNC/Head, causing faction confusion;
fix by either moving this prototype into the DSM faction file (so
ClothingHeadHatDSMCapsoft and sprite _Crescent/Clothing/Empire/Head/dsm_cap.rsi
live with other DSM prototypes) or rename the prototype and replace the sprite
with the correct KNC asset (or update sprite path) so the identifier
ClothingHeadHatDSMCapsoft no longer misrepresents faction ownership; ensure the
component entries (type: Sprite and type: Clothing) reference the corrected
identifier/sprite.
- Line 67: В файле встречается смешанное именование сущностей
(ClothingHeadHelmetHardsuitClarizeWorker, ClothingHeadHelmetHardsuitClarize,
ClothingHeadHelmetClarizianTrooperHelmet); приведите его к единому виду:
выберите одно написание (Clarize или Clarizian), переименуйте все
соответствующие id в этом файле и все внутренние/внешние ссылки на эти id
(поиск/замена по проекту) и обновите любые связанные документирующие файлы или
конвенции; в качестве альтернативы, если различие семантическое, добавьте явную
запись в документацию/комментарий в YAML, объясняющую правило, и согласуйте
имена внутри одной семантической группы (обновить
ClothingHeadHelmetHardsuitClarizeWorker, ClothingHeadHelmetHardsuitClarize,
ClothingHeadHelmetClarizianTrooperHelmet соответственно).
In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Neck/misc.yml`:
- Around line 28-35: Внутри блока components есть непоследовательный отступ:
строки с "- type: Sprite" / "- type: Clothing" и т.д. используют разное
количество пробелов; приведи все элементы списка в этом файле к единому
2-пробельному отступу (или к формату, принятому в репозитории) — исправь отступы
перед "- type: Sprite", "- type: Clothing" и "- type: ReverseEngineering" и
сохраняй одинаковый отступ для элементов recipes (например для
ClothingNeckCloakImperialGovernor), аналогично поправь также упомянутые
диапазоны (42-46, 53-57, 64-71).
In
`@Resources/Prototypes/_Rat/Entities/Clothing/KNC/OuterClothing/outerclothing.yml`:
- Around line 177-219: ClothingOuterHardsuitImperialJuggernaut is missing a
ReverseEngineering block unlike other hardsuits (e.g., ImperialSoldier,
ImperialKnight); either add a ReverseEngineering component with the appropriate
recipes and difficulty matching project conventions or, if intentional (not
reversable endgame item), add an inline YAML comment under the entity explaining
the deliberate omission to prevent future confusion. Reference the entity id
ClothingOuterHardsuitImperialJuggernaut and the ReverseEngineering block when
making the change.
- Around line 43-77: This is a non-blocking housekeeping suggestion: consider
moving the non-KNC-specific Imperial/Clarizian hardsuit assets out of the
/KNC/OuterClothing/ directory so only the KNC-specific item (id:
ClothingOuterHardsuitKNCLorde) remains there; if you move files, update the
sprite reference (_Crescent/Clothing/Empire/OuterClothing/mandatecommand.rsi),
the parent (ClothingOuterHardsuitImperialCommand) and the clothingPrototype
(ClothingHeadHelmetHardsuitImperialCommand) to their new paths or adjust names
accordingly to keep references valid.
In `@Resources/Prototypes/_Rat/Roles/Ranks/KNC/knc_ranks.yml`:
- Around line 8-92: Paygrade values are inconsistent (some like KNC-L2/KNC-B3
use a hyphen+letter, others like KNC9..KNC1 use no hyphen/letter); update all
paygrade fields to a single consistent schema (e.g., hyphenated with role
letter: KNC-L2 for RatRankKNCLordeStandart, KNC-B3/KNC-B2/KNC-B1 for
RatRankKNCBanneretSenior/Middle/Junior, and convert the knights/squires/levy
entries RatRankKNCKnightSenior/Middle/Junior,
RatRankKNCSquireSenior/Middle/Junior, RatRankKNCLevySenior/Middle/Junior to the
same pattern — e.g., KNC-K9/KNC-K8/KNC-K7 for knights, KNC-S6/KNC-S5/KNC-S4 for
squires, KNC-V3/KNC-V2/KNC-V1 for levy — or choose another consistent
numeric-only scheme and apply it to every paygrade field so parsing/sorting will
be uniform.
In `@Resources/Textures/_Rat/Interface/Misc/job_icons.rsi/meta.json`:
- Around line 16-30: The new JSON entries for KNC ("KNC_Lorde", "KNC_Banneret",
"KNC_Knight", "KNC_Squire", "KNC_Levy") use tabs for indentation while the rest
of the file uses spaces; replace the tab characters with the same number of
spaces used elsewhere in the file to match existing formatting (ensure the
"name" lines align with other entries and preserve the surrounding commas/braces
exactly).
🪄 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: 22ce6b38-5141-4d30-9659-6fc778f8442d
⛔ Files ignored due to path filters (83)
Resources/Textures/_Rat/Clothing/KNC/Head/KNCbanneret.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCbanneret.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCbanneret.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCbanneret.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCberet.rsi/equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCberet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCcommand.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCcommand.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCcommand.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCcommand.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCcommanderhelmet.rsi/equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCcommanderhelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNChelmet.rsi/equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNChelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCjuggernauthelmet.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCjuggernauthelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCjuggernauthelmet.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCjuggernauthelmet.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCknight.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCknight.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCknight.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCknight.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCritterhelmet.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCritterhelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCritterhelmet.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCritterhelmet.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCsoldier.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCsoldier.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCsoldier.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Head/KNCsoldier.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Neck/KNCcapelet.rsi/equipped-NECK.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Neck/KNCcapelet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Neck/KNCcapelet.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Neck/KNCcapelet.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmor.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmor.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmor.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmor.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmorprestige.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmorprestige.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmorprestige.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmorprestige.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCbanneret.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCbanneret.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCbanneret.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCbanneret.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCcommand.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCcommand.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCcommand.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCcommand.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCjuggernaut.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCjuggernaut.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCjuggernaut.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCjuggernaut.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCknight.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCknight.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCknight.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCknight.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCsquire.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCsquire.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCsquire.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCsquire.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCworker.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCworker.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCworker.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCworker.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCcombat.rsi/equipped-INNERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCcombat.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCcombat.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCcombat.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCmedic.rsi/equipped-INNERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCmedic.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCmedic.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCmedic.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCofficer.rsi/equipped-INNERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCofficer.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCofficer.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Rat/Clothing/KNC/Uniform/KNCofficer.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Rat/Interface/Misc/job_icons.rsi/KNC_Banneret.pngis excluded by!**/*.pngResources/Textures/_Rat/Interface/Misc/job_icons.rsi/KNC_Knight.pngis excluded by!**/*.pngResources/Textures/_Rat/Interface/Misc/job_icons.rsi/KNC_Levy.pngis excluded by!**/*.pngResources/Textures/_Rat/Interface/Misc/job_icons.rsi/KNC_Lorde.pngis excluded by!**/*.pngResources/Textures/_Rat/Interface/Misc/job_icons.rsi/KNC_Squire.pngis excluded by!**/*.png
📒 Files selected for processing (40)
Resources/Locale/ru-RU/_Crescent/job/job-description.ftlResources/Locale/ru-RU/_Crescent/job/job-names.ftlResources/Locale/ru-RU/_Crescent/job/job-supervisors.ftlResources/Prototypes/Roles/Jobs/departments.ymlResources/Prototypes/_Crescent/Roles/factions.ymlResources/Prototypes/_Rat/Entities/Clothing/KNC/Head/helmets.ymlResources/Prototypes/_Rat/Entities/Clothing/KNC/Neck/misc.ymlResources/Prototypes/_Rat/Entities/Clothing/KNC/OuterClothing/outerclothing.ymlResources/Prototypes/_Rat/Entities/Clothing/KNC/Uniform/jumpsuits.ymlResources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_banneret.ymlResources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_knight.ymlResources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_levy.ymlResources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_lorde.ymlResources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_squire.ymlResources/Prototypes/_Rat/Roles/Jobs/play_time_trackers.ymlResources/Prototypes/_Rat/Roles/Ranks/KNC/knc_ranks.ymlResources/Prototypes/_Rat/Roles/Ranks/TFSC/tsfc_gorlex.ymlResources/Prototypes/_Rat/StatusEffects/job.ymlResources/Textures/_Rat/Clothing/KNC/Head/KNCbanneret.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNCberet.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNCcommand.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNCcommanderhelmet.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNChelmet.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNCjuggernauthelmet.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNCknight.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNCritterhelmet.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Head/KNCsoldier.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Neck/KNCcapelet.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmor.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCarmorprestige.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCbanneret.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCcommand.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCjuggernaut.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCknight.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCsquire.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCworker.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Uniform/KNCcombat.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Uniform/KNCmedic.rsi/meta.jsonResources/Textures/_Rat/Clothing/KNC/Uniform/KNCofficer.rsi/meta.jsonResources/Textures/_Rat/Interface/Misc/job_icons.rsi/meta.json
💤 Files with no reviewable changes (1)
- Resources/Prototypes/_Rat/Roles/Ranks/TFSC/tsfc_gorlex.yml
| - type: ClothingAddFaction | ||
| faction: SRM |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify whether KNC NpcFactionPrototype exists and inspect SRM status.
rg -nP --type=yaml -C2 '^\s*-\s*type:\s*npcFaction\b' | rg -nC3 -iP '\bid:\s*(KNC|SRM)\b'
echo "---"
rg -nP --type=yaml -C2 '^\s*-\s*type:\s*faction\b' | rg -nC3 -iP '\bid:\s*(KNC|SRM)\b'
echo "--- all usages of faction: SRM/KNC ---"
rg -nP --type=yaml '\bfaction:\s*(SRM|KNC)\b'Repository: ss14-art/ratgore
Length of output: 2285
🏁 Script executed:
cat -n Resources/Prototypes/_Crescent/Roles/factions.yml | sed -n '130,145p'
echo "---"
cat -n Resources/Prototypes/_Crescent/Roles/factions.yml | sed -n '205,220p'Repository: ss14-art/ratgore
Length of output: 1730
🏁 Script executed:
cat -n Resources/Prototypes/_Rat/Entities/Clothing/KNC/Uniform/jumpsuits.yml | head -50Repository: ss14-art/ratgore
Length of output: 2014
🏁 Script executed:
rg -nA15 '^\s*-\s*type:\s*faction\s*$' Resources/Prototypes/_Crescent/Roles/factions.yml | rg -A15 'id:\s*(SRM|KNC)'Repository: ss14-art/ratgore
Length of output: 1867
🏁 Script executed:
sed -n '135,165p' Resources/Prototypes/_Crescent/Roles/factions.yml | cat -nRepository: ss14-art/ratgore
Length of output: 1591
🏁 Script executed:
sed -n '208,235p' Resources/Prototypes/_Crescent/Roles/factions.yml | cat -nRepository: ss14-art/ratgore
Length of output: 1684
Ошибка: KNC одежда ссылается на отключённую фракцию SRM.
Все три предмета одежды KNC (строки 12, 29, 46) имеют faction: SRM в компоненте ClothingAddFaction. Фракция SRM помечена как enabled: false в factions.yml. Поскольку эти предметы относятся к фракции KNC (по директории, ID и описанию), должно быть faction: KNC. KNC фракция корректно определена как enabled: true и используется всеми KNC ролями. Исправьте на faction: KNC во всех трёх местах.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Uniform/jumpsuits.yml` around
lines 11 - 12, В компоненте ClothingAddFaction у трёх KNC-предметов одежды
замените значение faction: SRM на faction: KNC — поискать все вхождения
компонента ClothingAddFaction в файле jumpsuits.yml для предметов KNC (три
места, соответствующие KNC по директории/ID/описанию) и заменить строку faction:
SRM на faction: KNC, чтобы ссылка указывала на включённую фракцию KNC.
| parent: ClothingUniformJumpsuitClarizeOfficer | ||
| id: ClothingUniformJumpsuitKNCNoble | ||
| name: order knight regals | ||
| description: An knight's silken suit. |
There was a problem hiding this comment.
Опечатки в английских описаниях.
- Line 22:
An knight's silken suit.→A knight's silken suit. - Line 39:
A apothecary's jumpsuit with Order livery.→An apothecary's jumpsuit with Order livery.
✏️ Предлагаемое исправление
- description: An knight's silken suit.
+ description: A knight's silken suit.- description: A apothecary's jumpsuit with Order livery.
+ description: An apothecary's jumpsuit with Order livery.Also applies to: 39-39
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Rat/Entities/Clothing/KNC/Uniform/jumpsuits.yml` at
line 22, Fix two English article typos in the jumpsuits.yml descriptions: change
the description value "An knight's silken suit." to "A knight's silken suit."
and change "A apothecary's jumpsuit with Order livery." to "An apothecary's
jumpsuit with Order livery." — locate and update the relevant description fields
in the Uniform/jumpsuits entries.
| equipment: | ||
| id: MontagnePDA | ||
| ears: ClothingHeadsetHunter | ||
| jumpsuit: ClothingUniformJumpsuitHunter | ||
| head: ClothingHeadHelmetHunterBasic | ||
| shoes: ClothingShoesBootsHunter | ||
| outerClothing: ClothingOuterArmorHunterDusterMontagne | ||
| gloves: ClothingHandsGlovesHunter | ||
| pocket2: RomaineBible | ||
| belt: ClothingBeltAssault | ||
| back: ClothingBackpackSRM |
There was a problem hiding this comment.
Стартовое снаряжение и access используют унаследованные СРМ-прототипы.
id: MontagnePDA, ClothingUniformJumpsuitHunter, ClothingHeadHelmetHunterBasic, ClothingOuterArmorHunterDusterMontagne, ClothingBackpackSRM, а также access-теги Hunter/HunterSenior — это наследие старой СРМ. В описании PR прямо указано, что «Прототипы доспехов», «Прототипы оружия», «Догтаги (вендоры, магазин)» ещё не сделаны, так что это ожидаемо как placeholder. Перед мерджем удостоверьтесь, что либо заменили на КНЦ-аналоги, либо явно зафиксировали в TODO/changelog.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_banneret.yml` around lines 67 -
77, В файле с прототипом стартового снаряжения замените унаследованные от старой
СРМ плейсхолдеры либо на КНЦ-аналоги, либо задокументируйте их как намеренные
плейсхолдеры: найдите поля id: MontagnePDA, ClothingUniformJumpsuitHunter,
ClothingHeadHelmetHunterBasic, ClothingOuterArmorHunterDusterMontagne,
ClothingBackpackSRM и любые access-теги Hunter / HunterSenior и либо подмените
их на соответствующие КНЦ-прототипы, либо добавьте явную TODO/запись в changelog
рядом с этими полями, указывающую что они временные и будут заменены после
создания «Прототипов доспехов/оружия/догтагов».
| RatRankKNCLevySenior: | ||
| - !type:CharacterPlaytimeRequirement | ||
| tracker: JobTenderSRM | ||
| min: 72000 # 20 hours | ||
| RatRankKNCLevyMiddle: | ||
| - !type:CharacterPlaytimeRequirement | ||
| tracker: JobTenderSRM | ||
| min: 36000 # 10 hours |
There was a problem hiding this comment.
Неверный tracker в требованиях ранга — используется JobTenderSRM вместо JobLevyKNC.
Это похоже на остаток после копипасты из SRM. Job определяет playTimeTracker: JobLevyKNC (строка 5) и в play_time_trackers.yml зарегистрирован именно JobLevyKNC. Аналогичный KNC_banneret.yml последовательно использует JobBanneretKNC во всех требованиях. С текущим значением отыгранные часы на роли Levy не будут засчитываться для разблокировки старших рангов.
🐛 Предлагаемый фикс
RatRankKNCLevySenior:
- !type:CharacterPlaytimeRequirement
- tracker: JobTenderSRM
+ tracker: JobLevyKNC
min: 72000 # 20 hours
RatRankKNCLevyMiddle:
- !type:CharacterPlaytimeRequirement
- tracker: JobTenderSRM
+ tracker: JobLevyKNC
min: 36000 # 10 hours🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_levy.yml` around lines 7 - 14, В
файле с требованиями рангов замените неверный tracker JobTenderSRM на правильный
JobLevyKNC для записей RatRankKNCLevySenior и RatRankKNCLevyMiddle: откройте
блокы с !type:CharacterPlaytimeRequirement для RatRankKNCLevySenior и
RatRankKNCLevyMiddle и поменяйте значение tracker с JobTenderSRM на JobLevyKNC,
чтобы соответствовать playTimeTracker, объявленному в задании и в
play_time_trackers.yml.
| - !type:CharacterPlaytimeRequirement | ||
| tracker: JobLordeKNC | ||
| min: 3600000 # 1000 hours | ||
| RatRankKNCLordeStandart: [] |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Проверка согласованности идентификатора ранга
rg -nP 'RatRankKNCLordeStand(art|ard)\b'Repository: ss14-art/ratgore
Length of output: 239
Опечатка в идентификаторе ранга RatRankKNCLordeStandart.
Идентификатор содержит опечатку ("Standart" вместо "Standard"). Несмотря на то, что опечатка последовательно используется в обоих файлах (knc_ranks.yml и KNC_lorde.yml) и поэтому код работает корректно, рекомендуется исправить её одновременно в обоих местах, чтобы избежать опечатки в публичном идентификаторе.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Rat/Roles/Jobs/KNC/KNC_lorde.yml` at line 11, Rename
the misspelled rank identifier RatRankKNCLordeStandart to
RatRankKNCLordeStandard across the codebase; update every occurrence (including
the counterpart in knc_ranks.yml) so the identifier is consistent, and run a
quick search to ensure no remaining references to "Standart" remain to avoid
breaking references.
| "name": "off-equipped-HELMET", | ||
| "directions": 4 | ||
| }, | ||
| { | ||
| "name": "on-equipped-HELMET", | ||
| "directions": 4 |
There was a problem hiding this comment.
Критическая ошибка: неверные названия состояний для экипированного шлема.
Аналогично проблеме в KNCbanneret.rsi/meta.json, здесь используются состояния off-equipped-HELMET и on-equipped-HELMET, в то время как система одежды ожидает equipped-HELMET. Шлем не будет отображаться при надевании.
🔧 Предлагаемое исправление
{
- "name": "off-equipped-HELMET",
+ "name": "equipped-HELMET",
"directions": 4
- },
- {
- "name": "on-equipped-HELMET",
- "directions": 4
}📝 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.
| "name": "off-equipped-HELMET", | |
| "directions": 4 | |
| }, | |
| { | |
| "name": "on-equipped-HELMET", | |
| "directions": 4 | |
| "name": "equipped-HELMET", | |
| "directions": 4 | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Textures/_Rat/Clothing/KNC/Head/KNCsoldier.rsi/meta.json` around
lines 17 - 22, The meta.json contains incorrect state names
"off-equipped-HELMET" and "on-equipped-HELMET" which the clothing system doesn't
recognize; replace those entries so the equipped helmet state uses the single
expected name "equipped-HELMET" (remove or rename both "off-equipped-HELMET" and
"on-equipped-HELMET" to "equipped-HELMET") ensuring the "name" fields match the
system expectation and keep "directions": 4 unchanged.
| "license": null, | ||
| "copyright": "Original artwork made by @naelmiros for the Hullrot Project. All rights reserved. Do not copy, use, modify, or redistribute without permission.", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Найти все meta.json с null/пустой лицензией или запретительным копирайтом
fd -e json meta.json Resources/Textures/_Rat | while read -r f; do
if jq -e '(.license == null) or (.license == "")' "$f" >/dev/null 2>&1; then
echo "=== $f ==="
jq '{license, copyright}' "$f"
fi
done
# И отдельно — упоминания "All rights reserved" в meta.json
rg -n --type=json 'All rights reserved' Resources/Textures/_RatRepository: ss14-art/ratgore
Length of output: 4422
Несовместимая лицензия: «All rights reserved» ассет Hullrot.
"license": null в сочетании с копирайтом «Original artwork made by @naelmiros for the Hullrot Project. All rights reserved. Do not copy, use, modify, or redistribute without permission.» означает, что спрайт запрещён к использованию, модификации и распространению без явного разрешения автора. Для SS14-контента (обычно CC-BY-SA-3.0 / MIT для ассетов) это блокирующая проблема: ассет нельзя включать в публичный репозиторий.
Варианты решения:
- Получить письменное разрешение от
@naelmiros/ Hullrot на повторное лицензирование под CC-BY-SA-3.0 и отразить это вlicense/copyright. - Найти источник с совместимой лицензией (например, оригинал из tgstation/Shiptest как в соседних KNC-файлах).
- Перерисовать спрайт самостоятельно и выставить совместимую лицензию.
До выяснения ситуации этот файл (и использующие его прототипы) не должны попадать в мердж.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@Resources/Textures/_Rat/Clothing/KNC/OuterClothing/KNCjuggernaut.rsi/meta.json`
around lines 3 - 4, The metadata declares "license": null while the "copyright"
field contains an "All rights reserved" notice for the Hullrot asset
(KNCjuggernaut.rsi meta.json), which makes the sprite incompatible with SS14
licensing; either obtain written permission from the author to relicense to a
compatible license and update the "license" and "copyright" fields accordingly,
replace the file with a source that has a compatible license (e.g., the original
tgstation/Shiptest equivalent) and update the metadata, or remove/replace the
asset by redrawing it and setting a compatible license; until one of these fixes
is completed, remove the meta.json reference (and any prototypes using this
asset) from the merge to prevent including the incompatible asset.
There was a problem hiding this comment.
Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!
d2f89f8 to
2c8a095
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
Resources/Prototypes/_Crescent/Entities/Clothing/SRM/helmets.yml (1)
162-360: Рекомендуется вынести общие компоненты KNC hardsuit-шлемов в абстрактного родителя.Сейчас много копипасты с одинаковыми боевыми/световыми параметрами; отдельный
abstract-прототип упростит дальнейший баланс и правки.Возможный шаблон рефактора
+- type: entity + abstract: true + id: ClothingHeadHelmetHardsuitKNCBase + parent: ClothingHeadHardsuitWithLightBase + categories: [ HideSpawnMenu ] + components: + - type: BreathMask + - type: PointLight + radius: 6 + color: "#c3fffa" + - type: PressureProtection + highPressureMultiplier: 0.1 + lowPressureMultiplier: 1000 + - type: Armor + modifiers: + coefficients: + Blunt: 0.9 + Slash: 0.9 + Piercing: 0.9 + Heat: 0.9 + Radiation: 0.9 + Caustic: 0.9 + - type: HideLayerClothing + slots: [ Hair, Snout ] - type: entity - parent: ClothingHeadHardsuitWithLightBase + parent: ClothingHeadHelmetHardsuitKNCBase id: ClothingHeadHelmetHardsuitKNCSoldier components: - type: Sprite sprite: _Crescent/Clothing/SRM/Head/mandatesoldier.rsi - type: Clothing sprite: _Crescent/Clothing/SRM/Head/mandatesoldier.rsi🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Resources/Prototypes/_Crescent/Entities/Clothing/SRM/helmets.yml` around lines 162 - 360, Create an abstract parent entity (e.g., ClothingHeadHardsuitKNCBase) that contains the shared components (BreathMask, PointLight with radius/color, PressureProtection highPressureMultiplier/lowPressureMultiplier, Armor modifiers with the listed coefficients, and HideLayerClothing slots Hair and Snout) and change each specific helmet entity (ClothingHeadHelmetHardsuitKNCCommand, ClothingHeadHelmetHardsuitKNCCoronet, ClothingHeadHelmetKNCjuggernaut, ClothingHeadHelmetHardsuitKNCKnight, ClothingHeadHelmetHardsuitKNCSoldier, ClothingHeadHelmetKNCRitter) to inherit from that new abstract parent, leaving only unique per-entity components (Sprite and Clothing with their sprite paths, plus name/description) in each child; remove the duplicated common component blocks from the child entities so future balance/edits are centralized in ClothingHeadHardsuitKNCBase.
🤖 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/ss14-ru/prototypes/_crescent/entities/clothing/srm/helmets.ftl`:
- Around line 19-29: Fix typos and grammatical cases in the listed ru-RU
entries: for ent-ClothingHeadHelmetHardsuitKNCCoronet change "доспех" to
"доспеха" (or rephrase to "из доспеха") and make the desc read "улучшенной
версии рыцарского доспеха "VIGILANTE" четвёртого поколения"; for
ent-ClothingHeadHatKNCBeret ensure the description starts with lowercase
"престижный" (remove duplicated "П"); for ent-ClothingHeadHelmetKNCRitter change
"шлем от массово производимой броня" to "шлем от массово производимой брони";
scan ent-ClothingHeadHelmetKNCTrooperHelmet,
ent-ClothingHeadHelmetKNCKnightCommanderHelmet, and
ent-ClothingHeadHelmetKNCjuggernaut for similar capitalization/case errors and
make descriptions consistent (lowercase sentence starts, correct genitive forms
and remove doubled letters).
In `@Resources/Prototypes/_Crescent/Entities/Clothing/SRM/armor.yml`:
- Around line 237-255: Описание у предмета с id
ClothingOuterArmorKNCArmorPrestige заявляет «slightly more durable», но статы
(armorMaxHealth, initialModifiers и т.д.) совпадают с trooper-версией; исправьте
это: либо обновите поле description у ClothingOuterArmorKNCArmorPrestige,
убрав/корректируя фразу про повышенную прочность, чтобы описание соответствовало
текущим параметрам, либо (если намерение — действительно повысить живучесть)
увеличьте armorMaxHealth и/или соответствующие значения в initialModifiers
(Blunt/Slash/Piercing/Heat/Caustic) в секции DegradeableArmor; отредактируйте
соответствующее описание или параметры рядом с id
ClothingOuterArmorKNCArmorPrestige.
---
Nitpick comments:
In `@Resources/Prototypes/_Crescent/Entities/Clothing/SRM/helmets.yml`:
- Around line 162-360: Create an abstract parent entity (e.g.,
ClothingHeadHardsuitKNCBase) that contains the shared components (BreathMask,
PointLight with radius/color, PressureProtection
highPressureMultiplier/lowPressureMultiplier, Armor modifiers with the listed
coefficients, and HideLayerClothing slots Hair and Snout) and change each
specific helmet entity (ClothingHeadHelmetHardsuitKNCCommand,
ClothingHeadHelmetHardsuitKNCCoronet, ClothingHeadHelmetKNCjuggernaut,
ClothingHeadHelmetHardsuitKNCKnight, ClothingHeadHelmetHardsuitKNCSoldier,
ClothingHeadHelmetKNCRitter) to inherit from that new abstract parent, leaving
only unique per-entity components (Sprite and Clothing with their sprite paths,
plus name/description) in each child; remove the duplicated common component
blocks from the child entities so future balance/edits are centralized in
ClothingHeadHardsuitKNCBase.
🪄 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: 41c2e06a-6599-4485-9f04-bfab8a59767e
⛔ Files ignored due to path filters (83)
Resources/Textures/Objects/Materials/ore.rsi/ore.rsi/bananium.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/coal.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/gold.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/iron.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/plasma.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/salt.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/silver.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/spacequartz.pngis excluded by!**/*.pngResources/Textures/Objects/Materials/ore.rsi/ore.rsi/uranium.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandateberet.rsi/equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandateberet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommand.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommand.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommand.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommand.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommanderhelmet.rsi/equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommanderhelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecoronet.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecoronet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecoronet.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatecoronet.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatehelmet.rsi/equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatehelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatejuggernauthelmet.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatejuggernauthelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatejuggernauthelmet.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatejuggernauthelmet.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandateknight.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandateknight.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandateknight.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandateknight.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatesoldier.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatesoldier.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatesoldier.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/mandatesoldier.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/ritterhelmet.rsi/icon-flash.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/ritterhelmet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/ritterhelmet.rsi/off-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Head/ritterhelmet.rsi/on-equipped-HELMET.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmor.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmor.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmor.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmor.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecommand.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecommand.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecommand.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecommand.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecoronet.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecoronet.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecoronet.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecoronet.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatejuggernaut.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatejuggernaut.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatejuggernaut.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatejuggernaut.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateknight.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateknight.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateknight.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateknight.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatesoldier.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatesoldier.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatesoldier.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatesoldier.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateworker.rsi/equipped-OUTERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateworker.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateworker.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateworker.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordercombat.rsi/equipped-INNERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordercombat.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordercombat.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordercombat.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordermedic.rsi/equipped-INNERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordermedic.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordermedic.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/ordermedic.rsi/inhand-right.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/orderofficer.rsi/equipped-INNERCLOTHING.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/orderofficer.rsi/icon.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/orderofficer.rsi/inhand-left.pngis excluded by!**/*.pngResources/Textures/_Crescent/Clothing/SRM/Uniform/orderofficer.rsi/inhand-right.pngis excluded by!**/*.png
📒 Files selected for processing (26)
Resources/Locale/ru-RU/ss14-ru/prototypes/_crescent/entities/clothing/srm/armor.ftlResources/Locale/ru-RU/ss14-ru/prototypes/_crescent/entities/clothing/srm/helmets.ftlResources/Locale/ru-RU/ss14-ru/prototypes/_crescent/entities/clothing/srm/jumpsuits.ftlResources/Prototypes/_Crescent/Entities/Clothing/SRM/armor.ymlResources/Prototypes/_Crescent/Entities/Clothing/SRM/helmets.ymlResources/Prototypes/_Crescent/Entities/Clothing/SRM/jumpsuits.ymlResources/Textures/_Crescent/Clothing/SRM/Head/mandateberet.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommand.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/mandatecommanderhelmet.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/mandatecoronet.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/mandatehelmet.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/mandatejuggernauthelmet.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/mandateknight.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/mandatesoldier.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Head/ritterhelmet.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmor.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecommand.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecoronet.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatejuggernaut.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateknight.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatesoldier.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateworker.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Uniform/ordercombat.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Uniform/ordermedic.rsi/meta.jsonResources/Textures/_Crescent/Clothing/SRM/Uniform/orderofficer.rsi/meta.json
✅ Files skipped from review due to trivial changes (20)
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandatecommanderhelmet.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Uniform/orderofficer.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Uniform/ordermedic.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandatecoronet.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateworker.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandatejuggernauthelmet.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatejuggernaut.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandatesoldier.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatesoldier.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandateknight.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandatecommand.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Head/ritterhelmet.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatecommand.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandateberet.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmor.rsi/meta.json
- Resources/Locale/ru-RU/ss14-ru/prototypes/_crescent/entities/clothing/srm/armor.ftl
- Resources/Textures/_Crescent/Clothing/SRM/Head/mandatehelmet.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandateknight.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi/meta.json
- Resources/Textures/_Crescent/Clothing/SRM/Uniform/ordercombat.rsi/meta.json
| ent-ClothingHeadHelmetHardsuitKNCCoronet = рыцарский шлем от доспех "HONOR" mk.IV | ||
| .desc = шлем от улучшенной версии рыцарского доспеха "VIGILANTE" в четвёртом поколении. Смотрится брутально и величественно. | ||
| ent-ClothingHeadHatKNCBeret = рыцарский берет | ||
| .desc = престижный берет из дорогого материала в цветах Дома Ромейн. Показывает статус, но не защищает голову от проникновения нежелательных мыслей и предметов. | ||
| ent-ClothingHeadHelmetKNCTrooperHelmet = воинский шлем ордена | ||
| .desc = шлем, украшенный геральдикой Дома Ромейн. | ||
| ent-ClothingHeadHelmetKNCKnightCommanderHelmet = офицерский шлем ордена | ||
| .desc = Ппрестижный шлем, украшенный позолотой и геральдикой Дома Ромейн. | ||
| ent-ClothingHeadHelmetKNCRitter = шлем от боевого скафандра "PARABELLUM" mk.II | ||
| .desc = шлем от массово производимой броня для многочисленного ополчения, собираемого рыцарскими домами. Выглядит простовато. | ||
| ent-ClothingHeadHelmetKNCjuggernaut = рыцарский шлем от боевого скафандра "VALOR" mk.II |
There was a problem hiding this comment.
Исправьте опечатки и падежи в новых ru-RU строках.
Есть несколько заметных ошибок, которые будут видны игрокам (например, Ппрестижный).
Предлагаемая правка
-ent-ClothingHeadHelmetHardsuitKNCCoronet = рыцарский шлем от доспех "HONOR" mk.IV
+ent-ClothingHeadHelmetHardsuitKNCCoronet = рыцарский шлем от доспеха "HONOR" mk.IV
-ent-ClothingHeadHelmetKNCKnightCommanderHelmet = офицерский шлем ордена
- .desc = Ппрестижный шлем, украшенный позолотой и геральдикой Дома Ромейн.
+ent-ClothingHeadHelmetKNCKnightCommanderHelmet = офицерский шлем ордена
+ .desc = престижный шлем, украшенный позолотой и геральдикой Дома Ромейн.
-ent-ClothingHeadHelmetKNCRitter = шлем от боевого скафандра "PARABELLUM" mk.II
- .desc = шлем от массово производимой броня для многочисленного ополчения, собираемого рыцарскими домами. Выглядит простовато.
+ent-ClothingHeadHelmetKNCRitter = шлем от боевого скафандра "PARABELLUM" mk.II
+ .desc = шлем от массово производимой брони для многочисленного ополчения, собираемого рыцарскими домами. Выглядит простовато.📝 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.
| ent-ClothingHeadHelmetHardsuitKNCCoronet = рыцарский шлем от доспех "HONOR" mk.IV | |
| .desc = шлем от улучшенной версии рыцарского доспеха "VIGILANTE" в четвёртом поколении. Смотрится брутально и величественно. | |
| ent-ClothingHeadHatKNCBeret = рыцарский берет | |
| .desc = престижный берет из дорогого материала в цветах Дома Ромейн. Показывает статус, но не защищает голову от проникновения нежелательных мыслей и предметов. | |
| ent-ClothingHeadHelmetKNCTrooperHelmet = воинский шлем ордена | |
| .desc = шлем, украшенный геральдикой Дома Ромейн. | |
| ent-ClothingHeadHelmetKNCKnightCommanderHelmet = офицерский шлем ордена | |
| .desc = Ппрестижный шлем, украшенный позолотой и геральдикой Дома Ромейн. | |
| ent-ClothingHeadHelmetKNCRitter = шлем от боевого скафандра "PARABELLUM" mk.II | |
| .desc = шлем от массово производимой броня для многочисленного ополчения, собираемого рыцарскими домами. Выглядит простовато. | |
| ent-ClothingHeadHelmetKNCjuggernaut = рыцарский шлем от боевого скафандра "VALOR" mk.II | |
| ent-ClothingHeadHelmetHardsuitKNCCoronet = рыцарский шлем от доспеха "HONOR" mk.IV | |
| .desc = шлем от улучшенной версии рыцарского доспеха "VIGILANTE" в четвёртом поколении. Смотрится брутально и величественно. | |
| ent-ClothingHeadHatKNCBeret = рыцарский берет | |
| .desc = престижный берет из дорогого материала в цветах Дома Ромейн. Показывает статус, но не защищает голову от проникновения нежелательных мыслей и предметов. | |
| ent-ClothingHeadHelmetKNCTrooperHelmet = воинский шлем ордена | |
| .desc = шлем, украшенный геральдикой Дома Ромейн. | |
| ent-ClothingHeadHelmetKNCKnightCommanderHelmet = офицерский шлем ордена | |
| .desc = престижный шлем, украшенный позолотой и геральдикой Дома Ромейн. | |
| ent-ClothingHeadHelmetKNCRitter = шлем от боевого скафандра "PARABELLUM" mk.II | |
| .desc = шлем от массово производимой брони для многочисленного ополчения, собираемого рыцарскими домами. Выглядит простовато. | |
| ent-ClothingHeadHelmetKNCjuggernaut = рыцарский шлем от боевого скафандра "VALOR" mk.II |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@Resources/Locale/ru-RU/ss14-ru/prototypes/_crescent/entities/clothing/srm/helmets.ftl`
around lines 19 - 29, Fix typos and grammatical cases in the listed ru-RU
entries: for ent-ClothingHeadHelmetHardsuitKNCCoronet change "доспех" to
"доспеха" (or rephrase to "из доспеха") and make the desc read "улучшенной
версии рыцарского доспеха "VIGILANTE" четвёртого поколения"; for
ent-ClothingHeadHatKNCBeret ensure the description starts with lowercase
"престижный" (remove duplicated "П"); for ent-ClothingHeadHelmetKNCRitter change
"шлем от массово производимой броня" to "шлем от массово производимой брони";
scan ent-ClothingHeadHelmetKNCTrooperHelmet,
ent-ClothingHeadHelmetKNCKnightCommanderHelmet, and
ent-ClothingHeadHelmetKNCjuggernaut for similar capitalization/case errors and
make descriptions consistent (lowercase sentence starts, correct genitive forms
and remove doubled letters).
| id: ClothingOuterArmorKNCArmorPrestige | ||
| name: Order Officer's Chestplate | ||
| description: A standard-issue chestplate manufactured according to the Order's existing CIF blueprints. Modified for officer's needs – the construction is slightly more durable than the soldier's chestplate. Adorned with additional parts indicating the owner's status. | ||
| components: | ||
| - type: Sprite | ||
| sprite: _Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi | ||
| - type: Clothing | ||
| sprite: _Crescent/Clothing/SRM/OuterClothing/mandatearmorprestige.rsi | ||
| - type: DegradeableArmor | ||
| armorMaxHealth: 750 | ||
| armorType: Metallic | ||
| armorRepair: PlasteelEncasedKevlar | ||
| initialModifiers: | ||
| flatReductions: | ||
| Blunt: 15 | ||
| Slash: 15 | ||
| Piercing: 35 | ||
| Heat: 20 | ||
| Caustic: 15 |
There was a problem hiding this comment.
Описание prestige-варианта не соответствует его статам.
На Line 239 указано, что нагрудник офицера «slightly more durable», но параметры брони полностью совпадают с trooper-вариантом.
Минимальный безопасный фикс (обновить описание)
- description: A standard-issue chestplate manufactured according to the Order's existing CIF blueprints. Modified for officer's needs – the construction is slightly more durable than the soldier's chestplate. Adorned with additional parts indicating the owner's status.
+ description: A standard-issue chestplate manufactured according to the Order's existing CIF blueprints. Modified for officer's needs and adorned with additional parts indicating the owner's status.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@Resources/Prototypes/_Crescent/Entities/Clothing/SRM/armor.yml` around lines
237 - 255, Описание у предмета с id ClothingOuterArmorKNCArmorPrestige заявляет
«slightly more durable», но статы (armorMaxHealth, initialModifiers и т.д.)
совпадают с trooper-версией; исправьте это: либо обновите поле description у
ClothingOuterArmorKNCArmorPrestige, убрав/корректируя фразу про повышенную
прочность, чтобы описание соответствовало текущим параметрам, либо (если
намерение — действительно повысить живучесть) увеличьте armorMaxHealth и/или
соответствующие значения в initialModifiers (Blunt/Slash/Piercing/Heat/Caustic)
в секции DegradeableArmor; отредактируйте соответствующее описание или параметры
рядом с id ClothingOuterArmorKNCArmorPrestige.

























































Описание
Тут короче будет дохуя работы и буков, а может и нет
Описание изменений.
TODO
Чеклист перед мерджем
Changelog
Будет сделано позже
🆑
Спасибо за вклад в Ratgore! 🐀
Summary by CodeRabbit
Заметки о выпуске