feat(ui): share indicator detail panels
Port the authored Link Status, Vitae, and Mini Game detail roots and register every indicator page with retail's one-active gmPanelUI owner. Helpful/Harmful and the new pages now replace Inventory, Character, or Magic at one canonical window position while preserving the DAT restore-previous flag. Correct the retail ping wire to its payload-free request/response, publish measured RTT, and port Vitae recovery XP from the live modifier and player properties. Keep transport packet-loss averaging and mini-game gameplay explicitly tracked under AP-110. Release build and all 5,814 tests pass with five intentional skips. Connected visual gate pending. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
52c529be86
commit
a96767ba6d
28 changed files with 6539 additions and 32 deletions
|
|
@ -67,6 +67,8 @@ public sealed class IndicatorBarControllerTests
|
|||
50u, 3u, 60f, 1u, StatModValue: 0.99f, Bucket: 4u));
|
||||
Assert.True(vitae.Enabled);
|
||||
Assert.Equal(UiButtonStateMachine.Normal, vitae.ActiveRetailStateId);
|
||||
vitae.OnEvent(new UiEvent(0, vitae, UiEventType.Click));
|
||||
Assert.Equal(RetailPanelCatalog.Vitae, h.ToggledPanels[^1]);
|
||||
|
||||
h.Spellbook.OnEnchantmentRemoved(3u, 50u);
|
||||
Assert.False(vitae.Enabled);
|
||||
|
|
@ -164,6 +166,8 @@ public sealed class IndicatorBarControllerTests
|
|||
Assert.False(miniGame.Enabled);
|
||||
controller.SetMiniGameActive(true);
|
||||
Assert.True(miniGame.Enabled);
|
||||
miniGame.OnEvent(new UiEvent(0, miniGame, UiEventType.Click));
|
||||
Assert.Equal(RetailPanelCatalog.MiniGame, h.ToggledPanels[^1]);
|
||||
controller.SetMiniGameActive(false);
|
||||
Assert.False(miniGame.Enabled);
|
||||
|
||||
|
|
@ -171,6 +175,18 @@ public sealed class IndicatorBarControllerTests
|
|||
Assert.Equal(1, h.EndSessionRequests);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void LinkButton_DispatchesSharedLinkStatusPanel()
|
||||
{
|
||||
var h = CreateHarness();
|
||||
using IndicatorBarController controller = h.Controller;
|
||||
UiButton link = h.Button(IndicatorBarController.LinkButtonId);
|
||||
|
||||
link.OnEvent(new UiEvent(0, link, UiEventType.Click));
|
||||
|
||||
Assert.Equal([RetailPanelCatalog.LinkStatus], h.ToggledPanels);
|
||||
}
|
||||
|
||||
private static Harness CreateHarness(int strength = 10)
|
||||
{
|
||||
var table = SpellTable.LoadFromReader(new StringReader(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue