test(app): D.2b-B B-Wire — burden wire-first + live-refresh tests + review notes
Final-review response. Adds the spec §5 / Task-16 burden end-to-end coverage the per-task plan missed: (1) burden reads wire EncumbranceVal over the carried sum (asserts 50% from wire 7500, not 20% from sum 3000 — retires AP-48's fallback as the primary), (2) a live player-int update repaints the bar (60%), which only happens via the C1d Concerns `o.ObjectId == p` branch. Both are discriminating (fail if the respective branch is reverted). Plus two clarifying comments from the review: the 0x02CD player route depends on the login PD upsert having created the player object (no-ops, no phantom, if not); and a TODO that the container-open phase must treat ViewContents as a full replace, not the additive merge used here. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
aa0ecaeb4d
commit
7badecf387
3 changed files with 48 additions and 1 deletions
|
|
@ -253,6 +253,10 @@ public static class GameEventWiring
|
|||
// B-Wire: ViewContents (0x0196) — the server's full contents list for a
|
||||
// container you opened. Record membership for each entry so the table is
|
||||
// correct before the container-open UI mounts the second item list.
|
||||
// TODO(container-open): ViewContents is the AUTHORITATIVE full snapshot. When the
|
||||
// container-open phase consumes it, treat it as a full REPLACE (flush the container's
|
||||
// prior membership first), not the additive merge below — otherwise items removed
|
||||
// server-side since the last open would linger.
|
||||
dispatcher.Register(GameEventType.ViewContents, e =>
|
||||
{
|
||||
var p = GameEvents.ParseViewContents(e.Payload.Span);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue