From 3f5b63b750712a372c5a20103c4ba4d1fd7d6090 Mon Sep 17 00:00:00 2001 From: cay Date: Mon, 6 Apr 2026 13:32:28 +0100 Subject: [PATCH] Boosterjagd --- public/css/events.css | 189 ++++++++++++++++---- public/images/items/rueckseite.png | Bin 0 -> 66003 bytes public/js/quickmenu/events.js | 268 +++++++++++++++++++++++------ routes/booster.js | 143 +++++++++++++++ 4 files changed, 513 insertions(+), 87 deletions(-) create mode 100644 public/images/items/rueckseite.png create mode 100644 routes/booster.js diff --git a/public/css/events.css b/public/css/events.css index 693f2d2..4396e27 100644 --- a/public/css/events.css +++ b/public/css/events.css @@ -1,23 +1,7 @@ -/* ================================================ - events.css – Tägliche Events Quickmenü-Popup - Die Popup-Basisgrösse kommt von .qm-popup in - quickmenu.css – hier wird sie per ID überschrieben. -================================================ */ +/* ================================ + Events Grid +================================ */ -/* Popup-Grösse für Events (ID schlägt Klasse) */ -#qm-popup-events { - width: 900px; - height: 600px; -} - -/* Body-Padding anpassen (war auf 1800px ausgelegt) */ -#qm-popup-events .qm-popup-body { - padding: 20px 30px; - align-items: flex-start; - justify-content: flex-start; -} - -/* ── Event Grid ─────────────────────────────────── */ .events-grid { display: flex; gap: 10px; @@ -98,14 +82,8 @@ } @keyframes eventDetailIn { - from { - opacity: 0; - transform: translateY(6px); - } - to { - opacity: 1; - transform: translateY(0); - } + from { opacity: 0; transform: translateY(6px); } + to { opacity: 1; transform: translateY(0); } } #event-detail-popup .edp-close { @@ -121,9 +99,7 @@ transition: color 0.1s; } -#event-detail-popup .edp-close:hover { - color: #fff; -} +#event-detail-popup .edp-close:hover { color: #fff; } #event-detail-popup .edp-img { display: block; @@ -148,3 +124,156 @@ line-height: 1.6; text-align: center; } + +/* ================================ + Booster UI +================================ */ + +.booster-ui { + flex-direction: column; + gap: 16px; + padding: 10px 0; + width: 100%; +} + +.booster-back-btn { + align-self: flex-start; + background: none; + border: 1px solid rgba(255, 200, 80, 0.3); + color: #c8960c; + font-size: 12px; + padding: 4px 12px; + border-radius: 4px; + cursor: pointer; + font-family: "Cinzel", serif; + transition: background 0.15s, color 0.15s; +} + +.booster-back-btn:hover { + background: rgba(200, 150, 12, 0.15); + color: #f0d060; +} + +.booster-stage { + display: flex; + align-items: center; + gap: 24px; + width: 100%; +} + +/* ── Stapel links ── */ + +.booster-left { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + flex-shrink: 0; +} + +.booster-stapel-img { + width: 110px; + height: auto; + cursor: pointer; + image-rendering: pixelated; + filter: drop-shadow(0 4px 12px rgba(200, 150, 12, 0.4)); + transition: transform 0.15s ease, filter 0.15s ease; +} + +.booster-stapel-img:hover:not(.used) { + transform: scale(1.06) translateY(-3px); + filter: drop-shadow(0 6px 18px rgba(240, 200, 60, 0.65)); +} + +.booster-stapel-img.used { + cursor: default; + filter: drop-shadow(0 2px 6px rgba(0,0,0,0.3)); +} + +.booster-stapel-hint { + font-size: 11px; + color: #a08040; + font-family: "Cinzel", serif; + letter-spacing: 1px; + text-align: center; +} + +/* ── Karten-Slots rechts ── */ + +.booster-slots { + display: flex; + gap: 10px; + flex: 1; + justify-content: center; +} + +.booster-slot { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + flex: 1; + min-width: 0; +} + +.booster-slot-inner { + width: 100%; + aspect-ratio: 2 / 3; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 6px; + overflow: hidden; + background: #0d0a06; + display: flex; + align-items: center; + justify-content: center; + position: relative; +} + +/* Dreh-Animation */ +.booster-slot.spinning .booster-slot-inner { + border-color: rgba(200, 150, 12, 0.5); + box-shadow: 0 0 12px rgba(200, 150, 12, 0.25); +} + +.booster-slot.spinning .booster-slot-img { + animation: slotFlicker 0.08s steps(1) infinite; +} + +@keyframes slotFlicker { + 0% { opacity: 1; } + 50% { opacity: 0.75; } + 100% { opacity: 1; } +} + +/* Enthüllt */ +.booster-slot.revealed .booster-slot-inner { + border-color: #c8960c; + box-shadow: + 0 0 16px rgba(200, 150, 12, 0.45), + inset 0 0 8px rgba(200, 150, 12, 0.1); + animation: revealPop 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; +} + +@keyframes revealPop { + 0% { transform: scale(0.85); opacity: 0.5; } + 60% { transform: scale(1.06); opacity: 1; } + 100% { transform: scale(1); opacity: 1; } +} + +.booster-slot-img { + width: 100%; + height: 100%; + object-fit: cover; + image-rendering: pixelated; + display: block; +} + +.booster-slot-name { + font-size: 10px; + color: #c8960c; + text-align: center; + font-family: "Cinzel", serif; + letter-spacing: 0.5px; + min-height: 14px; + word-break: break-word; +} diff --git a/public/images/items/rueckseite.png b/public/images/items/rueckseite.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c8036300f553e4bccc8cf6d3aeb5168c1945a1 GIT binary patch literal 66003 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 -
- ${events - .map( - (ev) => ` -
+
+ ${events.map(ev => ` +
${ev.label}
${ev.label} -
`, - ) - .join("")} +
`).join("")}
- + + + +
@@ -64,39 +69,188 @@ export async function loadEvents() { `; /* ================================ - Event-Karten klickbar machen + Referenzen ================================ */ + const overlay = body.querySelector("#event-detail-overlay"); + const edpImg = body.querySelector("#edp-img"); + const edpTitle = body.querySelector("#edp-title"); + const edpBody = body.querySelector("#edp-body"); + const boosterUi = body.querySelector("#booster-ui"); + const eventsGrid = body.querySelector("#events-grid"); - const overlay = body.querySelector("#event-detail-overlay"); - const edpImg = body.querySelector("#edp-img"); - const edpTitle = body.querySelector("#edp-title"); - const edpBody = body.querySelector("#edp-body"); - - body.querySelectorAll(".event-card").forEach((card) => { + /* ================================ + Event-Karten Klick + ================================ */ + body.querySelectorAll(".event-card").forEach(card => { card.addEventListener("click", () => { + if (card.dataset.type === "booster") { + eventsGrid.style.display = "none"; + boosterUi.style.display = "flex"; + resetBooster(); + return; + } const id = Number(card.dataset.eventId); - const ev = events.find((e) => e.id === id); + const ev = events.find(e => e.id === id); if (!ev) return; - - edpImg.src = ev.img; - edpImg.alt = ev.label; + edpImg.src = ev.img; + edpImg.alt = ev.label; edpTitle.textContent = ev.label; - edpBody.textContent = "Inhalt folgt..."; // hier später befüllen - + edpBody.textContent = "Inhalt folgt..."; overlay.classList.add("active"); }); }); - /* Detail-Popup schließen */ - body.querySelector("#edp-close-btn").addEventListener("click", () => { - overlay.classList.remove("active"); + /* ================================ + Detail-Popup schließen + ================================ */ + body.querySelector("#edp-close-btn").addEventListener("click", () => overlay.classList.remove("active")); + overlay.addEventListener("click", e => { if (e.target === overlay) overlay.classList.remove("active"); }); + + /* ================================ + Zurück-Button + ================================ */ + body.querySelector("#booster-back-btn").addEventListener("click", () => { + eventsGrid.style.display = ""; + boosterUi.style.display = "none"; + clearAllIntervals(); + isSpinning = false; }); - overlay.addEventListener("click", (e) => { - if (e.target === overlay) overlay.classList.remove("active"); + document.addEventListener("keydown", e => { + if (e.key === "Escape") { + overlay.classList.remove("active"); + eventsGrid.style.display = ""; + boosterUi.style.display = "none"; + clearAllIntervals(); + } }); - document.addEventListener("keydown", function edpEsc(e) { - if (e.key === "Escape") overlay.classList.remove("active"); + /* ================================ + Booster Zustand + ================================ */ + let allCards = []; + let isSpinning = false; + let spinIntervals = []; + + function clearAllIntervals() { + spinIntervals.forEach(id => clearInterval(id)); + spinIntervals = []; + } + + /* ================================ + Karten vorladen + ================================ */ + async function preloadCards() { + if (allCards.length) return; + try { + const res = await fetch("/api/booster/cards"); + allCards = await res.json(); + } catch (e) { + console.error("Karten laden fehlgeschlagen", e); + } + } + + /* ================================ + Booster zurücksetzen + ================================ */ + function resetBooster() { + clearAllIntervals(); + isSpinning = false; + + for (let i = 0; i < 5; i++) { + const slot = body.querySelector(`#booster-slot-${i}`); + slot.querySelector(".booster-slot-img").src = "/images/items/rueckseite.png"; + slot.querySelector(".booster-slot-name").textContent = ""; + slot.classList.remove("revealed", "spinning"); + } + + const stapel = body.querySelector("#booster-stapel"); + stapel.classList.remove("used"); + stapel.style.opacity = "1"; + stapel.style.cursor = "pointer"; + + body.querySelector("#booster-hint").textContent = "Klicken zum Öffnen"; + + preloadCards(); + } + + /* ================================ + Slot drehen lassen + ================================ */ + function startSpinSlot(index) { + const slot = body.querySelector(`#booster-slot-${index}`); + const imgEl = slot.querySelector(".booster-slot-img"); + slot.classList.add("spinning"); + + const iv = setInterval(() => { + if (!allCards.length) return; + const rnd = allCards[Math.floor(Math.random() * allCards.length)]; + imgEl.src = rnd.image ? `/images/cards/${rnd.image}` : "/images/items/rueckseite.png"; + }, 80); + + spinIntervals[index] = iv; + } + + /* ================================ + Slot enthüllen + ================================ */ + function revealSlot(index, card) { + clearInterval(spinIntervals[index]); + + const slot = body.querySelector(`#booster-slot-${index}`); + const imgEl = slot.querySelector(".booster-slot-img"); + const nameEl = slot.querySelector(".booster-slot-name"); + + slot.classList.remove("spinning"); + slot.classList.add("revealed"); + + imgEl.src = card?.image ? `/images/cards/${card.image}` : "/images/items/rueckseite.png"; + nameEl.textContent = card?.name || "???"; + } + + /* ================================ + Booster-Stapel Klick → Öffnen + ================================ */ + body.querySelector("#booster-stapel").addEventListener("click", async () => { + if (isSpinning) return; + if (!allCards.length) await preloadCards(); + if (!allCards.length) return; + + isSpinning = true; + + const stapel = body.querySelector("#booster-stapel"); + stapel.classList.add("used"); + stapel.style.opacity = "0.35"; + stapel.style.cursor = "default"; + body.querySelector("#booster-hint").textContent = "Wird gezogen..."; + + // 5 Karten vom Server ziehen + let drawnCards = []; + try { + const res = await fetch("/api/booster/open", { method: "POST" }); + const data = await res.json(); + drawnCards = data.cards || []; + } catch (e) { + console.error("Booster öffnen fehlgeschlagen", e); + resetBooster(); + return; + } + + // Alle Slots gleichzeitig drehen + for (let i = 0; i < 5; i++) startSpinSlot(i); + + // Nacheinander alle 5 Sekunden eine Karte enthüllen + for (let i = 0; i < 5; i++) { + setTimeout(() => revealSlot(i, drawnCards[i]), (i + 1) * 5000); + } + + // Nach letzter Karte: Fertig-Meldung + setTimeout(() => { + body.querySelector("#booster-hint").textContent = "Alle Karten enthüllt!"; + isSpinning = false; + }, 5 * 5000 + 500); }); + + // Karten sofort vorladen + preloadCards(); } diff --git a/routes/booster.js b/routes/booster.js new file mode 100644 index 0000000..5e38a1d --- /dev/null +++ b/routes/booster.js @@ -0,0 +1,143 @@ +const express = require("express"); +const router = express.Router(); +const db = require("../database/database"); + +/* ================================ + Gewichtete Zufallsauswahl +================================ */ + +function weightedRandom(weights) { + const total = weights.reduce((s, w) => s + w.weight, 0); + let r = Math.random() * total; + for (const entry of weights) { + r -= entry.weight; + if (r <= 0) return entry.maxLevel; + } + return weights[weights.length - 1].maxLevel; +} + +/* ================================ + Gewichte je Spielerlevel +================================ */ + +function getWeights(playerLevel) { + if (playerLevel < 10) return [ + { maxLevel: 1, weight: 85 }, + { maxLevel: 2, weight: 15 }, + ]; + if (playerLevel < 20) return [ + { maxLevel: 1, weight: 65 }, + { maxLevel: 2, weight: 27 }, + { maxLevel: 3, weight: 8 }, + ]; + if (playerLevel < 30) return [ + { maxLevel: 1, weight: 55 }, + { maxLevel: 2, weight: 26 }, + { maxLevel: 3, weight: 13 }, + { maxLevel: 4, weight: 6 }, + ]; + if (playerLevel < 40) return [ + { maxLevel: 1, weight: 50 }, + { maxLevel: 2, weight: 25 }, + { maxLevel: 3, weight: 14 }, + { maxLevel: 4, weight: 7 }, + { maxLevel: 5, weight: 4 }, + ]; + if (playerLevel < 50) return [ + { maxLevel: 1, weight: 47 }, + { maxLevel: 2, weight: 25 }, + { maxLevel: 3, weight: 15 }, + { maxLevel: 4, weight: 8 }, + { maxLevel: 5, weight: 4.5 }, + { maxLevel: 6, weight: 0.5 }, + ]; + return [ + { maxLevel: 1, weight: 47 }, + { maxLevel: 2, weight: 25 }, + { maxLevel: 3, weight: 15 }, + { maxLevel: 4, weight: 8 }, + { maxLevel: 5, weight: 4.5 }, + { maxLevel: 6, weight: 0.5 }, + ]; +} + +/* ================================ + GET /api/booster/cards + Alle Karten für die Slot-Animation +================================ */ + +router.get("/booster/cards", async (req, res) => { + if (!req.session?.user) return res.status(401).json({ error: "Nicht eingeloggt" }); + + try { + const [cards] = await db.query( + "SELECT id, name, image, max_level, rarity FROM cards ORDER BY id" + ); + res.json(cards); + } catch (err) { + console.error(err); + res.status(500).json({ error: "DB Fehler" }); + } +}); + +/* ================================ + POST /api/booster/open + Gibt 5 gewichtete Zufallskarten zurück +================================ */ + +router.post("/booster/open", async (req, res) => { + if (!req.session?.user) return res.status(401).json({ error: "Nicht eingeloggt" }); + + const userId = req.session.user.id; + + try { + // Spielerlevel direkt aus accounts + const [[account]] = await db.query( + "SELECT level FROM accounts WHERE id = ?", + [userId] + ); + const playerLevel = account?.level ?? 1; + const weights = getWeights(playerLevel); + const maxAllowed = Math.max(...weights.map(w => w.maxLevel)); + + // Alle erlaubten Karten laden + const [allCards] = await db.query( + "SELECT id, name, image, max_level, rarity FROM cards WHERE max_level <= ?", + [maxAllowed] + ); + + if (!allCards.length) { + return res.status(400).json({ error: "Keine Karten verfügbar" }); + } + + // 5 Karten zufällig ziehen + const result = []; + for (let i = 0; i < 5; i++) { + const targetLevel = weightedRandom(weights); + + // Karten mit diesem max_level filtern + let pool = allCards.filter(c => c.max_level === targetLevel); + + // Fallback: nächstniedrigeres Level nehmen + if (!pool.length) { + for (let fallback = targetLevel - 1; fallback >= 1; fallback--) { + pool = allCards.filter(c => c.max_level === fallback); + if (pool.length) break; + } + } + + // Fallback: irgendeine erlaubte Karte + if (!pool.length) pool = allCards; + + const card = pool[Math.floor(Math.random() * pool.length)]; + result.push(card); + } + + res.json({ cards: result, playerLevel }); + } catch (err) { + console.error(err); + res.status(500).json({ error: "DB Fehler" }); + } +}); + +module.exports = router;