import { gameStateManager } from "./core/GameStateManager.js"; const gameViewport = document.querySelector("game-viewport"); const teamBuilder = document.querySelector("team-builder"); const mainMenu = document.getElementById("main-menu"); const btnNewRun = document.getElementById("btn-start"); const btnContinue = document.getElementById("btn-load"); const loadingOverlay = document.getElementById("loading-overlay"); const loadingMessage = document.getElementById("loading-message"); // --- Event Listeners --- window.addEventListener("gamestate-changed", async (e) => { const { newState } = e.detail; console.log("gamestate-changed", newState); switch (newState) { case "STATE_MAIN_MENU": loadingMessage.textContent = "INITIALIZING MAIN MENU..."; break; case "STATE_TEAM_BUILDER": loadingMessage.textContent = "INITIALIZING TEAM BUILDER..."; break; case "STATE_GAME_RUN": loadingMessage.textContent = "INITIALIZING GAME ENGINE..."; break; } loadingOverlay.toggleAttribute("hidden", false); mainMenu.toggleAttribute("hidden", true); gameViewport.toggleAttribute("hidden", true); teamBuilder.toggleAttribute("hidden", true); switch (newState) { case "STATE_MAIN_MENU": mainMenu.toggleAttribute("hidden", false); break; case "STATE_TEAM_BUILDER": await import("./ui/team-builder.js"); teamBuilder.toggleAttribute("hidden", false); break; case "STATE_GAME_RUN": await import("./ui/game-viewport.js"); gameViewport.toggleAttribute("hidden", false); break; } loadingOverlay.toggleAttribute("hidden", true); }); window.addEventListener("save-check-complete", (e) => { if (e.detail.hasSave) { btnContinue.disabled = false; btnContinue.style.borderColor = "#00ff00"; btnContinue.style.color = "#00ff00"; } }); btnNewRun.addEventListener("click", async () => { teamBuilder.addEventListener("embark", async (e) => { gameStateManager.handleEmbark(e); }); gameStateManager.startNewGame(); }); btnContinue.addEventListener("click", async () => { gameStateManager.continueGame(); }); // Boot gameStateManager.init();