Skip to content

load - #1459

Draft
drenk28 wants to merge 5 commits into
Rxup:masterfrom
drenk28:Balans
Draft

load#1459
drenk28 wants to merge 5 commits into
Rxup:masterfrom
drenk28:Balans

Conversation

@drenk28

@drenk28 drenk28 commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Новые функции

    • Расширены опции экипировки для капитана новыми форменными костюмами, головными уборами, перчатками и верхней одеждой
  • Рефакторинг

    • Стандартизированы описания групп экипировки по всем ролям с использованием более нейтральной терминологии
    • Переорганизирована структура загрузочных групп для улучшения согласованности

@drenk28
drenk28 requested a review from Rxup as a code owner June 18, 2026 00:51
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions Bot added S: Merge Conflict S: Untriaged No C# Нету кода. Changes: Localization Can be reviewed or fixed by people who are knowledgeable with translation size/M and removed S: Untriaged labels Jun 18, 2026
@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

PR расширяет набор лоад-аутов капитана (новые комбинезоны, головные уборы, внешняя одежда, рюкзаки, перчатки и бонус-предметы) через captain.yml и loadout_groups.yml, затем прописывает их в role_loadouts.yml. Параллельно для всех ролей унифицирован стандартный хвост groups (backmen-комплект + Survival + BreathTool), а строки локализации ru-RU упрощены до кратких названий элементов экипировки.

Changes

Расширение лоад-аутов капитана

Layer / File(s) Summary
Новые loadout-предметы капитана
Resources/Prototypes/Loadouts/Jobs/Command/captain.yml
Добавлены пять вариантов комбинезонов (включая sheriff и white), пять вариантов головных уборов, CaptainDuffelWhite, расширенный блок внешней одежды, группа бонусов (плюшки, фляжка) и три варианта перчаток.
Определения групп капитана
Resources/Prototypes/Loadouts/loadout_groups.yml
CaptainHead и CaptainJumpsuit расширены новыми вариантами; CaptainBackpack получил CaptainDuffelWhite; CaptainOuterClothing расширен; добавлены новые группы CaptainBonus и CaptainShoes (перчатки).
Проводка и локализация новых групп капитана
Resources/Prototypes/Loadouts/role_loadouts.yml, Resources/Locale/ru-RU/preferences/loadout-groups.ftl
В role_loadouts.yml для JobCaptain добавлены CaptainGlasses и CaptainBonus; в FTL добавлены строки loadout-group-captain-bonus и loadout-group-captain-glasses.

Стандартизация role_loadouts и очистка локализации

Layer / File(s) Summary
Унификация groups во всех roleLoadout
Resources/Prototypes/Loadouts/role_loadouts.yml
Для всех ролей (Civilian, Cargo, Engineering, Science, Security, Medical, Wildcards) добавлен единый стандартный хвост Trinkets/Medals/Werx/Niz/Socks + Inventory + Survival* + GroupSpeciesBreathTool*; удалён SelfDefenceDevices у HoP, ResearchDirector, Scientist, MedicalDoctor.
Упрощение FTL-строк loadout-групп
Resources/Locale/ru-RU/preferences/loadout-groups.ftl, Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl, Resources/Locale/ru-RU/_backmen/preferences/loadout-groups.ftl, Resources/Locale/ru-RU/corvax/preferences/loadout-groups.ftl
Строки loadout-group-* переименованы: ролевые префиксы убраны, оставлены краткие названия типов экипировки. Из backmen-файла удалён блок "CentCom reinforcement loadouts".

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐇 Шерифский берет? Белый китель? О да!
Капитан снаряжён — вот это беда!
Рюкзак, плюшка, фляжка — всё в кучке лежит,
А «Пилот СБ, пояс» давно не звучит.
Теперь просто «Пояс», «Рюкзак», «Голова» —
Кролик доволен, порядок — ура! 🎩

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive Название 'load' слишком неопределённо и не описывает суть изменений в pull request. Используйте более конкретное и информативное название, которое отражает основное изменение, например 'Update loadout groups localization and prototypes' или 'Expand captain loadouts and update Russian translations'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch Balans

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl`:
- Around line 16-23: The Russian localization file is missing 12 translation
entries for loadout group keys that are defined in the English locale. Add
translations for the following missing keys to
Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl:
loadout-group-belt, loadout-group-captain-shoes, loadout-group-common-backpack,
loadout-group-ears, loadout-group-gloves, loadout-group-id,
loadout-group-medical-eyewear, loadout-group-neck, loadout-group-pockets,
loadout-group-security-eyes, loadout-group-shoes, and
loadout-group-survival-mask. Each key should be followed by its Russian
translation to ensure players see localized group names instead of untranslated
identifiers in the UI.

In `@Resources/Locale/ru-RU/preferences/loadout-groups.ftl`:
- Line 72: The Russian localization for loadout-group-clown-shoes contains a
misspelling where "Ботники" is used instead of the correct word "Ботинки".
Locate the loadout-group-clown-shoes entry in the file and change the
translation value from "Ботники" to "Ботинки" to fix the spelling error.

In `@Resources/Prototypes/Loadouts/Jobs/Command/captain.yml`:
- Around line 170-183: The bonus item loadouts PlushieJobCaptain, ToyCaptain,
and DrinkFlask are incorrectly assigned to the outerClothing equipment slot,
creating a conflict with the primary CaptainOuterClothing assignment. For each
of these three loadouts, move the bonus items (PlushieLizardJobCaptain,
ToyFigurineCaptain, and DrinkFlask respectively) from the outerClothing slot to
their appropriate equipment slots based on their item type to resolve the
loadout conflicts.

In `@Resources/Prototypes/Loadouts/loadout_groups.yml`:
- Around line 198-204: The loadoutGroup with id "CaptainShoes" has an
inconsistent identifier that does not match the role wiring reference in
role_loadouts.yml which expects "CaptainGlasses". The loadouts within this group
(CaptainGloves, SheriffGloves, CaptainWhiteGloves) and the name field
"loadout-group-captain-glasses" both indicate this group is for glasses, not
shoes. Change the id field from "CaptainShoes" to "CaptainGlasses" to align with
the actual role reference and the group's purpose.
🪄 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: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 28b315be-3420-4e0e-8000-f76fedb4d1bc

📥 Commits

Reviewing files that changed from the base of the PR and between 2dfa83f and 82ecec3.

📒 Files selected for processing (7)
  • Resources/Locale/ru-RU/_backmen/preferences/loadout-groups.ftl
  • Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl
  • Resources/Locale/ru-RU/corvax/preferences/loadout-groups.ftl
  • Resources/Locale/ru-RU/preferences/loadout-groups.ftl
  • Resources/Prototypes/Loadouts/Jobs/Command/captain.yml
  • Resources/Prototypes/Loadouts/loadout_groups.yml
  • Resources/Prototypes/Loadouts/role_loadouts.yml

Comment on lines +16 to 23
loadout-group-blueshield-hat = Головной убор
loadout-group-blueshield-eyes = Очки
loadout-group-blueshield-neck = Шея
loadout-group-blueshield-jumpsuit = Униформа
loadout-group-blueshield-backpack = Рюкзак
loadout-group-blueshield-outer = Верхняя одежда
loadout-group-blueshield-shoes = Ботинки
# Virilogist

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

keys=(
  "loadout-group-captain-shoes"
  "loadout-group-survival-mask"
  "loadout-group-gloves"
  "loadout-group-id"
  "loadout-group-ears"
  "loadout-group-pockets"
  "loadout-group-neck"
  "loadout-group-security-eyes"
  "loadout-group-belt"
  "loadout-group-medical-eyewear"
  "loadout-group-common-backpack"
  "loadout-group-shoes"
)

for k in "${keys[@]}"; do
  echo "=== $k ==="
  rg -n --fixed-strings "$k" -g '*.yml' -g '*.ftl' || true
  echo
done

Repository: Rxup/space-station-14

Length of output: 4019


🏁 Script executed:

# Check the Russian locale file for loadout-group keys
cat -n Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl | head -30

Repository: Rxup/space-station-14

Length of output: 1363


🏁 Script executed:

# Compare keys between English and Russian locale files
echo "=== Keys in English locale ===" && \
rg '^\s*loadout-group-' Resources/Locale/en-US/backmen/preferences/loadout-groups.ftl | grep -oE 'loadout-group-[a-z-]+' | sort | uniq > /tmp/en_keys.txt && \
wc -l /tmp/en_keys.txt && \
echo && \
echo "=== Keys in Russian locale ===" && \
rg '^\s*loadout-group-' Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl | grep -oE 'loadout-group-[a-z-]+' | sort | uniq > /tmp/ru_keys.txt && \
wc -l /tmp/ru_keys.txt && \
echo && \
echo "=== Keys in English but NOT in Russian ===" && \
comm -23 /tmp/en_keys.txt /tmp/ru_keys.txt || true

Repository: Rxup/space-station-14

Length of output: 493


Русская локализация не содержит 12 переводов активных групп лоадаутов.

В файле Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl отсутствуют переводы для следующих ключей, которые используются в прототипах и определены в английской локали:

  • loadout-group-belt
  • loadout-group-captain-shoes
  • loadout-group-common-backpack
  • loadout-group-ears
  • loadout-group-gloves
  • loadout-group-id
  • loadout-group-medical-eyewear
  • loadout-group-neck
  • loadout-group-pockets
  • loadout-group-security-eyes
  • loadout-group-shoes
  • loadout-group-survival-mask

При выборе этих групп в UI русские игроки увидят не локализованные идентификаторы. Добавьте переводы в русский файл локали.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl` around lines
16 - 23, The Russian localization file is missing 12 translation entries for
loadout group keys that are defined in the English locale. Add translations for
the following missing keys to
Resources/Locale/ru-RU/backmen/preferences/loadout-groups.ftl:
loadout-group-belt, loadout-group-captain-shoes, loadout-group-common-backpack,
loadout-group-ears, loadout-group-gloves, loadout-group-id,
loadout-group-medical-eyewear, loadout-group-neck, loadout-group-pockets,
loadout-group-security-eyes, loadout-group-shoes, and
loadout-group-survival-mask. Each key should be followed by its Russian
translation to ensure players see localized group names instead of untranslated
identifiers in the UI.

loadout-group-clown-jumpsuit = Униформа
loadout-group-clown-backpack = Рюкзак
loadout-group-clown-outerclothing = Верхняя одежда
loadout-group-clown-shoes = Ботники

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Исправьте опечатку в локализации.

На Line 72 используется Ботники; корректно Ботинки.

Предложение правки
-loadout-group-clown-shoes = Ботники
+loadout-group-clown-shoes = Ботинки
📝 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
loadout-group-clown-shoes = Ботники
loadout-group-clown-shoes = Ботинки
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Locale/ru-RU/preferences/loadout-groups.ftl` at line 72, The
Russian localization for loadout-group-clown-shoes contains a misspelling where
"Ботники" is used instead of the correct word "Ботинки". Locate the
loadout-group-clown-shoes entry in the file and change the translation value
from "Ботники" to "Ботинки" to fix the spelling error.

Comment on lines +170 to +183
- type: loadout
id: PlushieJobCaptain
equipment:
outerClothing: PlushieLizardJobCaptain

- type: loadout
id: ToyCaptain
equipment:
outerClothing: ToyFigurineCaptain

- type: loadout
id: DrinkFlask
equipment:
outerClothing: DrinkFlask

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Бонусные предметы заведены в слот outerClothing, что ломает выбор верхней одежды.

На Line 173, Line 178 и Line 183 бонусы (PlushieLizardJobCaptain, ToyFigurineCaptain, DrinkFlask) назначены в outerClothing. Это конфликтует с CaptainOuterClothing и приводит к некорректному применению loadout (перезапись/неэкипировка).

Предложение правки
 - type: loadout
   id: PlushieJobCaptain
   equipment:
-    outerClothing: PlushieLizardJobCaptain
+    pocket1: PlushieLizardJobCaptain
 
 - type: loadout
   id: ToyCaptain
   equipment:
-    outerClothing: ToyFigurineCaptain
+    pocket1: ToyFigurineCaptain
 
 - type: loadout
   id: DrinkFlask
   equipment:
-    outerClothing: DrinkFlask
+    pocket1: DrinkFlask
📝 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
- type: loadout
id: PlushieJobCaptain
equipment:
outerClothing: PlushieLizardJobCaptain
- type: loadout
id: ToyCaptain
equipment:
outerClothing: ToyFigurineCaptain
- type: loadout
id: DrinkFlask
equipment:
outerClothing: DrinkFlask
- type: loadout
id: PlushieJobCaptain
equipment:
pocket1: PlushieLizardJobCaptain
- type: loadout
id: ToyCaptain
equipment:
pocket1: ToyFigurineCaptain
- type: loadout
id: DrinkFlask
equipment:
pocket1: DrinkFlask
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Prototypes/Loadouts/Jobs/Command/captain.yml` around lines 170 -
183, The bonus item loadouts PlushieJobCaptain, ToyCaptain, and DrinkFlask are
incorrectly assigned to the outerClothing equipment slot, creating a conflict
with the primary CaptainOuterClothing assignment. For each of these three
loadouts, move the bonus items (PlushieLizardJobCaptain, ToyFigurineCaptain, and
DrinkFlask respectively) from the outerClothing slot to their appropriate
equipment slots based on their item type to resolve the loadout conflicts.

Comment on lines +198 to +204
- type: loadoutGroup
id: CaptainShoes
name: loadout-group-captain-glasses
loadouts:
- CaptainGloves
- SheriffGloves
- CaptainWhiteGloves

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Несогласованный id группы капитана с role wiring.

На Line 199 группа объявлена как CaptainShoes, но в Resources/Prototypes/Loadouts/role_loadouts.yml (Line 10) используется CaptainGlasses. Из-за этого ссылка на группу для капитана не совпадает с объявлением.

Предложение правки
 - type: loadoutGroup
-  id: CaptainShoes
+  id: CaptainGlasses
   name: loadout-group-captain-glasses
   loadouts:
   - CaptainGloves
   - SheriffGloves
   - CaptainWhiteGloves
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Prototypes/Loadouts/loadout_groups.yml` around lines 198 - 204, The
loadoutGroup with id "CaptainShoes" has an inconsistent identifier that does not
match the role wiring reference in role_loadouts.yml which expects
"CaptainGlasses". The loadouts within this group (CaptainGloves, SheriffGloves,
CaptainWhiteGloves) and the name field "loadout-group-captain-glasses" both
indicate this group is for glasses, not shoes. Change the id field from
"CaptainShoes" to "CaptainGlasses" to align with the actual role reference and
the group's purpose.

@drenk28
drenk28 marked this pull request as draft June 23, 2026 02:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: Localization Can be reviewed or fixed by people who are knowledgeable with translation No C# Нету кода. S: Merge Conflict size/M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant