Skip to content

RevFramework — Status Effects • Integration

Optional helpers that connect Status Effects to other gameplay systems (such as Health or legacy shield components).

These integrations are fully optional and intentionally decoupled.


🎯 Purpose

This folder contains bridge helpers used by status implementations to interact with external systems.

They answer one question:

How can an effect call into another system safely, if that system exists?


🧠 Usage Guidance

The Status system avoids hard dependencies on other modules.

Instead, integrations provide:

  • small, focused helpers
  • interface-based calls where available
  • reflection-based fallbacks when needed

This keeps the system:

  • modular
  • optional
  • safe when integrations are missing

🧩 What Lives Here

HealthStatusHooks

Used by:

  • PoisonStatus
  • BurnStatus

Purpose:

  • Routes integer damage ticks into a target exposing IDamageable

Behaviour:

  • Checks for IDamageable
  • Calls Damage(int)
  • Ignores statusId in current implementation
  • Performs no work if target is null, amount ≤ 0, or interface is missing

ShieldLegacyBridge

Purpose:

  • Compatibility adapter for legacy shield components

Behaviour:

  • Uses reflection to locate compatible components
  • Caches method lookups per type
  • Provides TryAdd(...) and TryClear(...)

Important:

  • Clear() may remove all shield contributions
  • Intended as a migration helper
  • Prefer explicit interfaces for long-term use

📦 Folder Overview

  • Helper bridges for external systems
  • Interface-first integration where possible
  • Reflection fallback support for legacy systems

⚠️ Important Notes

  • Integration helpers are called from effect implementations
  • They are not part of the core status pipeline
  • Removing this folder does not break the Status system
  • Missing dependencies result in safe no-op behaviour

🧪 Diagnostics

Common pitfalls:

  • Assuming integrations apply gameplay rules
  • Relying on reflection paths for precise behaviour
  • Using legacy bridges where explicit interfaces are available

🚫 Not for Production Use

  • This folder does not define gameplay rules
  • This folder does not implement controller logic
  • This folder does not define stacking or authority behaviour
  • This folder does not represent a full system implementation

  • Effects → runtime behaviour
  • Core → lifecycle, stacking, authority
  • Abstractions → shared contracts
  • Integration (Health) → extended status behaviour

🧠 Mental Model

Integration code does not own gameplay.

It provides safe entry points into other sys