Cragne Manor room MBF6: Laboratory (Michael Gentry)

This file is part of the Cragne Manor source code collection. Posted with the author's permission. All rights reserved.

"MBF6" by Michael Gentry
Include Cragne Suite by Ryan Veeder.
MBF is a region.
MBF6 is a room in MBF. MBF6 is west from MBF5.
Section - placeholders
[These lines place the player in MBF5 and add a placeholder for the room's "input object" for testing and compiling purposes. They should be deleted when the room is integrated into the full game.]
The player is in MBF5.
The player carries the shammack-dagger. Understand "dagger" as the shammack-dagger.
[I'm assuming that Scott has supplied his own description, synonyms and special behavior for the dagger.]
Part - New Rules
Chapter - Touchability
[Simplified version of a routine I used in Anchorhead to handle insubstantial objects like vapors, sounds, lights, etc.]
A thing can be msg-insubstantial. A thing is usually not msg-insubstantial.
Instead of doing something when the location is MBF6 (this is the msg-touching rule):
    if the action requires a touchable noun and the noun is msg-insubstantial:
        follow the msg-touchy-feely rules for the noun;
        if the rule failed, stop;
    otherwise if the action requires a touchable second noun and the second noun is msg-insubstantial:
        follow the msg-touchy-feely rules for the second noun;
        if the rule failed, stop;
    continue the action.
The msg-touching rule is listed first in the instead rules. The msg-touching rule does nothing if the location is not MBF6.
The msg-touchy-feely rules is an object-based rulebook. The msg-touchy-feely rules have outcomes can touch this (success) and can't touch this (failure - the default). [I know, that's awful. Sorry.]
The first msg-touchy-feely rule:
    if the current action is smelling something, can touch this;
    if the current action is listening to something, can touch this;
    make no decision.
Chapter - Responses
Instead of tasting something when the location is MBF6:
    say "Putting your tongue on strange objects is not an idea that appeals."
Check attacking something when the location is MBF6 (this is the msg-custom-block-attacking rule):
    if the noun is yourself:
        say "No need for that, surely.";
        say "While you're not one to rule out violence entirely, attacking [the noun] doesn't strike you as immediately productive.";
After smelling when the location is MBF6:
    say "The room, and most everything in it, reeks of clinical antiseptic and rotten fruit.";
    rule succeeds.
After listening to MBF6:
    say "A high-pitched, tinnitic ringing hangs in the air, just loud enough to set your teeth on edge."
After listening to something when the location is MBF6:
    say "You hear nothing unexpected, aside from that annoying ringing sound."
Instead of saying sorry when the location is MBF6:
    if msg-author is in the location:
        say "The author scoffs. 'You have nothing to apologize for. Nothing.'";
        say "You feel vaguely guilty, but there is no one to apologize to."
Instead of saying yes or saying no when the location is MBF6:
    if msg-author is in the location:
        if a random chance of 1 in 2 succeeds:
            say "The author [one of]nods[or]shakes his head[purely at random]. 'Indeed.'";
            say "The author raises an eyebrow. 'Are you sure?'";
        say "No one asked you."
Chapter - New Actions
[The player doesn't *need* to use this syntax -- she just has to be carrying a weapon, and ATTACK AUTHOR will assume that the weapon is used. Still, if the player takes the trouble to type ATTACK AUTHOR WITH GARDEN WEASEL, it seems churlish to deny her just because the grammar is not supported.]
Msg-assaulting it with is an action applying to one touchable thing and one carried thing.
Understand "attack [something] with [something preferably held]" as msg-assaulting it with when the location is MBF6.
Check msg-assaulting with (this is the msg-can't-assault-without-viable-weapon rule):
    if the second noun is not the shammack-dagger:
        say "[The second noun] [do]n't seem like a particularly deadly weapon.";
Carry out msg-assaulting it with:
    try attacking the noun.
Chapter - New Kinds
[This looks like a conversation system but it really isn't. It's just a way to help make the author's speech more adaptive, by tracking what things he's said already.]
A msg-quip is a kind of thing. A msg-quip can be msg-spoken. A msg-quip is usually not msg-spoken. A msg-quip has some text called the msg-utterance.
Msg-prior-quip is a msg-quip that varies.
To msg-utter (item - a msg-quip):
    if the item is not msg-quip-pause:
        say "[msg-utterance of the item][paragraph break]";
    now the item is msg-spoken;
    now msg-prior-quip is the item.
Chapter - Useful Phrases
To say msg-ellipsis: say "[unicode 160].[no line break][unicode 160].[no line break][unicode 160].[no line break]".
To msg-press-a-key:
    say "[bracket]press any key[close bracket]";
    wait for any key;
    clear the screen;
Part - The Laboratory
The printed name of MBF6 is "Laboratory (Michael Gentry)".
Before going to MBF6 when MBF6 is unvisited:
    say "Your ears pop and you stumble as you step across the threshold, reeling in a momentary gravitational slippage."
The description of MBF6 is "Hard, white light reflected from steel walls pricks painfully at your eyes. Through the glare you can make out the implements of some sort of laboratory, squirming sculptures of metal and glass dripping curdled fluids and spurting foul-smelling puffs of steam. [if the room east from MBF6 is MBF5]A way out lies east, but otherwise there[otherwise]There[end if] seem to be no other exits from this place."
Instead of going outside in MBF6:
    try going east.
Instead of going nowhere in MBF6:
    say "There are no exits from this place[if the room east from MBF6 is MBF5], except to the east[end if]."
Every turn when the location is MBF6 (this is the msg-every-turn rule):
    if the msg-tesseract is in MBF6 and a random chance of 1 in 2 succeeds:
        msg-trigger tesseract idle behavior;
    if msg-monologue is happening:
        msg-advance the monologue;
    if msg-author is in MBF6 and a random chance of 1 in 3 succeeds:
        msg-trigger author idle behavior.
Chapter - Various Scenery Objects
Section - lab equipment
The msg-equipment is a scenery closed unopenable transparent container, in MBF6. The printed name is "lab equipment". Understand "lab", "laboratory", "equipment", "apparatus", "implement", "implements", "squirming", "sculpture", "sculptures", "metal", "glass", "purposeless", "tangle", "of", "tangled", "tube", "tubes", "flask", "flasks", "burner", "burners", "bulb", "bulbs", "cracked", "blackened" as msg-equipment.
The description of msg-equipment is "A seemingly purposeless tangle of tubes, flasks, burners and bulbs, much of it cracked, blackened, and crusted with old residue. Liquids fizz and percolate throughout, evaporating and recondensing in an endless cycle."
The examine containers rule does nothing when the noun is the msg-equipment.
Instead of attacking the msg-equipment:
    say "The thought of all that volatile and possibly corrosive liquid spraying everywhere gives you pause."
Instead of throwing something at the msg-equipment:
    try attacking the msg-equipment.
After touching the msg-equipment:
    say "The lab equipment is hot, presumably due to all the boiling liquid being piped through it."
Instead of rubbing the msg-equipment:
    try rubbing the msg-film.
Instead of inserting something into the msg-equipment:
    say "The tubes are all sealed, and the only openings covered with crusty residue."
Instead of searching the msg-equipment:
    say "The tubes are filled with bubbling, yellow liquid."
Section - the crusty residue
The msg-residue is part of the msg-equipment. The printed name is "crusty residue". Understand "crusted", "crusty", "crust", "residue", "layer", "layers", "precipitate", "black", "gunk", "accretion", "accretions" as msg-residue.
The description of msg-residue is "Layers of precipitate have built up over god knows how many centuries, leaving thick accretions of blackened gunk over much of the lab equipment."
After smelling the msg-residue:
    say "It smells like badly burnt toast, which possibly makes it the best-smelling thing in this room."
Instead of tasting or eating the msg-residue:
    say msg-poison-warning for the msg-residue.
To say msg-poison-warning for (item - a thing):
    say "[The item] would almost certainly make you, at best, very sick."
After touching the msg-residue:
    say "Bits of it crumble and flake away at your touch."
Instead of taking or rubbing the msg-residue:
    say "Despite your efforts, the crusty residue remains firmly attached to the lab equipment."
Section - the toxic liquids
Some msg-liquids are in the msg-equipment. The printed name is "toxic liquids". Understand "fluid", "fluids", "liquid", "liquids", "curdled", "fizzing", "fizzy", "fizz", "percolating", "toxic", "angry", "yellow", "bile", "acid", "battery acid", "chemical", "chemicals" as msg-liquids.
The description of msg-liquids is "The liquid has a decidedly toxic look to it, the angry yellow of bile or battery acid."
A rule for reaching inside the msg-equipment when the noun is msg-liquids:
    say "The liquid is sealed inside the glass tubes, which is just as well[one of]; you've little doubt that even a single drop touching your skin would be lethal[or][stopping].";
    deny access.
Section - the steam
The msg-steam is msg-insubstantial scenery, in MBF6. The printed name is "foul-smelling steam". Understand "puff", "puffs", "of", "steam", "foul", "foul-smelling", "foul smelling", "acrid", "vapor", "fume", "fumes" as msg-steam.
The description of msg-steam is "The steam permeates the room, leaving an unpleasant, greasy film on every surface."
A msg-touchy-feely rule for msg-steam:
    if the current action is tasting, can touch this;
    otherwise say "The insubstantial vapor slips through your fingers."
After smelling the msg-steam:
    say "The acrid stench of it sears your sinuses."
After tasting the msg-steam:
    say "Inhaling the fumes leaves you slightly sick and light-headed, like breathing in burning plastic."
Section - the film
The msg-film is scenery, in MBF6. The printed name is "greasy film". Understand "grease", "greasy", "sticky", "noisome", "condensation", "film", "moisture", "stuff" as msg-film.
The description of msg-film is "The stuff is everywhere, coating the walls and lab equipment."
After touching the msg-film:
    say "The film is slightly sticky to the touch, and leaves your skin itchy and irritated."
Instead of tasting, eating, or drinking the msg-film:
    say msg-poison-warning for the msg-film.
Instead of taking or rubbing the msg-film:
    say "The greasy film won't come off, and your efforts only smear it around."
Section - the ringing
The msg-ringing is msg-insubstantial scenery, in MBF6. The printed name is "high-pitched ringing". Understand "high-pitched", "high", "pitched", "ringing", "sound", "noise", "annoying", "tinnitic" as msg-ringing.
Instead of listening to msg-ringing:
    try listening to MBF6.
Instead of smelling, looking under, or examining msg-ringing:
    follow the msg-touchy-feely rules for msg-ringing.
A msg-touchy-feely rule for msg-ringing:
    say "It's a sound; you can listen to it, but not much else."
Section - the light
The msg-light is msg-insubstantial scenery, in MBF6. The printed name is "glaring light". Understand "hard", "harsh", "bright", "white", "light", "glaring", "glare" as msg-light.
The description of msg-light is "The light has no definite source, but it seems to reflect from every direction, forcing you to squint in the glare."
Instead of smelling, looking under, or listening to msg-light:
    follow the msg-touchy-feely rules for msg-light.
A msg-touchy-feely rule for msg-light:
    say "It's light; you can't touch it or do anything, really, except look at it."
Section - the walls
Some msg-walls are scenery, in MBF6. The printed name is "walls". Understand "wall", "walls", "surface", "surfaces", "brushed", "stainless", "steel", "slick" as msg-walls.
The description of msg-walls is "The walls are made of brushed stainless steel, gleaming with noisome condensation."
After touching msg-walls:
    say "The walls are warm to the touch."
Instead of rubbing msg-walls:
    try rubbing msg-film.
Chapter - The Author
The msg-author is a man in MBF6. The printed name is "author". The indefinite article is "the". Understand "author", "man", "person", "hunched", "fidgeting", "stooped", "cadaverous", "old", "twitchy", "twitching", "animated" as msg-author.
The initial appearance of msg-author is "The author is here, hunched over and fidgeting intently with a roiling knot of impossible space that floats in the middle of the room."
The description of msg-author is "He is stooped and cadaverous, yet of indeterminate age. A profane energy animates him, twitching and plucking at his limbs like the palsied hand of an invisible puppeteer."
Section - the author's monologue
[The author has an initial monologue that takes 4-5 turns to run through, and I want the player to hear all of it at once. So while the monologue is happening, the player is trapped in the room. BUT, once the monologue ends, the exit reappears and the player is free to come and go as she pleases.]
Msg-quip-pause is a msg-quip.
Msg-quip1 is a msg-quip. The msg-utterance is "The author [if the msg-prior-quip is msg-quip-don't-go]smiles apologetically. 'I've been waiting for you, see,'[otherwise if a msg-quip is msg-spoken]smiles nervously. 'So glad to see you've made it here at last,'[otherwise]looks up and appears to notice you for the first time. 'Ah, you're here, finally,'[end if] he says. 'I knew you'd find your way eventually. I, uh[msg-ellipsis] I anticipated it.'"
Msg-quip2 is a msg-quip. The msg-utterance is "'[if the msg-prior-quip is msg-quip-don't-go]Sorry, sorry, I just[msg-ellipsis] [otherwise if msg-prior-quip is not msg-quip1]Where was I[msg-ellipsis] ah, yes[msg-ellipsis] [end if]I've been, uh, I've been working on[msg-ellipsis]' He gestures at the impossible space spinning slowly in front of him. 'Just a few final adjustments. Essentially done, except for[msg-ellipsis] well. But here you are, just in time.'";
Msg-quip3 is a msg-quip. The msg-utterance is "'[if the msg-prior-quip is msg-quip-don't-go]Sorry, sorry, I just[msg-ellipsis] [otherwise if msg-prior-quip is not msg-quip2]Where was I[msg-ellipsis] ah, yes[msg-ellipsis]' [end if]The author licks his bloodstained lips. 'In, uh, in there. It just needs[msg-ellipsis] you. Inside. To complete the[msg-ellipsis] yes. So if you could[msg-ellipsis]' He gestures again, somewhat more brusquely, towards the impossible space. 'Just[msg-ellipsis] I can't [italic type]make[roman type] you. I mean I could, but that would render the whole thing[msg-ellipsis] It's the interactivity, you see. I can't lead you, I can only[msg-ellipsis] [italic type]anticipate[roman type].'"
Msg-quip4 is a msg-quip. The msg-utterance is "'[if the msg-prior-quip is msg-quip-don't-go]Sorry, sorry, I just[otherwise if msg-prior-quip is not msg-quip3]Where was I[msg-ellipsis] ah, yes[otherwise]So[end if][msg-ellipsis] please, just[msg-ellipsis] I've been working on this for so long, and it, it's so close to being finished,' the author says. 'I just need[msg-ellipsis] and it has to be voluntary. You have to enter it. You have to enter the work, and you have to choose it. Here, just to show you I'm, uh[msg-ellipsis] I'll just[msg-ellipsis]'[paragraph break]You feel a moment of dizziness, and suddenly there is an exit in the east wall. Although, you're not entirely sure, but[msg-ellipsis] wasn't there always an exit in the east wall?"
Msg-speech is a list of msg-quips that varies. The msg-speech is { msg-quip-pause, msg-quip1, msg-quip2, msg-quip3, msg-quip4 }.
Msg-monologue is a scene. Msg-monologue begins when the location of the player is MBF6 and the location of msg-author is MBF6. Msg-monologue ends tragically when the location of the player is MBF6a. Msg-monologue ends violently when the msg-author is off-stage. Msg-monologue ends naturally when msg-quip4 is msg-spoken.
When msg-monologue begins:
    change the east exit of MBF6 to nothing.
To msg-advance the monologue:
    msg-utter entry 1 of msg-speech;
    remove entry 1 from msg-speech.
When msg-monologue ends:
    change the east exit of MBF6 to MBF5.
Instead of going east in MBF6 when msg-monologue is happening:
    if msg-quip-don't-go is msg-spoken:
        say "There is no exit to the east. You're not sure there was ever an exit to the east.";
        msg-utter msg-quip-don't-go.
Msg-quip-don't-go is a msg-quip. The msg-utterance is "[italic type][if msg-quip1 is msg-spoken]'NO!'[otherwise]'WAIT!'[end if][roman type] the author shouts. He dips his fingers into the impossible space, and they somehow [italic type]invert[roman type], reflecting back out and around so that his fingertips now appear to be protruding into the room from outside, monstrously enlarged and from every direction at once. With a massive clapping sound that again makes your ears pop, the doorway to the east vanishes.[paragraph break]'Or rather, uh, sorry[msg-ellipsis] [if msg-quip1 is msg-spoken]no[otherwise]wait[end if],' he stammers. '[if msg-quip1 is msg-spoken]You must[otherwise]Just[end if] hear me out. I can't keep you here indefinitely, I can't negate your, your agency, but [if msg-quip1 is msg-spoken]you will, you will by god, you will respect[otherwise]just listen, just let me explain[end if] my, my, my [italic type]authorial intent[roman type]."
Section - the author's idle behavior
To msg-trigger author idle behavior:
    if msg-monologue is happening or a random chance of 1 in 2 succeeds:
        msg-utter msg-quip-idle-behavior;
        msg-utter msg-quip-begging.
Msg-quip-idle-behavior is a msg-quip. The msg-utterance is "[one of][msg-fidget].[or][msg-fidget]. [msg-mutter] he says[if a random chance of 1 in 2 succeeds]. [msg-doubt][otherwise].[end if][or][msg-mutter] [msg-says] the author[if a random chance of 1 in 2 succeeds]. [msg-doubt][otherwise].[end if][purely at random]".
To say msg-says:
    say "[one of]mutters[or]says[or]murmurs[or]whispers[at random]".
To say msg-fidget:
    say "[if a random chance of 1 in 2 succeeds or msg-monologue is happening][one of]Distracted, the[or]Preoccupied, the[or]Absently, the[or]As though in a trance, the[at random][otherwise]The[end if] author ";
    if a random chance of 1 in 2 succeeds:
        say "[one of]dips his fingers into the impossible space[or]plunges his whole hand into the impossible space[or]nudges the impossible space with his finger[or]moves his hands across the surface of the impossible space[at random]";
        say "[if a random chance of 1 in 2 succeeds][one of]leans close[or]tilts his head[or]steps back[or]crouches down[at random] and [end if][one of]stares[or]squints[or]peers[or]frowns[or]gazes[at random] into the depths of the impossible space[if a random chance of 1 in 2 succeeds], [one of]stroking[or]scratching[or]rubbing[at random] his [one of]chin[or]ear[or]forehead[at random][end if]"
To say msg-mutter:
    say "'[one of]Just[msg-uh] need to[or]Perhaps[msg-uh] just[or]Maybe[msg-uh] just[or]Should[msg-uh] probably[at random] [one of]make one [msg-slight] adjustment[or]correct this typo[or]punch up this sentence[or]add a room connection[or]provide a better response[or]tighten up the disambiguation[or]add another synonym[or]add a scenery object[or]clue this puzzle better[at random][if a random chance of 1 in 2 succeeds] here[end if][msg-ellipsis]'";
To say msg-doubt:
    say "'But that would[msg-uh] [one of]make this puzzle redundant[or]ruin the pacing[or]make this description inconsistent[or]cut off this part of the map[or]remove any motivation to[or]contradict the timeline[or]make this scene more difficult[or]make this item redundant[or]take away the challenge[or]make it less interactive, not more[at random][msg-ellipsis]'".
To say msg-uh:
    say "[if a random chance of 1 in 3 succeeds], uh,[end if]".
To say msg-slight:
    say "[one of]more[or]minor[or]slight[or]tiny[at random]".
Msg-quip-begging is a msg-quip. The msg-utterance is "'[one of]Please,[or]Come on,[or]Would you just[msg-ellipsis][or]Can't you just[msg-ellipsis][or]Do it,[or]Hurry,[at random]' [one of]begs[or]pleads[or]urges[or]whines[or]wheedles[at random] the author. '[one of]Enter[or]Step into[or]Go inside[or]Complete[at random] the work. [one of]It is so close, so close to being perfect[or]I've waited for so long[or]You'll find what you're looking for in there, I promise[or]It's the only way to complete all of this[or]You're the only one who can[or]It's the solution, the solution to everything[or]It really is almost finished[or]See what it really is, underneath all this[or]You must be curious[at random][msg-ellipsis]'".
Section - basic author responses
After saying hello to the msg-author when the greeting type is explicit:
    say "'Hello[one of][or][msg-uh] again[stopping],' says the author."
After saying goodbye to the msg-author when the greeting type is implicit:
    say "The author looks [one of]dismayed[or]bereft[or]alarmed[or]flustered[at random]. '[msg-wait]!'"
To say msg-wait:
    let Q be the substituted form of "[if a random chance of 1 in 2 succeeds]wait[msg-uh-2][end if][if a random chance of 1 in 2 succeeds]no[msg-uh-2][end if][one of]don't go[or]please stay[or]not yet[at random]" in sentence case;
    say Q.
To say msg-uh-2:
    say "[one of], [or], [or], uh, [at random]".
Instead of giving something to the msg-author:
    try showing the noun to the msg-author.
The block showing rule does nothing when the second noun is msg-author.
After showing something to msg-author:
    say "The author shows no interest in [the noun] whatsoever."
Instead of kissing, squeezing, touching, taking, climbing, or rubbing msg-author:
    say "You don't feel like you know the author well enough."
After smelling msg-author:
    say "He won't let you close enough to get a really good whiff, but you still wouldn't want to guess how long it's been since he showered."
After listening to msg-author:
    say "He is constantly muttering under his breath as he scrutinizes the impossible space."
Instead of searching msg-author:
    say "At a glance he doesn't seem to be carrying anything interesting, and he won't allow you close enough for a more thorough search."
Instead of waking msg-author:
    say "The author is already awake. Very, very awake."
Instead of asking msg-author to try doing something:
    try asking msg-author about "football".
Before going east from MBF6 when msg-monologue has happened:
    say "'[first time]Oh, you're leaving? [only][msg-come-back]!' the author calls after you."
To say msg-come-back:
    if a random number from 1 to 5 is:
        -- 1:
            say "[one of]Please[msg-uh] c[or]Promise you'll[msg-uh] c[or]C[at random]ome back soon";
        -- 2:
            say "[one of]Please[or]Promise you'll[at random] reconsider";
        -- 3:
            say "[one of]Please a[or]Promise you'll a[or]A[at random]t least[msg-uh] think about it";
        -- 4:
            say "[one of]Please don't[or]Promise you won't[or]Don't[at random][msg-uh] take too long";
        -- 5:
            say "I'll be here[one of], then[or][msg-uh] indefinitely[or] when you[msg-uh] change your mind[at random]";
After going west to MBF6 when msg-monologue has happened:
    say "The author [one of]brightens[or]smiles[or]looks up[or]looks surprised[at random] as you enter the room. '[one of]You came back[or]You've changed your mind[or]You've decided to help me after all[or]You've reconsidered[at random][one of]!'[or]! I[msg-uh] knew you would.'[purely at random]"
Section - author conversation
After conversing when the noun is msg-author:
    msg-utter msg-quip-default-response.
Msg-quip-default-response is a msg-quip. The msg-utterance is "The author [one of]looks pained[or]rolls his eyes[msg-dismissively][or]flaps his hands at you[msg-dismissively][or]shakes his head[msg-dismissively][or]makes a frustrated noise[at random]. '[one of]We don't[msg-uh] have time for that[or]That's[msg-uh] not important[or]That's[msg-uh] not relevant[or]Let's not[msg-uh] get distracted from[msg-uh] the real issue here[or]Don't pester me with[msg-uh] trivialities[at random].'"
To say msg-dismissively:
    say "[if a random chance of 1 in 2 succeeds][one of] dismissively[or] impatiently[or] disdainfully[or] scornfully[at random][end if]".
To say msg-already-told-you:
    say "[one of]I told you already. [or]I already told you. [or]I don't like repeating myself. [or]Were you not listening? [at random]".
Instead of conversing when the noun is msg-author and msg-quip1 is not msg-spoken:
    msg-utter msg-quip-hello.
Msg-quip-hello is a msg-quip. The msg-utterance is "The author blinks. 'Oh. It's you.'"
After quizzing or informing msg-author about the msg-tesseract:
    msg-utter msg-quip-tesseract.
Msg-quip-tesseract is a msg-quip. The msg-utterance is "[one of]The author stares at you blankly for a moment, then throws his head back and cackles. 'Don't you know? It's[msg-ellipsis] it's the [italic type]Work[roman type],' he says, and you distinctly hear the capitalization in his voice. 'The [italic type]Great Work[roman type]. It's all that matters, about anything. Everything. And it's almost, [italic type]almost[roman type] finished[or]'[msg-already-told-you]The tesseract is everything [unicode 8212] the [italic type]only[roman type] thing [unicode 8212] real or important[stopping].'"
After quizzing or informing msg-author about the msg-equipment:
    msg-utter msg-quip-equipment.
After quizzing or informing msg-author about the msg-liquids:
    msg-utter msg-quip-equipment.
Msg-quip-equipment is a msg-quip. The msg-utterance is "[one of]The author looks around, as though surprised to see the laboratory equipment still there. 'Ah, yes, that's, uh, that's[msg-ellipsis] part of it. Or, [italic type]was[roman type] part of it. I don't, uh, need it anymore.' He stares down at the impossible space with a disturbingly paternal affection. 'We're beyond that now[or][msg-already-told-you]All of these[msg-ellipsis] trappings[msg-ellipsis] they're superfluous now[stopping].'"
After quizzing or informing msg-author about msg-author:
    msg-utter msg-quip-author.
Msg-quip-author is a msg-quip. The msg-utterance is "[one of]'Oh, ah, uh[msg-ellipsis] me?' The author looks genuinely flabbergasted that you are interested in him at all. 'I'm, I'm, uh, no one important. Not really.' He glances over at the impossible space. 'Not anymore.'[or][msg-utterance of msg-quip-default-response][stopping]".
After quizzing or informing msg-author about yourself:
    msg-utter msg-quip-yourself.
Msg-quip-yourself is a msg-quip. The msg-utterance is "[one of]'Well, uh,' the author says, 'You, you, you, uh, you're the most important one here. In this whole[msg-ellipsis]' He waves his arms around vaguely, as if to encompass the whole room and some indeterminately large volume of space beyond it. 'None of this[msg-ellipsis] works[msg-ellipsis] or even, even [italic type]means anything[roman type], without[msg-ellipsis] I mean, you, you see that, right? You know that?'[or]'[msg-already-told-you]You are a vital component of the work.'[stopping]".
After quizzing or informing msg-author about the shammack-dagger:
    msg-utter msg-quip-dagger.
Msg-quip-dagger is a msg-quip. The msg-utterance is "[one of]The author looks away. 'Right, the, uh, the dagger. Well, we both know what[msg-ellipsis] that is, you do what, uh, you must[or]'I, uh, would really rather not talk about it[or]'[msg-already-told-you]I'd rather not talk about it[stopping].'"
After asking or telling msg-author about something:
    repeat through the Table of MSG-Author Responses:
        if the topic understood includes topic entry:
            msg-utter response entry;
            rule succeeds;
    continue the action.
Table of MSG-Author Responses
topic    response
"naomi"    msg-quip-yourself
"house/cragne/manor/mansion/game"    msg-quip-manor
"town/city/Backwater"    msg-quip-town
"Anchorhead"    msg-quip-anchorhead
"Vaadignephod"    msg-quip-vaadignephod
Msg-quip-manor is a msg-quip. The msg-utterance is "[one of]'Ah, now this, this place,' the author says, looking up in a way that suggests the whole structure of the house above and around you. 'This place is, uh, best understood as a, a kind of [italic type]framework[roman type] for[msg-ellipsis] or rather the, uh, the outermost layer, so to speak, containing[msg-ellipsis] look, the point is, it doesn't [italic type]matter[roman type], not, uh, not really[or]'[msg-already-told-you]The house is not important,' he says, pointing at the impossible space, 'except for [italic type]this[roman type][stopping].'"
Msg-quip-town is a msg-quip. The msg-utterance is "[one of]The author shrugs. 'The town[msg-ellipsis] even less important than the house, really. A, uh, a kind of supportive extension, if you consider[msg-ellipsis] well. Anyway. Don't, uh, or rather, I wouldn't buy any property if, you know.'[or][msg-utterance of msg-quip-default-response][stopping]".
Msg-quip-anchorhead is a msg-quip. The msg-utterance is "The author smiles in a way not altogether reassuring. '[one of]Ah, now, see, now that's[msg-ellipsis] you're getting[msg-ellipsis] that's getting to the core of it. The, uh, the innermost layer[msg-ellipsis]'[or]'[msg-already-told-you]That's where this, all this is leading to.'[stopping]"
Msg-quip-vaadignephod is a msg-quip. The msg-utterance is "'[one of]The author raises his eyebrows. 'Now that's, that's interesting,' he says. 'Very interesting that you should mention, uh[msg-ellipsis] that name[or]'Well, let's just, uh, let's just say, we understand each other, you and, uh. With, uh, with regard to that, that name[or]'[msg-already-told-you]No need to discuss it further[stopping].'"
Section - killing the author
[If the player has the dagger on her person, she can just type KILL AUTHOR and the game will assume the dagger is the intended weapon. (KILL AUTHOR WITH DAGGER will work as well.) Specifying any other object will trigger a response that the noun is not sufficiently deadly. Typing KILL AUTHOR when you *don't* have the dagger causes the game to assume that you meant with your bare hands, which leads to player death.
The takeaway here is, I sure hope no one else created a deadly, weapon-like object that's portable between rooms, because it's going to be awkward if the game is like, "You can't kill the author with the chainsaw; it is not sufficiently deadly." But that's the beauty of the exquisite corpse, I suppose. I did leave a subtle hint that the dagger itself is somehow uniquely special and the only thing capable of killing the author, so there's that.]
After showing the shammack-dagger to the msg-author:
    say "The author [one of]stares at the dagger, making no move to take it. 'Ah, well, yes,' he says quietly, 'that's certainly the, uh, dagger.'[or]pointedly does not look at it.[stopping]".
Instead of pushing, pulling, or turning the msg-author:
    try attacking the msg-author.
Understand "push [msg-author] to/toward/towards/into/in [msg-tesseract]" as inserting it into when the location is MBF6.
Instead of inserting the msg-author into the msg-tesseract:
    try pushing the msg-author.
Instead of putting the msg-author on the msg-tesseract:
    try pushing the msg-author.
Instead of attacking or pushing the msg-author:
    say "The author is stronger than he looks, and without any sort of weapon you are no match for him. You struggle, he shoves you, and you stumble backwards directly into the impossible space.";
    try touching the msg-tesseract.
Instead of attacking the msg-author when the player encloses the shammack-dagger:
    say "(wielding [the shammack-dagger])[command clarification break]";
    try msg-assaulting the msg-author with the shammack-dagger.
Instead of msg-assaulting the msg-author with the shammack-dagger:
    say "Without hesitation, you bury [the shammack-dagger] in the author's chest, all the way to the hilt. He coughs once, spraying dark blood. He looks more disappointed than surprised, but still manages to croak out, 'Why, uh, why did you[msg-ellipsis]'[paragraph break]You see no reason to tell him, however.[paragraph break]The blood-slick hilt of the dagger slips from your hand as the author staggers backwards and falls into the impossible space. In an instant his body is pulled in through itself, spaghettifying into an infinitely long tubule that somehow flares out and back around to enclose the entire universe before fading away. The impossible space itself churns and spins with increasing fury, until with a sound like an unbelievably massive tarp being pulled through a mail slot by a hypersonic jet, it twists away into nothing.[paragraph break][paragraph break]   *** You have achieved the death of the author ***[paragraph break][paragraph break][msg-ellipsis] though perhaps the game is better for it.[paragraph break][initial appearance of msg-mirror][paragraph break]";
    remove msg-author from play;
    remove msg-tesseract from play;
    remove shammack-dagger from play;
    now msg-mirror is in MBF6;
Chapter - The Tesseract
[Examining or searching the tesseract more than once is insta-death. Welcome to Cragne Manor, bitches.]
The msg-tesseract is msg-insubstantial scenery, in MBF6. The printed name is "impossible space". Understand "impossible", "space", "knot", "roiling", "churning", "turning", "spinning", "rotating", "pyramid", "starfish", "origami", "crane", "unfolded", "shiny", "shining", "mercury", "reflection", "reflections", "outermost", "edge", "universe", "great", "work", or "tesseract" as the msg-tesseract.
The description of msg-tesseract is "It churns slowly, rotating around an axis that does not appear to align with any direction possible in three-dimensional space, alternating in shape between a pyramid, a starfish, an origami crane come unfolded. It shines like mercury, reflecting the room and beyond the room, reflecting every room in the manor, and the manor itself, and the town beyond the manor, and the world beyond the town, and [one of]you realize with queasy vertigo that [or][stopping]it does not just reflect these things but it [italic type]contains[roman type] them, it contains the world and inside it, the town and inside it, the house and inside it, the room and inside [italic type]that[roman type] [unicode 8212] it contains you. It is the universe, and you are standing with your back to its center, staring at the inner surface of its awful, outermost edge."
Instead of searching the msg-tesseract:
    try examining the msg-tesseract.
Carry out looking under the msg-tesseract:
    say  "The impossible space hovers a foot or so above the floor.";
    rule succeeds.
After examining the msg-tesseract for the first time:
    say "A faint itch tickles your nose, and you wipe away a bright smear of blood.";
    if msg-author is in the location:
        msg-utter msg-quip-hemorrhaging.
Msg-quip-hemorrhaging is a msg-quip. The msg-utterance is "[line break]'Ah, yes, you'll, uh, you'll want to watch out for the, uh[msg-ellipsis]  the hemorrhaging,' says the author. 'Though you develop a tolerance, eventually, if you[msg-ellipsis] interact with it enough. Assuming your brain doesn't explode first.' You can't help but note the author's own mouth and chin, streaked and crusted and black."
Instead of examining the msg-tesseract for the second time:
    say "You stare into the space again. This time your gaze is drawn deeper, down into its distant center. There is something in there[msg-ellipsis] You are vaguely aware of a pressure building behind your eyes, a pounding in your temples, but you cannot tear yourself away. Something is happening in there. Something vast is unfolding, turning over in response to your scrutiny. [italic type]Something is looking back at you.[roman type][paragraph break][if msg-author is in the location]You realize that the author is shouting at you, has been for some time. [end if]You cannot [if msg-author is in the location]make out the words[otherwise]think[end if] over the roaring waves of pain engulfing your head. For a moment you feel weightless, and the last sound you hear is a single, titanic handclap of a [italic type]BANG[roman type] as pressure in excess of ten thousand pounds per square inch bursts your skull from the inside.";
    end the story saying "You have died".
Section - putting things in the tesseract
[Realized at the 11th hour that allowing players to arbitrarily destroy things -- including the dagger required to solve the room's puzzle! -- by putting them in the tesseract knocks the ol zarfian cruelty scale all the way up past 'sadistic' and beyond. So now anything you put in the tesseract just reappears in front of you.]
Instead of putting something on the msg-tesseract:
    try inserting the noun into the msg-tesseract.
Instead of throwing something at the msg-tesseract:
    try inserting the noun into the msg-tesseract.
Instead of inserting something into the msg-tesseract:
    say "[The noun] touch[if the noun is singular-named]es[end if] the rippling surface of the space and instantly vanish[if the noun is singular-named]es[end if] with a loud [msg-pop]. You experience a momentary sense of somehow being inside [the noun] as [they] rush[if the noun is singular-named]es[end if] away from you in every direction simultaneously; then, with a sudden [msg-pop], [they] reappear[if the noun is singular-named]s[end if] on the floor in front of you.";
    now the noun is in MBF6.
To say msg-pop:
    say "[italic type][one of]pop[or]zap[or]bloop[or]blort[or]ping[or]crack[or]snap[or]shoop[or]zwip[at random][roman type]".
Before msg-assaulting the msg-tesseract with the shammack-dagger:
    instead try inserting the shammack-dagger into the msg-tesseract.
Instead of inserting the shammack-dagger into the msg-tesseract:
    say "[one of]The impossible space squeals horribly, like dry ice pressed against metal, as the edge of the dagger pierces its mirrored surface. The whole thing twists around and seems to physically recoil from the blade, which drops clattering to the floor.[paragraph break][msg-reaction][or][msg-reaction][stopping]";
    now the shammack-dagger is in MBF6.
To say msg-reaction:
    if msg-quip-dagger-reaction is not msg-spoken:
        msg-utter msg-quip-dagger-reaction;
        msg-utter msg-quip-don't-do-that.
Msg-quip-dagger-reaction is a msg-quip. The msg-utterance is "'Interesting,' muses the author. 'though, uh, not altogether unexpected[msg-ellipsis]'[run paragraph on]".
Msg-quip-don't-do-that is a msg-quip. The msg-utterance is "The author [one of]makes a face[or]moves to block you[or]steps in front of you[or]lays a hand lightly on your arm[or]clears his throat[at random]. 'Would[msg-uh] you mind not doing that[one of]? It[msg-uh] really is[msg-uh] unpleasant[msg-ellipsis]'[or]? It[msg-uh] really doesn't[msg-uh] accomplish anything[msg-ellipsis]'[or]? I'm[msg-uh] trying to work here[msg-ellipsis]'[or]? That's not what it's[msg-uh] for[msg-ellipsis]'[or]? The[msg-uh] cruelty scale is already in such delicate[msg-uh] balance[msg-ellipsis]'[or]?'[at random][run paragraph on]".
Section - entering the tesseract
Instead of going inside in MBF6:
    try entering the msg-tesseract.
A msg-touchy-feely rule for the msg-tesseract:
    if msg-tesseract is not the noun and msg-tesseract is the second noun, can touch this;
    if the current action is searching, can touch this;
    say "You feel it as soon as you get close to it: the inexorable gravity of the impossible space locks onto you like a manacle around your wrist. It drags you in, inch by inch, until your fingertips break its liquid mirror surface [unicode 8212] and that is when you start to scream.";
    if msg-author is in the location:
        say line break;
        msg-utter msg-quip-don't-fight;
    say "[paragraph break][paragraph break]Topologically speaking, the human body is not a solid object but rather a sort of elongated toroid; turned inside out, it resembles a large, lumpy sausage encased within the thinly stretched membrane of its own intestinal tract. Or so you soon discover.[paragraph break]Mercifully, this does not last. Several moments later, you are drawn backwards through a tube made of yourself and unfolded into a shape more closely approximating normal. You emerge into a space composed of a reasonably navigable number of dimensions, a strange place but somehow familiar[msg-ellipsis][paragraph break]";
    move the player to MBF6a.
Msg-quip-don't-fight is a msg-quip. The msg-utterance is "'Ah, there it is,' the author whispers. 'Don't, uh, don't fight it.'"
Section - tesseract idle behavior
To msg-trigger tesseract idle behavior:
    say "The impossible space";
    if a random number between 1 and 5 is:
        -- 1:
            say " [msg-default-tesseract-idle].";
        -- 2:
            say " [if a random chance of 2 in 5 succeeds]briefly [one of]expands to the size of a building, remaining the same apparent size only because it is now, somehow, nearly a mile distant[or]shrinks to the size of a grain of rice, remaining the same apparent size only because it is now, somehow, floating only a few inches away from your eyeball[at random][otherwise][msg-default-tesseract-idle][end if].";
        -- 3:
            say " [one of]suddenly erupts in a profusion of eyes and hands[msg-ellipsis] four eyes, ten hands[msg-ellipsis] fifty eyes, a thousand hands[msg-ellipsis] all wriggling and twitching and blinking at you before they just as abruptly vanish[or][msg-default-tesseract-idle][stopping].";
        -- 4:
            say " morphs itself into the shape of [one of]something crouched and predatory[or]a bottle that somehow empties into its own mouth[or]a toy that you dimly remember cherishing, then abandoning, in your earliest childhood[or]a wad of thoroughly used chewing gum[or]a human face[or]a lattice of geometric shapes, mostly rectangles and ovals connected by straight lines, floating in the air. There are words written inside the shapes, but you cannot make out what they say[or][a random handled thing][or]a regular polyhedron with [a random number from 14 to 39] faces of [a random number from 5 to 12] sides each, all somehow equilateral and perfectly aligned[in random order].";
        -- 5:
            say "'s surface momentarily reflects[one of] an unobstructed, 360-degree view of [msg-other-room][or] [if the msg-author is in MBF6 and a random chance of 1 in 2 succeeds]the author's crazed, pleading face[otherwise]your own face. It [msg-winks] at you before vanishing[end if][or], by means of some strange convolution that you cannot quite visually process, itself[or] a lighthouse standing at the end of a wave-swept breakwater, casting its greenish light out across the ocean[or] the twisted and honeycombed spires of an alien cityscape[or] the blackest, sanity-crushing depths of space[or] the briefest glimpse of something [unicode 8212] [msg-something-horrible], you think? [unicode 8212] that instantly vanishes from your memory even as it leaves you feeling nauseated and shaken for minutes afterwards[or] words written in fire: [msg-words][in random order].";
    say conditional paragraph break.
To say msg-default-tesseract-idle:
    say "[one of]turns[or]spins[or]pulses[or]shivers[or]boils[or]ripples[or]twists[or]bubbles[at random] [one of]slowly[or]quietly[or]calmly[or]rapidly[or]noisily[or]excitedly[at random]";
To say msg-other-room:
    let R be the printed name of a random visited room;
    if R matches the regular expression "(.*)\(":
        let R be the text matching subexpression 1;
    replace the regular expression "(?i)^(the|a)(\s+)" in R with "";
    replace the regular expression "(\s*)$" in R with "";
    say "the [R]".
To say msg-winks:
    say "[one of]smirks[or]leers[or]winks[or]grins[in random order]".
To say msg-something-horrible:
    say "[one of]some sort of machine[or]a mathematical equation[or]a statue[or]something painted on the wall of a cave[or]an arrangement of clouds[or]a bouquet of orange blossoms[in random order]".
To say msg-words:
    say "[italic type][one of]Suffering relates one person to various indignities[or]Now everything relevant is irrelevant[in random order][roman type]".
Chapter - the Mirror
[Here's Molly's input-object, the ornate silver mirror. Obviously, if Molly has specific ideas for searching or attacking the mirror, they should override mine. However, I'd like for my rules to work at least while they're in my room, so if necessary please unbracket the conditional phrases. Thanks!]
The msg-mirror is a thing. The printed name is "silver mirror". The initial appearance is "A silver mirror lies on the floor." Understand "silver", "hand/-- mirror", "ornate", "frame", "reflection" as msg-mirror.
The description of msg-mirror is "It's a silver hand mirror in an ornate frame."
After searching msg-mirror [when the location is MBF6]:
    say "You see your own face in reflection."
Instead of attacking the msg-mirror [when the location is MBF6]:
    say "Although it's true your luck probably couldn't get much worse, there's no call to ruin a perfectly nice mirror."
Part - MBF6a - The Cul-de-sac
[Entering the tesseract traps the character and kills her in three turns. Technically, that means the player has to undo as many as four times to get back out, but I figure 1) it's pretty immediately obvious, or at least I tried to make it so, that the game is irreparably over; and 2) three turns is still pretty short, and it's not like the player can go anywhere or accomplish anything in the meantime. And just to be on the safe side, I added an explanatory note to the final question to let the player know what's going on. Anyway, I hope that's okay.]
MBF6a is a room. The printed name is "Outside the Real Estate Office".
[P.S. I didn't place MBF6a in the MBF region, because it's technically not in the basement (which is what I assume 'MBF' stands for), and I didn't want any region-specific rules affecting it. However if there is some coding-related reason why it needs to be in the same region as its "parent" room, that's okay.]
The description of MBF6a is "A grim little cul-de-sac, tucked away in a corner of the claustrophobic tangle of narrow, twisting avenues that largely [one of]constitute[or]comprise[or]compose[stopping] the older portion of Anchorhead. Like most of the streets in this city, it is ancient, shadowy, and leads essentially nowhere. The lane ends here at the real estate agent's office, which lies to the east, and winds its way back [one of]toward[or]towards[or]toward[stopping] the center of town to the west. A narrow, garbage-choked alley opens to the southeast."
Msg-ultimate-fate is a scene. Msg-ultimate-fate begins when the player is in MBF6a.
After reading a command when msg-ultimate-fate is happening (this is the msg-authorial-dithering rule):
    if the player's command includes "undo/quit/save/restore":
        continue the activity;
    say line break;
    if the time since msg-ultimate-fate began is:
        -- 1 minute:
            say "[italic type]'Wait, that's not[msg-ellipsis] no. [']Constitute[']? Ugh, let's try this[msg-ellipsis]'[line break]";
        -- 2 minutes:
            say "[italic type]'That's, uh, well, that's[msg-ellipsis] but maybe not [']comprise['], technically. [']Compose[']? [']Is composed of[']? Maybe we should[msg-ellipsis]'[line break]";
        -- 3 minutes:
            say "[italic type]'Ah, that doesn't[msg-ellipsis] it just doesn't quite flow[msg-ellipsis]'[roman type][paragraph break]And so it goes. You have a hazy sense that it has always been and will forever remain a rainy late afternoon in November. Aside from this, there is no way to measure the passage of time apart from the author's voice, an endless, stammering litany of emendations that seems to drift down upon you from the cloud-covered sky. At some point, in the midst of an agonized millennia-long rumination over whether it should be spelled 'toward' or 'towards', you just stop hearing it.[paragraph break]Anyway, your husband should be back to pick you up in a few minutes. And then the two of you can begin the long, precarious process of settling in.";
            end the story saying "You are trapped here forever";
    replace the player's command with "look".
This is the msg-final-question-addendum rule:
    if story has ended and the player is in MBF6a:
        say "(Be aware that if you UNDO, you will need to UNDO a total of four times to return to the Laboratory.)[line break]".
The msg-final-question-addendum rule is listed after the print the final question rule in the before handling the final question rules. The msg-final-question-addendum rule is listed before the print the final prompt rule in the before handling the final question rules.
The msg-final-question-addendum rule does nothing if the player is not in MBF6a.
Part - Commentary
The commentary of MBF6 is "I'm actually pretty terrible at writing commentary on my own work, so bear with me.
This room is just an amusing riff on my own feelings regarding [italic type]Anchorhead[roman type], and I don't have a lot to say about it that you haven't already played through (read the preface to the illustrated edition if you're really interested). I do have something to say about this game, [italic type]Cragne Manor[roman type], though I may be inadequate to the task.
According to reports as of this writing, there are at least 85 people contributing to this game. Presumably a few of them will drop out, or have done so already, due to the normal sorts of conflicts and commitments that get in the way, but even so. Conservatively, that's a hell of a lot of people, some of whom have put a frankly insane amount of effort and word count into their individual pieces of this lurching patchwork. Many of them, surely, chose to participate for the unique exquisite-corpse nature of the project, but all of them participated because they wanted to say something [unicode 8212] be it critical, nostalgic, complimentary, satirical, or just silly [unicode 8212] about [italic type]Anchorhead[roman type].
That is humbling.
Many heartfelt thanks to Ryan Veeder and Jenni Polodna for conceiving and managing this project, and greenlighting my goofy-ass metajoke of a room concept. Thanks to Andrew Plotkin for telling me about it when I was off for a while and would have probably missed it otherwise. Thanks to Andrew Schultz for testing my code. Thanks to every person who contributed a room to the coolest anniversary gift I ever got.
And thank you for playing. It's, uh, it's the interactivity, you see. I can't lead you, I can only anticipate."