🧩 Status Effects — Health Integration¶
This folder contains optional integration code that connects the Status Effects system to the RevFramework Health system.
It exists to answer one question:
“How do status effects interact with health (damage, healing, shields, reflection)?”
This integration is built and supported for RevFramework systems only.
It is not intended as a general integration layer for third-party health systems.
🧠 What This Folder Is¶
This is a bridge layer between systems.
It provides:
- Health-backed status implementations
- Authoring definitions for those effects
- Registry wiring for integration-only statuses
- Bridge helpers for cross-system behaviour
It is not required for the Status Effects system to function.
💡 Why This Exists¶
The Status Effects system is designed to be:
- modular
- decoupled
- deletable
Health is not a dependency of Status Effects.
Instead, integration is handled here so:
- Status Effects can run without Health
- Health can be added later without modifying core systems
- Cross-system behaviour stays explicit and contained
📦 What Lives Here¶
🩸 Health-Backed Statuses¶
| Status | Behaviour | Dependency |
|---|---|---|
RegenStatus |
Heal-over-time (HoT) | IHealthWriter |
ShieldStatus |
Temporary shield buffer | IShieldTicketPool |
These effects:
- operate normally when dependencies are present
- degrade safely to no-op behaviour when missing
🧾 Definitions¶
| Definition | Builds |
|---|---|
RegenStatusDefinition |
RegenStatus |
ShieldStatusDefinition |
ShieldStatus |
Used for authoring via ScriptableObjects.
🔌 Registry Integration¶
| File | Purpose |
|---|---|
StatusRegistryHealthIntegration |
Registers Health-dependent statuses into StatusRegistry |
This runs automatically at startup and ensures:
- Health-linked statuses are only available when this integration is present
- Core Status Effects remains independent
🔁 Bridge Helpers¶
| Helper | Purpose |
|---|---|
ThornsHealthBridge |
Connects ThornsStatus to Health damage reflection rules |
Important:
ThornsStatusitself lives in Runtime and only carries metadata.
This bridge enables actual reflection behaviour when Health is present.
🔗 How This Fits Into The System¶
The system is split cleanly:
- Runtime (Status Effects) → defines behaviour + lifecycle
- HealthIntegration (this folder) → adds health-specific behaviour
- Core → controls stacking, ticking, authority
So the flow is:
StatusEffectController
↓
Status Effect (Runtime)
↓
Optional Integration (this folder)
↓
Health System
🧩 Mental Model¶
- Status Effects do not depend on Health
- Health does not depend on Status Effects
- This folder is the explicit seam between them
⚠️ Gotchas¶
RegenStatusrequiresIHealthWriter→ otherwise no healing occursShieldStatusrequiresIShieldTicketPool→ otherwise no shield is appliedThornsStatusdoes nothing on its own → requiresThornsHealthBridge- All integrations are safe to remove without breaking Status Effects core
🛠 Extending¶
To add new Health-integrated statuses:
- Create a status in this folder (or runtime if generic)
- Use Health interfaces (
IHealthWriter,IShieldTicketPool, etc.) - Register it via
StatusRegistry - Keep behaviour safe when dependencies are missing
🚫 What Does NOT Belong Here¶
- Core status logic
- Stacking rules
- Authority systems
- Time systems
- UI
This folder is integration only.
🌍 Third-Party / Custom System Use¶
This integration is built for RevFramework Health systems only.
If you are using a different health system:
- Treat this as a reference example
- Implement your own status behaviours or bridges
- Use your own service layer
👉 Custom or third-party integrations are not supported by this layer.
🔗 Related¶
- Runtime → Status Effects core behaviour
- Health → damage, healing, shields
- Core → lifecycle, stacking, authority