Reset lobby UI state when returning from game over

- Add resetLobbyState() to UIManager to clear player lists and reset ready button
- Call resetLobbyState() when player-joined event has null player (game over reset)
- Reset ready button state in endGame() before showing game over screen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-21 04:19:15 +00:00
parent 656d5041b2
commit 4d28189205
2 changed files with 23 additions and 0 deletions
+8
View File
@@ -27,6 +27,10 @@ function setupNetworkListeners() {
if (ui.screens.room.classList.contains('active')) {
ui.showScreen('lobby');
}
// Reset lobby state when returning from game over (player is null indicates game over reset)
if (!player) {
ui.resetLobbyState();
}
});
// Player left lobby
@@ -225,6 +229,10 @@ function endGame(states) {
network.isSpectator = false;
ui.hideSpectatorMode();
// Reset ready button state
ui.buttons.ready.textContent = 'READY';
ui.buttons.ready.disabled = true;
ui.showGameOver(winner, scores);
}
+15
View File
@@ -80,9 +80,24 @@ class UIManager {
handleBackToLobby() {
this.hideGameOver();
this.resetLobbyState();
this.showScreen('room');
}
resetLobbyState() {
// Reset ready button to default state
this.buttons.ready.textContent = 'READY';
this.buttons.ready.disabled = true;
// Clear player and spectator lists
this.displays.playerList.innerHTML = '';
this.displays.spectatorList.innerHTML = '';
// Reset game room name
this.displays.gameRoomName.textContent = 'GLOBAL LOBBY';
this.displays.gameRoomName.classList.remove('spectator-mode');
}
updatePlayerList(players) {
this.displays.playerList.innerHTML = '';
Object.values(players).forEach(player => {