<<set $blockchest = true>>\n<<if $size gt $depth + 3>>\n You reach for the chest's lid, but it towers over you. You can't even reach the lock.\n\n <<display "HoleControls">>\n<<else>>\n <<if $keyheld lt 0>>\n The chest is locked tight.\n\n <<display "HoleControls">>\n <<else>>\n <<if $size gt $depth + 2>>\n You can stretch to reach the lock, but even if you do, the key you hold is actually much smaller than the lock. You rattle it loosely inside.\n\n <<display "HoleControls">>\n <<else>>\n You put the key in the lock and turn. It unclasps with a metallic click. At last, you have found it: the lost treasure of Wacław Sierpiński.\sn\sn\n\n You open the box.\n\n <<id passagelinks>>\sn[[Look inside|Terminus]]<<endid>>\n <<endif>>\n <<endif>>\n<<endif>>
You stride through the <<print $doorname>> in the wall of the pyramid.\sn\sn\n\n<<display "Hole">>
You are in another pyramid-shaped room. At the room's end, on a small stone pedestal, sits a key.\n\n<<id passagelinks>>\sn\n[[Take the key|ActKey]]\sn\sn\n\n[[Exit the chamber|ActExitHole2]]\n<<endid>>
<h1>Sierpiński's Tomb</h1><h2>by Andi</h2>\n\n<<id passagelinks>>\sn\n[[Begin.|Outside]]\n<<endid>>
<<if typeof $startup === 'undefined'>>\n\n<<set $startup = true>>\n<<set $everbeeninside = false>>\n\n<<silently>>\nVariables track depth of: Player position, player size, lowest depth we've seen the vial at, lowest depth we've seen the mousehole at.\n\nWhen player size is equal to position, the pyramid is "your size" and can be entered.\n\nWhen player size is equal to position+1, the mousehole can be entered and the chest can be opened.\n\nWhen player size is equal to position+3, the mousehole mousehole can be entered and the key can be obtained.\n<<endsilently>>\n<<set $depth=0>>\n<<set $size=0>>\n<<set $vialknown= -1>>\n<<set $holeknown= -1>>\n<<set $pyraknown= -1>>\n<<set $chstknown= -1>>\n<<set $hol2known= -1>>\n<<set $keyheld= -1>>\n\n<<endif>>\n\nYou stand <<if $everbeeninside>>outside<<else>>before<<endif>> the tomb of Wacław Sierpiński.\sn\sn\n\nIt strikes one as somewhat ostentatious for the grave of a mathematician, though it is simple enough in design-- a stone pyramid adorned with engraved lines. The door is ajar.\n\n<<set $everbeeninside = true>>\n\n<<id passagelinks>>\sn\n[[Enter the tomb|ActEnter]]\n<<endid>>
It's a commemorative T-shirt.
<<id passagelinks>>\sn\n\n<<if $depth lte $size>>\n [[Enter the pyramid|ActEnter]]\sn\sn\n<<else if $depth gt $pyraknown>>\n [[Inspect scale model|ActPyramid]]\sn\sn\n<<endif>>\n\n<<if $depth gt $vialknown>>\n [[Search the room|ActSearch]]\sn\sn\n<<else>>\n <<if $size == $depth - 1>>\n [[Drink the vial|ActDrink]]\sn\sn\n <<endif>>\n <<if $depth gt $holeknown>>\n [[Search the room again, more carefully|ActSearch2]]\sn\sn\n <<endif>>\n<<endif>>\n\n<<if $depth lte $holeknown>>\n <<if $size == $depth>> <<silently>>I.E. ready to enter pyramid<<endsilently>>\n <<if not $blockholeknees>>\n [[Inspect the hole in the wall|ActHoleKnees]]\sn\sn\n <<endif>>\n <<else if $size == $depth + 1>>\n <<set $doorname = "doorway">>\n [[Enter the doorway in the wall|ActEnterHole]]\sn\sn\n <<else if $size gte $depth + 2>>\n <<set $doorname = "tunnel opening">>\n [[Enter the opening in the wall|ActEnterHole]]\sn\sn\n <<endif>>\n<<endif>>\n\n[[Exit the chamber|ActExit]]\n<<endid>>
<<display "HoleKneesDescribe">>\n\n<<display "HoleControls">>
You stride back out the <<print $doorname>>, into the main pyramid.\sn\sn\n\n<<display "Inside">>
<<set $sizetarget=$depth-1>>\n<<display "ActHoleFind">>\n\n<<set $holeknown=$depth>>\n\n<<display "InsideControls">>
(function () {\n\n version.extensions['pyramid'] = {\n major: 0,\n minor: 1,\n revision: 1\n };\n\n macros['id'] = { // Assign a div id to a part of a passage. Incorporates sections of L's "replace" macro\n handler: function (place, macroName, params, parser) {\n var afterTagIdx = parser.source.indexOf('>>', parser.matchStart) + 2;\n var afterTag = parser.source.slice(afterTagIdx);\n var endAt = -1;\n var tagInner = '';\n var depth = 0;\n var macroNameLen = macroName.length\n for(var i = 0; i < afterTag.length; i++) {\n if(afterTag.substr(i, 7 + macroNameLen) == '<<end' + macroName + '>>') {\n if(depth == 0) {\n endAt = afterTagIdx + i + 7 + macroNameLen;\n break;\n }\n else {\n depth--;\n tagInner += afterTag.charAt(i);\n }\n }\n else {\n if(afterTag.substr(i, 2 + macroNameLen) == '<<' + macroName) {\n depth++;\n }\n tagInner += afterTag.charAt(i);\n }\n }\n var rest = parser.source.slice(endAt)\n var name = Wikifier.parse(params[0])\n\n if (name) {\n tagInner = "<div id=\s"" + name + "\s">" + tagInner + "</div>"\n new Wikifier(place, tagInner);\n }\n \n new Wikifier(place, rest);\n \n parser.nextMatch = parser.source.length // We exhausted the string, so halt this parser.\n }\n }\n macros['endid'] = {\n handler: function (place, macroName, params, parser) { sendHandler.handler(place,macroName,params,parser) }\n }\n\n}());
You walk slowly around the chamber. The walls are unadorned; you see nothing which might contain Sierpiński's corpse or ashes, except the smaller pyramid at the center.\sn\sn\n\nCut into the back of the smaller pyramid is a small shelf, slotted into which is a small, corked vial. Neatly engraved into the glass are words in Polish:\sn\sn\n\n"SHRINKING POTION".\n\n<<set $vialknown=$depth>>\n\n<<display "InsideControls">>
<<display "HoleKneesDescribe">>\n\n<<display "InsideControls">>
/* Hide things */\n.passage .title { display: none } \n#footer {display:none}\n#sidebar #credits:hover{color:#333;visibility:hidden;}\n#sidebar #credits a{text-decoration:none;visibility:hidden;}\n#storySubtitle{font-size:75%; display:block;}\n#storyAuthor{font-size:50%;}#sidebar #storyMenu{display:none;line-height:2.5em;margin-bottom:.5em;}\n#sidebar #title:hover{color:#999;}\n#storyTitle{display:none!important;}\n#floater{display:none}\n\n/* Align things */\nh1,h2,h3 {text-align:left; font-style:normal;}\n\n/* ~~Design~~ */\nbody {font-family: Helvetica, Arial; font-size: 12pt;}
You stride through the <<print $doorname2>> in the wall adjoining the chest.\sn\sn\n\n<<display "Hole">>
You stride back out the <<print $doorname>>, into the other pyramidal room.\sn\sn\n\n<<display "Hole">>
<<set $depth=$depth - 1>>\n\nYou <<if $size lte $depth+1>>squeeze back out the heavy stone door<<else>>stride back out the open door<<endif>>, out of the pyramid.\sn\sn\n\n<<if $depth==0>>\n<<display "Outside">>\n<<else>>\n<<display "Inside">>\n<<endif>>
You <<if $size lte $depth+1>>squeeze through the heavy stone door<<else>>stride through the open door<<endif>>, into the pyramid.\sn\sn\n\n<<set $depth = $depth + 1>>\n\n<<display "Inside">>
You stand inside the tomb of Wacław Sierpiński. The chamber is\n\n<<if $size == $depth - 1>>tall enough to stand comfortably inside.\n<<else if $size == $depth>>tall and cathedral-like.\n<<else if $size == $depth+1>>vast and cavernous, the ceiling towering above you.\n<<else if $size == $depth+2>>unfathomably large.\n<<else>>unfathomably large, the walls as distant as the sky.<<endif>>\sn\sn\n\nAt the center of the room <<if $size == 0>>you find<<else>>is<<endif>> a scale model of the tomb itself— about one-fourth the size of the <<if $size == 0>>structure you stand in now<<else>>room itself<<endif>>, with the same decorative pattern of engraved <<if $size != 0>>lines as the outer pyramid.<<else>>lines.<<endif>> Its door is slightly ajar. <<if $size == $depth - 1 and $depth lte $vialknown>>A small shelf cut into the back holds a vial.<<endif>>\n\n<<set $sizetarget=$depth-1>>\n<<set $knowntarget=$holeknown>>\n<<display "HoleDescribe">>\n\n<<set $blockholeknees = false>>\n\n<<display "InsideControls">>
You get down on your knees and investigate the hole in the wall. There seems to be a little compartment in there, at the other end of a short chute. However the passageway is too small to safely squeeze into.\n\n<<set $blockholeknees = true>>
You stand inside a pyramid-shaped room. <<if $size eq $depth + 2>>It is tall enough to stand comfortably inside.<<endif>> At one end, hewn into the wall, there is a <<if $size gt $depth + 3>>mammoth<<else if $size gt $depth + 2>>giant<<endif>> stone chest with a heavy brass lock.\n\n<<set $sizetarget=$depth+1>>\n<<set $knowntarget=$hol2known>>\n<<display "HoleDescribe">>\n\n<<set $blockholeknees = false>>\n<<set $blockchest = false>>\n\n<<display "HoleControls">>
This expects to be built with the custom Jonah found in\n\nhttps://bitbucket.org/runhello/twine\n\nRevision 9172811979eb
<<id passagelinks>>\sn\n\n<<if not $blockchest>>\n [[Open the chest|ActChest]]\sn\sn\n<<endif>>\n\n<<if $depth gt $hol2known>>\n [[Search the room|ActHoleSearch]]\sn\sn\n<<else>>\n <<if $size == $depth + 2>>\n <<if not $blockholeknees>>\n [[Inspect the hole in the wall|ActHoleKnees2]]\sn\sn\n <<endif>>\n <<else if $size == $depth + 3>>\n <<set $doorname2 = "doorway">>\n [[Enter the doorway in the wall|Hole2]]\sn\sn\n <<else if $size gte $depth + 4>>\n <<set $doorname2 = "tunnel opening">>\n [[Enter the opening in the wall|Hole2]]\sn\sn\n <<endif>>\n<<endif>>\n\n[[Exit the chamber|ActExitHole]]\n<<endid>>
You uncork the vial and down it.\sn\sn\n\nNothing happens for a moment. Then a wave of dizziness comes over you. You drop the vial and fall to your hands and knees. Your bones feel like they're shuddering beneath your skin. Your lungs feel tight, it is difficult to breathe, the feeling passes, then it returns. It feels like you're being squeezed over and over by a giant hand. You clutch the floor, unable to do anything else until finally it stops.\sn\sn\n\nYou stand up, bracing yourself against the pyramid. You find that the shelf you found the vial on, which before was a little below waist-height, is now just above your head.\sn\sn\n\n<<if $keyheld gt 0>>The key you held in your hand is now too large and heavy to take with you. <<set $keyheld= -1>>\sn\sn<<endif>>\n\n<<set $size = $size + 1>>\n\n<<display "Inside">>
<<silently>>$sizetarget should be 0 when the hole is mousehole sized.<<endsilently>>\n\n<<if $depth lte $knowntarget>>\n <<if $size == $sizetarget>>\sn\snThere is a small, mouse-sized hole cut into one wall.\n <<else if $size == $sizetarget + 1>>\sn\snThere is a knee-height hole cut into one wall.\n <<else if $size == $sizetarget + 2>>\sn\snThere is a doorway cut into one wall.\n <<else>>\sn\snThere is a large tunnel opening cut into one wall.\n <<endif>>\n<<endif>>
<<set $sizetarget=$depth+1>>\n<<display "ActHoleFind">>\n\n<<set $hol2known=$depth>>\n\n<<display "HoleControls">>
<<silently>>$sizetarget should be 0 when the hole is mousehole sized.<<endsilently>>\n\nYou throughly inspect every surface of the room.\sn\sn\n\nYou discover cut into the base of one wall is a <<if $sizetarget gt $size - 2>>small<<endif>> arched opening, \n<<if $sizetarget == $size>>\nabout six inches high, like the mouse holes in old cartoons.\n<<else if $sizetarget == $size - 1>>\nabout knee height.\n<<else if $sizetarget == $size - 2>>\nabout tall enough to walk through comfortably.\n<<else>>\nlooming above you.\n<<endif>>
You swing open the door-- the little pyramid is like a small cabinet. You couldn't easily fit inside, but you can see in. Inside you find a smooth stone compartment, and at the center, yet another pyramid scale model of the tomb.\n\n<<set $pyraknown=$depth>>\n\n<<display "InsideControls">>
<<if $size == $depth + 3>>\nYou take the key.\n<<set $keyheld=$size>>\n<<else>>\nThe key is much too large and heavy to take with you.\n<<endif>>\n\n<<id passagelinks>>\sn\n[[Exit the chamber|ActExitHole2]]\n<<endid>>