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
2.0 KiB
2.0 KiB
docs/
Conventions for this repo's documentation. Seeded at bootstrap (WALA-118).
Per-game rules: RULES-<game>.md
Every game in GameCatalog gets one file describing how this app implements
it — not a generic rule dump. The rules code
(app/src/main/java/org/prolibertate/games/game/<game>/) is the source of
truth; the doc exists so a human or an agent can check intent against
behaviour without reading Kotlin first.
Naming: the catalogue id, lowercase, e.g. crazy8s → RULES-crazy8s.md.
| Game (catalogue id) | Rules doc |
|---|---|
| Backgammon | RULES-backgammon.md |
| Checkers | RULES-checkers.md |
| Chess | RULES-chess.md |
| Crazy 8s | RULES-crazy8s.md |
| Cribbage | RULES-cribbage.md |
| Euchre | RULES-euchre.md |
| FreeCell | — (TODO) |
| Golf | RULES-golf.md |
| Hearts | — (TODO) |
| Kaiser | RULES-kaiser.md |
Katan (catalogue id catan) |
RULES-catan.md |
| Klondike | — (TODO) |
| Mastermind | RULES-mastermind.md |
| Morris | RULES-morris.md |
| Peg solitaire | — (TODO) |
| Pirates | RULES-pirates.md |
| President | RULES-president.md |
| Pyramid | — (TODO) |
| Sequence | RULES-sequence.md |
| Spider | — (TODO) |
| Ta Yü | RULES-tayu.md |
| Wizard | RULES-wizard.md |
| Yahtzee | — (TODO) |
Other docs
- Build, CI, releases and OTA are described in the CI section of the root README.
- UI-catan.md — how the Katan screen is layered, and how to restyle, re-copy or re-lay-out it without touching the rules.
licenses/— third-party licences that must travel with the app (Uncial Antiqua under the SIL OFL; the app itself is GPL-3.0, see/LICENSE).- Repo-level agent notes live in
CLAUDE.mdat the root.