# Mini-games — Golem Hollow, the first spell, and things placed on the ground

## overview.md
```yaml
id: mini-games
title: Mini-games — Golem Hollow, the first spell, and things placed on the ground
area: client
summary: The first mini-game — an Area where stone golems walk from a spawn point to the Grove Tree and the player defends it by casting the Lightning Tower, the game's first spell — plus everything it needs underneath: spells and kinds as data, stats and health on every creature, an editor that places things on the ground, a volcano that erupts fire crystals and ice that grows ice crystals.
repo: land-of-lor (game/ — director, world, shell, content; tools/hub-ui; builder/; site/)
depends_on: ["building-the-game","ground-look-and-levels","world-map-and-portals"]
parked: false
standing: Golem Hollow is live and played through (2026-09-09); mini-games across several Areas and a spell editor are ideas held.
```

## Where this stands (2026-09-18)

Everything is live on spellgrove.com and APK v29 and signed off: the seven pieces built from
Kris's 2026-09-08 voice prompt, then eight more rounds from his play through 2026-09-09 — the
golems walk, bodies block and fight, the update notice, the win and the Life Seed, the crystals
and the pickup flight, the cards, the molten volcano, the nudge toward the tower
(`docs/handoff/mini-games.md`). Kris played Golem Hollow through on the web build and the
phone; the last review flag was cleared by the 2026-09-13 board sweep.
Ideas held, not started: mini-games across several Areas, the spell editor, and a per-Area
`miniGame` block (goal, reward, timings, dialogue) in place of the constants the win reads today.
*2026-09-15 (Kris, checked by Claude):* every player in an Area is registered as a flow-field target and their field is re-queued on each cell change, though only the Stage-4 wanderer hunts players and no live creature does — golems walk to the tree only. It is budgeted (2 ms a tick, `pathfind_budget_usec`), so it cannot slow the tick, but the FIFO can hold the tree's recompute back a few ticks after a tower is placed while many players are moving. Held until the first creature that hunts players arrives: then register players as targets only where a kind targets them (`_tick_creatures`, `area_server.gd`).
*2026-09-18 — the Village's wanderer is a witch (Rah's call: a witch, not a wizard).* A new kind
`witch` beside `wizard` — a crooked pointed hat, a gnarled staff, a dark plum robe, a slight
**stoop** (a new general kind field, hinged at the hips so it composes with the blow and the
jump), the same ambling and the same frog. She holds the wizard's cell; the wizard stays in the
table, unplaced, for later. Names now clear hats (the label measures the hat's real top; the
wizard's used to run through his). The frog casts a shadow its own size (every creature's blob
now follows its model), **croaks** every 3–8 s (the pale ball under its chin is the throat: it
fills as the head tips back, then settles) and **hops** cell to cell on one arc per move instead
of sliding. `docs/handoff/witch-and-frog.md`. The editor palette still shows a letter for her,
as for the wizard (no model of her own).
No open issues. Past task files (to 2026-09-13): `workshop/historic-docs/epics/mini-games/tasks/`.

## What this is

Kris, by voice, 2026-09-08 — one long prompt, planned in full before a line was written (the
plan is the seven tasks here). His words, lightly ordered:

> We're introducing the first — I'm going to use the term **mini-game**. A mini-game is kind
> of just another term for an area, or potentially two … a mini-game can go across multiple
> areas, but the one we're making will just be in the one area.

> In this mini-game we're going to have our first **spell**, so we need the concept of spells
> built in. The first spell is the **Lightning Tower** spell. A spell requires a number of
> elements in sequence, and then it results in the creation of something. The recipe is one
> ice crystal, then three stone, then one fire crystal.

> In the area editor, in addition to painting the ground, I also want to **place items** — a
> tab for elements and a tab for spells.

> All creatures, including the players, need a **health bar**, a speed, a **nature** (one of
> the eight), an attack strength, a defence strength and an attack speed — all quite low.

> A new area, about half the size of the Village. In one corner a **spawn point** spawning
> **stone golems** that pathfind to a target the player must defend. A relatively large
> **volcano** that every now and again explodes out fire crystals onto the ground around it,
> at most one per cell — and make the volcano look like a volcano when cells stack. An area of
> **ice** whose ground generates ice crystals the way grass generates dirt.

> The spell is on the ground as a scroll. If you haven't got it, it appears there; once you
> have it, it doesn't. It's not an item in the world. The first time you get a new element or
> spell — dirt included — a "you got" animation and the card.

## Vocabulary

- **Mini-game** — a kind of Area (`areaType: "mini_game"`) with its own rules and a start and
  an end. One Area today; a later mini-game may span several linked Areas (an *area group*),
  so nothing here assumes the word means one grid.
- **Spell** — a recipe: an ordered list of elements that makes one complex item. Authored data
  (`game/shell/spells.js`), not made by players yet. A player *owns* a spell once they have
  found its scroll.
- **Placed thing** — something an author put on a cell in the area editor: a stack of an
  element, a spell scroll, an object. `game/content/areas/<slug>.placed.json`, loaded and
  published exactly like the ground.
- **Kind** — a type of complex item (player, stone golem, lightning tower, grove tree, spawn
  point) with its stats and model, in `game/shell/kinds.js`.

## Decisions taken with Kris (voice, 2026-09-08)

1. The target the golems attack is **the Grove Tree**, a young tree at the heart of the hollow
   (the game is Spellgrove; a seed-grown tree is on the complex-items list). The alternative
   was a cauldron.
2. When the tree falls the hollow **resets** a few seconds later — golems and towers gone, the
   placed stone and the tree restored. No win condition yet; a count of golems stopped.
3. A golem **drops one Stone** when it dies.
4. The element **Stone** is Mountain over Earth; the ground family that shared the name is now
   **Flagstone**.
5. **Ice Crystal** is Water over Thunder, the hexagram already drawn as the Ice ground, which
   grows ice crystals one per cell.
6. **Casting** is one tap on the spell in the Spells tab once you hold the ingredients; the
   tower lands on the cell in front of you, and shoots lightning at golems within a few cells.

## Scope

Tasks 001–007, in build order: data and vocabulary; placed things and the editor; stats and
health on everything; the mini-game loop; spells (owning, finding, casting, the reveal); the
volcano and the ice; Golem Hollow itself, the live verifier and the deploy.

## Non-goals (this epic, this round)

Mini-games across several Areas; the spell editor and the cauldron (`spell-crafting-interface`
stays open); per-Area win/reward parameters on the properties page (the win reads the spawn
point's kind and placement, the reward the tree's kind — see the handoff's "How generic").
Built later the same day, after Kris's first walks: players taking damage (knocked down, back
at their arrival), towers being attacked, the win at thirty golems with the Life Seed, a
per-Area ground-item cap, the in-client "update in progress" notice.

## Relevant docs

- `docs/specs/CORE_ENTITIES.md` — Kris's "Recipes … I almost called this Spells" note, and
  Complex Item / Tower / Spawn Point as the named children.
- `docs/thought-specs/sixty-four-hexagrams-as-base-items-and-spell-slots.md` — the first
  ingredient decides what a spell makes; 64 kinds of spell.
- `battle-arena-poc/overview.md` — "a readiness indicator and a trigger, not a workbench";
  movement is gathering; ingredients are the arena's resource.
- `game/world/client/items/README.md` — the ground-generated item template this extends.
- `docs/handoff/mini-games.md` — the build handoff (written with 007).

## deliverables (1)

- #25 — Golem Hollow — the first mini-game (2026-09-09) — /deliverables/25