<h3>Table</h3>
The low table is oblong and made of a blonde wood. There is a stack of coasters and a small [[basket]] in the center.
<<if $trapped eq true>>You can look around the [[room|mainRoom]].<<else>>The [[room|mainRoom]] is your to explore.<</if>><h3>Basket</h3>
Peeking into the basket, you find a few [[marbles]].
<<if $trapped eq true>>You can look around the [[room|mainRoom]].<<else>>The [[room|mainRoom]] is your to explore.<</if>><h3>Marbles</h3>
<<set $hasMarble to true>>
<<if visited() is 1>>
<q>Marbles. I haven't played with these in ages.</q> you say, picking up a marble.<br />
$name nods in agreement and continues to type on the laptop.
<<else>>You roll the Cat's Eye around in your palm, it's helping with your anxiety.<</if>>
<<if $trapped eq true>>You can look around the [[room|mainRoom]].<<else>>The [[room|mainRoom]] is your to explore.<</if>><h3>Dial</h3>
The lock has two rings with numbers on them.<br />
The outer ring has the numbers 1-0-2, in that order with 0 in the center. <br />
The inner ring has 0-7 embossed on it.<br />
An arrow is currently pointing to zero on both numbered rings.<br /><br />
The outer ring can spin clockwise or counter-clockwise. <br />
The inner ring can only spin counter-clockwise <br />
The arrow is fixed in place.
<br /><br />
[[Spin outer ring clockwise|dialFunction][$dir to "right"]]<br />
[[Spin outer ring counter-clockwise|dialFunction][$dir to "left"]]<br />
[[Spin inner ring|dialFunction][$dir to "mid"]]<br />
[[Back|tapestry]]<h3>Dial</h3>
<<lockWidget>>
<br /><br />
<<if $hiddenDoor eq true>>
[[Spin outer ring clockwise|dialFunction][$dir to "right"]]<br />
[[Spin outer ring counter-clockwise|dialFunction][$dir to "left"]]<br />
[[Spin inner ring|dialFunction][$dir to "mid"]]<br /><</if>>
You can return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]].<h3>Hidden Door</h3>
<<if $boltReleased is false>>
The door has a long [[bolt]] spanning the width of it.
There is a small [[opening|keyhole]] below the bolt.
There is a slight [[indentation]] in the door above the bolt.
<<else>>The door is open, revealing a cylindrical shaft going down.<</if>>
<<if $hasRope eq true and $doorLocked eq false>>[[Use Rope|ropeToLatch]]<br /><</if>>
You can return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]].<h3>Bolt</h3>
<<if $boltReleased is false>>The bolt spans the width of the door. It looks like it could [[slide|slideBolt]] in either direction.
<<else>>The lever is released allowing the bolt to [[slide|slideBolt]] out.<</if>>
You can return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]].<h3>Bolt</h3>
<<if $lever is false>>Something is keeping the bolt from sliding in either direction.
<<else>>You slide the bolt out, allowing the [[door |openDoor]] to be opened.
<<set $boltReleased to true>><</if>><br />
You can examine the [[hidden door|hiddenDoor]], return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]]<h3>Keyhole</h3>
<<set $atKeyhole to true>>
The keyhole is just a round opening. <<if $hasTwig eq false>>You don't seem to have anything that could fit in it.<</if>>
<br /><br />
<<if $hasTwig eq true>>[[Use twig|useTwig]]<br /><</if>>
[[Back|hiddenDoor][$atKeyhole to false]]<h3>Shaft</h3>
<<set $doorLocked to false>><<set $hiddenDoor to false>>
<<if visited() is 1>>Opening the door, you find a cylindrical shaft going down. <br />
<q>YOU FOUND THE SHAFT TO THE FRONT DOOR!</q> $name exclaims.<br />
<<else>>You're at the cylindrical shaft.<</if>>
It's just large enough for you to fit inside but there doesn't appear to be a way to climb down.
You can examine the [[hidden door|hiddenDoor]], return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]]
<<if $hasRope is true>><<ropeWidget>><</if>><h3>Shaft</h3><<set $ropeInShaft to true>>
Pulling the end of the rope into the shaft, you feed it down as far as it will go.
You could [[climb down|climbDown]] or [[return|mainRoom]] to the main room.
<<responseWidget>><h3>Shaft</h3>
You're about to make your escape, giving the room one last look.
You pause to find $name happily enjoying <i>An Admirer</i>. They look up at you and smile warmly.<br />
<q>WHAT DO YOU THINK OF MY TREEHOUSE?</q> they ask.<br />
Before you respond, you catch a familiar look in their eyes. The look of loneliness.
It’s the same feeling that brought you here in the first place.
<br /><br />
[[Return to Table|endGameA]]<br />
[[Climb down|endGameB]]<h3>Indentation</h3>
<<if $planetInserted eq false>>
The indentation looks like you could push something [[round]] into it. <<else>>
The indentation has a $planet model locked in place.<</if>>
You can return to the [[main room|mainRoom]] or examine the [[hidden door|hiddenDoor]].<h3>Indentation</h3>
<<if $hasMarble eq true>>You can try the [[marble|useMarble]].<br /><</if>>
<<if $hasPlanet eq true>>You can try [[$planet|usePlanet]].<br /><</if>>
<<if $hasMarble eq false and $hasPlanet eq false>>You don't have anything round to push into the indentation.
<</if>>
You can return to the [[main room|mainRoom]] or examine the [[hidden door|hiddenDoor]].<h3>Indentation</h3>
<<set $hasMarble to false>><<if $planetInserted eq false>>
You push the marble into the indentation. It stays for a moment then rolls out and drops to the floor.<<else>>
The $planet model is locked in the indentation.<</if>>
You can return to the [[main room|mainRoom]] or examine the [[hidden door|hiddenDoor]].<h3>Hidden Door</h3>
<<set $hasPlanet to false>>
<<if $planet eq "Venus">>You push the $planet model into the indentation and it snaps into place. You hear the sound of something sliding open.
<<set $planetInserted to true>>
You can return to the [[main room|mainRoom]] or examine the [[hidden door|hiddenDoor]].
<<else>>
<<set $planet to ''>>
You push the $planet model into the indentation but it doesn't fit properly and drops to the floor.
You can return to the [[main room|mainRoom]] or examine the [[hidden door|hiddenDoor]].<</if>><h3>Kitchen</h3>
The kitchen has a sink, a shelf of various glassware, and a work surface. A small [[fridge]] hums in the corner.
<br /><br />
[[Exit|tapestry]]<h3>Fridge</h3>
The fridge is made for beverages with a see-through door and is lighted within. It contains a variety of
beers, sodas and a few bottles of water. A couple bottles of wine lay flat on the top shelf.
A small [[notepad]] is stuck to the door with a magnet.
<br /><br />
[[Exit|tapestry]]<h3>Notepad</h3>
The notepad is a small, well used flip-top pad of paper. <br />
The top sheet has today's date at the top.<br />
<b>Tonight's Celestial Show</b>
<ul>
<li>The waxing gibbous moon will line up with Jupiter, Capella, and Aldebaran. </li>
<li>The Pleiades star cluster will also be nearby.</li>
<li>Venus shines brightest as the "Evening Star."</li>
</ul>
[[Exit|tapestry]]<<widget "lockWidget">>
<<set $counter to $counter + 1>>
<<if $dir eq "left">>
<<if $outer eq 0>>
<<set $outer to 2>>
<<elseif $outer eq 1>>
<<set $outer to 0>>
<<elseif $outer eq 2>>
You can't spin the outer ring counter-clockwise anymore.
<</if>>
<<elseif $dir eq "right">>
<<if $outer eq 0>>
<<set $outer to 1>>
<<elseif $outer eq 2>>
<<set $outer to 0>>
<<elseif $outer eq 1>>
You can't spin the outer ring clockwise anymore.
<</if>>
<<elseif $dir eq "mid">>
<<set $inner to $inner + 1>>
<</if>>
<<if $counter >= 6>>
<<set $outer to 0>><<set $inner to 0>><<set $counter to 0>>
The outer ring and inner ring roll back to zero. The letter ring rolls back to an empty space.
A audible clang sound is heard, causing $name to grimace.
<<elseif $readTracks eq false>>
<<set $outer to 0>><<set $inner to 0>><<set $counter to 0>>
You arbitrarily spin the ring for a moment and realize you're not sure what you're doing.
<<elseif $outer eq 2 and $inner eq 4>>
<<set $hiddenDoor to false>>
The tapestry suddenly rolls up, revealing a [[hidden door|hiddenDoor]].
<<else>>
The arrow points to $outer on the outer ring and $inner on the inner ring.
<</if>>
<</widget>>
<<widget "responseWidget">>
<<if $responses.length > 0>><<timed 400ms t8n>><<print $responses.pop()>><</timed>><</if>>
<</widget>>
<<widget "ropeWidget">>
<<if $hasRope eq true and passage() eq "purple" or passage() eq "black and white" or passage() eq "mandala">>
<br />The rope is not long enough to reach into here so you drop it.<<set $hasRope to false>><<set $ropeDropped to true>>
<<elseif $hasRope eq false and passage() eq "mainRoom" and $ropeInLedge eq true and $ropePulled eq true>>
<br />The [[rope|getRope]] runs in through the window then outside to the ledge. It's a tripping hazard.
<<elseif $hasRope eq true and passage() eq "ledge">>
<br />You could [[lower|useRopeLedge]] the rope down through the opening in the ledge.
<<elseif $hasRope eq true and passage() eq "openDoor">>
<br />You could [[lower|ropeToLatch]] the rope down into the shaft.
<<elseif $hasRope eq true and passage() eq "mainRoom">>
<<if $rope.length > 0>><<print $rope.pop()>><</if>>
<</if>>
<</widget>><h3>Rope</h3>
Looking up, you see the rope goes up through an opening in the middle of a ledge about 30 feet/9 meters up.
The end of the rope is about 15 feet/4.5 meters above you. You can <<if $jumped is false>>[[jump|Jump]]<<else>>[[try again|Try again]]<</if>> to reach it or go back to the [[door]].<h3>Rope</h3>
<<if $passage is "ledge">>You could [[drop|dropRope]] the end of the rope through the opening.
<<elseif $passage is "openDoor">>You could feed the [[rope|ropeToLatch]] down the shaft.
<<elseif $passage is "mainRoom">>There isn't much to do with the rope here but you can [[drop|carryDrop]] it for later.
<</if>>
<br /><br />
[[Return|previous()]]<h3>Rope</h3>
You drop the rope to the floor. You can [[pick it up|pickUpRope]] or [[continue|mainRoom]].
<<set $hasRope to false>><<set $ropeDropped to true>><h3>Rope</h3>
You drop the end of the rope through the opening in the ledge. You could [[climb down|exitLedge]] or [[exit|mainRoom]] the ledge.
<<set $ropeInLedge to true>><<set $hasRope to false>><h3>Ledge</h3>
The wooden ledge juts out from the treehouse. <<if $trapped eq true>>A tapestry hangs over a [[doorway|ladderDoor]].<</if>>
<<if $ropeInLedge eq true>>A rope is dangling down down through an opening in the ledge.
You can [[climb down|exitLedge]] the rope.
<<elseif $ropeInLedge eq false>>The rope has been pulled out from the opening.<</if>>
<<if $trapped eq false>>You can return to the [[main room|mainRoom]] or check out other [[tapestries|tapestry]].<</if>>
<<if $hasRope eq true>><<ropeWidget>><</if>><h3>Ledge</h3>
You slip through the opening in the ledge and shimmy down to the end of the rope. Looking down, you estimate a 15 foot/4.5 meter drop to the ground.
You could [[drop|jumpOffRope]] down or [[climb|climbUpRope]] back up the rope to the ledge.<h3>Rope</h3>
You let go of the rope and drop to the ground, breaking both legs, and some parts of your back and your neck.
It will be hours before $name comes looking for you.
<br /><br />
[[Credits|credits]]<h3>Rope</h3>
You climb back up the rope to the [[ledge]].<h3>Rope</h3>
<<set $jumped to true>>
With your best effort, you can't jump high enough to reach the end of the rope.<br />
You can <<if $jumped is false>>[[try to jump|Jump]]<<else>>[[try again|Try again]]<</if>> or go back to the [[door]].<h3>Rope</h3>
Running towards the tree, you jump as high as you can and land a foot on the tree then thrust up, just grabbing the end of the rope.
You pull yourself up and through the opening in the [[ledge][$travel to "rope"]].<h3>Window</h3>
From the window you find a thick [[rope|ropeOptions]] tied around a big branch about 15 feet/4.5 meters up from here.
<<if $ropeInLedge eq true and $ropePulled eq false>> The rope drapes over another branch then drops down through an opening in a ledge to your right.
<<elseif $ropeInLedge eq true and $ropePulled eq true>>The rope runs in through the window then out through the opening in the ledge to your right.
<<else>>The rope has been pulled in through the window.<</if>> You can return to the [[main room|mainRoom]] or check out other [[tapestries|tapestry]].<h3>Rope</h3>
<<if $ropeDropped eq true and $passage eq "mainRoom">>
You can [[pick up|pickUpRope]] the rope or [[continue|mainRoom]].
<<else>>
You could
<<if $ropeInLedge eq true and $ropePulled eq false>>
[[pull|pullRope]] the rope in through the window or
<<elseif $ropeInLedge eq true and $ropePulled eq true>>
[[pull|pullRope]] the rope back in from the ledge into the main room or
<</if>> [[climb|climbRope]] up the rope.
You can return to the [[main room|mainRoom]] or check out other [[tapestries|tapestry]].<</if>><h3>Window</h3>
<<if $ropeInLedge eq true and $ropePulled eq false>>
You pull the end of the rope in through the window.
<<set $ropeInLedge to false>><<set $hasRope to true>><<set $ropePulled to true>>
<<else>>You pull the rope back in from the ledge.<<set $ropeInLedge to false>><<set $hasRope to true>><</if>>
The [[rope|ropeOptions]] is still tied to the large branch above.
You can return to the [[main room|mainRoom]] or check out other [[tapestries|tapestry]].<h3>Window</h3>
You step out of the window and grab the rope. You climb up and find a [[loft|topRoom]] built atop the main room.
You can [[climb back down|climbDownFromBranch]] from here.<h3>Branch</h3>
You cling to the rope for dear life, easing your way down to the open window and swing [[back|mainRoom]] inside.
<br /><br /><h3>Ledge</h3>
You lower the rope down through the opening in the ledge. You could [[climb down|exitLedge]].
You can return to the [[main room|mainRoom]] or check out other [[tapestries|tapestry]].<<set $hasRope to false>><<set $ropeInLedge to true>><h3>Rope</h3>
You can [[pick up|pickUpRope]] the rope or [[continue|mainRoom]].<h3>Rope</h3>
<<set $hasRope to true>><<set $ropeDropped to false>>
You now have the rope. You can return to the [[main room|mainRoom]] or check out other [[tapestries|tapestry]].<h3>Ladder</h3>
The boards are neatly arranged up the trunk, with only one nail holding each in place.
You can climb the [[ladder|climbLadder]] up or step back from the [[tree|door]].<h3>Ladder</h3>
You carefully ascend up the ladder, making your way around protruding knots
until you reach the underside of a [[platform][$travel to "platform"]] with an access hatch in the middle.<h3>Platform</h3>
<<if $trapped is true>>The hatch is closed but you easily push it open and climb through.
From the platform, you find a colorful tapestry hanging over a [[doorway|ladderDoor]].<<else>>
The platform provides a fantastic view of the forest. The hatch is closed. <<if $hasTwig eq false>>There is a [[twig]] wedged in between an edge of the hatch and the floor.<</if>>
You can return to the [[main room|mainRoom]] or check out other [[tapestries|tapestry]].
<</if>><h3>Main Room</h3>
Pulling aside the tapestry, you enter the treehouse. <<if $travel eq "ladder">>The hatch slams closed behind you, causing you to jump.<</if>>
A member of the group is here, smiling. You’re trying to remember their name.
<br /><br />
[[Alex|greet][$name to "Alex"]]<br />
[[Jamie|greet][$name to "Jamie"]]<br />
[[Jordan|greet][$name to "Jordan"]]<br />
[[Micah|greet][$name to "Micah"]]<br />
[[Morgan|greet][$name to "Morgan"]]<br />
[[Sam|greet][$name to "Sam"]]<br />
[[Taylor|greet][$name to "Taylor"]]<h3>Library</h3>
<<if visited() is 1>>Following the shallow steps up, you climb into a small area with stacks of shelves.
The shelves form two walls that converge at an angle, making an odd-shaped room.<</if>>
The shelves are brimming with [[books]].
There is an open [[box]] on the floor.
<br /><br />
[[Exit|tapestry]]<h3>Box</h3>
The box is full of old vinyl albums.
The collection is from the 60s and 70s.
You flip through the sleeves, glancing over the covers.
A few catch your eye.
<br /><br />
[[The Doors]] by The Doors<br />
[[Tapestry]] by Carole King<br />
[[Bookends]] by Simon and Garfunkel<br />
[[Back|steps leading up]]<h3>The Doors Album</h3>
A fantastic album that brings back memories of your youth.
If a player was here, you'd listen to it right now.
<br /><br />
[[Back|box]]
<div class="container doors">
<h2>The Doors - The Doors</h2>
<h3>Side 1</h3>
<ol class="track-list">
<li>Break On Through (To the Other Side)</li>
<li>Soul Kitchen</li>
<li>The Crystal Ship</li>
<li>Twentieth Century Fox</li>
<li>Alabama Song (Whisky Bar)</li>
<li>Light My Fire</li>
</ol>
<h3>Side 2</h3>
<ol>
<li>Back Door Man</li>
<li>I Looked at You</li>
<li>End of the Night</li>
<li>Take It as It Comes</li>
<li>The End</li>
</ol>
</div><h3>Tapestry Album</h3>
Some of your favorite songs are on this album.
You scan through the songs, reminiscing about the good ol' days.
<br /><br />
[[Back|box]]
<div class="container tapestry">
<h2>Tapestry - Carole King</h2>
<h3>Side 1</h3>
<ol class=track-list>
<li>I Feel the Earth Move</li>
<li>So Far Away</li>
<li>It's Too Late</li>
<li>Home Again</li>
<li>Beautiful</li>
<li>Way Over Yonder</li>
</ol>
<h3>Side 2</h3>
<ol>
<li>You've Got a Friend</li>
<li>Where You Lead</li>
<li>Will You Love Me Tomorrow?</li>
<li>Smackwater Jack</li>
<li>Tapestry</li>
<li>(You Make Me Feel Like) A Natural Woman</li>
</ol>
</div><h3>Bookends Album</h3>
Another great album. You glance at the back cover and find a star next to Side 2, Track 4.
<<set $readTracks to true>>
<br /><br />
[[Back|box]]
<div class="container bookends">
<h2>Bookends - Simon and Garfunkel</h2>
<h3>Side 1</h3>
<ol class="track-list">
<li>Bookends Theme</li>
<li>Save the Life of My Child</li>
<li>America</li>
<li>Overs</li>
<li>Voices of Old People</li>
<li>Old Friends</li>
<li>Bookends Theme (Reprise)</li>
</ol>
<h3>Side 2</h3>
<ol>
<li>Fakin' It</li>
<li>Punky's Dilemma</li>
<li>Mrs. Robinson</li>
<li class="star">A Hazy Shade of Winter</li>
<li>At the Zoo</li>
</ol>
</div><h3>Library</h3>
You tilt your head to read the spines, scanning as many titles as possible before your neck starts to ache.
Most of the books appear to be quite old. A couple pique your interest.<br />
<br />
[[Huts and Hideaways]] by David R. Stiles<br />
[[How to Open Doors]] by G. Clarke<br />
[[A Peculiar Combination]] by Ashley Weaver<br />
[[Back|steps leading up]]<h3>Contents</h3>
This book is one of the newer ones on the shelf and is a history of locks and keys.<br /><br />
<b>Excerpt:</b><br />
The earliest known door lock was discovered during an archaeological excavation at the Palace of Khorsabad, which was constructed in ancient Assyria — what is now Northern Iraq.
Dated to around 4000 BCE, the lock had wooden pins of various lengths built into a bolt that kept a door from opening.
A [[lever-like key][$readBook to true]] was inserted that would lift the pins out of the way, allowing the bolt to be withdrawn and freeing the door.
<br /><br />
[[Back|books]]<h3>Key</h3>
<<if $hasTwig is true>>You immediately think of the twig.<<else>>
You don't have anything like that in your possession at the moment.<</if>>
<br /><br />
[[Back|books]]<h3>Contents</h3>
This book seems to be a self-help guide to <i>opening doors to a better career</i>.
<br /><br />
[[Back|books]]<h3>Contents</h3>
You scan the back cover.<br /><br />
<b>Excerpt:</b><br />
If you've ever dreamed of having a private hideaway -
a tree house, a hut in the woods, a tipi to crawl into -
here is the book that will delight, inspire, and perhaps, help make that dream come true.
<br /><br />
[[Back|books]][img[TreehouseColor.png]]<h3>The Beginning</h3>
You relocated to a new city a few weeks ago.<br />
You’ve settled in but have had a hard time meeting people outside of work.<br />
Christmas was quiet and New Years was even quieter.<br />
<br />
Then last week, while having breakfast at a local diner, you couldn't help but overhear the conversation at the [[table behind you]].<h3>Diner</h3>
The group was discussing their favorite psychological thrillers. No one had mentioned <i>your</i> favorite yet, so you decided to chime in.<br />
<q>But what about <i>Fatal Attraction</i>? It's an enduring classic in Pop Culture.</q> You said over your shoulder.<br /><br />
The group paused, exchanged glances, and then looked back at you.<br>
<q>You can sit with us!</q> one of them said and scooted over, making room for you.<br />
Your stomach flopped with anxiety, but you took a deep breath and [[slid into their booth|joined them]].<h3>Breakfast</h3>
They quickly added you to their group chat and spent the rest of breakfast making you feel welcomed.
You didn’t take the time to add in all their contact information to your phone so you only know them by their area codes, which, oddly enough, are all from different regions.<br /><br />
Before you parted ways, they invited you to [[game night]].<h3>Game Night</h3>
The work week seemed to be dragging by but game night is finally here.
You receive a message from the 919 area code person. It reads:<br /><br />
game night! take SR 58 east to black swamp, turn left at stop then follow dirt road into forest all the way to the [[end]].<br />
SYS!<h3>Forest</h3>
You followed the directions through the forest and have just arrived at the base of a very large tree.
Inset in the base of the trunk, you find a [[door]]. There is a thick [[rope]] dangling from a high branch and a set of boards nailed to the tree, making a [[ladder]].<h3>Door</h3>
A sign over the doorway reads <q>DO NOT ENTER</q>. <br />
You don't see a way to open it anyway.<br />
There's a thick [[rope]] dangling from a high branch to the right of the door.
Left of the door, a set of boards are nailed to the tree, making a [[ladder]].
<br /><br /><h3>Main Room</h3>
<q>$name, right?</q> you guess.<br />
<q>WELCOME!</q> they say with a smile.<br />
<q>I couldn't open the door so I improvised.</q> you explain.<br />
<q>YOU DID GOOD. THE SIGN IS A DETERRENT.</q> they admit.<br />
<q>I JUST WANT EVERYONE TO GO AWAY. BUT YOU, YOU CAN STAY.</q> they say in a matter-of-fact tone.
You take a step back, wondering why they’re talking so loud.<br /><br />
<q>WHAT CAN I GET YOU? [[BEER|drinkChoice][$drink to "beer"]], [[WINE|drinkChoice][$drink to "wine"]], [[WATER|drinkChoice][$drink to "water"]] or [[SODA|drinkChoice][$drink to "soda"]]? I HAVE THE CHEAP SODAS BUT GOOD WINE AND LIGHT BEERS.</q>
<br /><br /><h3>Main Room</h3>
<q><b>I’ll take $drink, thanks.</b></q> you say louder than normal as you’ve decided they must be hard of hearing.
They disappear behind a tapestry so you [[take a look|mainRoom]] around.<h3>Main Room</h3>
<<if visited() is 1>>Six tapestries hang on the walls, forming a hexagon-shaped room. The wooden floor is adorned with a kaleidoscope of antique rugs.
Tiny lights are strung about, infusing the space with warmth and wonder. Some lo-fi music is playing softly in the background.
A low table is centered in the room with pillows around it.
<br /><br>
$name emerges from behind a tapestry and hands you your $drink.<br />
<q>[[LET'S SIT!|sit]]</q> they say, crouching down to sit, their legs crisscrossing like a scissor lift.
<<else>>
<<if $trapped eq true>>The hexagon shaped room has [[tapestries|tapestry]] on every wall. You're sitting next to $name at a low [[table|table]] with [[pillows|pillows]] for seats.
<<else>>With $name preoccupied with <i>An Admirer</i>, you're free to explore the [[table|table]] and [[tapestries|tapestry]]. The [[pillows|pillows]] are just for sitting on.
<<if $ropeDropped eq true and $hasRope eq false>>The end of the [[rope|ropeOptions][$passage to passage()]] is here.<</if>>
<<responseWidget>><<ropeWidget>>
<</if>>
<</if>><h3>Main Room</h3>
<<set $sitting to true>>
You carefully balance your $drink as you ease yourself down onto a pillow.<br />
<q>I guess I’m the first one here.</q> you remark, taking a sip.<br />
<q>NO ONE ELSE IS COMING.</q> $name replies.<br />
Your eyebrows arch up in surprise. <q>What? I thought the whole group would be here?</q> <br />
<q>NOT TONIGHT. IT HAPPENS.</q> They shrug.
<br /><br />
[[We can reschedule.|leave]]<br />
[[So what are we playing?|stay]]<h3>Main Room</h3>
<q>We can reschedule.</q> you stutter and start to stand.<br />
<q>IT’S OK, YOU’RE ALREADY HERE.</q> $name says, putting their hand on your shoulder, gently forcing you back down to the pillow.
You laugh timidly, feeling anxious about being alone with a new person.
They pull a [[laptop]] out from under the table.<br /><h3>Main Room</h3>
<q>So what are we playing?</q> you ask.<br />
<q>I’M THE CAPTAIN BUT YOU CAN BE THE DEPUTY.</q> $name says, pulling a laptop out from under the table.<br />
<q>What game is that?</q> You laugh timidly, feeling anxious about being alone with a new person.<br />
<q>YOU'LL SEE.</q> $name nods, staying focused on the [[laptop]].<h3>Laptop</h3>
It's a big and bulky laptop. You peek over and see they’re logged into itch.io.<br />
<q>I DON’T THINK I’M EVER GONNA LET YOU LEAVE.</q> $name hums.<br />
<q>What?</q> you laugh, trying to play it off.<br />
<q>I’M REALLY GLAD YOU THINK I’M SO FUNNY.</q> They glance at you briefly then look back at the screen.
You nervously gulp down your $drink and start [[looking for the exit|mainRoom]].<br /><h3>Pillows</h3>
The Tatami style floor pillows are thick, round cushions made from knitted straw and stuffed with buckwheat hulls.
They are surprisingly comfortable, but serve no other purpose.
<br /><br />
[[Back|mainRoom]]<<nobr>>
<<set $name to ''>>
<<set $drink to "beer">>
<<set $trapped to true>>
<<set $sitting to false>>
<<set $travel to ''>>
<<set $jumped to false>>
<<set $passage to ''>>
<<set $lever to false>>
<<set $outer to 0>>
<<set $inner to 0>>
<<set $counter to 0>>
<<set $letter to ''>>
<<set $dir to ''>>
<<set $hasTwig to false>>
<<set $hasMarble to false>>
<<set $hasPlanet to false>>
<<set $planetInserted to false>>
<<set $planet to ''>>
<<set $planets to []>>
<<set $doorLocked to true>>
<<set $readBook to false>>
<<set $readTracks to false>>
<<set $hiddenDoor to true>>
<<set $boltReleased to false>>
<<set $hasRope to false>>
<<set $ropePulled to false>>
<<set $ropeInLedge to true>>
<<set $ropeInShaft to false>>
<<set $ropeDropped to false>>
<<set $responses = [
"<br />$name, who talks really loud and is usually all by themself, has gone quiet.",
"<br /><q>TOGETHER FOREVER. YES, LET'S DO THAT.</q> $name shakes their head in agreement.",
"<br /><q>LOVE ISN'T ONLY ABOUT TAKING.</q> $name scolds laptop.",
"<br /><q>DON'T BE ANGRY.</q> $name frowns.",
"<br /><q>HOW CAN THAT BE SADNESS?</q> $name clutches their chest.",
"<br /><q>I DON'T WANT TO MAKE YOU ANGRY.</q> $name replies sincerely.",
"<br /><q>HOW COULD YOU BE DEAD?</q> $name questions the laptop.",
"<br /><q>I LOVE YOU. NO BAD THINGS.</q> $name states.",
"<br /><q>HATE AND ANGER AND JEALOUSY. WHY?</q> $name scratches their head.",
"<br /><q>HOW CAN ANGER MAKE YOU STRONGER?</q> $name asks.",
"<br /><q>YOU CAN'T TAKE MY SOUL.</q> $name laughs.",
"<br /><q>FOREVER.</q> $name repeats with a dreamy look.",
"<br /><q>I'M NOT A GOD.</q> $name disagrees.",
"<br /><q>WHILE I SLEEP?</q> $name questions.",
"<br /><q>I DON'T WANT TO SEE BLOOD. I DON'T LIKE BLOOD.</q> $name whimpers.",
"<br /><q>LIVE IN <i>MY</i> SKIN?</q> $name ponders the idea.",
"<br /><q>WHAT SECRET FEELINGS?</q> $name replies, looking confused.",
"<br /><q>HOW CAN LOVE BE HATE? THAT'S JUST NOT RIGHT.</q> $name grumbles.",
"<br /><q>BUT I DO KNOW LONELINESS.</q> $name says, looking insists.",
"<br /><q>YOU CAN HAVE WHAT I HAVE. TAKE IT ALL.</q> $name says, smiling.<br /><q>Having fun, $name?</q>you ask.<br /><q>YES! THIS IS FUN!</q> $name says, nodding.",
"<br /><q>THAT'S NOT STUPID.</q> $name disagrees.",
"<br /><q>I DIDN'T IGNORE YOU. I JUST DIDN'T KNOW ABOUT YOU.</q> $name replies to the laptop with earnest.",
"<br /><q>MY SOUL HAS A SCENT?</q> $name shouts, louder than usual.",
"<br /><q>WHO, WHO, WHO. YOU SOUND LIKE AN OWL!</q> You hear $name laughing.",
"<br /><q>WHAT ELSE DO YOU KNOW ABOUT ME?</q> $name asks the laptop.",
"<br /><q>I DON'T PRETEND.</q> $name frowns.",
"<br /><q>LET'S TAKE IT TO THE NEXT STAGE!</q> $name exclaims.",
"<br /><q>YES. MORE TALK ABOUT LOVE. </q> $name coos.",
"<br />"
]
>>
<<set $rope = [
"<br />Now you're not sure why you took the heavy [[rope|carryingRope][$passage to passage()]] to begin with.",
"<br />You're starting to feel like a pack mule with this [[rope|carryingRope][$passage to passage()]].",
"<br />You've really got to figure out something to do with this [[rope|carryingRope][$passage to passage()]].",
"<br />The [[rope|carryingRope][$passage to passage()]] pulls up the corner of a rug. You quickly kick it back down.",
"<br />You drag the heavy [[rope|carryingRope][$passage to passage()]] behind you."
]
>>
<</nobr>><h3>Main Room</h3>
Concerned that you'll never leave the Treehouse again, you try to talk to $name.
<br /><br />
[[I need to make a phone call|phone]]<br />
[[I need to use the bathroom|bathroom]]<br />
[[I should really be going now|going]]<br />
[[I know a few games...|game]]<h3>Main Room</h3>
<q>I need to make a phone call. Can you excuse me for a moment?</q> you ask.<br /><br />
<q>FAT CHANCE UNLESS YOU OWN A SATELLITE PHONE.</q> $name says, not looking up from the screen.
<br /><br />
[[I need to use the bathroom|bathroom]]<br />
[[I should really be going now|going]]<br />
[[I know a few games...|game]]<h3>Main Room</h3>
<q>I need to use the bathroom.</q> you state with a hint of urgency.<br /><br />
<q>THERE ISN'T ONE.</q> $name snorts and continues to type.
<br /><br />
[[I need to make a phone call|phone]]<br />
[[I should really be going now|going]]<br />
[[I know a few games...|game]]<h3>Main Room</h3>
<q>I should really be going now.</q> you say, trying to stand.<br /><br />
<q>JUST STAY A LITTLE LONGER.</q> $name says, putting their hand out in a halting gesture.
<br /><br />
[[I need to make a phone call|phone]]<br />
[[I need to use the bathroom|bathroom]]<br />
[[I know a few games...|game]]<h3>Main Room</h3>
<<if visited() is 1>><q>I know a few games that I think you'll like.</q> you say confidently.
$name stops typing and looks at you. <q>WHAT ARE THEY?</q> they ask, intrigued.<br /><br />
<q>May I?</q> you ask, gesturing to the laptop.<br />
$name nods and slides the laptop over to you. In the search box, you type in "An" and hit enter.
A partial list of games pops up in no particular order.<<else>>You skim through the list.<</if>>
<br /><br />
[[Anchorhead|anchorhead]]<br />
[[And a Hippo New Year|hippo]]<br />
[[An Evening With The Evil Chicken Of Doom|chicken]]<br />
[[An Admirer|admirer]]<br /><h3>Main Room</h3>
<q><i>Anchorhead</i> by Michael Gentry</q> you suggest to $name.<br />
<q>TOO HARD.</q> they sigh, shaking their fist at the laptop.
<br /><br />
[[Back|game]]<h3>Main Room</h3>
<q><i>And a Hippo New Year</i>
by Adri ("Erin Gigglecreek"). It has three and half stars from 12 ratings.</q> you glance at $name. <br />
<q>THE HOLIDAYS ARE OVER. NO.</q> They say, shaking their head.
<br /><br />
[[Back|game]]<h3>Main Room</h3>
<q><i>An Evening With The Evil Chicken Of Doom</i> by Mel S.</q> you say, smiling.<br />
<q>I'VE PLAYED THAT ONE!</q> $name says, excitedly. <q>BUT NO.</q>
<br /><br />
[[Back|game]]<h3>Main Room</h3>
<q><i>An Admirer</i> by Amanda Walker</q> you offer. <q>It's a conversational piece.</q> you add.<br />
<q>HMMM. SOUNDS INTERESTING.</q> $name says, nodding. <q>LET'S PLAY THAT ONE.</q><br />
<q>Great!</q> you say, relieved. You load up the game then slide the laptop back to $name.<br />
They adjust their position on the pillow, then tap out a command.
<br /><br />
[[Next|conversation]]<h3>An Admirer</h3>
You watch as $name types out a message then carefully reads the output.<br />
<q>HI!</q> they respond to the laptop then lean in closer to the screen. <br />
<q>TALK ABOUT OUR LOVE?</q> $name repeats with surprise.<br />
<q>WAIT. HATE? WHAT DO YOU MEAN BY HATE?</q> they ask, scrunching their face.<br /><br />
You start to slide off the pillow, inching away from $name.<br />
<q>YES, LOVE. LET'S TALK ABOUT THAT!</q> they clap their hands together.<br /><br />
<q>Cool game, huh?</q> you ask but $name is enchanted by the game and doesn't respond.
<br /><br />
[[Next|mainRoom][$trapped to false]]<div class="spacey">
<h3>Tapestries</h3>
<<if visited() is 1>>
<q>The tapestries are beautiful. Mind if I take a closer look?</q> You ask.<br />
<q>LOOK ALL YOU WANT BUT STAY SEATED. WE'RE ABOUT TO GET STARTED.</q> $name instructs.
<<elseif $trapped eq true>>From the pillow, you look around the room.
<<else>>The collection of tapestries bear many secrets.
<<if $hasRope eq true>><<ropeWidget>><</if>>
<<responseWidget>><br />
<</if>>
</div>
<div class="spacey">
<br /><br />
[[Mandala Tapestry|mandala]]<br />
[[Black And White Tapestry|black and white]]<br />
[[Purple Tapestry|purple]]<br />
[[Seasons Tapestry|seasons]]<br />
[[Blue Tapestry|blue]]<br />
[[Sunburst Tapestry|sunburst]]<br />
<<if $trapped is true>>[["Talk to "+ $name |talk]]<br /><</if>>
[[Main Room|mainRoom]]
</div><h3>Purple Tapestry</h3>
The tapestry is mostly purple with paisley patterns printed all over it.
<<if $trapped eq true>>You admire the pattern from your pillow, trapped next to $name. <<else>>You pull it aside and discover some shallow [[steps leading up]].<</if>>
<<if $hasRope eq true>><<ropeWidget>><</if>>
<br /><br />
[[Back|tapestry]]<h3>Black And White Tapestry</h3>
This tapestry features black elephants parading in a circular pattern on a white background.
<<if $trapped eq true>>You admire the pattern from your pillow, trapped next to $name. <<else>>
You pull it aside to reveal a tiny [[kitchen]].<</if>>
<<if $hasRope eq true>><<ropeWidget>><</if>>
<br /><br />
[[Back|tapestry]]<h3>Blue Tapestry</h3>
This beautiful tapestry is a swirling pattern of different shades of blue.
<<if $trapped eq true>>You admire the pattern from your pillow, trapped next to $name. <<else>>
You pull aside the tapestry to reveal an open [[window|branch][$passage to passage()]].
<<if $hasRope eq true>><<ropeWidget>><</if>>
<</if>>
<br /><br />
[[Back|tapestry]]<h3>Mandala Tapestry</h3>
The mandala pattern is one of your favorites.
<<if $trapped eq true>>You admire the pattern from your pillow, trapped next to $name. <<else>>
You pull aside the tapestry and reveal a doorway leading to a [[platform|platform]]. <<if $travel eq "platform">>It's the one you came in from.<</if>><</if>>
<<if $hasRope eq true>><<ropeWidget>><</if>>
<br /><br />
[[Back|tapestry]]<h3>Sunburst Tapestry</h3>
The tapestry is a bright yellow sunburst, offering you a glimmer of hope.
<<if $trapped eq true>>You admire the pattern from your pillow, trapped next to $name. <<else>>
You pull aside the tapestry and reveal a doorway leading to a [[ledge|ledge]].<</if>>
<br /><br />
[[Back|tapestry]]<h3>Seasons Tapestry</h3>
<<if $hiddenDoor eq true>>The tapestry features two scenes stitched together as one. One side is a lush hillside of tall, green grass.
The other side has brown leaves on the ground and a hazy, wintery sky.
<<if $trapped eq true>>You admire the pattern from your pillow, trapped next to $name. <<else>>
There's a [[lock|lock]] in the center where the two tapestries meet.<</if>>
<<else>>The tapestry is now rolled up, revealing a <<if $hiddenDoor eq false and $doorLocked eq true>>[[hidden Door|hiddenDoor]].
<<elseif $doorLocked is false>>[[ door|openDoor]].<</if>><</if>>
<br /><br />
[[Back|tapestry]]<h3>Main Room</h3>
<q>I love your treehouse, $name.</q> you reply.
You step back to the table and grab your empty glass.
<q>Would you like another drink?</q> you ask.<br />
<q>SURE! I'll GET IT.</q> they say, starting to rise but you stop them.<br />
<q>Allow me. I know where the fridge is.</q> you smile and head to the kitchen.
<br /><br />
[[Credits|credits]]<h3>Main Room</h3>
<q>I'm not a huge fan of your treehouse.</q> You mumble to yourself as you make your decent into the dark shaft. The rope ends about half way down.
You drop down the remainder of the way, hitting the ground with a thud.<br />
Feeling around in the shadows, you aren't finding a way to open the front door.<br />
<q><b>$name. Is there a way to open this door?</b></q> you call up and wait for a response.<br />
<span class="up"><q><b>$name?</b></q></span>
<br /><br />
[[Credits|credits]]<h3>Credit</h3>
Welcome to My Treehouse by Deborah Sherwood<br />
An Interactive Fiction written for ShuffleComp 2024<br />
Based on the song <a href="https://genius.com/Alex-g-treehouse-lyrics" target="_blank" rel="noopener noreferrer">Treehouse by Alex G featuring Emily Yacina</a> <br />
Song submitted by A. Villarroel<br />
<br />
Special thanks to Amanda Walker for permission to include references and excerpts from her game, <a href="https://amanda-walker.itch.io/an-admirer" target="_blank" rel="noopener noreferrer">An Admirer</a>.<br />
<br />
Thanks to game testers: Amanda Walker and Andrew T.<h3>Loft</h3>
<<if visited() is 1>>You crawl through a very small window into a tiny alcove. There isn't room to stand so you lie down on a [[bamboo mat|mat]].
<<else>>The tiny loft is a nice place to spend your time.
The [[mobile]] of the solar system is nearby.
You could [[stay|stayRoom]] and watch the stars all night, or you could [[leave|exitBranch]].
<</if>><h3>Mat</h3>
Lying on the mat, you discover an amazing view of the night sky through a skylight in the roof.
A [[mobile]] of the solar system is just above your head.
You could [[stay|stayRoom]] and watch the stars all night, or you could [[leave|exitBranch]].<h3>Mobile</h3>
<<if visited() is 1>>The mobile features models of the planets rotating around the sun.
The planets are made of glass and are sized appropriately to their actual size on a small scale. You're tempted to take one.
<<else>>The mobile is a beautiful representation of the solar system but <<if $planets.length eq 1>>one<<else>>some<</if>> of the planets <<if $planets.length eq 1>>is<<else>>are<</if>> missing.<</if>>
<br /><br />
<<if $planets.includes("Mercury")>><<else>>[[Mercury|takeOne][$planet to "Mercury"]]<br /><</if>>
<<if $planets.includes("Venus")>><<else>>[[Venus|takeOne][$planet to "Venus"]]<br /><</if>>
<<if $planets.includes("Earth")>><<else>>[[Earth|takeOne][$planet to "Earth"]]<br /><</if>>
<<if $planets.includes("Mars")>><<else>>[[Mars|takeOne][$planet to "Mars"]]<br /><</if>>
<<if $planets.includes("Jupiter")>><<else>>[[Jupiter|takeOne][$planet to "Jupiter"]]<br /><</if>>
<<if $planets.includes("Saturn")>><<else>>[[Saturn|takeOne][$planet to "Saturn"]]<br /><</if>>
<<if $planets.includes("Uranus")>><<else>>[[Uranus|takeOne][$planet to "Uranus"]]<br /><</if>>
<<if $planets.includes("Neptune")>><<else>>[[Neptune|takeOne][$planet to "Neptune"]]<br /><</if>>
[[Back|topRoom]]<h3>Mobile</h3>
<<set $hasPlanet to true>><<run $planets.push($planet)>>
You take $planet. You could [[stay|stayRoom]] and watch the stars all night, or you could [[leave|exitBranch]].<h3>Loft</h3>
You lay quietly on the mat, watching the stars twinkle in the night sky.
Suddenly, your feet drop and you slide down into the kitchen, landing on the floor with a jolt.
<br /><br />
[[Continue|kitchen]]<h3>Loft</h3>
You maneuver yourself back out the window and cling to the rope for dear life.
You ease yourself down to the open [[window|branch]] and scoot back inside.<h3>Twig</h3>
The twig is sticking straight up.
You can [[take|takeTwig]] it or [[leave|platform]] it.
You can return to the [[main room|mainRoom]].<h3>Twig</h3>
<<set $hasTwig to true>>
You yank the [[twig|twigTaken]] from the seam. The edge of the hatch pops up slightly then drops back down, closing flush.
You can return to the [[main room|mainRoom]].<h3>Twig</h3>
The hardwood twig is about the length of your hand and smooth to the touch.
There is a slight bend in the middle. You can return to the [[main room|mainRoom]].<h3>Twig</h3>
<<if $hiddenDoor eq true>>
You can't think of a use for the twig at the moment.
<<if $trapped eq true>>You can look around the [[room|mainRoom]].<<else>>The [[room|mainRoom]] is your to explore.<</if>>
<<elseif $hiddenDoor eq false and $readBook eq true and $atKeyhole eq true and $planetInserted eq true>>
You slide the twig into the keyhole and push it down slightly, producing an unlatching sound.<<set $lever to true>><br />
You can examine the [[hidden door|hiddenDoor]], return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]]
<<elseif $hiddenDoor eq false and $planetInserted eq false>>
You try to push the twig into the keyhole but something is blocking the opening.
<br />
You can examine the [[hidden door|hiddenDoor]], return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]]
<<else>>
There doesn't seem to be a use for the twig here.
<br />
You can examine the [[hidden door|hiddenDoor]], return to the [[main room|mainRoom]] or check out more [[tapestries|tapestry]]
<</if>>