Skip to content

RevFramework — Status Effects • Movement

Lightweight movement-speed sink used by Status Effects to modify actor speed without coupling to any specific movement controller or character system.


🎯 Purpose

MovementSpeedScaler exposes a single multiplicative speed factor via IMovementSpeedFactor.

  • Movement code reads Factor
  • Status effects push and pop multipliers

It does not move actors.


🧠 Usage Guidance

Use this as a shared seam between movement and status systems:

  • movement code multiplies its base speed by Factor
  • status effects adjust Factor through push/pop operations

This keeps:

  • movement rules in movement code
  • status modifiers in Status Effects
  • coupling low

🧩 What Lives Here

  • MovementSpeedScaler — multiplicative speed factor provider

📦 Folder Overview

  • Component exposing a movement-speed multiplier
  • Stack-based modifier management (push/pop)
  • No direct movement behaviour

⚠️ Important Notes

  • This component does not move actors
  • Multipliers stack multiplicatively
  • Removing the component while effects are active can leave modifiers unapplied
  • Consumers should read Factor at runtime if values can change

🧪 Diagnostics

Common pitfalls:

  • Not popping the same multiplier that was pushed
  • Caching Factor instead of reading it dynamically
  • Using separate sinks for different systems instead of sharing one

🚫 Not for Production Use

  • This folder does not implement a movement controller
  • This folder does not handle pathfinding or animation
  • This folder does not define authority or networking behaviour

  • Effects → SlowStatus
  • Core → controller and ticking
  • Abstractions → IAdjustableMagnitude

🧠 Mental Model

This component exposes a multiplier.

Movement systems decide how to use it.