fix(ui): port live experience quality updates (#217)
Parse retail PrivateUpdatePropertyInt64 and route authoritative Total/Available Experience through both local-player projections so Attributes, the level meter, and Skills refresh together. Preserve the existing retail XP curve and right-align the Total XP value. Close the user-confirmed item-give gate for #216 and record the named-retail/ACE/holtburger conformance evidence. Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
parent
30d294506c
commit
84b7d2d7cd
15 changed files with 391 additions and 29 deletions
|
|
@ -262,6 +262,22 @@ public sealed class LocalPlayerStateTests
|
|||
Assert.Equal(1_234_567_890L, s.Properties.GetInt64(1u));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OnInt64PropertyUpdate_ReplacesValueAndFiresCharacterChanged()
|
||||
{
|
||||
var s = new LocalPlayerState();
|
||||
var props = new PropertyBundle();
|
||||
props.Int64s[1u] = 100L;
|
||||
s.OnProperties(props);
|
||||
int changed = 0;
|
||||
s.CharacterChanged += () => changed++;
|
||||
|
||||
s.OnInt64PropertyUpdate(1u, 1_234_567_890L);
|
||||
|
||||
Assert.Equal(1_234_567_890L, s.Properties.GetInt64(1u));
|
||||
Assert.Equal(1, changed);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OnSkillUpdate_StoresFormulaAdjustedCurrent()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue