Cragne Manor room MBF4: Workroom (Andrew Plotkin)

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


"Cragne-Zarf" by Andrew Plotkin.
 
The release number is 7.
The story headline is "One room of an Anchorhead tribute project".
 
Release along with a "OneColumn" website and an interpreter.
 
[Assignment: "Your room is MBF4. This is an obscure corner of Cragne Manor's basement; it’s designated “altar” internally but you can call it whatever. The way out is west. For your Mercury track puzzle, the player needs to be able to find a library book in here."]
 
 
Chapter 1 - Do Not Change Any Of This
 
Include Cragne Suite by Ryan Veeder.
 
[Don't mess with other people's rooms!]
 
MBF is a region.
 
MBF4 is a room in MBF. MBF4 is east from MBF3.
 
To say library insignia:
    say "the insignia of the Backwater Public Library[one of], two back-to-back crescent moons joined by an eye looking down at an open book[or][stopping]".
 
To say Library insignia:
    let the result be "[library insignia]" in sentence case;
    say the result.
 
To say library insignia sentence:
    say "A sticker on the spine bears [library insignia]."
 
A library book has some text called official title. The official title of a library book is usually "[the printed name]".
 
 
Chapter - MBF4 Altar
 
The printed name of MBF4 is "Workroom [zarf-authortag]".
 
A zarf-room is a kind of room.
A zarf-room can be zarf-outdoorsy.
A zarf-room has some text called the zarf-shortdesc.
The zarf-shortdesc of a zarf-room is usually "area".
 
MBF4 is a zarf-room. [In addition to being a room!]
The zarf-shortdesc of MBF4 is "room".
 
Check going outside in MBF4:
    instead try going west.
 
The description of MBF4 is "[zarf-room-desc]."
MBF4 can be zarf-done. [Ever begun a ritual.]
 
To say zarf-room-desc:
    say zarf-aboutline;
    if zarf-ritual-inactive:
        say "You [one of]have entered[or]are in[stopping] a circular chamber, walled in the same decaying brickwork which runs all through the manor's basement";
        if MBF4 is not zarf-done:
            say ". The only exit is west.[paragraph break]This might once have been a private altar room or chapel. Now it seems to have been repurposed as a ritual workroom. Oddly-angled runes are carved around the perimeter of the floor";
        else:
            say ". A ritual bound of oddly-angled runes has been carved around the perimeter of the room. The only exit is west";
    else:
        say "This is a circular chamber, walled in decaying brickwork. A boundary of grey-glowing runes runs around the perimeter of the room. The air is";
        if the zarf-count of zarf-word-winter is:
            -- -2: say " hot and";
            -- -1: say " warm and";
            -- 1: say " chilly and";
            -- 2: say " icy cold and";
        say " peculiarly still, and the exit to the west seems clogged with darkness";
    say ".[paragraph break]A majestic filing cabinet stands in one corner, stuffed to overflowing with antique journals. Next to it is";
    if the zarf-count of zarf-word-winter is:
        -- 1: say " a full-length mirror of icy-clear glass";
        -- 2: say " a full-length, frosted-over mirror";
        -- otherwise: say " a full-length, badly fogged mirror";
    let C be the zarf-color of the zarf-mirror;
    if C is not zarfc-none:
        say ", from which emanates [zarf-color-a C] glow";
 
Instead of examining the player when the location is MBF4 (this is the Andrew Plotkin PC start description rule):
    instead say "You are hassled, frazzled, and extremely tired of being in this claustrophobic basement."
 
Instead of examining the player when the location is a zarf-room (this is the Andrew Plotkin PC ritual description rule):
    if the location is MBF4-alter:
        instead say "You are entirely prepared to start building this work room.";
    if the location is a zarf-gate-room:
        instead say "You have no reason to pay attention to yourself.";
    instead say "In this ritual space, your body is slightly indefinite."
 
Check going west from MBF4 when zarf-ritual-active:
    instead say "The doorway seems dark and distant on the other side of the boundary runes. You move towards it, but it does not seem to get any closer[one of]. Apparently you really are in a space outside of time[or]. Apparently you really are in a time outside of space[or][stopping]."
 
Check going to MBF4 when zarf-ritual-active:
    say "(BUG) The ritual in MBF4 was active, which it should not have been.";
    let flag be zarf-ritual-shutdown;
 
Chapter - The Book
 
The zarf-book is a proper-named library book. The printed name is "[italic type]The Seven Gaunts[roman type]".
The zarf-book can be zarf-done.
Understand "seven", "gaunt", "gaunts" as the zarf-book.
 
The description is "[italic type]The Seven Gaunts -- a book of Aionist fairy tales, collected by Henry Galtmice[roman type]. The volume is faded and somewhat worn in the binding, but it's still in excellent shape. Stamped in the endpaper is the insignia of the Backwater Public Library[first time]: two back-to-back crescent moons joined by an eye looking down at an open book[only]."
The passage is "You flip through the book and glance at [zarf-book-stories]."
 
To say zarf-book-stories:
    let N be a random number from 1 to 7;
    if N is:
        -- 1: say "the story of a dweller beneath the Earth who gets lost in the Sunlit World";
        -- 2: say "the story of seven night-gaunts and where they flew";
        -- 3: say "the story of the night when everybody danced";
        -- 4: say "the story of the angel at the South Pole";
        -- 5: say "the story of a tree that grew in the middle of the ocean";
        -- 6: say "the story of a boy who tried every flavor of ice";
        -- 7: say "the story of the sisters who knew a song that nobody else knew";
        -- otherwise: say "another story";
 
 
Chapter - Actions
 
Zarf-ever-about is a truth state that varies.
 
To say zarf-aboutline:
    if zarf-ever-about is false:
        say "[bold type](First-time visitors should type ABOUT!)[roman type][paragraph break]"
 
To say zarf-authortag:
    say "(Andrew Plotkin)";
 
Zarf-abouting is an action out of world.
 
Understand "about", "help" as zarf-abouting when the location is a zarf-room.
 
Carry out zarf-abouting:
    now zarf-ever-about is true;
    say "This room is a standalone puzzle. It does not require objects or clues from elsewhere in the game. Some special commands that work here:[paragraph break]CONSULT CABINET ABOUT [italic type]ITEM[roman type]: Search the filing cabinet.[line break]LOOK UP [italic type]ITEM[roman type], READ ABOUT [italic type]ITEM[roman type]: Shortcuts for the above.[line break]RECALL [italic type]ITEM[roman type]: Recall information about a specific item.[line break]RECALL: Show a list of all the information and magic you have learned."
 
 
Chapter - General Properties
 
Zarf-color is a kind of value. The zarf-colors are zarfc-none, zarfc-pearly, zarfc-ianthine, zarfc-fulvous, zarfc-cesious, zarfc-erythraean, zarfc-sepia.
 
To say zarf-color (C - zarf-color):
    if C is:
        -- zarfc-none: say "no";
        -- zarfc-pearly: say "pearly";
        -- zarfc-ianthine: say "ianthine";
        -- zarfc-fulvous: say "fulvous";
        -- zarfc-cesious: say "cesious";
        -- zarfc-erythraean: say "erythraean";
        -- zarfc-sepia: say "sepia";
        -- otherwise: say "(BUG)-colored";
 
To say zarf-color-capa (C - zarf-color):
    if C is:
        -- zarfc-none: say "No";
        -- zarfc-pearly: say "A pearly";
        -- zarfc-ianthine: say "An ianthine";
        -- zarfc-fulvous: say "A fulvous";
        -- zarfc-cesious: say "A cesious";
        -- zarfc-erythraean: say "An erythraean";
        -- zarfc-sepia: say "A sepia";
        -- otherwise: say "A (BUG)-colored";
 
To say zarf-color-a (C - zarf-color):
    if C is:
        -- zarfc-none: say "no";
        -- zarfc-pearly: say "a pearly";
        -- zarfc-ianthine: say "an ianthine";
        -- zarfc-fulvous: say "a fulvous";
        -- zarfc-cesious: say "a cesious";
        -- zarfc-erythraean: say "an erythraean";
        -- zarfc-sepia: say "a sepia";
        -- otherwise: say "a (BUG)-colored";
 
To decide which zarf-color is the zarf-phase-color of (P - zarf-phase):
    if P is:
        -- zarfphase-new: decide on zarfc-sepia;
        -- zarfphase-crescent: decide on zarfc-fulvous;
        -- zarfphase-half: decide on zarfc-ianthine;
        -- zarfphase-gibbous: decide on zarfc-cesious;
        -- zarfphase-full: decide on zarfc-pearly;
        -- zarfphase-blood: decide on zarfc-erythraean;
        -- otherwise: decide on zarfc-none;
 
Chapter - Magic Words
 
A zarf-word is a kind of thing.
Understand "word", "word of" as a zarf-word.
A zarf-word is usually unfamiliar.
The description of a zarf-word is usually "(BUG) Undescribed word."
A zarf-word has a number called the zarf-count.
A zarf-word has text called the zarf-foreign. The zarf-foreign of a zarf-word is usually "XYZZY".
A zarf-word has text called the zarf-domestic. The zarf-domestic of a zarf-word is usually "ZAP".
The printed name of a zarf-word is usually "Word of [zarf-domestic]".
 
Definition: a zarf-word is zarf-count-positive if the zarf-count of it is positive.
Definition: a zarf-word is zarf-count-negative if the zarf-count of it is negative.
Definition: a zarf-word is zarf-count-zero if the zarf-count of it is zero.
Definition: a zarf-word is zarf-count-one if the zarf-count of it is one.
Definition: a zarf-word is zarf-count-two if the zarf-count of it is two.
 
To say zarf-foreign-italic of (W - zarf-word):
    say "[italic type][zarf-foreign of W][roman type]".
 
Zarf-recalling-all is an action applying to nothing.
Zarf-recalling is an action applying to one visible thing.
 
Understand "formula", "formulas", "formulae" as zarf-recalling-all when the location is a zarf-room.
 
Understand "recall" as zarf-recalling-all when the location is a zarf-room.
Understand "recall formulas/formulae" as zarf-recalling-all when the location is a zarf-room.
Understand "recall [any familiar zarf-word]" as zarf-recalling when the location is a zarf-room.
Understand "recall [any familiar zarf-journal]" as zarf-recalling when the location is a zarf-room.
Understand "recall [something]" as zarf-recalling when the location is a zarf-room.
 
Understand "remember" as zarf-recalling-all when the location is a zarf-room.
Understand "remember formulas/formulae" as zarf-recalling-all when the location is a zarf-room.
Understand "remember [any familiar zarf-word]" as zarf-recalling when the location is a zarf-room.
Understand "remember [any familiar zarf-journal]" as zarf-recalling when the location is a zarf-room.
Understand "remember [something]" as zarf-recalling when the location is a zarf-room.
 
Understand "consider" as zarf-recalling-all when the location is a zarf-room.
Understand "consider formulas/formulae" as zarf-recalling-all when the location is a zarf-room.
Understand "consider [any familiar zarf-word]" as zarf-recalling when the location is a zarf-room.
Understand "consider [any familiar zarf-journal]" as zarf-recalling when the location is a zarf-room.
Understand "consider [something]" as zarf-recalling when the location is a zarf-room.
 
Check zarf-recalling-all when the location is a zarf-gate-room:
    instead say "Your memory is vague.";
 
Carry out zarf-recalling-all:
    if no zarf-words are familiar:
        say "You have learned no magic... yet.";
    else:
        say "You have learned the following incantations:[line break]";
        repeat with W running through familiar zarf-words:
            say "  [zarf-foreign of W], [the W][line break]";
    if zarf-redoubling-ability is true:
        say "  ...along with the ability to repeat a word, intensifying its effect[line break]";
    let N be the number of familiar zarf-journals;
    if N is not zero:
        say "[line break]You have researched the following [if N is one]name[else]names[end if]: [the list of familiar zarf-journals].";
    let M be the number of unfamiliar zarf-findable zarf-journals;
    if M is not zero:
        say "[line break]You have come across [M in words][if N is not zero] additional[end if] [if M is one]name[else]names[end if], not yet researched: [the list of unfamiliar zarf-findable zarf-journals].";
    stop the action;
 
Check zarf-recalling when the location is a zarf-gate-room:
    instead say "Your memory is vague.";
 
Carry out zarf-recalling a zarf-word:
    if the noun is not familiar:
        instead say "You don't know [the noun] yet.";
    instead say "You know [zarf-foreign of the noun], [the noun]. [description of the noun][line break]"
 
Carry out zarf-recalling a zarf-journal:
    if the noun is not familiar:
        instead say "You don't know anything about [the noun].";
    instead follow the zarf-journal-desc rules for the noun.
 
Carry out zarf-recalling:
    instead say "[The noun] [if the noun is plural-named]are[else]is[end if] right here."
 
Check zarf-recalling the player:
    if the location is MBF4-alter:
        instead say "You are entirely prepared to start building this work room.";
    if the location is a zarf-gate-room:
        instead say "You are no longer sure who you are.";
    instead say "You consider your history. [one of]You have always been Naomi Cragne. Right? (Before you married Peter you were Naomi Verwald, but that's not the question.) No, you're[or]You're[stopping] definitely the same Naomi you've always been."
 
Zarf-chanting is an action applying to one visible thing.
Zarf-vague-saying is an action applying to one topic.
 
Understand "say [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "chant [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "recite [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "shout [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "speak [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "sing [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "intone [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "vocalize [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "vocalise [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
Understand "pronounce [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.
[Understand "word of [any familiar zarf-word]" as zarf-chanting when the location is a zarf-room.] [Leads to "What do you want to word of?"]
Understand "say [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "chant [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "recite [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "shout [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "speak [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "sing [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "intone [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "vocalize [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "vocalise [text]" as zarf-vague-saying when the location is a zarf-room.
Understand "pronounce [text]" as zarf-vague-saying when the location is a zarf-room.
 
Carry out zarf-vague-saying:
    instead say "That isn't a magic word you know."
 
Carry out zarf-chanting a zarf-word:
    if the noun is not familiar:
        instead say "You don't know [the noun] yet.";
    now zarf-magic-worked-flag is false;
    follow the zarf-ritual-rulebook for the noun;
    follow the zarf-outcome-rulebook for the noun;
    stop the action.
 
Carry out zarf-chanting:
    instead say "You're not sure how to chant that."
 
Section - Specific magic words
 
Definition: a zarf-word is zarf-word-valid if it is not zarf-word-none and it is not zarf-word-phasechange.
 
To decide whether zarf-unseasonable:
    if zarf-ritual-active and the zarf-count of zarf-word-summer is zero and the zarf-count of zarf-word-winter is zero:
        yes.
 
The zarf-word-none is a zarf-word. The zarf-domestic is "Null".
Understand "noword" as zarf-word-none.
 
The zarf-word-phasechange is a zarf-word. The zarf-domestic is "PhaseChange".
Understand "phasechange" as zarf-word-phasechange.
 
The zarf-word-sealing is a zarf-word. The zarf-domestic is "Sealing". The zarf-foreign is "IA".
The description is "This begins a ritual, closing the bound and translating the interior beyond the normal laws of nature."
Understand "sealing", "seal", "ia" as zarf-word-sealing.
 
The zarf-word-unsealing is a zarf-word. The zarf-domestic is "Unsealing". The zarf-foreign is "ZOK".
The description is "This ends a ritual and returns you to the world as you know it."
Understand "unsealing", "unseal", "zok" as zarf-word-unsealing.
 
The zarf-word-enlightenment is a zarf-word. The zarf-domestic is "Enlightenment". The zarf-foreign is "KHION".
The description is "This brings forth truth and uncovers secrets."
Understand "enlightenment", "khion","kion" as zarf-word-enlightenment.
 
The zarf-word-winter is a zarf-word. The zarf-domestic is "Winter". The zarf-foreign is "IRNATH".
The description is "This evokes cold, clarity, precision, sterility, and focus."
Understand "winter", "chill", "cold", "irnath" as zarf-word-winter.
 
The zarf-word-summer is a zarf-word. The zarf-domestic is "Summer". The zarf-foreign is "MALETH".
The description is "This evokes heat, haze, fertility, verdancy, and riot."
Understand "summer", "warmth", "heat", "maleth" as zarf-word-summer.
 
The zarf-word-invoke is a zarf-word. The zarf-domestic is "Invocation". The zarf-foreign is "ULNUR".
The description is "This brings voices from Outside closer to the skin of the world."
Understand "invoke", "invocation", "ulnur" as zarf-word-invoke.
 
The zarf-word-dream is a zarf-word. The zarf-domestic is "Trance". The zarf-foreign is "VULLE".
The description is "This abstracts the speaker's awareness to a visionary cell on the borders of Dream."
Understand "dream", "trance", "vul", "vule", "vull", "vulle" as zarf-word-dream.
 
The zarf-word-chaos is a zarf-word. The zarf-domestic is "Chaos". The zarf-foreign is "OGGOTH".
The description is "This evokes ruin and the collapse of the world-state."
Understand "chaos", "ruin", "oggoth", "ogoth" as zarf-word-chaos.
 
The zarf-word-unnameable is a zarf-word. The zarf-domestic is "Unnameable". The zarf-foreign is "?͋?͜?̶?̫".
The printed name is "Unnameable Name".
The description is "You do not know what it portends."
Understand "unpronounc", "unnameable", "unnamable", "name", "xyzzy" as zarf-word-unnameable.
 
 
Zarf-chanting-sealing is an action applying to nothing.
Understand "sealing", "ia" as zarf-chanting-sealing when the location is a zarf-room and zarf-word-sealing is familiar.
Check zarf-chanting-sealing: instead try zarf-chanting zarf-word-sealing.
 
Zarf-chanting-unsealing is an action applying to nothing.
Understand "unsealing", "zok" as zarf-chanting-unsealing when the location is a zarf-room and zarf-word-unsealing is familiar.
Check zarf-chanting-unsealing: instead try zarf-chanting zarf-word-unsealing.
 
Zarf-chanting-enlightenment is an action applying to nothing.
Understand "enlightenment", "khion", "kion" as zarf-chanting-enlightenment when the location is a zarf-room and zarf-word-enlightenment is familiar.
Check zarf-chanting-enlightenment: instead try zarf-chanting zarf-word-enlightenment.
 
Zarf-chanting-winter is an action applying to nothing.
Understand "winter", "irnath" as zarf-chanting-winter when the location is a zarf-room and zarf-word-winter is familiar.
Check zarf-chanting-winter: instead try zarf-chanting zarf-word-winter.
 
Zarf-chanting-summer is an action applying to nothing.
Understand "summer", "maleth" as zarf-chanting-summer when the location is a zarf-room and zarf-word-summer is familiar.
Check zarf-chanting-summer: instead try zarf-chanting zarf-word-summer.
 
Zarf-chanting-dream is an action applying to nothing.
Understand "trance", "vul", "vule", "vull", "vulle" as zarf-chanting-dream when the location is a zarf-room and zarf-word-dream is familiar.
Check zarf-chanting-dream: instead try zarf-chanting zarf-word-dream.
 
Zarf-chanting-invoke is an action applying to nothing.
Understand "invocation", "ulnur" as zarf-chanting-invoke when the location is a zarf-room and zarf-word-invoke is familiar.
Check zarf-chanting-invoke: instead try zarf-chanting zarf-word-invoke.
 
Zarf-chanting-chaos is an action applying to nothing.
Understand "chaos", "oggoth", "ogoth" as zarf-chanting-chaos when the location is a zarf-room and zarf-word-chaos is familiar.
Check zarf-chanting-chaos: instead try zarf-chanting zarf-word-chaos.
 
Zarf-chanting-unnameable is an action applying to nothing.
Understand "unpronounc", "unnameable", "xyzzy" as zarf-chanting-unnameable when the location is a zarf-room and zarf-word-unnameable is familiar.
Check zarf-chanting-unnameable: instead try zarf-chanting zarf-word-unnameable.
 
Section - Chaos Runes
 
A zarf-glyph is a kind of thing.
 
Zarf-glyph-stone is a zarf-glyph.
Zarf-glyph-sky is a zarf-glyph.
Zarf-glyph-moon is a zarf-glyph.
 
To decide what number is the zarf-glyph-count:
    decide on the number of familiar zarf-glyphs.
 
To zarf-memorize-glyph-message (G - zarf-glyph):
    now G is familiar;
    say ".[paragraph break]You memorize the glyph";
    let N be the zarf-glyph-count;
    if zarfj-malford is not familiar:
        say ", on the theory that it must be good for something";
    else if zarfj-malford is not zarf-done:
        now zarfj-malford is zarf-done;
        say "; it looks like one of the missing symbols from Malford Cragne's journal";
    if N is 2:
        say ". You now know two glyphs";
    if N is 3:
        if zarfj-malford is not familiar:
            say ". You now know three glyphs";
        else:
            say ". You now know all three of the missing glyphs from Malford Cragne's journal";
 
 
Chapter - Moon Equipment
 
Zarf-phase is a kind of value. The zarf-phases are zarfphase-full, zarfphase-gibbous, zarfphase-half, zarfphase-crescent, zarfphase-new, and zarfphase-blood.
 
Definition: a zarf-phase is zarfphase-valid if it is zarfphase-new or it is zarfphase-crescent or it is zarfphase-half or it is zarfphase-gibbous or it is zarfphase-full or it is zarfphase-blood.
Definition: a zarf-phase is zarfphase-contains-white if it is not zarfphase-new and it is not zarfphase-blood.
Definition: a zarf-phase is zarfphase-contains-black if it is not zarfphase-full and it is not zarfphase-blood.
Definition: a zarf-phase is zarfphase-fullish if it is zarfphase-full or it is zarfphase-blood.
 
To say zarf-phase-desc of (P - zarf-phase):
    if P is:
        -- zarfphase-new: say "new moon";
        -- zarfphase-crescent: say "crescent moon";
        -- zarfphase-half: say "half moon";
        -- zarfphase-gibbous: say "gibbous moon";
        -- zarfphase-full: say "full moon";
        -- zarfphase-blood: say "blood moon";
        -- otherwise: say "(BUG)";
 
Table of Zarf Phase Topics
topic    zarf-phase
"new/black moon/--"    zarfphase-new
"crescent moon/--"    zarfphase-crescent
"half moon/--"    zarfphase-half
"gibbous moon/--"    zarfphase-gibbous
"full/white moon/--"    zarfphase-full
"red/blood moon/--"    zarfphase-blood
 
The zarf-lunator is fixed in place in MBF4. The printed name is "lunar sphere".
The zarf-lunator has a zarf-phase. The zarf-phase of the zarf-lunator is zarfphase-half.
Understand "lunator", "lunar", "moon", "wood", "wooden", "painted", "band", "bands", "sphere", "hemisphere", "circle", "disc", "disk", "ring" as the zarf-lunator.
Understand "white" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-contains-white.
Understand "black" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-contains-black.
Understand "red", "crimson", "blood", "bloody" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-blood.
Understand "full" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-fullish.
Understand "half" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-half.
Understand "crescent" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-crescent.
Understand "gibbous" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-gibbous.
Understand "new" as the zarf-lunator when the zarf-phase of the zarf-lunator is zarfphase-new.
 
The zarf-lunator can be zarf-done.
 
Rule for writing a paragraph about the zarf-lunator:
    if the zarf-lunator is not zarf-done:
        instead say "A large disk, half black and half white, is mounted on the south wall.";
    say "The lunar sphere on the wall is ";
    if the zarf-phase of the zarf-lunator is:
        -- zarfphase-new: say "entirely black";
        -- zarfphase-crescent: say "a white crescent";
        -- zarfphase-half: say "half white and half black";
        -- zarfphase-gibbous: say "mostly white";
        -- zarfphase-full: say "entirely white";
        -- zarfphase-blood: say "entirely red";
    if zarf-red-knob is in MBF4:
        say ". A knob is visible underneath it";
    instead say ".";
 
Check examining the zarf-lunator:
    if the zarf-lunator is not zarf-done:
        instead say "Upon closer examination, the circle is actually a sphere -- or a hemisphere, anyway, mounted high on one wall. The sphere itself is painted white, but an array of jointed black bands covers one side, leaving it half-and-half.[paragraph break]A wooden ring is mounted at the bottom edge of the sphere. It looks movable; you could push or pull it.";
    say "The sphere is mounted high on one wall, above a ring[if zarf-red-knob is in MBF4] and a brass knob[end if]";
    say ". It's a full yard across, and";
    if the zarf-phase of the zarf-lunator is:
        -- zarfphase-new: say " entirely covered by the black bands, thus representing a new moon";
        -- zarfphase-crescent: say " mostly covered by the black bands, leaving a white crescent";
        -- zarfphase-half: say " half covered by the black bands, thus showing a half moon";
        -- zarfphase-gibbous: say " one edge is covered by the black bands, thus showing a gibbous moon";
        -- zarfphase-full: say " entirely painted white, thus representing a full moon";
        -- zarfphase-blood: say " entirely painted red. You're not sure what that represents, but it makes you nervous";
    instead say ".";
 
Check taking the zarf-lunator:
    instead say "The sphere is built into the wall."
 
Check turning the zarf-lunator:
    instead say "You can't turn the sphere with your bare hands."
 
Check opening the zarf-lunator:
    instead try pulling the zarf-lunator.
Check closing the zarf-lunator:
    instead try pushing the zarf-lunator.
 
Check pulling the zarf-lunator:
    let P be the zarf-phase of the zarf-lunator;
    if the zarf-lunator is not zarf-done:
        now the zarf-lunator is zarf-done;
        now the zarf-phase of the zarf-lunator is zarfphase-gibbous;
        say "You pull the ring to the right. The black bands which cover half the sphere retract, leaving the surface mostly white, with just one black edge.[paragraph break]Aha! This must be a representation of the moon, now in the gibbous phase. Very clever.";
        instead zarf-check-lunar-outcomes;
    if P is zarfphase-blood:
        now the zarf-phase of the zarf-lunator is zarfphase-full;
        say "With a clank, the lunar sphere rotates back to its white side.";
        instead zarf-check-lunar-outcomes;
    if P is zarfphase-full:
        instead say "You cannot pull the ring any farther.";
    now P is the zarf-phase before P;
    now the zarf-phase of the zarf-lunator is P;
    say "You pull the ring. The black bands retract[if P is zarfphase-full] completely[end if], leaving the lunar sphere showing a [zarf-phase-desc of zarf-phase of the zarf-lunator].";
    instead zarf-check-lunar-outcomes;
 
Check pushing the zarf-lunator:
    let P be the zarf-phase of the zarf-lunator;
    if the zarf-lunator is not zarf-done:
        now the zarf-lunator is zarf-done;
        now the zarf-phase of the zarf-lunator is zarfphase-crescent;
        say "You push the ring to the left. The black bands which cover half the sphere extend, leaving the surface mostly black, with just one white edge.[paragraph break]Aha! This must be a representation of the moon, now in the crescent phase. Very clever.";
        instead zarf-check-lunar-outcomes;
    if P is zarfphase-blood:
        now the zarf-phase of the zarf-lunator is zarfphase-full;
        say "With a clank, the lunar sphere rotates back to its white side.";
        instead zarf-check-lunar-outcomes;
    if P is zarfphase-new:
        instead say "You cannot push the ring any farther.";
    now P is the zarf-phase after P;
    now the zarf-phase of the zarf-lunator is P;
    say "You push the ring. The black bands extend[if P is zarfphase-new], completely covering the lunar sphere; it now shows a[else]; the lunar sphere now shows a[end if] [zarf-phase-desc of zarf-phase of the zarf-lunator].";
    instead zarf-check-lunar-outcomes;
 
Check setting the zarf-lunator to a topic listed in the Table of Zarf Phase Topics:
    let P be the zarf-phase entry;
    if P is not zarfphase-valid:
        instead say "You can't set the device to that.";
    if the zarf-phase of the zarf-lunator is P:
        instead say "The lunar sphere is already a [zarf-phase-desc of P].";
    if P is zarfphase-blood:
        if the zarf-red-knob is not in MBF4:
            instead say "You're not sure how to set [the zarf-lunator] to that.";
        instead try turning the zarf-red-knob;
    if the zarf-lunator is not zarf-done:
        now the zarf-lunator is zarf-done;
        say "(You fiddle with the ring, discovering the function of the lunar sphere.)[command clarification break]";
    if the zarf-phase of the zarf-lunator is not zarfphase-blood:
        say "You move the ring, setting [the zarf-lunator]";
    else:
        say "You move the ring, rotating [the zarf-lunator] back to its white side and setting it";
    now the zarf-phase of the zarf-lunator is P;
    say " to a [zarf-phase-desc of P].";
    instead zarf-check-lunar-outcomes;
 
Check setting the zarf-lunator to:
    instead say "You can't set [the zarf-lunator] to that.";
 
The zarf-red-knob is scenery. The printed name is "knob".
Understand "brass", "knob", "niche" as the zarf-red-knob.
 
The description of the zarf-red-knob is "A brass knob is now visible in a niche below the lunar sphere."
 
Check pushing the zarf-red-knob:
    instead say "The knob is meant to be twisted."
Check pulling the zarf-red-knob:
    instead say "The knob is meant to be twisted."
 
Check turning the zarf-red-knob:
    now the zarf-lunator is zarf-done;
    if the zarf-phase of the zarf-lunator is zarfphase-blood:
        now the zarf-phase of the zarf-lunator is zarfphase-full;
        say "With a clank, the lunar sphere rotates back to its white side.";
        instead zarf-check-lunar-outcomes;
    if the zarf-phase of the zarf-lunator is not zarfphase-full:
        say "You hear a clunk. The black bands retract. At the same time, the white sphere itself begins to rotate in the wall";
    else:
        say "You hear a clunk, and the white sphere begins to rotate in the wall";
    now the zarf-phase of the zarf-lunator is zarfphase-blood;
    say "[first time]. As the previously-hidden face comes into view, you see that it is painted red[only]. When the sphere comes to a halt, a full, bloody disc looms above you.";
    instead zarf-check-lunar-outcomes;
 
To zarf-check-lunar-outcomes:
    if zarf-ritual-active:
        now zarf-magic-worked-flag is true;
        follow the zarf-outcome-rulebook for zarf-word-phasechange;
 
 
Chapter - Research
 
The zarf-cabinet is scenery in MBF4. The printed name is "filing cabinet".
Understand "file", "files", "filing", "cabinet", "antique", "majestic", "mahogany", "drawer", "drawers", "paper", "papers", "journal", "journals" as the zarf-cabinet.
The zarf-cabinet can be zarf-done.
 
Check examining the zarf-cabinet:
    say "The cabinet is a genuine brass-bound mahogany antique. It must once have graced the office of some elegant insurance company. Now it is stained with damp and decay. Drawers sprawl open, spilling journals and papers in disorderly array.";
    zarf-show-cabinet-index;
    zarf-cabinet-check-francois;
    stop the action;
 
Understand "read [zarf-cabinet]" as reading when the location is MBF4.
 
Check reading the zarf-cabinet:
    if the zarf-cabinet is not zarf-done:
        now the zarf-cabinet is zarf-done;
        instead say "You pull out a random journal. It's a crude, faded sheaf of hand-written notes. Aspects... alchemical influences... is this arcane research?[paragraph break]The next journal is filled with a painstaking German scrawl. The next is in no language you recognize -- but the diagrams resemble the runes that fill this chamber. And the name in the flyleaf: CRAKHNE.[paragraph break]This [italic type]is[roman type] occult research, you slowly realize. The notes of your ancestors, untold generations[apostrophe] worth, collected by the heroic effort of whoever set up this place. The latest dates you can find are from the 1920s; the earliest are lost in unfamiliar languages and rotting ink.[paragraph break]Sadly, the meticulous zeal of the collector was matched only by his (her?) blithering disregard for organization. You might be able to find the notes of a specific writer, but you'll have to search by name.";
    say "The filing cabinet is stuffed with arcane journals, the occult legacy of generations of your ancestors. Sadly, the meticulous zeal of the collector was matched only by his (her?) blithering disregard for organization. You might be able to find the notes of a specific writer, but you'll have to search by name.";
    zarf-show-cabinet-index;
    let N be the number of familiar zarf-journals;
    if N is zero:
        say "[line break](Type 'LOOK UP [italic type]NAME[roman type] IN CABINET' or 'READ ABOUT [italic type]NAME[roman type]' to search for a particular ancestor's notes.)";
    zarf-cabinet-check-francois;
    stop the action;
 
To zarf-show-cabinet-index:
    let N be the number of familiar zarf-journals;
    if N is not zero:
        say "[line break]You have located [N in words] interesting [if N is one]item[else]items[end if]:[line break]";
        repeat with J running through familiar zarf-journals:
            say "  [J][line break]";
    let M be the number of unfamiliar zarf-findable zarf-journals;
    if M is not zero:
        say "[line break]You have come across [M in words][if N is not zero] additional[end if] [if M is one]name[else]names[end if], not yet researched:[line break]";
        repeat with J running through unfamiliar zarf-findable zarf-journals:
            say "  [J][line break]";
 
Check smelling the zarf-cabinet when the zarf-manstate of zarf-manifestation is zarfm-crawl-fairy:
    say "An intense orchid scent drifts from the filing cabinet.";
    zarf-cabinet-check-francois;
    stop the action;
 
Check searching the zarf-cabinet:
    instead try reading the zarf-cabinet.
 
Check taking the zarf-cabinet:
    instead say "The cabinet must weigh half a ton, empty -- immovable. Not to mention, welded to the floor with the gunk of ages."
 
Check looking under the zarf-cabinet:
    instead try taking the zarf-cabinet.
Check pushing the zarf-cabinet:
    instead try taking the zarf-cabinet.
Check pulling the zarf-cabinet:
    instead try taking the zarf-cabinet.
 
Check opening the zarf-cabinet:
    instead say "You'll have to search for something specific in this mess."
 
Check closing the zarf-cabinet:
    instead say "The drawers are packed too full to close any further."
 
Check entering the zarf-cabinet:
    instead say "There's barely room for your hand in the overstuffed drawers, never mind the rest of you."
 
Check inserting something into the zarf-cabinet:
    instead say "There's barely room for your hand in the overstuffed drawers, never mind any new additions."
 
Check consulting the zarf-cabinet about when zarf-ritual-active:
    instead say "You cannot concentrate on research when the world is wrapped in ritual silence. You'll have to end the ritual first."
 
Check consulting the zarf-cabinet about a topic listed in the Table of Zarf Cabinet Topics:
    instead zarf-display-journal zarf-journal entry.
 
Check consulting the zarf-cabinet about:
    instead say "You find nothing about that in the filing cabinet."
 
Understand "search for [text] in [something]" as consulting it about (with nouns reversed).
Understand "search [something] for/about [text]" as consulting it about.
 
Zarf-vague-consulting is an action applying to one topic.
Understand "look up [text]" as zarf-vague-consulting when the location is a zarf-room.
Understand "read about [text]" as zarf-vague-consulting when the location is a zarf-room.
Understand "search for [text]" as zarf-vague-consulting when the location is a zarf-room.
Understand "research [text]" as zarf-vague-consulting when the location is a zarf-room.
 
Check zarf-vague-consulting when the location is not MBF4:
    if the location is MBF4-alter:
        instead say "[zarf-fake-cabinet-consulting].";
    instead say "The filing cabinet is not visible to you."
 
Check zarf-vague-consulting when zarf-ritual-active:
    instead say "You cannot concentrate on research when the world is wrapped in ritual silence. You'll have to end the ritual first."
 
Check zarf-vague-consulting a topic listed in the Table of Zarf Cabinet Topics:
    instead zarf-display-journal zarf-journal entry.
 
Check zarf-vague-consulting:
    instead say "You find nothing about that in the filing cabinet."
 
A zarf-journal is a kind of thing.
A zarf-journal can be zarf-failurey.
A zarf-journal can be zarf-findable.
The description of a zarf-journal is usually "(BUG) [The item described] has no description."
 
The zarf-journal-desc rules are a zarf-journal based rulebook.
 
The last zarf-journal-desc rule for a zarf-journal (called J):
    say "[description of J][line break]";
 
To zarf-display-journal (J - zarf-journal):
    if the zarf-cabinet is not zarf-done:
        now the zarf-cabinet is zarf-done;
        say "The cabinet contains occult research, you slowly realize. The notes of your ancestors, untold generations[apostrophe] worth, collected by the heroic effort of whoever set up this place. The latest dates you can find are from the 1920s; the earliest are lost in unfamiliar languages and rotting ink. Sadly, the meticulous zeal of the collector was matched only by his (her?) blithering disregard for organization.[paragraph break]";
        say "(looking that up in the file cabinet)[line break]";
    if J is zarf-failurey:
        instead follow the zarf-journal-desc rules for J;
    if J is zarfj-henry:
        if zarfj-henry is not zarf-findable:
            instead say "You make a tentative search for that name, but find nothing.";
        if the zarf-book is zarf-done:
            instead say "You have already found [zarf-book].";
        if zarf-fakebook is not in zarf-fakecabinet:
            instead say "You search under the name Henry Galtmice, but find nothing.";
        now the player carries zarf-book;
        now zarf-book is zarf-done;
        now zarfj-henry is familiar;
        instead say "You search under the name Henry Galtmice, and find [zarf-book], filed exactly where it ought to be! You lift the book from the drawer in triumph.";
    if J is not zarf-findable:
        instead say "You don't know enough about that to look it up.";
    if J is not familiar:
        now J is familiar;
        say "You [one of]root through[or]dig through[or]search through[or]scavenge through[at random] the [one of]mess of journals[or]mass of papers[or]disorderly pile[or]disorganized heap[at random]";
        say ", and are rewarded[one of] with success[or] with success[or][stopping]![paragraph break]";
    else:
        say "You pull the relevant paper back out of the heap.[paragraph break]";
    instead follow the zarf-journal-desc rules for J;
 
Table of Zarf Cabinet Topics
topic    zarf-journal
"me/myself/self"    zarfj-self
"naomi cragne/verwald/--"    zarfj-self
"husband"    zarfj-peter
"peter cragne/--"    zarfj-peter
"cragne/crane/crakhne"    zarfj-cragne
"verwald"    zarfj-verwald
"verlac/anchorhead"    zarfj-verlac
"frobozz/gandalf/yoda/rincewind/zarf"    zarfj-wizards
"name"    zarfj-name
"anax cragne/--"    zarfj-anax
"ladoro/feraud" or "ladoro feraud"    zarfj-ladoro
"francois crane/--"    zarfj-francois
"gretel/aschar" or "gretel aschar"    zarfj-gretel
"morovor krahne/--"    zarfj-morovor
"jennever cragne/--" or "jenever cragne/--"    zarfj-jennever
"kteh/nyare/ktehnyare" or "kteh nyare"    zarfj-ktehnyare
"margreth cragne/--" or "margrethe cragne/--"    zarfj-margreth
"ersebet cranyi/--" or "ersebeth cranyi/--"    zarfj-ersebet
"ersabet cranyi/--" or "ersabeth cranyi/--"    zarfj-ersebet
"shireen/vega" or "shireen vega"    zarfj-shireen
"malford cragne/--"    zarfj-malford
"arne/cragnessum" or "arne cragnessum"    zarfj-arne
"henry/galtmice" or "henry galtmice"    zarfj-henry
 
zarfj-name is a zarf-failurey zarf-journal. The description is "None of your ancestors was so literal-minded as to be named 'Name', apparently."
 
zarfj-wizards is a zarf-failurey zarf-journal. The description is "Just some shrivelled old [one of]bat[or]numpty[or]geek[or]fart[at random] in a pointy hat."
 
zarfj-self is a zarf-failurey zarf-journal. The description is "The journals only date to the 1920s, so you are not mentioned[one of][or]. You dig through one more time, just in case you have some horrible time-travelling stalker, but no[or][stopping]."
 
zarfj-peter is a zarf-failurey zarf-journal. The description is "The journals only date to the 1920s, so Peter is not mentioned."
 
zarfj-cragne is a zarf-failurey zarf-journal. The description is "There are any number of Cragnes, Cranes, Krahnes, Crakhnes, and so on in the mess. You'll need to search for a more specific name."
 
zarfj-verwald is a zarf-failurey zarf-journal. The description is "[one of]To your surprise, you see[or]You see[stopping] a couple of mentions of the name Verwald. Did your own ancestors have something to do with Peter's family? Unfortunately, none of the references are specific enough to follow."
 
zarfj-verlac is a zarf-failurey zarf-journal. The description is "You stumble across a reference to a Verlac family in some remote Massachusetts town. You can't figure out what they have to do with anything, though."
 
zarfj-anax is a zarf-journal. The printed name is "Anax Cragne".
Understand "anax", "cragne" as zarfj-anax.
The description is "Anax Cragne seems to have been a late dabbler in magic. Many of the journals in the filing cabinet have his signature inside the flyleaf, or his crabbed annotations in the margin, or both.[paragraph break]His great triumph, you gather, was the discovery of the ritual bound -- the runes which surround this room -- and the words of Sealing and Unsealing which empower them. By speaking the Sealing Word [zarf-foreign-italic of zarf-word-sealing], you alter this space so that magic becomes a possibility, rather than a fanciful dream. Even more importantly, the Unsealing Word [zarf-foreign-italic of zarf-word-unsealing] ends the ritual, banishing all otherwordly influences[zarf-familiarize zarf-word-sealing][zarf-familiarize zarf-word-unsealing][first time].[paragraph break][zarf-foreign of zarf-word-sealing] and [zarf-foreign of zarf-word-unsealing]. You study the syllables -- Anax was a stickler for pronounciation -- and turn the words over on your tongue. Yes. You can say these[only]."
 
zarfj-ladoro is a zarf-journal. The printed name is "Ladoro Feraud".
Understand "ladoro", "feraud" as zarfj-ladoro.
The description is "Ladoro Feraud was a student of the arcane arts whom Anax Cragne met in the South Seas. The one journal you find in his handwriting is terse, but mentions something about a Word of Enlightenment, which can be used in rituals to seek wisdom and discern truth[zarf-familiarize zarf-word-enlightenment].[paragraph break]Anax's marginal notes spell out the word: [zarf-foreign-italic of zarf-word-enlightenment][first time]. You wrap your tongue around the harsh phonemes until you feel sure of them[only]."
 
To zarf-cabinet-check-francois:
    if zarf-word-enlightenment is zarf-count-positive and zarfj-francois is not familiar:
        say "[line break]Your eyes are drawn to the back of the cabinet. Is that a bit of paper poking out from behind one of the drawers? You can't reach it, but you can just make out the name 'Francois Crane' on the paper's edge[zarf-findabilize zarfj-francois].";
    if zarf-manstate of zarf-manifestation is zarfm-crawl-fairy:
        say "[line break]The tiniest green shoot has crawled up the side of the cabinet. Its tip blooms into a minute, perfect orchid, which breathes its scent out into the room. The bloom curls over the edge of a journal which bears the name 'Margreth Cragne'[zarf-findabilize zarfj-margreth].";
 
zarfj-francois is a zarf-journal. The printed name is "Francois Crane".
Understand "francois", "crane" as zarfj-francois.
The description is "Francois Crane spent his life searching for the Gates of Slumber, which lead to the Dreamlands. 'Seek the Temple of the Flame, and beneath a Blood Moon speak the Unnameable Name...' (Francois certainly did like capital letters.) He died in 1835 without ever reaching his goal. In his search, however, he uncovered the Word of Winter: [zarf-foreign-italic of zarf-word-winter], which speaks of cold, clarity, precision, sterility, and focus[zarf-familiarize zarf-word-winter][first time].[paragraph break]You memorize the word. It sits in your mind like an icy prism[only]."
 
zarfj-gretel is a zarf-journal. The printed name is "Gretel Aschar".
Understand "gretel", "aschar" as zarfj-gretel.
The description is "Gretel Aschar was a Viennese witch, or seeress, who lived in the late 1700s. She was skilled in dreaming projection, but aspired to penetrate the illusion of Dream into the deeper truth beneath. She vanished in 1795 -- whether due to death or success, no one knows.[paragraph break]The next page in the journal has nothing to do with Gretel. It describes the Word of Invocation: [zarf-foreign-italic of zarf-word-invoke], which brings forth voices from outside the world[zarf-familiarize zarf-word-invoke]. A footnote adds, 'Combine with Morovor's Word of Summer?' But there is no indication of what that might be[zarf-findabilize zarfj-morovor][first time].[paragraph break]You memorize the Word of Invocation, anyhow[only]."
 
zarfj-morovor is a zarf-journal. The printed name is "Morovor Krahne".
Understand "morovor", "krahne" as zarfj-morovor.
The description is "Morovor Krahne (1752-1801) was a distant cousin of the family who studied astronomy. Or perhaps astrology, as his notes have nothing but contempt for the 'modern' science of telescopes and Newton. He was obsessed with the relationship between the stars, the seasons, and the cycles of history. Ultimately he destroyed his health dragging menhirs around a Scottish moor, attempting to construct an astronomical stone circle which could predict, or invoke, the End of Days.[paragraph break]Almost incidentally he perfected the modern forms of the Seasonal Names. Of the four, only one survives in this fragmentary journal: [zarf-foreign-italic of zarf-word-summer], the Word of Summer, which bespeaks heat, haze, fertility, verdancy, and riot[zarf-familiarize zarf-word-summer][first time].[paragraph break]You memorize the word. It sits in your mind like a roiling thundercloud[only]."
 
zarfj-jennever is a zarf-journal. The printed name is "Jennever[if familiar] Cragne[end if]".
Understand "jennever", "jenever", "cragne" as zarfj-jennever.
The description is "There are only a few fragmentary notes about Jennever Cragne. She was a summoner of some repute, but 'Summoned That from which one Cannot Turn Away,' whatever that means. One torn chart shows combinations of moon and season conducive to summoning. High Summer and the full moon are noted for invoking nurturing spirits. 'And the Oppositte, if one wishes a Spirit of Intellecte,' it concludes airily."
 
zarfj-ktehnyare is a zarf-journal. The printed name is "Kteh Nyare".
Understand "kteh", "nyare", "ktehnyare" as zarfj-ktehnyare.
The description is "Kteh Nyare was a scribe, or priest, or tutelary god -- stories disagree -- in the legendary Lost Dynasty of Egypt. The rulers in this period sojourned deep into forbidden arts, raising the Old Kingdom to unrivaled sovereignty. When they fell, their ruin was so terrible that their names and deeds have been entirely erased from history.[paragraph break]It was Kteh Nyare who first committed arcane Names to papyrus for study. Modern occultists use newer alphabets, but Kteh Nyare's hieroglyphics were an exacting and precise system of writing.[paragraph break][first time]You study the description of the hieroglyphics. They clarify your understanding of the Words you have learned. [only]By speaking with greater precision, you realize, you can amplify most of [one of]those Words[or]the Words you have learned[stopping] -- repeating the Word to intensify its effect[zarf-redoublify]."
 
zarfj-margreth is a zarf-journal. The printed name is "Margreth Cragne".
Understand "margreth", "margrethe", "cragne" as zarfj-margreth.
The description is "Margreth Cragne studied visionary meditation in this very basement in the late 1880s. She wrote of the art of scrying a spirit who does not want to be observed. 'Bring forth an ice-covered mirror under the full moon. Speak the Word of Enlightenment; then polish the glass with your hand. Then wait until the moon is new and allow the ice to melt. Your will shall penetrate the glass and reveal that which you seek.'"
 
zarfj-ersebet is a zarf-journal. The printed name is "Ersebet[if familiar] Cranyi[end if]".
Understand "ersebet", "cranyi" as zarfj-ersebet.
The description is "Ersebet Cranyi was[first time], as the old woman said,[only] a student in the Viennese cultic circle at the end of the 1700s. After the group schismed in 1795, Ersebet travelled to America and attempted to barter visionary secrets with the indigenous shamans of the New World. They, by all accounts, wanted nothing to do with her, and she spent her remaining days poring over fragmentary manuscripts in a Boston garret.[paragraph break]Her one creditable discovery was the Trance Word, [zarf-foreign-italic of zarf-word-dream], which allows the ritualist to project his or her awareness into a visionary realm. This is not the true Dreamlands, but a space within the practitioner's own mind, shaped by the symbology of their perceptions. The visionary state is thus merely a foundation from which greater rituals may be enacted[zarf-familiarize zarf-word-dream]."
 
zarfj-shireen is a zarf-journal. The printed name is "Shireen Vega".
Understand "shireen", "vega" as zarfj-shireen.
The description is "The only trace left by this Shireen Vega is an aspect chart, drawn up in careful ink like a homework assignment. The two notable lines are 'Summer garden, gibbous moon, invocation&enlightenment' and 'Winter garden, crescent moon, redoubled invocation'."
 
zarfj-malford is a zarf-journal. The printed name is "Malford[if familiar] Cragne[end if]".
Understand "malford", "cragne" as zarfj-malford.
zarfj-malford can be zarf-done. [Recognized glyphs as fitting the page.]
The description is "Malford 'the Warlock' Cragne, the black sheep of the family. Sheep as in rather dim and basically harmless, despite his self-chosen monicker. Malford desperately desired to create the Word of Chaos, an arcane tool of ruin and decay. Unfortunately for him, his diagram lacked several important hieroglyphs. In trying to complete it, he journeyed unwisely into the Otherworlds. His body was found, mindless and mumbling, in 1850.[zarfj-malford-diagram]".
 
To say zarfj-malford-diagram:
    say "[paragraph break]You [if zarf-recalling]recall[else]examine[end if] the Chaos diagram. It's a complex arrangement which defines a word in the system of old Kteh Nyare. However, three key glyphs are missing";
    let N be the zarf-glyph-count;
    if N is not zero:
        if zarfj-malford is not zarf-done:
            now zarfj-malford is zarf-done;
            say ". You realize that the [if N is 1]glyph[else][N in words] glyphs[end if] you discovered in the dream world will fit in [if N is 1]one gap[else]the gaps[end if]";
        else:
            say ". You have discovered[if N is 3] all[end if] [N in words] of them";
    if N is 3:
        say ".[paragraph break]With the three missing glyphs, you are able to piece together the pronounciation of the Word of Chaos: [zarf-foreign-italic of zarf-word-chaos][zarf-familiarize zarf-word-chaos]";
    say ".[no line break]"
 
zarfj-arne is a zarf-journal. The printed name is "Arne Cragnessum".
Understand "arne", "cragnessum" as zarfj-arne.
The description is "Arne Cragnessum's journal is a tidy volume bound in green leather, with his name inside the flyleaf. It describes his search for the Gates of Slumber and the Unpronounceable Name one must speak to reach them. The last entry talks of '...the Summerlands, in which the Unnameable King lies entombed in stone... No mortal may walk those fields and return; but the Summer Isles sometimes impinge on the Dream realm, when the aspects align, and a ritualist may search within his own mind for an echo.'"
 
zarfj-henry is a zarf-journal. The printed name is "Henry Galtmice".
Understand "henry", "galtmice" as zarfj-henry.
 
 
Chapter - Workroom Scenery
 
The zarf-mirror is scenery in MBF4. The printed name is "mirror".
The zarf-mirror has a zarf-color. The zarf-mirror is zarfc-none.
Understand "full-length", "full", "length", "iron", "wrought", "frame", "badly", "fogged", "clouded", "frost", "frosted", "clear", "glass", "mirror" as the zarf-mirror.
 
Check examining the zarf-mirror:
    if zarf-word-winter is zarf-count-positive or zarf-word-enlightenment is zarf-count-positive:
        instead try searching the zarf-mirror;
    instead say "The mirror is mounted in a rather crude frame of wrought iron. The glass is in poor condition, pitted and fogged[zarf-check-initial-note].";
 
Check taking the zarf-mirror:
    instead say "The mirror frame is bolted to the brick[zarf-check-initial-note]."
 
Check entering the zarf-mirror:
    instead say "This isn't Wonderland. Quite the opposite, you think."
 
Check attacking the zarf-mirror:
    instead say "Breaking a mirror down here is probably worth seven grinding, unimaginably eternal aeons of bad luck."
 
Check touching the zarf-mirror:
    if zarf-word-winter is zarf-count-positive:
        let OldC be the zarf-color of the zarf-mirror;
        if OldC is not zarfc-none:
            instead say "You place your hand against the [if zarf-word-winter is zarf-count-two]frosted[else]cold[end if] glass, but the [zarf-color OldC] glow does not change.";
        if zarf-word-winter is zarf-count-two and zarf-word-enlightenment is zarf-count-positive:
            let C be the zarf-phase-color of the zarf-phase of the zarf-lunator;
            now the zarf-mirror is C;
            if zarf-word-invoke is zarf-count-positive:
                say "You place your hand against the frosted glass. The cold burns through skin and nerve, but slowly, [zarf-color-a C] glow begins to shine through the ice.[paragraph break]With a startling crack, the mirror-glass splinters! A wave of agonizing cold rolls through the room. The fractured glass blazes with [zarf-color-a C] brilliance which strikes through your body.[paragraph break]You try to pull away, but your muscles do not respond. You feel ice crystals growing in your flesh, and then you can feel nothing.";
                end the story saying "You have shattered";
                stop the action;
            instead say "You place your hand against the frosted glass. The cold burns through skin and nerve, but slowly, [zarf-color-a C] glow begins to shine through the ice. When you pull your hand away, the glow remains.";
        instead say "The glass is so cold that it burns your skin.";
    instead say "The glass feels pristinely polished. Odd, considering its appearance[zarf-check-initial-note]."
 
Check rubbing the zarf-mirror:
    instead try touching the zarf-mirror.
 
Check pushing the zarf-mirror:
    instead say "The mirror frame is fixed in place[zarf-check-initial-note].";
Check pulling the zarf-mirror:
    instead try pushing the zarf-mirror.
 
Check searching the zarf-mirror:
    if the zarf-count of zarf-word-winter is:
        -- 1:
            let C be the zarf-color of the zarf-mirror;
            if C is not zarfc-none:
                if the zarf-phase of the zarf-lunator is not zarfphase-new:
                    instead say "The glass does not reflect you, or the room. You are peering into an infinite depth filled with [zarf-color C] light.";
                say "You peer into the glass...[paragraph break]";
                if C is:
                    -- zarfc-sepia:
                        instead say "You see an ancient wasteland, lit by the sepia light of a dying sun. No tree or blade of grass stirs on the plain; nothing moves.[paragraph break]In the center of the plain stands a crumbling pyramid. A few sparks of light shine forth from gaps in the stone, but they are feeble against the coming night.";
                    -- zarfc-ianthine:
                        instead say "You see a sunken city, all choked with coral. Blue rays of light slant down from the surface, illuminating vast arches and causeways. Fish flit through the ruins... but are they ruins? And are those fish? You cannot say.";
                    -- zarfc-cesious:
                        instead say "You see a city of enormous stone blocks, leaning on each other at odd angles. No... the angles seem to make sense, in a way you cannot articulate. Or do they? You attempt to follow the pattern, but it refuses to conform to any familiar structure.[paragraph break]You are increasingly unsettled as you study the alien architecture. Why does that form go [italic type]there[roman type]? Is that one convex or concave? Surely there is logic to it all![paragraph break]The vision obsesses you. After a time, you can think of nothing else[zarf-go-mad].";
                    -- zarfc-fulvous:
                        instead say "You see a garden of vines and hanging fruit. Except the vines move, and the fruit has eyes. Something flutters by on fleshy flaps of wing. A tree splits open and licks its lips with a glossy tongue.[paragraph break]The biology is fascinating, until you realize that eyes are tearing themselves open in the palms of your hand, as well[zarf-go-mad].";
                    -- zarfc-erythraean:
                        end the story saying "You have unleashed something upon the world";
                        instead say "You see a primordial world filled with star-shaped fungal blooms. Mobile hyphae dart and drill through the undergrowth; slow slime-mold tides ebb and flow. Every motion is alien, and you watch in fascination.[paragraph break]After a time, you notice a trace of spore-dust is filtering through the glass. It settles on your skin and begins to itch.";
                    -- zarfc-pearly:
                        if zarfj-ersebet is familiar:
                            instead say "You see a shifting field of geometry, all illuminated by pearly light, but otherwise empty.";
                        instead say "You see a shifting field of geometry, all illuminated by pearly light[zarf-findabilize zarfj-ersebet][one of]. Within it, Gretel Aschar's decrepit face slowly comes back into focus. Her wrinkles twist into a scowl of utter disgust.[paragraph break]'Fine. [italic type]Fine.[roman type] You seek the way to the Gates of Slumber? Find the writings of my student Ersebet. A fool, she was, but she knew more than a little of the ways of Dream.' A glare of unutterable contempt. 'And she knew, for a wonder, how to [italic type]leave an old woman alone[roman type].'[paragraph break]The geometric light seems to turn inside out, and the face is once again gone from your sight[or]. But there is no trace of Gretel Aschar, or of this Ersebet either[stopping].";
                    -- otherwise:
                        instead say "(BUG) The glass is filled with [zarf-color C] light, but it's a new moon so you should have gotten something more interesting.";
            else if zarf-word-enlightenment is not zarf-count-positive:
                instead say "The glass does not reflect you, or the room. You are peering into an infinite starless depth. Somewhere in the distance, shadows might outline the shape of a face, peering back... or not? You cannot make it out clearly.";
            else:
                say "The glass does not reflect you, or the room";
                if zarfj-gretel is not zarf-findable:
                    now zarfj-gretel is zarf-findable;
                    instead say ". You are peering into an infinite starless depth. Far in the distance, a face forms... an epicene face, wrinkled and shriveled; but its dark eyes blaze with fierce gnosis.[paragraph break]The eyes lock with yours.[paragraph break]'You dare!' The words burn in your brain, although there is no whisper of sound. 'I achieved this plane in order to study the secrets of cosmic order, not to be disturbed by blundering novices from...' (the eyes squint) '...Vermont!? No! I forbid you. Let your scrying glass be sealed, in the name of Gretel Aschar!'[paragraph break]The face is whipped from your sight, leaving the glass clear and empty.";
                if zarfj-gretel is not familiar:
                    instead say ". You are peering into an empty starless depth. You can no longer see any trace of Gretel Aschar.";
                instead say ". You are peering into an empty starless depth.";
        -- 2:
            say "You try to peer into the mirror, but it is entirely frosted over";
            let C be the zarf-color of the zarf-mirror;
            if C is not zarfc-none:
                say ". [zarf-color-capa C] glow shimmers behind the ice";
            instead say ".";
        -- otherwise:
            if zarf-word-enlightenment is not zarf-count-positive:
                instead say "You peer into the mirror in vain. The glass is so clouded that you can barely make out your own shape in it, never mind the rest of the room[zarf-check-initial-note].";
            else:
                instead say "You peer into the mirror. Its clouding now appears vastly more intricate -- a fractal web of microfractures spread across the surface of the glass. Sadly, it is as opaque as ever."
 
The zarf-initial-note is a book. The printed name is "faded delivery note".
Understand "faded", "yellowed", "delivery", "note" as the zarf-initial-note.
The zarf-initial-note can be zarf-done.
The description of the zarf-initial-note is "A faded and yellowed note which was tucked behind the mirror. A few words are scrawled on it in equally faded ink."
The passage of the zarf-initial-note is "[zarf-findabilize zarfj-anax][zarf-findabilize zarfj-ladoro]'[italic type]Delivery:[roman type] for [italic type]Anax Cragne[roman type] -- one mirror, iron frame -- shipped from St Croix via Boston -- May of 1919.' Then in smaller letters on the back: 'The item has been delivered as it was deposited. The condition of the glass is none of our doing. Warranted by the hand of: [italic type]Ladoro Feraud[roman type].'"
 
To say zarf-check-initial-note:
    if the zarf-initial-note is not zarf-done:
        now the zarf-initial-note is zarf-done;
        now the zarf-initial-note is in MBF4;
        say ".[paragraph break]What's this? When you touch the frame, something comes loose from behind it and flutters to the floor. It seems to be some kind of delivery note";
 
The zarf-runes are plural-named scenery in MBF4. The printed name is "runes".
Understand "runes", "rune", "mark", "marks", "oddly", "angled", "oddly-angled", "jagged", "irregular", "bound", "boundary", "ritual" as the zarf-runes.
 
Check examining the zarf-runes:
    say "The runes are made of jagged, irregular marks";
    if zarf-ritual-active:
        instead say ". They are glowing with a grey steady light.";
    say ". They make your eyes ache";
    if zarf-word-sealing is familiar:
        say ".[paragraph break]You now recognize the runes as a ritual bound. The bound encloses the entire workroom. Within it, magic might work as it did in the old days, before the stars changed and the old knowledge faded from the Earth";
    instead say "."
 
Check entering the zarf-runes:
    instead say "You are already standing inside the ritual bound."
 
Check getting off the zarf-runes:
    instead say "You'd have to leave the room."
 
Check zarf-recalling the zarf-runes:
    instead try examining the zarf-runes.
 
Check listening to the zarf-runes:
    instead try listening to the location.
 
The zarf-brickwork is scenery in MBF4. The printed name is "brickwork".
Understand "brick", "bricks", "brickwork", "decaying", "ancient", "sooty", "irregular", "wall", "walls" as the zarf-brickwork.
 
Check examining the zarf-brickwork:
    instead say "All the basement walls are built of these ancient, sooty bricks. They must date from the era of hand-made bricks, as no two are quite exactly the same shape[one of][or]... or maybe their irregularity was planned? Surely not[stopping]."
 
Check taking the zarf-brickwork:
    instead say "Prying a brick from the decaying walls might be possible. It might also drop the entire basement onto your head. So you don't."
 
Check touching the zarf-brickwork:
    instead say "You feel a bit of the wall for loose bricks or hidden passageways. Nothing results."
Check pushing the zarf-brickwork:
    instead try touching the zarf-brickwork.
Check pulling the zarf-brickwork:
    instead try touching the zarf-brickwork.
 
 
Chapter - Manifestation
 
Zarf-manifest-state is a kind of value.
The zarf-manifest-state are zarfm-none, zarfm-whispers, zarfm-hotwhispers, zarfm-whispers-lit, zarfm-hotwhispers-lit, zarfm-whispers-2lit-mad, zarfm-prickling, zarfm-prickle-faded, zarfm-prickle-antic, zarfm-prickle-antic-mad, zarfm-prickle-ozone, zarfm-crawling, zarfm-crawl-fairy, zarfm-crawl-flowers, zarfm-crawl-jungle, zarfm-ruindecay, zarfm-garden-spirit, zarfm-garden-spirit-lit, zarfm-garden-hotspirit, zarfm-garden-toohot, zarfm-garden-toocold, zarfm-jungle-lit, zarfm-jungle-moonglyph, zarfm-jungle-toohot, zarfm-jungle-toocold, zarfm-glacier-lit, zarfm-glacier-skyglyph, zarfm-glacier-toohot, zarfm-glacier-toocold, zarfm-ungarden-toohot, zarfm-ungarden-toocold, zarfm-ungarden-ruin, zarfm-dream-ruin, zarfm-dream-toohot, zarfm-dream-toocold.
 
Definition: a zarf-manifest-state is zarfm-any-whisper if it is zarfm-whispers or it is zarfm-hotwhispers or it is zarfm-whispers-lit or it is zarfm-hotwhispers-lit or it is zarfm-whispers-2lit-mad.
Definition: a zarf-manifest-state is zarfm-any-prickle if it is zarfm-prickling or it is zarfm-prickle-faded or it is zarfm-prickle-antic or it is zarfm-prickle-antic-mad or it is zarfm-prickle-ozone.
Definition: a zarf-manifest-state is zarfm-any-crawl if it is zarfm-crawling or it is zarfm-crawl-fairy or it is zarfm-crawl-flowers or it is zarfm-crawl-jungle.
Definition: a zarf-manifest-state is zarfm-any-spirit if it is zarfm-prickle-faded or it is zarfm-prickle-antic or it is zarfm-prickle-antic-mad or it is zarfm-crawl-fairy or it is zarfm-garden-spirit or it is zarfm-garden-spirit-lit or it is zarfm-garden-hotspirit.
Definition: a zarf-manifest-state is zarfm-any-aroma if it is zarfm-crawl-flowers or it is zarfm-crawl-jungle or it is zarfm-prickle-ozone or it is zarfm-crawl-fairy.
Definition: a zarf-manifest-state is zarfm-any-garden-spirit if it is zarfm-garden-spirit or it is zarfm-garden-spirit-lit or it is zarfm-garden-hotspirit.
Definition: a zarf-manifest-state is zarfm-any-glyph if it is zarfm-jungle-moonglyph or it is zarfm-glacier-skyglyph.
 
To decide if zarf-manifest-equivalent (M1 - zarf-manifest-state) vs (M2 - zarf-manifest-state):
    if M1 is M2:
        yes;
    if M1 is zarfm-prickle-antic and M2 is zarfm-prickle-antic-mad:
        yes;
    if M2 is zarfm-prickle-antic and M1 is zarfm-prickle-antic-mad:
        yes;
    if M1 is zarfm-garden-spirit and M2 is zarfm-garden-spirit-lit:
        yes;
    if M1 is zarfm-garden-spirit-lit and M2 is zarfm-garden-spirit:
        yes;
    if M1 is zarfm-garden-spirit and M2 is zarfm-garden-hotspirit:
        yes;
    if M1 is zarfm-garden-hotspirit and M2 is zarfm-garden-spirit:
        yes;
    if M1 is zarfm-garden-spirit-lit and M2 is zarfm-garden-hotspirit:
        yes;
    if M1 is zarfm-garden-hotspirit and M2 is zarfm-garden-spirit-lit:
        yes;
    no.
 
To decide if zarf-manifest-nonequivalent (M1 - zarf-manifest-state) vs (M2 - zarf-manifest-state):
    if zarf-manifest-equivalent M1 vs M2:
        no;
    else:
        yes.
 
The zarf-manifestation is a thing. The printed name is "presence".
The zarf-manifestation is fixed in place.
The zarf-manifestation has a zarf-manifest-state called the zarf-manstate.
The zarf-manifestation has a zarf-manifest-state called the zarf-newstate.
Understand "presence", "manifestation" as the zarf-manifestation.
Understand "whisper", "whispers", "whispering", "torrent" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-any-whisper.
Understand "spirit" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-any-spirit.
Understand "aroma", "scent", "smell" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-any-aroma.
Understand "chill", "knowledge", "kteh", "nyare", "ktehnyare" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-prickle-faded.
Understand "antic" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-prickle-antic.
Understand "green", "sweet", "orchid" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-crawl-fairy.
Understand "mutter", "muttering", "mumble", "mumbling", "idiot" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-any-garden-spirit.
Understand "pattern" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-jungle-lit.
Understand "pattern" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-glacier-lit.
Understand "glyph", "hieroglyph" as the zarf-manifestation when the zarf-manstate of the zarf-manifestation is zarfm-any-glyph.
 
 
Check listening to the zarf-manifestation:
    instead try listening to the location.
 
Check smelling the zarf-manifestation:
    instead try smelling the location.
 
To zarf-manifest-clear:
    now the zarf-newstate of zarf-manifestation is zarfm-none.
 
To zarf-manifest-set (M - zarf-manifest-state):
    now the zarf-newstate of zarf-manifestation is M.
 
Check examining the zarf-manifestation:
    let M be the zarf-manstate of the zarf-manifestation;
    if M is zarfm-any-whisper:
        instead try listening to the location;
    if M is zarfm-any-garden-spirit:
        instead try listening to the location;
    if M is:
        -- zarfm-prickle-faded:
            zarf-findabilize zarfj-ktehnyare;
            instead say "[one of]You cannot see the spirit, but you attempt to capture its focus with your gaze.[paragraph break]You are struck by a hideous pain behind your eyes. It mutes, after a moment, to pressure and an icy chill.[paragraph break]There is sentience in the focus, an awareness that nearly overwhelms you. Somewhere something is shrieking; the not-sound scrapes along the thin edge of reality. But you can make out its intent. A name: [italic type]Kteh Nyare[roman type][or]You are unable to recapture the gaze of Kteh Nyare, if that is the spirit's name. But you have learned all that you need[stopping].";
        -- zarfm-crawl-fairy:
            instead try smelling the location;
        -- zarfm-jungle-lit:
            instead try examining the zarf-jungle-foliage;
        -- zarfm-glacier-lit:
            instead try examining the zarf-glacier-icewall;
        -- zarfm-jungle-moonglyph:
            instead try examining the zarf-moon;
        -- zarfm-glacier-skyglyph:
            instead try examining the zarf-sky;
    instead say "You cannot."
 
Check searching the zarf-manifestation:
    instead try examining the zarf-manifestation.
 
Instead of doing anything other than examining or searching or smelling or listening to the zarf-manifestation:
    instead say "You cannot."
 
Rule for writing a paragraph about the zarf-manifestation:
    let M be the zarf-manstate of the zarf-manifestation;
    if M is:
        -- zarfm-whispers: say "Unclear whispers drift in the silence.";
        -- zarfm-whispers-lit: say "Clear whispers drift in the silence.";
        -- zarfm-hotwhispers: say "Unclear whispers flood the silence.";
        -- zarfm-hotwhispers-lit: say "Clear whispers flood the silence.";
        -- zarfm-prickling: say "The atmosphere prickles unpleasantly.";
        -- zarfm-prickle-ozone: say "The air smells of ozone.";
        -- zarfm-prickle-faded: say "You sense a chill presence gazing at you from a vast distance. Knowledge lies within it.";
        -- zarfm-prickle-antic: say "You sense an antic presence flickering around the room.";
        -- zarfm-crawling: say "The atmosphere crawls across your skin.";
        -- zarfm-crawl-flowers: say "A thick aroma of flowers fills the room.";
        -- zarfm-crawl-jungle: say "The aroma of the jungle surrounds you, thick with growth and decay.";
        -- zarfm-crawl-fairy: say "You sense a green presence, and a sweet aroma from the filing cabinet.";
        -- zarfm-garden-spirit: say "A presence moves restlessly around the garden, muttering silently in your mind.";
        -- zarfm-garden-spirit-lit: say "A presence moves restlessly around the garden, muttering silently in your mind. You sense you could understand it if you listened.";
        -- zarfm-jungle-lit: say "There is a pattern in the leaves and vines.";
        -- zarfm-glacier-lit: say "There is a pattern in the wall of ice.";
        -- zarfm-jungle-moonglyph: say "Something has changed above.";
        -- zarfm-glacier-skyglyph: say "Something has changed above.";
        -- otherwise: say "You sense a presence."
 
To zarf-append-manifestation-listen:
    if the zarf-manstate of zarf-manifestation is:
        -- zarfm-whispers: say ".[paragraph break]Behind the silence, whispers lurk. They are not clear enough to make out";
        -- zarfm-hotwhispers: say ".[paragraph break]Behind the silence, whispers whirl wildly. They are not clear enough to make out";
        -- zarfm-whispers-lit: say ".[paragraph break]Behind the silence, whispers lurk. You can make out syllables, fragments of names. But one name is repeated over and over[zarf-findabilize zarfj-jennever]: 'Jennever, Jennever...' That much is clear";
        -- zarfm-hotwhispers-lit: say ".[paragraph break]Behind the silence, whispers whirl wildly. You can make out syllables, fragments of names in the torrent. But one name is repeated over and over[zarf-findabilize zarfj-jennever]: 'Jennever, Jennever, Jennever!' That much is clear";
        -- zarfm-garden-spirit: say ".[paragraph break]Behind the silence, a presence mumbles with vague, idiot persistence. You cannot make it out";
        -- zarfm-garden-spirit-lit: say ".[paragraph break]Behind the silence, a presence mumbles a name with idiot persistence[zarf-findabilize zarfj-malford]. 'Malford,' you make it out";
 
Check smelling a zarf-room when zarf-ritual-active:
    if the zarf-manstate of zarf-manifestation is:
        -- zarfm-prickle-ozone: instead say "You can smell electricity in the air.";
        -- zarfm-crawl-flowers: instead say "When you close your eyes, you can smell nothing but sun-warmed flowers.";
        -- zarfm-crawl-jungle: instead say "When you close your eyes, you feel yourself in a sweating-hot jungle, surrounded by flowering vines and humid, decaying earth.";
        -- zarfm-crawl-fairy: instead try smelling the zarf-cabinet;
 
 
Chapter - Ritual State
 
Zarf-redoubling-ability is a truth-state that varies.
The zarf-magic-worked-flag is a truth-state that varies.
 
To decide whether zarf-ritual-active:
    if the zarf-count of zarf-word-sealing is greater than zero:
        yes.
To decide whether zarf-ritual-inactive:
    if the zarf-count of zarf-word-sealing is greater than zero:
        no;
    yes.
 
To decide whether zarf-ritual-hyperactive:
    if the zarf-count of zarf-word-unnameable is greater than zero:
        yes.
 
To decide what thing is zarf-ritual-shutdown:
    let R be the player;
    if the player is zarf-gateplayer:
        now the player is zarf-dreamplayer;
        now the zarf-dais is zarfc-none;
        now the zarf-count of zarf-word-unnameable is zero;
        now the zarf-count of zarf-word-dream is one;
        if zarf-gateplayer carries the zarf-fakebook:
            now the zarf-fakebook is in MBF4-alter;
    else:
        if the player is zarf-dreamplayer:
            now the player is zarf-origplayer;
            now zarf-origplayer is yourself;
        now the zarf-mirror is zarfc-none;
        now the zarf-dais is zarfc-none;
        repeat with W running through zarf-words:
            now the zarf-count of W is zero;
    remove the zarf-manifestation from play;
    now the zarf-manstate of the zarf-manifestation is zarfm-none;
    decide on R.
 
Check listening to a zarf-room when zarf-ritual-active:
    if the location is a zarf-gate-room:
        instead say "You hear nothing of note.";
    say "The [zarf-shortdesc of the location] is eerily silent";
    let N be the number of zarf-count-positive zarf-words;
    if N is one and zarf-word-sealing is zarf-count-positive:
        say ", but you can nonetheless sense the Sealing Word [zarf-foreign of zarf-word-sealing] resonating in the air";
    else:
        say ", but you can sense words resonating in the air nonetheless: ";
        let C be false;
        repeat with W running through zarf-words:
            let N be the zarf-count of W;
            if N is greater than zero:
                if C is false:
                    now C is true;
                else:
                    say ", ";
                say "[zarf-foreign of W]";
                if N is greater than one:
                    say " (doubled)";
    if zarf-manifestation is in the location:
        zarf-append-manifestation-listen;
    instead say ".";
 
 
Section - The Ritual Rulebook
 
The zarf-ritual-rulebook is a zarf-word based rulebook.
 
The first zarf-ritual-rulebook rule for a zarf-word (called W) when zarf-ritual-inactive (this is the zarf-ritual nothing works when inactive rule):
    say "You [one of]chant[or]intone[or]speak[or]pronounce[at random] [the W]";
    if W is zarf-word-unnameable:
        say " -- in this dream-state, it does not seem difficult to pronounce. But";
    else:
        say ", but";
    instead say " nothing [one of]special[or]in particular[at random] [one of]happens[or]seems to happen[or]results[at random].";
 
The first zarf-ritual-rulebook rule for a zarf-word (called W) when zarf-ritual-active (this is the zarf-ritual check limit and increment rule):
    if zarf-redoubling-ability is false:
        if the zarf-count of W is at least 1:
            instead say "You try to say [the W], but its sound is already resonating in the air. You cannot speak it any louder.";
    else:
        if the zarf-count of W is at least 2:
            instead say "You cannot force [the W] out any louder than it already is.";
    if W is zarf-word-dream and the zarf-count of W is at least 1:
        if not zarf-ritual-hyperactive:
            instead say "Here within the dream, that word has no meaning.";
    now zarf-magic-worked-flag is true;
    increment the zarf-count of W;
    if W is zarf-word-summer:
        now the zarf-count of zarf-word-winter is ( 0 - the the zarf-count of W );
    if W is zarf-word-winter:
        now the zarf-count of zarf-word-summer is ( 0 - the the zarf-count of W );
 
[Before the above...]
The first zarf-ritual-rulebook rule for zarf-word-unnameable when the location is not MBF4-temple:
    if the location is MBF4:
        instead say "You know [the zarf-word-unnameable], but you are unable to pronounce it.";
    else:
        instead say "You concentrate and bring forth the Unnameable Name. Even in this dream-state, it scores your gums; you taste blood. But the syllables do not have the sound of magic. They turn flat and vanish with no effect on the world."
 
[Before the above...]
The first zarf-ritual-rulebook rule for a zarf-word (called W) when W is not zarf-word-valid (this is the zarf-ritual valid words only rule):
    instead say "(BUG) You cannot say [the W].";
 
[Before the above...]
The first zarf-ritual-rulebook rule for zarf-word-sealing (this is the zarf-ritual sealing rule):
    if zarf-ritual-active:
        say "You speak [the zarf-word-sealing]";
        if the location is MBF4:
            instead say ". The ritual bound flickers hectically for a moment, but nothing else happens[first time]. Apparently you can't start a ritual that has already begun[only].";
        else if the location is MBF4-temple:
            instead say ", but the ritual bound does not respond. You are, after all, already within an active ritual.";
        else:
            instead say ", but nothing happens. This entire [zarf-shortdesc of the location] exists within an active ritual.";
    now zarf-magic-worked-flag is true;
    now the zarf-count of zarf-word-sealing is 1;
    now MBF4 is zarf-done;
    instead say "You speak [the zarf-word-sealing][one of]. It echoes through the room, louder than you intended.[paragraph break]A faint grey light flickers within the runes, starting at your feet and then running around the perimeter of the room. Color seems to leach from the air as the glow brightens. Silence replaces it, filling the room... waiting for you to continue[or]. It echoes through the room.[paragraph break]The grey light flickers to life within the boundary runes. Silence presses in, awaiting your next word[stopping].";
 
[Before the above...]
The first zarf-ritual-rulebook rule for zarf-word-unsealing when zarf-ritual-active (this is the zarf-ritual unsealing rule):
    say "You speak [the zarf-word-unsealing]";
    let flag be zarf-ritual-shutdown;
    if flag is zarf-dreamplayer:
        say ". The dream-world flares with grey light and fades. You awaken.";
        instead try looking;
    else if flag is zarf-gateplayer:
        say ". Your surroundings flare crimson, then fade to black.[paragraph break]You awaken.";
        instead try looking;
    else:
        instead say ". The runes flare with grey light and then fade. The sense of pressing silence fades with them, leaving the room feeling dim and mundane once again.";
 
[Before the above...]
The first zarf-ritual-rulebook rule for a zarf-word (called W) when the location is a zarf-gate-room:
    if W is not zarf-word-unsealing:
        instead say "Magic words are just a dream."
 
A zarf-ritual-rulebook rule for zarf-word-enlightenment:
    say "You intone [the zarf-word-enlightenment]";
    if the zarf-count of zarf-word-enlightenment is one:
        say ". The world takes on a peculiar, hollow clarity";
        if the location is MBF4:
            say ". Every brick is edged with infinite precision; every crack wants to show you its secrets";
    else:
        say ". The clarity of the world increases, amplifying to an acutely painful pitch";
    instead say "."
 
A zarf-ritual-rulebook rule for zarf-word-winter:
    say "You chant [the zarf-word-winter]";
    if the zarf-count of zarf-word-winter is:
        -- 1: say ". A chill comes into the atmosphere, like an icy breeze that does not stir the air";
        -- 2: say ". The chill deepens to a numbing, aching wave of cold";
        -- -1: say ". The overwhelming heat lessens";
        -- 0: say ". The stifling heat fades from the air";
    instead say "."
 
A zarf-ritual-rulebook rule for zarf-word-summer:
    say "You chant [the zarf-word-summer]";
    if the zarf-count of zarf-word-summer is:
        -- 1: say ". A thick warmth creeps into the air around you. Sweat breaks on your skin";
        -- 2: say ". The warmth rises to a suffocating, stifling heat";
        -- -1: say ". The stabbing cold around you lessens";
        -- 0: say ". The icy chill fades from the air";
    instead say "."
 
A zarf-ritual-rulebook rule for zarf-word-invoke:
    say "You incant [the zarf-word-invoke]";
    if the zarf-count of zarf-word-invoke is one:
        say ". The silence around you takes on an attentive quality; something besides you is listening";
    else:
        say " again. The sense of listening becomes unbearably intense";
    instead say "."
 
A zarf-ritual-rulebook rule for zarf-word-dream:
    say "You speak [the zarf-word-dream]";
    if the zarf-count of zarf-word-dream is one:
        if the location is not MBF4:
            instead say ", (BUG) which should not be possible here.";
        say ". The basement walls, without moving, become distant and remote.";
        let R be MBF4-N;
        if zarf-word-chaos is zarf-count-positive:
            now R is MBF4-C;
        else if zarf-word-summer is zarf-count-positive:
            now R is MBF4-S;
        else if zarf-word-winter is zarf-count-positive:
            now R is MBF4-W;
        if zarf-word-invoke is zarf-count-positive:
            end the story saying "You have been rent asunder";
            instead say "[line break]You sense invisible eyes upon you. Something is drawn to your disembodied awareness as you hurtle through non-space. Something is drawing closer... and it has teeth.";
        zarf-transfer to R;
        stop the action;
    else:
        if the location is not MBF4-temple:
            instead say " again, (BUG) which should not be possible here.";
        say " a second time.[paragraph break]The world begins to blur.";
        zarf-hypertransfer to MBF4-stairs-middle;
        stop the action.
 
A zarf-ritual-rulebook rule for zarf-word-chaos when the location is MBF4:
    say "You chant [the zarf-word-chaos]";
    if the zarf-count of zarf-word-chaos is one:
        say ". The walls tremble";
        if the zarf-red-knob is not in MBF4:
            now the zarf-red-knob is in MBF4;
            say ".[paragraph break]A brick cracks off the wall beneath the lunar sphere! Peering closer, you realize it was a false front. A small niche is now revealed, in which is a brass knob";
        instead say ".";
    else:
        end the story saying "You have been crushed";
        instead say ".[paragraph break]The room shakes violently. Bricks begin to crash down from above. Oh dear.";
 
A zarf-ritual-rulebook rule for zarf-word-chaos when the location is a zarf-garden-room:
    say "You chant [the zarf-word-chaos]";
    if the zarf-count of zarf-word-chaos is one:
        if the location is:
            -- MBF4-N: instead say ". The earth trembles violently. Hedges shake, and then settle uneasily.";
            -- MBF4-W: instead say ". The mountain trembles violently. Splinters of ice fall from the glacier, but nothing worse occurs -- this time.";
            -- MBF4-S:
                now zarf-jungle-coffin is in MBF4-S;
                instead say ". The earth trembles violently.[paragraph break]A section of the stone wall collapses with a rumble! Behind it is revealed a rune-carved stone coffin -- a long-lost tomb.";
            -- otherwise: instead say ". The earth trembles violently.";
    else:
        end the story saying "You are lost";
        if the location is:
            -- MBF4-W: instead say ".[paragraph break]The mountain jolts, roars, and begins to collapse. You are carried away in a tide of stone.";
            -- MBF4-C: instead say ".[paragraph break]The decaying earth collapses beneath your feet, pitching you into the abyss.";
            -- otherwise: instead say ".[paragraph break]The earth collapses beneath your feet, pitching you into the abyss.";
 
A zarf-ritual-rulebook rule for zarf-word-chaos when the location is a zarf-dream-room:
    say "You chant [the zarf-word-chaos]";
    end the story saying "You are lost";
    if the location is:
        -- MBF4-lakebed: instead say ".[paragraph break]The lake bed shakes like a dying giant. The ground splits apart beneath your feet, and you plummet into the abyss.";
        -- MBF4-frozenlake: instead say ".[paragraph break]The ice sheet shakes and splits beneath your feet. There is no water beneath, only darkness, and you plummet into it.";
        -- otherwise: instead say ".[paragraph break]The ground splits apart beneath your feet, and you plummet into the abyss.";
 
A zarf-ritual-rulebook rule for zarf-word-unnameable:
    if the zarf-count of zarf-word-unnameable is one:
        instead say "You concentrate and bring forth [the zarf-word-unnameable]. Even in this dream-state, it scores your gums; you taste blood.";
    else:
        end the story saying "You have said too much";
        instead say "You try to speak [the zarf-word-unnameable] again, but the strain is too great. You cough blood and feel your throat tear.";
 
The last zarf-ritual-rulebook rule for a zarf-word (called W) (this is the zarf-ritual fallback word rule):
    instead say "You intone [the W]. Its sound rolls [if the location is MBF4]through the chamber[else]around you[end if], but you can sense no further change."
 
 
Section - The Outcome Rulebook
 
The zarf-outcome-rulebook is a zarf-word based rulebook.
 
First zarf-outcome-rulebook rule:
    zarf-manifest-clear.
 
First zarf-outcome-rulebook rule when zarf-magic-worked-flag is false:
    stop.
 
A zarf-outcome-rulebook rule for zarf-word-enlightenment when the location is MBF4 and zarfj-francois is not familiar:
    say "[line break]Something about the filing cabinet draws your attention."
 
A zarf-outcome-rulebook rule for zarf-word-winter when the location is MBF4:
    let C be the zarf-color of the zarf-mirror;
    if the zarf-count of zarf-word-winter is:
        -- 1: say "[line break]The fogged mirror slowly turns as clear as ice.";
        -- 2: say "[line break]A coarse layer of frost grows over the surface of the mirror, leaving it opaque[if C is not zarfc-none]. The [zarf-color C] light still shines through[end if].";
 
A zarf-outcome-rulebook rule for zarf-word-summer when the location is MBF4:
    let C be the zarf-color of the zarf-mirror;
    if the zarf-count of zarf-word-winter is:
        -- 1:
            say "[line break]The frost sublimes from the surface of the mirror, leaving it clear as ice[if C is not zarfc-none] and filled with [zarf-color-a C] glow[end if].";
        -- 0:
            now the zarf-color of the zarf-mirror is zarfc-none;
            say "[line break]Fog roils behind the mirror glass[if C is not zarfc-none], quenching the [zarf-color C] glow. The fog[else]. It[end if] spreads, leaving the mirror clouded, as it was when you first arrived.";
 
A zarf-outcome-rulebook rule when the location is MBF4 and zarf-word-invoke is zarf-count-one and zarf-unseasonable:
    if the zarf-count of zarf-word-enlightenment is:
        -- 0: zarf-manifest-set zarfm-whispers;
        -- 1: zarf-manifest-set zarfm-whispers-lit;
        -- 2: zarf-manifest-set zarfm-whispers-2lit-mad;
 
A zarf-outcome-rulebook rule when the location is MBF4 and zarf-word-invoke is zarf-count-two and zarf-unseasonable:
    if the zarf-count of zarf-word-enlightenment is:
        -- 0: zarf-manifest-set zarfm-hotwhispers;
        -- 1: zarf-manifest-set zarfm-hotwhispers-lit;
        -- 2: zarf-manifest-set zarfm-whispers-2lit-mad;
 
A zarf-outcome-rulebook rule when the location is MBF4 and zarf-word-invoke is zarf-count-positive and zarf-word-winter is zarf-count-positive:
    if the zarf-phase of the zarf-lunator is zarfphase-new and zarf-word-winter is zarf-count-one:
        zarf-manifest-set zarfm-prickle-faded;
    else if the zarf-phase of the zarf-lunator is zarfphase-full and zarf-word-winter is zarf-count-one:
        if zarf-word-enlightenment is not zarf-count-positive:
            zarf-manifest-set zarfm-prickle-antic;
        else:
            zarf-manifest-set zarfm-prickle-antic-mad;
    else if the zarf-phase of the zarf-lunator is zarfphase-gibbous and zarf-word-winter is zarf-count-one:
        zarf-manifest-set zarfm-prickle-ozone;
    else:
        zarf-manifest-set zarfm-prickling;
 
A zarf-outcome-rulebook rule when the location is MBF4 and zarf-word-invoke is zarf-count-positive and zarf-word-summer is zarf-count-positive:
    if the zarf-phase of the zarf-lunator is zarfphase-full and zarf-word-summer is zarf-count-one:
        zarf-manifest-set zarfm-crawl-fairy;
    else if the zarf-phase of the zarf-lunator is zarfphase-half and zarf-word-summer is zarf-count-one:
        zarf-manifest-set zarfm-crawl-flowers;
    else if the zarf-phase of the zarf-lunator is zarfphase-half and zarf-word-summer is zarf-count-two:
        zarf-manifest-set zarfm-crawl-jungle;
    else:
        zarf-manifest-set zarfm-crawling;
 
A zarf-outcome-rulebook rule when the location is MBF4 and zarf-word-chaos is zarf-count-positive and zarf-word-invoke is zarf-count-positive:
    zarf-manifest-set zarfm-ruindecay;
 
A zarf-outcome-rulebook rule when the location is MBF4-N and zarf-word-invoke is zarf-count-one:
    if zarf-word-enlightenment is not zarf-count-positive:
        zarf-manifest-set zarfm-garden-spirit;
    else:
        zarf-manifest-set zarfm-garden-spirit-lit;
 
A zarf-outcome-rulebook rule when the location is MBF4-N and zarf-word-invoke is zarf-count-two:
    zarf-manifest-set zarfm-garden-hotspirit;
 
A zarf-outcome-rulebook rule when the location is MBF4-W and zarf-word-enlightenment is zarf-count-one:
    zarf-manifest-set zarfm-glacier-lit;
 
A zarf-outcome-rulebook rule when the location is MBF4-S and zarf-word-enlightenment is zarf-count-one:
    if zarf-word-invoke is zarf-count-positive and the zarf-phase of zarf-moon is zarfphase-gibbous:
        zarf-manifest-set zarfm-jungle-moonglyph;
    else:
        zarf-manifest-set zarfm-jungle-lit;
 
A zarf-outcome-rulebook rule when the location is MBF4-W and zarf-word-invoke is zarf-count-two and the zarf-phase of zarf-moon is zarfphase-crescent:
    zarf-manifest-set zarfm-glacier-skyglyph.
 
A zarf-outcome-rulebook rule when the location is MBF4-N and zarf-word-summer is zarf-count-two:
    zarf-manifest-set zarfm-garden-toohot.
 
A zarf-outcome-rulebook rule when the location is MBF4-N and zarf-word-winter is zarf-count-two:
    zarf-manifest-set zarfm-garden-toocold.
 
A zarf-outcome-rulebook rule when the location is MBF4-S and zarf-word-summer is zarf-count-two:
    zarf-manifest-set zarfm-jungle-toohot.
 
A zarf-outcome-rulebook rule when the location is MBF4-S and zarf-word-summer is zarf-count-negative:
    zarf-manifest-set zarfm-jungle-toocold.
 
A zarf-outcome-rulebook rule when the location is MBF4-W and zarf-word-winter is zarf-count-two:
    zarf-manifest-set zarfm-glacier-toocold.
 
A zarf-outcome-rulebook rule when the location is MBF4-W and zarf-word-winter is zarf-count-negative:
    zarf-manifest-set zarfm-glacier-toohot.
 
A zarf-outcome-rulebook rule for zarf-word-summer when the location is MBF4-W and zarf-word-winter is zarf-count-zero:
    if the zarf-glacier-slab is not in MBF4-W:
        now the zarf-glacier-slab is in MBF4-W;
        say "[line break]Meltwater trickles from the glacier. You notice the edge of a stone slab poking through the ice! After several moments, most of the slab is free.";
    else:
        say "[line break]The ice wall weeps a bit, but does not melt any further."
 
A zarf-outcome-rulebook rule when the zarf-color of the zarf-mirror is not zarfc-none and zarf-word-invoke is zarf-count-positive:
    let C be the zarf-color of the zarf-mirror;
    say "[line break]With a startling crack, the mirror-glass splinters! A wave of agonizing cold rolls through the room. The fractured glass blazes with [zarf-color-a C] brilliance which strikes through your body.[paragraph break]You try to pull away, but your muscles do not respond. You feel ice crystals growing in your flesh, and then you can feel nothing.";
    end the story saying "You have shattered";
 
A zarf-outcome-rulebook rule for a zarf-word (called W) when zarf-word-enlightenment is zarf-count-two and the location is a zarf-garden-room:
    say "[zarf-newline-looked W]The [zarf-shortdesc of location] is freighted with numinous meaning now. You gaze around in helpless wonder. Secrets rain down from the sky and well up out of the earth. You do not want to look away, ever.";
    zarf-go-mad.
 
A zarf-outcome-rulebook rule for zarf-word-winter when the location is MBF4-C:
    if zarf-word-winter is zarf-count-zero:
        say "[line break]As the world cools, moisture begins to glisten in the bottom of the lake bed. Water trickles, then rises; then, in a slow tide, the lake returns. Soon it laps the shoreline at your feet.";
    else if zarf-word-winter is zarf-count-one:
        say "[line break]The water at your feet goes slow and slushy. Ice crackles along the shoreline, and then spreads out across the surface of the lake. After a time, the entire lake is frozen hard.";
 
A zarf-outcome-rulebook rule for zarf-word-summer when the location is MBF4-C:
    if zarf-word-summer is zarf-count-zero:
        say "[line break]A crack lances across the surface of the lake. The ice sheet grinds against itself and shatters, leaving water bubbling in the gaps. The remaining floes shrink; soon they are entirely gone.";
    else if zarf-word-summer is zarf-count-one:
        say "[line break]The lake steams gently, and begins to recede from the shore. Stones crackle and dry as they are exposed. After a time, the water is gone, and the basin is bare and arid.";
 
A zarf-outcome-rulebook rule when the location is MBF4-C and zarf-word-invoke is zarf-count-positive:
    zarf-manifest-set zarfm-ungarden-ruin;
 
A zarf-outcome-rulebook rule when the location is MBF4-C and zarf-word-winter is zarf-count-two:
    zarf-manifest-set zarfm-ungarden-toocold.
 
A zarf-outcome-rulebook rule when the location is MBF4-C and zarf-word-summer is zarf-count-two:
    zarf-manifest-set zarfm-ungarden-toohot.
 
A zarf-outcome-rulebook rule when the location is a zarf-dream-room and zarf-word-invoke is zarf-count-positive:
    zarf-manifest-set zarfm-dream-ruin;
 
A zarf-outcome-rulebook rule when the location is a zarf-dream-room and zarf-word-winter is zarf-count-two:
    zarf-manifest-set zarfm-dream-toocold.
 
A zarf-outcome-rulebook rule when the location is a zarf-dream-room and zarf-word-summer is zarf-count-two:
    zarf-manifest-set zarfm-dream-toohot.
 
A zarf-outcome-rulebook rule for a zarf-word (called W) when zarf-word-enlightenment is zarf-count-two and the location is a zarf-dream-room:
    if zarf-ritual-hyperactive:
        say "[zarf-newline-looked W]You understand, suddenly, the meaning of the Unnameable Name you just spoke.";
    else:
        say "[zarf-newline-looked W]The [zarf-shortdesc of location] is freighted with numinous meaning now. Every particle of the world is whispering to you, and you cannot stop listening.";
    zarf-go-mad.
 
A zarf-outcome-rulebook rule for zarf-word-winter when the location is MBF4-lakebed or the location is MBF4-temple:
    say "[line break]As the world cools, moisture begins to glisten in the bottom of the lake bed. Water trickles, then rises. Then, in an unstoppable tide, it surges up and over you.";
    end the story saying "You have drowned".
 
A zarf-outcome-rulebook rule for zarf-word-summer when the location is MBF4-frozenlake:
    say "[line break]A crack lances across the surface of the lake. The ice sheet splits and shatters under your feet. Water bubbles up through the gaps and sucks you down.";
    end the story saying "You have drowned".
 
A zarf-outcome-rulebook rule for zarf-word-winter when the location is MBF4-island:
    if zarf-word-winter is zarf-count-zero:
        say "[line break]As the world cools, moisture begins to glisten in the bottom of the lake bed. Water trickles, then rises; then, in a slow tide, the lake returns. Soon it laps the island shore at your feet.";
    else if zarf-word-winter is zarf-count-one:
        say "[line break]The water at your feet goes slow and slushy. Ice crackles around the island, and then spreads out across the surface of the lake. After a time, the entire lake is frozen hard.";
 
A zarf-outcome-rulebook rule for zarf-word-summer when the location is MBF4-island:
    if zarf-word-summer is zarf-count-zero:
        say "[line break]A crack lances across the surface of the lake. The ice sheet grinds against itself and shatters, leaving water bubbling in the gaps. The remaining floes shrink; soon they are entirely gone.";
    else if zarf-word-summer is zarf-count-one:
        say "[line break]The lake steams gently, and begins to sink around the island. Stones crackle and dry as they are exposed. After a time, the water is gone, and the lake basin is bare and arid.";
 
A zarf-outcome-rulebook rule for zarf-word-unnameable when the location is MBF4-temple and zarf-word-unnameable is zarf-count-one:
    let C be the zarf-phase-color of the zarf-phase of the zarf-moon;
    now the zarf-color of the zarf-dais is C;
    say "[line break][zarf-color-capa C] light flares within the boundary runes; the world outside dims. The stillness of the air gains density and texture, aching in your ears. Once again, the world waits for you to speak.";
 
Last zarf-outcome-rulebook rule for a zarf-word (called W):
    if the zarf-newstate of zarf-manifestation is the zarf-manstate of zarf-manifestation:
        continue the action;
    [say "[line break](DEBUG) state changing from [zarf-manstate of zarf-manifestation] to [zarf-newstate of zarf-manifestation].";]
    let OldM be the zarf-manstate of zarf-manifestation;
    let M be the zarf-newstate of zarf-manifestation;
    now the zarf-manstate of zarf-manifestation is M;
    if OldM is zarfm-any-whisper and M is not zarfm-any-whisper:
        say "[line break]The whispers fade.";
    if OldM is zarfm-any-aroma and M is not zarfm-any-aroma:
        say "[line break]The aroma fades.";
    if OldM is zarfm-any-prickle and M is not zarfm-any-prickle:
        say "[line break]The prickling sensation fades.";
    if OldM is zarfm-any-crawl and M is not zarfm-any-crawl:
        say "[line break]The crawling sensation fades.";
    if OldM is zarfm-any-spirit and zarf-manifest-nonequivalent M vs OldM:
        say "[line break]The presence fades.";
    if M is zarfm-none:
        remove zarf-manifestation from play;
        stop;
    now zarf-manifestation is in the location;
    if M is:
        -- zarfm-whispers: say "[line break]You hear whispers in the darkness around you. Not with your ears, perhaps, but the whispers are there.";
        -- zarfm-whispers-lit:
            if OldM is zarfm-whispers:
                say "[line break]The whispers are clearer now. If you listen, you can understand them.";
            else:
                say "[line break]You hear whispers in the darkness around you. Not with your ears, perhaps, but the whispers are there. And a few words are clear enough to understand, if you listen.";
        -- zarfm-hotwhispers:
            if OldM is zarfm-whispers:
                say "[line break]The whispers grow in intensity, as if a thousand unseen voices are trying to gain your attention. They are inside your head, behind your eyes.";
            else:
                say "[line break]You hear a flood of whispering in the darkness around you, as if a thousand unseen voices are trying to gain your attention. They are inside your head, behind your eyes.";
        -- zarfm-hotwhispers-lit:
            if OldM is zarfm-hotwhispers:
                say "[line break]The torrent of whispering is clearer now. If you listen, you can understand a few words.";
            else if OldM is zarfm-whispers-lit:
                say "[line break]The whispers grow in intensity, as if a thousand unseen voices are trying to gain your attention. They are inside your head, behind your eyes. And they are still clear enough to understand, if you listen.";
            else:
                say "[line break]You hear a flood of whispering in the darkness around you, as if a thousand unseen voices are trying to gain your attention. They are inside your head, behind your eyes. And they are still clear enough to understand, if you listen.";
        -- zarfm-whispers-2lit-mad:
            if OldM is zarfm-whispers or OldM is zarfm-hotwhispers:
                say "[line break]You understand what the whispers are saying now, every voice, every word. You laugh at the simplicity of the secret.";
            else:
                say "[line break]You hear whispers in the darkness around you. And you understand what they are saying, every voice, every word. You laugh at the simplicity of the secret.";
            zarf-go-mad;
        -- zarfm-prickling:
            if OldM is not zarfm-any-prickle:
                say "[line break]A painful prickling runs along your skin.";
        -- zarfm-prickle-ozone:
            if OldM is not zarfm-any-prickle:
                say "[line break]A painful prickling runs along your skin, and the";
            else:
                say "[line break]The";
            say " air fills with the tense smell of lightning about to strike.";
        -- zarfm-prickle-faded:
            if OldM is not zarfm-any-prickle:
                say "[line break]A painful prickling runs along your skin. You sense a chill presence in the air";
            else:
                say "[line break]You sense a chill presence in the air";
            say ", something looking towards you from far away. Its attention is a faded intimation of those undiscovered realms that await the soul beyond this world. Even so, its gaze [italic type]burns[roman type]";
            if zarfj-ktehnyare is not zarf-findable:
                say ".[paragraph break]If you look more closely at the spirit, you might learn more";
            say ".";
        -- zarfm-prickle-antic:
            if OldM is not zarfm-any-prickle:
                say "[line break]A painful prickling runs along your skin. You sense an antic presence in the air";
            else:
                say "[line break]You sense an antic presence in the air";
            say ", something fluttering and difficult to pin down. It dances around the room. It might be laughing at you.";
        -- zarfm-prickle-antic-mad:
            if OldM is zarfm-prickle-antic:
                say "[line break]You perceive the spirit more clearly now";
            else:
                say "[line break]You sense an antic presence in the air. You watch as its fluttering movements become clear";
            say ". Its dance is joyful -- spontaneous -- irresistable. You follow it, spinning around the room in delight, spinning, spinning...";
            zarf-go-mad;
        -- zarfm-crawling:
            if OldM is not zarfm-any-crawl:
                say "[line break]You feel something invisible crawling across your body.";
        -- zarfm-crawl-flowers:
            if OldM is not zarfm-any-crawl:
                say "[line break]You feel something invisible crawling across your body, and the";
            else:
                say "[line break]The";
            say " aroma of flowers in a sunlit meadow spills over you.";
        -- zarfm-crawl-jungle:
            if OldM is not zarfm-any-crawl:
                say "[line break]You feel something invisible crawling across your body, and an";
            else:
                say "[line break]An";
            say " intense aroma of the jungle fills the room, enfolding you in verdant scents of vegetation and decay.";
        -- zarfm-crawl-fairy:
            if OldM is not zarfm-any-crawl:
                say "[line break]You feel something invisible crawling across your body, and the gaze of a green presence";
            else:
                say "[line break]You feel the gaze of a green presence upon you";
            say ". It studies you, and everything around you, with dispassion; what to nurture, what to prune.[paragraph break]A faint but piercing-sweet scent drifts past you. It seems to emanate from the direction of the filing cabinet.";
        -- zarfm-ruindecay:
            say "[line break]A presence shrieks through the room, howling a music of ruin and decay. Then another, and more";
            if zarf-word-winter is zarf-count-positive:
                say ", icy chaos spilling out of nowhere. Bricks and wood freeze and crumble";
            else if zarf-word-summer is zarf-count-positive:
                say ", hot chaos spilling out of nowhere. Bricks smoke; wood carbonizes";
            else:
                say ", chaos spilling out of nowhere. Bricks crumble; wood shatters";
            if zarf-word-enlightenment is zarf-count-zero:
                say "; your bones splinter in your skin.";
            else:
                say ". You can see the spirits clearly, and so your mind splinters before your bones do.";
            end the story saying "You have succumbed to entropy";
        -- zarfm-garden-spirit:
            say "[line break]You sense a muttering presence in the garden.";
        -- zarfm-garden-spirit-lit:
            if OldM is zarfm-garden-spirit:
                say "[line break]The silent muttering becomes clearer. You could understand it if you listened.";
            else:
                say "[line break]You sense a muttering presence in the garden. You could understand it if you listened.";
        -- zarfm-garden-hotspirit:
            say "[line break]The silent voices multiply; they are an increasing pressure in your head. You feel presences crowd around you, tasting your thoughts, fluttering through the fibers of your spirit. Your body begins to slip away from you.";
            end the story saying "You have been supplanted";
        -- zarfm-garden-toohot:
            say "[line break]Steam rises up from the flowerbeds, and the air fills with a hot, gasping haze. Within it, the topiary begins to shudder. The ground boils with life.";
            end the story saying "You have been overgrown";
        -- zarfm-garden-toocold:
            say "[line break]The chill turns into an icy blast of wind. Leaves shrivel and die around you. The air hurts your lungs, and there is no respite.";
            end the story saying "You have frozen";
        -- zarfm-jungle-lit:
            say "[zarf-newline-looked W]You suddenly perceive a pattern in the foliage.";
        -- zarfm-jungle-moonglyph:
            say "[line break]With imperceptible slowness, a glyph draws itself across the face of the moon.";
        -- zarfm-jungle-toohot:
            say "[zarf-newline-looked W]Steam rises up from the undergrowth, and the air fills with a hot, gasping haze. Within it, the roots and vines begin to shudder. The ground boils with life.";
            end the story saying "You have been overgrown";
        -- zarfm-jungle-toocold:
            say "[zarf-newline-looked W]Frost crackles on the vines. A tree trunk emits a thundrous crack as its sap freezes in the unnatural chill. Then another... and branches begin to crash down around you.";
            end the story saying "You have been crushed";
        -- zarfm-glacier-lit:
            say "[zarf-newline-looked W]You suddenly perceive a pattern in the depths of the ice.";
        -- zarfm-glacier-skyglyph:
            say "[line break]A new constellation burns [if the zarf-count of the zarf-sky is zero]among the stars[else]through the haze[end if].";
        -- zarfm-glacier-toohot:
            say "[zarf-newline-looked W]The warmth turns to an unnatural sirroco, hot and dry. You hear distant grinding noises as the mountain ice shifts. Then you hear a louder rumble above you, and see the approaching avalanche.";
            end the story saying "You have been buried";
        -- zarfm-glacier-toocold:
            say "[zarf-newline-looked W]The chill turns into an icy blast of wind coming down from the mountaintop. Stones and chunks of ice are caught up in the gale.";
            end the story saying "You are quickly overwhelmed";
        -- zarfm-ungarden-toohot:
            say "[zarf-newline-looked W]The air is an oven. The dead hedges begin to smoke, and then burst into flame.";
            end the story saying "You have burned";
        -- zarfm-ungarden-toocold:
            say "[zarf-newline-looked W]The air is an iron weight of frost now. White flakes begin to coalesce out of the atmosphere, and you do not think they are water ice.";
            end the story saying "You have frozen";
        -- zarfm-ungarden-ruin:
            say "[line break]A presence shrieks through the garden, howling a music of ruin and decay. More rise from the dead earth and descend from the uncaring sky. The dead plants crumble into dust around you; and then your skin, and then your bones.";
            end the story saying "You have succumbed to entropy";
        -- zarfm-dream-toohot:
            say "[line break]The air is an oven. Everything around you begins to scorch.";
            end the story saying "You have burned";
        -- zarfm-dream-toocold:
            say "[line break]The air is an iron weight of frost now. White flakes begin to coalesce out of the atmosphere, and you do not think they are water ice.";
            end the story saying "You have frozen";
        -- zarfm-dream-ruin:
            say "[line break]A presence shrieks up from the [if zarf-word-winter is zarf-count-positive]ice[else if zarf-word-summer is zarf-count-positive]lake bed[else]lake[end if], howling a music of ruin and decay. More of them swirl down from the sky and dance around you. In moments you have gone to dust.";
            end the story saying "You have succumbed to entropy";
 
 
Chapter - The Garden
 
Zarf-dreamplayer is an undescribed proper-named person. The printed name is "dream-self".
Zarf-gateplayer is an undescribed proper-named person. The printed name is "dream-self".
Zarf-origplayer is a thing that varies.
 
A zarf-garden-room is a kind of zarf-room.
A zarf-garden-room is usually zarf-outdoorsy.
 
Check going nowhere in a zarf-garden-room:
    if the noun is outside:
        instead try waking up;
    instead say "This place exists in your mind, so there's[if the location is MBF4-C] practically[end if] nowhere to go."
 
Check sleeping when the location is a zarf-garden-room:
    instead say "You're not sure how that would work."
 
Check waking up when the location is a zarf-garden-room:
    instead say "The Unsealing Word should do it."
 
To zarf-transfer to (R - zarf-garden-room):
    if zarf-word-dream is not zarf-count-one:
        say "(BUG) Dream count is [zarf-count of zarf-word-dream], not one.";
    now the zarf-manstate of zarf-manifestation is zarfm-none;
    now the zarf-manifestation is off-stage;
    now the zarf-glacier-slab is off-stage;
    now the zarf-jungle-coffin is off-stage;
    now the zarf-scrap is in MBF4-temple;
    now the zarf-scrap is not handled;
    now the zarf-phase of zarf-moon is the zarf-phase of zarf-lunator;
    now the zarf-count of the zarf-sky is the zarf-count of zarf-word-enlightenment;
    move the zarf-sky backdrop to all zarf-outdoorsy zarf-rooms;
    if the zarf-phase of zarf-moon is not zarfphase-new:
        now the zarf-moon is part of zarf-sky;
    else:
        now the zarf-moon is off-stage;
    now zarf-dreamplayer is in R;
    now the zarf-color of the zarf-mirror is zarfc-none;
    let zarf-origplayer be the player;
    now the player is zarf-dreamplayer;
    try looking;
 
The zarf-sky is a fixed in place backdrop. The printed name is "sky".
The zarf-sky is not scenery.
The zarf-sky has a number called the zarf-count. [Enlightenment level]
Understand "sky", "star", "stars", "constellation", "starry", "clear", "haze", "hazy" as the zarf-sky.
 
Rule for writing a paragraph about the zarf-sky:
    if zarf-moon is part of the zarf-sky:
        let P be zarf-phase of zarf-moon;
        if the location is MBF4-lakebed or the location is MBF4-temple:
            say "Far above, a";
        else:
            say "A";
        if P is zarfphase-blood:
            say " bloated crimson moon hangs in";
        else:
            say " [zarf-phase-desc of P] hangs in";
    else:
        say "Above is";
    if the zarf-count of zarf-sky is:
        -- 0: say " a haze-swirled night sky";
        -- 1: say " the clear starry sky";
        -- 2: say " a clear sky burning with stars";
        -- otherwise: say " the sky";
    instead say ".";
 
Check examining the zarf-sky:
    if the zarf-count of zarf-sky is 0:
        say "The stars are veiled by a high shredding haze";
        if zarf-moon is part of the zarf-sky:
            say ", but a [zarf-phase-desc of zarf-phase of zarf-moon] shines through";
    else:
        say "The sky is filled with stars";
        if zarf-moon is part of the zarf-sky:
            say " and a [zarf-phase-desc of zarf-phase of zarf-moon]";
    if the zarf-manstate of zarf-manifestation is zarfm-glacier-skyglyph:
        say ". A constellation of unusually bright stars forms a glyph above the moon";
        if zarf-glyph-sky is not familiar:
            zarf-memorize-glyph-message zarf-glyph-sky;
    instead say "."
 
Instead of doing anything except examining to the zarf-sky:
    instead say "The sky is out of reach."
 
The zarf-moon is a scenery thing. The printed name is "[zarf-phase-desc of the zarf-phase of zarf-moon]".
The zarf-moon has a zarf-phase.
 
Understand "moon", "circle", "disc", "disk" as the zarf-moon.
Understand "white" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-contains-white.
Understand "black" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-contains-black.
Understand "red", "crimson", "blood", "bloody" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-blood.
Understand "full" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-fullish.
Understand "half" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-half.
Understand "crescent" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-crescent.
Understand "gibbous" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-gibbous.
Understand "new" as the zarf-moon when the zarf-phase of the zarf-moon is zarfphase-new.
 
Check examining the zarf-moon:
    if the zarf-manstate of zarf-manifestation is zarfm-jungle-moonglyph:
        say "Shadows and scars form a glyph across the surface of the gibbous moon";
        if zarf-glyph-moon is not familiar:
            zarf-memorize-glyph-message zarf-glyph-moon;
        instead say ".";
    let P be the zarf-phase of the zarf-moon;
    if P is zarfphase-blood:
        instead say "It's a full moon, blood-red and hell-bent.";
    instead say "The [zarf-phase-desc of P] hangs in the sky."
 
Instead of doing anything except examining to the zarf-moon:
    instead say "The moon is out of reach."
 
Zarf-dream-scenery is a kind of thing. Zarf-dream-scenery is usually scenery.
 
Instead of doing anything except examining to zarf-dream-scenery:
    instead say "Nothing here is exactly real.";
 
MBF4-N is a zarf-garden-room. The printed name is "The Garden [zarf-authortag]".
The zarf-shortdesc is "garden".
The description is "You are in a tidily-trimmed garden, surrounded by topiary, flowerbeds, and orderly hedge[if zarf-word-winter is zarf-count-positive]. The air is bracingly cool[end if][if zarf-word-summer is zarf-count-positive]. The air is filled with humid warmth[end if]."
 
The zarf-garden-topiary is zarf-dream-scenery in MBF4-N. The printed name is "garden".
Understand "garden", "topiary", "flowerbeds", "flower", "flowers", "bush", "bushes", "hedge", "hedges", "orderly", "tidy" as the zarf-garden-topiary.
The description is "The garden flourishes in its neatly-trimmed profusion."
 
MBF4-W is a zarf-garden-room. The printed name is "Glacial Cirque [zarf-authortag]".
The zarf-shortdesc is "valley".
The description is "You are in a bowl-shaped hollow beneath a towering mountain peak. The lower end is blocked by a wall of ice[if zarf-word-winter is zarf-count-one]. The air is chill but you are sheltered from the wind[end if][if zarf-word-winter is zarf-count-two]. The air is achingly cold[end if][if zarf-word-winter is not zarf-count-positive]. A temperate warmth fills the air[end if]."
 
The zarf-glacier-peak is zarf-dream-scenery in MBF4-W. The printed name is "mountain".
Understand "mountain", "peak" as the zarf-glacier-peak.
The description is "The mountain is a black shadow above you, outlined against the [if zarf-count of zarf-sky is zero]haze[else]starry sky[end if]."
 
The zarf-glacier-icewall is zarf-dream-scenery in MBF4-W. The printed name is "ice".
Understand "ice", "wall", "barrier", "striated", "glacier" as the zarf-glacier-icewall.
The description is "The end of the valley runs up against a barrier of striated white ice, no doubt the edge of a mountain glacier[if zarf-manstate of zarf-manifestation is zarfm-glacier-lit].[paragraph break]The crystalline structure of the ice forms a pattern, and the pattern forms a name[zarf-findabilize zarfj-shireen]: 'Shireen Vega was here.' Okay[end if]."
 
The zarf-glacier-slab is zarf-dream-scenery. The printed name is "slab".
The zarf-glacier-slab is fixed in place and not scenery.
Understand "stone", "slab", "engraved", "glyph", "hieroglyph" as the zarf-glacier-slab.
The initial appearance is "An engraved stone slab has been exposed by the retreating ice."
 
Check examining the zarf-glacier-slab:
    say "The slab has a hieroglyph engraved on it";
    if zarf-glyph-stone is not familiar:
        zarf-memorize-glyph-message zarf-glyph-stone;
    instead say ".";
 
MBF4-S is a zarf-garden-room. The printed name is "Jungle Ruin [zarf-authortag]".
The zarf-shortdesc is "jungle".
The description is "You are in a mazy jungle of towering, vine-strung tree boles[if zarf-word-summer is zarf-count-one]. The air is thick and humid[end if][if zarf-word-summer is not zarf-count-positive]. The air is bracing[end if][if zarf-word-summer is zarf-count-two]. The air steams with heat[end if]. To one side[if zarf-jungle-coffin is in MBF4-S], a crumbling stone wall has revealed an ancient tomb[else] rises a crumbling stone wall[end if]."
 
The zarf-jungle-foliage is zarf-dream-scenery in MBF4-S. The printed name is "jungle".
Understand "jungle", "tree", "trees", "bole", "boles", "trunk", "trunks", "vine", "vines", "foliage", "leaf", "leaves" as the zarf-jungle-foliage.
The description is "Moldering tree trunks rise all around you[if zarf-manstate of zarf-manifestation is zarfm-jungle-lit].[paragraph break]The vines form a pattern, and the pattern forms a name[zarf-findabilize zarfj-shireen]: 'Shireen Vega was here.' Okay[end if]."
 
The zarf-jungle-stonewall is zarf-dream-scenery in MBF4-S. The printed name is "wall".
Understand "stone", "wall", "barrier", "crumbling", "ruin", "ruined", "ziggurat", "pyramid" as the zarf-jungle-stonewall.
The description is "You stand at the foot of a ruined stone wall, perhaps the remains of some lost jungle ziggurat[if zarf-jungle-coffin is in MBF4-S]. Part of the wall has collapsed, revealing an ancient sarcophagus[end if]."
 
The zarf-jungle-coffin is zarf-dream-scenery. The printed name is "sarcophagus".
Understand "coffin", "crypt", "tomb", "sarcophagus", "ancient", "rune", "runes", "carved", "rune-carved" as the zarf-jungle-coffin.
 
Check examining the zarf-jungle-coffin:
    say "The runes on the tomb form a word... or something like a word[one of]. The syllables grind and crack against each other as you try to assemble them in your mind.[paragraph break]After an unmeasured time, you think you have hold of it. This must be the Unnameable Name that Francois Crane[if zarfj-arne is familiar] and Arne Cragnessum[end if] described[or]: the Unnameable Name[stopping]";
    familiarize zarf-word-unnameable;
    instead say "."
 
MBF4-C is a zarf-garden-room. The printed name is "Ruined Garden [zarf-authortag]".
The zarf-shortdesc is "garden".
The description is "You stand in the ruins of a long-dead garden[zarf-garden-lake-desc]."
 
To say zarf-garden-lake-desc:
    if zarf-word-winter is zarf-count-positive:
        say ". The air is heavy with deathly chill. Dry branches rise from the dust and tangle in twisted, unrecognizable shapes.[paragraph break]To the south is a sheet of bare, dark ice -- the expanse of a frozen lake";
    else if zarf-word-summer is zarf-count-positive:
        say ". The air simmers with a parched, breathless heat. Dry branches rise from the dust and tangle in twisted, unrecognizable shapes.[paragraph break]To the south, the ground slopes down into the basin of a dry lake bed";
    else:
        say ". Dry branches rise from the dust and tangle in twisted, unrecognizable shapes.[paragraph break]To the south is the shore of a dark, silent lake. The waters do not reflect the ";
        let P be the zarf-phase of zarf-moon;
        if P is zarfphase-blood:
            say "reddened moonlight";
        else if P is zarfphase-new:
            if zarf-count of zarf-sky is not zero:
                say "starlight";
            else:
                say "haze above";
        else:
            say "moonlight";
 
Check going south in MBF4-C:
    instead try entering the zarf-ungarden-lake.
 
The zarf-ungarden-garden is zarf-dream-scenery in MBF4-C. The printed name is "garden".
Understand "dry", "dead", "branch", "branches", "foliage", "plant", "plants", "hedge", "hedges", "twisted", "shape", "shapes", "ruin", "ruins" as the zarf-ungarden-garden.
The description is "The hedges look to have died aeons ago."
 
The zarf-ungarden-lake is scenery in MBF4-C. The printed name is "lake".
Understand "lake", "dark", "silent", "still", "water", "waters", "island" as the zarf-ungarden-lake.
Understand "ice", "frozen", "sheet", "expanse" as the zarf-ungarden-lake when the zarf-word-winter is zarf-count-positive.
Understand "bare", "dry", "dusty", "bed", "basin" as the zarf-ungarden-lake when the zarf-word-winter is zarf-count-negative.
 
Instead of doing anything except examining, searching, entering to the zarf-ungarden-lake:
    instead say "The lake is not exactly real... is it?";
 
Check examining the zarf-ungarden-lake:
    if zarf-word-winter is zarf-count-positive:
        instead say "The frozen lake spreads out south of the garden. You can see a small island in its center, standing above the ice.";
    else if zarf-word-summer is zarf-count-positive:
        instead say "The dusty lake bed slopes down from the south edge of the garden. You can see a small hill, a once-island, rising in the center of the basin.";
    else:
        instead say "The lake spreads out south of the garden. You can see a small island in its center, standing above the still water.";
 
Check entering the zarf-ungarden-lake:
    if zarf-word-winter is zarf-count-positive:
        say "You set off across the ice.";
        now the player is in MBF4-frozenlake;
        stop the action;
    else if zarf-word-summer is zarf-count-positive:
        say "You begin descending into the lake bed, making your way around boulders.";
        now the player is in MBF4-lakebed;
        stop the action;
    else:
        instead say "[one of]You set one foot in the water -- and it plunges into an unfathomed depth, far deeper than the lake should be just a few inches off-shore. You stumble back, feeling as if you had just avoided a swallowing abyss[or]You probe the water with your foot again. The lake is still an impossible, unsoundable abyss[stopping].";
 
 
Chapter - The Dreamlands
 
A zarf-dream-room is a kind of zarf-room.
 
Check sleeping when the location is a zarf-dream-room:
    instead say "That presents a problem."
 
Check waking up when the location is a zarf-dream-room:
    instead say "That presents a problem."
 
The MBF4-lakebed is a zarf-dream-room. The printed name is "Lake Bed [zarf-authortag]".
The zarf-shortdesc is "lake".
The MBF4-lakebed is zarf-outdoorsy.
The description is "The lake bed is broken with chasms and dry stony crags. It slopes up to the north, towards shore.[paragraph break]To the south, an unclimbable ravine cuts across the basin. You can see the island rising on the other side, but you can go no farther in that direction."
 
MBF4-C is north of the MBF4-lakebed.
Nothing is south of MBF4-C.
 
Check going nowhere in the MBF4-lakebed:
    instead say "Beyond this point, the basin becomes impassable. You can only return to the north."
Check going up in the MBF4-lakebed:
    instead try going north.
Check going north from the MBF4-lakebed:
    say "You climb back up towards the shoreline."
 
The MBF4-frozenlake is a zarf-dream-room. The printed name is "Frozen Lake [zarf-authortag]".
The zarf-shortdesc is "lake".
The MBF4-frozenlake is zarf-outdoorsy.
The description is "You stand on the surface of the frozen lake. The ice is rippled and rough underfoot, and hard as iron.[paragraph break]The shoreline is back to the north. To the south, a small island projects above the ice sheet."
 
MBF4-C is north of the MBF4-frozenlake.
 
Check going nowhere in the MBF4-frozenlake:
    if the noun is northeast or the noun is east or the noun is southeast or the noun is west or the noun is northwest or the noun is southwest:
        instead say "Wandering off at random across the lake would be foolish."
 
Check jumping when the location is MBF4-frozenlake:
    instead say "You jump on the spot on the ice."
 
MBF4-island is a zarf-dream-room. The printed name is "Island [zarf-authortag]".
The zarf-shortdesc is "island".
MBF4-island is zarf-outdoorsy.
The description is "[zarf-island-desc]."
 
To say zarf-island-desc:
    say "This is a small island";
    if zarf-word-winter is zarf-count-positive:
        say ", only a few yards across, near the center of a frozen lake. The black ice seems to devour the ";
        let P be the zarf-phase of zarf-moon;
        if P is zarfphase-blood:
            say "reddened moonlight";
        else if P is zarfphase-new:
            if zarf-count of zarf-sky is not zero:
                say "starlight";
            else:
                say "hazed starlight";
        else:
            say "moonlight";
        say " all around";
    else if zarf-word-summer is zarf-count-positive:
        say "-mesa which stands in the center of a parched and empty lakebed";
    else:
        say ", only a few yards across, near the center of a quiet lake. The dark water is undisturbed by so much as a ripple";
    say ". You can see the dead garden far off on the northern shore.[paragraph break]To the east, a stairway of rough basalt leads down";
    if zarf-word-winter is zarf-count-positive:
        say " into the ice";
    else if zarf-word-summer is zarf-count-positive:
        say " towards the basin floor";
    else:
        say " into the water";
 
MBF4-island is south of MBF4-frozenlake.
 
Check going down in MBF4-island:
    instead try going east;
 
Check going north from MBF4-island when zarf-word-winter is not zarf-count-positive:
    instead try going south;
 
Check going through the zarf-basalt-stairway when the location is MBF4-island:
    if zarf-word-summer is zarf-count-positive:
        say "The stairway spirals around the island as it descends.";
    else if zarf-word-winter is zarf-count-positive:
        instead say "The stairway disappears down into the iron-hard ice.";
    else:
        instead say "The stairway disappears down into the dark water. The thought of immersing yourself is abhorrent."
 
Check going nowhere in MBF4-island:
    if the noun is south or the noun is northeast or the noun is southeast or the noun is west or the noun is northwest or the noun is southwest:
        if zarf-word-winter is zarf-count-positive:
            instead say "The northern shore is closer.";
        else if zarf-word-summer is zarf-count-positive:
            instead say "The edge of the island drops off too steeply to descend, except by the stairs to the east.";
        else:
            instead say "You are unwilling to swim."
 
The zarf-basalt-stairway is an open unopenable scenery door. The printed name is "basalt stairway".
Understand "stair", "stairs", "stairway", "staircase", "basalt", "block", "blocks", "stone" as the zarf-basalt-stairway.
The description is "The stairs are hexagonal basalt blocks laid into the island's shoulder."
 
MBF4-island is west of zarf-basalt-stairway.
MBF4-temple is east of zarf-basalt-stairway.
 
Check climbing the zarf-basalt-stairway:
    instead try entering the zarf-basalt-stairway.
 
MBF4-temple is a zarf-dream-room. The printed name is "Lakebed Temple [zarf-authortag]".
The zarf-shortdesc is "temple".
MBF4-temple is zarf-outdoorsy.
The description is "You stand on a crumbling stone dais[if not zarf-ritual-hyperactive] at the bottom of the dry lake. Jagged runes are engraved around the circle's perimeter.[paragraph break]The island-peak rises to the west; basalt stairs zig-zag up its face[else]. A boundary of [zarf-color zarf-color of the zarf-dais]-glowing runes are engraved around the circle's perimeter.[paragraph break]The air is entirely still, and the stairway to the west seems distant[end if]."
 
Check going up in MBF4-temple:
    instead try going west;
 
Check going through the zarf-basalt-stairway when the location is MBF4-temple:
    if zarf-ritual-hyperactive:
        instead say "The stairs seem dim and distant on the other side of the boundary runes. You move towards them, but they do not get any closer.";
    say "You climb back up towards the peak of the island."
 
Check going nowhere in the MBF4-temple:
    if zarf-ritual-hyperactive:
        instead say "The world beyond the circle is dim and distant.";
    instead say "Beyond the circle, the lake bed is riven with treacherous chasms."
 
The zarf-dais is plural-named scenery in the MBF4-temple. The printed name is "runes".
The zarf-dais has a zarf-color. The zarf-dais is zarfc-none.
Understand "runes", "rune", "mark", "marks", "oddly", "angled", "oddly-angled", "jagged", "irregular", "bound", "boundary", "ritual", "stone", "circle", "dais" as the zarf-dais.
The description is "The runes are made of familiar jagged marks[if not zarf-ritual-hyperactive]. This is a ritual bound -- although you would lay no odds what hands carved them[first time]. [italic type]If[roman type] hands carved them[only][else]. They are glowing with a steady [zarf-color zarf-color of the zarf-dais] light[end if]."
 
Check entering the zarf-dais:
    instead say "You are already standing inside the ritual bound."
 
Check getting off the zarf-dais:
    instead say "You'd have to go back up the stairs."
 
The zarf-scrap is a thing. The printed name is "scrap of green leather".
The initial appearance is "A scrap of leather is lying at the foot of the stairs."
Understand "scrap", "scrap of", "green", "leather", "journal", "cover" as the zarf-scrap.
 
The description is "This green leather once bound a journal, but it has been terribly damaged by [first time]the water... ice... heat... [only]whatever conditions it experienced at the bottom of the lake. You can barely trace the name 'Arne Cragnessum' within one fold of the cover. The pages within have long since disintegrated[zarf-findabilize zarfj-arne]."
 
 
Chapter - The Gates of Slumber
 
To zarf-hypertransfer to (R - zarf-gate-room):
    if zarf-word-dream is not zarf-count-two:
        say "(BUG) Dream count is [zarf-count of zarf-word-dream], not two.";
    if the zarf-manstate of zarf-manifestation is not zarfm-none:
        say "(BUG) You lost manifestation [zarf-manstate of zarf-manifestation].";
    now the zarf-manstate of zarf-manifestation is zarfm-none;
    now the zarf-manifestation is off-stage;
    now the zarf-stair-lastdir is down;
    move the zarf-marble-stairway backdrop to all zarf-stairish zarf-rooms;
    now zarf-gateplayer carries the zarf-key;
    now the zarf-key is not zarf-done;
    now the zarf-gate is closed;
    now the zarf-gate is locked;
    now zarf-gateplayer is in R;
    now the player is zarf-gateplayer;
    try looking;
 
The zarf-stair-lastdir is a direction that varies.
 
A zarf-gate-room is a kind of zarf-room.
A zarf-room can be zarf-stairish.
 
Check sleeping when the location is a zarf-gate-room:
    instead say "Not now."
 
Check waking up when the location is a zarf-gate-room:
    instead say "Not now."
 
The zarf-key is a thing. The printed name is "ornate silver key".
The zarf-key can be zarf-done. [Noticed in hand]
Understand "silver", "key", "engraved", "ornate" as the zarf-key.
The description is "Cryptically inscribed and ornately engraved: the Silver Key to the Gates of Slumber."
 
Understand "read [zarf-key]" as reading when the location is a zarf-room.
 
Check reading the zarf-key:
    instead say "The silver arabesques are familiar and opaque, both at once."
 
The zarf-marble-stairway is a backdrop. The printed name is "marble stairway".
Understand "stair", "stairs", "stairway", "staircase", "marble", "elegant", "stone" as the zarf-marble-stairway.
The description is "An elegant stairway of plain white marble."
 
Check climbing the zarf-marble-stairway:
    if the location is MBF4-stairs-bottom:
        instead try going up;
    instead say "Up or down?"
 
Check entering the zarf-marble-stairway:
    instead try climbing the zarf-marble-stairway.
 
MBF4-stairs-top is a zarf-stairish zarf-gate-room. The printed name is "Stairway [zarf-authortag]".
The zarf-shortdesc is "stairway".
The description is "You are partway [if zarf-stair-lastdir is down]down[else]up[end if] a long, long staircase of white marble. You can [if zarf-stair-lastdir is down]return[else]continue[end if] west or descend to the east."
 
Check going east in MBF4-stairs-top:
    instead try going down.
 
Check going down in MBF4-stairs-top:
    now zarf-stair-lastdir is down;
    say "You descend dreamily for a while.";
 
Check going nowhere in MBF4-stairs-top:
    if the noun is up or the noun is west:
        now zarf-stair-lastdir is up;
        if the zarf-key is in MBF4-stairs-top:
            now the zarf-key is in MBF4-stairs-middle;
        say "You climb dreamily for a while.";
        instead try looking;
    instead say "You can only go up or down, west or east."
 
MBF4-stairs-middle is a zarf-stairish zarf-gate-room. The printed name is "Stairway [zarf-authortag]".
The zarf-shortdesc is "stairway".
MBF4-stairs-middle is below MBF4-stairs-top.
The description is "You are partway [if zarf-stair-lastdir is down]down[else]up[end if] a long, long staircase of white marble. You can [if zarf-stair-lastdir is down]return[else]continue[end if] west or descend to the east."
 
Check going west in MBF4-stairs-middle:
    instead try going up.
 
Check going east in MBF4-stairs-middle:
    instead try going down.
 
Check going down in MBF4-stairs-middle:
    now zarf-stair-lastdir is down;
    say "You descend dreamily for a while";
    if the player carries the zarf-key and the zarf-key is not zarf-done:
        now the zarf-key is zarf-done;
        say ", turning the key over in your hand";
    say ".";
    if the zarf-phase of zarf-moon is not zarfphase-blood:
        if the zarf-key is in MBF4-stairs-middle:
            now the zarf-key is in MBF4-stairs-top;
        instead try looking;
 
Check going up in MBF4-stairs-middle:
    now zarf-stair-lastdir is up;
    say "You climb dreamily for a while";
    if the player carries the zarf-key and the zarf-key is not zarf-done:
        now the zarf-key is zarf-done;
        say ", turning the key over in your hand";
    say ".";
 
Check going nowhere in MBF4-stairs-middle:
    instead say "You can only go up or down, west or east."
 
MBF4-stairs-bottom is a zarf-stairish zarf-gate-room. The printed name is "Bottom of Stairs [zarf-authortag]".
The zarf-shortdesc is "stairway".
MBF4-stairs-bottom is below MBF4-stairs-middle.
The description is "You are at the bottom of a marble staircase, which ascends to the west."
 
Check going west in MBF4-stairs-bottom:
    instead try going up.
 
Check going up in MBF4-stairs-bottom:
    now zarf-stair-lastdir is up;
    say "You climb dreamily for a while.";
 
Check going nowhere in MBF4-stairs-bottom:
    instead say "You can either go up or through the gate."
 
The zarf-gate is a fixed in place door. The printed name is "[one of]gate[or]door[or]portal[or]barrier[at random]".
The zarf-gate is openable and closed and locked.
The zarf-gate has a number called the zarf-count. The zarf-count of the zarf-gate is 0.
The matching key of the zarf-gate is the zarf-key.
Understand "door", "doors", "gate", "gates", "gateway", "portal" as the zarf-gate.
Understand "wood", "wooden", "alien", "metal", "wrought", "iron", "resin", "amber", "immense", "scarred", "granite", "energy", "barrier", "narrow", "brass", "brass-bound", "bound" as the zarf-gate.
The zarf-gate is east of MBF4-stairs-bottom and west of MBF4-fakeroom.
 
The zarf-gate-limit is always 7.
 
To say zarf-gate-desc:
    let N be the zarf-count of the zarf-gate;
    increase N by a random number from 1 to 5;
    if N is at least zarf-gate-limit:
        decrease N by the zarf-gate-limit;
    now zarf-count of the zarf-gate is N;
    if N is:
        -- 0: say "A plain wooden door stands to the east. It is";
        -- 1: say "A tall portal of some alien metal stands to the east. It is";
        -- 2: say "To the east is an ornate gateway of wrought iron, figured with writhing souls in bas relief. It is";
        -- 3: say "To the east you see the Gates of Resin and Amber. They are";
        -- 4: say "An immense portal of scarred granite rises to the east. It is";
        -- 5: say "A glowing energy barrier stands to the east. It is";
        -- 6: say "To the east is a narrow brass-bound door. It is";
    if zarf-gate is open:
        say " open";
    else:
        say " closed";
        if zarf-gate is locked:
            say " and locked";
 
Rule for writing a paragraph about the zarf-gate (this is the zarf-gate description rule):
    instead say "[zarf-gate-desc]."
 
Check examining the zarf-gate:
    instead say "[zarf-gate-desc]."
 
Check going through the zarf-gate when the zarf-gate is unlocked:
    say "You[if zarf-gate is closed] open the [zarf-gate] and[end if] pass through.";
    now the zarf-key is in MBF4-stairs-bottom;
    now the player is in MBF4-alter;
    stop the action;
 
MBF4-fakeroom is a zarf-gate-room.
The description is "(BUG) You should not be here."
 
MBF4-alter is a zarf-gate-room. The printed name is "Workroom [zarf-authortag]".
The zarf-shortdesc of MBF4-alter is "room".
The description is "You [one of]have entered[or]are in[stopping] a circular chamber walled in neat brickwork. The door to the west is closed[zarf-fakeroom-cabinet-desc]."
 
To say zarf-fakeroom-cabinet-desc:
    say ".[paragraph break]The room is quite empty except for a majestic filing cabinet in one corner";
    if the zarf-fakecabinet is closed:
        say ". The cabinet is closed";
    else:
        if nothing is in the zarf-fakecabinet:
            say ". The cabinet is open, but is also empty";
        else:
            say ". The cabinet is open, but nearly empty. You only see [a list of things in the zarf-fakecabinet] within";
 
Check going outside in MBF4-alter:
    instead try going west.
 
The zarf-fakedoor is a scenery door. The printed name is "door".
The zarf-fakedoor is openable and closed and locked.
Understand "door", "gate", "portal", "barrier" as the zarf-fakedoor.
The zarf-fakedoor is west of MBF4-alter and east of MBF4-fakeroom.
 
The description of the zarf-fakedoor is "It's an ordinary oak door. It's currently closed and locked."
 
The zarf-newbrick is scenery in MBF4-alter. The printed name is "brickwork".
Understand "brick", "bricks", "brickwork", "tidy", "neat", "wall", "walls" as the zarf-newbrick.
 
Check examining the zarf-newbrick:
    instead say "All the basement walls are built of these bricks."
 
Check touching the zarf-newbrick:
    instead say "You feel a bit of the wall for loose bricks or hidden passageways. Nothing results."
Check pushing the zarf-newbrick:
    instead try touching the zarf-newbrick.
Check pulling the zarf-newbrick:
    instead try touching the zarf-newbrick.
 
The zarf-fakecabinet is a scenery container in MBF4-alter. The printed name is "filing cabinet".
The zarf-fakecabinet is openable.
The zarf-fakecabinet is closed.
Understand "file", "files", "filing", "cabinet", "antique", "majestic", "mahogany", "drawer", "drawers" as the zarf-fakecabinet.
 
Check examining the zarf-fakecabinet:
    say "The cabinet is a genuine brass-bound mahogany treasure";
    if the zarf-fakecabinet is closed:
        say ". It is closed";
    else:
        if nothing is in the zarf-fakecabinet:
            say ". It is open and empty, waiting for treasure";
        else:
            say ". The cabinet is open, but nearly empty. You only see [a list of things in the zarf-fakecabinet] within";
    instead say "."
 
Report opening the zarf-fakecabinet:
    if nothing is in the zarf-fakecabinet:
        instead say "You[one of] pull open one of the cabinet's drawers, then another. They're all empty[or] open the cabinet again[stopping].";
    instead say "You pull open the cabinet, revealing [a list of things in the zarf-fakecabinet].";
 
Report closing the zarf-fakecabinet:
    instead say "You push the cabinet closed again."
 
Report inserting the zarf-fakebook into the zarf-fakecabinet:
    if zarfj-henry is not zarf-findable:
        zarf-findabilize zarfj-henry;
        instead say "You consider the empty cabinet, and then file the book neatly under G for Galtmice. An excellent start for your collection!";
    else:
        instead say "You file the book once again."
 
Check consulting the zarf-fakecabinet about:
    instead say "[zarf-fake-cabinet-consulting]."
 
To say zarf-fake-cabinet-consulting:
    if the zarf-fakecabinet is closed:
        instead say "The cabinet is closed";
    if nothing is in the zarf-fakecabinet:
        instead say "The cabinet is empty";
    instead say "The cabinet contains only [a list of things in the zarf-fakecabinet], which you just put there"
 
The zarf-fakebook is a proper-named book in MBF4-alter. The printed name is "[italic type]The Seven Gaunts[roman type]".
Understand "library", "seven", "gaunt", "gaunts" as the zarf-fakebook.
The initial appearance is "A library book is lying on the floor[first time]. You have no idea how this got down here[only]."
The description is "[italic type]The Seven Gaunts -- a book of Aionist fairy tales, collected by Henry Galtmice[roman type]. How adorable![paragraph break]The book is brand new. Stamped in the endpaper is the insignia of the Backwater Public Library: two back-to-back crescent moons joined by an eye looking down at an open book."
The passage is "[first time]The book is [italic type]The Seven Gaunts[roman type], edited by Henry Galtmice. [only]You flip through and glance at [zarf-book-stories]."
 
 
Chapter - Miscellany
 
To say zarf-newline-looked (W - zarf-word):
    if W is not zarf-word-dream:
        say line break;
 
To say zarf-familiarize (T - thing): familiarize T.
To zarf-findabilize (T - zarf-journal): now T is zarf-findable.
To say zarf-findabilize (T - zarf-journal): now T is zarf-findable.
To say zarf-redoublify: now zarf-redoubling-ability is true.
To zarf-go-mad: end the story saying "You have gone mad".
To say zarf-go-mad: zarf-go-mad.
 
Chapter - Commentary
 
The commentary of a zarf-room is always "[zarf-commentary-text]".
 
To say zarf-commentary-text:
    say "If you've played [italic type]Hadean Lands[roman type], you'll notice that the ritual magic in my Cragne room is similar. Then again, in certain ways, it's very different. (You [italic type]never[roman type] stand inside a ritual bound, right?)[paragraph break]";
    say "[italic type]Hadean Lands[roman type] came together nicely, but there was no way it could fulfill [italic type]all[roman type] of my initial plans. A few elements were left on the curb, or appeared only tangentially, rather than being central pillars. The lack I most regretted was a true sense of combinatory explosion. You have lots of elements to play with, but most of them don't combine in especially interesting ways.[paragraph break]";
    say "I hit that mark better in an earlier game, [italic type]The Dreamhold[roman type]. The alchemy puzzle in that game lets you combine just five elements (gold resin, blue dust, noonlight, two berries) to produce over twenty distinct reactions and a dozen possible products. I could have doubled those figures if I'd had the energy.[paragraph break]";
    say "I tried to achieve that texture in Cragne by specifying results in terms of combinations, rather than (as in HL) sequences. And, of course, by putting in as many red herrings and stray outcomes as I had time for.[paragraph break]";
    say "Naturally, I started with way too many ideas. My initial notes included these extra magic words:[paragraph break]";
    say "- BLOOD: Spend your life force to attract the dead. (Shades of the [italic type]Odyssey[roman type], pardon the pun.) Existing effects become more powerful. If you overuse this, you pass out and the ritual crashes.";
    say "- BARRIER: The Elder Sign. A shield. Makes some encounters less dangerous, others impossible.";
    say "- KEY: The knowledge that unseams and unlocks. Makes connections more transparent; some encounters become viable.[paragraph break]";
    say "But these rapidly got cut after I realized how many combinations I was getting myself into.[paragraph break]";
    say "My great parsimony, of course, is objects; this is an extremely sparse game. (I know that sounds silly in the context of a Cragne room, but...) I built several locations, but aside from the first and last, each location has just a couple of scenery objects and no portable ones. [italic type]All[roman type] of the spirits and presences are represented by a single object, the 'manifestation', which does nothing but show a variable description and (occasionally) a LISTEN or SMELL response.[paragraph break]";
    say "The game's rhythm is a steady cycle of find name, look up name, learn magic, find another name. I didn't mean for it to be quite so tick-tock, but the player benefit of making all the clues reviewable in files is compelling. Then I realized that doing research (and learning new magic) in the middle of a ritual is awkward. When you start experimenting with your new spell, you should have a clean slate. So I added the requirement that you cancel your ritual before learning anything new.[paragraph break]";
    say "I carried over the testing habits (and the regression tester) which I developed for [italic type]Hadean Lands[roman type]. I have a test script which runs through all the puzzle solutions and most of the puzzle [italic type]failures[roman type], validating the responses. The test script has more lines than the game's source code, although (to be fair) those lines are shorter and more repetitive.[paragraph break]";
    say "In case you're curious, the source code is about 21000 words of Inform, comprising about 11000 words of printable game text, 9300 of code, and 700 of commentary (what you're reading now).[paragraph break]";
    say "Overall, I was aiming at a game of roughly IFComp size. I typically allocate a month to write a game of that size, and indeed I was able to comfortably finish it in the three weeks available. (Ryan scheduled four weeks, but I had to wrap up early because of a conflicting vacation.) Although the magic is [italic type]Hadean[roman type]-style, I tried to make the puzzles much easier than [italic type]Hadean[roman type]'s -- this is supposed to be just one room in a large game! Even though the fun of the game is in experimentation, there are explicit signposts to all the important discoveries. Time and publication will show whether I put in enough of them.[paragraph break]";
    say "(Just to keep you on your toes, every design principle I've described here is violated at least once in the game. At least potentially. Have fun.)";
 
 
Chapter - Testing - Not for Release
 
Definition: a thing is zarf-ritual-boundy if it is zarf-runes or it is zarf-dais.
 
Test me with "zarf-test me / zarf-test me / ia / irnath / oggoth / turn knob / vulle / s / s / maleth / maleth".
Test end with "zarf-test me / zarf-test me / ia / irnath / oggoth / turn knob / vulle / s / s / maleth / maleth / d / xyzzy / vulle / east / unlock door with key / open door".
 
[The zarf-testing action covers all my debugging needs.]
 
Zarf-testing is an action out of world applying to one visible thing.
 
Understand "zarf-test [something]" as zarf-testing.
Understand "zarf-test [any zarf-word]" as zarf-testing.
 
Report zarf-testing:
    instead say "Nothing happens.";
 
Check zarf-testing the zarf-lunator when the zarf-red-knob is not in MBF4:
    now the zarf-red-knob is in MBF4;
    instead say "Zap, the knob appears.";
 
Check zarf-testing the zarf-cabinet:
    now zarf-ever-about is true;
    now all not zarf-failurey zarf-journals are zarf-findable;
    now all not zarf-failurey zarf-journals are familiar;
    instead say "Zap, you have found all journals."
 
Check zarf-testing the player:
    now zarf-ever-about is true;
    if all zarf-word-valid zarf-words are familiar:
        now zarf-redoubling-ability is true;
        instead say "Zap, you can double now.";
    else:
        now all zarf-word-valid zarf-words are familiar;
        instead say "Zap, you know all the words now.";
 
Check zarf-testing a zarf-word:
    if the noun is not familiar:
        now the noun is familiar;
        instead say "Zap, now you know [the noun].";
    if zarf-redoubling-ability is false:
        now zarf-redoubling-ability is true;
        instead say "Zap, you can double now.";
    instead say "There's nothing left to learn."
 
Check zarf-testing a zarf-ritual-boundy thing:
    say "Current ritual state:";
    repeat with W running through zarf-words:
        let N be the zarf-count of W;
        if N is not zero:
            say " [zarf-domestic of W]=[N]";
    say "; manstate is [zarf-manstate of zarf-manifestation]";
    instead say ".";
 
Understand "zarf-commentary" as a mistake ("[zarf-commentary-text]").
 
Section - Do Not Send To Ryan - Not for Release
 
[The following objects are stand-ins for generic inventory items brought in from elsewhere in the game. They should be commented out when I hand the file over to Ryan.]
 
[
The test cube is in MBF3.
The test scissors are in MBF3. The test scissors are plural-named.
The test person is a man in MBF3.
 
After looking when the location is MBF3 and the player carries zarf-book:
    say "You head back to the library with your prize.";
    end the story finally saying "You found the library book".
]
 
[MBF4-test is a zarf-room in MBF. MBF4-test is above MBF4.]