From d36914c7d6811e0e3a21440a18eade4ce92fa783 Mon Sep 17 00:00:00 2001 From: Cay Date: Sat, 14 Mar 2026 14:04:25 +0000 Subject: [PATCH] Beginn Schwarzmarkt --- app.js | 2 ++ public/js/buildings/schwarzmarkt.js | 44 +++++++++++++++++++++++++++++ public/js/map-ui.js | 2 ++ routes/blackmarket.js | 6 ++++ 4 files changed, 54 insertions(+) create mode 100644 public/js/buildings/schwarzmarkt.js create mode 100644 routes/blackmarket.js diff --git a/app.js b/app.js index e0e1350..01993f0 100644 --- a/app.js +++ b/app.js @@ -20,6 +20,7 @@ const inventory = require("./routes/inventory"); const avatar = require("./routes/avatar"); const equip = require("./routes/equip"); const equipment = require("./routes/equipment"); +const blackmarket = require("./routes/blackmarket"); const app = express(); app.set("trust proxy", 1); @@ -193,6 +194,7 @@ app.use("/api/inventory", inventory); app.use("/api/avatar", avatar); app.use("/api/equip", equip); app.use("/api/equipment", equipment); +app.use("/api/blackmarket", blackmarket); /* ======================== 404 Handler diff --git a/public/js/buildings/schwarzmarkt.js b/public/js/buildings/schwarzmarkt.js new file mode 100644 index 0000000..3eef8a0 --- /dev/null +++ b/public/js/buildings/schwarzmarkt.js @@ -0,0 +1,44 @@ +export async function loadSchwarzmarkt() { + const ui = document.querySelector(".building-ui"); + + ui.innerHTML = ` +

Schwarzmarkt

+ +
+ + +`; + + loadMarketInfo(); +} + +async function loadMarketInfo() { + const res = await fetch("/api/blackmarket/pages"); + const data = await res.json(); + + const info = document.getElementById("market-info"); + + info.innerHTML = ` +

Freigeschaltete Seiten: ${data.ownedPages} / ${data.maxPages}

+

Inventarslots: ${data.slots}

+`; +} + +document.addEventListener("click", async (e) => { + if (e.target.id !== "buy-page") return; + + const res = await fetch("/api/blackmarket/buy-page", { + method: "POST", + }); + + const data = await res.json(); + + if (data.error) { + alert(data.error); + return; + } + + alert("Seite " + data.page + " freigeschaltet!"); + + location.reload(); +}); diff --git a/public/js/map-ui.js b/public/js/map-ui.js index 377893c..0fff700 100644 --- a/public/js/map-ui.js +++ b/public/js/map-ui.js @@ -1,10 +1,12 @@ import { loadWohnhaus } from "./buildings/wohnhaus.js"; +import { loadSchwarzmarkt } from "./buildings/schwarzmarkt.js"; const popup = document.getElementById("building-popup"); const title = document.getElementById("popup-title"); const tooltip = document.getElementById("map-tooltip"); const buildingModules = { 11: loadWohnhaus, + 12: loadSchwarzmarkt, }; /* ================================ diff --git a/routes/blackmarket.js b/routes/blackmarket.js new file mode 100644 index 0000000..9e1ef82 --- /dev/null +++ b/routes/blackmarket.js @@ -0,0 +1,6 @@ +const express = require("express"); +const router = express.Router(); +const db = require("../database/database"); +const auth = require("../middleware/auth"); + +module.exports = router;