[ADD]New antagonist - Blood Worm#400
Conversation
|
RSI Diff Bot; head commit 57c4ef2 merging into 5edf3cf Resources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi
Resources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi
Resources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi
Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_adult.rsi
Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_cocoon.rsi
Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_hatchling.rsi
Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_juvenile.rsi
Resources/Textures/_Ganimed/Objects/Weapons/Guns/Projectiles/blood_worm_spit.rsi
|
|
Warning Review limit reached
More reviews will be available in 3 minutes and 4 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughДобавлен полноценный антагонист «Blood Worm»: shared-события и action-контракты, серверные компоненты и система поведения, objective-системы, клиентские индикаторы и статус-иконки, прототипы мобов/действий/снарядов, интеграция в правила раунда и локализации EN/RU. ChangesBlood Worm Antagonist Feature
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes |
There was a problem hiding this comment.
Actionable comments posted: 11
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 74882fc1-476c-4182-85c0-77bf4590fa04
⛔ Files ignored due to path filters (37)
Resources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/inject_blood.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/invade_corpse.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/leave_host.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/leech_blood.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/mature_hatcling.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/mature_juveline.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/reproduce.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/revive_host.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/spit_blood.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/0.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/1.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/2.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/3.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/4.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/5.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/6.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/7.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/8.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/9.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/blood0.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi/HudBlood0.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi/HudBlood100.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi/HudBlood25.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi/HudBlood50.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi/HudBlood75.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Interface/Misc/job_icons.rsi/BloodWorm.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_adult.rsi/base.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_adult.rsi/dead.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_adult.rsi/invade.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_cocoon.rsi/medium.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_cocoon.rsi/reproduce.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_cocoon.rsi/small.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_hatchling.rsi/base.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_hatchling.rsi/dead.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_juvenile.rsi/base.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_juvenile.rsi/dead.pngis excluded by!**/*.pngResources/Textures/_Ganimed/Objects/Weapons/Guns/Projectiles/blood_worm_spit.rsi/worm_spit.pngis excluded by!**/*.png
📒 Files selected for processing (50)
Content.Client/ADT/BloodWorm/BloodWormResourceAlertSystem.csContent.Client/ADT/BloodWorm/BloodWormStatusIconSystem.csContent.Server/StationEvents/Events/VentCrittersRule.csContent.Server/_Ganimed/BloodWorm/Components/BloodWormComponent.csContent.Server/_Ganimed/BloodWorm/Components/BloodWormHostComponent.csContent.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormGrowthConditionComponent.csContent.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormTeamEscapeConditionComponent.csContent.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormGrowthConditionSystem.csContent.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormTeamEscapeConditionSystem.csContent.Server/_Ganimed/BloodWorm/Systems/BloodWormSystem.csContent.Shared/Roles/Components/BloodWormRoleComponent.csContent.Shared/_Ganimed/BloodWorm/Components/BloodWormInfectedComponent.csContent.Shared/_Ganimed/BloodWorm/Components/BloodWormResourceComponent.csContent.Shared/_Ganimed/BloodWorm/SharedBloodWorm.csResources/Locale/en-US/_Ganimed/blood-worm.ftlResources/Locale/en-US/_Ganimed/ghost/ghost-role-component.ftlResources/Locale/en-US/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftlResources/Locale/en-US/_Ganimed/prototypes/roles/antags.ftlResources/Locale/ru-RU/_Ganimed/actions/actions/blood-worm.ftlResources/Locale/ru-RU/_Ganimed/blood-worm.ftlResources/Locale/ru-RU/_Ganimed/communications/terror.ftlResources/Locale/ru-RU/_Ganimed/ghost/ghost-role-component.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/mobs/player/blood_worm.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/objects/weapons/guns/projectiles/blood_worm.ftlResources/Locale/ru-RU/_Ganimed/prototypes/roles/antags.ftlResources/Prototypes/ADT/GameRules/roundstart.ymlResources/Prototypes/GameRules/dynamic_rules.ymlResources/Prototypes/_Ganimed/Actions/blood_worm.ymlResources/Prototypes/_Ganimed/Alerts/blood_worm.ymlResources/Prototypes/_Ganimed/Entities/Markers/Spawners/ghost_roles.ymlResources/Prototypes/_Ganimed/Entities/Mobs/Player/blood_worm.ymlResources/Prototypes/_Ganimed/Entities/Objects/Weapons/Guns/Projectiles/projectiles.ymlResources/Prototypes/_Ganimed/GameRules/events_blood_worm.ymlResources/Prototypes/_Ganimed/Languages/blood_worm.ymlResources/Prototypes/_Ganimed/MindRoles/blood_worm.ymlResources/Prototypes/_Ganimed/Objectives/blood_worm.ymlResources/Prototypes/_Ganimed/Roles/Antags/blood_worm.ymlResources/Prototypes/_Ganimed/StatusIcon/antag.ymlResources/Prototypes/_Ganimed/ai_factions.ymlResources/Prototypes/threats.ymlResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/meta.jsonResources/Textures/_Ganimed/Interface/Alerts/blood_counter.rsi/meta.jsonResources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi/meta.jsonResources/Textures/_Ganimed/Interface/Misc/job_icons.rsi/meta.jsonResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_adult.rsi/meta.jsonResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_cocoon.rsi/meta.jsonResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_hatchling.rsi/meta.jsonResources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_juvenile.rsi/meta.jsonResources/Textures/_Ganimed/Objects/Weapons/Guns/Projectiles/blood_worm_spit.rsi/meta.json
📜 Review details
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Test Packaging
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2026-01-28T21:02:49.548Z
Learnt from: HyperB1
Repo: ss14-ganimed/Ganimed14 PR: 350
File: Resources/Locale/en-US/_Harmony/game-ticking/game-presets/preset-conspirator.ftl:14-14
Timestamp: 2026-01-28T21:02:49.548Z
Learning: Verify that locale FTl files under Resources/Locale maintain consistency with control keycodes. If a fork modifies a keycode (e.g., 'o' → 'г' in radio_channels.yml for a specific channel), the English (en-US) locale should be updated to reflect the intended behavior or explicitly document the exception. Ensure the English instruction uses the same keycode as the default/original behavior unless the fork’s logic requires a deliberate change, to avoid localization discrepancies.
Applied to files:
Resources/Locale/en-US/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftlResources/Locale/ru-RU/_Ganimed/communications/terror.ftlResources/Locale/en-US/_Ganimed/prototypes/roles/antags.ftlResources/Locale/ru-RU/_Ganimed/actions/actions/blood-worm.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/objects/weapons/guns/projectiles/blood_worm.ftlResources/Locale/ru-RU/_Ganimed/ghost/ghost-role-component.ftlResources/Locale/en-US/_Ganimed/ghost/ghost-role-component.ftlResources/Locale/ru-RU/_Ganimed/prototypes/roles/antags.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftlResources/Locale/en-US/_Ganimed/blood-worm.ftlResources/Locale/ru-RU/_Ganimed/blood-worm.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/mobs/player/blood_worm.ftl
📚 Learning: 2026-01-28T23:56:56.002Z
Learnt from: HyperB1
Repo: ss14-ganimed/Ganimed14 PR: 349
File: Resources/Locale/ru-RU/_Ganimed/ss14-ru/prototypes/entities/personalization/personalization_clothing.ftl:23-30
Timestamp: 2026-01-28T23:56:56.002Z
Learning: In localization files of the Ganimed14 repo, the prefix ent- denotes an entity pointer, not the prototype ID. When referencing descriptions of other entities, use the pattern { ent-EntityId.desc }, where EntityId is the prototype ID without the ent- prefix. This pattern applies to all .ftl files under the prototypes/entities directory (and similarly structured localization files) to ensure correct cross-entity references.
Applied to files:
Resources/Locale/en-US/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/objects/weapons/guns/projectiles/blood_worm.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftlResources/Locale/ru-RU/_Ganimed/prototypes/entities/mobs/player/blood_worm.ftl
🪛 GitHub Actions: YAML Linter / 0_YAML Linter.txt
Resources/Prototypes/_Ganimed/MindRoles/blood_worm.yml
[error] 10-14: YAML Linter reported: No localization message found with id role-subtype-blood-worm
🪛 GitHub Actions: YAML Linter / YAML Linter
Resources/Prototypes/_Ganimed/MindRoles/blood_worm.yml
[error] 10-10: Content.YAMLLinter reported: No localization message found with id role-subtype-blood-worm (at 10,14). Failed during step: "dotnet run --project Content.YAMLLinter/Content.YAMLLinter.csproj --no-build".
🔇 Additional comments (35)
Content.Server/_Ganimed/BloodWorm/Components/BloodWormComponent.cs (1)
7-127: LGTM!Content.Server/_Ganimed/BloodWorm/Components/BloodWormHostComponent.cs (1)
5-35: LGTM!Content.Shared/Roles/Components/BloodWormRoleComponent.cs (1)
5-10: LGTM!Content.Shared/_Ganimed/BloodWorm/Components/BloodWormInfectedComponent.cs (1)
7-12: LGTM!Content.Shared/_Ganimed/BloodWorm/Components/BloodWormResourceComponent.cs (1)
7-15: LGTM!Content.Shared/_Ganimed/BloodWorm/SharedBloodWorm.cs (1)
7-102: LGTM!Content.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormTeamEscapeConditionComponent.cs (1)
5-8: LGTM!Content.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormGrowthConditionSystem.cs (1)
14-38: LGTM!Content.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormTeamEscapeConditionSystem.cs (1)
19-57: LGTM!Resources/Prototypes/_Ganimed/Roles/Antags/blood_worm.yml (1)
1-6: LGTM!Content.Client/ADT/BloodWorm/BloodWormResourceAlertSystem.cs (1)
8-20: LGTM!Content.Client/ADT/BloodWorm/BloodWormStatusIconSystem.cs (1)
15-31: LGTM!Resources/Prototypes/_Ganimed/StatusIcon/antag.yml (1)
1-7: LGTM!Resources/Textures/_Ganimed/Interface/Misc/blood_bar.rsi/meta.json (1)
1-26: LGTM!Resources/Textures/_Ganimed/Interface/Misc/job_icons.rsi/meta.json (1)
4-24: LGTM!Resources/Prototypes/_Ganimed/Entities/Mobs/Player/blood_worm.yml (1)
1-276: LGTM!Resources/Prototypes/_Ganimed/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml (1)
1-10: LGTM!Resources/Prototypes/_Ganimed/Actions/blood_worm.yml (1)
112-112: Проверьте корректность statemature_juvelineв RSI
Для Line 112 (state: mature_juveline) убедитесь, что вResources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/meta.jsonприсутствует состояние с точным именемmature_juveline; иначе иконка действия в HUD может не отображаться.Resources/Prototypes/_Ganimed/Languages/blood_worm.yml (1)
1-16: LGTM!Resources/Prototypes/_Ganimed/ai_factions.yml (1)
1-26: LGTM!Resources/Textures/_Ganimed/Interface/Actions/blood_worm.rsi/meta.json (1)
1-38: LGTM!Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_adult.rsi/meta.json (1)
1-18: LGTM!Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_cocoon.rsi/meta.json (1)
1-20: LGTM!Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_hatchling.rsi/meta.json (1)
1-18: LGTM!Resources/Textures/_Ganimed/Mobs/Aliens/Blood_Worms/blood_worm_juvenile.rsi/meta.json (1)
1-18: LGTM!Resources/Textures/_Ganimed/Objects/Weapons/Guns/Projectiles/blood_worm_spit.rsi/meta.json (1)
1-14: Проверьте лицензию и первоисточник для blood_worm_spit.rsi/meta.jsonВ
Resources/Textures/_Ganimed/Objects/Weapons/Guns/Projectiles/blood_worm_spit.rsi/meta.jsonуказанаlicense: CC-BY-NC-4.0, тогда как для ассетов TGStation обычно применяетсяCC-BY-SA-3.0(если не указано иное). Ссылка вcopyrightна TGStation PR#93787не находится в upstream — уточните, корректный ли это источник и почему выбрана именно NC-4.0. Если остальные Blood Worm-асеты используютCC-BY-SA-3.0, приведите лицензию/метаданные этого файла к единообразию или обновите первоисточник.Resources/Locale/en-US/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftl (1)
1-2: LGTM!Resources/Locale/en-US/_Ganimed/prototypes/roles/antags.ftl (1)
1-2: Отсутствует соответствующий файл ru-RU локализации для ролей.В en-US добавлены строки
roles-antag-blood-worm-nameиroles-antag-blood-worm-objective, но в предоставленных файлах отсутствуетResources/Locale/ru-RU/_Ganimed/prototypes/roles/antags.ftl. Контекст stack явно указывает на его существование в PR. Пожалуйста, убедитесь, что русская локализация этих ролевых строк включена в PR.Resources/Locale/ru-RU/_Ganimed/actions/actions/blood-worm.ftl (1)
1-14: LGTM!Resources/Locale/ru-RU/_Ganimed/blood-worm.ftl (1)
1-30: LGTM!Resources/Locale/ru-RU/_Ganimed/communications/terror.ftl (1)
1-1: LGTM!Resources/Locale/ru-RU/_Ganimed/ghost/ghost-role-component.ftl (1)
1-2: LGTM!Resources/Locale/ru-RU/_Ganimed/prototypes/entities/markers/spawners/ghost_roles.ftl (1)
1-2: LGTM!Resources/Locale/ru-RU/_Ganimed/prototypes/entities/mobs/player/blood_worm.ftl (1)
1-12: LGTM!Resources/Locale/ru-RU/_Ganimed/prototypes/entities/objects/weapons/guns/projectiles/blood_worm.ftl (1)
1-2: Проверка English-локализаций Blood Worm: роли уже есть, projectile нужно доискать/добавить
Resources/Locale/ru-RU/_Ganimed/prototypes/roles/antags.ftl#L4-L5: соответствующие записи вResources/Locale/en-US/_Ganimed/prototypes/roles/antags.ftlприсутствуют (roles-antag-blood-worm-name,roles-antag-blood-worm-objective).Resources/Locale/ru-RU/_Ganimed/prototypes/entities/objects/weapons/guns/projectiles/blood_worm.ftl#L1-L2: ключent-BulletBloodWormSpitне находится вResources/Locale/en-US/_Ganimed/prototypes/entities/objects/weapons/guns/projectiles(в т.ч. проверить, что.descесть в English версии и/или ключ не лежит в другом en-US файле/папке).
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Content.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormGrowthConditionSystem.cs (1)
47-50:⚠️ Potential issue | 🟠 Major | ⚡ Quick winНе автозавершайте objective при невалидном
TargetConsumedBlood.Сейчас при
TargetConsumedBlood <= 0fцель сразу считается выполненной. Это маскирует ошибки и ломает прогресс objective.Предлагаемое исправление
private void OnGetProgress(Entity<BloodWormGrowthConditionComponent> ent, ref ObjectiveGetProgressEvent args) { if (ent.Comp.TargetConsumedBlood <= 0f) { - args.Progress = 1f; + args.Progress = 0f; return; }
♻️ Duplicate comments (1)
Resources/Prototypes/_Ganimed/Objectives/blood_worm.yml (1)
23-24:⚠️ Potential issue | 🟠 Major | ⚡ Quick winМаксимум цели роста расходится с заявленным диапазоном PR (6000–9000).
Здесь верхняя граница стоит
10000, из-за чего objective может выходить за целевой баланс.Предлагаемое исправление
- type: BloodWormGrowthCondition minTargetConsumedBlood: 6000 - maxTargetConsumedBlood: 10000 + maxTargetConsumedBlood: 9000
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 3fbae513-85f9-4446-a1ef-dfd917c1f54a
📒 Files selected for processing (10)
Content.Server/Antag/AntagSelectionSystem.csContent.Server/Objectives/ObjectivesSystem.csContent.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormGrowthConditionComponent.csContent.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormGrowthConditionSystem.csContent.Server/_Ganimed/BloodWorm/Systems/BloodWormSystem.csResources/Locale/en-US/_Ganimed/blood-worm.ftlResources/Locale/en-US/mind/role-types.ftlResources/Locale/ru-RU/_Ganimed/blood-worm.ftlResources/Locale/ru-RU/mind/role-types.ftlResources/Prototypes/_Ganimed/Objectives/blood_worm.yml
✅ Files skipped from review due to trivial changes (3)
- Resources/Locale/ru-RU/mind/role-types.ftl
- Content.Server/Antag/AntagSelectionSystem.cs
- Resources/Locale/en-US/_Ganimed/blood-worm.ftl
🚧 Files skipped from review as they are similar to previous changes (1)
- Resources/Locale/ru-RU/_Ganimed/blood-worm.ftl
📜 Review details
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Test Packaging
- GitHub Check: build (ubuntu-latest)
- GitHub Check: YAML Linter
- GitHub Check: YAML map schema validator
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-01-28T21:02:49.548Z
Learnt from: HyperB1
Repo: ss14-ganimed/Ganimed14 PR: 350
File: Resources/Locale/en-US/_Harmony/game-ticking/game-presets/preset-conspirator.ftl:14-14
Timestamp: 2026-01-28T21:02:49.548Z
Learning: Verify that locale FTl files under Resources/Locale maintain consistency with control keycodes. If a fork modifies a keycode (e.g., 'o' → 'г' in radio_channels.yml for a specific channel), the English (en-US) locale should be updated to reflect the intended behavior or explicitly document the exception. Ensure the English instruction uses the same keycode as the default/original behavior unless the fork’s logic requires a deliberate change, to avoid localization discrepancies.
Applied to files:
Resources/Locale/en-US/mind/role-types.ftl
🔇 Additional comments (3)
Resources/Locale/en-US/mind/role-types.ftl (1)
39-39: LGTM!Content.Server/_Ganimed/BloodWorm/Systems/BloodWormSystem.cs (1)
301-305: LGTM!Also applies to: 991-992
Content.Server/Objectives/ObjectivesSystem.cs (1)
134-222: LGTM!
There was a problem hiding this comment.
🧹 Nitpick comments (1)
Content.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormTeamEscapeConditionSystem.cs (1)
3-3: ИмпортCommandStaffComponentвBloodWormTeamEscapeConditionSystem.csсогласован с фактическим объявлением, но привязка к Revolutionary может быть архитектурно “течёющей”.
Content.Server.Revolutionary.Components.CommandStaffComponentдействительно объявлен вContent.Server/Revolutionary/Components/CommandStaffComponent.csи используется вBloodWormTeamEscapeConditionSystemкак маркер командного хоста (RequireCommandHost→HasComp<CommandStaffComponent>), так что выбранный компонент соответствует текущей логике.- При этом сам компонент описан как общий маркер “heads at round start” и переиспользуется не только в рамках Revolutionary, поэтому его размещение/namespace в
Revolutionaryвыглядит не самым удачным — рассмотрите перенос в более нейтральное пространство имён/папку для “command heads” (или переименование), чтобы избежать лишней связности с Revolutionary.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: b5a22b60-af6a-4198-80c4-02778eac8172
📒 Files selected for processing (9)
Content.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormReproductionConditionComponent.csContent.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormTeamEscapeConditionComponent.csContent.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormReproductionConditionSystem.csContent.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormTeamEscapeConditionSystem.csContent.Server/_Ganimed/BloodWorm/Systems/BloodWormSystem.csResources/Locale/en-US/_Ganimed/blood-worm.ftlResources/Locale/ru-RU/_Ganimed/blood-worm.ftlResources/Prototypes/_Ganimed/GameRules/events_blood_worm.ymlResources/Prototypes/_Ganimed/Objectives/blood_worm.yml
✅ Files skipped from review due to trivial changes (3)
- Content.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormReproductionConditionComponent.cs
- Resources/Locale/en-US/_Ganimed/blood-worm.ftl
- Resources/Locale/ru-RU/_Ganimed/blood-worm.ftl
🚧 Files skipped from review as they are similar to previous changes (1)
- Content.Server/_Ganimed/BloodWorm/Systems/BloodWormSystem.cs
📜 Review details
⏰ Context from checks skipped due to timeout of 900000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: YAML map schema validator
- GitHub Check: YAML Linter
- GitHub Check: Test Packaging
🔇 Additional comments (6)
Content.Server/_Ganimed/BloodWorm/Objectives/Components/BloodWormTeamEscapeConditionComponent.cs (1)
8-21: LGTM!Content.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormTeamEscapeConditionSystem.cs (1)
30-90: LGTM!Resources/Prototypes/_Ganimed/Objectives/blood_worm.yml (2)
23-24: Прошлый комментарий содержит фактическую ошибку.Предыдущий комментарий утверждал, что значение
max: 10000расходится с целями PR (6000-9000), однако в описании PR явно указано: "Goals: absorb 6,000–10,000 units of blood". Текущее значениеmaxTargetConsumedBlood: 10000полностью соответствует заявленному дизайну.
37-67: LGTM!Resources/Prototypes/_Ganimed/GameRules/events_blood_worm.yml (1)
1-34: LGTM!Content.Server/_Ganimed/BloodWorm/Objectives/Systems/BloodWormReproductionConditionSystem.cs (1)
22-35: Проверено:RequiredWormCountобъявлен в компоненте и доступен системе —BloodWormReproductionConditionComponentсодержит[DataField] public int RequiredWormCount = 3;, поэтому обращенияent.Comp.RequiredWormCount(и другие использования в системе) корректны.
|
Я все починил |



































Описание PR
Полный перенос антагониста с ТГ
Кровавые черви - это неудачный проект по созданию биологического оружия. Они могут превращать свои тела в кровь, чтобы заражать трупы людей, полностью захватывая тело и становясь новым хозяином тела.
Мидраунд антаг, минимальное количество для старта авто-ивента - 15 человек. При авто-ивенте спавнятся два спавнера личинок червя.
Сложность игры на антагонисте: Средняя.
Для развития червям необходимо поглощать кровь напрямую из кровотока живых существ.
У кровавых червей есть три стадии роста:
Способности:
Слабости:
Примечание: У разных стадий разное количество здоровья, поэтому для хостов, захваченных первой стадией необходимо меньше усилий для убийства червя, нежели для хостов, захваченных третьей.
Цели:
Технические детали
Разум владельца тела возвращается, если червь вышел из его тела.
Медиа
Хост имеет свою иконку, видимую для других червей:




Чек-лист
Список изменений
🆑 Gorox