Skip to content

Monopoly new features and snake ladder responsive - #19

Merged
necessarylion merged 3 commits into
mainfrom
Monopoly-new-features-and-snake-ladder-responsive
Sep 21, 2026
Merged

necessarylion merged 3 commits into
mainfrom
Monopoly-new-features-and-snake-ladder-responsive

Conversation

@wailinaung

Copy link
Copy Markdown
Collaborator

Room flow

  • Landing page is just name + Create room + Join by code. Which game gets played
    is now the host's decision, made in the lobby with the table already seated.
  • Turn positions 1-8: each player picks their own, vacant ones only, and the
    chosen order becomes the real turn order at the deal.
  • Eight distinct colours, one per player, with taken ones struck through and the
    race settled on the server.

Monopoly

  • In-game chat, per-room, sanitised on the way in and sent to seated players only.
  • Shot clock with lobby-chosen turn and bid lengths. On expiry it buys an
    affordable space, auctions one it cannot afford, drops a bid, refuses an offer,
    and mortgages bare land before selling buildings to cover a debt.
  • A turn ends itself once its throw is settled — the End turn button is gone —
    and a trade may be offered by any seat at any time the table is idle.

Bugs fixed

  • The countdown stuck at 0:00 for the rest of the game after the first expiry.
  • The opening seat was drawn at random even with the roll-off turned off, so
    turn positions never decided who opened.
  • The chat feed stopped following past 100 messages, and the play logs grew
    without limit while going out whole on every action.
  • A chat line was re-attributed to whoever inherited its seat number.
  • Every input in the app had silently fallen back to browser defaults.

Mobile

  • Snakes & Ladders lays out by orientation, so a landscape phone no longer turns
    the game into a scroll.
  • Monopoly's prompt moves under the board on a phone, and its space card opens
    as a sheet on tap.

wailinaung and others added 3 commits August 31, 2026 22:02
The Monopoly table now lays out for a phone as well as a desktop. Its side
columns become sheets behind a three-tab bar rather than stacking under the
board, which left the board a strip; the buy/auction/trade/debt/jail chain is
carried under the board by a Teleport so there is only ever one copy of it; the
spaces are sized by a container query on the board itself; and a tap opens the
space card a phone has no hover to reach.

The auction gained two rules. Dropping out is final, so a seat that has passed
cannot bid again, and the standing high bidder cannot raise or withdraw their
own bid - inAuction is now the single definition of who the window is waiting
on, read by the affordances, the shot clock and advance() alike. A bid is also
capped at the bidder's cash, on the engine and in the table.

e2e/ is a standalone Playwright package, one spec per game, driving two real
browser contexts across eight viewport projects from a 320px phone to a
desktop. It found three things fixed here: draft tiles overflowing onto
Samurai's Confirm button, every game's primary buttons standing 38px tall on a
touch screen rather than 44, and integration.test.ts being unable to spawn bun
on Windows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 46 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 38580fb4-456c-481f-b470-cdf46b8f1a73

📥 Commits

Reviewing files that changed from the base of the PR and between e5d8619 and 73c15f2.

📒 Files selected for processing (64)
  • CLAUDE.md
  • e2e/support/table.ts
  • e2e/tests/chat.e2e.ts
  • e2e/tests/ladders.e2e.ts
  • e2e/tests/lobby.e2e.ts
  • e2e/tests/monopoly.e2e.ts
  • server/index.ts
  • server/rooms.ts
  • shared/chat.ts
  • shared/colours.ts
  • shared/engine.ts
  • shared/ladders.ts
  • shared/monopoly.ts
  • shared/opening.ts
  • shared/protocol.ts
  • shared/types.ts
  • src/App.vue
  • src/assets/main.css
  • src/components/carnivals/CarnivalGameScreen.vue
  • src/components/carnivals/CarnivalLobby.vue
  • src/components/common/GamePicker.vue
  • src/components/common/HomeScreen.vue
  • src/components/common/LandingScreen.vue
  • src/components/common/LobbySplit.vue
  • src/components/common/StartScreen.vue
  • src/components/common/TurnClockOptions.vue
  • src/components/cop/CopGameScreen.vue
  • src/components/cop/CopLobby.vue
  • src/components/coup/CoupGameScreen.vue
  • src/components/coup/CoupLobby.vue
  • src/components/halli_galli/HalliLobby.vue
  • src/components/ladders/LaddersGameScreen.vue
  • src/components/ladders/LaddersLobby.vue
  • src/components/monopoly/MonopolyChat.vue
  • src/components/monopoly/MonopolyGameScreen.vue
  • src/components/monopoly/MonopolyLobby.vue
  • src/components/samurai/LobbyScreen.vue
  • src/components/samurai/TurnClock.vue
  • src/components/snake/SnakeLobby.vue
  • src/composables/useCountdown.ts
  • src/game/catalogue.ts
  • src/i18n/en/cop.ts
  • src/i18n/en/coup.ts
  • src/i18n/en/ladders.ts
  • src/i18n/en/monopoly.ts
  • src/i18n/en/samurai.ts
  • src/i18n/my/cop.ts
  • src/i18n/my/coup.ts
  • src/i18n/my/ladders.ts
  • src/i18n/my/monopoly.ts
  • src/i18n/my/samurai.ts
  • src/preview.ts
  • src/stores/game.ts
  • src/stores/monopoly/useMonopoly.ts
  • tests/chat.test.ts
  • tests/clock.test.ts
  • tests/countdown.test.ts
  • tests/ladders.render.test.ts
  • tests/ladders.test.ts
  • tests/lobby.test.ts
  • tests/monopoly.render.test.ts
  • tests/monopoly.test.ts
  • tests/monopoly.turn.test.ts
  • tests/render.test.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@necessarylion
necessarylion merged commit 6e34eef into main Sep 21, 2026
10 checks passed
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.

2 participants