Red Mode: 10 FSK-18-Karten (Rotlicht), Host-Schalter im Raum, rotes Design
Build & Deploy / deploy (push) Successful in 19s

This commit is contained in:
Kimi Work
2026-10-10 17:42:00 +02:00
parent 4e2eda855a
commit 1094cf6948
7 changed files with 205 additions and 16 deletions
+11
View File
@@ -154,6 +154,7 @@ function oeffentlicherZustand(raum, token) {
})),
minSpieler: MIN_SPIELER,
maxSpieler: MAX_SPIELER,
redMode: !!raum.redMode,
alleReady,
rankingsFertig: Object.keys(raum.rankings).length,
punkte: raum.punkte,
@@ -211,6 +212,7 @@ const server = http.createServer(async (req, res) => {
status: 'lobby',
runde: 0,
frage: '',
redMode: !!body.redMode,
spieler: [{ name, token: crypto.randomBytes(18).toString('hex'), ready: false, istHost: true }],
rankings: {},
punkte: { [name]: 0 },
@@ -260,6 +262,15 @@ const server = http.createServer(async (req, res) => {
return antwort(res, 200, { ok: true, zustand: oeffentlicherZustand(raum, token) });
}
/* Red Mode umschalten (nur Host, nur vor Spielstart) */
if (req.method === 'POST' && aktion === 'redmode') {
if (raum.status !== 'lobby') return fehler(res, 409, 'Red Mode ist nur vor Spielstart aenderbar');
if (!spieler.istHost) return fehler(res, 403, 'Nur der Host kann den Red Mode aendern');
raum.redMode = !!body.redMode;
speichern();
return antwort(res, 200, { ok: true, zustand: oeffentlicherZustand(raum, token) });
}
/* Frage stellen */
if (req.method === 'POST' && aktion === 'question') {
if (raum.status !== 'question') return fehler(res, 409, 'Keine Fragephase');