Visual polish + biome-signature terrain - #18
Merged
Conversation
Visual-identity lane, phase 1–2 (balanced Celtic direction): - :root gains semantic tokens (accent-dim, gold-glow, shadow-deep, carve hi/lo bevels) as one source of truth for the polish pass. - Reusable .ogham-rule divider (gold rule + central lozenge). - Title screen becomes an actual title screen: #start-modal gets an opaque atmospheric backdrop (radial green glow + gold floor wash) so the live board no longer bleeds through, drifting CSS motes, and a shimmering gold title framed by ogham rules. Reduced-motion disables the animations. - Carved-stone bevel + press state on the primary CTAs. - Fix copy: "FORMORIAN" → "Fomorian"; split the subtitle into two lines. CSS/HTML only. 426 tests, lint, build, smoke all green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V6kP5vUAcNbxLK5EnPKAhv
Phase 3 of the visual lane. The play field no longer reads as a flat black rectangle: - A biome-tinted vertical depth gradient behind the tiles (top wash fading to black), so the un-built void has depth. Unexplored tiles now paint a translucent veil instead of an opaque fill, letting the gradient read through as cavern darkness. - A cached edge vignette (radial darkening) drawn over the world each frame, focusing the eye on the hero's column and giving a lit-from-within feel. Renderer-only, no new assets. 426 tests, lint, build, smoke green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V6kP5vUAcNbxLK5EnPKAhv
Phase 4 of the visual lane — tie the in-game UI to the title/modal system: - #hud-strip gets the signature gold top-cap, a carved-stone gradient + bevel, hairline rules between HP/floor/gold sections, and a touch more width/padding so the stat cluster reads at a glance. - The on-screen control buttons gain a carved-stone rest state (top-lit gradient + bevel edges), keeping their existing press ripple/scale. CSS only. 426 tests, lint, build, smoke green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V6kP5vUAcNbxLK5EnPKAhv
Terrain was laid uniformly on S/L/J locks regardless of biome, so every biome felt the same to build in. Make *which* shapes freeze into ground a biome trait via a new optional `terrainShapes` set, so the play-feel shifts as you descend: - Cairn Halls (floors 1-4): S/L/J → sacred (baseline) - Sídhe Caverns (floors 5-9): S/L/J/O/I → ice (densest — the ice biome ices up more of the board) - Bres's Causeway (floors 10+): S/L/J/O → swamp `terrainShapes` is optional and defaults to ["S","L","J"], so existing data and the schema stay backward-compatible. The falling-piece terrain hint in the renderer is now biome-aware to match. - types.ts: BiomeDef.terrainShapes?: string[] - biomes.json + schema: per-biome terrainShapes (optional array) - dataLoader.ts: Biome.terrainShapes with S/L/J default - game.ts lockBlock: resolve biome, lay terrainType on terrainShapes locks - renderer.ts: biome-aware falling-piece terrain hint - tests: 3 biome-signature cases (ice-on-I in caverns only, per-biome type on shared S, swamp-on-O deep only) - README: biome/terrain rows document terrainShapes Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V6kP5vUAcNbxLK5EnPKAhv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two complementary passes that lift the game toward a "pro" level of polish: a visual-identity overhaul and a gameplay-feel change that makes biomes distinct to build in.
Visual identity & UI (
0f7ac66,33ebe33,74aa070)--accent-dim,--gold-glow,--shadow-deep,--carve-hi/lo), an ogham-rule divider, an atmospheric start-modal backdrop with drifting motes and a title shimmer (all reduced-motion guarded). Fixed the "FORMORIAN" → "Fomorian" typo and reflowed the subtitle.Biome-signature terrain (
b56fa19)Terrain used to be laid uniformly on S/L/J locks regardless of biome, so every biome felt the same to build in. Which shapes freeze into ground is now a biome trait via a new optional
terrainShapesset, so play-feel escalates as you descend:terrainShapesis optional and defaults to["S","L","J"], so existing data and the schema stay backward-compatible. The falling-piece terrain hint in the renderer is now biome-aware to match.Touches:
types.ts(BiomeDef.terrainShapes?),biomes.json+ schema,dataLoader.ts(Biome.terrainShapes),game.tslockBlock,renderer.ts, plus 3 new tests and README updates.Verification
npm run verifygreen on the branch: 429/429 tests, coverage ~84.8% stmts / 76.8% branches / 84.7% funcs / 87.8% lines (above thresholds), lint clean, build + smoke pass.🤖 Generated with Claude Code
Generated by Claude Code