Код IT
← Каталог

TypeScript — OnlineCardGame — `src/game/stats.ts`

Фрагмент из «TypeScript — OnlineCardGame»: `src/game/stats.ts`.

typescript spinoffencyclopedia9-04-razrabotka-igr-praktikum-razrabotki-igr-9 embed URL статья в энциклопедии
TypeScript main.ts
import type { SessionStats } from './types';

const KEY = 'tower_shadows_stats';

const defaultStats = (): SessionStats => ({
  totalRuns: 0,
  totalWins: 0,
  bestFloor: 0,
  totalKills: 0,
  dailyBestFloor: 0,
  leaderboard: [],
});

export function loadSessionStats(): SessionStats {
  try {
    const raw = localStorage.getItem(KEY);
    return raw ? { ...defaultStats(), ...JSON.parse(raw) } : defaultStats();
  } catch {
    return defaultStats();
  }
}

export function saveSessionStats(stats: SessionStats) {
  localStorage.setItem(KEY, JSON.stringify(stats));
}
import type { SessionStats } from './types';

const KEY = 'tower_shadows_stats';

const defaultStats = (): SessionStats => ({
  totalRuns: 0,
  totalWins: 0,
  bestFloor: 0,
  totalKills: 0,
  dailyBestFloor: 0,
  leaderboard: [],
});

export function loadSessionStats(): SessionStats {
  try {
    const raw = localStorage.getItem(KEY);
    return raw ? { ...defaultStats(), ...JSON.parse(raw) } : defaultStats();
  } catch {
    return defaultStats();
  }
}

export function saveSessionStats(stats: SessionStats) {
  localStorage.setItem(KEY, JSON.stringify(stats));
}