character_stats: the full character frame, five seconds after login and every ten minutes

Fields, order and types as the original sent them. Values follow the
original's client library where it matters: race and gender are the player's
string properties, birth the creation time as a US date (explicit pattern, so
no newer-culture space quirk), burden the units over 150 times effective
strength truncated to a percent, capacity with the carrying augmentation, and
properties the player's integer properties minus the original's blacklist.
Attributes, vitals and skills carry unbuffed values, creation being the value
before experience was spent. Titles, the allegiance tree and luminance total
come through seams that the plugin API additions fill; until then they are
null, as the original sent them before the matching server message arrived.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-25 12:33:15 +02:00
parent 2e5d768ca9
commit 5b3179dd75
4 changed files with 346 additions and 0 deletions

View file

@ -311,6 +311,8 @@ public sealed class FakeDialogAutomation : IDialogAutomation
public sealed class FakeCharacter : ICharacterInfo
{
public bool IsInWorld { get; set; }
public int Level { get; set; }
public IReadOnlyList<PluginVitalInfo> Vitals { get; set; } = [];
public string Name { get; set; } = string.Empty;
public string WorldName { get; set; } = string.Empty;
public int ServerPopulation { get; set; } = -1;