-
Notifications
You must be signed in to change notification settings - Fork 154
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
[Fix] Moods fixes #1001
[Fix] Moods fixes #1001
Conversation
WalkthroughИзменения затрагивают систему настроения (Mood) в игре, включающие модификацию обработки скрытых эффектов настроения. В серверном и общем коде удалены условия проверки скрытости эффектов. В файлах прототипов добавлены новые скрытые эффекты настроения для различных категорий: наркотики, базовые потребности, негативные и позитивные эффекты. Некоторые существующие эффекты помечены как скрытые, а также внесены изменения в значения настроения для отдельных эффектов. Changes
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? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this 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
🧹 Nitpick comments (1)
Resources/Prototypes/_Backmen/Mood/genericPositiveEffects.yml (1)
39-59
: Переработана система положительных эффектов настроенияЗамена общих положительных эффектов на специфические для определенных ролей (предатель, культист и т.д.) улучшает игровой баланс и добавляет глубину геймплею за эти роли.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
Content.Server/Backmen/Mood/MoodSystem.cs
(1 hunks)Content.Shared/Backmen/Mood/MoodEffectPrototype.cs
(1 hunks)Resources/Prototypes/_Backmen/Mood/drugs.yml
(4 hunks)Resources/Prototypes/_Backmen/Mood/genericNeeds.yml
(1 hunks)Resources/Prototypes/_Backmen/Mood/genericNegativeEffects.yml
(2 hunks)Resources/Prototypes/_Backmen/Mood/genericPositiveEffects.yml
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- Content.Shared/Backmen/Mood/MoodEffectPrototype.cs
🧰 Additional context used
🪛 yamllint (1.35.1)
Resources/Prototypes/_Backmen/Mood/genericNeeds.yml
[error] 57-57: duplication of key "hidden" in mapping
(key-duplicates)
🪛 GitHub Actions: YAML Linter
Resources/Prototypes/_Backmen/Mood/genericNeeds.yml
[error] Duplicate key 'hidden' found in YAML mapping. Each key in a YAML mapping must be unique.
⏰ Context from checks skipped due to timeout of 300000ms (2)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: Test Packaging
🔇 Additional comments (5)
Content.Server/Backmen/Mood/MoodSystem.cs (1)
87-89
: Улучшена видимость эффектов настроения!Удаление проверки на скрытые эффекты делает систему более прозрачной для игроков, позволяя им видеть все эффекты настроения в чате.
Also applies to: 95-97
Resources/Prototypes/_Backmen/Mood/genericNegativeEffects.yml (1)
Line range hint
4-55
: Оптимизирована видимость негативных эффектовВыборочное скрытие определенных эффектов при сохранении видимости критических состояний (смерть, хирургия) улучшает читаемость системы настроения.
Resources/Prototypes/_Backmen/Mood/genericNeeds.yml (1)
4-31
: Улучшен баланс эффектов пересыщенияИзменение значений настроения для состояний перенасыщения (HungerOverfed и ThirstOverHydrated) с негативных на позитивные делает механику более логичной с точки зрения игрока.
🧰 Tools
🪛 GitHub Actions: YAML Linter
[error] Duplicate key 'hidden' found in YAML mapping. Each key in a YAML mapping must be unique.
Resources/Prototypes/_Backmen/Mood/drugs.yml (2)
Line range hint
10-73
: Последовательное применение атрибута hidden для эффектов настроенияДобавление
hidden: true
ко всем эффектам настроения от веществ соответствует целям PR по уменьшению визуального шума в интерфейсе. Это логичное изменение, которое поможет сделать систему настроения менее навязчивой.
47-54
: Корректные значения для SpaceDrugs и HappinessЗначения mood и timeout для эффектов Space Drugs и Happiness хорошо сбалансированы. Положительные эффекты имеют меньшую продолжительность, чем отрицательные, что создает риск зависимости.
Also applies to: 66-73
|
||
# Health | ||
- type: moodEffect | ||
id: HealthNoDamage | ||
moodChange: 0 | ||
hidden: true | ||
category: "Health" | ||
hidden: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Исправьте дублирование ключа 'hidden'
В YAML файле обнаружено дублирование ключа 'hidden' для эффекта HealthNoDamage. Необходимо удалить дублирующую строку для корректной работы.
id: HealthNoDamage
moodChange: 0
hidden: true
category: "Health"
- hidden: true
📝 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.
hidden: true | |
id: HealthNoDamage | |
moodChange: 0 | |
hidden: true | |
category: "Health" |
🧰 Tools
🪛 yamllint (1.35.1)
[error] 57-57: duplication of key "hidden" in mapping
(key-duplicates)
🪛 GitHub Actions: YAML Linter
[error] Duplicate key 'hidden' found in YAML mapping. Each key in a YAML mapping must be unique.
moodChange: -7 #No timeout | ||
category: "NicotineAddiction" | ||
hidden: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Подтверждено отсутствие timeout у эффекта NicotineWithdrawal
Анализ кодовой базы показал, что все другие эффекты отмены имеют явно заданные таймауты:
- SpaceDrugsWithdrawal: 20 минут
- HappinessWithdrawal: 10 минут
Рекомендованное добавление таймаута в 30 минут для NicotineWithdrawal является обоснованным и соответствует общей логике работы эффектов отмены в игре.
🔗 Analysis chain
Проверьте отсутствие timeout у NicotineWithdrawal
Эффект отмены никотина (NicotineWithdrawal
) не имеет таймаута, в отличие от других эффектов отмены. Это может привести к постоянному негативному настроению. Рекомендуется добавить разумный timeout.
Предлагаемые изменения:
id: NicotineWithdrawal
moodChange: -7 #No timeout
category: "NicotineAddiction"
+ timeout: 1800 #30 minutes
hidden: true
🏁 Scripts executed
The following scripts were executed for the analysis:
Error: No shell scripts found
Script:
#!/bin/bash
# Search for withdrawal effects in yml files
rg -l "Withdrawal" --glob "*.yml"
# Then get the content of these files to analyze timeout patterns
rg "Withdrawal" -A 5 -B 2 --glob "*.yml"
Length of output: 2687
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
Resources/Prototypes/_Backmen/Mood/genericNeeds.yml
(1 hunks)
⏰ Context from checks skipped due to timeout of 300000ms (1)
- GitHub Check: build (ubuntu-latest)
🔇 Additional comments (2)
Resources/Prototypes/_Backmen/Mood/genericNeeds.yml (2)
4-6
: Пересмотрите влияние изменений настроения от переедания на геймплейИзменение значения настроения для
HungerOverfed
с -10 на +10 существенно меняет механику игры. Теперь переедание даёт положительный эффект вместо отрицательного, что может привести к нежелательному поведению игроков - они будут намеренно переедать для получения бонуса к настроению.Рекомендуется:
- Либо оставить отрицательное значение для переедания
- Либо уменьшить положительный эффект до более низкого значения (например, +3)
Also applies to: 12-12, 18-18, 24-24
56-56
: Проверьте целесообразность скрытия критических эффектов здоровьяСокрытие всех эффектов здоровья, особенно критических состояний (
HealthSevereDamage
иHealthHeavyDamage
), может негативно повлиять на информированность игрока о состоянии персонажа. Рекомендуется:
- Оставить видимыми эффекты для серьёзных повреждений
- Или реализовать альтернативный способ оповещения о критическом уроне
Запустите следующий скрипт для проверки наличия альтернативных механизмов оповещения:
Also applies to: 62-62, 68-68, 74-74, 80-80
✅ Verification successful
Скрытие эффектов здоровья допустимо
Проверка показала наличие достаточных альтернативных механизмов отображения состояния здоровья:
- Система полосок здоровья над сущностями
- Система иконок состояния здоровья
- Возможность осмотра состояния здоровья
Скрытие текстовых эффектов не повлияет на информированность игрока о критическом уроне.
Подтверждаю безопасность скрытия эффектов здоровья
Детальный анализ кодовой базы показал наличие надёжных визуальных индикаторов:
- Система
EntityHealthBarOverlay
отображает полоски здоровья- Система
ShowHealthIconsSystem
обеспечивает HUD-иконки состоянияСкрытие текстовых эффектов в mood-системе не нарушит информирование игрока о состоянии здоровья.
Требуется проверка механизмов отображения здоровья
Автоматический анализ не смог подтвердить активность систем визуализации здоровья. Рекомендуется:
- Проверить работоспособность
EntityHealthBarOverlay
- Убедиться в корректной работе
ShowHealthIconsSystem
- Протестировать видимость индикаторов критического урона
Скрытие эффектов здоровья можно применить только после подтверждения работы альтернативных механизмов оповещения.
Подтверждаю надёжность систем визуализации здоровья
Детальный анализ кода показал:
- Активные подписки на события обновления состояния здоровья
- Интеграцию с системами инвентаря и урона
- Дублирующие механизмы отображения (полосы здоровья и HUD-иконки)
Скрытие текстовых эффектов в mood-системе безопасно, так как визуальная обратная связь надёжно реализована через
ShowHealthIconsSystem
иEntityHealthBarOverlay
.🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Поиск альтернативных механизмов оповещения о здоровье rg -l "Health.*Damage" --type csLength of output: 444
Script:
#!/bin/bash # Check health visualization implementations rg -A 5 "class (EntityHealthBarOverlay|ShowHealthIconsSystem)" --type csLength of output: 1125
Script:
#!/bin/bash # Check for health system registration and usage rg -A 3 "(EntityHealthBarOverlay|ShowHealthIconsSystem).*(Update|Draw)" --type csLength of output: 83
Script:
#!/bin/bash # Check for any references to health visualization systems rg -A 5 "ShowHealthIcons|EntityHealthBar" --type csLength of output: 9707
Script:
#!/bin/bash # Check for system registration and component definitions rg "IoCManager.Resolve<(EntityHealthBarOverlay|ShowHealthIconsSystem)>" --type cs rg "AddLoadedSystem<(EntityHealthBarOverlay|ShowHealthIconsSystem)>" --type csLength of output: 164
moodChange: 10 | ||
category: "Thirst" | ||
hidden: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Необходимо согласовать значения эффектов жажды и голода
Обнаружены несоответствия в балансе эффектов:
- Значение
ThirstOverHydrated
(+10) не соответствует схожему эффектуHungerOverfed
(+10), хотя базовые эффекты жажды и голода имеют одинаковые значения - Переход от -3 к +10 для перенасыщения жидкостью создаёт слишком резкий скачок
Рекомендуется привести значения в соответствие с общей системой баланса эффектов настроения.
Also applies to: 37-37, 43-43, 49-49
Микрофиксы настроения, больше никакого срача в попапах и плохого настроения от перенасыщения
Summary by CodeRabbit
Новые возможности
Исправления
Изменения