RevFramework — Status Effects • Abstractions¶
This folder defines the public contracts and shared types for the Status Effects system.
These are dependency-safe APIs used by runtime systems, integrations, UI, and tests.
🎯 Purpose¶
Abstractions define:
- what a status effect is
- how it is identified
- how systems can interact with or influence it
They describe the rules and extension seams of the system — not the behaviour.
🧠 Usage Guidance¶
The system separates:
- contracts (here)
- behaviour (Core / Effects / etc.)
This allows other systems (Health, Pickups, UI, AI) to:
- depend on Status Effects safely
- extend behaviour without modifying core code
- integrate without tight coupling
📦 Folder Overview¶
Contracts¶
Classification and metadata (tags, dispels, effect identity descriptors).
Core¶
Lifecycle contracts, identity types, stacking rules, and controller surface.
Modifiers¶
Extension seams for influencing behaviour (potency, resistance, immunity, scaling).
Services¶
Injectable services (math and time) used by runtime systems.
🧩 What Lives Here¶
- public interfaces and data contracts
- identity and metadata types
- stacking and lifecycle contracts
- modifier interfaces
- service interfaces (time, math)
⚠️ Important Notes¶
- Abstractions do not contain runtime behaviour
- These types are intended to remain stable across integrations
- Implementations live in other folders (Core, Effects, etc.)
🚫 Not for Production Use¶
- No runtime systems live in this folder
- No Unity behaviours or update loops are defined here
- This folder does not execute gameplay logic
🔗 Related Documentation¶
- Core → controller & lifecycle implementation
- Effects → concrete behaviours
- Authority → mutation gating
- UI → presentation
- Integration → external system hooks