Skip to content

[ADD] Черта - Неприметный#2476

Draft
kerfus-owo wants to merge 9 commits intoAdventureTimeSS14:masterfrom
kerfus-owo:antags-debaff
Draft

[ADD] Черта - Неприметный#2476
kerfus-owo wants to merge 9 commits intoAdventureTimeSS14:masterfrom
kerfus-owo:antags-debaff

Conversation

@kerfus-owo
Copy link
Contributor

@kerfus-owo kerfus-owo commented Feb 8, 2026

Описание PR

  • Добавляет новую категорию в черты персонажа - Мета.
  • Добавляет новую черту персонажа - Неприметный. "Вы не будете помечаться как цель для убийства до тех пор, пока у вас не будет импланта защиты разума."

Частичный порт отсюда: "marked as protected trait #5274"

Почему / Баланс

  • Добавит приятную возможность не быть гибнутым в ноль сейлогов.
  • Влияние на баланс минимальное.

Медиа

image

Техническая информация

  • Добавляет компонент-пустышку - TargetObjectiveImmuneComponent
  • Добавляет проверку на TargetObjectiveImmuneComponent и MindShieldComponent в Content.Server.Objectives.Systems
  • Добавить отсутствие иммунитета у антагов.
  • Добавить лимит целей на глав/СБ.
  • Добавить больше целей.
  • Изменения были протестированы на локальном сервере, и всё работает отлично.
  • PR закончен и требует просмотра изменений.

Чейнджлог

🆑 Kerfus

  • add: Добавлена новая черта персонажа - Неприметный. Даже вражеским корпорациям и прочим злым силам всё равно на вас. Вы не будете помечаться как цель для убийства. Однако оно не будет работать, если у вас есть имплант защиты разума.

@github-actions github-actions bot added Status: Needs Review Changes: Localization Изменение локализации and removed Status: Needs Review labels Feb 8, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 8, 2026

Walkthrough

Изменения добавляют механику иммунитета к целевым целям объектива. Реализовано через новый компонент TargetObjectiveImmuneComponent, который отмечает сущность как защищённую от целевых объективов. Система PickObjectiveTargetSystem обновлена с методом HasTargetImmunity для фильтрации иммунных целей при назначении объективов. Добавлена новая категория черт "Meta" и новый черта "Protected" (в локализации "Неприметный"), которая применяет компонент иммунитета и стоит 0 очков. Включены необходимые локализационные записи и прототипы.

Suggested reviewers

  • Unlumy
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed Название точно описывает главное изменение — добавление новой черты персонажа «Неприметный», что полностью соответствует содержимому PR.
Description check ✅ Passed Описание PR чётко связано с изменениями: добавляет новую черту персонажа 'Неприметный' и категорию 'Мета', указывает причины и технические детали реализации.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

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

🤖 Fix all issues with AI agents
In `@Content.Server/Objectives/Components/TargetObjectiveImmuneComponent.cs`:
- Around line 1-8: Файл TargetObjectiveImmuneComponent находится в папке
Content.Server/Objectives/Components, но объявлен в неймспейсе
Content.Server.ADT.Objectives.Components — переместите файл в папку
Content.Server/ADT/Objectives/Components/TargetObjectiveImmuneComponent.cs и
убедитесь, что объявление public sealed partial class
TargetObjectiveImmuneComponent : Component остаётся в том же неймспейсе; если по
какой‑то причине перемещение невозможно, добавьте в PR комментарий/описание
изменения с обоснованием (требование для изменений вне /ADT/) и согласуйте с
ревьювером.

In `@Content.Server/Objectives/Systems/PickObjectiveTargetSystem.cs`:
- Around line 38-46: The HasTargetImmunity logic is applied to all target
assignments but should only block murder-target assignments; create a focused
check (e.g. HasKillTargetImmunity) or add a parameter to HasTargetImmunity so it
only applies for kill-target selection, then replace uses in
OnRandomPersonAssigned and OnRandomHeadAssigned to call the kill-only check
while leaving OnRandomTraitorProgressAssigned and OnRandomTraitorAliveAssigned
unaffected; keep the existing TargetObjectiveImmuneComponent and
MindShieldComponent semantics when implementing the new/updated check.

In `@Resources/Prototypes/ADT/Traits/quirks.yml`:
- Around line 158-165: Trait definition with id MarkedAsProtected is missing the
quirk flag present on all other traits; add the field quirk: true to the
MarkedAsProtected trait (the block with id MarkedAsProtected / name
trait-protected-name) so it matches the other 12 entries in quirks.yml and
ensure formatting/indentation matches the surrounding YAML.
🧹 Nitpick comments (1)
Content.Server/Objectives/Systems/PickObjectiveTargetSystem.cs (1)

146-150: Комментарий ADT-Tweak-End закрывается до allHeads.Add(person), хотя эта строка является частью изменённой логики.

allHeads.Add(person) (строка 150) визуально находится за пределами блока //ADT-Tweak-End (строка 149), но по факту является частью тела if, которое было изменено в рамках ADT-твика. Формально, оригинальная строка allHeads.Add существовала и ранее, но теперь она выполняется по изменённому условию. Рекомендую переместить //ADT-Tweak-End после строки 150 для ясности.

Предлагаемое исправление
             //ADT-Tweak-Start
             var mind = person.Comp;
             if (mind.OwnedEntity is { } owned && HasComp<CommandStaffComponent>(owned))
-                //ADT-Tweak-End
                 allHeads.Add(person);
+            //ADT-Tweak-End

@1Altius
Copy link
Collaborator

1Altius commented Feb 12, 2026

@kerfus-owo Будет вынесено на голосование

@Schrodinger71
Copy link
Collaborator

Довольно сильно взбудоражило сообщество, если и добавлять то с довольно большой стоймостью

@kerfus-owo
Copy link
Contributor Author

Довольно сильно взбудоражило сообщество, если и добавлять то с довольно большой стоймостью

Полагаю здесь стоит добавить не стоимость квирка, а больше целей с их оптимальным распределением

@kerfus-owo
Copy link
Contributor Author

Довольно сильно взбудоражило сообщество, если и добавлять то с довольно большой стоймостью

Полагаю здесь стоит добавить не стоимость квирка, а больше целей с их оптимальным распределением

Я этим займусь но чуть позже, пока-что просто добавлю чеклист

@Schrodinger71 Schrodinger71 marked this pull request as draft February 17, 2026 14:24
@github-actions
Copy link
Contributor

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

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants