feat(mosstank): add VTank-style automation PoC

This commit is contained in:
Erik 2026-08-27 18:57:21 +02:00
parent f6fe0f2a4f
commit 4e6e9bc9d9
212 changed files with 49462 additions and 416 deletions

View file

@ -1004,9 +1004,14 @@ public static class GameEventWiring
{
var p = AppraiseInfoParser.TryParse(e.Payload.Span);
if (p is null) return;
// Merge parsed properties into the item if we know about it.
// Retain the property tables and the item's own spell manifest as
// one projection. VTank consults the latter for proc weapons.
if (p.Value.Success && items.Get(p.Value.Guid) is not null)
items.UpdateProperties(p.Value.Guid, p.Value.Properties);
items.UpdateAppraisal(
p.Value.Guid,
p.Value.Properties,
p.Value.SpellBook,
clientTime());
if (p.Value.CreatureProfile is { HealthMax: > 0u } creature)
combat.OnUpdateHealth(
p.Value.Guid,
@ -1020,8 +1025,8 @@ public static class GameEventWiring
// spellbook arrives via PlayerDescription (0x0013), which uses
// a different wire format (see WorldSession + LocalPlayerState
// — feeds vitals from PrivateUpdateVital instead).
// The appraised spellbook belongs to that item. The local player's
// learned spell manifest arrives only in PlayerDescription.
// The appraised spellbook now belongs to that item. The local
// player's learned manifest arrives only in PlayerDescription.
});
// ── Player ────────────────────────────────────────────────