Added ApplyEffect action node and Effect state node.#31
Merged
Conversation
Contributor
There was a problem hiding this comment.
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
EffectDataandEffectOwnership. - 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added
Changed