Skip to content

Added ApplyEffect action node and Effect state node.#31

Merged
lextatic merged 10 commits into
mainfrom
feature/state-node
Jun 2, 2026
Merged

Added ApplyEffect action node and Effect state node.#31
lextatic merged 10 commits into
mainfrom
feature/state-node

Conversation

@lextatic

@lextatic lextatic commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Added

  • Added ApplyEffect action node.
  • Added Effect state node.
  • Added Ownership resolver.
  • Added AbilityOwnership resolver.
  • Added AbilityLevel resolver.

Changed

  • Refactored ReferenceResolver into ObjectResolver.
  • Renamed ability context related resolvers.
  • Reviewed a bunch of docs.

@lextatic lextatic added the added New features label Jun 1, 2026
@lextatic lextatic requested a review from Copilot June 1, 2026 02:54

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 expands Statescript integration with Effects and Abilities by adding effect application nodes, object-backed resolver support for structs, and ability-context resolvers while updating tests and documentation for the renamed resolver APIs.

Changes:

  • Added ApplyEffectNode, EffectNode, shared effect-application utilities, and related tests/docs.
  • Refactored reference-backed resolver/variable APIs into object-backed APIs to support struct values such as EffectData and EffectOwnership.
  • Added ability ownership/level resolvers and TimerNode.OnTimerEnd, plus finalization deferral for post-deactivation events.

Reviewed changes

Copilot reviewed 93 out of 93 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
Forge/Statescript/Variables.cs Renames reference storage to object-backed storage and enables value-type object variables/arrays.
Forge/Statescript/Properties/TagQueryResolver.cs Updates default entity resolver to AbilityOwnerResolver.
Forge/Statescript/Properties/ReferenceVariableResolver.cs Removes old reference variable resolver.
Forge/Statescript/Properties/ReferenceResolver.cs Removes old reference resolver base class.
Forge/Statescript/Properties/ReferenceArrayVariableResolver.cs Removes old reference array variable resolver.
Forge/Statescript/Properties/ReferenceArrayResolver.cs Removes old reference array resolver base class.
Forge/Statescript/Properties/OwnershipResolver.cs Adds resolver composing EffectOwnership.
Forge/Statescript/Properties/ObjectVariableResolver.cs Adds object-backed variable resolver.
Forge/Statescript/Properties/ObjectResolver.cs Adds object-backed resolver base class.
Forge/Statescript/Properties/ObjectArrayVariableResolver.cs Adds object-backed array variable resolver.
Forge/Statescript/Properties/ObjectArrayResolver.cs Adds object-backed array resolver base class.
Forge/Statescript/Properties/ObjectArrayCompositeResolver.cs Renames composite reference array resolver to object-backed form.
Forge/Statescript/Properties/IObjectResolver.cs Renames object resolver interfaces and removes class-only constraint.
Forge/Statescript/Properties/IObjectArrayResolver.cs Renames object array resolver interfaces and removes class-only constraint.
Forge/Statescript/Properties/IEntityResolver.cs Repoints entity resolver interface to object-backed resolver API.
Forge/Statescript/Properties/EntityVariableResolver.cs Updates entity variable resolver inheritance.
Forge/Statescript/Properties/EntityArrayVariableResolver.cs Updates entity array variable resolver inheritance.
Forge/Statescript/Properties/EntityArrayResolver.cs Updates entity array resolver composition base.
Forge/Statescript/Properties/EffectDataResolver.cs Adds fixed EffectData resolver.
Forge/Statescript/Properties/EffectDataArrayResolver.cs Adds fixed EffectData[] resolver.
Forge/Statescript/Properties/AttributeResolver.cs Updates default entity resolver to AbilityOwnerResolver.
Forge/Statescript/Properties/AbilityTargetResolver.cs Renames target resolver to ability-scoped name.
Forge/Statescript/Properties/AbilitySourceResolver.cs Renames source resolver to ability-scoped name.
Forge/Statescript/Properties/AbilityOwnershipResolver.cs Adds ability-context ownership resolver.
Forge/Statescript/Properties/AbilityOwnerResolver.cs Renames owner resolver to ability-scoped name.
Forge/Statescript/Properties/AbilityMagnitudeResolver.cs Renames magnitude resolver to ability-scoped name.
Forge/Statescript/Properties/AbilityLevelResolver.cs Adds ability level resolver.
Forge/Statescript/Properties/AbilityActivationDataResolver.cs Renames activation data resolver and messages.
Forge/Statescript/Nodes/StateNode.cs Defers graph finalization while custom deactivation events emit.
Forge/Statescript/Nodes/State/TimerNode.cs Adds OnTimerEnd event port.
Forge/Statescript/Nodes/State/EffectNodeContext.cs Adds effect state node runtime context.
Forge/Statescript/Nodes/State/EffectNode.cs Adds state node that owns active effect handles.
Forge/Statescript/Nodes/EffectApplicationUtilities.cs Adds shared effect application/removal helpers.
Forge/Statescript/Nodes/Action/SetVariableNode.cs Updates set-variable logic for object-backed values/arrays.
Forge/Statescript/Nodes/Action/ApplyEffectNode.cs Adds action node for fire-and-forget effect application.
Forge/Statescript/GraphVariableDefinitions.cs Renames reference definitions/properties to object-backed definitions/properties.
Forge/Statescript/GraphProcessor.cs Resets finalization deferral during stop/finalize paths.
Forge/Statescript/GraphContext.cs Renames object resolution APIs and adds finalization deferral state.
Forge/Statescript/GraphAbilityBehavior.Data.cs Updates docs to new activation resolver name.
Forge/Forge.csproj Links root .editorconfig into the project.
Forge/Abilities/AbilityBehaviorContext.cs Adds effect ownership derived from ability owner/source.
Forge.Tests/Statescript/Resolvers/TagQueryResolverTests.cs Updates resolver tests to object/ability naming.
Forge.Tests/Statescript/Resolvers/ObjectVariableResolverTests.cs Renames reference variable resolver tests.
Forge.Tests/Statescript/Resolvers/EntityResolverTests.cs Updates entity resolver tests to ability resolver names.
Forge.Tests/Statescript/Resolvers/EntityArrayVariableResolverTests.cs Updates entity array variable tests to object API.
Forge.Tests/Statescript/Resolvers/EntityArrayResolverTests.cs Updates entity array resolver tests to object API.
Forge.Tests/Statescript/Resolvers/EffectDataResolverTests.cs Adds tests for struct object resolver support.
Forge.Tests/Statescript/Resolvers/AttributeResolverTests.cs Updates attribute resolver tests to object/ability names.
Forge.Tests/Statescript/Resolvers/AbilityMagnitudeResolverTests.cs Renames magnitude resolver tests.
Forge.Tests/Statescript/Resolvers/AbilityContextResolverTests.cs Adds ability level/ownership resolver tests.
Forge.Tests/Statescript/Resolvers/AbilityActivationDataResolverTests.cs Renames activation data resolver tests.
Forge.Tests/Statescript/ObjectValueSupportTests.cs Renames reference value support tests to object value tests.
Forge.Tests/Statescript/Nodes/State/TimerNodeTests.cs Adds OnTimerEnd and deferred finalization coverage.
Forge.Tests/Statescript/Nodes/State/EffectNodeTests.cs Adds effect state node behavior coverage.
Forge.Tests/Statescript/Nodes/Action/SetVariableNodeTests.cs Updates set-variable tests to object API.
Forge.Tests/Statescript/Nodes/Action/ApplyEffectNodeTests.cs Adds apply-effect action node coverage.
Forge.Tests/Helpers/StatescriptTestHelpers.cs Adds helpers for new effect nodes and object resolver tests.
docs/statescript/variables.md Updates variable docs to object-backed terminology.
docs/statescript/resolvers/target-entity-resolver.md Removes old target entity resolver docs.
docs/statescript/resolvers/tag-query-resolver.md Updates resolver naming and examples.
docs/statescript/resolvers/source-entity-resolver.md Removes old source entity resolver docs.
docs/statescript/resolvers/signedangle-resolver.md Adjusts constructor heading.
docs/statescript/resolvers/README.md Reorganizes resolver index and adds new resolvers.
docs/statescript/resolvers/quaternionfromeulerangles-resolver.md Adjusts constructor heading.
docs/statescript/resolvers/ownership-resolver.md Adds ownership resolver docs.
docs/statescript/resolvers/owner-entity-resolver.md Removes old owner entity resolver docs.
docs/statescript/resolvers/magnitude-resolver.md Removes old magnitude resolver docs.
docs/statescript/resolvers/euleranglesfromquaternion-resolver.md Adjusts constructor heading.
docs/statescript/resolvers/entity-variable-resolver.md Updates entity variable resolver docs to object API.
docs/statescript/resolvers/entity-array-variable-resolver.md Updates entity array variable resolver docs to object API.
docs/statescript/resolvers/entity-array-resolver.md Updates entity array resolver examples.
docs/statescript/resolvers/effect-data-resolver.md Adds effect data resolver docs.
docs/statescript/resolvers/effect-data-array-resolver.md Adds effect data array resolver docs.
docs/statescript/resolvers/attribute-resolver.md Updates resolver naming and examples.
docs/statescript/resolvers/array-resolver.md Adjusts constructor heading.
docs/statescript/resolvers/activation-data-resolver.md Removes old activation data resolver docs.
docs/statescript/resolvers/ability-target-resolver.md Adds ability target resolver docs.
docs/statescript/resolvers/ability-source-resolver.md Adds ability source resolver docs.
docs/statescript/resolvers/ability-ownership-resolver.md Adds ability ownership resolver docs.
docs/statescript/resolvers/ability-owner-resolver.md Adds ability owner resolver docs.
docs/statescript/resolvers/ability-magnitude-resolver.md Adds ability magnitude resolver docs.
docs/statescript/resolvers/ability-level-resolver.md Adds ability level resolver docs.
docs/statescript/resolvers/ability-activation-data-resolver.md Adds ability activation data resolver docs.
docs/statescript/README.md Updates activation data resolver examples.
docs/statescript/nodes/state/timer-node.md Documents OnTimerEnd.
docs/statescript/nodes/state/README.md Adds effect node and updated timer summary.
docs/statescript/nodes/state/effect-node.md Adds effect node docs.
docs/statescript/nodes/action/set-variable-node.md Updates set-variable docs to object terminology.
docs/statescript/nodes/action/README.md Adds apply-effect node to action index.
docs/statescript/nodes/action/apply-effect-node.md Adds apply-effect node docs.
docs/statescript/custom-resolvers.md Updates resolver examples and naming.
docs/statescript/ability-integration.md Updates ability integration resolver naming.
docs/abilities.md Updates ability docs to new activation resolver name.

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

Comment thread Forge/Statescript/GraphProcessor.cs
Comment thread Forge/Statescript/Variables.cs
Comment thread Forge/Statescript/Variables.cs Outdated
Comment thread Forge/Statescript/Variables.cs Outdated
Comment thread Forge/Statescript/Variables.cs
@lextatic lextatic merged commit 7eecf0a into main Jun 2, 2026
1 check passed
@lextatic lextatic deleted the feature/state-node branch June 2, 2026 02:39
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