{ (set: $test_mode to false) (set: $menu_quit to false) (set: $menu_fullscreen to true) (set: $currentGameDate to "") (set: $think_time to 0) (set: $examine_time to 0) (if: $memory is 100 and $game_phase is "There's something I can't see...")[(set: $actionSequence to 0)(set: $game_phase to "Searching for her")(go-to: "I Can See")] (if: $initial_load is "loaded")[ (set: $previous_passage to $currentPassage) (set: $currentPassage to (passage:)'s name) (if: $ReturnFlag is "RETURNING")[ <script> loadPermSettings(); loadAchieve(); loadPuzzles(); savegame("MenuSave","currentPassage"); </script> ](else:)[ <script> var currentPassage = geth("currentPassage"); if(!currentPassage.includes("Menu") && !currentPassage.includes("Transform") && !currentPassage.includes("Drink")){ saveraw("inv_commands",""); } </script> ] ] }{<div style="position: fixed; bottom: 5px; right: 5px; width: 100%; text-align: right; font-style: italic; color: #99a1a9;">Trigger Warnings: Loss, Nihilism, Self-harm (mild), Eating disorder (implied)</div><script>hideHUD("skip-intro");</script><div class="menu_right"><div id="belowTitle"><div>The Absence of</div> <div>Miriam Lane</div></div> (if: $print_title is true)[(set: $print_title to false)]<span class="menu_items">(if: $CanResume is true)[ <div class="menu_spacing">|return_to_game>[Resume Game]</div>] <div class="menu_spacing">|Restart>[New Game]</div> <div class="menu_spacing">|menu_restore>[Save / Load]</div> <div class="menu_spacing">|menu_options>[Options]</div> <div class="menu_spacing">|menu_othergames>[Other Games]</div> </div> </span> (if: $noMenu is false)[(set: $noMenu to true)(set: $SkipSave to true)] <style> #belowTitle { font-size: 80px; margin: 50px; text-align: right; } tw-story { margin: 0 auto 0 auto; } tw-passage { text-align: center; } tw-passage { background-color: transparent !important; border: none !important; } tw-story { margin: 0; padding: 0; } tw-passage { text-align: left; } .menu_items { position: relative; right: 10%; top: 0px; text-align: right; } .menu_spacing { margin-bottom: 30px; } .menu_spacing .enchantment-link {font-size: 65px;} html, body { background: black !important; color: white !important; } #spider-area{ opacity: 1; position: fixed; top: 0; left: 0; height: 100%; width: 100%; z-index: 2; background-repeat: no-repeat; background-attachment: fixed; background-position: left bottom; background-size: auto 100%; background-image: url("./menu/menuAbsence4.jpg"); } </style> (if: $menu_fullscreen is true)[(if: $Fullscreen is true)[<script>setFullscreen("ON");</script>](else:)[ <script>setFullscreen("OFF");</script> ] ] }(display: "menu_menu") <div class="menu_frame"></div>{ (set: $selected_item to "") <script> seth("ExportMode",false); function nextPage(){ var savePage = parseInt(getHarloweVariable("SavePage"), 10)+10; setHarloweVariable("SavePage",savePage); saveraw("SavePage",savePage); refreshSaveDisplay(); } function prevPage(){ var savePage = parseInt(getHarloweVariable("SavePage"), 10)-10; setHarloweVariable("SavePage",savePage); saveraw("SavePage",savePage); refreshSaveDisplay(); } function displayQuicksave() { var quicksaveName = getQuicksave(); var ExportMode = geth("ExportMode"); var to_append = "<b>Quicksave:</b> "; if(quicksaveName == "DELETED") to_append += "Empty"; else { to_append += quicksaveName; if(ExportMode) to_append += " <a id='loadquick' onclick='exportGame(this)' class='select-item'>Export</a>"; else to_append += " <a id='loadquick' onclick='loadQuicksave()' class='select-item'>Load</a> "; } to_append += "<br><span class='explain'>Press Ctrl-S to save and Ctrl-L to load during game.</span>"; to_append += " <br> "; $(".menu_frame").append(to_append); } function displayAutosave() { var autosaveName = getAutosave(); var ExportMode = geth("ExportMode"); if(autosaveName != "DELETED"){ var to_append = "<b>Autosave:</b> " + autosaveName; if(ExportMode) to_append += " <a id='loadauto' onclick='exportGame(this)' class='select-item'>Export</a>"; else to_append += " <a id='loadauto' onclick='loadAutosave()' class='select-item'>Load</a> "; to_append += " <br><br> "; $(".menu_frame").append(to_append); } } function displayExportMode() { var ExportMode = geth("ExportMode"); var to_append = "<div style='position: fixed; left: 5px; bottom: 5px;'>Export Mode: "; if(ExportMode) to_append += "<a id='export-text' onclick='toggleExport()' class='select-item'>ON</a> "; else to_append += "<a id='export-text' onclick='toggleExport()' class='select-item'>OFF</a> "; to_append += "</div>"; $(".menu_frame").append(to_append); } function toggleExport(e){ var ExportMode = geth("ExportMode"); if(ExportMode) seth("ExportMode",false); else seth("ExportMode",true); refreshSaveDisplay(); } function refreshSaveDisplay(){ $(".menu_frame").html(""); displayQuicksave(); displayAutosave(); displaySaves(); displayExportMode(); } function displaySaves() { var seaSaves = getSeaSaves(); console.log("displaySaves"); var seaDates = getSeaDates(); var ExportMode = geth("ExportMode"); var min = parseInt(getHarloweVariable("SavePage"), 10); if(isEmpty(min) || isNaN(min)) min = 1; var max = min + 10; for (var i = min; i < max; i++) { var to_append = ""; to_append += "<b>Slot "+i+":</b> "; if(seaSaves[i] == "DELETED"){ to_append += "<i>Empty</i>"; var menuSave = getHarloweVariable("MenuSave"); if(ExportMode) to_append += " <input type='file' id='file"+i+"' name='importfile' onchange='importGame(event)' />"; else if(menuSave != "DELETED") to_append += " <a id='save"+i+"' onclick='saveGame(this)' class='select-item'>Save</a>"; } else{ if(ExportMode) to_append += seaSaves[i] + " <a id='load"+i+"' onclick='exportGame(this)' class='select-item'>Export</a> "; else to_append += seaSaves[i] + " <a id='load"+i+"' onclick='startloadGame(this)' class='select-item'>Load</a> <a id='saveover"+i+"' onclick='saveoverGame(this)' class='select-item'>Save</a> <a id='delete"+i+"' onclick='deleteGame(this)' class='select-item'>Delete</a> <a id='confirmload"+i+"' onclick='confirmLoadGame(this)' class='select-item' style='display: none; color: green;'>Confirm Load</a> <a id='confirmdelete"+i+"' onclick='confirmDeleteGame(this)' class='select-item' style='display: none; color: green;'>Confirm Delete</a> <a id='confirmsaveover"+i+"' onclick='confirmSaveOver(this)' class='select-item' style='display: none; color: green;'>Confirm Save</a> <a id='canceldelete"+i+"' onclick='cancelDeleteGame(this)' class='select-item' style='display: none; color: red;'>Cancel</a> "; } if(seaDates[i] != "" && seaSaves[i] != "DELETED") to_append += "<br><span class='explain gray small-text'>"+seaDates[i]+"</span> "; else to_append += " <br> "; to_append += " <br> "; $(".menu_frame").append(to_append); } var to_append = ""; if(min != 1) to_append += "<a onclick='prevPage()' class='select-item go_west'>Previous Page</a>"; if(min != 91) to_append += "<a onclick='nextPage()' class='select-item go_east'>Next Page</a>"; $(".menu_frame").append(to_append); } function saveGame(e){ var num = e.id.replace("save",""); replaceSaveWithMenuSave("Save "+num); saveraw("Save "+num+"Inv",getraw("inv_commands")); refreshSaveDisplay(); } function loadAutosave(){ saveraw("ReturnFlag","RETURNING"); saveraw("inv_commands",getraw("AutoInv")); loadgame("Autosave"); } function loadQuicksave(){ saveraw("ReturnFlag","RETURNING"); saveraw("inv_commands",getraw("QuickInv")); loadgame("Quicksave"); } function exportGame(e){ var num = e.id.replace("load",""); var title = "Save " + num; var exportTitle = "Export " + num; if(num == "quick") title = "Quicksave"; if(num == "auto") title = "Autosave"; var display_title = localStorage.getItem(storagePrefix("Saved Game Filename") + title); if(display_title.includes("-")) display_title = display_title.substring(display_title.indexOf("-")+1); var data = localStorage.getItem(storagePrefix("Saved Game") + title); download(exportTitle+"-"+display_title+".sav",encodeSave(data)); refreshSaveDisplay(); } function importGame(evt) { var file = evt.target.files[0]; var reader = new FileReader(); reader.onload = (function(theFile) { return function(e) { var num = evt.target.id.replace("file",""); var slotTitle = "Save "+num; var name = theFile.name.replace(".sav",""); try { localStorage.setItem(storagePrefix("Saved Game") + slotTitle, decodeSave(e.target.result)); localStorage.setItem(storagePrefix("Saved Game Filename") + slotTitle, name); localStorage.setItem("saveFlag", "save"); } catch (e) { alert("error saving game"); } refreshSaveDisplay(); }; })(file); reader.readAsText(file); } function encodeSave(savecontent){ savecontent = [... savecontent ].map(char => encrypt(char,3)).join(''); savecontent = encodeURIComponent(savecontent); return savecontent; } function decodeSave(savecontent){ savecontent = decodeURIComponent(savecontent); savecontent = [... savecontent ].map(char => decrypt(char,3)).join(''); return savecontent; } function download(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); } function startloadGame(e){ var num = e.id.replace("load",""); $("#load"+num).css("display","none"); $("#saveover"+num).css("display","none"); $("#delete"+num).css("display","none"); $("#confirmload"+num).css("display","inline"); $("#canceldelete"+num).css("display","inline"); } function deleteGame(e){ var num = e.id.replace("delete",""); $("#load"+num).css("display","none"); $("#saveover"+num).css("display","none"); $("#delete"+num).css("display","none"); $("#confirmdelete"+num).css("display","inline"); $("#canceldelete"+num).css("display","inline"); } function saveoverGame(e){ var num = e.id.replace("saveover",""); $("#load"+num).css("display","none"); $("#saveover"+num).css("display","none"); $("#delete"+num).css("display","none"); $("#confirmsaveover"+num).css("display","inline"); $("#canceldelete"+num).css("display","inline"); } function confirmLoadGame(e){ var num = e.id.replace("confirmload",""); saveraw("ReturnFlag","RETURNING"); saveraw("inv_commands",getraw("Save "+num+"Inv")); loadgame("Save " + num); } function confirmDeleteGame(e){ var num = e.id.replace("confirmdelete",""); savegame("Save "+num,"DELETED"); refreshSaveDisplay(); } function confirmSaveOver(e){ var num = e.id.replace("confirmsaveover",""); replaceSaveWithMenuSave("Save "+num); saveraw("Save "+num+"Inv",getraw("inv_commands")); refreshSaveDisplay(); } function cancelDeleteGame(e){ var num = e.id.replace("canceldelete",""); $("#delete"+num).css("display","inline"); $("#saveover"+num).css("display","inline"); $("#load"+num).css("display","inline"); $("#confirmdelete"+num).css("display","none"); $("#canceldelete"+num).css("display","none"); $("#confirmsaveover"+num).css("display","none"); $("#confirmload"+num).css("display","none"); } var alphabet = [ 'A','B','C','D','E','F', 'G','H','I','J','K','L', 'M','N','O','P','Q','R', 'S','T','U','V','W','X', 'Y','Z','a','b','c','d', 'e','f','g','h','i','j', 'k','l','m','n','o','p', 'q','r','s','t','u','v', 'w','x','y','z' ]; function decrypt(char,shift) { if (alphabet.includes(char)) { var position = alphabet.indexOf(char); var newPosition = (position - shift); if(newPosition >= alphabet.length) newPosition = newPosition - alphabet.length; if(newPosition < 0) newPosition = newPosition + alphabet.length; return alphabet[newPosition] } else { return char } } function encrypt(char,shift) { if (alphabet.includes(char)) { var position = alphabet.indexOf(char); var newPosition = (position + shift); if(newPosition >= alphabet.length) newPosition = newPosition - alphabet.length; if(newPosition < 0) newPosition = newPosition + alphabet.length; return alphabet[newPosition] } else { return char } } refreshSaveDisplay(); </script> <style> #speed-run-toggle {visibility: hidden; } </style> (set: $display_resume to true) } { (set: $prinn_name to "<span class='speech'>Mr. Lane:</span> ") (set: $miriam_name to "<span class='speech'>Miriam:</span> ") (set: $jane_name to "<span class='speech'>Jane:</span> ") (set: $title to "The Absence of Miriam Lane") (set: $game_values_set to true) (set: $sequence to 0) (set: $actionSequence to 0) (set: $custom_colors to "") (set: $background_image to "") (set: $background_ext to "") (set: $autosavePassage to "") (set: $memory to 0) (set: $memory_display to false) (set: $memoryText to "I'm trying to remember someone...") (set: $health to 100) (set: $health_display to false) (set: $self to 100) (set: $self_display to false) (set: $area_picture to "") (set: $hide_hud to false) (set: $navigation_display to false) (set: $button_examine_display to false) (set: $button_think_display to false) (set: $button_items_display to false) (set: $button_notes_display to false) (set: $location_name to "") (set: $north_text to "") (set: $west_text to "") (set: $east_text to "") (set: $south_text to "") (set: $examine_time to 0) (set: $think_time to 0) (set: $item_time to 0) (set: $basePassage to "") (set: $returnFromExaminePassage to "") (set: $items to (a:)) (set: $thoughts to (a:)) }{<span id="footer-start"></span> (set: $in_form to false) (click: ?return)[(set: $sequence to 0)(go-to: $currentPassage)] (click: ?returnBase)[(set: $sequence to 0)(go-to: $basePassage)] (click: ?returnBaseSimple)[(go-to: $basePassage)] (click: ?returnFromAction)[(set: $target to "")(go-to: $basePassage)] (click: ?refresh)[(go-to: $currentPassage)] (click: ?next)[(set: $sequence to $sequence+1)(go-to: $currentPassage)] (click: ?nextAction)[(set: $actionSequence to $actionSequence+1)(go-to: $currentPassage)] (click: ?skip)[(set: $sequence to $sequence+2)(go-to: $currentPassage)] (click: ?skip2)[(set: $sequence to $sequence+3)(go-to: $currentPassage)] (click: ?skip3)[(set: $sequence to $sequence+4)(go-to: $currentPassage)] (click: ?skip4)[(set: $sequence to $sequence+5)(go-to: $currentPassage)] (click: ?prev)[(set: $sequence to $sequence-1)(go-to: $currentPassage)] (click: ?prev_passage)[(go-to: $previous_passage)] (click: ?death)[(go-to: "Death")] (click: ?Restart)[ <script>setResume(false); resetScreen(); checkCurrentMusic(); savegame("MenuSave","RESTART"); window.location.reload(); </script>] (click: ?loadSavedGame)[<script>goToMenu("Menu_Restore");</script>] (click: ?menu_menu)[(go-to: "Menu")] (click: ?menu_restore)[(go-to: "Menu_Restore")] (click: ?menu_achievements)[(go-to: "Menu_Achievements")] (click: ?menu_options)[(go-to: "Menu_options")] (click: ?menu_othergames)[(go-to: "Menu_OtherGames")] (click: ?menu_hints)[(go-to: "Menu_Hints")] (click: ?quit)[(set: $quit_return to (passage:)'s name)(go-to:"Menu_Confirm Quit")] (click: ?return_to_game)[ <script>savegame("ReturnFlag","RETURNING"); window.loadgame("MenuSave");</script> ] <script>refreshHUD();</script> <script> var ReturnFlag = getraw("ReturnFlag"); if(ReturnFlag == "RETURNING"){ var compiling_spell = ""; var inv_commands = getraw("inv_commands"); if(!isUndefined(inv_commands) && inv_commands != "" && inv_commands != null){ var inv_commands_ar = inv_commands.split(","); var inventory = getHarloweVariable("inventory"); for (var i = 0; i < inv_commands_ar.length; i += 2) { var command = inv_commands_ar[i]; var data = inv_commands_ar[i+1]; if(command == "discard") inventory.delete(data); else if(command == "reset_inventory"){ let inv_bits = data.split("~"); inventory.clear(); for(let j = 0; j < inv_bits.length; j += 2){ if(inv_bits[j] != ""){ let key = inv_bits[j]; let value = inv_bits[j+1]; let new_item = new Map(); new_item.set("description",value); inventory.set(key,new_item); } } } else if(command == "transform"){ let transform_parts = data.split(">"); let transform_name = transform_parts[0]; let new_name = transform_parts[1]; let new_desc = transform_parts[2]; inventory.delete(transform_name); let new_item = new Map(); new_item.set("description",new_desc); inventory.set(new_name,new_item); }else { if(isInteger(data)) data = parseInt(data); seth(command,data); } } seth("inventory",inventory); } var music = geth("PlayingMusic"); if(!isUndefined(music) && music != "" && music != null && music != 0) musicLoop(music); else musicLoop(""); if(compiling_spell != ""){ saveraw("ReturnFlag","BLANK"); } } saveraw("ReturnFlag","BLANK"); function isInteger(value) { return /^\d+$/.test(value); } </script> }(display: "menu_menu") <div class="menu_frame">**GENERAL OPTIONS**<hr/>//Sound Effects:// <a id='SoundEffects-opt' class='clickable' onClick='toggleOption("SoundEffects","OFF","ON");'>(if: $SoundEffects is true)[ON](else:)[OFF]</a> //Music:// <a id='music-opt' class='clickable' onClick='toggleMusicOpt();'>(if: $Music is true)[ON](else:)[OFF]</a> |menu_credits>[View Credits] { (set: $display_resume to true) (click: ?menu_ack)[(go-to: "Menu_Ack")] (click: ?menu_reset)[(go-to: "Menu_Reset Everything")] (click: ?menu_credits)[(go-to: "Menu_Credits")] <script> function toggleMusicOpt(){ var Music = geth("Music"); if(Music){ seth("Music",false); toggleMusic("OFF"); $("#music-opt").html("OFF"); } else { seth("Music",true); toggleMusic("ON"); $("#music-opt").html("ON"); } savePermSettings(); } function toggleTextSpeedOption(){ var TextToSpeechSpeed = geth("TextToSpeechSpeed"); if(TextToSpeechSpeed == "NORMAL") { seth("TextToSpeechSpeed","FAST"); toggleTextToSpeechSpeed("FAST"); $("#TextToSpeechSpeed-opt").html("FAST"); } else if(TextToSpeechSpeed == "FAST") { seth("TextToSpeechSpeed","FASTER"); toggleTextToSpeechSpeed("FASTER"); $("#TextToSpeechSpeed-opt").html("FASTER"); } else if(TextToSpeechSpeed == "FASTER") { seth("TextToSpeechSpeed","EVEN FASTER"); toggleTextToSpeechSpeed("EVEN FASTER"); $("#TextToSpeechSpeed-opt").html("EVEN FASTER"); } else if(TextToSpeechSpeed == "EVEN FASTER") { seth("TextToSpeechSpeed","FASTEST"); toggleTextToSpeechSpeed("FASTEST"); $("#TextToSpeechSpeed-opt").html("FASTEST"); } else { seth("TextToSpeechSpeed","NORMAL"); toggleTextToSpeechSpeed("NORMAL"); $("#TextToSpeechSpeed-opt").html("NORMAL"); } savePermSettings(); } function toggleFontSizeOption(){ var FontSize = geth("FontSize"); if(FontSize == "NORMAL") { seth("FontSize","LARGE"); $("#FontSize-opt").html("LARGE"); } else if(FontSize == "LARGE") { seth("FontSize","HUGE"); $("#FontSize-opt").html("HUGE"); } else { seth("FontSize","NORMAL"); $("#FontSize-opt").html("NORMAL"); } savePermSettings(); goToPassage("Menu_options"); } function toggleSpeedrunOpt(){ var SpeedRun = geth("SpeedRun"); if(SpeedRun){ seth("SpeedRun",false); $("#speed-text").html("OFF"); $("#speed-mode-opt").html("OFF"); } else { seth("SpeedRun",true); $("#speed-text").html("ON"); $("#speed-mode-opt").html("ON"); } savePermSettings(); } function toggleSpeedrunControlOpt(){ var SpeedRunDisplay = geth("SpeedRunDisplay"); if(SpeedRunDisplay){ seth("SpeedRunDisplay",false); hideHUD("speed-run-toggle"); $("#speed-mode-ctrl-opt").html("OFF"); } else { seth("SpeedRunDisplay",true); displayHUD("speed-run-toggle"); $("#speed-mode-ctrl-opt").html("ON"); } savePermSettings(); } function toggleFullscreenOpt(){ var Fullscreen = geth("Fullscreen"); if(Fullscreen){ seth("Fullscreen",false); setFullscreen('OFF'); $("#fullscreen-opt").html("OFF"); } else { seth("Fullscreen",true); setFullscreen('ON'); $("#fullscreen-opt").html("ON"); } savePermSettings(); } function toggleColorOpt(){ var ColorBlind = geth("ColorBlind"); if(ColorBlind){ seth("ColorBlind",false); $("#color-opt").html("OFF"); } else { seth("ColorBlind",true); $("#color-opt").html("ON"); } savePermSettings(); goToPassage("Menu_options"); } function toggleOption(optionName,offText,onText){ var option = geth(optionName); if(option){ option = false; seth(optionName,false); $("#"+optionName+"-opt").html(offText); } else { option = true; seth(optionName,true); $("#"+optionName+"-opt").html(onText); } savePermSettings(); if(optionName == "TextToSpeech"){ if(option)$("#TextToSpeechOptions").css("display","block"); else $("#TextToSpeechOptions").css("display","none"); } } var TextToSpeech = geth("TextToSpeech"); console.log("TextToSpeech",TextToSpeech); if(TextToSpeech) $("#TextToSpeechOptions").css("display","block"); else $("#TextToSpeechOptions").css("display","none"); </script> }(display: "menu_menu")(set: $display_resume to true) If you liked this game, try my other game: <a target="_blank" href="http://www.abigailcorfman.com/Home/OpenSorcery" data-raw="">Open Sorcery</a> If you like my style, subscribe to my <a target="_blank" href="http://eepurl.com/bWnLDT" data-raw="">Vegetarian Newsletter.</a> (Vegetarian because there's no spam. I email you ONLY when I make new things.) If you want to tell me something, <a href="mailto:beautiful.lightness@gmail.com">email me</a> or <a href="https://discord.gg/kHgtwqe" target="_blank"> visit my discord.</a>(set: $CanResume to false) (set: $allowQuicksave to false) (set: $currentGameDate to "") (set: $menuSpider to true) <script> var first_game = getraw("first_game"); if(first_game == null || first_game == "null") first_game = "First Game"; seth("first_game",first_game); saveraw("first_game",first_game); var MenuSave = getMenuSaveTitle(); seth("MenuSave",MenuSave); goToPassage("second technology"); </script> (set: $used_thoughts to (a:)) (go-to: $previous_passage)(display: "menu_menu") ''Writing'' by Abigail Corfman ''Code'' by Abigail Corfman See more of Abigail's work at <a href="http://www.abigailcorfman.com/" target="_blank">Her Website</a> ''Background Art'' by Fish See more of Fish's work at <a href="http://www.myoats.com/users/Fish" target="_blank">Their Website</a> ''Sounds'' //Crystal// is by <a href="https://freesound.org/people/Widowaker/" target="_blank">Widowaker</a> via freesound //Damage// is by <a href="https://freesound.org/people/Halph-Price/" target="_blank">Halph-Price</a> via freesound //Healing// is by <a href="https://freesound.org/people/Kinoton/" target="_blank">Kinoton</a> via freesound //Growling// is by <a href="https://freesound.org/people/newagesoup/sounds/338674/" target="_blank">newagesoup</a> via freesound //Yowling// is by <a href="https://freesound.org/people/taure/sounds/346310/" target="_blank">taure</a> via freesound //Purring// is by <a href="https://freesound.org/people/cubilon/sounds/130968/" target="_blank">cubilon</a> via freesound ''Music'' //Awash in Gibbering Madness// "Support Me In This Moment That I'm About To Lose Heart" by <a href="http://www.nihilore.com/" target="_blank">Nihilore</a> ''Testers'' @Aliizi Dave DeMartino J Harrison Julia Krystosek Malarthi @Strunbahthur { (set: $DisplayFullHealth to true) (set: $SpeedRun to false) (set: $SpeedRunDisplay to false) (set: $ColorBlind to false) (set: $TextToSpeech to false) (set: $TextToSpeechSpeed to "NORMAL") (set: $FontSize to "NORMAL") (set: $TravelAnimation to false) (set: $SoundEffects to true) (set: $Music to true) (set: $Fullscreen to true) (set: $WordSearches to true) (set: $PhilosophyDisplay to false) (set: $philosophy_unlocked to false) (set: $single_run_canon to "") (set: $puzzles_complete to "default~puzzle") (set: $currentGameDate to "") <script>savePermSettings();</script> }{ <style> tw-passage { text-align: center; } .inv_hide { display: none; } .inv-border { border: 1px solid #777; padding: 0.01em 6px; border-radius: 6px; margin-bottom: 10px; cursor: auto; background-color: rgba(0,0,0,0.5); text-shadow: none; } .inv-item { padding: 0 0 1em 16px; } .inv-item-header { font-weight: bold; } .inv-click { cursor: pointer; } .red_header tw-expression { position: initial;} .equip-area { padding-left: 1em; } td { width: 10%; text-align: center; } .compile-dormant{ float: right; margin-top: 12px; margin-right: 15px; padding: 5px; color: gray; } .compile-active{ float: right; margin-top: 20px; margin-right: 20px; border: 3px solid #4169E1; padding: 5px; } #InvMenu { font-size: 30px; } </style> <script> function displayDescEasy(e) { var descId = replaceAll(e.id, "key","desc"); var desc = $("#" + descId); if(desc.css("display") == "none") desc.css("display","inline"); else desc.css("display","none"); return false; } function printElementInventory(value, key, map) { var inventory = geth("inventory"); var inv_item = inventory.get(key); var desc = inv_item.get("description"); var under_key = replaceAll(key, " ","_"); under_key = replaceAll(under_key, ":",""); under_key = replaceAll(under_key, ",",""); under_key = replaceAll(under_key, "!",""); var to_append = ""; var is_readable = true; to_append = "<div class='inv-item'><a class='inv-click' onClick='displayDesc(this,\"inventory\")'>"+key+"</a> <span "; to_append += "style='display: none;' "; to_append += "id='inv-desc-"+under_key+"'>- " + desc + "</span> "; let see_the_three = geth("see_the_three"); if(see_the_three) to_append += "<span class='emph' style='font-size: 70%; cursor: pointer;' onClick='transform(\""+key+"\")'> Transform</span>"; if(key == "scotch" || key == "black ichor" || key == "health potion") to_append += "<span class='emph' style='font-size: 70%; cursor: pointer;' onClick='drink(\""+key+"\")'> Drink</span>"; to_append += "</div>"; $("#inventory").append(to_append); } function transform(key){ var inventory = geth("inventory"); var inv_item = inventory.get(key); var desc = inv_item.get("description"); seth("transform_name",key); seth("transform_desc",desc); goToPassage("Transform"); } function drink(key){ seth("drink_name",key); goToPassage("Drink"); } function discardInv(under_key,text){ seth("reading",text); $("#discard"+under_key).css("display","none"); $("#confirmdiscard"+under_key).css("display","inline"); $("#canceldiscard"+under_key).css("display","inline"); } function confirmDiscard(under_key){ $("#inv-note-"+under_key).remove(); var reading = geth("reading"); addInvCommand("discard",reading,"add"); var inventory = geth("inventory"); inventory.delete(reading); seth("inventory",inventory); } function cancelDiscard(under_key){ $("#discard"+under_key).css("display","inline"); $("#confirmdiscard"+under_key).css("display","none"); $("#canceldiscard"+under_key).css("display","none"); } function displayDesc(e,har_var) { var inventory = window.getHarloweVariable(har_var); var inv_item = inventory.get(e.innerHTML); var under_key = replaceAll(e.innerHTML, " ","_"); under_key = replaceAll(under_key, ":",""); under_key = under_key.replace('?',''); var desc = $("#inv-desc-" + under_key); if(desc.css("display") == "none"){ desc.css("display","inline"); } else{ desc.css("display","none"); } return false; } function sortMap(map,flag){ var category1 = []; var category2 = []; for (var item of map) { var map_item = item[1]; if(flag == "") category1.push(item); else{ var flag_result = map_item.get(flag); if(!flag_result) category1.push(item); else category2.push(item); } } category1.sort(); category2.sort(); var final_sorted_list = new Map(); for (var item of category1) final_sorted_list.set(item[0],item[1]); for (var item of category2) final_sorted_list.set(item[0],item[1]); return final_sorted_list; } function switchInv(e){ var target = $(e).html(); seth("InvDisplay",target); setupInventory(); } function setupInventory(){ var inventory = geth("inventory"); var InvDisplay = geth("InvDisplay"); var print_inv = true; var InvDisplayText = InvDisplay; var InvDisplayMinorText = "Inventory"; $("#InvDisplayText").html(InvDisplayText); if(InvDisplay == "Inventory"){ if(print_inv == true){ $("#inventory-container").css("display","block"); inventory = sortMap(inventory,""); inventory.forEach(printElementInventory); } else{ $("#inventory-container").css("display","none"); $("#inventory").html(""); } } else{ $("#inventory-container").css("display","none"); $("#inventory").html(""); } } setupInventory(); </script> <div id="InvMenu"></div> <div style="text-align: left; width: 100%; margin: auto;"> <div id='inventory-container' class="inv-border inv_hide"><b>Inventory</b><span id='inventory'></span></div> (set: $display_resume to true) </div> }(if: $sequence is 0)[Her last sense of self collapses violently. Not merely absent, but gone. Not a hole where a person should be, just a hole. |next>[Continue]{ <script> resetScreen(); musicStopAll(); $("#stat-memory .bar").css("background-color","black"); </script> }](elseif: $sequence is 1)[A widening hole. No longer constained by her outline. Light sears through from the other side. The bed crumbles into thread, and cotton, and sawdust, and then it is gone. |next>[Continue]{ <script> updateImage("bedroom1_void"); playAudio("aa_rumble");</script> }](elseif: $sequence is 2)[I try to scramble back, but the floor under me is lit. And then it is nothing. I fall into the bright nothing. |next>[Continue]{ <script> seth("hide_hud",true); updateImage("white"); $("#area-description").css("background-color","white"); $("#area-description").css("color","black"); $("#area-description").addClass("bright-pulse"); $("#game-frame").css("background","white"); </script> }](elseif: $sequence is 3)[You Are Absent (display: "Death Options"){ <script> updateImage("death-screamOutOfTheLight"); musicLoop("env_soft_wail"); </script> }](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ]{ (set: $noMenu to true) }<div class="menu_items"> <span class="menu_spacing">|Restart>[NEW GAME]</span> (if: $currentPassage is "Menu_Restore")[<span class="space">LOAD GAME</span>](else:)[<span class="menu_spacing">|menu_restore>[LOAD GAME]</span>] (if: $currentPassage is "Menu_options")[<span class="space">OPTIONS</span>](else:)[<span class="menu_spacing">|menu_options>[OPTIONS]</span>] (if: $currentPassage is "Menu_OtherGames")[<span class="space">OTHER GAMES</span>](else:)[<span class="menu_spacing">|menu_othergames>[OTHER GAMES]</span>] </div>{ <style> tw-story { padding: 10px 0px !important; } tw-passage { text-align: center; } tw-passage { background-color: transparent !important; border: none !important; } .menu_frame { width: 50%; padding: 10px; } .menu_items { font-size: 30px; text-align: center; margin-top: 20px; } span.menu_spacing { margin: 0 10px; } span.space { margin: 0 10px; } </style> }----Gray Option---- (if: "stick" is in $inventory)[|fish>[Use something narrow and long to fish it out.] ](else:)[|gray>[Use something narrow and long to fish it out.] (click: ?gray)[//I don't have anything like that.//] ] (if: $m_m_light > 0)[|empower>[Destroy the net. (Costs 1 <span class='mm'>Light</span>)] ](else:)[|gray>[Destroy the net. (Costs 1 <span class='mm'>Light</span>)] (click: ?gray)[//I don't have any Light.//] ] ----Add To Inventory---- ----Remove From Inventory---- ----Element---- <span class='fire'>Fire</span> <span class='mm'>$fg_red_1</span> {(set: $mm_to_change to "light") (set: $mm_value to 1) (display: "update mm")} ----Health---- (set: $health_change to -3)(display: "health change") ----Harlowe Settings---- var part_learned = getHarloweVariable("part_learned"); goToPassage("Travel - Deep Web"); ----Get Whole Dream---- |assemble_dream>[I reassemble it.]{ (set: $dream_name to "true meaning") (set: $memories's $dream_name's part1_found to true) (set: $memories's $dream_name's part2_found to true) (set: $memories's $dream_name's part3_found to true) (set: $memories's $dream_name's part4_found to true) (set: $return_passage to $currentPassage) } ----Add Memories and Spells---- .empty() - empties a div .attr(,) - gets or sets .hover(function) - function on hover x.substring(3,10); x.indexOf('x') document.getElementById("") document.getElementById("").style.(any style element) { (set: $initial_load to "loaded") (set: $noBox to false) <script> setupSaves(); installExtraHtml(); </script> (set: $east_text to "Walk east.") (set: $west_text to "Walk west.") (set: $north_text to "Walk north.") (set: $south_text to "Walk south.") (set: $AchieveDisplay to "General") (set: $CanResume to false) <script> saveraw("ReturnFlag","NONE"); var CanResume = getResume(); if(CanResume) setHarloweVariable("CanResume",true); else setHarloweVariable("CanResume",false); </script> }----Sequence---- (if: $sequence is 0)[ ](elseif: $sequence is 1)[ ](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (click: ?place)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?tech)[(set: $sequence to 2)(go-to: $currentPassage)] } |spell>[Cast a spell.] |mm>[Use a matter or motive.] |item>[Use an item.] (click: ?spell)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?mm)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?item)[(set: $sequence to 1)(go-to: $currentPassage)] What spell should I cast? (display: "Cast Spell In Place") |return>[Do something else.] (if: $casting_spell is "SalveMundi")[ ](elseif: $casting_spell is "Rezrov")[ ](elseif: $casting_spell is "Strength")[ ](elseif: $casting_spell is "Pain")[ ](elseif: $casting_spell is "Freeze")[ ](elseif: $casting_spell is "Pitput")[ ](elseif: $casting_spell is "Charm Cat")[ ](elseif: $casting_spell is "Power Word: Brownie")[ ](elseif: $casting_spell is "Textilekinesis")[ ](elseif: $casting_spell is "Unbabble")[ ](elseif: $casting_spell is "Dream" or $casting_spell is "Nightmare")[(display: "Dreams and Nightmares") |prev>[Try another spell.] |return>[Continue] ](elseif: $casting_spell is "Omini" or $casting_spell is "Omaxim")[<span class='prophecy'><span class="txt anim-text-flow"></span> <span class="txt anim-text-flow"></span> <span class="txt anim-text-flow"></span> </span> |prev>[Try another spell.] |return>[Continue] ](else:)[I don't think that spell would help here. |prev>[Try another spell.] |return>[Stop casting magic.] ] (if: $selected_dream is "Swimming through clouds.")[ ](elseif: $selected_dream is "Eating Mangoes.")[ ](elseif: $selected_dream is "Kissing.")[ ](elseif: $selected_dream is "Exploring a clockwork castle.")[ ](elseif: $selected_dream is "You are warm and safe, surrounded by love.")[ ](elseif: $selected_dream is "You've discovered the secret truth of the universe.")[ ](elseif: $selected_dream is "Napping in a perfect sunbeam.")[ ](elseif: $selected_dream is "Riding with an army of dogs to see the aurora borealis in every galaxy.")[ ](elseif: $selected_dream is "Your teeth are falling out.")[ ](elseif: $selected_dream is "Falling.")[ ](elseif: $selected_dream is "Late to school, unprepared for an exam, and naked.")[ ](elseif: $selected_dream is "Paralyzed while a shadowperson climbs through the window.")[ ](elseif: $selected_dream is "Buried alive.")[ ](elseif: $selected_dream is "You've let everyone down.")[ ](elseif: $selected_dream is "Can't find something that you desperately need.")[ ](elseif: $selected_dream is "Slowly dying while trying to hide your injuries from your friends so they don't get angry with you.")[ ](else:)[ |prev>[Try another dream.] |return>[Stop casting magic.] ] <span class="center-text">What Matter or Motive should I use?</span> (display: "Use MM In Place") |coffee>[Do something else.] (if: $using_element is "dark")[(set: $cost to 8)(display: "Confirm Cost") ](elseif: $using_element is "dark_yes")[ ](elseif: $using_element is "light")[ {(set: $mm_to_change to "light") (set: $mm_value to -1) (display: "update mm")} ](elseif: $using_element is "fire")[ ](elseif: $using_element is "water")[ ](elseif: $using_element is "air")[ ](elseif: $using_element is "earth")[ ](elseif: $using_element is "love")[ ](elseif: $using_element is "fear")[ ](elseif: $using_element is "order")[ ](elseif: $using_element is "chaos")[ ](elseif: $using_element is "life")[ ](elseif: $using_element is "death")[ ](else:)[I don't think that would help here. |prev>[Try another element.] |return>[Do something else.] ] What item will you use? (display: "Inv In Place") |return>[Do something else.] (if: $selected_item is "")[ ](else:)[You don't think that item would help. |prev>[Choose another item.] |return>[Do something else.] ] (set: $sorted_inventory to (datanames: $inventory))(if: $sorted_inventory's length is 0)[//I have nothing that can be used here.// ](else:)[<span id="list"></span>{ (set: $selected_item to "") <script> function printElement(value, key, map) { var desc = value.get("description"); var name = value.get("name"); if(desc != ""){ var to_append = "<a name='"+name+"' onclick='selectItem(this)' class='select-item'>"+key+"</a> - "+desc+"<br><br>"; $("#list").append(to_append); } } function selectItem(e){ setHarloweVariable("selected_item",e.innerHTML); setHarloweVariable("selected_item_name",e.name); var sequence = getHarloweVariable("sequence"); setHarloweVariable("sequence",sequence+1); var currentPassage = getHarloweVariable("currentPassage"); goToPassage(currentPassage); } getHarloweVariable("inventory").forEach(printElement); </script> }]Loading Game.... Please be patient.(display: "game start setup") (set: $print_title to true) (if: $first_game is "First Game")[ (display: "initial settings") (set: $inGame to false) (set: $noMenu to false) (set: $menu_numbers to true) <script> seth("first_game","done"); saveraw("first_game","done"); </script> (go-to: "Menu") ](elseif: $MenuSave is "RESTART")[ <script> loadPermSettings(); loadAchieve(); loadPuzzles(); </script> (display: "game values") (display: "petals game values") <script> savegame("MenuSave","DELETED"); savegame("CurrentSave","DELETED"); loadHUD(); </script> (set: $noMenu to false) (set: $sequence to 0) (set: $in_intro to true) (go-to: "Absence Intro") ](else:)[ <script> loadPermSettings(); loadAchieve(); loadPuzzles(); </script> (set: $menu_numbers to true) (if: $test_mode is true)[(go-to: "Menu")] (else:)[(go-to: "Menu")] ]{ (set: $sorted_inv to (datanames: $inventory)) (if: $m_type is "feeling")[(set: $sorted_inv to (datanames: $m_feelings))] (if: $m_type is "thought")[(set: $sorted_inv to (datanames: $m_thoughts))] (set: $selected_item to "") <script> function printElementInventory(value, key, map) { var m_type = geth("m_type"); var inventory = getHarloweVariable("inventory"); if(m_type == "feeling") inventory = getHarloweVariable("m_feelings"); if(m_type == "thought") inventory = getHarloweVariable("m_thoughts"); var item = inventory.get(value); var desc = item.get("description"); var under_value = replaceAll(value, " ","_"); var to_append = ""; to_append += "<a name='"+value+"' onclick='selectItem(this)' class='inv-item-header cast-spell'>"+value+"</a><br><br>"; $("#inv").append(to_append); } function selectItem(e){ setHarloweVariable("selected_item",e.name); var sequence = getHarloweVariable("sequence"); setHarloweVariable("sequence",sequence+1); var currentPassage = getHarloweVariable("currentPassage"); goToPassage(currentPassage); } </script> <style> .inv-item { padding: 0 0 1em 16px; text-align: left; } .inv-item tw-hook tw-link { color: #8cf; } .cast-spell { cursor: pointer; font-weight: bold;} </style> }<span id="inv"></span> { <script> var sorted_inv = geth("sorted_inv"); sorted_inv.forEach(printElementInventory); console.log("sorted_inv",sorted_inv); if(sorted_inv.length == 0){ var m_type = geth("m_type"); if(m_type == "feeling") $("#inv").append("<br><i>I am not feeling anything in particular.</i><br><br>"); else if(m_type == "thought") $("#inv").append("<br><i>I am not thinking anything of note.</i><br><br>"); else $("#inv").append("<br><i>There is nothing in your inventory.</i><br><br>"); } </script> }|returnInv>[Return to Inventory] (set: $noMenu to true) <span class="emph" id="transform_name">$transform_name</span> <span id="transform_desc">$transform_desc</span> <a onClick='transform()'>See it in a different way.</a> |returnInv>[Return to Inventory] { (click: ?returnInv)[(go-to: "Menu_Inventory")] <span class="nav_button" style="position: fixed; right: 5px; bottom: 5px;">|returnInv>[< Return to Inventory]</span> <script> $("#transform_name").html(geth("transform_name")); $("#transform_desc").html(geth("transform_desc")); function transform(){ let transform_name = $("#transform_name").html(); let transform_desc = $("#transform_desc").html(); let new_name = ""; let new_desc = ""; if(transform_name == "cypher"){ new_name = "key"; new_desc = "A simple bronze key."; } else if(transform_name == "key"){ new_name = "rlyehian dictionary"; new_desc = "A translation handbook for an eldritch language."; } else if(transform_name == "rlyehian dictionary"){ new_name = "cypher"; new_desc = "A journal filled with strange symbols and their meanings."; } else if(transform_name == "blank journal"){ new_name = "empty bottle"; new_desc = "A glass vial without contents."; } else if(transform_name == "empty bottle"){ new_name = "fresh canvas"; new_desc = "A sheet of painting canvas without marks."; } else if(transform_name == "fresh canvas"){ new_name = "blank journal"; new_desc = "An empty journal with a little pen inside."; } else if(transform_name == "lantern"){ new_name = "torch"; new_desc = "A bright burning torch."; } else if(transform_name == "torch"){ new_name = "lure"; new_desc = "A bioluminescent lure the sort an angler fish would use."; } else if(transform_name == "lure"){ new_name = "lantern"; new_desc = "An antique but functional brass lantern."; } else if(transform_name == "scotch"){ new_name = "health potion"; new_desc = "A cherry red potion that radiates wellness."; } else if(transform_name == "health potion"){ new_name = "black ichor"; new_desc = "Thick viscous liquid in a cloudy vial."; } else if(transform_name == "black ichor"){ new_name = "scotch"; new_desc = "Aged amber alcohol."; } else if(transform_name == ""){ new_name = ""; new_desc = ""; } var inventory = geth("inventory"); inventory.delete(transform_name); let new_item = new Map(); new_item.set("description",new_desc); inventory.set(new_name,new_item); seth("inventory",inventory); $("#transform_name").html(new_name); $("#transform_desc").html(new_desc); inventory = sortMap(inventory,""); let inv_data = ""; inventory.forEach(function(value, key, map) { inv_data += key +"~"+ value.get("description")+"~"; }); var inv_commands = getInvCommand(); var found_entry = false; for (var i = 0; i < inv_commands.length; i += 2) { if(inv_commands[i] == "reset_inventory"){ found_entry = true; inv_commands[i+1] = inv_data; } } if(found_entry == false){ inv_commands.push("reset_inventory"); inv_commands.push(inv_data); } console.log("inv_data",inv_data); saveraw("inv_commands",inv_commands); } function sortMap(map,flag){ var category1 = []; var category2 = []; for (var item of map) { var map_item = item[1]; if(flag == "") category1.push(item); else{ var flag_result = map_item.get(flag); if(!flag_result) category1.push(item); else category2.push(item); } } category1.sort(); category2.sort(); var final_sorted_list = new Map(); for (var item of category1) final_sorted_list.set(item[0],item[1]); for (var item of category2) final_sorted_list.set(item[0],item[1]); return final_sorted_list; } </script> <style> </style> }|returnInv>[Return to Inventory] (set: $noMenu to true) (if: $drink_name is "scotch")[You don't really want your senses impaired by alcohol right now. There's already enough wonky stuff happening with them. ](elseif: $drink_name is "black ichor")[Uh. No. ](elseif: $drink_name is "health potion")[You drink the health potion. You feel better. //Lost <span class="emph">health potion.</span>//(move: $inventory's "health potion" into $remove) (set: $health_change to 20)(display: "health change"){ <script> playAudio("aa_chime"); var inv_commands = getInvCommand(); inv_commands.push("healthPotion"); inv_commands.push(""); saveraw("inv_commands",inv_commands); </script> } ] |returnInv>[Return to Inventory] { (click: ?returnInv)[(go-to: "Menu_Inventory")] <span class="nav_button" style="position: fixed; right: 5px; bottom: 5px;">|returnInv>[< Return to Inventory]</span> }{(if: $test_mode is true)[(set: $memory_display to true)] (set: $memory to $memory + $memory_change) (if: $memory > 100)[(set: $memory to 100)] (if: $memory_change > 0)[<script>playAudio("aa_clue");</script><span class='self'>//Awareness Increased.//</span>](else:)[<script>playAudio("aa_damage");</script>(set: $memory_change to 0-$memory_change)<span class='loss'>''//Awareness Lost//''</span>] <script>refreshHUD();</script> }<span class='self'>//Acquired Thought: $current_thought//</span>(set: $thoughts to it + (a: $current_thought))<script>playAudio("aa_clue");</script><span class='loss'>//Discarded Thought: $removing_thought//</span>(set: $thoughts to $thoughts - (a: $removing_thought))<span class='self'>//Acquired Item: $current_item//</span>(set: $items to it + (a: $current_item))<script>playAudio("aa_clue");</script><span class='loss'>//Discarded Item: $removing_item//</span>(set: $items to $items - (a: $removing_item))(if: $sequence is 0)[The medication inside of the lockbox comes in tiny orange bottles. I read the side: Escitalopram 10 mg Tab Take one tablet by mouth daily. Prescribed to <span class="glitch" onclick='blotExpands()'>Emment Marlow</span> { (set: $blot_started to false) (set: $blot_scale to 1) <canvas id="canvas"></canvas> } ](elseif: $sequence is 1)[ ](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ <style> #canvas{ position: fixed; top: 30%; right: 20%; } .glitch { animation: glitch 9725ms infinite; color: transparent; text-shadow: 0 0 13px white; cursor: pointer; font-size: 120%; } @keyframes glitch { 0% { text-shadow: 0 0 13px white; } 15% { text-shadow: 0 0 13px white; } 16% { text-shadow: -5px -4px 17px white; } 17% { text-shadow: 0 0 13px white; } 49% { text-shadow: 0 0 13px white; } 50% { text-shadow: 5px 0 10px white; } 51% { text-shadow: 0 0 13px white; } 98% { text-shadow: 0 0 13px white; } 99% { text-shadow: -5px 5px 17px white; } 100% { text-shadow: 0 0 13px white; } } </style> <script> function blotExpands(){ let blot_started = geth("blot_started"); let blot_scale = geth("blot_scale"); if(!blot_started){ seth("blot_started",true); vessels(); console.log("starting"); } else if(blot_scale < 3){ seth("blot_scale",blot_scale+1); console.log("increasing blot"); } else{ console.log("already started"); } } function vessels() { var canvas = document.getElementById('canvas'); canvas.width = 800; canvas.height = 800; var ctx = canvas.getContext('2d'); ctx.globalCompositeOperation = 'lighter'; noise.seed(Math.random()); var scale = geth("blot_scale"), radius = 50 * scale, centreX = canvas.width / 2, centreY = canvas.height / 2, time = 0, numLayers = 4, colours = ['#fff', '#777', '#fff', '#eee'], layers = []; for (var i = 0; i < numLayers; i++) { layers[i] = { time: Math.random() * 10000, colour: colours[i] }; } update(); function drawDistortedCircle(layer, index) { ctx.fillStyle = layer.colour; ctx.shadowColor = layer.colour; ctx.shadowBlur = 3.33 * scale; ctx.beginPath(); for (var i = 0; i < 360; i++) { layer.time += 0.000004; angle = 0.1 * i; var positionOffsetX = noise.perlin2(index, layer.time) * (20 * scale); var positionOffsetY = noise.perlin2(index, layer.time + 1000) * (20 * scale); var initialPosX = centreX + positionOffsetX; var initialPosY = centreY + positionOffsetY; radius = 50 * geth("blot_scale"); x = initialPosX + Math.cos(angle) * radius; y = initialPosY + Math.sin(angle) * radius; var value = noise.perlin3(x / 100, y / 100, layer.time) * scale; var offset = value * (10 / scale); if (i === 0) { ctx.moveTo(x + offset, y + offset); } else { ctx.lineTo(x + offset, y + offset); } } ctx.fill(); } function update() { ctx.clearRect(0, 0, canvas.width, canvas.height); layers.forEach(function(layer, i) { drawDistortedCircle(layer, i); }); requestAnimationFrame(update); } function translateRange(a1, a2, b1, b2, num) { var c = ((num - a1) * (b2 -b1)/(a2 - a1)) + b1; return c; } } (function(global){ var module = global.noise = {}; function Grad(x, y, z) { this.x = x; this.y = y; this.z = z; } Grad.prototype.dot2 = function(x, y) { return this.x*x + this.y*y; }; Grad.prototype.dot3 = function(x, y, z) { return this.x*x + this.y*y + this.z*z; }; var grad3 = [new Grad(1,1,0),new Grad(-1,1,0),new Grad(1,-1,0),new Grad(-1,-1,0), new Grad(1,0,1),new Grad(-1,0,1),new Grad(1,0,-1),new Grad(-1,0,-1), new Grad(0,1,1),new Grad(0,-1,1),new Grad(0,1,-1),new Grad(0,-1,-1)]; var p = [151,160,137,91,90,15, 131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23, 190, 6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33, 88,237,149,56,87,174,20,125,136,171,168, 68,175,74,165,71,134,139,48,27,166, 77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244, 102,143,54, 65,25,63,161, 1,216,80,73,209,76,132,187,208, 89,18,169,200,196, 135,130,116,188,159,86,164,100,109,198,173,186, 3,64,52,217,226,250,124,123, 5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42, 223,183,170,213,119,248,152, 2,44,154,163, 70,221,153,101,155,167, 43,172,9, 129,22,39,253, 19,98,108,110,79,113,224,232,178,185, 112,104,218,246,97,228, 251,34,242,193,238,210,144,12,191,179,162,241, 81,51,145,235,249,14,239,107, 49,192,214, 31,181,199,106,157,184, 84,204,176,115,121,50,45,127, 4,150,254, 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180]; var perm = new Array(512); var gradP = new Array(512); module.seed = function(seed) { if(seed > 0 && seed < 1) { seed *= 65536; } seed = Math.floor(seed); if(seed < 256) { seed |= seed << 8; } for(var i = 0; i < 256; i++) { var v; if (i & 1) { v = p[i] ^ (seed & 255); } else { v = p[i] ^ ((seed>>8) & 255); } perm[i] = perm[i + 256] = v; gradP[i] = gradP[i + 256] = grad3[v % 12]; } }; module.seed(0); var F2 = 0.5*(Math.sqrt(3)-1); var G2 = (3-Math.sqrt(3))/6; var F3 = 1/3; var G3 = 1/6; module.simplex2 = function(xin, yin) { var n0, n1, n2; var s = (xin+yin)*F2; var i = Math.floor(xin+s); var j = Math.floor(yin+s); var t = (i+j)*G2; var x0 = xin-i+t; var y0 = yin-j+t; var i1, j1; if(x0>y0) { i1=1; j1=0; } else { i1=0; j1=1; } var x1 = x0 - i1 + G2; var y1 = y0 - j1 + G2; var x2 = x0 - 1 + 2 * G2; var y2 = y0 - 1 + 2 * G2; i &= 255; j &= 255; var gi0 = gradP[i+perm[j]]; var gi1 = gradP[i+i1+perm[j+j1]]; var gi2 = gradP[i+1+perm[j+1]]; var t0 = 0.5 - x0*x0-y0*y0; if(t0<0) { n0 = 0; } else { t0 *= t0; n0 = t0 * t0 * gi0.dot2(x0, y0); } var t1 = 0.5 - x1*x1-y1*y1; if(t1<0) { n1 = 0; } else { t1 *= t1; n1 = t1 * t1 * gi1.dot2(x1, y1); } var t2 = 0.5 - x2*x2-y2*y2; if(t2<0) { n2 = 0; } else { t2 *= t2; n2 = t2 * t2 * gi2.dot2(x2, y2); } return 70 * (n0 + n1 + n2); }; module.simplex3 = function(xin, yin, zin) { var n0, n1, n2, n3; var s = (xin+yin+zin)*F3; var i = Math.floor(xin+s); var j = Math.floor(yin+s); var k = Math.floor(zin+s); var t = (i+j+k)*G3; var x0 = xin-i+t; var y0 = yin-j+t; var z0 = zin-k+t; var i1, j1, k1; var i2, j2, k2; if(x0 >= y0) { if(y0 >= z0) { i1=1; j1=0; k1=0; i2=1; j2=1; k2=0; } else if(x0 >= z0) { i1=1; j1=0; k1=0; i2=1; j2=0; k2=1; } else { i1=0; j1=0; k1=1; i2=1; j2=0; k2=1; } } else { if(y0 < z0) { i1=0; j1=0; k1=1; i2=0; j2=1; k2=1; } else if(x0 < z0) { i1=0; j1=1; k1=0; i2=0; j2=1; k2=1; } else { i1=0; j1=1; k1=0; i2=1; j2=1; k2=0; } } var x1 = x0 - i1 + G3; var y1 = y0 - j1 + G3; var z1 = z0 - k1 + G3; var x2 = x0 - i2 + 2 * G3; var y2 = y0 - j2 + 2 * G3; var z2 = z0 - k2 + 2 * G3; var x3 = x0 - 1 + 3 * G3; var y3 = y0 - 1 + 3 * G3; var z3 = z0 - 1 + 3 * G3; i &= 255; j &= 255; k &= 255; var gi0 = gradP[i+ perm[j+ perm[k ]]]; var gi1 = gradP[i+i1+perm[j+j1+perm[k+k1]]]; var gi2 = gradP[i+i2+perm[j+j2+perm[k+k2]]]; var gi3 = gradP[i+ 1+perm[j+ 1+perm[k+ 1]]]; var t0 = 0.6 - x0*x0 - y0*y0 - z0*z0; if(t0<0) { n0 = 0; } else { t0 *= t0; n0 = t0 * t0 * gi0.dot3(x0, y0, z0); } var t1 = 0.6 - x1*x1 - y1*y1 - z1*z1; if(t1<0) { n1 = 0; } else { t1 *= t1; n1 = t1 * t1 * gi1.dot3(x1, y1, z1); } var t2 = 0.6 - x2*x2 - y2*y2 - z2*z2; if(t2<0) { n2 = 0; } else { t2 *= t2; n2 = t2 * t2 * gi2.dot3(x2, y2, z2); } var t3 = 0.6 - x3*x3 - y3*y3 - z3*z3; if(t3<0) { n3 = 0; } else { t3 *= t3; n3 = t3 * t3 * gi3.dot3(x3, y3, z3); } return 32 * (n0 + n1 + n2 + n3); }; function fade(t) { return t*t*t*(t*(t*6-15)+10); } function lerp(a, b, t) { return (1-t)*a + t*b; } module.perlin2 = function(x, y) { var X = Math.floor(x), Y = Math.floor(y); x = x - X; y = y - Y; X = X & 255; Y = Y & 255; var n00 = gradP[X+perm[Y]].dot2(x, y); var n01 = gradP[X+perm[Y+1]].dot2(x, y-1); var n10 = gradP[X+1+perm[Y]].dot2(x-1, y); var n11 = gradP[X+1+perm[Y+1]].dot2(x-1, y-1); var u = fade(x); return lerp( lerp(n00, n10, u), lerp(n01, n11, u), fade(y)); }; module.perlin3 = function(x, y, z) { var X = Math.floor(x), Y = Math.floor(y), Z = Math.floor(z); x = x - X; y = y - Y; z = z - Z; X = X & 255; Y = Y & 255; Z = Z & 255; var n000 = gradP[X+ perm[Y+ perm[Z ]]].dot3(x, y, z); var n001 = gradP[X+ perm[Y+ perm[Z+1]]].dot3(x, y, z-1); var n010 = gradP[X+ perm[Y+1+perm[Z ]]].dot3(x, y-1, z); var n011 = gradP[X+ perm[Y+1+perm[Z+1]]].dot3(x, y-1, z-1); var n100 = gradP[X+1+perm[Y+ perm[Z ]]].dot3(x-1, y, z); var n101 = gradP[X+1+perm[Y+ perm[Z+1]]].dot3(x-1, y, z-1); var n110 = gradP[X+1+perm[Y+1+perm[Z ]]].dot3(x-1, y-1, z); var n111 = gradP[X+1+perm[Y+1+perm[Z+1]]].dot3(x-1, y-1, z-1); var u = fade(x); var v = fade(y); var w = fade(z); return lerp( lerp( lerp(n000, n100, u), lerp(n001, n101, u), w), lerp( lerp(n010, n110, u), lerp(n011, n111, u), w), v); }; })(this); </script> (click: ?place)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?tech)[(set: $sequence to 2)(go-to: $currentPassage)] }{(if: $test_mode is true)[(set: $memory_display to true)] (set: $memory to $memory + $memory_change) (if: $memory > 100)[(set: $memory to 100)] (if: $memory_change > 0)[<script>playAudio("aa_clue");</script><span class='self'>//Self Increased.//</span>](else:)[<script>playAudio("aa_damage");</script>(set: $memory_change to 0-$memory_change)<span class='self'>''//Self Lost//''</span>] <script>refreshHUD();</script> (if: $memory >= 50)[(set: $memoryText to "She Is Present") ](elseif: $memory >= 40)[(set: $memoryText to "She Is Near") ](elseif: $memory >= 20)[(set: $memoryText to "She Is Distant") ](else:)[(set: $memoryText to "She Is Absent")]}(if: $sequence is 0)[$prinn_name I have a wife. $prinn_name She's sweet. She's good. I love her. $prinn_name I don't know where she is. |next>[Listen]{ <script>updateImage("black"); </script> }](elseif: $sequence is 1)[$prinn_name I...don't remember her name. |next>[Listen] ](elseif: $sequence is 2)[He moves his hands, helpless. He repeats himself. $prinn_name I don't remember her name. |skip>[$jane_name Do you remember anything about her?] |next>[$jane_name Does anyone else remember her?]{ <script> updateImage("anthony"); musicLoop("env_nothing_left"); </script> }](elseif: $sequence is 3)[$prinn_name Yes. In a way. $prinn_name They remember her after I remind them about her. $prinn_name I...had to remind our son. |understand>[$jane_name I see.] |understand>[Listen.]{ }](elseif: $sequence is 4)[$prinn_name Yes. Yes, of course. $prinn_name She's very kind. She cares so much. $prinn_name Very active with the church. $prinn_name She has dark hair. Her eyes are... $prinn_name Her eyes... |understand>[$jane_name It's all right if you can't remember.] |next>[Listen.]{ }](elseif: $sequence is 5)[$prinn_name I don't...know. $prinn_name I'm sorry. |understand>[$jane_name It's all right.] |understand>[$jane_name It happens.]{ }](elseif: $sequence is 6)[$prinn_name I don't understand what's happening. $prinn_name The police don't remember when I call them. $prinn_name Father Reyland said you know about these things. $prinn_name That you...I'm sorry. I didn't even ask your name. $jane_name It's Jane. |next>[$jane_name I'm a researcher.] |next>[$jane_name I'm an investigator.] |next>[$jane_name I just want to help.]{ }](elseif: $sequence is 7)[$prinn_name And you've seen this happen before? $jane_name People going missing. Being forgotten. Yes. $prinn_name Does this...happen often? |next>[$jane_name Yes.] |next>[$jane_name There's no way of knowing.]{ }](elseif: $sequence is 8)[$prinn_name Why does it happen? |next>[$jane_name It has something to do with light.]{ }](elseif: $sequence is 9)[$prinn_name Light. $prinn_name It's strange you say that. $prinn_name It feels like it's been...brighter, lately. $prinn_name The sky over the garden. $jane_name I see. |next>[I make a note of that.]{ } ](elseif: $sequence is 10)[<span class='self'>//Acquired Thought: The sky over the garden is too bright.//</span> I finish jotting down that note and return my attention to Anthony. |next>[Continue]{ <script>playAudio("aa_clue");</script> }](elseif: $sequence is 11)[$prinn_name How does this work? What can you do? $jane_name I'm going to look around your house for signs that there's something here that I can't see. $prinn_name Something invisible? $jane_name Not exactly. Like I said--it has to do with light. $jane_name When something is very bright, you can't look directly at it. |next>[Continue]](elseif: $sequence is 12)[$jane_name So you watch for its effect. $jane_name Light and shadow acting strangely. $jane_name Things that are fading or aged, as if something has been shining on them for too long. $jane_name When I find enough of those details I'll be able to understand what's going on here. |next>[Continue]{ (set: $memoryText to "There's something I can't see...") (set: $memory_display to true) <script>playAudio("aa_clue");</script> }](elseif: $sequence is 13)[$prinn_name This all sounds very strange. $jane_name It is. $jane_name Can I look around your house? $prinn_name I suppose. Yes. $prinn_name There's no harm in that. |next>[Continue]{ }](elseif: $sequence is 14)[I turn to start examining Anthony Lane's house. I have three relevant thoughts: <span class='self'>//Acquired Thought: Light and shadow is acting strangely.//</span> <span class='self'>//Acquired Thought: This is unnaturally aged or faded.//</span> <span class='self'>//Acquired Thought: There's something here that I can't see.//</span> I should apply them wherever they seem relevant. |beginGame>[Look around the living room.]{ (set: $in_intro to false) (set: $thoughts to it + (a: "Light and shadow is acting strangely.")) (set: $thoughts to it + (a: "This is unnaturally aged or faded.")) (set: $thoughts to it + (a: "There's something here that I can't see.")) (set: $thoughts to it + (a: "The sky over the garden is too bright.")) <script> playAudio("aa_clue"); updateImage("anthony"); musicLoop("env_nothing_left"); </script> (set: $button_examine_display to true) (set: $button_think_display to true) (set: $button_items_display to true) (set: $button_notes_display to true) (set: $navigation_display to true) (set: $memoryText to "There's something I can't see...") (set: $memory_display to true) }](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (set: $basePassage to $currentPassage) (click: ?understand)[(set: $sequence to 6)(go-to: $currentPassage)] (click: ?beginGame)[ (set: $upstairs_lit to false) (set: $upstairs_found_switch to true) (set: $noted_book_missing to false) (set: $found_bird_sketch to false) (set: $signs_of_bright to (a:)) (set: $taken_items to (a:)) (set: $given_items to (a:)) (set: $tried_items to (a: )) (set: $valid_items to (a: "refrigerator calendar", "refrigerator photos", "refrigerator letters", "refrigerator form", "formal shirt", "dress pattern", "bird sketch", "office sketchbook", "office photo", "bedside teacup", "bedside magazine", "sheet music", "piano plant", "mantle photographs", "birdseed", "sparrow feather", "unfinished letter", "laxatives")) (set: $very_negative_items to (a: "refrigerator calendar" )) (set: $negative_items to (a: "fish measuring spoons", "formal shirt", "dress pattern", "office photo", "laxatives", "refrigerator form", "square of fabric" )) (set: $positive_items to (a: "bird sketch", "gardening book", "sparrow feather", "musical CD", "Native Flower Journal", "flower", "tattered poem", "bird's nest")) (set: $uncertain_items to (a: "refrigerator letters", "refrigerator photos", "mantle photographs", "unfinished letter")) (set: $flower_items to (a: "New England Aster", "Blue Vervain")) (set: $used_thoughts to (a:)) (set: $vision_change to 10) (set: $vision_change_big to 20) (set: $small_change to 8) (set: $medium_change to 16) (set: $large_change to 24) (set: $see_hidden to false) (set: $absence_found to false) (set: $lax_found to false) (set: $name_found to false) (set: $game_phase to "There's something I can't see...") (set: $birdseed_in_yard to "none") (set: $feather_dropped to false) (set: $gave_plant to false) (set: $current_flower to "") (set: $sequence to 0) (set: $in_intro to false) (go-to: "Living Room") ] }(if: $sequence is 0)[I'm standing in a well furnished living room. There's clutter on |coffeeTable>[the coffee table.] |piano>[A piano] stands in the corner. |nook>[A nook in the wall] implies there used to be a fireplace. |anthony>[Anthony Lane] is here.{ (set: $target to "living room") <script> updateImage("livingroom2"); </script> (set: $north_text to "Upstairs") (set: $west_text to "") (set: $east_text to "Kitchen") (set: $south_text to "") }](elseif: $sequence is 1)[The coffee table is sturdy and made of dark wood. On top I see: |next>[A stack of books and magazines.] |return>[Look elsewhere.]{ (set: $target to "coffee table") }](elseif: $sequence is 2)[Magazines about gardening and fishing. A small tower of being-read books.(if: !($taken_items contains "biography of John Adams"))[ A biography of John Adams has been left open, near the beginning.] |coffeeTable>[Back to the coffee table.] |return>[Look elsewhere.]{ (set: $target to "books and magazines") }](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[It's compact, for a piano, and tucked into the corner.(if: !($taken_items contains "sheet music"))[ There's some |next>[sheet music] on top of the lid.] |return>[Look elsewhere.]{ (set: $target to "piano") <script> updateImage("piano"); </script> }](elseif: $sequence is 8)[A stack of sheet music. The topmost sheet is Für Elise. |piano>[Back to the piano.] |return>[Look elsewhere.]{ (set: $target to "sheet music") }](elseif: $sequence is 9)[This plant has thick leaves that are plush, like flesh. They're lined with small thorns. |piano>[Back to the piano.] |return>[Look elsewhere.]{ (set: $target to "piano plant") }](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[There's an indent in the wall. The shell of where a fireplace once was. Inside the nook is a |next>[stereo system and a rack of music CDs.] An top of the mantle there's |skip2>[a vase full of branches](if: !($taken_items contains "mantle photographs"))[ and |skip>[a few framed photographs.]](else:)[.] |return>[Look elsewhere.]{ (set: $target to "nook") }](elseif: $sequence is 14)[The stereo is a fat, gray appliance with two black speakers on either side. The rack of CDs is mostly composed of classical and musicals. |nook>[Back to the nook.] |return>[Look elsewhere.]{ (set: $target to "stereo and CDs") }](elseif: $sequence is 15)[There's a long line of photographs. I recognize Anthony in some of them. And a boy and a girl of varying ages who I take to be his children. (if: $see_hidden is true)[And there's a woman. Embraced. Leaned against. Smiling a fond, small smile at the other people in the photographs.](else:)[The subjects are posed strangely in a lot of these photographs. Arms contorted. Leaning at odd angles.] |nook>[Back to the nook.] |return>[Look elsewhere.]{ (set: $target to "mantle photographs") }](elseif: $sequence is 16)[A glass vase full of sticks. I suppose it's kind of like flowers, but you don't need to bother with water? |nook>[Back to the nook.] |return>[Look elsewhere.]{ (set: $target to "branch vase") }](elseif: $sequence is 17)[ ](elseif: $sequence is 18)[ ](elseif: $sequence is 19)[ ](elseif: $sequence is 20)[ ]{ (set: $basePassage to $currentPassage) (set: $think_time to 1) (set: $location_name to "Living Room") (click: ?coffeeTable)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?piano)[(set: $sequence to 7)(go-to: $currentPassage)] (click: ?nook)[(set: $sequence to 13)(go-to: $currentPassage)] (click: ?anthony)[(set: $sequence to 0)(go-to: "Anthony Lane")] }{ <style> .inv-item { padding: 0 0 1em 16px; text-align: left; } .inv-item tw-hook tw-link { color: #8cf; } .cast-spell { cursor: pointer; font-weight: bold;} </style> <script> function selectItem(e){ seth("item",e.name); seth("action","item"); seth("actionSequence",0); let passage = geth("basePassage"); goToPassage(passage + " Item"); } function populateItems(){ let to_append = ""; let items = geth("items"); items.forEach(function (item, index) { to_append += "<a name=\""+item+"\" onclick='selectItem(this)' class='inv-item-header cast-spell'>"+item+"</a><br><br>"; }); if(items.length == 0) to_append = "<br><i>I have nothing.</i><br><br>"; $("#inv").append(to_append); } populateItems(); </script> }<span class='loss'>//Subject: $target//</span> What item should I use? <span id="inv"></span> |returnBaseSimple>[Nevermind.](if: $sequence is 0)[You are in a place with stuff.{ (set: $target to "living room") <script> updateImage("livingroom2"); </script> (set: $north_text to "") (set: $west_text to "") (set: $east_text to "") (set: $south_text to "") }](elseif: $sequence is 1)[ ](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (set: $location_name to "Living Room") (set: $think_time to 1) (set: $basePassage to $currentPassage) (click: ?frontDoor)[(set: $sequence to 1)(go-to: $currentPassage)] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $target is "living room" and $thought is "Light and shadow is acting strangely.")[I look around the living room, but I don't see any light sources acting strangely. And the shadows here seem to be behaving. |returnFromAction>[Continue]{ }](elseif: $target is "living room" and $thought is "This is unnaturally aged or faded.")[The couch is a little worn out, but that's probably natural. |returnFromAction>[Continue]{ }](elseif: $target is "living room" and $thought is "I should take this.")[There are a lot of things in this room. I should focus on the particular thing I want to take. |returnFromAction>[Continue]{ }](elseif: $target is "coffee table" and $thought is "This is unnaturally aged or faded.")[There are worn spots on the coffee table, but they're all the faint circles of coffee mug bases. Perfectly explicable fading. |returnFromAction>[Continue]{ }](elseif: $target is "coffee table" and $thought is "I should take this.")[That's a coffee table. I can't just slip it in my pocket. |returnFromAction>[Continue]{ }](elseif: $target is "books and magazines" and $thought is "This is unnaturally aged or faded.")[Some of the garden magazines are creased and delicate with wear, but they are also dogeared, so I think that's from use. |returnFromAction>[Continue]{ }](elseif: $target is "books and magazines" and $thought is "A gardening book is missing.")[I browse the stack of books and magazines. I don't find any about gardening. |returnFromAction>[Continue]{ }](elseif: $target is "books and magazines" and $thought is "I should take this." and !($taken_items contains "biography of John Adams"))[I pick up the open book. (set: $target to "biography of John Adams")<span class='self'>//Acquired Item: $target//</span> |returnFromAction>[Continue]{ (set: $sequence to 0) (set: $items to it + (a: $target)) (set: $taken_items to it + (a: $target)) }](elseif: $target is "books and magazines" and $thought is "I should take this." and $taken_items contains "biography of John Adams")[I already took a book from this pile. |returnFromAction>[Continue]{ }](elseif: $target is "piano" and $thought is "This is unnaturally aged or faded.")[The piano is actually very well maintained. The wood of it is glossy with maintained polishing. |returnFromAction>[Continue]{ }](elseif: $target is "piano" and $thought is "I should take this.")[That. Is a piano. So no. I'm not picking it up. |returnFromAction>[Continue]{ }](elseif: $thought is "There's something here that I can't see." and ($target is "piano" or $target is "sheet music" or $target is "stereo and CDs"))[Music is invisible and mystical, but not in the way I'm looking for. |returnFromAction>[Continue]{ }](elseif: $target is "sheet music" and $thought is "This is unnaturally aged or faded.")[Some of the pages of music are creased, but not really aged or faded. |returnFromAction>[Continue]{ }](elseif: $target is "piano plant" and $thought is "This is unnaturally aged or faded.")[This plant is thriving. Not aged or faded at all. |returnFromAction>[Continue]{ }](elseif: $target is "nook" and $thought is "Light and shadow is acting strangely.")[The shape of this crevice is unconventional, so I take a moment to examine the way the light catches on the edge of the nook, and make sure the shadows there are normal. They are. |returnFromAction>[Continue]{ }](elseif: $target is "nook" and $thought is "I should take this.")[It's more an indent in the wall than a distinct object I can pick up. |returnFromAction>[Continue]{ }](elseif: $target is "stereo and CDs" and $thought is "This is unnaturally aged or faded.")[The stereo looks pretty new, actually. |returnFromAction>[Continue]{ }](elseif: $target is "stereo and CDs" and $thought is "I should take this.")[(if: $taken_items contains "musical CD")[I already took a CD. |returnFromAction>[Continue] ](elseif: $taken_items contains "classical CD")[I already took a CD. |returnFromAction>[Continue] ](else:)[There are two kinds of CDs on the rack. Which should I take? |classical>[One of classical music.] |musical>[One of a musical.] |returnFromAction>[Neither] ]{ (click: ?classical)[(set: $target to "classical CD")(set: $sequence to 0)(set: $items to it + (a: $target))(set: $taken_items to it + (a: $target))(set: $target to "")(go-to: $basePassage)] (click: ?musical)[(set: $target to "musical CD")(set: $sequence to 0)(set: $items to it + (a: $target))(set: $taken_items to it + (a: $target))(set: $target to "")(go-to: $basePassage)] }](elseif: $target is "mantle photographs" and $thought is "This is unnaturally aged or faded.")[Some of the photographs are old, but they've been treated with care. If anything, they're unnaturally intact for their age.(if: !($signs_of_bright contains $target))[ The way the people are positioned in some of the photos continues to bother me.] |returnFromAction>[Continue]{ }](elseif: $target is "mantle photographs" and $thought is "Light and shadow is acting strangely.")[Light and shadow shines normally on the $target.(if: !($signs_of_bright contains $target))[ The way the people are positioned in some of the photos continues to bother me.] |returnFromAction>[Continue]{ }](elseif: $target is "mantle photographs" and $thought is "There's something here that I can't see.")[(if: $signs_of_bright contains $target)[The people in these photos are positioned as if they're lean against and embracing someone invisible. There's someone in these photos I can't see.](else:)[That's it. The people in the photos leaning strangely--it's like they're leaning against something invisible. When their arms are stretched out or curled--it's like they're holding someone who isn't there. There's someone in these photos I can't see. (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: $target))] |returnFromAction>[Continue]{ }](elseif: $target is "branch vase" and $thought is "Light and shadow is acting strangely.")[The sticks cast a lot of long, spindly shadows, but I don't think any of them are unnatural. |returnFromAction>[Continue]{ }](elseif: $target is "branch vase" and $thought is "I should take this.")[I try to take the vase, but the spreading sticks make it so unwieldy. I give up. It looks like something they bought at Walmart, anyway. |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Item: $item//</span> (if: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Item: $item//</span> (if: $target is "branch vase" and $item is "flower")[I don't think the flower would be happy there. |returnFromAction>[Continue]{ }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }(if: $sequence is 0)[I'm standing in an orderly kitchen. The walls are lined with |cupboards>[cupboards.] |fridge>[The refrigerator] is |picturesAndPapers>[decorated with pictures and papers.]{ (set: $target to "kitchen") <script> updateImage("kitchen1"); </script> (set: $north_text to "") (set: $west_text to "Living Room") (set: $east_text to "Garden") (set: $south_text to "") }](elseif: $sequence is 1)[I look through some of the cupboards. I find a wealth of well organized kitchen tools and pantry supplies. I notice |next>[a lot of baking equipment.] |return>[Look elsewhere.]{ (set: $target to "cupboards") }](elseif: $sequence is 2)[A truly impressive array of bowls, mixers, measuring cups, and trays. All worn with much use. |cupboards>[Back to the cupboards.] |return>[Look elsewhere.]{ (set: $target to "baking equipment") }](elseif: $sequence is 3)[A small box of over-the-counter laxatives. About half of the pills have been taken. |cupboards>[Back to the cupboards.] |return>[Look elsewhere.]{ (set: $target to "laxatives") }](elseif: $sequence is 4)[I look inside the refrigerator. It's haphazardly supplied with jumbled groceries and takeout containers. I see some fruit that's clearly going bad. |return>[Look elsewhere.]{ (set: $target to "refrigerator") }](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[I examine the papers and photos, fixed to the refrigerator door with magnets. I see:(set: $something_is_here to false) (if: !($taken_items contains "refrigerator calendar"))[|next>[A dry-erase calendar.](set: $something_is_here to true) ](if: !($taken_items contains "refrigerator photos"))[|skip>[Polaroid photos.](set: $something_is_here to true) ](if: !($taken_items contains "refrigerator letters"))[|skip2>[Letters.](set: $something_is_here to true) ](if: !($taken_items contains "refrigerator form"))[|skip3>[A medical form.](set: $something_is_here to true) ](if: $something_is_here is false)[Nothing. The surface is stripped bare. ] |return>[Look elsewhere.]{ (set: $target to "pictures and papers") }](elseif: $sequence is 8)[The dry erase calendar is thick with events, marked precisely in orange marker. I read over one of the weeks: <span class="handwriting">MONDAY - Bakesale fliers - 3PM Sarah to doctor - Football Night TUESDAY - Treasure hunt shopping - 2-5PM Plumber coming - 6PM Susie's baby shower (get gift) WEDNESDAY - Clean - Noon Tabling at market - REMEMBER nice dinner for Anthony's client THURSDAY - 9AM Sarah to neurologist (REMEMBER privacy form) - Groceries FRIDAY - Raffle HAS to be done. - 3PM Mary's Thing? - 7PM Anthony's recital SATURDAY - 2PM Church Bakesale & Raffle! (Brownies and remember folding chairs) SUNDAY - All Day: Church - Sunday school - treasure hunt (REMEMBER prizes) - Football Night</span> |picturesAndPapers>[Back to the refrigerator door.] |return>[Look elsewhere.]{ (set: $target to "refrigerator calendar") }](elseif: $sequence is 9)[There are three photographs. A young man standing proudly in a cap and gown. A woman on horseback, smiling. The man and woman together, much younger, dressed as pumpkins and throwing candy corn at each other. |picturesAndPapers>[Back to the refrigerator door.] |return>[Look elsewhere.]{ (set: $target to "refrigerator photos") }](elseif: $sequence is 10)[Two bunches of letters. One stack is always signed *Arthur*, the other comes from *Stacy XOXOX*. Each letter is brief, barely a paragraph. But there are years worth of them, carefully collated into stacks so thick they need to be held up by multiple, powerful magnets. The top one from Stacy describes how her friend acted pettily at a college party. She requests advice. Arthur's latest letters report on his success and hopes about his internship. |picturesAndPapers>[Back to the refrigerator door.] |return>[Look elsewhere.]{ (set: $target to "refrigerator letters") }](elseif: $sequence is 11)[The form reads: //Acknowledgement of Receipt of the Regional Notice of Privacy Practices I hereby acknowledge that I have received a copy of the Regional *Notice of Privacy Practices* which explains how and by whom my protected health information may be used and disclosed, and my rights relative to my protected health information. Signature of Patient: Sarah Dennin Signature of Patient's Personal Representative: (if: $see_hidden is true)[Miriam Lane](else:)[<span class="glitch">Miriam Lane</span>] If signed by Personal Representative, description of authority: Sister// |picturesAndPapers>[Back to the refrigerator door.] |return>[Look elsewhere.]{ (set: $target to "refrigerator form") }](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[This shelf of plants is practically a jungle. |return>[Look elsewhere.]{ (set: $target to "kitchen plants") <script> updateImage("plants"); </script> }](elseif: $sequence is 16)[ ](elseif: $sequence is 17)[ ](elseif: $sequence is 18)[ ](elseif: $sequence is 19)[ ](elseif: $sequence is 20)[ ]{ (set: $location_name to "Kitchen") (set: $think_time to 1) (set: $basePassage to $currentPassage) (click: ?cupboards)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?fridge)[(set: $sequence to 4)(go-to: $currentPassage)] (click: ?picturesAndPapers)[(set: $sequence to 7)(go-to: $currentPassage)] (click: ?plants)[(set: $sequence to 15)(go-to: $currentPassage)] (if: $birdseed_in_yard is "present")[ (set: $birdseed_in_yard to "eaten") (if: $feather_dropped is false)[(set: $feather_dropped to true)] ] }(if: $sequence is 0)[I'm standing outside. |chairs>[Two outdoor chairs] face away from the house. There are |flowers>[plots of colorful flowers.] |birds>[Birds flit about.](if: $signs_of_bright contains "sky")[ |sky>[The sky is too bright.]]{ (set: $target to "garden") <script> updateImage("yard2"); </script> (set: $north_text to "") (set: $west_text to "Kitchen") (set: $east_text to "") (set: $south_text to "") }](elseif: $sequence is 1)[High backed, sturdy chairs. Made of treated wood to resist the wear of weather. There's a |next>[pile of books] under one of the chairs.(if: !($taken_items contains "birdseed"))[ There's |skip>[some birdseed] under the other.] |return>[Look elsewhere.]{ (set: $target to "chairs") }](elseif: $sequence is 2)[A small pile of magazines and light reading. |chairs>[Back to the chairs.] |return>[Look elsewhere.]{ (set: $target to "garden books") }](elseif: $sequence is 3)[A plastic bag of birdseed. Lettering on its side boasts about its tasty variety and nutrition. |chairs>[Back to the chairs.] |return>[Look elsewhere.]{ (set: $target to "birdseed") }](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[A grand variety of flowers are planted in neat plots.(if: $items contains "flower")[ If I pick another flower, I'll have to discard the one I'm holding. They're delicate, and I can only easily carry one at a time.] |findFlower>[Look for a particular kind of flower.] |return>[Look elsewhere.]{ (set: $target to "flowers") }](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[The garden is alive with birds. Mostly sparrows. (if: $birdseed_in_yard is "none")[Some land close to me, startlingly brave, peering at me curiously, hopping from foot to foot. Expectant. ](elseif: $birdseed_in_yard is "present")[They flutter back and forth, darting towards the birdseed I scattered, then falling back. Not quite bold enough to approach me. ](elseif: $birdseed_in_yard is "eaten")[They fly about, calling to each other and living their small lives. ](if: $feather_dropped is true and !($taken_items contains "sparrow feather"))[|next>[A small brown feather] lies on the ground. ] |return>[Look elsewhere.]{ (set: $target to "birds") <script> updateImage("sparrow1"); </script> }](elseif: $sequence is 12)[A small brown feather. Half-hidden in the grass. |birds>[Back to the birds.] |return>[Look elsewhere.] { (set: $target to "sparrow feather") }](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[I look up at the sky, through the reaching spindly branches of a tree. It's pale. Strangely washed out. Cloudless. A different sky than the one I saw from the front yard, when I arrived.(if: $thoughts contains "The sky over the garden is too bright.")[ (set: $removing_thought to "The sky over the garden is too bright.")(display: "lose thought")](set: $target to "sky")(if: !($signs_of_bright contains $target))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: $target))] |return>[Look elsewhere.]{ <script> updateImage("sky1"); </script> }](elseif: $sequence is 16)[ ](elseif: $sequence is 17)[ ](elseif: $sequence is 18)[ ](elseif: $sequence is 19)[ ](elseif: $sequence is 20)[ ]{ (set: $location_name to "Garden") (set: $think_time to 1) (set: $basePassage to $currentPassage) (click: ?chairs)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?flowers)[(set: $sequence to 7)(go-to: $currentPassage)] (click: ?birds)[(set: $sequence to 11)(go-to: $currentPassage)] (click: ?sky)[(set: $sequence to 15)(go-to: $currentPassage)] (click: ?findFlower)[(set: $sequence to 0)(go-to: "Flowers")] }(if: $sequence is 0)[I'm standing on an upstairs landing.(if: $upstairs_lit is false)[ The lights are off and it's hard to see.](if: $upstairs_found_switch is true)[ There's a |lightswitch>[lightswitch on the wall.]]{ (set: $target to "upstairs") (if: $upstairs_lit is true)[ <script> updateImage("hallway5_lit"); </script> (set: $north_text to "Office") (set: $west_text to "Sewing Room") (set: $east_text to "Bedroom") (set: $south_text to "Living Room") ](else:)[ <script> updateImage("hallway6_dark"); </script> (set: $north_text to "") (set: $west_text to "") (set: $east_text to "") (set: $south_text to "Living Room") ] }](elseif: $sequence is 1)[ ](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (set: $location_name to "Upstairs") (set: $think_time to 1) (set: $basePassage to $currentPassage) (click: ?lightswitch)[ (if: $upstairs_lit is true)[(set: $upstairs_lit to false)] (else:)[(set: $upstairs_lit to true)] <script>playAudio("aa_lightswitch");</script>(go-to: $currentPassage)] }(if: $sequence is 0)[I'm standing in a neat sewing room. A |sewingMachine>[sewing machine] sits on the table. There's a |corkBoard>[wall mounted cork board] with a variety of things tacked to it. There's a |sewingBooks>[shelf of gardening books] on one wall. |scrapFabric>[A pile of scrap fabric] sits on a chair.{ (set: $target to "sewing room") <script> updateImage("sewingRoom3"); </script> (set: $north_text to "") (set: $west_text to "") (set: $east_text to "Upstairs") (set: $south_text to "") }](elseif: $sequence is 1)[It's an old fashioned, workhorse of a sewing machine. Made of dark metal with the company name in gold on the side.(if: !($taken_items contains "formal shirt"))[ It looks like someone left in the middle of a project. There's |next>[a formal shirt] fixed in place under it.](if: !($taken_items contains "unfinished letter"))[ Beside the machine on the desk is |skip>[an unfinished, handwritten letter.]] |return>[Look elsewhere.]{ (set: $target to "sewing machine") <script> updateImage("sewingMachine"); </script> }](elseif: $sequence is 2)[This white, man's formal shirt is halfway through being re-hemmed. |sewingMachine>[Back to the sewing machine.] |return>[Look elsewhere.]{ (set: $target to "formal shirt") }](elseif: $sequence is 3)[The letter reads: <span class="handwriting">Dear Stacy, I'm so sorry you had an unpleasant time at that party. I don't like at all how your friend is behaving--it was thoughtless. Remember that you are wonderful, and you shouldn't spend time with anyone who doesn't see that. You always liked the goldenrod, didn't you? The ones you said looked like sunshine? I have news about it--the birds like it as well. They have made a nest in...</span> The rest of the page is blank. |sewingMachine>[Back to the sewing machine.] |return>[Look elsewhere.]{ (set: $target to "unfinished letter") }](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[The cork board has a grand variety of things fixed to it with tacks. There are tacked up tools: needles, buttons, and measuring tape.(if: !($taken_items contains "dress pattern"))[ There's |next>[a dress pattern.]](if: $found_bird_sketch is true and !($taken_items contains "bird sketch"))[ There's |skip>[a small, sketch of a bird.]] |return>[Look elsewhere.]{ <script> updateImage("sewingRoom3"); </script> (set: $target to "cork board") }](elseif: $sequence is 7)[The dress pattern is intricately cut and looks like it would be challenging to make. There's a note at the bottom: <span class="handwriting">for church auction</span> |corkBoard>[Back to the cork board.] |return>[Look elsewhere.]{ (set: $target to "dress pattern") }](elseif: $sequence is 8)[A small, amateurish drawing of a bird. It was hidden behind other things on the cork board. |corkBoard>[Back to the cork board.] |return>[Look elsewhere.]{ (set: $target to "bird sketch") <script> updateImage("birdSketch1"); </script> }](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[There's one line of books on the sewing room wall. Incongruously, given the focus of this room, they're all on gardening. There's a notable space where one book is missing.(if: $taken_items contains "gardening book")[ There's a second space where I took one.](if: $noted_book_missing is false)[ (set: $noted_book_missing to true)(set: $current_thought to "A gardening book is missing.")(display: "get thought")] |return>[Look elsewhere.]{ <script> updateImage("bookshelf1"); </script> (set: $target to "gardening books") }](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[A relatively neat pile of random pieces of fabric. They range in size from small patches to folded lengths.(if: $lax_found is true and !($taken_items contains "laxatives"))[ There is |next>[a box of laxative pills] tucked into a square of muslin.] |return>[Look elsewhere.]{ (set: $target to "fabric pile") }](elseif: $sequence is 17)[A small box of over-the-counter laxatives, hidden near the bottom of the pile. About half of the pills have been taken. |scrapFabric>[Back to the fabric.] |return>[Look elsewhere.]{ (set: $target to "laxatives") }](elseif: $sequence is 18)[ ](elseif: $sequence is 19)[ ](elseif: $sequence is 20)[ ]{ (set: $location_name to "Sewing Room") (set: $think_time to 1) (set: $basePassage to $currentPassage) (click: ?sewingMachine)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?corkBoard)[(set: $sequence to 6)(go-to: $currentPassage)] (click: ?sewingBooks)[(set: $sequence to 12)(go-to: $currentPassage)] (click: ?scrapFabric)[(set: $sequence to 16)(go-to: $currentPassage)] }(if: $sequence is 0)[I'm standing in an office. (if: !($taken_items contains "office sketchbook"))[There's |sketchbook>[a sketchbook] open on the desk. ](if: !($taken_items contains "office photo"))[|officePhoto>[A group photo] hangs on the wall. ]The walls are lined with |officeBooks>[books.]{ (set: $target to "office") (if: $see_hidden is true)[<script> updateImage("office1"); </script> ](else:)[<script> updateImage("office1_missing_person"); </script>] (set: $north_text to "") (set: $west_text to "") (set: $east_text to "") (set: $south_text to "Upstairs") }](elseif: $sequence is 1)[The leatherbound sketchbook is filled with detailed blueprints and sketches of buildings. The most recent ones are all planning for a department store. |return>[Look elsewhere.]{ (set: $target to "office sketchbook") }](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[(if: $see_hidden is true)[The photo is of two men and two women, dressed well and smiling. I recognize one of the men as a younger Anthony, and beside him, that must be his wife. She's dressed in white and stands slightly behind everyone else. She looks happy, but nervous.](else:)[The photo is of two men and one woman, dressed well and smiling. I recognize one of the men as a younger Anthony.] |return>[Look elsewhere.]{ (set: $target to "office photo") }](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[The books are densely packed onto shelves. A messier line of often-referenced volumes is on the desk. |return>[Look elsewhere.]{ (set: $target to "office books") }](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (set: $location_name to "Office") (set: $think_time to 1) (set: $basePassage to $currentPassage) (click: ?sketchbook)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?officePhoto)[(set: $sequence to 5)(go-to: $currentPassage)] (click: ?officeBooks)[(set: $sequence to 9)(go-to: $currentPassage)] }(if: $sequence is 0)[I'm standing in a bedroom. There's |bed>[a queen sized bed] in the middle of the room. |bedsideTable>[A bedside table] stands beside it.(if: $see_hidden is true)[ (if: $absence_found is true)[|miriam>[$memoryText]](else:)[|shape>[She is absent.]]]{ (set: $target to "bedroom") (if: $see_hidden is true)[<script> updateImage("bedroom1_shape"); </script>](else:)[<script> updateImage("bedroom0"); </script>] (set: $north_text to "") (set: $west_text to "Upstairs") (set: $east_text to "") (set: $south_text to "") }](elseif: $sequence is 1)[A large, comfortable looking bed with soft-looking blanket. The bed is half made. The right side is messy with recent use. (if: $see_hidden is true)[ (if: $absence_found is true)[|miriam>[$memoryText]](else:)[|shape>[She is absent.]]](else:)[The left side is neat.] |return>[Look elsewhere.]{ (set: $target to "bed") }](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[A wooden bedside table. (if: !($taken_items contains "bedside teacup"))[There's |next>[a teacup] on top of the table. ](if: !($taken_items contains "bedside magazine"))[A |skip>[magazine on home gardening] is open on the second shelf. ](if: $taken_items contains "bedside teacup" and $taken_items contains "bedside magazine")[It's empty. ] |return>[Look elsewhere.]{ (set: $target to "bedside table") }](elseif: $sequence is 8)[The teacup is white and delicate. It contains the dried remains of a teabag. It smells faintly of mint. |bedsideTable>[Back to the bedside table.] |return>[Look elsewhere.]{ (set: $target to "bedside teacup") }](elseif: $sequence is 9)[The magazine is open to an article about spring-blooming flowers. On a page all about chrysanthemums, one of the pictures has been circled and a note scribbled below: <span class="handwriting">I want these terribly! Could I find a native replacement?</span> |bedsideTable>[Back to the bedside table.] |return>[Look elsewhere.]{ (set: $target to "bedside magazine") }](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[(if: $memory >= 50)[I can make out the shape of her. I can see her face now.(if: $name_found is false)[ I still need her name.]](else:)[There is an absence on the bed, where (if: $name_found is true)[Miriam Lane](else:)[a woman] should be. I should bring her meaningful things.] (if: $memory >= 50 and $name_found is true)[|storytime>[Tell her story.] ](elseif: $memory >= 50)[|gray>[Tell her story.] (click: ?gray)[//I need her name.//] ](else:)[|gray>[Tell her story.] (click: ?gray)[//Not yet.//] ] <a onclick="giveHerSomething()">Give her something.</a> |return>[Look elsewhere.]{ (if: $memory >= 50)[<script> updateImage("miriamAsleep"); </script>] (set: $target to "absence") }](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (set: $location_name to "Bedroom") (set: $think_time to 1) (set: $basePassage to $currentPassage) (click: ?bed)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?bedsideTable)[(set: $sequence to 7)(go-to: $currentPassage)] (click: ?shape)[(set: $sequence to 0)(go-to: "Find Absence")] (click: ?miriam)[(set: $sequence to 13)(go-to: $currentPassage)] (click: ?storytime)[(set: $sequence to 0)(go-to: "Tell Her Story")] <script> function giveHerSomething(){ populateItems(); $('#modal-container').removeAttr('class').addClass('two'); $('body').addClass('modal-active'); } </script> }(if: $sequence is 0)[Anthony sits on the couch, unhappy and quiet. He looks at me with an expression of awkward hope. |leaveAnthony>[Do something else.]{ (set: $target to "Anthony Lane") (set: $think_time to 1) <script> updateImage("anthony"); </script> }](elseif: $sequence is 1)[ ](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (set: $basePassage to $currentPassage) (set: $think_time to 1) (click: ?leaveAnthony)[(set: $sequence to 0)(go-to: "Living Room")] }(if: $thought is "I should take this." and $valid_items contains $target and $taken_items's length > 7)[I'm carrying too much to take that. I should drop something. |returnFromAction>[Continue]{ }](elseif: $thought is "I should take this." and $valid_items contains $target)[I take the $target. <span class='self'>//Acquired Item: $target//</span> |returnFromAction>[Continue]{ (set: $sequence to 0) (set: $items to it + (a: $target)) (set: $taken_items to it + (a: $target)) }](elseif: $thought is "I should take this.")[No, I don't think I want that. |returnFromAction>[Continue]{ }](elseif: $thought is "Light and shadow is acting strangely.")[Light and shadow shine normally on the $target. |returnFromAction>[Continue]{ }](elseif: $thought is "There's something here that I can't see.")[If there's something here I can't see, I can't see it. |returnFromAction>[Continue]{ }](elseif: $thought is "The sky over the garden is too bright.")[I'm currently inside. If there's something strange about the sky, I can't see it from here. |returnFromAction>[Continue]{ }](elseif: $thought is "This is unnaturally aged or faded.")[This seems appropriately aged and faded. |returnFromAction>[Continue]{ }](elseif: $thought is "A gardening book is missing.")[I don't see the missing gardening book here. |returnFromAction>[Continue]{ }](elseif: $thought is "What is her name?")[This doesn't help me learn her name. |returnFromAction>[Continue]{ }](elseif: $thought is "")[I think of nothing. |returnFromAction>[Continue]{ }](elseif: $action is "think")[I draw no conclusions from that. |returnFromAction>[Continue]{ }]<span class='loss'>//Thought: $thought//</span> (if: $thought is "This is unnaturally aged or faded.")[$jane_name Have you seen anything that's unnaturally aged or faded? $prinn_name Unnaturally? $prinn_name I don't think so. $prinn_name The water boiler's getting old. $prinn_name But that's normal. Things break. |returnFromAction>[Continue]{ }](elseif: $thought is "Light and shadow is acting strangely.")[$jane_name Have you seen light or shadow acting strangely? $prinn_name What an odd question. But yes. $prinn_name I think I told you before. $prinn_name The sky over the garden has been very bright. |returnFromAction>[Continue]{ }](elseif: $thought is "There's something here that I can't see.")[$jane_name Have you noticed signs of something you can't see? $prinn_name How would I know? If I can't see it? $jane_name A lot of ways. You might find yourself moving around a space without knowing why. Never sit in a certain chair. $jane_name Or things around it look off. Stilted. $prinn_name I'm not sure. I'm sorry. |returnFromAction>[Continue]{ }](elseif: $thought is "The sky over the garden is too bright.")[$jane_name You mentioned something about the sky. $prinn_name Yes. The sky over the garden. When you asked I realized how from there, when I look up, it seems brighter. Different from how it looks everywhere else. $prinn_name It's...you're going to think I'm very strange. $jane_name I won't. $prinn_name Sometimes it's like...it's looking at me. |returnFromAction>[Continue]{ }](elseif: $thought is "What is her name?")[He doesn't remember her name, and thinking about that hurts him. No point in asking. |returnFromAction>[Continue]{ }](elseif: $thought is "A gardening book is missing.")[$jane_name There's a book missing from the sewing room. Do you know where it could be? $prinn_name The sewing room is hers. I don't go in there much, so I wouldn't know about that particular book. $prinn_name We leave books all over the house. It's sure to be in one of these stacks. |returnFromAction>[Continue]{ }](elseif: $thought is "I should take this.")[Kidnapping is frowned upon. |returnFromAction>[Continue]{ }](elseif: $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $thought is "")[ |returnFromAction>[Continue]{ }](else:)[I'm not sure what to say about that. |returnFromAction>[Continue]{ }]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $target is "kitchen" and $thought is "Light and shadow is acting strangely.")[I look around the kitchen, but I don't see any light sources acting strangely. And the shadows here seem to be behaving. |returnFromAction>[Continue]{ }](elseif: $target is "cupboards" and $thought is "This is unnaturally aged or faded.")[There are a few nicks and dings, but the cupboards are in alright shape. |returnFromAction>[Continue]{ }](elseif: $target is "cupboards" and $thought is "I should take this.")[There's a lot of stuff in the cupboards. I should be more specific. |returnFromAction>[Continue]{ }](elseif: $target is "baking equipment" and $thought is "I should take this.")[(set: $target to "fish measuring spoons")(if: $taken_items contains $target)[I already took the fish-shaped ceramic measuring spoons. It's probably one of the silliest things I've ever carried around. ](else:)[I search the baking supplies for something that strikes me as particular and meaningful. If find a collection of ceramic measuring spoons shaped like fish. They a slightly chipped with frequent use, and one still has a bit of flour on a fin. <span class='self'>//Acquired Item: $target//</span>(set: $items to it + (a: $target))(set: $taken_items to it + (a: $target)) ]|returnFromAction>[Continue]{ }](elseif: $target is "refrigerator" and $thought is "This is unnaturally aged or faded.")[The rotten food makes me suspicious for a moment. But no. I check the expiration dates. These plums should be exactly as mushy as they are. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator" and $thought is "Light and shadow is acting strangely.")[The stark, unforgiving light of the refrigerator bulb is harsh, but normal. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator" and $thought is "I should take this.")[I browse the contents of the refrigerator. I don't find anything compelling. |returnFromAction>[Continue]{ }](elseif: $target is "pictures and papers" and $thought is "I should take this.")[I should focus on whichever picture or paper I want to take. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator calendar" and $thought is "This is unnaturally aged or faded.")[There are ghost-traces of old words on the calendar. Markings from previous schedules, imperfectly rubbed away. Faded yes. But in an understandable way. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator calendar" and $thought is "There's something here that I can't see.")[It is a VERY busy schedule, and I feel like I could reflect on it and intuit a lot that's unsaid about life in this household. But I can't discern anything that's mystically hidden. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator photos" and $thought is "This is unnaturally aged or faded.")[The photo of children in costumes is creased with age, but that makes sense given how old those children are now. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator letters" and $thought is "There's something here that I can't see.")[I get the sense that there are things unsaid in these letters. That's the way of things with most human communication. But I can't discern anything that's mystically hidden. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator letters" and $thought is "This is unnaturally aged or faded.")[The letters are conveniently ordered chronologically, and the wear matches my estimate of their age. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator form" and $thought is "This is unnaturally aged or faded.")[It's a crisp, new form. |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator form" and $thought is "There's something here that I can't see.")[I peer at the signature on the form. //Signature of Patient's Personal Representative: <span class="glitch">Miriam Lane</span>// The name is blurred and twitching. My eyes ache, looking at it. Like looking at the sun. Yes. There's definitely something there. And I can't see it.(if: !($signs_of_bright contains $target))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: $target))] |returnFromAction>[Continue]{ }](elseif: $target is "refrigerator form" and $thought is "What is her name?")[The signature beside //Patient's Personal Representative//. Written in clean cursive--clear enough to read. Miriam Lane. There you are. <span class='loss'>//Discarded Thought: $thought//</span>(set: $thoughts to $thoughts - (a: $thought)) |returnFromAction>[Continue]{ <script>playAudio("aa_clue");</script> (set: $name_found to true) }](elseif: $target is "kitchen plants" and $thought is "Light and shadow is acting strangely.")[It's hard to trace the natural movement of light through all the leaves. I don't think I see anything off? |returnFromAction>[Continue]{ }](elseif: $target is "kitchen plants" and $thought is "This is unnaturally aged or faded.")[Some of the plants are a bit wilted. But I touch the soil and find an explanation. They haven't been watered for a while. |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $thought is "The sky over the garden is too bright.")[{ (set: $sequence to 15)(go-to: $basePassage) }](elseif: $target is "garden" and $thought is "Light and shadow is acting strangely.")[My skin prickles. The space around me feels washed out. Subdued. Light falls more on the house than on the garden, illuminating an upstairs window like a spotlight.(if: !($signs_of_bright contains "strange light outside"))[ (set: $memory_change to $vision_change_big)(display: "memory change")(set: $signs_of_bright to it + (a: "strange light outside"))] |returnFromAction>[Continue]{ }](elseif: $target is "garden" and $thought is "This is unnaturally aged or faded.")[The garden seems healthy. Though upkeep is suffering a little. |returnFromAction>[Continue]{ }](elseif: $target is "garden" and $thought is "I should take this.")[There are many things in the garden. I should focus on what I want to take. |returnFromAction>[Continue]{ }](elseif: $target is "chairs" and $thought is "This is unnaturally aged or faded.")[The chairs are durable. Solid wood, fortified against wear. |returnFromAction>[Continue]{ }](elseif: $target is "chairs" and $thought is "Light and shadow is acting strangely.")[The chairs cast solid, sensible shadows. There's something strange about light in this area, but it's not down here. |returnFromAction>[Continue]{ }](elseif: $target is "chairs" and $thought is "I should take this.")[They're too big to carry around. |returnFromAction>[Continue]{ }](elseif: $target is "garden books" and $thought is "This is unnaturally aged or faded.")[The books have water damage. Probably they were forgotten out here, and rain dripped down through the chair slats. |returnFromAction>[Continue]{ }](elseif: $target is "garden books" and $thought is "A gardening book is missing.")[I browse the books stacked under the chair. I find a book about gardening that matches the style of books in the sewing room. (set: $removing_thought to $thought)(display: "lose thought") It's slightly water damaged and the spine is soft with how often its been read. The pages are covered in small notes. I pick it up and make a mental note to read it as soon as I have the chance. (set: $current_item to "Native Flower Journal")(display: "get item") |returnFromAction>[Continue]{ }](elseif: $target is "birdseed" and $thought is "This is unnaturally aged or faded.")[The expiration date on the birdseed is months in the future, and it still looks new. |returnFromAction>[Continue]{ }](elseif: $target is "flowers" and $thought is "Light and shadow is acting strangely.")[Plants cast complicated shadows. It's hard to trace them accutately. There's something strange about light in this area, but it's not down here. |returnFromAction>[Continue]{ }](elseif: $target is "flowers" and $thought is "This is unnaturally aged or faded.")[Most of the flowers are growing healthily. When I look close, I see that some are overgrowing their patches, or are a bit weedy. This place is healthy with long care, but that care has been absent recently. |returnFromAction>[Continue]{ }](elseif: $target is "flowers" and $thought is "There's something here that I can't see.")[There are many flower beds, some thick and bush-like. Something could easily be hidden among them. |returnFromAction>[Continue]{ }](elseif: $target is "flowers" and $thought is "I should take this.")[(go-to: "Flowers"){ }](elseif: $target is "birds" and $thought is "This is unnaturally aged or faded.")[The birds don't sing. But perhaps that's because of my presence. |returnFromAction>[Continue]{ }](elseif: $target is "birds" and $thought is "I should take this.")[They're small and quick. I can't catch them. |returnFromAction>[Continue]{ }](elseif: $target is "sky" and $thought is "Light and shadow is acting strangely.")[Squinting my eyes, I examine how light falls from the too-bright sky. I notice that it falls more on the house than on the garden, illuminating an upstairs window like a spotlight.(if: !($signs_of_bright contains "strange light outside"))[ (set: $memory_change to $vision_change_big)(display: "memory change")(set: $signs_of_bright to it + (a: "strange light outside"))] |returnFromAction>[Continue]{ }](elseif: $target is "sky" and $thought is "This is unnaturally aged or faded.")[I'm not sure how I would tell if the sky was too old, or fading. It's certainly too bright. |returnFromAction>[Continue]{ }](elseif: $target is "sky" and $thought is "There's something here that I can't see.")[It's hard to look at the sky--I have to squint against the brightness. But I can look at it. And it looks empty. |returnFromAction>[Continue]{ }](elseif: $target is "sky" and $thought is "I should take this.")[There's some weird poetry to that impulse. But no. |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $target is "upstairs" and $thought is "There's something here that I can't see." and $upstairs_found_switch is false)[There is indeed something here I can't see, due to perfectly mundane darkness. I grope around until I find the lightswitch. |clickReturn>[Click]{ (set: $used_thoughts to it - (a: "There's something here that I can't see./upstairs")) (set: $upstairs_found_switch to true) (click: ?clickReturn)[(set: $target to "")(set: $upstairs_lit to true)<script>playAudio("aa_lightswitch");</script>(go-to: $basePassage)] }](elseif: $target is "upstairs" and $thought is "Light and shadow is acting strangely." and $upstairs_lit is false)[It's too dark for me to see if this darkness is strange or not. |returnFromAction>[Continue]{ (set: $used_thoughts to it - (a: "Light and shadow is acting strangely./upstairs")) }](elseif: $target is "upstairs" and $thought is "Light and shadow is acting strangely." and $upstairs_lit is true)[The light from the ceiling lamp falls obviously incorrectly. It's like it's drawn towards one of the rooms, pooling there and leaving other corners in shadow. A spotlight on the door.(if: !($signs_of_bright contains $target))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: $target))] I peek inside. That door leads to a bedroom. There's something strange about the carpet in front of it. |returnFromAction>[Continue]{ }](elseif: $target is "upstairs" and $thought is "This is unnaturally aged or faded." and $upstairs_lit is false)[It's too dark for me to see if anything here is faded. |returnFromAction>[Continue]{ (set: $used_thoughts to it - (a: "This is unnaturally aged or faded./upstairs")) }](elseif: $target is "upstairs" and $thought is "This is unnaturally aged or faded." and $upstairs_lit is true)[The paint around the bedroom door is peeling. The carpet just under the doorframe is discolored.(set: $target to "upstairs faded")(if: !($signs_of_bright contains $target))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: $target))] |returnFromAction>[Continue]{ }](elseif: $target is "upstairs" and $thought is "There's something here that I can't see." and $upstairs_found_switch is true)[I found the lightswitch. I don't think there's anything else hidden in this transitional space. |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $target is "office" and $thought is "Light and shadow is acting strangely.")[I glance around the office. Nothing immediately jumps out to me as strange about the lighting. |returnFromAction>[Continue]{ }](elseif: $target is "office" and $thought is "This is unnaturally aged or faded.")[Some of the things in here are old, but nothing strangely so. |returnFromAction>[Continue]{ }](elseif: $target is "office" and $thought is "I should take this.")[There are a few things in the office. I should focus on what I want to take. |returnFromAction>[Continue]{ }](elseif: $target is "office sketchbook" and $thought is "This is unnaturally aged or faded.")[The sketchbook is relatively new. Yet already mostly filled with drawings and diagrams. |returnFromAction>[Continue]{ }](elseif: $target is "office sketchbook" and $thought is "There's something here that I can't see.")[I flip through a few pages of the sketchbook to get a better sense of it. Earlier pictures are of a townhouse. |returnFromAction>[Continue]{ }](elseif: $target is "office sketchbook" and $thought is "A gardening book is missing.")[This is a sketchbook--not a gardening book. |returnFromAction>[Continue]{ }](elseif: $target is "office photo" and $thought is "This is unnaturally aged or faded.")[The photo looks old, but actually fairly well preserved for its age. |returnFromAction>[Continue]{ }](elseif: $target is "office photo" and $thought is "There's something here that I can't see.")[That gap between the woman and the two men. It's such a strange, random bit of distance. Why aren't they standing together? Like people usually do in group photos? I think there's someone there that I can't see.(if: !($signs_of_bright contains $target))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: $target))] |returnFromAction>[Continue]{ }](elseif: $target is "office books" and $thought is "This is unnaturally aged or faded.")[The books I browse over look worn in way appropriate to their age. |returnFromAction>[Continue]{ }](elseif: $target is "office books" and $thought is "There's something here that I can't see.")[I open a few of the desk books and glance through them. The contents match the covers. |returnFromAction>[Continue]{ }](elseif: $target is "office books" and $thought is "A gardening book is missing.")[I browse the books here, but I don't find any about gardening. |returnFromAction>[Continue]{ }](elseif: $target is "office books" and $thought is "I should take this." and $taken_items contains "architecture book")[I already took a book from the office. I don't feel the need to load up on them. |returnFromAction>[Continue]{ }](elseif: $target is "office books" and $thought is "I should take this." and !($taken_items contains "architecture book"))[I take a book at random from a shelf. It's about modern architecture. (set: $target to "architecture book")<span class='self'>//Acquired Item: $target//</span> |returnFromAction>[Continue]{ (set: $sequence to 0) (set: $items to it + (a: $target)) (set: $taken_items to it + (a: $target)) }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $target is "sewing room" and $thought is "Light and shadow is acting strangely.")[Light and shadow seem normal in this room. |returnFromAction>[Continue]{ }](elseif: $target is "sewing room" and $thought is "I should take this.")[I can't take the entire room. I should focus on whatever particular thing I want to pick up. |returnFromAction>[Continue]{ }](elseif: $target is "sewing machine" and $thought is "This is unnaturally aged or faded.")[This machine is old, but has endured the years VERY well. The sort of thing that was built to last. |returnFromAction>[Continue]{ }](elseif: $target is "sewing machine" and $thought is "I should take this.")[The machine is to large for me to carry. Plus, I think it's actually attached to the table it's on. |returnFromAction>[Continue]{ }](elseif: $target is "formal shirt" and $thought is "This is unnaturally aged or faded.")[The formal shirt is a little old and worn, but that makes sense--it's here to be mended. |returnFromAction>[Continue]{ }](elseif: $target is "formal shirt" and $thought is "There's something here that I can't see.")[The formal shirt is missing a few buttons. I think that it's just that it's actually missing buttons, not that they're mystically hidden from me. |returnFromAction>[Continue]{ }](elseif: $target is "cork board" and $thought is "This is unnaturally aged or faded.")[The things on the cork board seem appropriately aged and faded. |returnFromAction>[Continue]{ }](elseif: $target is "cork board" and $thought is "Light and shadow is acting strangely.")[The cork board is too flat to cast much of a shadow. |returnFromAction>[Continue]{ }](elseif: $target is "cork board" and $thought is "There's something here that I can't see." and $found_bird_sketch is false)[I move the things hanging off the cork board to see if anything is hidden behind them. Tucked behind the dress pattern, tacked up and forgotten, I find a sketch of a bird. |goToBird>[Continue]{ (set: $found_bird_sketch to true) <script>playAudio("aa_clue");</script> }](elseif: $target is "cork board" and $thought is "There's something here that I can't see." and $found_bird_sketch is true)[Nothing else is hidden on the cork board. |returnFromAction>[Continue]{ }](elseif: $target is "cork board" and $thought is "I should take this.")[The cork board is firmly attached to the wall. I can't take the whole thing. But I could unpin and pick up one of thing tacked to it. |returnFromAction>[Continue]{ }](elseif: $target is "dress pattern" and $thought is "This is unnaturally aged or faded.")[The dress pattern is crisply folded and new. |returnFromAction>[Continue]{ }](elseif: $target is "dress pattern" and $thought is "There's something here that I can't see." and $found_bird_sketch is false)[I move the dress pattern to the side to see if there's anything behind it. Tucked behind, tacked up and forgotten, I find a sketch of a bird. |goToBird>[Continue]{ (set: $found_bird_sketch to true) <script>playAudio("aa_clue");</script> }](elseif: $target is "dress pattern" and $thought is "There's something here that I can't see." and $found_bird_sketch is true)[Nothing else is hidden behind the dress pattern. |returnFromAction>[Continue]{ }](elseif: $target is "dress pattern" and $thought is "I should take this." and $found_bird_sketch is false)[I take the $target. <span class='self'>//Acquired Item: $target//</span> As I pull the pattern off of the cork board, I notice something that was hidden behind it. Tacked up and forgotten A sketch of a bird. |goToBird>[Continue]{ (set: $found_bird_sketch to true) <script>playAudio("aa_clue");</script> (set: $items to it + (a: $target)) (set: $taken_items to it + (a: $target)) }](elseif: $target is "gardening books" and $thought is "There's something here that I can't see.")[A book does appear to be missing. I touch the space. Nope, there's nothing unseen there. A normal case of a missing book. |returnFromAction>[Continue]{ }](elseif: $target is "gardening books" and $thought is "This is unnaturally aged or faded.")[The books on gardening are creased with use and dogeared. Well loved. Not unnaturally faded. |returnFromAction>[Continue]{ }](elseif: $target is "gardening books" and $thought is "A gardening book is missing.")[There's a notable space where one book is missing. |returnFromAction>[Continue]{ }](elseif: $target is "gardening books" and $thought is "I should take this.")[(set: $target to "gardening book")(if: $taken_items contains $target)[I already have a book on gardening. ](else:)[I don't know much about gardening, so can't judge if one of these books is better than the others. And they all seem similarly used. I pick one at random. <span class='self'>//Aquired Item: $target//</span>(set: $items to it + (a: $target))(set: $taken_items to it + (a: $target)) ]|returnFromAction>[Continue]{ }](elseif: $target is "bird sketch" and $thought is "This is unnaturally aged or faded.")[The paper is fresh and smooth. This was made recently, or has been handled only rarely. |returnFromAction>[Continue]{ }](elseif: $target is "bird sketch" and $thought is "There's something here that I can't see.")[I wonder why this was hidden? |returnFromAction>[Continue]{ }](elseif: $target is "unfinished letter" and $thought is "There's something here that I can't see.")[I don't think the rest of the letter is hidden--it's just genuinely unfinished. |returnFromAction>[Continue]{ }](elseif: $target is "unfinished letter" and $thought is "This is unnaturally aged or faded.")[The paper is new and the ink is fresh. |returnFromAction>[Continue]{ }](elseif: $target is "fabric pile" and $thought is "There's something here that I can't see." and $taken_items contains "square of fabric")[I already have some fabric. I don't think I need more. |returnFromAction>[Continue]{ }](elseif: $target is "fabric pile" and $thought is "There's something here that I can't see." and $lax_found is true)[I rummage around in the fabric pile. I find nothing new. |returnFromAction>[Continue]{ }](elseif: $target is "fabric pile" and $thought is "I should take this." and $taken_items contains "square of fabric")[I already took a piece of fabric. I don't think I need another. |returnFromAction>[Continue]{ }](elseif: $target is "fabric pile" and $thought is "I should take this." and $lax_found is false)[I rummage around in the fabric pile and find a representative piece of fabric. (set: $target to "square of fabric")<span class='self'>//Acquired Item: $target//</span> I encounter something hard in the pile. Not fabric. Near the bottom, wrapped in a square of muslin, I find a box of laxative pills. That's...out of place. |goToLax>[Continue]{ (set: $lax_found to true) (set: $items to it + (a: $target)) (set: $taken_items to it + (a: $target)) }](elseif: $target is "fabric pile" and $thought is "I should take this." and $lax_found is true)[I rummage around in the fabric pile and find a representative piece of fabric. (set: $target to "square of fabric")<span class='self'>//Acquired Item: $target//</span> |returnFromAction>[Continue]{ (set: $items to it + (a: $target)) (set: $taken_items to it + (a: $target)) }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?goToBird)[(set: $sequence to 8)(set: $target to "")(go-to: $basePassage)] (click: ?goToLax)[(set: $sequence to 17)(set: $target to "")(go-to: $basePassage)] }<span class='loss'>//Subject: $target Thought: $thought//</span> (if: $target is "bedroom" and $thought is "Light and shadow is acting strangely.")[Light in this room is VERY strange. Sunlight shines through the window, but it twists as it enters the room. It falls only the left side of the bed and leaves the walls and corners in shadow.(if: !($signs_of_bright contains "bedroom light"))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: "bedroom light"))] I should search this area very thoroughly. |returnFromAction>[Continue]{ }](elseif: $target is "bedroom" and $thought is "This is unnaturally aged or faded.")[I find a spot on the ceiling where it looks like the paint has been worn away. It's immediately above the bed.(if: !($signs_of_bright contains "bedroom fade"))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: "bedroom fade"))] |returnFromAction>[Continue]{ }](elseif: $target is "bedroom" and $thought is "There's something here that I can't see.")[I search the shadows in the corners of this room. I find nothing strange. |returnFromAction>[Continue]{ }](elseif: $target is "bedroom" and $thought is "I should take this.")[I should focus on the specific thing I want to take. |returnFromAction>[Continue]{ }](elseif: $target is "bedroom" and $thought is "What is her name?")[I wish she could tell me her name. But the fact that she can't is the entire problem. |returnFromAction>[Continue]{ }](elseif: $target is "bed" and $thought is "This is unnaturally aged or faded.")[The blanket on the left side of the bed is discolored with age, and the seams along its edge are fraying. But the same blanket on the right side looks fine, if a bit messy, since that side of the bed is unmade.(if: !($signs_of_bright contains "bed fade"))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: "bed fade"))] |returnFromAction>[Continue]{ }](elseif: $target is "bed" and $thought is "Light and shadow is acting strangely.")[It's like the left side of the bed is under a spotlight. It's like all of the light in the room is being sucked towards that space.(if: !($signs_of_bright contains "bed light"))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: "bed light"))] |returnFromAction>[Continue]{ }](elseif: $target is "bed" and $thought is "There's something here that I can't see.")[There's a faint divot in mattress on the left side of the bed. As if something lay here in exactly the same position for a very long time.(if: !($signs_of_bright contains "bed unseen"))[ (set: $memory_change to $vision_change)(display: "memory change")(set: $signs_of_bright to it + (a: "bed unseen"))] |returnFromAction>[Continue]{ }](elseif: $target is "bed" and $thought is "I should take this.")[That wouldn't work on a number of levels. |returnFromAction>[Continue]{ }](elseif: $target is "bed" and $thought is "What is her name?")[I wish she could tell me her name. But the fact that she can't is the entire problem. |returnFromAction>[Continue]{ }](elseif: $target is "bedside table" and $thought is "Light and shadow is acting strangely.")[A glancing blow of twisted sunlight illuminates only part of the bedside table. It seems wrong, but I feel like I'd need to step back and examine the entire room to understand exactly what's happening. |returnFromAction>[Continue]{ }](elseif: $target is "bedside table" and $thought is "I should take this.")[It's small, for a table, but would still be unweildy to carry. |returnFromAction>[Continue]{ }](elseif: $target is "bedside teacup" and $thought is "Light and shadow is acting strangely.")[A glancing blow of twisted sunlight illuminates the teacup. It seems wrong, but I feel like I'd need to step back and examine the entire room to understand exactly what's happening. |returnFromAction>[Continue]{ }](elseif: $target is "bedside teacup" and $thought is "This is unnaturally aged or faded.")[This tea cup has been left out long enough for its contents to evaporate and dry out. But that doesn't take terribly long, in the grand scheme of things. |returnFromAction>[Continue]{ }](elseif: $target is "bedside magazine" and $thought is "Light and shadow is acting strangely.")[A glancing blow of twisted sunlight illuminates the magazine. It seems wrong, but I feel like I'd need to step back and examine the entire room to understand exactly what's happening. |returnFromAction>[Continue]{ }](elseif: $target is "bedside magazine" and $thought is "A gardening book is missing.")[This is a magazine that's about gardening. But it's not the book that's missing from the sewing room shelf. |returnFromAction>[Continue]{ }](elseif: $target is "absence" and $thought is "What is her name?")[I wish she could tell me her name. But the fact that she can't is the entire problem. |returnFromAction>[Continue]{ }](elseif: $target is "miriam" and $thought is "What is her name?")[I wish she could tell me her name. But the fact that she can't is the entire problem. |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $thought is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Thoughts")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }(if: $item is "Native Flower Journal")[{ (set: $actionSequence to 0) (go-to: "Native Flower Journal") }](elseif: $item is "tattered poem")[I read the poem again: <span class="handwriting">I used to think small talk was pointless. but then I heard the words under the words. 'I love you. I love you. I love you.' over and over while we pretend to talk about the weather.</span> |returnFromAction>[Continue]{ }](elseif: $action is "item")[I can't think of a way to use that here. |returnFromAction>[Continue]{ }]<span class='loss'>//Subject: $target Item: $item//</span> (if: $target is "kitchen" and $item is "bedside teacup")[I put the dirty teacup in the sink. <span class='self'>//Discarded Item: $target//</span> A mote of order is restored to the world. |returnFromAction>[Continue]{ (set: $items to it - (a: $target)) }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Item: $item//</span> (if: $target is "birds" and $item is "birdseed" and $birdseed_in_yard is "none")[I scatter some birdseed. The sparrows flutter closer, but still eye me warily. I doubt they'll eat while I'm still here. |returnFromAction>[Continue]{ (set: $birdseed_in_yard to "present") }](elseif: $target is "birds" and $item is "birdseed" and $birdseed_in_yard is "present")[The ground is already littered with birdseed. The sparrows are fluttering back and forth, flirting with approaching it, but eyeing me warily. I doubt they'll eat while I'm still here. |returnFromAction>[Continue]{ }](elseif: $target is "birds" and $item is "birdseed" and $birdseed_in_yard is "eaten")[I scatter more birdseed. A few sparrows flutter closer. There's less immediate interest than there was the first time. |returnFromAction>[Continue]{ (set: $birdseed_in_yard to "present") }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Item: $item//</span> (if: $target is "gardening books" and $item is "Native Flower Journal")[Yeah, that's where it goes. But I want to keep this book. |returnFromAction>[Continue]{ }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Item: $item//</span> (if: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }<span class='loss'>//Subject: $target Item: $item//</span> (if: $absence_found is not true)[(display: "Default Items")](elseif: $target is "bedroom" or $target is "bed" or $target is "absence")[Should I give the $item to her? |adjustSelf>[Yes.] |returnFromAction>[No.]{ }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?adjustSelf)[(set: $sequence to 0)(go-to: "Adjust Self")] }<span class='loss'>//Subject: $target Item: $item//</span> (if: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](elseif: $target is "" and $item is "")[ |returnFromAction>[Continue]{ }](else:)[(display: "Default Items")]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }(if: $game_phase is "There's something I can't see...")[I am searching Anthony Lane's house for signs of Light. I am searching for: <span class="emph">//light and shadow acting strangely things unnaturally aged or faded signs of something I can't see//</span> When I see something that might be relevant, I should THINK about it. ](elseif: $game_phase is "Searching for her")[My vision has acclimated to the Light in this house. I should be able to see things I couldn't see before. I should retrace my steps. Reexamine anything where there was something I couldn't see. ](elseif: $game_phase is "looking for objects")[There is an absence in the bedroom, where (if: $name_found is true)[Miriam Lane](else:)[a woman] should be. I should bring her meaningful things. Objects that will remind her of who she is. I can collect them with the Thought: <span class="emph">//I should take this.//</span> Some objects will help her, but some represent the forces that drained away her sense of self. They could destroy her. I must choose carefully. The best things will be private things, personal things, that are hers and only hers. ]|returnFromAction>[Continue](if: $actionSequence is 0)[At first the light blinds you. But eventually, you adjust. And you can see again. My vision has acclimated. I should be able to see things I couldn't see before. I should retrace my steps. Reexamine anything where there was something I couldn't see. |nextAction>[Continue]{ <script> playAudio("aa_chime"); $("#label-memory").removeClass("active-shimmer"); $("#label-memory").addClass("active-shimmer"); </script> (set: $memoryText to "I can see in this Light.") (set: $see_hidden to true) (set: $sequence to 0) }](elseif: $actionSequence is 1)[I discard thoughts that are no longer useful to me. <span class='self'>//Discarded Thought: Light and shadow is acting strangely.//</span> <span class='self'>//Discarded Thought: This is unnaturally aged or faded.//</span> <span class='self'>//Discarded Thought: There's something here that I can't see.//</span> |returnFromHere>[Continue]{ (set: $thoughts to $thoughts - (a: "Light and shadow is acting strangely.")) (set: $thoughts to $thoughts - (a: "This is unnaturally aged or faded.")) (set: $thoughts to $thoughts - (a: "There's something here that I can't see.")) (click: ?returnFromHere)[(set: $target to "")(go-to: $basePassage)] }](if: $sequence is 0)[There is a space on the bed. An absence. Where someone should be, but very distinctly, isn't. |next>[Continue]{ (set: $game_phase to "looking for objects") (set: $memoryText to "She Is Absent") (set: $memory to 10) (set: $absence_found to true) <script>playAudio("aa_clue");</script> }](elseif: $sequence is 1)[Sometimes people give pieces of themselves away. They give away time. Energy. Thoughts. Self. Sometimes they give too much and who they are wears thin. |next>[Continue]{ }](elseif: $sequence is 2)[They become an absence. A hole in the world. And a terrible Light shines through. |next>[Continue]{ }](elseif: $sequence is 3)[It aches, slightly, to be in the same room as this. But I have protections. My mask, and my gloves, and my memories. I kneel down beside the place where she isn't. |next>[Continue]{ }](elseif: $sequence is 4)[I pull out a spool of black thread and drape the end over her. Her outline barely troubles the thread. It falls through her only slightly more slowly than it would sink through thin air. She has given away so much of herself that she barely exists. Bringing her back will be a delicate process, if I can manage it at all. |next>[Continue]{ <script> updateImage("bedroom1_absence_close"); </script> }](elseif: $sequence is 5)[I should start by bringing her meaningful things. Objects that will remind her of who she is. I can search the house. (set: $current_thought to "I should take this.")(display: "get thought") |next>[Continue]{ }](elseif: $sequence is 6)[But I need to be careful--she got this way because things around her drained away her sense of self. There are many objects here that I'm sure are terribly imporant to her. Things that she sunk time and energy into, and that, in this delicate state, would destroy her. The best things will be private ones, personal things, that are hers and only hers. |next>[Continue]{ }](elseif: $sequence is 7)[It is also important that I learn her name. (set: $current_thought to "What is her name?")(display: "get thought") |returnFromHere>[Continue]{ (click: ?returnFromHere)[(set: $target to "")(set: $sequence to 0)(go-to: $basePassage)] }](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (click: ?place)[(set: $sequence to 1)(go-to: $currentPassage)] }(if: $item is "Native Flower Journal")[No. I want to keep that. |returnFromAction>[Continue]{ }](else:)[I return the $item to where I found (if: (substring: $item, $item's length, $item's length) is "s")[them](else:)[it]. <span class='loss'>//Discarded Item: $item//</span> |returnFromAction>[Continue]{ (set: $items to it - (a: $item)) (set: $taken_items to it - (a: $item)) }]<span class='loss'>//Subject: $target Item: $item//</span> (if: $item is in $tried_items)[I've tried that already. |returnToHer>[Continue]{ }](elseif: $item is "flower" and $given_items contains $current_flower)[I've already given her that particular flower. |returnToHer>[Continue]{ }](elseif: $item is "flower" and $flower_items contains $current_flower)[I put the flower down beside her. Her outline shifts. Becomes stronger. More solid.(set: $memory_change to $small_change)(if: !($given_items contains "flower"))[ She even turns slightly, as if she notices it particularly.(set: $memory_change to it + $small_change)] (display: "self change") |returnToHer>[Continue]{ (set: $items to it - (a: $item)) (set: $given_items to it + (a: $current_flower)) (if: !($given_items contains "flower"))[(set: $given_items to it + (a: "flower"))] }](elseif: $item is "flower" and $given_items contains "flower")[I put the flower down beside her. Nothing changes. It occurs to me--I've already given her a flower. More of the same probably won't change anything, unless they're special in some way. |returnToHer>[Continue]{ (set: $items to it - (a: $item)) (set: $given_items to it + (a: $item)) }](elseif: $item is "flower")[I put the flower down beside her. Her outline shifts. Becomes stronger. More solid. (set: $memory_change to $small_change)(display: "self change") |returnToHer>[Continue]{ (set: $items to it - (a: $item)) (set: $given_items to it + (a: $item)) }](elseif: $item is "Native Flower Journal")[(if: $given_items contains "Native Flower Journal")[I lay the journal beside her, but it's already done all that it can for her. I retrieve it. I may still want to consult it. |returnToHer>[Continue]{ }](else:)[As I put the $item down by her body, her outline shifts. Becomes stronger. More solid. (set: $memory_change to $small_change)(display: "self change") I retrieve the journal afterwards. I may still want to consult it. |returnToHer>[Continue]{ (set: $given_items to it + (a: $item)) }]](elseif: $item is in $very_negative_items)[As I put the $item down by her body, her outline flickers and trembles. She convulses, as if in pain. (set: $memory_change to -$medium_change)(display: "self change") I take it away before it can do more damage. |returnToHer>[Continue]{ (set: $tried_items to it + (a: $item)) }](elseif: $item is in $negative_items)[As I put the $item down by her body, her outline flickers. Like she's flinching away from it. (set: $memory_change to -$small_change)(display: "self change") I take it away before it can do more damage. |returnToHer>[Continue]{ (set: $tried_items to it + (a: $item)) }](elseif: $item is in $positive_items)[As I put the $item down by her body, her outline shifts. Becomes stronger. More solid. (set: $memory_change to $small_change)(display: "self change") |returnToHer>[Continue]{ (set: $items to it - (a: $item)) (set: $given_items to it + (a: $item)) }](elseif: $item is in $uncertain_items)[I put the $item down by her. I watch as her outline vacillates wildly. Thinning and thickening in waves. Rippling with indecision. This is something that she derives significant identity from, but that also drains her. In the end, she doesn't seem to have significantly improved or declined. I take it away. It might make her unstable. |returnToHer>[Continue]{ (set: $tried_items to it + (a: $item)) }](elseif: $item is "bedside magazine" or $item is "bedside teacup")[I put the $item down by her. It doesn't seem to affect her. But that may be because it's been sitting right beside her all this time. And moving it a couple of feet doesn't change much. I retrieve it. |returnToHer>[Continue]{ }](elseif: $item is "")[ |returnToHer>[Continue]{ }](elseif: $item is "")[ |returnToHer>[Continue]{ }](elseif: $item is "")[ |returnToHer>[Continue]{ }](elseif: $item is "")[ |returnToHer>[Continue]{ }](else:)[It doesn't seem to affect her at all. I retrieve the $item. |returnToHer>[Continue]{ }]{ (click: ?returnToHer)[ (set: $death to "") (set: $remaining_positive to $positive_items - $given_items) (set: $points_to_earn to $remaining_positive's length * 10) (if: $memory < 1)[(set: $death to "void")] (elseif: $points_to_earn + $memory < 50)[(set: $death to "decline")] (if: $death is "void")[ (set: $sequence to 0) (go-to: "Death") ](elseif: $death is "decline")[ (set: $sequence to 0) (go-to: "Decline") ](else:)[ (set: $sequence to 13) (go-to: "Bedroom") ] ] }<span class='loss'>//Item: $item//</span> (if: $item is "refrigerator calendar")[$jane_name Can you tell me anything about this? $prinn_name That's the home calendar. $prinn_name For household things. She keeps it. $prinn_name Kept it. |returnFromAction>[Continue]{ }](elseif: $item is "refrigerator form")[$jane_name Can you tell me anything about this? $prinn_name That's for Sarah's appointment. $prinn_name My wife's sister. She's older than us. $prinn_name She has some memory problems. A condition. She relies on... $prinn_name She relies on us. |returnFromAction>[Continue]{ }](elseif: $item is "refrigerator letters")[$jane_name Can you tell me anything about this? $prinn_name Those are all from Arthur and Anastasia. $prinn_name They're fair correspondents. For children. $prinn_name Ha. Not children anymore. Not really. $prinn_name Arthur's working for a law firm. We're very proud. |returnFromAction>[Continue]{ }](elseif: $item is "refrigerator photos")[$jane_name Can you tell me anything about this? $prinn_name Oh, look at them. This is the day Arthur graduated. And Anastasia at camp. $prinn_name And this is from long ago. Arthur was seven. $prinn_name They were fine pumpkins. |returnFromAction>[Continue]{ }](elseif: $item is "fish measuring spoons")[$jane_name Can you tell me anything about this? $prinn_name They're for cooking, I believe? Measuring. $prinn_name Silly looking little things. |returnFromAction>[Continue]{ }](elseif: $item is "dress pattern")[$jane_name Can you tell me anything about this? $prinn_name A sewing thing? A pattern, I believe? $prinn_name I don't know much about sewing. |returnFromAction>[Continue]{ }](elseif: $item is "formal shirt")[$jane_name Can you tell me anything about this? $prinn_name That's my third best dress shirt. $prinn_name It needs some mending. |returnFromAction>[Continue]{ }](elseif: $item is "bird sketch")[$jane_name Can you tell me anything about this? Anthony actually takes the sketch from me and runs a critical eye, over it. $prinn_name It's not very good, is it? Rather amateurish. $prinn_name Was this in the house? I don't remember seeing it before. He returns it to me. |returnFromAction>[Continue]{ }](elseif: $item is "gardening book" or $item is "Native Flower Journal")[$jane_name Can you tell me anything about this? Anthony shakes his head. $prinn_name I don't know anything about that. It's all just leaves to me. |returnFromAction>[Continue]{ }](elseif: $item is "office sketchbook")[$jane_name Can you tell me anything about this? $prinn_name That's my sketchbook. I use it for work. $prinn_name Please be careful with it. |returnFromAction>[Continue]{ }](elseif: $item is "office photo")[$jane_name Can you tell me anything about this? $prinn_name That's when I won the Roger Stone Design Award. $prinn_name That's me and my partner, Chris. And his wife, Cindy. $prinn_name A good night. |returnFromAction>[Continue]{ }](elseif: $item is "architecture book")[$jane_name Can you tell me anything about this? $prinn_name That's one of Miller's works. //Design in Our Lives//. $prinn_name It's a good blend of theory and practice. |returnFromAction>[Continue]{ }](elseif: $item is "bedside teacup")[$jane_name Can you tell me anything about this? $prinn_name It's a teacup. $prinn_name I'm...not sure what else to say? |returnFromAction>[Continue]{ }](elseif: $item is "bedside magazine")[$jane_name Can you tell me anything about this? $prinn_name That's hers. She was talking about it in April. $prinn_name She wanted chrysanthemums, but she doesn't like planting flowers that are, what's the word, native to other countries? $prinn_name But she found a local alternative in her little book. $prinn_name She was so pleased. |returnFromAction>[Continue]{ }](elseif: $item is "sheet music")[$jane_name Can you tell me anything about this? $prinn_name Für Elise. One of my favorites. A classic for a reason. $prinn_name I play. Not professionally. I'm in an amateur orchestra. $prinn_name We don't play Für Elise, obviously. That's a solo piece. $prinn_name But I...I find it soothing. Lately. |returnFromAction>[Continue]{ }](elseif: $item is "piano plant")[$jane_name Can you tell me anything about this? $prinn_name Ah, that. She put that in here. $prinn_name She wanted to make the room more friendly. |returnFromAction>[Continue]{ }](elseif: $item is "mantle photographs")[$jane_name Can you tell me anything about this? $prinn_name That's us. $prinn_name That's us, all together. He sounds so wistful. |returnFromAction>[Continue]{ }](elseif: $item is "biography of John Adams")[$jane_name Can you tell me anything about this? $prinn_name That's mine. $prinn_name Fascinating man. |returnFromAction>[Continue]{ }](elseif: $item is "classical CD")[$jane_name Can you tell me anything about this? $prinn_name The Royal Philharmonic! $prinn_name A good choice. Good taste. $prinn_name Every sound they make is gold. |returnFromAction>[Continue]{ }](elseif: $item is "musical CD")[$jane_name Can you tell me anything about this? $prinn_name Oh, those little plays. $prinn_name She likes those. $prinn_name They're sweet. Cute. |returnFromAction>[Continue]{ }](elseif: $item is "sparrow feather")[$jane_name Can you tell me anything about this? He looks at me uncertainly. $prinn_name It looks like a feather? |returnFromAction>[Continue]{ }](elseif: $item is "birdseed")[$jane_name Can you tell me anything about this? $prinn_name That's birdseed. $prinn_name It's hers. $prinn_name She likes having birds in the garden. |returnFromAction>[Continue]{ }](elseif: $item is "flower" and $current_flower is "Blue Vervain")[$jane_name Can you tell me anything about this? $prinn_name Yes. That's her favorite. $prinn_name It's called vervain. |returnFromAction>[Continue]{ }](elseif: $item is "flower")[$jane_name Can you tell me anything about this? $prinn_name It's one of her flowers. $prinn_name You must have found it in the garden. $prinn_name It's not her favorite, though. $prinn_name Her favorite is the blue one. |returnFromAction>[Continue]{ }](elseif: $item is "tattered poem")[$jane_name Can you tell me anything about this? $prinn_name That's her handwriting. $prinn_name ...I didn't know she'd ever written anything like this. He seems surprised. |returnFromAction>[Continue]{ }](elseif: $item is "unfinished letter")[$jane_name Can you tell me anything about this? $prinn_name That's a letter. She's writing to our daughter. $prinn_name Anastasia's at college. $prinn_name She keeps telling us to use electronic mail, but that's not our way. |returnFromAction>[Continue]{ }](elseif: $item is "bird's nest")[$jane_name Can you tell me anything about this? $prinn_name That looks like a bird's nest. $prinn_name They're very practical little buildings, you know? $prinn_name Natural architecture. |returnFromAction>[Continue]{ }](elseif: $item is "laxatives")[$jane_name Can you tell me anything about this? He blinks in confusion. $prinn_name Did you find that in the house? $jane_name Yes. $prinn_name How odd. Neither of us have...that sort of problem. $prinn_name I suppose she must have bought them. I can't imagine why. |returnFromAction>[Continue]{ }](else:)[$jane_name Can you tell me anything about this? $prinn_name I don't know anything about that. |returnFromAction>[Continue]{ }]{ (click: ?transitionElsewhere)[(set: $sequence to 0)(go-to: "")] }Attributes: <span id="flower-attr"></span> <a onclick='clearAttr()'>Start Again.</a> { <div style="width: 100%; height: 500px; position: relative;"> <a onclick='selectAttribute(this)' style="color: #d1d184; position: absolute; top: 0px; right: 37%;">yellow</a> <a onclick='selectAttribute(this)' style="color: #bf9954; position: absolute; top: 45px; right: 40%;">orange</a> <a onclick='selectAttribute(this)' style="color: #6e6e9f; position: absolute; top: 90px; right: 45%;">blue</a> <a onclick='selectAttribute(this)' style="color: #e1b2b2; position: absolute; top: 15px; right: 65%;">pink</a> <a onclick='selectAttribute(this)' style="color: #875887; position: absolute; top: 60px; right: 60%;">purple</a> <a onclick='selectAttribute(this)' style="color: #cd6262; position: absolute; top: 105px; right: 60%;">red</a> <a onclick='selectAttribute(this)' style="color: #fff; position: absolute; top: 125px; right: 50%;">white</a> <a onclick='selectAttribute(this)' style="color: green; position: absolute; top: 160px; right: 50%; text-align: center; width: 100px;">pairs</a> <a onclick='selectAttribute(this)' style="color: green; position: absolute; top: 220px; right: 50%; text-align: center; width: 100px;">lance</a> <a onclick='selectAttribute(this)' style="color: green; position: absolute; top: 280px; right: 50%; text-align: center; width: 100px;">lobed</a> <a onclick='selectAttribute(this)' style="color: green; position: absolute; top: 340px; right: 50%; text-align: center; width: 100px;">long</a> <a onclick='selectAttribute(this)' style="color: green; position: absolute; top: 400px; right: 50%; text-align: center; width: 100px;">dense</a> <a onclick='selectAttribute(this)' style="color: green; position: absolute; top: 250px; right: 40%; text-align: center; width: 100px;">serrated</a> <a onclick='selectAttribute(this)' style="color: green; position: absolute; top: 310px; right: 60%; text-align: center; width: 100px;">toothed</a> <a onclick='selectAttribute(this)' style="color: #d1d184; position: absolute; top: 80px; left: 5%;">sunlit</a> <a onclick='selectAttribute(this)' style="color: #828758; position: absolute; top: 140px; left: 5%;">partial-sun</a> <a onclick='selectAttribute(this)' style="color: #6c6c6c; position: absolute; top: 200px; left: 5%;">shaded</a> <a onclick='findFlower()' style="position: absolute; top: 440px; left: 0; font-size: 40px;">Find Flower</a> <span style="position: absolute; top: 500px; left: 0;">|returnFromAction>[Go Back]</span> </div> (set: $selected_flower to "") (set: $flower_attibutes_str to "") (set: $flower_attributes to (a:)) (click: ?findFlower)[(go-to: "Find Flower")] <script> function findFlower(){ seth("flower_attibutes_str",$("#flower-attr").html()); let current_attrs = geth("flower_attributes"); let name_array = ["Butterflyweed","Cardinal Flower","Celandine Poppy","Common Self-Heal","Common Yarrow","Fireweed","Gray Goldenrod","Joe-Pye Weed","New England Aster","Purple Coneflower","Wild Bergamot","Blue Vervain"]; let attr_array = [ ["orange", "sunlit", "lance", "sunlit", "partial-sun"], ["red", "lance", "serrated", "sunlit", "partial-sun"], ["yellow", "lobed", "toothed", "partial-sun", "shaded"], ["purple", "blue", "pairs", "sunlit", "partial-sun"], ["white", "pink", "dense", "sunlit"], ["pink", "long", "sunlit", "partial-sun"], ["yellow", "orange", "toothed", "dense", "sunlit", "partial-sun"], ["pink", "purple", "serrated", "sunlit", "partial-sun"], ["orange", "purple", "white", "blue", "dense", "sunlit"], ["purple", "pink", "orange", "lance", "sunlit"], ["pink", "purple", "pairs", "sunlit", "partial-sun"], ["purple", "blue", "lance", "serrated", "sunlit", "partial-sun", "shaded"] ]; let best_score = 0; let index = 0; for (let i = 0; i < attr_array.length; i++) { let score = matchScore(current_attrs,attr_array[i]); if(score > best_score){ best_score = score; index = i; } } let selected_flower = name_array[index]; for (let i = 0; i < current_attrs.length; i++) { if(!attr_array[index].includes(current_attrs[i])) selected_flower = "incorrect attribute"; } if(current_attrs.length < 3) selected_flower = "not enough attributes"; if(current_attrs.length == 0) selected_flower = "no attributes"; seth("selected_flower",selected_flower); seth("sequence",0); goToPassage("Find Flower"); } function matchScore(sampleArray, trueArray){ let score = 0; for (let i = 0; i < sampleArray.length; i++) { if(trueArray.includes(sampleArray[i])) score++; } return score; } function selectAttribute(e){ let current_attrs = geth("flower_attributes"); let attr = $(e).html(); if(current_attrs.length < 6 && !current_attrs.includes(attr)){ current_attrs.push(attr); seth("flower_attributes",current_attrs); $("#flower-attr").html($("#flower-attr").html() + " " + attr); } } function clearAttr(){ $("#flower-attr").html(""); seth("flower_attributes",[]); } </script> }I walk around the house, putting everything back where I found it. (for: each _temp, ...$items)[(if: _temp is not "Native Flower Journal")[<span class='loss'>//Discarded Item: _temp//</span>(set: $taken_items to it - (a: _temp))(set: $items to it - (a: _temp)) ]] |returnFromAction>[Continue]{ <script> $('#modal-container').addClass('out'); $('body').removeClass('modal-active'); </script> }(if: $sequence is 0)[We can stop the story here. I try for hours more, but there's nothing to be done. She's lost too much of herself. The trace, handful of remembrance I can scrounge from this house has no hope of bringing her back. |next>[Continue]{ <script> resetScreen(); musicStopAll(); seth("hide_hud",true); </script> }](elseif: $sequence is 1)[It's evening when I walk downstairs and reluctantly tell Mr. Lane about my failure. I watch the pain of vanishing hope in his expression. But there's not much pain. There wasn't much hope. He didn't understand enough to have faith in me. |next>[Continue]{ <script> updateImage("livingroom2");</script> }](elseif: $sequence is 2)[And he doesn't understand enough to mind my warnings. I tell him he should leave, that the absence will spread. And more things will become absent. There's no way of putting that in a way that a sensible man will believe. He politely sees me out. |next>[Continue]{ }](elseif: $sequence is 3)[I check back a week later and am unable to find the house. Addresses along the street jump directly from 334 to 338. I ask the neighbors if they remember the Lanes. Their distant looks and mumbling uncertainty are enough of an answer. |next>[Continue]{ <script> updateImage("street1");</script> }](elseif: $sequence is 4)[I paint a black outline on the street and fences around where I approximate the house once was. I'll check back every week. Do what I can to keep it from spreading. (display: "Death Options") { }](elseif: $sequence is 5)[ ](elseif: $sequence is 7)[ ]{ (set: $noMenu to true) }(if: $actionSequence is 0)[The Native Flower Journal contains practical information on how to plant and care for flowers native to continental United States and Canada. It is worn with extensive use and slightly water-damaged. There are handwritten notes on some of the pages. There are a lot of flowers in this book, but I notice a few pages are dog-eared. |returnFromAction>[Put the book away.] <a onclick='selectFlower(this)'>Blue Vervain</a> <a onclick='selectFlower(this)'>Butterflyweed</a> <a onclick='selectFlower(this)'>Cardinal Flower</a> <a onclick='selectFlower(this)'>Celandine Poppy</a> <a onclick='selectFlower(this)'>Common Self-Heal</a> <a onclick='selectFlower(this)'>Common Yarrow</a> <a onclick='selectFlower(this)'>Fireweed</a> <a onclick='selectFlower(this)'>Gray Goldenrod</a> <a onclick='selectFlower(this)'>Joe-Pye Weed</a> <a onclick='selectFlower(this)'>New England Aster</a> <a onclick='selectFlower(this)'>Purple Coneflower</a> <a onclick='selectFlower(this)'>Wild Bergamot</a> |returnFromAction>[Put the book away.]{ <script> function selectFlower(e){ seth("target",$(e).html()); seth("actionSequence",1); goToPassage("Native Flower Journal"); } </script> }](elseif: $actionSequence is 1)[(if: $target is "Black-Eyed Susan")[Black-eyed Susan makes a cheery appearance in the garden with its large, daisy-like yellow flowers with brown centers. Black-eyed Susan requires full sun. ](elseif: $target is "Blue Vervain")[Blue Vervain is also called “swamp verbena,” “blue verbena,” and “simpler’s joy.” Blue vervain has long spikes of purplish-blue flowers that bloom from midsummer to early fall and green leaves that are lance-shaped with deeply serrated margins. This plant is highly adaptable to different amounts of light. This species can grow in full sun, part shade, or full shade. ](elseif: $target is "Butterflyweed")[A type of milkweed, Butterflyweed has deep orange flower clusters held aloft above stiff, lance-shaped foliage. This species can thrive in full sun or part shade. <span class="handwriting">Such a silly name!</span> ](elseif: $target is "Cardinal Flower")[A type of lobelia, Cardinal Flower is a native plant that produces spikes of bright red flowers. These red inflorescences are held above dark green leaves that are lance-shaped with finely serrated margins. Cardinal flower thrives in full sun or part shade, with afternoon shade appreciated in hotter climates. ](elseif: $target is "Celandine Poppy")[Also commonly known as wood poppy, the Celandine Poppy produces stunning small buttery yellow poppy-like flowers. It has gray-green, lobed and toothed leaves. A low-growing perennial that thrives in full or partial shade. <span class="handwriting">I read a poem that said poppies like poetry! I like the idea so much I couldn't resist doing something quite silly. I shouldn't tell Anthony. He'll think I'm absurd.</span> ](elseif: $target is "Common Self-Heal")[Common Self-Heal is easily recognizable as a member of the mint family. As do many of the members of this family, common self-heal has spikes of blueish purple flowers, square stems, and leaves arranged on the stems in opposite pairs. Adapted to both full sun and part shade, it does best with afternoon shade in hotter climates. ](elseif: $target is "Common Yarrow")[With delicate fern-like leaves, and umbels of flowers that are usually white, Achillea millefolium flowers from spring in southern locations to fall in more northern areas. Flower clusters are also sometimes pink. Drought tolerant, it grows best in full sun. ](elseif: $target is "Fireweed")[After wildfires wreak havoc, Fireweed is one of the first species to recolonize the burnt landscape, spreading swaths of bright magenta flowers across the land. Fireweed’s long, narrow leaves look like those of willows, inspiring a couple of other common names: “willow herb” and “great willow herb.” This species grows well in full sun, but in climates with hot summers, it is happier in part shade. ](elseif: $target is "Gray Goldenrod")[With its large sprays of golden flowers, Gray Goldenrod creates a mass of bright color from summer to fall. A member of the sunflower family, gray goldenrod has a dense foliage of thin, coarsly-toothed leaves and its spikes of yellow flowers nod slightly when in full bloom. Gray goldenrod can grow in full sun or part shade. ](elseif: $target is "Joe-Pye Weed")[With flat clusters of fragrant pink or purple flowers, Joe-Pye Weed is a pollinator favorite. Its leaves are oval-shaped with serrated margins on stems that have purplish spots, giving this species another of its common names, “spotted joe-pye weed.” It can grow in full sun or light shade. ](elseif: $target is "New England Aster")[Looking for a native substitute or companion for fall blooming chrysanthemums? Why not give New England Aster a try? Blooming from late summer until frost, the flowers have orange centers. The petals are usually lavender, but can also be blue or white. It has stout stems and dense foliage, with leaves that clasp its stems. It requires full sun. ](elseif: $target is "Purple Coneflower")[Purple Coneflower has lance- or oval-shaped green leaves. Its large flowers have purplish pink petals and large, cone-shaped, orange centers. This species grows best in full sun. <span class="handwriting">They look so prickly. A solitary flower that needs her space.</span> ](elseif: $target is "Wild Bergamot")[Wild Bergamot has square stems, and grayish-green leaves that are arranged in opposite pairs. Its flowers bloom from summer to fall, growing in globular clusters that look like pom-poms and are pink to lilac in color. It thrives in full sun to part shade. <span class="handwriting">They look a bit odd, but smell nice.</span> ](else:)[I can't find that flower. ](if: $target is not "Wild Bergamot")[<a onclick='nextFlower(this)'>Turn to the next flower.</a> ]|diffFlower>[Browse a different flower.] |returnFromAction>[Put the book away.]{ <script> function nextFlower(e){ let currentFlower = geth("target"); let flowers = ["Blue Vervain", "Butterflyweed", "Cardinal Flower", "Celandine Poppy", "Common Self-Heal", "Common Yarrow", "Fireweed", "Gray Goldenrod", "Joe-Pye Weed", "New England Aster", "Purple Coneflower", "Wild Bergamot"]; for (let i = 0; i < flowers.length; i++) { if(flowers[i] == currentFlower) seth("target",flowers[i+1]); } goToPassage("Native Flower Journal"); } </script> }](elseif: $actionSequence is 2)[ ](elseif: $actionSequence is 3)[ ](elseif: $actionSequence is 4)[ ](elseif: $actionSequence is 5)[ ](elseif: $actionSequence is 6)[ ](elseif: $actionSequence is 7)[ ](elseif: $actionSequence is 8)[ ](elseif: $actionSequence is 9)[ ](elseif: $actionSequence is 10)[ ](elseif: $actionSequence is 11)[ ](elseif: $actionSequence is 12)[ ](elseif: $actionSequence is 13)[ ](elseif: $actionSequence is 14)[ ](elseif: $actionSequence is 15)[ ](elseif: $actionSequence is 16)[ ]{ (click: ?diffFlower)[(set: $actionSequence to 0)(go-to: $currentPassage)] }Attributes: $flower_attibutes_str (if: $sequence is 0)[I search for a flower that matches this description. (if: $selected_flower is "no attributes")[Or rather I just glance over the entire garden, since I don't have any attributes in mind. Nothing jumps out at me. I'll have to actually look for something in particular if I want to find something. |findFlower>[Look for a different flower.] |returnBase>[Do something else.]{ }](elseif: $selected_flower is "not enough attributes")[But I can't narrow down my search. There are too many flowers that this could apply to. I need to be more specific. |findFlower>[Look for a different flower.] |returnBase>[Do something else.]{ }](elseif: $selected_flower is "incorrect attribute")[But I can't find a flower that fits. |findFlower>[Look for a different flower.] |returnBase>[Do something else.]{ }](else:)[I find one I think fits. |next>[Take this flower.](if: $items contains "flower")[ <span class="explain">Discarding the flower I have.</span>] |skip>[Search around it.] |returnBase>[Let it be.]{ }]](elseif: $sequence is 1)[(if: $items contains "flower")[I discard my previous flower. ]I search for a flower that matches this description. I find one I think fits. <span class='self'>//Acquired Item: flower//</span> |returnBase>[Continue]{ (if: !($items contains "flower"))[(set: $items to it + (a: "flower"))] (set: $current_flower to $selected_flower) }](elseif: $sequence is 2)[I search around this flower. (if: $selected_flower is "Gray Goldenrod" and !($taken_items contains "bird's nest"))[Under the nodding, yellow flowers, nestled in the dense thatch of leaves, I find a bird's nest. It's empty--eggs hatched and children flown. |takeNest>[Take it.] |returnBase>[Let it be.]{ <script>playAudio("aa_clue");</script> }](elseif: $selected_flower is "Celandine Poppy" and !($taken_items contains "tattered poem"))[At the base of one of the flowers, curled around its stem, I find a scrap of paper with a handwritten poem: <span class="handwriting">I used to think small talk was pointless. but then I heard the words under the words. 'I love you. I love you. I love you.' over and over while we pretend to talk about the weather.</span> |takePoem>[Take it.] |returnBase>[Let it be.]{ <script>playAudio("aa_clue");</script> }](else:)[I find nothing in particular. |returnBase>[Continue]{ }]](elseif: $sequence is 3)[I take the $target. <span class='self'>//Acquired Item: $target//</span> |returnBase>[Continue]{ (set: $items to it + (a: $target)) (set: $taken_items to it + (a: $target)) }](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ](elseif: $sequence is 10)[ ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (click: ?takeNest)[(set: $target to "bird's nest")(set: $sequence to 3)(go-to: $currentPassage)] (click: ?takePoem)[(set: $target to "tattered poem")(set: $sequence to 3)(go-to: $currentPassage)] (click: ?findFlower)[(set: $sequence to 0)(go-to: "Flowers")] }(if: $sequence is 0)[I've brought back her body with physical things. Now I need to bring back her mind with words. I need to tell her story. |next>[Continue] |returnBase>[Not yet.]{ }](elseif: $sequence is 1)[I need to get the details right. Show her that she's understood. There will be many right ways to tell this story--lives are complicated. But there will also be many wrong ways. I hope that I've learned enough. I'll only have one chance to get this right. |next>[Tell her story.] |returnBase>[Not yet.]{ }](elseif: $sequence is 2)[$jane_name There is a woman named Miriam Lane. $jane_name Many people need many things from her. |next>[Continue]{ <script> musicStopAll(); </script> (set: $story_score to 0) (set: $son_name to "Anthony") (set: $daughter_name to "Susan") (set: $mother_type to "supportive") (set: $children_state to "grown distant.") (set: $fixture_in to "local neighborhood.") (set: $responsible1 to "childcare") (set: $responsible2 to "clerical work") (set: $responsible3 to "baking") (set: $taken_on to "more than she`s comfortable with") (set: $taken_on_because to "is bad at saying no.") (set: $sister_name to "Susan") (set: $sister_condition to "is ill.") (set: $sister_feeling1 to "conflicted") (set: $sister_feeling2 to "wears on her.") (set: $husband_name to "Arthur.") (set: $husband_job to "a lawyer.") (set: $husband_interests1 to "pointless") (set: $husband_interests2 to "important.") (set: $husband_does to "love her,") (set: $husband_but to "makes her small.") (set: $once_liked1 to "gardening") (set: $once_liked2 to "sewing") (set: $enjoys1 to "reading") (set: $enjoys2 to "playing piano") (set: $enjoys_but to "doesn`t have time.") (set: $wants to "draw birds,") (set: $wants_but to "is embarrassed by her own lack of skill.") (set: $pure_joy1 to "gardening.") (set: $pure_joy2 to "sewing.") }](elseif: $sequence is 3)[$jane_name Miriam has two children, <tw-link class='cyclingLink' data-cycling-texts='["Anthony", "Arthur", "Andy", "Andrew", "Aiden", "Alex"]' onclick='clickCyclingLink(this, "$son_name");'>$son_name</tw-link> and <tw-link class='cyclingLink' data-cycling-texts='["Susan", "Sarah", "Sasha", "Stacy", "Sadie", "Sasha"]' onclick='clickCyclingLink(this, "$daughter_name");'>$daughter_name</tw-link>. $jane_name She's a <tw-link class='cyclingLink' data-cycling-texts='["supportive", "stern", "controlling", "overbearing", "loving", "absent"]' onclick='clickCyclingLink(this, "$mother_type");'>$mother_type</tw-link> mother. $jane_name But they've <tw-link class='cyclingLink' data-cycling-texts='["grown distant.", "left home.", "died.", "rebelled."]' onclick='clickCyclingLink(this, "$children_state");'>$children_state</tw-link> $jane_name Creating the beginnings of an absence. |calculateScore>[Continue]{ (click: ?calculateScore)[ (if: $son_name is "Arthur")[(set: $story_score to it + 5)] (else:)[(set: $story_score to it - 5)] (if: $daughter_name is "Stacy")[(set: $story_score to it + 5)] (else:)[(set: $story_score to it - 5)] (if: $mother_type is "supportive" or $mother_type is "loving")[(set: $story_score to it + 5)] (elseif: $mother_type is "stern" or $mother_type is "absent")[(set: $story_score to it - 5)] (if: $children_state is "left home.")[(set: $story_score to it + 5)] (elseif: $children_state is "rebelled." or $children_state is "died.")[(set: $story_score to it - 5)] (set: $sequence to it+1) (go-to: $currentPassage) ] }](elseif: $sequence is 4)[$jane_name Miriam is a fixture in her <tw-link class='cyclingLink' data-cycling-texts='["local neighborhood.", "husband`s workplace.", "volunteer group.", "garden club.", "church."]' onclick='clickCyclingLink(this, "$fixture_in");'>$fixture_in</tw-link> $jane_name She has many responsibilities, including <tw-link class='cyclingLink' data-cycling-texts='["event organization", "childcare", "clerical work", "baking", "emotional labor", "social media", "attending board meetings", "ushering", "photography"]' onclick='clickCyclingLink(this, "$responsible1");'>$responsible1</tw-link>, <tw-link class='cyclingLink' data-cycling-texts='["event organization", "childcare", "clerical work", "baking", "emotional labor", "social media", "attending board meetings", "ushering", "photography"]' onclick='clickCyclingLink(this, "$responsible2");'>$responsible2</tw-link>, and <tw-link class='cyclingLink' data-cycling-texts='["event organization", "childcare", "clerical work", "baking", "emotional labor", "social media", "attending board meetings", "ushering", "photography"]' onclick='clickCyclingLink(this, "$responsible3");'>$responsible3</tw-link>. $jane_name She takes on <tw-link class='cyclingLink' data-cycling-texts='["more than she`s comfortable with", "only what interests her", "everything"]' onclick='clickCyclingLink(this, "$taken_on");'>$taken_on</tw-link> because she <tw-link class='cyclingLink' data-cycling-texts='["is bad at saying no.", "feels guilty.", "feels empty at home.", "enjoys helping." ]' onclick='clickCyclingLink(this, "$taken_on_because");'>$taken_on_because</tw-link> |calculateScore>[Continue]{ (click: ?calculateScore)[ (if: $fixture_in is "church.")[(set: $story_score to it + 5)] (elseif: $fixture_in is "local neighborhood.")[] (else:)[(set: $story_score to it - 5)] (if: $responsible1 is "event organization" or $responsible1 is "childcare" or $responsible1 is "baking" or $responsible1 is "emotional labor")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $responsible2 is $responsible1)[] (elseif: $responsible2 is "event organization" or $responsible2 is "childcare" or $responsible2 is "baking" or $responsible2 is "emotional labor")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $responsible3 is $responsible1 or $responsible3 is $responsible2)[] (elseif: $responsible3 is "event organization" or $responsible3 is "childcare" or $responsible3 is "baking" or $responsible3 is "emotional labor")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $taken_on is "more than she`s comfortable with" or $taken_on is "everything")[(set: $story_score to it + 5)] (else:)[(set: $story_score to it - 5)] (if: $taken_on_because is "is bad at saying no." or $taken_on_because is "feels empty at home.")[(set: $story_score to it + 5)] (set: $sequence to it+1) (go-to: $currentPassage) ] }](elseif: $sequence is 5)[$jane_name Miriam cares for her sister, <tw-link class='cyclingLink' data-cycling-texts='["Susan", "Sarah", "Sasha", "Stacy", "Sadie", "Sasha"]' onclick='clickCyclingLink(this, "$sister_name");'>$sister_name</tw-link> who <tw-link class='cyclingLink' data-cycling-texts='["is ill.", "has cancer.", "has Alzheimers.", "is disabled.", "demands attention."]' onclick='clickCyclingLink(this, "$sister_condition");'>$sister_condition</tw-link> $jane_name Miriam is <tw-link class='cyclingLink' data-cycling-texts='["conflicted", "dutiful", "happy", "resentful", "indifferent"]' onclick='clickCyclingLink(this, "$sister_feeling1");'>$sister_feeling1</tw-link> about helping, but it <tw-link class='cyclingLink' data-cycling-texts='["wears on her.", "fulfills her."]' onclick='clickCyclingLink(this, "$sister_feeling2");'>$sister_feeling2</tw-link> |calculateScore>[Continue]{ (click: ?calculateScore)[ (if: $sister_name is "Sarah")[(set: $story_score to it + 5)] (else:)[(set: $story_score to it - 5)] (if: $sister_condition is "has Alzheimers.")[(set: $story_score to it + 5)] (elseif: $sister_condition is "has cancer." or $sister_condition is "demands attention.")[(set: $story_score to it - 5)] (if: $sister_feeling1 is "dutiful")[(set: $story_score to it + 5)] (elseif: $sister_feeling1 is "indifferent")[(set: $story_score to it - 5)] (if: $sister_feeling2 is "wears on her.")[(set: $story_score to it + 5)] (elseif: $sister_feeling2 is "fulfills her.")[(set: $story_score to it - 5)] (set: $sequence to it+1) (go-to: $currentPassage) ] }](elseif: $sequence is 6)[$jane_name Miriam's husband is named <tw-link class='cyclingLink' data-cycling-texts='["Arthur.", "Anthony.", "Andy.", "Andrew."]' onclick='clickCyclingLink(this, "$husband_name");'>$husband_name</tw-link> $jane_name He is <tw-link class='cyclingLink' data-cycling-texts='["a lawyer.", "a doctor.", "an architect.", "an author.", "an accountant."]' onclick='clickCyclingLink(this, "$husband_job");'>$husband_job</tw-link> $jane_name He thinks her interests are <tw-link class='cyclingLink' data-cycling-texts='["pointless", "varied", "quaint", "useful", "small"]' onclick='clickCyclingLink(this, "$husband_interests1");'>$husband_interests1</tw-link> and <tw-link class='cyclingLink' data-cycling-texts='["important.", "troubling.", "cute.", "sweet.", "uninteresting."]' onclick='clickCyclingLink(this, "$husband_interests2");'>$husband_interests2</tw-link> $jane_name He does <tw-link class='cyclingLink' data-cycling-texts='["love her,", "care about her,", "provide for her,", "admire her art,", "remember her favorite flower," ]' onclick='clickCyclingLink(this, "$husband_does");'>$husband_does</tw-link> but he <tw-link class='cyclingLink' data-cycling-texts='["makes her small.", "only pursues his interests.", "takes her for granted.", "mainly notices her absence." ]' onclick='clickCyclingLink(this, "$husband_but");'>$husband_but</tw-link> |calculateScore>[Continue]{ (click: ?calculateScore)[ (if: $husband_name is "Anthony")[(set: $story_score to it + 5)] (else:)[(set: $story_score to it - 5)] (if: $husband_job is "an architect.")[(set: $story_score to it + 5)] (else:)[(set: $story_score to it - 5)] (if: $husband_interests1 is "quaint" or $husband_interests1 is "small")[(set: $story_score to it + 5)] (if: $husband_interests2 is "cute." or $husband_interests2 is "sweet." or $husband_interests2 is "uninteresting.")[(set: $story_score to it + 5)] (elseif: $husband_interests2 is "important." or $husband_interests2 is "troubling.")[(set: $story_score to it - 5)] (if: $husband_does is "remember her favorite flower,")[(set: $story_score to it + 5)] (elseif: $husband_does is "admire her art,")[(set: $story_score to it - 5)] (set: $story_score to it + 5) (set: $sequence to it+1) (go-to: $currentPassage) ] } ](elseif: $sequence is 7)[$jane_name Miriam has joys, but many of them are stained. $jane_name She might have once liked <tw-link class='cyclingLink' data-cycling-texts='["gardening", "sewing", "knitting", "baking", "drawing", "bird watching"]' onclick='clickCyclingLink(this, "$once_liked1");'>$once_liked1</tw-link> and <tw-link class='cyclingLink' data-cycling-texts='["gardening", "sewing", "knitting", "baking", "drawing", "bird watching"]' onclick='clickCyclingLink(this, "$once_liked2");'>$once_liked2</tw-link>, but now she only does it for other people. $jane_name She enjoys <tw-link class='cyclingLink' data-cycling-texts='["reading", "playing piano", "musicals", "classical music"]' onclick='clickCyclingLink(this, "$enjoys1");'>$enjoys1</tw-link> and <tw-link class='cyclingLink' data-cycling-texts='["reading", "playing piano", "musicals", "classical music"]' onclick='clickCyclingLink(this, "$enjoys2");'>$enjoys2</tw-link>, but <tw-link class='cyclingLink' data-cycling-texts='["doesn`t have time.", "is embarrassed that her tastes are childish.", "but doesn`t enjoy anything now."]' onclick='clickCyclingLink(this, "$enjoys_but");'>$enjoys_but</tw-link> $jane_name She wants to <tw-link class='cyclingLink' data-cycling-texts='["draw birds,", "design buildings,", "breed plants,", "write poetry,", "paint watercolor,", "compose music,"]' onclick='clickCyclingLink(this, "$wants");'>$wants</tw-link> but <tw-link class='cyclingLink' data-cycling-texts='["is embarrassed by her own lack of skill.", "thinks it would be selfish.", "doesn`t have the time.", "doesn`t have the energy."]' onclick='clickCyclingLink(this, "$wants_but");'>$wants_but</tw-link> |calculateScore>[Continue]{ (click: ?calculateScore)[ (if: $once_liked1 is "sewing" or $once_liked1 is "baking")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $once_liked2 is $once_liked1)[] (elseif: $once_liked2 is "sewing" or $once_liked2 is "baking")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $enjoys1 is "musicals" or $enjoys1 is "reading")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $enjoys2 is $enjoys1)[] (elseif: $enjoys2 is "musicals" or $enjoys2 is "reading")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $enjoys_but is "is embarrassed that her tastes are childish.")[(set: $story_score to it + 5)] (elseif: $enjoys_but is "but doesn`t enjoy anything now.")[(set: $story_score to it - 5)] (if: $wants is "draw birds," or $wants is "write poetry,")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $wants_but is "is embarrassed by her own lack of skill.")[(set: $story_score to it + 5)] (set: $sequence to it+1) (go-to: $currentPassage) ] }](elseif: $sequence is 8)[$jane_name She has two pure joys. $jane_name The first is <tw-link class='cyclingLink' data-cycling-texts='["gardening.", "sewing.", "knitting.", "baking.", "drawing.", "bird watching."]' onclick='clickCyclingLink(this, "$pure_joy1");'>$pure_joy1</tw-link> $jane_name The second is <tw-link class='cyclingLink' data-cycling-texts='["gardening.", "sewing.", "knitting.", "baking.", "drawing.", "bird watching."]' onclick='clickCyclingLink(this, "$pure_joy2");'>$pure_joy2</tw-link> |calculateScore>[Continue]{ (click: ?calculateScore)[ (if: $pure_joy1 is "gardening." or $pure_joy1 is "bird watching.")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (if: $pure_joy2 is $pure_joy1)[] (elseif: $pure_joy2 is "gardening." or $pure_joy2 is "bird watching.")[(set: $story_score to it + 5)] (else: )[(set: $story_score to it - 5)] (set: $sequence to it+1) (go-to: $currentPassage) ] }](elseif: $sequence is 9)[$jane_name There is a woman named Miriam Lane. I finish. $jane_name And now she is waking up. |next>[Continue]{ (set: $selfAdjustment to 0) (if: $story_score > 0)[(set: $selfAdjustment to (floor:($story_score*40)/130))] (elseif: $story_score < 0)[(set: $selfAdjustment to (floor:($story_score*40)/105)) ] }](elseif: $sequence is 10)[My story has its effect. (set: $memory_change to $selfAdjustment)(display: "self change") |goToEnding>[Continue]{ (click: ?goToEnding)[ (set: $sequence to 0) (if: $memory < 1)[(go-to: "Death")] (elseif: $memory < 25)[(go-to: "Gone")] (elseif: $memory < 50)[(go-to: "Gone")] (elseif: $memory < 75)[(go-to: "Near")] (elseif: $memory < 100)[(go-to: "Fraught")] (else:)[(go-to: "Awake")] ] }](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[ ](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (click: ?place)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?tech)[(set: $sequence to 2)(go-to: $currentPassage)] }|loadSavedGame>[Load saved game.] |Restart>[Restart.]{ }(if: $sequence is 0)[ |next>[Continue]{ <script> resetScreen(); musicStopAll(); seth("hide_hud",true); </script> }](elseif: $sequence is 1)[ |next>[Continue]{ <script> updateImage("livingroom2");</script> }](elseif: $sequence is 2)[ |next>[Continue]{ }](elseif: $sequence is 3)[ |next>[Continue]{ <script> updateImage("street1");</script> }](elseif: $sequence is 4)[ (display: "Death Options") { }](elseif: $sequence is 5)[ ](elseif: $sequence is 7)[ ]{ (set: $noMenu to true) }(if: $sequence is 0)[I try to tell her story. But it comes out wrong. I messed up the details, or didn't understand. Maybe I could have brought her more things. |next>[Continue]{ <script> updateImage("miriamAsleep"); resetScreen(); musicStopAll(); seth("hide_hud",true); </script> }](elseif: $sequence is 1)[Her eyes are closed. Not even a flicker of movement in her face. She's here, but she's not. At least I don't think she'll become a hole in the world. Her absence won't hurt anyone else. At least, not in a supernatural way. |next>[Continue]{ }](elseif: $sequence is 2)[Eventually, I'll go downstairs. I'll have a difficult conversation with Anthony. I'll show him his wife's body. I'll try to help him understand. |next>[Continue]{ }](elseif: $sequence is 3)[But I don't have the energy for that just yet. For now, I sit with her. Or at least, I sit with her body. She's not here anymore. Not really. (display: "Death Options"){ }](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 7)[ ]{ (set: $noMenu to true) }(if: $sequence is 0)[I try to tell her story. But it's not quite right. I get details wrong. Maybe I could have brought her more things. |next>[Continue]{ <script> resetScreen(); musicStopAll(); seth("hide_hud",true); </script> }](elseif: $sequence is 1)[Her eyelids flicker, but her eyes stay closed. Her face moves. Expressions ghost across it. Like she's listening. Like she's here. But she doesn't wake up. |next>[Continue]{ <script> updateImage("miriamAsleep");</script> }](elseif: $sequence is 2)[$jane_name Miriam. I try. She twitches. She knows her name. |next>[Continue]{ }](elseif: $sequence is 3)[I stay with her. I whisper the one thing I'm certain of. Her name. Miriam. Miriam. Miriam. A lifeline to wherever she is. |next>[Continue]{ }](elseif: $sequence is 4)[I'll need to bring Anthony up. Explain the situation. Make him understand. She's not here. But she's not completely gone. And we could bring her back. Slowly. With time. With care. |next>[Continue]{ <script> updateImage("bedroom0"); </script> }](elseif: $sequence is 5)[I didn't quite succeed. But there is hope. (display: "Death Options") { }](elseif: $sequence is 6)[ ]{ (set: $noMenu to true) }(if: $sequence is 0)[I try to tell her story. It's almost right. It's enough. She wakes up. |next>[Continue]{ <script> resetScreen(); musicStopAll(); seth("hide_hud",true); </script> }](elseif: $sequence is 1)[She wakes up whispering. $miriam_name I'm nothing. |next>[$jane_name What?]{ <script> updateImage("bedroom0");</script> }](elseif: $sequence is 2)[She pushes herself up in a sudden, forceful motion. She scrambles to the edge of the bed. Away from me. She curls around herself. $miriam_name I'm nothing. |next>[$jane_name Miriam.]{ <script> updateImage("miriamAwake2");</script> }](elseif: $sequence is 3)[She keeps whispering to herself. Words like barbs. Head in her hands. Fingernails digging into her scalp. |next>[Stop her from hurting herself.]{ }](elseif: $sequence is 4)[I take her hands, and she lets me. Instinctively pliant to the demands of other. Even as she hisses harshly to herself: $miriam_name I'm nothing. I'm nothing. I'm nothing. And there's blood under her fingernails. |next>[$jane_name Stop. Stop. You're okay. You're here.]{ }](elseif: $sequence is 5)[She winds down. She stares at me, gaze somehow both intense and vacant. She can see, but she doesn't seem to understand what she's seeing. She can speak, but she only says one thing. $miriam_name I'm nothing. Her voice is pleading. Like she's begging me to understand. |next>[Continue]{ }](elseif: $sequence is 6)[I sit with her until I'm sure she won't do anything extreme. When she's stable, I'll go downstairs and get Anthony. |next>[Continue]{ }](elseif: $sequence is 7)[Maybe...maybe this is the best we could hope for. She was hurting a long time before this, and no one knew. Now at least her pain is loud. At least it's obvious. Maybe she'll get what she needs. (display: "Death Options") { }]{ (set: $noMenu to true) }(if: $sequence is 0)[I tell her story. And I tell it true. She wakes up. |next>[Continue]{ <script> resetScreen(); musicStopAll(); seth("hide_hud",true); </script> }](elseif: $sequence is 1)[She sits up. Her hair is in disarray. Her eyes are open and aware. |next>[Continue]{ <script> updateImage("miriamAwake5");</script> }](elseif: $sequence is 2)[$miriam_name I am. I'm...me. $miriam_name I'm here. |next>[$jane_name Hello, Miriam.] |next>[Steady her.]{ }](elseif: $sequence is 3)[She grips my arm like it's a lifeline. $miriam_name I didn't mean to be... $miriam_name I didn't mean to be...nothing. $miriam_name No one means to be nothing. |next>[Listen.]{ }](elseif: $sequence is 4)[$miriam_name It was so strange. $miriam_name I wasn't there. But I was still there enough to feel not being there? |next>[Nod.] |next>[Listen.]{ }](elseif: $sequence is 5)[$miriam_name I don't...You must know. No one did anything wrong. $miriam_name Sarah needs help. $miriam_name And Mary and everyone at church, I just... $miriam_name The children are gone and I have time. $miriam_name So there was never any good reason to say no. |next>[$jane_name It's all right.] |next>[Listen.]{ }](elseif: $sequence is 6)[$miriam_name And Anthony doesn't mean to be...he means well. |next>[Snort.] |next>[$jane_name Sure.] |next>[Be silent.]{ }](elseif: $sequence is 7)[$miriam_name I didn't meant to leave. $miriam_name I've caused you so much trouble. $miriam_name I'm sorry. |next>[$jane_name Don't apologize. It's dangerous right now. It makes you smaller.]{ }](elseif: $sequence is 8)[$miriam_name I'm... She stops herself. $miriam_name I...I'm afraid. $miriam_name I don't want to be like that. How I was. $miriam_name But I don't think I know how to be any other way. |next>[$jane_name I have an idea that may help.]{ }](elseif: $sequence is 9)[$miriam_name Please. |next>[$jane_name I want you to tell me about gardening with native plant life.]{ }](elseif: $sequence is 10)[She is surprised. But she trusts me. She begins to talk. |next>[Continue]{ }](elseif: $sequence is 11)[Her words are hesitant at first. Like hatchlings, awkward and uncertain. But then she meets my attention which is unwavering and laced with soft questions. Her sentences grow longer and more confident like petals unfolding. |next>[Continue]{ }](elseif: $sequence is 12)[And she is here. |next>[The End]{ <script> updateImage("sparrow2");</script> }](elseif: $sequence is 13)[If you liked this game, try my other game: <a target="_blank" href="http://www.abigailcorfman.com/Home/OpenSorcery" data-raw="">Open Sorcery</a> If you like my style, subscribe to my <a target="_blank" href="http://eepurl.com/bWnLDT" data-raw="">Vegetarian Newsletter.</a> (Vegetarian because there's no spam. I email you ONLY when I make new things.) If you want to tell me something, <a href="mailto:beautiful.lightness@gmail.com">email me</a> or <a href="https://discord.gg/kHgtwqe" target="_blank"> visit my discord.</a> |game_to_menu_credits>[View Credits] |game_to_menu>[Main Menu]{ (click: ?game_to_menu_credits)[<script>goToMenu("Menu_Credits");</script>] (click: ?game_to_menu)[<script>goToMenu("Menu");</script>] }](elseif: $sequence is 14)[ ]{ (set: $noMenu to true) }(display: "menu_menu") ''Writing'' by Abigail Corfman ''Code'' by Abigail Corfman See more of Abigail's work at <a href="http://www.abigailcorfman.com/" target="_blank">Her Website</a> ''Sounds'' //Clue// is by <a href="https://freesound.org/people/FoolBoyMedia/" target="_blank">FoolBoyMedia</a> via freesound //Chime// is by <a href="https://freesound.org/people/Widowaker/" target="_blank">Widowaker</a> via freesound //Damage// is by <a href="https://freesound.org/people/Halph-Price/" target="_blank">Halph-Price</a> via freesound //Lightswitch// is by <a href="https://freesound.org/people/KirstenBrooks3232/" target="_blank">KirstenBrooks3232</a> via freesound //Rumble// is by <a href="https://freesound.org/people/el-bee/sounds/363122/" target="_blank">el-bee</a> via freesound ''Music'' //Nothing Left// by Dave Deville <a href="https://filmmusic.io/song/8547-nothing-left" target="_blank">Free download</a> <a href="https://filmmusic.io/standard-license" target="_blank">License (CC BY 4.0)</a> <a href="https://www.davedevillemusic.com/" target="_blank">Artist website</a> //Wailing Winds// by BrandonNyte <a href="https://freesound.org/people/BrandonNyte/sounds/130975/" target="_blank">Link</a> via freesound ''Images'' Miriam Lane by <a href="https://scop.io/collections/vendors?q=Haymar%20Santiba%C3%B1ez" target="_blank">Haymar Santibañez</a> on Scopio Bird Sketch <a href="https://digitalcollections.nypl.org/items/510d47da-4289-a3d9-e040-e00a18064a99" target="_blank">Les corbeaux.</a> From NYPL Digital Collections Other photographs from <a href="https://scop.io/">Scopio.</a> Other photographs from <a href="https://www.flickr.com/">flickr.</a> ''Flower Descriptions Source'' <a href="https://gardenerspath.com/plants/flowers/best-native-wildflowers/">15 OF THE BEST NATIVE WILDFLOWERS FOR THE US AND CANADA</a> Gardener's Path ''Fonts'' <a href="https://textfonts.net/wisper-font.html">Wisper</a> <a href="https://www.1001fonts.com/domestic-manners-font.html">Domestic Manners</a> ''Alpha Testers'' Aliizi Danny Corfman J Harrison Julia Krystosek Sam Berck Samson Weinberg Tora Lee Hart