Skip to content

RevFramework — Status Effects • System

Shared, system-level helpers, hooks, and configuration types for the Status Effects system.

This folder contains cross-cutting public surfaces used by multiple parts of the system. It does not own lifecycle, behaviour, or integration logic.


🎯 Purpose

This folder provides system-level support types that are:

  • shared across multiple areas
  • optional
  • globally accessible

These include:

  • hook points
  • configuration enums
  • helper utilities
  • optional event surfaces

🧠 Usage Guidance

Use this folder for cross-cutting concerns that do not belong in:

  • Core (lifecycle execution)
  • Effects (behaviour)
  • Abstractions (contracts)
  • Integration (external systems)

These types are intended to support the system, not define it.


🧩 What Lives Here

StatusFx

Global delegate hooks for status effect visuals.

  • Spawn → create visuals
  • Pulse → refresh visuals
  • Despawn → remove visuals

Notes:

  • Optional
  • Safe to leave unassigned
  • Should not affect gameplay logic

StatusTimeMode

Enum used by StatusEffectController to select time behaviour:

  • Scaled
  • Unscaled
  • Paused
  • Custom

Used alongside ITimeSource implementations.


StatusUseEvents

Optional global event surface for item-attributed status application.

Provides:

  • StatusAppliedFromItemUse
  • RaiseApplied(...) helper

Notes:

  • Informational only
  • Does not affect gameplay

StatusUtility

Static helper providing:

  • potency calculation
  • duration scaling
  • convenience Apply(...) forwarding

Behaviour:

  • reads IStatusPotency and IStatusResistance
  • forwards to StatusEffectController when available
  • safely no-ops when dependencies are missing

📦 Folder Overview

  • global hooks and delegates
  • shared enums and configuration
  • helper utilities
  • optional event surfaces

⚠️ Important Notes

  • This folder does not own gameplay behaviour
  • Helpers should not override controller logic
  • Event surfaces are informational only
  • All features are optional

🧪 Diagnostics

Common pitfalls:

  • Assuming hooks are required for gameplay
  • Relying on utility helpers instead of the controller
  • Using events as gameplay drivers instead of signals

🚫 Not for Production Use

  • This folder does not implement lifecycle logic
  • This folder does not define stacking or authority rules
  • This folder does not contain effect implementations
  • This folder does not provide integration bridges

  • Core → controller, lifecycle, stacking
  • Effects → runtime behaviour
  • Abstractions → contracts
  • Integration → external system bridges
  • Timing → time sources

🧠 Mental Model

System provides shared utilities and hooks.

Other folders perform the actual work.