Commit Graph

2 Commits

Author SHA1 Message Date
3ac3d8a6e6 Highlight selected tunnels' connection in green (REQ-BLD-TUNNEL-SELECT-HIGHLIGHT)
While a Tunnel Entry or Exit (building or construction site) is selected,
mark its connection green in the game world — the entry tile, exit tile,
and tiles between — reusing the tunnel_preview color from the placement
preview. Unpaired tunnels show no green.

- Add core findTunnelPartner(): the matching end of an existing tunnel
  tile, reusing firstTunnelFacing so the pairing scan stays single-sourced;
  unit-tested in TunnelCompletionTest.
- GameWorldView: extract the built+site tunnel index into
  collectTunnelTiles() (shared with updateTunnelGhost) and add
  drawSelectedTunnelConnections(), called from drawOverlays. Tiles are
  deduped via a set so a connection selected from both ends fills once.
- Also commits the REQ-BLD-TUNNEL-SELECT-HIGHLIGHT requirement text.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-21 19:32:51 +02:00
ad1e5ed487 Implement unified tunnel build mode (REQ-BLD-TUNNEL-MODE)
Collapse the two tunnel buttons into a single Tunnel button whose ghost
resolves between Tunnel Entry and Tunnel Exit based on the hovered
position, with a green connection preview.

- Add pure core helper TunnelCompletion (firstTunnelFacing +
  resolveTunnelCompletion): the entry/exit completion scans and the
  sub-tile cursor tie-break, unit-tested in TunnelCompletionTest.
- Dedup BeltSystem::reevaluateTunnelPairing onto firstTunnelFacing so the
  pairing scan rule lives in one place.
- GameWorldView: resolve the ghost type on hover/rotate (matching built
  tunnels and construction sites), place the resolved type (drop the old
  auto-switch), and draw the matched partner + between-tiles in green.
  Hotkey 3 = Tunnel, 4 unused.
- BuildButtonGrid: one "Tunnel" button; tunnel_exit stays player-placeable
  so blueprints and cost totals still account for exits.
- Add the green tunnel_preview overlay color (VisualsConfig/Loader/toml).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-21 19:04:15 +02:00