Fix multiplayer board enabling after pairing

This commit is contained in:
2026-05-05 12:53:36 -04:00
parent c7dcc71707
commit 01e1c78bf7

30
game.js
View File

@@ -78,6 +78,7 @@ function handleServerMessage(payload) {
if (payload.type === "waiting") {
localPlayer = "";
roomId = "";
multiplayerState = "waiting";
setupGame();
setMultiplayerState("waiting", "Waiting for another player...");
return;
@@ -86,6 +87,7 @@ function handleServerMessage(payload) {
if (payload.type === "paired") {
localPlayer = payload.player;
roomId = payload.roomId;
multiplayerState = "paired";
setupGame();
setMultiplayerState("paired", `You are ${localPlayer}. ${currentPlayer} plays first.`);
return;
@@ -97,6 +99,7 @@ function handleServerMessage(payload) {
}
if (payload.type === "reset") {
multiplayerState = "paired";
setupGame();
setMultiplayerState("paired", `Game reset. You are ${localPlayer}. ${currentPlayer} plays first.`);
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()}`;
xCapturesElement.textContent = captures.X;
oCapturesElement.textContent = captures.O;
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) {
return multiplayerState === "paired" &&
!gameOver &&
@@ -347,4 +374,3 @@ resetButton.addEventListener("click", () => {
setupGame();
connectToServer();