Files
mtg-online-drafter/docs/development/devlog/2025-12-14-233000_fix_submit_deck.md

1.4 KiB

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).