-
Notifications
You must be signed in to change notification settings - Fork 150
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
[Balance] FTL changes #956
Conversation
WalkthroughВ данном запросе на изменение были внесены изменения в три файла. В классе 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: 0
🧹 Outside diff range and nitpick comments (2)
Content.Server/Maps/GameMapPrototype.cs (1)
26-26
: Улучшите документацию для MaxRandomOffsetЗначение было изменено с 1000f на 256f, что соответствует балансировке FTL. Однако комментарий "backmen: ftl" недостаточно информативен. Предлагаю добавить более подробное описание влияния этого параметра на механику FTL.
Предлагаемое изменение:
- public float MaxRandomOffset = 256f; // backmen: ftl + public float MaxRandomOffset = 256f; // Максимальное случайное смещение для позиционирования карты при FTL-прыжкахContent.Shared/Shuttles/Systems/SharedShuttleSystem.cs (1)
22-22
: Улучшите стиль комментарияКомментарий "backmen: ftl" выглядит неформально и не соответствует стандартам документации кода.
- public const float FTLRange = 512f; // backmen: ftl + /// <summary> + /// Maximum range for FTL (Faster Than Light) jumps in meters. + /// </summary> + public const float FTLRange = 512f;
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (3)
Content.Server/Maps/GameMapPrototype.cs
(1 hunks)Content.Shared/Shuttles/Systems/SharedShuttleSystem.cs
(1 hunks)Resources/ConfigPresets/Backmen/main.toml
(1 hunks)
🔇 Additional comments (4)
Content.Server/Maps/GameMapPrototype.cs (1)
26-26
: Проверьте влияние на существующие карты
Уменьшение MaxRandomOffset с 1000f до 256f существенно ограничивает диапазон случайного смещения.
Выполните следующий скрипт для проверки использования MaxRandomOffset в картах:
✅ Verification successful
Let me check the actual usage of MaxRandomOffset in the code to understand its impact.
Based on the code analysis, I can now generate the final response:
Изменение MaxRandomOffset безопасно для существующих карт
Параметр MaxRandomOffset используется только при начальной загрузке карты для добавления случайного смещения. Уменьшение значения с 1000f до 256f не повлияет на существующие карты, так как:
- Смещение применяется только один раз при загрузке карты
- Значение используется исключительно для определения максимально возможного случайного отклонения при размещении
- Новое значение 256f достаточно для предотвращения наложения объектов в пространстве FTL
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Описание: Поиск использования MaxRandomOffset в файлах карт и связанных системах
# Поиск упоминаний MaxRandomOffset в коде
rg -l "MaxRandomOffset"
# Поиск файлов карт
fd -e yml -e yaml "." Resources/Maps/
# Поиск связанных систем FTL
rg -l "FTL|SharedShuttleSystem"
Length of output: 15991
Script:
#!/bin/bash
# Поиск использования MaxRandomOffset в коде с контекстом
rg -A 5 "MaxRandomOffset" Content.Server/Maps/GameMapPrototype.cs Content.Server/GameTicking/GameTicker.RoundFlow.cs
# Поиск связанных систем FTL с контекстом
rg -A 5 "FTLDestination|FTLComponent" Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
Length of output: 5945
Resources/ConfigPresets/Backmen/main.toml (1)
46-46
: Параметр cooldown соответствует целям PR
Значение в 60 секунд для задержки прыжков BSS корректно реализует заявленные изменения баланса и соответствует описанию в PR.
Content.Shared/Shuttles/Systems/SharedShuttleSystem.cs (2)
22-22
: Проверьте влияние увеличенной дальности FTL прыжка
Увеличение константы FTLRange
с 256 до 512 соответствует целям PR по балансировке. Однако такое значительное увеличение дальности может повлиять на игровой баланс.
Рекомендуется:
- Вынести значение в конфигурационный файл для упрощения балансировки
- Добавить телеметрию использования FTL прыжков для анализа влияния изменений
✅ Verification successful
Изменение дальности FTL прыжка подтверждено безопасным
Анализ кодовой базы показывает, что увеличение FTLRange
с 256 до 512 является безопасным изменением:
- Константа используется только для проверки дальности в методе
CanFTLTo
- Система имеет встроенные проверки безопасности:
- Проверка массы корабля через
FTLMassLimit
- Валидация целевых координат
- Система предотвращения столкновений при прибытии
- Проверка массы корабля через
- Изменение не влияет на производительность, так как используется только для простых проверок дальности
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Описание: Поиск других мест использования FTLRange для оценки влияния изменений
# Поиск использования константы
rg "FTLRange" --type cs
# Поиск связанных конфигураций
rg "ftl|jump|range" Content/Server/Shuttles/
Length of output: 592
Script:
#!/bin/bash
# Поиск всех файлов, связанных с шаттлами и FTL
fd -e cs shuttle
# Поиск использования GetFTLRange для анализа зависимостей
rg "GetFTLRange" -A 3
# Поиск кода, связанного с FTL прыжками
ast-grep --pattern 'class $_ {
$$$
CanFTLTo($$$) {
$$$
}
$$$
}'
Length of output: 5623
Script:
#!/bin/bash
# Поиск кода FTL в файле FasterThanLight.cs
cat Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs
# Поиск конфигурационных переменных, связанных с FTL
cat Content.Shared/CCVar/CCVars.Shuttle.cs
# Поиск использования FTL в консольной системе
cat Content.Server/Shuttles/Systems/ShuttleConsoleSystem.FTL.cs
Length of output: 51774
22-22
: Проверьте производительность с увеличенным радиусом поиска
Увеличение FTLRange
вдвое означает, что методы FTLFree
и GetBeacons
будут проверять значительно большую область пространства. Это может повлиять на производительность, особенно при большом количестве объектов.
Рекомендуется:
- Добавить кэширование результатов пространственных запросов
- Рассмотреть возможность асинхронного выполнения проверок
- Добавить профилирование для этих методов
Also applies to: 147-196
✅ Verification successful
Увеличение FTLRange не создаст проблем с производительностью
Анализ кода показывает, что увеличение FTLRange с 512f до 1024f не вызовет существенных проблем с производительностью по следующим причинам:
- FTLRange используется только для простых проверок расстояния через
.Length()
, что является легковесной операцией - Основные методы
FTLFree
иGetBeacons
не выполняют тяжелых пространственных запросов в зависимости от этого радиуса - Проверки выполняются только при запросе FTL-прыжка, а не в каждом кадре
- Существующая реализация уже оптимизирована:
- Использует быстрые проверки пересечений через AABB
- Имеет ранний выход из метода при превышении дистанции
- Кэширует результаты запросов через EntityQuery
Увеличение радиуса поиска в данном случае безопасно с точки зрения производительности.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Описание: Поиск потенциальных проблем производительности
# Поиск использования методов с пространственными проверками
ast-grep --pattern 'FTLFree($$$)'
ast-grep --pattern 'GetBeacons($$$)'
# Поиск связанных тестов производительности
rg "performance|benchmark" -g "*Test*.cs"
Length of output: 335
Script:
#!/bin/bash
# Поиск реализаций методов FTLFree и GetBeacons
ast-grep --pattern 'FTLFree($$$) {
$$$
}'
ast-grep --pattern 'GetBeacons($$$) {
$$$
}'
# Поиск использования FTLRange
rg "FTLRange" -A 3
# Поиск пространственных запросов и проверок расстояния
rg "GetEntitiesInRange|DistanceTo|Distance\(" -A 2
Length of output: 94
Script:
#!/bin/bash
# Поиск использования FTLRange с контекстом
rg "FTLRange" -B 2 -A 2
# Поиск всех файлов, связанных с шаттлами и FTL
fd -e cs -e yaml | rg -i "shuttle|ftl"
# Поиск пространственных проверок с другим паттерном
rg "Transform|Position|Coordinates" -g "*Shuttle*.cs" -A 2
Length of output: 106557
* Shitmed Update 2 - bottom text (Rxup#956) * full fucking send * ope forgot to remove the EE scripts * fix test * fix shitcode fail * DELTA THAT VALUE IS NULLABLE * whoopsie daysie * fixed??? * chat is this real * Hotfix for broken organ transplants (Rxup#933) * full fucking send * ope forgot to remove the EE scripts * fix test * fix shitcode fail * DELTA THAT VALUE IS NULLABLE * whoopsie daysie * fixed??? * allow cloning living people (Rxup#932) * allow cloning living people * fix client --------- Co-authored-by: deltanedas <@deltanedas:kde.org> * Added missing locale strings for limb targeting bindings (Rxup#921) * Added missing locale strings for limb targeting bindings * Moved the strings down where the rest of shitmed goes * Shitmed Update 1 - Forma de Goob (Rxup#897) * full fucking send * ope forgot to remove the EE scripts * fix test * fix shitcode fail * DELTA THAT VALUE IS NULLABLE * whoopsie daysie * fixes fixes add and fix shit * Fix Harpies --------- Co-authored-by: gluesniffler <[email protected]> Co-authored-by: deltanedas <[email protected]> Co-authored-by: AstroDogeDX <[email protected]>
@Roudenn |
Это имеет большее значение для спецсил, шаттловых ивентов и прочего того что спавнится на 0,0 координатах, им не удобно попадать на станцию и иногда надо действительно долго лететь БСС помимо экспедиций и вызова спецсил действительно мало используется, но все же это изменение делает игру просто удобнее для всех и просто экономит время |
Я просто оставляю FTL как средство перемещения между картами, либо метод для простого перемещения по одной карте. Что здесь удаляется? 20 секунд лишнего полета на обычных двигателях до нулевых координат? |
если это баланс то нужно какие-то минус сделать, в данный момент это гигантское упрощение. Может сделать именно параметрами у шаттла спец сил их дальностью прыжка? вроде это ставится компонентом, дальность генератора карт сделать до 512, а шаттлы спец сил сделать больше радиус, до 512 также (смысл будет в 2х прыжках как я думаю). |
Пока что рано менять тогда, может быть в будущем после обновы утилей поменяем цифорок |
🆑 Rouden
Summary by CodeRabbit
Новые функции
cooldown
для действий с шаттлом до 60 секунд.Изменения
MaxRandomOffset
на 256 для улучшения генерации карт.