/*! <<replacelink>> macro set for SugarCube 2.x */\n.revision-span-in{opacity:0}.revision-span:not(.revision-span-out){-webkit-transition:1s;transition:1s}.revision-span-out{position:absolute;opacity:0}\n\nbody\n{\n\tfont-size: 1.5em;\n\tmargin: 3em 3em 3em 6em;\nbackground: #eed;\ncolor: #222;\ntext-shadow: 0px -1px 1px rgba(32,16,16,0.25);\n}\n\n#ui-bar\n{\ndisplay:none;\n}
'<<print either("Ah. That time already?","Gotten late, I suppose,","That'll do it, then, I reckon,")>>' the man says. \n<<replacelink>>And...<<becomes>>\nHe stands. '<<print either("Well, it can't be helped.","Time flies, doesn't it.","Yes,' he says. 'I suppose so.","Just as well,' he says. 'Taken enough time as it is.")>>' \n<<replacelink>>And...<<becomes>>\nHe leaves, taking his teacup with him. \n<<replacelink>>And...<<becomes>>\nThe room is empty.\n<<endreplacelink>>\n<<endreplacelink>>\n<<endreplacelink>>
<<set $counter to 0>>\n<<replacelink>>And...<<becomes>>\nThe man <<print either("sits","still sits","continues to sit")>> in the room. <<replacelink>>And...<<becomes>>\nThe man <<print either("sits","still sits","continues to sit")>> in the room. <<replacelink>>And...<<becomes>>\nThe man <<print either("sits","still sits","continues to sit")>> in the room. <<display common1>><<endreplacelink>><<endreplacelink>><<endreplacelink>>
<<set $roll to random(100)>>\n<<if $roll lte 50>><<print either("'Ahh,' the man says","'Hmm,' the man says","'My, my,' the man says, shaking his head")>>. <<display common2>><<elseif $roll gt 50 and $roll lte 75>>\n<<print either("'Why, but!' exclaims the man, sitting up a bit. ","'That day...' the man sighs. ","'I remember...' the man says. ","'If only...' the man says. ","The man cocks his head, as though struck by something. ")>>\n<<replacelink>>And...<<becomes>>\n<<print either("'But no...' says the man, hesitating. ","'But then!' the man says, startled. ","'And...well...' the man says. ","The man closes his eyes a moment, brow furrowed. ")>>\n<<replacelink>>And...<<becomes>>\n<<print either("'But that's long past, now,' the man says.","'Ahh,' the man says, waving his hand. 'It's no use.' ","'...I suppose it was meant to be,' the man says.","After a moment, the man harrumphs, and seems consoled. ")>><br><br><<display common2>>\n<<endreplacelink>>\n<<endreplacelink>>\n\n<<else>><<display epic2>><<endif>>
<<set $roll to random(100)>>\n<<if $roll lte 50>><<print either("The man sighs—'Well, now,' he says","'Hmm!' the man says","'My, my,' the man says, shaking his head")>>. <<display common1>><<elseif $roll gt 50 and $roll lte 75>>\n<<print either("'That reminds me...' says the man. ","'Oh! Now,' the man exclaims. ","'Ah! but—' the man exclaims. ")>>\n<<replacelink>>And...<<becomes>>\n<<print either("'Well...' says the man. ","'Humm,' the man muses. ","'Or, ah, I suppose...' the man says. ","The man cocks his head in silent thought. ")>>\n<<replacelink>>And...<<becomes>>\n<<print either("'...well, perhaps not,' says the man. ","'Mm,' the man says. 'Never mind.' ","'But, well,' the man says, a little shake of the head. 'It doesn't matter.' ","The man smiles. ")>><br><br><<display common2>>\n<<endreplacelink>>\n<<endreplacelink>>\n\n<<else>><<display epic1>><<endif>>
//A rare common happens!// <br><br><<display common2>>
<<set $roll to random(100)>>\n<<set $counter += 1>>\n<<if $counter lt 50>>\n<<replacelink>>And...<<becomes>>\n<<if $roll lte 50>>The man <<print either("gazes","still gazes","continues to gaze")>> out the window. <<display common2>><<elseif $roll gt 50 and $roll lte 75>><<print either("The man sighs", "The man sniffs a bit","The man scratches behind his ear","The man swills his tea around","The man takes a sip of tea","The man takes a deep sniff of his tea")>>. <<display common2>>\n<<elseif $roll gt 75 and $roll lte 87>>The man turns back to stare into the room before him.<br><br> <<display common1>><<elseif $roll gt 87 and $roll lte 93>><<display uncommon2>><<else>><<display rare2>><<endif>>\n<<endreplacelink>>\n<<else>>\n<<replacelink>>And...<<becomes>><<display end>><<endreplacelink>>\n<<endif>>
<<set $roll to random(100)>>\n<<set $counter += 1>>\n<<if $counter lt 50>>\n<<replacelink>>And...<<becomes>>\n<<if $roll lte 50>>The man <<print either("sits","still sits","continues to sit")>> in the room. <<display common1>><<elseif $roll gt 50 and $roll lte 75>><<print either("The man shifts his posture", "The man scratches his nose","The man coughs","The man takes a sip of his tea","The man peers into his teacup","The man takes a deep sniff of his tea")>>. <<display common1>>\n<<elseif $roll gt 75 and $roll lte 87>>The man looks out the window.<br><br> <<display common2>><<elseif $roll gt 87 and $roll lte 93>><<display uncommon1>><<else>><<display rare1>><<endif>>\n<<endreplacelink>>\n<<else>>\n<<replacelink>>And...<<becomes>><<display end>><<endreplacelink>>\n<<endif>>
A man sits in a room. He sits at a table, a cup of tea in front of him. A window behind him looks out at a green hill. <<display opening>>
/*! <<replacelink>> macro set for SugarCube */\n!function(){"use strict";function showVer(n,notrans){n&&(n.innerHTML="",new Wikifier(n,n.tweecode),n.setAttribute("data-enabled","true"),n.style.display="inline",n.classList.remove("revision-span-out"),notrans||(n.classList.add("revision-span-in"),n.timeout&&clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.classList.remove("revision-span-in"),n=null},20)))}function hideVer(n,notrans){n&&(n.setAttribute("data-enabled","false"),n.classList.remove("revision-span-in"),n.timeout&&clearTimeout(n.timeout),notrans?(n.style.display="none",n.innerHTML="",n=null):(n.classList.add("revision-span-out"),n.timeout=setTimeout(function(){"false"===n.getAttribute("data-enabled")&&(n.classList.remove("revision-span-out"),n.style.display="none",n.innerHTML=""),n=null},1e3)))}function tagcontents(b,starttags,desttags,endtags,k){function tagfound(i,e,endtag){for(var j=0;j<e.length;j++)if(a.indexOf("<<"+e[j]+(endtag?">>":""),i)===i)return e[j]}for(var tg,l=0,c="",a=b.source.slice(k),i=0;i<a.length;i++){if(tg=tagfound(i,starttags))l++;else{if((tg=tagfound(i,desttags,!0))&&0===l)return b.nextMatch=k+i+tg.length+4,[c,tg];if((tg=tagfound(i,endtags,!0))&&(l--,0>l))return null}c+=a.charAt(i)}return null}function revisionSpanHandler(g,e,f,b){function mkspan(vtype){return h=insertElement(m,"span",null,"revision-span "+vtype),h.setAttribute("data-enabled",!1),h.style.display="none",h.tweecode="",h}var becomes,c,cn,m,h,vsn,k=b.source.indexOf(">>",b.matchStart)+2,vsns=[],vtype=e,flen=f.length;if(this.shorthand&&flen)for(;f.length>0;)vsns.push([f.shift(),"insert"===this.flavour?"gains":"becomes"]);else("insert"===this.flavour||"continue"===this.flavour&&"time"===this.trigger)&&vsns.push(["","becomes"]);if("continue"===this.flavour&&flen)b.nextMatch=k+b.source.slice(k).length,vsns.push([b.source.slice(k),vtype]);else{if(becomes=["becomes","gains"],c=tagcontents(b,begintags,becomes.concat(endtags),endtags,k),c&&-1===endtags.indexOf(c[1])){for(;c;)vsns.push(c),c=tagcontents(b,begintags,becomes,endtags,b.nextMatch);c=tagcontents(b,begintags,["/"+e,"end"+e],endtags,b.nextMatch)}if(!c)return void throwError(g,"<<"+e+">>: cannot find a matching close tag");vsns.push(c),"continue"===this.flavour&&(k=b.nextMatch,b.nextMatch=k+b.source.slice(k).length,vsns.push([b.source.slice(k),""]))}for("remove"===this.flavour&&vsns.push(["","becomes"]),cn=0,m=insertElement(g,"span",null,e),m.setAttribute("data-flavour",this.flavour),h=mkspan("initial"),vsn=vsns.shift(),h.tweecode=vsn[0],showVer(h,!0);vsns.length>0;)vsn&&(vtype=vsn[1]),vsn=vsns.shift(),h=mkspan(vtype),h.tweecode=vsn[0];"function"==typeof this.setup&&this.setup(m,g,e,f)}function revisionSetup(m,g,e,f){m.className+=" "+f[0].replace(" ","_")}function keySetup(m,g,e,f){f[0];m.setEventListener("keydown",function l(){var done=!revise("revise",m);done&&m.removeEventListener("keydown",l)})}function timeSetup(m,g,e,f){function cssTimeUnit(s){if("string"==typeof s){if("ms"===s.slice(-2).toLowerCase())return Number(s.slice(0,-2))||0;if("s"===s.slice(-1).toLowerCase())return 1e3*Number(s.slice(0,-1))||0}return throwError(g,"<<"+e+'>>: "'+s+'" is not a valid CSS time unit'),0}var tm=cssTimeUnit(f[0]),s=passage();setTimeout(function timefn(){if(passage()===s){var done=!revise("revise",m);done||setTimeout(timefn,tm)}},tm)}function hoverSetup(m){var fn,noMouseEnter=null!==document.head.onmouseenter,m1=m.children[0],m2=m.children[1],gains=m2.className.indexOf("gains")>-1;m1&&m2&&(m1.onmouseenter=function(e){for(var efp=document.elementFromPoint(e.clientX,e.clientY);efp&&efp!==this;)efp=efp.parentNode;efp&&"false"!==this.getAttribute("data-enabled")&&revise("revise",this.parentNode)},m2.onmouseleave=function(e){for(var efp=document.elementFromPoint(e.clientX,e.clientY);efp&&efp!==this;)efp=efp.parentNode;efp||"false"!==this.getAttribute("data-enabled")&&revise("revert",this.parentNode)},gains&&(m1.onmouseleave=m2.onmouseleave),noMouseEnter&&(fn=function(n){return function(){event.relatedTarget&&(event.relatedTarget===this||this.compareDocumentPosition(event.relatedTarget)&Node.DOCUMENT_POSITION_CONTAINED_BY)||this[n]()}},m1.onmouseover=fn("onmouseenter"),m2.onmouseout=fn("onmouseleave"),gains&&(m1.onmouseout=m2.onmouseout)),m=null)}function mouseSetup(m){var evt=null===document.head.onmouseenter?"onmouseenter":"onmouseover";m[evt]=function(){var done=!revise("revise",this);done&&(this[evt]=null)},m=null}function linkSetup(m){var l=document.createElement("a"),p=m.parentNode;l.className="link-internal replaceLink",p.insertBefore(l,m),l.insertBefore(m,null),l.onclick=function(){var done=!1;m&&m.parentNode===this&&(done=!revise("revise",m),scrollWindowTo(m)),done&&(this.parentNode.insertBefore(m,this),this.parentNode.removeChild(this))},l=null}function visitedSetup(m){var done,sav=state.active.variables,os="once seen",d=m.firstChild&&("insert"===this.flavour?m.firstChild.nextSibling:m.firstChild).tweecode;if(sav[os]=sav[os]||{},d&&!sav[os].hasOwnProperty(d))sav[os][d]=1;else{for(var i=sav[os][d];i>0&&!done;i--)done=!revise("revise",m,!0);sav[os].hasOwnProperty(d)&&(sav[os][d]+=1)}}function insideDepartingSpan(elem){for(var r=elem.parentNode;!r.classList.contains("passage");){if(r.classList.contains("revision-span-out"))return!0;r=r.parentNode}}function reviseAll(rt,rname){for(var rall=document.querySelectorAll(".passage [data-flavour]."+rname),ret=!1,i=0;i<rall.length;i++)insideDepartingSpan(rall[i])||(ret=revise(rt,rall[i])||ret);return ret}function revise(rt,r,notrans){function doToGainerSpans(n,fn){for(var k=n-1;k>=0&&rc[k+1].classList.contains("gains");k--)fn(rc[k],notrans)}for(var ind2,curr,next,ind=-1,rev="revert"===rt,rnd=rt.indexOf("random")>-1,fl=r.getAttribute("data-flavour"),rc=r.childNodes,cyc="cycle"===fl,rcl=rc.length-1,k=0;rcl>=k;k++)"true"===rc[k].getAttribute("data-enabled")&&(ind=k);rev&&(ind-=1),curr=ind>=0?rc[ind]:cyc?rc[rcl]:null,ind2=ind,rnd&&(ind2=(ind+Math.floor(Math.random()*rcl))%rcl),next=rcl>ind2?rc[ind2+1]:cyc?rc[0]:null;var docurr=rev?showVer:hideVer,donext=rev?hideVer:showVer,currfn=function(){next&&next.classList.contains("gains")&&!rnd||(docurr(curr,notrans),doToGainerSpans(ind,docurr,notrans))},nextfn=function(){donext(next,notrans),rnd&&doToGainerSpans(ind2+1,donext,notrans)};return rev?(nextfn(),currfn()):(currfn(),nextfn()),cyc?!0:rev?ind>0:rcl-1>ind2}var requiredSugarCubeBuild=3805;if(!version||!version.build||version.build<requiredSugarCubeBuild)throw new Error("<<replacelink>> macro set requires SugarCube build "+requiredSugarCubeBuild+" or greater, aborting load");version.extensions.replacelinkMacroSet={major:1,minor:1,revision:7};var begintags=[],endtags=[];[{name:"insertlink",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:"replacelink",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:"continuelink",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,e.shorthand=["link","mouse","hover"].indexOf(e.trigger)>-1,macros[e.name]=e,macros.registerTags(e.name),begintags.push(e.name),endtags.push("/"+e.name,"end"+e.name)}),macros.revertlink=macros.reviselink=macros.randomiselink=macros.randomizelink={handler:function(a,b,c){function disableLink(l){l.style.display="none"}function enableLink(l){l.style.display="inline"}function updateLink(l){if(l.className.indexOf("random")>-1)return void enableLink(l);for(var cannext,canprev,r,fl,rall=document.querySelectorAll(".passage [data-flavour]."+rname),i=0;i<rall.length;i++)r=rall[i],fl=r.getAttribute("data-flavour"),insideDepartingSpan(r)||("cycle"===fl?cannext=canprev=!0:("false"===r.firstChild.getAttribute("data-enabled")&&(canprev=!0),"false"===r.lastChild.getAttribute("data-enabled")&&(cannext=!0)));var can=l.classList.contains("revert")?canprev:cannext;(can?enableLink:disableLink)(l)}function toggleText(w){w.classList.toggle(rl+"Enabled"),w.classList.toggle(rl+"Disabled"),w.style.display="none"===w.style.display?"inline":"none"}if(c.length<2)return void throwError(a,"<<"+b+">>: insufficient arguments (requires at least 2)");var l,rname,rl="reviseLink",v="",end=!1,out=!1;switch(rname=c.shift().replace(" ","_"),l=insertElement(a,"a"),l.className="link-internal "+rl+" "+rl+"_"+rname+" "+b,c.length>1&&"$"===c[0][0]&&(v=c[0].slice(1),c.shift()),c[c.length-1]){case"end":end=!0,c.pop();break;case"out":out=!0,c.pop()}for(var h=state.active.variables,i=0;i<c.length;i++){var on=i===Math.max(c.indexOf(h[v]),0),d=insertElement(null,"span",null,rl+(on?"En":"Dis")+"abled");on?(h[v]=c[i],l.setAttribute("data-cycle",i)):d.style.display="none",insertText(d,c[i]),l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);var lall,t=this.childNodes,u=this.getAttribute("data-cycle")-0,m=t.length;if((end||out)&&u>=m-(end?2:1)){if(!end)return void this.parentNode.removeChild(this);var n=this.removeChild(t[u+1]||t[u]);n.className=rl+"End",n.style.display="inline",this.parentNode.replaceChild(n,this)}else toggleText(t[u]),u=(u+1)%m,v&&(h[v]=c[u]),toggleText(t[u]),this.setAttribute("data-cycle",u);lall=document.getElementsByClassName(rl+"_"+rname);for(var i=0;i<lall.length;i++)updateLink(lall[i])},disableLink(l),setTimeout(function(l){return function(){updateLink(l)}}(l),1),l=null}},macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=["/"+b,"end"+b],evt=null===window.onmouseenter?"onmouseenter":"onmouseover",t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(">>",d.matchStart)+2);if(t){var rname=c[0].replace(" ","_"),h=insertElement(a,"span",null,"hoverrevise hoverrevise_"+rname),f=function(){var done=!reviseAll("revise",rname);"hoverrevise"!=b&&done&&(this[evt]=null)};new Wikifier(h,t[0]),"hoverrevise"===b?(h.onmouseover=f,h.onmouseout=function(){reviseAll("revert",rname)}):h[evt]=f,h=null}}},macros.registerTags("mouserevise"),macros.registerTags("hoverrevise"),macros.instantrevise={handler:function(a,b,c){reviseAll("revise",c[0].replace(" ","_"))}}}();\n
//A rare common happens!// <br><br><<display common1>>
A Man Sits In A Room
Ol Man Derko
//An uncommon uncommon happens!// <br><br><<display common1>>
//An uncommon uncommon happens!// <br><br><<display common2>>