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:
@@ -27,6 +27,10 @@ function setupNetworkListeners() {
|
|||||||
if (ui.screens.room.classList.contains('active')) {
|
if (ui.screens.room.classList.contains('active')) {
|
||||||
ui.showScreen('lobby');
|
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
|
// Player left lobby
|
||||||
@@ -225,6 +229,10 @@ function endGame(states) {
|
|||||||
network.isSpectator = false;
|
network.isSpectator = false;
|
||||||
ui.hideSpectatorMode();
|
ui.hideSpectatorMode();
|
||||||
|
|
||||||
|
// Reset ready button state
|
||||||
|
ui.buttons.ready.textContent = 'READY';
|
||||||
|
ui.buttons.ready.disabled = true;
|
||||||
|
|
||||||
ui.showGameOver(winner, scores);
|
ui.showGameOver(winner, scores);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,9 +80,24 @@ class UIManager {
|
|||||||
|
|
||||||
handleBackToLobby() {
|
handleBackToLobby() {
|
||||||
this.hideGameOver();
|
this.hideGameOver();
|
||||||
|
this.resetLobbyState();
|
||||||
this.showScreen('room');
|
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) {
|
updatePlayerList(players) {
|
||||||
this.displays.playerList.innerHTML = '';
|
this.displays.playerList.innerHTML = '';
|
||||||
Object.values(players).forEach(player => {
|
Object.values(players).forEach(player => {
|
||||||
|
|||||||
Reference in New Issue
Block a user