fix(animation): preserve wire motion on every spawn path
Replace the door-specific static-animation seed with one retail description-then-enter-world initializer shared by normal and reactive spawns. This preserves authoritative Dead and On/Off states, prevents replacement corpses from returning to Ready, and pins the lifecycle with Core and App tests. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
9b97102c67
commit
8be933fc94
9 changed files with 335 additions and 64 deletions
|
|
@ -46,6 +46,39 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #204 — Replacement corpses replay the death transition and stand back up
|
||||
|
||||
**Status:** DONE — 2026-07-12, user visually confirmed multiple corpses remain fallen
|
||||
**Severity:** HIGH
|
||||
**Component:** live entities / animation / CreateObject lifecycle
|
||||
|
||||
**Description:** A killed monster played its death animation correctly, but
|
||||
when ACE replaced the victim object with its lootable corpse, the body visibly
|
||||
returned to the standing pose and replayed the fall.
|
||||
|
||||
**Root cause:** Six-object live trace proved ACE sent every corpse CreateObject
|
||||
with the correct `NonCombat + Dead` motion. A follow-up trace after the first
|
||||
correction showed the replacement corpse nevertheless completed `Ready`: its
|
||||
persistent Dead rest pose is static, so it bypassed the normal multi-frame
|
||||
spawn branch and entered the broader #187 reactive branch. That branch had
|
||||
been generalized from doors by its gate but still hard-coded Door On/Off from
|
||||
`PhysicsState`; for a corpse those commands did not select a cycle, leaving the
|
||||
motion-table default Ready and producing the hard upright pop.
|
||||
|
||||
**Resolution:** Both live-spawn branches now use one data-driven initializer.
|
||||
It installs the motion-table default, applies the authoritative MovementData
|
||||
stance/command, and then calls `MotionTableManager.HandleEnterWorld()` exactly
|
||||
like retail's description-then-enter-world lifecycle. No corpse or door type
|
||||
switch remains. App tests pin Dead and Door On/Off wire-state resolution; a
|
||||
Core conformance test pins removal of the detached Ready→Dead link before the
|
||||
first rendered tick.
|
||||
|
||||
**Research:** `docs/research/2026-07-12-death-and-auto-target-pseudocode.md`
|
||||
|
||||
**Acceptance:** Kill several monsters. Each falls once, is replaced by a
|
||||
lootable corpse in the same fallen pose, and never visibly stands between the
|
||||
victim deletion and corpse display.
|
||||
|
||||
## #203 — Unequipping armor freezes character and world animations — FIXED
|
||||
|
||||
**Status:** DONE — 2026-07-11 (this change)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue