{ (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: $die_next_screen is true)[(set: $die_next_screen to false)(go-to: "Death Sigh")] (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> ] ] }{ <script>hideHUD("skip-intro");</script> (if: $print_title is true)[(set: $print_title to false)] <div id="titleBox"> <img id="titleImage" src="./silenceImages/SilenceTitle.png" alt="A Dream of Silence"> </div> <div id="menuBox"> <div class="menu_spacing">|Restart>[Begin]</div> <div class="menu_spacing">|menu_restore>[Resume]</div> <div class="menu_spacing">|menu_feats>[Feats]</div> </span> </div> <div id="tagArea"> <button class="accordion">Tags and Content Warnings</button> <div class="accordionPanel"> <p>Solitary Confinement</p> <p>Possible Major Character Death</p> <p>Feelings of Helplessness</p> <p>Starvation</p> <p>Injury</p> <p>Abuse</p> <p>Memory Loss</p> <p>Tadpole Nonsense</p> <p>Limited Communication</p> <p>Comfort In A Dark Place</p> <p class="hopeText">Hope</p> </div> </div> <script> var acc = document.getElementsByClassName("accordion"); var i; for (i = 0; i < acc.length; i++) { acc[i].addEventListener("click", function() { this.classList.toggle("activeAccordian"); var panel = this.nextElementSibling; if (panel.style.maxHeight) { panel.style.maxHeight = null; } else { panel.style.maxHeight = panel.scrollHeight + "px"; } }); } </script> <style> tw-passage { background-color: transparent !important; border: none !important; } tw-story { margin: 0 auto 0 auto; padding: 0; } tw-passage { text-align: left; } html, body { background: black !important; color: white !important; } </style> (if: $menu_fullscreen is true)[(if: $Fullscreen is true)[<script>setFullscreen("ON");</script>](else:)[ <script>setFullscreen("OFF");</script> ] ] (set: $no_menu to true) (set: $healthDisplay to false) }(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 displayResume() { var menuSave = geth("MenuSave"); if(menuSave != "DELETED") { var to_append = ""; to_append += " <div class='list_spacing'><a class='clickable' onClick='resumeGame();'>Resume Current Game</a> </div>"; $(".menu_frame").append(to_append); } } function displayAutosave() { var autosaveName = getAutosave(); var ExportMode = geth("ExportMode"); if(autosaveName != "DELETED"){ var to_append = " <div class='list_spacing'>"; 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 += "</div>"; $(".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(""); displayResume(); displayAutosave(); displaySaves(); displayExportMode(); } function displaySaves() { var seaSaves = getSeaSaves(); var seaDates = getSeaDates(); var ExportMode = geth("ExportMode"); var min = parseInt(getHarloweVariable("SavePage"), 10); if(isEmpty(min) || isNaN(min)) min = 1; seth("SavePage",min); var max = min + 10; for (var i = min; i < max; i++) { var to_append = " <div class='list_spacing'>"; to_append += "<b>Save "+i+":</b> "; if(seaSaves[i] == "DELETED"){ to_append += "<i>Empty</i>"; var menuSave = geth("MenuSave"); if(ExportMode) to_append += "&nbsp; &nbsp; <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='gray small-text'>"+seaDates[i]+"</span> "; else to_append += " <br> "; to_append += "</div>"; $(".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: $energyDisplay to false) (set: $healthDisplay to false) (set: $learnDisplay to false) } { (set: $astarion_name to "<span style='color: #ebe8cd;'>Astarion:</span> ") (set: $astarion to "<span style='color: #ebe8cd;'>Astarion:</span> ") (set: $karlach to "<span style='color: #ebe8cd;'>Karlach:</span> ") (set: $gale to "<span style='color: #ebe8cd;'>Gale:</span> ") (set: $laezel to "<span style='color: #ebe8cd;'>Lae'zel:</span> ") (set: $wyll to "<span style='color: #ebe8cd;'>Wyll:</span> ") (set: $shadowheart to "<span style='color: #ebe8cd;'>Shadowheart:</span> ") (set: $godey to "<span style='color: #ebe8cd;'>Godey:</span> ") (set: $sigh to "<span style='color: #919191;'>Sigh:</span> ") (set: $learnDisplay to false) (set: $healthDisplay to false) (set: $energyDisplay to false) (set: $astarion_link_display to false) (set: $tomb_link_display to false) (set: $practice_link_display to false) }{<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: ?forestEnd)[(set: $sequence to 0)(go-to: "Wake In The Forest")] (click: ?returnTomb)[(set: $sequence to 0)(go-to: "The Tomb")] (click: ?findAstarion)[(set: $sequence to 0)(go-to: "Astarion")] (click: ?notYet)[(go-to: "Not Yet")] (click: ?practice)[(set: $sequence to 0)(if: $day is 151)[(go-to: "Darkness")](else:)[(go-to: "Practice Existing")]] (click: ?timePasses)[(set: $sequence to 0)(go-to: "Time Passes")] (click: ?Restart)[ <script>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: ?menu_credits)[(go-to: "Menu_Credits")] (click: ?menu_feats)[(go-to: "Menu_Feats")] (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> ] (click: ?goToTitle)[(set: $drawAction to "erase")(display: "decorate campsite")(set: $in_intro to false)(go-to: "Menu")] <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); } refreshHUD(); markupEnergyActions(); </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: $allowQuicksave to false) (set: $currentGameDate to "") <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: $sight to 6) (go-to: $previous_passage){ (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: $puzzles_complete to "default~puzzle") (set: $currentGameDate to "") (set: $Quickstart to false) (set: $IntroComplete to false) (set: $LastDifficulty to "balanced") <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> }<div class="menu_items_top"> <span class="menu_spacing">|Restart>[BEGIN]</span> / (if: $currentPassage is "Menu_Restore")[<span class="space">RESUME</span>](else:)[<span class="menu_spacing">|menu_restore>[RESUME]</span>] / (if: $currentPassage is "Menu_Feats")[<span class="space">FEATS</span>](else:)[<span class="menu_spacing">|menu_feats>[FEATS]</span>] / (if: $currentPassage is "Menu_Credits")[<span class="space">CREDITS</span>](else:)[<span class="menu_spacing">|menu_credits>[CREDITS]</span>] </div>{ <style> tw-story { padding: 10px 0px !important; } tw-passage { text-align: center; } tw-passage { background-color: transparent !important; border: none !important; } </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: $AchieveDisplay to "Act1") <script> saveraw("ReturnFlag","NONE"); </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) (set: $interrupt to false) (if: $interrupt is true)[ (display: "initial settings") (set: $no_menu to false) (set: $menu_numbers to true) <script> seth("first_game","done"); saveraw("first_game","done"); </script> (go-to: "Campsite Intro") ] (if: $first_game is "First Game")[ (display: "initial settings") (set: $no_menu 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") <script> savegame("MenuSave","DELETED"); savegame("CurrentSave","DELETED"); </script> (set: $no_menu to false) (set: $sequence to 0) (set: $in_intro to true) (go-to: "Silence Intro") ](else:)[ <script> loadPermSettings(); loadAchieve(); loadPuzzles(); </script> (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> }{(if: $test_mode is true)[(set: $energyDisplay to true)] (set: $energy to $energy + $energy_change) (if: $energy > $maxEnergy)[(set: $energy to $maxEnergy)] (if: $energy_change > 0)[<span class='energy'>//Recovered $energy_change Energy//</span>](else:)[(set: $energy_change to 0-$energy_change)<span class='energy'>//Spent $energy_change Energy//</span>] <script>playAudio("aa_clock_tick1");</script> }(if: $sequence is 0)[This is a fanwork based on the game <a href="https://baldursgate3.game/" target="_blank">Baldur's Gate 3.</a> If you have not played that game, here's a |next>[brief synopsis of the relevant story.] You are an adventurer. Would you like to tell me what kind of adventurer you are? |chooseClass>[Yes. Show me the options.] |chooseMystery>[No. I wish to remain mysterious.] |chooseRandom>[Choose for me.](if: $Quickstart is true)[ |quickStart>[Quickstart.]]{ (set: $quickstarting to false) (set: $class to "") (set: $display_class to "") (set: $difficulty to $LastDifficulty) (click: ?chooseClass)[(set: $sequence to 2)(set: $just_said to "class")(go-to: $currentPassage)] (click: ?chooseMystery)[(set: $sequence to 3)(set: $just_said to "mystery")(go-to: $currentPassage)] (click: ?chooseRandom)[(set: $sequence to 3)(set: $just_said to "random")(go-to: $currentPassage)] (click: ?quickStart)[(set: $sequence to 16)(set: $just_said to "random")(go-to: $currentPassage)] }](elseif: $sequence is 1)[//Extremely Brief Summary// You are an adventurer in a fantasy world full of Dungeons and Dragons. You are traveling with a bunch of adventurer friends. You are all telepathically connected because of |plot>[Plot.] You all have trauma. Your vampire-rogue friend has a particularly large amount of trauma. His name is Astarion. He is about to be in trouble. //Longer Summary// You are an adventurer in a fantasy world full of Dungeons and Dragons. You were captured by mind flayers--psychic, tentacled monsters. They infected you with parasitic tadpoles that will eventually transform you into a mind flayer. You escaped by working with an eclectic group of other adventurers who are also infected with tadpoles. You are traveling together through a forested countryside, searching for a cure, and getting regularly distracted by side-quests. As you adventure, you discover that many people have been infected, and that it is part of a larger plot. The tadpoles confer psychic powers on their hosts, letting you communicate telepathically, share memories, and much more. A cult of infected calling themselves True Souls are doing terrible things with these powers. Dealing with that is the plot of Baldur's Gate 3. This is a side story. It centers on one of your companions: an Elven vampire named Astarion. Astarion is eloquent, cynical, capricious, manipulative, playful, cruel, deeply traumatized, and gleeful about his newly regained freedom. Many of Astarion's worse qualities can be traced back to the centuries of slavery he's endured under a sadistic vampire lord named Cazador Szarr. Cazador had complete control over Astarion's body and actions up until the tadpole disrupted that. Astarion's past trauma, which this game explores, includes brutal torture, starvation, solitary confinement, and being forced into a form of deadly sex-work--compelled to use his body to lure thousands of victims back to his master's palace. This game does presuppose that your character cares what happens to Astarion. If you don't like him (which is a very legitimate opinion to have, he is an asshole) you should probably not play this game. |return>[Continue]{ (click-replace: ?plot)[gestating psychic tadpoles inside your brains.] }](elseif: $sequence is 2)[What class of adventurer are you? //Don't fret over this decision. It doesn't matter as much as usual.// { <div class="container center" id="first"> <div class="row"> <div class="item" id="item1"><p>|chooseBarbarian>[Barbarian]</p></div> <div class="item" id="item2"><p>|chooseBard>[Bard]</p></div> <div class="item" id="item2"><p>|chooseCleric>[Cleric]</p></div> <div class="item" id="item2"><p>|chooseDruid>[Druid]</p></div> </div> <div class="row"> <div class="item" id="item1"><p>|chooseFighter>[Fighter]</p></div> <div class="item" id="item2"><p>|chooseMonk>[Monk]</p></div> <div class="item" id="item2"><p>|choosePaladin>[Paladin]</p></div> <div class="item" id="item2"><p>|chooseRanger>[Ranger]</p></div> </div> <div class="row"> <div class="item" id="item1"><p>|chooseRogue>[Rogue]</p></div> <div class="item" id="item2"><p>|chooseSorcerer>[Sorcerer]</p></div> <div class="item" id="item2"><p>|chooseWarlock>[Warlock]</p></div> <div class="item" id="item2"><p>|chooseWizard>[Wizard]</p></div> </div> </div> <style> div.item { height: 100px; width: 100px; position: relative; border: 2px solid black; margin:5px; float: left; } .row{ clear: both; } div.item p { margin: 0; position: absolute; top: 50%; left: 50%; margin-right: -50%; transform: translate(-50%, -50%) } </style> (click: ?chooseBarbarian)[(set: $sequence to 3)(set: $class to "barbarian")(set: $display_class to "Barbarian")(go-to: $currentPassage)] (click: ?chooseBard)[(set: $sequence to 3)(set: $class to "bard")(set: $display_class to "Bard")(go-to: $currentPassage)] (click: ?chooseCleric)[(set: $sequence to 3)(set: $class to "cleric")(set: $display_class to "Cleric")(go-to: $currentPassage)] (click: ?chooseDruid)[(set: $sequence to 3)(set: $class to "druid")(set: $display_class to "Druid")(go-to: $currentPassage)] (click: ?chooseFighter)[(set: $sequence to 3)(set: $class to "fighter")(set: $display_class to "Fighter")(go-to: $currentPassage)] (click: ?chooseMonk)[(set: $sequence to 3)(set: $class to "monk")(set: $display_class to "Monk")(go-to: $currentPassage)] (click: ?choosePaladin)[(set: $sequence to 3)(set: $class to "paladin")(set: $display_class to "Paladin")(go-to: $currentPassage)] (click: ?chooseRanger)[(set: $sequence to 3)(set: $class to "ranger")(set: $display_class to "Ranger")(go-to: $currentPassage)] (click: ?chooseRogue)[(set: $sequence to 3)(set: $class to "rogue")(set: $display_class to "Rogue")(go-to: $currentPassage)] (click: ?chooseSorcerer)[(set: $sequence to 3)(set: $class to "sorcerer")(set: $display_class to "Sorcerer")(go-to: $currentPassage)] (click: ?chooseWarlock)[(set: $sequence to 3)(set: $class to "warlock")(set: $display_class to "Warlock")(go-to: $currentPassage)] (click: ?chooseWizard)[(set: $sequence to 3)(set: $class to "wizard")(set: $display_class to "Wizard")(go-to: $currentPassage)] } ](elseif: $sequence is 3)[ (if: $just_said is "mystery")[You are a mystery.](elseif: $just_said is "class")[You are a $display_class.](else:)[{ (set: $rand to (random: 1, 12))(if: $rand is 1)[(set: $class to "barbarian")(set: $display_class to "Barbarian") ](elseif: $rand is 2)[(set: $class to "bard")(set: $display_class to "Bard") ](elseif: $rand is 3)[(set: $class to "cleric")(set: $display_class to "Cleric") ](elseif: $rand is 4)[(set: $class to "druid")(set: $display_class to "Druid") ](elseif: $rand is 5)[(set: $class to "fighter")(set: $display_class to "Fighter") ](elseif: $rand is 6)[(set: $class to "monk")(set: $display_class to "Monk") ](elseif: $rand is 7)[(set: $class to "paladin")(set: $display_class to "Paladin") ](elseif: $rand is 8)[(set: $class to "ranger")(set: $display_class to "Ranger") ](elseif: $rand is 9)[(set: $class to "rogue")(set: $display_class to "Rogue") ](elseif: $rand is 10)[(set: $class to "sorcerer")(set: $display_class to "Sorcerer") ](elseif: $rand is 11)[(set: $class to "warlock")(set: $display_class to "Warlock") ](else:)[(set: $class to "wizard")(set: $display_class to "Wizard") ] }I have made you a $display_class.] Please select your difficulty. |balanced>[Balanced] //Challenging. You are likely to lose a few times as you learn how to play.// |explorer>[Explorer] //Story focused.// |gray>[Tactician] (click: ?gray)[] //Not yet.//{ (click: ?explorer)[(set: $sequence to it+1)(set: $difficulty to "explorer")(go-to: $currentPassage)] (click: ?balanced)[(set: $sequence to it+1)(set: $difficulty to "balanced")(go-to: $currentPassage)] }](elseif: $sequence is 4)[Choose where you want to begin. If this is your first time playing, choose the option 'Begin at the Campsite'. |campsiteStart>[Begin at the Campsite] |tombStart>[Begin in the Tomb] |gray>[Begin in Act 2] (click: ?gray)[//Not yet.//] |gray2>[Begin in Act 3] (click: ?gray2)[//Not yet.//]{ (click: ?campsiteStart)[(set: $sequence to 0)(go-to: "Campsite Intro")] (click: ?tombStart)[(set: $sequence to 0)(go-to: "Act 1")] (set: $LastDifficulty to $difficulty) <script>savePermSettings();</script> } ](elseif: $sequence is 5)[ ](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)[Let's be quick. Choose your class: <select name="classes" id="classes"> <option value="Barbarian">Barbarian</option> <option value="Bard">Bard</option> <option value="Cleric">Cleric</option> <option value="Druid">Druid</option> <option value="Fighter">Fighter</option> <option value="Monk">Monk</option> <option value="Paladin">Paladin</option> <option value="Ranger">Ranger</option> <option value="Rogue">Rogue</option> <option value="Sorcerer">Sorcerer</option> <option value="Warlock">Warlock</option> <option value="Wizard">Wizard</option> </select> Choose your difficulty: <select name="difficulties" id="difficulties"> <option value="explorer">Explorer</option> <option value="balanced" selected="selected">Balanced</option> </select> <a id='Link' onclick='quickstartTomb()'>Go to the tomb.</a>{ <script type="text/javascript"> function quickstartTomb(){ seth("quickstarting",true); seth("sequence",0); var className = $('#classes').find(":selected").val(); seth("display_class",className); seth("class",className.toLowerCase()); var difficulty = $('#difficulties').find(":selected").val(); seth("difficulty",difficulty); goToPassage("Act 1"); } </script> } ]{ (click: ?place)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?tech)[(set: $sequence to 2)(go-to: $currentPassage)] }{ <img class="centerImage" src="./silenceImages/widesmile.jpg" alt="Wide Smile"> } |goToTitle>[Return to title.]{ <script> addAchieve("Devouring Dark"); resetScreen(); musicStopAll(); playAudio("aa_sigh"); </script> (set: $energyDisplay to false) (set: $learnDisplay to false) <style> .centerImage { display: block; margin-left: auto; margin-right: auto; width:400px; } </style> }(display: "menu_menu") Writing & Design by Abigail Corfman <a href="http://www.abigailcorfman.com/" target="_blank">Play more games like this.</a> <a href="https://archiveofourown.org/series/3894115" target="_blank">Read more stories like this.</a> Art <a href="https://www.tumblr.com/cymk8" target="_blank">cymk8</a> <a href="https://www.tumblr.com/milton-chamberlain" target="_blank">milton-chamberlain</a> <a href="https://www.tumblr.com/ducancela-a" target="_blank">ducancela-a</a> Possible Protagonists Aldiirn belongs to <a href="https://www.tumblr.com/mistercrowbar" target="_blank">@mistercrowbar</a> Andar belongs to <a href="https://archiveofourown.org/works/53068186" target="_blank">Tatsunara</a> Ember belongs to <a href="https://www.tumblr.com/catsharky" target="_blank">@catsharky</a> Finch belongs to <a href="https://www.tumblr.com/everchased" target="_blank">@everchased</a> Francys belongs to <a href="https://www.tumblr.com/ineadhyn" target="_blank">@ineadhyn</a> Greygold belongs to <a href="https://www.tumblr.com/jeeaark" target="_blank">@jeeaark</a> Nawen belongs to <a href="https://www.tumblr.com/ineed-to-sleep" target="_blank">@ineed-to-sleep</a> Ria belongs to <a href="https://www.tumblr.com/ladyofrosefire" target="_blank">@ladyofrosefire</a> Staeve belongs to <a href="https://www.tumblr.com/velnna" target="_blank">@velnna</a> Temiter belongs to <a href="https://www.tumblr.com/not-poignant" target="_blank">@not-poignant</a> Sounds //Time// by <a href="https://freesound.org/people/bennathanras/sounds/607422/" target="_blank">bennathanras</a> via freesound //Damage// by <a href="https://freesound.org/people/Halph-Price/" target="_blank">Halph-Price</a> via freesound //Fire// by <a href="https://freesound.org/people/7778/" target="_blank">7778</a> via freesound //Level Up// by <a href="https://freesound.org/people/FoolBoyMedia/" target="_blank">FoolBoyMedia</a> via freesound //Final Sigh// by <a href="https://freesound.org/people/timgormly/sounds/152721/" target="_blank">Timgormly</a> via freesound //Healing// by <a href="https://freesound.org/people/Widowaker/" target="_blank">Widowaker</a> via freesound Images 370 Classical Scene-Building Vectors from <a href="https://creativemarket.com/PaperElement" target="_blank">Paper Element</a> Scar Vector Art from <a href="https://www.etsy.com/shop/SuperGeekySVGs?ref=shop-header-name&listing_id=1561796689&from_page=listing" target="_blank">SuperGeekySVGs</a> Dracula Fangs from <a href="https://creativemarket.com/skripnikbb" target="_blank">skripnikbb</a> Fonts <a href="https://fonts.google.com/specimen/Alegreya">Alegreya</a> Alpha Testers Aliizi almightyjanitor Breece ineed-to-sleep jeeaark ladyofrosefire Laura S Malarthi Max mistercrowbar Puffles Spellmotif Tatsunara Wizard{ (set: $display_resume to true) (set: $energyDisplay to false) (set: $healthDisplay to false) (set: $learnDisplay to false) }(display: "menu_menu") <div class="small_menu_items"> (if: $AchieveDisplay is "Act1")[Act 1](else:)[|Act1>[Act 1]] / (if: $AchieveDisplay is "Tav")[Character Specific](else:)[|Tav>[Character Specific]]</div> <div class="menu_frame"><span id="achievements"></span></div>(set: $display_resume to true)(if: $AchieveDisplay is "Tav")[ Tell me how |TellMe>[your character would handle this situation?] I'd love to add an achievement for them.]{ (set: $Act1 to (a: "Hello Crypt~Start by Speaking in the tomb.~Learn Speak first. Whisper.", "since feeling is first~Explore the tomb using only Touch.~Learn Touch before Sight.", "Astarion Approves~Reach Trust 10.~You can gain trust through events and by being reliably present.", "Astarion Approves More~Reach Trust 15.~Consider choosing a familiar name.", "Point And Click~Convince Astarion to let you direct him around the room.~If you have Speech, explore asking him about escaping. If you have Touch, cultivate trust to the point where he'll tolerate being pushed in a direction.", "Storytime~Convince Astarion to tell you a story.~Reach Trust 7 and ask for one.", "Original Characters Do Not Steal~Requires Act 2.~Requires Act 2.", "Grave Robbing~Open the sarcophagus.~You can't do this. A rogue might be able to, if he had tools.", "No You Can't Be Scratch~When asked to identify yourself, find five different names the game will not let you use.~Consider characters who couldn't possibly be here.", "I Guess You Could Conceivably Be Omeluum~When asked to identify yourself, find a name the game will be incredulous about, but will let you use.~Consider characters who have psyonic powers, or who are powerful enough to break rules.", "Beat Up Godey~Break a skeleton's jaw.~Be someone good at violence. Train Touch. Explore outside the tomb.", "Murder Godey~Requires Act 3.~Requires Act 3.", "Running Joke~Requires Act 2.~Requires Act 2.", "I Don't Need Words~Finish Act 1 without ever training Speech.~Ignore Speech on the first day, and then never practice it at all.", "I Only Need Words~Finish Act 1 without ever training Touch.~Ignore Touch on the first day, and then never practice it at all.", "Devouring Dark~End the game by health loss.~Don't interact with Astarion.", "Message From Another World~Reach the end of Act 1.~Learn Speech first and level it early. Say at least hello every day. Be careful with Touch. Ask for stories. This is not the only path, but it is the easiest.")) (set: $Tav to (a: "Aldiirn~Dusksong~Use music to make first contact.~You must be a bard. Practice Speech first. Choose an alternative to whispering.~@mistercrowbar", "Anastavia~Genre Savvy~Requires Act 2.~Requires Act 2.~AbigailMoment~https://archiveofourown.org/works/50706940/chapters/128092708", "Andar~Poor Man's Dancing Lights~Try to cast magic.~You must be a wizard, sorcerer, or warlock. Practice Touch first. Interact with Astarion.~Tatsunara~https://archiveofourown.org/works/53068186", "Ember~Ghosts Need Sleep~Explain why you're sometimes absent.~This is possible on day 160. You will need at least Speech 3.~@catsharky", "Finch~Get Safe And Cared For Idiot~Successfully hug Astarion.~Practice Touch first. Reach Level 4. Cultivate trust and spend a lot of time holding hands before trying this.~@everchased", "Francys~Priorities~Ignore everyone else in the campsite.~You will need to go through the entire campsite introduction at least once to get this option.~@ineadhyn", "Greygold~Psspsspss~Help Astarion calm down after being frightened.~You must be a ranger or a druid. Astarion must be frightened by something. Something frightening reliably happens on Day 158, but you will need Speech 2 to tell him about it.~@jeeaark", "Nawen~You're Unbreakable~Give your vampire a pep-talk after a particularly difficult day.~You must be a rogue. Practice Speech first. Reach Level 4 as fast as you can. After Astarion has is breakdown, tell him to listen to you.~@ineed-to-sleep", "Ria~Music Box~Play the theme.~You must be a bard. One of your Speech options will be performing. Whistle a song about a river.~@ladyofrosefire", "Silk~Alarming Alias~Requires Act 3.~Requires Act 3.~anonymousAlchemist~https://archiveofourown.org/works/51203212/chapters/129378529", "Staeve~Don't Forget Me~Say something memorable.~Reach at least Trust 10 and, when he asks, tell Astarion your name is Staeve.~@velnna", "Temiter~This Is All A Bit Much~Abandon the dream using the silver cord.~Practice Sight first. Reach Level 4. Explore the space by the niches. Escape.~@not-poignant", )) <script> function printTavAchievement(value) { var to_append = ""; var arr = value.split("~"); var name = arr[0]; var title = arr[1]; var desc = arr[2]; var hint = arr[3]; var tag = arr[4]; var link = arr[5]; var achievements = getHarloweVariable("Achievements"); if(isEmpty(achievements)) achievements = []; console.log("title",title); console.log("achievements",achievements); if(achievements.includes(title)){ to_append += "<span class='energy'>"+name+" - "+title+"</span> / <span class='achieve_color'>"+desc+"</span><br/>"; if(tag.includes("@")) to_append += "<span style='font-size: 16px; position: relative; top: -10px;'>belongs to <a target='_blank' href='https://www.tumblr.com/"+tag.replace("@","")+"'>"+tag+"</a></span><br/>"; else to_append += "<span style='font-size: 16px; position: relative; top: -10px;'>belongs to <a target='_blank' href='"+link+"'>"+tag+"</a></span><br/>"; } else{ to_append += "<span style='color: gray;'>"+name+" - "+title+"</span> / "+desc+"<br/>"; if(tag.includes("@")) to_append += "<span style='font-size: 16px; position: relative; top: -10px;'>belongs to <a target='_blank' href='https://www.tumblr.com/"+tag.replace("@","")+"'>"+tag+"</a></span><br/>"; else to_append += "<span style='font-size: 16px; position: relative; top: -10px;'>belongs to <a target='_blank' href='"+link+"'>"+tag+"</a></span><br/>"; to_append += "<span style='font-size: 16px; position: relative; top: -20px;'><a onClick='revealHint(this)'>Hint</a><span class='hint' style='display: none;'>"+ hint +"</span></span>"; } to_append += "<br/>"; $("#achievements").append(to_append); } function printAchievement(value) { var to_append = ""; var arr = value.split("~"); var title = arr[0]; var desc = arr[1]; var hint = arr[2]; var achievements = getHarloweVariable("Achievements"); if(isEmpty(achievements)) achievements = []; if(achievements.includes(title)) to_append += "<span class='energy'>"+title+"</span> / <span class='achieve_color'>"+desc+"</span>"; else to_append += "<span style='color: gray;'>"+title+"</span> / "+desc+"<br/><span style='font-size: 16px;'><a onClick='revealHint(this)'>Hint</a><span class='hint' style='display: none;'>"+ hint +"</span></span>"; to_append += "<br/><br/>"; $("#achievements").append(to_append); } function revealHint(val) { val.style.display = "none"; val.nextSibling.style.display = "inline"; } </script> (if: $AchieveDisplay is "Credits")[ (display: "Menu_Credits") ](else:)[ <script> var AchieveDisplay = geth("AchieveDisplay"); if(AchieveDisplay == "Tav") geth(AchieveDisplay).forEach(printTavAchievement); else geth(AchieveDisplay).forEach(printAchievement); </script> ] (click: ?Act1)[(set: $AchieveDisplay to "Act1")(go-to: "Menu_Feats")] (click: ?Tav)[(set: $AchieveDisplay to "Tav")(go-to: "Menu_Feats")] (click: ?TellMe)[(go-to: "Menu_Tell")] }(if: $sequence is 0)[You are asleep in the forest. You wake up because everyone in your camp is screaming. |next>[Continue]{ (set: $fg_tree_count to 1) (set: $treePosition1 to 0.1) (set: $branches1 to 170) (set: $treePosition2 to 0.9) (set: $branches2 to 190) (set: $treePosition3 to 0) (set: $drawAction to "trees") (set: $campOnFire to true) }](elseif: $sequence is 1)[You know why. You just woke up from a nightmare. The worst moments of your life playing out in vivid detail. Something is on fire. Karlach's tent is on fire. She is in the center of it. Her mechanical heart is incandescent. Fire pours out of it, wreathing her. She is howling in Infernal. Her words are half battle-cry and half agony. |next>[Shake her awake.] |putOut>[Put out the fire.](if: $IntroComplete is true)[ |astarionTentSkip>[Find Astarion.]]{ <script>musicLoop("env_fire_roar"); </script> }](elseif: $sequence is 2)[You get burned. You don't care. Her eyes open wide and wrathful. You're afraid for a moment she's going to attack you. But she doesn't. Of course she doesn't. She pushes you away, because you're getting hurt. She staggers to her feet. |skip>[Continue] ](elseif: $sequence is 3)[You grab the bucket of sand, kept by the campfire for safety's sake. You hurl it over Karlach's tent and Karlach. She starts awake, eyes wide and wrathful. You're afraid for a moment she's going to attack you. But she doesn't. Of course she doesn't. She staggers to her feet. |next>[Continue]{ <script>musicLoop(""); </script> (set: $campOnFire to false) } ](elseif: $sequence is 4)[$karlach I was back. I was back in Hell. It was. That fight with the bone devils. $karlach It was so *real*. It-- $karlach Shit! Wyll! |next>[Continue] ](elseif: $sequence is 5)[Wyll's tent is across from Karlach's. He's visible through the entrance. He is curled in on himself. His hands are cupped around his bad eye. The sounds of his pain are barely human. |skip2>[Wake him.] |next>[Tell Karlach to help him.] ](elseif: $sequence is 6)[Karlach rushes over. She picks up a blanket to cover her hands so she can shake Wyll awake without burning him. You have to move on. |skip2>[Because Gale's tent is *glowing*.] ](elseif: $sequence is 8)[Wyll starts awake when you shake him. He reaches out to you, grabs your arm. $wyll Sorry. I'm sorry. I had to... He stops. He recognizes you. You're not who he thought you were. Not the person he thought he was talking to. $wyll What? |next>[But you have to leave now because Gale's tent is *glowing*.]{ (set: $noteKarlachHelp to true) }](elseif: $sequence is 9)[(if: $noteKarlachHelp is true)[Karlach stays with Wyll. ]You rush to the next tent. Gale is floating an inch above his bedroll. White light is pouring off of |orb>[the symbol on his chest.](click: ?orb)[ //The symbol which marks the location of a Netherese destruction orb, a magical bomb embedded in his chest that might, if disturbed, detonate with enough force to level a city.//] He's clutching at it like he's trying to stuff the light back inside. |next>[Wake him.] ](elseif: $sequence is 10)[Waking Gale feels like disarming a trap. You're terrified you're going to do something wrong, jostle the orb in his chest, and everyone will die. But then the light winks out. Gale falls back to the ground. The moment he's entirely awake he starts talking. |next>[Continue] ](elseif: $sequence is 11)[$gale Bastellus. I saw it. I've read about... He twists to look behind him, like he expects something to be there, a handful of glowing missiles already forming in his hand. But there's nothing there. The magic dissipates. Gale looks bewildered. $gale But it's...it feeds tactically. How is it... He turns back and sees (if: $campOnFire is true)[the still-burning remains of Karlach's tent.](else:)[the smoldering remains of Karlach's tent.] Sees Karlach crouched over Wyll. He stops looking confused and starts looking horrified. $gale Oh Gods. It's using the tadpoles. |next>["What? What's using the tadpoles?"] |leaveGale>[You don't have time for exposition.]{ (set: $galeAskKill to false) (set: $galeAskTrue to false) (set: $galeAskStop to false) } ](elseif: $sequence is 12)[$gale A dream stalker. Bastellus is the formal name. They feed on nightmares. Or more precisely the pain that nightmares produce. $gale The tadpoles in our heads, our gestating psychic passengers, connect our minds. $gale We are a network of dreamers for this creature to prey on. $gale It could be in a cave somewhere, using a captive True Soul to reach out to the rest of us. Dawn isn't an endpoint. It never has to *stop*. (if: $galeAskKill is false)[|galeAskKill>["Will it kill us?"] ](if: $galeAskTrue is false)[|galeAskTrue>["Is this happening to other True Souls?"] ](if: $galeAskStop is false)[|galeAskStop>["How do we stop it?"] ]|leaveGale>[Leave] ](elseif: $sequence is 13)[$gale The longer you dream, the more of you it will devour, and the deeper the sleep will grow. $gale And prolonged feeding is fatal. $gale So yes. Yes it will.(set: $galeAskKill to true) (if: $galeAskTrue is false)[|galeAskTrue>["Is this happening to other True Souls?"] ](if: $galeAskStop is false)[|galeAskStop>["How do we stop it?"] ]|leaveGale>[Leave] ](elseif: $sequence is 14)[$gale I suspect it is. $gale I suspect there's screaming all through Moonrise Towers.(set: $galeAskTrue to true) (if: $galeAskKill is false)[|galeAskKill>["Will it kill us?"] ](if: $galeAskStop is false)[|galeAskStop>["How do we stop it?"] ]|leaveGale>[Leave] ](elseif: $sequence is 15)[$gale Wake everyone. Make sure everyone is awake. $gale After that. I'm not sure. He's reaching for a book. $gale I'll find something.(set: $galeAskStop to true) (if: $galeAskKill is false)[|galeAskKill>["Will it kill us?"] ](if: $galeAskTrue is false)[|galeAskTrue>["Is this happening to other True Souls?"] ]|leaveGale>[Leave] ](elseif: $sequence is 16)[(if: $campOnFire is true)[You stand and notice that Wyll is up. He and Karlach are putting out the parts of Karlach's tent that are still on fire. ]As you leave Gale he's going through his books. Looking intently for something. A long term solution for this problem. You have more short term problems to deal with. You need to make sure everyone is awake. |findShadowheart>[Find Shadowheart.] |next>[Find Astarion.] |findLaezel>[Find Lae'zel.]{ (set: $lookingFor to "Shadowheart") <script>musicLoop(""); </script> (set: $campOnFire to false) }](elseif: $sequence is 17)[Everyone's having nightmares, reliving their worst memories. There is someone in camp who has *extremely bad* worst memories. You're halfway to his tent when Lae'zel shouts for you. She's so upset that she's forgotten you don't speak githyanki, but you hear your name. |findLaezel>[Go help her.] |next>[Send Gale to help her.] |skip>[Send Wyll to help her.] |skip2>[Send Karlach to help her.] ](elseif: $sequence is 18)[You yell for Gale to go and help--he can research what this is once people aren't bleeding in their dreams. He does. Which leaves you free to finish what you were doing. |astarionTent>[Find Astarion.] ](elseif: $sequence is 19)[Unsurprisingly, Wyll is extremely willing to avoid thinking about his own nightmare by helping other people with theirs. He goes to help. Which leaves you free to finish what you were doing. |astarionTent>[Find Astarion.] ](elseif: $sequence is 20)[Karlach rushes over to help, trailing Wyll who still looks shaken. Which leaves you free to finish what you were doing. |astarionTent>[Find Astarion.] ](elseif: $sequence is 21)[(if: $lookingFor is "Shadowheart")[You find Shadowheart. Lae'zel is with her--standing and awake. She must have woken herself, like you did.](else:)[Lae'zel is awake. She must have woken herself, like you did. She's with Shadowheart.] Shadowheart is sitting up, but she is absolutely not awake. She is curled in on herself, a huddled little ball. She is weeping and hiccuping. Whispering disjointedly. She's calling for her mother. Her voice is different. She sounds like a child. Lae'zel is standing over her. She has her sword out and she looks apoplectic that there's nothing for her to hit. She hisses at you. $laezel *Fix* it. |skip3>[Help Shadowheart.] |next>[Send Gale to help her.] |skip>[Send Wyll to help her.] |skip2>[Send Karlach to help her.] ](elseif: $sequence is 22)[You yell for Gale to come and help. He can research what this is once people aren't bleeding in their dreams. $gale Shadowheart? Shadowheart. Whatever you're seeing, it's not real. I can assure you. Lae'zel looks unimpressed with your choice, but there's no time to worry about that. You move on. There's someone still unaccounted for. |astarionTent>[Find Astarion.] ](elseif: $sequence is 23)[You yell for Wyll to come help. Unsurprisingly, he is extremely willing to avoid thinking about his own nightmare by helping other people with theirs. $wyll Shadowheart. I'm here with you. It's all right. It's going to be all right. We're here. You move on. There's someone still unaccounted for. |astarionTent>[Find Astarion.] ](elseif: $sequence is 24)[You yell for Karlach to come help. She rushes over, trailing Wyll who still looks shaken. $karlach Shadowheart? Sweetheart? It's time to wake up. Zel--shake her shoulder. You move on. There's someone still unaccounted for. |astarionTent>[Find Astarion.] ](elseif: $sequence is 25)[It takes a horribly long time to wake Shadowheart. Long minutes of calling her name and shaking her. It's like the dream has talons in her, as long as her memory is terrible, and it does not want to let her go. Your efforts are twice interrupted by fits of screaming. Wolves, you're sure. She's remembering wolves. |next>[Continue] ](elseif: $sequence is 26)[You have repeated her name perhaps thirty times when Shadowheart's eyes refocus. Finally, she seems to be seeing you, not the monsters in her mind. She lets out a sob, voice cracking under the weight of relief and buries her face in your chest. You let her cry, but it's only a few seconds before she comes back to herself enough to push you away. $shadowheart I'm sorry. She's whispering. Her voice is raw. She sounds mortified. You think the thing in her hand just stung her. |next>[Continue] ](elseif: $sequence is 27)[Wyll arrives, recovered enough from his own ordeal to help here. Shadowheart didn't weep into his chest, so she's not quite as mortified when she speaks to him. Lae'zel continues to stand over them, an awkward sentinel, aware enough to know her voice would not be helpful, but also not wanting to leave. You move on. There's someone still unaccounted for. |astarionTent>[Find Astarion.] ](elseif: $sequence is 28)[You reach Astarion's tent. Everyone else has been loud and thrashing in their dreams, but you haven't heard anything from him. You try to see that as a good sign. It's quiet inside the tent. Astarion is lying still on his bedroll. For a moment you're relieved. He's an elf. They don't sleep, not like the other races do. That strange reverie must have kept him safe. |next>[Continue] ](elseif: $sequence is 29)[But he doesn't respond to his name. Or to his bedroll being shaken. Or his shoulder being shaken. He's completely limp. Not breathing. He doesn't need to breathe, you know that, but it's disturbing like this. He looks like he's dead. Truly dead. He doesn't respond to his name even when it's shouted. |next>[Reach out through the tadpole connection.] ](elseif: $sequence is 30)[You're psychically connected to everyone in the group because you all have psionic tadpoles gestating in your heads. You've shared thoughts and memories with Astarion before. You try to reach out to him, but it doesn't work as it usually does. No thoughts. No memories. There's a chasm where his mind should be. It's dark and cold and very, very deep. You feel like you're teetering on the edge of it. There might be something at the bottom. You can barely make out what you think is a small, stone room. |next>[Go there.] |skip>[No. You're not willing to do that.] <span class="explain">This will end the game.</span> ](elseif: $sequence is 31)[You jump off the edge of the chasm. You fall a very long way . . . . . |goToTomb>[You land in a cold, dark place.]{ (set: $IntroComplete to true) <script>savePermSettings();</script> }](elseif: $sequence is 32)[You draw back from the chasm. Back to safety and the much gentler darkness of the forest. You've hit a limit. You can't do that. Or you don't want to. |next>[But that's all right.] ](elseif: $sequence is 33)[You don't have to. You'll talk to Gale. Find a solution. Tell everyone else what you found. One of the others will be able to do this part. Wyll is definitely going to volunteer. |next>[You leave the tent to get help.] ](elseif: $sequence is 34)[You leave the tent. You go out and find a different solution. Tell a different story. Just not the one depicted in this game. |goToTitle>[Return to title.] ](elseif: $sequence is 35)[ ]{ (set: $in_intro to true) (click: ?putOut)[(set: $sequence to 3)(go-to: $currentPassage)] (click: ?galeAskKill)[(set: $sequence to 13)(go-to: $currentPassage)] (click: ?galeAskTrue)[(set: $sequence to 14)(go-to: $currentPassage)] (click: ?galeAskStop)[(set: $sequence to 15)(go-to: $currentPassage)] (click: ?leaveGale)[(set: $sequence to 16)(go-to: $currentPassage)] (click: ?findShadowheart)[(set: $sequence to 21)(set: $lookingFor to "Shadowheart")(go-to: $currentPassage)] (click: ?findLaezel)[(set: $sequence to 21)(set: $lookingFor to "Lae'zel")(go-to: $currentPassage)] (click: ?astarionTent)[(set: $sequence to 28)(go-to: $currentPassage)] (click: ?astarionTentSkip)[<script>addAchieve("Priorities"); musicLoop(""); </script>(set: $sequence to 28)(go-to: $currentPassage)] (click: ?goToTomb)[(set: $sequence to 0)(go-to: "Act 1")] (display: "decorate campsite") <style> body{ background: #040c01; } </style> } (if: $sequence is 0)[You are inside of a tomb. The space is twelve feet long and perhaps half as wide. A column-bracketed stone door stands at one end. Interment niches line the walls, full of dusty remains. There is a stone sarcophagus in the center of the room. (if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[|examineDoor>[Examine the door.] |skip>[Examine the niches.] |examineSarcophagus>[Examine the sarcophagus.]]{ (set: $healthDisplay to false) (set: $practice_link_display to true) (set: $tomb_link_display to false) (if: $astarion_seen is true)[(set: $astarion_link_display to true)] } ](elseif: $sequence is 1)[The stone door is almost as large as the wall. Decorative columns flank it. It has no visible handle or latch.(if: $astarion_location is "door")[ Astarion is crouched behind one of the columns. |lookAstarion>[Look at Astarion.] |return>[Do something else.] ](else:)[ |return>[Continue]]{ (set: $healthDisplay to false) (set: $practice_link_display to true) (if: $astarion_seen is true)[(set: $astarion_link_display to true)] }](elseif: $sequence is 2)[Stone cubbyholes set into the walls. Intended to hold cremated remains. The contents of these niches have been vandalized. Vases broken and ash scattered everywhere. Each shelf has an engraved epitaph beneath it. <tw-link class='cyclingLink' data-cycling-texts='["In Memory.", "Beloved In Life.", "Now With The Gods.", "At Rest.", "Gone But Not Forgotten."]' onclick='clickCyclingLink(this, "In Memory.");'>In Memory.</tw-link> |return>[Continue]{ (set: $healthDisplay to false) (set: $practice_link_display to true) (if: $astarion_seen is true)[(set: $astarion_link_display to true)] }](elseif: $sequence is 3)[The stone sarcophagus in the center of the room is beautifully carved, though chipped in places. A faded crest at one end implies that a noble is interred here. (if: $astarion_location is "sarcophagus sitting up")[Astarion is sitting on top of it.](elseif: $astarion_location is "sarcophagus")[Astarion is lying on top of it.](else:)[It's sealed shut.] (if: $astarion_location contains "sarcophagus")[|lookAstarion>[Look at Astarion.] ]|return>[Do something else.]{ (set: $healthDisplay to false) (set: $practice_link_display to true) (if: $astarion_seen is true)[(set: $astarion_link_display to true)] }](elseif: $sequence is 4)[(if: $astarion_location is "sarcophagus")[Astarion is lying completely still on top of the sarcophagus. From a distance you thought he was a statue. He is covered so thickly in dust his body blends with the stone. ](elseif: $astarion_location is "sarcophagus sitting up")[Astarion is sitting up, on top of the sarcophagus, looking out into the darkness. ](else:)[Astarion is crouched, mostly concealed behind one of the columns. ]He looks (if: $astarion_mood is "curious")[curious.](elseif: $astarion_mood is "tense")[prickly and nervous.](elseif: $astarion_mood is "frightened")[frightened.](else:)[|exp>[bored.](click-replace: ?exp)[empty.]] //Something exists beyond your perception. <span class="softEmph">Requires: Sight 2//</span> (if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[(if: $speech is 1)[|saySomething>[Say something.] ](else:)[|gray2>[Say something.] (click: ?gray2)[<span class="explain">Requires Speech 1. Press the 'Practice Existing' button below.</span>]] (if: $touch is 1)[|touchVampire>[Touch him.] ](else:)[|gray3>[Touch him.] (click: ?gray3)[<span class="explain">Requires Touch 1. Press the 'Practice Existing' button below.</span>]] |return>[Do something else.]]{ (set: $astarion_seen to true) (set: $healthDisplay to true) (set: $tomb_link_display to true) (set: $practice_link_display to true) } ](elseif: $sequence is 5)[(if: $astarion_location is "sarcophagus")[Astarion is lying completely still on top of the sarcophagus.](elseif: $astarion_location is "sarcophagus sitting up")[Astarion is sitting up on top of the sarcophagus.](else:)[Astarion is crouched, mostly concealed behind one of the columns.] He looks (if: $astarion_mood is "curious")[curious.](elseif: $astarion_mood is "tense")[prickly and nervous.](elseif: $astarion_mood is "frightened")[frightened.](else:)[|exp>[bored.](click-replace: ?exp)[empty.]] (display: "Touch Options Day 1"){ (set: $tomb_link_display to true) (set: $practice_link_display to true) }](elseif: $sequence is 6)[(if: $target is "hand" and $astarion_mood is "curious")[(if: $touch_count is 0)[Astarion twitches his hand away from the contact. He stares at the place where his hand just was for almost a half a minute. Then, very slowly, he puts his hand down in exactly the same spot. ](elseif: $touch_count is 1)[Astarion winces. //Something happens beyond your perception. <span class="softEmph">Requires: Sight 3</span>// But he does not move his hand away.(set: $hand_held to true)<script>updateTrust(1);</script> ](elseif: $touch_count is 2)[You have discovered that you can sustain contact for three seconds. Then your fingers drift into nothingness, becoming insubstantial and falling through his hand. ](elseif: $touch_count is 3)[Astarion doesn't flinch at all this time. He is staring fixedly at his hand where it sits on the stone. ](elseif: $touch_count is 4)[$astarion_name This is... He trails off. Like he doesn't know how to finish that sentence. ](elseif: $touch_count > 4)[Astarion holds very still and watches someone invisible touch the back of his hand. ](display: "Touch Options Day 1"){ (set: $touch_count to it+1) } ](elseif: $target is "hand" and $astarion_mood is "tense")[Astarion twitches his hand away. He glares suspiciously at the place where it just was. |lookAstarion>[Continue] ](else:)[(go-to: "Don't Touch Me")] { }](elseif: $sequence is 7)[(if: $whisper_count is 0)[(if: $astarion_location is "door")[Astarion twitches, and then looks in your direction warily. ](else:)[Astarion shifts slightly on top of the sarcophagus. His expression doesn't change. He still looks |exp>[bored.](click-replace: ?exp)[empty.] ]](if: $whisper_count is 1)[(if: $astarion_location is "door")[Astarion looks in your direction warily. ](elseif: $sight is 1)[Astarion's head tilts in your direction. ]](elseif: $whisper_count is 2)[(if: $astarion_location contains "sarcophagus")[Astarion sits up. He does so slowly, as if the change takes effort. ]He starts to say something, but then coughs. A small cloud of dust from his mouth. He tries to speak again. $astarion_name Is someone there? { (set: $astarion_heard to true) (if: $astarion_location is "sarcophagus")[(set: $astarion_location to "sarcophagus sitting up")] (set: $astarion_mood to "curious") }](else:)[Astarion looks towards the sound. It's so slight, he seems uncertain as to whether it actually happened.(if: $whisper_to_calm is 0 and $astarion_mood is "frightened")[ He seems a little less frightened.](if: $whisper_to_calm is 1 and $astarion_mood is "tense")[ He's starting to look less tense and more curious.] ] (display: "Touch Options Day 1"){ (if: $whisper_count < 3)[(set: $whisper_count to it + 1)] (set: $whisper_to_calm to it + 1) (if: $whisper_to_calm > 0 and $astarion_mood is "frightened")[(set: $astarion_mood to "tense")] (if: $whisper_to_calm > 1 and $astarion_mood is "tense")[(set: $astarion_mood to "curious")] }](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: ?examineDoor)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?examineSarcophagus)[(set: $sequence to 3)(go-to: $currentPassage)] (click: ?saySomething)[(set: $sequence to 0)(go-to: "A Voice In The Dark")] (click: ?lookAstarion)[(set: $sequence to 4)(set: $healthDisplay to true)(go-to: $currentPassage)] (click: ?touchVampire)[(set: $sequence to 5)(go-to: $currentPassage)] (click: ?touchHand)[(set: $sequence to 6)(set: $energy_change to -1)(display: "update energy silent")(set: $target to "hand")(go-to: $currentPassage)] (click: ?touchShoulder)[(set: $sequence to 6)(set: $energy_change to -1)(display: "update energy silent")(set: $target to "shoulder")(go-to: $currentPassage)] (click: ?touchHead)[(set: $sequence to 6)(set: $energy_change to -1)(display: "update energy silent")(set: $target to "head")(go-to: $currentPassage)] (click: ?touchTap)[(set: $sequence to 7)(set: $energy_change to -1)(display: "update energy silent")(set: $target to "tap")(go-to: $currentPassage)] <script> changeBackground("columnsFrame"); </script> }{ (if: $drawAction is "erase")[ (set: $lastDrawn to $currentPassage) (set: $fg_tree_count to it+1) <script> var c = document.getElementById('canv'); var context2D = c.getContext('2d'); context2D.clearRect(0, 0, c.width, c.height); </script> ](elseif: $drawAction is "trees" and $lastDrawn is not $currentPassage)[ (set: $lastDrawn to $currentPassage) (set: $fg_tree_count to it+1) <script> var c = document.getElementById('canv'); var context2D = c.getContext('2d'); var w = c.width = window.innerWidth; var h = c.height = window.innerHeight; var h2 = h * 1.0; var ŭ = 0; var cnt = 0; var treePosition1 = geth("treePosition1"); var branches1 = geth("branches1"); var w1 = w* treePosition1; var topiary1 = new branch(branches1, 0, 0); var treePosition2 = geth("treePosition2"); var branches2 = geth("branches2"); var w2 = w* treePosition2; var topiary2 = new branch(branches2, 0, 0); var treePosition3 = geth("treePosition3"); var branches3 = geth("branches3"); var w3 = w* treePosition3; var topiary3 = new branch(branches3, 0, 0); var tree_count = geth("fg_tree_count"); function anim(){ if(tree_count == geth("fg_tree_count")){ cnt++; ŭ-=.5; if (cnt%2 && cnt < 200) { draw(); if(treePosition2 != 0) draw2(); if(treePosition3 != 0) draw3(); } window.requestAnimationFrame(anim); } } anim(); function draw() { context2D.save(); context2D.clearRect(0, 0, w, h); context2D.translate(w1, h*0.98); context2D.rotate(-Math.PI * 0.5); topiary1.disp(context2D); context2D.restore(); } function draw2() { context2D.save(); context2D.translate(w2, h*0.98); context2D.rotate(-Math.PI * 0.5); topiary2.disp(context2D); context2D.restore(); } function draw3() { context2D.save(); context2D.translate(w3, h*0.98); context2D.rotate(-Math.PI * 0.5); topiary3.disp(context2D); context2D.restore(); } function branch(len, ang, gen){ this.len = len; this.ang = ang; this.gen = gen; this.limb = []; this.sway = 0; this.mult = rnd(0.01, 0.1); this.spawn = 0; this.vel =0; if(gen < 8){ this.limb.push(new branch(len*rnd(0.8, 0.99), rnd(0, Math.PI/6), this.gen+1)); this.limb.push(new branch(len*rnd(0.8, 0.99), rnd(0, -Math.PI/6), this.gen+1)); } this.disp = function(context2D){ context2D.save(); this.vel *= 0.5; var dif = 1-this.spawn; this.vel += (dif*0.1); this.spawn += this.vel; context2D.strokeStyle = "#091a02"; context2D.lineWidth = 1; context2D.beginPath(); context2D.rotate(this.ang + (Math.sin(this.sway*this.mult)*Math.PI/128)); context2D.moveTo(0, 0); context2D.lineTo(this.len * this.spawn, 0); context2D.stroke(); context2D.translate(this.len * this.spawn, 0); if(this.spawn > 0.6){ for(var i = 0; i < this.limb.length; i++){ var limb = this.limb[i]; limb.disp(context2D); } } context2D.restore(); }; } function rnd(min, max){ return Math.random()*(max - min) + min; } </script> ] (set: $drawAction to "") }<span class="actText">Act 1</span> “ It floated before her, a thing of shadow the size of a man. It seemed featureless except for its long, twiglike fingers and a mouth full of moon-white teeth. ” — A Bastellus, summoned to Faerun by Sirana, Pool of Twilight, 1360 DR |enterTomb>[Where are you?] { (set: $drawAction to "erase") (display: "decorate campsite") (set: $in_intro to false) (set: $day to 151) (set: $active_event to "none") (set: $event_is_stale to false) (set: $event_forced to false) (if: $difficulty is "explorer")[(set: $health to 47)] (else:)[(set: $health to 37)] (set: $maxHealth to 52) (set: $energy to 10) (set: $maxEnergy to 10) (set: $currentLearning to 0) (set: $maxLearning to 2) (set: $neglect_health_penalty to 0) (set: $consecutive_interactions to 0) (if: $quickstarting is true)[ (set: $canPracticeSight to true) (set: $canPracticeSpeech to true) (set: $canPracticeTouch to true) ](else:)[ (set: $canPracticeSight to false) (set: $canPracticeSpeech to false) (set: $canPracticeTouch to false) ] (set: $sight to 0) (set: $speech to 0) (set: $touch to 0) (set: $firstPriority to "") (set: $secondPriority to "") (set: $sightLearning to 0) (set: $speechLearning to 0) (set: $touchLearning to 0) (set: $astarion_trust to 5) (set: $vampire_enrichment_score to 0) (set: $enrichment_list to "base") (set: $done_once_list to "base") (set: $chat_list to "base") (set: $asked_list to "base") (set: $curious_value to 0) (set: $calm_value to 0) (set: $happy_value to 0) (set: $interaction_to_trust to 0) (set: $touch_warning to 0) (set: $fuck_off_count to 0) (set: $fuck_off_forgiveness to 0) (set: $morning_joke_count to 0) (set: $story_count to 0) (set: $explore_count to 0) (set: $touch_trust to 0) (set: $touch_threshold_count to 0) (set: $astarion_interacted to true) (set: $astarion_greeted to false) (set: $astarion_howareyou to false) (set: $astarion_explored to false) (set: $astarion_refuse_interaction to false) (set: $astarion_hiding to false) (set: $astarion_goodbye to false) (set: $astarion_nightmare_told to "") (set: $astarion_mood to "bored") (set: $astarion_yesterday_mood to "bored") (set: $astarion_location to "sarcophagus") (set: $astarion_activity to "empty") (set: $astarion_day_activity to "empty") (set: $astarion_hands to "hurt") (set: $astarion_action_count to 10) (set: $astarion_play_count to 10) (set: $tried_hallway_alone to false) (set: $tried_unbar to false) (set: $stone_door_latched to true) (set: $stone_door_oiled to false) (set: $godey_state to "passive") (set: $godey_tantrum to 0) (set: $godey_known to false) (set: $godey_tantrum_heard to false) (set: $teeth_location to "door") (set: $teeth_leaving to false) (set: $teeth_hit_count to 0) (set: $inventory_oil to false) (set: $inventory_pliers to false) (set: $inventory_necklace to false) (set: $took_necklace to false) (set: $astarion_has_pliers to false) (set: $astarion_has_oil to false) (set: $astarion_has_necklace to false) (set: $astarion_has_ring to false) (set: $astarion_has_clive to false) (set: $astarion_seen to false) (set: $astarion_heard to false) (set: $whistling to false) (set: $hand_held to false) (set: $whisper_count to 0) (set: $whisper_to_calm to 0) (set: $touch_count to 0) (set: $speech_revealed to false) (set: $player_killed_by to "") (set: $what_is_player to "") (set: $player_term to "ghost") (set: $player_name to "Tav") (set: $player_hurt to 0) (set: $murdered_by_cazador to false) (set: $unlocked_escape_ask to false) (set: $done_with_cazador to false) (set: $done_with_tomb to false) (set: $seen_treasure to false) (set: $astarion_working_on_sarcophagus to false) (set: $sarcophagus_crest_work to 0) (set: $sarcophagus_open to false) (set: $astarion_will_explore to false) (set: $astarion_stories_unlocked to false) (set: $astarion_not_a_cat to false) (set: $successful_head_pat to 0) (set: $successful_hug to 0) (set: $Quickstart to true) <script>savePermSettings();</script> (click: ?enterTomb)[(go-to: "Darkness")] }(if: $sequence is 0)[You are in a cold, dark place.(if: $sight is 1 and $touch is 1 and $speech is 1)[ You are exhausted from practice. You can learn no more today.](if: $sight > 0 or $touch > 0 or $speech > 0)[ <span class="explain">To use what you learn press the 'Explore Tomb' button below.</span>] (display: "Practice Cluster") ](elseif: $sequence is 1)[It's hard to see. But that's not because it's dark. It's because you're not entirely here? Or you don't belong here? It's hard to describe |rules>[but you know it's true.](click: ?rules)[ //Like being aware of the rules of a dream.//] |next>[Continue] ](elseif: $sequence is 2)[You think you might be able to See more if you worked at it. Practiced. (set: $canPracticeSight to true) (display: "Practice Cluster") ](elseif: $sequence is 3)[You try to feel around and discover you cannot touch anything. Your hand passes through the wall and the floor. You understand nothing of their nature or texture. You're like a ghost here. |next>[Continue] ](elseif: $sequence is 4)[You do feel the lightest pressure when you hold your hand flush with where you think the wall is. You might be able to figure out how to Touch things if you worked at it. Practiced. (set: $canPracticeTouch to true) (display: "Practice Cluster") ](elseif: $sequence is 5)[You try to speak, but nothing happens. You try to yell, and the sound is a hint of a whisper. Barely existent. Swallowed by the silence of the room. |next>[Continue] ](elseif: $sequence is 6)[But a whisper is something. A place to start. You might be able to Speak louder, if you worked at it. Practiced. (set: $canPracticeSpeech to true) (display: "Practice Cluster") ](elseif: $sequence is 7)[It takes a shocking amount of effort to practice this skill. You feel like you've been diminished by this place. You used to be a person. |exp1>[Now you're a shadow.](click: ?exp1)[ //Indistinguishable among other shadows.//] And you have a very limited pool of <span class="energy">Energy.</span> |next>[Spend <span class="energy">1 Energy</span> to learn $practicing.] |return>[No, something else.]{ (set: $energyDisplay to true) }](elseif: $sequence is 8)[<span class="emph">(if: $firstPriority is "")[(set: $firstPriority to $practicing)//By your actions, your first priority is $practicing.// ](elseif: $secondPriority is "")[(set: $secondPriority to $practicing)//By your actions, your second priority is $practicing.// ](else:)[//By your actions, $practicing is your last priority.// ]</span> You are a shadow. But you are a diligent shadow.(set: $energy_change to -1)(display: "update energy silent") After a great deal of work you find (if: $practicing is "Sight")[that you can make out shapes around you. <span class="emph">//Gained Sight: Level 1//</span>(set: $sight to 1) You see walls. Columns. |goTomb>[You are in a tomb.] ](elseif: $practicing is "Speech")[that you can whisper audibly. <span class="emph">//Gained Speech: Level 1//</span>(set: $speech to 1) You can form no discernible words. But you can whisper a perceptible sussurus of noise. (if: $sight is 0 and $touch is 0)[|goVoice>[Continue]](elseif: $sight is 0)[|goTombBlind>[Continue]](else:)[|goTomb>[Continue]] ](elseif: $practicing is "Touch")[that you can feel the cold stone texture of the wall. <span class="emph">//Gained Touch: Level 1//</span>(set: $touch to 1) (if: $sight is 0)[The walls are smooth--crafted slabs, not rough cave. You think for a moment that you're in a dungeon. |next>[But you are mistaken.] ](else:)[You think you could apply some slight pressure to it. |goTomb>[Continue] ]]{ } ](elseif: $sequence is 9)[While searching the wall, your fingers encounter engraved plaques. You can discern words: <tw-link class='cyclingLink' data-cycling-texts='["In Memory.", "Beloved In Life.", "Now With The Gods.", "At Rest.", "Gone But Not Forgotten."]' onclick='clickCyclingLink(this, "In Memory.");'>In Memory.</tw-link> These are epitaphs. |goTombBlind>[You are in a tomb.] ](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: ?tryLook)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?tryFeel)[(set: $sequence to 3)(go-to: $currentPassage)] (click: ?trySpeak)[(set: $sequence to 5)(go-to: $currentPassage)] (click: ?practiceSight)[(set: $practicing to "Sight")(set: $sequence to 7)(go-to: $currentPassage)] (click: ?practiceSpeech)[(set: $practicing to "Speech")(set: $sequence to 7)(go-to: $currentPassage)] (click: ?practiceTouch)[(set: $practicing to "Touch")(set: $sequence to 7)(go-to: $currentPassage)] (click: ?goTomb)[(set: $sequence to 0)(go-to: "Exploring The Tomb")] (click: ?goTombBlind)[(set: $sequence to 0)(go-to: "Blind In The Tomb")] (click: ?goVoice)[(set: $sequence to 0)(go-to: "A Voice In The Dark")] (set: $healthDisplay to false) }(if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[(if: $sight is 0)[(if: $canPracticeSight is true)[|practiceSight>[Practice Sight.]](else:)[|tryLook>[Look around.]] ](if: $touch is 0)[(if: $canPracticeTouch is true)[|practiceTouch>[Practice Touch.]](else:)[|tryFeel>[Feel around.]] ](if: $speech is 0)[(if: $canPracticeSpeech is true)[|practiceSpeech>[Practice Speech.]](else:)[|trySpeak>[Call out.]] ]]{ (click: ?tombTransfer)[(set: $sequence to 0)(if: $sight > 0)[(go-to: "Exploring The Tomb")](elseif: $touch > 0)[(go-to: "Blind In The Tomb")](else:)[(go-to: "A Voice In The Dark")]] (set: $practice_link_display to false) (if: $sight > 0 or $touch > 0 or $speech > 0)[(set: $tomb_link_display to true)] (if: $astarion_seen is true)[(set: $astarion_link_display to true)] }Not finished yet. (set: $drawAction to "erase") (display: "decorate campsite"){<div class="prg-border" id="healthBar"> <div class="prg-bar" id="bar1"></div> <div class="prg-text" id="text1">25/52</div> <div class="prg-right-end after-right-darkred" id="right1"></div> <div class="prg-left-end after-left-brightred" id="left1"></div> </div> <input type="range" min="0" max="52" value="25" id="val1"> <div class="prg-border" id="energyBar"> <div class="prg-black-box"> <div class="prg-inner-bar-small"></div> <div class="prg-bar-small" id="bar2"><div class="prg-text-small" id="text2">13</div></div> </div> <div class="prg-right-end" id="right2"></div> <div class="prg-left-end" id="left2"></div> </div> <input type="range" min="0" max="10" value="8" id="val2"> <script> $("#val1").on("input change", function() { updateValueHealth($("#val1").val(),52); }); $("#val2").on("input change", function() { updateValueEnergy($("#val2").val(),10); }); updateValueHealth(25,52); updateValueEnergy(8,10); </script> }{ (set: $health to $health + $health_change) (set: $display_health to $health_change) (if: $display_health < 0)[(set: $display_health to 0-it)] (if: $health > $maxHealth)[(set: $health to $maxHealth)] (if: $health < 0)[(set: $health to 0)] (if: $health < 1)[(set: $die_next_screen to true)] (if: $health_change > 0)[<script>playAudio("aa_tap2");</script><span class='self'>//Gained $display_health Health//</span>](else:)[<script>playAudio("aa_damage");</script><span class='health'>//Lost $display_health Health//</span>] }(if: $sequence is 0)[You are inside of a tomb.(if: $tomb_first_feel is not true)[ You feel your way along the walls of the room. It is perhaps five paces long and three paces wide. There are columns on one wall, framing a door. The other walls are lined with shelves. You abandon the walls and find a stone box dominating the center of the room.](else:)[ It is perhaps five paces long and three paces wide. There are columns on one wall, framing a door. The other walls are lined with shelves. (if: $tomb_sarcophagus_found is true)[A sarcophagus](else:)[A stone box] dominates the center of the room.] |next>[Feel the door.] |skip>[Feel the shelves.] |sarcophagus>[Feel the (if: $tomb_sarcophagus_found is true)[sarcophagus](else:)[box].]{ <script>addAchieve("since feeling is first");</script> (set: $tomb_first_feel to true) (set: $practice_link_display to true) (set: $astarion_link_display to false) (set: $tomb_link_display to false) } ](elseif: $sequence is 1)[The stone door is almost as large as the wall--you can trace its shape by the seam. You run your hands all over but you can find no groove or opening mechanism.(if: $astarion_location is "door")[ There is someone crouched behind one of the columns. |gray1>[Look at them.] (click: ?gray1)[<span class="explain">Requires Sight 1. Press the 'Practice Existing' button below.</span>] (if: $whispered_once_corner is true)[|gray4>[Say something.] (click: ?gray4)[//That doesn't seem productive.//] ](elseif: $speech is 1)[|speakInCorner>[Say something.] ](else:)[|gray2>[Say something.] (click: ?gray2)[<span class="explain">Requires Speech 1. Press the 'Practice Existing' button below.</span>]] (if: $poked_vampire is true)[|gray3>[Touch them.] (click: ?gray3)[//That doesn't seem productive.//]](else:)[|pokeVampire>[Touch them. //Cost: <span class="energy">1 Energy</span>//]] |return>[Do something else.] ](else:)[ |return>[Continue]]{ (set: $practice_link_display to true) }](elseif: $sequence is 2)[The shelves are thick with dust. No. Too thick to be dust. Ashes? Also there's broken pottery. Your fingers find a sharp point. You think for a moment you've cut yourself, but no. You don't exist enough to be hurt like that. Each shelf has an engraved epitaph beneath it. <tw-link class='cyclingLink' data-cycling-texts='["In Memory.", "Beloved In Life.", "Now With The Gods.", "At Rest.", "Gone But Not Forgotten."]' onclick='clickCyclingLink(this, "In Memory.");'>In Memory.</tw-link> |return>[Continue]{ (set: $practice_link_display to true) }](elseif: $sequence is 3)[The stone box is engraved with filigree decorations and chipped in places. You pick out a shield on the front, and symbols. Some kind of crest. This is a sarcophagus. For someone important enough to have a family crest.(if: $astarion_location is "sarcophagus" or $astarion_location is "sarcophagus sitting up")[ You rise to check the top. See if it's open. (if: $astarion_location is "sarcophagus")[There's someone lying on top of it.](else:)[There's someone sitting on top of it.](if: $astarion_heard is true)[ You suspect it's Astarion.] |gray1>[Look at them.] (click: ?gray1)[<span class="explain">Requires Sight 1. Press the 'Practice Existing' button below.</span>] (if: $speech is 1)[|saySomething>[Say something.] ](else:)[|gray2>[Say something.] (click: ?gray2)[<span class="explain">Requires Sight 1. Press the 'Practice Existing' button below.</span>]] (if: $poked_vampire is true)[|gray3>[Touch them.] (click: ?gray3)[//That doesn't seem productive.//]](else:)[|touchVampire>[Touch them. //Cost: <span class="energy">1 Energy</span>//]] |return>[Do something else.] ](else:)[ It's sealed shut. |return>[Continue] ]{ (set: $tomb_sarcophagus_found to true) (set: $practice_link_display to true) }](elseif: $sequence is 4)[(if: $astarion_location is "sarcophagus sitting up")[There's a twitch of movement. Something hits you. Only it doesn't. It goes through you. It's an alarming feeling, having someone's hand pass through yours. As though you were nothing. You probably shouldn't do that blind. |sarcophagus>[Continue] { (set: $fuck_off_count to it+1) (set: $poked_vampire to true) (set: $astarion_mood to "tense") } ](else:)[There's a sudden sense of movement. They lash out at you. Lash *through* you. It's an alarming feeling, having someone's hand pass through your chest. As though you were nothing. It doesn't hurt you. Though you are left with the impression that someone might have just been hurt. (set: $health_change to -3)(display: "update health") You hear a thump and a shuffle of movement. They're gone. |return>[Continue]{ (set: $fuck_off_count to it+1) (set: $astarion_location to "door") (set: $astarion_mood to "frightened") }] ](elseif: $sequence is 5)[They flinch. (set: $health_change to -3)(display: "update health")<script>updateTrust(-1);</script> |door>[Continue]{ (set: $fuck_off_count to it+1) (set: $poked_vampire to true) }](elseif: $sequence is 6)[You can't tell if there's a response to your whispering. You really wish that you could See what's going on. //Press the 'Practice Existing' button below.//(set: $practice_link_display to true) |door>[Do something else.]{ (set: $whispered_once_corner to true) }](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: ?door)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?sarcophagus)[(set: $sequence to 3)(go-to: $currentPassage)] (click: ?saySomething)[(set: $sequence to 0)(go-to: "A Voice In The Dark")] (click: ?touchVampire)[(set: $energy_change to -1)(display: "update energy silent")(set: $sequence to 4)(go-to: $currentPassage)] (click: ?pokeVampire)[(set: $energy_change to -1)(display: "update energy silent")(set: $sequence to 5)(go-to: $currentPassage)] (click: ?speakInCorner)[(set: $energy_change to -1)(display: "update energy silent")(set: $sequence to 6)(go-to: $currentPassage)] }(if: $sequence is 0)[(if: $touch is 1 and $sight is 0 and $whisper_count > 3)[You can't see what's going on around you. Before you make any more noise, you feel like you should do something about that. ](elseif: $touch is 1 or $sight is 1)[You can't Speak well enough to form clear words. But you can whisper loudly enough to make it clear that you are present. ](elseif: $whisper_count is 4)[You have no idea where you are. You have no idea what is around you. And before you make any more noise, you feel like you should do something about that. //Press the 'Practice Existing' button below.// ](else:)[You have no idea where you are. You have no idea what is around you. But if you want, you can break the silence. ](display: "Voice Options"){ (set: $astarion_link_display to false) (set: $tomb_link_display to false) (set: $practice_link_display to true) }](elseif: $sequence is 1)[(if: $whisper_count is 0)[(if: $whistling is true)[You whistle.<script>addAchieve("Dusksong");</script> You manage a few notes. Just enough to imply a song. It's very soft.](else:)[You whisper. Your voice is very soft. Just on the edge of perceptible.] But you are audible. This room is completely silent. Well. It was a moment ago. Then you happened. |next>[Continue]{ <script>addAchieve("Hello Crypt");</script> }](elseif: $whisper_count is 1)[You whisper. There's no meaning to it. But it creates a sense of presence. (if: $sight is 1 and $astarion_location is "door")[Astarion looks in your direction warily. ](elseif: $sight is 1)[Astarion's head tilts in your direction. ](elseif: $touch is 1)[More movement from on top of the sarcophagus. ](else:)[You might have heard movement again. But you're not sure. ] (display: "Voice Options") ](elseif: $whisper_count is 2)[(if: $whistling is true)[You whistle the next few bars of the song.](else:)[You whisper again.] (if: $sight is 1 and $astarion_location is "door")[Astarion starts to say something, but then coughs. A small cloud of dust from his mouth. He tries to speak again. ](elseif: $sight is 1)[Astarion sits up. He does so slowly, as if the change takes effort. He starts to say something, but then coughs. A small cloud of dust from his mouth. He tries to speak again. ](elseif: $touch is 1)[A great deal of movement this time. The person on top of the sarcophagus slowly sits up. You hear someone start to speak. Then you hear coughing. Then they try to speak again. ](else:)[You hear someone start to speak. Then you hear coughing. Then they try to speak again. ]|skip>[Continue] ](elseif: $whisper_count is 3)[(if: $whistling is true)[You whistle.](else:)[You whisper.] (if: $sight is 1)[Astarion turns his head, tracking where the sound comes from. He mutters something to himself that you can only just hear. $astarion_name I'm being haunted. $astarion_name Fantastic. (display: "Voice Options"){ }](else:)[//Something happens beyond your perception. Requires: Sight 1</span>// You really wish that you could See what's going on. //Press the 'Practice Existing' button below.//(set: $practice_link_display to true) ] ](elseif: $whisper_count is 4)[(if: $whistling is true)[You whistle. $astarion_name That's music.<script>updateTrust(1);</script> The words are vague and a bit uncertain. As if this is something he's only just remembered.](else:)[You whisper. $astarion_name Repetitive ghost, aren't you?] (display: "Voice Options") ](elseif: $whisper_count is 5)[(if: $whistling is true)[You whistle. Astarion listens to you.](else:)[You whisper. $astarion_name I suppose it's better than silence.] (display: "Voice Options") ](else:)[(if: $whistling is true)[You whistle.](else:)[You whisper meaningless nonsense.] Astarion listens to you. (display: "Voice Options") ]{ (set: $whisper_count to it + 1) (if: $whistling is true and $whisper_count is 1)[(set: $whisper_count to it + 1)] (set: $whisper_to_calm to it + 1) (if: $whisper_to_calm > 1 and $astarion_mood is "frightened")[(set: $astarion_mood to "tense")] (if: $whisper_to_calm > 2 and $astarion_mood is "tense")[(set: $astarion_mood to "curious")] } ](elseif: $sequence is 2)[(if: $sight is 1 and $astarion_location is "door")[Astarion twitches, and then looks in your direction warily. ](elseif: $sight is 1)[Astarion shifts slightly on top of the sarcophagus. His expression doesn't change. He still looks |exp>[bored.](click: ?exp)[empty.] ](elseif: $touch is 1)[Something happens nearby. A shifting movement. The person lying on top of the sarcophagus just moved. ](else:)[You hear something happen in response. A slight shuffle of movement from somewhere in front of you. But nothing more. ] (display: "Voice Options") ](elseif: $sequence is 3)[(if: $sight is 0)[You hear a voice. Hoarse, as if from disuse, but still familiar. ]$astarion_name Is someone there? (display: "Voice Options"){ (set: $astarion_heard to true) (if: $astarion_location is "sarcophagus")[(set: $astarion_location to "sarcophagus sitting up")] (set: $astarion_mood to "curious") } ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ]{ (click: ?whistle)[(set: $sequence to 1)(set: $energy_change to -1)(display: "update energy silent")(set: $whistling to true)(set: $class to "bard")(go-to: $currentPassage)] (click: ?whisper)[(set: $sequence to 1)(set: $energy_change to -1)(display: "update energy silent")(set: $whistling to false)(go-to: $currentPassage)] (click: ?returnTouch)[(set: $sequence to 3)(go-to: "Blind In The Tomb")] (click: ?returnSight)[(set: $sequence to 4)(go-to: "Exploring The Tomb")] }(if: $sequence is 0)[You consider what to do next. (if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[|practiceSight>[Practice Sight.] |practiceTouch>[Practice Touch.] |practiceSpeech>[Practice Speech.] ]{ (set: $learnDisplay to false) (set: $astarion_link_display to true) (set: $tomb_link_display to true) (set: $practice_link_display to false) (click: ?practiceSight)[ (set: $sequence to 1) (set: $learnType to "Sight") (set: $currentStat to $sight) (set: $currentLearning to $sightLearning) (go-to: $currentPassage) ] (click: ?practiceTouch)[ (set: $sequence to 1) (set: $learnType to "Touch") (set: $currentStat to $touch) (set: $currentLearning to $touchLearning) (go-to: $currentPassage) ] (click: ?practiceSpeech)[ (set: $sequence to 1) (set: $learnType to "Speech") (set: $currentStat to $speech) (set: $currentLearning to $speechLearning) (go-to: $currentPassage) ] }](elseif: $sequence is 1)[{ (if: $currentStat is 6)[(set: $maxLearning to 1)(set: $currentLearning to 1)] (elseif: $currentStat is 0)[(set: $maxLearning to 1)] (elseif: $firstPriority is $learnType)[(set: $maxLearning to ($currentStat+1)*1)] (elseif: $secondPriority is $learnType)[(set: $maxLearning to ($currentStat+1)*3)] (else:)[(set: $maxLearning to ($currentStat+1)*5)] (if: $currentStat is 6 or $currentStat is 1)[] (elseif: $currentStat > 3)[(set: $maxLearning to it+2)] (else:)[(set: $maxLearning to it+1)] } (if: $currentLearning is $maxLearning and $currentStat < 6)[(set: $currentStat to it+1)<span class="emph">//Gained $learnType: Level $currentStat//</span> (if: $learnType is "Sight")[(if: $currentStat is 1)[How on earth did you get here? Tell Abigail. ](elseif: $currentStat is 2)[You see Astarion more clearly, and have a sense of how much he trusts you. ](elseif: $currentStat is 3)[You see Astarion more clearly, and have a sense of how he feels. ](elseif: $currentStat is 4)[You see Astarion more clearly, and have a sense of how calm he is. You see more details in the room. You notice there's something that gleams silver, over by the niches. ](elseif: $currentStat is 5)[You see Astarion more clearly, and have a sense of how happy he is. ](elseif: $currentStat is 6)[You can see things that should be hidden. ] ](elseif: $learnType is "Touch")[(if: $currentStat is 1)[You can feel and touch things with your fingertips. ](elseif: $currentStat is 2)[You can pass through solid objects. ](elseif: $currentStat is 3)[You can push objects. ](elseif: $currentStat is 4)[You can feel and touch things with your arms. And therefore hug people. ](elseif: $currentStat is 5)[You can lift and carry objects. ](elseif: $currentStat is 6)[You can hit things. ] ](elseif: $learnType is "Speech")[(if: $currentStat is 1)[You can produce unintelligible whispering. ](elseif: $currentStat is 2)[You can speak a single, understandable word. ](elseif: $currentStat is 3)[You can speak two words. ](elseif: $currentStat is 4)[You can speak three words. ](elseif: $currentStat is 5)[You can make a loud, distracting noise. ](elseif: $currentStat is 6)[You can shout a single word. ] ]{ (if: $currentStat < 6)[(set: $currentLearning to 0)] (if: $currentStat is 6)[(set: $maxLearning to 1)(set: $currentLearning to 1)] (elseif: $currentStat is 0)[(set: $maxLearning to 1)] (elseif: $firstPriority is $learnType)[(set: $maxLearning to ($currentStat+1)*1)] (elseif: $secondPriority is $learnType)[(set: $maxLearning to ($currentStat+1)*3)] (else:)[(set: $maxLearning to ($currentStat+1)*5)] (if: $currentStat is 6 or $currentStat is 1)[] (elseif: $currentStat > 3)[(set: $maxLearning to it+2)] (else:)[(set: $maxLearning to it+1)] <script>playAudio("aa_clue");</script> }](else:)[(if: $currentStat is 6)[You have learned $learnType as well as you can. There is no more to practice.](elseif: $firstPriority is $learnType)[$learnType was your first priority.](elseif: $secondPriority is $learnType)[$learnType was your second priority.](else:)[$learnType was your last priority.] ]{ (set: $level_energy to $maxLearning - $currentLearning) (if: $level_energy > $energy)[(set: $level_energy to $energy)] }(if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[(if: $currentStat is not 6)[(if: $energy is 0)[//Practice $learnType. Not enough Energy.//](else:)[|learn>[Practice $learnType. //Cost: <span class="energy">1 Energy</span>//]] (if: $energy > 4 and $level_energy > 4)[|learnLots>[Train $learnType. //Cost: <span class="energy">5 Energy</span>//] ](if: $energy is 0)[//Level $learnType. Not enough Energy.//](else:)[|level>[Level $learnType. //Cost: <span class="energy">$level_energy Energy</span>//]] ]|return>[Learn something else.]]{ (set: $astarion_link_display to true) (set: $tomb_link_display to true) (set: $practice_link_display to false) (click: ?learn)[ (set: $currentLearning to it+1) (set: $energy_change to -1) (display: "update energy silent") (go-to: $currentPassage)] (click: ?learnLots)[ (set: $currentLearning to it+5) (set: $energy_change to -5) (display: "update energy silent") (go-to: $currentPassage)] (click: ?level)[ (set: $currentLearning to it+$level_energy) (set: $energy_change to (0-$level_energy)) (display: "update energy silent") (go-to: $currentPassage)] (set: $learnDisplay to true) (if: $learnType is "Sight")[ (set: $sight to $currentStat) (set: $sightLearning to $currentLearning) ](elseif: $learnType is "Touch")[ (set: $touch to $currentStat) (set: $touchLearning to $currentLearning) ](elseif: $learnType is "Speech")[ (set: $speech to $currentStat) (set: $speechLearning to $currentLearning) ] }](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: $healthDisplay to false) }{(set: $energy to $energy + $energy_change) (if: $energy > $maxEnergy)[(set: $energy to $maxEnergy)] <script>playAudio("aa_clock_tick1");</script> }(if: $sight is 1 or $whisper_count < 4)[(if: $whistling is not true)[(if: $energy is 0)[//Whisper. Not enough Energy.//](else:)[|whisper>[Whisper. //Cost: <span class="energy">1 Energy</span>//]] ](if: $whistling is true or $class is "bard")[(if: $energy is 0)[//Whistle. Not enough Energy.//](else:)[|whistle>[`[BARD]` Whistle. //Cost: <span class="energy">1 Energy</span>//]] ]](if: $sight is 1)[|returnSight>[Do something else.] ](elseif: $touch is 1)[|returnTouch>[Do something else.] ]{ (set: $practice_link_display to true) }(if: $energy is 0)[//Tap the stone nearby. Not enough Energy.//](else:)[|touchTap>[Tap the stone nearby. //Cost: <span class="energy">1 Energy</span>//]] (if: $energy is 0)[//Touch his hand. Not enough Energy.//](else:)[|touchHand>[Touch his hand. //Cost: <span class="energy">1 Energy</span>//]] |lookAstarion>[Do something else.]{ (set: $practice_link_display to true) }(if: $fuck_off_count > 1)[$astarion_name Get the FUCK away from me. You feel a rush of movement as you're hurled away. Up. Out of the room. Out of the dream. |forestEnd>[Continue]{ }](elseif: $astarion_location is "sarcophagus")[Astarion flinches into violent motion. He lashes out at you. Lashes *through* you. It's an alarming feeling, having someone's hand pass through your chest. As though you were nothing. It doesn't hurt you. You haven't been hurt by this. (set: $health_change to -3)(display: "update health") Astarion scrambles off of the sarcophagus and vanishes into the shadows near the door. |returnFromHere>[Continue]{ (set: $astarion_location to "door") (click: ?returnFromHere)[(set: $sequence to 0)(go-to: "Exploring The Tomb")] }](elseif: $fuck_off_count is 0)[Astarion flinches. He lashes out at you. Lashes *through* you. It's an alarming feeling, having someone's hand pass through your arm. As though you were nothing. But it doesn't hurt. You haven't been hurt by this. (set: $health_change to -1)(display: "update health") |returnFromHere>[Continue]{ (click: ?returnFromHere)[(set: $sequence to 5)(go-to: "Exploring The Tomb")] }](else:)[Astarion flinches. (set: $health_change to -1)(display: "update health") |returnFromHere>[Continue]{ (click: ?returnFromHere)[(set: $sequence to 5)(go-to: "Exploring The Tomb")] }]{ (set: $astarion_mood to "frightened") <script>updateTrust(-1);</script> (set: $whisper_to_calm to 0) (set: $touch_count to 0) (set: $fuck_off_count to it+1) }(if: $sequence is 0)[You wake up in the forest. You're on a bedroll near the campfire. A blanket has been draped over you. A tall, red woman is sitting beside you. |next>[Continue]{ (set: $fg_tree_count to 1) (set: $treePosition1 to 0.1) (set: $branches1 to 170) (set: $treePosition2 to 0.9) (set: $branches2 to 190) (set: $treePosition3 to 0) (set: $drawAction to "trees") }](elseif: $sequence is 1)[$karlach You're awake! She looks hopefully from you to the person lying beside you. |next>[Continue] ](elseif: $sequence is 2)[Astarion is also on a bedroll near the campfire. He is still asleep. Completely still. Not breathing. He looks somehow even paler than usual. |next>[Continue] ](elseif: $sequence is 3)[$karlach Shit. He's still... $karlach Okay. That's okay. $karlach Gale's working on it. And Wyll. Everyone magic. Come on. She pulls you to your feet. You are dragged across camp and into trying to find a way to help. From the outside. Good luck. |goToTitle>[Return to title.] ](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[ ](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[ ](elseif: $sequence is 8)[ ](elseif: $sequence is 9)[ ]{ (display: "decorate campsite") <style> body{ background: #040c01; } </style> <script>changeBackground("");</script> (set: $energyDisplay to false) (set: $healthDisplay to false) } (if: $sequence is 0)[{ (if: $active_event is "mouse")[ (set: $active_event to "empty") (set: $mouse_location to "") ] (if: $active_event is "teeth")[ (if: $teeth_hit_count > 1)[(set: $active_event to "teeth leave fed")] (elseif: $astarion_location is $teeth_location and $astarion_hiding is not true)[(set: $active_event to "teeth found vampire")] (else:)[(set: $active_event to "teeth leave")] (set: $teeth_location to "") ] (if: $fuck_off_forgiveness is 1)[ (set: $fuck_off_count to it-1) (if: $fuck_off_count < 0)[(set: $fuck_off_count to 0)] (set: $fuck_off_forgiveness to 0) ](elseif: $fuck_off_forgiveness > 0)[ (set: $fuck_off_forgiveness to it-1) ] (set: $godey_alert to "") (set: $godey_latch_count to 0) (if: $godey_state is "paranoid")[(set: $godey_state to "passive")] (if: $active_event is "astarion godey response")[(set: $active_event to "empty")] (if: $stone_door_latched is false)[ (if: $godey_state is "passive")[(set: $godey_state to "paranoid")(set: $godey_alert to "arriving")(set: $stone_door_latched to true)] ] (set: $energyDisplay to true) (set: $healthDisplay to true) (set: $learnDisplay to false) (if: $difficulty is "explorer")[(set: $health_change to -1)] (else:)[(set: $health_change to -3)] (if: $astarion_mood is "frightened")[(set: $health_change to it - 3) ](elseif: $astarion_mood is "tense")[(set: $health_change to it - 2) ](elseif: $astarion_mood is "bored")[(set: $health_change to it - 1) ](elseif: $astarion_mood is "curious")[(set: $health_change to it + 0) ](elseif: $astarion_mood is "calm")[(set: $health_change to it + 2) ](elseif: $astarion_mood is "happy")[(set: $health_change to it + 3) ] (if: $astarion_interacted is false)[ (if: $neglect_health_penalty is 0 or $difficulty is "explorer")[(set: $neglect_health_penalty to it+2)] (else:)[(set: $neglect_health_penalty to it+6)] (set: $health_change to it - $neglect_health_penalty) (set: $consecutive_interactions to 0) ](else:)[ (set: $neglect_health_penalty to 0) (set: $consecutive_interactions to it+1) (if: $consecutive_interactions is 3 and $astarion_trust < 7)[ <script>updateTrust(1);</script> (set: $consecutive_interactions to 0) ] ] (if: $vampire_enrichment_score > 19)[(set: $health_change to it + 4) ](elseif: $vampire_enrichment_score > 14)[(set: $health_change to it + 3) ](elseif: $vampire_enrichment_score > 9)[(set: $health_change to it + 2) ](elseif: $vampire_enrichment_score > 4)[(set: $health_change to it + 1) ] (if: $active_event is "teeth found vampire")[(set: $health_change to -10)] (if: $health_change > -1 and $astarion_mood is not "happy")[(set: $health_change to -1)] (if: $health_change > 0)[(set: $health_change to 0)] (set: $health to $health + $health_change) (if: $health > $maxHealth)[(set: $health to $maxHealth)] (if: $health < 0)[(set: $health to 0)] (if: $health < 1)[(set: $die_next_screen to true)] (if: $player_hurt > 0)[(set: $energy to $maxEnergy-$player_hurt)] (else:)[(set: $energy to $maxEnergy)] <script> playAudio("aa_clock_ticks"); </script> (set: $day to it + 1) (set: $event_is_stale to true) (set: $event_forced to false) (set: $astarion_yesterday_mood to $astarion_mood) (set: $astarion_mood to "bored") (set: $astarion_day_activity to "empty") (set: $vampire_enrichment_score to 0) (set: $enrichment_list to "base") (set: $curious_value to 0) (set: $calm_value to 0) (set: $happy_value to 0) (set: $touch_warning to 0) (set: $astarion_interacted to false) (set: $astarion_greeted to false) (set: $astarion_howareyou to false) (set: $astarion_explored to false) (set: $astarion_refuse_interaction to false) (set: $astarion_hiding to false) (if: $day is 152)[ (if: $astarion_location contains "sarcophagus")[ (set: $astarion_location to "sarcophagus")] (if: $hand_held is true)[(set: $touch_threshold_count to 4)] (else:)[(set: $touch_threshold_count to 0)] (set: $active_event to "astarion first questions") (set: $event_is_stale to false) ](elseif: $day is 155)[ (set: $active_event to "astarion breakdown") (set: $astarion_location to "door") (set: $event_is_stale to false) (set: $event_forced to true) ](elseif: $day is 157)[ (set: $active_event to "mouse") (set: $mouse_location to "niches") (if: $astarion_location is "niches")[(set: $mouse_location to "sarcophagus")] ](elseif: $day is 158)[ (set: $active_event to "teeth") (set: $teeth_location to $astarion_location) ](elseif: $day is 160 and $astarion_trust > 5)[ (set: $active_event to "astarion dont leave") (set: $event_is_stale to false) (set: $astarion_mood to "tense") ](elseif: $day is 162)[ (set: $active_event to "astarion name") (set: $event_is_stale to false) ](elseif: $day is 163)[ (set: $active_event to "message") (set: $event_is_stale to false) (set: $event_forced to true) ] (set: $astarion_action_count to it+1) (set: $astarion_play_count to it+1) (set: $astarion_activity to "empty") (if: $active_event is "empty" or not ($active_event contains "astarion"))[ (if: $astarion_action_count > 1)[ (if: $astarion_working_on_sarcophagus is true and $sarcophagus_open is false)[ (if: $astarion_has_pliers is true and $astarion_hands is "healed")[(set: $astarion_activity to "sarcophagus pliers")(set: $sarcophagus_crest_work to it+5)] (elseif: $astarion_has_pliers is true)[(set: $astarion_activity to "sarcophagus pliers hurt")(set: $sarcophagus_crest_work to it+3)] (elseif: $astarion_hands is "healed")[(set: $astarion_activity to "sarcophagus")(set: $sarcophagus_crest_work to it+2)] (else:)[(set: $astarion_activity to "sarcophagus hurt")(set: $sarcophagus_crest_work to it+1)] (set: $astarion_action_count to 0) ] ] (if: $astarion_activity is not "empty" and $astarion_play_count > 3)[ (if: $astarion_has_clive is true)[(set: $astarion_activity to "clive")] (elseif: $astarion_has_ring is true)[(set: $astarion_activity to "ring")] (elseif: $astarion_has_necklace is true)[(set: $astarion_activity to "necklace")] (if: $astarion_activity is not "empty")[(set: $astarion_play_count to 0)] ] (if: $astarion_has_pliers is true)[ (if: $sarcophagus_crest_work > 9 and $sarcophagus_open is false)[ (set: $astarion_activity to "sarcophagus open") (set: $sarcophagus_open to true) (set: $astarion_has_ring to true) (if: $took_necklace is false)[(set: $took_necklace to true)(set: $astarion_has_necklace to true)] (set: $astarion_working_on_sarcophagus to false) <script>updateEmotion("happy",10);</script> ] ] ] }Time passes. (if: $player_hurt > 0)[<span class='energy'>//Recovered Some Energy//</span> You are hurt, and still bleeding.](else:)[<span class='energy'>//Recovered All Energy//</span>](if: $active_event is "teeth found vampire")[ The nightmare finds something to eat.] (if: $health_change < 0)[<span class='health'>//Astarion Lost (print: (0 - $health_change)) Health//</span>](elseif: $health_change > 0)[<span class='emph'>//Astarion Gained $health_change Health//</span>] |next>[Continue]{ }](elseif: $sequence is 1)[<span class="day-text">Day $day</span> (if: $active_event is "mouse")[(if: $sight > 2)[You hear a soft, skittering from near the $mouse_location.](elseif: $sight > 1)[You hear a soft, skittering noise.](else:)[//Something happens beyond your perception. <span class="softEmph">Requires: Sight 2</span>//] ](if: $active_event is "teeth")[A nightmare floats into the room.<script>changeBackground("columnsTeethFrame");</script> ](elseif: $active_event is "teeth leave fed")[The nightmare finishes chewing on the pieces of you it ripped off. Then it floats away, satisfied.(set: $active_event to "empty")<script>changeBackground("columnsFrame");</script> ](elseif: $active_event is "teeth leave")[The nightmare searches for a while more, but finds nothing. Eventually it floats away.(set: $active_event to "empty")<script>changeBackground("columnsFrame");</script> ](elseif: $active_event is "teeth found vampire")[When it is finished, the nightmare floats away.(set: $active_event to "empty")<script>changeBackground("columnsFrame");</script> ](if: $godey_alert is "arriving")[(if: $sight > 1)[You hear a noise from the hall. A sound like bones clattering on metal.](else:)[//Something happens beyond your perception. <span class="softEmph">Requires: Sight 2</span>//] ](if: $active_event is "astarion breakdown")[Astarion is clawing at the door. |breakdown>[Continue] ](elseif: $active_event is "message")[There's something happening to the door. |message>[Go look.] ](elseif: $active_event contains "astarion")[Astarion is looking for you. ](elseif: $astarion_activity is not "empty")[(if: $sight > 1)[You're faintly aware that Astarion is doing something while you rest. (if: $astarion_activity is "sarcophagus")[He is working on the sarcophagus crest. He's not making much progress without tools. ](elseif: $astarion_activity is "sarcophagus hurt")[He is working on the sarcophagus crest. He's not making much progress without tools. He keeps having to stop to rest his hands. ](elseif: $astarion_activity is "sarcophagus pliers")[He is working on the sarcophagus crest. He's using the handle of the pliers to try and work around the edge of the broken button. ](elseif: $astarion_activity is "sarcophagus pliers hurt")[He is working on the sarcophagus crest. He's using the handle of the pliers to try and work around the edge of the broken button. He keeps having to stop to rest his hands. ](elseif: $astarion_activity is "sarcophagus open")[He is working on the sarcophagus crest. Midway through the 'night', he makes a happy noise and you hear a sound like sliding stone.<script>addAchieve("Grave Robbing");</script> ](elseif: $astarion_activity is "necklace")[He is toying with the necklace you gave him.<script>updateEmotion("calm",5);</script> ](elseif: $astarion_activity is "ring")[He is playing with the ring he found in the sarcophagus.<script>updateEmotion("calm",5);</script> ](elseif: $astarion_activity is "clive")[He is holding Clive.<script>updateEmotion("calm",10);</script><script>updateEmotion("happy",3);</script> ] ](else:)[You're faintly aware that Astarion is doing something while you rest. But you don't have enough Sight to know what. ]] (if: $event_forced is false)[|nextDay>[Continue]] { (if: $player_hurt > 0)[(set: $player_hurt to it-2)] (if: $player_hurt < 0)[(set: $player_hurt to 0)] (set: $healthDisplay to false) }](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: ?nextDay)[(set: $sequence to 0)(go-to: "The Tomb")] (click: ?breakdown)[(set: $sequence to 0)(go-to: "Breakdown")] (click: ?message)[(set: $sequence to 0)(go-to: "Message From Another World")] }(if: $sequence is 0)[You are inside of a tomb. The space is twelve feet long and perhaps half as wide. A column-bracketed stone door stands at one end. Interment niches line the walls, full of dusty remains. There is a stone sarcophagus in the center of the room.(if: $active_event is "teeth")[ A nightmare is here.] (if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[(if: $active_event is "teeth")[|nightmare>[Examine the nightmare.] ]|tombDoor>[Examine the door.] |tombNiches>[Examine the niches.] |tombSarcophagus>[Examine the sarcophagus.]]{ (set: $astarion_link_display to true) (set: $tomb_link_display to false) (set: $practice_link_display to true) } ](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: ?tombDoor)[(set: $sequence to 0)(go-to: "Tomb Door")] (click: ?tombNiches)[(set: $sequence to 0)(go-to: "Tomb Burial Niches")] (click: ?tombSarcophagus)[(set: $sequence to 0)(go-to: "Tomb Sarcophagus")] (click: ?nightmare)[(set: $sequence to 0)(go-to: "Nightmare in the Tomb")] (set: $healthDisplay to false) (set: $learnDisplay to false) (if: $active_event is "teeth")[<script>changeBackground("columnsTeethFrame");</script>] (else:)[<script>changeBackground("columnsFrame");</script>] }(if: $sequence is 0)[The stone door is almost as large as the wall. Decorative columns flank it. It has no visible handle or latch.(if: $astarion_location is "door")[ Astarion is sitting behind one of the columns.] (if: $astarion_location is "door")[|findAstarion>[Look at Astarion.] ]|next>[Walk through the door.] (if: $class is "rogue")[|skip2>[`[ROGUE]` Figure out how it opens.] ]|returnTomb>[Look elsewhere.]{ (set: $healthDisplay to false) (set: $astarion_link_display to true) (set: $tomb_link_display to false) (set: $practice_link_display to true) }](elseif: $sequence is 1)[(if: $been_to_hallway is true)[(set: $sequence to 0)(go-to: "Dungeon Hallway") ](elseif: $touch > 1)[You try to walk through the door. You should be able to. You're almost a ghost. Ghosts can do things like this. It's difficult. The stone feels solid, and you feel like nothing. There's a moment where it feels like you're dissolving into the wall. <span class="softEmph">`[Unlocked: Touch 2]`</span> But practicing touch has given you a sense of yourself, and you manage to push through. You emerge into a stone hallway. |goHallway>[Continue] ](else:)[You try to walk through the door. You should be able to. You're almost a ghost. Ghosts can do things like this. But as your arm passes into the stone there's a terrible feeling, like you're not passing through the wall. You're dissolving into it. You snatch your hand back. It takes a moment to re-form. It's a frightening moment. Perhaps if you got better at interacting with things physically--this might become safe. <span class="italicEmph">//Requires Touch: 2//</span> |return>[Continue] ]](elseif: $sequence is 2)[You barely exist. You feel very acutely how barely you exist here. ](elseif: $sequence is 3)[You see no hinges, so presumably they're on the opposite side, which means you'd need to push the door to open it. That tracks with the fact that there's no visible handle. It's a double-door. Each half looks to be of solid stone. Extremely heavy. Most doors like this are set in such a way that the frame and hinges handle a lot of the weight, but if anything is old or damaged that could make opening this an impossible feat of strength. You'd need to see the other side to learn more. |return>[Continue] ](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: ?goHallway)[(set: $sequence to 0)(go-to: "Dungeon Hallway")] (click: ?tech)[(set: $sequence to 2)(go-to: $currentPassage)] }(if: $sequence is 0)[Stone cubbyholes set into the walls. Intended to hold cremated remains. The contents have been vandalized. Vases broken and ash scattered everywhere. Each shelf has an engraved epitaph beneath it. <tw-link class='cyclingLink' data-cycling-texts='["In Memory.", "Beloved In Life.", "Now With The Gods.", "At Rest.", "Gone But Not Forgotten."]' onclick='clickCyclingLink(this, "In Memory.");'>In Memory.</tw-link>(if: $astarion_location is "niches")[ Astarion is sitting leaning against the wall here.](if: $sight > 3)[ A gleaming silver rope hangs from the ceiling.](if: $active_event is "mouse" and $mouse_location is "niches")[ There is a small, gray mouse sitting under the far left niche.] (if: $active_event is "mouse" and $mouse_location is "niches")[|mouse>[Examine mouse.] ](if: $sight > 3)[|cord>[Examine the silver cord.] ](if: $astarion_location is "niches")[|findAstarion>[Look at Astarion.] ]|returnTomb>[Look elsewhere.] { (set: $healthDisplay to false) (set: $astarion_link_display to true) (set: $tomb_link_display to false) (set: $practice_link_display to true) }](elseif: $sequence is 1)[The rope is a bright, silvery color. It gleams cleanly. It glows faintly. It looks very out of place in the dark, dirty tomb. It hangs down from the ceiling. Hangs through the ceiling. It's ghostly. Like you. You think it belongs to you. |next>[Climb the rope.] |return>[Something else.]{ }](elseif: $sequence is 2)[You are quite certain that if you leave, you will not be able to come back. But leaving would be a very reasonable thing to do. This place is awful. You don't have to stay here. You may even find a better way to help, from the outside. |next>[Climb the rope.] <span class="explain">This will end the game.</span> |return>[Do something else.]{ }](elseif: $sequence is 3)[You don't even have to climb it. As soon as you grasp the rope it's pulling you up. An effortless ascent. Rising. Out of the room. Out of the dream. |forestEnd>[Continue]{ <script>addAchieve("This Is All A Bit Much");</script> }](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: ?mouse)[(set: $sequence to 0)(set: $basePassage to $currentPassage)(go-to: "Mouse")] (click: ?cord)[(set: $sequence to 1)(set: $basePassage to $currentPassage)(go-to: $currentPassage)] }(if: $sequence is 0)[The stone sarcophagus in the center of the room is beautifully carved, though chipped in places. A faded crest at one end implies that a noble is interred here. (if: $sarcophagus_open is true)[The lid is open.](else:)[It's sealed shut.] (if: $astarion_location contains "sarcophagus")[Astarion is leaning against it.](if: $active_event is "mouse" and $mouse_location is "sarcophagus")[ There is a small, gray mouse sitting under the far left niche.] (if: $active_event is "mouse" and $mouse_location is "niches")[|mouse>[Examine mouse.] ](if: $astarion_location contains "sarcophagus")[|findAstarion>[Look at Astarion.] ](if: $sarcophagus_open is true)[|lookIn>[Look inside the sarcophogus.] ](else:)[|next>[Examine the crest.] |skip2>[Enter sarcophogus.] ]|returnTomb>[Look elsewhere.]{ (set: $healthDisplay to false) (set: $astarion_link_display to true) (set: $tomb_link_display to false) (set: $practice_link_display to true) (if: $active_event is "teeth")[<script>changeBackground("columnsTeethFrame");</script>] (else:)[<script>changeBackground("columnsFrame");</script>] }](elseif: $sequence is 1)[The crest is a complicated filigree shield. Some of the sections stand out a little more than the others. They look a little like buttons. <span id="press" class="energy-link" data-content="Press the buttons./Touch/3/+1/3"></span> |return>[Continue]{ <script>changeBackground("crestFrame");</script> }](elseif: $sequence is 2)[You push on parts of the crest. The sections that look different pop up and sink down like buttons. But one of the buttons is broken. You can't press it in. Even if they all worked, you don't know the combination. And trying all the different ones is a task beyond your limited ability to touch things. |return>[Continue]{ }](elseif: $sequence is 3)[(if: $been_inside_sarcophogus is true)[(set: $sequence to 4)(go-to: $currentPassage) ](elseif: $touch > 1)[You try to pass through the sarcophogus lid. You should be able to. You're almost a ghost. Ghosts can do things like this. It's difficult. The stone feels solid, and you feel like nothing. There's a moment where it feels like you're dissolving into the stone. <span class="softEmph">`[Unlocked: Touch 2]`</span> But practicing touch has given you a sense of yourself, and you manage to push through. |next>[Continue] ](else:)[You try to pass through the sarcophogus lid. You should be able to. You're almost a ghost. Ghosts can do things like this. But as your arm passes into the stone there's a terrible feeling, like you're not passing through the wall. You're dissolving into the stone. You snatch your hand back. It takes a moment to re-form. It's a frightening moment. Perhaps if you got better at interacting with things physically--this might become safe. <span class="italicEmph">//Requires Touch: 2//</span> |return>[Continue] ]](elseif: $sequence is 4)[You are inside the sarcophogus. There is a corpse so old it is mummified. (if: $took_necklace is true)[It's wearing a gleaming perfect ruby ring that is obviously magical.](else:)[It's wearing a beautiful but tarnished silver necklace and a gleaming perfect ruby ring that is obviously magical.] (if: $took_necklace is false)[<span id="necklace" class="energy-link" data-content="Take the necklace./Touch/5/5/1"></span> ]<span id="ring" class="energy-link" data-content="Take the ring./Touch/5/6/1"></span> |return>[Leave the sarcophogus.]{ <script>changeBackground("coffinFrame");</script> (set: $been_inside_sarcophogus to true) }](elseif: $sequence is 5)[You unclasp the necklace from around the corpse's throat. <span class="emph">//Took necklace.//</span>(set: $inventory_necklace to true)(set: $took_necklace to true) |returnInside>[Continue]{ }](elseif: $sequence is 6)[You try to take the magic ring. But there's a brightness to it. A gleaming enchantment. And you are a shadow. As you touch the ring it glows. Your fingers vanish. Fortunately, when you snatch your hand away, your fingers come back. |returnInside>[Continue]{ }](elseif: $sequence is 7)[There is a corpse inside the sarcophogus. It is so old it's mumified. It has been relieved of all of its valuables. |return>[Continue]{ }](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: ?returnInside)[(set: $sequence to 4)(go-to: $currentPassage)] (click: ?lookIn)[(set: $sequence to 7)(go-to: $currentPassage)] (click: ?mouse)[(set: $sequence to 0)(set: $basePassage to $currentPassage)(go-to: "Mouse")] }(if: $sequence is 0)[(display: "Astarion Description") (if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[(if: $active_event is "astarion godey response")[|godeyTantrumResponse>[Interact with Astarion.] ](elseif: $active_event contains "astarion")[(if: $energy is < 5)[Interact with Astarion. //Not enough Energy.//](else:)[|startInteraction>[Interact with Astarion.]] <span class="explain">//You must have at least 5 Energy to start this interaction.//</span> ](elseif: $astarion_refuse_interaction is true)[//Astarion doesn't want to interact with you.// ](elseif: $astarion_hiding is true)[//Rogues can't talk while they're hiding.// ](elseif: $astarion_goodbye is true)[//You've said goodbye.// ](else:)[(if: $active_event is "teeth" and $astarion_nightmare_told is "")[(if: $energy is < 5)[Warn Astarion about nightmare. //Not enough Energy.//](else:)[|startInteraction>[Warn Astarion about nightmare.]] <span class="explain">//You must have at least 5 Energy to start this interaction.//</span> ](elseif: $active_event is "mouse")[(if: $speech > 1)[|goMouse>[Speak: Mouse.]](else:)[|gray4>[Speak: Mouse.] (click: ?gray4)[//Requires Speech 2.//]] ](if: $astarion_mood is "frightened" and $class is "ranger")[<span id="soothing" class="energy-link" data-content="[RANGER] Make soothing noises./Speech/1/5/1"></span> ](elseif: $astarion_mood is "frightened" and $class is "druid")[<span id="soothing" class="energy-link" data-content="[DRUID] Make soothing noises./Speech/1/5/1"></span> ](if: $speech > 0)[|saySomething>[Say something.]](else:)[|gray2>[Say something.] (click: ?gray2)[//Requires Speech 1. |practice>[Practice this?]//]] (if: $touch > 0)[|touchVampire>[Touch him.]](else:)[|gray3>[Touch him.] (click: ?gray3)[//Requires Touch 1. |practice>[Practice this?]//]] (if: $astarion_has_pliers is true or $astarion_has_necklace is true or $astarion_has_ring is true or $astarion_has_oil is true or $astarion_has_clive is true or $inventory_necklace is true or $inventory_oil is true or $inventory_pliers is true)[|inventory>[Check his inventory.] ](if: $sight is 6)[|hiddenThings>[Examine things that should be hidden.] ]]] { (set: $astarion_link_display to false) (set: $tomb_link_display to true) (set: $practice_link_display to true) }](elseif: $sequence is 1)[Astarion has: (if: $astarion_has_pliers is false and $astarion_has_oil is false and $astarion_has_necklace is false and $astarion_has_ring is false and $astarion_has_clive is false)[Nothing. ](if: $astarion_has_pliers is true)[A set of pliers. ](if: $astarion_has_oil is true)[A flask of oil. ](if: $astarion_has_necklace is true)[A tarnished necklace. ](if: $astarion_has_ring is true)[A magical ruby ring. ](if: $astarion_has_clive is true)[Clive. ] (if: $inventory_necklace is true)[<span id="necklace" class="energy-link" data-content="Give him the tarnished necklace./Touch/0/2/0"></span> ](if: $inventory_oil is true)[<span id="oil" class="energy-link" data-content="Give him the flask of oil./Touch/0/3/0"></span> ](if: $inventory_pliers is true)[<span id="pliers" class="energy-link" data-content="Give him the pliers./Touch/0/4/0"></span> ]|return>[Continue]{ (set: $astarion_link_display to false) (set: $tomb_link_display to true) (set: $practice_link_display to true) }](elseif: $sequence is 2)[Astarion curiously reaches out to accept the object emerging from nothingness. $astarion What's this? Did you find a trinket? He examines the delicate necklace with magpie pleasure. $astarion This is well made. $astarion It would look nice if it were polished. |inventory>[Continue]{ (set: $astarion_interacted to true) (set: $astarion_has_necklace to true) (set: $inventory_necklace to false) (set: $vampire_enrichment_score to it+8) <script>updateEmotion("happy",10);</script> <script>updateEmotion("calm",3);</script> }](elseif: $sequence is 3)[Astarion curiously reaches out to accept the object emerging from nothingness. $astarion What's this? $astarion Hm. That might be useful. |inventory>[Continue]{ (set: $astarion_interacted to true) (set: $astarion_has_oil to true) (set: $inventory_oil to false) (set: $vampire_enrichment_score to it+4) <script>updateEmotion("happy",2);</script> <script>updateEmotion("calm",2);</script> }](elseif: $sequence is 4)[Astarion curiously reaches out to accept the object emerging from nothingness. When he sees what it is, he blanches and drops it. (if: $sight > 1)[<span class="softEmph">`[Unlocked: Sight 2]`</span> Then he mutters to himself: $astarion Don't be precious about this.](else:)[He mutters something to himself that you can't quite make out. <span class="italicEmph">//Requires Sight: 2//</span>] He retrieves the pliers from the ground. $astarion Thank you. I'm sure this will be useful. |inventory>[Continue]{ (set: $astarion_interacted to true) (set: $astarion_has_pliers to true) (set: $inventory_pliers to false) (display: "set mood tense") (set: $vampire_enrichment_score to it+4) (set: $asked_list to it+"open-sarcophagus") (set: $asked_list to it+"sarcophagus-tomb") (set: $astarion_working_on_sarcophagus to true) (set: $astarion_action_count to 3) }](elseif: $sequence is 5)[(if: $astarion_not_a_cat is true)[$astarion Oh, for fuck's sake. Astarion is no longer frightened. But he is still tense, because he's annoyed about how that keeps working on him. |return>[Continue]{ (set: $astarion_mood to "tense") }](else:)[You make soft, comforting noises. The kind you'd use to soothe a wild animal. Astarion casts an irritable look in your direction. $astarion Stop that. I'm not a cat. He does seem calmer, though. |return>[Continue]{ <script>addAchieve("Psspsspss");</script> (set: $astarion_mood to "calm") (set: $astarion_not_a_cat to true) }]](elseif: $sequence is 6)[<span class="softEmph">`[Unlocked: Sight 6]`</span> You're not sure what you're looking at, but you think it's imporant. <span class="dim">`$day`</span> is <span class="softEmph">(print: $day)</span> <span class="dim">`$active_event`</span> is <span class="softEmph">(print: $active_event)</span> <span class="dim">`$health`</span> is <span class="softEmph">(print: $health)</span> <span class="dim">`$difficulty`</span> is <span class="softEmph">(print: $difficulty)</span> <span class="dim">`$firstPriority`</span> is <span class="softEmph">(print: $firstPriority)</span> <span class="dim">`$secondPriority`</span> is <span class="softEmph">(print: $secondPriority)</span> <span class="dim">`$vampire_enrichment_score`</span> is <span class="softEmph">(print: $vampire_enrichment_score)</span> <span class="dim">`$astarion_trust`</span> is <span class="softEmph">(print: $astarion_trust)</span> <span class="dim">`$interaction_to_trust`</span> is <span class="softEmph">(print: $interaction_to_trust)</span> <span class="dim">`$fuck_off_count`</span> is <span class="softEmph">(print: $fuck_off_count)</span> <span class="dim">`$fuck_off_forgiveness`</span> is <span class="softEmph">(print: $fuck_off_forgiveness)</span> <span class="dim">`$morning_joke_count`</span> is <span class="softEmph">(print: $morning_joke_count)</span> <span class="dim">`$story_count`</span> is <span class="softEmph">(print: $story_count)</span> <span class="dim">`$touch_trust`</span> is <span class="softEmph">(print: $touch_trust)</span> <span class="dim">`$successful_head_pat`</span> is <span class="softEmph">(print: $successful_head_pat)</span> <span class="dim">`$successful_hug`</span> is <span class="softEmph">(print: $successful_hug)</span> <span class="dim">`$astarion_interacted`</span> is <span class="softEmph">(print: $astarion_interacted)</span> <span class="dim">`$astarion_greeted`</span> is <span class="softEmph">(print: $astarion_greeted)</span> <span class="dim">`$astarion_howareyou`</span> is <span class="softEmph">(print: $astarion_howareyou)</span> <span class="dim">`$astarion_location`</span> is <span class="softEmph">(print: $astarion_location)</span> <span class="dim">`$astarion_has_ring`</span> is <span class="softEmph">(print: $astarion_has_ring)</span> <span class="dim">`$astarion_has_clive`</span> is <span class="softEmph">(print: $astarion_has_clive)</span> <span class="dim">`$what_is_player`</span> is <span class="softEmph">(print: $what_is_player)</span> <span class="dim">`$murdered_by_cazador`</span> is <span class="softEmph">(print: $murdered_by_cazador)</span> <span class="dim">`$sarcophagus_open`</span> is <span class="softEmph">(print: $sarcophagus_open)</span> <span class="dim">`$teeth_hit_count`</span> is <span class="softEmph">(print: $teeth_hit_count)</span> <span class="dim">`$stone_door_latched`</span> is <span class="softEmph">(print: $stone_door_latched)</span> <span class="dim">`$godey_tantrum`</span> is <span class="softEmph">(print: $godey_tantrum)</span> |return>[Continue]{ }](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: ?inventory)[(set: $sequence to 1)(go-to: $currentPassage)] (click: ?hiddenThings)[(set: $sequence to 6)(go-to: $currentPassage)] (click: ?godeyTantrumResponse)[(set: $sequence to 5)(set: $astarion_interacted to true)(set: $active_event to "empty")(go-to: "Small Chats")] (click: ?saySomething)[(set: $sequence to 0)(go-to: "Speech")] (click: ?touchVampire)[(set: $sequence to 0)(go-to: "Touch")] (click: ?goMouse)[(set: $sequence to 5)(go-to: "Mouse")] (click: ?startInteraction)[ (set: $sequence to 0) (if: $active_event is "astarion first questions")[(go-to: "First Questions")] (elseif: $active_event is "astarion dont leave")[(go-to: "Don't Leave")] (elseif: $active_event is "astarion name")[(go-to: "I Should Ask")] (elseif: $active_event is "teeth")[(set: $sequence to 11)(go-to: "Nightmare in the Tomb")] ] (set: $healthDisplay to true) (set: $learnDisplay to false) }(if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[<span id="tap" class="energy-link" data-content="Tap on stone./Touch/1/1/1"></span> (if: $touch_trust is 0)[<span id="touchHand" class="energy-link" data-content="Touch his hand./Touch/1/2/1/surpriseCheck"></span>](else:)[<span id="holdHand" class="energy-link" data-content="Hold his hand./Touch/1/3/2/surpriseCheck"></span>] (if: $touch_trust > 1)[<span id="leanShoulder" class="energy-link" data-content="Lean on his shoulder./Touch/2/5/2/surpriseCheck"></span> ](elseif: $touch_trust is 1)[<span id="touchShoulder" class="energy-link" data-content="Touch his shoulder./Touch/1/4/1/surpriseCheck"></span> ](if: $touch > 3 and $touch_trust > 1)[<span id="hug" class="energy-link" data-content="Hug him./Touch/4/9/3/surpriseCheck"></span> ](if: $touch_trust > 2)[<span id="petHead" class="energy-link" data-content="Pet his head./Touch/3/8/2/surpriseCheck"></span> ](elseif: $touch_trust is 2)[<span id="touchHead" class="energy-link" data-content="Touch his head./Touch/1/7/1/surpriseCheck"></span> ](if: $class is "wizard")[|cast>[`[WIZARD]` Cast magic.] ](if: $class is "sorcerer")[|cast>[`[SORCERER]` Cast magic.] ](if: $class is "warlock")[|cast>[`[WARLOCK]` Cast magic.] ]|findAstarion>[Do something else.]]{ (set: $astarion_link_display to false) (set: $tomb_link_display to true) (set: $practice_link_display to true) (click: ?cast)[(set: $sequence to 10)(go-to: $currentPassage)] }(if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[(if: $astarion_greeted is false and $speech > 1 and $astarion_interacted is false)[|greet>[Speak: "Hello." //<span class="energy">1</span>//] ](if: $astarion_greeted is false and $speech > 2 and $astarion_interacted is false)[|greetMorning>[Speak: "Good morning." //<span class="energy">1</span>//] ](if: $astarion_howareyou is false and $speech is 3)[|howAreYou>[Speak: "How you?" //<span class="energy">1</span>//] ](elseif: $astarion_howareyou is false and $speech > 3)[|howAreYou>[Speak: "How are you?" //<span class="energy">1</span>//] ](if: $whistling is true)[|whisper>[Whistle. //<span class="energy">1</span>//]](else:)[|whisper>[Whisper. //<span class="energy">1</span>//]] (if: $class is "bard")[|perform>[`[BARD]` Perform.] ](if: $astarion_stories_unlocked is true)[|storyAsk>[Speak: "Story?" //<span class="energy">1</span>//] ](if: $astarion_will_explore is true)[|exploreAsk>[Speak: "Explore?" //<span class="energy">1</span>//] ](if: $speech > 1)[|question>[Ask a question.] ](if: $speech > 1 and $astarion_interacted is true and false)[|goodbye>[Speak: "Goodbye" //<span class="energy">1</span>//] ]|findAstarion>[Do something else.]]{ (set: $astarion_link_display to false) (set: $tomb_link_display to true) (set: $practice_link_display to true) (click: ?whisper)[(set: $sequence to 1)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?perform)[(set: $sequence to 2)(set: $class to "bard")(go-to: $currentPassage)] (click: ?greet)[(set: $sequence to 4)(set: $astarion_greeted to true)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?greetMorning)[(set: $sequence to 5)(set: $astarion_greeted to true)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?howAreYou)[(set: $sequence to 6)(set: $astarion_howareyou to true)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?goodbye)[(set: $sequence to 7)(set: $astarion_goodbye to true)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?question)[(set: $sequence to 0)(go-to: "Speech Questions")] (click: ?storyAsk)[(set: $sequence to 0)(set: $basePassage to $currentPassage)(display: "reduce energy interaction")(go-to: "Speech Story")] (click: ?exploreAsk)[(set: $sequence to 12)(set: $basePassage to $currentPassage)(display: "reduce energy interaction")(go-to: "Speech Questions")] }(if: $sequence is 0)[(display: "Astarion Description") (display: "Touch Options"){ }](elseif: $sequence is 1)[You make a slight sound to mark your presence. Astarion turns his head slightly to track it. (display: "Touch Options"){ <script>updateEmotion("curious",4);</script> (set: $astarion_interacted to true) }](elseif: $sequence is 2)[You reach out and touch Astarion's hand. (if: $astarion_mood is "frightened" or $astarion_mood is "tense" or $astarion_trust < 5)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $touch_threshold_count is 0)[Astarion twitches away from the contact. Then he reconsiders. He puts his hand down in exactly the same spot. ](elseif: $touch_threshold_count is 1)[Astarion watches his hand where it sits on the stone. His fingers move slightly when he feels you touch it. ](elseif: $touch_threshold_count is 2)[You have discovered that you can sustain contact for three seconds. Then your fingers drift into nothingness, becoming insubstantial and falling through his hand. ](elseif: $touch_threshold_count is 3)[Astarion makes a quiet noise in response to the contact. ](elseif: $touch_threshold_count is 4)[$astarion This is fine. $astarion I don't mind this. ](elseif: $touch_threshold_count is 5)[As you make contact, Astarion turns his hand so that his palm is facing up. And it's almost like you're holding hands.(set: $touch_trust to 1)(set: $touch_threshold_count to 0)<script>updateTrust(1);</script> ](display: "Touch Options"){ (if: $astarion_mood is "frightened" or $astarion_mood is "tense" or $astarion_trust < 5)[](else:)[ (set: $touch_threshold_count to it+1) (set: $vampire_enrichment_score to it+2) <script>updateEmotion("calm",2);</script> ] }](elseif: $sequence is 3)[You reach out and hold Astarion's hand. (if: $astarion_mood is "frightened" or $astarion_trust < 5)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](else:)[(if: $astarion_trust > 10)[(set: $rand to (random: 1, 6))(if: $rand is 1)[Astarion sighs in response to the contact. ](elseif: $rand is 2)[Astarion tilts his head to watch the space where he thinks you are. ](elseif: $rand is 3)[$astarion This is nice. ](elseif: $rand is 4)[Astarion relaxes visibly. ](elseif: $rand is 5)[$astarion Hello you. ](else:)[Astarion's fingers move slightly, as if trying to trace the outlines of yours. ] ](elseif: $astarion_trust > 4)[(set: $rand to (random: 1, 6))(if: $rand is 1)[Astarion hums in response to the contact. ](elseif: $rand is 2)[Astarion watches the space where he thinks you are. ](elseif: $rand is 3)[$astarion This is fine. ](elseif: $rand is 4)[Astarion seems to relax slightly. ](elseif: $rand is 5)[$astarion Lonely $player_term? ](else:)[Astarion's fingers move. ] ](else:)[(set: $rand to (random: 1, 3))(if: $rand is 1)[Astarion makes a quiet sound in response to the contact. ](elseif: $rand is 2)[Astarion holds still and watches the space where he thinks you are. ](else:)[Astarion's fingers move slightly. ] ]](display: "Touch Options"){ (if: $astarion_mood is "frightened" or $astarion_trust < 5)[](else:)[ (set: $touch_threshold_count to it+1) (if: $astarion_trust > 12)[<script>updateEmotion("calm",6);</script><script>updateEmotion("happy",2);</script>] (else:)[<script>updateEmotion("calm",4);</script><script>updateEmotion("happy",1);</script>] (if: not ($enrichment_list contains "hand touch"))[ (set: $enrichment_list to it+"hand touch") (set: $vampire_enrichment_score to it+5) ] ] }](elseif: $sequence is 4)[You reach out and touch Astarion's shoulder. (if: $astarion_mood is "frightened" and $astarion_trust < 10)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $astarion_mood is "tense" and $astarion_trust < 5)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $touch_threshold_count > 7 or $touch_threshold_count is 0)[He turns towards you, attentive. ](elseif: $touch_threshold_count > 3)[He doesn't seem to mind that. ](else:)[Astarion tolerates the contact. ](display: "Touch Options"){ (set: $touch_threshold_count to it+1) (if: not ($enrichment_list contains "shoulder touch"))[ (set: $enrichment_list to it+"shoulder touch") (set: $vampire_enrichment_score to it+2) ] }](elseif: $sequence is 5)[You lean lightly against Astarion's shoulder. (if: $astarion_mood is "frightened" or $astarion_trust < 8)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](else:)[(if: $astarion_trust > 10)[(set: $rand to (random: 1, 6))(if: $rand is 1)[Astarion sighs and closes his eyes. ](elseif: $rand is 2)[Astarion tilts his head towards you. ](elseif: $rand is 3)[Astarion shifts slightly closer. Your shoulders overlap, which feels odd. ](elseif: $rand is 4)[Astarion relaxes. ](elseif: $rand is 5)[$astarion Are you tired? ](else:)[Astarion leans back against you, briefly forgetting you're intangible, and almost falls over. ] ](elseif: $astarion_trust > 4)[(set: $rand to (random: 1, 6))(if: $rand is 1)[Astarion sighs. ](elseif: $rand is 2)[Astarion tilts his head slightly towards you. ](elseif: $rand is 3)[Astarion shifts slightly closer to you. ](elseif: $rand is 4)[Astarion seems to relax slightly. ](elseif: $rand is 5)[$astarion Hm? ](else:)[Astarion glances down at his shoulder, where you're touching. ] ](else:)[(set: $rand to (random: 1, 3))(if: $rand is 1)[$astarion Hm? ](elseif: $rand is 2)[Astarion glances down at his shoulder, where you're touching. ](else:)[Astarion turns his head slightly towards you. ] ]](display: "Touch Options"){ (if: $astarion_mood is "frightened" or $astarion_trust < 8)[](else:)[ (set: $touch_threshold_count to it+1) (if: $astarion_trust > 12)[<script>updateEmotion("calm",6);</script><script>updateEmotion("happy",3);</script>] (else:)[<script>updateEmotion("calm",4);</script><script>updateEmotion("happy",2);</script>] (if: not ($enrichment_list contains "shoulder lean"))[ (set: $enrichment_list to it+"shoulder lean") (set: $vampire_enrichment_score to it+5) ] ] }](elseif: $sequence is 6)[ ](elseif: $sequence is 7)[You reach out and touch the side of Astarion's face. (if: $astarion_mood is "frightened" and $astarion_trust < 15)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $astarion_mood is "tense" and $astarion_trust < 10)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $astarion_trust < 8)[Astarion twitches away from the contact. He doesn't trust you enough for that. ](elseif: $touch_threshold_count > 7 or $touch_threshold_count is 0)[He turns towards you, attentive. ](elseif: $touch_threshold_count > 3)[He doesn't seem to mind that. ](else:)[Astarion tolerates the contact. ](display: "Touch Options"){ (set: $touch_threshold_count to it+1) (if: not ($enrichment_list contains "head touch"))[ (set: $enrichment_list to it+"head touch") (set: $vampire_enrichment_score to it+2) ] }](elseif: $sequence is 8)[You brush your hand over Astarion's hair. (if: $astarion_mood is "frightened" and $astarion_trust < 20)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $astarion_mood is "tense" and $astarion_trust < 15)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $astarion_trust < 10)[Astarion twitches away from the contact. He doesn't trust you enough for that. ](else:)[(if: $successful_head_pat is 0)[Astarion inhales sharply, and you think he's about to tell you to stop. But then he exhales slowly. Shakes his head. $astarion All right. Why not. Go ahead. ](elseif: $successful_head_pat is 1)[Astarion makes a quiet sound. Then he murmurs: $astarion I don't care if you're intangible. $astarion If you ever tell anyone about this, I will find a way to kill you. ](elseif: $astarion_trust > 10)[(set: $rand to (random: 1, 4))(if: $rand is 1)[Astarion sighs. ](elseif: $rand is 2)[Astarion tilts his head towards the contact. ](elseif: $rand is 3)[Astarion relaxes. ](else:)[Astarion closes his eyes. ] ](else:)[(set: $rand to (random: 1, 3))(if: $rand is 1)[Astarion makes a quiet sound. ](elseif: $rand is 2)[Astarion holds very still. ](else:)[Astarion's fingers twitch, as if he is considering doing something. ] ]](display: "Touch Options"){ (set: $successful_head_pat to it+1) (set: $touch_threshold_count to it+1) (if: $astarion_trust > 12)[<script>updateEmotion("calm",8);</script><script>updateEmotion("happy",4);</script>] (else:)[<script>updateEmotion("calm",6);</script><script>updateEmotion("happy",3);</script>] (if: not ($enrichment_list contains "head pat"))[ (set: $enrichment_list to it+"head pat") (set: $vampire_enrichment_score to it+6) ] } ](elseif: $sequence is 9)[You hug Astarion. (if: $astarion_mood is "frightened" and $astarion_trust < 15)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $astarion_mood is "tense" and $astarion_trust < 10)[Astarion twitches away from the contact. That's not surprising. He seems $astarion_mood. ](elseif: $astarion_trust < 10)[Astarion twitches away from the contact. He doesn't trust you enough for that. ](else:)[(if: $successful_hug is 0)[Astarion gasps and tenses.<script>addAchieve("Get Safe And Cared For Idiot");</script> That seems like a bad sign, so you start to draw back. But he reaches towards you. Through you. $astarion Hells. No. Don't stop. So you keep hugging him for as long as you can sustain contact. He's shaking a little. ](elseif: $successful_hug is 1)[Astarion shudders. While you hold him, he makes a few noises like he's stopping himself from crying. Eventually he calms down. ](elseif: $successful_hug < 6)[(set: $rand to (random: 1, 3))(if: $rand is 1)[Astarion makes a quiet, shuddering sound. ](elseif: $rand is 2)[Astarion holds very still. ](else:)[Astarion's hands move like he's trying to figure out how to return the motion, but there's no clear way to do that. ] ](else:)[(set: $rand to (random: 1, 4))(if: $rand is 1)[Astarion sighs and seems to unwind. ](elseif: $rand is 2)[Astarion leans towards you, which has the disorienting effect of briefly overlapping you. ](elseif: $rand is 3)[$astarion Thank you. ](else:)[Astarion moves his hands so that he's touching points on his shoulder and arm where you're making contact. ] ]](display: "Touch Options"){ (set: $successful_hug to it+1) (set: $touch_threshold_count to it+2) (if: $astarion_trust > 15)[<script>updateEmotion("calm",10);</script><script>updateEmotion("happy",4);</script>] (else:)[<script>updateEmotion("calm",8);</script><script>updateEmotion("happy",3);</script>] (if: not ($enrichment_list contains "vampire hug"))[ (set: $enrichment_list to it+"vampire hug") (set: $vampire_enrichment_score to it+8) ] } ](elseif: $sequence is 10)[{ (set: $cast_cost to 5-$touch) (if: $cast_cost < 1)[(set: $cast_cost to 1)] }You can't truly cast here, but you can go through the motions. The glow that gathers around your hands would be pretty in the dark. A sort of poor man's Dancing Lights. (if: $energy < $cast_cost)[//Cast. Not enough Energy.//](else:)[|castLights>[Cast. //<span class="energy">$cast_cost</span>//]] |return>[Something else.]{ (click: ?castLights)[(set: $sequence to 11)(set: $just_said to "cast lights")(set: $energy_change to (0-$cast_cost))(display: "update energy interaction")(go-to: $currentPassage)] }](elseif: $sequence is 11)[(if: $just_said is "cast lights")[You trace glowing silhouettes, breaking the dark of the tomb with traces of magic. Astarion turns towards you and watches.(if: $astarion_mood is not "frightened")[(if: not ($done_once_list contains "cast lights 1"))[ $astarion That's quite pretty.(set: $done_once_list to it+"cast lights 1")](elseif: not ($done_once_list contains "cast lights 2"))[ $astarion I seem to recall that something is supposed to happen after all that. $astarion But perhaps not.(set: $done_once_list to it+"cast lights 2")]] ](display: "Touch Options"){ <script>addAchieve("Poor Man's Dancing Lights");</script> (if: not ($enrichment_list contains "cast lights"))[ (set: $enrichment_list to it+"cast lights") <script>updateEmotion("calm",4);</script> <script>updateEmotion("happy",2);</script> (set: $vampire_enrichment_score to it+7) ] }](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)] (if: $touch_threshold_count > 15)[ (set: $touch_threshold_count to 0) (set: $touch_trust to it+1) ] }(if: $sequence is 0)[(display: "Astarion Description") (display: "Speech Options"){ }](elseif: $sequence is 1)[You make a slight sound to mark your presence. Astarion turns his head to track it. (display: "Speech Options"){ <script>updateEmotion("curious",4);</script> }](elseif: $sequence is 2)[{ (set: $perform_cost to 5-$speech) (if: $perform_cost < 1)[(set: $perform_cost to 1)] }What will you perform? (if: $energy < $perform_cost)[//Bard Dance. Not enough Energy.//](else:)[|bardDancePerform>[Bard Dance. //<span class="energy">$perform_cost</span>//]] (if: $energy < $perform_cost)[//The Power. Not enough Energy.//](else:)[|powerPerform>[The Power. //<span class="energy">$perform_cost</span>//]] (if: $energy < $perform_cost)[//A song about a river. Not enough Energy.//](else:)[|riverPerform>[A song about a river. //<span class="energy">$perform_cost</span>//]] |return>[Something else.]{ (click: ?bardDancePerform)[(set: $sequence to 3)(set: $just_said to "bard dance")(set: $energy_change to (0-$perform_cost))(display: "update energy interaction")(go-to: $currentPassage)] (click: ?riverPerform)[(set: $sequence to 3)(set: $just_said to "river")(set: $energy_change to (0-$perform_cost))(display: "update energy interaction")(go-to: $currentPassage)] (click: ?powerPerform)[(set: $sequence to 3)(set: $just_said to "power")(set: $energy_change to (0-$perform_cost))(display: "update energy interaction")(go-to: $currentPassage)] }](elseif: $sequence is 3)[(if: $just_said is "bard dance")[You whistle an upbeat foot-tapper. It's a little surreal to hear the cheerful tune echoing brightly off the walls of the dark tomb. Astarion turns towards you and listens.(if: $astarion_mood is not "frightened")[(if: not ($done_once_list contains "perform bard dance 1"))[ $astarion That's a trite little chestnut.(set: $done_once_list to it+"perform bard dance 1")](if: not ($done_once_list contains "perform bard dance 2"))[ $astarion I feel like you're not reading the room very well.(set: $done_once_list to it+"perform bard dance 2")]] ](elseif: $just_said is "river")[You whistle a wistful song about dreams and water.<script>addAchieve("Music Box");</script> Astarion turns towards you and listens. ](elseif: $just_said is "power")[You whistle an enchanting crowd-pleaser. Astarion turns towards you and listens.(if: $astarion_mood is not "frightened")[(if: not ($enrichment_list contains "perform"))[ He doesn't say anything, but by the end he's tilting his head back and forth in time to the music.]] ](display: "Speech Options"){ (if: not ($enrichment_list contains "perform"))[ (set: $enrichment_list to it+"perform") <script>updateEmotion("calm",4);</script> (if: $just_said is "power")[(set: $vampire_enrichment_score to it+10)](else:)[(set: $vampire_enrichment_score to it+7)] (if: $just_said is "power")[<script>updateEmotion("happy",3);</script>](else:)[<script>updateEmotion("happy",2);</script>] ](else:)[ <script>updateEmotion("calm",2);</script> (if: $just_said is "power")[<script>updateEmotion("happy",2);</script>](else:)[<script>updateEmotion("happy",1);</script>] ] }](elseif: $sequence is 4)[{ (set: $rand to (random: 1, 3)) }(if: $astarion_trust < 2)[Astarion doesn't say anything, but stares suspiciously in the direction of your voice. ](elseif: $astarion_trust < 5)[(if: $rand is 1)[$astarion Hm. ](elseif: $rand is 2)[$astarion Yes? ](elseif: $rand is 3)[$astarion What is it? ] ](elseif: $astarion_trust < 10)[(if: $rand is 1)[$astarion Ah. It's you. ](elseif: $rand is 2)[$astarion Hello there. ](elseif: $rand is 3)[$astarion What do you want? ] ](elseif: $astarion_trust < 15)[(if: $rand is 1)[$astarion You're here. ](elseif: $rand is 2)[$astarion I was just thinking about you. ](elseif: $rand is 3)[$astarion Ah. My favorite(if: $what_is_player is "ghost")[ ghost.](else:)[...whatever you are.] ] ](else:)[(if: $rand is 1)[$astarion Hello darling. ](elseif: $rand is 2)[$astarion Hm. My friend. ](elseif: $rand is 3)[$astarion I missed you. ] ] (display: "Speech Options"){ (if: not ($enrichment_list contains "greeting"))[ (set: $enrichment_list to it+"greeting") (set: $vampire_enrichment_score to it+2) (if: $astarion_trust > 9)[<script>updateEmotion("calm",2);</script>](else:)[<script>updateEmotion("calm",1);</script>] ] }](elseif: $sequence is 5)[{ (set: $rand to (random: 1, 3)) }(if: $astarion_trust < 2)[Astarion doesn't say anything, but stares suspiciously in the direction of your voice. ](elseif: $astarion_trust < 5)[$astarion What do you want? ](elseif: $morning_joke_count is 0)[Astarion snorts. $astarion If you say so. ](elseif: $morning_joke_count is 1)[Astarion squints at the place where he thinks you are. $astarion Really? ](elseif: $morning_joke_count is 2)[$astarion Is this what we're doing now? Is this a funny joke? ](elseif: $morning_joke_count is 3)[Astarion lets out an exasperated huff and shrugs his shoulders. $astarion Fine. Good morning. ](elseif: $morning_joke_count is 4)[$astarion Good morning. ](elseif: $morning_joke_count is 5)[$astarion Good morning. What lovely weather we're having. ](elseif: $morning_joke_count is 6)[$astarion No. I disagree. It feels like afternoon. ](elseif: $morning_joke_count is 7)[$astarion Good evening. ](elseif: $morning_joke_count is 8)[$astarion I am actually certain it's midnight. Vampires can tell, you know. ](elseif: $morning_joke_count is 9)[$astarion What a lovely morning it is. Nothing like a sunr... Astarion cuts himself off. He leans forward, head tilting down. He doesn't seem able to speak for a moment. $astarion No. It's fine. $astarion It's still a nice little joke. $astarion Good morning.(set: $happy_value to it-3) ](else:)[(if: $rand is 1)[$astarion Good morning. ](elseif: $rand is 2)[$astarion Good afternoon. ](elseif: $rand is 3)[$astarion Good evening. ] ](display: "Speech Options"){ (if: $astarion_trust > 4)[(set: $morning_joke_count to it+1)] (if: not ($enrichment_list contains "greeting"))[ (set: $enrichment_list to it+"greeting") (set: $vampire_enrichment_score to it+3) (if: $astarion_trust > 9)[<script>updateEmotion("calm",3);</script>](else:)[<script>updateEmotion("calm",2);</script>] (if: $morning_joke_count > 4 and $astarion_trust > 4)[(set: $happy_value to it+1)] ] }](elseif: $sequence is 6)[{ (set: $rand to (random: 1, 3)) }(if: $day is 158 and $astarion_nightmare_told is "invisible")[$astarion I've heard that apparently there's an invisible monster in the room. $astarion So there's that. ](elseif: $day is 158 and $astarion_nightmare_told is "monster")[$astarion I've heard that apparently there's an invisible monster in the room. $astarion So there's that. ](elseif: $speech is 2 and not ($chat_list contains "pedantic how are you correction"))[$astarion I think you're missing a verb there. $astarion Marvelous. Thank you so much for asking. { (set: $chat_list to it+"pedantic how are you correction") }](elseif: $astarion_mood is "happy")[$astarion I... $astarion Just right now. $astarion I think I'm all right. ](elseif: $astarion_trust > 5 and $day > 158 and $astarion_mood is "calm" and not ($chat_list contains "is this forever"))[(set: $chat_list to it+"is this forever")(set: $sequence to 2)(go-to: "Small Chats") ](elseif: $astarion_trust > 9 and ($astarion_mood is "bored" or $astarion_mood is "calm") and not ($chat_list contains "how is ghost"))[(set: $chat_list to it+"how is ghost")(set: $sequence to 0)(go-to: "Small Chats") ](elseif: $astarion_trust < 3)[Astarion doesn't say anything, but stares suspiciously in the direction of your voice. ](elseif: $astarion_trust < 5 or $astarion_mood is "frightened")[(if: $rand is 1)[$astarion Fine. ](elseif: $rand is 2)[$astarion Peachy. ](elseif: $rand is 3)[$astarion Trapped in a crypt with a $player_term that asks inane questions. ] ](elseif: $astarion_trust < 10 or $astarion_mood is "tense")[(if: $rand is 1)[$astarion Guess. ](elseif: $rand is 2)[$astarion Trapped in a crypt. ](elseif: $rand is 3)[$astarion Fantastic. ] ](elseif: $astarion_mood is "calm")[(if: $rand is 1)[$astarion A bit better, now that you're here. ](elseif: $rand is 2)[Astarion makes a noncommittal noise. ](elseif: $rand is 3)[$astarion As well as can be expected. ] ](elseif: $astarion_mood is "bored")[(if: $rand is 1)[$astarion To be honest, I've been better. ](elseif: $rand is 2)[Astarion makes a noncommittal noise which wavers a bit at the end. ](elseif: $rand is 3)[Astarion shrugs with affected disinterest. ] ](else:)[Astarion shrugs. ](display: "Speech Options"){ (if: not ($enrichment_list contains "howareyou"))[ (set: $enrichment_list to it+"howareyou") (set: $vampire_enrichment_score to it+3) (if: $astarion_trust > 9)[<script>updateEmotion("calm",2);</script><script>updateEmotion("happy",1);</script>](else:)[<script>updateEmotion("calm",1);</script>] ] }](elseif: $sequence is 7)[(if: not ($chat_list contains "first goodbye"))[ (set: $chat_list to it+"first goodbye")(set: $sequence to 0)(go-to: "Small Chats") ](else:)[(if: $astarion_trust < 2)[Astarion doesn't say anything, but stares suspiciously in the direction of your voice. ](elseif: $astarion_mood is "bored")[Astarion doesn't say anything. ](elseif: $astarion_mood is "frightened")[Astarion twitches. But then says: $astarion Goodbye. ](else:)[$astarion Goodbye. ] |returnTomb>[Continue]{ (if: not ($enrichment_list contains "goodbye"))[ (set: $enrichment_list to it+"goodbye") (set: $vampire_enrichment_score to it+1) <script>updateEmotion("calm",1);</script> ] }]{ (set: $astarion_goodbye to true) }](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: ?whisper)[(set: $sequence to 1)(display: "reduce energy interaction")(go-to: $currentPassage)] }(if: $astarion_hiding is true)[Astarion is hiding, entirely concealed, behind a column by the door.](elseif: $astarion_location is "sarcophagus")[Astarion is leaning against the sarcophagus.](elseif: $astarion_location is "niches")[Astarion is leaning against the wall by the funeral niches.](else:)[Astarion is sitting, mostly concealed, behind one of the columns.](if: $astarion_hands is not "healed")[ (if: $sight is 1)[//Something exists beyond your perception. <span class="softEmph">Requires: Sight 2</span>//](elseif: $sight is 2)[There's something wrong with his hands.](elseif: $sight > 2)[His hands are ragged with wounds that are not bleeding.]] He seems (if: $astarion_mood is "happy")[vaguely content.](elseif: $astarion_mood is "curious")[curious.](elseif: $astarion_mood is "calm")[relatively calm.](elseif: $astarion_mood is "tense")[prickly and nervous.](elseif: $astarion_mood is "frightened")[frightened.](else:)[|exp>[bored.](click-replace: ?exp)[empty.]](if: $active_event contains "astarion")[ Astarion is looking for you(if: $event_is_stale is true)[, but without much hope.](else:)[.]](elseif: $astarion_day_activity is "fur")[ Astarion is picking fur out of his teeth.](if: $sequence is 0)[Astarion mostly sits and stares emptily into the darkness. (if: $astarion_trust < 5)[But occasionally his eyes focus. He glances warily around the room, as if looking for something, but not certain he wants to find it.](else:)[But occasionally his eyes focus and he glances around the room, as if looking for something.](if: $hand_held is true)[ Sometimes he flexes his hand.] <span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> <span id="tap" class="energy-link" data-content="Tap on stone./Touch/1"></span> <span id="hello-1" class="energy-link" data-content="Speak: Hello./Speech/2"></span> <span id="name" class="energy-link" data-content="Speak: Astarion?/Speech/2"></span> <span id="hello-2" class="energy-link" data-content="Speak: I`m here./Speech/3"></span>{ (set: $astarion_interacted to true) (set: $active_event to "empty") (set: $vampire_enrichment_score to it+3) (set: $just_said to "") }](elseif: $sequence is 1)[Astarion twitches at the sudden break in silence. (if: $just_said is "name")[$astarion_name Oh. It knows my name. $astarion_name Fantastic. ](elseif: $just_said is "hello")[$astarion_name You can talk? $astarion_name It can talk. ](elseif: $just_said is "whisper" or $just_said is "tap")[$astarion_name You. $astarion_name I heard that. That was... $astarion_name Someone's there. ] |next>[Continue]{ }](elseif: $sequence is 2)[Astarion stares into the darkness near where you are, where the sound came from. He shakes he head, and then asks hesitantly: $astarion_name Are you some sort of ghost? Am I being haunted? (if: $speech < 2)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> <span id="tap" class="energy-link" data-content="Tap on stone./Touch/1"></span> ](else:)[<span id="no" class="energy-link" data-content="Say no./Speech/0/12"></span> <span id="yes" class="energy-link" data-content="Say yes./Speech/0/4"></span> <span id="dream" class="energy-link" data-content="Speak: You`re dreaming./Speech/3/8"></span> ]{ (set: $just_said to "") }](elseif: $sequence is 3)[$astarion_name Really? Oh Gods, this is going to be tiresome. $astarion_name Fine. Once for yes, and twice for no. $astarion_name Are you a ghost? <span id="no" class="energy-link" data-content="Say no./Speech/0"></span> <span id="yes" class="energy-link" data-content="Say yes./Speech/0"></span>{ (set: $just_said to "") } ](elseif: $sequence is 4)[Astarion doesn't speak for a little while. (if: $just_said is "yes")[(if: $sight > 1)[<span class="softEmph">`[Unlocked: Sight 2]`</span> Then he asks very quietly: $astarion_name Did I kill you? <span id="no" class="energy-link" data-content="Say no./Speech/0/6"></span> <span id="yes" class="energy-link" data-content="Say yes./Speech/0/6"></span>{ (set: $what_is_player to "ghost") (set: $just_said to "") }](else:)[Then he says something, but he speaks so quietly you can't make out the words. <span class="italicEmph">//Requires Sight: 2//</span> <span id="what" class="energy-link" data-content="Speak: What?/Speech/2"></span> |next>[Wait.]{ }]](elseif: $just_said is "no")[$astarion_name Am I... (if: $sight > 1)[<span class="softEmph">`[Unlocked: Sight 2]`</span> Astarion covers his face and mutters to himself. $astarion_name I am not going to ask hallucinations if they are hallucinations. I have some standards.](else:)[Astarion covers his face and mutters something too quietly for you to hear. <span class="italicEmph">//Requires Sight: 2//</span>] |goToConclusion>[Continue] ]](elseif: $sequence is 5)[Astarion shakes his head slightly. As if changing his mind about whatever he just said. |goToConclusion>[Continue] ](elseif: $sequence is 6)[(if: $just_said is "yes")[Astarion's shoulders hunch and he draws back slightly from where he thinks you are. He doesn't seem to have anything else to say. |findAstarion>[Continue]{ (set: $player_term to "ghost") (set: $player_killed_by to "astarion") (display: "set mood frightened") <script>updateTrust(-1);</script> (set: $astarion_refuse_interaction to true) }](else:)[He relaxes slightly. $astarion_name Did Cazador kill you? The name is sharp on his tongue, even though he seems tired. <span id="no" class="energy-link" data-content="Say no./Speech/0"></span> <span id="yes" class="energy-link" data-content="Say yes./Speech/0"></span>{ (set: $just_said to "") }]](elseif: $sequence is 7)[(if: $just_said is "yes")[His head tilts to the side. He mutters: $astarion_name How nice to have something in common. |goToConclusion>[Continue]{ <script>updateTrust(1);</script> (set: $murdered_by_cazador to true) }](else:)[$astarion_name How mysterious. $astarion_name I won't pry. That would be rude. |goToConclusion>[Continue]{ }]](elseif: $sequence is 8)[Astarion is clearly about to say something contemptuous, but then stops. He looks around the small stone room. (if: $sight > 1)[<span class="softEmph">`[Unlocked: Sight 2]`</span> His expression of immediate disbelief erodes slightly under the appeal of that idea. However delusional it seems.](else:)[//Something happens beyond your perception. <span class="softEmph">Requires: Sight 2</span>//] $astarion_name Is there a way to wake up? <span id="no" class="energy-link" data-content="Say no./Speech/0"></span> <span id="yes" class="energy-link" data-content="Say yes./Speech/0"></span> <span id="maybe-1" class="energy-link" data-content="Speak: Maybe./Speech/1"></span> <span id="maybe-2" class="energy-link" data-content="Speak: Don`t know./Speech/1"></span>{ (set: $what_is_player to "dream") (set: $just_said to "") }](elseif: $sequence is 9)[(if: $just_said is "yes")[$astarion_name What do I need to do? <span id="hope" class="energy-link" data-content="Speak: Hope./Speech/1"></span> <span id="despair" class="energy-link" data-content="Speak: Don`t despair./Speech/1"></span> <span id="monster" class="energy-link" data-content="Speak: Kill monster./Speech/1"></span> <span id="gale" class="energy-link" data-content="Speak: Ask Gale./Speech/1"></span> <span id="dunno" class="energy-link" data-content="Speak: Don`t know./Speech/1"></span>{ (set: $just_said to "") }](elseif: $just_said is "maybe")[$astarion_name I see. Astarion speaks slowly, tone dripping with renewed skepticism. $astarion_name If you come up with any ideas, do let me know. |goToConclusion>[Continue]{ }](elseif: $just_said is "no")[$astarion_name Of course not. He mutters. His eyes unfocus from the spot where your voice comes from. He goes back to staring off into the darkness. |findAstarion>[Continue]{ (set: $astarion_mood to "bored") (set: $player_term to "voice") }]](elseif: $sequence is 10)[(if: $just_said is "hope")[Astarion snorts. $astarion_name That's hideously saccharine. (if: $sight > 1)[<span class="softEmph">`[Unlocked: Sight 2]`</span> $astarion_name And in short supply. He mutters.](else:)[//Something happens beyond your perception. <span class="softEmph">Requires: Sight 2</span>//] |next>[Continue] ](elseif: $just_said is "despair")[Astarion doesn't speak for a while. When he does, his tone is very flat: $astarion_name I'll work on that. |next>[Continue] ](elseif: $just_said is "monster")[Astarion glances around the small, dusty, empty room. $astarion_name Can you see something I can't? |next>[Continue] ](elseif: $just_said is "gale")[Astarion frowns. $astarion_name Is that some sort of metaphor? 'Ask the storm?' |next>[Continue] ](elseif: $just_said is "dunno")[$astarion_name I see. Astarion speaks slowly, tone dripping with renewed skepticism. $astarion_name If you come up with any ideas, do let me know. |next>[Continue] ]{ }](elseif: $sequence is 11)[Astarion holds his hand up, as if staving off any response. $astarion_name I just reached my limit for talking about insane things for today. (if: $sight > 2)[<span class="softEmph">`[Unlocked: Sight 3]`</span> He is affecting sarcasm, but there is a wavering tension at the edge of his voice. He is genuinely concerned that he's going mad.](else:)[//Something happens beyond your perception. <span class="softEmph">Requires: Sight 3</span>//] |goToConclusion>[Continue]{ }](elseif: $sequence is 12)[Astarion's head tilts to the side. He's staring at the space of darkness where your voice is coming from. $astarion_name If you're not a ghost, what in the world are you? <span id="companion" class="energy-link" data-content="Speak: Companion./Speech/1"></span> <span id="friend" class="energy-link" data-content="Speak: Friend./Speech/1"></span> <span id="hero" class="energy-link" data-content="Speak: Hero./Speech/1"></span> <span id="love" class="energy-link" data-content="Speak: Love./Speech/1"></span>{ (set: $just_said to "") }](elseif: $sequence is 13)[(if: $just_said is "companion")[Astarion frowns skeptically. But then says: $astarion_name I suppose I could use one of those. |next>[Continue]{ <script>updateTrust(1);</script> (set: $what_is_player to "friend") }](elseif: $just_said is "friend")[Astarion frowns skeptically. $astarion_name I don't... He hesitates. $astarion_name Do as you wish, I suppose. |next>[Continue]{ <script>updateTrust(1);</script> (set: $what_is_player to "friend") }](elseif: $just_said is "hero")[Astarion's expression sinks into deep suspicion. $astarion_name How nice for you. |next>[Continue]{ (display: "set mood tense") <script>updateTrust(-1);</script> (set: $what_is_player to "hero") }](elseif: $just_said is "love")[Astarion twitches. (if: $sight > 2)[<span class="softEmph">`[Unlocked: Sight 3]`</span> He mutters under his breath: $astarion_name A ghost then. And in denial about being dead.](else:)[He mutters something to himself. <span class="italicEmph">//Requires Sight: 3//</span>] Then he makes a vague and non-committal noise. |next>[Continue]{ (display: "set mood tense") (set: $what_is_player to "love") }]](elseif: $sequence is 14)[(if: $what_is_player is "ghost")[$astarion_name A ghost in a tomb. I suppose you're just as apt as I am.](elseif: $what_is_player is "friend" or $what_is_player is "companion")[$astarion_name Well. 'Friend.'](elseif: $what_is_player is "hero")[$astarion_name Well. 'Hero.'](else:)[$astarion_name Well. Whatever you are. (if: $what_is_player is "dream")[A dream.](elseif: $speech < 2)[A shadow.](else:)[A voice.]] $astarion_name I suppose I don't mind you being here. (if: $fuck_off_count > 0)[$astarion_name But mind your spectral little hands in the future.](else:)[$astarion_name Just be a polite crypt-mate. Hmm?] |findAstarion>[Continue]{ (if: $what_is_player is "ghost")[(set: $player_term to "ghost")](elseif: $what_is_player is "dream")[(set: $player_term to "dream")](elseif: $speech < 2)[(set: $player_term to "shadow")](else:)[(set: $player_term to "voice")] (if: $astarion_mood is not "tense")[(set: $astarion_mood to "calm")] }](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (click: ?goToConclusion)[(set: $sequence to 14)(go-to: $currentPassage)] }{ <script>reduceEnergy();</script> }{(set: $energy to $energy - 1) (if: $energy > $maxEnergy)[(set: $energy to $maxEnergy)] (if: $energy < 0)[(set: $energy to 0)] <script>playAudio("aa_clock_tick1");</script> (set: $astarion_interacted to true) }{(set: $energy to $energy + $energy_change) (if: $energy > $maxEnergy)[(set: $energy to $maxEnergy)] <script>playAudio("aa_clock_tick1");</script> (set: $astarion_interacted to true) }{ (set: $astarion_mood to "tense") (set: $curious_value to 0) (set: $calm_value to 0) (set: $happy_value to 0) }{ (set: $astarion_mood to "frightened") (set: $curious_value to 0) (set: $calm_value to 0) (set: $happy_value to 0) }{ (set: $astarion to "<span style='color: #ebe8cd;'>Astarion:</span> ") (set: $rand to (random: 1, 3)) (set: $astarion_trust to 6) }(if: $astarion_trust < 2)[Astarion doesn't say anything, but stares suspiciously in the direction of your voice. ](elseif: $astarion_trust < 5)[$astarion What do you want? ](elseif: $morning_joke_count is 0)[Astarion snorts. $astarion If you say so. ](elseif: $morning_joke_count is 1)[Astarion squints at the place where he thinks you are. $astarion Really? ](elseif: $morning_joke_count is 2)[$astarion Is this what we're doing now? Is this a funny joke? ](elseif: $morning_joke_count is 3)[Astarion lets out an exasperated huff and shrugs his shoulders. $astarion Fine. Good morning. ](elseif: $morning_joke_count is 4)[$astarion Good morning. ](elseif: $morning_joke_count is 5)[$astarion Good morning. What lovely weather we're having. ](elseif: $morning_joke_count is 6)[$astarion No. I disagree. It feels like afternoon. ](elseif: $morning_joke_count is 7)[$astarion Good evening. ](elseif: $morning_joke_count is 8)[$astarion I am actually certain it's midnight. Vampires can tell, you know. ](elseif: $morning_joke_count is 9)[$astarion What a lovely morning it is. Nothing like a sunr... Astarion cuts himself off. He leans forward, head tilting down. He doesn't seem able to speak for a moment. $astarion No. It's fine. $astarion It's still a nice little joke. $astarion Good morning.(set: $happy_value to it-3) ](else:)[(if: $rand is 1)[$astarion Good morning. ](elseif: $rand is 2)[$astarion Good afternoon. ](elseif: $rand is 3)[$astarion Good evening. ] ]|refresh>[Continue]{ (set: $morning_joke_count to it+1) }(if: $sequence is 0)[$astarion I'm delightful. How are you? (if: $energy is 0)[//You don't have the energy to speak.// ](else:)[|speakGhost>[Speak: "Ghost." //<span class="energy">1</span>//] |speakNightmare>[Speak: "Nightmare." //<span class="energy">1</span>//] |speakPeach>[Speak: "Peachy." //<span class="energy">1</span>//] (if: $speech > 2)[|speakPeach>[Speak: "Peachy keen." //<span class="energy">1</span>//]](else:)[|gray3>[Speak: "Peachy keen."] (click: ?gray3)[//Requires Speech 3//]] (if: $speech > 2)[|speakAwful>[Speak: "Fucking awful." //<span class="energy">1</span>//]](else:)[|gray4>[Speak: "Fucking awful."] (click: ?gray4)[//Requires Speech 3//]] ]|sayNothing>[Be silent.]{ (set: $just_said to "") (if: not ($enrichment_list contains "howareyou"))[ (set: $enrichment_list to it+"howareyou") (set: $vampire_enrichment_score to it+1) <script>updateEmotion("calm",1);</script> ] (click: ?speakGhost)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "ghost")(go-to: $currentPassage)] (click: ?speakNightmare)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "nightmare")(go-to: $currentPassage)] (click: ?speakPeach)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "peachy")(go-to: $currentPassage)] (click: ?speakAwful)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "awful")(go-to: $currentPassage)] (click: ?sayNothing)[(set: $sequence to it+1)(set: $just_said to "nothing")(go-to: $currentPassage)] }](elseif: $sequence is 1)[(if: $just_said is "no words")[$astarion Right. Still voiceless. He sounds mildly embarassed for having asked. ](elseif: $just_said is "ghost")[$astarion Mm. Yes. Dead in a crypt. $astarion I can see how that might dampen one's mood. ](elseif: $just_said is "nightmare")[$astarion Yes. That about sums it up. ](elseif: $just_said is "peachy")[$astarion Well, isn't that nice to hear. ](elseif: $just_said is "awful")[Astarion actually laughs at that. $astarion Welcome to the club.(set: $happy_value to it+3)<script>updateTrust(1);</script> ](elseif: $just_said is "nothing")[Astarion waits for a while. When you don't respond, his face falls. And then hardens. $astarion Rude little $player_term.(set: $happy_value to it-1)<script>updateTrust(-1);</script> ]|findAstarion>[Continue]{ }](elseif: $sequence is 2)[Astarion was staring into the darkness with a fixed expression. Your question seems to jar him loose from a thought. Then, after a moment of reflection, he doesn't see any reason not to let the thought come out of his mouth. $astarion I don't know if I'm ever getting out of here. $astarion What if this is what life is now? $astarion What if this is forever? (if: $energy is 0)[//You don't have the energy to speak.// ](else:)[|speakNotForever>[Speak: "Not." //<span class="energy">1</span>//] (if: $speech > 2)[|speakNotForever>[Speak: "Not forever." //<span class="energy">1</span>//]](else:)[|gray1>[Speak: "Not forever."] (click: ?gray1)[//Requires Speech 3//]] (if: $speech > 2)[|speakHere>[Speak: "I'm here." //<span class="energy">1</span>//]](else:)[|gray2>[Speak: "I'm here."] (click: ?gray2)[//Requires Speech 3//]] (if: $speech > 2)[|speakSave>[Speak: "Save you." //<span class="energy">1</span>//]](else:)[|gray3>[Speak: "Save you."] (click: ?gray3)[//Requires Speech 3//]] (if: $speech > 3)[|speakSurvived>[Speak: "You survived once." //<span class="energy">1</span>//]](else:)[|gray4>[Speak: "You survived once."] (click: ?gray4)[//Requires Speech 4//]] ]|sayNothing>[Be silent.]{ (set: $just_said to "") (if: not ($enrichment_list contains "howareyou"))[ (set: $enrichment_list to it+"howareyou") (set: $vampire_enrichment_score to it+1) <script>updateEmotion("calm",1);</script> ] (click: ?speakNotForever)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "not forever")(go-to: $currentPassage)] (click: ?speakHere)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "here")(go-to: $currentPassage)] (click: ?speakSave)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "save")(go-to: $currentPassage)] (click: ?speakSurvived)[(set: $sequence to it+1)(display: "reduce energy")(set: $just_said to "survived")(go-to: $currentPassage)] (click: ?sayNothing)[(set: $sequence to it+1)(set: $just_said to "nothing")(go-to: $currentPassage)] }](elseif: $sequence is 3)[(if: $just_said is "not forever")[$astarion You don't know that. $astarion You don't know what he's like. $astarion He might... Astarion buries his face in his hands and shakes for a while.(set: $astarion_mood to "frightened") ](elseif: $just_said is "here")[(if: $astarion_trust < 10)[$astarion You? What even are you? $astarion You're nothing. A voice in the dark. $astarion I'm talking to nothing. Astarion buries his face in his hands and stops responding to you.(set: $astarion_refuse_interaction to true)(set: $astarion_mood to "frightened") ](elseif: $astarion_trust < 10)[$astarion Yes. You are. $astarion I suppose you are. $astarion I suppose that's something.(set: $astarion_mood to "tense") ](else:)[$astarion Yes. You are. $astarion I suppose you are. $astarion ... $astarion Don't leave. ]](elseif: $just_said is "save")[Astarion hisses in disgust. $astarion Kindly fuck off with that.(set: $astarion_mood to "tense") ](elseif: $just_said is "survived")[Astarion stares into the darkness where your voice is coming from. $astarion That feels true. He turns away from you. He speaks quietly, clearly to himself. $astarion Why does that feel true?(set: $astarion_mood to "calm") ](elseif: $just_said is "nothing")[When you say nothing in response to this Astarion's shoulder's hunch. He covers his face. He starts breathing in quick, hitching gasps. Like he can't get enough air, which doesn't make any sense, since he shouldn't need any at all. This goes on for maybe five minutes before winding down. He doesn't respond to you for the rest of the day.(set: $astarion_refuse_interaction to true)(set: $astarion_mood to "frightened")<script>updateTrust(-2);</script> ]|findAstarion>[Continue]{ }](elseif: $sequence is 4)[Astarion straightens. $astarion What do you mean? $astarion Where are you going? Away / Asleep / No response Goodbye. - No response - All right. Goodbye then. - When will you be back? (Soon / Don't know / Tomorrow) -- He will hold you to the tomorrow promise (lose trust and comment if you break it, gain trust and comment if you keep it) - every ten constant goodbye/hello cycles earns a trust. - I'm not sure this is necessary. Postpone. ](elseif: $sequence is 5)[$astarion Was that Godey throwing a fit outside? $astarion What a delight to listen to. $astarion And I think you had something to do with it? $astarion You're a treasure. |findAstarion>[Continue]{ <script>updateTrust(1);</script> }](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)] }(if: $sequence is 0)[Astarion is by the stone door. His hands are at the seam. It looks like he's trying to peel it open with his nails. $astarion Please. $astarion I'm sorry. $astarion I won't do it again. (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap sharply on the stone./Touch/1"></span> ](elseif: $speech is 1)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ]<span id="stop" class="energy-link" data-content="Speak: Stop./Speech/2"></span> <span id="name" class="energy-link" data-content="Speak: Astarion./Speech/2/2"></span> <span id="useless" class="energy-link" data-content="Speak: Useless./Speech/2"></span> <span id="hurt" class="energy-link" data-content="Speak: Hurting yourself./Speech/3/2"></span> <span id="cazador" class="energy-link" data-content="Speak: Cazador won't care./Speech/4"></span> <span id="touch" class="energy-link" data-content="Touch him./Touch/1"></span> <span id="pull" class="energy-link" data-content="Pull him back from the door./Touch/3"></span> |leave>[Don't interfere.]{ (set: $astarion_interacted to true) (set: $active_event to "empty") (set: $just_said to "") (set: $astarion_mood to "tense") (set: $healthDisplay to true) (set: $health_change to -1)(display: "update health silent") }](elseif: $sequence is 1)[(if: $just_said is "cazador")[The name 'Cazador' makes Astarion flinch. Which is actually good just now, because he flinches back from the door. It jars him out of what he's doing. He glances wildly around the room. Doesn't see anything. Calms down slightly. |goToCorner>[Continue]{ }](elseif: $just_said is "touch")[Astarion snatches his arm back from where you touched it. He glances wildly around the room. Then he glares at where he thinks you are. He looks angry and scared. But at least he's not hurting his hands on the door anymore. |goToCorner>[Continue]{ <script>updateTrust(-1);</script> (set: $astarion_mood to "frightened") }](elseif: $just_said is "pull")[Astarion shrieks, turns around, and tries to attack you. Maul you with his teeth. It doesn't work. You're not there. At least he's not hurting his hands on the door anymore. |goToCorner>[Continue]{ <script>updateTrust(-2);</script> (set: $astarion_mood to "frightened") }](else:)[(if: $just_said is "useless")[Astarion twitches, but doesn't respond to you.<script>updateTrust(-1);</script>](else:)[He doesn't seem to hear you.] He continues to rake his fingers against the door. $astarion Let me out. $astarion I've learned. (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap sharply on the stone./Touch/1"></span> ](elseif: $speech is 1)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ]<span id="name" class="energy-link" data-content="Speak: Astarion./Speech/2/3"></span> <span id="wait" class="energy-link" data-content="Speak: Wait./Speech/2"></span> <span id="notworking" class="energy-link" data-content="Speak: Not working./Speech/3/3"></span> <span id="pleasestop" class="energy-link" data-content="Speak: Please stop./Speech/3/3"></span> <span id="foolish" class="energy-link" data-content="Speak: This is foolish./Speech/4"></span> <span id="touch" class="energy-link" data-content="Touch him./Touch/1"></span>{ (set: $just_said to "") (set: $health_change to -1)(display: "update health silent") }]](elseif: $sequence is 2)[(if: $just_said is "touch")[Astarion twitches his arm back from where you touched it. But he doesn't seem surprised. He knew you were there, on some level. And he's stopped hurting his hands on the door. |goToCorner>[Continue]{ }](else:)[(if: $just_said is "foolish")[Astarion's shoulders hunch. He has slowed down slightly.<script>updateTrust(-1);</script>](else:)[Astarion has slowed down slightly.] $astarion Please let me out. (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap sharply on the stone./Touch/1"></span> ](elseif: $speech is 1)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ]<span id="name" class="energy-link" data-content="Speak: Astarion./Speech/2"></span> <span id="please" class="energy-link" data-content="Speak: Please./Speech/2"></span> <span id="stop" class="energy-link" data-content="Speak: Stop it./Speech/3"></span>{ (set: $health_change to -1)(display: "update health silent") }]](elseif: $sequence is 3)[Astarion has stopped talking. He looks a little more in his right mind. He seems to be having trouble pulling away from the door. His fingers still move compulsively. (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap sharply on the stone./Touch/1"></span> ](elseif: $speech is 1)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ]<span id="name" class="energy-link" data-content="Speak: Astarion./Speech/2"></span> <span id="enough" class="energy-link" data-content="Speak: Enough./Speech/2"></span> <span id="letgo" class="energy-link" data-content="Speak: Let go./Speech/3"></span> <span id="touch" class="energy-link" data-content="Touch his wrist./Touch/1"></span>{ (set: $health_change to -1)(display: "update health silent") }](elseif: $sequence is 4)[(if: $just_said is "touch")[You touch Astarion's wrist, far below the bruises and scrapes on his hand. He draws his hands back from the door. |goToCorner>[Continue]{ }](else:)[Astarion stops. He sinks back from crouching by the door into sitting on the floor. |next>[Continue]{ }]](elseif: $sequence is 5)[Astarion retreats from the door. He moves to the column beside it. He sits behind the column, pressed back into the corner. (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap on stone./Touch/1"></span> ](elseif: $speech > 0)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ]<span id="breathe" class="energy-link" data-content="Speak: Breathe./Speech/2"></span> <span id="okay" class="energy-link" data-content="Speak: You okay?/Speech/3"></span> <span id="listen" class="energy-link" data-content="Speak: Listen to me./Speech/4"></span> |leaveGentler>[Do nothing.]{ (click: ?leaveGentler)[(set: $sequence to 14)(go-to: $currentPassage)] }](elseif: $sequence is 6)[(if: $just_said is "tap" or $just_said is "whisper")[$astarion Yes. $astarion I know you're there. He doesn't speak for a little while. |notUsually>[Continue]{ <script>updateEmotion("calm",8);</script> <script>updateTrust(1);</script> }](elseif: $just_said is "breathe")[$astarion I don't need to... $astarion Fine. Astarion takes a shaky breath in. Then exhales. He does this a few more times. It does seem to help. |notUsually>[Continue]{ (set: $astarion_mood to "calm") <script>updateTrust(1);</script> }](elseif: $just_said is "okay")[$astarion <i>No.</i> $astarion What an idiotic question. |findAstarion>[Continue]{ }](elseif: $just_said is "listen")[$astarion What? <span id="temporary" class="energy-link" data-content="Speak: This is temporary./Speech/4"></span> <span id="getout" class="energy-link" data-content="Speak: You get out./Speech/4"></span> <span id="notreal" class="energy-link" data-content="Speak: This isn't real./Speech/4"></span>(if: $class is "rogue")[ <span id="unbreakable" class="energy-link" data-content="[ROGUE] Speak: You`re unbreakable./Speech/3/9"></span>]{ }](else:)[(set: $sequence to 18)(go-to: $currentPassage) ]](elseif: $sequence is 7)[(if: $just_said is "temporary" or $just_said is "getout")[$astarion You don't know that. <span id="do" class="energy-link" data-content="Speak: I do./Speech/3"></span> <span id="seen" class="energy-link" data-content="Speak: I've seen it./Speech/4"></span>{ }](elseif: $just_said is "notreal")[Astarion stares into the dark blankly. Then he shakes his head, like he can't even begin to engage with that statement right now. |findAstarion>[Continue]{ }]](elseif: $sequence is 8)[Astarion shakes his head. He looks a little calmer, though. |findAstarion>[Continue]{ (set: $astarion_mood to "calm") <script>updateTrust(1);</script> }](elseif: $sequence is 9)[Astarion laughs hollowly and lifts up his ragged hands. $astarion I have evidence to the contrary. <span id="evidence" class="energy-link" data-content="Speak: Fuck your evidence./Speech/4"></span> <span id="say" class="energy-link" data-content="Speak: Say it./Speech/4"></span>{ <script>addAchieve("You're Unbreakable");</script> }](elseif: $sequence is 10)[(if: $just_said is "evidence")[$astarion What a foul mouthed little $player_term. He seems considerably calmer. Even amused. |findAstarion>[Continue]{ (set: $astarion_mood to "calm") <script>updateTrust(2);</script> }](elseif: $just_said is "say")[$astarion Pushy little $player_term, aren't you? $astarion Fine. I am unbreakable. He's acting like he's indulging you, but you think the words help. |findAstarion>[Continue]{ (set: $astarion_mood to "calm") <script>updateTrust(2);</script> }] ](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[ ](elseif: $sequence is 13)[ ](elseif: $sequence is 14)[He's stopped hurting himself against the door. You decide it might be best to just pretend this didn't happen. You let him be. |returnTomb>[Continue] { (set: $astarion_refuse_interaction to true) }](elseif: $sequence is 15)[You leave Astarion alone. You move to the far side of the tomb so you don't have to listen to the words or the sound of his hands on stone. |next>[Continue]{ }](elseif: $sequence is 16)[Eventually, it stops. |returnTomb>[Continue] { (set: $health_change to -10)(display: "update health silent") (set: $astarion_refuse_interaction to true) }](elseif: $sequence is 17)[$astarion I'm not usually like this. He subsides after that. He doesn't have anything else to say. And you can't say anything at all. |findAstarion>[Continue]{ }](elseif: $sequence is 18)[$astarion I'm not usually like this. He subsides after that. |findAstarion>[Continue]{ }]{ (click: ?attention1)[(set: $sequence to it+1)(display: "reduce energy")(go-to: $currentPassage)] (click: ?attention2)[(set: $sequence to it+1)(display: "reduce energy")(go-to: $currentPassage)] (click: ?touch)[(set: $sequence to it+1)(set: $just_said to "touch")(display: "reduce energy")(go-to: $currentPassage)] (click: ?goToCorner)[(set: $sequence to 5)(go-to: $currentPassage)] (click: ?leave)[(set: $sequence to 15)(go-to: $currentPassage)] (click: ?notUsually)[(set: $sequence to 18)(go-to: $currentPassage)] }(if: $sequence is 0)[{ (if: $asked_list contains "whose-tomb" and $asked_list contains "escape-tomb" and $asked_list contains "escape-door" and $asked_list contains "escape-secret-passage" and $asked_list contains "sarcophagus-tomb" and $asked_list contains "crest-sarcophagus" and $asked_list contains "open-sarcophagus")[(set: $done_with_tomb to true)] (if: $done_with_tomb is true and $seen_treasure is true)[ (if: not ($asked_list contains "treasure-inside-sarcophagus"))[(set: $done_with_tomb to false)] ] (if: $asked_list contains "who-cazador" and $asked_list contains "where-cazador" and $asked_list contains "murder-cazador")[(set: $done_with_cazador to true)] }(if: $astarion_trust < 5)[Astarion doesn't trust you enough to answer questions. |returnSpeech>[Do something else.] ](elseif: $astarion_mood is "frightened" or $astarion_mood is "tense")[Astarion isn't in a mood to answer questions. |returnSpeech>[Do something else.] ](else:)[What will you ask? (if: $energy is 0)[|timePasses>[Rest.] <span class="explain">//This will make time pass. Time is not kind, but you don't have a choice.//</span> ](else:)[(if: $sarcophagus_open is true and not ($asked_list contains "sarcophagus-loot"))[|lootAsk>[Speak: "Sarcophagus?" //<span class="energy">1</span>//] ](if: $astarion_stories_unlocked is not true)[|storyAsk>[Speak: "Story?" //<span class="energy">1</span>//] ](if: $done_with_tomb is false)[|tombAsk>[Speak: "Tomb?" //<span class="energy">1</span>//] ](if: $done_with_cazador is false)[|cazadorAsk>[Speak: "Cazador?" //<span class="energy">1</span>//] ]|returnSpeech>[Something else.]]{ (set: $astarion_link_display to false) (set: $tomb_link_display to true) (set: $practice_link_display to true) }]](elseif: $sequence is 1)[ ](elseif: $sequence is 2)[ ](elseif: $sequence is 3)[ ](elseif: $sequence is 4)[(if: not ($enrichment_list contains "cazador"))[Astarion tenses. $astarion What about him?](else:)[You consider asking a question about Cazador.] (if: not ($asked_list contains "who-cazador"))[<span id="who" class="energy-link" data-content="Speak: Who?/Speech/1"></span> ](if: not ($asked_list contains "where-cazador"))[<span id="where" class="energy-link" data-content="Speak: Where?/Speech/1"></span> ](if: not ($asked_list contains "murder-cazador"))[<span id="murder" class="energy-link" data-content="Speak: Murder./Speech/1"></span> ]|return>[Something else.]{ (if: not ($enrichment_list contains "cazador"))[ (set: $enrichment_list to it+"cazador") <script>updateEmotion("calm",-2);</script> <script>updateEmotion("happy",-1);</script> ] }](elseif: $sequence is 5)[(if: $just_said is "who")[(if: $murdered_by_cazador is true)[Astarion squints in your direction.(set: $murdered_by_cazador to false)<script>updateTrust(-1);</script> $astarion You said you were killed by him. $astarion If you're going to lie, at least keep your story straight. ](else:)[$astarion He's a monster. $astarion And I don't want to talk about him. ]|cazadorReturn>[Continue]{ (set: $asked_list to it+"who-cazador") }](elseif: $just_said is "where")[$astarion Somewhere upstairs, I presume. $astarion Usually in his study. |cazadorReturn>[Continue]{ (set: $asked_list to it+"where-cazador") }](elseif: $just_said is "murder")[Astarion snorts.<script>updateTrust(1);</script> $astarion A pleasant daydream.(if: $murdered_by_cazador is true)[ He pauses. Then he adds, almost kindly: $astarion That's not possible. <span id="someday" class="energy-link" data-content="Speak: Someday./Speech/1"></span>] |cazadorReturn>[Continue]{ (set: $asked_list to it+"murder-cazador") } ]{ }](elseif: $sequence is 6)[$astarion Sure. He says, in the tone of someone who is definitely indulging the murdered ghost. |cazadorReturn>[Continue]{ }](elseif: $sequence is 7)[(if: not ($enrichment_list contains "tomb"))[$astarion Go ahead. Ask whatever you like. $astarion I'm something of an expert.](else:)[You consider asking a question about the tomb.] (if: not ($asked_list contains "whose-tomb"))[<span id="whose" class="energy-link" data-content="Speak: Whose?/Speech/1"></span> ](if: $unlocked_escape_ask is false and not ($asked_list contains "escape-tomb"))[<span id="escape" class="energy-link" data-content="Speak: Escape?/Speech/1"></span> ](if: $unlocked_escape_ask is true and not ($asked_list contains "escape-door"))[<span id="door" class="energy-link" data-content="Speak: Door?/Speech/1"></span> ](if: $unlocked_escape_ask is true and not ($asked_list contains "escape-secret-passage"))[<span id="secretpassage" class="energy-link" data-content="Speak: Secret passage?/Speech/2"></span> ](if: not ($asked_list contains "sarcophagus-tomb"))[<span id="sarcophagus" class="energy-link" data-content="Speak: Sarcophagus?/Speech/1"></span> ](if: $asked_list contains "sarcophagus-tomb" and not ($asked_list contains "crest-sarcophagus"))[<span id="crest" class="energy-link" data-content="Speak: Crest?/Speech/1"></span> ](if: $asked_list contains "sarcophagus-tomb" and not ($asked_list contains "open-sarcophagus"))[<span id="open" class="energy-link" data-content="Speak: Open sarcophagus?/Speech/3"></span> ](if: $asked_list contains "sarcophagus-tomb" and $seen_treasure is true and not ($asked_list contains "treasure-inside-sarcophagus"))[<span id="treasure" class="energy-link" data-content="Speak: Treasure inside sarcophagus./Speech/3"></span> ]|return>[Something else.]{ (if: not ($enrichment_list contains "tomb"))[ (set: $enrichment_list to it+"tomb") (set: $vampire_enrichment_score to it+1) <script>updateEmotion("calm",3);</script> ] }](elseif: $sequence is 8)[(if: $just_said is "whose")[$astarion This would be the tomb of Edwina, Francis, Merricort and Tannis Halchair. $astarion Also Tulisa Provoss and Amelia Verden. $astarion The cremation urns had labels. I used to read them before I broke them all. $astarion Also whoever is in there. He gestures to the sarcophagus.{ (set: $asked_list to it+"whose-tomb") (set: $vampire_enrichment_score to it+2) <script>updateEmotion("calm",4);</script> }](elseif: $just_said is "escape")[(if: $what_is_player is "dream" and $astarion_trust > 5)[Astarion starts to shake his head, but then hesitates.(set: $unlocked_escape_ask to true)(set: $asked_list to it+"escape-tomb") $astarion If this is a dream then... He still sounds skeptical. $astarion Well. I suppose it doesn't hurt to talk about it.{ (set: $vampire_enrichment_score to it+2) }](elseif: $astarion_trust > 9)[Astarion starts to shake his head, but then stops.(set: $unlocked_escape_ask to true)(set: $asked_list to it+"escape-tomb") $astarion It's pointless. I'd just end up back in here. Or worse. $astarion But if it would please you to play pretend, fine.{ (set: $vampire_enrichment_score to it+2) }](elseif: $asked_list contains "escape-asked-once")[Astarion closes his eyes and shakes his head. $astarion Stop that.{ }](else:)[Astarion closes his eyes and shakes his head. $astarion There's no point in that.{ }]{ (set: $asked_list to it+"escape-asked-once") <script>updateEmotion("calm",2);</script> }](elseif: $just_said is "door")[$astarion If it were locked that would be one thing. $astarion But it's barred from the outside.{ (set: $asked_list to it+"escape-door") (set: $vampire_enrichment_score to it+2) <script>updateEmotion("calm",3);</script> }](elseif: $just_said is "crest")[$astarion That's the Halchair family crest. They were an old patriar family who died out a century ago. They specialized in jewelry making. $astarion The Ravenshade patriars ruined them and took over their businesses and properties. $astarion There are books about them upstairs.{ (set: $asked_list to it+"crest-sarcophagus") (set: $vampire_enrichment_score to it+3) <script>updateEmotion("calm",3);</script> }](elseif: $just_said is "treasure")[$astarion Is there? He looks over at the sarcophagus speculatively. $astarion Good to know.{ (set: $asked_list to it+"treasure-inside-sarcophagus") (set: $astarion_working_on_sarcophagus to true) (set: $astarion_action_count to 10) (set: $vampire_enrichment_score to it+5) <script>updateEmotion("happy",2);</script> <script>updateEmotion("calm",3);</script> }](elseif: $just_said is "open")[$astarion The crest does have 'puzzle' energy, doesn't it? $astarion It's broken, though. You can push most of the filigree like buttons, but one section doesn't work. $astarion I would need tools to get into it.(if: $astarion_hands is not "healed")[ (if: $sight > 2)[<span class="softEmph">`[Unlocked: Sight 3]`</span> He mutters under his breath: $astarion_name And working hands.](else:)[He mutters something to himself. <span class="italicEmph">//Requires Sight: 3//</span>]]{ (set: $asked_list to it+"open-sarcophagus") (set: $vampire_enrichment_score to it+2) <script>updateEmotion("calm",3);</script> }](elseif: $just_said is "secretpassage")[(set: $sequence to 9)(go-to: $currentPassage) ](elseif: $just_said is "sarcophagus")[(set: $sequence to 10)(go-to: $currentPassage) ] |tombReturn>[Continue]{ }](elseif: $sequence is 9)[$astarion I have been here for months. I have pushed and pulled on literally everything in this room. He sounds indignant. But then he sighs. $astarion But if you want to reprise something, fine. I may be able to find the time. //You can now ask Astarion to explore the room.// |returnSpeech>[Continue]{ (set: $asked_list to it+"escape-secret-passage") (set: $astarion_will_explore to true) (set: $vampire_enrichment_score to it+2) <script>updateEmotion("calm",3);</script> }](elseif: $sequence is 10)[$astarion Things could always be worse. $astarion I could be inside of it. $astarion What about it? |tombReturn>[Continue]{ (set: $asked_list to it+"sarcophagus-tomb") (set: $vampire_enrichment_score to it+3) <script>updateEmotion("calm",3);</script> }](elseif: $sequence is 11)[ ](elseif: $sequence is 12)[(if: $astarion_trust < 6)[$astarion No. Given how you've behaved lately, I'm not inclined to follow your whims. $astarion If you want to be indulged, be more likeable. |returnBase>[Continue]{ }](elseif: $astarion_explored is true)[$astarion No. I have a firm policy of not indulging you pointlessly more than once a day. |returnBase>[Continue]{ }](else:)[(if: $explore_count < 5)[$astarion Yes, you want to explore. $astarion How exciting. $astarion Where? ](elseif: $explore_count is 5)[$astarion I think you just like ordering me around the room. ](elseif: $explore_count > 5)[(set: $rand to (random: 1, 6))(if: $rand is 1)[$astarion I think you just like ordering me around the room. ](elseif: $rand is 2)[$astarion Yes. Let's. Because the room is definitely going to be different today. ](elseif: $rand is 3)[$astarion What a wonderful idea. I did so miss that other dusty corner. ](elseif: $rand is 4)[$astarion Shall we? ](elseif: $rand is 5)[$astarion Very well. Where? ](elseif: $rand is 6)[$astarion Where to, my ephemeral little dictator? ] ]<span id="niches" class="energy-link" data-content="Speak: Niches./Speech/1"></span> <span id="door" class="energy-link" data-content="Speak: Door./Speech/1"></span> <span id="sarcophagus" class="energy-link" data-content="Speak: Sarcophagus./Speech/1"></span> |returnBase>[Something else.]{ }]](elseif: $sequence is 13)[(if: $just_said is "niches")[Astarion moves over the funeral niches. He glances through them and around them. Then settles on the floor in front of them. |returnSpeech>[Continue] (set: $astarion_location to "niches") ](elseif: $just_said is "door")[Astarion moves over to the large stone door. He makes a cursory examination of it and the surrounding area before settling down beside ones of the columns. |returnSpeech>[Continue] (set: $astarion_location to "door") ](elseif: $just_said is "sarcophagus")[Astarion moves over the sarcophagus in the center of the room. (if: $sarcophagus_open is true)[He glances inside, as if checking that the mummified corpse is still where it ought to be.](else:)[He circles around it, examining the decorations, and vaguely shoves the lid, just in case it had magically come loose.] Then he sits down, leaning against it. |returnSpeech>[Continue] (set: $astarion_location to "sarcophagus") ]{ (set: $astarion_explored to true) (set: $vampire_enrichment_score to it+5) <script>updateEmotion("calm",5);</script> (set: $explore_count to it+1) <script>addAchieve("Point And Click");</script> }](elseif: $sequence is 14)[$astarion I indulged in some light grave robbing while you were away. $astarion Look at this pretty little thing. He raises his hand. A small ruby ring glitters on his finger. Then he gestures to activate it. A dazzling array of flashing, colored light springs from his hand. You find yourself briefly blinded. $astarion Isn't it delightful? Absolutely wasted on that stiff in the coffin. |return>[Continue]{ (if: not ($asked_list contains "sarcophagus-loot"))[(set: $asked_list to it+"sarcophagus-loot")] (set: $vampire_enrichment_score to it+5) <script>updateEmotion("calm",5);</script> <script>updateEmotion("happy",3);</script> }](elseif: $sequence is 15)[ ](elseif: $sequence is 16)[ ]{ (click: ?returnSpeech)[(set: $sequence to 0)(go-to: "Speech")] (click: ?cazadorAsk)[(set: $sequence to 4)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?cazadorReturn)[(if: $done_with_cazador is true)[(set: $sequence to 0)](else:)[(set: $sequence to 4)](go-to: $currentPassage)] (click: ?tombAsk)[(set: $sequence to 7)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?tombReturn)[(set: $sequence to 7)(go-to: $currentPassage)] (click: ?lootAsk)[(set: $sequence to 14)(display: "reduce energy interaction")(go-to: $currentPassage)] (click: ?storyAsk)[(set: $sequence to 0)(set: $basePassage to $currentPassage)(display: "reduce energy interaction")(go-to: "Speech Story")] }(if: $fuck_off_count < 2)[Astarion flinches away from the sudden contact. $astarion Warn me before doing that. $astarion I had no idea you were there. |returnTouch>[Continue]{ (set: $calm_value to 0) (set: $curious_value to 0) (set: $happy_value to 0) (set: $fuck_off_count to it+1) (set: $fuck_off_forgiveness to 5) }](elseif: $fuck_off_count is 2)[Astarion flinches away from the sudden contact and snarls at you. $astarion WARN me before doing that. |returnTouch>[Continue]{ (display: "set mood tense") (set: $fuck_off_count to it+1) (set: $fuck_off_forgiveness to 5) }](elseif: $fuck_off_count is 3)[$astarion_name Get the FUCK away from me. You feel a rush of movement as you're hurled away. Up. Out of the room. Out of the dream. |forestEnd>[Continue] ]{ (click: ?returnTouch)[(set: $sequence to 0)(go-to: "Touch")] }(if: $touch_warning is 0)[$astarion Stop that. (display: "Overstep Reason") |returnTouch>[Continue] { (set: $touch_warning to 1) }](elseif: $touch_warning is 1)[$astarion Stop that. (display: "Overstep Reason") |returnTouch>[Continue] { (set: $touch_warning to 2) }](elseif: $touch_warning is 2)[$astarion I recall telling you to stop that. (display: "Overstep Reason") |returnTouch>[Continue] { (set: $touch_warning to 3) }](elseif: $fuck_off_count is 0)[Astarion smiles in a way that is not happy, but bares his fangs. $astarion Stop. Doing. That. |returnTouch>[Continue]{ (set: $curious_value to 0) (set: $calm_value to 0) (set: $happy_value to 0) (set: $fuck_off_count to it+1) (set: $fuck_off_forgiveness to 5) }](elseif: $fuck_off_count is 1)[Astarion smiles in a way that is not happy, but bares his fangs. $astarion If you keep getting handsy we're going to have a problem. |returnTouch>[Continue]{ (set: $curious_value to 0) (set: $calm_value to 0) (set: $happy_value to 0) (set: $fuck_off_count to it+1) (set: $fuck_off_forgiveness to 5) }](elseif: $fuck_off_count is 2)[A growling noise comes from low in Astarion's throat. $astarion Last warning. Keep your ephemeral fingers to yourself. |returnTouch>[Continue]{ (display: "set mood tense") (set: $fuck_off_count to it+1) (set: $fuck_off_forgiveness to 5) }](elseif: $fuck_off_count is 3)[$astarion_name Get the FUCK away from me. You feel a rush of movement as you're hurled away. Up. Out of the room. Out of the dream. |forestEnd>[Continue] ]{ (click: ?returnTouch)[(set: $sequence to 0)(go-to: "Touch")] }(if: $sequence is 0)[You are standing in a long stone hallway. The door behind you is sealed with a heavy iron bar.(if: $stone_door_latched is false)[ The latches around the bar have been undone.](if: $godey_state is "paranoid")[ A skeleton in armor is stalking up and down the hall.(set: $godey_known to true)](elseif: $godey_state is "dead")[ There's a pile of bones and armor on the floor.] (if: $godey_state is "paranoid")[|skeleton>[Examine skeleton.] ](if: $tried_hallway_alone is not true)[|next>[Go down the hall.] ](if: $tried_unbar is not true)[|skip>[Unbar the door.] ](elseif: $stone_door_latched is true)[<span id="whisper" class="energy-link" data-content="Unlatch door./Touch/3/3/1"></span> ](if: $class is "rogue" and $stone_door_oiled is false)[|howOpen>[`[ROGUE]` Figure out how it opens.] ]|returnTomb>[Go back inside.] ](elseif: $sequence is 1)[You get maybe two meters away from the crypt door, and then your vision starts to blur. The world around you begins to feel murky and indistinct. Watery. You feel like if you wandered too far into it, you'd get lost. Or drown. You back up, returning to the stone door. The feeling fades. It seems you can't wander too far from the dreamer. |return>[Continue]{ (set: $tried_hallway_alone to true) }](elseif: $sequence is 2)[The bar is huge, spanning the entire double door. It's made of heavy, dark wood. There is no way you'll be able to move it. Not as you are right now. But it is latched in place by iron fastenings. With enough Touch you might open those. <span id="whisper" class="energy-link" data-content="Unlatch door./Touch/3/3/1"></span> |return>[Something else.]{ (set: $tried_unbar to true) }](elseif: $sequence is 3)[(if: $godey_state is "paranoid")[With some effort you undo the iron latches fastening the heavy bar in place. The skeleton notices this on his next pass. (if: $godey_latch_count is 0)[He mutters irritably. ](elseif: $godey_latch_count is 1)[He curses intensely. ](elseif: $godey_latch_count is 2)[He does an angry little clattering dance of frustration. ](elseif: $godey_latch_count is 3)[He starts cursing and shouting and railing about how he will find haunted thumbscrews that work on ghosts. ]He closes the latches, undoing all your work.(if: $godey_latch_count is 3)[ Then he stomps off down the hall in a frustrated snit.{ (set: $godey_state to "passive") (set: $godey_tantrum to it+1) (if: $active_event is "empty")[ (set: $enrichment_list to it+"godey tantrum") (set: $vampire_enrichment_score to it+8) (if: $godey_tantrum_heard is not true)[ (set: $godey_tantrum_heard to true) (set: $active_event to "astarion godey response") (set: $event_is_stale to false) <script>updateEmotion("happy",10);</script>] (else:)[ <script>updateEmotion("happy",5);</script> ] ] }] |return>[Continue]{ (set: $godey_latch_count to it+1) }](else:)[With some effort you undo the iron latches fastening the heavy bar in place. They hang loose now. Obviously undone. |return>[Continue]{ (set: $stone_door_latched to false) }]](elseif: $sequence is 4)[The good news is that the frame and the hinges of this door are intact. So it is openable. The bad news is that they are extremely rusty. So it would be hard work opening the door, and it would probably make an awful, creaking racket. The other bad news is the heavy wooden bar sealing the door closed. But one impossible problem at a time. (if: $inventory_oil is true)[<span id="oil" class="energy-link" data-content="Oil hinges./Touch/3/9/3"></span>](else:)[|gray3>[Oil hinges.] (click: ?gray3)[//You have nothing that could do that.//]] |return>[Continue] ](elseif: $sequence is 5)[A skeleton in rusty metal armor stalks up and down the hall. Sometimes he stops in front of the stone, tomb door and peers suspiciously at the latches. He mutters to himself about naughty children. (if: $class is "fighter")[<span id="hitHard" class="energy-link" data-content="[FIGHTER] Hit him./Touch/6/+1/3"></span> ](elseif: $class is "monk")[<span id="hitHard" class="energy-link" data-content="[MONK] Hit him./Touch/6/+1/3"></span> ](elseif: $class is "barbarian")[<span id="hitHard" class="energy-link" data-content="[BARBARIAN] Hit him./Touch/6/+1/3"></span> ](else:)[<span id="hit" class="energy-link" data-content="Hit him./Touch/6/+1/3"></span> ]<span id="steal" class="energy-link" data-content="Steal from him./Touch/5/+1/0"></span> <span id="push" class="energy-link" data-content="Push him./Touch/3"></span> |return>[Something else.]{ }](elseif: $sequence is 6)[(if: $just_said is "push")[You shove the skeleton as hard as you can. He's taken completely by surprise, teetering and almost falling. He catches himself clankingly against the wall. |next>[Continue] ](elseif: $just_said is "hitHard")[You punch the skeleton as hard as you can. The only un-armored part is the face, so you aim for that. You snap his lower jaw clean off. |next>[Continue] ](elseif: $just_said is "hit")[You punch the skeleton as hard as you can. He's armored, and made of bone, so you don't do much damage. You do surprise him, though. |next>[Continue] ](elseif: $just_said is "steal")[There are two objects hanging off of the skeleton's belt. A pair of pliers and a flask of oil. You could grab one, but he would surely notice and stop you getting the other. <span id="pliers" class="energy-link" data-content="Grab the pliers./Touch/5/10/1"></span> <span id="oil" class="energy-link" data-content="Grab the oil./Touch/5/10/1"></span> (if: $class is "rogue")[<span id="both" class="energy-link" data-content="[ROGUE] Steal both./Touch/5/10/1"></span> ]|prev>[Something else.] ](elseif: $just_said is "kill")[You yank the skeleton's helmet off and use it to bludgeon his skull into bonemeal. That was extremely satisfying. |next>[Loot the corpse.]{ (set: $godey_state to "dead") }]](elseif: $sequence is 7)[(if: $just_said is "push" or $just_said is "hit")[$godey Haunted, is it? $godey Go away, ghostie. Don't bother Godey. $godey Go bother the little one in the cell. He screams nicely. |next>[Continue]{ (set: $godey_state to "passive") }](elseif: $just_said is "hitHard")[The skeleton tries to speak, but it comes out garbled and disjointed. He staggers away, down the hall. You don't think he'll be back anytime soon. |return>[Continue]{ (set: $godey_state to "afraid") <script>addAchieve("Beat Up Godey");</script> }](elseif: $just_said is "kill")[The sword and armor are tragically too heavy for you to carry. But you find a pair of pliers and a flask of oil on the body. You can manage those. <span class="emph">//Took pliers.//</span> <span class="emph">//Took oil.//</span> |return>[Continue]{ (set: $inventory_oil to true) (set: $inventory_pliers to true) }]](elseif: $sequence is 8)[(if: $just_said is "push")[$godey And stop your fiddling with the latch. $godey Or Godey will have to come back. $godey Trouble enough with the dead things upstairs. The skeleton walks off down the hall. |return>[Continue]{ }]](elseif: $sequence is 9)[It's an awkward, splashy job and you need to use all of the oil in the flask. But now the door should open quietly. If it ever opens. |return>[Continue]{ (set: $stone_door_oiled to true) (set: $inventory_oil to false) }](elseif: $sequence is 10)[You grab the (if: $just_said is "pliers")[pliers](elseif: $just_said is "oil")[oil](elseif: $just_said is "both")[pliers and the oil] away from the skeleton. $godey Ach! Haunted. $godey Naughty ghosties. Don't you trouble Godey. I get enough trouble from the dead with flesh. He retreats down the hall, away from you. You don't think he'll be back anytime soon. (if: $just_said is "pliers")[<span class="emph">//Took pliers.//</span>(set: $inventory_pliers to true) ](elseif: $just_said is "oil")[<span class="emph">//Took oil.//</span> (set: $inventory_oil to true) ](elseif: $just_said is "both")[<span class="emph">//Took pliers.//</span>(set: $inventory_pliers to true) <span class="emph">//Took oil.//</span>(set: $inventory_oil to true) ] |return>[Continue]{ (set: $godey_state to "stolen from") }](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: ?howOpen)[(set: $sequence to 4)(go-to: $currentPassage)] (click: ?skeleton)[(set: $sequence to 5)(go-to: $currentPassage)] (set: $been_to_hallway to true) <script> changeBackground(""); </script> }{(if: $overstep_reason is "frightened")[//Astarion doesn't trust you enough to do this while frightened.// ](elseif: $overstep_reason is "tense")[//Astarion doesn't trust you enough to do this while tense.// ](elseif: $overstep_reason is "low trust")[//Astarion doesn't trust you enough.// ](elseif: $overstep_reason is "low touch")[//How much Astarion trusts you and how comfortable he is with touch are differet metrics. You have one, but not the other.// ]}{ (set: $health to $health + $health_change) (if: $health > $maxHealth)[(set: $health to $maxHealth)] (if: $health < 0)[(set: $health to 0)] (if: $health < 1)[(set: $die_next_screen to true)] (if: $health_change > 0)[<script>playAudio("aa_clue");</script>](else:)[<script>playAudio("aa_damage");</script>] }(if: $sequence is 0)[The mouse has gray-brown fur. It is occupied with investigating a small pile of rubble. <span id="scare" class="energy-link" data-content="Scare mouse towards Astarion./Touch/0/1"></span> |findAstarion>[Tell Astarion about it.] (if: $class is "druid")[<span id="druid" class="energy-link" data-content="[DRUID] Animal Handle mouse towards Astarion./Touch/0/2"></span> ](if: $class is "ranger")[<span id="ranger" class="energy-link" data-content="[RANGER] Animal Handle mouse towards Astarion./Touch/0/2"></span> ](if: $class is "monk")[<span id="monk" class="energy-link" data-content="[MONK] Kill mouse./Touch/2/3"></span> ](elseif: $class is "fighter")[<span id="monk" class="energy-link" data-content="[FIGHTER] Kill mouse./Touch/3/3"></span> ](elseif: $class is "barbarian")[<span id="monk" class="energy-link" data-content="[BARBARIAN] Kill mouse./Touch/3/3"></span> ](elseif: $class is "paladin")[<span id="monk" class="energy-link" data-content="[PALADIN] Kill mouse./Touch/3/3"></span> ](else:)[<span id="kill" class="energy-link" data-content="Kill mouse./Touch/6/4"></span> ]|returnBase>[Something else.]{ }](elseif: $sequence is 1)[You try to make noise to scare the mouse towards where Astarion is. The mouse responds to the disturbance by vanishing into a crack in the wall. Well. So much for that. |returnBase>[Continue]{ (set: $active_event to "empty") (set: $mouse_location to "") }](elseif: $sequence is 2)[You make gentle, coaxing, mouse sounds. You build a rapport with the mouse. You lead your new mouse companion over to the hungry vampire. |eatMouse>[Continue]{ }](elseif: $sequence is 3)[You can't summon much force, but it's a mouse. And you're good at killing things. There's only a little blood, but enough to bring the vampire over. |eatMouse>[Continue]{ }](elseif: $sequence is 4)[The hard part would have been sneaking up on the mouse. Fortunately, you're invisible. And intangible, up until you decide not to be. There's only a little blood, but enough to bring the vampire over. |eatMouse>[Continue]{ }](elseif: $sequence is 5)[Astarion's entire body tenses like a spring coiling. His eyes dilate. $astarion Where? (if: $mouse_location is "niches")[<span id="one" class="energy-link" data-content="Speak: Niches./Speech/2"></span> <span id="two" class="energy-link" data-content="Speak: Left niche./Speech/3"></span> <span id="three" class="energy-link" data-content="Speak: Below leftmost niche./Speech/4"></span> ](else:)[<span id="one" class="energy-link" data-content="Speak: Sarcophagus./Speech/2"></span> <span id="two" class="energy-link" data-content="Speak: Sarcophagus corner./Speech/3"></span> <span id="three" class="energy-link" data-content="Speak: Sarcophagus leftmost corner./Speech/4"></span> ]|next>[Say nothing.]{ (set: $hunt_score to 0) (set: $just_said to "") (set: $astarion_interacted to true) }](elseif: $sequence is 6)[(if: $just_said is "")[When you don't respond after a few moments, Astarion gets up and starts hunting around.](else:)[Astarion gets up and creeps in that direction.] He moves slowly and is not as coordinated as he usually is. The problem with being desperately hungry is it makes you worse at the work you must do to satisfy hunger. |next>[Continue]{ (if: $just_said is "")[(set: $hunt_score to it+0) ](elseif: $just_said is "one")[(set: $hunt_score to it+3) ](elseif: $just_said is "two")[(set: $hunt_score to it+5) ](elseif: $just_said is "three")[(set: $hunt_score to it+8)] }](elseif: $sequence is 7)[(if: $just_said is "" or $just_said is "one")[It takes Astarion a few moments to spot the gray mouse in the gray dust. By the time he does, it's stood up on its hind paws. Suspicious and alert.](elseif: $just_said is "two" or $just_said is "three")[Astarion finds the mouse quickly. It's not aware of him yet.] <span id="push" class="energy-link" data-content="Push the mouse towards him./Touch/3"></span> <span id="pin" class="energy-link" data-content="Push the mouse towards the ground./Touch/3"></span> |next>[Just watch.]{ (set: $just_said to "") }](elseif: $sequence is 8)[(if: $just_said is "push")[Interfering in this way ends up doing more harm than good. It alerts the mouse to danger before Astarion was ready to snatch at it.(set: $hunt_score to it-3) (if: $hunt_score > 4)[But he manages to grab it anyway.](else:)[The mouse slips through his fingers and away into a crack in the wall.] ](elseif: $just_said is "pin")[You push the mouse down, pinning it to the ground.(set: $hunt_score to it+5) You can only do it for a moment, but that's enough. Astarion snatches it up. ](elseif: $hunt_score > 4)[Astarion moves slowly until suddenly he's darting quick. He snatches up the mouse before it notices him. ](else:)[He almost gets it. He's very quick. But not as coordinated as he usually is. And his hands are hurt. The mouse slips through his fingers and away into a crack in the wall. ] (if: $hunt_score > 4)[|skip>[Continue]](else:)[|next>[Continue]]{ }](elseif: $sequence is 9)[$astarion Damn. He sits in the dust for a little while. $astarion Damn it. Eventually he drags himself back to the corner, behind the column by the door. |returnTomb>[Continue]{ (set: $astarion_location to "door") (set: $astarion_refuse_interaction to true) (set: $astarion_mood to "bored") (set: $curious_value to 0) (set: $calm_value to 0) (set: $happy_value to 0) (set: $active_event to "empty") (set: $mouse_location to "") }](elseif: $sequence is 10)[Astarion snatches up the mouse and pops the entire thing into his mouth. There is a quiet crunching noise. And after a few seconds, the wounds on his hands start to heal. |findAstarion>[Continue] { (set: $astarion_interacted to true) (set: $astarion_hands to "healed") (set: $astarion_day_activity to "fur") <script>updateEmotion("happy",10);</script> (set: $astarion_location to $mouse_location) (set: $active_event to "empty") (set: $mouse_location to "") <script>updateTrust(2);</script> }](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: ?eatMouse)[(set: $sequence to 10)(go-to: $currentPassage)] }(if: $sequence is 0)[(if: $sight > 3)[It's made of shadow, like you are. A darker shadow among shadows. But you can track it easily by its mouth full of moon-white teeth. It also has long, black, twig-like fingers that drift searchingly through the air. It's moving like it can't see, but is feeling through the space with its fingers and teeth. Right now it's searching around the $teeth_location.(if: $teeth_hit_count > 0)[ It's looking for you. It has the taste of you.] ](elseif: $sight > 1)[You can vaguely make it out. It's mostly teeth. It's moving slowly. Mouth opening and closing. Like it's tasting the air. Like it can't see, but it's feeling around for something to dig its teeth into. Right now it's searching around the $teeth_location.(if: $teeth_hit_count > 0)[ It's looking for you. It has the taste of you.] ](else:)[That's kind of the most awful thing. You can't really see it. You can't tell exactly where it is. You just know that there's something dreadful. And it's somewhere in this room. ] (if: $astarion_nightmare_told is "")[|findAstarion>[Warn Astarion.] ](if: $sight > 1)[<span id="push" class="energy-link" data-content="Push it./Touch/3/2"></span> <span id="hit" class="energy-link" data-content="Hit it./Touch/6/3"></span> (if: $class is "paladin")[<span id="smite" class="energy-link" data-content="[PALADIN] Smite it./Touch/3/5"></span> ]|next>[Talk to it.] ]|returnTomb>[Get away.]{ }](elseif: $sequence is 1)[There is a voice like spiders skittering through your mind. $sigh Not now. $sigh Hunting. $sigh Perhaps later. |return>[Continue]{ }](elseif: $sequence is 2)[(if: $teeth_hit_count > 0)[You try to push the teeth away. It turns towards you with hungry excitement. |nightmareAttack>[Continue]{ (set: $teeth_hit_count to 2) }](else:)[You try to push the teeth away. Out of the room. To another part of the tomb. They snap closed around your arm. <span class='energy'>//Lost 3 Energy//</span>(set: $energy_change to -3)(display: "update energy silent") |stagger>[Continue]{ }]](elseif: $sequence is 3)[You lash out at the teeth. You hit something. There's something there that can be hurt. Then it turns its attention towards you. |nightmareAttack>[Continue]{ (set: $teeth_hit_count to it+5) }](elseif: $sequence is 4)[ ](elseif: $sequence is 5)[You haven't been able to use any magic in this place. But your powers are the kind that rise when they are needed. There is a burst of radiance in the blackness. Astarion looks up, as if he thought he'd just noticed something, but isn't sure. (if: $sight > 3)[The long, twig-like fingers twitch. ]The teeth clack together. They turn towards you. |next>[Continue]{ (set: $teeth_hit_count to it+10) }](elseif: $sequence is 6)[$sigh Ah. You are that sort. $sigh What a pretty candle you are. $sigh How much darker you make my shadows seem. |next>[Continue]{ }](elseif: $sequence is 7)[$sigh But you are not asking for conversation. $sigh Very well. $sigh My turn. |nightmareAttack>[Continue]{ }](elseif: $sequence is 8)[{ (set: $player_hurt to 10-$energy) (if: $player_hurt > 5)[(set: $player_hurt to 5)] }The teeth are very sharp. <span class='energy'>//Lost 10 Energy//</span>(set: $energy_change to -10)(display: "update energy silent") |next>[Continue]{ }](elseif: $sequence is 9)[You stagger back. You can hear the nightmare chewing on the parts of you it ripped off. |timePasses>[Collapse]{ }](elseif: $sequence is 10)[You pull away. You hear the teeth make a contemplative humming noise. As if it had just tasted something it liked. It starts feeling more deliberately through the space where it encountered you. |returnTomb>[Continue]{ (set: $teeth_hit_count to it+1) }](elseif: $sequence is 11)[Astarion is squinting at the space where you are. He actually speaks before you do. $astarion What's wrong? You're upset. <span id="move" class="energy-link" data-content="Speak: Move./Speech/2/19"></span> <span id="push" class="energy-link" data-content="Push him to a different spot./Touch/3/21"></span> <span id="bastellus" class="energy-link" data-content="Speak: Bastellus./Speech/2/12"></span> <span id="monster" class="energy-link" data-content="Speak: Monster./Speech/2/13"></span> <span id="invisible" class="energy-link" data-content="Speak: Invisible monster./Speech/3/13"></span> (if: $touch is 0)[<span id="annoy" class="energy-link" data-content="Annoy him into moving with incessant whispers./Speech/1/21/5"></span>](else:)[<span id="annoy" class="energy-link" data-content="Annoy him into moving with incessant tapping./Touch/1/21/5"></span>]{ (set: $astarion_interacted to true) (set: $astarion_nightmare_told to "nothing") }](elseif: $sequence is 12)[He frowns at the air. $astarion Did you just sneeze? <span id="monster" class="energy-link" data-content="Speak: Monster./Speech/2/13"></span> <span id="invisible" class="energy-link" data-content="Speak: Invisible monster./Speech/3/13"></span>{ }](elseif: $sequence is 13)[Astarion glances warily around the room. $astarion Where? (if: $sight > 1)[(if: $teeth_location is "sarcophagus")[<span id="sarcophagus" class="energy-link" data-content="Speak: Sarcophagus./Speech/2"></span>](elseif: $teeth_location is "door")[<span id="door" class="energy-link" data-content="Speak: Door./Speech/2"></span>](else:)[<span id="niches" class="energy-link" data-content="Speak: Niches./Speech/2"></span>] ]<span id="dunno" class="energy-link" data-content="Speak: Don't know./Speech/2/13"></span> |next>[Say nothing.]{ (set: $bastellus_info to $just_said) (set: $astarion_nightmare_told to $just_said) (set: $just_said to "nothing") (display: "set mood frightened") }](elseif: $sequence is 14)[(if: $just_said is "nothing")[$astarion Amazing. $astarion I love ominous warnings. |astarionHides>[Continue]{ }](elseif: $just_said is "dunno")[$astarion Well, that's terrifying and unhelpful. $astarion What am I supposed to do? <span id="hide" class="energy-link" data-content="Speak: Hide./Speech/2"></span> <span id="low" class="energy-link" data-content="Speak: Stay low./Speech/2"></span> |next>[Say nothing.]{ (set: $just_said to "nothing") (display: "set mood frightened") }](elseif: $bastellus_info is "monster")[$astarion So you can see it? $astarion Because I can't. |astarionMoves>[Continue]{ }](elseif: $bastellus_info is "invisible")[$astarion Fine. Invisible monster by the $teeth_location. $astarion Just. Wonderful. |astarionMoves>[Continue]{ }]](elseif: $sequence is 15)[(if: $just_said is "hide" or $just_said is "low")[$astarion Fine. I can do that. |astarionHides>[Continue]{ (set: $astarion_response to "hiding") }](elseif: $just_said is "nothing")[Astarion waits for you to respond, and when you don't he hisses. $astarion Some help you are. |astarionFinal>[Continue]{ (set: $astarion_response to "hiding") }]](elseif: $sequence is 16)[(if: $astarion_trust < 10)[$astarion If this is some kind of prank I'm going to... He trails off. Not coming up with any effective threats. $astarion Be very put out. |astarionFinal>[Continue]{ }](else:)[You think the conversation's over. But then Astarion asks: $astarion Are you... $astarion Can it hurt you? <span id="yes" class="energy-link" data-content="Speak: Yes./Speech/2"></span> <span id="no" class="energy-link" data-content="Speak: No./Speech/2"></span> <span id="dunno" class="energy-link" data-content="Speak: Don't know./Speech/3"></span> |next>[Say nothing.]{ (set: $just_said to "nothing") }]](elseif: $sequence is 17)[(if: $just_said is "no")[$astarion All right. $astarion Good. |astarionFinal>[Continue]{ (display: "set mood tense") }](elseif: $just_said is "yes")[$astarion Oh. There is a pause. $astarion Well. $astarion Be careful. |astarionFinal>[Continue]{ }](elseif: $just_said is "dunno")[$astarion If you aren't sure whether a mysterious thing in a tomb can hurt you, just go ahead and assume it can. There is a pause. $astarion Be careful. |astarionFinal>[Continue]{ }](elseif: $just_said is "nothing")[$astarion I presume from your ominous silence that the answer is 'yes'. $astarion Well. $astarion Be careful. |astarionFinal>[Continue]{ }]](elseif: $sequence is 18)[(if: $astarion_response is "hiding")[Astarion moves to hide entirely behind the column by the door. |returnTomb>[Continue] { (set: $astarion_location to "door") (set: $astarion_hiding to true) }](elseif: $astarion_response is "moving")[(display: "cycle astarion location")Astarion creeps carefully over to the $astarion_location, putting as much distance as he can between himself and the $teeth_location. |returnTomb>[Continue]{ }]](elseif: $sequence is 19)[Astarion frowns suspiciously. $astarion Why? <span id="please" class="energy-link" data-content="Speak: Please./Speech/2/20"></span> <span id="bastellus" class="energy-link" data-content="Speak: Bastellus./Speech/2/12"></span> <span id="monster" class="energy-link" data-content="Speak: Monster./Speech/2/13"></span> <span id="justMove" class="energy-link" data-content="Speak: Just move./Speech/3/20"></span> <span id="invisible" class="energy-link" data-content="Speak: Invisible monster./Speech/3/13"></span>{ }](elseif: $sequence is 20)[(if: $just_said is "please" and $astarion_trust > 7)[(set: $sequence to 21)(set: $just_said to "move")(go-to: $currentPassage) ](elseif: $just_said is "justMove" and $astarion_trust > 10)[(set: $sequence to 21)(set: $just_said to "move")(go-to: $currentPassage) ](else:)[$astarion No. $astarion What's going on? <span id="bastellus" class="energy-link" data-content="Speak: Bastellus./Speech/2/12"></span> <span id="monster" class="energy-link" data-content="Speak: Monster./Speech/2/13"></span> <span id="invisible" class="energy-link" data-content="Speak: Invisible monster./Speech/3/13"></span>{ }]](elseif: $sequence is 21)[(if: $just_said is "annoy")[(display: "cycle astarion location")You make an absolute nuance of yourself and harass Astarion until he stalks away, over to the $astarion_location. Hopefully that helped? |returnTomb>[Continue]{ <script>updateTrust(-2);</script> (display: "set mood tense") (set: $astarion_refuse_interaction to true) }](elseif: $just_said is "push")[(if: $touch_trust < 2)[Astarion does not appreciate being pushed. You have not cultivated the sort of relationship where you can just click on him and tell him to go places. But you're insistent about it so eventually he does move.<script>updateTrust(-1);</script>(display: "set mood tense") ](else:)[$astarion You're very insistent today. $astarion Fine. Where do you want me to go? ](if: $sight > 1)[//The nightmare is floating near the $teeth_location.//](else:)[//You can't tell where the nightmare is.//] |niches>[Push Astarion towards the niches.] |door>[Push Astarion towards the door.] |sarcophagus>[Push Astarion towards the sarcophagus.]{ }](elseif: $just_said is "move")[Astarion seems like he's about to push the issue, but then he sighs. $astarion Fine. Where do you want me to go? (if: $sight > 1)[//The nightmare is floating near the $teeth_location.//](else:)[//You can't tell where the nightmare is.//] <span id="niches" class="energy-link" data-content="Speak: Niches./Speech/2"></span> <span id="door" class="energy-link" data-content="Speak: Door./Speech/2"></span> <span id="sarcophagus" class="energy-link" data-content="Speak: Sarcophagus./Speech/2"></span>{ }]{ (click: ?niches)[(set: $sequence to it+1)(set: $just_said to "niches")(go-to: $currentPassage)] (click: ?door)[(set: $sequence to it+1)(set: $just_said to "door")(go-to: $currentPassage)] (click: ?sarcophagus)[(set: $sequence to it+1)(set: $just_said to "sarcophagus")(go-to: $currentPassage)] }](elseif: $sequence is 22)[Astarion moves over to the $just_said. |returnTomb>[Continue]{ (set: $astarion_location to $just_said) }](elseif: $sequence is 23)[ ](elseif: $sequence is 24)[ ](elseif: $sequence is 25)[ ]{ (click: ?nightmareAttack)[(set: $sequence to 8)(go-to: $currentPassage)] (click: ?stagger)[(set: $sequence to 10)(go-to: $currentPassage)] (click: ?astarionMoves)[(set: $sequence to 16)(set: $astarion_response to "moving")(go-to: $currentPassage)] (click: ?astarionHides)[(set: $sequence to 16)(set: $astarion_response to "hiding")(go-to: $currentPassage)] (click: ?astarionFinal)[(set: $sequence to 18)(go-to: $currentPassage)] }{ (if: $astarion_location is "sarcophagus")[(set: $astarion_location to "door")] (elseif: $astarion_location is "door")[(set: $astarion_location to "niches")] (elseif: $astarion_location is "niches")[(set: $astarion_location to "sarcophagus")] }(if: $sequence is 0)[$astarion Where are you? Are you there? (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap on stone./Touch/1"></span> ](elseif: $speech > 0)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ]<span id="yes" class="energy-link" data-content="Speak: Yes./Speech/2"></span> <span id="here" class="energy-link" data-content="Speak: I'm here./Speech/3"></span> <span id="touch" class="energy-link" data-content="Touch his hand./Touch/1"></span> |next>[Do nothing.]{ (set: $just_said to "nothing") (set: $active_event to "empty") }](elseif: $sequence is 1)[(if: $just_said is "nothing")[Astarion keeps looking for you for a while. When you don't appear, he curls in on himself. (if: $sight > 2)[<span class="softEmph">`[Unlocked: Sight 3]`</span> He mutters to himself under his breath-- $astarion Stop being pathetic.](else:)[He mutters something harsh under his breath. <span class="italicEmph">//Requires Sight: 3//</span>] |returnTomb>[Continue]{ (set: $astarion_refuse_interaction to true) <script>updateTrust(-2);</script> }](else:)[$astarion You're there. $astarion Good. $astarion Don't leave. $astarion Please don't leave. (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap on stone./Touch/1"></span> ](elseif: $speech > 0)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ]<span id="wont" class="energy-link" data-content="Speak: Won`t./Speech/2"></span> <span id="cant" class="energy-link" data-content="Speak: Can`t./Speech/2"></span> <span id="sleep" class="energy-link" data-content="Speak: Need sleep./Speech/3"></span> <span id="touch" class="energy-link" data-content="Touch his hand./Touch/1"></span> |next>[Do nothing.]{ (set: $just_said to "nothing") <script>updateTrust(1);</script> (set: $astarion_interacted to true) }]](elseif: $sequence is 2)[(if: $just_said is "cant")[$astarion Can't? $astarion I suppose I should have guessed that. $astarion Who would stay here if they could leave? <span id="cant" class="energy-link" data-content="Continue/Speech/0"></span>{ }](elseif: $just_said is "sleep")[$astarion Sleep. Is that what you're doing when you're gone? $astarion Does a $player_term need sleep? $astarion Fine. $astarion Just come back. |refresh>[Continue]{ (set: $just_said to "") <script>addAchieve("Ghosts Need Sleep");</script> }](else:)[$astarion I don't care if you're real. $astarion I don't care if I'm mad. $astarion Don't leave me. (if: $speech is 0 and $touch > 0)[<span id="tap" class="energy-link" data-content="Tap on stone./Touch/1"></span> ](elseif: $speech > 0)[<span id="whisper" class="energy-link" data-content="Whisper./Speech/1"></span> ](if: $class is "bard")[<span id="whistle" class="energy-link" data-content="[BARD] Whistle a song./Speech/3"></span> ]<span id="touch" class="energy-link" data-content="Hold his hand until you can`t anymore./Touch/1/+1/all"></span> <span id="hug" class="energy-link" data-content="Hug him./Touch/4"></span> <span id="sorry" class="energy-link" data-content="Speak: Sorry I`m incorporeal./Speech/4"></span>{ (if: $just_said is not "nothing")[<script>updateTrust(1);</script>] }]](elseif: $sequence is 3)[(if: $just_said is "cant")[$astarion At least there's company. |findAstarion>[Continue]{ }](elseif: $just_said is "whistle")[Astarion leans back against the wall, closes his eyes, and listens to you. |findAstarion>[Continue]{ <script>updateTrust(2);</script> <script>updateEmotion("calm",10);</script> <script>updateEmotion("happy",5);</script> }](elseif: $just_said is "touch")[(if: $touch > 1)[You sit in the dark holding hands until you run out of energy and drift into nothingness.](else:)[You sit in the dark touching the back of his hand until you run out of energy and drift into nothingness.] |findAstarion>[Continue]{ <script>updateTrust(2);</script> <script>updateEmotion("calm",10);</script> }](elseif: $just_said is "sorry")[Astarion snorts. $astarion It's always amusing when you throw out ten copper words between the yeses and noes. $astarion What a thing to apologize for. |findAstarion>[Continue]{ <script>updateTrust(1);</script> <script>updateEmotion("calm",10);</script> }](elseif: $just_said is "hug")[(if: $successful_hug is 0)[Astarion gasps and tenses.<script>addAchieve("Get Safe And Cared For Idiot");</script> That seems like a bad sign, so you start to draw back. But he reaches towards you. Through you. $astarion Hells. No. Don't stop. So you keep hugging him for as long as you can sustain contact. He's shaking a little.](elseif: $successful_hug is 1)[Astarion shudders. While you hold him, he makes a few noises like he's stopping himself from crying. Eventually he calms down.](else:)[Astarion's hands move like he's trying to figure out how to return the motion, but there's no clear way to do that.] |findAstarion>[Continue]{ (if: $touch_trust < 3)[(set: $touch_trust to 3)] <script>updateTrust(2);</script> (set: $successful_hug to it+1) <script>updateEmotion("happy",10);</script> }](else:)[$astarion Right. $astarion That's fine. $astarion That's enough. $astarion It's better than silence. |findAstarion>[Continue]{ <script>updateEmotion("calm",10);</script> }]](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)] }(if: $sequence is 0)[$astarion There you are. $astarion Hello. (if: $sight > 1)[<span class="softEmph">`[Unlocked: Sight 2]`</span> He sounds vaguely awkward. Possibly embarrassed?](else:)[There's nuance here beyond your perception. <span class="italicEmph">//Requires Sight: 2//</span>] |next>[Continue]{ (set: $astarion_interacted to true) (set: $active_event to "empty") (set: $vampire_enrichment_score to it+3) (set: $refused_name_count to 0) }](elseif: $sequence is 1)[$astarion I may have been a touch rude. $astarion And I realize I should ask. $astarion Do you have a name? |next>[Continue]{ }](elseif: $sequence is 2)[This expression of identity is effortless. It will take no energy.(if: $speech is 0)[ You can do it even though you no practice at Speech.] What do you tell him? <input type="text" id="playerNameInput" name="fname" value="Tav"> |sayName>[Use this name.] { (click: ?sayName)[ (set: $sequence to it+1) <script> var player_name = $("#playerNameInput").val(); seth("player_name",player_name); </script> (go-to: $currentPassage) ] }](elseif: $sequence is 3)[{ (set: $allow_name to false) (set: $companion_names_male to (a: "Gale", "Wyll")) (set: $companion_names_female to (a: "Lae'zel", "Karlach", "Shadowheart")) (set: $actor_names to (a: "Amelia", "Devora", "Jennifer", "Neil", "Tim", "Theo", "Samantha", "Emma", "Dave", "Tracy", "Matt")) (set: $generic_no_tadpole to (a: "Volo", "Alfira", "Jaheira", "Dammon", "Rolan", "Zevlor", "Barcus", "Mol", "Dame Aylin", "Aylin", "Isobel", "Aurelia", "Dalyria", "Sebastian", "Petras", "Leon", "Violet", "Yousen", "Blurg", "Emmeline", "Nine-Fingers", "Keene", "Nine-Fingers Keene", "Hope")) (set: $generic_nope to (a: "Haarlep", "Korrilla", "Ketheric", "Orin", "Gortash", "Sarevok", "Godey")) (set: $generic_weird to (a: "Withers", "Omeluum", "Orpheus")) (set: $god_names to (a: "Shar", "Mystra", "Lolth")) (set: $achievement_tav_names to (a: "Aldiirn", "Anastavia", "Ember", "Finch", "Francys", "Greygold", "Nawen", "Ria", "Staeve")) }(if: $companion_names_male contains $player_name)[You can't be $player_name. He's very busy right now. ](elseif: $companion_names_female contains $player_name)[You can't be $player_name. She's very busy right now. ](elseif: $generic_no_tadpole contains $player_name)[You can't be $player_name. They don't have a tadpole. ](elseif: $generic_nope contains $player_name)[Ha. Nope. ](elseif: $god_names contains $player_name)[Ambitious. No. ](elseif: $player_name is "Elminster")[You can't be $player_name. They don't have a tadpole. Also there's no cheese here. ](elseif: $player_name is "Halsin")[He would very much like to help. But unfortunately, he doesn't have a tadpole. You can't be Halsin. ](elseif: $player_name is "Scratch")[Scratch is a very, very good boy who does not have a tadpole and is also a dog. You can't be Scratch. ](elseif: $player_name is "Raphael")[Have fun reading Palmarosa, but that makes no sense in this context. You can't be Raphael. ](elseif: $player_name is "Minsc")[Boo says that's a bad idea. You can't be Minsc. ](elseif: $player_name is "Sceleritas Fel")[No. No, I'm not letting you do that. ](elseif: $player_name is "Mizora")[Ha! No. ](elseif: $player_name is "Sigh")[That's dark. I kind of like it. But it doesn't fit with the premise. You can't be Sigh. ](elseif: $player_name is "Astarion")[I think you may be confused. ](elseif: $player_name is "Drizzt")[That would be very exciting, but he doesn't have a tadpole. You can't be Drizzt. ](elseif: $player_name is "")[ ](elseif: $player_name is "")[ ](elseif: $player_name is "")[ ](elseif: $player_name is "Minthara")[This would be so out of character for her. You can't be Minthara.{ }](else:)[(if: $achievement_tav_names contains $player_name)[That's significant. ](elseif: $actor_names contains $player_name)[I thought I recognized your voice. ](elseif: $generic_weird contains $player_name)[Weird flex, but I can see it being possible.<script>addAchieve("I Guess You Could Conceivably Be Omeluum");</script> ](elseif: $player_name is "Boo")[...<script>addAchieve("I Guess You Could Conceivably Be Omeluum");</script> Well, if it makes you happy. ](elseif: $player_name is "Emperor" or $player_name is "The Emperor")[Sure, I guess.<script>addAchieve("I Guess You Could Conceivably Be Omeluum");</script> ](elseif: $player_name is "Pidge")[You just came up with that on the spot, didn't you?<script>addAchieve("I Guess You Could Conceivably Be Omeluum");</script> ](elseif: $player_name is "Chara")[The true name.<script>addAchieve("I Guess You Could Conceivably Be Omeluum");</script> ](elseif: $player_name is "Cazador")[That's going to have consequences. But I'll let you do it.<script>addAchieve("I Guess You Could Conceivably Be Omeluum");</script> ]You are naming yourself (print: $player_name).(set: $allow_name to true) Is that right?] (if: $allow_name is false)[|prev>[Try again.] ](else:)[|next>[Yes.] |prev>[No.] ]{ (if: $allow_name is false)[(set: $refused_name_count to it+1)] (if: $refused_name_count > 4)[<script>addAchieve("No You Can't Be Scratch");</script>] }](elseif: $sequence is 4)[(if: $player_name is "Cazador")[Astarion makes a strangled noise. Something hits you. Not something physical. A refusal. An implicit rejection. A convulsion of the mind you're in. You feel a rush of movement as you're hurled away. Up. Out of the room. Out of the dream. |forestEnd>[Continue]{ }](elseif: $achievement_tav_names contains $player_name and $astarion_trust > 9)[(if: $player_name is "Aldiirn")[$astarion <a href="https://www.tumblr.com/mistercrowbar/701999282759303168/where-in-the-web-is-mr-crowbar?source=share" target="_blank">You.</a> Astarion sounds a bit jangled. $astarion I killed you. And then hesitant. $astarion And you...forgave me? ](elseif: $player_name is "Anastavia")[$astarion There's a game. He says like he's just vaguely remembering it. $astarion Brandy for Gale. Blackstaff wine for Volo. Vinegar for Withers. $astarion <a href="https://archiveofourown.org/works/51061948/chapters/129009463" target="_blank">There's a story.</a> $astarion You and your games and your stories and your extremely stupid looking hat. He likes the hat, though. He enjoys making fun of it. ](elseif: $player_name is "Ember")[$astarion Rosewater and rosin. And something else. $astarion You whistler. $astarion <a href="https://www.tumblr.com/catsharky/731549538679209984/my-tavs-moral-compass-is-straight-and" target="_blank">You scavenger.</a> That last word is said with a kind of affect-less fondness that seems very out of place in this space. ](elseif: $player_name is "Finch")[$astarion Finch? $astarion Like the tiny bird? Astarion considers this uncertainly for a moment. $astarion That feels <a href="https://www.tumblr.com/everchased/738924530595217409/so-astarion-and-finch-which-one-of-them-watches?source=share" target="_blank">somehow inappripriate.</a> ](elseif: $player_name is "Francys")[$astarion Rings. $astarion Something about rings. $astarion <a href="https://archiveofourown.org/works/53200003/chapters/134616919" target="_blank">And sunlight.</a> ](elseif: $player_name is "Greygold")[$astarion Wait. Did you...? He continues incredulously, working through the oddity of it. $astarion You <a href="https://www.tumblr.com/jeeaark/741588536442208256/oh-noooooo-the-broken-little-star-lamp-my-heart?source=share" target="_blank">gave me a lamp.</a> A pause. And then with more certainty. $astarion And you make terrible jokes. ](elseif: $player_name is "Nawen")[Astarion tilts his head to the side. He looks faintly amused, but also as if he isn't certain why he feels that way. $astarion I rather feel that someone with a name like that <a href="https://ineed-to-sleep.tumblr.com/post/739171377900322816/collection-of-memes-with-mostly-my-tavastarion-to" target="_blank">must be a massive cunt.</a> ](elseif: $player_name is "Ria")[$astarion You're <a href="https://archiveofourown.org/works/52567867" target="_blank">the one with the music box.</a> He examines the shadows where you are, and then says, very hesitantly: $astarion My mirror? ](elseif: $player_name is "Staeve")[$astarion Steve?<script>addAchieve("Don't Forget Me");</script> He hesitates. $astarion No. Wait. That's not right, is it? $astarion <a href="https://www.tumblr.com/velnna/736707061297102848?source=share" target="_blank">Staeve.</a> The pronunciation is the same. But the word is said entirely differently. ]|next>[Continue]{ <script>updateTrust(2);</script> }](else:)[(if: $what_is_player is "ghost")[$astarion Well. $player_name. Welcome to the Szarr Palace. $astarion Though, I suppose you've been here a long time. $astarion So. Actually. Nevermind. $astarion Hello. ](else:)[$astarion Well. $player_name. Welcome to the Szarr Palace. I'm terribly sorry I can't be a better host. $astarion Though you're better off than most of the guests I bring home. He laughs like he just made a joke that isn't funny at all. ]|findAstarion>[Continue]{ }]](elseif: $sequence is 5)[He settles back and examines the space in the darkness where he thinks you are. As if he's caught the thread of something in his mind, and is trying to follow it to more memories. |findAstarion>[Continue]{ (set: $astarion_mood to "calm") }](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)] }(if: $sequence is 0)[You move over to the huge stone door. There's something new here. |next>[Examine it.]{ <script>addAchieve("Message From Another World");</script> (if: $touch is 0)[<script>addAchieve("I Only Need Words");</script>] (if: $speech is 0)[<script>addAchieve("I Don't Need Words");</script>] }](elseif: $sequence is 1)[... Oh. He needs to see this. |next>[Find Astarion.]{ }](elseif: $sequence is 2)[Finding him is easy. It always is, in such a small space. He notices you even before you do anything. That's becoming a pattern. $astarion You feel like you're in a bit of a state today. What's going on? <span id="door1" class="energy-link" data-content="Speak: Door./Speech/2"></span> <span id="door2" class="energy-link" data-content="Speak: Go door./Speech/3"></span> <span id="door3" class="energy-link" data-content="Speak: Go door now./Speech/4"></span> <span id="push" class="energy-link" data-content="Push him over to the door./Touch/3"></span> (if: $speech < 2)[<span id="whispering" class="energy-link" data-content="Whisper him over to the door./Speech/1/+1/8"></span> ](if: $touch < 0)[<span id="tapping" class="energy-link" data-content="Tap him over to the door./Touch/1/+1/8"></span> ]{ (set: $healthDisplay to true) }](elseif: $sequence is 3)[(if: $just_said is "whispering" or $just_said is "tapping")[You make an ungodly racket of urgent $just_said. It's graceless and inefficient and now you're tired. But you do finally communicate that you want Astarion to come over to the stone doorway. ](elseif: $just_said is "push")[(if: $touch_trust < 2)[Astarion does not appreciate being pushed. You have not cultivated the sort of relationship where you can just click on him and tell him to go places. But you're insistent about it so eventually he does move.<script>updateTrust(-1);</script> ](else:)[$astarion You're very insistent today. Astarion tolerates being pushed towards the door. ]](else:)[$astarion Fine. Let's stare at the door again. $astarion That sounds like a diverting way to spend a Suneday. He moves to the door. ]|next>[Continue]{ }](elseif: $sequence is 4)[The smooth stone of the doorway has been marred by deep scratches. Words carved into the rock. Like an epitaph, but much rougher. And not about death. |next>[Continue]{ }](elseif: $sequence is 5)[The letters are jagged and disjointed. It's like they were made by different people, all in different ways. |karlach>[The Ls...](click-replace: ?karlach)[The Ls are simple deep grooves made by someone very strong and very angry.] |laezel>[The Ws and Ts...](click-replace: ?laezel)[The Ws and Ts are long slashes, tactically shallow so that less raw power was necessary.] |casters>[The rest of the letters...](click-replace: ?casters)[The rest of the letters are more precise. Marks certainly made by magic, to be this even in stone. You can distinguish three separate hand-writings. The Es are all written differently.] |next>[Continue]{ }](elseif: $sequence is 6)[The jumbled message reads: THERE'S A WAY OUT. HELP INCOMING. |next>[Continue]{ }](elseif: $sequence is 7)[ (set: $health_change to 5)(display: "update health") |next>[End of Act 1.]{ }](elseif: $sequence is 8)[End of <span class="actTextSmall">Act 1.</span> Thank you for playing! This game is in Early Access. If you find errors, please tell me in the bug-reports of channel <a target="_blank" href='https://discord.gg/kHgtwqe'>this discord</a> or <a target="_blank" href='https://www.tumblr.com/blog/abigailmoment'>over Tumblr.</a> I hope to finish Act 2 sometime in June. If you want an alert when that happens I have a <a target="_blank" href='http://eepurl.com/bWnLDT'>mailing list</a> that goes out when I publish games. Or you can <a target="_blank" href="https://archiveofourown.org/works/54768418/chapters/138812047">bookmark this story on AO3.</a> |next>[Help finish the game.] |menu_credits>[Credits]{ }](elseif: $sequence is 9)[(display: "Tell Me About Your Character") |menu_credits>[Credits]{ }](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: ?tech)[(set: $sequence to 2)(go-to: $currentPassage)] }(if: $sequence is 0)[(if: $enrichment_list contains "story")[$astarion You've already had one today. $astarion Don't be greedy. |returnBase>[Continue] ](elseif: $astarion_trust < 7 and $astarion_stories_unlocked is false)[$astarion Are you asking me to tell you a story? $astarion I don't do that. |returnBase>[Continue] ](elseif: $story_count is 0)[$astarion Are you asking me to tell you a story? Astarion sighs. $astarion I am the only one here who can string full sentences together. $astarion And I may have read a story or two. //You can now ask Astarion to tell you stories.//(set: $astarion_stories_unlocked to true)<script>addAchieve("Storytime");</script> |next>[Continue] ](elseif: $story_count is 13)[$astarion Gods, you're insatiable. $astarion I'm running out of books. $astarion I suppose I could make something up. |skip>[Continue] ](else:)[(set: $sequence to 2)(go-to: $currentPassage) ]](elseif: $sequence is 1)[He hesitates a moment more. $astarion If there's any heckling, I'm never doing this again. |next>[Continue]{ }](elseif: $sequence is 2)[(if: $story_count is 0)[Astarion tells you about the history of the Chionthar river. ](elseif: $story_count is 1)[Astarion vaguely outlines the life of John Meadowlin, a werebear cured by a saint of Selûne named Erlona. In gratitude he protected her. $astarion I am certain it was a headache. Saints tend to be idiots. ](elseif: $story_count is 2)[Astarion outlines tactics for conscripting drow exiles to join what he seems to think is a fictional army that can control people's minds. This plan includes a scheme for luring a battalion of drow out from Menzoberranzan. ](elseif: $story_count is 3)[Astarion tells you a handful of somewhat disjointed, only possibly true facts about eels. ](elseif: $story_count is 4)[Astarion quotes some descriptions of darkness from a book exalting Shar. $astarion Cultists do tend to wax unbearably poetic about their gods. But some of it is pretty. ](elseif: $story_count is 5)[Astarion describes the recent history of the Zhentarim, and the mystery of their current leadership--a skull helmed warrior who always wears chalk-white full plate armor. $astarion Wouldn't it be amusing if he were something absurd? Like a gnome, controlling the armor with levers. ](elseif: $story_count is 6)[Astarion tells you a story that sounds like a fairy tale, about a woman who lost her mother and coped with it by poisoning her village. ](elseif: $story_count is 7)[Astarion describes some interesting flora, native to the Dalelands, including a deadly poison that was terribly powerful but unfortunately painless. ](elseif: $story_count is 8)[Astarion describes Flumph mating rituals in some amusing detail. ](elseif: $story_count is 9)[Astarion describes how to use a forge, buried deep in the Underdark, that can melt and cast adamantine into weapons and armor. ](elseif: $story_count is 10)[Astarion relates the history of the so-called 'Society of Brilliance'. He seems deeply skeptical of the institution. ](elseif: $story_count is 11)[Astarion relates the history of the Flaming Fist--the mercenary police force of Baldur's Gate that has vacillated wildly in function, form and principle. $astarion Their only consistent feature seems to be their color palette. ](elseif: $story_count is 12)[Astarion describes Avernus, the first layer of the Nine Hells, as he learned about it from a guide book. $astarion Not a terribly compelling vacation spot, to be quite honest. ](elseif: $story_count is 13)[Astarion pieces together a story about a priestess who loses her memory and gets lost in the woods, but finds her way out by following the moon. Astarion seems to be under the impression it's of his own invention. ](elseif: $story_count is 14)[Astarion tells you a story about a tiefling who is sold to Hell and loses her heart, but then climbs out and rebuilds it using scrap metal. Astarion seems to be under the impression it's of his own invention. ](elseif: $story_count is 15)[Astarion tells you a story about an extremely tiresome warlock who has a devil patron but ironically insists on being noble and always doing the 'right thing'. Whatever that is. Astarion keeps putting the character in situations where Astarion clearly thinks this tendency should get him killed, and then keeps not quite letting that happen. Astarion seems to be under the impression this story is of his own invention. ](elseif: $story_count is 16)[Astarion tells you a story about a very clever wizard who makes very foolish decisions and then explodes. He tries to cast it as amusing, but in the end sounds rather regretful about it. Astarion seems to be under the impression it's of his own invention. ](elseif: $story_count is 17)[Astarion tells you a story about a woman made of steel who rides on dragons and kills a god with a hammer. Astarion seems to be under the impression it's of his own invention. ](else:)[Astarion 'makes up' a story that you're fairly certain is based on something that actually, recently happened on your adventure. ]|returnBase>[Continue]{ (set: $story_count to it+1) (set: $enrichment_list to it+"story") (set: $vampire_enrichment_score to it+7) <script>updateEmotion("calm",5);</script> <script>updateEmotion("happy",2);</script> }](display: "menu_menu") (display: "Tell Me About Your Character"){ <style> tw-story { padding: 10px 15% !important; } tw-passage { text-align: left; } tw-passage { background-color: transparent !important; border: none !important; } </style> }//Contact Information// You can talk to me <a target="_blank" href='https://discord.gg/kHgtwqe'>over discord</a> or <a target="_blank" href='https://www.tumblr.com/blog/abigailmoment'>over Tumblr.</a> //Tell Me About Your Character// If you would like to be interviewed about how your character would handle Act 2, let me know! Collaborative storytelling is the source of my inspiration and motivation for this. The following classes are currently underrepresented: Barbarian Cleric Fighter Druid Warlock Wizard If you play one of those I'd particularly value your input, but I enjoy talking to anyone with enthusiasm. //Feedback I Need// Players who haven't played BG3--do you understand what's going on? - Does the synopsis help? - Do I need to do more to introduce the cavalcade of fantasy characters in the Campsite intro? I'm not sure the mechanics surrounding how much Touch Astarion is comfortable with work. It's supposed to be a tricky thing, but I'm concerned it's unintuitive. Is keeping Astarion alive too hard/too easy? I need custom actions for Clerics.