feat(chat): route retail lifestone commands

Separate retail client actions, ACE server commands, and ordinary chat at the shared router. Port lifestone/lif/ls from the named retail registry through a typed App controller to game action 0x0063, keep unknown verbs on ACE Talk, and cover both UI backends plus exact outbound bytes.

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-13 11:43:19 +02:00
parent 5090aa7217
commit 5a45a7ac7f
19 changed files with 604 additions and 78 deletions

View file

@ -1262,6 +1262,16 @@ public sealed class WorldSession : IDisposable
SendGameAction(body);
}
/// <summary>
/// Send retail lifestone recall (0x0063). Retail source:
/// <c>CM_Character::Event_TeleToLifestone @ 0x006A1B90</c>.
/// </summary>
public void SendTeleportToLifestone()
{
uint seq = NextGameActionSequence();
SendGameAction(InteractRequests.BuildTeleToLifestone(seq));
}
/// <summary>Send retail ChangeCombatMode (0x0053).</summary>
public void SendChangeCombatMode(CombatMode mode)
{