Skip to content

🧩 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:

ThornsStatus itself 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

  • RegenStatus requires IHealthWriter → otherwise no healing occurs
  • ShieldStatus requires IShieldTicketPool → otherwise no shield is applied
  • ThornsStatus does nothing on its own → requires ThornsHealthBridge
  • All integrations are safe to remove without breaking Status Effects core

🛠 Extending

To add new Health-integrated statuses:

  1. Create a status in this folder (or runtime if generic)
  2. Use Health interfaces (IHealthWriter, IShieldTicketPool, etc.)
  3. Register it via StatusRegistry
  4. 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.


  • Runtime → Status Effects core behaviour
  • Health → damage, healing, shields
  • Core → lifecycle, stacking, authority