fix: Hex Wars - getGameForUser crash bei alten Spielen und finished-Branch
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user