Add data-driven status effect (modifier) system#93
Closed
Conversation
Implement genre-agnostic status effects as pure data: tag + stat modifiers
+ duration + tick effects. No hardcoded Stun/Slow/Shield enums — these
emerge from tag + modifier combinations defined by game data.
Core (euca-gameplay):
- StatusEffect, StatModifier, ModifierOp, StackPolicy, TickEffect types
- StatusEffects component (Vec<StatusEffect> per entity)
- apply_effect(): respects Replace vs Stack{max} policies
- cleanse(): remove effects matching a tag substring filter
- status_effect_tick_system(): tick durations, apply DPS/HPS, remove
expired, emit StatusEffectExpired events
- 12 unit tests covering application, stacking, expiry, cleanse, DPS,
HPS, source tracking, and modifier storage
HTTP API (euca-agent):
- POST /effect/apply, GET /effect/list/{id}, POST /effect/cleanse
CLI (euca-cli):
- euca effect apply, euca effect list, euca effect cleanse
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deploying euca-engine with
|
| Latest commit: |
92d7181
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://6b4056bf.euca-engine.pages.dev |
| Branch Preview URL: | https://worktree-agent-abe19d7b.euca-engine.pages.dev |
Owner
Author
|
Closing stale worktree agent PR — this work was superseded or not merged. |
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.
Summary
StatusEffect,StatModifier,ModifierOp,StackPolicy,TickEffect,StatusEffectscomponentapply_effect()with Replace vs Stack{max} policies,cleanse()with tag substring filter,status_effect_tick_system()for DPS/HPS/expiryPOST /effect/apply,GET /effect/list/{id},POST /effect/cleanseeuca effect apply,euca effect list,euca effect cleanseTest plan
cargo test --workspace— all 108+ gameplay tests pass (12 new status effect tests)cargo build --workspace— clean buildcargo clippy --workspace— zero warningscargo fmt --all --check— formatting clean🤖 Generated with Claude Code