fix: Hex Wars - getGameForUser crash bei alten Spielen und finished-Branch

This commit is contained in:
2026-06-28 15:22:11 +02:00
parent 2ec631166b
commit 631a0f86b7

View File

@@ -173,7 +173,13 @@ function getGameForUser(id, requesterId) {
const myScore = requesterId === game.owner_id ? ownerScore : oppScore; const myScore = requesterId === game.owner_id ? ownerScore : oppScore;
const oppSc = requesterId === game.owner_id ? oppScore : ownerScore; const oppSc = requesterId === game.owner_id ? oppScore : ownerScore;
if (!terrain.length) return { ...game, myScore:0, oppScore:0 }; const myHead = requesterId === game.owner_id ? game.owner_head : game.opp_head;
const oppHead = requesterId === game.owner_id ? game.opp_head : game.owner_head;
// Altes Spiel ohne Terrain: direkt zurückgeben, kein Fog
if (!terrain.length) {
return { ...game, myScore:0, oppScore:0, myHead, oppHead };
}
// Bei beendetem Spiel: vollständiges Grid ohne Fog // Bei beendetem Spiel: vollständiges Grid ohne Fog
let maskedGrid, maskedTerrain; let maskedGrid, maskedTerrain;
@@ -186,15 +192,10 @@ function getGameForUser(id, requesterId) {
maskedTerrain = terrain.map((row,r) => row.map((cell,c) => visible[r][c] ? cell : -1)); maskedTerrain = terrain.map((row,r) => row.map((cell,c) => visible[r][c] ? cell : -1));
} }
// Kopf des anfragenden Spielers mitliefern (für Frontend-Validierung)
const myHead = requesterId === game.owner_id ? game.owner_head : game.opp_head;
const oppHead = requesterId === game.owner_id ? game.opp_head : game.owner_head;
return { return {
...game, ...game,
grid: JSON.stringify(maskedGrid), grid: JSON.stringify(maskedGrid),
terrain: JSON.stringify(maskedTerrain), terrain: JSON.stringify(maskedTerrain),
fog: JSON.stringify(visible),
myScore, myScore,
oppScore: oppSc, oppScore: oppSc,
myHead, myHead,