feat: Adding economic system to do scoring
This commit is contained in:
@@ -9,6 +9,8 @@ import {
|
||||
getTeamCooldown,
|
||||
upsertTeamCooldown,
|
||||
getScores,
|
||||
getEconScores,
|
||||
addEconScore,
|
||||
} from "../db/gameDb.js";
|
||||
import { computeCell, rowToCellPayload } from "../helpers/cell.js";
|
||||
|
||||
@@ -43,6 +45,7 @@ router.get("/config", async (req, res) => {
|
||||
seedPeriodEndsAtUtc: ws.seedPeriodEndsAtUtc,
|
||||
seedPeriodStartsAtUtc: ws.seedPeriodStartsAtUtc,
|
||||
teamCooldownRemaining,
|
||||
resourceWorth: cfg.resourceWorth ?? { common: {}, rare: {} },
|
||||
});
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
@@ -134,6 +137,49 @@ router.post("/cell/reveal", async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// POST /api/admin/verify
|
||||
router.post("/admin/verify", (req, res) => {
|
||||
const password = String(req.body?.password ?? "");
|
||||
const adminPwd = process.env.ADMIN_PASSWORD;
|
||||
if (!adminPwd) {
|
||||
return res.status(503).json({ ok: false, error: "not_configured" });
|
||||
}
|
||||
if (password && password === adminPwd) {
|
||||
return res.json({ ok: true });
|
||||
}
|
||||
return res.status(401).json({ ok: false, error: "invalid_password" });
|
||||
});
|
||||
|
||||
// GET /api/econ-scores
|
||||
router.get("/econ-scores", async (_req, res) => {
|
||||
try {
|
||||
const worldSeed = await ensureSeedEpoch();
|
||||
const scores = await getEconScores(worldSeed);
|
||||
res.json(scores);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
res.status(500).json({ error: "database_error" });
|
||||
}
|
||||
});
|
||||
|
||||
// POST /api/econ-scores/tick body: { seed, blue, red }
|
||||
router.post("/econ-scores/tick", async (req, res) => {
|
||||
const seed = String(req.body?.seed ?? "");
|
||||
const blue = Number(req.body?.blue ?? 0);
|
||||
const red = Number(req.body?.red ?? 0);
|
||||
try {
|
||||
const worldSeed = await ensureSeedEpoch();
|
||||
if (seed !== worldSeed) return res.status(410).json({ error: "seed_expired", worldSeed });
|
||||
await addEconScore(worldSeed, "blue", blue);
|
||||
await addEconScore(worldSeed, "red", red);
|
||||
const scores = await getEconScores(worldSeed);
|
||||
res.json(scores);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
res.status(500).json({ error: "database_error" });
|
||||
}
|
||||
});
|
||||
|
||||
// GET /api/scores
|
||||
router.get("/scores", async (_req, res) => {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user