Skip to content

Added Immunity and RemoveOther effect components. - #51

Merged
lextatic merged 4 commits into
mainfrom
feature/immunity-and-remove-other-effect-components
Aug 1, 2026
Merged

Added Immunity and RemoveOther effect components.#51
lextatic merged 4 commits into
mainfrom
feature/immunity-and-remove-other-effect-components

Conversation

@lextatic

@lextatic lextatic commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Added

  • Added Immunity effect component.
  • Added RemoveOther effect component.

@lextatic lextatic added the added New features label Aug 1, 2026
@lextatic
lextatic requested a review from Copilot August 1, 2026 02:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces target-side effect application vetoing via a blocker registry on EffectsManager, plus two new effect components built on EffectQuery: one to grant temporary immunity to incoming effects and one to remove other active effects on application.

Changes:

  • Added IEffectApplicationBlocker and an EffectsManager registry/event for vetoing effect applications (including instant effects).
  • Added ImmunityEffectComponent (blocks incoming effects while active) and RemoveOtherEffectComponent (dispels/strips stacks on application).
  • Added validation, documentation, and test coverage for blockers and both query-driven components.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Forge/Effects/IEffectApplicationBlocker.cs New interface for target-side veto of effect application.
Forge/Effects/EffectsManager.cs Adds blocker registry, blocked-event, and consults blockers during application.
Forge/Effects/EffectData.cs Adds validation rules for Immunity/RemoveOther configuration constraints.
Forge/Effects/Components/ImmunityEffectComponent.cs New effect component that registers as a blocker while active.
Forge/Effects/Components/RemoveOtherEffectComponent.cs New effect component that removes other active effects on apply.
Forge.Tests/Effects/EffectApplicationBlockerTests.cs Tests registry semantics + event behavior for blockers.
Forge.Tests/Effects/ImmunityComponentTests.cs Tests immunity behavior, inhibition interaction, and event reporting.
Forge.Tests/Effects/RemoveOtherComponentTests.cs Tests removal behavior, stack removal, self-exclusion, and instants.
Forge.Tests/Effects/EffectQueryComponentsValidationTests.cs Tests validation assertions for query-driven components.
docs/effects/README.md Documents blocker registry and updates component list.
docs/effects/components/README.md Adds guidance on when to use tag requirements vs Immunity/RemoveOther.
docs/effects/components/target-tag-requirements-effect-component.md Adds cross-links to new guidance/components.
docs/effects/components/immunity-effect-component.md New component documentation page.
docs/effects/components/remove-other-effect-component.md New component documentation page.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/effects/README.md Outdated
Comment thread Forge/Effects/EffectsManager.cs
@lextatic
lextatic merged commit 949c90d into main Aug 1, 2026
1 check passed
@lextatic
lextatic deleted the feature/immunity-and-remove-other-effect-components branch August 1, 2026 03:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

added New features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants