Show resetting state after game end

This commit is contained in:
2026-09-19 22:50:17 -04:00
parent f975911204
commit 5985959882
7 changed files with 88 additions and 9 deletions
+8
View File
@@ -3,6 +3,7 @@ import { browser } from '$app/environment';
import type { GameTelemetry } from '$lib/telemetry.js';
export const telemetryByServer = writable<Map<string, GameTelemetry>>(new Map());
export const matchEventsByServer = writable<Map<string, GameTelemetry>>(new Map());
export interface RosterPlayer {
num: number | null;
@@ -76,6 +77,13 @@ export function startServerStream(): (() => void) | undefined {
source.addEventListener('server-telemetry', (evt) => {
const data = JSON.parse((evt as MessageEvent).data) as { entries: GameTelemetry[]; snapshot?: boolean; serverNow?: number };
syncServerTime(data.serverNow);
matchEventsByServer.update((previous) => {
const next = data.snapshot ? new Map<string, GameTelemetry>() : new Map(previous);
for (const entry of data.entries) {
if (entry.event === 'game_start' || entry.event === 'game_end') next.set(entry.server, entry);
}
return next;
});
telemetryByServer.update((previous) => {
const next = data.snapshot ? new Map<string, GameTelemetry>() : new Map(previous);
for (const entry of data.entries) next.set(entry.server, entry);