A place to run your cities
The old right-hand city panel is gone. Clicking a city now drops you into a
dedicated City View: the HUD clears, the camera reframes onto the city and its
land, and everything you do to a city lives here.
- 355–356 The City View shell — entering and exiting the mode, hiding the map HUD, reframing the camera, and a name banner that lets you cycle between your cities and click to rename one.
- 357–358, 364, 371–373 A long run of camera and layout tuning so the city sits centered in the visible band above the production panel, preserves your map zoom on entry, and doesn't jarringly snap back on exit.
- 359, 365–367 Always-on tile purchasing: unowned tiles around the city show their culture cost, non-owned tiles dim, and the buy-tile overlay draws and behaves correctly against the other targeting modes.
- 360–362, 369–370, 374 The four corners of the City View HUD — a population frame with click-to-detail yields, an HP / Attack / Garrison card, and a bottom production status with a "Change Production" button and a big "Return to Map".
- 363 Wired it all up: clicking any city routes into the City View, and the old floating panel was retired for good.
- 375 A read-only, fog-safe version for foreign cities — you can inspect a rival's city without leaking anything you shouldn't see.
- 376 Reconciled the engineering-model doc with the finished epic.
Building your land, tile by tile
Improvements stopped being a flat list and became a real, tile-first build
system — with the client and server finally agreeing on what's legal where.
- 377–378 Tile improvements gained build categories in the registry, and the production modal groups them into collapsible sections instead of one long scroll.
- 379–380, 383 Left-click one of your tiles in the City View to get a categorized build menu right there — with modal-parity styling, unaffordable options hidden, an always-open empty state, and a repair action.
- 384 Made tile-placement validity server-authoritative, killing the drift where the client's green/red highlight could disagree with what the server would actually accept.
- 385–386 Pillaged, repairable tiles now glow gold in the City View, and queued repairs get a position bubble on the main map.
- 381 Fixed a double-Forest entry in the catalog that always read as "affordable."
Focus: turn a city into a faucet
A new kind of production that never finishes on purpose. Set a city to Focus and
its output converts straight into a yield, turn after turn, until you point it
at something else.
- 392–393 Focus projects: standing, never-completing production that converts a city's output into a chosen yield, reflected in every per-turn HUD so the rate is honest.
- 394–395 Two follow-up fixes to the new standing-production path: a Focus city that flickered "1 turn" instead of "—", and a Focus project behind a completing item that was being deleted instead of promoted to active.
Victory — and defeat
For the first time, a game of Cities and States can be won. Turn on a turn
limit, and whoever leads more than half the Score categories when it arrives
takes the game.
- 403 The victory engine: an optional, configurable turn limit; at the limit, a player who is the sole leader in more than half the Score categories wins. With no majority, the game either draws or plays on until someone earns it — your choice. The threshold derives from the category set, so it scales on its own if categories change.
- 404 Host controls in the lobby for the turn limit and the draw-or-continue rule, shown read-only in the in-game Options window.
- 405 The Score modal now leads with who's winning and how many turns remain, above the category breakdown.
- 406 A "game decided" moment: a banner names the winner (or a draw) and the board soft-freezes, so a finished game announces itself instead of quietly continuing.
Reading the board better
A steady stream of legibility work — the kind that doesn't add a mechanic but
makes the ones you have easier to play.
- 396 The city banner now shows a sprite of whatever that city is building, right next to its progress bar.
- 397–398 Hover a foreign city for a tooltip naming its owner and their State; the foreign-unit tooltip got matching icons and larger, clearer text.
- 408–409 The production picker was tidied: cleaner queue rows with per-item turn estimates, a compact availability header, and a Stats / Cost / Maintenance panel that now speaks in icons with tooltips instead of words.
- 399–400 Small visual fixes: the banner's turns-remaining number no longer hides under its bar border, and the HUD's yield icons render crisp again (with a note in the playbook so they stay that way).
- 354, 382, 388 CPU players dropped from the Score rankings, one shared UI font across the whole app, and a unified checkbox style from the game view to the lobby.
Three stubborn bugs
Each of these looked simple and wasn't — the fix only landed after tracing the
real mechanism.
- 387 Movement-perk units couldn't enter mountains: the pathfinding wall was reading a unit's base movement instead of its perk-boosted effective movement.
- 401 Raiders would idle next to perfectly good targets — they gave up the moment their single chosen approach tile was unreachable, instead of trying the other routes and the next target.
- 402 Buying a tile across the world's wrap seam was wrongly rejected as "not adjacent," because the server checked neighbors without folding them around the cylinder the way the client already did.