Uses the new MRPGI features (room names/enter prose, exit_flags, points, kills, consumes, visible_flag/hidden_by_flag). Golden path re-verified: 250/250 and the win; gate tests cover all four locked exits, the kebab death, and the improvised-words Becky-grue. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
49 lines
1.6 KiB
JSON
49 lines
1.6 KiB
JSON
# Negative tests: every gate must hold when its prerequisite is missing
|
|
# fragments before poster-frenzy
|
|
{"cmd":"goto_room","n":2}
|
|
{"cmd":"parse","text":"use fragments"}
|
|
# dave's door choice hidden before seen-door-outline; crier's read-notice hidden before notice-posted
|
|
{"cmd":"parse","text":"talk dave"}
|
|
{"cmd":"end_dialogue"}
|
|
{"cmd":"parse","text":"talk crier"}
|
|
{"cmd":"end_dialogue"}
|
|
# give lollipop before anything: no lollipop item AND no read-aloud
|
|
{"cmd":"parse","text":"use crier"}
|
|
# toilet mirror before word-rsd
|
|
{"cmd":"goto_room","n":4}
|
|
{"cmd":"parse","text":"wipe mirror"}
|
|
# vine before knowing the secret
|
|
{"cmd":"goto_room","n":5}
|
|
{"cmd":"parse","text":"climb vine"}
|
|
# seam before back-room-open
|
|
{"cmd":"goto_room","n":13}
|
|
{"cmd":"parse","text":"use seam"}
|
|
# terminal before found-grail (with no wallet either)
|
|
{"cmd":"goto_room","n":12}
|
|
{"cmd":"parse","text":"pay terminal"}
|
|
# clerk: favour choices hidden with no flags
|
|
{"cmd":"parse","text":"talk clerk"}
|
|
{"cmd":"end_dialogue"}
|
|
# turntable with no adapter
|
|
{"cmd":"goto_room","n":11}
|
|
{"cmd":"parse","text":"use turntable"}
|
|
# ignition with no keys, no dispersal
|
|
{"cmd":"goto_room","n":0}
|
|
{"cmd":"parse","text":"use ignition"}
|
|
# --- new engine features: gated exits hold ---
|
|
{"cmd":"goto_room","n":0}
|
|
{"cmd":"walk_to","x":156,"y":150}
|
|
{"cmd":"query"}
|
|
{"cmd":"goto_room","n":5}
|
|
{"cmd":"walk_to","x":66,"y":18}
|
|
{"cmd":"query"}
|
|
{"cmd":"walk_to","x":156,"y":120}
|
|
{"cmd":"query"}
|
|
{"cmd":"goto_room","n":12}
|
|
{"cmd":"walk_to","x":72,"y":18}
|
|
{"cmd":"query"}
|
|
# --- the kebab is a Sierra death (restarts the day) ---
|
|
{"cmd":"goto_room","n":0}
|
|
{"cmd":"parse","text":"use kebab"}
|
|
{"cmd":"query"}
|