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

[Feature] [Balance] Mood Traits & Things #961

Merged
merged 8 commits into from
Dec 8, 2024
Merged

Conversation

Roudenn
Copy link
Collaborator

@Roudenn Roudenn commented Nov 29, 2024

Изменения в системе настроения

🆑 Rouden

  • add: Добавлены черты настроения, которые меняют уровень морали вашего персонажа.
  • tweak: Замедление или ускорение теперь более мягкие и требуют значительного настроения чтобы достичь.

🆑 Rxup

  • tweak: Ползать быстрей не помогает теперь обувь или что-то другое!

Summary by CodeRabbit

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

    • Обновлены параметры управления настроением, включая новые множители для хорошего и плохого настроения.
    • Добавлены новые эффекты настроения, такие как "Fortitude," "Hypomania," и "Depression."
    • Введены новые пороги настроения для более точного управления.
  • Исправления ошибок

    • Улучшена логика расчета эффектов настроения для повышения точности и эффективности.
  • Документация

    • Добавлены новые локализации для русскоязычных пользователей, включая описания новых черт.

@Roudenn Roudenn added No C# Нету кода. Feature Я хочу добавить что-то новое. labels Nov 29, 2024
@Roudenn Roudenn requested a review from Rxup as a code owner November 29, 2024 18:24
Copy link
Contributor

coderabbitai bot commented Nov 29, 2024

Walkthrough

В данном запросе на изменение были удалены классы и перечисления, связанные с управлением настроением, включая MoodComponent и MoodThreshold. В классе MoodSystem были добавлены новые множители для хорошего и плохого настроения, а также обновлены методы для улучшения логики расчета настроения. Внесены изменения в компоненты черт, добавлены новые эффекты настроения, а также обновлена локализация на русском языке.

Changes

Файл Изменения
Content.Server/Backmen/Mood/MoodComponent.cs Удален класс MoodComponent и перечисление MoodThreshold, включая все связанные поля и методы.
Content.Server/Backmen/Mood/MoodSystem.cs Добавлены поля GoodMoodMultiplier, BadMoodMultiplier; обновлены методы RefreshMood, OnTraitStartup, GetMovementThreshold, OnRemoveEffect.
Content.Server/Backmen/Traits/Assorted/ModifyMoodTraitComponent.cs Добавлены поля GoodMoodMultiplier, BadMoodMultiplier; обновлено поле MoodId.
Resources/Locale/ru-RU/backmen/mood/mood.ftl Добавлен новый эффект настроения: mood-effect-TraitFortitude.
Resources/Prototypes/_Backmen/Mood/genericNegativeEffects.yml Добавлен эффект TraitFortitude с изменением настроения -10; обновлен эффект SurgeryPain с изменением настроения -30.
Resources/Prototypes/_Backmen/Traits/categories.yml Добавлена новая категория черт: MoodTraits.
Resources/Prototypes/_Backmen/Traits/disabilities.yml Добавлена черта Monolingual.
Resources/Prototypes/_Backmen/Traits/neutral.yml Добавлены черты Fortitude, Hypomania, Depression; обновлена черта OwOAccent.
Resources/Locale/ru-RU/backmen/trait/Mood.ftl Добавлены локализации для черт Fortitude, Hypomania, Depression.
Content.Shared/Backmen/Mood/SharedMoodComponent.cs Переименован класс NetMoodComponent в MoodComponent; добавлены новые поля для управления настроением.
Content.Shared/Movement/Systems/MovementSpeedModifierSystem.cs Добавлены новые запросы сущностей для управления скоростью движения в зависимости от состояния (лежит/стоит).

Poem

В траве я сижу, в ушах ветерок,
Настроение ввысь, как в сказочном соку.
Множители счастья, пороги встают,
В мире настроений, радость цветет! 🐇✨
Новые черты, как цветы в саду,
Пусть каждый игрок в них счастье найдет!


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 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 size/L S: Untriaged Changes: Localization Can be reviewed or fixed by people who are knowledgeable with translation and removed S: Untriaged labels Nov 29, 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: 3

🧹 Outside diff range and nitpick comments (9)
Content.Server/Backmen/Traits/Assorted/ModifyMoodTraitComponent.cs (1)

12-16: Рекомендуется добавить документацию для новых полей

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

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

 [DataField]
+/// <summary>
+/// Множитель, применяемый к положительным эффектам настроения.
+/// </summary>
 public float GoodMoodMultiplier = 1.0f;

 [DataField]
+/// <summary>
+/// Множитель, применяемый к отрицательным эффектам настроения.
+/// </summary>
 public float BadMoodMultiplier = 1.0f;
Resources/Locale/ru-RU/backmen/trait/OwOAccent.ftl (1)

3-4: Рекомендуется перенести записи OwO акцента в отдельный файл

Записи OwO акцента находятся в файле с настроением, что нарушает организацию локализаций. Предлагается создать отдельный файл для акцентов.

Resources/Prototypes/_Backmen/Traits/neutral.yml (1)

18-50: Рекомендации по улучшению системы черт настроения

  1. Добавьте документацию, описывающую влияние множителей на геймплей
  2. Стандартизируйте диапазоны множителей для поддержания баланса
  3. Рассмотрите возможность добавления событий или триггеров для активации эффектов черт

Хотите, чтобы я помог составить документацию по системе множителей настроения?

Resources/Locale/ru-RU/backmen/mood/mood.ftl (1)

37-38: Новый эффект настроения соответствует требованиям

Перевод корректен и хорошо вписывается в общий стиль игры. Эффект настроения логично размещен после других негативных черт характера.

Для улучшения читаемости кода предлагаю добавить пустую строку после нового эффекта:

 mood-effect-TraitFortitude = Мне уже на всё плевать.
+
 mood-effect-Dead = Вы мертвы.
Content.Server/Backmen/Mood/MoodComponent.cs (2)

51-61: Рекомендуется добавить валидацию множителей настроения

Новые множители GoodMoodMultiplier и BadMoodMultiplier позволяют тонко настраивать влияние настроения, но стоит добавить проверку на отрицательные значения во избежание некорректного поведения.

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

    [DataField]
+   [ViewVariables(VVAccess.ReadWrite)]
    public float GoodMoodMultiplier = 1.0f;

    [DataField]
+   [ViewVariables(VVAccess.ReadWrite)]
    public float BadMoodMultiplier = 1.0f;

Также рекомендуется добавить проверку значений в конструкторе или методе Initialize():

private void ValidateMoodMultipliers()
{
    if (GoodMoodMultiplier < 0)
        GoodMoodMultiplier = 0;
    if (BadMoodMultiplier < 0)
        BadMoodMultiplier = 0;
}

63-67: Улучшить документацию новых пороговых значений

Для полей BuffsMoodThreshold и ConsMoodThreshold следует добавить более подробную документацию, объясняющую их влияние на игровую механику.

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

    [DataField]
+   /// <summary>
+   ///     Пороговое значение настроения, при котором начинают действовать положительные эффекты.
+   ///     Определяет минимальный уровень настроения для активации бонусов.
+   /// </summary>
    public MoodThreshold BuffsMoodThreshold = MoodThreshold.Good;

    [DataField]
+   /// <summary>
+   ///     Пороговое значение настроения, при котором начинают действовать отрицательные эффекты.
+   ///     Определяет максимальный уровень настроения для активации штрафов.
+   /// </summary>
    public MoodThreshold ConsMoodThreshold = MoodThreshold.Bad;
Content.Server/Backmen/Mood/MoodSystem.cs (3)

163-163: Удалите ненужную интерполяцию строк при использовании MoodId

Интерполяция строк не требуется, так как MoodId уже является строкой. Используйте просто component.MoodId без $"".


315-318: Устраните дублирование кода при расчете суммы настроения

Логика вычисления amount в обоих циклах повторяется. Рассмотрите возможность объединить эту логику для повышения читаемости и поддерживаемости кода.

Also applies to: 323-326


464-471: Убедитесь, что BuffsMoodThreshold больше или равен ConsMoodThreshold

Для корректной работы метода GetMovementThreshold важно, чтобы BuffsMoodThreshold было больше или равно ConsMoodThreshold. Проверьте настройки этих значений, чтобы избежать логических ошибок.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 5bb99f9 and ae45bf5.

📒 Files selected for processing (9)
  • Content.Server/Backmen/Mood/MoodComponent.cs (2 hunks)
  • Content.Server/Backmen/Mood/MoodSystem.cs (4 hunks)
  • Content.Server/Backmen/Traits/Assorted/ModifyMoodTraitComponent.cs (1 hunks)
  • Resources/Locale/ru-RU/backmen/mood/mood.ftl (1 hunks)
  • Resources/Locale/ru-RU/backmen/trait/OwOAccent.ftl (1 hunks)
  • Resources/Prototypes/_Backmen/Mood/genericNegativeEffects.yml (2 hunks)
  • Resources/Prototypes/_Backmen/Traits/categories.yml (1 hunks)
  • Resources/Prototypes/_Backmen/Traits/disabilities.yml (0 hunks)
  • Resources/Prototypes/_Backmen/Traits/neutral.yml (2 hunks)
💤 Files with no reviewable changes (1)
  • Resources/Prototypes/_Backmen/Traits/disabilities.yml
🔇 Additional comments (11)
Resources/Prototypes/_Backmen/Traits/categories.yml (1)

1-4: Структура и ограничения выглядят корректно

Категория черт характера определена правильно. Ограничение maxTraitPoints: 1 предотвращает накопление нескольких черт настроения у одного персонажа, что важно для баланса.

Content.Server/Backmen/Traits/Assorted/ModifyMoodTraitComponent.cs (2)

10-10: Одобрено упрощение инициализации MoodId!

Удаление явной инициализации null делает код чище, при этом сохраняя nullable-семантику поля.


12-16: Корректная реализация множителей настроения!

Новые поля GoodMoodMultiplier и BadMoodMultiplier хорошо вписываются в систему настроения:

  • Значения по умолчанию 1.0f логичны и не меняют базовое поведение
  • Поля правильно помечены атрибутом DataField
Resources/Locale/ru-RU/backmen/trait/OwOAccent.ftl (2)

1-1: Корректное определение категории!

Название категории соответствует контексту и правильно локализовано.


5-10: Проверьте тон описания депрессии и интеграцию с системой настроения

  1. Описание черты "Депрессия" использует слишком разговорный тон ("Чувак", "отстой"), что может не соответствовать общему стилю игры.
  2. Необходимо убедиться, что описания соответствуют механике влияния на настроение.
✅ Verification successful

Let me check the content of those YAML files to verify the integration.


Тон и механика реализованы корректно

Проверка показала, что:

  • Все три черты корректно интегрированы в систему настроения через компонент MoodModifyTrait
  • Черты имеют соответствующие эффекты настроения в genericNegativeEffects.yml
  • Разговорный тон в описании депрессии допустим, так как он соответствует общему настроению и механике черты TraitSaturnine (самый сильный негативный модификатор -20)
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Проверка интеграции с системой настроения
# Description: Check mood system integration

# Поиск связанных прототипов черт
rg -l "Fortitude|Hypomania|Depression" --type yaml

# Поиск использования в системе настроения
ast-grep --pattern 'class MoodSystem {
  $$$
  $_(Fortitude|Hypomania|Depression)$_
  $$$
}'

Length of output: 258


Script:

#!/bin/bash
# Check trait and mood system integration details
cat Resources/Prototypes/_Backmen/Traits/neutral.yml
cat Resources/Prototypes/_Backmen/Mood/genericNegativeEffects.yml

# Search for mood system implementation
rg -g "*.cs" "MoodSystem" -A 5

# Look for trait implementations
rg -g "*.cs" "Fortitude|Hypomania|Depression" -A 3

Length of output: 2806

Resources/Prototypes/_Backmen/Mood/genericNegativeEffects.yml (2)

66-67: Значительное усиление эффекта SurgeryPain

Увеличение штрафа к настроению в два раза (-30 вместо -15) при одновременном уменьшении длительности (90 вместо 180) создает более острый, но кратковременный эффект. Это хорошо соответствует реальным ощущениям от хирургического вмешательства.


44-47: Проверьте баланс нового эффекта настроения TraitFortitude

Постоянный отрицательный модификатор настроения -10 может быть слишком сильным для базовой черты характера. Рекомендуется рассмотреть возможность уменьшения значения или добавления компенсирующих бонусов.

✅ Verification successful

Let me check the trait definition and localization to better understand the balance context.


Отрицательный модификатор настроения TraitFortitude сбалансирован

Эффект является частью черты характера "Fortitude", которая уменьшает влияние всех эффектов настроения на 50% (goodMoodMultiplier: 0.5, badMoodMultiplier: 0.5). Постоянный отрицательный модификатор -10 компенсируется этим уменьшением влияния других эффектов, что делает персонажа более устойчивым к изменениям настроения. Это соответствует тематике черты характера, что подтверждается и локализацией "Мне уже на всё плевать".

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Поиск связанных определений и использования TraitFortitude
rg -l "TraitFortitude" 

Length of output: 178


Script:

#!/bin/bash
# Check the trait definition
cat Resources/Prototypes/_Backmen/Traits/neutral.yml

# Check the localization
cat Resources/Locale/ru-RU/backmen/mood/mood.ftl

Length of output: 4762

Resources/Prototypes/_Backmen/Traits/neutral.yml (2)

5-6: Корректное обновление существующей черты характера

Добавление категории и стоимости для черты OwOAccent соответствует стандартному формату черт характера.


19-29: Проверить балансировку множителей настроения

Черта Fortitude использует одинаковые множители 0.5 для хорошего и плохого настроения, что делает персонажа более эмоционально стабильным. Необходимо убедиться, что такое значение не делает систему настроения слишком пассивной.

✅ Verification successful

Множители настроения сбалансированы корректно

Анализ показывает, что множители 0.5 для черты Fortitude хорошо сбалансированы:

  • В сравнении с TraitSanguine (множитель 1.5) значение 0.5 создает правильный контраст между разными типами личности
  • Симметричные множители (0.5 для обоих типов настроения) соответствуют концепции эмоциональной стабильности
  • Эффект TraitFortitude существует в системе и правильно интегрирован с отрицательным изменением настроения (-10)
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Проверяем существование и реализацию TraitFortitude
rg "TraitFortitude" -A 5 "Resources/Prototypes/_Backmen/Mood/"

Length of output: 522


Script:

#!/bin/bash
# Поиск других черт с MoodModifyTrait для сравнения множителей
rg "MoodModifyTrait" -A 5 "Resources/Prototypes/_Backmen/Traits/"

# Поиск других эффектов настроения для TraitFortitude
rg "TraitFortitude" "Resources/Prototypes/_Backmen/Mood/"

Length of output: 1214

Content.Server/Backmen/Mood/MoodComponent.cs (1)

37-37: Корректное изменение минимального модификатора скорости!

Увеличение MinimumSpeedModifier с 0.75f до 0.90f делает штраф к скорости менее суровым, что соответствует целям PR по созданию более плавных изменений скорости персонажа.

Content.Server/Backmen/Mood/MoodSystem.cs (1)

401-404: Код корректно обновляет модификатор движения

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

@@ -0,0 +1,4 @@
- type: traitCategory
id: MoodTraits
name: trait-category-mood
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Codebase verification

Требуется добавление локализации для других языков

Ключ локализации 'trait-category-mood' найден только в русской локализации (ru-RU), но отсутствует в других языковых файлах. Необходимо:

  • Добавить ключ 'trait-category-mood' в файлы локализации для других поддерживаемых языков в директории Resources/Locale/
🔗 Analysis chain

Проверка наличия ключа локализации

Необходимо убедиться, что ключ локализации 'trait-category-mood' определен в файлах локализации.


Ключ локализации найден и корректно определен

Ключ локализации 'trait-category-mood' найден в файле локализации для русского языка (ru-RU).

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the localization key exists in the localization files
rg "trait-category-mood" Resources/Locale/

Length of output: 126


Script:

#!/bin/bash
# Проверим наличие ключа в других языковых файлах
fd . Resources/Locale/ -t f -e ftl --exec rg -l "trait-category-mood" {}

Length of output: 125

Comment on lines +42 to +50
- type: trait
id: Depression
name: trait-depression-name
description: trait-depression-desc
category: MoodTraits
cost: 1
components:
- type: MoodModifyTrait
moodId: TraitSaturnine
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

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

В реализации черты Depression полностью отсутствуют множители настроения, что может привести к некорректной работе этой черты.

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

  - type: MoodModifyTrait
    moodId: TraitSaturnine
+   goodMoodMultiplier: 0.8    # Пониженный положительный эффект
+   badMoodMultiplier: 1.3     # Усиленный отрицательный эффект
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- type: trait
id: Depression
name: trait-depression-name
description: trait-depression-desc
category: MoodTraits
cost: 1
components:
- type: MoodModifyTrait
moodId: TraitSaturnine
- type: trait
id: Depression
name: trait-depression-name
description: trait-depression-desc
category: MoodTraits
cost: 1
components:
- type: MoodModifyTrait
moodId: TraitSaturnine
goodMoodMultiplier: 0.8 # Пониженный положительный эффект
badMoodMultiplier: 1.3 # Усиленный отрицательный эффект

Comment on lines +31 to +40
- type: trait
id: Hypomania
name: trait-hypomania-name
description: trait-hypomania-desc
category: MoodTraits
cost: 1
components:
- type: MoodModifyTrait
moodId: TraitSanguine
badMoodMultiplier: 1.5 # Everything comes with a price.
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

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

В реализации черты Hypomania отсутствует goodMoodMultiplier. Наличие только отрицательного множителя 1.5 может сделать эту черту чрезмерно невыгодной для игрока.

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

  - type: MoodModifyTrait
    moodId: TraitSanguine
+   goodMoodMultiplier: 1.2    # Повышенный положительный эффект для баланса
    badMoodMultiplier: 1.5     # Everything comes with a price.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- type: trait
id: Hypomania
name: trait-hypomania-name
description: trait-hypomania-desc
category: MoodTraits
cost: 1
components:
- type: MoodModifyTrait
moodId: TraitSanguine
badMoodMultiplier: 1.5 # Everything comes with a price.
- type: trait
id: Hypomania
name: trait-hypomania-name
description: trait-hypomania-desc
category: MoodTraits
cost: 1
components:
- type: MoodModifyTrait
moodId: TraitSanguine
goodMoodMultiplier: 1.2 # Повышенный положительный эффект для баланса
badMoodMultiplier: 1.5 # Everything comes with a price.

@Roudenn Roudenn added Balance Для баланса вселенной. Ready2Merge PR готов к внесению в репозиторий. labels Dec 1, 2024
Copy link
Contributor

github-actions bot commented Dec 2, 2024

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

@Roudenn Roudenn removed the No C# Нету кода. label Dec 8, 2024
@Roudenn
Copy link
Collaborator Author

Roudenn commented Dec 8, 2024

@Rxup тут всё готово и работает

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: 0

🧹 Outside diff range and nitpick comments (4)
Content.Shared/Movement/Systems/MovementSpeedModifierSystem.cs (2)

14-15: Исправьте опечатку в имени переменной

Переменная _layerQuery содержит опечатку. Она используется для компонента LayingDownComponent, поэтому должна называться _layingQuery.

-private EntityQuery<LayingDownComponent> _layerQuery;
+private EntityQuery<LayingDownComponent> _layingQuery;

41-44: Упростите проверку условий

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

-if (_standingStateQuery.TryComp(uid, out var standing) &&
-    !standing.Standing &&
-    _layerQuery.TryComp(uid, out var layingDown))
+if (!_standingStateQuery.TryComp(uid, out var standing, out var layingDown) || 
+    (!standing.Standing && layingDown != null))
Content.Shared/Backmen/Mood/SharedMoodComponent.cs (2)

123-136: Рассмотрите порядок значений в перечислении MoodThreshold

Обратите внимание, что Dead имеет значение 0, а Insane1. Возможно, логичнее было бы изменить порядок значений, чтобы они отражали последовательность от худшего состояния (Dead) к лучшему (Perfect). Это может повысить ясность при использовании перечисления в коде.


113-120: Рекомендуется использовать enum вместо строковых ключей

В словаре HealthMoodEffectsThresholds используются строковые ключи для обозначения состояний здоровья, например "HealthHeavyDamage". Рекомендуется заменить эти строковые ключи на enum или константы. Это поможет избежать возможных ошибок из-за опечаток и улучшит читаемость и поддерживаемость кода.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between d528fc7 and e1441f1.

📒 Files selected for processing (4)
  • Content.Server/Backmen/Mood/MoodComponent.cs (0 hunks)
  • Content.Server/Backmen/Mood/MoodSystem.cs (5 hunks)
  • Content.Shared/Backmen/Mood/SharedMoodComponent.cs (1 hunks)
  • Content.Shared/Movement/Systems/MovementSpeedModifierSystem.cs (3 hunks)
💤 Files with no reviewable changes (1)
  • Content.Server/Backmen/Mood/MoodComponent.cs
🚧 Files skipped from review as they are similar to previous changes (1)
  • Content.Server/Backmen/Mood/MoodSystem.cs
🔇 Additional comments (3)
Content.Shared/Movement/Systems/MovementSpeedModifierSystem.cs (2)

17-23: Корректная инициализация запросов

Инициализация EntityQuery выполнена правильно, следуя стандартному паттерну.


37-55: Проверьте согласованность переименования переменных

После рефакторинга с использованием локальных переменных walkSpeedModifier и sprintSpeedModifier, убедитесь, что все места их использования обновлены корректно.

✅ Verification successful

The search results show that the only occurrences of ev.WalkSpeedModifier and ev.SprintSpeedModifier are the initial assignments to the local variables. Let me verify the complete context of the file to ensure there are no other inconsistencies.


Переименование переменных выполнено корректно

После проверки файла подтверждаю, что все использования локальных переменных walkSpeedModifier и sprintSpeedModifier согласованы. Переменные инициализируются значениями из ev и затем последовательно используются для модификации скорости и присвоения финальных значений в компоненте move. Несогласованностей в именовании не обнаружено.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify consistent usage of new variable names

# Search for any remaining direct usage of ev.WalkSpeedModifier or ev.SprintSpeedModifier
rg "ev\.(Walk|Sprint)SpeedModifier" --type cs

Length of output: 293


Script:

#!/bin/bash
# Get the full content of the file to verify variable usage
cat "Content.Shared/Movement/Systems/MovementSpeedModifierSystem.cs"

Length of output: 4120

Content.Shared/Backmen/Mood/SharedMoodComponent.cs (1)

1-136: Код выглядит отлично

Изменения в классе MoodComponent хорошо структурированы и корректны. Использование атрибута SendOnlyToOwner для отправки обновлений только владельцу компонента эффективно с точки зрения сетевого взаимодействия. Все поля и свойства правильно аннотированы и отражают улучшенную функциональность системы настроения.

@Rxup Rxup merged commit 77f3ae6 into Rxup:master Dec 8, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Balance Для баланса вселенной. Changes: Localization Can be reviewed or fixed by people who are knowledgeable with translation Feature Я хочу добавить что-то новое. Ready2Merge PR готов к внесению в репозиторий. size/L
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants