Restart Story

version.extensions.displayMacro={major:2,minor:0,revision:0};macros.display={handler:function(place,macroName,params,parser){\ntry{var output=eval(parser.fullArgs()); new Wikifier(place,tale.get(output.toString()).text);}\ncatch(e){throwError(place,"bad expression: "+e.message);}}};
.revision-span-in {\n\topacity: 0;\n}\n.revision-span:not(.revision-span-out) {\n\ttransition: 1s; -webkit-transition: 1s;\n}\n.revision-span-out {\n\tposition:absolute;\n\topacity: 0;\n}
#floater\n{\n\tdisplay:none;\n}\n.passage .title\n{\n\tdisplay:none;\n\t!important\n}\n.passage .toolbar\n{\n\tdisplay:none;\n}
<<silently>>\n\n<<endsilently>>
With an iron determination, you concentrate on this planet. Even if it destroys you, you must create. With your unseen guidance, storm clouds begin to form over the surface of the planet's oceans.\n\nThunder, great booming claps of thunder, echo across the empty landscape. Lightning <<continue "strikes the water.">>strikes the water. Nothing happens. <<continue "You try again.">>You try again. Wait, did something change in the water? You strike the water again and again, trying desperately to <<continue "create.">>create. Nothing happens. You focus all your energy on the water one last time and <<continue "strike.">>strike.\n\nNothing happens.\n\nYou fade away. Nothing sustains you. To nothing you go.<<timedcontinue 5s>>\n\nIn the waters, something begins to change, to stir. As the storm clouds dissipate, molecules resolve with each other, <<timedcontinue 3s>>electrons exchange, <<timedcontinue 1s>>and the first bacterium is born.<<timedcontinue 3s>>\n\nLife has begun.
<<display "resourceNames">>\s\n\s\nIt's a lovely day aboard the Space Cruiser DONTPANIC. Or night. It could be night. Those terms cease to have any real meaning when making interstellar trips. Sure, Ground Control might have a certain schedule they adhere to and expect you to be awake at whatever hour they deem is 7 AM, but you have no personal attachment to Earthly patterns of time right now.\n\nAn alarm beeps at you from beside your bed.\n\n[[(Ignore it)|Ignore it.]]\n[[(Turn off your alarm clock)|Smash your alarm clock.]]
(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:1};\nvar nullobj={handler:function(){}};function showVer(n,notrans){n.innerHTML="";\nnew Wikifier(n,n.tweecode);n.setAttribute("data-enabled","true");\nn.style.display="inline";n.classList.remove("revision-span-out");\nif(!notrans){n.classList.add("revision-span-in");if(n.timeout){clearTimeout(n.timeout)\n}n.timeout=setTimeout(function(){n.classList.remove("revision-span-in");\nn=null},1)}}function hideVer(n,notrans){n.setAttribute("data-enabled","false");\nn.classList.remove("revision-span-in");if(n.timeout){clearTimeout(n.timeout)\n}if(!notrans){n.classList.add("revision-span-out");n.timeout=setTimeout(function(){if(n.getAttribute("data-enabled")=="false"){n.classList.remove("revision-span-out");\nn.style.display="none";n.innerHTML=""}n=null},1000)}else{n.style.display="none";\nn.innerHTML="";n=null}}function tagcontents(b,starttags,desttags,endtags,k){var l=0,c="",tg,a,i;\nfunction tagfound(i,e){for(var j=0;j<e.length;j++){if(a.indexOf("<<"+e[j],i)==i){return e[j]\n}}}a=b.source.slice(k);for(i=0;i<a.length;i++){if(tg=tagfound(i,starttags)){l++\n}else{if((tg=tagfound(i,desttags))&&l==0){b.nextMatch=k+i+tg.length+4;\nreturn[c,tg]}else{if(tg=tagfound(i,endtags)){l--;if(l<0){return null\n}}}}c+=a.charAt(i)}return null}var begintags=[];var endtags=[];\nfunction revisionSpanHandler(g,e,f,b){var k=b.source.indexOf(">>",b.matchStart)+2,vsns=[],vtype=e,flen=f.length,becomes,c,cn,m,h,vsn;\nfunction mkspan(vtype){h=insertElement(m,"span",null,"revision-span "+vtype);\nh.setAttribute("data-enabled",false);h.style.display="none";h.tweecode="";\nreturn h}if(this.shorthand&&flen){while(f.length>0){vsns.push([f.shift(),(this.flavour=="insert"?"gains":"becomes")])\n}}else{if(this.flavour=="insert"||(this.flavour=="continue"&&this.trigger=="time")){vsns.push(["","becomes"])\n}}if(this.flavour=="continue"&&flen){b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),vtype])}else{becomes=["becomes","gains"];\nc=tagcontents(b,begintags,becomes.concat(endtags),endtags,k);\nif(c&&endtags.indexOf(c[1])==-1){while(c){vsns.push(c);c=tagcontents(b,begintags,becomes,endtags,b.nextMatch)\n}c=tagcontents(b,begintags,["end"+e],endtags,b.nextMatch)}if(!c){throwError(g,"can't find matching end"+e);\nreturn}vsns.push(c);if(this.flavour=="continue"){k=b.nextMatch;\nb.nextMatch=k+b.source.slice(k).length;vsns.push([b.source.slice(k),""])\n}}if(this.flavour=="remove"){vsns.push(["","becomes"])}cn=0;m=insertElement(g,"span",null,e);\nm.setAttribute("data-flavour",this.flavour);h=mkspan("initial");\nvsn=vsns.shift();h.tweecode=vsn[0];showVer(h,true);while(vsns.length>0){if(vsn){vtype=vsn[1]\n}vsn=vsns.shift();h=mkspan(vtype);h.tweecode=vsn[0]}if(typeof this.setup=="function"){this.setup(m,g,f)\n}}function quantity(m){return(m.children.length-1)+(m.getAttribute("data-flavour")=="remove")\n}function revisionSetup(m,g,f){m.className+=" "+f[0].replace(" ","_")\n}function keySetup(m,g,f){var fl=this.flavour,key=f[0];m.setEventListener("keydown",function l(e){var done=!revise("revise",m);\nif(done){m.removeEventListener("keydown",l)}})}function timeSetup(m,g,f){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return Number(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return Number(s.slice(0,-1))*1000||0\n}}}throwError(g,s+" isn't a CSS time unit");return 0}var fl=this.flavour;\nvar tm=cssTimeUnit(f[0]);setTimeout(function timefn(){var done=!revise("revise",m);\nif(!done){setTimeout(timefn,tm)}},tm)}function hoverSetup(m){m.onmouseover=function(){revise("revise",this)\n};m.onmouseout=function(){revise("revert",this)};m=null}function mouseSetup(m){var fl=this.flavour,evt=(window.onmouseenter===null?"onmouseenter":"onmouseover");\nm[evt]=function(){var done=!revise("revise",this);if(done){this[evt]=null\n}};m=null}function linkSetup(m,g,f){var fl=this.flavour,l=Wikifier.createInternalLink(),p=m.parentNode;\nl.className="internalLink replaceLink";p.insertBefore(l,m);l.insertBefore(m,null);\nl.onclick=function(){var p,done=false;if(m&&m.parentNode==this){done=!revise("revise",m);\nscrollWindowTo(m)}if(done){this.parentNode.insertBefore(m,this);\nthis.parentNode.removeChild(this)}};l=null}function visitedSetup(m,g,f){var i,done,shv=state.history[0].variables,os="once seen",d=(m.firstChild&&(this.flavour=="insert"?m.firstChild.nextSibling:m.firstChild).tweecode);\nshv[os]=shv[os]||{};if(d&&!shv[os].hasOwnProperty(d)){shv[os][d]=1\n}else{for(i=shv[os][d];i>0&&!done;i--){done=!revise("revise",m,true)\n}if(shv[os].hasOwnProperty(d)){shv[os][d]+=1}}}[{name:"insert",flavour:"insert",trigger:"link",setup:linkSetup},{name:"timedinsert",flavour:"insert",trigger:"time",setup:timeSetup},{name:"insertion",flavour:"insert",trigger:"revisemacro",setup:revisionSetup},{name:"later",flavour:"insert",trigger:"visited",setup:visitedSetup},{name:"keyinsert",flavour:"insert",trigger:"key",setup:keySetup},{name:"replace",flavour:"replace",trigger:"link",setup:linkSetup},{name:"timedreplace",flavour:"replace",trigger:"time",setup:timeSetup},{name:"mousereplace",flavour:"replace",trigger:"mouse",setup:mouseSetup},{name:"hoverreplace",flavour:"replace",trigger:"hover",setup:hoverSetup},{name:"revision",flavour:"replace",trigger:"revisemacro",setup:revisionSetup},{name:"keyreplace",flavour:"replace",trigger:"key",setup:keySetup},{name:"timedremove",flavour:"remove",trigger:"time",setup:timeSetup},{name:"mouseremove",flavour:"remove",trigger:"mouse",setup:mouseSetup},{name:"hoverremove",flavour:"remove",trigger:"hover",setup:hoverSetup},{name:"removal",flavour:"remove",trigger:"revisemacro",setup:revisionSetup},{name:"once",flavour:"remove",trigger:"visited",setup:visitedSetup},{name:"keyremove",flavour:"remove",trigger:"key",setup:keySetup},{name:"continue",flavour:"continue",trigger:"link",setup:linkSetup},{name:"timedcontinue",flavour:"continue",trigger:"time",setup:timeSetup},{name:"mousecontinue",flavour:"continue",trigger:"mouse",setup:mouseSetup},{name:"keycontinue",flavour:"continue",trigger:"key",setup:keySetup},{name:"cycle",flavour:"cycle",trigger:"revisemacro",setup:revisionSetup},{name:"mousecycle",flavour:"cycle",trigger:"mouse",setup:mouseSetup},{name:"timedcycle",flavour:"cycle",trigger:"time",setup:timeSetup},{name:"keycycle",flavour:"replace",trigger:"key",setup:keySetup}].forEach(function(e){e.handler=revisionSpanHandler;\ne.shorthand=(["link","mouse","hover"].indexOf(e.trigger)>-1);\nmacros[e.name]=e;macros["end"+e.name]=nullobj;begintags.push(e.name);\nendtags.push("end"+e.name)});function insideDepartingSpan(elem){var r=elem.parentNode;\nwhile(!r.classList.contains("passage")){if(r.classList.contains("revision-span-out")){return true\n}r=r.parentNode}}function reviseAll(rt,rname){var rall=document.querySelectorAll(".passage ."+rname),ret=false;\nfor(var i=0;i<rall.length;i++){if(!insideDepartingSpan(rall[i])){ret=revise(rt,rall[i])||ret\n}}return ret}function revise(rt,r,notrans){var ind2,curr,next,ind=-1,rev=(rt=="revert"),rnd=(rt.indexOf("random")>-1),fl=r.getAttribute("data-flavour"),rc=r.childNodes,cyc=(fl=="cycle"),rcl=rc.length-1;\nfunction doToGainerSpans(n,fn){for(var k=n-1;k>=0;k--){if(rc[k+1].classList.contains("gains")){fn(rc[k],notrans)\n}else{break}}}for(var k=0;k<=rcl;k++){if(rc[k].getAttribute("data-enabled")=="true"){ind=k\n}}if(rev){ind-=1}curr=(ind>=0?rc[ind]:(cyc?rc[rcl]:null));ind2=ind;\nif(rnd){ind2=(ind+(Math.floor(Math.random()*rcl)))%rcl}next=((ind2<rcl)?rc[ind2+1]:(cyc?rc[0]:null));\nvar docurr=(rev?showVer:hideVer);var donext=(rev?hideVer:showVer);\nvar currfn=function(){if(!(next&&next.classList.contains("gains"))||rnd){docurr(curr,notrans);\ndoToGainerSpans(ind,docurr,notrans)}};var nextfn=function(){donext(next,notrans);\nif(rnd){doToGainerSpans(ind2+1,donext,notrans)}};if(!rev){currfn();\nnextfn()}else{nextfn();currfn()}return(cyc?true:(rev?(ind>0):(ind2<rcl-1)))\n}macros.revert=macros.revise=macros.randomise=macros.randomize={handler:function(a,b,c){var l,rev,rname;\nfunction disableLink(l){l.style.display="none"}function enableLink(l){l.style.display="inline"\n}function updateLink(l){if(l.className.indexOf("random")>-1){enableLink(l);\nreturn}var rall=document.querySelectorAll(".passage ."+rname),cannext,canprev,i,ind,r,fl;\nfor(i=0;i<rall.length;i++){r=rall[i],fl=r.getAttribute("data-flavour");\nif(insideDepartingSpan(r)){continue}if(fl=="cycle"){cannext=canprev=true\n}else{if(r.firstChild.getAttribute("data-enabled")==!1+""){canprev=true\n}if(r.lastChild.getAttribute("data-enabled")==!1+""){cannext=true\n}}}var can=(l.classList.contains("revert")?canprev:cannext);(can?enableLink:disableLink)(l)\n}function toggleText(w){w.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}var rl="reviseLink";\nif(c.length<2){throwError(a,b+" macro needs 2 parameters");return\n}rname=c.shift().replace(" ","_");l=Wikifier.createInternalLink(a,null);\nl.className="internalLink "+rl+" "+rl+"_"+rname+" "+b;var v="";\nvar end=false;var out=false;if(c.length>1&&c[0][0]=="$"){v=c[0].slice(1);\nc.shift()}switch(c[c.length-1]){case"end":end=true;c.pop();break;\ncase"out":out=true;c.pop();break}var h=state.history[0].variables;\nfor(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,"span",null,rl+((on)?"En":"Dis")+"abled");\nif(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"\n}insertText(d,c[i]);l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);\nvar t=this.childNodes,u=this.getAttribute("data-cycle")-0,m=t.length,n,lall,i;\nif((end||out)&&u==m-(end?2:1)){if(end){n=this.removeChild(t[u+1]);\nn.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}}else{toggleText(t[u]);\nu=(u+1)%m;if(v){h[v]=c[u]}toggleText(t[u]);this.setAttribute("data-cycle",u)\n}lall=document.getElementsByClassName(rl+"_"+rname);for(i=0;i<lall.length;\ni++){updateLink(lall[i])}};l=null}};macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=["end"+b],evt=(window.onmouseenter===null?"onmouseenter":"onmouseover"),t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(">>",d.matchStart)+2);\nif(t){var rname=c[0].replace(" ","_"),h=insertElement(a,"span",null,"hoverrevise hoverrevise_"+rname),f=function(){var done=!reviseAll("revise",rname);\nif(b!="hoverrevise"&&done){this[evt]=null}};new Wikifier(h,t[0]);\nif(b=="hoverrevise"){h.onmouseover=f;h.onmouseout=function(){reviseAll("revert",rname)\n}}else{h[evt]=f}h=null}}};macros.instantrevise={handler:function(a,b,c,d){reviseAll("revise",c[0].replace(" ","_"))\n}};macros.endmouserevise=nullobj;macros.endhoverrevise=nullobj\n}());
History.prototype.originalDisplay = History.prototype.display;\n\nHistory.prototype.display = function (title, link, render)\n{\n\tif ((render != 'quietly') && (render != 'offscreen'))\n\t\tremoveChildren($('passages'));\n\t\t\n\tthis.originalDisplay.apply(this, arguments);\n};
A barrage of funky colors bombards your vision, followed by total darkness. Time no longer passes at a perceivable rate.\n\n<<replace "Silence.">>Sound and color return with a painful fury as your head rolls out onto a carpet in your friend's house. You attempt to breathe, but your lungs are light-years away. You attempt to speak, but your vocal cords are gone. Your eyes dart around frantically, looking for your friend, but it appears she is away at work. You escaped a black hole, but unfortunately you could not escape the laws of human biology. You perish quietly with little fanfare.\n\n[[(Restart)|Start]]\n\s\n<<endreplace>>
You pound your fist on the bedside table. Bits of plastic and glass spill to the floor as you obliterate your alarm clock.\n\nYou stop, think, and almost immediately regret your decision. The alarm is still going off. The clock's no longer functional, but you didn't stop the infernal sounds now echoing through the cruiser.\n\n[[(Get out of bed)|Get out of bed.]]\n[[(Go back to sleep)|Go back to sleep.]]
version.extensions["toggletagMacros"]={major:1,minor:1,revision:0};macros["toggletag"]={handler:function(a,b,c){var p=e(a);var d=document.body;if(p){var t=p.getAttribute("data-tags");var i=t.indexOf(c[0]);if(b!="addtag"&&i>=0){var r=t.replace(c[0],"");p.setAttribute("data-tags",r);d.setAttribute("data-tags",r);}else{if(b!="removetag"&&i<0){var r=t+" "+c[0];p.setAttribute("data-tags",r);d.setAttribute("data-tags",r);}}}else{var t=state.history[0].passage.tags;var i=t.indexOf(c[0]);if(b!="addtag"&&i>=0){t.splice(i,1);\n}else{if(b!="removetag"&&i<0){t.push(c[0]);}}d.setAttribute("data-tags",t.join(" "));}function e(f){while(f.parentNode&&!f.classList.contains("passage")){f=f.parentNode;}if(f!=document&&f.getAttribute("data-tags")){return f;}return null;}}};macros["addtag"]=macros["toggletag"];macros["removetag"]=macros["toggletag"];
You grasp at the ship's wheel and attempt to turn it around. The engine's out, so this probably wasn't a good idea, but you can at least try, right?\n\n<<replace "Steer harder.">>Your efforts are amusing but futile. The ship does not change course.\n\n''"WARNING. THE EVENT HORIZON HAS BEEN CROSSED. ABANDON ALL HOPE."''\n\nEverything begins to slow down.\n\n[[(Look out the external display)|Look out the external display.]]<<endreplace>>
An hourglass appears on the console window, rotating and ticking in the characteristic style of ancient operating systems. After several excruciating minutes, the machine beeps and begins to speak.\n\n''"SINGULARITY DETECTED IN THE IMMEDIATE VICINITY. WARNING. REVERSE COURSE WITHIN THE NEXT -60- SECONDS."''\n\nThe comm device begins to buzz and beep.\n\n[[(Answer the comm device)|Answer the comm device.]]\n[[(Ignore the comm device)|Ignore the comm device.]]
window.visited = function(e) {\n\tvar ret,c;\n\te || (e = state.history[0].passage.title);\n \tfor(ret=c=0; c<state.history.length; c++) {\n\t\tif(state.history[c].passage && state.history[c].passage.title == e) {\n\t\t\tret++;\n\t\t}\n\t}\n\treturn ret;\n}\n\nwindow.visitedbefore = function(e,f) {\n\tvar h,c,ret;\n \tfor(ret=c=0; c<state.history.length; c++) {\n\t\th = state.history[c].passage;\n\t\tif(h && h.title == e) {\n\t\t\treturn true;\n\t\t} else if (h && h.title == f) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n}
The alarm stops. About two seconds later, it resumes its infernal noises louder than before.\n\n[[(Cover your ears with your pillow)|Cover your ears with your pillow.]]\n[[(Smash your alarm clock)|Smash your alarm clock.]]
You pick up the phone-shaped receiver. The obnoxious sound of a foghorn immediately greets your ear, followed by the salesman-esque voice of Ground Control.\n\n"Congratulations! You've reached your destination! You're going to be the first human to cross through a wormhole! We hope you enjoy your time in an alternate universe! Any appearance of encroaching danger is merely an illusion, and we ask that you do not tamper with any of the equipment. Good luck!"\n\nWith that, the line gives a faint click. You'll never speak with them again.\n\n[[(Panic)|Ignore the comm device.]]
Space Cruiser Panic
You have a very short amount of time to fix things. The ship has begun to rattle with proximity to the black hole.\n\n''"WARNING. APPROACHING EVENT HORIZON."''\n\n[[(Attempt to steer the ship away)|Attempt to steer the ship away.]]\n[[(Fiddle with the internal controls)|Fiddle with the internal controls.]]\n[[(Go to the lounge)|Go to the lounge.]]\n[[(Attempt to teleport yourself away)|Attempt to teleport yourself away.]]
(function(){\nvar bs = String.fromCharCode(92);\nWikifier.formatters.unshift({\n name: "continuedLine",\n match: bs+bs+"s",\n handler: function(a) {\n a.nextMatch = a.matchStart+3;\n }\n});\n}());
try {\n\tversion.extensions['setTheme'] = { \n\t\tmajor:1, minor:0, revision:0 \n\t};\n\tmacros['setTheme'] = {\n\t\thandler: function(place, macroName, params, parser) {\n\t\t\tsetTheme(params[0]);\n\t\t},\n\t\tinit: function() { },\n\t};\n} catch(e) {\n\tthrowError(place,"setTheme Setup Error: "+e.message); \n}
try {\n version.extensions['textinput'] = { \n major:1, minor:0, revision:0 \n };\nmacros['textinput'] = {\nhandler: function(place, macroName, params, parser) {\nv = params[0].replace("$","");\nvar input= document.createElement('input');\ninput.type = "text";\nd = v+"TextInput";\ninput.id = d;\ninput.addEventListener('keyup', function()\n{\nstate.history[0].variables[v] = document.getElementById(d).value;\n});\nplace.appendChild(input);\n},\t\ninit: function() { var v; var d;},\n};\n} catch(e) {\n throwError(place,"textinput Setup Error: "+e.message); \n}
version.extensions.timedgotoMacro={major:1,minor:2,revision:0};\nmacros["goto"]=macros.timedgoto={timer:null,handler:function(a,b,c,d){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return +(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return +(s.slice(0,-1))*1000||0\n}}}throwError(a,s+" isn't a CSS time unit");return 0}var t,d,m,s;\nt=c[c.length-1];d=d.fullArgs();m=0;if(b!="goto"){d=d.slice(0,d.lastIndexOf(t));\nm=cssTimeUnit(t)}d=eval(Wikifier.parse(d));if(d+""&&state&&state.init){if(macros["goto"].timer){clearTimeout(macros["goto"].timer)\n}s=state.history[0].passage.title;macros["goto"].timer=setTimeout(function(){if(state.history[0].passage.title==s){state.display(d,a)\n}},m)}}};
body\n{\n\tbackground-color:#000022;\n\t!important\n}\n\n.passage\n{\n\tbackground-color:#111144;\n\tborder-radius:20px;\n\tpadding:20px\n\t!important\n}\n.passage .body\n{\n\tcolor:#FFFFFF;\n\tfont-size:16px;\n\t!important\n}\n.passage .body .internalLink\n{\n\ttext-align:center;\n\tfont-weight:bold;\n\tpadding:5px;\n\tborder-radius:5px;\n\twhite-space:nowrap;\n\tmargin-bottom:5px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tline-height:2;\n\t!important\n}\n\na.internalLink, a.back, a.return\n{\n\tbackground-color:#222255;\n\tcolor:#FFFFFF;\n\t!important\n}\n\n#storyTitle\n{\n\tcolor:#CCCCFF;\n\t!important\n}\n#storyAuthor\n{\n\tcolor:#AAAACC;\n\t!important\n}
(function(){var r="";var s=Wikifier.formatters;for(var j=0;j<s.length;j++){if(s[j].name=="image"){r=s[j].lookahead;\nbreak;}}var div=document.getElementById("storeArea").firstChild.nextSibling;while(div){if(r){k(new RegExp(r,"mg"),4);\n}var b=String.fromCharCode(92);var u=b+"s*['"+'"]?([^"'+"']+(jpe?g|a?png|gif|bmp))['"+'"]?'+b+"s*";\nk(new RegExp("url"+b+"("+u+b+")","mig"),1);k(new RegExp("src"+b+"s*="+u,"mig"),1);\ndiv=div.nextSibling;}function k(c,e){do{var d=c.exec(div.innerHTML);if(d){var i=new Image();\ni.src=d[e];}}while(d);}}());
(function(){ var render2 = Passage.prototype.render; Passage.prototype.render = function () { var b = render2.call(this); var t = this.tags.join(" "); document.body.setAttribute("data-tags", t); b.setAttribute("data-tags",t); return b; }; if(state) { var tgs = state.history[0].passage.tags.join(" "); var fc = $('passages').firstChild; fc.setAttribute("data-tags",tgs); }}());
It doesn't help. The alarm beeps louder and louder and louder.\n\n[[(Turn the damn thing off)|Smash your alarm clock.]]
version.extensions.ifMacros={major:2,minor:0,revision:0};macros["if"]={handler:function(place,macroName,params,parser){\nvar conditions=[],clauses=[],srcOffset=parser.source.indexOf(">>",parser.matchStart)+2,src=parser.source.slice(srcOffset),endPos=-1,currentCond=parser.fullArgs(),currentClause="",t=0,nesting=0;\nfor(var i=0;i<src.length;i++){if(src.substr(i,9)=="<<endif>>"){nesting--;if(nesting<0){endPos=srcOffset+i+9;\nconditions.push(currentCond);clauses.push(currentClause);break;}}if((src.substr(i,6)=="<<else")&&nesting==0){conditions.push(currentCond);\nclauses.push(currentClause);currentClause="";t=src.indexOf(">>",i+6);if(src.substr(i+6,4)==" if "){currentCond=Wikifier.parse(src.slice(i+10,t));\n}else{currentCond="true";}i=t+2;}if(src.substr(i,5)=="<<if "){nesting++;}currentClause+=src.charAt(i);\n}try{if(endPos!=-1){parser.nextMatch=endPos;for(i=0;i<clauses.length;i++){if(eval(conditions.shift())){new Wikifier(place,clauses[i ].trim());\nbreak;}}}else{throwError(place,"can't find matching endif");}}catch(e){throwError(place,"bad condition: "+e.message);\n}}};
You look underneath the steering wheel at the enigmatic panel, an explosion having knocked it open. Lights are flashing, oscillators are oscillating, and your heart is racing. You received no instruction on how to operate this part of the ship.\n\n<<replace "Press random buttons in the vain hope that something will go right.">>Windshield wipers start running across the external display and a disco ball descends from the ceiling, but nothing has stopped your impending demise.\n\n''"WARNING. THE EVENT HORIZON HAS BEEN CROSSED. ABANDON ALL HOPE."''\n\nEverything begins to slow down.\n\n[[(Look out the external display)|Look out the external display.]]<<endreplace>>
It is a sight to behold. Light and color cascade down a distorted abyss, never quite reaching the center. Matter is compressed into a single, infinitely dense point, bending its surroundings in impossible ways. Your ship begins to tear itself apart as the force of gravity becomes too great. An explosion beneath your feet tosses you in a slow arc out of the former Space Cruiser DONTPANIC. You are no longer able to breathe. If you're impossibly lucky, you'll <<replace "survive.">>survive.\n\nYour eyes turn upwards towards where you think freedom might be, but matter and light are distorted there too. You squint your eyes and can make out, stretching into the infinite distance, a parade of destroyed space cruiser parts. Vaguely human shapes, too. As the forces of gravity take over, your body stretches and tears, spaghettification disconnecting your particles from each other. In one <<replace "final moment,">>final moment, swimming patterns of light and sound dominate your perception, followed by obliteration. Your existence has ended.<<timedreplace 4s >><<becomes>>\n\n[[...]]<<endtimedreplace>><<endreplace>>\s\n<<endreplace>>
String.prototype.unDash = function()\n{\n\tvar s = this.split("-");\n\tif(s.length > 1)\n\t\tfor(var t=1; t < s.length; t++)\n\t\t\ts[t] = s[t].substr(0,1).toUpperCase() + s[t].substr(1);\n\treturn s.join("");\n};
You slowly gain consciousness. Everything is gone.\n\n<<replace "Where are you?">>Where are you? You can't quite tell. Glowing blobs of color flow and pulse everywhere. Out of this primordial mash emerges the first proton. Perceiving this change is baffling to you, precicely because you weren't expecting a view of the universe's <<replace "inner workings.">>inner workings.\n\nAt first things are slow to start. Most newborns are like that. Hydrogen, helium, lithium - soon a whole bunch of elements form from the nothingness that preceded them. New elements, too, like Wonderfluonium and Elicorium, are created while you watch and give names to every object that passes. Gravity begins to take its mysterious effect. Elements compress into stars, planets, gaseous clouds. As the metaphorical dust begins to settle down, the excitement of birth gives way to <<replace "something different.">>something different.\n\nYou feel strangely empty. You've witnessed incredible sights, but something is hollow within you. You struggle to recall why you would feel this way, but no memories of the old world remain. You pass the time by counting stars, but after you reach the quadrillions, you become despondent. What purpose is there to this kind of existence? You must <<replace "fill this void.">>fill this void.\n\nAt the peripherals of your perception, you notice a small planet. It orbits an insignificant, lonely star. You named the star Cornelius eons ago, but this planet for some reason was ignored. It looks barren, covered with water and rock. Various forms of oxygen form an invisible shell around the planet. You are overcome with a need to create, to make something of this small rock.\n\n[[(Create)|Create.]]\s\n<<endreplace>>\s\n<<endreplace>>\s\n<<endreplace>>\s\n<<endreplace>>
You run back to the lounge, now blackened and filled with smoke. Photographs from your friend back on earth litter the ground, blown about by the explosion and charred to an unrecognizable degree. You have nothing left. Once you cross the event horizon, you probably won't be able to contact her.\n\n''"WARNING. THE EVENT HORIZON HAS BEEN CROSSED. ABANDON ALL HOPE."''\n\nEverything begins to slow down.\n\n[[(Slouch towards the control room)|Look out the external display.]]<<endreplace>>
version.extensions.hoverlinkMacro={major:1,minor:1,revision:0};macros.hoverlink={handler:function(a,b,c){var d,l=Wikifier.createInternalLink(a,c[0]);\nl.className+=" hoverLink";insertElement(l,"span",null,null,c[1]||c[0]);if(c[2]){d=insertElement(l,"span",null,null,c[2]);\nd.style.display="none";}l.onmouseover=function(){if(this.childNodes.length>1){this.childNodes[0].style.display="none";\nthis.childNodes[1].style.display="inline";}};l.onmouseout=function(){if(this.childNodes.length>1){this.childNodes[1].style.display="none";\nthis.childNodes[0].style.display="inline";}};}};
The control room is sparsely decorated. There's the pilot's seat with <<replace "overly simplistic controls.">>overly simplistic controls. Whenever you asked to learn the more advanced maneuvers, Ground Control would always cut you off.<<endreplace>>\n\nBelow the steering wheel is a <<replace "metal panel.">>metal panel. An explosion jars it loose, revealing thousands of tiny buttons spread across thirteen different boards. Ground Control never told you about this, and at no point before did you ever think to poke about with the internals of the ship.<<endreplace>>\n\nAcross the external display, you see <<replace "nothing.">>nothing. Less than nothing. This is the absence of existence and non-existence. Your stomach drops.<<endreplace>>\n\nRight next to the pilot's controls is a shiny button labeled "Scan and Report".\n\n[[(Press the button)|Press the button.]]
(function () {\n "use strict";\n version.extensions['soundMacros'] = {\n major: 1,\n minor: 1,\n revision: 2\n };\n var p = macros['playsound'] = {\n soundtracks: {},\n handler: function (a, b, c, d) {\n var loop = function (m) {\n if (m.loop == undefined) {\n m.loopfn = function () {\n this.play();\n };\n m.addEventListener('ended', m.loopfn, 0);\n } else m.loop = true;\n m.play();\n };\n var s = eval(d.fullArgs());\n if (s) {\n s = s.toString();\n var m = this.soundtracks[s.slice(0, s.lastIndexOf("."))];\n if (m) {\n if (b == "playsound") {\n m.play();\n } else if (b == "loopsound") {\n loop(m);\n } else if (b == "pausesound") {\n m.pause();\n } else if (b == "unloopsound") {\n if (m.loop != undefined) {\n m.loop = false;\n } else if (m.loopfn) {\n m.removeEventListener('ended', m.loopfn);\n delete m.loopfn;\n }\n } else if (b == "stopsound") {\n m.pause();\n m.currentTime = 0;\n } else if (b == "fadeoutsound" || b == "fadeinsound") {\n if (m.interval) clearInterval(m.interval);\n if (b == "fadeinsound") {\n if (m.currentTime>0) return;\n m.volume = 0;\n loop(m);\n } else {\n if (!m.currentTime) return;\n m.play();\n }\n var v = m.volume;\n m.interval = setInterval(function () {\n v = Math.min(1, Math.max(0, v + 0.005 * (b == "fadeinsound" ? 1 : -1)));\n m.volume = Math.easeInOut(v);\n if (v == 0 || v == 1) clearInterval(m.interval);\n if (v == 0) {\n m.pause();\n m.currentTime = 0;\n m.volume = 1;\n }\n }, 10);\n }\n }\n }\n }\n }\n macros['fadeinsound'] = p;\n macros['fadeoutsound'] = p;\n macros['unloopsound'] = p;\n macros['loopsound'] = p;\n macros['pausesound'] = p;\n macros['stopsound'] = p;\n macros['stopallsound'] = {\n handler: function () {\n var s = macros.playsound.soundtracks;\n for (var j in s) {\n\t\tif (s.hasOwnProperty(j)) {\n s[j].pause();\n if (s[j].currentTime) {\n\t\t s[j].currentTime = 0;\n\t\t }\n\t\t}\n }\n }\n }\n var div = document.getElementById("storeArea").firstChild;\n var fe = ["ogg", "mp3", "wav", "webm"];\n while (div) {\n var b = String.fromCharCode(92);\n var q = '"';\n var re = "['" + q + "]([^" + q + "']*?)" + b + ".(ogg|mp3|wav|webm)['" + q + "]";\n k(new RegExp(re, "gi"));\n div = div.nextSibling;\n }\n\n function k(c, e) {\n do {\n var d = c.exec(div.innerHTML);\n if (d) {\n var a = new Audio();\n if (a.canPlayType) {\n for (var i = -1; i < fe.length; i += 1) {\n if (i >= 0) d[2] = fe[i];\n if (a.canPlayType("audio/" + d[2])) break;\n }\n if (i < fe.length) {\n a.setAttribute("src", d[1] + "." + d[2]);\n a.interval = null;\n macros.playsound.soundtracks[d[1]] = a;\n } else console.log("Browser can't play '" + d[1] + "'");\n }\n }\n } while (d);\n }\n}());
The hallway's emergency lights are flashing repeatedly, casting an eerie alternating red glow across the metallic interior. What with the lights and the sounds, you'd think you'd already died and woken up in Hell.\n\nThe door to the engine room <<replace "appears to be fine.">>is bulging dangerously.<<becomes>>has exploded. Fire is streaming out of the door, scarring the ceiling and filling the air with a thick smoke.<<endreplace>>\n\nThe lounge <<replace "looks safe.">>has started smoking.<<becomes>>is now on fire.<<becomes>>is now the site of a small explosion.<<becomes>>is blackened and dangerous. You ''really'' don't want to <<replace "go over there.">>go over there. Not even to try to salvage those photos you got last week. They've probably burned up by now.<<endreplace>><<endreplace>>\n\nRight across from your room's entrance is the <<replace "combination kitchen and water closet.">>combination kitchen and water closet. You tried telling them that it was a bad combination sure to have lasting negative effects on hygiene and health, but <<replace "did they listen?">>did they listen? ''Noooo!'' Cheap bastards. You've had to be ''very'' careful up here. Every trip to the bathroom is a mighty chore. Luckily, between stops at every significant comet and planetoid along the way, you have plenty of free time.<<endreplace>><<endreplace>>\n\nIn case of an emergency, <<replace "where did Ground Control say they need you to go?">>Ground Control wants you to head to the control room.\n\n[[(Run to the control room)|Run to the control room.]]<<endreplace>>
(function () {\n\tvar bs = String.fromCharCode(92);\n\tWikifier.formatters.unshift({\n\t\tname: "htmltag",\n\t\tmatch: "<"+bs+"w+(?:(?:"+bs+"s+"+bs+"w+(?:"+bs+"s*="+bs+"s*(?:"+'"'+".*?"+'"'+"|'.*?'|[^'"+'"'+">"+bs+"s]+))?)+"+bs+"s*|"+bs+"s*)"+bs+"/?>",\n\t\ttagname: "<("+bs+"w+)",\n\t\tvoids: ["br", "hr", "area", "img", "input", "embed", "param", "source", "track"],\n\t\thandler: function (a) {\n\t\t\tvar re, tn, e;\n\t\t\tre = new RegExp(this.tagname).exec(a.matchText);\n\t\t\ttn = re && re[1];\n\t\t\tif(tn) {\n\t\t\t\te = document.createElement(a.output.tagName);\n\t\t\t\te.innerHTML = a.matchText;\n\t\t\t\te = e.firstChild;\n\t\t\t\tif(this.voids.indexOf(tn.toLowerCase()) == -1) {\n\t\t\t\t\ta.subWikify(e, "<" + bs + "/" + bs + "s*" + tn + bs + "s*>");\n\t\t\t\t}\n\t\t\t\ta.output.appendChild(e);\n\t\t\t}\n\t\t}\n\t});\n}());
While you've never attempted to send anything larger than a notebook through the device, it's worth a shot.\n\nYou attempt to cram yourself into the <<replace "tiny opening.">>tiny opening. Naturally, only your hand or foot will fit. You hyperventilate, desperately trying to work your way into the device, to <<replace "escape.">>escape. You remember CerebroVat technologies back home. They were little more than a pipe dream when you left. Could they have gotten funding? Can you live with just your <<replace "head?">>head? You've got to try. You jam your head into the teleporter, no longer thinking quite properly. You're breathing quite heavily. Your finger rests upon on the button.\n\n[[(Press it)|Press it.]]\s\n<<endreplace>>\s\n<<endreplace>>\s\n<<endreplace>>
version.extensions.cyclinglinkMacro={major:3,minor:3,revision:0};\nmacros.cyclinglink={handler:function(a,b,c){var rl="cyclingLink";\nfunction toggleText(w){w.classList.remove("cyclingLinkInit");\nw.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}switch(c[c.length-1]){case"end":var end=true;\nc.pop();break;case"out":var out=true;c.pop();break}var v="";if(c.length&&c[0][0]=="$"){v=c[0].slice(1);\nc.shift()}var h=state.history[0].variables;if(out&&h[v]===""){return\n}var l=Wikifier.createInternalLink(a,null);l.className="internalLink cyclingLink";\nl.setAttribute("data-cycle",0);for(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,"span",null,"cyclingLinkInit cyclingLink"+((on)?"En":"Dis")+"abled");\nif(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"\n}insertText(d,c[i]);if(on&&end&&i==c.length-1){l.parentNode.replaceChild(d,l)\n}else{l.appendChild(d)}}l.onclick=function(){var t=this.childNodes;\nvar u=this.getAttribute("data-cycle")-0;var m=t.length;toggleText(t[u]);\nu=(u+1);if(!(out&&u==m)){u%=m;if(v){h[v]=c[u]}}else{h[v]=""}if((end||out)&&u==m-(end?1:0)){if(end){var n=this.removeChild(t[u]);\nn.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}return}toggleText(t[u]);\nthis.setAttribute("data-cycle",u)}}};
Written by Autumn Beauchesne
You're that dedicated to ignoring it? Fine. You go back to sleep. When you wake up several hours later, there are no more noises. In fact, there's no more anything. You're drifting in the empty void. Is it space? Are you dead? You'll have to play along to find out.\n\n[[(Restart)|Start]]
You're standing in your sleeping quarters. It's a tiny but fashionable room. Your bed is covered in regulation-color sheets but you somehow managed to sneak in a <<replace "Buzz Lightyear pillow cover.">>Buzz Lightyear pillow cover. You had always wanted to try interstellar travel as a kid.<<endreplace>>\n\nHanging from the wall are some <<replace "posters.">>posters. Your favorite characters stare down at you like disapproving teachers. You weren't initially allowed to bring them on board. Something about "professionalism" and "safe for the workplace".<<endreplace>>\n\nIn the corner there's a <<replace "handheld teleportation device.">>handheld teleportation device your friend sent you from home last Christmas. You've been a dedicated and passionate space explorer for the last few years, but on the whole the trip's been too long and too lonely. Since she sent it to you, though, things have been looking up. Every so often, she sends you photos of the beautiful things you may never see again back on Earth. She wishes she could send more, but the Kickstarter campaign for the teleporter never reached that stretch goal.<<endreplace>>\n\nYou put on your regulation-size SpaceSuit, fastening the tie about your neck and buttoning the jacket up in front. You never quite figured out how to tie a tie, so instead you wear a cheap clip-on thing. It would be embarrassing if anyone saw you up here, but no one's here to do so.\n\n[[(Exit into the hall)|Exit into the hall.]]