fix(combat): wire combat tracker in InitializeForHotReload

The combat stats tracker was only started in LoginComplete — but
auto-updates go through InitializeForHotReload() which skipped it
entirely. After every hot reload, _combatStatsTracker was created but
never had SetCombatTracker/RestartSession/Start called.

Also adds vital sharing re-init for the same hot reload path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-04-12 10:02:38 +02:00
parent 11969fc590
commit b48af81a13
2 changed files with 21 additions and 1 deletions

View file

@ -783,7 +783,27 @@ namespace MosswartMassacre
WriteToChat($"[ERROR] Quest streaming service hot reload failed: {ex.Message}"); WriteToChat($"[ERROR] Quest streaming service hot reload failed: {ex.Message}");
} }
// 10. Reinitialize character stats streaming // 10. Reinitialize combat stats tracker
try
{
_chatEventRouter.SetCombatTracker(_combatStatsTracker);
_combatStatsTracker?.RestartSession();
_combatStatsTracker?.Start();
WriteToChat($"[OK] Combat stats tracker initialized (tracker={(_combatStatsTracker != null ? "OK" : "NULL")})");
}
catch (Exception ex)
{
WriteToChat($"[ERROR] Combat stats hot reload failed: {ex.Message}");
}
// 10b. Reinitialize vital sharing if enabled
if (PluginSettings.Instance.VitalSharingEnabled && _vitalSharingTracker != null)
{
_vitalSharingTracker.Start();
WriteToChat("[OK] Vital sharing re-enabled after hot reload");
}
// 11. Reinitialize character stats streaming
try try
{ {
if (characterStatsTimer == null) if (characterStatsTimer == null)