Fix multiplayer board enabling after pairing
This commit is contained in:
30
game.js
30
game.js
@@ -78,6 +78,7 @@ function handleServerMessage(payload) {
|
|||||||
if (payload.type === "waiting") {
|
if (payload.type === "waiting") {
|
||||||
localPlayer = "";
|
localPlayer = "";
|
||||||
roomId = "";
|
roomId = "";
|
||||||
|
multiplayerState = "waiting";
|
||||||
setupGame();
|
setupGame();
|
||||||
setMultiplayerState("waiting", "Waiting for another player...");
|
setMultiplayerState("waiting", "Waiting for another player...");
|
||||||
return;
|
return;
|
||||||
@@ -86,6 +87,7 @@ function handleServerMessage(payload) {
|
|||||||
if (payload.type === "paired") {
|
if (payload.type === "paired") {
|
||||||
localPlayer = payload.player;
|
localPlayer = payload.player;
|
||||||
roomId = payload.roomId;
|
roomId = payload.roomId;
|
||||||
|
multiplayerState = "paired";
|
||||||
setupGame();
|
setupGame();
|
||||||
setMultiplayerState("paired", `You are ${localPlayer}. ${currentPlayer} plays first.`);
|
setMultiplayerState("paired", `You are ${localPlayer}. ${currentPlayer} plays first.`);
|
||||||
return;
|
return;
|
||||||
@@ -97,6 +99,7 @@ function handleServerMessage(payload) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (payload.type === "reset") {
|
if (payload.type === "reset") {
|
||||||
|
multiplayerState = "paired";
|
||||||
setupGame();
|
setupGame();
|
||||||
setMultiplayerState("paired", `Game reset. You are ${localPlayer}. ${currentPlayer} plays first.`);
|
setMultiplayerState("paired", `Game reset. You are ${localPlayer}. ${currentPlayer} plays first.`);
|
||||||
return;
|
return;
|
||||||
@@ -147,13 +150,37 @@ function render() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
turnBadge.textContent = gameOver ? "Game over" : `${currentPlayer} to play`;
|
turnBadge.textContent = turnLabel();
|
||||||
turnBadge.className = `turn-badge player-${currentPlayer.toLowerCase()}`;
|
turnBadge.className = `turn-badge player-${currentPlayer.toLowerCase()}`;
|
||||||
xCapturesElement.textContent = captures.X;
|
xCapturesElement.textContent = captures.X;
|
||||||
oCapturesElement.textContent = captures.O;
|
oCapturesElement.textContent = captures.O;
|
||||||
resetButton.disabled = multiplayerState !== "paired";
|
resetButton.disabled = multiplayerState !== "paired";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function turnLabel() {
|
||||||
|
if (gameOver) {
|
||||||
|
return "Game over";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (multiplayerState === "connecting") {
|
||||||
|
return "Connecting";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (multiplayerState === "waiting") {
|
||||||
|
return "Waiting";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (multiplayerState === "error") {
|
||||||
|
return "Offline";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentPlayer === localPlayer) {
|
||||||
|
return `Your turn (${localPlayer})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${currentPlayer} to play`;
|
||||||
|
}
|
||||||
|
|
||||||
function canPlayCell(row, col) {
|
function canPlayCell(row, col) {
|
||||||
return multiplayerState === "paired" &&
|
return multiplayerState === "paired" &&
|
||||||
!gameOver &&
|
!gameOver &&
|
||||||
@@ -347,4 +374,3 @@ resetButton.addEventListener("click", () => {
|
|||||||
|
|
||||||
setupGame();
|
setupGame();
|
||||||
connectToServer();
|
connectToServer();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user