Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

МЕХИ!!!! #347

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open

Conversation

MegaDaimond
Copy link
Contributor

@MegaDaimond MegaDaimond commented Dec 21, 2024

image

Описание обновления:

МЕХИИИИИИИИИИ

Медиа

Проверки

  • PR завершён и мне не нужна помощь чтобы его закончить.
  • Я внимательно просмотрел все свои изменения и багов в них не нашёл.
  • Я запускал локальный сервер со своими изменениями и всё протестировал.
  • Я добавил скриншот/видео демонстрации PR в игре, или этот PR этого не требует.
  • Я не добавлял контент нарушающий чужие авторские права.
  • Я добавил свой контент только в папку _LostParadise(только если вы не меняете оригинальный код).
  • Я не добавлял переводы в прототипы, а сделал их с помощью скрипта translations.bat в Tools/SS14_RU.

Изменения

🆑 MegaDaimond

  • add: Добавлены разнообразные мехи и их вооружение, которое можно исследовать и производить

Copy link
Contributor

coderabbitai bot commented Dec 21, 2024

Обзор изменений

Walkthrough

Этот обзор представляет значительные изменения в игровой системе, связанные с механизмами (мехами). Были добавлены новые компоненты, системы и прототипы для различных типов механизированных экзоскелетов, включая Ripley MK-II, Clarke, Durand и Gygax. Изменения затрагивают системы оружия, электронные модули, категории исследований и локализацию, расширяя функциональность и разнообразие механизмов в игре.

Changes

Файлы Краткое описание изменений
Content.Client/Weapons/Ranged/Systems/GunSystem.cs Обновлена система стрельбы для поддержки пилотов механизмов
Content.Server/_Goobstation/Mech/Equipment/EntitySystems/MechGunSystem.cs Добавлена новая система управления оружием механизмов
Content.Shared/Interaction/ActivateInWorldEvent.cs Добавлен новый класс для обработки активации объектов в мире
Content.Shared/Mech/Components/MechComponent.cs Расширены свойства компонента меха, добавлены новые поля
Content.Shared/Mech/EntitySystems/SharedMechSystem.cs Обновлена система взаимодействия с механизмами
Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs Изменены методы для поддержки стрельбы пилотами механизмов
Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/markers/spawners/mechs.ftl Добавлены новые записи для спавнеров мехов
Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/devices/electronics/exosuit_components.ftl Добавлены новые записи для компонентов экзоскелетов
Resources/Prototypes/_Goobstation/Entities/Objects/Devices/Electronics/mech.yml Добавлены новые электронные модули для различных мехов
Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml Добавлены новые боевые оружия для мехов
Resources/Prototypes/_Goobstation/Recipes/Lathes/mech_parts.yml Добавлены новые рецепты для механизированных частей

Sequence Diagram

sequenceDiagram
    participant User
    participant Mech
    participant MechSystem
    participant GunSystem
    
    User->>Mech: Enters/Pilots Mech
    Mech->>MechSystem: Update Pilot Status
    MechSystem->>GunSystem: Enable Mech Shooting
    User->>Mech: Attempts to Shoot
    GunSystem->>Mech: Validate Shooting Conditions
    Mech-->>GunSystem: Shooting Permitted
    GunSystem->>Mech: Execute Shooting Action
Loading

Этот диаграмма демонстрирует базовый процесс взаимодействия пользователя с механизмом и системой стрельбы.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added Статус: Требуется одобрение Ожидание разработчиков для принятия решений Изменения: C# Изменяет какие-либо файлы .cs Изменения: Локализация Изменяет какие-либо файлы .ftl Изменения: Спрайт Изменяет какие-либо файлы .json/.png в текстурах Изменения: YML Изменяет какие-либо файлы .yml and removed Статус: Требуется одобрение Ожидание разработчиков для принятия решений labels Dec 21, 2024
Copy link
Contributor

github-actions bot commented Dec 21, 2024

RSI Diff Bot; head commit 6fad568 merging into cf67c5f
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Objects/Specific/Mech/mecha_equipment.rsi

State Old New Status
mecha_air_tank Added
mecha_bin Added
mecha_camera Added
mecha_chainsword Added
mecha_radio Added
mecha_sleeper Added
mecha_syringegun Added
paddy_claw Added
paddyupgrade Added

Resources/Textures/_Goobstation/Objects/Specific/Mech/clarke_construction.rsi

State Old New Status
clarke0 Added
clarke1 Added
clarke10 Added
clarke11 Added
clarke12 Added
clarke13 Added
clarke14 Added
clarke15 Added
clarke16 Added
clarke2 Added
clarke3 Added
clarke4 Added
clarke5 Added
clarke6 Added
clarke7 Added
clarke8 Added
clarke9 Added
clarke_chassis Added
clarke_harness+o Added
clarke_harness Added
clarke_head+o Added
clarke_head Added
clarke_l_arm+o Added
clarke_l_arm Added
clarke_r_arm+o Added
clarke_r_arm Added
clarke_treads+o Added
clarke_treads Added

Resources/Textures/_Goobstation/Objects/Specific/Mech/durand_construction.rsi

State Old New Status
durand0 Added
durand1 Added
durand10 Added
durand11 Added
durand12 Added
durand13 Added
durand14 Added
durand15 Added
durand16 Added
durand17 Added
durand18 Added
durand2 Added
durand3 Added
durand4 Added
durand5 Added
durand6 Added
durand7 Added
durand8 Added
durand9 Added
durand_armor Added
durand_chassis Added
durand_harness+o Added
durand_harness Added
durand_head+o Added
durand_head Added
durand_l_arm+o Added
durand_l_arm Added
durand_l_leg+o Added
durand_l_leg Added
durand_r_arm+o Added
durand_r_arm Added
durand_r_leg+o Added
durand_r_leg Added

Resources/Textures/_Goobstation/Objects/Specific/Mech/gygax_construction.rsi

State Old New Status
gygax0 Added
gygax1 Added
gygax10 Added
gygax11 Added
gygax12 Added
gygax13 Added
gygax14 Added
gygax15 Added
gygax16 Added
gygax17 Added
gygax18 Added
gygax19 Added
gygax2 Added
gygax20 Added
gygax3 Added
gygax4 Added
gygax5 Added
gygax6 Added
gygax7 Added
gygax8 Added
gygax9 Added
gygax_armor Added
gygax_chassis Added
gygax_harness+o Added
gygax_harness Added
gygax_head+o Added
gygax_head Added
gygax_l_arm+o Added
gygax_l_arm Added
gygax_l_leg+o Added
gygax_l_leg Added
gygax_r_arm+o Added
gygax_r_arm Added
gygax_r_leg+o Added
gygax_r_leg Added

Resources/Textures/_Goobstation/Objects/Specific/Mech/ripleymkii_construction.rsi

State Old New Status
ripleymkii0 Added
ripleymkii1 Added
ripleymkii10 Added
ripleymkii11 Added
ripleymkii12 Added
ripleymkii13 Added
ripleymkii14 Added
ripleymkii15 Added
ripleymkii16 Added
ripleymkii17 Added
ripleymkii18 Added
ripleymkii19 Added
ripleymkii2 Added
ripleymkii20 Added
ripleymkii3 Added
ripleymkii4 Added
ripleymkii5 Added
ripleymkii6 Added
ripleymkii7 Added
ripleymkii8 Added
ripleymkii9 Added
ripleymkii_chassis Added
ripleymkii_harness+o Added
ripleymkii_harness Added
ripleymkii_l_arm+o Added
ripleymkii_l_arm Added
ripleymkii_l_leg+o Added
ripleymkii_l_leg Added
ripleymkii_r_arm+o Added
ripleymkii_r_arm Added
ripleymkii_r_leg+o Added
ripleymkii_r_leg Added
ripleymkii_upgrade_kit+o Added
ripleymkii_upgrade_kit Added

Edit: diff updated after 6fad568

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments.

🛑 Comments failed to post (78)
Resources/Locale/ru-RU/ss14-ru/prototypes/deltav/entities/clothing/head/hardsuit-helmets.ftl (1)

1-2: 🧹 Nitpick (assertive)

⚠️ Potential issue

Файл пуст: отсутствуют необходимые переводы

Файл локализации не содержит необходимых переводов для шлемов скафандров. Согласно описанию PR, здесь должны присутствовать переводы для различных типов шлемов, включая базовые, инженерные, медицинские и специализированные шлемы для СБ и ОБР.

Я могу помочь сгенерировать необходимые переводы в соответствии с установленными правилами локализации. Хотите, чтобы я предложил структуру переводов для этого файла?

Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/head/hardsuit-helmets.ftl (3)

3-4: 🧹 Nitpick (assertive)

Исправьте форматирование отступов

Используйте табуляцию вместо пробелов для отступов в строке с .desc


3-4: ⚠️ Potential issue

Исправьте описание и опечатку

  1. В слове "груп" пропущена буква "п"
  2. Описание не соответствует предмету: речь идёт о капитанах, хотя предмет предназначен для священников
ent-ClothingHeadHelmetHardsuitERTChaplain = Шлем скафандра ОБР священника
-    .desc = Защитный костюм, который носят капитаны груп быстрого реагирования на чрезвычайные ситуации.
+    .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-ClothingHeadHelmetHardsuitERTChaplain = Шлем скафандра ОБР священника
    .desc = Защитный костюм, который носят священники групп быстрого реагирования на чрезвычайные ситуации.

1-2: 🧹 Nitpick (assertive)

Удалите лишние пустые строки в начале файла

Файл начинается с двух пустых строк, которые следует удалить для поддержания чистоты кода.

-
-
ent-ClothingHeadHelmetHardsuitERTChaplain = Шлем скафандра ОБР священника
📝 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-ClothingHeadHelmetHardsuitERTChaplain = Шлем скафандра ОБР священника
Resources/Locale/en-US/ss14-ru/prototypes/entities/clothing/head/hardsuit-helmets.ftl (3)

69-74: 🧹 Nitpick (assertive)

Рекомендуется добавить более подробные описания

Описания для шлемов клоуна, мима и Санты слишком краткие и не предоставляют информации об их уникальных свойствах или характеристиках.

Рекомендуется расширить описания, указав особенности каждого шлема, например:

  • Для клоуна: указать специальные функции или взаимодействие с другим клоунским снаряжением
  • Для мима: описать уникальные характеристики или ограничения
  • Для Санты: добавить информацию о дополнительных праздничных функциях

1-6: ⚠️ Potential issue

Необходимо исправить регистр текста после знака равенства

Согласно правилам кодирования, все переводы, начинающиеся с "ent-", должны иметь текст с заглавной буквы после знака равенства.

Примените следующие изменения:

-ent-ClothingHeadHelmetHardsuitBasic = basic hardsuit helmet
+ent-ClothingHeadHelmetHardsuitBasic = Basic hardsuit helmet
-ent-ClothingHeadHelmetHardsuitAtmos = atmos hardsuit helmet
+ent-ClothingHeadHelmetHardsuitAtmos = Atmos hardsuit helmet
-ent-ClothingHeadHelmetHardsuitEngineering = engineering hardsuit helmet
+ent-ClothingHeadHelmetHardsuitEngineering = Engineering hardsuit helmet
📝 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-ClothingHeadHelmetHardsuitBasic = Basic hardsuit helmet
    .desc = A basic-looking hardsuit helmet that provides minor protection against most sources of damage.
ent-ClothingHeadHelmetHardsuitAtmos = Atmos hardsuit helmet
    .desc = A special hardsuit helmet designed for working in low-pressure, high thermal environments.
ent-ClothingHeadHelmetHardsuitEngineering = Engineering hardsuit helmet
    .desc = An engineering hardsuit helmet designed for working in low-pressure, high radioactive environments.

53-64: 🛠️ Refactor suggestion

Оптимизация повторяющихся описаний ERT шлемов

Все шлемы ERT имеют одинаковое описание. Следует использовать систему ссылок для избежания дублирования.

Рекомендуемые изменения:

ent-ClothingHeadHelmetHardsuitERTLeader = ERT leader hardsuit helmet
    .desc = A special hardsuit helmet worn by members of an emergency response team.
ent-ClothingHeadHelmetHardsuitERTChaplain = ERT chaplain hardsuit helmet
-    .desc = A special hardsuit helmet worn by members of an emergency response team.
+    .desc = { ent-ClothingHeadHelmetHardsuitERTLeader.desc }
ent-ClothingHeadHelmetHardsuitERTEngineer = ERT engineer hardsuit helmet
-    .desc = A special hardsuit helmet worn by members of an emergency response team.
+    .desc = { ent-ClothingHeadHelmetHardsuitERTLeader.desc }

И так далее для остальных ERT шлемов.

Committable suggestion skipped: line range outside the PR's diff.

Content.Shared/Mech/EntitySystems/SharedMechSystem.cs (6)

46-46: 🧹 Nitpick (assertive)

Новая зависимость на EntityWhitelistSystem: убедитесь в корректном использовании
Если логика whitelisting не используется повсеместно, целесообразно модульно оформлять эту функциональность.


59-59: 🧹 Nitpick (assertive)

Подписка на GotEmaggedEvent
Рекомендуется проверить, не будет ли других случаев, при которых нужно снять рестрикции на оборудование (например, при хакерских способах) и объединить их в общий метод.


141-141: 🧹 Nitpick (assertive)

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


206-206: 🧹 Nitpick (assertive)

Вызывается Dirty(uid, component) при переключении экипировки
Убедитесь, что дополнительная сериализация компонента не вызывает избыточный трафик по сети при частом переключении.


287-287: 🧹 Nitpick (assertive)

Вызов Dirty внутри TryChangeEnergy
Корректно, что вызывается Dirty после изменения ресурсов. Но не забывайте про оптимизацию – если вызов случается часто, можно добавить проверку на реальное изменение состояния.


456-463: ⚠️ Potential issue

Новый метод OnEmagged
Рекомендуется логгировать подобные действия, так как ломка меха — потенциально критичная операция. Также полезно добавить опцию отката для администраторов (admintools).

Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs (1)

69-69: 🧹 Nitpick (assertive)

Добавлен EntityWhitelistSystem
Если планируется проверка «кто может стрелять», whitelist может пригодиться. Но нужно убедиться, что нет дублирующих проверок в других системах.

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/melee/debug.ftl (1)

1-3: ⚠️ Potential issue

Требуется исправление нескольких критических проблем!

  1. Файл находится в неправильной языковой директории (en-US вместо ru-RU)
  2. Нарушено правило капитализации для записей, начинающихся с 'ent-'
  3. Отсутствует перевод на русский язык
  4. Опечатка в слове "Melle" (должно быть "Melee")

Предлагаемые изменения:

-ent-WeaponMechDebugMelle = debug bam
+ent-WeaponMechDebugMelee = Отладочное оружие ближнего боя
-    .desc = A robust thing.
+    .desc = Мощный боевой инструмент.
-    .suffix = Mech Weapon, DEBUG, Melee
+    .suffix = Оружие меха, ОТЛАДКА, Ближний бой
📝 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-WeaponMechDebugMelee = Отладочное оружие ближнего боя
    .desc = Мощный боевой инструмент.
    .suffix = Оружие меха, ОТЛАДКА, Ближний бой
Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/gun/industrial.ftl (1)

1-3: ⚠️ Potential issue

Файл находится в неправильной директории

Файл с английскими переводами находится в директории ru-RU. Его следует переместить в соответствующую директорию для английских переводов.

Переместите файл в директорию Resources/Locale/en-US/.

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/gun/special.ftl (1)

1-6: ⚠️ Potential issue

Необходимо использовать заглавные буквы после знака равенства

Согласно правилам локализации, все переводы, начинающиеся с 'ent-', должны начинаться с заглавной буквы после знака равенства. Примените следующие изменения:

-ent-WeaponMechSpecialMousetrapMortar = mousetrap mortar
+ent-WeaponMechSpecialMousetrapMortar = Mousetrap Mortar
-ent-WeaponMechSpecialBananaMortar = banana mortar
+ent-WeaponMechSpecialBananaMortar = Banana Mortar
📝 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-WeaponMechSpecialMousetrapMortar = Mousetrap Mortar
    .desc = Mounted mousetrap launcher.
    .suffix = Mech Weapon, Gun, Special, Mortar
ent-WeaponMechSpecialBananaMortar = Banana Mortar
    .desc = Mounted banana peel launcher.
    .suffix = Mech Weapon, Gun, Special, Mortar
Resources/Locale/ru-RU/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/mecha_equipment.ftl (1)

1-11: ⚠️ Potential issue

Отсутствуют переводы для оборудования мехов

Необходимо добавить соответствующие русские переводы для всех типов оборудования мехов. Использование пустых строк { "" } не рекомендуется.

Предлагаемый формат:

-ent-DebugMechEquipment = { "" }
+ent-DebugMechEquipment = Отладочное оборудование меха
    .suffix = DEBUG
-    .desc = { "" }
+    .desc = Отладочное оборудование для тестирования механик меха.

-ent-CombatMechEquipment = { "" }
+ent-CombatMechEquipment = Боевое оборудование меха
-    .desc = { "" }
+    .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-DebugMechEquipment = Отладочное оборудование меха
    .suffix = DEBUG
    .desc = Отладочное оборудование для тестирования механик меха.
ent-CombatMechEquipment = Боевое оборудование меха
    .desc = Специализированное боевое оборудование для мехов.
ent-IndustrialMechEquipment = { "" }
    .desc = { "" }
ent-SpecialMechEquipment = { "" }
    .desc = { "" }
ent-SmallMechEquipment = { "" }
    .desc = { "" }
Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/mecha_equipment.ftl (1)

1-11: ⚠️ Potential issue

Отсутствуют английские названия для оборудования мехов

Необходимо добавить соответствующие английские названия для всех типов оборудования мехов. Использование пустых строк { "" } не рекомендуется.

Предлагаемый формат:

-ent-DebugMechEquipment = { "" }
+ent-DebugMechEquipment = Debug Mech Equipment
    .suffix = DEBUG
-    .desc = { "" }
+    .desc = Debug equipment for testing mech mechanics.

-ent-CombatMechEquipment = { "" }
+ent-CombatMechEquipment = Combat Mech Equipment
-    .desc = { "" }
+    .desc = Specialized combat equipment for mechs.
📝 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-DebugMechEquipment = Debug Mech Equipment
    .suffix = DEBUG
    .desc = Debug equipment for testing mech mechanics.
ent-CombatMechEquipment = Combat Mech Equipment
    .desc = Specialized combat equipment for mechs.
ent-IndustrialMechEquipment = Industrial Mech Equipment
    .desc = Equipment designed for industrial mech operations.
ent-SpecialMechEquipment = Special Mech Equipment
    .desc = Specialized equipment for unique mech applications.
ent-SmallMechEquipment = Small Mech Equipment
    .desc = Compact equipment designed for smaller mech units.
Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/base.yml (1)

7-8: 💡 Codebase verification

Based on the search results, I can see that the price of 1 for mech weapons is unusually low compared to other items in the codebase, particularly:

  1. Other mech equipment has prices ranging from 100-500
  2. Regular weapons have prices ranging from 300-1500
  3. The mechs themselves cost between 1000-30000

I can generate the final response now:

Цена оружия меха требует корректировки

Текущая цена (1) значительно ниже стандартных цен на:

  • Компоненты мехов (100-500)
  • Обычное оружие (300-1500)
  • Сами мехи (1000-30000)

Рекомендуется установить цену в диапазоне 300-500 для соответствия общей экономике игры.

🔗 Analysis chain

Проверьте корректность цены

Установленная цена (1) кажется слишком низкой для оружия меха. Рекомендуется пересмотреть значение параметра price.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check prices of other mech weapons for comparison
rg "type: StaticPrice" -A 1

Length of output: 66484

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/melee/industrial.ftl (1)

1-6: ⚠️ Potential issue

Требуется перевод на русский язык!

Файл находится в директории en-US/ss14-ru, но содержит английский текст. Необходимо:

  1. Перевести все строки на русский язык
  2. Убедиться, что переводы начинаются с заглавной буквы после '='

Предлагаемый перевод:

-ent-WeaponMechMelleDrill = exosuit drill
-    .desc = Equipment for mining exosuits. This is the drill that'll pierce the rocks!
+ent-WeaponMechMelleDrill = Бур экзокостюма
+    .desc = Оборудование для добывающих экзокостюмов. Этот бур пробьёт любую породу!

-ent-WeaponMechMelleDrillDiamond = diamond-tipped exosuit drill
-    .desc = Equipment for mining exosuits. This is an upgraded version of the drill that'll pierce the rocks!
+ent-WeaponMechMelleDrillDiamond = Алмазный бур экзокостюма
+    .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-WeaponMechMelleDrill = Бур экзокостюма
    .desc = Оборудование для добывающих экзокостюмов. Этот бур пробьёт любую породу!
    .suffix = Mech Weapon, Melee, Industrial
ent-WeaponMechMelleDrillDiamond = Алмазный бур экзокостюма
    .desc = Оборудование для добывающих экзокостюмов. Это улучшенная версия бура, которая пробьёт любую породу!
    .suffix = Mech Weapon, Melee, Industrial
Resources/Locale/ru-RU/ss14-ru/prototypes/_lostparadise/entities/objects/weapons/guns/snipers/Snipers.ftl (2)

1-2: ⚠️ Potential issue

Требуется перевод и форматирование

Текст после знака '=' должен быть на русском языке и начинаться с заглавной буквы согласно требованиям к локализации.

-ent-LPPBaseWeaponLeverSniper = BaseWeaponSniperLever
-    .desc = A rooty tooty point and shooty.
+ent-LPPBaseWeaponLeverSniper = Рычажная Снайперская Винтовка
+    .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-LPPBaseWeaponLeverSniper = Рычажная Снайперская Винтовка
    .desc = Прицелься и стреляй, просто как дважды два.

3-4: ⚠️ Potential issue

Требуется перевод и пунктуация

Необходим перевод на русский язык и корректная пунктуация в описании.

-ent-LPPWeaponSniperLeverPravoved = Pravoved
-    .desc = See you soon... Space cowboy... Uses .45 magnum bullets
+ent-LPPWeaponSniperLeverPravoved = Правовед
+    .desc = До встречи... космический ковбой... Использует патроны калибра .45 магнум.
📝 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-LPPWeaponSniperLeverPravoved = Правовед
    .desc = До встречи... космический ковбой... Использует патроны калибра .45 магнум.
Resources/Locale/ru-RU/accent/southern.ftl (1)

9-12: ⚠️ Potential issue

Требуется локализация акцента

Новые записи акцента должны быть на русском языке, следуя шаблону существующих записей.

-accent-southern-words-5 = aren't
-accent-southern-words-replace-5 = ain't
-accent-southern-words-6 = are not
-accent-southern-words-replace-6 = ain't
+accent-southern-words-5 = не являются
+accent-southern-words-replace-5 = не будуть
+accent-southern-words-6 = не является
+accent-southern-words-replace-6 = не будеть
📝 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.

accent-southern-words-5 = не являются
accent-southern-words-replace-5 = не будуть
accent-southern-words-6 = не является
accent-southern-words-replace-6 = не будеть
Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Gun/base.yml (1)

1-18: 🧹 Nitpick (assertive)

Исправьте форматирование файла

Необходимо исправить следующие проблемы форматирования:

  • Добавьте пустую строку в конце файла
  • Исправьте отступы в компонентах (минимум 3 пробела)
  • Добавьте пробел перед комментарием в строке с Battery
🧰 Tools
🪛 yamllint (1.35.1)

[error] 6-6: wrong indentation: expected at least 3

(indentation)


[warning] 7-7: too few spaces before comment

(comments)


[error] 18-18: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/gun/debug.ftl (1)

1-9: ⚠️ Potential issue

Необходимо исправить форматирование и обеспечить согласованность описаний

Согласно руководству по написанию кода:

  1. Все переводы, начинающиеся с ent-, должны начинаться с заглавной буквы после знака =
  2. Желательно использовать согласованный подход к описаниям - либо все ссылаются на базовое описание, либо все имеют уникальные описания

Предлагаемые изменения:

-ent-WeaponMechDebugBallistic = debug bang
+ent-WeaponMechDebugBallistic = Debug Bang
-ent-WeaponMechDebugLaser = debug pow
+ent-WeaponMechDebugLaser = Debug Pow
-ent-WeaponMechDebugDisabler = debug tew
+ent-WeaponMechDebugDisabler = Debug Tew
📝 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-WeaponMechDebugBallistic = Debug Bang
    .suffix = Mech Weapon, DEBUG, Ballistic
    .desc = { ent-BaseMechWeaponRange.desc }
ent-WeaponMechDebugLaser = Debug Pow
    .desc = A weapon using light amplified by the stimulated emission of radiation.
    .suffix = Mech Weapon, DEBUG, Laser
ent-WeaponMechDebugDisabler = Debug Tew
    .desc = A self-defense weapon that exhausts organic targets, weakening them until they collapse.
    .suffix = Mech Weapon, DEBUG, Disabler
Resources/Locale/ru-RU/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/gun/debug.ftl (3)

1-3: ⚠️ Potential issue

Исправьте регистр после знака равенства

Согласно правилам локализации, все переводы, начинающиеся с ent-, должны начинаться с заглавной буквы после знака равенства.

Примените следующие изменения:

-ent-WeaponMechDebugBallistic = Дебаг бенг
+ent-WeaponMechDebugBallistic = Дебаг Бенг
📝 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-WeaponMechDebugBallistic = Дебаг Бенг
    .suffix = Мех оружие, ДЕБАГ, Балистическое
    .desc = { ent-BaseMechWeaponRange.desc }

4-6: ⚠️ Potential issue

Исправьте регистр и порядок суффикса/описания

Необходимо исправить регистр и поменять порядок суффикса и описания согласно стандартам.

Примените следующие изменения:

-ent-WeaponMechDebugLaser = Дебаг пов
-    .desc = Оружие, использующее свет, усиленный стимулированным излучением.
-    .suffix = Мех оружие, ДЕБАГ, Лазерное
+ent-WeaponMechDebugLaser = Дебаг Пов
+    .suffix = Мех оружие, ДЕБАГ, Лазерное
+    .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-WeaponMechDebugLaser = Дебаг Пов
    .suffix = Мех оружие, ДЕБАГ, Лазерное
    .desc = Оружие, использующее свет, усиленный стимулированным излучением.

7-9: ⚠️ Potential issue

Исправьте регистр и формат описания

Необходимо исправить регистр и формат многострочного описания.

Примените следующие изменения:

-ent-WeaponMechDebugDisabler = Дебаг тюу
-    .desc = Оружие самообороны, которое истощает органические цели, ослабляя их до тех пор, пока они не разрушатся.
-    .suffix = Мех оружие, ДЕБАГ, Станнер
+ent-WeaponMechDebugDisabler = Дебаг Тюу
+    .suffix = Мех оружие, ДЕБАГ, Станнер
+    .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-WeaponMechDebugDisabler = Дебаг Тюу
    .suffix = Мех оружие, ДЕБАГ, Станнер
    .desc = Оружие самообороны, которое истощает органические цели,
    ослабляя их до тех пор, пока они не разрушатся.
Resources/Locale/en-US/ss14-ru/prototypes/nyanotrasen/entities/clothing/head/hardsuit-helmets.ftl (1)

1-8: 💡 Codebase verification

⚠️ Potential issue

Файл локализации находится в некорректной директории

Файл находится в директории en-US/ss14-ru, хотя аналогичные файлы локализации для русского языка расположены в директории ru-RU. Это может привести к проблемам с локализацией, так как система будет искать английские переводы в неправильном месте.

  • Необходимо переместить файл из Resources/Locale/en-US/ss14-ru/prototypes/nyanotrasen/entities/clothing/head/hardsuit-helmets.ftl в соответствующую директорию в Resources/Locale/en-US/prototypes/nyanotrasen/entities/clothing/head/hardsuit-helmets.ftl
  • Убедитесь, что все файлы локализации находятся в правильных языковых директориях: английские в en-US, русские в ru-RU
🔗 Analysis chain

Проверьте расположение файла локализации

Файл содержит английские переводы, но находится в пути, содержащем ss14-ru. Это может привести к проблемам с локализацией.

Рекомендуется переместить файл в корректную директорию локализации для английского языка.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Поиск правильного расположения файлов локализации
fd -t f "hardsuit-helmets.ftl" | grep "/en-US/"

Length of output: 229


Script:

#!/bin/bash
# Проверим структуру директорий локализации для других языков
fd -t d "Locale"

# Проверим наличие других файлов в директории ss14-ru
fd . "Resources/Locale/en-US/ss14-ru"

# Поищем похожие файлы в других языковых директориях
fd -t f "hardsuit-helmets.ftl"

Length of output: 65639


Script:

#!/bin/bash
# Проверим структуру директорий для других языковых файлов
fd -t f "hardsuit-helmets.ftl" | grep -v "/en-US/"

# Проверим содержимое родительской директории ss14-ru
ls -la Resources/Locale/en-US/ss14-ru/

Length of output: 714

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/devices/electronics/exosuit_components.ftl (1)

1-12: ⚠️ Potential issue

Необходимо исправить регистр в переводах

Согласно правилам локализации, все переводы, начинающиеся с 'ent-', должны начинаться с заглавной буквы после знака '='. Требуется исправить следующие строки:

-ent-BaseExosuitParts = base components
+ent-BaseExosuitParts = Base Components
-ent-DurandArmorPlate = durand armor plates
+ent-DurandArmorPlate = Durand Armor Plates
-ent-GygaxArmorPlate = gygax armor plates
+ent-GygaxArmorPlate = Gygax Armor Plates
-ent-RipleyUpgradeKit = exosuit upgrade kit
+ent-RipleyUpgradeKit = Exosuit Upgrade Kit
-ent-MechAirTank = exosuit air tank
+ent-MechAirTank = Exosuit Air Tank
-ent-MechThruster = exosuit thruster
+ent-MechThruster = Exosuit Thruster
📝 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-BaseExosuitParts = Base Components
    .desc = { ent-BaseItem.desc }
ent-DurandArmorPlate = Durand Armor Plates
    .desc = Armor plates made of plasteel for Durand exosuit.
ent-GygaxArmorPlate = Gygax Armor Plates
    .desc = Armor plates made of steel for Gygax exosuit.
ent-RipleyUpgradeKit = Exosuit Upgrade Kit
    .desc = This kit allows you to assemble an exosuit Ripley MK-II.
ent-MechAirTank = Exosuit Air Tank
    .desc = A special air canister capable of holding a large amount of air.
ent-MechThruster = Exosuit Thruster
    .desc = A thruster with which the exosuit can safely move in the absence of gravity.
Resources/Locale/ru-RU/ss14-ru/prototypes/_goobstation/entities/objects/devices/electronics/exosuit_components.ftl (1)

6-6: 🧹 Nitpick (assertive)

Отсутствуют точки в конце предложений

Необходимо добавить точки в конце следующих описаний для соблюдения единообразия пунктуации:

-    .desc = Бронеплиты из стали для Гигакса
+    .desc = Бронеплиты из стали для Гигакса.
-    .desc = Этот набор позволит вам улучшить вашего РИПЛИ до модели MKII
+    .desc = Этот набор позволит вам улучшить вашего РИПЛИ до модели MKII.

Also applies to: 8-8

Resources/Locale/en-US/ss14-ru/prototypes/_lostparadise/entities/objects/decoration/halloween.ftl (1)

4-4: ⚠️ Potential issue

Требуются исправления в описаниях тыкв

Необходимо исправить пунктуацию и согласование множественного числа:

-    .desc = Small decorative pumpkin with brush marks on it
+    .desc = Small decorative pumpkin with brush marks on it.
-    .desc = Decorative pumpkins with brush marks on it
+    .desc = Decorative pumpkin with brush marks on it.

Также обратите внимание, что в строке 6 используется множественное число "pumpkins", хотя сущность описывает одну тыкву (согласно названию entity).

Also applies to: 6-6

Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Gun/industrial.yml (1)

23-23: 🧹 Nitpick (assertive)

Необходимо реализовать Plasma Cutter

TODO комментарий указывает на незавершенную работу. Пожалуйста, реализуйте Plasma Cutter или удалите комментарий, если эта функциональность не планируется в текущем PR.

Нужна помощь в реализации Plasma Cutter?

Resources/Locale/ru-RU/ss14-ru/prototypes/_goobstation/entities/objects/devices/electronics/mech.ftl (1)

1-1: ⚠️ Potential issue

Требуется капитализация значений после знака равенства

Согласно правилам кодирования, все переводы, начинающиеся с ent-, должны начинаться с заглавной буквы после знака равенства.

-ent-ClarkeCentralElectronics = центральный модуль контроля Кларка
+ent-ClarkeCentralElectronics = Центральный модуль контроля Кларка
-ent-ClarkePeripheralsElectronics = переферийный модуль контроля Кларка
+ent-ClarkePeripheralsElectronics = Переферийный модуль контроля Кларка

(и так далее для остальных строк)

Also applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/devices/electronics/mech.ftl (1)

1-1: ⚠️ Potential issue

Требуется капитализация значений после знака равенства

Согласно правилам кодирования, все переводы, начинающиеся с ent-, должны начинаться с заглавной буквы после знака равенства.

-ent-ClarkeCentralElectronics = clarke central control module
+ent-ClarkeCentralElectronics = Clarke central control module
-ent-ClarkePeripheralsElectronics = clarke peripherals control module
+ent-ClarkePeripheralsElectronics = Clarke peripherals control module

(и так далее для остальных строк)

Also applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15

Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/mecha_equipment.yml (2)

14-24: 🧹 Nitpick (assertive)

Рассмотрите возможность добавления базового класса для оборудования мехов

CombatMechEquipment и IndustrialMechEquipment имеют схожую структуру. Рекомендуется создать базовый абстрактный класс с общими компонентами для уменьшения дублирования кода.

Also applies to: 25-35

🧰 Tools
🪛 yamllint (1.35.1)

[error] 17-17: too many spaces inside brackets

(brackets)


[error] 17-17: too many spaces inside brackets

(brackets)


[error] 19-19: wrong indentation: expected at least 3

(indentation)


[error] 21-21: wrong indentation: expected at least 5

(indentation)


53-53: 🧹 Nitpick (assertive)

Добавьте задачу в систему отслеживания проектов

TODO комментарий о создании медицинского меха следует перенести в систему отслеживания задач проекта.

Хотите, чтобы я создал issue для отслеживания задачи по реализации медицинского меха?

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/markers/spawners/mechs.ftl (1)

1-31: 🧹 Nitpick (assertive)

⚠️ Potential issue

Файл находится в неправильной директории

Файл расположен в директории en-US/ss14-ru, что противоречит структуре локализации. Рекомендуется переместить файл в соответствующую директорию локализации.

Отсутствуют русские переводы

Согласно требованиям проекта, все прототипы должны быть на английском языке или содержать ссылку на перевод. Необходимо создать отдельный файл с русскими переводами в директории ru-RU.

Хотите, чтобы я помог создать файл с русскими переводами для этих сущностей?

Resources/Prototypes/_Goobstation/Damage/modifier_sets.yml (1)

77-79: 🧹 Nitpick (assertive)

Удалить лишние пустые строки

В конце файла есть лишние пустые строки.

  flatReductions:
    Blunt: 10
    Heat: 7
-
📝 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.

    Blunt: 10
    Heat: 7
🧰 Tools
🪛 yamllint (1.35.1)

[error] 79-79: too many blank lines

(1 > 0) (empty-lines)

Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Melee/industrial.yml (1)

25-25: 🧹 Nitpick (assertive)

Исправить форматирование комментариев

Комментарии должны иметь правильное количество пробелов:

-        Structural: 40 # ~10 seconds for solid wall / ~21 secods for reinforced wall
+        Structural: 40  # ~10 seconds for solid wall / ~21 seconds for reinforced wall
-        Structural: 60 # ~3 seconds for solid wall / 9 seconds for reinforced wall
+        Structural: 60  # ~3 seconds for solid wall / 9 seconds for reinforced wall

Также исправлена опечатка в слове "seconds".

Also applies to: 51-51

🧰 Tools
🪛 yamllint (1.35.1)

[warning] 25-25: too few spaces before comment

(comments)

Content.Shared/Interaction/ActivateInWorldEvent.cs (1)

33-52: 🧹 Nitpick (assertive)

Улучшить документацию Complex свойства

Документация для свойства Complex недостаточно подробна. Рекомендуется добавить примеры того, что считается "сложным" и "базовым" взаимодействием.

    /// <summary>
    ///     Whether or not <see cref="User"/> can perform complex interactions or only basic ones.
+   ///     Complex interactions include: [список примеров сложных взаимодействий]
+   ///     Basic interactions include: [список примеров базовых взаимодействий]
    /// </summary>
    public bool Complex;

Committable suggestion skipped: line range outside the PR's diff.

Resources/Locale/ru-RU/ss14-ru/prototypes/actions/psionics.ftl (1)

24-24: 🛠️ Refactor suggestion

Требуется переработка описания

Текущее описание содержит прямую отсылку к D&D и использует специфическую терминологию (1к4, модификатор базовой характеристики), которая может быть непонятна игрокам, не знакомым с D&D. Рекомендуется переписать описание в контексте самой игры.

Предлагаемый вариант:

-    .desc = Заклинание из D&D, которое насколько вы помните, восстанавливает количество хитов, равное 1к4 + ваш модификатор базовой характеристики.
+    .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.

    .desc = Псионическая способность, позволяющая исцелять раны цели, восстанавливая небольшое количество здоровья.
Content.Server/_Goobstation/Mech/Equipment/EntitySystems/MechGunSystem.cs (4)

52-54: 🧹 Nitpick (assertive)

⚠️ Potential issue

Необходимо реализовать TODO и улучшить обработку энергии

Текущая реализация имеет несколько проблем:

  1. TODO указывает на незавершенную логику расхода энергии
  2. Отсутствует документация о том, как должен работать расход энергии
  3. Нет констант для минимальных значений энергии

Рекомендации:

  1. Определить константы для минимальных значений энергии
  2. Добавить документацию о механике расхода энергии
  3. Реализовать систему событий для отслеживания расхода энергии
+ private const float MinimumEnergyRequired = 0.1f;
+
+ /// <summary>
+ /// Проверяет возможность использования оружия меха на основе доступной энергии
+ /// </summary>
  private void ChargeGunBattery(EntityUid uid, BatteryComponent component)
  {
      // ... существующий код ...
-     if (chargeDelta <= 0 || mech.Energy - chargeDelta < 0)
+     if (chargeDelta <= MinimumEnergyRequired || mech.Energy - chargeDelta < MinimumEnergyRequired)
          return;

Committable suggestion skipped: line range outside the PR's diff.


13-16: ⚠️ Potential issue

Отсутствуют проверки на null в зависимостях

Несмотря на использование оператора default!, рекомендуется добавить проверки в конструкторе или методе Initialize() для предотвращения потенциальных NullReferenceException.

+ public override void Initialize()
+ {
+     base.Initialize();
+     SubscribeLocalEvent<MechEquipmentComponent, GunShotEvent>(MechGunShot);
+     
+     // Проверка зависимостей
+     ArgumentNullException.ThrowIfNull(_random);
+     ArgumentNullException.ThrowIfNull(_throwing);
+     ArgumentNullException.ThrowIfNull(_mech);
+     ArgumentNullException.ThrowIfNull(_battery);
+ }

Committable suggestion skipped: line range outside the PR's diff.


24-37: 🛠️ Refactor suggestion

Отсутствует обработка ошибок при выстреле

Метод MechGunShot молча возвращается в случае ошибок, что может затруднить отладку.

  private void MechGunShot(EntityUid uid, MechEquipmentComponent component, ref GunShotEvent args)
  {
      if (!component.EquipmentOwner.HasValue)
+     {
+         Logger.Warning($"Попытка выстрела из оружия меха без владельца: {uid}");
          return;
+     }

      if (!TryComp<MechComponent>(component.EquipmentOwner.Value, out var mech))
+     {
+         Logger.Warning($"Владелец оружия меха не имеет компонента MechComponent: {component.EquipmentOwner.Value}");
          return;
+     }

Committable suggestion skipped: line range outside the PR's diff.


1-61: 🧹 Nitpick (assertive)

Требуется добавить документацию для публичного класса

Отсутствует документация XML для публичного класса и его методов.

+ /// <summary>
+ /// Система управления оружием механизированных костюмов (мехов)
+ /// </summary>
  public sealed class MechGunSystem : EntitySystem

Committable suggestion skipped: line range outside the PR's diff.

Resources/Locale/ru-RU/cargo/cargo-console-component.ftl (1)

33-33: ⚠️ Potential issue

Требуется перевод на русский язык!

Строка оставлена на английском языке в файле русской локализации.

Предлагаемый перевод:

-cargo-console-unlock-approved-order-broadcast = [bold]{ $productName } x{ $orderAmount }[/bold], which cost [bold]{ $cost }[/bold], was approved by [bold]{ $approverName }, { $approverJob }[/bold]
+cargo-console-unlock-approved-order-broadcast = [bold]{ $productName } x{ $orderAmount }[/bold], стоимостью [bold]{ $cost }[/bold], был одобрен [bold]{ $approverName }, { $approverJob }[/bold]
📝 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.

cargo-console-unlock-approved-order-broadcast = [bold]{ $productName } x{ $orderAmount }[/bold], стоимостью [bold]{ $cost }[/bold], был одобрен [bold]{ $approverName }, { $approverJob }[/bold]
Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/gun/combat.ftl (5)

1-39: ⚠️ Potential issue

Файл находится в неправильной директории!

Файл размещен в директории en-US, но содержит смешанный контент на английском языке. Необходимо определиться с языком и переместить файл в соответствующую директорию локализации.


8-8: 🧹 Nitpick (assertive)

Исправьте опечатку в слове "higer"!

В описании лазерной пушки "Solaris" содержится опечатка.

-    .desc = An experimental combat mounted laser beam that fires far faster than the "Firedart" but at a much higer cost.
+    .desc = An experimental combat mounted laser beam that fires far faster than the "Firedart" but at a much higher cost.
📝 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.

    .desc = An experimental combat mounted laser beam that fires far faster than the "Firedart" but at a much higher cost.

22-24: ⚠️ Potential issue

Некорректное описание оружия!

Описание "Scattershot" скопировано с тазера, что не соответствует типу оружия (дробовик).

-    .desc = A mounted non-lethal taser that allows you to stun intruders.
+    .desc = A mounted combat shotgun that fires a spread of projectiles.
📝 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-WeaponMechCombatShotgun = LBX AC 10 "Scattershot"
    .desc = A mounted combat shotgun that fires a spread of projectiles.
    .suffix = Mech Weapon, Gun, Combat, Shotgun

37-39: ⚠️ Potential issue

Описание не соответствует типу оружия!

Описание гранатомёта со светошумовыми гранатами скопировано с ракетной установки.

 ent-WeaponMechCombatFlashbangLauncher = SGL-6 Flashbang Launcher
-    .desc = Launches low-explosive breaching missiles designed to explode only when striking a sturdy target.
+    .desc = Launches non-lethal flashbang grenades designed to disorient targets.
     .suffix = Mech Weapon, Gun, Combat, Flashbang
📝 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-WeaponMechCombatFlashbangLauncher = SGL-6 Flashbang Launcher
    .desc = Launches non-lethal flashbang grenades designed to disorient targets.
    .suffix = Mech Weapon, Gun, Combat, Flashbang

25-30: 🛠️ Refactor suggestion

Стандартизируйте описания похожего оружия!

Карабины "Hades" и "Ultra AC-2" имеют идентичные описания, но разные суффиксы (Shotgun vs Rifle). Необходимо уточнить различия в описаниях.

Предлагаемые изменения:

 ent-WeaponMechCombatShotgunIncendiary = FNX-99 "Hades" Carbine
-    .desc = Mounted carbine, firing incendiary cartridges.
+    .desc = Mounted shotgun carbine, firing spread incendiary cartridges.
     .suffix = Mech Weapon, Gun, Combat, Shotgun, Incendiary
 ent-WeaponMechCombatUltraRifle = Ultra AC-2
-    .desc = Mounted carbine, firing incendiary cartridges.
+    .desc = Mounted assault carbine, firing rapid incendiary rounds.
     .suffix = Mech Weapon, Gun, Combat, Rifle
📝 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-WeaponMechCombatShotgunIncendiary = FNX-99 "Hades" Carbine
    .desc = Mounted shotgun carbine, firing spread incendiary cartridges.
    .suffix = Mech Weapon, Gun, Combat, Shotgun, Incendiary
ent-WeaponMechCombatUltraRifle = Ultra AC-2
    .desc = Mounted assault carbine, firing rapid incendiary rounds.
    .suffix = Mech Weapon, Gun, Combat, Rifle
Resources/Locale/ru-RU/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/weapons/gun/combat.ftl (2)

1-2: ⚠️ Potential issue

Исправьте опечатку в описании

В описании присутствует опечатка: "импулсными" должно быть "импульсными".

-    .desc = Стреляет импулсными выстрелами.
+    .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-WeaponMechCombatPulseRifle = Тяжёлая импульсная винтовка eZ-14 mk2
    .desc = Стреляет импульсными выстрелами.

22-24: ⚠️ Potential issue

Несоответствие в описании оружия

Описание LBX AC 10 "Scattershot" указывает на электрошокер, что не соответствует типу оружия (дробовик).

-    .desc = Навесной нелетальный электрошокер, позволяющий оглушить злоумышленников.
+    .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-WeaponMechCombatShotgun = LBX AC 10 "Scattershot"
    .desc = Мощный дробовик, способный вести огонь очередями.
    .suffix = Мех оружие, Оружие, Боевое, Дробовик
Resources/Locale/ru-RU/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/mech_construction.ftl (2)

57-58: ⚠️ Potential issue

Отсутствует перевод на русский язык

Название шасси Гигакса оставлено на английском языке.

-ent-GygaxChassis = gygax chassis
+ent-GygaxChassis = Шасси Гигакса
📝 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-GygaxChassis = Шасси Гигакса
    .desc = Незавершенное строительство меха Гигакс.

14-20: ⚠️ Potential issue

Исправьте грамматическую ошибку

В описаниях частей Кларка присутствует ошибка в слове "пренадлежит" (правильно: "принадлежит").

-    .desc = Голова меха Кларка. Оно пренадлежит шасси данного меха.
+    .desc = Голова меха Кларка. Оно принадлежит шасси данного меха.

Committable suggestion skipped: line range outside the PR's diff.

Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/mechs.ftl (1)

1-8: ⚠️ Potential issue

Добавьте описания для базовых типов мехов

Следующие записи требуют заполнения описаний:

  • CombatMech
  • IndustrialMech
  • SpecialMech
  • SmallMech
Resources/Locale/en-US/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/mech_construction.ftl (2)

11-12: ⚠️ Potential issue

Текст после знака '=' должен начинаться с заглавной буквы

Необходимо исправить начальные буквы в следующих строках на заглавные.

-ent-ClarkeHarness = clarke harness
+ent-ClarkeHarness = Clarke harness
-ent-ClarkeRArm = clarke right arm
+ent-ClarkeRArm = Clarke right arm
-ent-ClarkeLArm = clarke left arm
+ent-ClarkeLArm = Clarke left arm
-ent-ClarkeTreads = clarke treads
+ent-ClarkeTreads = Clarke treads
-ent-DurandHarness = durand harness
+ent-DurandHarness = Durand harness
-ent-DurandLArm = durand left arm
+ent-DurandLArm = Durand left arm
-ent-DurandLLeg = durand left leg
+ent-DurandLLeg = Durand left leg
-ent-DurandRLeg = durand right leg
+ent-DurandRLeg = Durand right leg
-ent-DurandRArm = durand right arm
+ent-DurandRArm = Durand right arm
-ent-GygaxHarness = gygax harness
+ent-GygaxHarness = Gygax harness
-ent-GygaxLArm = gygax left arm
+ent-GygaxLArm = Gygax left arm
-ent-GygaxLLeg = gygax left leg
+ent-GygaxLLeg = Gygax left leg
-ent-GygaxRArm = gygax right arm
+ent-GygaxRArm = Gygax right arm

Also applies to: 15-16, 17-18, 19-20, 27-28, 31-32, 33-34, 35-36, 37-38, 45-46, 49-50, 51-52, 55-56


3-4: ⚠️ Potential issue

Текст после знака '=' должен начинаться с заглавной буквы

Согласно правилам локализации, все переводы, начинающиеся с 'ent-', должны иметь заглавную букву после знака '='.

-ent-RipleyMKIIHarness = ripley MK-II harness
+ent-RipleyMKIIHarness = Ripley MK-II harness
📝 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-RipleyMKIIHarness = Ripley MK-II harness
    .desc = The core of the Ripley MK-II.
Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Gun/debug.yml (2)

3-3: 🧹 Nitpick (assertive)

Исправьте форматирование массивов

Необходимо исправить пробелы внутри квадратных скобок.

-  parent: [ BaseMechWeaponRange, DebugMechEquipment ]
+  parent: [BaseMechWeaponRange, DebugMechEquipment]

Also applies to: 41-41, 73-73

🧰 Tools
🪛 yamllint (1.35.1)

[error] 3-3: too many spaces inside brackets

(brackets)


[error] 3-3: too many spaces inside brackets

(brackets)


[warning] 3-3: too few spaces before comment

(comments)


7-14: 🧹 Nitpick (assertive)

Исправьте отступы в компонентах

Отступы в компонентах должны быть согласованными.

   components:
-  - type: Sprite
-    sprite: Objects/Weapons/Guns/SMGs/c20r.rsi
-    layers:
-    - state: base
+    - type: Sprite
+      sprite: Objects/Weapons/Guns/SMGs/c20r.rsi
+      layers:
+        - state: base

Also applies to: 44-52, 75-83

🧰 Tools
🪛 yamllint (1.35.1)

[error] 7-7: wrong indentation: expected at least 3

(indentation)


[error] 10-10: wrong indentation: expected at least 5

(indentation)

Resources/Locale/ru-RU/ss14-ru/prototypes/_goobstation/entities/objects/specific/mech/mechs.ftl (3)

1-8: ⚠️ Potential issue

Заполните пустые переводы

Следующие сущности требуют перевода:

  • ent-CombatMech
  • ent-IndustrialMech
  • ent-SpecialMech
  • ent-SmallMech

38-39: 🛠️ Refactor suggestion

Обеспечьте единообразие перевода суффиксов

Необходимо использовать одинаковый формат для всех суффиксов батарей.

-    .suffix = Батарея, Заполнен
+    .suffix = Батарея, Заполненная

Also applies to: 46-47, 54-55, 62-63


20-20: ⚠️ Potential issue

Исправьте опечатку в слове "Батарея"

-    .suffix = Батаря, Заполнен
+    .suffix = Батарея, Заполнен
📝 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.

    .suffix = Батарея, Заполнен
Resources/Prototypes/_Goobstation/Entities/Objects/Devices/Electronics/mech.yml (1)

6-7: 🧹 Nitpick (assertive)

Имена сущностей должны быть с заглавной буквы

Согласно правилам именования, все имена сущностей должны начинаться с заглавной буквы после знака равенства.

Примените следующие изменения:

-  name: clarke central control module
+  name: Clarke Central Control Module
-  name: clarke peripherals control module
+  name: Clarke Peripherals Control Module
-  name: gygax central control module
+  name: Gygax Central Control Module
-  name: durand central control module
+  name: Durand Central Control Module

Also applies to: 24-25, 42-43, 60-61, 76-77, 94-95, 112-113, 128-129

Resources/Locale/ru-RU/commands/toolshed-commands.ftl (1)

22-22: ⚠️ Potential issue

Требуется перевод на русский язык

Описание команды rerollBounties должно быть переведено на русский язык для соответствия остальным локализациям.

Предлагаемое изменение:

-command-description-stations-rerollBounties = Clears all the current bounties for the station and gets a new selection.
+command-description-stations-rerollBounties = Очищает все текущие заказы станции и получает новый набор.
📝 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.

command-description-stations-rerollBounties = Очищает все текущие заказы станции и получает новый набор.
Resources/Prototypes/_Goobstation/Entities/Markers/Spawners/mechs.yml (3)

1-186: 🧹 Nitpick (assertive)

Рекомендуется группировка связанных прототипов

Для улучшения читаемости и поддерживаемости кода, рекомендуется сгруппировать связанные прототипы (Battery и Filled варианты) вместе.

Например, разместить SpawnMechMarauder и SpawnMechMarauderFilled рядом друг с другом.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 6-6: wrong indentation: expected at least 3

(indentation)


[error] 21-21: wrong indentation: expected 4 but found 2

(indentation)


[error] 35-35: wrong indentation: expected 4 but found 2

(indentation)


[error] 49-49: wrong indentation: expected 4 but found 2

(indentation)


[error] 63-63: wrong indentation: expected 4 but found 2

(indentation)


[error] 77-77: wrong indentation: expected 4 but found 2

(indentation)


[error] 92-92: wrong indentation: expected 4 but found 2

(indentation)


[error] 106-106: wrong indentation: expected 4 but found 2

(indentation)


[error] 121-121: wrong indentation: expected 4 but found 2

(indentation)


[error] 135-135: wrong indentation: expected 4 but found 2

(indentation)


[error] 150-150: wrong indentation: expected 4 but found 2

(indentation)


[error] 164-164: wrong indentation: expected 4 but found 2

(indentation)


[error] 179-179: wrong indentation: expected 4 but found 2

(indentation)


8-10: 💡 Codebase verification

Состояния спрайтов найдены и проверены

В файле Resources/Textures/Objects/Specific/Mech/mecha.rsi присутствуют все необходимые состояния спрайтов:

  • Состояние ripleymkii найдено и имеет 4 направления
  • Состояние green отсутствует, что может вызвать проблемы при отображении

Рекомендации:

  • Удалить или исправить ссылку на несуществующее состояние green
  • Убедиться, что все остальные состояния спрайтов, используемые в файле mechs.yml, присутствуют в mecha.rsi
🔗 Analysis chain

Проверьте наличие спрайтов мехов

Убедитесь, что все указанные состояния спрайтов существуют в файле Objects/Specific/Mech/mecha.rsi.

Also applies to: 23-25, 37-39, 51-53, 65-67, 79-81, 94-96, 108-110, 123-125, 137-139, 152-154, 166-168, 181-183


Let me check the contents of the RSI file to verify the sprite states.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Поиск файла спрайтов мехов
echo "Проверка наличия файла спрайтов:"
fd "mecha.rsi$"

# Примечание: Для полной проверки состояний спрайтов потребуется дополнительный инструмент для работы с .rsi файлами

Length of output: 200


Script:

#!/bin/bash
# Проверяем содержимое meta.json файла в RSI директории для получения списка состояний
echo "Состояния спрайтов в mecha.rsi:"
cat "Resources/Textures/Objects/Specific/Mech/mecha.rsi/meta.json" | jq -r '.states | keys[]'

Length of output: 354


Script:

#!/bin/bash
# Получаем полное содержимое meta.json для просмотра имен состояний
echo "Полное содержимое meta.json:"
cat "Resources/Textures/Objects/Specific/Mech/mecha.rsi/meta.json"

Length of output: 7259


12-13: 💡 Codebase verification

Обнаружены отсутствующие прототипы мехов

В файлах определений мехов не найдены следующие прототипы, которые используются в спавнере:

  • MechHonkerFilled (используется как отдельный прототип, но определен только как суффикс к MechHonkerBattery)
  • MechSeraphFilled (используется как отдельный прототип, но определен только как суффикс к MechSeraphBattery)
  • MechGygaxSyndieFilled (используется как отдельный прототип, но определен только как суффикс к MechGygaxSyndieBattery)
  • MechMaulerSyndieFilled (используется как отдельный прототип, но определен только как суффикс к MechMaulerSyndieBattery)

Необходимо:

  • Определить эти прототипы как отдельные сущности
  • Или исправить ссылки в спавнере на существующие прототипы с суффиксом "Battery"
🔗 Analysis chain

Проверьте существование прототипов мехов

Необходимо убедиться, что все прототипы мехов (MechRipley2Battery, MechHonkerFilled, и т.д.) определены в соответствующих файлах.

Also applies to: 27-28, 41-42, 55-56, 69-70, 83-84, 98-99, 112-113, 127-128, 141-142, 156-157, 170-171, 185-186

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Поиск определений прототипов мехов
echo "Поиск прототипов мехов:"
rg "- type: entity\s+id: (MechRipley2Battery|MechHonkerFilled|MechClarkeBattery|MechGygaxBattery|MechDurandBattery|MechMarauderBattery|MechSeraphBattery|MechGygaxSyndieBattery|MechMaulerSyndieBattery)"

Length of output: 665


Script:

#!/bin/bash
# Поиск определений прототипов мехов, исправленный запрос
echo "Поиск прототипов мехов:"
rg "type: entity.*id: MechRipley2Battery" -A 2
echo "---"
rg "type: entity.*id: MechHonkerFilled" -A 2
echo "---"
rg "type: entity.*id: MechClarkeBattery" -A 2
echo "---"
rg "type: entity.*id: MechGygaxBattery" -A 2
echo "---"
rg "type: entity.*id: MechDurandBattery" -A 2
echo "---"
rg "type: entity.*id: MechMarauderBattery" -A 2
echo "---"
rg "type: entity.*id: MechSeraphBattery" -A 2
echo "---"
rg "type: entity.*id: MechGygaxSyndieBattery" -A 2
echo "---"
rg "type: entity.*id: MechMaulerSyndieBattery" -A 2

# Дополнительный поиск всех файлов с определениями мехов
echo "\nФайлы с определениями мехов:"
fd "mech.*yml"

Length of output: 1878


Script:

#!/bin/bash
# Поиск определений прототипов мехов в конкретных файлах с мехами
echo "Поиск прототипов в файлах определений мехов:"
for file in Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/mechs.yml \
            Resources/Prototypes/_LostParadise/Entities/Objects/Specific/Mech/mechs.yml \
            Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml; do
    echo "\nПроверка файла: $file"
    if [ -f "$file" ]; then
        cat "$file"
    else
        echo "Файл не найден: $file"
    fi
done

Length of output: 22682

Resources/Prototypes/Research/industrial.yml (1)

19-19: 🧹 Nitpick (assertive)

Одобрено с замечанием по оформлению комментария

Функциональность корректна, но комментарий требует дополнительного пробела перед #.

-  - MechEquipmentDrill # Goobstation
+  - MechEquipmentDrill  # Goobstation
📝 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.

  - MechEquipmentDrill  # Goobstation
🧰 Tools
🪛 yamllint (1.35.1)

[warning] 19-19: too few spaces before comment

(comments)

Content.Shared/Mech/Components/MechComponent.cs (1)

16-21: 🧹 Nitpick (assertive)

Рекомендуется улучшить документацию

Документация для BreakOnEmag должна содержать более подробное описание функциональности:

  • При каких условиях мех отключается
  • Как долго длится отключение
  • Можно ли восстановить работоспособность
Resources/Prototypes/Research/arsenal.yml (1)

15-15: 🧹 Nitpick (assertive)

Требуется форматирование комментариев

Все комментарии требуют дополнительного пробела перед #:

-  - MechEquipmentKineticAccelerator # Goobstation
+  - MechEquipmentKineticAccelerator  # Goobstation
-  - WeaponMechCombatFiredartLaser # Goobstation
+  - WeaponMechCombatFiredartLaser  # Goobstation

Also applies to: 58-58, 90-90, 169-169, 219-219

🧰 Tools
🪛 yamllint (1.35.1)

[warning] 15-15: too few spaces before comment

(comments)

Resources/Locale/ru-RU/prototypes/entities/clothing/head/hardsuit-helmets.ftl (2)

36-36: 🧹 Nitpick (assertive)

Исправьте двойную точку в конце предложения

В тексте присутствует опечатка - двойная точка в конце предложения.

-        Представляет лучшую защиту, чем другие модели с такой же мобильностью..
+        Представляет лучшую защиту, чем другие модели с такой же мобильностью.
📝 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.

        Представляет лучшую защиту, чем другие модели с такой же мобильностью.

20-22: 🧹 Nitpick (assertive)

Исправьте форматирование слова "скафандра"

В тексте присутствует некорректное сокращение слова "скафандра".

-        Громоздкий элемент тактического сканд-ра Мк.II с потайным карманом.
+        Громоздкий элемент тактического скафандра Мк.II с потайным карманом.
📝 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.

    .desc =
        Громоздкий элемент тактического скафандра Мк.II с потайным карманом.
        Защищает своего владельца от баллистических и взрывоопасных предметов за счет потери мобильности.
Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/Gun/combat.yml (1)

222-230: 💡 Codebase verification

Подтверждаю наличие дисбаланса в характеристиках оружия

Анализ показывает значительное отклонение от средних показателей:

  • Скорострельность 6 является самой высокой среди всех видов оружия (другие образцы имеют значения от 0.4 до 5)
  • Стоимость выстрела 5 - одна из самых низких (другие образцы имеют затраты от 10 до 300)
  • Сочетание высокой скорострельности с низкой стоимостью выстрела создаёт явное преимущество

Рекомендации:

  • Увеличить стоимость выстрела минимум до 20-30 единиц
  • Либо снизить скорострельность до 2-3 выстрелов
🔗 Analysis chain

Проверить баланс оружия

Оружие имеет очень высокую скорострельность (6) при низкой стоимости выстрела (5), что может привести к дисбалансу в игре.


Let me search for the fireCost values to get a complete picture of the weapon balance.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Поиск других видов оружия для сравнения баланса
rg -A 2 "fireRate:" "Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/"

Length of output: 6385


Script:

#!/bin/bash
# Поиск стоимости выстрелов для сравнения баланса
rg -A 2 "fireCost:" "Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/Weapons/"

Length of output: 6207

Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Mech/mech_construction.yml (1)

16-17: 🛠️ Refactor suggestion

Некорректное форматирование названий

Названия компонентов меха должны начинаться с заглавной буквы для соблюдения единого стиля именования.

-  name: ripley MK-II harness
-  description: The core of the Ripley MK-II.
+  name: Ripley MK-II Harness
+  description: { "$loc": "mech-ripley-mk2-harness-desc" }

-  name: ripley MK-II chassis
-  description: An in-progress construction of the Ripley MK-II mech.
+  name: Ripley MK-II Chassis
+  description: { "$loc": "mech-ripley-mk2-chassis-desc" }

Also applies to: 61-62

Resources/Locale/ru-RU/accent/cowboy.ftl (1)

193-198: ⚠️ Potential issue

Необходимо перевести новые записи на русский язык

Все существующие записи в файле используют русский язык, но новые записи добавлены на английском. Это нарушает согласованность локализации.

Предлагаю следующие изменения:

-accent-cowboy-words-97 = yell
-accent-cowboy-replacement-97 = holler
-accent-cowboy-words-98 = yelled
-accent-cowboy-replacement-98 = hollered
-accent-cowboy-words-99 = yelling
-accent-cowboy-replacement-99 = hollering
+accent-cowboy-words-97 = кричать
+accent-cowboy-replacement-97 = горланить
+accent-cowboy-words-98 = кричал
+accent-cowboy-replacement-98 = горланил
+accent-cowboy-words-99 = кричащий
+accent-cowboy-replacement-99 = горланящий
📝 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.

accent-cowboy-words-97 = кричать
accent-cowboy-replacement-97 = горланить
accent-cowboy-words-98 = кричал
accent-cowboy-replacement-98 = горланил
accent-cowboy-words-99 = кричащий
accent-cowboy-replacement-99 = горланящий

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 88b52be and 377aa19.

📒 Files selected for processing (2)
  • Resources/Prototypes/_Goobstation/Recipes/Lathes/electronics.yml (1 hunks)
  • Resources/Prototypes/_Goobstation/Research/tags.yml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
Resources/Prototypes/_Goobstation/Recipes/Lathes/electronics.yml (1)

Pattern **/*.yml: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.

Все добавляемые прототипы должны быть в нашей папке.

Никогда не предлагать ничего по отступам

При удалении дополнительного дополнения по типу prob:, можно оставить оригинальную часть с - id:.

Resources/Prototypes/_Goobstation/Research/tags.yml (1)

Pattern **/*.yml: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.

Все добавляемые прототипы должны быть в нашей папке.

Никогда не предлагать ничего по отступам

При удалении дополнительного дополнения по типу prob:, можно оставить оригинальную часть с - id:.

🪛 yamllint (1.35.1)
Resources/Prototypes/_Goobstation/Research/tags.yml

[error] 104-104: no new line character at the end of file

(new-line-at-end-of-file)

🔇 Additional comments (6)
Resources/Prototypes/_Goobstation/Research/tags.yml (3)

89-89: ⚠️ Potential issue

Удалите русскоязычный комментарий

Согласно правилам кодирования, в прототипах запрещены переводы на русский язык. Пожалуйста, замените комментарий на английский.

-# TODO: Make medical mech, I will.
+# TODO: Implement medical mech variant

Likely invalid or redundant comment.


104-104: 🧹 Nitpick (assertive)

Добавьте пустую строку в конец файла

Согласно статическому анализу, в конце файла отсутствует символ новой строки.

 - type: Tag
   id: Gygax
+

Likely invalid or redundant comment.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 104-104: no new line character at the end of file

(new-line-at-end-of-file)


1-104: 🧹 Nitpick (assertive)

Улучшите организацию файла

Предлагаю добавить разделители между логическими группами тегов для улучшения читаемости:

 # Mechs
+
+# Clarke Components
 - type: Tag
   id: ClarkeCentralControlModule
 ...
+
+# Durand Components
 - type: Tag
   id: DurandArmor
 ...
+
+# Gygax Components
 - type: Tag
   id: GygaxArmor
 ...
+
+# Common Components
 - type: Tag
   id: MechAirTank
 ...
+
+# Mech Categories
 - type: Tag
   id: IndustrialMech
 ...
+
+# Mech Types
 - type: Tag
   id: RipleyMkII
 ...

Likely invalid or redundant comment.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 104-104: no new line character at the end of file

(new-line-at-end-of-file)

Resources/Prototypes/_Goobstation/Recipes/Lathes/electronics.yml (3)

1-71: Структура файла корректна!

Файл находится в правильной директории и имеет консистентную структуру YAML.


1-18: Проверить баланс материалов для рецептов Clarke

Требуется проверка баланса материалов:

  • Очень высокое требование стекла (900 единиц)
  • Одинаковые требования для центральной и периферийной электроники
✅ Verification successful

Let's check the actual glass requirements in these files to compare with Clarke electronics recipes.


Требования к стеклу в рецептах Clarke сбалансированы

Анализ показывает, что требование 900 единиц стекла соответствует общему балансу:

  • Аналогичное количество (800-900) используется в других электронных компонентах
  • Схожие требования в рецептах защитных костюмов и продвинутой электроники
  • Одинаковые требования для центральной и периферийной электроники оправданы их сложностью
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for other recipes with similar material requirements
rg -l "Glass: [89]00" Resources/Prototypes/

Length of output: 581


Script:

#!/bin/bash
# Get the context of glass requirements in other recipes
rg "Glass: [89]00" -B2 -A2 Resources/Prototypes/

Length of output: 20397


46-71: Проверить соответствие характеристик Durand игровому дизайну

Рецепты Durand отличаются от других мехов:

  • Использует серебро вместо золота
  • Время создания в два раза быстрее (4 вместо 8)

Необходимо подтвердить, что эти отличия соответствуют задуманному балансу.

✅ Verification successful

Подтверждено: уникальный баланс Durand соответствует дизайну

Анализ рецептов показывает, что Durand действительно имеет особый баланс по сравнению с другими мехами (Clarke, Gygax):

  • Использует 100 серебра вместо 300 золота
  • Время создания 4 единицы вместо 8
  • Требования к стали (100) и стеклу (900) идентичны другим мехам

Эти отличия последовательно применяются ко всем трём электронным компонентам Durand, что указывает на преднамеренный дизайн.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for other Durand-related prototypes to verify consistent design
rg "Durand" Resources/Prototypes/_Goobstation/

Length of output: 11799


Script:

#!/bin/bash
# Let's check other electronics recipes to compare materials and completion time
rg "completetime|materials" Resources/Prototypes/_Goobstation/Recipes/Lathes/electronics.yml

Length of output: 342


Script:

#!/bin/bash
# Let's see the full recipes to compare materials
cat Resources/Prototypes/_Goobstation/Recipes/Lathes/electronics.yml

Length of output: 1421

Comment on lines +1 to +104

- type: Tag
id: ClarkePeripheralsControlModule

- type: Tag
id: ClarkeHead

- type: Tag
id: ClarkeLArm

- type: Tag
id: ClarkeRArm

- type: Tag
id: ClarkeTreads

- type: Tag
id: DurandArmor

- type: Tag
id: DurandCentralControlModule

- type: Tag
id: DurandPeripheralsControlModule

- type: Tag
id: DurandTargetingControlModule

- type: Tag
id: DurandHead

- type: Tag
id: DurandLArm

- type: Tag
id: DurandLLeg

- type: Tag
id: DurandRArm

- type: Tag
id: DurandRLeg

- type: Tag
id: GygaxArmor

- type: Tag
id: GygaxCentralControlModule

- type: Tag
id: GygaxPeripheralsControlModule

- type: Tag
id: GygaxTargetingControlModule

- type: Tag
id: GygaxHead

- type: Tag
id: GygaxLArm

- type: Tag
id: GygaxLLeg

- type: Tag
id: GygaxRArm

- type: Tag
id: GygaxRLeg

- type: Tag
id: MechAirTank

- type: Tag
id: MechThruster

- type: Tag
id: RipleyMKIIUpgradeKit

- type: Tag
id: IndustrialMech

- type: Tag
id: CombatMech
# TODO: Make medical mech, I will.

- type: Tag
id: SpecialMech

- type: Tag
id: RipleyMkII

- type: Tag
id: Clarke

- type: Tag
id: Durand

- type: Tag
id: Gygax
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

💡 Codebase verification

Рекомендуется перенести теги в стандартную директорию

Обнаружено, что мех-компоненты и прототипы распределены по нескольким директориям, включая стандартную Resources/Prototypes/ и пользовательскую _Goobstation. Для поддержания согласованности кодовой базы:

  • Переместите файл tags.yml в Resources/Prototypes/Research/
  • Объедините определения тегов с существующими мех-прототипами в стандартной директории
  • Удалите дублирующиеся определения из _Goobstation
🔗 Analysis chain

Проверьте расположение файла

Файл находится в директории _Goobstation. Согласно правилам кодирования, все прототипы должны находиться в нашей папке.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if there are other prototypes in the standard location
fd -e yml -p "Resources/Prototypes/Research/tags.yml"

Length of output: 53


Script:

#!/bin/bash
# Check if there are any other prototype files in the standard Research directory
fd -e yml "Research" Resources/Prototypes/

# Check if there are any other mech-related files in the standard location
fd "mech|Mech" Resources/Prototypes/

Length of output: 1621

🧰 Tools
🪛 yamllint (1.35.1)

[error] 104-104: no new line character at the end of file

(new-line-at-end-of-file)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 377aa19 and 0ea187b.

📒 Files selected for processing (2)
  • Resources/Locale/ru-RU/lathe/lathe-categories.ftl (1 hunks)
  • Resources/Prototypes/_Goobstation/Research/arsenal.yml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
Resources/Prototypes/_Goobstation/Research/arsenal.yml (1)

Pattern **/*.yml: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.

Все добавляемые прототипы должны быть в нашей папке.

Никогда не предлагать ничего по отступам

При удалении дополнительного дополнения по типу prob:, можно оставить оригинальную часть с - id:.

Resources/Locale/ru-RU/lathe/lathe-categories.ftl (1)

Pattern **/*.ftl: Все повторяющиеся переводы должны быть написаны так:
Оригинальный перевод - id1 = text1
Повторяющийся, но с изменениями id2 = { id1 }
и если требуется .desc должен прописываться как { id1.desc }

А многострочные переводы начинающиеся со спецсимвола должны идти сначала id = спецсимвол текст и потом следующая строчка. Пример
id = спецсимвол текст
текст
спецсимвол текст

Все переводы начинающиеся с ent- должны быть с большой буквы после =. Даже после .desc и .suffix

🪛 yamllint (1.35.1)
Resources/Prototypes/_Goobstation/Research/arsenal.yml

[error] 13-13: wrong indentation: expected 4 but found 2

(indentation)


[error] 37-37: wrong indentation: expected 4 but found 2

(indentation)


[error] 39-39: wrong indentation: expected 4 but found 2

(indentation)


[error] 51-51: wrong indentation: expected 4 but found 2

(indentation)


[error] 64-64: wrong indentation: expected 4 but found 2

(indentation)

🔇 Additional comments (3)
Resources/Prototypes/_Goobstation/Research/arsenal.yml (3)

41-64: LGTM: Технология Durand корректно определена

Технология имеет правильную структуру, подходящие предварительные требования и сбалансированный набор рецептов разблокировки.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 51-51: wrong indentation: expected 4 but found 2

(indentation)


[error] 64-64: wrong indentation: expected 4 but found 2

(indentation)


27-39: 🧹 Nitpick (assertive)

Проверьте баланс стоимости технологии ExplosiveMechAmmunition

Стоимость технологии (15000) кажется высокой для единственного рецепта разблокировки. Рекомендуется либо добавить дополнительные рецепты, либо пересмотреть стоимость.

✅ Verification successful

Let me gather more information about technologies and their unlocks to make a better comparison.


Стоимость технологии ExplosiveMechAmmunition соответствует балансу

Сравнение с другими технологиями 3-го уровня показывает, что стоимость в 15000 является обоснованной:

  • Технология Durand того же уровня стоит 16000 и разблокирует 8 рецептов
  • ExplosiveMechAmmunition разблокирует специализированное вооружение (ракетную установку), что является значимым улучшением боевых возможностей
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Compare costs with similar technologies

# Search for other tier 3 technologies and their costs
rg "tier: 3" -A 5 "Resources/Prototypes/_Goobstation/Research/"

Length of output: 941


Script:

#!/bin/bash
# Search for all tier 3 technologies in arsenal research to see full context
rg -B 5 -A 10 "tier: 3" "Resources/Prototypes/_Goobstation/Research/arsenal.yml"

# Also search for any other technologies that unlock mech-related recipes
rg "WeaponMech|Mech" "Resources/Prototypes/_Goobstation/Research/arsenal.yml"

Length of output: 1091

🧰 Tools
🪛 yamllint (1.35.1)

[error] 37-37: wrong indentation: expected 4 but found 2

(indentation)


[error] 39-39: wrong indentation: expected 4 but found 2

(indentation)


3-23: 🧹 Nitpick (assertive)

Проверьте зависимости технологии Gygax

Технология Gygax является предварительным требованием для Durand, но у самой технологии Gygax нет предварительных требований. Возможно, стоит добавить базовые технологии в качестве предварительных требований.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 13-13: wrong indentation: expected 4 but found 2

(indentation)

Comment on lines +19 to +22
research-technology-gygax = Гигакс
research-technology-explosive-mech-ammunition = Взрывные Боеприпасы мехов
research-technology-durand = Дюранд
research-technology-honk-weapons = ХОНК вооружение
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Необходимо исправить регистр в названиях технологий

В соответствии с правилами локализации, слово "Боеприпасы" должно быть написано с маленькой буквы.

-research-technology-explosive-mech-ammunition = Взрывные Боеприпасы мехов
+research-technology-explosive-mech-ammunition = Взрывные боеприпасы мехов
📝 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
research-technology-gygax = Гигакс
research-technology-explosive-mech-ammunition = Взрывные Боеприпасы мехов
research-technology-durand = Дюранд
research-technology-honk-weapons = ХОНК вооружение
research-technology-gygax = Гигакс
research-technology-explosive-mech-ammunition = Взрывные боеприпасы мехов
research-technology-durand = Дюранд
research-technology-honk-weapons = ХОНК вооружение

Comment on lines +9 to +10
lathe-category-mechs-equipment = Мехи экипировка
lathe-category-mechs-weapons = Мехи оружие
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Рекомендуется использовать более точные формулировки

Текущие переводы могут быть улучшены для большей ясности:

-lathe-category-mechs-equipment = Мехи экипировка
-lathe-category-mechs-weapons = Мехи оружие
+lathe-category-mechs-equipment = Экипировка мехов
+lathe-category-mechs-weapons = Вооружение мехов
📝 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
lathe-category-mechs-equipment = Мехи экипировка
lathe-category-mechs-weapons = Мехи оружие
lathe-category-mechs-equipment = Экипировка мехов
lathe-category-mechs-weapons = Вооружение мехов

Copy link
Contributor

В этом ПР'е есть конфликты, пожалуйста, устраните их, прежде чем мы сможем оценить ваш ПР.

@github-actions github-actions bot added the Статус: Конфликт Ожидает починки. label Dec 21, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0ea187b and 7e2581f.

📒 Files selected for processing (2)
  • Resources/Prototypes/_Goobstation/Damage/modifier_sets.yml (1 hunks)
  • Resources/Prototypes/_Goobstation/Recipes/Lathes/mech_parts.yml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
Resources/Prototypes/_Goobstation/Damage/modifier_sets.yml (1)

Pattern **/*.yml: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.

Все добавляемые прототипы должны быть в нашей папке.

Никогда не предлагать ничего по отступам

При удалении дополнительного дополнения по типу prob:, можно оставить оригинальную часть с - id:.

Resources/Prototypes/_Goobstation/Recipes/Lathes/mech_parts.yml (1)

Pattern **/*.yml: так же в прототипах запрещены любые переводы на русский. Только на английском или ссылкой на перевод.

Все добавляемые прототипы должны быть в нашей папке.

Никогда не предлагать ничего по отступам

При удалении дополнительного дополнения по типу prob:, можно оставить оригинальную часть с - id:.

🪛 yamllint (1.35.1)
Resources/Prototypes/_Goobstation/Damage/modifier_sets.yml

[error] 73-73: too many blank lines

(1 > 0) (empty-lines)

🔇 Additional comments (8)
Resources/Prototypes/_Goobstation/Recipes/Lathes/mech_parts.yml (3)

1-18: 🧹 Nitpick (assertive)

Проверьте баланс материалов для Ripley MK-II

Соотношение материалов для Ripley MK-II кажется несбалансированным по сравнению с другими мехами:

  • Базовый каркас требует много стекла (1200) при относительно небольшом количестве стали (1500)
  • Комплект улучшения требует всего 500 стали, что кажется слишком дешевым

233-250: 🧹 Nitpick (assertive)

Проверьте баланс Bananium для оружия Honker

Разница в количестве Bananium между BananaMortar (800) и MousetrapMortar (300) кажется слишком большой. Рекомендуется:

  1. Уменьшить разрыв в стоимости
  2. Или добавить комментарий, объясняющий разницу в эффективности

1-268: 🧹 Nitpick (assertive)

Проверьте соответствие времени крафта

Почти все рецепты имеют время крафта 10, кроме VimHarness (5). Рекомендуется:

  1. Унифицировать время крафта
  2. Или добавить комментарий, объясняющий почему VimHarness крафтится быстрее
Resources/Prototypes/_Goobstation/Damage/modifier_sets.yml (5)

1-13: Конфигурация ThinArmor выглядит сбалансированной

Коэффициенты и плоские снижения урона логично отражают характеристики тонкой брони.


14-25: Прогрессия от ThinArmor к LightArmor корректна

Значения показывают логичное улучшение защитных характеристик.


1-73: Общий баланс брони выглядит хорошо продуманным

  • Четкая прогрессия защитных характеристик между уровнями брони
  • Логичные различия между фракциями NT и Syndicate
  • Обоснованное увеличение уязвимости к Shock с ростом толщины брони
🧰 Tools
🪛 yamllint (1.35.1)

[error] 73-73: too many blank lines

(1 > 0) (empty-lines)


26-49: ⚠️ Potential issue

Отсутствует тип урона Ion

В конфигурации брони NT отсутствует тип урона Ion, который может быть важен для механики боя мехов. Рекомендуется добавить коэффициенты для Ion damage.

Предлагаемые изменения:

  id: MediumArmorNT
  coefficients:
    Blunt: 0.6
    Slash: 0.6
    Piercing: 0.65
    Shock: 1.4
    Heat: 0.7
+   Ion: 1.2
  id: HeavyArmorNT
  coefficients:
    Blunt: 0.5
    Slash: 0.5
    Piercing: 0.35
    Shock: 1.8
    Heat: 0.6
+   Ion: 1.4

Likely invalid or redundant comment.


50-73: ⚠️ Potential issue

Отсутствует тип урона Ion в броне Syndicate

Аналогично броне NT, необходимо добавить тип урона Ion. При этом текущий баланс между фракциями хорошо проработан.

Предлагаемые изменения:

  id: MediumArmorSyndi
  coefficients:
    Blunt: 0.6
    Slash: 0.6
    Piercing: 0.6
    Shock: 1.4
    Heat: 0.75
+   Ion: 1.3
  id: HeavyArmorSyndi
  coefficients:
    Blunt: 0.5
    Slash: 0.5
    Piercing: 0.4
    Shock: 1.8
    Heat: 0.7
+   Ion: 1.5

Likely invalid or redundant comment.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 73-73: too many blank lines

(1 > 0) (empty-lines)

Comment on lines +19 to +63
# Clarke
- type: latheRecipe
id: ClarkeHarness
result: ClarkeHarness
category: Clarke
completetime: 10
materials:
Steel: 2000
Glass: 1500

- type: latheRecipe
id: ClarkeHead
result: ClarkeHead
category: Clarke
completetime: 10
materials:
Steel: 1550
Glass: 950

- type: latheRecipe
id: ClarkeLArm
result: ClarkeLArm
category: Clarke
completetime: 10
materials:
Steel: 900
Glass: 800

- type: latheRecipe
id: ClarkeRArm
result: ClarkeRArm
category: Clarke
completetime: 10
materials:
Steel: 900
Glass: 800

- type: latheRecipe
id: ClarkeTreads
result: ClarkeTreads
category: Clarke
completetime: 10
materials:
Steel: 950

Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Рассмотрите возможность объединения рецептов рук Clarke

Рецепты для левой и правой руки Clarke (ClarkeLArm и ClarkeRArm) идентичны по материалам. Рекомендуется:

  1. Объединить их в один рецепт, производящий обе руки
  2. Или добавить комментарий, объясняющий почему они разделены

Comment on lines +64 to +130
# Durand
- type: latheRecipe
id: DurandHarness
result: DurandHarness
category: Durand
completetime: 10
materials:
Steel: 2500
Glass: 2000
Silver: 1500

- type: latheRecipe
id: DurandArmor
result: DurandArmorPlate
category: Durand
completetime: 10
materials:
Steel: 3000
Silver: 900

- type: latheRecipe
id: DurandHead
result: DurandHead
category: Durand
completetime: 10
materials:
Steel: 1500
Glass: 800
Silver: 250
LPPDiamond: 100

- type: latheRecipe
id: DurandLArm
result: DurandLArm
category: Durand
completetime: 10
materials:
Steel: 1100
Silver: 250

- type: latheRecipe
id: DurandLLeg
result: DurandLLeg
category: Durand
completetime: 10
materials:
Steel: 1100
Silver: 250

- type: latheRecipe
id: DurandRLeg
result: DurandRLeg
category: Durand
completetime: 10
materials:
Steel: 1100
Silver: 250

- type: latheRecipe
id: DurandRArm
result: DurandRArm
category: Durand
completetime: 10
materials:
Steel: 1100
Silver: 250

Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Проверьте необходимость серебра в конечностях Durand

Каждая конечность Durand требует 250 серебра, что может сделать производство меха излишне дорогим. Рекомендуется:

  1. Уменьшить количество серебра в конечностях
  2. Или обосновать высокую стоимость особыми свойствами

Comment on lines +251 to +268
# Misc
- type: latheRecipe
id: MechAirTank
result: MechAirTank
category: MechEquipment
completetime: 10
materials:
Steel: 1000
Glass: 150

- type: latheRecipe
id: MechThruster
result: MechThruster
category: MechEquipment
completetime: 10
materials:
Steel: 1000
Glass: 150
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Рассмотрите объединение рецептов MechAirTank и MechThruster

Рецепты MechAirTank и MechThruster имеют идентичные требования к материалам. Предлагается:

  1. Объединить их в один рецепт, если они часто крафтятся вместе
  2. Или добавить комментарий, объясняющий почему они разделены

Comment on lines +191 to +200
# Vim
- type: latheRecipe
id: VimHarness
result: VimHarness
category: Vim # Goobstation
completetime: 5
materials:
Steel: 500
Glass: 200

Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Требуется пояснение для категории Vim

В строке 195 есть комментарий "# Goobstation", который может быть излишним, так как файл уже находится в директории _Goobstation.

- category: Vim # Goobstation
+ category: Vim
📝 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
# Vim
- type: latheRecipe
id: VimHarness
result: VimHarness
category: Vim # Goobstation
completetime: 5
materials:
Steel: 500
Glass: 200
# Vim
- type: latheRecipe
id: VimHarness
result: VimHarness
category: Vim
completetime: 5
materials:
Steel: 500
Glass: 200

Comment on lines +1 to +73
# Mech armor
- type: damageModifierSet
id: ThinArmor
coefficients:
Blunt: 0.8
Slash: 0.8
Piercing: 0.9
Shock: 1.2
Heat: 0.8
flatReductions:
Blunt: 3
Heat: 2

- type: damageModifierSet
id: LightArmor
coefficients:
Blunt: 0.75
Slash: 0.75
Piercing: 0.7
Shock: 1.2
Heat: 0.7
flatReductions:
Blunt: 5
Heat: 5

- type: damageModifierSet
id: MediumArmorNT
coefficients:
Blunt: 0.6
Slash: 0.6
Piercing: 0.65
Shock: 1.4
Heat: 0.7
flatReductions:
Blunt: 8
Heat: 10

- type: damageModifierSet
id: HeavyArmorNT
coefficients:
Blunt: 0.5
Slash: 0.5
Piercing: 0.35
Shock: 1.8
Heat: 0.6
flatReductions:
Blunt: 15
Heat: 15

- type: damageModifierSet
id: MediumArmorSyndi
coefficients:
Blunt: 0.6
Slash: 0.6
Piercing: 0.6
Shock: 1.4
Heat: 0.75
flatReductions:
Blunt: 8
Heat: 5

- type: damageModifierSet
id: HeavyArmorSyndi
coefficients:
Blunt: 0.5
Slash: 0.5
Piercing: 0.4
Shock: 1.8
Heat: 0.7
flatReductions:
Blunt: 10
Heat: 7

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Файл находится в неправильной директории

Согласно правилам проекта, все прототипы должны находиться в нашей папке, а не в _Goobstation.

Пожалуйста, перенесите файл в соответствующую директорию проекта.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 73-73: too many blank lines

(1 > 0) (empty-lines)

flatReductions:
Blunt: 10
Heat: 7

Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Лишние пустые строки в конце файла

Необходимо удалить дополнительные пустые строки в конце файла.

🧰 Tools
🪛 yamllint (1.35.1)

[error] 73-73: too many blank lines

(1 > 0) (empty-lines)

@Flybik
Copy link
Collaborator

Flybik commented Dec 21, 2024

Реши конфликты слияния.

@github-actions github-actions bot removed the Статус: Конфликт Ожидает починки. label Dec 21, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🔭 Outside diff range comments (3)
Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json (2)

Line range hint 28-31: Конфликтующие определения имен в одном объекте

В некоторых объектах состояний определено несколько свойств "name", что является некорректным JSON форматом:

{
  "name": "equipped-HELMET-tajaran",
  "name": "off-equipped-HELMET-vox",
  "directions": 4
}

Необходимо определить правильное имя состояния для каждого объекта. Если требуются оба состояния, их следует разделить на отдельные объекты:

{
  "states": [
    {
-      "name": "equipped-HELMET-tajaran",
      "name": "off-equipped-HELMET-vox",
      "directions": 4
    },
+    {
+      "name": "equipped-HELMET-tajaran",
+      "directions": 4
+    }
  ]
}

Also applies to: 40-44


Обнаружены проблемы с состояниями спрайтов

В файле meta.json найдены следующие проблемы:

  • Дублирующиеся состояния equipped-HELMET-tajaran (указано дважды)
  • Дублирующиеся состояния inhand-left (указано трижды)
  • Некоторые состояния имеют некорректное определение с двумя полями name в одном элементе

Необходимо исправить meta.json:

  • Удалить дублирующиеся состояния
  • Исправить элементы, где указано два поля name
  • Оставить только уникальные состояния, соответствующие имеющимся файлам спрайтов
🔗 Analysis chain

Line range hint 1-64: Проверьте корректность всех состояний спрайтов

Рекомендуется проверить, что все определенные состояния имеют соответствующие файлы спрайтов в директории.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that all defined states have corresponding sprite files

# Extract state names from meta.json
states=$(cat "Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json" | jq -r '.states[].name')

# Check for corresponding files in the same directory
for state in $states; do
  if [ ! -f "Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/$state.png" ]; then
    echo "Warning: Missing sprite file for state: $state"
  fi
done

Length of output: 1885


Script:

#!/bin/bash
# Let's check the actual files in the RSI directory
ls -la Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/

# Also let's check for duplicate state names in meta.json
jq -r '.states | map(.name) | group_by(.) | map(select(length > 1))[]' Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json

Length of output: 1272

Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/meta.json (1)

Обнаружены дублирующиеся состояния в файлах RSI

Анализ выявил дублирующиеся состояния в следующих файлах:

  • capspace.rsi: дублируются состояния "equipped-HELMET-tajaran" и "inhand-left"
  • deathsquad.rsi: дублируется состояние "on-inhand-right"

Рекомендуется удалить дублирующиеся записи из этих файлов meta.json для поддержания целостности спрайтов.

🔗 Analysis chain

Line range hint 1-47: Проверка других RSI файлов на наличие дубликатов

Рекомендуется проверить другие RSI файлы на наличие подобных дубликатов состояний.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for duplicate states in RSI meta.json files
# Note: This script uses jq to parse JSON and analyze state names

echo "Поиск дубликатов состояний в RSI файлах..."

find . -name "meta.json" -path "*/Resources/Textures/*/*.rsi/*" -exec sh -c '
    echo "\nПроверка файла: $1"
    jq -r ".states[].name" "$1" | sort | uniq -d
' sh {} \;

Length of output: 131070


Script:

#!/bin/bash
# Let's try a more focused approach to check for duplicate states in RSI files
# We'll look specifically at the deathsquad.rsi directory and similar hardsuits

echo "Checking deathsquad.rsi and related hardsuit RSIs for duplicate states..."

for file in $(find . -path "*/Resources/Textures/Clothing/Head/Hardsuits/*.rsi/meta.json"); do
  echo -e "\nAnalyzing $file:"
  jq -r '.states | map(.name) | sort | group_by(.) | map(select(length > 1)) | .[]' "$file"
done

Length of output: 16222

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7e2581f and 620e00e.

📒 Files selected for processing (3)
  • Resources/Locale/ru-RU/changelog/changelog-window.ftl (0 hunks)
  • Resources/Textures/Clothing/Head/Hardsuits/capspace.rsi/meta.json (2 hunks)
  • Resources/Textures/Clothing/Head/Hardsuits/deathsquad.rsi/meta.json (1 hunks)
💤 Files with no reviewable changes (1)
  • Resources/Locale/ru-RU/changelog/changelog-window.ftl

Comment on lines 20 to 23
{
"name": "equipped-HELMET-tajaran",
"directions": 4
},
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Обнаружены дублирующиеся состояния в meta.json

В файле присутствуют множественные дублирования состояний:

  • Состояние "equipped-HELMET-tajaran" определено несколько раз
  • Состояние "inhand-left" также имеет несколько определений

Это может привести к неопределенному поведению при рендеринге спрайтов.

Предлагаемое исправление:

{
  "states": [
    {
      "name": "equipped-HELMET",
      "directions": 4
    },
    {
      "name": "equipped-HELMET-tajaran",
      "directions": 4
    },
-    {
-      "name": "equipped-HELMET-tajaran",
-      "directions": 4
-    },
-    {
-      "name": "equipped-HELMET-tajaran",
-      "directions": 4
-    },
    {
      "name": "inhand-left",
      "directions": 4
    },
-    {
-      "name": "inhand-left",
-      "directions": 4
-    }
  ]
}

Also applies to: 50-53

Comment on lines +28 to +31
{
"name": "on-inhand-right",
"directions": 4
},
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Обнаружено дублирование состояния спрайта

В файле уже существует идентичное состояние "on-inhand-right" с теми же параметрами. Дублирование состояний может привести к неопределенному поведению при рендеринге спрайтов.

Примените следующие изменения для устранения дубликата:

-    {
-      "name": "on-inhand-right",
-      "directions": 4
-    },

@github-actions github-actions bot added the Статус: Конфликт Ожидает починки. label Dec 22, 2024
Copy link
Contributor

В этом ПР'е есть конфликты, пожалуйста, устраните их, прежде чем мы сможем оценить ваш ПР.

1 similar comment
Copy link
Contributor

В этом ПР'е есть конфликты, пожалуйста, устраните их, прежде чем мы сможем оценить ваш ПР.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Изменения: C# Изменяет какие-либо файлы .cs Изменения: YML Изменяет какие-либо файлы .yml Изменения: Локализация Изменяет какие-либо файлы .ftl Изменения: Спрайт Изменяет какие-либо файлы .json/.png в текстурах Статус: Конфликт Ожидает починки. Статус: Требуется одобрение Ожидание разработчиков для принятия решений
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants