# Fix Submit Deck Button ## Issue Users reported that "Submit Deck" button was not working. ## Root Causes 1. **Missing Event Handler**: The server was not listening for the `player_ready` event emitted by the client. 2. **Incomplete Payload**: The client was sending `{ roomId, deck }` but the server needed `playerId` to identify who was ready, which was missing from the payload. 3. **Missing State Logic**: The `RoomManager` did not have a concept of "Ready" state or "Playing" status, meaning the transition from Deck Building to Game was not fully implemented. ## Fixes 1. **Client (`DeckBuilderView.tsx`)**: Updated `player_ready` emission to include `playerId`. 2. **Server (`RoomManager.ts`)**: - Added `ready` and `deck` properties to `Player` interface. - Added `playing` to `Room` status. - Implemented `setPlayerReady` method. 3. **Server (`index.ts`)**: - Implemented `player_ready` socket handler. - Added logic to check if *all* active players are ready. - If all ready, automatically transitions room status to `playing` and initializes the game using `GameManager`, loading the submitted decks. - ensured deck loading uses cached images (`card.image`) if available. ## Verification 1. Draft cards. 2. Build deck. 3. Click "Submit Deck". 4. Server logs should show "All players ready...". 5. Client should automatically switch to `GameView` (Battlefield).