hasBlueKey: false hasBlackKey: false hasYellowKey: false hasPurpleKey: false hasGreenKey: false hasClaw: false hasBadge: false hasHoldBook: false hasBroom: false hasMop: false hasDustpan: false isCold: false hasCardigan: false launchpadClassroomIsLocked: true witchIsVanquished: false deskIsLocked: true cabinetIsLocked: true printerHoldsKey: true hasSeenGhostBook: false hasSeenComic: false hasSeenWitchBook: false hasSeenHauntedLibraryBook: false hasSeenGriffon: false hasSeenBoysRestroom: false hasSeenGirlsRestroom: false hasSeenCulturalCentre: false hasSeenStairs: false -- {embed image: 'images/kids%20program%20room.jpg', alt: ''} ### Mysterious Room You wake up in a large, dimly lit room. This isn't your bedroom. Where are you? How did you get here? It feels strangely familiar. You are wearing your summer pajamas and are barefoot. {embed passage: 'status'} > [[Get up and explore the room->Kids' Place Program Room]] > [[Go back to sleep and hope this is just a dream->Early End]] > [[Shout for help->Librarian End]]It wasn't a dream. You had your chance to escape, but now you are trapped here with all of the Things that are trapped in the library with you. You drift off to sleep and never hear them coming, never know just what finished you off. The End. Oh dear, you seem to have died. {restart link, label: 'Try again?'}{embed image: 'images/kids%20program%20room.jpg', alt: ''} ### Kids' Place Program Room You recognize this place. It's the Kids' Place Program Room at the Richmond Public Library. It looks so different when it is empty and dark. And kind of spooky. There are light switches on the wall, and two sets of doors lead out of the room. {embed passage: 'status'} > {reveal link: 'Turn lights on', text: 'The lights flicker on, then go out with a loud pop. You hope you haven\'t attracted unwanted attention.'} > [[Kids' Reading Area]] > [[Kids' Nonfiction]]You hear the skittering of giant claws as the library's new guardian rushes you, grabbing you in its huge mandiples and swiftly wrapping webbing the size of clothesline around you. Her fangs sink into your neck and you slowly cease to struggle as she hoists your coccooned body up to the ceiling upside down. You can feel the poison coursing through your body--soon your organs will liquify and the Librarian and her young will feed well tonight. The End. Oh dear, you seem to have died. {restart link, label: 'Try again?'} _things: [{flag: hasBlueKey, name: 'blue key'},{flag: hasYellowKey, name:'yellow key'}, {flag: hasGreenKey, name: 'green key'}, {flag: hasPurpleKey, name: 'purple key'}, {flag: hasBlackKey, name: 'black key'}, {flag: hasClaw, name: 'reaching claw'}, {flag: hasHoldBook, name: 'hold book'}, {flag: hasBadge, name: 'employee badge'}, {flag: hasBroom, name: 'broom'}, {flag: hasMop, name: 'mop'}, {flag: hasDustpan, name: 'dustpan'}] _carried: _things.filter(thing => thing.flag) _inventory: _carried.map(thing => thing.name).join(', ') -- [if _carried.length] You are carrying: {_inventory} [else] You are not carrying anything. [if isCold] You are feeling cold. [if hasCardigan] You are wearing a warm cardigan. [if hasCardigan && !hasGreenKey] There is something hard in the cardigan pocket. {reveal link: 'Search pocket', passage: 'Found Green Key'} [if random.d4 === 1] You feel like you are being watched. hasBlueKey: true -- You found a blue key in the pocket of the cardigan.isCold: true -- ### Kids' Reading Area {embed image: 'images/kids%20reading%20area.jpg', alt: ''} Everything looks different. There are cobwebs everywhere and it doesn’t look like anyone has been here in years. And it is so cold you can see your breath. You should find something to help you warm up. {embed passage: 'status'} > [[Kids' Nonfiction]] [if !hasSeenComic] > [[Kids' Comics]] ### Kids' Nonfiction {embed image: 'images/kids%20nonfiction.jpg', alt: ''} There are rows of books carefully arranged by subject number. All of them are under a thick coat of cobwebs and you're pretty sure you can see some actual spiders scuttling among the books. Big, hairy spiders. {embed passage: 'status'} [if !hasPurpleKey] > [[Kids' Fiction]] [continue] [if !hasSeenGhostBook] > {reveal link: 'Search for a book on ghosts', passage: 'Ghost Book'} [if !hasSeenWitchBook] > {reveal link: 'Search for a book on witches', passage: 'Witch Book'} [if !hasSeenHauntedLibraryBook] > {reveal link: 'Search for a book on escaping from haunted libraries', passage: 'Haunted Library Book'} [if !hasSeenBoysRestroom] > [[Boys Restroom]] [if !hasSeenGirlsRestroom] > [[Girls Restroom]] [if !hasYellowKey] > [[Family Restroom]] [continue] [if !isCold && !hasCardigan] > [[Kids' Reading Area]] [continue] > [[Emergency Exit]] ### Emergency Exit There's a door with a pushbar--you could escape right now! But there _is_ a large sign: **Alarm Will Sound**. Setting off the alarm may attract unwanted attention from whatever else is here in the library with you. You have to decide if it is worth the risk. [if hasPurpleKey] > [[Disable the alarm and escape->Win]] [else] > It looks like you could disable the alarm if you had the purple key. > [[Risk the alarm, just get out of here!->Librarian End]] > {back link, label: 'Don\'t risk it'}_cardigan: '' _cardigan (hasCardigan): ' and a stolen cardigan' -- You did it! You survived the haunted library. Now as you blink in the bright sunshine of a crisp, cold day you begin to wonder, "how much of that was real?" Also, you are standing in a parking lot in your pajamas{_cardigan}. How are you going to get home? The End.hasYellowKey: hasBlueKey -- ### Family Restroom {embed image: 'images/family%20restroom.jpg', alt: ''} [if hasBlueKey] This small room is dark and damp. You can hear strange clanking noises that seem to be coming from above, as well as a creaking sound as if the ceiling were about to fall on you. On the edge of the sink, you see a dim yellow shape. As your eyes adjust to the dimness you realize it is a key. You quickly grab the key and get out. [else] The door is locked and you don't have the blue key to open it. [continue] > {back link, label: 'Go back'}### Kids' Comics {embed image: 'images/kids%20comics.jpg', alt: ''} Most of the comics are mouldering away, dropping decomposing pages to the ground. One looks newer and its spine is pulled out slightly from the others as if inviting you to take it. {embed passage: 'status'} > [[Kids' Fiction]] [if !hasSeenComic] > {reveal link: "Look at the comic", passage:'Comic'} [if !isCold && !hasCardigan] > [[Kids' Reading Area]] ### Kids' Fiction {embed image: 'images/kids%20fiction.jpg', alt: ''} Narrow aisles of books. Some of your best memories are here, or they would be, but someone seems to have taken all the fantasy, science fiction, series titles, and plain fiction, and replaced them all with horror. Shelf after shelf of horror. And the authors seem strange: you didn't know John Wayne Gacy ever wrote children's books. {embed passage: 'status'} [if !hasPurpleKey] > [[Launchpad Flex Space]] [continue] > [[Kids' Nonfiction]] [if !hasSeenComic] > [[Kids' Comics]] [continue] [if !hasPurpleKey] > [[Teen Area]] [continue] [if !hasBlueKey] > {reveal link: 'Search Librarian Desk', passage: 'Librarian Desk'} ### Teen Area {embed image: 'images/teen%20area.jpg', alt: ''} Between the Nonfiction and Fiction shelves there are dark reddish-brown stains spattered on the wall. The carpet is wet with a dark liquid and squishes when you walk. There is a sickly metallic tang in the air. {embed passage: 'status'} > {reveal link: 'Circulation', text: 'There is a sign, "Staff Only." Also, it\'s locked.'} > [[Lobby]] > [[Book Return]] > [[Kids' Fiction]] [if hasBadge && !hasBroom] > [[Utility Closet]] [if !hasBadge && !hasBroom] > {reveal link: 'Utility Closet', text: "There is a utility closet, but it won't open. There's a sensor panel next to it, perhaps if you had an employee badge to scan you could get in."}### Launchpad Flex Space {embed image: 'images/launchpad%20flex%20space.jpg', alt: ''} The computers of the Creation Stations are covered with plastic sheeting and there is dust everywhere, but in the dust you see footprints. Someone has been here recently. A built-in cabinet serves as a makeshift desk. There are low, round tables surrounded by stools that can rock back and forth. One of them is rocking without having been touched. {embed passage: 'status'} [if hasBlackKey && !hasClaw] > {reveal link: 'Search Cabinet', passage: 'Launchpad Cabinet'} [if !hasBlackKey && !hasClaw] > {reveal link: 'Search Cabinet', text: "The cabinet is locked and you don't have the black key."} [if !hasBlackKey] > [[Launchpad Lecture Space]] [continue] [if hasYellowKey && !hasPurpleKey] > [[Launchpad Classroom]] [continue] [if !hasYellowKey && !hasPurpleKey] > {reveal link: 'Launchpad Classroom', text: "The classroom is locked and you don't have the yellow key."} [continue] > [[Kids' Fiction]] [continue] > [[Lobby]] [if !hasSeenGriffon] > [[Adult Fiction]] hasBlueKey: hasGreenKey -- [if hasGreenKey] You are able to unlock the Librarian Desk. Inside you find some rubber bands, paperclips, and a small blue key. You pocket the key and close the drawer feeling slightly guilty about rummaging through someone else's desk. [else] The desk is locked and you don't have the green key.### Lobby {embed image: 'images/lobby.jpg', alt: ''} There are reddish-brown crusty footprints back and forth across this large room. In one corner are the books on hold for members. Near the non-working self-checkout stations is an accounts desk, where there appears to be some movement. {embed passage: 'status'} [if !hasSeenCulturalCentre] > [[Cultural Centre]] [if !hasSeenStairs] > [[Stairs to Second Floor->Stairs]] [continue] > [[Launchpad Flex Space]] [if !hasCardigan] > [[Accounts Desk]] [if !hasHoldBook] > [[Hold Books]] [continue] > [[Book Return]] [if !hasBadge] > [[Elevator]] [if !hasSeenGriffon] > [[Adult Fiction]] ### Book Return {embed image: 'images/book%20return.jpg', alt: ''} There are slots for putting books into. An arm is sticking out of one of the slots. You're not sure what would be worse, if it is attached to someone, or if it isn't. {embed passage: 'status'} > [[Lobby]] > [[Teen Area]] ### Utility Closet A small, cramped, dark room. There are all the usual things you'd expect: folding chairs, folding tables, mops, brooms, dollies for moving things. On the wall are coiled extension cords, dustpans, and *a bloodstained axe.* {embed passage: 'status'} > {reveal link: 'Take broom', passage: 'Take Broom'} > {reveal link: 'Take mop', passage: 'Take Mop'} > {reveal link: 'Take dustpan', passage: 'Take Dustpan'} > {reveal link: 'Take axe', text: "The handle is sticky with blood, you can't bring yourself to touch it"} > {back link, label: 'Go back'}### Launchpad Lecture Space {embed image: 'images/launchpad%20lecture%20space.jpg', alt: ''} One wall holds platforms meant to showcase 3D printers, but the printers are all missing, aside from one that appears to be broken and partially disassembled. Another wall is made of boards in a track so it can open and close. The main wall curves and is mostly covered by video monitors. At first the monitors all seem to be off, but looking more closely you can see they are displaying dark static patterns and making a faint buzzing sound. In the static you can make out lines that trace intricate patterns you can't quite hold in your head. With the extra light given by the screens, you can make out insubstantial flakes floating in the air like ash. There is a smell, not bad exactly, but weird. It smells like nothing you've ever smelled before, but also somehow familiar. {embed passage: 'status'} [if !hasBlackKey] > {reveal link: 'Examine the broken 3D printer', passage: 'Broken 3D Printer'} > {back link, label: 'Go back'} ### Launchpad Classroom {embed image: 'images/launchpad%20classroom.jpg', alt: ''} All the desks have been pushed aside and in the center of the room is a makeshift fire pit with a cauldron suspended over it. A witch stirs the cauldron with a smile. "Give me a broom and I will give you my potion," she says with a grin, "but if you come any closer without a broom for me, I will eat you up!" {embed passage: 'status'} [if hasBroom] > {reveal link: 'Give her the broom', passage: 'Launchpad Cauldron'} [continue] > {back link, label: 'Go back'} ### Adult Fiction {embed image: 'images/adult%20fiction.jpg', alt: ''} Near the mysteries you think you can see someone, but only out of the corner of your eye. She appears to be putting books away, but every time you look at her directly, she vanishes. A shiver runs down your spine. {embed passage: 'status'} [if !hasSeenGriffon] > [[Adult Reading Area]] [continue] > [[Lobby]] > [[Launchpad Flex Space]] hasBlackKey: true -- There is an old, dusty 3D printer here with its door hanging open. Inside it appears to be partially disassembled and there are a bunch of pieces of PLA plastic from what looks like attempted prints that failed. Digging through the junk, you find a black key.hasBroom: false -- The witch grabs the broom from you and flies off through the door and out of sight. As she passes you, she laughs, "the potion is all yours!" and you hear her cackle fade into the distance. There is a bubbling cauldron of foul-smelling potion with a ladle in it. > {reveal link: "Take a sip of the noxious brew.", text: "You raise a ladleful to your lips and burn your mouth on the stuff. You manage to swallow some, trying not to think about the globs that seemed to be wriggling as they went down. You don't feel so good."} > {reveal link: "Stir the cauldron.", passage: "Stir Cauldron"} hasPurpleKey: true -- As you stir the witch's nasty potion you hear a metallic clink as the ladle hits something at the bottom of the cauldron. It takes you a few tries of fishing around, but at last you manage to retrieve it: a purple key! You shake as much of the stringy liquid off as you can and pocket it.hasBroom: true -- You have the broom, you will sweep your problems awayhasMop: true -- You have the mop, no spill can defeat youhasDustpan: true -- You have the dustpan, you are ready for anythinghasSeenGriffon: true -- ### Adult Reading Room {embed image: 'images/adult%20reading%20area.jpg', alt: ''} You know the rule is to be quiet in the library, but that goes double when there is a huge creature sleeping in a corner! What is it? Wings and head of an eagle, body of a lion? A griffon? In any case, you want it to stay asleep {embed passage: 'status'} > {back link, label: 'Go back'}### Accounts Desk {embed image: 'images/accounts%20desk.jpg', alt: ''} A ghostly librarian appears to be putting phantom RFID tags into ethereal books. She looks up at you as you come around the back of the desk. [if hasHoldBook] She smiles and nods at you and returns to her task. [if !hasHoldBook] She glares at you and growls, "You shall not pass! You still haven't picked up your hold book!" She raises her hands which appear very claw-like with sharpened nails. [continue] {embed passage: 'status'} > {reveal link: "Take ghost's employee badge", text: "The ghost's employee badge is immaterial and cannot be touched"} > {reveal link: 'Search cash register', text: "Due to budget cuts, there is nothing in the cash register"} [if hasHoldBook && !hasCardigan] > [[Lost and Found]] [continue] > [[Lobby]] ### Elevator {embed image: 'images/elevator.jpg', alt: ''} [if passage.visits === 1] To your surprise, the doors open, but as you step inside you realize there is no elevator here, just a pit of yawning darkness. You jump back just in time to barely avoid the elevator as it plunges from above, shooting down below so fast the wind almost sucks you into the elevator shaft after it. You narrowly missed losing a leg, or your head! You notice dark stains on the floor: perhaps not everyone was as lucky. [continue] {embed passage: 'status'} [if passage.visits === 1] Your head is reeling from the close call, but there is an afterimage in your blurred vision of something colourful hanging just out of reach in the darkness of the elevator shaft. [if passage.visits > 1 && !hasBadge] You lean out carefully, your every sense straining to warn you if the elevator moves again, but there is only the empty shaft. Careful not to lose your balance you move your head from side to side until you see it: a card of some kind hanging from a lanyard that is caught on a protrusion below you. [if passage.visits > 1 && hasClaw && !hasBadge] {reveal link: 'Use the extension claw to retrieve the card', passage: 'Get Badge'} [if passage.visits > 1 && !hasClaw] Unfortunately, the lanyard is out of reach below you unless you can find something to grip it with. [continue] > {back link, label: 'Go back'}### Hold Books {embed image: 'images/holds%20area.jpg', alt: ''} There are rows of books with paper wrapped around the spine. The paper shows the name of the person they are being held for: Bilancia, Dahmer, Labutkin, Pickton, etc. [if !hasHoldBook] One of the books is pulled out slightly, and it has your name on it! {embed passage: 'status'} [if !hasHoldBook] > {reveal link: 'Take the book held for you', passage: 'Take Book'} > {back link, label: 'Go back'}hasBadge: true -- You reach down with the claw and easily grab the lanyard, pulling it up. You have gained yourself one employee badge! Strangely, it already has your name and photo on it. Weird.hasHoldBook: true -- You pull the book from the shelf and peel off the paper wrapper with your name on it. The book is one of your favourites from childhood, but you lost your own copy years ago and you'd almost forgotten it. You look forward to revisiting it once you get out of here.hasClaw: true -- There is a bunch of junk: old cables for computers that haven't been made in years, 3D prints that were never picked up, miscellaneous tools, and stuff you don't even recognize. There's an extension claw for extending your reach that might be useful, so you take it.### Lost and Found {embed image: 'images/lost%20and%20found.jpg', alt: ''} There is a table with various items that have been left behind in the library over time. A bottle of arsenic, a ceremonial dagger, some chains and ropes. There is a box of clothes and another box of electronics. {embed passage: 'status'} > {reveal link: 'Search clothing box', passage: "Search Clothing"} > {reveal link: 'Search electronics box', text: 'There are a few thumb drives, an antique GPS, and a cell phone that is several years out of date and probably has a dead battery. You try the cell phone anyway, to try to call for help, and to your surprise it boots up with 1% remaining. As soon as it finishes starting it vibrates in your hand: someone is calling. You answer the call, ready to ask for help, but a voice whispers hoarsely, "Get Out!" and the phone goes dead.'} > {back link, label: 'Go back'}hasCardigan: true isCold: false -- The clothing box holds a couple of stained t-shirts, a baseball cap, and a wool cardigan that looks warmer than your pajamas. You put the cardigan on and do indeed feel a lot less cold.hasGreenKey: true -- You found a green key!hasSeenWitchBook: true -- You find a book, it says witches will trade something you need for something they need.hasSeenGhostBook: true -- You find a book, it says ghosts will leave you alone if you are carrying something they like.hasSeenHauntedLibraryBook: true -- hasSeenBoysRestroom: true -- ### Boy's Restroom A cold wind blows through, you don't want to go in there. {embed passage: 'status'} > {back link, label: 'Go back'}hasSeenGirlsRestroom: true -- ### Girl's Restroom You can hear the rattle of chains and a low, blood-curdling groaning. You can't bring yourself to go in. {embed passage: 'status'} > {back link, label: 'Go back'}hasSeenCulturalCentre: true -- ### Cultural Centre The door has been barricaded from the outside, it looks like they were trying to keep something from getting out. {embed passage: 'status'} > {back link, label: 'Go back'}hasSeenStairs: true -- ### Stairs to Second Floor The stairs are cordoned off with police tape reading "Crime Scene - Keep Out" {embed passage: 'status'} > {back link, label: 'Go back'}hasSeenComic: true -- It is titled "Why Go On? A guide to the afterlife". Inside is a story of a librarian who fell down an elevator shaft. Her employee badge snagged on something on the way down, but did not stop her fall.