Skip to content

fix: cancel organ insert step when no organ is inserted#549

Open
VSJ-Chan wants to merge 1 commit into
space-sunrise:masterfrom
VSJ-Chan:patch-1
Open

fix: cancel organ insert step when no organ is inserted#549
VSJ-Chan wants to merge 1 commit into
space-sunrise:masterfrom
VSJ-Chan:patch-1

Conversation

@VSJ-Chan

@VSJ-Chan VSJ-Chan commented Jun 4, 2026

Copy link
Copy Markdown

Краткое описание | Short description

Исправляет OnStepOrganInsertComplete: ветка !TryComp<OrganComponent> теперь выставляет args.IsCancelled = true перед выходом, как и соседняя ветка с InsertOrgan. Без этого шаг вживления органа засчитывался как выполненный при пустом слоте — орган в тело не попадал, но операция считалась успешной.

Ссылка на багрепорт/Предложение | Related Issue/Bug Report

#548

Changelog

🆑 VSJ-Chan

  • fix: Исправлен баг, при котором операция по вживлению органа завершалась успешно, не вживляя орган и оставляя слот пустым.

Summary by CodeRabbit

  • Исправления ошибок
    • Исправлена обработка ошибок при выполнении хирургических операций в игре. Система теперь корректно отменяет текущий этап операции в случае отсутствия или невозможности использования необходимых компонентов, вместо её неправильного продолжения и возможных побочных эффектов. Это устраняет потенциальные проблемы в игровых механиках хирургии и обеспечивает более надёжное поведение.

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

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

Changes

Обработка отмены операции вставки органа

Layer / File(s) Summary
Отмена шага при отсутствии компонента органа
Content.Server/_Starlight/Medical/Surgery/SurgerySystem.Steps.cs
Метод OnStepOrganInsertComplete устанавливает args.IsCancelled = true перед возвратом, если компонент OrganComponent не найден для заданного идентификатора органа.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested labels

🛠️ Есть C# 🛠️

Poem

🐰 В хирургии ошибка молчала,
Теперь отмена блеснула в окне,
Когда органа деталь вдруг не мала—
Флаг встанет взмахом, спасая беде.
Три строки добра, как морковь для беды! 🥕


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (2 errors, 1 warning)

Check name Status Explanation Resolution
Ss14 Bridge Sync ❌ Error .claude/rules/ss14-skill-preflight-and-refresh.md points to .agent/rules instead of .agents/rules, inconsistent with other rules. Update .claude/rules/ss14-skill-preflight-and-refresh.md to reference ../../../.agents/rules/ as entrypoint, matching other bridge files.
Ss14 Prototype ↔ Ftl Parity ❌ Error FTL файл surgeries.ftl содержит ent-SurgeryLimbAttachment (запись в FTL), но этого ID нет в соответствующем YAML файле surgeries.yml. Паритет между прототипом и локализацией нарушен. Удалите ent-SurgeryLimbAttachment из surgeries.ftl или добавьте соответствующий прототип SurgeryLimbAttachment в surgeries.yml с правильной локализацией.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (7 passed)
Check name Status Explanation
Title check ✅ Passed Заголовок точно отражает основное изменение: исправление поведения при отмене шага вставки органа, когда орган отсутствует.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Ss14 C# Rules ✅ Passed C# файл соответствует SS14 правилам: правильные имена (System, Component), приватные Dependency поля с _, архитектурный паттерн событий, нет маркеров в форк-папке.
Ss14 Yaml/Ftl Rules ✅ Passed Проверка SS14 YAML/FTL правил не применима: PR изменяет только C# файл (SurgerySystem.Steps.cs), а не .yml, .yaml или .ftl файлы.
Ss14 Prediction Safety ✅ Passed Check does not apply: PR changes only Content.Server (server-only event handler in SurgerySystem.Steps.cs), not Content.Shared or predicted gameplay paths requiring prediction safety review.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant