fix: Hex Wars - Resign setzt move_count>=2, Badge + Liste für Gewinner
This commit is contained in:
@@ -589,7 +589,14 @@ router.post('/:id/resign', authenticate, (req, res) => {
|
|||||||
if (game.status !== 'active') return res.status(400).json({ error: 'Spiel bereits beendet' });
|
if (game.status !== 'active') return res.status(400).json({ error: 'Spiel bereits beendet' });
|
||||||
|
|
||||||
const winner = game.owner_id === me ? game.opponent_id : game.owner_id;
|
const winner = game.owner_id === me ? game.opponent_id : game.owner_id;
|
||||||
db.prepare(`UPDATE geo_games SET status='finished', winner_id=?, updated_at=datetime('now','localtime') WHERE id=?`).run(winner, game.id);
|
// move_count auf min. 2 setzen damit Spiel in Liste + Leaderboard erscheint
|
||||||
|
// seen_by: aufgebender Spieler hat es gesehen, Gewinner noch nicht
|
||||||
|
const newMoveCount = Math.max(game.move_count || 0, 2);
|
||||||
|
const seenBy = JSON.stringify([me]); // nur der Aufgebende hat es "gesehen"
|
||||||
|
db.prepare(`
|
||||||
|
UPDATE geo_games SET status='finished', winner_id=?, move_count=?, seen_by=?,
|
||||||
|
updated_at=datetime('now','localtime') WHERE id=?
|
||||||
|
`).run(winner, newMoveCount, seenBy, game.id);
|
||||||
const myName = db.prepare('SELECT username FROM users WHERE id=?').get(me)?.username || 'Jemand';
|
const myName = db.prepare('SELECT username FROM users WHERE id=?').get(me)?.username || 'Jemand';
|
||||||
sendPush(winner, '⬡ Hex Wars gewonnen!', `${myName} hat aufgegeben. Du gewinnst! 🎉`);
|
sendPush(winner, '⬡ Hex Wars gewonnen!', `${myName} hat aufgegeben. Du gewinnst! 🎉`);
|
||||||
res.json({ ok: true });
|
res.json({ ok: true });
|
||||||
|
|||||||
Reference in New Issue
Block a user