mantimon-tcg/backend/tests/core
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
..
test_effects Add CardDefinition validation for required fields (Issue #2) 2026-01-26 10:28:37 -06:00
test_models Add forced action queue for double knockouts (Issue #10) 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
conftest.py Add forced action queue for double knockouts (Issue #10) 2026-01-26 11:33:47 -06:00
test_config.py Add rules validator, win conditions checker, and coverage gap tests 2026-01-25 12:57:06 -06:00
test_coverage_gaps.py Add forced action queue for double knockouts (Issue #10) 2026-01-26 11:33:47 -06:00
test_engine.py Add forced action queue for double knockouts (Issue #10) 2026-01-26 11:33:47 -06:00
test_evolution_stack.py Add CardDefinition validation for required fields (Issue #2) 2026-01-26 10:28:37 -06:00
test_rng.py Add game engine foundation: enums, config, and RNG modules 2026-01-24 22:14:45 -06:00
test_rules_validator.py Add forced action queue for double knockouts (Issue #10) 2026-01-26 11:33:47 -06:00
test_turn_manager.py Add forced action queue for double knockouts (Issue #10) 2026-01-26 11:33:47 -06:00
test_visibility.py Add forced action queue for double knockouts (Issue #10) 2026-01-26 11:33:47 -06:00
test_win_conditions.py Add SelectPrizeAction executor and turn limit check (Issues #11, #15) 2026-01-26 11:04:03 -06:00