---
id: ground-look-and-levels/003
title: Mountains — same-flavour stacking to a double peak, the Volcano crowning, and the kw 15 boulder
epic: ground-look-and-levels
state: done
priority: 2
blocked_by: []
estimate: S
created: 2026-08-18
updated: 2026-08-18
claimed_by: null
claimed_at: null
delivers: []
review_artifact: land-of-lor/docs/handoff/ground-look-and-levels.md
---

## What to do

Decisions 7 and 8 of the workshop note (`land-of-lor/docs/design/2026-08-18-ground-look-and-levels-workshop.md`).

- `ground_mesh.gd`: `is_peak` becomes `stack_level(x, y)` — the Chebyshev distance to the
  nearest cell that is not the same hexagram (or out of bounds), capped at `MAX_STACK = 2`;
  the Volcano (Fire over Mountain) matches any Mountain flavour. `mountain_instances()` returns
  `stack` (0..2) and `shape` (`cone` | `boulder`); Earth over Mountain (kw 15) is the boulder.
- `area_view.gd`: two MultiMeshes — cones at three heights (`MOUNTAIN_HEIGHT`, peak, double
  peak in `world_units.gd`), boulders a low-poly rounded square block generated in code (a
  superellipsoid, one function) at three sizes; the volcano cap on top of whatever height its
  cone reached. Both lit, both standing on the cell's surface (002's levels).
- Content: repaint the Badlands range in `game/content/areas/the-badlands.ground.json` — a
  one-flavour cone range with the volcano at its centre, and a separate boulder field of kw 15
  — with the area editor or `paint-ground`, then `load-world` on the next deploy.
- Tests in `test_runner.gd` for `stack_level` (edge, ring, double ring, mixed flavours, the
  volcano exception, the cap).

## Definition of done

Shots of the repainted Badlands range and a boulder field in `docs/handoff/ground-look-and-levels/`;
tests green; committed and pushed.

## Where the work lands

`land-of-lor/game/world/client/`, `game/content/areas/`, `docs/handoff/`.

## What was done (2026-08-18, laptop workshop session)

Built and shipped the same day, folded into the levels work. Same-flavour stacking as one
multi-source flood, `MAX_STACK = 50` (Kris: "why the hell not"), the Volcano matching any
Mountain flavour so it crowns a range; what stands on a cell is data (`shape`: cone / volcano /
boulder — a code-built rounded block — or nothing for the five undefined flavours, still
impassable); one MultiMesh per shape on the cell's surface. The Badlands re-sculpted as a
deterministic preset (Kris: "nothing there is sacred"): two stone plateaus with three ramps up,
the lake as the deep level with two ramps down in notches, a 5×5 boulder square mountain, a
one-flavour cone range crowned by its volcano — validated, every ramp rising, every area
reachable; `load-world` run on the droplet. Handoff: `land-of-lor/docs/handoff/ground-look-and-levels.md`.