diff --git a/public/js/quickmenu/carddeck.js b/public/js/quickmenu/carddeck.js index 7d2baa8..af396be 100644 --- a/public/js/quickmenu/carddeck.js +++ b/public/js/quickmenu/carddeck.js @@ -1,22 +1,21 @@ const CARDS_PER_PAGE = 18; -let currentGroupId = null; -let currentPage = 1; -let currentDeckId = null; -let deckCards = []; // [{card_id, amount}] -let userCardsCache = []; // aktuelle Seite: [{card_id, amount, name, image, rarity, attack, defense}] -let decks = []; // [{id, name}] - +let currentGroupId = null; +let currentPage = 1; +let currentDeckId = null; +let deckCards = []; // [{card_id, amount}] +let userCardsCache = []; // aktuelle Seite: [{card_id, amount, name, image, rarity, attack, defense}] +let decks = []; // [{id, name}] /* ── Kristall-Mapping ───────────────────────── */ const RARITY_CRYSTALS = { - "1": "roter-cristal.png", - "2": "blauer-cristal.png", - "3": "gelber-cristal.png", - "4": "gruener-cristal.png", - "5": "oranger-cristal.png", - "6": "violet-cristal.png", - "7": "pinker-cristal.png", + 1: "roter-cristal.png", + 2: "blauer-cristal.png", + 3: "gelber-cristal.png", + 4: "gruener-cristal.png", + 5: "oranger-cristal.png", + 6: "violet-cristal.png", + 7: "pinker-cristal.png", }; function rarityImgs(rarity, size = 14) { @@ -250,8 +249,8 @@ function renderShell() { } .kd-stat-atk { position: absolute; - right: 4px; - top: 50%; + right: 12px; + top: 36%; transform: translateY(-50%); background: rgba(180,40,20,0.88); border: 1px solid #ff6040; @@ -261,8 +260,8 @@ function renderShell() { } .kd-stat-def { position: absolute; - left: 4px; - top: 50%; + left: 12px; + top: 36%; transform: translateY(-50%); background: rgba(20,80,180,0.88); border: 1px solid #4090ff; @@ -272,8 +271,8 @@ function renderShell() { } .kd-stat-cd { position: absolute; - bottom: 3px; - right: 3px; + bottom: 16px; + right: 11px; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,0.75); @@ -516,16 +515,18 @@ function renderTabs(groups) { const container = document.getElementById("kd-tabs"); if (!container) return; - container.innerHTML = groups.map((g, i) => { - const color = g.color || "#6b4b2a"; - return ` + container.innerHTML = groups + .map((g, i) => { + const color = g.color || "#6b4b2a"; + return ` `; - }).join(""); + }) + .join(""); container.querySelectorAll(".kd-tab").forEach((btn) => { btn.addEventListener("click", async () => { @@ -550,7 +551,7 @@ function renderTabs(groups) { totalPages, total } ══════════════════════════════════════════════ */ async function loadUserCards() { - const grid = document.getElementById("kd-grid"); + const grid = document.getElementById("kd-grid"); const pagination = document.getElementById("kd-pagination"); if (!grid) return; @@ -558,7 +559,9 @@ async function loadUserCards() { pagination.innerHTML = ""; try { - const res = await fetch(`/api/user-cards?group_id=${currentGroupId}&page=${currentPage}&limit=${CARDS_PER_PAGE}`); + const res = await fetch( + `/api/user-cards?group_id=${currentGroupId}&page=${currentPage}&limit=${CARDS_PER_PAGE}`, + ); if (!res.ok) throw new Error("API Fehler"); const data = await res.json(); userCardsCache = data.cards || []; @@ -588,8 +591,14 @@ async function loadDecks() { function renderDeckSelect() { const sel = document.getElementById("kd-deck-select"); if (!sel) return; - sel.innerHTML = `` + - decks.map(d => ``).join(""); + sel.innerHTML = + `` + + decks + .map( + (d) => + ``, + ) + .join(""); } /* ══════════════════════════════════════════════ @@ -643,7 +652,7 @@ async function addCardToDeck(card) { // Rarity > 5: max. 1 Exemplar im Deck if (parseInt(card.rarity) > 5) { - const already = deckCards.find(c => c.card_id === card.card_id); + const already = deckCards.find((c) => c.card_id === card.card_id); if (already) { showToast("Karten ab Rarity 6 dürfen nur 1x im Deck sein."); return; @@ -740,17 +749,18 @@ function renderCollectionGrid(grid, cards) { const totalInDeck = deckCards.reduce((s, c) => s + c.amount, 0); - grid.innerHTML = cards.map(c => { - const inDeck = getDeckCount(c.card_id); - const maxed = isMaxedOut(c, inDeck, totalInDeck); - return ` + grid.innerHTML = cards + .map((c) => { + const inDeck = getDeckCount(c.card_id); + const maxed = isMaxedOut(c, inDeck, totalInDeck); + return `