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,11 @@
|
||||
# Agent context — Egyptian Escape Room Digital Lock
|
||||
|
||||
Homeschool Egyptian-themed escape room: a browser-based digital lock. Players enter numeric answers from color-coded puzzles; correct code triggers celebration and an unlock video.
|
||||
Homeschool Egyptian-themed escape room: two browser puzzles on separate routes.
|
||||
|
||||
| Route | Puzzle |
|
||||
|-------|--------|
|
||||
| `/` | Artifact room door — 8 color-coded numeric inputs |
|
||||
| `/museum-path` | Museum path — drag 8 of 16 artifacts into order |
|
||||
|
||||
## Puzzle mapping
|
||||
|
||||
@@ -21,7 +26,11 @@ Answers are in client-side `src/lockConfig.ts` — acceptable for a kids' escape
|
||||
|
||||
## Success flow
|
||||
|
||||
Wrong code → UNLOCK button jiggles + "Incorrect Code!" banner. Correct code → lock animation + confetti (~2s) → fullscreen autoplay of configured MP4 (no reset).
|
||||
**Puzzle 1:** Wrong code → OPEN DOOR jiggles + error banner. Correct code → confetti (~2s) → fullscreen unlock video → map crossfades in (9s before end) with **HELP TED ESCAPE** → `/museum-path`.
|
||||
|
||||
**Puzzle 2:** Drag artifacts from bank into 8 ordered slots; CHECK PATH validates against `src/puzzle2Config.ts`. Correct → confetti + success message. Touch-friendly via `@dnd-kit/core`.
|
||||
|
||||
Map image is generated from PDF pages 9–10 (left/right halves) via `scripts/extract-artifact-room-map.py` (requires `pip install pymupdf`; Pillow for trimming).
|
||||
|
||||
## Media assets
|
||||
|
||||
@@ -34,10 +43,12 @@ Copied into each environment via setup scripts. Runtime config: `/media/config.j
|
||||
| File | Role |
|
||||
|------|------|
|
||||
| `unlock.mp4` | Success video (`Ted Escape Room 1-5.mp4`) |
|
||||
| `artifact-room-map.jpg` | Stitched puzzle 5 map from `EgyptEscapeRoomPrintables.pdf` pages 9–10 |
|
||||
| `incorrect.mp3` | Wrong-code sound on UNLOCK |
|
||||
| `unlock-confirm.mp3` | Success chime with confetti |
|
||||
| `celebration-pop.mp3` | Balloon pop at confetti start |
|
||||
| `celebration-horn.mp3` | Party horn — plays with pop; first 2s only |
|
||||
| `artifacts/` | 16 PNGs + `manifest.json` for museum-path puzzle |
|
||||
|
||||
| Environment | Host path |
|
||||
|-------------|-----------|
|
||||
@@ -82,6 +93,10 @@ Deploy order: `setup-prod-media.sh` on Unraid → build/push image → create/up
|
||||
## Repo layout
|
||||
|
||||
- `src/lockConfig.ts` — puzzle colors and answers
|
||||
- `src/DigitalLock.tsx` — main UI
|
||||
- `src/DigitalLock.tsx` — puzzle 1 UI
|
||||
- `src/MuseumPathPuzzle.tsx` — puzzle 2 drag-and-order UI
|
||||
- `src/puzzle2Config.ts` — correct artifact slug order
|
||||
- `public/media/` — dev media (gitignored copies)
|
||||
- `scripts/extract-artifact-room-map.py` — PDF pages 9–10 → stitched JPEG
|
||||
- `scripts/extract-artifact-images.py` — 16 embedded map artifacts → `public/media/artifacts/` + `manifest.json`
|
||||
- `scripts/setup-dev-media.sh`, `scripts/setup-prod-media.sh`, `scripts/build-push.sh`
|
||||
|
||||
Reference in New Issue
Block a user