Skip to content

Hexcrawl H4c: site interior (Enter → area map) — completes the toolkit#64

Merged
deepiq2022 merged 6 commits into
mainfrom
hexcrawl-site-interior
Jun 14, 2026
Merged

Hexcrawl H4c: site interior (Enter → area map) — completes the toolkit#64
deepiq2022 merged 6 commits into
mainfrom
hexcrawl-site-interior

Conversation

@deepiq2022

Copy link
Copy Markdown
Contributor

H4c — Site interior ("Enter")

Final slice of the generic Hexcrawl toolkit. The site detail card (H4b) gains an Enter
button → a small interior area map for the site, inline on the World map. Two paths, mirroring
H2/H3/H4a/H4b: Crawl (reveal one area at a time) and Full (generate a fresh N-area interior,
clamp 3..12). Areas stored on the hex (HexCell.siteAreas), NEVER MapState.rooms. Gated by the
opt-in hexcrawl flag.

What's in it

  • build_hexcrawl.py — authored siteAreaTypes (10), with verify() coverage. Asset
    regenerated; verified in-sync.
  • HexcrawlData.siteAreaTypes getter.
  • SiteArea model ({x, y, name}) + HexCell.siteAreas (omit-when-empty JSON, tolerant
    maybeFromJson, copyWith clearSiteAreas).
  • rollSiteArea + nextSiteAreaPosition — a small grid-placement parallel to
    nextRoomPosition, reusing the shared _roomDirs (BFS, first area at origin, no overlap, seeded).
    Dungeon placement code untouched.
  • MapNotifier.crawlSiteArea / generateSiteInterior — operate on the hex at (col,row), stored
    on the hex (Dungeon tab independent). Crawl appends one; Full regenerates a fresh clamped interior;
    both no-op on site-less / absent hexes.
  • UI — an interior _HexZoom mode; the card's Enter button (gated to sited hexes) opens
    it; siteAreas render through the existing _DungeonPainter (synthetic rooms, no corridors)
    with Reveal area / Generate interior (N) / Back + a count stepper. No modal — canvas
    switches via the _zoom enum.
  • CLAUDE.md — marks the hexcrawl toolkit complete.

Verification

  • dart analyze: clean.
  • flutter test: 767 passing (+8: model round-trip, rollSiteArea, nextSiteAreaPosition
    no-overlap, crawlSiteArea/generateSiteInterior incl. clamp + no-op, 3 widget tests driving
    canvas-tap → Enter → generate → painted area map).
  • Reviewer pass: clean.
  • Web build compiles; siteAreaTypes (10) confirmed bundled (HTTP 200).

Plan: docs/superpowers/plans/2026-06-14-hexcrawl-site-interior.md


🏁 Toolkit complete

Two paths (crawl/full) × four granularity levels: Region (H2) · Dungeon (H3) ·
Local zoom 7-hex flower (H4a) · Site detail card (H4b) + interior (H4c). All authored,
system-agnostic, hexcrawl-gated.

🤖 Generated with Claude Code

@deepiq2022 deepiq2022 merged commit 90157c4 into main Jun 14, 2026
1 check passed
@deepiq2022 deepiq2022 deleted the hexcrawl-site-interior branch June 14, 2026 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants