feat(game): add persistent bush-wall breakthroughs
This commit is contained in:
@@ -2271,7 +2271,7 @@ The following planning-time observation motivated the milestone:
|
||||
|
||||
## Milestone 022 — Persistent bush-wall breakthrough
|
||||
|
||||
**Status:** `NOT_STARTED`
|
||||
**Status:** `COMPLETE`
|
||||
|
||||
### Objective
|
||||
|
||||
@@ -2426,3 +2426,149 @@ The following planning-time decisions define this milestone:
|
||||
always available to both players.
|
||||
- Implementation, automated verification, physical-device checks, and owner
|
||||
acceptance are deferred until all preceding milestones are `COMPLETE`.
|
||||
- 2026-09-10 implementation evidence: `bash scripts/run_host_tests.sh` passed,
|
||||
including `game persistent bush-wall breakthrough: PASS (five impacts, shared
|
||||
passage)`. `node --test test/web/test_player_app.js` passed all 23 browser
|
||||
tests and confirmed the bounded impact and trampled-passage presentation.
|
||||
|
||||
## Milestone 023 — Top-down living hedge SVG sample library
|
||||
|
||||
**Status:** `NOT_STARTED`
|
||||
|
||||
### Objective
|
||||
|
||||
Design and obtain project-owner approval for a lightweight SVG sample library
|
||||
that makes maze walls read as varied living hedges viewed from above, with
|
||||
recognizable leaves, twigs, depth, and matching damaged and permanently
|
||||
breached variants for perseverance mode, without integrating the artwork into
|
||||
the running game in this milestone.
|
||||
|
||||
### Scope
|
||||
|
||||
- Do not start this milestone until every preceding milestone is `COMPLETE`.
|
||||
- Treat this as a visual exploration and asset-approval milestone only. Do not
|
||||
replace the current maze renderer, change gameplay, modify the protocol, or
|
||||
ship the samples in browser or firmware assets during this milestone.
|
||||
- Before drawing, add a concise hedge-art contract to `docs/UI_STYLE.md` that
|
||||
defines top-down perspective, scale, palette, outline weight, contrast,
|
||||
organic variation, tiling rules, and the relationship between intact,
|
||||
impacted, and permanently breached bushes.
|
||||
- Create editable, hand-reviewable SVG source artwork with semantic groups and
|
||||
stable symbol identifiers. Do not embed raster images, external fonts,
|
||||
remote resources, scripts, generated metadata, or tool-specific binary data.
|
||||
- Explore at least six visibly different intact straight-hedge samples. Vary
|
||||
leaf clusters, branch paths, gaps, highlights, and silhouette rhythm while
|
||||
keeping every sample unmistakably part of one visual family.
|
||||
- Include representative joins and boundary situations needed by a cell-based
|
||||
maze: continuous straight runs, perpendicular corners, crossings of adjacent
|
||||
wall segments, exposed ends, and shared edges. Samples must rotate or mirror
|
||||
cleanly for all four cardinal directions without directional lighting errors.
|
||||
- Make individual leaves and small branch forks distinguishable at the actual
|
||||
supported maze scales of 34, 40, and 46 CSS pixels per cell. Avoid both flat
|
||||
green bars and noisy texture that turns into visual static on a phone.
|
||||
- Use at least three vegetation tones plus restrained branch and shadow tones
|
||||
to create depth. Maintain an identifiable hedge silhouette without relying
|
||||
on green hue alone and keep players, keys, doors, passages, and interactive
|
||||
feedback visually dominant.
|
||||
- Draw a coherent perseverance sequence for the same representative wall:
|
||||
intact, four increasing impact stages, the moment of breakthrough, and the
|
||||
final permanent trampled opening. Branch bending, displaced leaves, broken
|
||||
twigs, compressed foliage, and the cleared center must evolve consistently
|
||||
rather than appearing as unrelated pictures.
|
||||
- Provide at least three final breached-hedge samples with different organic
|
||||
edge shapes. Each must clearly show a traversable gap from a top-down view,
|
||||
retain torn or flattened bushes on both sides, and remain recognizable when
|
||||
rotated or mirrored.
|
||||
- Keep openings visually aligned to the authoritative cell passage and wide
|
||||
enough for the player icon without implying a larger traversable area. The
|
||||
samples must not encode coordinates, hidden passages, objects, ownership, or
|
||||
other game state.
|
||||
- Present all concepts together on one neutral comparison sheet and also as
|
||||
isolated SVG symbols on representative dark maze cells. Include previews at
|
||||
1x and high-density mobile rendering scales, with no smoothing assumptions
|
||||
that are unavailable in ordinary browsers.
|
||||
- Record approximate raw and compressed byte costs for each candidate family
|
||||
so later integration can select variety without threatening the 1.5 MiB web
|
||||
asset budget or LittleFS partition. Prefer reusable leaf, twig, shadow, and
|
||||
damage components over repeated paths where that improves size and clarity.
|
||||
- Check color-vision robustness, grayscale silhouette, normal contrast, and
|
||||
reduced-motion suitability. This milestone defines static frames only;
|
||||
animation timing and runtime particle behavior remain governed by Milestone
|
||||
022 and are outside this milestone's implementation scope.
|
||||
- End with an explicit project-owner selection of the preferred intact hedge
|
||||
family, damage progression, breached variants, density, and palette. Runtime
|
||||
integration requires a separately planned later milestone after approval.
|
||||
|
||||
### Deliverables
|
||||
|
||||
- Updated hedge-art and sample-review contract in `docs/UI_STYLE.md`.
|
||||
- Editable SVG symbol sheet containing intact straight segments, joins, ends,
|
||||
four impact stages, breakthrough frame, and permanent breached variants.
|
||||
- Neutral comparison sheet plus representative dark-cell previews at 34, 40,
|
||||
and 46 CSS pixel cell sizes and normal and high-density mobile scales.
|
||||
- Brief asset manifest describing symbol identifiers, reuse rules, rotation and
|
||||
mirroring constraints, accessibility checks, and raw and compressed sizes.
|
||||
- Recorded project-owner selection and any requested revisions; no browser or
|
||||
firmware integration changes.
|
||||
|
||||
### Acceptance criteria
|
||||
|
||||
1. The sample library contains at least six intact straight-hedge variants,
|
||||
representative continuous runs, corners, shared-edge joins, and exposed
|
||||
ends, all drawn as editable vector artwork with stable semantic identifiers.
|
||||
2. Every intact sample resembles a living hedge viewed directly from above and
|
||||
contains clearly distinguishable leaf clusters and branching structure. No
|
||||
candidate is merely a solid, gradient, or textured green bar.
|
||||
3. The candidates form one coherent visual family while showing enough
|
||||
silhouette, foliage, branch, highlight, and gap variation to prevent obvious
|
||||
repetition across a representative maze preview.
|
||||
4. Leaves and primary branch forks remain recognizable at 34, 40, and 46 CSS
|
||||
pixel cell sizes at 1x rendering. At high density they gain clarity without
|
||||
changing geometry, producing seams, or becoming disproportionately detailed.
|
||||
5. Straight segments, corners, joins, and ends connect without visible gaps,
|
||||
doubled borders, accidental knots, or discontinuous lighting when rotated or
|
||||
mirrored into every cardinal orientation.
|
||||
6. At least three vegetation tones plus restrained branch and shadow tones
|
||||
provide top-down depth. Grayscale and representative color-vision checks
|
||||
preserve the hedge silhouette and do not reduce the legibility of players,
|
||||
keys, doors, passages, or feedback.
|
||||
7. One representative wall has a visually continuous set of intact, impact
|
||||
stages one through four, breakthrough, and permanent-open frames. Each stage
|
||||
shows plausible cumulative bending or damage and is distinguishable from
|
||||
adjacent stages without explanatory text.
|
||||
8. At least three permanent breached variants show an unambiguous traversable
|
||||
center with torn, bent, or flattened vegetation on both sides. They remain
|
||||
understandable from either side after rotation or mirroring and do not look
|
||||
like an intact or merely shadowed wall.
|
||||
9. Every breached opening aligns to one authoritative wall passage, is visually
|
||||
wide enough for the existing player icon, and does not suggest access to an
|
||||
adjacent closed cell or reveal any hidden maze state.
|
||||
10. SVG files contain no raster payloads, external dependencies, scripts,
|
||||
unnecessary editor metadata, or unbounded duplication. The manifest records
|
||||
raw and compressed size for each candidate family and identifies reusable
|
||||
components.
|
||||
11. The comparison sheet shows all candidates on a neutral background and the
|
||||
preferred candidates on representative dark maze cells at all target sizes.
|
||||
Review does not require running or modifying the game.
|
||||
12. No runtime HTML, CSS, JavaScript, firmware, protocol, generated web bundle,
|
||||
or LittleFS image changes are part of this milestone. Automated checks
|
||||
confirm SVG validity, local-only dependencies, stable identifiers, and
|
||||
deterministic optimization output.
|
||||
13. The project owner selects or explicitly rejects the intact hedge family,
|
||||
impact sequence, breached variants, density, and palette after reviewing the
|
||||
sample sheet at representative mobile scale. Any requested revisions are
|
||||
recorded before the milestone can become `COMPLETE`.
|
||||
|
||||
### Evidence
|
||||
|
||||
The following planning-time request defines this milestone:
|
||||
|
||||
- On 2026-09-10, the project owner requested a future sample-drawing milestone
|
||||
because maze walls should look like varied living hedges from above rather
|
||||
than simple green sticks. The owner specifically required visible leaves and
|
||||
branches plus matching broken-bush samples for permanent breakthroughs in
|
||||
perseverance mode, and requested planning only with no immediate artwork or
|
||||
runtime implementation.
|
||||
- Artwork creation, review previews, validation, owner approval, and any later
|
||||
runtime integration are deferred. Milestone 022 remains the sole active
|
||||
milestone at planning time.
|
||||
|
||||
Reference in New Issue
Block a user