nomeansnoquest/scripts/room0.rhai
m3ultra 50817ced59 NOMEANSNO QUEST v1.0 — the first MRPCI game
Six rooms of band history: the 1979 basement (Portastudio, Mom, the Castle box), D.O.A. at UVic, the alley wall that named the band, Alternative Tentacles 1987 (Jello signs you), the Roskilde main stage 1994 (MODELBEAST flux matte painting quantized by the engine; ops paint only walkability + cycling footlights), and the Polish field 1997 (the $2,500 van ransom — with one fatal dialogue option to prove checkpoint mercy). 60 points, deterministic playthrough in tests/, zero engine forks: pure game data + rhai. Generated art via tools/gen_sprites.py + gen_rooms.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 20:49:05 +10:00

61 lines
2.3 KiB
Plaintext

// The basement: the four-track, the tape, and the demo that starts it all.
fn on_enter() {
if once("seen_basement") {
say("The bulb hums. Somewhere upstairs, a kettle agrees.");
}
}
fn on_verb(verb, noun) {
// The Castle box surrenders its one useful artifact.
if noun == "castle box" && (verb == "do" || verb == "take") {
if !flag("tape_found") {
set_flag("tape_found", true);
give("blank tape");
say("Under the Castle setlists (RIP): one fresh reel of tape, still in shrink wrap. The cover band's final gift.");
play("pickup");
} else {
say("Nothing left in there but regret and a capo.");
}
return true;
}
// Recording the demo — the whole first act funnels here.
if noun == "portastudio" && (verb == "use:blank tape" || verb == "do" || verb == "play") {
if flag("demo_done") {
say("The demo's done. It sits there radiating consequence.");
return true;
}
if verb == "do" || verb == "play" {
if !has("blank tape") {
say("The reels are empty. You need tape — didn't the Castle box have some?");
return true;
}
}
if !has("blank tape") {
return false;
}
if !flag("inspired") {
say("Tape, machine, hands. But no reason yet. You keep thinking about that D.O.A. poster.");
return true;
}
if !flag("named") {
say("The riff is THERE. But who's it by? A band needs a name before tape makes it real. (Something you saw in the alley keeps circling back.)");
return true;
}
freeze_ego(true);
say("You thread the reel. John counts in — in NINE — and the basement stops being a basement.");
say("Two hours, eleven takes, one mother banging the ceiling in what is, honestly, pretty solid time.");
say("You mark the box in felt pen: NOMEANSNO.");
remove_item("blank tape");
give("demo tape");
set_flag("demo_done", true);
points(10);
play("win");
freeze_ego(false);
say("(The van is out the south door. California knows nothing yet.)");
return true;
}
false
}