fix(ui): D.2b-B — address phase-boundary review (burden % saturation + equipped filter)

Opus phase-boundary review findings:
- I1 (faithfulness): LoadToPercent now computes from the CLAMPED fill
  (floor(LoadToFill(load)*300)), so the burden % SATURATES at 300% like retail
  (decomp 176544-176576 clamps arg2 to [0,1] BEFORE the *300). The old
  floor(load*100) over-read to 400% at 4x capacity. Golden test corrected.
- I2 (partition): exclude equipped items (CurrentlyEquippedLocation != None) from
  the contents grid + selector — a mid-session self-wield routes them through
  MoveItem(item, WielderGuid=player) into GetContents(player); retail's gm3DItemsUI
  shows pack contents only. New conformance test.
- N1: drop dead 'using System.Collections.Generic' (left after the 383e8b7 cleanup).
- N3: AP-48 risk wording (drift can be low OR high vs server EncumbranceVal).

Build green; BurdenMath 17, InventoryController/UiMeter 10 tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-21 09:28:29 +02:00
parent 7bb4bd3ae8
commit 1ccf07b705
5 changed files with 33 additions and 9 deletions

View file

@ -33,8 +33,8 @@ public class BurdenMathTests
[InlineData(0f, 0)]
[InlineData(0.5f, 50)]
[InlineData(1.0f, 100)]
[InlineData(3.0f, 300)]
[InlineData(4.0f, 400)] // percent NOT clamped
public void LoadToPercent_is_floor_load_times_100(float load, int expected)
[InlineData(3.0f, 300)] // 300% = full
[InlineData(4.0f, 300)] // SATURATES at 300% (computed from the clamped fill, decomp 176544-176576)
public void LoadToPercent_saturates_at_300(float load, int expected)
=> Assert.Equal(expected, BurdenMath.LoadToPercent(load));
}