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
|
||||
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) };
|
||||
}
|
||||
|
||||
@@ -167,8 +167,9 @@ function GameBoard({ game, myId, onMove, toast }) {
|
||||
const canClick = (r, c) => {
|
||||
if (!isMyTurn || game.status !== 'active') 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_FOG) return false;
|
||||
return isAdj(r, c);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user