537016b48f95303f78d18adfc20dfcf7f0a2fed5
- src/render/garden/tile-coords.ts: GRID_LAYOUT (96px tiles + 16px gap, centered in 1024×768) + tileTopLeftCanvas / tileCenterCanvas / tileCenterToDom helpers (RESEARCH Pattern 4 + Assumption A5: handles Phaser.Scale.FIT scaling via canvas getBoundingClientRect) - src/render/garden/tile-renderer.ts: drawTiles(scene) — 16 outlined rounded rectangles with hover state (D-06) - src/render/garden/plant-renderer.ts: drawPlant(scene, idx, tile, stage) — primitive shapes per stage (sprout dot / mature stem / ready bloom) tinted by plant type (D-26); destroyPlant cleanup - src/render/garden/ready-pulse.ts: applyReadyPulse alpha-cycle tween for ready stage (D-27) - src/render/garden/index.ts + src/render/index.ts: barrels - src/game/scenes/Garden.ts: Phaser Garden scene wires scheduler ↔ store ↔ render. update() loop drains commands → simulateOneTick → simAdapter.applyTilesAndUnlocks. appStore.subscribe drives reactive plant repaint (Pitfall 6 mitigation: subscribe, not read-once-in-create). pointerdown on empty tile emits 'tile-clicked-coords' for the React seed picker. BLOCKER 3 invariant: lastTickAt is read-through from store (NOT seeded with this.currentTick). - src/game/main.ts: scene registry now [Boot, Garden] - src/game/scenes/Boot.ts: create() transitions to Garden - Lint clean; build clean; 153/153 tests pass (Task-1 sim/garden tests + all baseline)
Description
No description provided
Languages
TypeScript
91.2%
JavaScript
6.7%
Ink
1.8%
CSS
0.2%
HTML
0.1%