import { uniqueNamesGenerator, names, adjectives } from "unique-names-generator"; import { createRegular } from "../logic/players.js"; import { randomStatus, randomLevel } from "../logic/random.js"; import { parseCsv } from "../logic/csv.js"; const STORAGE_KEY = "Regular"; const REGULAR_COUNT = 71; const nameConfig = { dictionaries: [adjectives, names], style: "capital", length: 2, }; function generateRandomRegular(id) { const [firstName, lastName] = uniqueNamesGenerator(nameConfig).split("_"); return createRegular(id, randomStatus(), randomLevel(), 0, firstName, lastName); } function loadInitialRegulars() { const stored = JSON.parse(localStorage.getItem(STORAGE_KEY)); if (stored && stored.length > 0) { return stored.map((r) => createRegular( Number(r.id), Boolean(Number(r.status)), Number(r.level), Number(r.games), r.firstName, r.lastName ) ); } return Array.from({ length: REGULAR_COUNT }, (_, i) => generateRandomRegular(i)); } let regulars = $state(loadInitialRegulars()); function persist() { localStorage.setItem(STORAGE_KEY, JSON.stringify(regulars)); } if (!localStorage.getItem(STORAGE_KEY)) persist(); export function getRegulars() { return regulars; } export function activeRegulars() { return regulars.filter((r) => r.status); } export function toggleRegular(id) { const regular = regulars.find((r) => r.id === id); if (!regular) return; regular.status = !regular.status; persist(); } export function incrementRegularGames(playerNames) { for (const regular of regulars) { if (playerNames.includes(regular.name)) { regular.games += 1; } } persist(); } export function resetRegulars() { for (const regular of regulars) { regular.games = 0; regular.status = false; } persist(); } export function loadRegularsFromCsv(csvText) { regulars = parseCsv(csvText); persist(); }