- New advisor button (toolbar, purple wand): one click per planning pass
* Genesis: founds a town from a blank map (main street + zone bands)
* Keeps power ahead of demand (wind/solar/coal by deficit size)
* BFS road spurs to reach orphaned zoned land
* Stamps new districts when demand is high and empty plots run out
* Places the weakest service coverage; parks/plazas for land value
* Never spends below an emergency reserve; recomputes power per action
- Simulation no longer dies when rAF throttles: interval watchdog
compensates only after 3s of total frame silence
- preserveDrawingBuffer now opt-in via ?cap=1 (software-GL perf)
- Smoke test drives via game API, prefers headless_shell binary,
tolerates stalled screenshots; engine suite at 51 assertions
- All 16 icons redrawn as rich multi-color SVGs (houses, towers,
factory, plants with smoke, services with badges/crosses, park,
fountain, stadium) — unique gradient ids, no collisions
- Toolbar grouped under labeled sections: Tools / Zones / Power /
Safety / Health / Leisure
- Every button shows price (FREE for zones); unaffordable buildings
dim and turn red as funds change
- Keyboard-shortcut badges on buttons; bigger 30px icons; hover lift
- Floating status chip above the bar shows active tool, price,
upkeep and coverage radius (SimCity status-bar feel)
- FIX: Game.ui was a method while input.js read it as a property, so
tool-change UI updates silently never ran; now a proper getter
- Power consumption x4: the grid now matters from mid-town on
- Realistic tax multipliers, trimmed service upkeep: profitable cities
- Buildings may claim empty zoned plots (services fit downtown)
- Land value ladder: maturity bonus, size-scaled upgrade sampling,
thresholds 34/74 -> full L1->L2->L3 density progression
- Soak test: 40 simulated years, 11/11 asserts green (848 citizens,
7 L3 towers, $190k surplus, proactive grid growth, 1.2ms avg tick)