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>
15 lines
531 B
C#
15 lines
531 B
C#
namespace AcDream.Core.Net;
|
|
|
|
/// <summary>
|
|
/// Immutable network-owned input for retail's link-status presentation.
|
|
/// <see cref="WorldSession"/> records the last successfully decoded server
|
|
/// datagram; UI code applies retail's display thresholds and cadence.
|
|
/// </summary>
|
|
public readonly record struct LinkStatusSnapshot(
|
|
bool Connected,
|
|
double SecondsSinceLastPacket,
|
|
double PacketLossPercentage = 0d,
|
|
double? RoundTripSeconds = null)
|
|
{
|
|
public static LinkStatusSnapshot Disconnected => new(false, 0d);
|
|
}
|