fix: Hex Wars - Spieler 2 kann Züge machen, Felsen immer sichtbar

This commit is contained in:
2026-06-26 16:17:25 +02:00
parent 5e4b06aa86
commit cfb66c23dc
2 changed files with 4 additions and 2 deletions

View File

@@ -160,7 +160,8 @@ function getGameForUser(id, requesterId) {
// Grid maskieren: versteckte Gegner-Felder als 0 zeigen, Terrain nur wo sichtbar // Grid maskieren: versteckte Gegner-Felder als 0 zeigen, Terrain nur wo sichtbar
const maskedGrid = grid.map((row,r) => row.map((cell,c) => visible[r][c] ? cell : (cell === requesterId ? cell : 0))); const maskedGrid = grid.map((row,r) => row.map((cell,c) => visible[r][c] ? cell : (cell === requesterId ? cell : 0)));
const maskedTerrain = terrain.map((row,r) => row.map((cell,c) => visible[r][c] ? cell : -1)); // -1 = Nebel // Felsen sind immer sichtbar (Frontend braucht sie für canClick)
const maskedTerrain = terrain.map((row,r) => row.map((cell,c) => (visible[r][c] || cell === T_ROCK) ? cell : -1));
return { ...game, grid: JSON.stringify(maskedGrid), terrain: JSON.stringify(maskedTerrain), fog: JSON.stringify(visible) }; return { ...game, grid: JSON.stringify(maskedGrid), terrain: JSON.stringify(maskedTerrain), fog: JSON.stringify(visible) };
} }

View File

@@ -167,8 +167,9 @@ function GameBoard({ game, myId, onMove, toast }) {
const canClick = (r, c) => { const canClick = (r, c) => {
if (!isMyTurn || game.status !== 'active') return false; if (!isMyTurn || game.status !== 'active') return false;
if (grid[r][c] !== 0) return false; if (grid[r][c] !== 0) return false;
// T_ROCK kommt vom Server auch im Nebel nicht — Felsen sind immer sichtbar
// T_FOG darf canClick NICHT blocken: Felder können klickbar aber noch im Nebel sein
if (hasTerrain && terrain[r][c] === T_ROCK) return false; if (hasTerrain && terrain[r][c] === T_ROCK) return false;
if (hasTerrain && terrain[r][c] === T_FOG) return false;
return isAdj(r, c); return isAdj(r, c);
}; };