import { loadWohnhaus } from "./buildings/wohnhaus.js"; const popup = document.getElementById("building-popup"); const title = document.getElementById("popup-title"); const tooltip = document.getElementById("map-tooltip"); const buildingModules = { 11: loadWohnhaus, }; /* ================================ Tabs zurücksetzen ================================ */ function resetTabs() { document .querySelectorAll(".tab") .forEach((t) => t.classList.remove("active")); document .querySelectorAll(".tab-content") .forEach((c) => c.classList.remove("active")); const firstTab = document.querySelector(".tab"); const firstContent = document.querySelector(".tab-content"); if (firstTab) firstTab.classList.add("active"); if (firstContent) firstContent.classList.add("active"); } /* ================================ Gebäude Popup öffnen ================================ */ document.querySelectorAll(".building").forEach((building) => { building.addEventListener("click", async (e) => { e.preventDefault(); try { const name = building.querySelector("title")?.textContent || "Gebäude"; const url = building.getAttribute("href"); title.innerText = name; popup.style.left = "50%"; popup.style.top = "50%"; popup.style.display = "block"; resetTabs(); const res = await fetch("/api" + url); if (!res.ok) throw new Error("API Fehler"); const data = await res.json(); console.log("Gebäude API Antwort:", data); document.getElementById("tab-info").innerHTML = `
Level: ${data.level}
Punkte: ${data.points} / ${data.nextLevelPoints}
${data.description}
`; const actionsTab = document.getElementById("tab-actions"); const tabs = document.querySelector(".popup-tabs"); // Standard: Tabs anzeigen tabs.style.display = "flex"; actionsTab.innerHTML = ``; // Prüfen ob Gebäude ein eigenes Modul hat if (buildingModules[Number(data.type)]) { // NUR beim Wohnhaus Tabs ausblenden if (Number(data.type) === 11) { tabs.style.display = "none"; } actionsTab.innerHTML = ` `; // Modul starten buildingModules[data.type](data); } document.getElementById("tab-upgrade").innerHTML = `Kosten: ${data.upgradeCost}
`; document.getElementById("tab-history").innerHTML = `${data.history}
`; } catch (error) { console.error("Gebäude konnte nicht geladen werden:", error); } }); }); /* ================================ Tabs wechseln ================================ */ document.querySelectorAll(".tab").forEach((tab) => { tab.addEventListener("click", () => { document .querySelectorAll(".tab") .forEach((t) => t.classList.remove("active")); tab.classList.add("active"); document .querySelectorAll(".tab-content") .forEach((c) => c.classList.remove("active")); document.getElementById("tab-" + tab.dataset.tab).classList.add("active"); }); }); /* ================================ Popup schließen ================================ */ document.querySelector(".popup-close").onclick = () => { popup.style.display = "none"; }; /* ================================ Tooltip ================================ */ document.querySelectorAll(".building").forEach((building) => { building.addEventListener("mouseenter", async (e) => { try { const id = building.dataset.id; const res = await fetch("/api/building/" + id); if (!res.ok) throw new Error("API Fehler"); const data = await res.json(); tooltip.innerHTML = ` ${data.name}