(continued)
Public Library (Cark Muckenhoupt, SPO4)
Another big 'un; the library of course plays host to the big book-returning puzzle as well as the portal-opening grimoire that’s the ultimate reward, plus the creepy librarian-impersonating monster. We first visited in Chapter 4, then popped in regularly to drop off books before finally completing the quest in Chapter 22; we noticed the “librarian’s” disappearance in the first bonus update.
We start off with a couple of fun easter eggs:
Instead of buying a book when the location is SPO4, say “It’s a public library. You can read the books here for free.”
Instead of sleeping when the location is SPO4: say “[one of]In your current state, sneaking a nap [if the player is not on baf-chairs]on one of those chairs [end if]seems like a good idea. You drift off…[paragraph break]…and wake up maybe an hour later, still tired and now with a crick in your neck.[or]No thanks. Not again.[stopping]”.
Instead of jumping when the location is SPO4:
say "The floor creaks and squeaks as you bounce up and down.";
if baf-librarian is in SPO4:
try baf getting shushed for the player.
“baf getting shushed” is of course the routine for the librarian reacting to the player being noisy. Here’s the relevant text:
say “[one of]With whip-like speed, [if the noun is baf-librarian]she[otherwise]the librarian[end if] raises a finger to her lips and shushes you vigorously, then points at a sign on the counter.[paragraph break]You glance around. There’s no one around who you could possibly be disturbing[or][if the noun is baf-librarian]She[otherwise]The librarian[end if] shushes you again and taps on the sign with a fingernail, then points at you and then at the bookshelves in the middle of the room[or][if the noun is baf-librarian]She[otherwise]The librarian[end if] shushes you again, sharply. It’s a little strange how she doesn’t purse her lips when she does that. She basically just holds a finger to her mouth and blows around it[or][if the noun is baf-librarian]She[otherwise]The librarian[end if] shushes you[stopping].”
That penultimate bit about how her lips don’t move is a nice bit of foreshadowing. Here’s one other fun bit:
[Turnabout is fair play]
Baf shushing is an action applying to one thing. Understand “shush [something]” as baf shushing when the location is SPO4.
Carry out baf shushing:
say “[The noun] doesn’t react.”
Instead of baf shushing baf-librarian:
say “[one of]She immediately shushes you back, longer and more energetically. Good lord she’s got a good set of lungs[or]You’re not challenging her to another shush fight. There’s only so much humiliation you can take[stopping].”
You may recall that there are a bunch of different (useless) books that can be pulled off the shelves; there’s a bit of code to prevent those repeating too quickly that goes several steps beyond Inform’s built in “at random” function (which I think just makes sure you don’t get the same result twice in a row). The Table of Baf Disappointments is the list of different books, then there’s this code:
To say baf book description:
Let n be a random number between 1 and the number of rows in table of baf library disappointments;
while n is listed in baf booklog:
now n is a random number between 1 and the number of rows in table of baf library disappointments;
truncate baf booklog to the last 5 entries;
add n to baf booklog;
choose row n in table of baf library disappointments;
say "[description entry]".
(The full list of disappointments is worth checking out, since I don’t think we saw all of them).
There are some optional deaths here that we missed:
Instead of climbing or entering baf-shelves:
say “You clamber up the shelf like it’s a creaky, rickety ladder. Then, with a groan, it falls backward onto you.”;
end the story saying “You have been crushed.”
Instead of pushing or pulling or turning or taking baf-shelves:
say “Grabbing the shelf awkwardly, you give it a mighty heave. It rocks briefly, then teeters back onto you.”;
end the story saying “You have been crushed.”
Death is an appropriate punishment for getting up to this kind of monkey business in a library, of course!
I won’t go into detail on how the book list is done – it’s relatively straightforward – but these comments provide a look at the thought process:
[I was thinking of making this preserve the book list as it was when you first get the note, but it struck me that a dynamically-shrinking list would be useful to the player, and is well within the parameters of cosmic horror.
Also, I was thinking of getting the same player-helping aspect by making it preserve the whole book list and making the player automatically cross them out or put X’s by them as you go. But that would have been more work, and would have produced annoying cases like “what if you return a book while the book list is in another room”.
As an added bonus, a mysteriously-changing list will provide a built-in excuse for any books whose printed names change over the course of play.]
There’s a response if you try to break the glass case instead of faffing about returning books:
Instead of attacking or cutting baf-case:
say “A hollow ‘SMAT!’ sound echoes around the room, but the case isn’t even scratched.”;
“SMAT” is a new onomatopoetic sound effect on me.
Speaking of the grimoire, here’s what happens when you try to read it:
Passage of baf-grimoire is “[if baf-grimoire is in baf-case][jj grimoire in the case][otherwise][jj grimoire free]”.
The “jj” is Joey Jones, who wrote the observatory room – so this suggests that both the in-case and out-of-case blurbs were written by him. Another fun look at the coordination process!
More clues about the librarian:
Instead of smelling baf-librarian, say “A gingerly sniff reveals an unexpected unpleasant smell, like expired turmeric, partly masked by flowery perfume.”
Instead of listening to baf-librarian, say “She’s absolutely silent. You can’t even hear her breathing.”
Using the adverb “gingerly” in a sentence that mentions turmeric is a nice bit of writing.
One more:
Instead of baf pointing something lit when baf-librarian is in SPO4:
say “[regarding the noun]The librarian gazes into [their] light without blinking.”
(“baf pointing something” is the action to show something to the librarian, so you can indicate the case to her so she unlocks it once you’ve cleared your book-debt).
And one more death:
Instead of attacking or cutting or burning baf-librarian:
say “You try. She moves incredibly fast for someone of her apparent age, flash-stepping up to you, grabbing your wrists, and squeezing hard. Looking down, you notice that she isn’t using her hands. Her arms are wrapped around yours like a pair of snakes. You wonder if you’re hallucinating as you pass out from the pain…”;
end the story saying “You have died”.
Not great!
We tested out XYZZY in here, and got a null result through a bug that I can’t diagnose in the code as written, but actually there’s a lot of magic-word functionality in here. You obviously just get shushed if the librarian is still around, then if you’re not carrying the grimoire it emits a flash of light. If you are carrying the grimoire, XYZZY, AZBAN, and VAADIGNEPHOD all give their own responses. Here’s XYZZY:
say “[one of]A glowing apparition bearing a blue sword materializes before you, towering over the shelves. ‘I am the great warrior Xyzzy, ancient foe of all cosmic horrors! How may I serve you, exalted one?’[paragraph break]Before you can reply, it turns as if distracted. ‘Hold on, there’s another adventurer calling on me. It never ends, does it? I’ll be back in a jiffy.’ With that, it vanishes.[if baf-librarian is in SPO4][paragraph break]The librarian doesn’t seem to have noticed anything.[end if][or]You hear a dial tone.[stopping]”;
(Since you can’t XYZZY while the librarian is in the library, this last bit will never get displayed I don’t think).
Here’s AZBAN (I’d forgotten, but the plaque on the case reveals that the author of the grimoire sometimes wrote under “Azban” as a pseudonym, which was also the name of an Abenaki trickster spirit that takes the shape of a racoon):
say “[one of]You hear a soft chuckle from the shelves.[or]There it is again. A sort of chittering, high-pitched laugh. You cautiously peer between the shelves but don’t see anything.[or]You intone the magic word and immediately peek between the shelves. The biggest, fattest raccoon you’ve ever seen is standing there, busily pulling books out and stuffing them into a sack on its back. A moment later, it notices you, startles, and scurries out of sight.[or]Nothing happens.[stopping]”;
And here’s the big V:
say "You feel a presence at your back, somehow close and unimaginably distant at the same time. Nonverbal thoughts force themselves on your mind: ";
if the player is wearing baf-dress and the player is wearing baf-wig and the player is wearing baf-mask:
say “a sense of welcome return, and of a pomise of reward for a duty fulfilled. The presence leads you irresistably through hidden ways, until your sense of self drops away like a chrysalis.”;
end the story saying “You have ceased to be as you were”;
otherwise:
say “a sense of surprise, a curiosity about your motivations in performing such a summoning. But this curiosity is brief, and soon overwhelmed by hunger.”;
end the story saying “You were not prepared”;
Well there’s our answer as to the librarian-creature’s allegiances - though since it both blocked us from getting the grimoire at first, but then handed it over in the end, it provides only an equivocal clue to whether Nitocris was always just a pawn in old Vaady’s schemes.
Speaking of library books, next up is the water fountain, which of course plays host to our favorite NPC!
Drinking Fountain (Lucian Smith, SPO8)
We first came to the fountain in Chapter Four, and finally found enough books to complete the puzzle here in Chapter Eighteen.
First off, there’s a nice custom message for anyone dumb enough to try destroying a book:
Instead of cutting or attacking or burning a library book in SPO8:
say “The horrors of this world have not yet driven you to such madness as to seriously consider defacing a library book.”
There’s also a fun toggle when trying to drink from the fountain that depends on whether or not Emmett’s been exorcised yet:
Instead of pushing or switching on or switching off the lp-button:
If lp-ghost6 is happening:
say "You take a drink from the fountain. The water is cold, clear, and satisfying.";
rule succeeds;
else:
say "You take a drink from the fountain. The water is lukewarm and vaguely brackish.";
rule succeeds;
He’s definitely a nice fellow to have around!
That “lp-ghost6” is part of the scheme used to track the progression of the ghost’s manifestations; this is done via six different scenes that fire when you’ve seen at least 1 library book, then 3, then 6, then 9; at that point the endgame of this puzzle is triggered and Emmett leaves you and heads to the fountain. There are two more scenes after that based on smashing the hole in the fountain, and then lastly having read all the books.
Notably, there are different Understand statements providing synonyms for Emmett depending on which stage he’s in:
Understand “chill”, “faint chill” as Emmett while lp-ghost1 is happening.
Understand “spark”, “chalk”, “snap”, “ice cracking”, “hovering”, “chill” as Emmett while lp-ghost2 is happening.
Understand “ghost”, “chill”, “spark”, “chalk”, “snap”, “hovering”, “well-dressed”, “African-American”, “black”, “outline”, “man”, “suit”, “tie” as Emmett while lp-ghost3 is happening.
Understand “ghost”, “chill”, “spark”, “well-dressed”, “African-American”, “black”, “outline”, “man”, “suit”, “tie” as Emmett while lp-ghost4 is happening.
Understand “ghost”, “well-dressed”, “African-American”, “black”, “outline”, “man”, “suit”, “tie” as Emmett while lp-ghost5 is happening.
Understand “Emmett”, “Josey”, “Emmet”, “Emett”, “cold”, “spot”, “collarbone”, “collar”, “shoulder”, “your collarbone”, “my collarbone”, “ghost”, “well-dressed”, “African-American”, “black”, “man” as Emmett while lp-ghost6 is happening.
The bit of code involving the sledgehammer has this apposite title:
Section Violence Is The Answer To This One
Turns out the ghostly sledgehammer has a Mjolnir-like feature:
Instead of throwing the lp-ghostly-sledgehammer at something:
say “The sledgehammer mists to nothing as it leaves your hand, then rematerializes in your arms.”
Handy!
There are a bunch of actions implemented if you try messing with Emmett when he’s in cold-spot-on-your-shoulder mode:
Instead of pulling or pushing or turning or opening or switching on or switching off or entering or closing or taking or cutting Emmett during lp-ghost6:
say “You can’t do that to a cold spot on your own shoulder, even if it is the tangible manifestation of an African-American ghost.”
Instead of taking off Emmett during lp-ghost6:
say “The cold spot seems to be part of you now.”
Instead of kissing Emmett during lp-ghost6:
say “Craning your neck, you manage to kiss the cold spot on your collarbone. It warms briefly before the cold returns.”
Instead of showing or giving something to Emmett during lp-ghost6:
say “Feeling foolish, you turn your shoulder towards [the noun], but get no response.”
Points for completeness but I am very curious which tester, if any, tried to kiss the ghost-spot.
I don’t think we did much conversing with Emmett, what with him being dead and all, but he actually does know some topics:
Table of Emmett Reactions
em_object reply
yourself “You hear a soft voice breathe, ‘Thank you,’ inside your head.”
book1 “You hear a voice echo in your head. ‘Ah, yes, book1. An amazing treatise on what it truly means to be a water buffalo. It was continually checked out from 1902-1922.’”
lp-library-book “A sigh echoes in your head. ‘Didn’t really think I needed an entry in that, but I couldn’t really complain. Jess was so up-beat about the whole thing. The entry about me is…’ Another sigh. ‘She… meant well.’”
lp-article “A voice echoes faintly in your head. ‘That’s how it ended. I just… I just was done. It was too much.’ A regretful sigh. ‘At least I got his hand. Bastard.’”
lp-fountain “‘Back in its original state. Well, mostly. Nothing’s ever exactly as it was, I suppose.’”
lp-fountain2 “‘They knew it was wrong, but they just let the ivy cover it up.’ A disgusted noise. ‘Better that it’s gone. Thank you.’”
library insignia “‘That’s been the insignia of the library since well before my time. It bothered me at first, but eventually, I came to see it as… protective. As if, through knowledge, one could rise above the madness and conquer it.’”
(book1 is one of several placeholder library books implemented for testing purposes – I doubt that bit of dialogue survives into the completed game).
One more big one coming up to close off the SPO region:
Bridge (Daniel Stelzer and Jemma Briggeman, SPO7)
We came to the bridge in Chapter 6, and if you remember that you’ll not be surprised that there’s lots to take in here. Let’s start out simple:
Instead of examining the player when the location is SPO7:
say “You’re having a hell of a day, but you’re determined to keep moving forward. Despite the burning in your limbs and the fact that you could really do with a drink right now, you’re still (miraculously) in one piece[if Stelzer-wet is true]. Your hair falls in damp straggles around your ears, occasionally dripping water into your eyes. Your clothes are weighted down with water and every breeze steals a little bit more heat from your freezing skin[end if].”
Cool, not sure we noticed the alternate description when wet!
We also noticed some procedural text that would spit up a random Lovecraftian adjective here and there – this is how the trick is done:
To say Stelzer adjective: say “[one of]hideous[or]faint[or]nameless[or]singular[or]maddening[or]abnormal[or]blasphemous[or]accursed[or]loathsome[or]eldritch[or]indescribable[or]aberrant[or]abominable[or]absurd[or]abysmal[or]alien[or]ambiguous[or]amorphous[or]anarchic[or]ancient[or]anomalous[or]appalling[or]atrocious[or]cancerous[or]cellular[or]changeable[or]confusing[or]congealed[or]corrupted[or]decomposing[or]deformed[or]degenerated[or]degraded[or]delirious[or]detestable[or]diabolical[or]diseased[or]disgusting[or]distorted[or]dreadful[or]effervescent[or]festering[or]fetid[or]fiendish[or]piscatorial[or]fluctuating[or]fluid[or]foaming[or]gangrenous[or]ghastly[or]glutinous[or]greenish[or]grim[or]grisly[or]hateful[or]hellish[or]ichorous[or]infernal[or]infested[or]inhuman[or]insipid[or]irregular[or]malevolent[or]malicious[or]malignant[or]membranous[or]menacing[or]mesmerizing[or]monstrous[or]morbid[or]mottled[or]moldering[or]nauseating[or]nebulous[or]necromantic[or]noxious[or]obscene[or]odious[or]odorous[or]oily[or]ominous[or]oozing[or]organic[or]pale[or]pallid[or]peculiar[or]perfidious[or]perverse[or]phlegmatic[or]poisonous[or]profane[or]protoplasmic[or]pseudopodal[or]pulsating[or]chthonic[or]quiescent[or]repellent[or]reprehensible[or]reptilian[or]repugnant[or]repulsive[or]resplendent[or]sacrilegious[or]sallow[or]sanguine[or]sordid[or]tenebrous[or]turbid[or]unclean[or]uncouth[or]unspeakable[or]unutterable[or]vague[or]vaporous[or]vile[or]viscous[or]warped[or]wet[or]damp[or]wretched[or]zymotic[or]infectious[or]putrescent[or]daemoniac[or]fetid[or]fungoid[or]lurking[or]non-Euclidean[or]squamous[or]ululating[at random]”.
Fairly comprehensive! I enjoy how this is almost-but-not-quite alphabetized; fits the vibe.
The main business here is of course the multiple locations wheeze. It’s actually deceptively simple! First there’s a key variable to track where the player actually is:
The Stelzer position is a number that varies. [0 = on the bridge, 1 = under the bridge, 2 = in the water, 3 = in the skeleton]
Then the scenery – and any miscellaneous items – are whisked on or off-stage whenever the position changes:
To adjust the Stelzer position to (N - a number): [Set up scenery here]
repeat with the item running through unhandled Stelzer-vanishing things: [First remove everything]
remove the item from play;
if N is 0: [Then restore the things we want]
now the Stelzer gap is in SPO7;
now the Stelzer bridge is in SPO7;
now the Stelzer protrusion is in SPO7;
else if N is 1:
now the Stelzer weed is in SPO7;
now the Stelzer bridge is in SPO7;
now the Stelzer bat is in SPO7;
now the Stelzer bat is perching;
now the Stelzer skeleton is nowhere; [Have to handle this one specially because the player can end up inside it]
else if N is 2:
now the Stelzer skeleton is in SPO7;
now Stelzer-wet is true;
else if N is 3:
if the Stelzer bones are unhandled, now the Stelzer bones are in SPO7;
now the Stelzer position is N;
try looking.
(Stelzer-vanishing is just a simple property; things are usually not Stelzer-vanishing)
Then there are a bunch of Instead of going up or down rules that perform the requisite checks, give the appropriate feedback, and call the position-adjusting code. For example, here’s the bit about going down into the water:
else if the Stelzer powder is uneaten:
say "Without some way of breathing, you could never stay down there for long enough to make it worth the threat of hypothermia.";
else unless we are Stelzer-ready: [This checks if we have the lamp properly assembled]
if the player encloses the Stelzer flakes:
say "The moss is glowing gently, providing light, but will probably drift away if you go underwater, leaving you in the dark.";
else if the player encloses a lit thing:
say "[The list of lit things enclosed by the player] [are] likely to go out without anything to protect [them] from the water.";
else:
say "You have no source of light. The water is awfully dark and who knows what could be lurking down there...";
else:
say "You lower yourself down, through the ceiling of crashing water, until you're beneath the surface. It is so cold you can feel your chest constricting and have to remind yourself to breathe. And surprisingly, down here, you can.";
adjust the Stelzer position to 2;
How do we know if we’re Stelzer-ready?
To decide whether we are Stelzer-ready:
if the Stelzer flakes are not lit, no;
if the Stelzer flashlight is open, no;
if the player encloses the Stelzer flashlight, yes;
if the Stelzer rope is sunken and the Stelzer anchor encloses the Stelzer flashlight, yes;
no.
There’s one other curious bit to the movement code:
After going to SPO7 [when SPO7 is unvisited]:
say "[long intro text omitted]"
I forget whether I mentioned that there was always a long bit of text that displayed before entering the bridge; the commented-out bit would have made it so that only fired once, which I’d have thought would have made more sense. Not sure why that was removed!
The flashlight is complex but works mostly as you’d expect: it’s a transparent openable container that can accumulate a bunch of properties, including “oily” for when you get the weird liquid in it, at which point putting the flakes in makes them lit. There’s one slightly non-intuitive interaction accounted for:
Instead of tasting or eating the Stelzer bulb: say “You’ve heard it said, that if you manage to get a lightbulb all the way into your mouth without breaking it, the mechanism of the human jaw will never allow you to open your mouth wide enough to remove it again. The only way to get it out is to smash the glass. You have no intention of eating broken glass today.”.
I have not heard that, but it can’t possibly be true. Can it?
There’s also a surprisingly-robust rule accounting for what happens if you try to rub/clean the flashlight:
Instead of rubbing the wet Stelzer flashlight:
if the Stelzer flashlight is open:
say "You rub away the water.";
now the Stelzer flashlight is dry;
otherwise:
say "You rub the water off the outside, but there's some inside it as well.";
say "[paragraph break][bracket]If you wanted to shine the flashlight at something, just use EXAMINE and the game will understand.[close bracket][paragraph break]".
There are similar rules if the flashlight is oily or dry. The otherwise-mysterious parenthetical at the end made sense once I checked the standard rules and realized that “shine” is interpreted as the rubbing action – since it’s often used for cleaning. Not sure how many players would have stumbled across that, but it’s a thoughtful bit of design.
I don’t think we appreciated all the various ways the river could be described:
The description of the Stelzer water is “The river crashes through the cavern, its [Stelzer adjective] call echoing upon itself in cacophony. You are [one of]horrified[or]entranced[or]disgusted[or]strangely enamored[at random] by its [one of]sickly, putrid green color[or]voidish blackness that seems to absorb all light[or]crashing white froth, hissing and spitting up at you[or]swirling inky purple[or]peculiar illusion: it seems to swell with the shadows of ghosts[at random].”.
I don’t think we ever tried this, but you can try to swing on the rope, with the most interesting result when you do it right under the bridge:
say “You gather enough momentum to swing back and forth, getting close enough to see a variety of fish bones caught in the fronds around where the bat [if the Stelzer bat is perching]clings[else]was clinging[end if]. An aquatic bat? How strange. You wonder how it can manage to hold its breath that long.”;
A good clue there if you hit upon this experiment (I guess the player would probably be trying to swing over to the bat to investigate its amphibious habits).
The code for actually fixing the bridge involves a delightful definition that keeps the player from having to specify exactly which piece of the bridge they’re trying to put the slats onto:
Definition: something is Stelzer-bridgey if it is the Stelzer bridge or it is part of the Stelzer bridge.
Can’t argue with that.
Speaking of parts of the bridge, we never investigated the cords that held up the bridge:
The description of the Stelzer cords is “As you look closer, the puce strands that make up the plait seem to move. Whether some optical illusion caused by their intricate braiding or something altogether more organic, you couldn’t say. You look away quickly.”
Kinda gross.
Instead of eating or tasting the Stelzer cords: say “The [Stelzer adjective] braids slither under your tongue. What a horrible sensation!”
Even grosser!
While we’re on the subject of eating inappropriate objects, there’s also this sand that we likewise didn’t check out:
The description of the Stelzer sand is “The sand is strangely desiccated. No slime or glint of liquid, no reflection of light at all—just arid blackness, like dry charcoal from a dead fire. Upon closer inspection, it appears to consist of the crushed shells of some [Stelzer adjective] insect carapaces and tiny fragments of blackened bone.”
Instead of eating or tasting the Stelzer sand: say “The sand is sharp on your tongue like tiny shards of glass. It tastes bitter and acrid and when you spit it out, there’s a red tinge on your lips and the metallic taste of blood in your mouth.”
Ick.
Actually, I just noticed that the sand, and some pillars as well, are Stelzer vanishing scenery that goes away after you first go under the bridge, then never comes back from nowhere. I guess that’s because they’re only mentioned in that introductory text that fires when you enter the room, which you were maybe only meant to see once and represented the trip to the bridge which is skipped in subsequent turns?
Now that I look at the code, another weird niggle is that items you drop on top of the bridge don’t get whisked offscreen when you climb under the bridge, so they’re still available to mess with – anything you drop while on the rope falls into the water, though, and needs to be retrieved once you’re all the way on the sea bed. Wait, does that mean that you can drop the flashlight here and make the game unwinnable?
Bridge (hanging underneath) (Daniel Stelzer and Jemma Briggeman)
> drop flashlight
The waterproof flashlight sinks out of sight into the water.
Ruh roh. And I checked, if you eat the weed, TAKE BACK doesn’t magic you back to before you dropped the flashlight. In fairness, you’d need to be a pretty big doofus to try this so this isn’t exactly a major issue!
(One more piece of this update to come!)