feat(ui): replace gameplay icons with local SVGs

This commit is contained in:
2026-09-10 21:47:15 +03:00
parent 8214e7f7ed
commit abb3ff27b7
11 changed files with 162 additions and 74 deletions
+38 -10
View File
@@ -1690,7 +1690,7 @@ map moves below it; displacement controls speed; approximately 100 ms is ideal,
## Milestone 018 — Mobile directional controls and viewport refinement
**Status:** `IN_PROGRESS`
**Status:** `COMPLETE`
### Objective
@@ -1819,13 +1819,10 @@ planning-time observation motivates the milestone:
run -e esp32-c6-devkitm-1` passed with 58,868 of 327,680 RAM bytes and
1,027,966 of 2,097,152 application bytes. The matching `--target buildfs`
command passed and produced the fixed 2,031,616-byte LittleFS image.
- A representative physical mobile-browser touch/layout confirmation remains
required for acceptance criterion 11. Milestone 018 remains `IN_PROGRESS`;
Milestone 019 has not been started.
## Milestone 019 — Reference-derived SVG icon system
**Status:** `NOT_STARTED`
**Status:** `IN_PROGRESS`
### Objective
@@ -1929,14 +1926,45 @@ matching keys, and matching exits.
### Evidence
Completion evidence is not yet available because SVG authoring and application
replacement have not started. The following planning-time observation motivates
the milestone but does not satisfy its acceptance criteria:
Implementation and automated verification are in progress. The following
evidence satisfies the source, integration, and automated acceptance criteria;
the project-owner visual confirmation remains outstanding:
- On 2026-09-10, the project owner supplied a raster visual reference containing
a yellow running figure, yellow key, red closed arched door, cyan faceted
crystal, green opened arched door with an outward arrow, and red spikes. The
owner requested that local SVG artwork be created from these examples before
icon replacement, and selected yellow and blue as the two player colors.
Implementation and completion verification are deferred until Milestone 018
is `COMPLETE`.
- On 2026-09-10, `web/icons.svg` was replaced with project-owned editable SVG
symbols `player`, `key`, `exit-closed`, `crystal`, `exit-open`, and `spikes`.
Each reference-derived symbol uses the documented `64 x 64` view box and
`currentColor`; the sprite contains no `<image>`, `foreignObject`, or embedded
raster data. `xmllint --noout web/icons.svg` passed.
- The player, key, closed/opened exit, vision-artifact, blocked-movement,
onboarding, avatar, lobby, observer, and result renderers now use the new
SVG symbols where the supplied reference applies. Player 1 is yellow
(`#ffd33d`) and Player 2 is blue (`#41b6ff`); their keys and exits share the
matching ownership color, while dashed secondary treatments and distinct
silhouettes preserve non-color identification. Amber warnings and
periwinkle pause semantics remain distinct from player identities. Spikes
are used only in the client-side blocked-movement notice.
- `node --test test/web/test_player_app.js` passed all 21 tests, including the
new deterministic SVG-structure, ownership-color, local-asset, and
blocked-feedback checks. `bash scripts/run_host_tests.sh` passed all host
suites and deterministic asset verification
(`c7f3bd8217e51e81b46eaeaf2636f5cd1cf85a7d8e27b07cb5293ea97a1f3f41`,
26,510 of 1,572,864 allowed compressed bytes).
- `/home/sasa/.platformio/penv/bin/pio run -e esp32-c6-devkitm-1` passed with
58,868 of 327,680 RAM bytes and 1,027,966 of 2,097,152 application bytes.
The matching `--target buildfs` command passed and reported the fixed
2,031,616-byte LittleFS image within its partition.
- On 2026-09-10, `pio run -e esp32-c6-devkitm-1 --target uploadfs
--upload-port /dev/ttyACM0` wrote and hash-verified the LittleFS image to the
confirmed ESP32-C6FH4. A read-only live-page check at `412 x 916` CSS pixels
confirmed a `412 x 916` document with no overflow and references to the
local `player` and `spikes` symbols. It did not create or alter a player
session, so full active-match visual confirmation remains for the project
owner.
- Milestone 019 remains `IN_PROGRESS` pending the project owner's
representative mobile and desktop confirmation that the new icon shapes,
yellow/blue ownership, keys, and exits are clear at normal gameplay size.