Files
mtg-online-drafter/docs/development/devlog/2024-12-18-185500_manual_draw_fix.md
2025-12-18 20:26:42 +01:00

1.1 KiB

2024-12-18 - Implement Manual Card Draw

Problem

The user reported that clicking on the library or using the "Draw Card" context menu option had no effect. The frontend was correctly emitting the DRAW_CARD action (via game_action channel/event), but the GameManager (which handles manual/legacy actions) had no case handler for it, causing the action to be ignored.

Root Cause

  1. Missing Handler: The GameManager.handleAction switch statement lacked a case 'DRAW_CARD'.
  2. Access Control: The RulesEngine.drawCard method was private, preventing external invocation even if the handler existed.

Solution

  1. Made drawCard Public: Updated RulesEngine.ts to change drawCard visibility from private to public.
  2. Added Handler: Updated GameManager.ts to include a case 'DRAW_CARD' in handleAction. This handler instantiates a RulesEngine for the current game and calls engine.drawCard(actorId).

Outcome

Users can now manually draw cards from their library interactions (click or context menu) during gameplay.