{ (set: $rivers_edge to true) <p>You tell Old Willow you will help them.</p> <p>“Thank you,” Old Willow replies with another sigh. “The bag I have given you contains paper and ink drawn from the river behind you. This ink holds magical properties, and lets you combine nearly anything you find with paper to create a unique book.”</p> <p>You loosen the drawstring on the bag and peek inside. There are a few sheets of crinkled paper and a small ceramic container.</p> <p>“All you need to do is dip the item in the inkwell—or drip a little ink on larger items—and then touch the item to paper. The magic will do the rest.</p> <p>“And speaking of rest…” Old Willow’s voice grows fainter. “Leave me now, traveller. I wish to slumber awhile.”</p> <p>[[Leave Old Willow be.->River Edge]]</p> }{ (if: $maid_complete is true)[ <p>You return to the inn’s back room. It’s a little too quiet here without the maid, to be honest.</p> (if: $closet_ninja is false)[ <p>So quiet you can hear something moving around on the other side of the closet door.</p> (link: "<p>Rummage in the supply closet.</p>")[<p>As you open the closet door, a ninja jumps out at you.</p><p>Gack! Seriously?!</p><p>The ninja bows, and then disappears in a puff of smoke.</p>(set: $closet_ninja to true)(set: $ninja to it + 1)] ] ] (else:)[ (if: $is_helping is false)[ (set: $thing_num to (random: 1, 5)) (if: $thing_num is 1)[(set: $thing to "a misshapen konpeitō tin")] (else-if: $thing_num is 2)[(set: $thing to "an oversized shuriken")] (else-if: $thing_num is 3)[(set: $thing to "the most eldritch-looking stone you’ve ever seen")] (else-if: $thing_num is 4)[(set: $thing to "a miniature lucky cat statue")] (else:)[(set: $thing to "something you sincerely hope is a plastic banana")] (if: $met_maid is false)[ (set: $met_maid to true) <p>You slip past the staircase and into the inn’s back room, where a harried maid is rummaging through an over-full closet of supplies, her expression one of intense frustration.</p> <p> “I’m trying!” she snaps as you approach. “But I just <em>can’t</em> find—oh.”</p> <p>She blushes, and her tone when she speaks again is much softer. “My apologies, I thought you were the innkeeper. Guests don’t usually come back here. Can I help you with something?”</p> <p>As she asks, (print: $thing) falls from the closet, bouncing off her foot. Her left eye twitches, but she says nothing as she kicks it back inside.</p> ] (else:)[ <p>The maid looks over from the supply closet as you re-enter the inn’s back room. The motion knocks loose (print: $thing), which whacks her in the shin on its way to the ground. She looses a nervous laugh, clearly a woman on the edge of a breakdown.</p> <p>“Hello,” she says. “If you’re willing to help me, I’d appreciate it.”</p> ] (link: "<p>Offer your assistance.</p>")[ (if: $supplies_found is 0)[ <p>She sags in relief. “Thank you. I really need a break. I’m looking for cleaning supplies, but all I’ve been able to find is this stupid, useless junk.” She waves two sheets of clean paper and a stopper of ink at you, as if their existence is an affront.</p> <p>“What exactly do you need?” you ask. <em>She</em> might not need that paper and ink, but you certainly could use it.</p> <p>“A mop, a bucket, a rag, and a duster,” she says. “Good luck!” And she steps back to give you access to the closet.</p> (link: "<p>Rummage in the supply closet</p>")[(set: $is_helping to true)(go-to: "Back Room")] ] (else:)[ <p>“(if: $bucket_found is true)[I have a bucket. ](if: $mop_found is true)[I have a mop. ](if: $rag_found is true)[I have a rag. ](if: $duster_found is true)[I have a duster. ] But I’m still missing (if: $supplies_found > 1)[some things](else:)[one more thing],” she says.</p> (link: "<p>Rummage in the supply closet</p>")[(set: $is_helping to true)(go-to: "Back Room")] ] ] ] (else:)[ (set: $random_supply to (random: 1,8)) (if: $supplies_found is 3)[(set: $thing_count to it + 1)] (if: $random_supply is 1 and $mop_found is false or $thing_count is 2 and $mop_found is false)[ <p>You rummage around in the closet and pull out the mop. Who in their right mind puts a mop in a full stand of umbrellas?</p> (if: $supplies_found < 3)[ <p>The maid heaves a sigh of relief. (if: $supplies_found is 0)[“Well,” she says, “it’s a start.”](else:)[“Nearly there now,” she says.]</p> ] (set: $mop_found to true) (set: $supplies_found to it + 1) ] (else-if: $random_supply is 2 and $bucket_found is false or $thing_count is 2 and $bucket_found is false)[ <p>You rummage around in the closet and pull out the bucket. The maid probably would have had an easier time finding it if she’d realised it was disguised as a top hat.</p> (if: $supplies_found < 3)[ <p>The maid heaves a sigh of relief. (if: $supplies_found is 0)[“Well,” she says, “it’s a start.”](else:)[“Nearly there now,” she says.]</p> ] (set: $bucket_found to true) (set: $supplies_found to it + 1) ] (else-if: $random_supply is 3 and $rag_found is false or $thing_count is 2 and $rag_found is false)[ <p>You rummage around in the closet and find the cleaning rag. Considering it was inside a box labelled “Open only in the event of my death,” it’s probably not a surprise the maid missed it.</p> (if: $supplies_found < 3)[ <p>The maid heaves a sigh of relief. (if: $supplies_found is 0)[“Well,” she says, “it’s a start.”](else:)[“Nearly there now,” she says.]</p> ] (set: $rag_found to true) (set: $supplies_found to it + 1) ] (else-if: $random_supply is 4 and $duster_found is false or $thing_count is 2 and $duster_found is false)[ <p>You rummage around in the closet and find the duster. Somebody’s put googly eyes on it to disguise it as a large and particularly hairy spider—the effect is somewhat ruined by the fact that it still has a large wooden handle protruding from its back.</p> (if: $supplies_found < 3)[ <p>The maid heaves a sigh of relief. (if: $supplies_found is 0)[“Well,” she says, “it’s a start.”](else:)[“Nearly there now,” she says.]</p> ] (set: $duster_found to true) (set: $supplies_found to it + 1) ] (else:)[ (display: "totally random") <p>The maid makes a face. “That’s not something I need at all. Put it back.”</p> ] (if: $supplies_found is 4)[ <p>“Oh, thank the heavens,” the maid mutters. “That’s the last of what I needed!” She juggles the cleaning supplies for a moment to shove the paper and stopper of ink into your hands. “You can have these!”</p> <p>Then she scuttles off, leaving you alone in the back room.</p> (set: $paper to it + 2)(set: $ink to it + 2)(set: $maid_complete to true) ] (else:)[ (link: "<p>Rummage in the supply closet</p>")[(set: $is_helping to true)(go-to: "Back Room")] ] ] ] <p>(link:"Return to the inn’s main room.")[(set: $is_helping to false)(goto: "inn")]</p> }{ <p>The path here leads past an elegantly arched bridge before continuing south to the gate of a dishevelled mansion.</p> (if: $bridge_east is false)[ (set: $bridge_east to true) <p>A guard stands here, dressed in a peasant’s threadbare robe. She wears a cloth headband, and you startle as you realize that a round, red Daruma doll sits atop her shoulders in place of a head—its left pupil filled in while the right eye is blank and staring. Despite this oddity, she holds a plain but deadly-looking spear against one shoulder and it’s clear that she knows how to use it. </p> <p>“You the one Old Willow pulled from the river?” she asks, Daruma head tilting to one side. “That old tree can do what they want, but I can’t let strangers cross this bridge and go into town. Got to keep the peace.”</p> <p>She nudges the drawstring bag Old Willow gave you with the butt of her spear. “Course, it’s been a while since I had something new to read. And anyone who offered me a book—say, one about long-ago battles—would never break the peace. Why, they’d no longer be a stranger, for that matter.</p> <p>“You get what I’m saying?”</p> ] (else-if: $guard_complete is false)[ <p>The guard tilts her Daruma head as you approach. Her one-pupiled gaze is unsettling.</p> <p>“You got my book yet?” she asks.</p> ] (if: $guard_complete is false)[ <p>It seems like if you want to cross this bridge, you’ll need to make the guard a book that satisfies her tastes.</p> (if: $has_helmet_book is true)[(link: "<p>Offer her the book made from the dented helmet.</p>")[(set: $guard_complete to true)(set: $quests_complete to it + 1)(set: $books to $books -1)(set: $has_helmet_book to false)<p>With a flash of light, a spot of ink appears in her unmarked eye. After it appears, the doll fades away, revealing a totally normal-looking head. The woman’s eyes light up and she takes the book you offer, her brusque manner vanished along with her Daruma doll head.</p> <p>“You really brought me one!” Her voice holds a hint of wonder as she reverently turns the pages of the book. “I… Thank you so much.”</p> <p>Without another word, she moves from the center of the bridge and sits in the grass, lost in what you’ve given her.</p> <p>[[Cross the bridge.->south village]]</p>] ] <p>[[Follow the path to Old Willow’s field.->River Edge]]</p> <p>[[Follow the path to the ruined mansion.->Samurai Mansion Entrance]]</p> ] (else:)[ <p>The guard looks up from her book as you pass, giving you a cheerful wave. She’s nothing like the grumpy person who tried to stop you entering the village.</p> <p>[[Cross the bridge.->south village]]</p> <p>[[Follow the path to Old Willow’s field.->River Edge]]</p> <p>[[Follow the path to the ruined mansion.->Samurai Mansion Entrance]]</p> ] }{ <h1>Credits</h1> <p>Unless noted below, this game is released under a <a href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en">CC-BY-NC-ND license</a>. You may download, share, and rehost it as you wish, so long as you credit the authors, make no changes, and do not charge any fees.</p> <h2>Concept, Coding, & Writing</h2> <p><a href="https://infomancy.net" target="_blank">Stewart C Baker</a></p> <p><a href="https://www.aidandoyle.net" target="_blank">Aidan Doyle</a></p> <h2>Art</h2> <p>Game cover illustration based on <a href="https://commons.wikimedia.org/wiki/File:Traditional_Japanese_illustrations_from_Bijutsu_Sekai_by_Watanabe_Seitei,_from_rawpixel%27s_original_edition_of_the_publication_00010.jpg" target="_blank">a public domain work by Watanabe Shōtei</a>.</p> <p>Main game background illustration based on <a href="https://commons.wikimedia.org/wiki/File:Muso_Soseki_3.jpg" target="_blank">a public domain work by Musō Soseki</a>.</p> <p>Inventory background illustration based on <a href="https://commons.wikimedia.org/wiki/Category:Watanabe_Sh%C5%8Dtei#/media/File:Traditional_Japanese_illustrations_from_Bijutsu_Sekai_by_Watanabe_Seitei,_from_rawpixel's_original_edition_of_the_publication_00030.jpg" target="_blank">a public domain work by Watanabe Shōtei</a>.</p> <p>Quick travel background illustration based on the public domain work <a href="https://archive.org/details/karakurizui00hoso/page/n74/mode/2up" target="_blank">Shiobara Okane-Michi by Kawase Hasui</a>.</p> <p>Settings background illustration taken from the public domain book <a href="https://commons.wikimedia.org/wiki/File:Unnecessarily_complicated_gears_a.gif" target="_blank">Karakuri Zui (機巧図彙) by Hosokawa Hanzo Yorinao</a>.</p> <p>Walkthrough illustration based on the public domain work <a href="https://media.mutualart.com/Images/2026_05/16/19/126053952/hasui-kawase-pink-clouds-above-mt--kamag-33AXY.Jpeg" target="_blank">Mount Kamaga, Hida by Kawase Hasui</a>.</p> <h2>Music</h2> <p><a href="https://freemusicarchive.org/music/Lobo_Loco/worldmusic-experiments/through-the-clouds-id-1985/" target="_blank">Through the Clouds</a> is by <a href="https://freemusicarchive.org/music/Lobo_Loco/" target="_blank">Lobo Loco</a> and is used here under <a href="https://creativecommons.org/licenses/by-nc-nd/4.0/" target="_blank">CC-BY-NC-ND license</a>.</p> <p><a href="https://freemusicarchive.org/music/Siddhartha/shangri-la/the-secret-pass/" target="_blank">The Secret Pass</a>, <a href="https://freemusicarchive.org/music/Siddhartha/shangri-la/call-of-the-mountains/" target="_blank">Call of the Mountains</a>, <a href="https://freemusicarchive.org/music/Siddhartha/night-psalms/midnight-melody/" target="_blank">Midnight Melody</a>, and <a href="https://freemusicarchive.org/music/Siddhartha/fragments-of-light/a-sudden-gust-of-wind/" target="_blank">A Sudden Gust of Wind</a> are all by <a href="https://freemusicarchive.org/music/Siddhartha/contact" target="_blank">Siddhartha</a> and are used here under a <a href="https://creativecommons.org/licenses/by-nc/4.0" target="_blank">CC-BY-NC license</a>.</p> <p>Music is implemented with <a href="https://github.com/ChapelR/harlowe-audio" target="_blank">ChapelR’s Harlowe Audio Library (HAL),</a> used here under the terms of the <a href="https://github.com/ChapelR/harlowe-audio?tab=Unlicense-1-ov-file#readme" target="_blank">unlicense</a>.</p> <h2>Playtesters</h2> <p>Thank you to our wonderful playtesters Aletheia Knights, Julia Leef, and Catherine Tavares!</p> <h2>Version Number</h2> <p>v1.0.9</p> }{ (set: $drifting_tea_house to true) <p>The tea house is bustling with customers. An attendant shows you to an empty table. (if: $taken_green_tea is false) [ She serves you a cup of green tea. Calling upon all of your industriousness, you manage to secure the cup inside your bag without spilling it. (set: $taken_green_tea to true) (set: $has_green_tea to true) ] </p> (if: $insect_composer_complete is true) [ <p>The composer is busy reading the insect book.</p> ] (else:) [ (if: $talked_to_insect_composer is false) [ <p>The man sitting at the table next to you has his eyes closed but his head is bobbing as though he’s listening to some unheard music. [[ Talk to the man.->Insect Composer]] </p> ] (else:) [ <p>The composer is sitting at the table next to you. [[ Talk to him.->Insect Composer]] </p> ] ] <p>[[Exit the tea house.->Drifting Tea House Platform]]</p> }{ (set: $drifting_tea_house_platform to true) <p>The platform moves the tea house in a spiral pattern through the inky river.</p> <p>The tea house building itself looks like it was assembled by caffeinated beavers. Planks of wood have been hammered together in a haphazard manner and jut out in every direction.</p> <p>The platform occasionally passes through a patch of lily pads on the river. (if: $taken_beetle is false) [ (link:"Examine the lily pads.") [ The platform moves slowly enough that you can look over the edge and check the lily pads. You discover a dead one-winged ink beetle on one of the lily pads and take it. (set: $taken_beetle to true)(set: $has_beetle to true) ] ] (else-if: $tea_ninja is false) [ (link:"Examine the lily pads.") [ As the platform drifts, you take another look at the lily pads. For a moment, you think you see a hollowed reed breathing tube bobbing up and down, as if a ninja is waiting beneath the surface of the water. But when you rub your eyes and look again, there’s nothing. (set: $tea_ninja to true)(set: $ninja to it + 1) ] ] </p> <p>Every few minutes the platform passes close enough to the pier that you can step back onto land.</p> <p>[[Enter the tea house.->Drifting Tea House]]</p> <p>[[Step onto the pier.->Tea House Pier]]</p> }{ <p>You crouch to examine the roots, and nearly jump out of your skin when one of them curls slowly up towards your face. </p> <p>They seem to be able to move on their own. Did they pull you from the water? In that case, your survival was no accident.</p> <p>The roots twist away over the grass towards a scraggly willow set on a small rise at the opposite edge of the field. Although the tree is not particularly large—it’s barely as tall as you are—something about it gives you a sense of age. </p> [[Examine the willow.]] }{ <p>You approach the willow, careful not to stumble on its exposed roots as you cross the field and ascend the slope towards it.</p> <p>Up close, the tree is even stranger. Its bark is rough, and its trunk leans sharply away from the ground before straightening up. The branches at its crown shoot out in all directions like a willow’s branches should, covered in green-and-yellow leaves and small pink catkins. But two slim, leafless branches set in the side of the trunk stretch down to the grassy surface, making it look rather like a person sitting there, enjoying the afternoon sun.</p> <p>And that’s not all, you realize. There’s a face in the trunk, up near its crown. Eyes closed, mouth curved down in a faint frown—an unsettling expression of discontent carved from the tree’s own wood.</p> <p>You’re wondering who would take the time to carve such a gruesome face into a tree when the gnarled eyes blink at you, and the mouth slowly opens. “Well, well,” the tree says, voice creaking like branches rubbing against each other in the wind. “So you survived.”</p> <p>[[Speak to the willow.]]</p> }{ (if: $taken_helmet is false)[ |fish>[<p>You drop a few grains of rice in the pond, but the shadow fish ignores them.</p> (link:"<p>Hold the rice over the pond.</p>")[ (replace: ?fish)[ <p>You hold up some grains of rice so they cast a shadow on the water. The shadow koi swims over and gulps down the rice shadows. It then swims back and forth in front of one of the stones at the edge of the pool. You reach down and discover the stone is loose.</p> (link:"<p>Pull out the stone.</p>")[ (replace: ?fish)[ <p>Pulling out the stone reveals a hidden compartment. Inside is a waterproof lacquerware box holding a dented samurai helmet.</p> (link:"<p>Take the helmet.</p>")[ (set: $taken_helmet to true) (set: $has_helmet to true) (replace: ?fish)[ <p>You put the helmet in your fabric bag. Even though your bag should feel much heavier now, you can barely feel a difference.</p> <p>[[Return to the garden.->samurai garden]]</p> ] ] ] ] ] ] ] ] (else-if: $guard_complete is true and $pond_ninja is false)[ (set: $pond_ninja to true)(set: $ninja to it + 1) <p>You hold up some grains of rice so they cast a shadow on the water. A ninja swims over and gulps down the rice shadows.</p> <p>Wait... what?</p> <p>[[Return to the garden.->samurai garden]]</p> ] (else:)[<p>You hold up some grains of rice so they cast a shadow on the water. The shadow koi swims over and gulps down the rice shadows.</p> <p>[[Return to the garden.->samurai garden]]</p> ] }{ <!-- H1 except on title page--> (if: (passage:)'s tags contains "main-menu")[<br /><br />] (else:)[<h1 class="center">Shadow & Ink</h1>] <!-- load startup on title page--> (unless: $startup is true)[ <!-- load variables--> (display: "startup") (set: $startup to true) ] <!--set last passage variable --> (unless: (passage:)'s tags contains "menus")[ (set: $lastPassage to (passage:)'s name) ] <!--special menu for credits page --> (if: (passage:)'s tags contains "credits")[ <nav class="tabs"> <ul> <li>[[Return to Title Page->Start]]</li> </ul> </nav> ] <!-- "title" header images --> (if: (passage:)'s tags contains "start")[ (unless: $images_on is false)[ <script>$('tw-story').removeClass();</script> <script>$('tw-story').addClass('title');</script> ] ] <!-- menu for game pages --> (unless: (passage:)'s tags contains "no-header")[ <nav class="tabs"> <ul> <li id="one">(unless: (passage:)'s tags contains "menus")[<script>$('#one').addClass('active');</script>(unless: $images_on is false)[<script>$('tw-story').removeClass();</script>]Main](else:)[(link:"Main")[(go-to: $lastPassage)]]</li> <li id="two">(if: (passage:)'s name is "Inventory")[<script>$('#two').addClass('active');</script>(unless: $images_on is false)[<script>$('tw-story').removeClass();</script><script>$('tw-story').addClass('inventory');</script>]Inventory](else:)[(link:"Inventory")[(go-to: "Inventory")]]</li> <li id="three">(if: (passage:)'s name is "Quick Travel")[<script>$('#three').addClass('active');</script>(unless: $images_on is false)[<script>$('tw-story').removeClass();</script><script>$('tw-story').addClass('travel');</script>]Quick Travel](else:)[(link:"Quick Travel")[(go-to:"Quick Travel")]]</li> <li id="four">(if: (passage:)'s name is "Settings")[<script>$('#four').addClass('active');</script>(unless: $images_on is false)[<script>$('tw-story').removeClass();</script><script>$('tw-story').addClass('settings');</script>]Settings](else:)[(link:"Settings")[(go-to: "Settings")]]</li> </ul> </nav> ] }{ (if: $talked_to_monk is false) [ (set: $talked_to_monk to true) <p>The monk looks up from the microscope. “I am Sumido, a disciple of the ink.”</p> <p>He points to the microscope. “Every day I measure the size of my ego. Soon it will only be visible with specialized laboratory equipment.</p> <p>“After a day of extreme meditating I like to relax by reading charming comedies. Let me know if you discover a book I might enjoy.”</p> ] (else:) [ <p>The monk gives you a nod of greeting. “My ego has become even smaller since we last spoke. Let me know if you discover an amusing novel.” He seems slightly on edge—must be all that extreme meditating he mentioned.</p> ] (if: $monk_complete is false) [ (if: $has_austen_book)[ (link: "<p>Offer him the book <em>Shogun and Sensibility</em>.</p>") [ (set: $monk_complete to true) (set: $quests_complete to it + 1) (set: $books to it -1) (set: $has_austen_book to false) <p>“Reading about the quirks and foibles of romance in Tokugawa Edo will help me relax.”</p> <p>He hands you the microscope. “My ego is now so small it’s no longer visible with this simple device.</p> <p>“I’m going to go for a walk and read this wonderful book.” He bids you farewell and leaves.</p> (set: $has_microscope to true) ] ] ] <p>[[Back to the Ink Springs.->Ink Springs]]</p> }{ <p>Hot springs are often places of great natural beauty, but these black ink pools don’t look particularly inviting.</p> (if: $monkey_complete is true) [ <p>The origami monkey is relaxing in an ink pool. He looks as though he is on the path to a happier state.</p> ] (else:) [ (if: $talked_to_monkey is false) [ <p>A monkey made from origami paper is bathing in an ink pool. Even though he is immersed in ink, it doesn’t look as though the ink has stained his papery skin.</p> ] (else:) [ <p>The origami monkey is relaxing in an ink pool.</p> ] ] (if: $monk_complete is false) [ (if: $waterfall_tap_closed is false) [ <p>A monk is meditating under an ink waterfall.</p> ] (else:) [ <p>A monk in ink-black robes is sitting at a table near one of the pools. He has put his left hand under a microscope and is examining it.</p> <p>[[Speak to the ink monk.->Ink Monk]]</p> ] ] (else:) [ (if: $waterfall_tap_closed is false) [ <p>The ink waterfall is flowing again but the monk has left. If ink falls in a hot spring and there is no monk to hear it, does it make a sound? Finally you can answer that question with a definitive yes.</p> ] ] (if: $monkey_complete is false)[<p>[[Talk to the monkey. ->Origami Monkey]]</p>] <p>[[Return to the lobby. ->Ink Springs Lobby]]</p> }{ (set: $ink_springs to true) <p>The lobby of <em>Paper Monkey Ink Springs</em> has seen better days. The wall paint is peeling and the main desk is unattended. A door labeled <em>Inkworks</em> is behind the main desk. A wooden walkway leads outside to the ink springs themselves. (if: $onsen_flier is true)[Natsu's flier is hanging on the wall where the map used to be.] </p> (if: $taken_world_map is false)[ <p>A map of the world is hanging on the wall.</p> (link:"<p>Take the map.</p>")[ (set: $taken_world_map to true) (set: $has_world_map to true) (hide: ?natsu) <p>You take the map from the wall.</p> (if: $fliers > 0 and $onsen_flier is false)[ (link: "<p>Hang up Natsu’s flier.</p>")[ <p>You hang Natsu’s food stall flier on the wall where the map used to be. (set: $onsen_flier to true)(set: $fliers to it - 1) ] ] ] ] |natsu>[ (if: $fliers > 0 and $onsen_flier is false)[ (link:"<p>Hang up Natsu’s flier.</p>")[ (if: $taken_world_map is true)[ <p>You hang Natsu’s food stall flier on the wall where the map used to be.</p> (set: $onsen_flier to true)(set: $fliers to it - 1) ] (else:)[ <p>You look around, but can’t find anywhere convenient to hang the flier.</p> ] ] ] ] <p>[[Follow the walkway to the ink springs. ->Ink Springs]]</p> <p>[[Enter the door labeled Inkworks.->Inkworks]]</p> <p>[[Head back to the river path.->river path]]</p> }{ <p>You are in some kind of maintenance room. It is filled with more pipes than you could hope to see in one lifetime.</p> (if: $taken_bottle_spring_ink is false) [ |inkbottle>[ <p>A bottle of black ink is positioned under a dripping pipe. (link:"Take the bottle.") [ (set: $taken_bottle_spring_ink to true) (set: $ink to it + 3) (replace: ?inkbottle) [ You take the bottle of ink. ] ] </p> ] ] (else:) [ <p>Ink has stained the floor underneath the dripping pipe.</p> ] <p>A large tap labeled <i>Waterfall</i> is turned (if: $waterfall_tap_closed)[off.](else:)[on.] (if: $waterfall_tap_closed) [ (link: "Turn on the tap.") [ (set: $waterfall_tap_closed to false)(goto: (passage:)'s name) ] ] (else:) [ (link: "Turn off the tap.") [ (set: $waterfall_tap_closed to true)(goto: (passage:)'s name) ] ] </p> <p>[[Return to the Lobby.->Ink Springs Lobby]]</p> }{ (if: $talked_to_insect_composer is false) [ (set: $talked_to_insect_composer to true) <p>“My name is Urashima. I was once a renowned composer, but ever since the shadows fell upon this valley, I have struggled to make anything worthwhile.</p> <p>“Did you know bees are able to communicate the direction of nectar and pollen by the way they dance? Many samurai adopted the dragonfly as their symbol because it’s such a successful predator. I want to take inspiration from the world of insects. They are tiny, but great.”</p> <p>He gestures towards the other customers. “I've been talking about insects so much that they’ve started calling me Bughoven.”</p> <p>He prods at a small bonsai plant resting on the table. “I am trying to attract some insects, but nothing has arrived.”</p> ] (else:) [ <p>The composer gives you a sad nod. “Let me know if you find any information about insect music.”</p> ] (if: $insect_composer_complete is false) [ (if: $has_beetle_sound_book) [ (link: "<p>Offer him the book <em>The Sound of One Wing Clapping</em>.</p>") [ (set: $insect_composer_complete to true) (set: $quests_complete to it + 1) (set: $books to it -1) (set: $has_beetle_sound_book to false) <p>There is a flash of light and a loud buzzing noise, like a thousand bees all complaining the trains are running late.</p> <p>The composer clasps the book to his chest. “Thank you! I will learn everything about the sounds of nature. Then I will compose the greatest bee opera the world has ever known!”</p> <p>He hands you the bonsai plant. “Please accept this as a token of my appreciation.”</p> (set: $has_bonsai to true) ] ] ] <p>[[Exit the tea house.->Drifting Tea House Platform]]</p> }{ <p>You loosen the drawstring on your bag and peek inside.</p> <!------------------ BOOKS --------------!> <h2>Books</h2> (if: $has_shadow_book is true)[ <p>A strange, thin book made of shadow and ink. (link: "(Examine Book)")[(set: _quests_left to (11-$quests_complete)) You flip through its pages. (print: $quests_complete) are filled, with (print: _quests_left) remaining empty.] </p> ] (if: $ninja > 0)[ <p>A nearly invisible book titled <em>How to Spot Ninja</em>. What the... Where did <em>this</em> come from?! (link: "(Examine Book)")[You have witnessed (print: $ninja) of 8 ninja. (if: $ninja is 8)[That’s got to be worth some kind of prize, right?]</p> ] ] (if: $books is 0) [ <p>You have no (if: $has_shadow_book is true or $ninja > 0)[other ] books(if: $has_shadow_book is false and $ninja is 0)[ and you must dream].</p> ] (else:) [ (if: $has_bonsai_poetry_book is true) [ <p>A book made from an origami paper poem and a bonsai plant titled <em>Bonsai Poetry for <s>Dummies</s> Puppets</em>. (link: "(Unmake book)") [ (set: $used_origami_poem to false)(set: $has_origami_poem to true)(set: $used_bonsai to false)(set: $has_bonsai to true)(set: $has_bonsai_poetry_book to false)(set: $unmade_bonsai_poetry_book to true) ($unmake_book: "") <!-- reset paper as we used the origami paper poem instead --!> (set: $paper to it - 1) ] </p> ] (if: $has_folding_happiness_book is true) [ <p>A book made from origami paper and a map, titled <em>Folding Your Way to Happiness</em>. (link: "(Unmake book)") [ (set: $used_origami_paper to false)(set: $has_origami_paper to true)(set: $used_world_map to false)(set: $has_world_map to true)(set: $has_folding_happiness_book to false)(set: $unmade_folding_happiness_book to true) ($unmake_book: "") <!-- reset paper as we used the origami paper instead --!> (set: $paper to it - 1) ] </p> ] (if: $has_unreadable_book is true) [ <p>A book made from a weird ink blot and a microscope, titled <em>How to Read the Unreadable</em>. (link: "(Unmake book)") [ (set: $used_weird_ink_blot to false)(set: $has_weird_ink_blot to true)(set: $used_microscope to false)(set: $has_microscope to true)(set: $has_unreadable_book to false)(set: $unmade_unreadable_book to true) ($unmake_book: "") <!-- reset paper as we used the weird ink blot instead --!> (set: $paper to it - 1) ] </p> ] (if: $has_sword_book is true) [ <p>A book made from a ceremonial sword and an ornate hand comb, titled <em>How to Evaluate Elegant Antiques</em>. (link: "(Unmake book)")[ (set: $used_sword to false)(set: $used_comb to false)(set: $has_sword_book to false)(set: $has_sword to true)(set: $has_comb to true)(set: $unmade_sword_book to true) ($unmake_book: "") ] </p> ] (if: $has_dessert_book is true) [ <p>A book made from green tea and a doughnut titled <em>Meeting Your Dessert Match-cha</em>. (link: "(Unmake book)") [ (set: $used_doughnut to false)(set: $has_doughnut to true)(set: $used_green_tea to false)(set: $has_green_tea to true)(set: $has_dessert_book to false)(set: $unmade_dessert_book to true) ($unmake_book: "") ] </p> ] (if: $has_antidote_book is true) [ <p>A book made from a mysterious tincture titled <em>Poisons and Their Undoing</em>. (link: "(Unmake book)") [ (set: $used_antidote to false)(set: $has_antidote to true)(set: $has_antidote_book to false)(set: $unmade_antidote_book to true) ($unmake_book: "") ] </p> ] (if: $has_austen_book is true) [ <p>A book made from an essay on cards in Jane Austen novels, titled <em>Shogun and Sensibility</em>. (link: "(Unmake book)") [ (set: $used_austen_essay to false)(set: $has_austen_book to false)(set: $has_austen_essay to true)(set: $unmade_austen_book to true) ($unmake_book: "") ] </p> ] (if: $has_beetle_sound_book is true) [ <p>A book made from a beetle and a gramophone record titled <em>The Sound of One Wing Clapping</em>. (link: "(Unmake book)") [ (set: $used_beetle to false)(set: $has_beetle to true)(set: $used_record to false)(set: $has_record to true)(set: $has_beetle_sound_book to false) ($unmake_book: "")(set: $unmade_beetle_sound_book to true) ] </p> ] (if: $has_lullaby_book is true) [ <p>A book made from a child’s top and a gramophone titled <em>A Treasury of Lullabies</em>. (link: "(Unmake book)") [ (set: $used_top to false)(set: $has_top to true)(set: $used_gramophone to false)(set: $has_gramophone to true)(set: $has_lullaby_book to false)(set: $unmade_lullaby_book to true) ($unmake_book: "") ] </p> ] (if: $has_helmet_book is true) [ <p>A book made from a dented helmet, titled <em>True Stories of Samurai Battles</em>. (link: "(Unmake book)") [ (set: $used_helmet to false)(set: $has_helmet_book to false)(set: $has_helmet to true)(set: $unmade_helmet_book to true) ($unmake_book: "") ] </p> ] (if: $has_joke_book is true) [ <p>A book made from a fossilized joker titled <em>The World’s Oldest Jokes</em>. (link: "(Unmake book)") [ (set: $used_joker to false)(set: $has_joker to true)(set: $has_joke_book to false)(set: $unmade_joke_book to true) ($unmake_book: "") ] </p> ] ] <hr /> <!------------------ SUPPLIES --------------!> <h2>Bookmaking Supplies</h2> (if: ($quests_complete + $books) is 11)[ <p>You’ve made all possible books. You have no further need of ink or paper.</p> ] (else:)[ (if: $paper is 0) [ <p>You’re out of paper. If you want to make any new books, you’ll need to find more(if: $books > 0)[&nbsp;or unmake a book above].</p> ] (else:) [ <p>Sheets of Paper: (print: $paper)</p> ] (if: $ink is 0) [ <p>You’re out of ink. (if: $nure_ink is false or $taken_bottle_spring_ink is false or $maid_complete is false)[Perhaps you can find more.](else:)[You can visit (link: "the river’s edge ")[(goto: "River Edge")] to get more.]</p> ] (else:) [ <p>Applications of Ink: <span style="margin-left:6px;">(print: $ink)</span></p> ] ] <hr /> <!------------------ BOOK INGREDIENTS --------------!> <h2>Book Ingredients</h2> (if: $has_origami_poem is false and $has_bonsai is false and $has_origami_paper is false and $has_world_map is false and $has_comb is false and $has_sword is false and $has_weird_ink_blot is false and $has_microscope is false and $has_doughnut is false and $has_green_tea is false and $has_antidote is false and $has_austen_essay is false and $has_beetle is false and $has_record is false and $has_top is false and $has_gramophone is false and $has_helmet is false and $has_joker is false)[ (if: ($quests_complete + $books) is 11)[ <p>You’ve made all possible books. You no longer need new ingredients.</p> ] (else:)[ <p>None.</p> ] ] (if: $has_origami_poem is true or $has_bonsai is true)[ <h3>Ingredients for (if: $unmade_bonsai_poetry_book is true)[<em>Bonsai Poetry for <s>Dummies</s> Puppets</em>](else:)[an unknown book]</h3> (if: $has_origami_poem is true and $used_origami_poem is false) [ <p>A poem written on origami paper.</p> ] (if: $has_bonsai is true and $used_bonsai is false) [ <p>A bonsai plant.</p> ] (if: $has_bonsai is false or $has_origami_poem is false) [ <p>(You need one more item to make this book.)</p> ] (else:) [ (if: $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_origami_poem to true)(set: $has_origami_poem to false)(set: $used_bonsai to true)(set: $has_bonsai to false)(set: $has_bonsai_poetry_book to true)(set: $unmade_bonsai_poetry_book to false) ($make_book: "") <!-- reset paper as we used the origami paper poem instead --!> (set: $paper to it + 1) ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] ] (if: $has_origami_paper is true or $has_world_map is true)[ <h3>Ingredients for (if: $unmade_folding_happiness_book is true)[<em>Folding Your Way to Happiness</em>](else:)[an unknown book]</h3> (if: $has_origami_paper is true and $used_origami_paper is false) [ <p>Golden origami paper</p> ] (if: $has_world_map is true and $used_world_map is false) [ <p>A map of the world.</p> ] (if: $has_world_map is false or $has_origami_paper is false) [ (You need one more item to make this book.) ] (else:) [ (if: $ink > 0) [ (link: "(Make book)") [ (set: $used_origami_paper to true)(set: $has_origami_paper to false)(set: $used_world_map to true)(set: $has_world_map to false)(set: $has_folding_happiness_book to true)(set: $unmade_folding_happiness_book to false) ($make_book: "") <!-- reset paper as we used the origami paper instead --!> (set: $paper to it + 1) ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] ] (if: $has_comb is true or $has_sword is true)[ <h3>Ingredients for (if: $unmade_sword_book is true)[<em>How to Evaluate Elegant Antiques</em>](else:)[an unknown book]</h3> (if: $has_sword is true and $used_sword is false) [ <p>One ceremonial sword, never used.</p> ] (if: $has_comb is true and $used_comb is false) [ <p>One ornate hand comb, slightly damp from river water.</p> ] (if: $has_sword is false or $has_comb is false) [ <p>(You need one more item to make this book.)</p> ] (else:) [ (if: $paper is 0 or $ink is 0)[ <p>(You don't have enough supplies to make this book.)</p> ] (else:)[ (link: "<p>(Make book)</p>") [ (set: $used_sword to true)(set: $used_comb to true)(set: $has_sword_book to true)(set: $unmade_sword_book to false)(set: $has_sword to false)(set: $has_comb to false) ($make_book: "") ] ] ] ] (if: $has_weird_ink_blot is true or $has_microscope is true)[ <h3>Ingredients for (if: $unmade_unreadable_book is true)[<em>How to Read the Unreadable</em>](else:)[an unknown book]</h3> (if: $has_weird_ink_blot is true and $used_weird_ink_blot is false) [ <p>A piece of paper with a weird ink blot.</p> ] (if: $has_microscope is true and $used_microscope is false) [ <p>A microscope.</p> ] (if: $has_weird_ink_blot is false or $has_microscope is false) [ <p>(You need one more item to make this book.)</p> ] (else:) [ (if: $ink > 0) [ (link: "(Make book)") [ (set: $used_weird_ink_blot to true)(set: $has_weird_ink_blot to false)(set: $used_microscope to true)(set: $has_microscope to false)(set: $has_unreadable_book to true)(set: $unmade_unreadable_book to false) ($make_book: "") <!-- reset paper as we used the weird ink blot instead --!> (set: $paper to it + 1) ] ] (else: )[ <p>(You need more supplies to make this book.)</p> ] ] ] (if: $has_doughnut is true or $has_green_tea is true)[ <h3>Ingredients for (if: $unmade_dessert_book is true)[<em>Meeting Your Dessert Match-cha</em>](else:)[an unknown book]</h3> (if: $has_doughnut is true and $used_doughnut is false) [ <p>A doughnut in a paper bag.</p> ] (if: $has_green_tea is true and $used_green_tea is false) [ <p>A cup of green tea.</p> ] (if: $has_doughnut is false or $has_green_tea is false) [ <p>(You need one more item to make this book.)</p> ] (else:) [ (if: $paper > 0 and $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_green_tea to true)(set: $has_green_tea to false)(set: $used_doughnut to true)(set: $has_doughnut to false)(set: $has_dessert_book to true)(set: $unmade_dessert_book to true) ($make_book: "") ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] ] (if: $has_antidote is true and $used_antidote is false) [ <h3>Ingredients for (if: $unmade_antidote_book is true)[<em>Poisons and Their Undoing</em>](else:)[an unknown book]</h3> <p>A mysterious tincture.</p> (if: $paper > 0 and $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_antidote to true)(set: $has_antidote to false)(set: $has_antidote_book to true)(set: $unmade_antidote_book to false) ($make_book: "") ] ] ] (if: $has_austen_essay is true and $used_austen_essay is false) [ <h3>Ingredients for (if: $unmade_austen_book is true)[<em>Shogun and Sensibility</em>](else:)[an unknown book]</h3> <p>An essay on cards in Jane Austen novels.</p> (if: $paper > 0 and $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_austen_essay to true)(set: $has_austen_book to true)(set: $unmade_austen_book to false)(set: $has_austen_essay to false) ($make_book: "") ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] (if: $has_beetle is true or $has_record is true)[ <h3>Ingredients for (if: $unmade_beetle_sound_book is true)[<em>The Sound of One Wing Clapping</em>](else:)[an unknown book]:</h3> (if: $has_beetle is true and $used_beetle is false) [ <p>A one-winged beetle.</p> ] (if: $has_record is true and $used_record is false) [ <p>A scratched gramophone record.</p> ] (if: $has_beetle is false or $has_record is false) [ <p>(You need one more item to make this book.)</p> ] (else:) [ (if: $paper > 0 and $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_beetle to true)(set: $has_beetle to false)(set: $used_record to true)(set: $has_record to false)(set: $has_beetle_sound_book to true)(set: $unmade_beetle_sound_book to false) ($make_book: "") ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] ] (if: $has_top is true or $has_gramophone is true)[ <h3>Ingredients for (if: $unmade_lullaby_book is true)[<em>A Treasury of Lullabies</em>](else:)[an unknown book]</h3> (if: $has_top is true and $used_top is false) [ <p>A child’s spinning top.</p> ] (if: $has_gramophone is true and $used_gramophone is false) [ <p>A gramophone player</p> ] (if: $has_top is false or $has_gramophone is false) [ <p>(You need one more item to make this book.)</p> ] (else:) [ (if: $paper > 0 and $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_top to true)(set: $has_top to false)(set: $used_gramophone to true)(set: $has_gramophone to false)(set: $has_lullaby_book to true)(set: $unmade_lullaby_book to false) ($make_book: "") ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] ] (if: $has_helmet is true and $used_helmet is false) [ <h3>Ingredients for (if: $unmade_helmet_book is true)[<em>True Stories of Samurai Battles</em>](else:)[an unknown book]</h3> <p>One dented samurai helmet.</p> (if: $paper > 0 and $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_helmet to true)(set: $has_helmet_book to true)(set: $unmade_helmet_book to false)(set: $has_helmet to false) ($make_book: "") ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] (if: $has_joker is true and $used_joker is false) [ <h3>Ingredients for (if: $unmade_joke_book is true)[<em>The World’s Oldest Jokes</em>](else:)[an unknown book]</h3> <p>A fossilized joker.</p> (if: $paper > 0 and $ink > 0) [ (link: "<p>(Make book)</p>") [ (set: $used_joker to true)(set: $has_joker to false)(set: $has_joke_book to true)(set: $unmade_joke_book to false) ($make_book: "") ] ] (else:)[ <p>(You need more supplies to make this book.)</p> ] ] <hr /> <h2>Other Items</h2> <p>One pamphlet titled <em>Visit Ink Valley!</em> <a href="walkthrough.pdf" target="_blank">(Open walkthrough in new window)</a></p> (if: $fliers > 0) [ <p>$fliers flier(if: $fliers > 1)[s] for Dou Natsu’s food stall. Just looking at (if: $fliers is 1)[it](else:)[them] makes your mouth water.</p> ] (if: $has_leaf is true) [ <p>A bundle of five-yen coins connected with a string.</p> ] (if: $has_lantern is true) [ <p>One small stone lantern.</p> ] }{ <p>A plaque at the base of the monument reads <em>Dedicated to the Words of Exuberant Poets</em>.</p> (if: $taken_record is false) [ |record>[ <p>A scratched gramophone record rests against the monument. (link:"Take the record.") [ (set: $taken_record to true) (set: $has_record to true) (replace: ?record) [ <p>You take the record and put it in your bag. ] ] ] </p> ] (if: $taken_gramophone is false) [ |gramophone>[ <p>A gramophone player sits in an alcove above the monument’s plaque. (link:"Take the gramophone player.") [ (set: $taken_gramophone to true) (set: $has_gramophone to true) (replace: ?gramophone) [ <p>You try turning on the gramophone player, but it doesn’t appear to work. You place it in your bag. ] ] ] </p> ] (else-if: $monument_ninja is false)[(set: $monument_ninja to true)(set: $ninja to it + 1) <p>For a moment, you think you see a ninja resting casually against the monument. When you take a closer look, though, you realise it’s just a curiously shaped patch of shadow... or was it?</p> ] (if: $puppet_complete is false) [ <p>[[Talk to the puppet.->Ronin Puppet]]</p> ] <p>[[Leave the garden.->north road]]</p> }{ (set: $monument_poets to true) <p>A gigantic white marble monument reaches into the sky. You should have been able to see it from miles away yet it wasn’t visible from the village.</p> <p>A lush garden with colorful flower beds features a hedge trimmed so it resembles a half dozen people listening attentively to some kind of performance.</p> (if: $monument_flier is true)[<p>Natsu's flier is hanging on a rock near the monument.</p>] (if: $puppet_complete is true) [ <p>The enthusiastic young man is explaining syllables to a patch of dandelions.</p> ] (else:) [ (if: $talked_to_puppet is true) [ <p>The puppet is serenading some tulips with haiku gone rogue.</p> ] (else:) [ <p>A life-size puppet of a young man with ink-black buttons for eyes is reciting poetry to the hedge figures.</p> ] <p>[[Talk to the puppet.->Ronin Puppet]]</p> ] (if: $fliers > 0 and $monument_flier is false) [ <p>(link:"Hang up Natsu’s flier.") [ You hang Natsu’s food stall flier on a convenient rock near the monument. (set: $monument_flier to true)(set: $fliers to it - 1) ] </p> ] <p>[[Examine the monument.->Monument]]</p> <p>[[Leave the garden.->north road]]</p> }{ <p>The shelf is crammed with books on the history of playing cards.</p> (if: $taken_origami_paper is false) [ (if: $searched_museum_bookshelf is false) [ |shelf>[ (link:"<p>Search through the books.</p>") [ (replace: ?shelf) [ <p>A golden sheet of origami paper falls out of one of the books. (set: $searched_museum_bookshelf to true) (link:"<p>Take the origami paper.</p>") [ (replace: ?shelf) [ <p>You take the origami paper.</p> (set: $taken_origami_paper to true) (set: $has_origami_paper to true) ] ] ] ] ] ] (else:) [ <p> |origami-paper>[ A golden sheet of origami paper lies on the floor. (link:"Take the paper.") [ (replace: ?origami-paper) [ <p>You take the origami paper.</p> (set: $taken_origami_paper to true) (set: $has_origami_paper to true) ] ] ] </p> ] ] <p>[[Examine the desk.->Museum Desk]]</p> <p>[[Examine the exhibits.->Museum Exhibits]]</p> <p>[[Back to the museum.->Museum of Disappointing Hands]]</p> <p>[[Leave the museum.->main village]]</p> }{ <p>A pile of papers and stationery sits on the desk.</p> (if: $taken_austen_essay is false) [ |essay>[ <p>An essay titled <i>You Did Not Use to Like Cards; But Time Makes Many Changes</i> sits on top of the pile. It is an academic essay on the use of playing cards to denote social status in the novels of Jane Austen. (link:"Take the essay.") [ (set: $taken_austen_essay to true) (set: $has_austen_essay to true) (replace: ?essay) [ <p>You add the essay to your bag.</p> ] ] ]</p> ] (if: $taken_weird_ink_blot is false) [ |inkblot>[ <p>A sheet of paper with a strangely-shaped ink blot. The longer you stare at it, the more it feels like the ink blot is staring back at you. (link:"Take the paper.") [ (set: $taken_weird_ink_blot to true) (set: $has_weird_ink_blot to true) (replace: ?inkblot) [ <p>As you take the paper, a soft voice whispers, “I shall call you blood blot.” You add the disturbing ink blot to your bag.</p> ] ] ]</p> ] <p>[[Examine the exhibits.->Museum Exhibits]]</p> <p>[[Examine the bookshelf.->Museum Bookshelf]]</p> <p>[[Back to the museum.->Museum of Disappointing Hands]]</p> <p>[[Leave the museum.->main village]]</p> }{ <p>A glass display case holds four poker cards. The ace of spades, the ace of clubs, the eight of spades, the eight of clubs. The exhibit note reads <i>Dead Man’s Hand. Wild Bill Hickok was reportedly holding these cards when he was shot from behind. The identity of the fifth card is still in dispute.</i></p> <p>A second case holds three hanafuda playing cards. 8, 9, 3. <i>Yattsu, kyu, san. Yakuza. When playing oichokabu your score is the last digit of the sum of your cards. 8 + 9 + 3 = 20 = 0. The worst possible score.</i></p> <p>Another case holds three aces and two queens. <i>“I played poker in Texas. I got a full house and bet everything I owned. My opponent had four kings.” Exhibit donated by Kensuke “Texas” Yoshimoto.</i></p> <p>This case holds three death tarot cards. <i>“The fortune teller insisted the deck only had one death card.” Exhibit donated by the estate of Ryu Nakajima.</i></p> <p>A wooden desk covered with papers is in the corner of the room. A bookshelf stacked with books sits next to it.</p> <p>[[Examine the desk.->Museum Desk]]</p> <p>[[Examine the bookshelf.->Museum Bookshelf]]</p> <p>[[Back to the museum.->Museum of Disappointing Hands]]</p> <p>[[Leave the museum.->main village]]</p> }{ (if: $talked_to_museum_painter is false) [ (set: $talked_to_museum_painter to true) <p>The woman looks up at your approach and smiles. “Welcome to the Museum of Disappointing Hands.</p> <p>“My name is Sumitomo. I am a painter of playing cards. I bring forth portraits of regal queens, majestic kings and mischievous knaves.</p> <p>“I created this museum to remind myself not to fret over life’s unavoidable disappointments. We cannot control everything the river brings our way, but we can strive to savor even our failures.”</p> <p>Her work table is covered with painted cards and a sheet of paper covered in indecipherable swirls. “I have received a commission from a renowned playing card company but their guidelines are unreadable. They might as well have sent me a plumber’s instruction manual! I would be most appreciative if you could find something that would help me read their writing.”</p> ] (else:) [ <p>The playing card painter looks up from her work. “Welcome back.”</p> ] (if: $museum_painter_complete is false) [ (if: $has_unreadable_book)[ (link: "<p>Offer her How to Read the Unreadable.</p>") [ (set: $museum_painter_complete to true) (set: $quests_complete to it + 1) (set: $books to it -1) (set: $has_unreadable_book to false) <p>There is a flare of light and a cloud of black dust spills from the painter’s eyes. She shakes her head. “That’s better! Thank you!”</p> <p>She places the book in front of her and glances from it to her client’s instructions. “Ah, now I understand what they want!”</p> <p>She hands you a lump of amber containing a joker card. “Thank you for your help! This is one of the oldest fossilized jokers ever discovered.”</p> (set: $has_joker to true) ] ] ] <p>[[Return to the museum.->Museum of Disappointing Hands]]</p> <p>[[Examine the museum’s exhibits.->Museum Exhibits]]</p> <p>[[Leave the museum.->main village]]</p> }{ [(set: $museum_disappointing to true)] <p>The small musty museum is filled with glass display cases holding painted playing cards.</p> (if: $museum_painter_complete is true) [ <p>The painter is absorbed in her work and gives you a brief nod.</p> ] (else:) [ (if: $talked_to_museum_painter is false) [ <p>A middle-aged woman is enthusiastically applying paint to a deck of playing cards.</p> <p>[[Talk to the woman.->Museum Painter]]</p> ] (else:) [ <p>The playing card painter is absorbed in her work and gives you a brief nod.</p> <p>[[Talk to the painter.->Museum Painter]]</p> ] ] (if: $museum_flier is true)[<p>Natsu's flier is hanging next to an empty display case.</p>] (if: $fliers > 0 and $museum_flier is false) [ <p>(link:"Ask to put up Natsu’s flier.") [ You ask the woman if you can hang Natsu’s food stall flier up, but she’s too absorbed in her work to hear you. With a shrug, you stick it next to an empty display case. (set: $museum_flier to true)(set: $fliers to it - 1) ] </p> ] <p>[[Examine the exhibits.->Museum Exhibits]]</p> <p>[[Leave the museum.->main village]]</p> }{ (if: $met_natsu is false)[ (set: $met_natsu to true)(set: $fliers to 6) <p>As you approach the food stall, the young person swallows nervously before greeting you. “Welcome to Dou Natsu’s Doughnuts!” they say, voice wavering. “Where we have delicious fried pastries sure to satisfy your urges!”</p> <p>Your stomach growls at the smell, which is even more mouthwatering up close, but before you can order some pastries Natsu sighs heavily.</p> <p>“Well, I <em>will</em> have them,” they admit. “Once the dough is done rising. But I’m not sure anybody will even know I exist. You’re the only person I’ve seen all day!” They eye you hopefully, licking their lips. “Could you... help me out?” <p>(link:"“Sure.”")[ “Sure,” you say. “What do you need?”</p> <p>Natsu claps excitedly. “Oh, thank you! I have some fliers here, but I didn’t account for how much time it would take me to get set up, so I haven’t been able to deliver them.” <p>“Where should they go?” you ask. <p>They barely even pause before rattling off an answer. “The inn, the museum, the teahouse, the hot springs, the pawnshop, and the monument. If you need help finding any of them, come back and I can point you in the right direction.” <p>[[Return to the square.->south village]] ]</p> ] (else:)[ <p>“How’s it going?” Natsu asks as you approach the food stall.</p> (if: $inn_flier is true and $museum_flier is true and $teahouse_flier is true and $onsen_flier is true and $pawn_flier is true and $monument_flier is true)[ <p>You let them know you’ve delivered all of the fliers and they clap their hands gleefully.</p> <p>“Amazing!” they say. And then they do what you’ve been hoping for all along. They put a freshly fried pair of doughnuts in a small paper bag and place the container in your hands.</p> <p>You devour one right away, barely waiting for it to cool down. It’s absolutely delicious, especially because you haven’t eaten a thing since arriving in this strange valley. Although you’re tempted to eat the second as well, something makes you pause. Perhaps this one will serve another purpose.</p> <p>“Thank you again,” Natsu says, giving you a polite bow. “You’ve made a world of difference for me.”</p> (set: $natsu_complete to true)(set: $has_doughnut to true) ] (else:)[ <p>“I’m a little lost,” you admit.</p> <p>“Where are you trying to go?” Natsu asks.</p> (if: $inn_flier is false)[ <p>(link:"Ask about the inn.")[“Where can I find the inn?” you ask.</p> <p>“The inn? It’s north of town, along the forest path,” Natsu tells you.]</p> ] (if: $museum_flier is false)[ <p>(link:"Ask about the museum.")[“Where can I find the museum?” you ask.</p> <p>“Ah,” Natsu says. “The Museum of Disappointing Hands. It’s just north of here, right smack in the middle of town.”]</p> ] (if: $teahouse_flier is false)[ <p>(link:"Ask about the teahouse.")[“Where can I find the teahouse?” you ask.</p> <p>“The Drifting Teahouse is north of town, just off the old pier,” Natsu says.]</p> ] (if: $onsen_flier is false)[ <p>(link:"Ask about the hot springs.")[“Where can I find the hot springs?” you ask.</p> <p>“The Paper Monkey Hot Springs are north of town, next to the river,” Natsu tells you.]</p> ] (if: $pawn_flier is false)[ <p>(link:"Ask about the pawnshop.")[“Where can I find the pawnshop?” you ask.</p> <p>“The pawnshop is just north of here, opposite the museum,” Natsu tells you.]</p> ] (if: $monument_flier is false)[ <p>(link:"Ask about the monument.")[“Where can I find the monument?” you ask.</p> <p>“The Monument to Exuberant Poets is immediately north of town,” Natsu says. “You can’t miss it!”]</p> ] ] <p>[[Return to the square.->south village]]</p> ] }{ |links>[ <!--hints--> (unless: ($quests_complete +$books) is 11)[ (if: $paper is 0 and $books is 0 and $shrine_paper_taken is true and $maid_complete is true and $pawn_complete is true)[<p>(link: "Ask Old Willow for more paper.")[You let Old Willow know you’ve somehow run out of paper and can’t get more. The tree’s branches rustle, and a single sheet of creamy white paper drifts down towards you.(set: $paper to 1)]</p>] <p>[[Ask Old Willow for help.->willow hints]]</p> ] <!--ending options--> (if: $has_shadow_book is true)[ (link: "<p>Hand Old Willow the book of shadow and ink.</p>")[ (replace: ?links)[ <p>Handing Old Willow the book of shadow and ink will end the game. Would you like to save your game before you proceed? <strong>Warning: this will override any existing saved games.</strong></p> (link: "<p>Yes, save my game.</p>")[ (if:(save-game:"Slot A"))[ (if: (saved-games:) contains "Slot A")[ Your progress has been saved.](else: )[ Sorry, your progress couldn’t be saved. ] ] ] <p>[[Hand Old Willow the book.->ending]]</p> <p>[[Never mind.->River Edge]]</p> ] ] ] (if: $ninja is 8)[ (link: "<p>Hand Old Willow the book about spotting ninja.</p>")[ (replace: ?links)[ <p>Handing Old Willow the book about spotting ninja will end the game. Would you like to save your game before you proceed? <strong>Warning: this will override any existing saved games.</strong></p> (link: "<p>Yes, save my game.</p>")[ (if:(save-game:"Slot A"))[ (if: (saved-games:) contains "Slot A")[ Your progress has been saved.](else: )[ Sorry, your progress couldn’t be saved. ] ] ] <p>[[Hand Old Willow the book.->ninja ending]]</p> <p>[[Never mind.->River Edge]]</p> ] ] ] <!--back to the river edge--> <p>[[Leave Old Willow to their rest.->River Edge]]</p> ] }{ (if: $talked_to_monkey is false) [ (set: $talked_to_monkey to true) <p>The monkey nods his head in greeting. “We do not get many visitors to our cursed valley. My name is Saruhashi. Paper monkeys have owned these hot springs for generations, but when the river went black, we lost most of our customers. The water used to be most soothing, but if I’m not careful, I can get stray bits of punctuation stuck to my behind. It is most embarrassing!</p> <p>“Bathing used to bring me happiness, but now I’m looking for more answers. Let me know if you find anything to guide me on my journey of self-discovery.”</p> ] (else:) [ <p>The monkey gives you a nod of greeting. “Let me know if you find anything to guide me on my journey of self-discovery.”</p> ] (if: $monkey_complete is false) [ (if: $has_folding_happiness_book) [ (link: "<p>Offer him the book <em>Folding Your Way to Happiness</em>.</p>") [ (set: $monkey_complete to true) (set: $quests_complete to it + 1) (set: $books to it -1) (set: $has_folding_happiness_book to false) <p>The pool’s inky surface shines with a bright light and the monkey cackles with delight. <p>“Praise the gods! The secrets of happiness will be mine!”</p> <p>The monkey hands you an origami paper poem. “Perhaps my poem on the joy of bathing will help you find your own happiness.”</p> (set: $has_origami_poem to true) ] ] ] <p>[[Back to the Ink Springs.->Ink Springs]]</p> }{ (unless: $music_on is false)[ <script>A.playlist('main').shuffle().play();</script> ] (if: $struggle is 0)[ <p>The current of the river pulls you onward, tumbling you over like a leaf in the wind.</p> <p>Its waters are dark and turbulent, cold as death.</p> (link: "<p>How did you get here?</p>")[ <p>It was only supposed to be a hike in the mountains, a temporary escape from your ordinary life. Now you fear it will be the last escape you ever make—unless you can get out of this river.</p> (link: "<p>Struggle.</p>")[ <p>You struggle against the current and manage to take a deep gasping breath before you are tumbled back beneath the water.</p> (link: "<p>Struggle.</p>")[(set: $struggle to it + 1)(go-to: "Play")] ] ] ] (else:)[ (if: $struggle is 2)[ <p>There! At a bend in the river, a tangle of roots!</p> <p>You reach out and grasp them, offering up a prayer to whatever god is listening when they hold and do not break.</p> <p>[[Pull yourself from the water.]]</p> ] (else:)[ <p>You struggle against the current, body bruised as the river bashes you against a submerged boulder.</p> (link: "<p>Struggle.</p>")[(set: $struggle to it + 1)(go-to: "Play")] ] ] }{ <p>You are at the edge of a rushing river, dark as ink.</p> <p>The field where you find yourself is relatively flat and grassy, and you can see a small village across the river, accessible by an elegantly arched bridge somewhere to the south. Steep forested mountains rise around the little valley on all sides.</p> <p>As you cough the last of the water from your lungs and shake out your sleeves, you look at the tangle of roots you bumped up against. Without these, who knows what might have happened—you could have tumbled down the river until you drowned.</p> <p>[[Examine the roots.]]</p> }{ <p>Quick travel to key locations you’ve visited before.</p> <h2>Northeast</h2> (if: $rivers_edge is true)[<p>[[The River’s Edge->River Edge]]</p>] (if: $mansion_entrance is true)[<p>[[The Ishikawa Mansion->Samurai Mansion Entrance]]</p>] (if: $bridge_east is true)[<p>[[Main Bridge (east)->Bridge (east)]]</p>] (if: $main_village is true)[<h2>Village and Environs</h2> <p>[[Village->main village]]</p>] (if: $south_village is true)[<p>[[Village (south)->south village]]</p>] (if: $pawn_shop is true)[<p>[[Pawnshop->pawnshop]]</p>] (if: $museum_disappointing is true)[<p>[[Museum of Disappointing Hands]]</p>] (if: $monument_poets is true)[<p>[[Monument to Exuberant Poets]]</p>] (if: $inn is true)[<p>[[The Inn->inn]]</p>] (if: $ink_springs is true)[<p>[[Ink Springs Lobby]]</p>] (if: $drifting_tea_house_platform is true)[<p>[[Drifting Tea House Platform]]</p>] (if: $rapids is true)[<p>[[The Rapids->rapids]]</p>] (if: $dream_bridge is true)[<p>[[Bridge of Small Dreams->bridge of dreams]]</p>] (if: $southeast is true)[<h2>Southeast Shore</h2>] (if: $dream_field is true)[<p>[[Field of Fallow Dreams->dream field]]</p>] (if: $dream_shrine is true)[<p>[[Shrine of Broken Dreams->shrine of broken dreams]]</p>] (if: $cave is true)[<p>[[Cave of Shadows->cave of shadows]]</p>] }{ <p>You are in the grassy field where you awoke.</p> <p>The ink-dark river runs as fast as it ever did, waters frothing as they pass over submerged rocks and debris. The arched bridge which crosses to the village lies to the south.</p> <p>Old Willow is here, their gaze as wooden and stiff as their body. A narrow path leads south at the edge of the field.</p> (if: ($quests_complete + $books) < 11)[ (if: $ink is 0 and $nure_ink is true and $taken_bottle_spring_ink is true and $maid_complete is true)[ <p>(link: "Refill your ink bottle.")[(set: $ink to it + 3)You dip your ink bottle in the river. (if: $paper is 0)[All you need now is some paper and](else:)[Now] you can make some new books!]</p> ] ] <p>[[Speak to Old Willow.->Old Willow]]</p> <p>[[Follow the path south.->Bridge (east)]]</p> }{ (if: $talked_to_puppet is false) [ (set: $talked_to_puppet to true) <p>The puppet gives you a dramatic bow. “I am a ronin puppet. I acknowledge no master except the constraints of language. The world has been over-burdened by the dominance of syllable-excessive haiku for far too long. I have embarked on a quest to transcend the limits of words themselves. I’m going to create the most expressive form of poetry ever known. Syllables shall no longer tug on our strings!”</p> <p>The puppet then lectures you for the next ten minutes about the miraculous conciseness of his poems.</p> <p>“I am always looking for the next poetic revolution.”</p> ] (else:) [ <p>The ronin puppet is explaining iambic pentameter to the roses. He pauses to glance your way. “Let me know if you’ve discovered the next breakthrough in experimental poetry.”</p> ] (if: $puppet_complete is false) [ (if: $has_bonsai_poetry_book) [ (link: "<p>Offer him the book <em>Bonsai Poetry for <s>Dummies</s> Puppets</em>.</p>")[ (set: $puppet_complete to true) (set: $quests_complete to it + 1) (set: $books to it -1) (set: $has_bonsai_poetry_book to false) <p>The monument glows with light. The puppet transforms into an enthusiastic young man. He bounds around the garden, seemingly more excited than a puppy whose owner has just returned from an international voyage.</p> <p>You were almost expecting the hedge figures to transform into real humans, but they remain still and chlorophyll-dependent.</p> <p>“Thank you!” the puppet exclaims. “With my knowledge of bonsai poetry I’ll revolutionise the experimental poetry scene!”</p> ] ] ] <p>[[Examine the monument.->Monument]]</p> <p>[[Leave the garden.->north road]]</p> }{ <p>You open the front gate and enter the estate’s main building. The rooms are filled with torn tatami mats and overturned furniture. In the bedroom, (if: $taken_sword is false)[you find a hidden alcove which holds a fine ceremonial sword. It looks like it has never been used.](else:)[the hidden alcove stands empty, sword gone.] The bedroom also has a sliding door that leads to a Zen garden.</p> (if: $taken_sword is false)[(link:"<p>Take the sword.</p>")[(set: $taken_sword to true)(set: $has_sword to true)<p>You lift the sword from the alcove and slide it into your bag. Although it’s much longer than the bag is, it fits without difficulty.</p>]</p>] <p>[[Enter the garden.->samurai garden]]</p> <p>[[Return to the gate.->Samurai Mansion Entrance]]</p> }{ (if: $mansion_entrance is false)[ (set: $mansion_entrance to true) <p>A little ways down the path, you come to the walls of a ruined estate. </p> <p>This was once the home of the legendary kendo master, Ishikawa Daisuke. After single-handedly defeating ten rival swordsmen, Ishikawa boasted that only his own shadow was a worthy opponent. His shadow accepted the challenge and they fought a duel. Such was Ishikawa’s speed that he beheaded his own shadow. Ishikawa proclaimed himself the greatest master of the sword who had ever lived.</p> <p>His glory was only fleeting. Soon he was claiming that shadows everywhere were conspiring against him. A week later he was found dead with frozen shadows stuffed into his mouth.</p> ] (else:)[ <p>You return to the imposing entrance of the Ishikawa mansion. Even though Daisuke is dead and the mansion long abandoned, you can’t help but feel there are shadows watching you whenever you turn your back.</p> ] <p>[[Open the front gate.->Samurai Mansion]]</p> <p>[[Return to the path.->Bridge (east)]]</p> }{ <p>(if: $music_on is true)[(link:"Turn off music.")[(masteraudio: 'stopall')(set: $music_on to false)(go-to:"Settings")]](else:)[(link:"Turn on music.")[(set: $music_on to true)<script>A.playlist('main').shuffle().play();</script>(go-to:"Settings")]]</p> <p>(if: $images_on is true)[(link:"Turn off background images.")[<script>$('tw-story').removeClass("settings");</script><script>$('tw-story').addClass("blank");</script>(set: $images_on to false)(go-to:"Settings")]](else:)[(link:"Turn on background images.")[<script>$('tw-story').removeClass("blank");</script><script>$('tw-story').addClass("settings");</script>(set: $images_on to true)(go-to:"Settings")]]</p> <p>You can restart the game or save/load your progress below.</p> (link: "Restart game.")[<p>Warning: restarting your game will erase your current progress. If you're sure you want to restart and return to the title page, click the link below.</p> <p>[[Restart game.->Start]]</p>] <p>(if: (saved-games: ) contains "Slot A")[ (link: "Load Game.")[(load-game:"Slot A")] ]</p> <p>(link:"Save Game.")[ (if:(save-game:"Slot A"))[ (if: (saved-games:) contains "Slot A")[ Game saved! ](else: )[ Sorry, I couldn’t save your game. ] ]]</p> }{ <p>“My name is Old Willow,” the tree says. “I’m glad I pulled you from the water. It’s been a long time since I’ve seen someone from outside the valley.”</p> <p>So your rescue was not a coincidence after all. You offer Old Willow your thanks.</p> <p>“Not at all, not at all,” the tree replies. “In fact, I was hoping you could help me. Please, take this.”</p> <p>The crown of the willow rustles and shakes, and a slim, hooked branch bends down towards you. Dangling from its tip is an age-worn drawstring bag made of cotton squares stitched together.</p> <p>[[Take the bag.]]</p> }{ (unless: $images_on is false)[ <script>$('tw-story').removeClass();</script> ] (unless: $music_on is false)[ (masteraudio: 'stopall') (unless: (track: 'clouds', 'isplaying'))[ (track: 'clouds', 'loop', true) (track: 'clouds', 'playwhenpossible') ] ] <div style="position:relative;float:left;width:25%;margin-right:5%;"> <img style="width:100%;" src="visit-ink-valley.png" /> </div> <div style="position:relative;float:left;"> <h1 class="center">Shadow &amp; Ink</h1> <p class="center">by Stewart C Baker and Aidan Doyle</p> <p class="center">(link:"Play")[ (if: $newgame is true)[ <!--clear startup variables for new game--> (display: "startup")(set: $startup to true)(set: $newgame to false) ] <script>A.track('clouds').fadeOut(5);</script> (go-to: "Play") ] — (if: (saved-games: ) contains "Slot A")[ (link: "Load Game")[ (load-game:"Slot A") ] ] (else:)[ Load Game ] — [[Credits]] — [[Settings->pregame settings]]</p> </div> }{ <p>You reach out and lift the bag from the branch. Its contents crinkle slightly as you lift it free—despite its age, the bag feels surprisingly sturdy. </p> <p>“When I was younger,” Old Willow continues, “I cared for nothing more than books. And not just reading them, either. I loved nothing more than to find what a person truly desired and create a book that had the potential to grant their wish.”</p> <p>They sigh, the sound like wind in leaves. “But in my endless quest for knowledge of others’ desires, I grew to find myself envious of their simple happiness. Why should I, who worked so hard to make the books they need, not keep them to myself? Did I not deserve more than their gratitude?</p> <p>“But no matter how many books I created and kept for myself, I never felt my heart lighten like my customers’ seemed to. And at last I became twisted and gnarled.” They shake their branches, voice wry. “As you see before you. Although the people of this valley sometimes seek me out, asking for books, I make no further answer. I wish only to rest, and watch the flow of the river and the flow of time.</p> <p>“Still, as the years have passed I have come to feel uneasy, knowing that there are people who may be suffering as a result of my actions. And that is where I would like your help.”</p> <p>[[Agree to help.]]</p> }{ <p>The pier juts out into the river. A building floating on a wooden platform seemingly ignores the river’s current and moves in a spiral pattern. Every few minutes it draws close enough to the pier that you can step onto it.</p> <p>A sign on the building entrance reads <em>The Drifting Tea House</em>.</p> <p>The path to town is south-west. A small trail leads east to the riverfront.</p> (if: $teahouse_flier is true)[<p>Natsu's flier is hanging on one of the pier struts.</p>] (if: $fliers > 0 and $teahouse_flier is false) [ <p>(link:"Hang up Natsu’s flier.")[ You hang Natsu’s food stall flier on one of the pier struts near the teahouse entrance.(set: $teahouse_flier to true)(set: $fliers to it - 1) ] </p> ] <p>[[Step onto the tea house platform.->Drifting Tea House Platform]]</p> <p>[[Take the steps down to the river path.->river path]]</p> }{ <!------------------ testing shortcuts --------------------> <!-- Set location visited flags --> (set: $rivers_edge to true) (set: $mansion_entrance to true) (set: $bridge_east to true) (set: $main_village to true) <!-- Set quest completion flags --> (set: $quests_complete to 1) (set: $guard_complete to true) <!-- Set inventory flags --> (set: $has_bag to true) (set: $ink to 3) (set: $paper to 3) <!-- helmet --> (set: $taken_helmet to true) (set: $used_helmet to true) <!-- Make sure to set book number correctly if temp adding books --> <!-- (set: $quests_completed to 9) (set: $ninja to 6) (set: $has_lantern to true) (set: $books to 3) (set: $has_bonsai_poetry_book to true) (set: $has_austen_book to true) (set: $has_unreadable_book to true) (set: $fliers to 6) --> <p>[[forest path]]</p> <p>[[Main village->main village]]</p> <p>[[Museum->Museum of Disappointing Hands]]</p> <p>[[Ink Springs Lobby->Ink Springs Lobby]]</p> <p>[[Tea House Pier->Tea House Pier]]</p> <p>[[Monument to Exuberant Poets ->Monument to Exuberant Poets]]</p> }{ (if: $upstairs is false)[ (set: $upstairs to true) <p>The second story of the inn looks much the same as its main room: a little shabby, but not too run-down. A single hallway of old but well-polished wood leads between two shoji walls, with sliding doors evenly spaced between the stairwell and the window at the end.</p> <p>All the rooms but one are unoccupied, each open door revealing a small table set in the midst of tatami flooring. The bedding, you presume, is discreetly tucked away in a closet somewhere in each one.</p> ] (else:)[ <p>You return to the inn’s second story. Nothing has changed—you wouldn’t be surprised to learn that the shoji doors had stood open, the rooms empty, for decades even before the valley was transformed.</p> ] (if: $medicine_complete is true)[ <p>You can hear the medicine seller’s voice from behind the closed door of his room, interspersed with laughter. Sounds like he’s practicing his comedy routine.</p> ] (else-if: $met_medicine is false)[ <p>From the only closed door in the hallway, you hear a man’s low voice, speaking quietly as if to a drowsy child.</p> ] (else:)[ <p>You can hear the medicine seller’s voice from behind the closed door.</p> ] (if: $medicine_complete is false)[ <p>[[Clap at the closed door.->medicine seller]]</p> ] <p>[[Head back downstairs.->inn]]</p> }{ (if: $dream_bridge is false)[ (set: $dream_bridge to true) <p>Up close, this bridge’s condition is even worse than you first thought. It is little more than a jumble of rotten wood.</p> <p>An inscription is carved into a wooden plaque which stands before its rotting timbers: <em>Whosoever wishes to cross this bridge must earn their passage through the granting of small dreams.</em></p> <p>Three stylized phases of the moon are carved at the top of the plaque from left to right: crescent, quarter, full. Even the carvings look old and worn.</p> ] (else:)[ <p>You look at the bridge, judging its condition.</p> <p>It looks (if: $bridge_completed is 3)[brand new, as if recently repaired](else-if: $bridge_completed is 2)[in poor condition still, but better on than your first visit](else:)[as if it will collapse into the water at any moment].</p> (if: $bridge_completed is 3)[<p>The inscription on the plaque has changed: <em>“To spread out a book by the light of a solitary lamp and make friends with people of ages past—this is a truly incomparable solace.” — Kenkō</em></p>](else:)[<p>The inscription on the plaque remains the same: <em>Whosoever wishes to cross this bridge must earn their passage through the granting of small dreams.</em></p>] <p>Three stylized phases of the moon are carved at the top of the plaque from left to right: crescent, quarter, full. The (if: $bridge_completed is 0)[three phases are all unvarnished wood.</p>](else:)[(if: $bridge_completed is 3)[full moon](else-if: $bridge_completed is 2)[quarter moon](else-if: $bridge_completed is 1)[crescent moon] has a yellow sheen, as though someone has painted it recently, while the other two phases are unvarnished wood.</p>] ] (if: $bridge_completed < 3)[<p>[[Touch the plaque.->bridge plaque]]</p>] (if: $bridge_completed is 3)[<p>[[Cross the bridge.->southeast shore]]</p>] <p>[[Return to the riverside trail.->south river]]</p> }{ <p>You reach out and touch the plaque.</p> (if: $quests_complete is $bridge_completed)[<p>Nothing happens.</p>] (else:)[(if: $quests_complete >3)[(set: $bridge_completed to 3)] (else:)[(set: $bridge_completed to $quests_complete)]<p>The carved wood gives off a bright yellow flash—so bright you have to look away until it fades. You feel your heart lighten just a little bit.</p>] <p>[[Examine the bridge.->bridge of dreams]]</p> }{ (if: $met_shadow is false)[ <p>Stepping cautiously, you enter the cave. (if: $has_lantern is false)[ 真っ暗いぞ。グルーで食べられるかも。</p> <p>You can go no further without some sort of light.</p>] (else:)[ You lift your lantern high, setting vaguely human shadows to dancing on the grey stone walls. Free from the predations of fearsome unseen creatures, you proceed until you reach a sudden chasm. Fortunately, you don’t fall in.</p> <p>No matter how high you hold the lantern overhead, you can see no end to the chasm. You’re about to turn and leave the cave when you notice that one of the shadows is more solid, more still than the others.</p> (link: "<p>Examine the shadow.</p>")[ <p>You squat and peer at the solid shadow. From your new angle, you can tell it is dressed as a samurai of old, complete with kabuto helmet and lacquered armour. How strange!</p> <p>As you examine its antique form, the shadow shakes its head and speaks: “I am the master of shadow and light,” it says, its voice echoing from the depths of the chasm. “What are you seeking in this profaned place, stranger to the valley?”</p> <p>Is a talking shadow any stranger than a talking tree? You suppose not.</p> <p>(set: $met_shadow to true)[[Speak to the shadow.->shadow samurai]]</p> ] ] ] (else:)[ <p>Lantern held high, you traipse back through the cave to where the Master of Shadow and Light handed you the book. Nothing remains of the shadow, and (if: $cave_ninja is false)[(set: $cave_ninja to true)(set: $ninja to it + 1)as you seek where it has fled someone taps you on the shoulder and whispers in your ear: “You’d best go back outside now, traveller. Even grue fear the ninja.”</p> <p>But when you turn around, nobody is there. Gack!](else:)[you can find no trace of anything else in this dark, desolate place.]</p> ] (if: $cave is false)[(set: $cave to true)] <p>[[Return to the path outside.->cave path]]</p> }{ (if: $cave_path is false)[(set: $cave_path to true)<p>The further east the path goes, the narrower it gets, while the mountain rises steeply beneath your feet. You’re about to give up and return to the village when you spot it: a narrow cave mouth just where the path appears to peter out completely, strangely alive with dancing shadows.</p>] (else:)[<p>The path here rises steeply before ending in a narrow cave mouth, strangely alive with dancing shadows.</p>] <p>[[Enter the cave.->cave of shadows]]</p> <p>[[Follow the path back towards town.->shrine of broken dreams]]</p> }{ <p>The path through the forest ends here in a well-maintained clearing.</p> <p>Nestled among the trees is a traditional Japanese inn, with a large painted lantern outside proclaiming it to be the <em>Ryokan Yohaku</em>.</p> <p>[[Enter the inn.->inn]]</p> <p>[[Head down the forest path.->forest path]]</p> }{ <p>The narrow path (if: $field_completed < 3)[dead-ends at](else:)[passes through] a small rice paddy here, (if: $field_completed is 3)[its edges clean and neat as it looks out on the well-ordered field of healthy stalks.](else-if: $field_completed is 2)[although both look a little worse for wear](else:)[both overgrown with weeds and clogged with detritus. It appears nobody but you has come this way in a long, long time.]</p> (if: $dream_field is false)[ (set: $dream_field to true)<p>The water stinks of rotting vegetable matter, and you can barely see the shoots of the rice stalks for all the debris. An inscription is carved into a wooden plaque hammered into the water at the sunken field’s edge: <em>Whosoever wishes to nourish their soul must earn their repast through the working of fallow dreams.</em></p> <p>Three stylized images of rice are carved at the top of the plaque from left to right: upright stalks, drying bundles, rice grains in a winnowing basket. Even the carvings look old and worn.</p> ] (else:)[ <p>You look out on the rice paddy, judging its condition.</p> <p>It looks (if: $field_completed is 3)[green and vital, with barrels of harvested and winnowed grain resting on one side of a raised wooden platform that leads eastward](else-if: $field_completed is 2)[green and vital, although some debris still litters the water](else:)[so clogged with debris you can barely see the shoots of rice, and the stink of rotting vegetable matter fills the air].</p> (if: $field_completed is 3)[<p>The inscription on the plaque has changed: <em>“We read books to find out who we are. What other people, real or imaginary, do and think and feel... is an essential guide to our understanding of what we ourselves are and may become.” — Ursula K. Le Guin</em></p>](else:)[<p>The inscription on the plaque remains the same: <em> Whosoever wishes to nourish their soul must earn their repast through the working of fallow dreams.</em></p>] <p> Three stylized images of rice are carved at the top of the plaque from left to right: upright stalks, bundles of rice stalks set out to dry, rice grains in a winnowing basket. (if: $field_completed is 0)[ Even the carvings look old and worn.](else:)[The image of the (if: $field_completed is 3)[basket full of grains](else-if: $field_completed is 2)[bundles of rice stalks](else-if: $field_completed is 1)[upright stalks] has a yellow sheen, as though someone has painted it recently, while the other two are unvarnished wood.</p>] ] (if: $quests_complete < 4)[<p>A strange force prevents you from touching the plaque.</p>] (else:)[ (if: $field_completed < 3)[<p>[[Touch the plaque.->field plaque]]</p>] ] (if: $field_completed is 3)[<p>[[Cross the rice paddy.->shrine of broken dreams]]</p>] <p>[[Head back towards the bridge.->southeast shore]]</p> }{ <p>You place the book in one of Old Willow’s outreached branches, and the whole tree shivers.</p> <p>“Is this...?”</p> <p>With that now-familiar flash of light, the tree vanishes, replaced by Ishikawa Fudemitsu, a man in his early forties. He flips through the pages of the book, head bowed, until he reaches the end.</p> (if: $quests_complete is 11)[ <p>“You have done what I could never bear to,” Fudemitsu says. “You have found what people need and shared it with them, rather than keeping it for yourself.” He looks at the valley and sighs. “There is nothing more for me to do here, but perhaps out there in the wider world I can find some way to atone for my mistakes.”</p> ] (else:)[ <p>“You have done well in making up for my mistakes,” Fudemitsu says. “But there is still more to do.” He looks at the valley, his expression conflicted. “I will try my best to complete what you have started.”</p> ] (if: $ninja is 8)[ <p>And then something unexpected happens: a woman in the dark clothing of a kunoichi steps out from behind a nearby tree. She and Fudemitsu exchange nods, as if they are old friends, and then she turns to you.</p> <p>“In addition to helping the people of the valley,” the woman says, “you have spotted each of my practitioners. If you wish, we will teach you the way of the ninja.”</p> <p>The way of the ninja?! That can’t be right.</p> <p>“It is <em>exactly</em> right,” the kunoichi says, amusement in her voice. “And no, I can’t read minds. But that reaction happens more often than you’d think.”</p> ] |end-choice>[ (if: $ninja is 8)[ (link: "<p>Accept her offer.</p>")[ (replace: ?end-choice)[ <p>You accept the kunoichi’s offer. Of course you accept it! And as Fudemitsu (if: $quests_complete is 11)[prepares to leave the valley](else:)[returns to the village to see to its denizen’s needs] you begin your new training, determined to make history as the world’s first book-making ninja.</p> <p>But that is a story for another time.</p> ] (show: ?end-links) ] ] (link: "<p>Offer to help Fudemitsu.</p>")[ (replace: ?end-choice)[ <p>Although a part of you wants nothing more than to return home and leave this strange experience behind you, the larger part knows you would regret it if you did not offer to help Fudemitsu. If you did not learn more about the way of the book.</p> <p>The man you knew as Old Willow bows his head as you tell him you will (if: $quests_complete is 11)[accompany him on his journey, no matter where it takes him](else:)[help him see to the villagers’ needs, no matter how long it takes].</p> <p>When he looks up again, you see the slightest hint of tears in his eyes. “I do not deserve such kindness,” he tells you, “but... Thank you.”</p> <p>Then he shakes out his limbs and stretches, the motion strangely reminiscent of the wind blowing through the branches of a willow. “Come along then,” he says. “I will need to teach you how to do things the old-fashioned way, now that our ink source is gone.”</p> <p>And indeed, as you (if: $quests_complete is 11)[stride along the road out of the valley](else:)[cross the bridge back into the village], you pause to look (if: $quests_complete is 11)[back](else:)[down] at the river and notice that its waters, once ink-black and murky, now sparkle in the sun like a dragonfly’s wings. In the distance you can hear the buzz of a million bees playing <em>Ode to Joy</em>.</p> ] (show: ?end-links) ] (link:"<p>Find your own way in the world.</p>")[ (replace: ?end-choice)[ <p>You feel for Fudemitsu, but you have your own life to live—and ultimately, he is the only one who can satisfy his guilty conscience and undo his mistakes.</p> <p>You hand his bag with its remaining scraps of supplies back to the man you knew as Old Willow, and as he (if: $quests_complete is 11)[prepares to leave the valley](else:)[returns to the village to see to its denizens’ needs], you make your own decision.</p> ] (show: ?own-way) ] ] |own-way)[ (link:"<p>You will stay in the valley.</p>")[ (replace: ?own-way)[ <p>(if: $quests_complete is 11)[Fudemitsu may be leaving the valley](else:)[You have no particular wish to help Fudemitsu], but the village and those who live there have grown on you. You find that, no matter what you may have left unfinished at home, you feel no desire to return there.</p> <p>As you cross the bridge back into the village, you pause to look down at the river. Its waters, once ink-black and murky, now sparkle in the sun like a dragonfly’s wings. In the distance you can hear the buzz of a million bees playing <em>Ode to Joy</em>.</p> ] (show: ?end-links) ] (link:"<p>You will find your way back home.</p>")[ (replace: ?own-way)[ <p>Your future does not lie in this valley (if: $quests_complete is 11)[either], but out there in the wider world. You(if: $quests_complete < 11)[, too,] have tasks left undone back home, and no wish for regrets if they are not completed.</p> <p>As you stride along the road out of the valley, you look back one last time. The river, once ink-black and murky, now sparkles in the sun like a dragonfly’s wings. In the distance you can hear the buzz of a million bees playing <em>Ode to Joy</em>.</p> ] (show: ?end-links) ] ] |end-links)[ (set: $newgame to true) <p>The End</p> <p>[[Play again?->Start]]</p> ] }{ <p>You reach out and touch the plaque.</p> (if: ($quests_complete - 3) is $field_completed)[<p>Nothing happens.</p>] (else:)[(if: $quests_complete > 6)[(set: $field_completed to 3)] (else:)[(set: $field_completed to ($quests_complete - 3))]<p>The carved wood gives off a bright yellow flash—so bright you have to look away until it fades. You feel your heart lighten a little bit further.</p>] <p>[[Examine the field.->dream field]]</p> }{ <p>The path climbs through dense forest, and the sound of the river fades away. Leaves and pine needles litter the path so densely that even your footsteps make barely a sound. (if:$has_leaf is false and $shrine_paper_taken is false)[You stumble as your foot hits an uneven spot in the path—it feels like there’s something underneath the leaves.]</p> <p>A small roadside shrine sits at the edge of the path, (if: $shrine_paper_taken is false)[a few sheets of paper weighted down by a stone resting before it](else:)[the string of coins you found atop it] as an offering.</p> |coins>[ (if: $needs_leaf is true)[ (link: "<p>Examine the leaves.</p>")[ (if: $shrine_paper_taken is false)[ <p>You squat in the center of the path and sift through the leaves until you find a string of five-yen coins. It would make an excellent offering to whichever god or spirit this shrine maintains.</p> (link: "<p>Take the coins.</p>")[(set: $has_leaf to true)(set: $needs_leaf to false)(go-to: "forest path")] ] ] ] (else-if: $shrine_paper_taken is true)[ (link: "<p>Examine the leaves.</p>")[ (if: $leaf_ninja is false)[ (set: $ninja to it + 1)(set: $leaf_ninja to true) You squat in the center of the path and sift through the leaves until you find a ninja. Wait, a ninja?! Ack! You leap backwards, falling on your butt, and by the time you recover the ninja is gone.</p> <p>Great, now you have a wet butt <em>and</em> heart palpitations.</p>] (else:)[<p>Yep. Those are leaves all right.</p>] ] ] (if: $shrine_paper_taken is false and $needs_leaf is false)[ (link: "<p>Take the paper.</p>")[ (if: $has_leaf is false)[ (set: $needs_leaf to true) <p>You’re not going to <em>take</em> an offering from a shrine! Holy crap, that would be so rude.</p> (link: "<p>Examine the leaves.</p>")[ <p>You squat in the center of the path and sift through the leaves until you find a string of five-yen coins. It would make an excellent offering to whichever god or spirit this shrine maintains.</p> (link: "<p>Take the coins.</p>")[(set: $has_leaf to true)(set: $needs_leaf to false)(go-to: "forest path")] ] ] (else:)[ <p>You’re not going to <em>take</em> an offering from a shrine! Holy crap, that would be so rude.</p> ] ] (if: $has_leaf is true)[ (link:"<p>Place the coins on the shrine.</p>")[ (set: $paper to it + 3)(set: $shrine_paper_taken to true)(set: $has_leaf to false) (replace: ?coins)[<p>You place the string of coins atop the shrine, bowing to the spirit or god it maintains in a polite greeting.</p> <p>As you straighten up, you feel a rustle in your bag. When you open it, you realise you have three more sheets of paper than you thought—and sure enough, the paper near the shrine has vanished.</p> <p>You bow again, much more deeply, in thanks.</p>] ] ] ] ] <p>[[Head deeper into the forest.->clearing]]</p> <p>[[Take the path back towards the village.->north road]]</p> }clouds: lobo-loco-through-the-clouds.mp3 gust: siddhartha-sudden-gust-of-wind.mp3 midnight: siddhartha-midnight-melody.mp3 mountains: siddhartha-call-of-the-mountains.mp3 secret: siddhartha-secret-pass.mp3{ (if: $met_keeper is false)[ (set: $met_keeper to true) <p>You approach the innkeeper, and her smile gets slightly more natural.<p> <p>“Welcome, honoured guest!” she says. “May I prepare a room for you on this fine day?”</p> <p>(link: "Politely decline.")[ “Sorry,” you say. “I haven’t any money.”</p> <p>The innkeeper sighs. “Story of my life,” she says wryly. “And here I was hoping you’d be some wealthy foreigner ready to sweep me off to distant lands and serve me delicious food and drink until I expired of pleasure.”</p> <p>That’s... oddly specific.</p> <p>Apparently seeing your confusion, the innkeeper smiles. “Just a joke,” she reassures you. “And anyway, even if you did want to do that, I could never leave this place. This simple inn may not be much, but it’s been in my family for generations.”</p> <p>She clears her throat. “In any case, I’d be happy to have you barter for a night’s stay, if you don’t have the money for it. Just let me know.”</p> (if: $has_dessert_book is true)[ (link: "<p>Offer her the book of desserts.</p>")[ (set: $innkeeper_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_dessert_book to false) <p>There is no flash of light when the innkeeper takes the book from you, and the only transformation is her expression, which goes from bleak to delighted. Still, as she flips through the pages of recipes, your heart feels undeniably lighter.</p> <p>“Thank you!” she says. “It’s nearly as good as being there myself.”</p> <p>You have to stand there for a minute longer before she looks up, blinking. “Oh, right. You can take your pick of rooms upstairs. We only have one other guest at the moment.”</p>] ] <p>[[Return to the inn.->inn]] ]</p> ] (else:)[ <p>“Hello again,” the innkeeper says with a smile. “Have you changed your mind about renting a room?”</p> <p>After a pause, she winks at you. “Or about whisking me away and plying me with drink and dessert? To be honest, at this point I’d settle for a cup of tea and a pastry.”</p> (if: $has_dessert_book is true)[ (link: "<p>Offer her the book of desserts.</p>")[ (set: $innkeeper_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_dessert_book to false) <p>There is no flash of light when the innkeeper takes the book from you, and the only transformation is her expression, which goes from bleak to delighted. Still, as she flips through the pages of recipes, your heart feels undeniably lighter.</p> <p>“Thank you!” she says. “It’s nearly as good as being there myself.”</p> <p>You have to stand there for a minute longer before she looks up, blinking. “Oh, right. You can take your pick of rooms upstairs. We only have one other guest at the moment.”</p>] ] <p>(link: "Return to the inn.")[ (set: $keeper_chat to true)(goto: "inn")]</p> ] }{ (if: $inn is false)[(set: $inn to true)] (if: $keeper_chat is false)[<p>As you enter the inn’s main room, the innkeeper gives you a hearty greeting, (if: $innkeeper_complete is false)[although her voice sounds somewhat forced](else:)[looking up from her book of desserts with a satisfied smile].</p>](else:)[(set: $keeper_chat to false)(set: $back_room to false)] <p>The main room of the inn is tastefully done in the Japanese style, with a few small nods to modernity like the exposed lightbulb which hangs from the ceiling, filling the room with a warm glow. (if: $inn_flier is true)[The flier for Natsu’s food stall hangs next to the doorway where you placed it.]</p> <p>(if: $maid_complete is true)[The maid you helped gives you a grateful look as she dusts the railing of the](else:)[You can hear clattering and panicked muttering coming from a back room, just past where a set of] stairs lead(if: $maid_complete is true)[ing](else:)[s] to the second floor.</p> (if: $fliers > 0 and $inn_flier is false)[<p>(link:"Ask to put up Natsu’s flier.")[You show the flier to the innkeeper and ask if you can affix it to the wall. “Please do!” she says, her eyes lighting up at the flier’s description of the stall’s delicious food. You stick it next to the doorway where guests and staff can easily see it.(set: $inn_flier to true)(set: $fliers to it - 1)]</p>] (if: $innkeeper_complete is false)[<p>[[Speak to the innkeeper.->inkeeper]]</p>] <p>[[Check out the back room.->Back Room]]</p> <p>(if: $innkeeper_complete is false)[(link:"Head upstairs.")[(if: $inn_fail is false)[(set: $inn_fail to true)]As you approach the staircase, the innkeeper clears her throat meaningfully. “Guests only!” she says. “Happy to barter if you don’t have coin.”] ](else: )[ [[Head upstairs.->Upstairs]] ]</p> <p>[[Go back outside.->clearing]]</p> }{ (if: $main_village is false)[(set: $main_village to true) <p>The cluster of homes that are gathered here are constructed in an unusual style—dark wood paneling topped by steep thatched roofs, with only a few small windows covered in white paper. Although it’s still light outside, several are already illuminated from within by dim electric light against the oncoming darkness of late afternoon in the mountains.</p>] (else:)[<p>You return to the village’s main road, the austere light of the buildings’ bare electric bulbs painting faint shadows on their paper windows from within.</p>] <p>Two other buildings are here in addition to the homes.</p> <p>One is in the more typical Japanese style, with clean whitewashed walls and a sliding door which stands half-open. Yellow light pours out from inside, somewhat obscured by a large blue banner emblazoned with a white 質—the traditional sign for a pawnbroker.</p> <p>The other is a dilapidated wooden building, with a sign out front that reads <i>The Museum of Disappointing Hands</i>.</p> <p>The road continues north past the village, and south towards the older part of town.</p> <p>[[Take the road north.->north road]]</p> <p>[[Take the road to the southern part of the village.->south village]]</p> <p>[[Enter the pawn shop.->pawnshop]]</p> <p>[[Enter the museum.->Museum of Disappointing Hands]]</p> }{ (if: $met_medicine is false)[ (set: $met_medicine to true) <p>When you clap at the door, the voice goes quiet.</p> <p>A moment later, a man dressed in a traveller’s robe answers the door. “Sorry,” he says. “I’m not selling any medicines right now. But I’ll be in the town square... soon.”</p> <p>Past him, you can see that his room is like the others. The only difference is that his futon is spread out on the floor, next to the large, boxy case of a travelling medicine seller. Atop the case is a child’s spinning top, its cheery bright red surface distinctly out of place against the gloomy nature of the room.</p> <p>The medicine seller follows your gaze and smiles self-consciously. “For my son,” he tells you. “He was born while I was on the road, so I’ve yet to meet him.” He lets out a heavy sigh. “That little top doesn’t feel like much of a connection, but it was all I could think of to give him when I return. I hope when he plays with it, he’ll think of me.”</p> (if: $has_joke_book is true)[ (link: "<p>Offer him the book of jokes.</p>")[ (set: $medicine_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_joke_book to false)(set: $has_top to true) <p>The medicine seller reaches out and takes the joke book, expression curious. He flips through the first couple of pages, then laughs out loud and looks up at you with a grin.</p> <p>“This is much better!” he says. “I’ll fill his little head so full of jokes he’ll never know a moment’s sadness no matter how long I’m away.”</p> <p>He retrieves the spinning top from the medicine chest and hands it to you. “You can have this. I have no need of it now.”</p>] ] <p>[[Return to the hallway.->Upstairs]]</p> ] (else:)[ <p>The medicine seller answers the door.</p> <p>“Yes?” he asks. “How can I help you?” His voice is as dour as ever. It sounds like he really needs a laugh.</p> (if: $has_joke_book is true)[ (link: "<p>Offer him the book of jokes.</p>")[ (set: $medicine_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_joke_book to false)(set: $has_top to true) <p>The medicine seller reaches out and takes the joke book, expression curious. He flips through the first couple of pages, then laughs out loud and looks up at you with a grin.</p> <p>“This is much better!” he says. “I’ll fill his little head so full of jokes he’ll never know a moment’s sadness no matter how long I’m away.”</p> <p>He retrieves the spinning top from the medicine chest and hands it to you. “You can have this. I have no need of it now.”</p>] ] <p>[[Return to the hallway.->Upstairs]]</p> ] }{ <p>You place the book in one of Old Willow’s outreached branches, and the whole tree shivers.</p> <p>And then something unexpected happens: a woman in the dark clothing of a kunoichi steps out from behind the tree. “You have spotted us all,” she says, her voice a mixture of amusement and respect. “If you wish, we will teach you the way of the ninja.”</p> (link:"<p>The way of the ninja?!</p>")[ <p>“But what about Old Willow?” you ask, befuddled.</p> <p>The kunoichi smiles. She reaches up and pulls on something in midair, and Old Willow’s branches rustle in the wind. “Well met, traveller,” she says—her voice is Old Willow’s exactly!</p> (link: "<p>It’s certainly convincing, but...</p>")[ <p>“And the books?” you ask. “Those transformations?”</p> <p>She makes a complicated hand motion, and disappears with a familiar flash of light. When you can see again, a woman with the head of a Daruma stands before you. “A traditional ninja technique,” she says, “and one that all here strive to master before departing for their missions in the wider world.”</p> <p>Is she saying what you think she is? That all of this strangeness has been because you wandered into some kind of ninja training camp?</p> (link: "<p>That can’t be right.</p>")[ <p>“That is <em>exactly</em> right,” the Daruma-headed woman says. “And no, I can’t read minds. But this happens more often than you’d think.”</p> <p>There is another flash of light, and the kunoichi stands before you again, her arms crossed and expression serious. “Now,” she says. “Will you accept my offer and learn the ways of the ninja?”</p> <p>You accept. Of course you accept! And thus begins your career as a book-making ninja.</p> <p>But that is a story for another time.</p> <p>The End</p> (set: $newgame to true) <p>[[Play again?->Start]]</p> ] ] ] }{ <p>North of the main village, the mountains and forest encroach on the riverside, making the road little more than a narrow, rocky path. It skirts around scraggly rice paddies for a few meters, and then splits, with one path entering the forest to the west and another descending towards the river to the east. A garden area with a giant white monument stands near the forest entrance.</p> <p>[[Follow the river path.->river path]]</p> <p>[[Follow the forest path.->forest path]]</p> <p>[[Take the road south and enter the village.->main village]]</p> <p>[[Enter the garden.->Monument to Exuberant Poets]]</p> }{ (if: $met_nure is false)[ (set: $met_nure to true) <p>You approach the woman brushing her hair, stopping with a jolt of shock and fear as you realise she is not a woman at all. Below the waist, her human form gives way to a massive snake tail that coils on the ground before slipping beneath the inky water—as thick around as you twice over, it must be at least ten meters long.<p> <p>She’s a nure onna, a type of yōkai known for luring unsuspecting people into waterways and pulling them under. That long, damp, silken hair should have given it away. No normal person would sit at a riverbank to brush it out like that.</p> <p>But it’s too late to back away now. The nure onna looks over at you, eyes narrowing, hissing ominously. “Tell me, traveller,” she says. “Why should I not drown you in the river?”</p> <p>(link: "Beg for mercy.")[ “Please,” you beg. “Have mercy.” You barely got <em>out</em> of that river. The last thing you want is to go back in!</p> <p>You take a half-step backward as you speak, bumping up against one of the jizō statues, knocking it over. The instant you do, the nure onna’s eyes widen in undisguised panic.</p> <p>“Be careful!” she wails, all menace gone from her voice. “If those statues are disturbed, then my little Masami will—”</p> <p>She breaks off, sobbing, and you carefully set the jizō statue back upright. You look at the cluster of the little statues at the riverbank, and then at the way the nure onna clutches her comb, the way she hunches over at the water’s edge. She does not seem terrifying now, only sad.</p> <p>“Leave me,” she whispers, turning her face away. “Let me mourn in peace.”</p> (if: $has_lullaby_book is true)[ (link: "<p>Offer her the book of lullabies.</p>")[ (set: $nure_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_lullaby_book to false)(set: $has_comb to true) <p>With a flash of light, the nure onna’s unnatural body disappears, leaving in its place an ordinary woman in a threadbare robe. As her comb falls to the ground, she takes the book from you with shaking hands, swallowing audibly. “These...” she whispers. “These were Masami’s favourite songs.”</p> <p>She lets out a loud sob and clutches the book to her chest. “Thank you, traveller,” she manages, after a moment. “I don’t know why, but my heart feels a little lighter.”</p> <p>The woman picks up the comb and hands it to you. “It isn’t much,” she says. “But please take this as a token of my thanks.”</p>] ] <p>[[Return to the riverside.->rapids]] ]</p> ] (else:)[ <p>The nure onna is humming a lullaby as she combs her long hair. She breaks off as you approach, eyes sad.</p> <p>“Well, traveller?” she asks. “Have you come to laugh at a poor woman whose mourning is without end?”</p> (if: $has_lullaby_book is true)[ (link: "<p>Offer her the book of lullabies.</p>")[ (set: $nure_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_lullaby_book to false)(set: $has_comb to true) <p>With a flash of light, the nure onna’s unnatural body disappears, leaving in its place an ordinary woman in a threadbare robe. As her comb falls to the ground, she takes the book from you with shaking hands, swallowing audibly. “These...” she whispers. “These were Masami’s favourite songs.”</p> <p>She lets out a loud sob and clutches the book to her chest. “Thank you, traveller,” she manages, after a moment. “I don’t know why, but my heart feels a little lighter.”</p> <p>The woman picks up the comb and hands it to you. “It isn’t much,” she says. “But please take this as a token of my thanks.”</p>] ] <p>[[Return to the riverside.->rapids]]</p> ] }{ (if: $met_pawn is false)[ (set: $met_pawn to true) <p>The owl-man tilts his head from side to side, hooting softly.<p> <p>“Greetings, valued customer!” he says. “May I interest you in a recently-decanted pellet of fur and mouse bones?”</p> <p>(link: "Politely decline.")[ “Uhhh,” you say. “No. No thank you.”</p> <p>The owl-man ruffles his feathers. “It is most valuable?!” he exclaims, and you’re honestly not sure if he's trying to convince you or convince himself. “I would even be willing to trade it for any useless ream of sky-blue silk or dirty hunk of pure gold you happen to have found.”</p> <p>You eye the mess behind the counter with new understanding. Although you can’t (thank the gods!) see the owl pellet anywhere, this pawnshop isn’t just suffering from a cluttered inventory. The pawnbroker can’t tell value from refuse. Was he this bad before being transformed into an owl?</p> (if: $has_sword_book is true)[ (link: "<p>Offer him the book about antiques.</p>")[ (set: $pawn_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_sword_book to false)(set: $has_antidote to true) <p>With a familiar flash of light, the owl-man’s feathers and beak vanish, revealing an ordinary looking man in his 60s—although his eyes are still wide and staring. He takes the book from you, then pulls a pair of round-framed glasses from under the counter and puts them on, sounding out the book’s title under his breath.</p> <p>“Ahhh,” he says. “This seems... useful. And I know just the thing to give you in return!”</p> <p>He reaches into the pocket of his robe, then grimaces as his hand finds something that makes an audible <em>squish</em>. “On second thought, perhaps not,” he mutters, withdrawing the hand and wiping it on his clothing.</p> <p>For a moment, you think he’s going to burst into tears. But then his face lights up and he turns his back to you, rummaging on the cluttered shelf. “This will do nicely!” he exclaims, and returns to the counter with a small, shimmering bottle. “Uh... Whatever it is.”</p> <p>You thank him as you take the item.</p>] ] <p>(link: "Return to the pawnshop.")[ (set: $in_pawn to true)(goto: "pawnshop")]</p> ]</p> ] (else:)[ (set: $random_pawn to (random: 1,6)) (if: $random_pawn is 1)[(set: $pawn_thing to "the entire island of Atlantis? I’m certain I have the deed somewhere around here...”")] (else-if: $random_pawn is 2)[(set: $pawn_thing to "some oceanfront property in Denver? The foreigner who traded it to me said it was quite the rarity—and all he wanted in return was a solid gold statue of the Buddha. Ha!”")] (else-if: $random_pawn is 3)[(set: $pawn_thing to "this very interesting pebble? It looks exactly like an ordinary pebble, and that, you see, is its value. Because it is <em>not</em>! Oh, hang on a minute. Maybe this one <em>is</em> just an ordinary pebble. Hmm. Well, somewhere I have the other one. Probably.”")] (else-if: $random_pawn is 4)[(set: $pawn_thing to "this book titled <em>Extremely Valuable Advice</em>? Ha, just kidding—that thing was trash. I threw it out ages ago!”")] (else-if: $random_pawn is 5)[(set: $pawn_thing to "uh... <em>two</em> owl pellets?!”")] (else:)[(set: $pawn_thing to "your own hair?”")] <p>“Customer,” the owl-man says, voice slightly desperate. “If not the owl pellet, how about (print: $pawn_thing)</p> (if: $has_sword_book is true)[ (link: "<p>Offer him the book about antiques.</p>")[ (set: $pawn_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_sword_book to false)(set: $has_antidote to true) <p>With a familiar flash of light, the owl-man’s feathers and beak vanish, revealing an ordinary looking man in his 60s—although his eyes are still wide and staring. He takes the book from you, then pulls a pair of round-framed glasses from under the counter and puts them on, sounding out the book’s title under his breath.</p> <p>“Ahhh,” he says. “This seems... useful. And I know just the thing to give you in return!”</p> <p>He reaches into the pocket of his robe, then grimaces as his hand finds something that makes an audible <em>squish</em>. “On second thought, perhaps not,” he mutters, withdrawing the hand and wiping it on his clothing.</p> <p>For a moment, you think he’s going to burst into tears. But then his face lights up and he turns his back to you, rummaging on the cluttered shelf. “This will do nicely!” he exclaims, and returns to the counter with a small, shimmering bottle. “Uh... Whatever it is.”</p> <p>You thank him as you take the item.</p>] ] <p>(link: "Return to the pawnshop.")[ (set: $in_pawn to true)(goto: "pawnshop")]</p> ] }{ (if: $pawn_shop is false)[ (set: $pawn_shop to true) <p>As you duck under the banner, you’re surprised to see that a Western-style glass door has been installed instead of a sliding shoji door. Perhaps the proprietor of this place thinks their wares so valuable they need protecting?</p> <p>You push the door open, jumping a little as its attached bell sets off a high-pitched jangling. You’re barely inside when a man standing behind the shop’s counter greets you with a hearty “Welcome, valued customer!”</p> <p>At least, you think he’s a man. He has the head and body of an owl, complete with staring eyes and puffed-out chest feathers—unsettling, but you suppose it’s better than the bridge guard’s Daruma head.</p> <p>Next to the owl-man’s counter is a small stool, on which sits an even stranger-looking person, hunched over a small stone lantern and wearing shifting purple-black shadow as a cloak. They look like a living swirl of muddied ink, but you can make out no further detail about them.</p> ] (else:)[ (if: $in_pawn is true)[ (set: $in_pawn to false) <p>You break away from your conversation and look around the room. The pawnbroker is eyeing his (if: $pawn_complete)[overflowing] shelves.</p> ] (else:)[ <p>You duck back under the banner and through the door into the pawnshop. (if: $pawn_complete is true)[The pawnbroker looks up from his book, blinking owlishly, then returns to it after giving you a vague wave.](else:)[The owl-man gives you a grunt as you enter. Looks like you only get the excited new-customer greeting once!]</p> ] (if: $poisoner_complete is false)[<p>(if: $met_poisoner is true)[Kuro](else:)[The shadow-cloaked person] shows no sign of recognition. Or, indeed, anything at all, save the steady in-and-out of their breathing as they stare at the small stone lantern they hold.</p>] ] <p>The shelves behind the (if: $pawn_complete is true)[pawnbroker are neat and orderly—seems he is already making good use of the book you provided](else:)[owl-person are so packed with items you can’t make all of them out]. A paper calendar draped over the counter shows the date in both the Japanese and Western styles: 大正11年 (1922). (if: $pawn_flier is true)[The flier for Dou Natsu’s food stall is near the counter where you put it.]</p> (if: $fliers > 0 and $pawn_flier is false)[<p>(link:"Ask to put up Natsu’s flier.")[You show the flier to the pawnbroker and ask if you can affix it to the wall. He shrugs. “Why not.” You stick it near the counter where customers can easily see it.(set: $pawn_flier to true)(set: $fliers to it - 1)]</p>] (if: $pawn_complete is false)[<p>[[Speak to the owl-man.->pawnbroker]]</p>] (if: $poisoner_complete is false)[ (if: $met_poisoner is true)[<p>[[Speak to Kuro.->poisoner]]</p>] (else:)[<p>[[Speak to the shadow-cloaked person.->poisoner]]</p>] ] (else:)[ (link: "<p>Examine the stool where Kuro was sitting<p>")[ (if: $has_lantern is false)[(set: $has_lantern to true)<p>You examine Kuro’s stool and find the small stone lantern they used to hold. You pick it up and place it in your bag, hoping it will be useful.</p>] (else-if: $pawn_ninja is false)[(set: $pawn_ninja to true)(set: $ninja to it + 1)<p>You examine Kuro’s stool. For a moment, you think you see a ninja sitting there. But when you rub your eyes, there’s nobody.] (else:)[It’s just an ordinary wooden stool.] ] ] <p>[[Leave the pawn shop.->main village]]</p> }{ (if: $met_poisoner is false)[ (set: $met_poisoner to true) |kuro>[ <p>The shadow-cloaked person turns their face from the small stone lantern they hold and towards you—at least, you think so. Even their face is shrouded in inky black shadow.<p> <p>“Hello, traveller,” they whisper. “Care to hear my tragic tale?”</p> (link: "<p>Listen to the shadowy figure’s story.</p>")[ (replace: ?kuro)[(show:?kuro-one)] ] ]</p> ] (else:)[ <p>“Hello again,” Kuro whispers, looking up from their small stone lantern. “Any luck finding something that could help me heal those whose books I have poisoned?”</p> (if: $has_antidote_book is true)[ (link: "<p>Offer them the book about poisons and antidotes.</p>")[ (set: $poisoner_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_antidote_book to false) <p>With a familiar flash of light, the inky purple-black shadow cloaking Kuro vanishes. In its place is a person with androgynous features—wearing an actual cloak of dark purple tucked in tight around their face. They swallow audibly as they take the book, then bite back a sob as they caress its cover.</p> <p>“This...” they say. “This is more than I deserve.”</p> <p>They clutch the book close and stand. “I have so much to make up for,” they mutter. “Out there in the wide world beyond the valley.</p> <p>“My thanks, traveller,” they say to you with a firm nod. “I must leave this place, but I hope that you can stay and help the others who live here. Seek out Shinsuke in the Cave of Shadows—he may still have that book, and perhaps it can repair what my brother has done.”</p> <p>And then they stride from the pawnshop without a second look, leaving the lantern on their stool.</p>] ] <p>(link: "Return to the pawnshop.")[ (set: $in_pawn to true)(goto: "pawnshop")]</p> ] |kuro-one)[ <p>“My name,” the cloaked figure begins, “was once Ishikawa Kuro. I was the youngest of the Ishikawa siblings, and like my three brothers I was fascinated with shadow and ink.</p> <p>“If you are here in the village, you already know what happened to Daisuke, the eldest. And you have already met my second brother, Fudemitsu, who collected the desires of the valley’s readers in order to turn the river black as ink and make this place his own shadowy paradise. Although he goes by a different name now, and perhaps you do not <em>know</em> you have met him.</p> <p>“My third brother, Shinsuke, you have not yet met. He was the most shadow-obsessed of us all, and he holds the key to everything now.” They sigh. “Everything but my own fate.”</p> (link: "<p>Ask to hear more.</p>")[ (replace: ?kuro)[(show: ?kuro-two)] ] ] |kuro-two)[ <p>“Our father,” Kuro continues, “was... complicated. Everything had a place in the firmament of his life, including my brothers: one who studied the sword, one who studied the brush, and one who studied the occult. He felt certain that with masters of these three arts, the Ishikawa family name would flourish without end.</p> <p>“As for me? I was a surprise, and most unwelcome. My father had neither need nor desire for an unplanned child. My mother tried to make me welcome, but she passed away when I was very young, followed shortly by my father.</p> <p>“I do not think I knew I was alone. I could feed myself well enough, and my brothers would play with me when I asked. If their games were sword and brush and shadow, well, I did not know any better. Perhaps if it were not for Fudemitsu, we would all still be living that life.”</p> <p>You cannot see their face, but think that if you could, you would see a bitter smile upon it.</p> (link: "<p>Ask about Fudemitsu.</p>")[ (replace: ?kuro)[(show: ?kuro-three)] ] ] |kuro-three)[ <p>“Although Daisuke and Shinsuke were content to follow their usual routines, something in Fudemitsu changed. </p> <p>“Before, he had always valued books not as things but as gifts to share with the world. But after our parents’ deaths he grew hard and cold. Instead of seeking what books people wanted and providing them, he became obsessed with hoarding that knowledge—and the books that could hold it.</p> <p>“I was playing by the river near the mansion one day when I heard shouting, and shortly after Fudemitsu stormed out of the gate. I found Shinsuke and Daisuke talking quietly but urgently in the main room, but they grew silent as I approached them and would not tell me anything.</p> <p>“And then...” They sigh and turn their shadowed face away.</p> (link: "<p>And then?</p>")[ (replace: ?kuro)[(show: ?kuro-four)] ] ] |kuro-four)[ <p>“In the next few days, I started to hear rumours around town. Rumours that people had changed after a visit from Fudemitsu—some obviously, visibly, and others only on the inside.</p> <p>“Uneasy, I followed him here, and heard him ask the pawnbroker what kind of book would be helpful. When the man asked him for a book about evaluating antiques, there was a flash of dark shadow and he turned into that owl-man. Fudemitsu only smiled and stalked past me, as if I were not even there.</p> <p>“I thought perhaps I could stop him if I made all the books in the world less appealing, and so I began poisoning every one I could get my hands on. Leaving irrelevant comments in the margins, writing curses in the cover, smearing them with mucus and blood when I could think of nothing else.</p> <p>“But all I accomplished was adding sorrow to sorrow. When I took a book from Daisuke and dipped it completely in ink, he went mad. Obsessed with shadows, well... You know what happened next.</p> <p>“Shinsuke took that shadowy book and fled before Fudemitsu could find it, and it was shortly after that when the river turned inky black and we realised we could no longer reach the outside world.”</p> <p>Kuro heaves a deep sigh. “There is nothing I can do about it now. But I wonder, what if there were some way to cure the books I poisoned? Perhaps I could help in some small way.”</p> (link: "<p>Thank Kuro for sharing their story.</p>")[ (replace: ?kuro)[(show: ?kuro-final)] ] ] |kuro-final)[ (if: $has_antidote_book is true)[ (link: "<p>Offer them the book about poisons and antidotes.</p>")[ (set: $poisoner_complete to true)(set: $quests_complete to it + 1)(set: $books to $books - 1)(set: $has_antidote_book to false) <p>With a familiar flash of light, the inky purple-black shadow cloaking Kuro vanishes. In its place is a person with androgynous features—wearing an actual cloak of dark purple tucked in tight around their face. They swallow audibly as they take the book, then bite back a sob as they caress its cover.</p> <p>“This...” they say. “This is more than I deserve.”</p> <p>They clutch the book close and stand. “I have so much to make up for,” they mutter. “Out there in the wide world beyond the valley.</p> <p>“My thanks, traveller,” they say to you with a firm nod. “I must leave this place, but I hope that you can stay and help the others who live here. Seek out Shinsuke in the Cave of Shadows—he may still have that book, and perhaps it can repair what my brother has done.”</p> <p>And then they stride from the pawnshop without a second look.</p> ] ] <p>(link: "Return to the pawnshop.")[ (set: $in_pawn to true)(goto: "pawnshop")]</p> ] }{ <p>Audio and style settings. You will also be able to access these settings once the game has started.</p> <p>(if: $music_on is true)[(link:"Turn off music.")[(masteraudio: 'stopall')(set: $music_on to false)(go-to:"pregame settings")]](else:)[(link:"Turn on music.")[(set: $music_on to true)(go-to:"pregame settings")]]</p> <p>(if: $images_on is true)[(link:"Turn off background images.")[<script>$('tw-story').removeClass("settings");</script><script>$('tw-story').addClass("blank");</script>(set: $images_on to false)(go-to:"pregame settings")]](else:)[(link:"Turn on background images.")[<script>$('tw-story').removeClass("blank");</script><script>$('tw-story').addClass("settings");</script>(set: $images_on to true)(go-to:"pregame settings")]]</p> }{ <p>You approach the river, careful of your footing on the damp, slippery ground. (if: $rapids is false)[The water here may be shallow, but it rushes across exposed rocks and boulders like a thing possessed—there’s no way you could safely swim to the other side.(set: $rapids to true)](else:)[Once again, you take in its mad rushing across the exposed rocks and boulders.]</p> <p>Up close, it’s clear that someone takes care of the cluster of jizō statues. The round-cheeked, smiling, child-like figures are pristine and polished, as though they were placed here only moments before. (if: $nure_complete is true)[You can feel the tender love in each one.](else-if: $met_nure is true)[Now that you know the nure onna’s story, you see them in a new light.](else:)[Perhaps a mourning parent wants to be sure their lost loved one reaches paradise.]</p> (if: $nure_ink is false)[<p>Right at the edge of the rapids, an old-fashioned ramune bottle lies on its side in the dirt. The splashing of the river has half-filled it with ink.</p>] <p>(if: $nure_complete is true)[Masami’s mother is here, clutching the book you gave her. She gives you a tearful, tenuous smile.](else:) [(if: $met_nure is false)[A woman](else:)[The nure onna] is here, brushing her hair in the inky water of the river.]</p> (if: $nure_ink is false)[<p>(link: "Pick up the ramune bottle.")[(set: $nure_ink to true)(set: $ink to it + 3)You carefully pick up the ramune bottle, making sure not to spill a drop of ink as you place it in your bag.]</p>] (if: $nure_complete is false)[ <p> (if: $met_nure is false)[ [[Speak to the woman.->nure onna]] ] (else:)[ [[Speak to the nure onna.->nure onna]] ] </p> ] <p>[[Return to the bridge path.->south river]]</p> }{ <p>The path here is close to the river that runs through the town. On the opposite shore, you can see the field where Old Willow pulled you from the water.</p> <p>To the north along the riverbank is a grand wooden building with a sign in front reading <i>Paper Monkey Ink Springs</i>.</p> <p>Stairs lead down to a small pier next to the river.</p> <p>The path leading back to the village is south-east.</p> <p>[[Enter the ink springs building.->Ink Springs Lobby]]</p> <p>[[Go down the stairs to the pier.->Tea House Pier]]</p> <p>[[Heads towards the village.->north road]]</p> }{ <p>The Zen garden still looks well maintained. A circle of stones rests next to a small pond where a young Ishikawa used to hold his infamous shadow-viewing parties. The shadow of a koi fish swims listlessly in the murky water(if: $taken_helmet is true)[ near the spot where you found the hidden helmet].</p> <p>[[Feed the shadow fish.]]</p> <p>[[Enter the main building.->Samurai Mansion]]</p> }{ (set: $met_shadow to true) <p>“Well met, traveller,” the shadow master says. “And my thanks for helping my sibling, Kuro.<p> <p>“Daisuke and I are far beyond anybody’s help,” the shadow continues. “But you may be able to help Fudemitsu make amends, and fully heal this valley. Will you accept that burden?”</p> (link: "<p>Agree.</p>")[ “I will,” you say. “What do I need to do?”</p> <p>The shadow’s hand makes a tossing motion, and a moment later you hear a thump on the ground at your feet.</p> <p>“Take this book,” the shadow master says. “It will record the stories of those you have helped. If Fudemitsu is ready to atone, these darkened pages will help. If not, well...”</p> (link: "<p>Take the book.</p>")[ (set: $has_shadow_book to true) <p>You pick the book up and wait for the shadow to say more, but when you look back to the cave wall, nothing is there. Nothing at all.</p> <p>Unsettled, you flip through the book the shadow gave you. Its title is <em>Shadow and Self</em>, and $quests_complete of its 11 pages are filled with shadowy writing. You cannot read what it says, but perhaps that does not matter.</p> <p>[[Leave the cave.->cave path]] ] ] }{ <p>The narrow path leads (if: $shrine_completed is 3)[past](else:)[towards] a (if: $shrine_completed < 3)[ruined] shrine here, (if: $shrine_completed is 3)[its freshly-painted red torii gate inviting any who see it to stop by and leave a prayer for the gods.](else-if: $shrine_completed is 2)[its torii gate half-collapsed, and the main building’s roof staved in from years of neglect](else:)[although it must have fallen into ruin long, long ago—only the faint hint of red on the collapsed torii gate gives you any hint of what stood here.]</p> (if: $dream_shrine is false)[ (set: $dream_shrine to true)<p>With the collapsed torii gate blocking your way, you cannot take more than a few steps towards the shrine. Besides, there is surely no point in going further: from what little you can make out of the shrine building proper, it’s little more than a tumble of broken wood and roof tiles.</p> <p>An inscription is carved into a wooden plaque hammered into the ground before the gate: <em>Whosoever wishes to attain peace must placate the gods through the healing of broken dreams.</em></p> <p>Three stylized images of a solar eclipse are carved at the top of the plaque from left to right: a hidden sun with a corona, a half-eclipsed sun, a full and shining sun. Even the carvings look old and worn.</p> ] (else:)[ <p>You look towards the shrine, judging its condition.</p> <p>It looks (if: $shrine_completed is 3)[charming, as though those who live here have kept it well-cleaned for centuries. The torii gate is freshly painted in bright red, and a smooth stone path leads beneath it and past a small shrine building hung with a glimmering bronze gong before climbing towards the mountains](else-if: $shrine_completed is 2)[decrepit. The torii gate stands at a drunken angle, as though it may collapse at any moment, and the main shrine building’s roof is staved in from years of neglect](else:)[dangerous. With the collapsed torii gate blocking your way, you dare not take more than a few steps towards the shrine. Besides, there is surely no point in going further: from what little you can make out of the shrine building proper, it’s little more than a tumble of broken wood and roof tiles].</p> (if: $shrine_completed is 3)[<p>The inscription on the plaque has changed: <em>“I have always imagined that Paradise will be a kind of library.” — Jorge Luis Borges</em></p>](else:)[<p>The inscription carved on the plaque remains the same: <em> Whosoever wishes to attain peace must placate the gods through the healing of broken dreams.</em></p>] <p> Three stylized images of a solar eclipse are carved at the top of the plaque from left to right: a hidden sun with a corona, a half-eclipsed sun, a full and shining sun. (if: $shrine_completed is 0)[ Even the carvings look old and worn.](else:)[The image of the (if: $shrine_completed is 3)[full and shining sun](else-if: $shrine_completed is 2)[half-eclipsed sun](else-if: $shrine_completed is 1)[corona around the hidden sun] has a yellow sheen, as though someone has painted it recently, while the other two are unvarnished wood.</p>] ] (if: $quests_complete > 6)[(if: $shrine_completed < 3)[<p>[[Touch the plaque.->shrine plaque]]</p>]] (else:)[<p>A strange force prevents you from touching the plaque.</p>] (if: $shrine_completed is 3)[<p>[[Take the path east past the shrine.->cave path]]</p>] <p>[[Return to the rice paddy.->dream field]]</p> }{ <p>You reach out and touch the plaque.</p> (if: ($quests_complete-6) is $shrine_completed)[<p>Nothing happens.</p>] (else:)[(if: $quests_complete > 8)[(set: $shrine_completed to 3)] (else:)[(set: $shrine_completed to $quests_complete - 6)]<p>The carved wood gives off a bright yellow flash—so bright you have to look away until it fades. You feel your heart lighten a little bit further.</p>] <p>[[Examine the shrine.->shrine of broken dreams]]</p> }{ <p>South of the village, the mountainous terrain and the river encroach on the path, until only a narrow trail remains. At the end of the trail is a bridge, (if: $bridge_completed is 3)[recently repaired](else-if: $bridge_completed is 2)[in visibly poor condition](else:)[nearly collapsed into the water].</p> <p>Just north of the bridge, the ground slopes down to the water, leading to a cluster of jizō statues at the edge of the riverbank.</p> <p>[[Take the road north.->south village]]</p> <p>[[Approach the statues.->rapids]]</p> <p>[[Approach the bridge.->bridge of dreams]]</p> }{ <p>A small cluster of buildings occupies (if: $natsu_complete is false)[a dusty square at the foot of the village’s main bridge, all of them seemingly unoccupied and in poor repair.](else:)[the square at the foot of the village’s main bridge. Although this place was dusty and disheveled when you first arrived, it’s now bustling thanks to Natsu’s food stall.] (if: $south_village is false)[The only sign of life is a stall in the center of the square, where a young person of ambiguous gender is standing, a despondent look on their face despite the aroma of sugar and oil that surrounds them. Whatever they’ve got in that stall, it smells <em>amazing</em>!(set: $south_village to true)](else:)[(if: $natsu_complete is true)[Natsu gives you a cheerful wave, then gets back to the crowd of customers in front of their stall. (if: $natsu_ninja is false)[(set: $natsu_ninja to true)(set: $ninja to it + 1)<p>One of the customers, you note, is dressed head to toe in tight-fitting black clothing. Could it be...? You blink and rub your eyes, but when you check again the ninja-like figure is gone. Must have been your imagination.</p><p>] ](else-if: $met_natsu is true)[Natsu gives you an expectant look, obviously wondering how your flier delivery is going.](else:)[The food stall attendant looks at you hopefully.] The sweet, savory smell of fried dough makes you drool no matter how many times you pass.]</p> <p>At the north edge of the square, a broad road leads to (if: $main_village is false)[an area of the village that looks better-kept](else:)[the main part of the village]. To the south, the road narrows as it heads out of town.</p> (if: $natsu_complete is false)[<p>[[Approach the food stall.->Natsu]]</p>] <p>[[Take the road to the main part of the village.->main village]]</p> <p>[[Cross the bridge to the east side of the river.->Bridge (east)]]</p> <p>[[Take the road south.->south river]]</p> }{ (if: $southeast is false)[ (set: $southeast to true)<p>Stepping carefully, you cross the newly repaired bridge of small dreams. It is as stable and sturdy beneath your feet as any other bridge—if you hadn’t seen it in ruins with your own eyes, you might believe it had always been this well-kept.</p> ] (else:)[ <p>You arrive at the eastern side of the bridge of small dreams.</p> ] <p>A narrow path leads east along a small branch of the river of ink, (if: $quests_complete > 8)[its edges clean and neat.](else-if: $quests_complete > 6)[although it looks a little worse for wear](else:)[overgrown with weeds. It appears nobody but you has come this way in a long, long time.]</p> <p>[[Follow the path.->dream field]]</p> <p>[[Cross the bridge back to town.->bridge of dreams]]</p> }{ <!--track if startup has run--> (set: $startup to false) <!--track playlist creation, volume and music master setting--> (newplaylist: 'main', 'gust', 'midnight', 'mountains', 'secret') (masteraudio: 'volume', 0.3) (unless: $music_on is false)[ <!-- necessary to stop music turning back on after player turns it off during pre-game settings or when starting a new game--> (set: $music_on to true) ] <!-- dark/light mode --> (unless: $dark_mode is false)[ <!-- necessary to stop dark mode turning back on after player turns it off during pre-game settings or when starting a new game--> (set: $dark_mode to true) ] <!-- images setting --> (unless: $images_on is false)[ <!-- necessary to stop images turning back on after player turns them off during pre-game settings or when starting a new game--> (set: $images_on to true) ] <!-- Macros --> (set: $make_book to (macro: str-type _unused, [ (set: $books to it + 1) (set: $paper to it - 1) (set: $ink to it - 1) (go-to: "Inventory") (output: "") ])) (set: $unmake_book to (macro: str-type _unused, [ (set: $books to it - 1) (set: $paper to it + 1) (set: $ink to it + 1) (go-to: "Inventory") (output: "") ])) <!-- intro variables--> (set: $struggle to 0) <!-- Set location visited flags --> (set: $rivers_edge to false) (set: $path_one to false) (set: $mansion_entrance to false) (set: $bridge_east to false) (set: $bridge_west to false) (set: $main_village to false) (set: $south_village to false) (set: $pawn_shop to false) (set: $museum_disappointing to false) (set: $inn to false) (set: $monument_poets to false) (set: $ink_springs to false) (set: $drifting_tea_house_platform to false) (set: $drifting_tea_house to false) (set: $dream_bridge to false) (set: $rapids to false) (set: $southeast to false) (set: $dream_field to false) (set: $dream_shrine to false) (set: $cave to false) <!-- Set quest completion flags --> (set: $quests_complete to 0) <!-- Track ninja --> (set: $ninja to 0) (set: $natsu_ninja to false) (set: $closet_ninja to false) (set: $pawn_ninja to false) (set: $leaf_ninja to false) (set: $monument_ninja to false) (set: $cave_ninja to false) (set: $pond_ninja to false) (set: $tea_ninja to false) <!-- Guard quest --> (set: $guard_complete to false) <!-- Dou Natsu --> (set: $met_natsu to false) (set: $natsu_complete to false) (set: $fliers to 0) (set: $inn_flier to false) (set: $museum_flier to false) (set: $teahouse_flier to false) (set: $onsen_flier to false) (set: $pawn_flier to false) (set: $monument_flier to false) <!-- how much of the south shore quests are completed --> (set: $bridge_completed to 1) (set: $field_completed to 1) (set: $shrine_completed to 1) <!-- Set inventory flags --> (set: $ink to 3) (set: $paper to 3) <!-- dessert book --> (set: $has_doughnut to false) (set: $used_doughnut to false) (set: $has_dessert_book to false) <!-- ceremonial sword --> (set: $taken_sword to false) (set: $has_sword to false) (set: $used_sword to false) (set: $has_sword_book to false) <!-- helmet --> (set: $taken_helmet to false) (set: $has_helmet to false) (set: $used_helmet to false) (set: $has_helmet_book to false) <!--museum of disappointing hands--> (set: $talked_to_museum_painter to false) (set: $museum_painter_complete to false) (set: $taken_austen_essay to false) (set: $has_austen_essay to false) (set: $used_austen_essay to false) (set: $has_austen_book to false) (set: $taken_weird_ink_blot to false) (set: $has_weird_ink_blot to false) (set: $used_weird_ink_blot to false) (set: $has_unreadable_book to false) (set: $searched_museum_bookshelf to false) (set: $taken_origami_paper to false) (set: $has_origami_paper to false) (set: $used_origami_paper to false) (set: $has_joker to false) (set: $used_joker to false) (set: $has_joke_book to false) <!--drifting tea house--> (set: $talked_to_insect_composer to false) (set: $insect_composer_complete to false) (set: $has_beetle_sound_book to false) (set: $taken_green_tea to false) (set: $has_green_tea to false) (set: $used_green_tea to false) (set: $taken_beetle to false) (set: $has_beetle to false) (set: $used_beetle to false) (set: $has_bonsai to false) (set: $used_bonsai to false) <!--poet monument --> (set: $talked_to_puppet to false) (set: $puppet_complete to false) (set: $has_bonsai_poetry_book to false) (set: $taken_record to false) (set: $has_record to false) (set: $used_record to false) (set: $taken_gramophone to false) (set: $has_gramophone to false) (set: $used_gramophone to false) <!--hot springs--> (set: $monk_complete to false) (set: $talked_to_monk to false) (set: $talked_to_monkey to false) (set: $monkey_complete to false) (set: $has_folding_happiness_book to false) (set: $waterfall_tap_closed to false) (set: $taken_bottle_spring_ink to false) (set: $taken_world_map to false) (set: $has_world_map to false) (set: $used_world_map to false) (set: $has_origami_poem to false) (set: $used_origami_poem to false) (set: $has_microscope to false) (set: $used_microscope to false) <!-- rapids--> (set: $met_nure to false) (set: $nure_complete to false) (set: $has_comb to false) (set: $used_comb to false) (set: $nure_ink to false) <!-- pawnshop--> (set: $in_pawn to false) (set: $pawn_thing to "") (set: $random_pawn to 0) <!-- pawnbroker--> (set: $met_pawn to false) (set: $pawn_complete to false) (set: $has_antidote to false) (set: $used_antidote to false) (set: $has_antidote_book to false) <!-- book poisoner--> (set: $met_poisoner to false) (set: $poisoner_complete to false) (set: $has_lantern to false) <!-- inn--> (set: $upstairs to false) (set: $inn_fail to false) (set: $met_maid to false) (set: $maid_complete to false) (set: $thing to "") (set: $thing_num to 0) (set: $thing_count to 0) (set: $is_helping to false) (set: $random_supply to 0) (set: $supplies_found to 0) (set: $bucket_found to false) (set: $mop_found to false) (set: $rag_found to false) (set: $duster_found to false) <!-- innkeeper--> (set: $met_keeper to false) (set: $innkeeper_complete to false) <!-- medicine seller --> (set: $met_medicine to false) (set: $medicine_complete to false) (set: $has_top to false) (set: $used_top to false) (set: $has_lullaby_book to false) <!-- forest shrine paper--> (set: $has_leaf to false) (set: $needs_leaf to false) (set: $shrine_paper_taken to false) <!-- shadow samurai--> (set: $met_shadow to false) (set: $has_shadow_book to false) }{ (set: _random_thing to (random: 1,20)) (if: _random_thing is 1)[<p>You rummage around in the closet and find a map to the Great Underground Empire.</p>] (else-if: _random_thing is 2)[<p>You rummage around in the closet and find a half-eaten onigiri. Ick!</p>] (else-if: _random_thing is 3)[<p>You rummage around in the closet and find a circuit tester.</p>] (else-if: _random_thing is 4)[<p>You rummage around in the closet and find some low-quality copper.</p>] (else-if: _random_thing is 5)[<p>You rummage around in the closet and find a stack of case notes.</p>] (else-if: _random_thing is 6)[<p>You rummage around in the closet and find a scrap of coalsilk fabric.</p>] (else-if: _random_thing is 7)[<p>You rummage around in the closet and find a vial of Red 40.</p>] (else-if: _random_thing is 8)[<p>You rummage around in the closet and find a small lead figure of a cat dressed up as Tokugawa Ieyasu.</p>] (else-if: _random_thing is 9)[<p>You rummage around in the closet and find a chunk of gold.</p>] (else-if: _random_thing is 10)[<p>You rummage around in the closet and find ... holy crap, what <em>is</em> this thing?!</p>] (else-if: _random_thing is 11)[<p>You rummage around in the closet and find a sheet of crumpled note paper with the words <em>xyzzy</em>, <em>plugh</em>, and <em>plover</em> jotted down in a shaky hand.</p>] (else-if: _random_thing is 12)[<p>You rummage around in the closet and find a sonic wrench.</p>] (else-if: _random_thing is 13)[<p>You rummage around in the closet and find an ancient-looking collar.</p>] (else-if: _random_thing is 14)[<p>You rummage around in the closet and find a thoroughly jammed typewriter.</p>] (else-if: _random_thing is 15)[<p>You rummage around in the closet and find a chunk of salt-bleached wood.</p>] (else-if: _random_thing is 16)[<p>You rummage around in the closet and find a styrofoam cup.</p>] (else-if: _random_thing is 17)[<p>You rummage around in the closet and find a small lead figure of a rotund dog dressed up as Oda Nobunaga.</p>] (else-if: _random_thing is 18)[<p>You rummage around in the closet and find the unsettling space where a ninja should be.</p>] (else-if: _random_thing is 19)[<p>You rummage around in the closet and find a dazzling diamond.</p>] (else: )[<p>You rummage around in the closet and find... honestly, you’re not even remotely sure <em>what</em> this is.</p>] }{ |hints>[ <p>Old Willow’s branches rustle quietly in the breeze. You shouldn’t disturb them unless you need help.</p> <!--hints for guard quest--> (unless: $guard_complete is true)[ (if: $bridge_east is false)[ (link: "<p>Ask what to do next.</p>")[ <!--initial hint--> (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow where to go now.</p> <p>Their voice blows through the branches of the tree. “You should head south and see what you can find.”</p> ] ] ] (else:)[ (link: "<p>Ask about crossing the bridge.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with crossing the bridge.</p> <p>Their voice blows through the branches of the tree. (if: $has_helmet_book is true)[“The guard likes samurai battles.”] (else-if: $has_helmet is true)[“That samurai helmet must have many stories to tell.”] (else-if: $mansion_entrance is true)[“The samurai of old often enjoyed feeding the koi.”] (else:)[“You should explore the old Ishikawa mansion.”] </p> ] ] ] ] <!-- Hints for Paper and Ink --> (if: $paper is 0 and ($quests_complete + $books) < 11)[ (link: "<p>Ask where to get more paper.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow where to get more paper.</p> (if: $shrine_paper_taken is false)[<p>“Perhaps you should explore the forest path.”</p>] (else-if: $maid_complete is false)[<p>“Have you tried the inn?”</p>] (else-if: $got_pawn_paper is false)[<p>“I believe the pawnbroker has some.”</p>] (else:)[ (if: $books > 0)[<p>“For now, why don’t you unmake a book?”</p>] (else:)[<p>“I’m not sure how you managed it, but you’ve used all the paper. Here, use this to get yourself unstuck.”</p> <p>A single piece of cream-coloured paper drifts down from their branches.</p>(set: $paper to it + 1)] ] ] ] ] (if: $ink is 0 and ($quests_complete + $books) < 11)[ (link: "<p>Ask where to get more ink.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow how to get more ink.</p> (if: $nure_ink is false)[<p>“Have you checked other places where the path meets the river?”</P>] (else-if: $taken_bottle_spring_ink is false)[<p>“The river is not the only source of ink in the valley. Have you tried looking in other places that produce it?”</p>] (else:)[<p>“You can get some at the river’s edge. Just dip that ceramic bottle right in!”</p>] ] ] ] <!-- Hints for ninja --> (if: $ninja > 0 and $ninja < 8)[ (link: "<p>Ask about the ninja.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>“What’s up with the ninja?” you ask Old Willow.</p> <p>Their branches shake mischievously. “What ninja? I haven’t seen any.</p> <p>“But I <em>especially</em> haven’t seen any (if: $natsu_ninja is false)[near Natsu’s food stall, ] (else-if: $closet_ninja is false)[in the inn’s supply closet, ] (else-if: $pawn_ninja is false)[in the pawnshop, ] (else-if: $leaf_ninja is false)[on the forest trail, ] (else-if: $monument_ninja is false)[near the Monument to Exuberant Poets, ] (else-if: $cave_ninja is false)[in the cave of shadows, ] (else-if: $tea_ninja is false)[under the lily pads, ] (else:)[in the Ishikawa mansion’s pond, ] if you know what I mean.”</p> ] ] ] <!-- Hints for Natsu --> (if: $met_natsu is true and $natsu_complete is false)[ (link: "<p>Ask about Natsu.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow about Natsu’s food stall.</p> <p>The wind blows through their branches. “If you can’t remember where the fliers go, you should speak to Natsu again. They can remind you.”</p> ] ] ] <!-- Hints for the Nure Onna --> (if: $met_nure is true and $nure_complete is false)[ (link: "<p>Ask about the nure onna.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with the nure onna.</p> <p>Their voice blows through the branches of the tree. (if: $has_lullaby_book is true)[“That book of lullabies should help.”] (else-if: $has_gramophone is true and $has_top is true)[“She is mourning a lost child and humming a tune. What items do you have which might relate to that?”] (else-if: $has_gramophone is false)[“Perhaps you can find something useful at the Monument to Exuberant Poets.”] (else:)[ (if: $innkeeper_complete is false)[“Perhaps you can find something useful on the inn’s second story.”] (else-if: $met_medicine is false)[“The medicine seller’s top might be just what you need.”] (else:)[“Perhaps you should explore the inn’s second story.”] ] </p> ] ] ] <!-- Hints for museum painter --> (if: $talked_to_museum_painter is true and $museum_painter_complete is false)[ (link: "<p>Ask about the museum painter.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with the museum painter.</p> <p>The wind blows through their branches. (if: $has_unreadable_book is true)[ “She might appreciate that book on reading the unreadable.” ] (else-if: $has_weird_ink_blot and $has_microscope is true)[ “That ink blot and microscope might create an interesting book.” ] (else-if: $has_weird_ink_blot is false)[ “Maybe there’s something you can use in the Museum.” ] (else:)[ “You should see what you can find in the Ink Springs.” ] </p>] ] ] <!-- Hints for the insect composer --> (if: $talked_to_insect_composer is true and $insect_composer_complete is false)[ (link: "<p>Ask about the insect composer.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with the insect composer.</p> <p>The wind blows through their branches. (if: $has_beetle_sound_book is true)[ “I’m sure the composer would appreciate that book of beetle sounds.” ] (else-if: $has_beetle is true and $has_record is true)[ “Perhaps that beetle and scratched record would be of use.” ] (else-if: $has_beetle is true)[ “Have you visited the Monument to Exuberant Poets yet?” ] (else:)[ “Perhaps you can find an insect to go with that scratched record of yours.” ]</p> ] ] ] <!-- Hints for ronin puppet --> (if: $talked_to_puppet is true and $puppet_complete is false)[ (link: "<p>Ask about the ronin puppet.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with the insect composer.</p> <p>The wind blows through their branches. (if: $has_bonsai_book is true)[ “That book on bonsai poetry should be just the thing.” ] (else-if: $has_origami_poem is true and $has_bonsai is true)[ “I bet you could make an interesting book with that bonsai and that origami poem.” ] (else-if: $has_origami_poem is true)[ “Have you visited the tea house yet?” ] (else:)[ “Perhaps someone in the Ink Springs can help.” ]</p> ] ] ] <!-- Hints for monk --> (if: $talked_to_monk is true and $monk_complete is false)[ (link: "<p>Ask about the monk.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with the monk.</p> <p>The wind blows through their branches. (if: $has_austen_book is true)[ “Perhaps the monk would like that comedy of manners you’ve created.” ] (else-if: $has_austen_essay is true)[ “I have always found the works of Jane Austen to be quite diverting.” ] (else:)[ “Perhaps you can find something useful in the Museum of Disappointing Hands.” ] </p> ] ] ] <!-- Hints for monkey --> (if: $talked_to_monkey is true and $monkey_complete is false)[ (link: "<p>Ask about the origami monkey.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with the origami monkey.</p> <p>The wind blows through their branches. (if: $has_folding_happiness_book is true)[ “I’m sure that book about folding things would be appropriate for a creature made of paper.” ] (else-if: $has_origami_paper is true and $has_town_map is true)[ “Many of those who seek books are lost, in their own unique way. Does this help you unfold the solution?” ] (else-if: $has_origami_paper is true)[ “Have you explored the Ink Springs Lobby?” ] (else:)[ “Perhaps you can find something useful in the Museum of Disappointing Hands.” ] </p> ] ] ] <!-- Hints for pawnbroker --> (if: $met_pawn is true and $pawn_complete is false)[ (link: "<p>Ask about the pawnbroker.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with the pawnbroker.</p> <p>The wind blows through their branches. (if: $has_sword_book is true)[“That book on antiques might help him with his problem.”] (else-if: $has_sword is true and $has_comb is true)[“He seems to struggle with sorting the treasure from the trash. Do you have anything valuable that might help?”] (else-if: $has_sword is false)[“I seem to recall a valuable antique sword in the Ishikawa mansion. Perhaps that might help.”] (else:)[ (if: $met_nure is true)[“Perhaps the nure onna will give you her comb if you help her.”] (else:)[“Perhaps you can find someone else with an item as valuable as that sword.”] ] </p> ] ] ] <!-- Hints for poisoner --> (if: $met_poisoner is true and $poisoner_complete is false)[ (link: "<p>Ask about Ishikawa Kuro.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask Old Willow for help with Ishikawa Kuro.</p> <p>The wind blows through their branches. (if: $has_antidote_book is true)[“That book on antidotes sounds relevant.”] (else-if: $has_antidote is true)[“They regret their poisoning ways. Perhaps an antidote will help.”] (else:)[“The pawnbroker has what you need.”] </p> ] ] ] <!-- Hints for maid --> (if: $met_maid is true and $maid_complete is false)[ (link: "<p>Ask about the maid.</p>")[ (show:?hint_return) (replace: ?hints)[ (set: _maid_left to (4- $supplies_found)) <p>You ask how to get upstairs in the inn.</p> <p>The wind blows through Old Willow’s branches, revealing their voice. (if: $supplies_found is 0)[“That supply closet has all sorts of things in it a maid might need... if you can find them.”](else:)[“Keep digging through that supply closet! You only need _maid_left more item(if: $supplies_found < 3)[s].”] </p> ] ] ] <!-- Hints for getting upstairs in the inn --> (if: $inn is false and $inn_fail is true)[ (link: "<p>Ask about how to get upstairs in the inn.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask how to get upstairs in the inn.</p> <p>The wind blows through Old Willow’s branches, revealing their voice. “You’ll need to satisfy the innkeeper first. (if: $met_keeper is false)[Speaking to her would be a good idea.]”</p> ] ] ] <!-- Hints for innkeeper --> (if: $met_keeper is true and $innkeeper_complete is false)[ (link: "<p>Ask about the innkeeper.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask about the innkeeper.</p> <p>The wind blows through Old Willow’s branches, revealing their voice. (if: $has_dessert_book is true)[“That book on desserts sounds like something she would like.”] (else-if: $has_green_tea is true and $has_doughnut is true)[“She wants something sweet to eat and a drink. Sound like some things you have?”] (else-if: $has_green_tea is false)[“Perhaps you can find something useful in the tea house.”] (else:)[ (if: $met_natsu is false)[“Perhaps you should speak to the owner of the food stall in the town square.”] (else:)[“Perhaps Natsu will give you something useful once you have helped them.”] ] </p> ] ] ] <!-- Hints for medicine seller --> (if: $met_medicine is true and $medicine_complete is false)[ (link: "<p>Ask about the medicine seller.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask about the medicine seller.</p> <p>The wind blows through Old Willow’s branches, revealing their voice. (if: $has_joke_book is true)[“Perhaps some jokes would cheer him up.”] (else-if: $has_joker is true)[“Maybe you can do something with that fossilized joker.”] (else:)[ (if: $talked_to_museum_painter is true)[“Perhaps the painter can give you what you need.”] (else-if: $museum_disappointing is true)[“Perhaps someone in the Museum of Disappointing Hands can help.”] (else:)[“Perhaps you should visit the Museum of Disappointing Hands.”] ] </p> ] ] ] <!-- Hints for dream bridge --> (if: $dream_bridge is true and $bridge_completed < 3)[ (link: "<p>Ask about crossing the bridge south of town.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask how to cross the bridge south of town.</p> <p>The wind blows through Old Willow’s leaves. "(if: $quests_completed is 3)[Try touching the plaque.](else-if: $quests_completed > 1)[Perhaps you should help one more person.](else:)[Have you tried helping people around town?]”</p> ] ] ] <!-- Hints for dream field --> (if: $dream_field is true and $field_completed < 3)[ (link: "<p>Ask about the field of fallow dreams.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask about the field of fallow dreams.</p> <p>The wind blows through Old Willow’s leaves. "(if: $quests_completed is 6)[Try touching the plaque.](else-if: $quests_completed > 5)[Perhaps you should help one more person.](else:)[Have you tried helping people around town?]”</p> ] ] ] <!-- Hints for dream shrine --> (if: $dream_shrine is true and $shrine_completed < 3)[ (link: "<p>Ask about the shrine of broken dreams.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask about the shrine of broken dreams.</p> <p>The wind blows through Old Willow’s leaves. "(if: $quests_completed is 9)[Try touching the plaque.](else-if: $quests_completed > 8)[Perhaps you should help one more person.](else:)[Have you tried helping people around town?]”</p> ] ] ] <!-- Hints for endgame --> (if: $quests_complete > 8)[ (link: "<p>Ask what to do next.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask what to do now that you’ve given (if: $quests_complete < 11)[so many people](else:)[everybody] the books they need.</p> <p>The wind blows through Old Willow’s leaves. " (if: $dream_bridge is false)[Have you visited the Bridge of Small Dreams south of town?] (else-if: $dream_field is false)[Have you explored the Field of Fallow Dreams across the Bridge of Small Dreams?] (else-if: $dream_shrine is false)[Have you crossed the Field of Fallow Dreams to the Shrine of Broken Dreams?] (else-if: $cave is false)[Have you ventured beyond the Shrine of Broken Dreams and into the Cave of Shadows?] (else-if: $has_lantern is false)[You need some sort of light to pass through the Cave of Shadows.] (else-if: $has_shadow_book is false)[You should try speaking to the Shadow Master in the Cave of Shadows.] (else:)[Is there, perhaps, something you would like to give me?]”</p> ] ] ] <!-- Hints for shadow cave --> (if: $cave is true and $has_shadow_book is false)[ (link: "<p>Ask about the Cave of Shadows.</p>")[ (show:?hint_return) (replace: ?hints)[ <p>You ask how to pass through the cave of shadows.</p> <p>The wind blows through Old Willow’s leaves. "(if: $met_poisoner is false)[Perhaps you can find something useful in the pawnshop.](else:)[Kuro should be able to help.]”</p> ] ] ] <!-- return to main --> ] |hint_return)[ <p>(link: "Ask for help with something else.")[ (go-to: "willow hints") ] ] <p>[[Return to the River’s Edge.->River Edge]]</p> }