Katan: Cities & Knights #8

Merged
devadmin merged 4 commits from feature/cities-and-knights into dev 2026-10-17 08:57:07 -06:00
Owner

Adds the Cities & Knights expansion as a second Katan rule set, chosen on the setup screen (Rules: Base game / Cities & Knights; Cities & Knights plays to 13 by default).

Rules (docs/RULES-catan-ck.md): commodities (cloth, coin, paper), the event die and barbarian track, knights (hire, wake, promote, move, chase the robber), city walls, three improvement tracks with metropolises, the 54 progress cards, the second setup piece as a city, no development cards or Largest Army, the robber asleep until the first attack. Checked against the in-game almanac of Catan Universe.

Engine: everything lives behind CatanState.ck (null in the base game), so the base game's state and rules are unchanged. Every multi-seat decision runs through one chore queue. Trading works as in the base game (open offers, counters) and may include commodities.

AI: CatanCkAi plays every phase legally.

Screen: knights, walls, metropolis pennants and the merchant on the board; barbarian strip, event die, commodity hand, Improve and Progress dialogs, a knight menu, and dialogs for every chore.

Verification: 796 unit tests (including 300 engine-vs-engine games with invariants checked and wire round-trips, and a test that every legal move in whole games has a UI control that produces it), debug build and Android lint pass locally. Not yet tried on a device.

Small base-game fix: three multi-part log lines were appended as two entries each.

🤖 Generated with Claude Code

https://claude.ai/code/session_016eTor2tpxKb4dXbd8RqnvZ

Adds the Cities & Knights expansion as a second Katan rule set, chosen on the setup screen (Rules: Base game / Cities & Knights; Cities & Knights plays to 13 by default). **Rules** (docs/RULES-catan-ck.md): commodities (cloth, coin, paper), the event die and barbarian track, knights (hire, wake, promote, move, chase the robber), city walls, three improvement tracks with metropolises, the 54 progress cards, the second setup piece as a city, no development cards or Largest Army, the robber asleep until the first attack. Checked against the in-game almanac of Catan Universe. **Engine**: everything lives behind `CatanState.ck` (null in the base game), so the base game's state and rules are unchanged. Every multi-seat decision runs through one chore queue. Trading works as in the base game (open offers, counters) and may include commodities. **AI**: `CatanCkAi` plays every phase legally. **Screen**: knights, walls, metropolis pennants and the merchant on the board; barbarian strip, event die, commodity hand, Improve and Progress dialogs, a knight menu, and dialogs for every chore. **Verification**: 796 unit tests (including 300 engine-vs-engine games with invariants checked and wire round-trips, and a test that every legal move in whole games has a UI control that produces it), debug build and Android lint pass locally. Not yet tried on a device. Small base-game fix: three multi-part log lines were appended as two entries each. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_016eTor2tpxKb4dXbd8RqnvZ
devadmin added 4 commits 2026-10-17 08:48:46 -06:00
A second rule set chosen at setup (CatanRuleSet): commodities, knights, walls,
barbarians and the event die, city improvements and metropolises, and the
54 progress cards. Everything lives behind CatanState.ck, so the base game's
state and rules are untouched. Multi-seat decisions run through one chore queue.

Also wraps three multi-part log lines so each event is one entry.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_016eTor2tpxKb4dXbd8RqnvZ
The setup screen picks the rule set (base game or Cities & Knights, each with its
own point targets). The board draws knights, walls, metropolis pennants and the
merchant; the screen adds the barbarian strip, event die, commodity hand, improve
and progress dialogs, the knight menu, and dialogs for every chore.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_016eTor2tpxKb4dXbd8RqnvZ
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_016eTor2tpxKb4dXbd8RqnvZ
Merge origin/dev into feature/cities-and-knights
CI / Deploy to Cloudflare Pages (pull_request) Skipped
CI / Build and check (pull_request) Successful in 8m3s
f9b793d56e
Brings in open trade offers and counter-offers. Cities & Knights gets the same
flow for goods: OfferGoods may be open to the table, CounterGoods answers an
offer, and AcceptCounter / DismissCounters are shared with the base game.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_016eTor2tpxKb4dXbd8RqnvZ
devadmin merged commit 98506c05b7 into dev 2026-10-17 08:57:07 -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#8