Skip to content

Expedition: readable map art, stage counter math, place-name title - #230

Merged
3CordGuy merged 1 commit into
mainfrom
feature/expedition-readability
Jun 7, 2026
Merged

Expedition: readable map art, stage counter math, place-name title#230
3CordGuy merged 1 commit into
mainfrom
feature/expedition-readability

Conversation

@3CordGuy

@3CordGuy 3CordGuy commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

Three playtest reports rolled into one PR:

  1. Background image too high contrast — flux art was rendering at full opacity behind labels; forest patches drowned the text. Drop the image to 55%, add a cream wash on top (28% alpha), reduce noise filter to 35% over art. Paint kind labels with `paintOrder="stroke"` + a cream halo so text reads on any background patch.
  2. "0 of 38 nodes cleared" was confusing — every lane × depth was counted, but the player only makes one pick per depth (plus the boss). Switch to `map.depth + 1` and call them "stages."
  3. No title for the run — added `EXPEDITION_MAP_TITLES` in `ai.ts` mapping each variant to a place-name ("The Misty Mountains", "The Wraith Fens", etc.). Worker GET returns `map_title`; header renders it as the display-font subhead under "Expedition #N." Stable across reloads because the variant pick is already seed-deterministic.

Test plan

  • CSS-only fallback (local dev) renders the parchment cleanly with the new label halos. Verified live.
  • Painted-variant path needs deploy verification — overlays are conservative.
  • Counter reads "0 of 14 stages cleared" on a 13-depth map.
  • Title reads "The Rolling Hills" for the test expedition seed.

🤖 Generated with Claude Code

Addressing three playtest reports on the expedition map screen.

## 1. Background image too high contrast
The flux parchment-map background was rendering at full opacity behind
nodes + labels. Forest patches drowned the kind labels — the CSS
parchment baseline from PR #221 had been more legible.

- Drop the flux <image> to 55% opacity so the warm parchment underneath
  bleeds through.
- Add a cream wash rect (#e8d5a8 @ 28% alpha) on top of the image to
  flatten the dynamic range into a readable backdrop.
- Reduce the noise filter opacity from 40% → 35% over art so the grain
  doesn't compound the murk.
- Paint kind labels with paintOrder="stroke" + a thin cream (#f3e6c3)
  outline so the text reads on any background patch without darkening
  the art.

## 2. "0 of 38 nodes cleared" doesn't match what the player does
Counting every node in the graph (lanes × depth, minus start/boss) is
~36-40 for a typical map but the player only ever makes ~14 picks
(one per depth column plus the boss). Switch the counter to
\`view.map.depth + 1\` and call them "stages" — matches the cadence of
"how many picks have I made vs. the total" instead of "how many lanes
have I traveled."

## 3. Expedition needs a title
The header read "Expedition #N" — fine for an id but bland. Add
EXPEDITION_MAP_TITLES in ai.ts mapping each map_variant to a proper
place-name ("The Misty Mountains", "The Wraith Fens", etc.). Worker
GET response now includes \`map_title\`; header renders it as the big
display-font subhead under "Expedition #N" so a run reads as
"Expedition #10 — The Rolling Hills."

Same variant selection is already deterministic by seed (PR #224), so
the title stays stable across reloads for the same expedition.

Verified the CSS-only fallback in the local preview. Flux art path is
disabled in local dev (ENVIRONMENT=local turns artTarget.disabled true);
overlay layers are conservative so the painted variant will land at
least as readable as the unpainted one.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@3CordGuy
3CordGuy merged commit 4afc153 into main Jun 7, 2026
1 check passed
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.

1 participant