This file is part of the Cragne Manor source code collection. Posted with the author's permission. All rights reserved.
"mbf2" by Jeremy Freese
Book 3 - Do Not Change Any Of This
Include Cragne Suite by Ryan Veeder
[Don't mess with other people's rooms!]
MBF is a region.
The cellar door is a closed locked scenery door. The cellar door is down from M1F8 and up from MBF1. The cellar key unlocks the cellar door.
[MBF2 is a room in MBF. -- COMMENTED OUT BECAUSE I PUT IT IN A REGION INSIDE MBF]
Door14 is a closed unlocked openable door. Door14 is north of MBF1 and south of MBF2.
Door14 is scenery.
Part 3 - MBF2 Cold Storage
[BASIC PREMISE: This room is a re-implementation of the babelfish puzzle from HHGG in a Lovecraftish guise, essentially doing a tribute to a twenty-year old game via a tribute to a thirty-four year old game.]
CHAPTER 2 - BASIC FLAGS ETC
The is-the-MBF2-puzzle-solved is a truth state that varies. The is-the-MBF2-puzzle-solved is false. [this will be set to true when this room is solved by the player]
CHAPTER 4 - THE TWO ROOMS
[NOTE: The puzzle here involves putting the player in a situation in which all of the objects etc they might have acquired in other rooms disappear in exchange for objects specific to this puzzle, which will not travel with the player. The way that I accomplish this is to create a new character and a separate version of the room, which the player is transported to and fro.
The player is transported to the alternative-version of the room when they pick up the thing-you-aunt-gave-you, and they return to the original room either when they drop the thing or when they complete the puzzle.]
section 1 - defining as region
[Because my room is actually implemented as two rooms, I create a region that holds both rooms.]
The jf-rooms are a region in MBF. MBF2 is in the jf-rooms. jf-vogon-hold is in the jf-rooms.
section 2 - MBF2
The player is in MBF2.
Printed name of MBF2 is "Cold Storage Room (Jeremy Freese)".
Description of MBF2 is "[MBF2-opening-description].".
The jf-is-this-first-time-in-MBF2 is a truth state that varies. The jf-is-this-first-time-in-MBF2 is false.
To say MBF2-opening-description:
if the jf-is-this-first-time-in-MBF2 is true:
now the jf-thing is described;
if is-the-MBF2-puzzle-solved is false:
say "[one of][jf-room-description-text].[paragraph break]Also: no peaches. The room is empty except for the thing on the floor[or][jf-room-description-text][stopping]";
now the jf-is-this-first-time-in-MBF2 is true;
otherwise:
say "Aunt Mavis used to keep her peaches in a room that didn’t look at all like this. On the walls is a message written in blood, composed in an ancient language you know intimately.[paragraph break]There's also the thing Aunt Mavis gave you. You now understand what it is"
To say jf-room-description-text:
say "Aunt Mavis used to keep her peaches in a room just like this. Except that room had chirpy yellow wallpaper, and this one’s walls are covered with strange glyphs written in blood".
section 3 - the other room (jf-vogon-hold)
[jf-vogon-hold is just an internal name for the alternative version of the room. It is never shown to the player. (jf-vogon-hold is a shout-out to the name of the room in which the babelfish puzzle takes place in HHGG).]
Printed name of the jf-vogon-hold is "Cold Storage Room (Jeremy Freese)".
Description of the jf-vogon-hold is "[jf-vogon-hold-room-description]"
To say jf-vogon-hold-room-description:
say "You are in a room that looks very much like Aunt Mavis's cold storage room[one of], except there's [or], albeit with [or]. But there's [then at random]a giant eyeball in the wall instead of the door.[run paragraph on]";
if the jf-hole is part of the jf-wall:
if the jf-rusty-nail is part of the jf-wall:
if the jf-cultist-robe is on the jf-rusty-nail:
say "[paragraph break]On the opposite wall, a small [jf-squid-shaped] hole has been covered by the robe like the one from [italic type]Scream[roman type].[run paragraph on]";
otherwise:
say "[paragraph break]On the opposite wall is a small, [jf-squid-shaped] hole with a small nail above it.[run paragraph on]";
otherwise:
say "[paragraph break]On the opposite wall is a small, [jf-squid-shaped] hole.[run paragraph on]";
if the jf-rift is part of the jf-floor:
if nothing is on the jf-rift:
say " Below it on the floor is small, similarly [jf-squid-shaped] rift.[run paragraph on]";
otherwise:
say " Below it on the floor a small, similarly [jf-squid-shaped] rift, although that is currently covered by [a list of things on the jf-rift].[run paragraph on]";
if the jf-catflap is part of the jf-wall:
if nothing is on the jf-catflap:
say " Left of that, there's a catflap in the wall.[run paragraph on]";
otherwise:
if the jf-clippings are on the jf-satchel-top:
say " Left of that, there's a satchel sitting in front of a catflap in the wall, with some charred newspaper clippings sitting on top.[run paragraph on]";
otherwise:
say " Left of that, there's a catflap in the wall, with [a list of things on the jf-catflap] in front of it.[run paragraph on]"
section 4 - the person in the other room
jf-young-naomi is a person. jf-young-naomi is in the jf-vogon-hold. [jf-young-naomi wears the jf-cultist-robe.]
[jf-young-naomi holds the jf-satchel.][Revised--have this simply be in the room]
Instead of examining jf-young-naomi:
say "You look down at your hands and are surprised by how young and smooth they look. You make a [jf-mental-note] to buy more of that new moisturizer you started using."
section 5 - examining the player while in the first room
Carry out examining the player when the location is mbf2:
if the is-the-MBF2-puzzle-solved is false:
say "You don’t have to look this good to be a star investigative journalist, but, frankly, it helps.";
otherwise:
say "[one of]You feel around your face and confirm that, in fact, you still do have both of your eyes. (Even so, you lament the fact that a star investigative journalist could probably pull off an eyepatch if they were a man, but it would consign you to writing copy for third-rate rags like the [italic type]Backwater Sturgeon[roman type]. Or worse: the 'web.'[paragraph break]You shudder.[or]You are Naomi Cragne, two-eyed journalist who is ready for further adventures.[stopping]";
stop.
CHAPTER 5 - THE THING YOUR AUNT GAVE YOU
The jf-thing is a thing. The jf-thing is in MBF2. The jf-thing is undescribed.
Understand "thing" as jf-thing when the jf-thing is in jf-rooms. The printed name of the jf-thing is "thing".
Description of the jf-thing is "[one of][jf-first-description-of-thing].[or]Whatever this thing [one of]is[or]might be[at random], it's [one of]uncanny[or]unsettling[or]eerie[or]bizarre[then at random] how [one of]similar it is to[or]much it is like[or]how much it reminds you of[at random] the thing Aunt Mavis gave you.[stopping]".
To say jf-first-description-of-thing:
say "Aunt Mavis once gave you something just like this. You didn’t know what it was and were too embarrassed to ask";
now the printed name of the jf-thing is "thing just like that thing your aunt gave you which you never knew what it was".
Before touching the jf-thing:
say "It has an elusive feel to it.";
stop.
Before inserting the jf-thing into the jf-satchel:
say "Even though you don't know what the thing is, you can tell it's not something that one can put in a satchel.";
stop.
section 1 - switching rooms when you take or drop thing
Instead of taking the jf-thing in MBF2:
[if the object is the jf-thing:]
say "As you do, a powerful and familiar fruity smell[jf-emdash][italic type]peaches?[roman type][jf-emdash]makes you [one of]woozy[or]dizzy[then at random]. [paragraph break]When your head clears, the room has chirpy yellow wallpaper after all. So it is even more like Aunt Mavis's. And, there's a satchel on the floor that you can't believe you didn't notice earlier.[paragraph break]You look around to see if you missed anything else and see that there is a now giant eyeball in the wall where the door used to be.";
now the player is jf-young-naomi;
now the jf-young-naomi holds the jf-thing.
Before dropping in the jf-vogon-hold:
if the noun is the jf-thing:
say "When you let go of the thing, a shellfishy smell
[jf-emdash][jf-oysters][jf-emdash]makes you woozy for a moment. The room now looks as it did earlier, with bloody glyphs covering the walls and the door leading out to the south.";
move the jf-thing to MBF2;
now the player is yourself;
stop.
To say jf-oysters:
say "[italic type]oysters? [one of]mollusks?[or]scallops?[or]scampi?[then at random][roman type]"
section 2 - stopping the player from putting the thing in something
Before inserting anything into the jf-thing:
say "Even though you don’t know what the thing is, you know it isn’t the sort of thing you can put something else inside.";
stop.
section 3 - the thing after you solve the puzzle
The jf-other-thing is a thing. The jf-other-thing is nowhere. Understand "thing" as jf-other-thing when the jf-other-thing is in jf-rooms. The printed name of the jf-other-thing is "the thing your aunt gave you which you now know what it is".
The jf-has-other-thing-been-examined is a truth state that varies. The jf-has-other-thing-been-examined is false.
Instead of doing anything with the jf-other-thing:
if examining:
now the jf-has-other-thing-been-examined is true;
say "[italic type]At the beginning of that summer:[roman type][line break]'But why do I have to go stay with Aunt Mavis,' you asked your mother. 'I hardly know her.'[line break]'She wants to get to know you better.'[line break]'Why?'[line break]'There's nothing more important than family, Naomi. And also,' lowering her voice to a whisper, 'she has a very special gift she wants to give you.'[paragraph break][italic type]At the end:[line break][roman type]'You need me to pack? My ticket home isn’t for another week.'[line break]'It’s for tomorrow, Naomi. You must have had so much fun staying with me that the weeks just flew by.'[line break]You didn’t believe her until you got the newspaper and saw the date for yourself. Which raised a delicate topic:[line break]'Aunt Mavis, I don't want to be rude. But my mom said you were planning to give me a special present.'[line break]'Yes. And please do be sure to tell her that I did.'[jf-alert-to-testers]";
otherwise:
say "You can't do that."
To say jf-alert-to-testers:
if the jf-has-other-thing-been-examined is true:
if the jf-has-alderman-been-revealed is true:
say "[paragraph break](TESTERS: That's it. Thanks so much for helping with this.)"
CHAPTER 6 - EYEBALL
[NOTE: the eyeball is the counterpart to the babelfish dispenser in HHGG. Touching the eyeball is the counterpart to pushing the button on the dispenser.]
The jf-eyeball is a thing in the jf-vogon-hold. The jf-eyeball is scenery. The printed name of the jf-eyeball is "eyeball". Understand "eyeball" as jf-eyeball. Understand "eye" as jf-eyeball.
Understand "poke [something]" as touching when the player is in the jf-rooms.
The jf-squid-counter is a number that varies. The jf-squid-counter is 0.
The jf-satchel-puzzle-counter is a number that varies. The jf-satchel-puzzle-counter is 0.
The jf-squid-text is some text that varies. The jf-squid-text is "null".
[TODO: change pupil to tear duct?]
[
The jf-pupil is part of the jf-eyeball. The printed name of the jf-pupil is "pupil". Understand "pupil" as jf-pupil.
]
section 1 - examine eyeball
Instead of examining the jf-eyeball:
say "[one of]You haven’t seen an eye this blue since Aunt Mavis died. And while you know full well that it is the muscles around the eye that convey emotion[jf-emdash]especially the brows[jf-emdash]and not the eye [italic type]per se[roman type], the way this eyeball is looking at you nevertheless conveys a sense of urgency.[or]The eyeball looks back at you, insistently.[paragraph break]Your own eyes are blue[jf-emdash]of course they have to be, since both your mother's and father's are[jf-emdash]but Aunt Mavis's eye's were the bluest of all. 'There's only one way to get eyes as blue as ours,' she said when you complimented her on them. 'Inbreeding.'[paragraph break]You laugh thinking about it even now. Aunt Mavis didn't tell jokes very often, but when she did she had the most deadpan delivery.[or]The eyeball looks back at you, pressingly.[or]The eyeball looks back at you, pressingly[jf-touch-clue].[stopping]".
To say jf-touch-clue:
if the jf-squid-counter is less than 3:
say ". You feel [one of]a strong[or]another strong[or]a very strong[or]an overwhelming[stopping] urge to TOUCH the eyeball".
section 2 - touching the eyeball
Instead of pushing or pulling or squeezing the jf-eyeball:
try touching the jf-eyeball instead.
Before eating the jf-eyeball:
say "Being a glamourous investigative journalist who has twice just missed out on being nominated for a Pulitzer, you have been to many parts of the world and eaten all manner of exotic cuisine, including the eyeballs of three different species. But you have neither the means nor the condiments necessary to eat the eyeball here.";
stop.
Before attacking the jf-eyeball:
say "As an ace investigative journalist, you've been in situations that have gotten violent, and[jf-emdash]most recently in that lion sex brothel in Botswana[jf-emdash]you've had to use violence yourself. This has given you the intutuion to know that attacking the eyeball won't help with anything.[paragraph break]Of course, it would be in line with your natural curiosity if you simply TOUCHed the eyeball instead.";
stop.
Before attacking the jf-thing:
say "As an ace investigative journalist, you've been in situations that have gotten violent, and[jf-emdash]most recently in that lion sex brothel in Botswana[jf-emdash]you've had to use violence yourself. This has given you the intutuion to know that attacking the thing won't help.[paragraph break]Of course, it would be in line with your natural curiosity if you simply picked it up.";
stop.
Before taking the jf-eyeball:
say "It's maybe three or so feet across and fixed into the wall, so you aren't going to be able to remove it[one of].[or]. (Although you must admit you do feel a strong urge to TOUCH it.)[or].[stopping]";
stop.
Instead of touching the jf-eyeball:
increase the jf-squid-counter by 1;
now the jf-squid is in the jf-vogon-hold;
now the jf-squid is scenery;
if the jf-hole is off-stage: [TO DO: CHANGE THIS TO LIKE THE TEAR DUCT INSTEAD OF PUPIL?]
say "When you touch the goopy surface of the eyeball, [jf-squid-descriptor] shoots out of it, whizzing past your ear and hitting the opposite wall. The creature sticks to the wall for a moment and then, with an acidy hissing sound, burns its way through it, leaving a small hole.";
now the jf-hole is part of the jf-wall;
now the jf-rusty-nail is part of the jf-wall;
now the jf-squid-text is "hole";
otherwise if the jf-cultist-robe is not on the jf-rusty-nail :
say "[jf-squid-descriptor] shoots out of the pupil. It sails across the room and through the hole in the opposite wall.";
now the jf-squid-text is "hole";
otherwise if nothing is on the jf-rift:
if the jf-rift is not part of the jf-floor:
now the jf-rift is part of the jf-floor;
now the jf-squid-text is "rift";
say "[jf-squid-descriptor] shoots out of the eyeball. It sails across the room and hits [the printed name of the jf-cultist-robe]. The squish slides down the sleeve of the robe and falls to the floor. The tiny squid sizzles there are moment before burning its way through the floor, leaving a tiny rift behind.";
otherwise:
say "[jf-squid-descriptor] shoots out of the eyeball. It sails across the room, hits the robe, slides down a sleeve, and falls through the rift in the floor.";
now the jf-squid-text is "rift";
otherwise if the jf-clippings are on the jf-rift:
say "[jf-squid-descriptor] shoots out of the eyeball. It sails across the room, hits the robe, slides down a sleeve, and lands on the newspaper clippings, where it scatters some and further chars others before disappearing down the rift in the floor.";
now the jf-clippings are in the jf-vogon-hold;
now the jf-squid-text is "rift";
otherwise if nothing is on the jf-catflap:
if the jf-catflap is not part of the jf-wall:
say "[jf-squid-to-floor].[paragraph break][one of]A[or]Not a[at random] [one of]split-second[or]moment[at random] later, a cat that looks [one of]just[or][stopping] like Little Nifty sprints past you—[italic type]has she been here the whole time?[roman type]—and grabs the squid. She darts left and disappears through the hitherto-unnoticed catflap in the wall.";
now the jf-catflap is part of the jf-wall;
now the jf-cat is in the jf-vogon-hold;
now the jf-cat is scenery;
now the jf-squid-text is "catflap";
otherwise:
say "[jf-squid-to-floor]. [jf-split-second] later, the cat that looks just like Little Nifty sprints past you again—how did she get back in here?—and grabs the squid. She darts left and disappears through the catflap.";
now the jf-catflap is part of the jf-wall;
now the jf-squid-text is "catflap";
otherwise if the jf-satchel is not on the jf-catflap:
if the jf-lobster-bib is on the jf-catflap:
say "[jf-squid-to-floor]. [jf-split-second] later, the cat that looks just like Little Nifty sprints past you again—how did she get back in here?—and grabs the squid. She darts left and, hurtling over the lobster bib on the floor, disappears through the catflap.";
now the jf-squid-text is "catflap";
otherwise if the jf-clippings are on the jf-catflap:
say "[jf-squid-to-floor]. [jf-split-second] later, the cat that looks just like Little Nifty sprints past you again[jf-emdash]how did it get back in here?[jf-emdash]and grabs the squid. She darts left and, bounding over the newspaper clippings on the floor, disappears through the catflap.";
now the jf-squid-text is "catflap";
otherwise:
say "[jf-squid-to-floor]. [jf-split-second] later, the cat that looks just like Little Nifty sprints past you again[jf-emdash]how did it get back in here?[jf-emdash]and grabs the squid. It darts left and disappears through the catflap.";
now the jf-squid-text is "catflap";
otherwise if the jf-clippings are not on the jf-satchel-top:
increase the jf-satchel-puzzle-counter by 1;
if the jf-opening is not part of the jf-wall:
say "[jf-squid-to-floor]. [jf-split-second] later, the cat sprints past you again. It grabs the squid and darts left toward the catflap. The cat plows into the satchel, sending the tiny squid flying through the air in a graceful arc.[paragraph break]The cat leaps after it, sprouting wings and transforming into a bat (whoa: Little Nifty never did that). The bat catches the tiny squid in its mouth before disappearing through a hitherto-unnoticed opening in the ceiling.";
now the jf-opening is part of the jf-wall;
now the jf-squid-text is "sky";
otherwise:
say "[jf-squid-to-floor]. [one of][jf-split-second] later the cat that looks just like Little Nifty sprints past you ([italic type]how does she do that?[roman type]). The cat darts left and plows into the satchel, sending the tiny squid flying toward you in a graceful arc. The cat jumps after it, transforms into a bat, catches the squid in its mouth, and disappears into the opening in the ceiling.[or][jf-split-second] later the cat that looks just like Little Nifty sprints past you, darts left and [one of]thwacks[or]plows[then at random] [jf-bat-catches-squid].[stopping]";
now the jf-squid-text is "sky";
otherwise:
say "[jf-victory-message].";
now the is-the-MBF2-puzzle-solved is true;
now the jf-cat is nowhere;
now the player is yourself;
now the jf-thing is nowhere;
now the jf-other-thing is in MBF2;
now the jf-other-thing is scenery;
stop.
To say jf-bat-catches-squid:
say "[one of]into the satchel, sending the tiny squid flying toward you in a graceful arc. The cat jumps after the squid, transforming into a bat as it does. The bat catches the squid and disappears through the opening in the ceiling[or]into the satchel, sending the tiny squid flying toward you in a graceful arc. [paragraph break]The cat jumps after the squid, transforming into a bat as it does. The bat catches the squid[jf-emdash]a task presumably made easier by there being nothing else airborne at the time[jf-emdash]and disappears through the opening in the ceiling[or]into the satchel, sending the tiny squid flying toward you in a graceful arc. (You imagine anything on top of the satchel would have been sent flying also.)[paragraph break]The cat jumps after the squid, transforming into a bat as it does. The bat catches the squid and disappears through the opening in the ceiling[or]into the satchel, sending the tiny squid flying toward you in a graceful arc.[paragraph break]The cat jumps after the squid, transforming into a bat as it does. The bat catches the squid[jf-emdash]which was the only thing airborne at the time[jf-emdash]and disappears through the opening in the ceiling[or]into the satchel, sending the tiny squid flying toward you in a graceful arc. (You imagine anything on top of the satchel would have been sent flying also.)[paragraph break]The cat jumps after the squid, transforming into a bat as it does. The bat catches the squid[jf-emdash]which was the only thing airborne at the time[jf-emdash]and disappears through the opening in the ceiling[stopping]".
[[one of][or][or][or][or]You imagine anything on top of the satchel probably would have been sent flying also.]
[[jf-emdash]which, after all, is the only thing airborne at the time[jf-emdash]]
To say jf-squid-descriptor:
say "[one of]a tiny squid-like creature[or]Another squid-like creature[or]A third squid[or]Another squid[or]Another squid[or]Yet another squid[or]Another squid[or]Another of the eyeball's apparently endless supply of squid[or]Another squid[stopping]".
To say jf-split-second:
say "[one of]A[or]Not a[or]Less than a[at random] [one of]split-second[or]moment[at random]"
To say jf-squid-to-floor:
if something (called the X) is on the jf-rift, say "[one of][jf-squid-descriptor] shoots out of the eyeball. It sails across the room and hits [the printed name of the jf-cultist-robe]. The tiny squid slides down the sleeve of the robe and falls to the floor, landing on [the X][or][jf-squid-descriptor] shoots out of the eyeball, sails across the room, hits the robe, slides down the sleeve and falls to the floor, landing on [the X][stopping]".
To say jf-victory-message:
say "[jf-squid-to-floor]. A moment later the cat that looks just like Little Nifty sprints past you, darts left and plows into the satchel, sending the tiny squid and charred newspaper clippings flying. The cat jumps and becomes a bat, but with all the blackened objects in the air she mistakenly ends up with a bit from the [italic type]Backwater Sturgeon[roman type] in her mouth instead of the squid, which continues on its arc toward you.[paragraph break]The squid hits you in the eye. You scream as the scalding, hissing creature latches onto your eyeball and pulls. Your eye socket pops as it breaks. With a searing slurp your eyeball slides out and something gooey and hot squirms into your face.[paragraph break]You grab at your face but there isn’t a squid or anything else there. A few moments later the pain begins to relent and before long it has subsided considerably.[paragraph break]When you finally remove your hands, you discover the room is just as it was when you first entered[jf-emdash]except the glyphs written on the walls in blood make much more sense now" [don't end with period]
section 3 - squid description
The jf-squid is a thing. The printed name of the jf-squid is "squid". Understand "squid" as jf-squid. Understand "creature" as jf-squid. The jf-squid is nowhere.
Instead of examining the jf-squid:
if the jf-squid-counter is 1:
say "It looked like a little black squid.";
otherwise:
say "From your brief glimpses, they look like little black squid that wriggle their tentacles as they sail through the air."
Before doing anything other than examining with the jf-squid:
if the jf-squid-counter is 1:
say "The squid disappeared [jf-last-squid-whereabouts].";
stop;
otherwise:
say "There's no squid here. The last one disappeared[jf-last-squid-whereabouts].";
stop.
To say jf-last-squid-whereabouts:
if jf-squid-text is "hole":
say " through the hole in the wall";
otherwise if jf-squid-text is "rift":
say " down the rift in the floor";
otherwise if the jf-squid-text is "":
say " with the cat through the catflap";
otherwise if the jf-squid-text is "sky":
say " into the ceiling with that amazing jumping cat";
otherwise: [SHOULDN'T HAPPEN]
say " and seems long gone"
CHAPTER 7 - RUSTY NAIL AND HOLE AND ROBE
[This mimics the part of the babelfish puzzle in which the fish sails through a hole in the wall, which must be covered by the dressing gown that the player is wearing. My version is basically the same, except the dressing gown is a cultist robe and the hook is a rusty nail.]
section 1 - robe
The jf-cultist-robe is a wearable thing. The printed name of the jf-cultist-robe is "heavy garment". Understand "robe" and "cultist robe" and "black robe" and "long robe" and "cultist" and "gown" and "dressing gown" as jf-cultist-robe. Understand "garment" as jf-cultist-robe. The jf-cultist-robe is in the jf-satchel.
The jf-is-robe-examined is a truth state that varies. The jf-is-robe-examined is false.
Instead of examining jf-cultist-robe:
if the jf-cultist-robe is in the jf-satchel:
say "To examine the garment, you pull it out of the satchel. As you do, [jf-garment-to-robe-transition]";
try jf-removing-the-robe;
otherwise if the jf-cultist-robe is not on the jf-rusty-nail:
say "[jf-robe-description]";
otherwise:
say "The robe is hanging from the rusty nail, where it covers the hole in the wall."
To say jf-robe-description:
say "[one of]It's a long black robe like the ones the men wore when delivering the peaches to Aunt Mavis. Back then the robes reminded you of the Grim Reaper. Of course, now you associate it more with the robe the killer in [italic type]Scream[roman type] wore. (You make a [jf-mental-note] to stop by Blockbuster and rent [italic type]Scream 2[roman type].)[jf-sleeve-examined][or]It's a robe like the killer wore and [italic type]Scream[roman type] and [one of]presumably[or](you can only assume)[then at random] [italic type]Scream 2[roman type].[jf-sleeve-examined][stopping]";
now the printed name of the jf-cultist-robe is "[jf-alt-robe-adjective] robe".
To say jf-alt-robe-adjective:
say "[one of]black grocery-delivery[or]long grocery-delivery[or]long black[then at random]".
To say jf-sleeve-examined:
if jf-is-robe-label-examined is false:
say "[line break]You [one of]notice[or]again notice[stopping] a label on one of its sleeves.";
otherwise:
say "[line break]".
Before taking the jf-cultist-robe:
if the jf-cultist-robe is in the jf-satchel:
say "You pull the garment out of the satchel. [jf-garment-to-robe-transition]";
try jf-removing-the-robe;
stop.
To say jf-garment-to-robe-transition:
say "you realize that it's a robe. You've seen robes just like this before."
Before inserting the jf-cultist-robe into the jf-satchel:
say "You can't. You aren't sure how it fit in there in the first place.";
stop.
The jf-robe-has-been-worn is a truth state that varies. The jf-robe-has-been-worn is false.
Report wearing the jf-cultist-robe:
now the jf-robe-has-been-worn is true;
say "[one of]You put on the robe. It’s much bigger than you were expecting, like it was made for someone much taller and larger than you are.[or]You put the enormous robe on again.[stopping][jf-mental-note-about-robe-size]";
stop.
To say jf-mental-note-about-robe-size:
if the jf-robe-has-been-worn is true and the jf-is-robe-label-examined is true:
say "[one of][line break][roman type]This robe is supposed to be [italic type]medium[roman type]? You make a [jf-mental-note] to contact the Dunwich Fibernetics Corporation when all this is over and complain to them about their robe sizing.[or]You are still annoyed about how this robe is clearly too big to be a size medium.[stopping]".
section 2 - removing robe from satchel
jf-removing-the-robe is an action applying to nothing.
Carry out jf-removing-the-robe:
say "Also, now that the robe is out of the satchel, you can see that there are still a small cloth and some papers inside it.";
now the player holds the jf-cultist-robe;
now the jf-clippings are in the jf-satchel;
now the jf-lobster-bib is in the jf-satchel;
now the printed name of the jf-cultist-robe is "[jf-robe-adjective] robe".
To say jf-robe-adjective:
say "[one of]black[or]long black[then at random]".
section 3 - label on robe
The jf-robe-label is part of the jf-cultist-robe. The jf-robe-tag is scenery. Understand "label" as jf-robe-label. The printed name of the jf-robe-label is "label".
The jf-is-robe-label-examined is a truth state that varies. The jf-is-robe-label-examined is false.
Instead of examining jf-robe-label:
now the jf-is-robe-label-examined is true;
say "The label on the robe's sleeve reads:[paragraph break][fixed letter spacing] MEDIUM (WOMEN'S)[line break] 90% ENCEPHALOPOD[line break] 10% VELOUR[paragraph break] Another fine product of the[line break]Dunwich Fibernetics Corporation[line break] 'Your cult deserves comfort'[line break][jf-mental-note-about-robe-size]".
The jf-robe-sleeve is part of the jf-cultist-robe. The jf-robe-sleeve is scenery. Understand "sleeve" or "sleeves" as jf-robe-sleeve. The printed name of the jf-robe-sleeve is "sleeve".
Instead of examining jf-robe-sleeve:
try examining the jf-robe-label.
section 4 - wall and wallpaper
The jf-wall is backdrop in the jf-rooms. The printed name of the jf-wall is "wall". Understand "wall" as jf-wall. Understand "walls" as jf-wall.
Carry out examining jf-wall when the player is in jf-rooms:
if the player is in MBF2:
try examining jf-glyphs;
stop;
otherwise if the player is in the jf-vogon-hold:
try examining jf-wallpaper;
stop.
section 5 - hole in the wall
The jf-hole is a container. The jf-hole is a thing. The jf-hole is nowhere. The jf-hole is scenery. The printed name of the jf-hole is "small hole in the wall". Understand "hole" as jf-hole.
Before searching jf-hole:
if the location is not the jf-vogon-hold:
say "There isn't a hole here.";
otherwise if the jf-cultist-robe is on the jf-rusty-nail:
say "The hole is covered by the robe.";
otherwise:
say "It's too dark for you to see anything."; [could be better, but need to wrap this up]
stop.
Before inserting anything into jf-hole:
if the location is not the jf-vogon-hold:
say "There's no hole in the wall.";
stop;
if the jf-cultist-robe is on the jf-rusty-nail:
say "The hole is covered by the robe.";
stop.
Instead of examining jf-hole:
if the jf-cultist-robe is on the jf-rusty-nail:
say "The hole is covered by the robe.";
otherwise:
say "It’s a small, sort-of-squidly-shaped hole, no more than an inch wide. Two feet or so above the hole is a [one of]hitherto unnoticed [or]recently-noticed [or][stopping]rusty nail.".
[FORMERLY: [paragraph break][one of]When you look into the hole, you see a room about the same size as this one that also has chirpy yellow wallpaper. You can also see the back of a little girl, who appears to bent over like she is peering into something in the opposite wall.[or]When you look into the hole again, you see the other room with chirpy yellow wallpaper. The girl is still looking into something in the room's opposite wall.[stopping]]
section 6 - putting things into hole
Instead of inserting jf-clippings into jf-hole:
say "You stuff one of the charred clippings into the hole until it falls through the other side of the wall and out of view."
Instead of inserting jf-thing into jf-hole:
say "Even though you don't know what the thing is, you know it isn't going to fit into a hole that small."
Instead of inserting jf-thing into jf-rift:
say "Even though you don't know what the thing is, you know it isn't something you can cram into the tiny rift in the floor."
section 7 - rusty nail (and putting things on it)
The jf-rusty-nail is a thing. The jf-rusty-nail is nowhere. The jf-rusty-nail is scenery. The jf-rusty-nail is a supporter. The printed name of the jf-rusty-nail is "rusty nail". Understand "hook" as jf-rusty-nail. Understand "nail" as jf-rusty-nail. Understand "rusty nail" as jf-rusty-nail. Understand "rusty" as jf-rusty-nail.
Carry out examining jf-rusty-nail:
say "[one of]Aunt Mavis had a memo board on the wall of her cold storage room that listed all the chores you had to do down here before bedtime. Count the peaches; arrange them as a giant star on the floor; recite such-and-such words this many times. So many you'd be down here for an hour or two, and she would never let you start them until after it was dark.[paragraph break]This old nail might have been once used to hang something similar[or]It's just an old nail. Maybe it was put here to hang something from[stopping]";
if something (called the X) is on the jf-rusty-nail:
say ". Hanging from it now is [the X].";
otherwise:
say ".";
stop.
Before taking or pulling jf-rusty-nail (this is the jf-nail-pulling rule):
say "Watching the movie [italic type]Lockjaw[roman type] as a kid at Aunt Mavis's has left you constitutionally unable to grab or pull at anything rusty.";
stop.
section 8 - hanging things from rusty nail
jf-Hanging it on is an action applying to two things. Understand "hang [something] on [something]" as jf-hanging it on when the player is in the jf-rooms. Understand "hang [something] from [something]" as jf-hanging it on when the player is in the jf-rooms.
Instead of jf-hanging the noun on the jf-rusty-nail:
try putting the noun on the jf-rusty-nail instead.
Report putting the jf-lobster-bib on the jf-rusty-nail:
say "You hang the lobster bib from the rusty nail, but it's not quite long enough to block the hole in the wall.";
stop.
The jf-robe-on-nail-first-time is a truth state that varies. The jf-robe-on-nail-first-time is true.
Report putting the jf-cultist-robe on the jf-rusty-nail:
if the jf-robe-on-nail-first-time is true:
say "As you hang the robe on the rusty nail, you hear of the voices of two men through the hole.[line break]'—the Sigil really powerful enough?'[line break]'For a Vaadigne? The tome says it is.'[line break]'But the tome also says to draw the Sigil with the sacred pigments, not [italic type]Crayola[roman type].'";
now the jf-robe-on-nail-first-time is false;
otherwise:
say "You hang the [the printed name of the jf-cultist-robe] from the nail [one of]again[or]once more[then at random], covering the hole in the wall.";
stop.
Instead of putting jf-satchel on jf-rusty-nail:
say "That's the sort of thing one might be able to do with a satchel that has a handle or strap, but this one doesn't."
Instead of putting jf-thing on jf-rusty-nail:
say "This isn't the sort of thing you can hang on a nail."
Instead of putting jf-clippings on jf-rusty-nail:
say "There's not any way of doing that."
section 9 - using cover with hole
jf-Covering it with is an action applying to two things. Understand "cover [something] with [something]" as jf-covering it with when the player is in the jf-rooms. Understand "block [something] with [something]" as jf-covering it with when the player is in the jf-rooms.
Instead of jf-covering jf-hole with something:
if jf-rusty-nail is part of the jf-wall:
try putting the second noun on the jf-rusty-nail instead;
stop;
otherwise:
say "There's no way of doing that.";
stop.
Before putting something on the jf-rusty-nail:
if something (called the X) is on the jf-rusty-nail and the location is the jf-vogon-hold:
say "You can't hang anything else from the nail as long as [the X] is on there.";
stop.
section 10 - trying to take hole or rift or opening
Before taking the jf-hole:
say "You imagine Aunt Mavis shaking her head and saying, 'That isn't how holes work and you know it, Naomi.'";
stop.
Before taking the jf-rift:
say "You imagine Aunt Mavis shaking her head and saying, 'That isn't how rifts work and you know it, Naomi.'";
stop
Before taking the jf-opening:
say "[jf-mavis-message]";
stop.
[
TO DO: IMPLEMENT THIS
> TAKE HOLE / TAKE OPENING / TAKE RIFT
You imagine Aunt Mavis looking sternly at you and saying, “That isn’t how holes work and you know it.”
]
CHAPTER 8 - RIFT AND FLOOR
[In HHGG, this part of the puzzle involves the babelfish disappearing down a drain in the floor, until the player covers it with a towel.]
section 1 - rift and floor
The jf-floor is a thing in the jf-vogon-hold. The jf-floor is scenery. The jf=floor is a supporter. The printed name of the jf-floor is "floor". Understand "floor" as jf-floor.
The jf-rift is a thing. The jf-rift is nowhere. The jf-rift is a supporter. Understand "rift" as jf-rift. The printed name of the jf-rift is "rift".
Instead of examining the jf-rift:
if something (called the X) is on the jf-rift:
say "You can't see the rift now, as it is covered by [the X].";
otherwise:
say "[one of]Admittedly, the 'rift' is really more like a 'hole' but calling it that would invite confusion. It’s maybe an inch or so wide.[paragraph break]While you don’t see a squid or anything else in the rift, you do hear a faint hissing sound, like however far down the squid is, it is still boring itself deeper.[or]It's maybe an inch or so wide.[stopping]".
section 2 - lobster bib
The jf-lobster-bib is a wearable thing. The jf-lobster-bib is nowhere. [The printed name of the jf-lobster-bib is "bib".] The printed name of the jf-lobster-bib is "small cloth". Understand "cloth" as jf-lobster-bib. [The printed name of the jf-lobster-bib is "Jimmy 'The Claw' lobster bib".] Understand "lobster bib" as jf-lobster-bib. Understand "bib" as jf-lobster-bib.
Report wearing the jf-lobster-bib:
say "[one of]You put on the bib. Aunt Mavis took you to The Codfather three or four times a week. You ate so much calamari that summer.[or]You put the bib on again.[stopping]";
stop.
Instead of examining the jf-lobster-bib:
if the jf-lobster-bib is in the jf-satchel:
move the jf-lobster-bib to the player;
say "You take it out of the satchel so you can get a better look. [jf-initial-bib-description].";
otherwise:
say "It's a lobster bib from The Codfather restaurant, with its crustacean mafioso mascot Jimmy The Claw embroidered on the front[jf-bib-nudge].";
now the printed name of the jf-lobster-bib is "lobster bib".
Report taking the jf-lobster-bib:
if the jf-lobster-bib is in the jf-satchel:
say "[jf-initial-bib-description]";
stop.
To say jf-initial-bib-description:
say "It's a bib[jf-emdash]a lobster bib. There's a cartoon lobster wearing sunglasses and a fedora embroidered on the front. You'd know that lobster anywhere: it’s Jimmy The Claw, the 'Lobster Mobster' mascot of the mafia-themed seafood restaurant in downtown Backwater[roman type][jf-bib-nudge]";
now the printed name of the jf-lobster-bib is "lobster bib".
Rule for printing the name of the jf-lobster-bib while taking inventory:
say "[one of]Jimmy The Claw lobster bib[or]lobster bib from The Codfather restaurant[then at random]".
Before inserting the jf-lobster-bib into the jf-satchel:
say "There's no reason to do that.";
stop.
To say jf-bib-nudge:
if the jf-is-bib-tag-examined is false:
say ".[paragraph break]You [one of]also notice[or]see once again that there's[stopping] a small tag attached to the bib";
section 3 - tag on the bib
The jf-lobster-bib-tag is part of the jf-lobster-bib. The jf-lobster-bib-tag is scenery. Understand "tag" as jf-lobster-bib-tag. The printed name of the jf-lobster-bib-tag is "tag".
The jf-is-bib-tag-examined is a truth state that varies. The jf-is-bib-tag-examined is false.
Instead of examining jf-lobster-bib-tag:
say "The tag on the lobster bib reads:[paragraph break][fixed letter spacing] 90% ENCEPHALOPOD[line break] 10% COTTON[paragraph break] Another fine product of the[line break]Dunwich Fibernetics Corporation[line break] 'Premium cloth goods for [line break] restaurants and ritualists'[paragraph break]";
now the jf-is-bib-tag-examined is true.
section 4 - lobster logo on the bib
The jf-lobster-logo is part of the jf-lobster-bib. The jf-lobster-logo is scenery. Understand "lobster" as jf-lobster-logo. Understand "Jimmy" as jf-lobster-logo. Understand "claw" as jf-lobster-logo. Understand "Jimmy the claw" as jf-lobster-logo. Understand "cartoon" as jf-lobster-logo.
The jf-has-the-lobster-logo-been-seen is a truth state that varies. The jf-has-the-lobster-logo-been-seen is false.
Instead of examining the jf-lobster-logo:
say "[one of]You loved Jimmy The Claw! '[italic type]Either youse eat our fishes or you'll be sleepin[apostrophe] wit[apostrophe] [apostrophe]em[roman type].'[or]Seeing Jimmy the Claw again makes you smile.[stopping]".
section 5 - covering rift
Instead of jf-covering jf-rift with something:
try putting the second noun on the jf-rift instead.
section 6 - putting things on rift
Before putting something on the jf-rift:
if anything is on the jf-rift:
say "There is already something covering the rift.";
stop.
The jf-bib-on-rift-for-first-time is a truth state that varies. The jf-bib-on-rift-for-first-time is true.
Report putting the jf-lobster-bib on the jf-rift:
if the jf-bib-on-rift-for-first-time is true:
say "As you put the bib from The Codfather on the rift, you remember how Aunt Mavis would slip into more of her native tongue whenever she had a second glass of wine. [italic type]Neemophod[roman type] she called you sometimes, or [italic type]Noomiphod[roman type], trying on different ways of mixing your name with the suffix that designates 'young girl' or 'daughter.'[line break]";
now the jf-bib-on-rift-for-first-time is false;
stop.
Instead of putting jf-thing on the jf-rift:
say "You may not know what the thing is, but you do know it isn't the sort of thing one could use to cover a rift in the floor."
Before putting something (called the X) on the jf-floor:
try putting the X on the jf-rift instead;
stop.
section 7 - rift as container
[
The jf-rift-interior is part of the jf-rift. The jf-rift-interior is a container.
]
Before searching the jf-rift:
try examining the jf-rift instead;
stop.
CHAPTER 9 - CAT, CATFLAP AND SATCHEL
[NOTE: In the HHGG puzzle, a robot rushes in and grabs the babelfish and disappears through a panel in the wall, which you have to block by putting the satchel in front of it. Here, it's a cat and catflap.]
section 1 - satchel
The jf-satchel is an opaque container. The jf-satchel is openable. The jf-satchel is closed. The printed name of the jf-satchel is "satchel". Understand "satchel" and "briefcase" as jf-satchel. The jf-satchel is in the jf-vogon-hold.
The jf-has-satchel-been-opened is a truth state that varies. The jf-has-satchel-been-opened is false.
Instead of examining the jf-satchel:
say "Aunt Mavis used to have a satchel just like this, right down to the initials monogrammed on its front. [run paragraph on]";
if jf-has-satchel-been-opened is false:
say "The satchel is closed.";
stop;
otherwise if jf-satchel is closed and the jf-satchel contains anything:
try silently opening the jf-satchel;
say "When you open it, you see [a list of things inside the jf-satchel]";
stop;
otherwise if jf-satchel contains anything:
say "Inside it you see [a list of things inside the jf-satchel].";
otherwise:
say "(You've removed everything that was inside it.)".
After printing the name of the jf-satchel: omit contents in listing.
Carry out opening jf-satchel:
now the jf-has-satchel-been-opened is true;
continue the action.
[Instead of opening the satchel for the first time:]
section 2 - initials
The jf-initials are part of the jf-satchel. The jf-initials are scenery. Understand "initials" as jf-initials. Understand "monogram" as jf-initials. The jf-initials are plural-named. The printed name of the jf-initials are "initials".
Instead of examining jf-initials:
say "The initials M. E. C. V. V. are monogrammed onto the satchel in a cursive font. Who knows what those initials mean here, but, for Aunt Mavis, they stood for Mavis Eustacia Crustacea Vaadigne Verlac.[paragraph break][italic type]Vaadigne[roman type] was the way the name was spelled in the old country, of course, even if the families who emigrated to English-speaking countries had routinely simplified it to Cragne.[paragraph break](Everyone assumed, of course, that Naomi had taken Peter's last name when they married, but she would never have done that. It was a fun coincidence when she and Peter met that they shared the same last name: a endless source for ribald jokes, especially since they looked like they could be siblings.)"
section 3 - satchel top
[NOTE: the satchel's top needs to be implemented separately because satchel is already a container]
The jf-satchel-top is part of the jf-satchel. The jf-satchel-top is a supporter. The printed name of the jf-satchel-top is "satchel's lid".
Instead of putting something on the jf-satchel:
try putting the noun on the jf-satchel-top.
Before putting the jf-thing on the jf-satchel-top:
say "You may not know what the thing is, but you do know that it isn't something that one can put on top of a satchel.";
stop.
Before putting something on the jf-satchel-top:
if the player is holding the jf-satchel:
say "You are holding the satchel. Trying to put something on top of it doesn't make any sense.";
stop.
The jf-first-time-clippings-on-satchel is a truth state that varies. The jf-first-time-clippings-on-satchel is true.
Report putting the jf-clippings on the jf-satchel-top:
if the jf-first-time-clippings-on-satchel is true:
say "As you do, you notice something hand-written in capital letters on the back of one of the clippings:[paragraph break]OUR RITUAL CIRCLE OF RYN[apostrophe]VHHD[apostrophe]R WILL STOP IT FROM COMING BACK.[paragraph break]OUR SIGILS OF JNI[apostrophe]PLD[apostrophe]NA WILL LET HER KEEP THE GIFT WITHOUT IT DESTROYING HER SOUL.[paragraph break]BUT CAN THE GIRL DO HER PART?[paragraph break]Beneath which is a drawing of what looks like a cat with wings.[paragraph break][italic type]So weird.[roman type] You make a [jf-mental-note] to alta-vista that stuff with the apostrophes when all this is over.";
now the jf-first-time-clippings-on-satchel is false;
stop;
otherwise:
say "You set the charred newspaper clippings on top of the satchel again.";
stop.
section 4 - cat
[The cat is never actually in the room at the same time as the player, but the player may still try commands about it.]
The jf-cat is a female animal. The jf-cat is nowhere. The printed name of the jf-cat is "cat". Understand "cat" as jf-cat.
Before doing anything with the jf-cat:
if examining:
say "[one of]The cat really did look just like Little Nifty, except Little Nifty did not have glowing red eyes.[paragraph break]You look all around you to make sure that it has not sneaked back into the room somehow.[or]She isn't here. You turn all the way around [one of][or]again [stopping]to [one of]confirm this[or]make sure[or]double-check[at random].[stopping]";
otherwise:
say "She isn't here. You turn all the way around to [one of]confirm this[or]make sure[or]double-check[at random].";
stop.
section 5 - catflap
The jf-catflap is a thing. The jf-catflap is nowhere. The printed name of the jf-catflap is "catflap". Understand "catflap" or "flap" or "cat flap" as jf-catflap. The jf-catflap is a supporter.
Instead of examining jf-catflap:
say "[one of]You thought it was totally weird that Aunt Mavis had a catflap leading from one basement room to another, but since this house also has one maybe they are more common than you thought. In any case, it's the same chirpy yellow as the wallpaper and just big enough for a Little-Nifty-sized cat to dash through[or]It's a chirpy yellow catflap that's just big enough for a Little-Nifty-sized cat[stopping]";
if something (called the X) is on the jf-catflap:
say ". [The X] [are] sitting in front of it.";
otherwise:
say ".".
Understand "put [something] in front of [something]" and "place [something] in front of [something]" as putting it on when the player is in jf-rooms.
Understand "put [something] beside [something]" and "place [something] beside [something]" as putting it on when the player is in jf-rooms.
Understand "put [something] besides [something]" and "place [something] besides [something]" as putting it on when the player is in jf-rooms.
Understand "put [something] by [something]" and "place [something] by [something]" as putting it on when the player is in jf-rooms.
Understand "put [something] next to [something]" and "place [something] next to [something]" as putting it on when the player is in jf-rooms.
Understand "set [something] on [something]" as putting it on when the player is in jf-rooms. [more germane for clippings, but still]
Before putting something on when the second noun is the jf-catflap:
if the location is the jf-vogon-hold and something (called the X) is on the jf-catflap:
say "[The X] [are] already in front of the catflap.";
stop.
Before jf-covering the jf-catflap with something (called the X):
try putting the X on the jf-catflap instead;
stop.
Before putting the jf-thing on the jf-catflap:
say "You may not know what the thing is, exactly, but you know it isn't the sort of thing one can use to stop a cat.";
stop.
The jf-satchel-covering-catflap-first-time is a truth state that varies. The jf-satchel-covering-catflap-first-time is true.
Report putting something (called the X) on when the second noun is the jf-catflap:
if the noun is the jf-satchel:
if the jf-satchel-covering-catflap-first-time is true:
say "As you put the satchel in front of the catflap, you can hear a woman shouting from a room above: '[italic type]Might[roman type]. I said it [italic type]might[roman type] work with five. Seven or even eight is ideal[jf-emdash]'[paragraph break]Her voice sounds so much like Aunt Mavis. Moments later she's yelling again: '[jf-emdash]your kid gets taken next summer because you were too busy watching [italic type]the fucking Rockford Files[roman type] to come complete the ritual circle.'";
now the jf-satchel-covering-catflap-first-time is false;
stop;
otherwise:
say "You put [the X] in front of the catflap once again.";
stop;
otherwise:
say "You put [the X] in front of the catflap.";
stop.
CHAPTER 10 - NEWSPAPER CLIPPINGS
[NOTE: In the HHGG puzzle, the robot running into the satchel sets the babelfish flying into the air, where it is caught by a second robot in charge of cleaning the upper half of the room. You circumvent this (and solve the puzzle) by putting junk mail on the satchel, which creates a distraction for the robot. In this puzzle, the junk mail are the newspaper clippings.]
section 1 - newspaper clippings
The jf-clippings are a thing. The jf-clippings are plural-named. The jf-clippings are nowhere. The printed name of the jf-clippings are "charred fragments of paper". Understand "paper" or "papers" as jf-clippings. Understand "fragments" or "fragment" as jf-clippings. Understand "charred fragments" as jf-clippings. Understand "clippings" or "clipping" as jf-clippings. Understand "articles" or "article" or "newspaper articles" as jf-clippings. Understand "newspapers" or "newspaper" as jf-clippings.
Instead of examining the jf-clippings:
if the jf-clippings are in the jf-satchel:
try taking the jf-clippings instead;
otherwise if the jf-first-time-clippings-on-satchel is false:
say "You aren't sure how you'd missed the handwritten bit about the 'Sigils of Jni[apostrophe]pld[apostrophe]na' and 'Circle of Ryn[apostrophe]vhhd[apostrophe]r' when you looked through the clippings before, but it just goes to show how even the best investigative journalists sometimes make mistakes.";
otherwise:
say "[one of]As best you can determine, six children disappeared from their homes over a six year period. No one was ever arrested. The police never even figured out how the children were abducted. Family members would hear screaming, but in the few moments it took to reach their rooms, the children were gone.[paragraph break]You are amazed you never knew about these kidnappings before, not just because you are an ace journalist but also because the last of the kidnappings happened the year before you stayed with Aunt Mavis.[jf-more-to-examine][or]Of course, it would have been a bigger news story if the children were found murdered or were never found at all. Instead, the children turned up a week later, unharmed, without any memory of what happened or seemingly even awareness that anything had happened.[paragraph break]When the first child was found, asleep in her basement, it was considered a miracle. With subsequent children, the relief became increasingly tempered by a conviction that something awful was done to the children even if no one could figure out what.[jf-more-to-examine][or]Both police and public sought to figure out whether the victims had anything in common. You are surprised that the [italic type]Backwater Sturgeon[roman type] would print some of the speculations as letters to the editor. Silly stuff, like that the children all ate shellfish a day or two before disappearing, or that they were all abducted from rooms with brightly-colored walls. Worse still were all the bizarre claims about the significance of stone fruit.[jf-more-to-examine][or]The police did confirm some real patterns: the abductions all happened at night in summer months; there was never more than one a year.[paragraph break]The most recent clippings indicate problems emerging among the children a decade or so after their abductions: some initial reports of 'severe behavioral issues' as adolescents and then many accounts of madness and violence, as well as at least one apparent suicide.[jf-more-to-examine][or]By this point, you’ve probably learned all you can from the clippings, as so many of the fragments are so blackened that you can barely read them at all. It is a testament to your crack journalism skills that you were able to determine so much from looking at documents that have been so significantly damaged.[paragraph break](There is no reason to EXAMINE the clippings further unless you wish remind yourself what you’ve learned.)[cycling]".
Instead of taking the jf-clippings:
if the jf-clippings are in the jf-satchel:
say "You remove them from the satchel. They are clippings from various New England newspapers, including the [italic type]Backwater Sturgeon[roman type]. Looking quickly at the more intact clippings, they seem to all concern a series of child abductions in the region some years ago.[jf-more-to-examine]";
now the player holds the jf-clippings;
now the printed name of the jf-clippings is "charred newspaper clippings";
otherwise:
say "You pick them up.";
now the player holds the jf-clippings;
stop.
To say jf-more-to-examine:
say "[line break](You can EXAMINE the clippings further to learn more.)"
Before inserting the jf-clippings into the jf-satchel:
say "There's no reason to do that.";
stop.
CHAPTER 11 - CEILING
The jf-opening is a container. The jf-opening is nowhere. The printed name of the jf-opening is "opening". Understand "opening" as jf-opening.
Before searching jf-opening:
try examining the jf-opening instead;
stop.
Before examining the jf-opening:
say "Aunt Mavis had an opening in the ceiling of her cold storage room, too. When you asked why, she said it allowed the smell of peaches to fill the house.";
stop.
Before inserting something into the jf-opening:
say "You cannot reach it, nor can you transform yourself into a bat.";
stop.
[TODO: check that this works, and that it doesn't appear in room if opening is not there.]
Before inserting anything into the jf-opening:
say "You can't reach it."
CHAPTER 12 - ADDITIONAL OBJECTS
section 6 - glyphs and wallpaper
The jf-glyphs are part of the jf-wall. Understand "glyph" and "glyphs" as jf-glyphs. Understand "blood" as jf-glyphs. Understand "bloody glyphs" as jf-glyphs. Understand "message" as jf-glyphs.
The jf-has-alderman-been-revealed is a truth state that varies. The jf-has-alderman-been-revealed is false.
Instead of examining the jf-glyphs:
if the player is in MBF2:
if the is-the-MBF2-puzzle-solved is true:
now the jf-has-alderman-been-revealed is true;
say "Later you will learn that these glyphs are part of an ancient ritual language whose rudiments it has taken decades of collective efforts by linguistic anthropologists in order to barely comprehend. Yet, fairly recently, there were as many as seven people with the ability to read the language fluently, but you are the only one left who remains alive and sane.[paragraph break]'The Griseous Alderman of the Variegated Court has a familiar,' the glyphs say, 'and that familiar is sometimes a cat and sometimes a bat and sometimes goes by the name Little Nifty.'[paragraph break]You realize as you read the message that you understand the ritual language even better than you do English, because in English you sure as hell have no idea what [italic type]griseous[roman type] means.[jf-alert-to-testers]";
otherwise:
say "[one of]As a kid you saw a movie[jf-emdash]while staying with Aunt Mavis, in fact[jf-emdash]in which a woman was trapped in a small room and knew she would die, and she cut herself so she could use her blood to write a message on the walls for whomever found her body.[paragraph break]This reminds you of that, but if what’s scrawled on the wall is a message, it's not in any sort of writing system you've ever seen.[or]For an eleven-year old, you saw some really twisted horror movies that summer you stayed with Aunt Mavis. Nevertheless, you believe the scrawls on this wall are meant to be a message, even if it doesn't look like any language you've ever seen.[stopping]";
otherwise if the player is in jf-vogon-hold:
say "[jf-no-glyphs-here]."
Instead of taking jf-glyphs:
if the player is in MBF2:
say "[jf-mavis-message]";
otherwise:
say "[jf-no-glyphs-here]."
To say jf-no-glyphs-here:
say "[one of]There aren't any glyphs. The walls are covered with chirpy yellow wallpaper, just like at Aunt Mavis's[or]The walls are covered with chirpy yellow wallpaper, without any glyphs[stopping]"
The jf-wallpaper is part of the jf-wall. The jf-wallpaper is scenery. The printed name of the jf-wallpaper is "chirpy yellow wallpaper". Understand "wallpaper" or "yellow wallpaper" or "chirpy yellow wallpaper" as jf-wallpaper.
Instead of examining the jf-wallpaper:
if the player is in MBF2:
say "These walls don't have any wallpaper. They are covered in bloody glyphs.";
otherwise:
say "[one of]Such a cheerful hue was really out of character for Aunt Mavis, as the rest of the house deployed more of a 'Mid-Century Mortuary' color scheme.[or]You spent so much time staring at wallpaper that was exactly this color when you would stay with Aunt Mavis.[stopping]";
if the jf-have-drawings-been-seen is false:
say "[line break]Trying does cause you look more closely at the walls, and when you do, you notice some drawings on them, in crayon that is the same chirpy yellow as the wallpaper.";
now the jf-have-drawings-been-seen is true;
now the jf-drawings are part of the jf-wall.
section 7 - pull the wallpaper
free-dewallpapering is an action applying to one touchable thing.
Understand "pull off [something]" and "pull away [something]" and "tear [something]" and "tear away [something]" and "peel [something]" and "peel away [something]" as free-dewallpapering when the location is the jf-vogon-hold.
Check free-dewallpapering:
if the noun is not the jf-wallpaper:
say "You don't need to pull off [the noun].";
otherwise:
try pulling the noun.
Before taking off the jf-wallpaper:
try pulling the jf-wallpaper;
stop.
Instead of pulling the jf-wallpaper:
say "Your fingernails aren’t long enough to do that. You make a [jf-mental-note] to complain your manicurist when all this is over.";
if the jf-have-drawings-been-seen is false:
say "[line break]Trying does cause you look more closely at the walls, and when you do you notice some drawings on them, in crayon that is the same chirpy yellow as the wallpaper.";
now the jf-have-drawings-been-seen is true;
now the jf-drawings are part of the jf-wall.
Instead of doing anything with the jf-wallpaper when the location is MBF2:
say "Aunt Mavis's cold storage room had wallpaper. This room just has a bunch of crazy glyphs written in blood on the walls."
section 8 - drawings on wallpaper
The jf-have-drawings-been-seen is a truth state that varies. The jf-have-drawings-been-seen is false.
The jf-drawings are a thing. The jf-drawings are nowhere. The jf-drawings are scenery.
Understand "drawings" or "drawing" as jf-drawings. Understand "crayon" as jf-drawings.
Before doing anything with the jf-drawings:
if the location is mbf2:
say "These aren't drawings. They are more like glyphs.";
stop;
otherwise if taking:
say "[jf-mavis-message]";
stop;
otherwise if examining:
say "[one of]They are all the same: five-pointed stars with what looks like an eye in the middle. Now that you notice them, there are dozens, maybe more than a hundred, all over the walls of the room.[or]All of them are the same: five point stars with an eye in the middle.[stopping]";
stop;
otherwise if touching:
say "Nothing happens.";
otherwise:
say "You don't need to do that.";
stop.
CHAPTER 13 - IMPLEMENT HINTS
Understand "hint" and "help" as thinking when the player is in the jf-rooms.
The jf-thinking-for-first-time is a truth state that varies. The jf-thinking-for-first-time is true.
Before thinking when the player is in jf-rooms:
if the jf-thinking-for-first-time is true:
say "As an award-winning investigative journalist, your intuition is so keen that you often don't want to use it, because the solutions to problems simply come to you without further effort. If you do want this sort of direct hint in this room, however, simply THINK again and your intuition will be unleashed.";
now the jf-thinking-for-first-time is false;
stop;
if the player is in MBF2:
if the is-the-MBF2-puzzle-solved is false:
say "[jf-intuitions]pick up the thing.";
otherwise:
say "[jf-intuitions]look at the glyphs and the thing again. If you have, then you've solved this room.";
otherwise: [player is in the Vogon Hold]
if the jf-squid-counter is 0:
say "[jf-intuitions]touch the eyeball.";
otherwise if the jf-cultist-robe is not on the jf-rusty-nail:
say "[jf-intuitions]put the robe on the nail above the hole in the wall. Then touch the eyeball again.";
otherwise if the jf-lobster-bib is not on the jf-rift:
say "[jf-intuitions]put the bib on the rift.";
otherwise if the jf-satchel is not on the jf-catflap:
say "[jf-intuitions]put the satchel in front of the catflap.";
otherwise if the jf-clippings are not on the jf-satchel-top:
say "[jf-intuitions]put the clippings on top of the satchel.";
otherwise:
say "touch the eyeball.";
stop.
To say jf-intuitions:
say "Your ace journalist intuitions suggest that you might want to ".
CHAPTER 14 - LISTEN
Instead of listening when the location is MBF2:
say "[one of]You think for a moment that you hear the ocean, but then decide it's probably just you reacting to the strong shellfishy smell.[or]It's quiet.[stopping]"
Instead of listening when the location is the jf-vogon-hold:
say "[one of][jf-cultist-quotes][or][jf-cultist-quotes][or][jf-cultist-quotes][or][jf-cultist-quotes][or][jf-cultist-quotes][or][jf-cultist-quotes][or][jf-cultist-chanting][stopping]".
To say jf-cultist-quotes:
say "You can hear murmuring voices, mostly indistinct. You [one of]concentrate[or]focus[at random], and think maybe you [one of]catch[or]make out[at random] [one of]one man[or]someone[or]a woman[or]somebody[at random] saying '[one of][jf-emdash]wanted to use apricots, but she says that what it’s particularly attracted to is[jf-emdash][or][jf-emdash][italic type]apparent[roman type] suicide? He drowned himself in the lobster tank at the Codfather[jf-emdash][or][jf-emdash]nically isn't a sacrifice if all this actually [italic type]works[jf-emdash][or][jf-emdash]how she talked the girl's mother into going along with[jf-emdash][or][jf-emdash]knows a guy who read the autopsy report and he said it was like his brain was getting strangled by tentac[jf-emdash][or][jf-emdash]haven’t been able to eat calamari since I found out that’s what it was[jf-emdash][then at random]'[line break]".
To say jf-cultist-chanting:
say "[one of]It's multiple people talking, saying the same thing, with a steady rhythm.[or]The more you listen the more you think the people you hear are chanting.[or]The chanting continues. You cannot make out any words, and it feels like what they were saying would require many more consonants and apostrophes to transcribe than English.[or]The chanting continues, in a language you do not know.[or]The chanting continues, louder than before.[or]The chanting continues, louder than when it started.[stopping]".
CHAPTER 15 - MISCELLENY
section 1 - emdash
To say jf-emdash:
say "[unicode 8212]"
section 2 - directional movement
Before going in MBF2:
if going north or going east or going west:
say "You walk into a wall. (The way out is south.)";
stop;
otherwise:
if the is-the-mbf2-puzzle-solved is true:
if the jf-has-other-thing-been-examined is false:
say "As you turn to leave, you think again about the thing Aunt Mavis gave you. You finally understand what it is.";
try examining the jf-other-thing;
stop. [NOTE: this means the person will have to go south again--could have another ending line]
Before going in jf-vogon-hold:
if going south:
say "A giant eyeball is now there instead of the door.";
otherwise:
say "You can't go that way. The door was south, but now there is a giant eyeball there instead.";
if jf-has-peach-clue-been-given is false:
say "[line break][jf-alt-peach-clue]";
now the jf-has-peach-clue-been-given is true;
otherwise:
say "[one of][line break](You recall that the door changed into an eyeball when you picked up the thing on the floor.)[or][line break](You recall that the door changed into an eyeball when you picked up the thing on the floor, so perhaps if you DROP it...)[stopping]";
stop.
section 4 - peaches
[You haven’t had a peach since—well, since whenever it was decided that you’d no longer spend August with Aunt Mavis. But that’s irrelevant to matters here, as there are no peaches.]
The jf-peach is backdrop in the jf-rooms. The printed name of the jf-peach is "peach". Understand "peach" and "peaches" as jf-peach.
The jf-has-peach-clue-been-given is a truth state that varies. The jf-has-peach-clue-been-given is false.
Before doing anything with jf-peach:
say "There are no peaches here. Which is just as well, as you haven't touched a peach[jf-emdash]nor a nectarine, nor even a pluot[jf-emdash]since you returned home that summer.[line break][jf-peach-clue]";
stop.
section 5 - block all sorts of things having to do with the wall
Before doing anything with the jf-hole:
if the location is not the jf-vogon-hold:
say "The walls do not have any holes.";
stop.
Before doing anything with the jf-rift:
if the location is not the jf-vogon-hold:
say "The floor doesn't have any rift in it.";
stop.
Before doing anything with the jf-opening:
if the location is not the jf-vogon-hold:
say "There isn't any opening in the ceiling. [imagining-it]";
stop.
Before doing anything with the jf-rusty-nail:
if the location is not the jf-vogon-hold:
say "There is no hook on the wall. [imagining-it]";
stop.
Before doing anything with the jf-catflap:
if the location is not the jf-vogon-hold:
say "There is no catflap. [imagining-it]";
stop.
Before doing anything when the location is MBF2:
if the jf-catflap is the second noun:
say "There is no catflap. [imagining-it]";
stop;
if the jf-hole is the second noun:
say "There is no hole in the wall. [imagining-it]";
stop;
if the jf-rusty-nail is the second noun:
say "There is no hook in the wall. [imagining-it]";
stop.
Before doing anything with anything on the jf-rusty-nail:
if the location is not the jf-vogon-hold:
say "There isn't [a noun] here. [imagining-it]";
stop.
Before doing anything with anything on the jf-catflap:
if the location is not the jf-vogon-hold:
say "There isn't [a noun] here. [imagining-it]";
stop.
To say imagining-it:
say "[one of][italic type]Was it all in your head?[roman type][or][italic type]Were you hallucinating?[roman type][or][italic type]Could you have dreamed it?[roman type][or][italic type]Was it just your imagination?[roman type][at random][line break]"
section 6 - smell (peach clue)
Instead of smelling when the location is MBF2:
say "This might look like Aunt Mavis's cold storage room, but it doesn't smell like it. It smells like[jf-emdash]raw oysters, maybe? Some sort of shellfish."
Instead of smelling when the location is jf-vogon-hold:
say "[one of]The room smells powerfully of peaches, even though there are none here.[or]I guess you don't know if what you are smelling are peaches [italic type]per se[roman type]. It could be nectarines. There are none of either here.[then at random][jf-peach-clue]"
To say jf-peach-clue:
if the jf-has-peach-clue-been-given is false:
say "[line break][jf-peach-clue-text].'";
now the jf-has-peach-clue-been-given is true.
To say jf-alt-peach-clue: [KLUDGY: because of text formatting issue]
if the jf-has-peach-clue-been-given is false:
say "It's remarkable how strongly the room smells of peaches, even though there are none here. [jf-peach-clue-text].'";
now the jf-has-peach-clue-been-given is false.
To say jf-peach-clue-text:
say "Aunt Mavis's cold storage room had loads of peaches. She had men deliver new ones at least twice a week and take the rotten ones out. [paragraph break]The weird thing was that [italic type]you were the only one that ever ate any[roman type]: two a day, at Aunt Mavis's insistence. 'A growing girl needs her peaches,' she'd say. And whenever you asked why she bought so many peaches, she'd just airily reply, 'Oh, a lady can never have enough peaches"
[
Instead of listening when the location is jf-vogon-hold:
say "[one of]Very faintly, you swear you can hear men's voices. They even sound like voices you recognize[jf-emdash]from long ago[jf-emdash]and now you are struggling to remember where.[or]You remember where you've heard that voice. It's the guy from [italic type]The Rockford Files[roman type]. Aunt Mavis loved that show. She got so angry if you ever distracted her when she was watching it.[or][one of]You can faintly hear the guy from [italic type]The Rockford Files[roman type], as well as the sound of squealing tires and police sirens.[or]You can faintly hear a woman talking about squeezing Charmin bathroom tissue.[or]You can faintly hear the someone singing the words 'plop plop fizz fizz.'[or]You can faintly here the guy from [italic type]The Rockford Files[roman type] arguing with a crotchety old man.[then at random][stopping]"
]
section 8 - squid-shaped
To say jf-squid-shaped:
say "[one of]squid-shaped[or]squiddish[or]squiddly[or]squiddular[or]squidastic[then at random]"
section 9 - xyzzy
jf-xyzzying is an action applying to nothing. Understand "xyzzy" as jf-xyzzying when the location is in the jf-rooms.
Carry out jf-xyzzying:
say "A hollow voice says, '1998 was the [italic type]annus mirabilis[roman type] of parser-based interactive fiction. In addition to [italic type]Anchorhead[roman type], there was [italic type]Spider and Web[roman type][jf-emdash]which offers perhaps the most inspired puzzle in the history of the medium[jf-emdash]and [italic type]Photopia[roman type], which pioneered the idea of games with no puzzles at all? In light of that, one might wonder whether someone should have done a subtribute to one of those games rather than a shout-out to an Infocom game that is not celebrating any especial annivers[jf-emdash]'[paragraph break]'[italic type]Give it a rest, drongo![roman type]' shouts a woman with an Australian accent. 'We're not here for your lecture. We're here because we've heard one of these rooms has [italic type]lion sex![roman type][line break]";
stop.
section 10 - mavis messages
To say jf-mavis-message:
say "[one of]If Aunt Mavis were here, she'd scowl at you for even suggesting you might be able to do that.[or]You can imagine Aunt Mavis looking at your sternly and saying, 'Naomi, you know that isn't something you can do.'[then at random]"
section 11 - commentary
The commentary of MBF2 is "The author is grateful to Michael Hilborn, Buster Hudson, Rebecca C. N. McDonald, Marius Müller, Erica Newman, Hanon Ondricek, Jenni Polodna, Andrew Schultz, Lucian Smith, Mike Spivey, and Matt Weiner for testing, as well as of course to Ryan Veeder and Jenni Polodna for their invitation, inspiration, and organization."
section 12 - mental note
To say jf-mental-note:
say "[one of]mental note-to-Naomi[or]note-to-Naomi[stopping]".
section 13 - various verbs
Before climbing anything when the player is in the jf-rooms:
say "Your ace journalist intuition tells you that you won't need to climb anything in order to surmount your current predicament.";
stop.
Before rubbing something:
try touching the noun instead.
Before jumping:
if the jf-opening is part of the jf-wall:
say "You aren't anywhere close to reaching the opening. But your ace journalist intuition tells you that you don't need to worry about that so much anyway[jf-emdash]better to focus on trying to keep the cat from catching the squid in the first place.";
otherwise:
say "Aunt Mavis would be proud of your calisthenics. 'Vaadigne women must be strong,' she would say.";
stop.
section 14 - test command
Test game with "x glyphs / x thing / get thing / x wallpaper / x drawings / x eyeball / touch eyeball / x hole / x nail / x satchel / x initials / get satchel / open satchel / get garment / x robe / x robe / x label / put robe on nail / touch eyeball / get bib / x bib / x lobster / x tag / put bib on rift / touch eyeball / get papers / x papers / x papers / x papers / x papers / put satchel in front of catflap / touch eyeball / put clippings on satchel / touch eyeball / x glyphs / x thing / s".
[
Test notsofar with "x glyphs / x thing / get thing / x wallpaper / x drawings / touch eyeball / x hole / x satchel / get satchel / open satchel / get garment / get cloth / get clippings".
Test halfway with "x glyphs / x thing / get thing / x wallpaper / x drawings / touch eyeball / x hole / x nail / x satchel / x initials / get satchel / open satchel / get garment / x robe / x robe / x label / put robe on nail / touch eyeball / get bib / x bib / x lobster / x tag / put bib on rift / touch eyeball".
Test victory with "x glyphs / x thing / get thing / x wallpaper / x drawings / touch eyeball / x hole / x nail / x satchel / x initials / get satchel / open satchel / get garment / x robe / x robe / x label / put robe on nail / touch eyeball / get bib / x bib / x lobster / x tag / put bib on rift / touch eyeball / get papers / x papers / x papers / x papers / x papers / put satchel in front of catflap / touch eyeball / put clippings on satchel / touch eyeball".
Test bat with "x glyphs / x thing / get thing / x wallpaper / x drawings / touch eyeball / x hole / x nail / x satchel / x initials / get satchel / open satchel / get garment / x robe / x robe / x label / put robe on nail / touch eyeball / get bib / x bib / x lobster / x tag / put bib on rift / touch eyeball / get papers / x papers / x papers / x papers / x papers / put satchel in front of catflap / touch eyeball / touch eyeball / touch eyeball / touch eyeball / touch eyeball".
Test convoluted with "x glyphs / x walls / x thing / get thing / x wallpaper / x drawings / x eyeball / touch eyeball / x hole / x nail / x satchel / x initials / get satchel / open satchel / get garment / x robe / x robe / x label / put robe on nail / touch eyeball / get bib / x bib / x lobster / x tag / put bib on rift / touch eyeball / get papers / x papers / x papers / x papers / x papers / put satchel in front of catflap / touch eyeball / put clippings on satchel / touch eyeball / x glyphs / x thing / s".
Test listen with "get thing / listen / listen / listen / listen / listen / listen / listen / listen / listen / listen / listen".
]