diff --git a/backend/src/tools/gebietseroberung/routes.js b/backend/src/tools/gebietseroberung/routes.js index c094ffe..ef72d16 100644 --- a/backend/src/tools/gebietseroberung/routes.js +++ b/backend/src/tools/gebietseroberung/routes.js @@ -173,7 +173,13 @@ function getGameForUser(id, requesterId) { const myScore = requesterId === game.owner_id ? ownerScore : oppScore; 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 let maskedGrid, maskedTerrain; @@ -181,20 +187,15 @@ function getGameForUser(id, requesterId) { maskedGrid = grid; maskedTerrain = terrain; } else { - const visible = computeFog(grid, requesterId); + const visible = computeFog(grid, requesterId); maskedGrid = grid.map((row,r) => row.map((cell,c) => visible[r][c] ? cell : (cell===requesterId ? cell : 0))); 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 { ...game, grid: JSON.stringify(maskedGrid), terrain: JSON.stringify(maskedTerrain), - fog: JSON.stringify(visible), myScore, oppScore: oppSc, myHead,