mantimon-tcg/backend/tests/core/test_models
Cal Corum 9432499018 Add forced action queue for double knockouts (Issue #10)
Changed forced_action from single item to FIFO queue to support
scenarios where multiple forced actions are needed simultaneously:

- forced_actions: list[ForcedAction] replaces forced_action: ForcedAction | None
- Added queue management methods:
  - has_forced_action() - check if queue has pending actions
  - get_current_forced_action() - get first action without removing
  - add_forced_action(action) - add to end of queue
  - pop_forced_action() - remove and return first action
  - clear_forced_actions() - clear all pending actions
- Updated engine, turn_manager, rules_validator, and visibility filter
- Added 8 new tests for forced action queue including double knockout scenario

This fixes the bug where simultaneous knockouts (e.g., mutual poison damage)
would lose one player's select_active action due to overwriting.

795 tests passing.
2026-01-26 11:33:47 -06:00
..
__init__.py Add game engine foundation: enums, config, and RNG modules 2026-01-24 22:14:45 -06:00
test_actions.py Add rules validator, win conditions checker, and coverage gap tests 2026-01-25 12:57:06 -06:00
test_card.py Fix per-ability usage tracking (Issue #9) 2026-01-26 11:11:23 -06:00
test_enums.py Add SelectPrizeAction executor and turn limit check (Issues #11, #15) 2026-01-26 11:04:03 -06:00
test_game_state.py Add forced action queue for double knockouts (Issue #10) 2026-01-26 11:33:47 -06:00