fix(movement): invalidate burden on enchantment changes
This commit is contained in:
parent
2b9dfec9d7
commit
d6e8b60303
13 changed files with 231 additions and 25 deletions
|
|
@ -98,6 +98,43 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #272 — Strength enchantments do not invalidate burden
|
||||
|
||||
**Status:** DONE — 2026-07-31 (implementation, automated gates, and user live
|
||||
buff/death gate)
|
||||
**Severity:** HIGH (movement state and retained HUD disagree with retail)
|
||||
**Filed:** 2026-07-31
|
||||
**Component:** player qualities / enchantments / burden
|
||||
|
||||
**Symptom:** while overburdened, casting a Strength spell did not reduce the
|
||||
burden state until the base Strength attribute changed. Dying purged the
|
||||
Strength spell but did not restore the overburdened state.
|
||||
|
||||
**Root cause:** `LiveSessionEventRouter.RecomputeBurden` read raw
|
||||
`AttributeValue.Current` and subscribed only to base Strength/object-table
|
||||
changes. The indicator bar and inventory meter had the same raw-Strength
|
||||
composition, and the inventory meter did not observe enchantment changes.
|
||||
Retail `CACQualities::InqLoad @ 0x0058F130` calls
|
||||
`CACQualities::InqAttribute @ 0x00591A00`, which applies
|
||||
`CACQualities::EnchantAttribute @ 0x00594570`; every load query therefore uses
|
||||
effective Strength.
|
||||
|
||||
**Fix:** all three consumers now read
|
||||
`LocalPlayerState.GetEffectiveAttribute(Strength)`. The Runtime burden owner,
|
||||
indicator bar, and inventory meter subscribe to the canonical
|
||||
`Spellbook.EnchantmentsChanged` edge, covering add, remove, expiration,
|
||||
dispel, and death purge through one path. Regression tests pin both
|
||||
buff-to-unburdened and purge-to-overburdened transitions without any base
|
||||
attribute update.
|
||||
|
||||
**Acceptance:** overload a character, cast a Strength spell, and observe the
|
||||
burden icon/meter plus movement update immediately. Die while the spell is
|
||||
active and observe the spell purge restore the overburdened icon/meter and
|
||||
movement immediately. **Passed live 2026-07-31:** the user confirmed the
|
||||
burden state now updates correctly.
|
||||
|
||||
---
|
||||
|
||||
## #271 — Stair-side collision reverses uphill movement and rapidly slides the player down
|
||||
|
||||
**Status:** DONE — 2026-07-31 (implementation + user live gate)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue