diff --git a/app.js b/app.js index 4101462..a75b93e 100644 --- a/app.js +++ b/app.js @@ -144,7 +144,7 @@ app.get("/api/building/:id", requireLogin, async (req, res) => { const buildingInfo = info[0] || {}; res.json({ name: buildingInfo.name || "Gebäude", - type: buildingId, + type: Number(buildingId), // als Number damit buildingModules[type] im Frontend matcht level: building.level, points: building.points, nextLevelPoints: nextLevel[0]?.required_points || null, @@ -319,11 +319,6 @@ app.get("/api/buildings", requireLogin, async (req, res) => { app.use(express.json()); app.use(express.urlencoded({ extended: true })); - -/* ======================== - Static Files -======================== */ - app.use(express.static(path.join(__dirname, "public"))); /* ======================== diff --git a/public/js/buildings/arena.js b/public/js/buildings/arena.js index 79d2db8..957a852 100644 --- a/public/js/buildings/arena.js +++ b/public/js/buildings/arena.js @@ -259,7 +259,7 @@ async function handle1v1Click(card) { me = await res.json(); } catch (err) { console.error("[1v1] Spielerdaten konnten nicht geladen werden:", err); - showArenaError("Spielerdaten konnten nicht geladen werden."); + showArenaError("Spielerdaten konnten nicht geladen werden. (Eingeloggt?)"); return; } @@ -378,16 +378,16 @@ function openArenaPopup(src, opponentName, matchId) { /* ── UI Hilfsfunktionen ────────────────────────────────────────────────────── */ function setCardSearching(card, searching) { const label = card.querySelector(".arena-mode-label"); - const desc = card.querySelector(".arena-mode-desc"); + const desc = card.querySelector(".arena-mode-desc"); if (searching) { card.classList.add("searching"); label.textContent = "⏳ Suche…"; - desc.textContent = "Warte auf passenden Gegner…"; + desc.textContent = "Warte auf passenden Gegner…"; } else { card.classList.remove("searching"); label.textContent = "1v1"; - desc.textContent = "Einzelkampf – Beweis deine Stärke im Duell"; + desc.textContent = "Einzelkampf – Beweis deine Stärke im Duell"; } } @@ -396,9 +396,9 @@ function showQueueStatus(myLevel, poolSize) { if (!box) return; const range = 5; - const min = Math.max(1, myLevel - range); - const max = myLevel + range; - const pool = poolSize ? ` · ${poolSize} Spieler im Pool` : ""; + const min = Math.max(1, myLevel - range); + const max = myLevel + range; + const pool = poolSize ? ` · ${poolSize} Spieler im Pool` : ""; box.style.display = "block"; box.innerHTML = ` diff --git a/public/js/map-ui.js b/public/js/map-ui.js index 6747a50..fcc2f9e 100644 --- a/public/js/map-ui.js +++ b/public/js/map-ui.js @@ -1,3 +1,4 @@ +import { loadArena } from "./buildings/arena.js"; import { loadCharacterHouse } from "./buildings/character-house.js"; import { loadBlackmarket } from "./buildings/blackmarket.js"; import { loadMine } from "./buildings/mine.js"; @@ -8,12 +9,16 @@ const tooltip = document.getElementById("map-tooltip"); const tooltipCache = {}; // Tooltip verstecken wenn Maus über Quickmenu, Popup oder QM-Popups fährt -document.getElementById("quickmenu-panel")?.addEventListener("mouseenter", () => { - tooltip.style.display = "none"; -}); -document.getElementById("building-popup")?.addEventListener("mouseenter", () => { - tooltip.style.display = "none"; -}); +document + .getElementById("quickmenu-panel") + ?.addEventListener("mouseenter", () => { + tooltip.style.display = "none"; + }); +document + .getElementById("building-popup") + ?.addEventListener("mouseenter", () => { + tooltip.style.display = "none"; + }); document.querySelectorAll(".qm-popup").forEach((p) => { p.addEventListener("mouseenter", () => { tooltip.style.display = "none"; @@ -24,9 +29,10 @@ document.getElementById("qm-overlay")?.addEventListener("mouseenter", () => { }); const buildingModules = { - 11: loadCharacterHouse, // Tabs ausblenden, eigenes UI - 12: loadBlackmarket, // Tabs ausblenden, eigenes UI - 10: loadMine, // Tabs bleiben sichtbar, nur Aktionen-Tab befüllen + 1: loadArena, // Arena – eigenes UI, Tabs ausblenden + 10: loadMine, // Mine – Tabs bleiben sichtbar + 11: loadCharacterHouse, // Charakterhaus – eigenes UI, Tabs ausblenden + 12: loadBlackmarket, // Schwarzmarkt – eigenes UI, Tabs ausblenden }; // Gebäude die ihre eigenen Tabs behalten sollen @@ -98,7 +104,7 @@ async function openBuildingPopup(url) { tabs.style.display = "none"; infoTab.innerHTML = `
`; } - buildingModules[buildingType](url.split('/').pop()); + buildingModules[buildingType](url.split("/").pop()); } // Punkte-Check: Upgrade nur möglich wenn genug Punkte vorhanden @@ -132,8 +138,8 @@ async function openBuildingPopup(url) { -