Skip to content

RevFramework — Status Effects • Demo Support

Helper scripts used by Status Effects demo scenes and Teachable Panels. These components exist to scaffold behaviour, expose interface seams, and make system flow visible — they are not required in production.


Table of Contents


Overview

The DemoSupport folder contains lightweight MonoBehaviours used by:

  • Status Effects demo scenes
  • Teachable Panels
  • Video capture / inspection setups

They intentionally implement interfaces, not full systems, so that the same Status logic and teachable UI works whether:

  • the real Health module is present, or
  • a demo-only scaffold (DemoHealth) is used instead

These scripts live firmly in the demo layer and are safe to delete.


What This Folder Teaches

These components quietly demonstrate several core RevFramework ideas:

  • Contract-first design Status interacts with IDamageable, ITimeSource, IStatusPotency, and IStatusResistance — not concrete systems.

  • Optional systems done properly Demo scaffolds stand in for real modules without changing behaviour flow.

  • Minimal signal-based feedback Demo health exposes simple lifecycle events (Died, Revived) without recreating a full gameplay pipeline.

  • Visual feedback decoupled from logic Flash / fade helpers respond to demo state, not gameplay rules.

Together with Teachable Panels, this folder shows how the Status system plugs into contracts without requiring every gameplay module to be installed.


Components

Script Purpose
DemoToggleableTimeSource Implements ITimeSource. Allows ticking to be frozen or scaled for demo time control.
DemoLoopMover Moves an object in a loop, scaled by MovementSpeedScaler.Factor for visible slow/haste feedback.
DemoStatusImmunity Implements IStatusImmunity (exact ID or tag-based blocking).
DemoStatusPotency Implements IStatusPotency for per-target magnitude scaling.
DemoStatusResistance Implements IStatusResistance for per-target duration scaling.
DemoHealth Minimal demo-only health scaffold implementing IDamageable. Emits simple lifecycle signals.
DemoHealthDebugPanel Lightweight debug UI for inspecting and driving demo health.
DemoDamageFlashOnHit Visual feedback: flashes renderer when demo damage occurs.
DemoDeathFadeToBlack Visual feedback: fades renderer on demo death and restores on revive.

Usage

Attach these helpers directly to actors in demo scenes or testbeds.

// Example: Adding demo potency scaling
var pot = gameObject.AddComponent<DemoStatusPotency>();
pot.all = 1.2f; // +20% potency

All components are editor-configured — no setup scripts or assets required.

Teachable Panels interact with these through shared interfaces (e.g. IDamageable, IStatusPotency, IStatusResistance) exactly as they would with real gameplay systems.


Gotchas

  • These components are demo-only support helpers, not part of the supported runtime API surface.
  • They are safe to delete if you do not use demo scenes or teachable setups.
  • They may include inline documentation for clarity, but they are not intended as production gameplay components.
  • Some visible behaviour (damage, movement, etc.) may depend on compatible sinks or optional integrations on the target.
  • Their behaviour is deliberately lightweight and illustrative — they do not attempt to model full production systems.

Extending

Use these scripts as templates for your own test sinks or simulation helpers.

Examples:

  • DemoStatusResistance → armour / difficulty scaling systems
  • DemoStatusPotency → elemental or AI-driven modifiers
  • DemoHealth → quick mock targets for combat experiments

If you build your own helpers:

  • keep them in non-runtime / non-core assemblies
  • ensure they implement public interfaces, not concrete dependencies
  • avoid coupling them to production systems

See Also

  • Samples
  • Runtime/Systems/StatusEffects
  • Runtime/Systems/StatusEffects/Auras

Final Note

This folder exists to make the Status system visible and testable in isolation.

If you delete it and your project still works, that’s the point.