RevFramework — Status Effects • Effects¶
Authoring assets and runtime implementations for buffs, debuffs, crowd control, and utility effects.
This folder defines what effects do, not how they are managed. Lifecycle, stacking, authority, timing, and math are owned by Core.
🎯 Purpose¶
The Effects folder contains two layers:
| Layer | Responsibility |
|---|---|
| Definitions | ScriptableObject assets used to author effect data |
| Implementations | Runtime classes that execute behaviour |
Definitions build effects. Controllers run effects.
🧠 Usage Guidance¶
The system separates:
- authoring → Definitions
- behaviour → Implementations
- execution → Core
This keeps effects:
- reusable
- testable
- decoupled from system rules
🧩 What Lives Here¶
Definitions (Authoring)¶
ScriptableObject assets used to configure effects.
Includes:
PoisonStatusDefinitionBurnStatusDefinitionSlowStatusDefinitionHasteStatusDefinitionVulnerabilityStatusDefinitionStunStatusDefinitionThornsStatusDefinitionStatusEffectDefinitionBase
Health-linked definitions (RegenStatusDefinition, ShieldStatusDefinition) live under the Health integration area.
Implementations (Runtime)¶
Runtime effect classes that execute behaviour.
Damage / Over Time¶
PoisonStatusBurnStatus
Buffs / Debuffs¶
SlowStatusHasteStatusVulnerabilityStatus
Control / Utility¶
StunStatusThornsStatus
Health-driven effects such as RegenStatus and ShieldStatus live in the integration layer.
📦 Folder Overview¶
- ScriptableObject definitions for authoring
- Runtime effect implementations
- Separation between data and behaviour
⚠️ Important Notes¶
- Effects must be created as new instances per application
- Effects may hold internal state
- Potency scaling is applied after construction
- Missing integrations are expected to fail safely
- Effects do not control lifecycle, stacking, or authority
🧪 Diagnostics¶
Common pitfalls:
- Reusing effect instances can lead to incorrect state behaviour
- Effects relying on integrations require those systems to be present
- Controller-driven interactions (for example spread logic) are expected
🚫 Not for Production Use¶
- This folder does not define stacking rules
- This folder does not define authority logic
- This folder does not implement time systems
- This folder does not orchestrate controller behaviour
🔗 Related Documentation¶
- Core → lifecycle, stacking, authority
- Abstractions → contracts and extension seams
- Auras → area-based modifiers
- Integration → system-specific behaviour
🧠 Mental Model¶
Effects define behaviour. Core decides when and how that behaviour runs.