Headless, data-driven core (no DOM, no eval): loader with one-pass validation, verb-coin interaction resolution, polygon walkables with Dijkstra pathfinding, branching dialogue with mid-conversation saves, declarative JSON conditions/effects, versioned JSON saves. Thin integration layer: asset manifest with graceful placeholders, WebAudio music loop points (midi-playlist convention), canvas renderer (hotspot boxes drawn where hitTest clicks), HUD model. Web harness (web/) + skeleton example game exercising every feature. 69 tests (node --test), tools/run_all.sh gate, docs/SPEC.md design spec. Verified end-to-end in a real browser: intro scene, walking, look/take, room exits, dialogue choices.
16 lines
400 B
Bash
Executable File
16 lines
400 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# run_all.sh — the whole verification pipeline, one command:
|
|
# 1. validate the example game spec
|
|
# 2. run the full test suite
|
|
# Never declare success without a passing run.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "== validating example game spec"
|
|
node tools/validate_game.js example/game.json
|
|
|
|
echo "== tests"
|
|
node --test tests/*.test.js | tail -n 12
|
|
|
|
echo "ALL OK"
|