refactor: collapse the move-speed properties into serialized fields
ActiveMoveSpeed/PassiveMoveSpeed become plain [SerializableField]s (not virtual): the properties now read the raw override (0 = inheriting) and CurrentMoveSpeed carries the inherit resolution - it was the only production reader of the resolving getters. The <=0 coercion moves to an allowFieldChange hook. Wire format unchanged (schema diff is empty). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
f4327e6a3a
commit
963b9b3b85
4 changed files with 51 additions and 47 deletions
|
|
@ -262,8 +262,9 @@ All "speed" values are **delays in seconds** (smaller = faster). A creature runs
|
|||
(combat decisions, target acquisition, spell timing).
|
||||
- **Move clock** — `ActiveMoveSpeed`/`PassiveMoveSpeed`/`CurrentMoveSpeed`: seconds per
|
||||
step. Inherits the matching think value until overridden, so a creature configured with
|
||||
only think speeds behaves as one clock. Any value is legal — steps are scheduled
|
||||
independently of think ticks, so the two need not divide evenly.
|
||||
only think speeds behaves as one clock. The properties read the raw override (`0` =
|
||||
inheriting); `CurrentMoveSpeed` is the resolved pace. Any value is legal — steps are
|
||||
scheduled independently of think ticks, so the two need not divide evenly.
|
||||
|
||||
Speeds normally come from `Distribution/Data/npc-speeds.json` (via `SpeedClass` or type
|
||||
lists); `activeMove`/`passiveMove` are optional per bucket. Prefer data over code:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue