Skip to content

Add Monopoly ruleset variants#260

Open
serrebidev wants to merge 4 commits into
XGDevGroup:mainfrom
serrebidev:monopoly-ruleset-selector
Open

Add Monopoly ruleset variants#260
serrebidev wants to merge 4 commits into
XGDevGroup:mainfrom
serrebidev:monopoly-ruleset-selector

Conversation

@serrebidev

@serrebidev serrebidev commented Jul 10, 2026

Copy link
Copy Markdown

Summary

Adds host-selectable US Classic, UK Waddingtons Classic, UK Short Game, UK Time Limit Game, and US Speed Die profiles.

The implementation uses the official rules from the start: the Waddingtons rules for the UK variants and Hasbro rules for Speed Die.

Details

  • Adds London board names, pound currency, and UK card destinations.
  • Implements UK auction bidding from £1, the Short Game initial-deed/three-house/second-bankruptcy rules, and a configurable Time Limit Game (60 minutes by default).
  • Implements Speed Die activation, Bus, Mr. Monopoly, three-of-a-kind movement, and correct utility/doubles handling.
  • Opens the Speed Die movement menu immediately after a Bus or three-of-a-kind result, so the active player can make the required choice without reopening the context menu.
  • Reopens that required menu when an active table is restored and its current player reconnects, covering paused turns such as the current Bus result.
  • Updates rules documentation and all locales.

Validation

  • cd server && uv run pytest tests/test_monopoly.py -q (43 passed)
  • uvx ruff check server/games/monopoly/game.py server/tests/test_monopoly.py (passed)

Root cause

Bus and three-of-a-kind advanced the game to the choice phase but only added a turn-menu action. The input menu was never requested automatically. The regression test now asserts that the player receives the encoded, selectable white-die/total menu, can resolve it through the normal menu event flow, and receives it again after reconnecting to a restored table.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant