fix: Hex Wars - Spieler 2 kann Züge machen, Felsen immer sichtbar
This commit is contained in:
@@ -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) };
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user