Skip to content

RevFramework — Status Effects • Unity Integration

Optional Unity-facing components that support status math resolution and provider aggregation.

This folder contains MonoBehaviour-based helpers that integrate the Status Effects system into Unity GameObject workflows.


🎯 Purpose

Provides optional components that:

  • implement IStatusMathService
  • optimise status math using cached provider lookups
  • bridge abstract contracts into Unity component patterns

These are convenience and performance helpers, not required system components.


🧠 Usage Guidance

The Status system defines math via IStatusMathService.

Without setup, math is resolved via StatusUtility:

  • simple
  • queries providers per call

This folder offers an alternative:

  • component-based math service
  • cached provider aggregation

Choose between:

  • simple (no setup)
  • optimised (component-driven)

🧩 What Lives Here

DefaultStatusMathService

MonoBehaviour implementation of IStatusMathService.

Behaviour:

  • uses StatusProviderAggregator when present
  • falls back to StatusUtility otherwise

StatusProviderAggregator

Caches provider components on a GameObject:

  • IStatusPotency
  • IStatusResistance

Behaviour:

  • collects providers on enable
  • clears cache on disable
  • supports manual Rebuild()

Notes:

  • scans components on the same GameObject
  • does not traverse hierarchy

📦 Folder Overview

  • component-based math service
  • cached provider aggregation
  • fallback compatibility with base system

⚠️ Important Notes

  • This folder changes how math is resolved, not the math rules
  • Removing the aggregator falls back to StatusUtility
  • Rebuild() is required if providers change at runtime
  • Components are optional and not required for system operation

🧪 Diagnostics

Common pitfalls:

  • expecting aggregation across hierarchy (not supported by default)
  • forgetting to rebuild cache after runtime changes
  • assuming this layer changes gameplay behaviour

🚫 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 behaviour

  • Abstractions → IStatusMathService, providers
  • Core → controller and lifecycle
  • System → StatusUtility fallback helpers

🧠 Mental Model

This layer optimises how math is resolved.

It does not change what the math is.