Add museum map reveal, artifact path puzzle, and homelab media tooling.
Puzzle 1 crossfades to the stitched map with a link to /museum-path; puzzle 2 is a touch-friendly drag-and-order challenge with PDF extract scripts for map and artifact assets.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Egyptian Escape Room — Digital Lock
|
||||
|
||||
A touch-friendly React lock for a homeschool Egyptian escape room. Eight color-coded numeric inputs; correct code plays a celebration and unlock video.
|
||||
A touch-friendly React escape room for homeschool: artifact room door lock (`/`) and museum path drag puzzle (`/museum-path`).
|
||||
|
||||
## Quick start (local)
|
||||
|
||||
@@ -14,12 +14,21 @@ Open http://localhost:5173. For iPad testing on your LAN: `npm run dev -- --host
|
||||
|
||||
## Test checklist
|
||||
|
||||
- Wrong code → jiggle + "Incorrect Code!"
|
||||
- Correct code (`8`, `9`, `10`, `6`, `8`, `6`, `12`, `4` in order) → confetti → unlock video
|
||||
**Puzzle 1** (`/`)
|
||||
|
||||
- Wrong code → jiggle + error banner
|
||||
- Correct code (`8`, `9`, `10`, `6`, `8`, `6`, `12`, `4` in order) → confetti → unlock video → map fade-in + **HELP TED ESCAPE**
|
||||
|
||||
**Puzzle 2** (`/museum-path`)
|
||||
|
||||
- Refresh stays on puzzle 2 (does not reset puzzle 1)
|
||||
- Drag 8 artifacts into ordered slots (touch + mouse)
|
||||
- Wrong path + CHECK PATH → error feedback
|
||||
- Correct path → confetti + “Ted escaped the museum!”
|
||||
|
||||
## Media
|
||||
|
||||
The unlock clip is copied from `Ted Escape Room 1-5.mp4` in the Egyptian Escape Room documents folder. Dev setup:
|
||||
Media is copied from the Egyptian Escape Room documents folder. `setup-dev-media.sh` also stitches the puzzle 5 map from `EgyptEscapeRoomPrintables.pdf` (pages 9–10). Requires `pip install pymupdf` once. Dev setup:
|
||||
|
||||
```bash
|
||||
./scripts/setup-dev-media.sh
|
||||
@@ -27,6 +36,17 @@ The unlock clip is copied from `Ted Escape Room 1-5.mp4` in the Egyptian Escape
|
||||
|
||||
Config lives at `public/media/config.json` (see `config.json.example`).
|
||||
|
||||
### Map artifacts (puzzle 5)
|
||||
|
||||
The 16 display images on PDF pages 9–10 are embedded in the printables PDF and can be extracted individually:
|
||||
|
||||
```bash
|
||||
pip install -r scripts/requirements.txt # once
|
||||
python3 scripts/extract-artifact-images.py "/path/to/EgyptEscapeRoomPrintables.pdf"
|
||||
```
|
||||
|
||||
Output: `public/media/artifacts/*.png` and `manifest.json` (slug, display name, dimensions). Use `--mode embedded` for raw JPEG/PNG bytes from the PDF instead of page renders.
|
||||
|
||||
## Docker (local smoke test)
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user