Skip to content

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

  • Core → controller & lifecycle implementation
  • Effects → concrete behaviours
  • Authority → mutation gating
  • UI → presentation
  • Integration → external system hooks