Commit b5ca9475 authored by Mahmoud Aglan's avatar Mahmoud Aglan

fix: result screen "play again" preserves game mode and settings

- endGame and handleExit pass mode/numPlayers/seats/humanCount/difficulty
  to the result scene
- Result "play again" restarts with same settings (not always 4p bot)
- Live mode "play again" goes to queue (finds new match, not old one)
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent ee4d70dc
...@@ -1370,7 +1370,7 @@ async function handleExit(el) { ...@@ -1370,7 +1370,7 @@ async function handleExit(el) {
} }
scene.exitGameMode(); scene.exitGameMode();
scene.replace('ludo-result', { result: 'loss', resigned: true }); scene.replace('ludo-result', { result: 'loss', resigned: true, mode: game.mode, numPlayers: game.numPlayers, seats: game.activeSeats, humanCount: game.humanPlayers?.length, difficulty: game.difficulty });
bus.emit('game:ended', { gameKey: 'ludo', result: 'loss', resigned: true }); bus.emit('game:ended', { gameKey: 'ludo', result: 'loss', resigned: true });
} }
...@@ -1424,7 +1424,7 @@ function endGame(el) { ...@@ -1424,7 +1424,7 @@ function endGame(el) {
setTimeout(() => { setTimeout(() => {
scene.exitGameMode(); scene.exitGameMode();
scene.replace('ludo-result', { result, place, winners: game.winners }); scene.replace('ludo-result', { result, place, winners: game.winners, mode: game.mode, numPlayers: game.numPlayers, seats: game.activeSeats, humanCount: game.humanPlayers?.length, difficulty: game.difficulty });
bus.emit('game:ended', { gameKey: 'ludo', result, place }); bus.emit('game:ended', { gameKey: 'ludo', result, place });
}, 1500); }, 1500);
} }
......
...@@ -72,7 +72,18 @@ export function mountResult(el, params) { ...@@ -72,7 +72,18 @@ export function mountResult(el, params) {
el.querySelector('#btn-again').addEventListener('click', () => { el.querySelector('#btn-again').addEventListener('click', () => {
audio.play('click'); audio.play('click');
scene.replace('ludo-game', { mode: 'bot' }); if (params.mode === 'live') {
scene.replace('play-queue', { game: 'ludo', mode: 'human', playerCount: params.numPlayers || params.playerCount || 4, seats: params.seats });
} else {
scene.replace('ludo-game', {
mode: params.mode || 'bot',
numPlayers: params.numPlayers,
playerCount: params.playerCount,
seats: params.seats,
humanCount: params.humanCount,
difficulty: params.difficulty,
});
}
}); });
el.querySelector('#btn-back').addEventListener('click', () => { el.querySelector('#btn-back').addEventListener('click', () => {
audio.play('click'); audio.play('click');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment