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
|
|
@ -54,11 +54,16 @@ InqLoad(this, &loadOut):
|
|||
return 1 // always succeeds for CACQualities (has vtable)
|
||||
```
|
||||
|
||||
This EXACTLY matches acdream's existing `IndicatorBarController.UpdateBurden()`
|
||||
/ `InventoryController.RefreshBurden()` pattern (Strength attribute + prop
|
||||
0xE6 aug + prop 5 EncumbranceVal, falling back to `SumCarriedBurden` when the
|
||||
wire value is absent) — already ported, already correct, already tested via
|
||||
the UI. **`AcDream.Core.Items.BurdenMath`
|
||||
The property/capacity shape matches acdream's
|
||||
`IndicatorBarController.UpdateBurden()` /
|
||||
`InventoryController.RefreshBurden()` pattern (Strength attribute + prop 0xE6
|
||||
aug + prop 5 EncumbranceVal, falling back to `SumCarriedBurden` when the wire
|
||||
value is absent). A 2026-07-31 connected gate exposed one omitted retail
|
||||
detail: `InqAttribute` returns the enchantment-adjusted attribute, while all
|
||||
three acdream burden consumers still read raw `AttributeValue.Current`.
|
||||
Issue #272 corrects them to `LocalPlayerState.GetEffectiveAttribute(Strength)`
|
||||
and invalidates burden on the canonical `Spellbook.EnchantmentsChanged` edge.
|
||||
**`AcDream.Core.Items.BurdenMath`
|
||||
(`EncumbranceCapacity`/`LoadRatio`/`LoadModifier`) is the SAME formulas at
|
||||
the SAME addresses.** P1's `EncumbranceSystem` (Physics-namespaced, for
|
||||
citation clarity next to `MovementSystem`) delegates to `BurdenMath` rather
|
||||
|
|
@ -317,8 +322,10 @@ Runtime (AcDream.Runtime, presentation-free):
|
|||
- onSkillsUpdated callback -> character.Character.UpdateMovementSkillBase(...)
|
||||
- NEW: inventory.Objects.{ObjectAdded,ObjectUpdated,ObjectRemoved,ObjectMoved,
|
||||
ContainerContentsReplaced,Cleared} + LocalPlayer.AttributeChanged(Strength)
|
||||
+ Spellbook.EnchantmentsChanged
|
||||
-> recompute burden (Strength + prop 0xE6 aug + prop 5 EncumbranceVal,
|
||||
SAME shape as IndicatorBarController.UpdateBurden/InventoryController.RefreshBurden)
|
||||
using effective/enchantment-adjusted Strength
|
||||
-> character.Character.MovementSkills.UpdateBurden(ratio)
|
||||
- NEW: character.Character.LocalPlayer.Changed(VitalKind.Stamina)
|
||||
-> character.Character.MovementSkills.UpdateStamina(current)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue