Katan: playable screen, setup options, dev-preview gate #3

Merged
devadmin merged 1 commits from feature/catan-ui into dev 2026-10-14 20:52:25 -06:00
Owner

Summary

Adds the Katan screen on top of the merged WALA-119 engine, so Katan can be opened and played from a dev build (it stays hidden from production until two-device play is verified).

  • Screen (ui/game/catan/): board, players, hand, dice, action bar, and dialogs for discard, robber victim, play-a-card, bank and player trades, trade reply and game over. Portrait and landscape layouts.
  • Layered so the look can be adapted later without touching the rules: CatanStyle (all colours/sizes, light+dark), CatanText (all wording), CatanGeometry (island → pixels, hit-testing), CatanInteraction (what is tappable / what a tap does, derived only from the engine's legal-move list), stateless CatanBoardView / CatanPanels / CatanDialogs, thin CatanScreen wiring, and CatanPreviews for Android Studio. See docs/UI-catan.md.
  • Wiring: PlayScreen branch, GameSetupScreen options (3-4 players, game to 5/8/10/12 points), and GameDescriptor.devPreview so dev builds open Katan while production still hides it (available stays false).
  • Tests: CatanGeometryTest, CatanInteractionTest (setup, building, free roads, robber incl. victim choice, discards, bank trades, offers, dev cards, trade replies — against real engine states), CatanTextTest, plus a CatalogTest for the preview gate.

Testing

CI run 32 on this branch: build, unit tests and lint all green. Nothing published.

Not yet verified

  • No one has played it on a device. Compose drawing and dialogs are not unit-tested (only the pure layers are).
  • Two-device (host + guest) play over the LAN is untested.
  • Known gaps (animations, art, per-seat shapes for colour-blind players, which hexes produced) are listed in docs/UI-catan.md.

Merging

Merging to dev triggers a dev build and Cloudflare deploy. Katan then appears under Board Games on dev installs as Preview · 3–4 players.

Co-Authored-By: Claude Sonnet 5.5 [email protected]
Claude-Session: https://claude.ai/code/session_01JdMNbY5hLR7FjtfEE712xG

## Summary Adds the Katan screen on top of the merged WALA-119 engine, so Katan can be opened and played from a **dev build** (it stays hidden from production until two-device play is verified). - **Screen** (`ui/game/catan/`): board, players, hand, dice, action bar, and dialogs for discard, robber victim, play-a-card, bank and player trades, trade reply and game over. Portrait and landscape layouts. - **Layered so the look can be adapted later** without touching the rules: `CatanStyle` (all colours/sizes, light+dark), `CatanText` (all wording), `CatanGeometry` (island → pixels, hit-testing), `CatanInteraction` (what is tappable / what a tap does, derived only from the engine's legal-move list), stateless `CatanBoardView` / `CatanPanels` / `CatanDialogs`, thin `CatanScreen` wiring, and `CatanPreviews` for Android Studio. See `docs/UI-catan.md`. - **Wiring:** `PlayScreen` branch, `GameSetupScreen` options (3-4 players, game to 5/8/10/12 points), and `GameDescriptor.devPreview` so dev builds open Katan while production still hides it (`available` stays false). - **Tests:** `CatanGeometryTest`, `CatanInteractionTest` (setup, building, free roads, robber incl. victim choice, discards, bank trades, offers, dev cards, trade replies — against real engine states), `CatanTextTest`, plus a `CatalogTest` for the preview gate. ## Testing [CI run 32](https://git.wallacenet.ca/devadmin/ProLibertateGames/actions/runs/32) on this branch: build, unit tests and lint all green. Nothing published. ## Not yet verified - No one has played it on a device. Compose drawing and dialogs are not unit-tested (only the pure layers are). - Two-device (host + guest) play over the LAN is untested. - Known gaps (animations, art, per-seat shapes for colour-blind players, which hexes produced) are listed in `docs/UI-catan.md`. ## Merging Merging to `dev` triggers a dev build and Cloudflare deploy. Katan then appears under Board Games on dev installs as **Preview · 3–4 players**. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01JdMNbY5hLR7FjtfEE712xG
devadmin added 1 commit 2026-10-14 20:16:24 -06:00
Katan: playable screen, setup options, dev-preview catalogue gate
CI / Deploy to Cloudflare Pages (pull_request) Skipped
CI / Build and check (pull_request) Successful in 20m42s
30dcf026bd
Adds the Katan screen on top of the WALA-119 engine, built in separable layers
so the look, wording, layout and interaction can each be changed alone:

- CatanStyle: every colour and proportion (light/dark), via LocalCatanStyle
- CatanText: every word on screen (pure functions of state)
- CatanGeometry: lattice -> pixels and tap hit-testing (pure, unit-tested)
- CatanInteraction: what is tappable and what a tap means, derived only from the
  engine's legal-move list (pure, unit-tested)
- CatanBoardView / CatanPanels / CatanDialogs: stateless composables
- CatanScreen: wiring to MatchController, portrait and landscape layouts
- CatanPreviews: Android Studio previews of real positions
- docs/UI-catan.md: how to adapt each layer, rules of the road, known gaps

Wiring: PlayScreen branch, GameSetupScreen options (3-4 players, game to
5/8/10/12), and a GameDescriptor.devPreview flag so dev builds can open Katan
while production still hides it until two-device play is verified.

Tests: CatanGeometryTest, CatanInteractionTest, CatanTextTest, CatalogTest.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JdMNbY5hLR7FjtfEE712xG
devadmin merged commit 87b00ad84f into dev 2026-10-14 20:52:25 -06:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: devadmin/ProLibertateGames#3