// shared client state — the server snapshot plus client-only bookkeeping export const G = { sessionId: null, state: null, // latest server snapshot (client-safe, no hidden stats) phase: "title", // mirrors server phase + client-side nuance busy: false, // a network call is in flight pendingEvent: null, // fetched event waiting for the player to walk over roamTimer: 0, // seconds until next event fires telegraphed: false, dialogueOpen: false, els: {}, }; export function cacheEls() { for (const id of ["stage", "floor", "world", "fx", "boardroom", "dim", "flash", "edge-pulse", "wipe", "stamp", "hud", "dialogue", "gift-panel", "title-screen", "review-screen", "pt-entries", "rev-number", "rev-fill", "boss-title", "crisis-counter", "pocket", "hr-badge", "hud-banner", "stage-wrap", "comic"]) { G.els[id] = document.getElementById(id); } } export function setState(snapshot) { G.state = snapshot; G.phase = snapshot.phase; }