From 487ca7fba62e370c85bc3779ca8a96eb2c2cc3e3 Mon Sep 17 00:00:00 2001 From: Thomas Hallock Date: Wed, 15 Oct 2025 12:46:42 -0500 Subject: [PATCH] fix(memory-quiz): persist playMode setting across game switches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The socket-server was missing playMode when creating the initial session for memory-quiz games. It was only loading selectedCount, displayTime, and selectedDifficulty from the saved config, causing playMode to always reset to the default 'cooperative' even when 'competitive' was saved. Now includes playMode in the initial state config: - selectedCount - displayTime - selectedDifficulty - playMode (NEW) This ensures the playMode setting persists when users: 1. Set playMode to 'competitive' 2. Go back to game selection 3. Select memory-quiz again 4. PlayMode is still 'competitive' (not reset to 'cooperative') 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- apps/web/src/socket-server.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/web/src/socket-server.ts b/apps/web/src/socket-server.ts index 0a76dcd3..3a1ff882 100644 --- a/apps/web/src/socket-server.ts +++ b/apps/web/src/socket-server.ts @@ -92,12 +92,13 @@ export function initializeSocketServer(httpServer: HTTPServer) { turnTimer: matchingConfig.turnTimer || 30, }) } else if (room.gameName === 'memory-quiz') { - // Access nested gameConfig: { 'memory-quiz': { selectedCount, displayTime, selectedDifficulty } } + // Access nested gameConfig: { 'memory-quiz': { selectedCount, displayTime, selectedDifficulty, playMode } } const memoryQuizConfig = (room.gameConfig as any)?.['memory-quiz'] || {} initialState = validator.getInitialState({ selectedCount: memoryQuizConfig.selectedCount || 5, displayTime: memoryQuizConfig.displayTime || 2.0, selectedDifficulty: memoryQuizConfig.selectedDifficulty || 'easy', + playMode: memoryQuizConfig.playMode || 'cooperative', }) } else { // Fallback for other games