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, andIStatusResistance— 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 systemsDemoStatusPotency→ elemental or AI-driven modifiersDemoHealth→ 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¶
SamplesRuntime/Systems/StatusEffectsRuntime/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.