strat-gameplay-webapp/backend/app/core
Cal Corum 8ecce0f5ad CLAUDE: Implement forced outcome feature for terminal client testing
Add ability to force specific play outcomes instead of random dice rolls,
enabling targeted testing of specific game scenarios.

Changes:
- play_resolver.resolve_play(): Add forced_outcome parameter, bypass dice
  rolls when provided, create dummy AbRoll with placeholder values
- game_engine.resolve_play(): Accept and pass through forced_outcome param
- terminal_client/commands.py: Pass forced_outcome to game engine

Testing:
- Verified TRIPLE, HOMERUN, and STRIKEOUT outcomes work correctly
- Dummy AbRoll properly constructed with all required fields
- Game state updates correctly with forced outcomes

Example usage in REPL:
  resolve_with triple
  resolve_with homerun

Fixes terminal client testing workflow to allow controlled scenarios.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 15:39:35 -05:00
..
__init__.py CLAUDE: Complete Week 4 - State Management & Persistence 2025-10-22 12:01:03 -05:00
ai_opponent.py CLAUDE: Implement Week 7 Task 1 - Strategic Decision Integration 2025-10-29 21:38:11 -05:00
dice.py CLAUDE: Complete Week 6 - granular PlayOutcome integration and metadata support 2025-10-29 20:29:06 -05:00
game_engine.py CLAUDE: Implement forced outcome feature for terminal client testing 2025-10-30 15:39:35 -05:00
play_resolver.py CLAUDE: Implement forced outcome feature for terminal client testing 2025-10-30 15:39:35 -05:00
roll_types.py CLAUDE: Complete Week 6 - granular PlayOutcome integration and metadata support 2025-10-29 20:29:06 -05:00
state_manager.py CLAUDE: Implement Week 7 Task 1 - Strategic Decision Integration 2025-10-29 21:38:11 -05:00
validators.py CLAUDE: Fix defensive decision validation for corners_in/infield_in depths 2025-10-30 10:25:01 -05:00