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_DEPLOYMENT": case "STATE_COMBAT": 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_DEPLOYMENT": case "STATE_COMBAT": 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"; } }); // Set up embark listener once (not inside button click) teamBuilder.addEventListener("embark", async (e) => { await gameStateManager.handleEmbark(e); gameViewport.squad = teamBuilder.squad; }); btnNewRun.addEventListener("click", async () => { gameStateManager.startNewGame(); }); btnContinue.addEventListener("click", async () => { gameStateManager.continueGame(); }); // Boot gameStateManager.init();