(story title)The Impossible Stairs (story author)Mathbrush (additional banner text) Written in Dialog. Authorized sequel to The Impossible Bottle by Linus Åkesson. (story release 2) (story ifid) A0BF6B67-681B-450E-968D-06140037D408 (global variable (TimeAge 3)) %%===================================================Player Character=================================================== #CJ (current player *) (female *) (name *) me (dict *) CJ (* is #in #FrontLawn) (descr *) (TimeAge $CurrentTime) (if) ($CurrentTime = 1)(then) Moving into this new house has been a big adventure for a little kid like you. (elseif) ($CurrentTime = 2)(then) Visiting from college has done wonders for you. Everyone around you likes you, your laundry's done, and you're happy. (elseif) ($CurrentTime = 3)(then) You're still feeling a bit frazzled from the hurricane and helping your dad pack for his big move, but otherwise you're doing fine. (elseif) ($CurrentTime = 4)(then) You've felt much calmer now that you're contemplating retirement. It'll be nice to have a break from work. (else) It's harder to get around these days, especially bending down to grab things. It's one reason you've had to sell the house. But it's had a good run, and, so far, so have you. (endif) #leg (name *) leg (descr *) This is your leg. You've had it quite a while, and have grown fond of it. (* is #partof #CJ) (prevent [show * to #Ada3]) "No, I need a leg I can keep here with me. Like an animal leg, or something." (library links enabled) (default actions enabled) %%===================================================Introduction and initial settings=================================================== (intro) (banner) What a mess! The hurricane did a real number on the old (#lawnhouse), and to think it would happen the week that your dad is moving out! (par) You notice some movement from an upstairs window. A woman that looks somewhat familiar leans out and throws out a (#paperairplane) that floats down and lands by you. (par) "There you go, CJ! See you at dinner!" she shouts, then slams the window shut. (par) "Huh. Who the heck was that?" you say to yourself. (if)(interpreter supports links)(then) (now)(tutorialoff) (par) (italic)This version of Impossible Stairs has clickable links to facilitate gameplay. All links can be turned off through the menu in the upper-right corner of the game window.(roman) (endif) (if)~(tutorialoff)(then) (par) \[Tutorial: You can LOOK to check out your surroundings. You can type TUTORIAL OFF to turn off this brief tutorial at any time.\] (endif) (now)(turnonstatus) (now)(player's it refers to #paperairplane) %%===================================================Goal checking=================================================== (on every tick) ~(#servingdish undelivered) (#plates is #on #KitchenTable) (#UncleRob follows) (baklavadone) ~(#emma is #in #Kitchen) (now)~(#frontdoor notendstate) (TimeAge $CurrentTime) (par) You hear someone knocking (if)($CurrentTime < 2)(then) upstairs. (elseif)($CurrentTime > 2)(then) downstairs. (else) at the front door. (endif) (perform [listen to $]) ~(#servingdish undelivered) (#plates is #on #KitchenTable) (#UncleRob follows) (baklavadone) ~(#emma is #in #Kitchen) (now)~(#frontdoor notendstate) (on every tick) (if)(interpreter supports links)(then) (now)(tutorialoff) (elseif)(tutorialreallyoff)(then) (else) (now)~(tutorialoff) (endif) %%===================================================Object Rules for time travel=================================================== %%Scenery Objects moving in time (on every tick) (TimeAge $CurrentTime) *(animate $object) ~(partytime) ($object dies $deathtime) ($object livesin $destination) (if)($CurrentTime > $deathtime)(then) (now)($object is #in #Limbo) (else) (if)($object = #unclejoe)($CurrentTime > 1)(then) (now)($object is #in #Kitchen) (else) (now)($object is #in $destination) (endif) (endif) (on every tick) (TimeAge $CurrentTime) *($object born $birthtime) (if)($CurrentTime < $birthtime)(then) (now)($object is #in #Limbo) (else) (now)($object is #in #BigOffice) (endif) #ProtoLimbo (room *) (on every tick) (TimeAge $CurrentTime) *($object prototypeDone) (if)($CurrentTime = 5)(then) (if)($object is #in #Garage)(then) (now)($object is #in #ProtoLimbo) (endif) (elseif)($object is #in #ProtoLimbo)(then) (now)($object is #in #Garage) (endif) (on every tick) (TimeAge $CurrentTime) *($object sceneryObj) ($object sitsin $destination) (if)($object age $CurrentTime)(then) (now)($object is #in $destination) (else) (now)($object is #in #Limbo) (endif) (on every tick) (TimeAge $CurrentTime) *($object travels) (if) ($object is #on #pedestal)(then) (now)($object pedestaled) (#Pedestal is #in $currentRoom) (now)($object belongs $currentRoom) (now)($object age $CurrentTime) (elseif)($object is #heldby #CJ)(then) (now)~($object pedestaled) *(stablesupporter $supporter) (now)~($object beihSupport supporter) (#CJ is #in $currentRoom) (now)($object belongs $currentRoom) (now)($object age $CurrentTime) (else) (now)~($object pedestaled) ($object belongs $destination) (if)($object age $CurrentTime)(then) ($object is #on $supporter) (stablesupporter $supporter) (now)($object beihSupport $supporter) (or) (if) ($object beihSupport $supporter)(then) (now)($object is #on $supporter) (else) (now)($object is #in $destination) (endif) (else) (now)($object is #in #Limbo) (endif) (endif) %%===================================================Status Lines=================================================== (style class @status) height: 1em; (style class @timename) height: 1em; font-size: .9em; (style class @instatus) height: 2em; font-size: .9em; margin-top: .9em; (style class @help) height: 1em; width: 20ch; float: right; font-size: .9em; margin-top: .1em (barTime) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) Year: 1961 (elseif)($CurrentTime = 2)(then) Year: 1981 (elseif)($CurrentTime = 3)(then) Year: 2001 (elseif)($CurrentTime = 4)(then) Year: 2021 (else) Year: 2041 (endif) (redraw status bar) (status bar @status) { (if)(interpreter supports links)(then) (div @help) { (link){Help} } (endif) (div @timename){ (space 1)(barTime) Place:(status headline) } } (if)(interpreter supports links)(then) (if)(turnonstatus)(then) (inline status bar @instatus){(statuscontents)} (endif) (endif) (statusactivate node $obj) (now)~(turnonstatus) (activate node $obj) (after disp (terminating $)) (now)(turnonstatus) (statuscontents) (par) \[(link){Look},(link){Inventory}, (if)(#ToDoList is #heldby #CJ)(then) (link){Goals}; (endif) (exitlinks); (contextlinks) \] (exitlinks) (current room $currentRoom) (collect $Obj) *(from $currentRoom go $Obj to $) (into $List) (A $List) (pronoun $object) (if)($object = #CJ)(then) me (elseif)(female $object)(then) her (elseif)(male $object)(then) him (elseif)(plural $object)(then) them (else) it (endif) (global variable (LastObject #paperairplane)) (after [examine $obj]) ~(not here $obj) (now)(LastObject $obj) (after [take $obj]) ~(not here $obj) (now)(LastObject $obj) (on every tick) (LastObject $obj) ~($obj is in scope) (now)(LastObject #Limbo) %%objcounter's only purpose is to make links not 'sticky' %%(after [examine $obj]) %% (now)(LastObject $obj) %% (now)~($obj oncenoticed) %%(after (notice player's $obj)) %% (now)(LastObject $obj) %% (now)~($obj oncenoticed) (contextlinks) (malelinks) (femalelinks) (itemlinks) (itemslinks) (malelinks) (LastObject $tempLast) (him refers to $tempLast) (object $tempLast) (name $tempLast): (link){Talk to (pronoun $tempLast)} (or) (femalelinks) (LastObject $tempLast) (her refers to $tempLast) (object $tempLast) (name $tempLast): (link){Talk to (pronoun $tempLast)} (or) (itemlinks) (LastObject $tempLast) (player's it refers to $tempLast) (object $tempLast) (if)($tempLast is #heldby #CJ)(then) (name $tempLast): (link){Examine (pronoun $tempLast)}, (link){Give (pronoun $tempLast)}, (link){Drop (pronoun $tempLast)} (if)($tempLast = #sapling)(then) (link){Plant it}, (endif) (if)($tempLast = #servingdish)(then) (if)(#dishtowel is #heldby #CJ)(then) (link){Wipe it}, (endif) (endif) (else) (name $tempLast): (link){Examine (pronoun $tempLast)}, (if)($tempLast is closed)(then) (link){Open it}, (endif) (if)($tempLast = #oldtelevision)(then) (link){Change channel}, (endif) (if)($tempLast = #newtelevision)(then) (link){Change channel}, (endif) (if)($tempLast = #dial)(then) (link){Turn it}, (endif) (link){Take (pronoun $tempLast)} (now)($tempLast oncenoticed) (endif) (or) (itemslinks) (LastObject $tempLast) (them refers to $tempLastArray) ($tempLast is one of $tempLastArray) (object $tempLast) (if)($tempLast is #heldby #CJ)(then) (name $tempLast): (link){Examine (pronoun $tempLast)}, (link){Give (pronoun $tempLast)}, (if)($tempLast = #sapling)(then) (link){Plant it}, (endif) (if)($tempLast = #servingdish)(then) (if)(#dishtowel is #heldby #CJ)(then) (link){Wipe it}, (endif) (endif) (link){Drop (pronoun $tempLast)} (now)($tempLast oncenoticed) (if)($tempLast = #plates)(then) (if)(current room #Kitchen)(then) (link){Put them on table}, (endif) (endif) (else) (name $tempLast): (link){Examine (pronoun $tempLast)}, (if)($tempLast is closed)(then) (link){Open it}, (endif) (link){Take (pronoun $tempLast)} (now)($tempLast oncenoticed) (endif) (or) (perform [give $Obj]) To whom? (if)(interpreter supports links)(then) (par) (current room $currentRoom) (collect $Person) *(animate $Person) ($Person is #in $currentRoom) ~($Person = #CJ) (into $List2) (if)~(empty $List2)(then) Available people: (a $List2). (endif) (endif) (asking for object in [give $Obj to []]) (instead of [give #ToDoList to $person]) (if)($person = #CJ)(then) You assign yourself the chores. (else) You're not the kind of person to give away your chores to others. (endif) (instead of [give #dishtowel to $person]) You're pretty sure no one wants this dish towel. (if)($person = #CJ)(then) Not even you.(endif) %%===================================================Robot actions=================================================== (on every tick) *($object follows) (#CJ is #in $currentRoom) (if)~($object is #in $currentRoom)(then) (now)($object is #in $currentRoom) (par) (if) ~($object = #UncleRob)(then) (#WalkBot) (select) follows close behind you as you walk. (or) trips a bit but catches itself as you walk. (or) runs headlong into a wall, then recalibrates and follows you. (or) trundles after you. (or) tries to dart past you, almost getting tangled in your feet. (or) takes big jumps as it follows you. (at random) (else) (select) (or) (name $object) follows you. (stopping) (endif) (endif) (on every tick) (if)(#ToasterBot is #heldby #CJ)(then) (par) (#ToasterBot) (select) gurgles and coos in your arms. (or) shoots off a tiny shower of sparks. (or) beeps mysteriously. (or) shakes violently for a second before stopping. (at random) (endif) %%===================================================Locations=========================================================== %%===================================================Front Lawn and chores list=================================================== #FrontLawn (room *) (name *) Front Lawn (dict *) ground (look *) You are standing in front of your family home, which you recently purchased from your father. The front door is to the (#east). (from * go #east through #frontdoor to #FamilyRoom) (from * go #in through #frontdoor to #FamilyRoom) (narrate failing to leave * $) You're more focused on checking out the house than exploring outside right now. #lawnhouse (name *) family home (dict *) house (* is #in #FrontLawn) (descr *) You moved into this place pretty soon after your mother passed away, although she helped design it. It's not very big, but it has a lot of great memories in it. (par) It's too bad that the hurricane damaged it quite a bit. You can't see it from here, but it's even worse in the kitchen. (instead of [take *]) You already taking the house. From your dad, that is. Well, technically, you're buying it. (instead of [enter *]) (try [go #east]) #frontwindow (out of reach *) (name *) window (descr *) The window is shut, now. But who was that woman behind it? (* is #in #FrontLawn) #strangewoman (out of reach *) (name *) strange woman (descr *) The strange woman you saw isn't out here any more. (* is #in #FrontLawn) (grammar [unfold [single]] for [unfold $]) (perform [unfold $]) That's not really something you need to unfold. #paperairplane (item *) (name *) paper airplane (dict *) writing plane (appearance *) The (#paperairplane) is lying on the ground next to you. (if)~(tutorialoff)(then) (par) \[Tutorial: You can TAKE AIRPLANE to pick up the paper airplane.\] (endif) (* is #in #FrontLawn) (instead of [unfold *]) (try [take *]) (descr *) It looks like there's writing on it, but it's too folded up to tell. (if)~(tutorialoff)(then) (par) \[Tutorial: You can TAKE AIRPLANE to pick up the paper airplane.\] (endif) (instead of [take *]) (now)(#paperairplane is #in #Limbo) (now)(#ToDoList is #heldby #CJ) (now)(player's it refers to #ToDoList) (now)(LastObject #ToDoList) (now)(#ToDoList is handled) You scoop up the airplane and un-fold it. It's a...(#ToDoList)? (if)~(tutorialoff)(then) (par) \[Tutorial: You can now type I or INVENTORY to check your inventory.\] (endif) (grammar [tutorial off] for itself) (perform [tutorial off]) The tutorial is now off. Thank you! (now)(tutorialoff) (now)(tutorialreallyoff) (now)~(tutorialon) (grammar [tutorial on] for itself) (perform [tutorial on]) The tutorial is now on again. Thank you! (now)(tutorialon) (now)~(tutorialoff) (after [inventory]) (#ToDoList is #heldby #CJ) (select) (if)~(tutorialoff)(then) (par) \[Tutorial: You can EXAMINE LIST or X LIST or READ LIST to see what it says.\] (endif) (or) (stopping) #ToDoList (item *) (dict *) to-do paper goals (name *) chores list (* travels) (descr *) The list says "BEFORE THE GUESTS ARRIVE:" in all caps at the top. At the bottom it says, (par) (dishdelivered) (par) (platesontable) (par) (recipefound) (par) (robfollows) (select) (par) Huh. Strange. (par) (if)~(tutorialoff)(then) (if)(#CJ is #in #FrontLawn)(then) (par) \[Tutorial: You can now go EAST or E to enter the house. This is the end of the tutorial. For more help, you can type HELP or HINT at any time. Thanks!\] (endif) (endif) (or) (stopping) (grammar [rip/tear [single]] for [attack $]) (instead of [attack *]) Strange women standing in windows throwing chore lists at you is no basis for a system of governing your house, but that doesn't give you a good reason to destroy this paper. (dishdelivered) (if)(#servingdish undelivered)(then) -Give the good serving dish to Uncle Joe (else) X Give the good serving dish to Uncle Joe (endif) (recipefound) (if)(baklavadone)(then) X Find Mom's baklava recipe and make it (else) -Find Mom's baklava recipe and make it (endif) (platesontable) (if)(#plates is #on #KitchenTable)(then) X Put the plates on the table (else) -Put the plates on the table (endif) (on every tick) (#UncleRob follows) (now)(#UncleRob oncefollowed) (robfollows) (if)(#UncleRob oncefollowed)(then) X Help Ada finish up in the garage \(could take a while\) (par) X Remind Uncle Rob about dinner (else) -Help Ada finish up in the garage \(could take a while\) (par) -Remind Uncle Rob about dinner (endif) (prevent [open #frontdoor]) ~(#ToDoList is #heldby #CJ) (current room #FrontLawn) You don't want to leave that (if)~(#paperairplane is #in #Limbo)(then) (#paperairplane) (else) (#ToDoList) (endif) out here; who knows what the neighbors would think if they saw it. (instead of [lock #frontdoor]) (if)~(partytime)(then) You have guests coming over, so there's no point in locking the door. (else) Hmm, you don't have your key with you. Might as well just enjoy the party! (endif) (narrate leaving #FrontLawn #east) You walk into the house \(your house, now\) and close the door behind you. (on every tick) (#frontdoor is open) (#CJ is #in #FamilyRoom) (now)(#frontdoor is closed) %%===================================================Family room and time travel=================================================== #FamilyRoom (room *) (name *) Family Room (singleton *) (look *) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) This family room is huge and brand-new. The walls are covered in green and orange floral wallpaper and the floor is soft, yellow shag carpeting. (elseif) ($CurrentTime = 2) (then) This family room is certainly much more inviting than your college dorm room. The brown rug and wood paneling make you feel like you're in a cabin. (elseif) ($CurrentTime = 3) (then) This cramped family room is dominated by a massive entertainment center and has burgundy carpeting. Unlike the rest of the house, it hasn't been hit hard by the hurricane. (elseif) ($CurrentTime = 4) (then) This family room is decorated with a bright orange rug and walls checkered red and white. It's minimally decorated, since you don't use it for watching TV. You usually just use your devices to watch things now. (else) The family room has a bare hardwood floor and white, dusty walls. (endif) (par) There is a (#calendar) on the wall. The office is to the (#south), the garage is (#north), the kitchen is (#east), and the stairs go (#up) and (#down). The front door is to the (#west). (from * go #up to *) (prevent [leave * #up]) (TimeAge 5) You start going up, but it seems different up there, dark and uncertain. You'll take that path one day, but not today. (par) You will not go any higher. (narrate leaving * #up) (TimeAge $CurrentTime) ($CurrentTime plus 1 into $Temp) You climb up the stairs. (if) ($CurrentTime = 1)(then) They seem to get smaller as you get higher. Or have you gotten taller? (else) For some reason you feel more tired the higher you get. This part of the house looks different, too. (endif) (now) (TimeAge $Temp) (tick) (from * go #down to #FamilyRoom) (prevent [leave * #down]) (TimeAge 1) You look the stairs down with trepidation. What would happen? You imagine yourself shrinking, becoming younger and younger, scrunching into yourself until you become two little cells. Scary! (par) You will not go any lower. (narrate leaving * #down) (TimeAge $CurrentTime) ($CurrentTime minus 1 into $Temp) (if) ($CurrentTime = 2)(then) The stairs seem to get bigger the further down you get. Or have you gotten smaller? (now)(youngestknown) %%Used to gate talking to dad about mom (else) The burden of years seems to lift from your shoulders the further down you get. This part of the house looks newer, too. (endif) (now) (TimeAge $Temp) (tick) (from * go #east to #Kitchen) (from * go #north to #Garage) (from * go #south to #BigOffice) (from * go #west through #frontdoor to #FrontLawn) (prevent [leave * #north]) (TimeAge $CurrentTime) ($CurrentTime = 3) (#sapling is pristine) (select)You start to head out before you remember: (or)(stopping)The garage was crushed by the tree in your backyard when the hurricane blew it over a few days ago. There's no way out there right now. (par) Your cousin Ada was so sad about losing her projects, she hasn't been back since. (prevent [leave * #north]) (TimeAge $CurrentTime) ($CurrentTime > 3) (#sapling is pristine) (select)You start to head out before you remember: (or)(stopping)The garage was crushed by the tree in your backyard when the hurricane blew it over years ago. (par) Ada was so sad about losing her projects, she left and hasn't been heard from since. You rebuilt the garage, but there's so much junk in there you'll never get it out. (now)(Adaknown) #stairs (name *) stairs (descr *) The stairs go (link){up} and (link){down}. You feel mildly disturbed looking at them, as if they don't line up right. (dict *) stair steps (* is #in #FamilyRoom) (instead of [take *]) Have you ever tried stairs? How did it work out for you? (instead of [climb *]) Would you like to go (link){up} or (link){down}? #calendar (name *) calendar (dict *) cal (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) march 1961 paper drugstore drug store 5th (elseif) ($CurrentTime = 2) (then) linen towel calendar flowers flower decorative may 1981 17th birthday (elseif) ($CurrentTime = 3) (then) borders wolves wolf 2001 warped August 20th 2001 (elseif) ($CurrentTime = 4) (then) digital december 23 2021 (else) note self move out april 4th 2021 (endif) (descr *) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) The calendar is paper; they were handing them out at the drugstore. It's March 5th, 1961. (elseif) ($CurrentTime = 2) (then) This is a linen calendar towel with decorative flowers all around it. It's May 17th, 1981, and it's Grandma's birthday! (elseif) ($CurrentTime = 3) (then) This calendar is a little warped from the water, but it still works. It's a calendar with pictures of wolves. You got it at Borders. It's August 20th, 2001. (elseif) ($CurrentTime = 4) (then) This is a digital calendar. It's currently displaying the date December 23, 2021. (else) This is less of a calendar and more of a note to yourself. It says: "MOVE OUT: April 4th, 2041". (endif) (* is #in #FamilyRoom) (grammar [flip [single]] for [turn $]) (instead of [turn *]) You use the calendar to keep focused; it wouldn't make much sense to turn it, especially since you can always take the stairs if you don't like the date. (instead of [take *]) It's already in a convenient spot, no reason to mess with it. (instead of [switch on *]) That would defeat the purpose. (instead of [switch on *]) Your calendar is already working just fine. #frontdoor (name *) front door (dict *) plain white simple (door *) (descr *) This door has always been the same: plain, white, and simple. Your mom wanted to keep the house from being too flashy. (openable *) (#frontdoor notendstate) (prevent [open *]) (#CJ is #in #FamilyRoom) (#frontdoor notendstate) You don't want to leave yet. The note said that guests are coming, and you don't want them to get here when you're not around. (prevent [open *]) (TimeAge $CurrentTime) (#CJ is #in #FamilyRoom) ~($CurrentTime = 2) You don't want to leave yet. The note said that guests are coming, and you don't want them to get here when you're not around. (instead of [take *]) You have very little need to carry the front door around. #familyroomwallpaper (name *) floral wallpaper (dict *) wallpaper paper orange green (descr *) Your mom bought this just a couple of weeks ago. It was fun helping her put it up, and is one of your last memories of her. (* sceneryObj) (* age 1) (* sitsin #FamilyRoom) (instead of [take *]) Why, do you see a woman in yellow, trapped behind bars? If so, you may be playing the wrong game. #shagcarpet (name *) shag carpet (dict *) shag carpet carpeting soft rug luxurious (descr *) Now this is the wave of the future! Soft and luxurious. (* sceneryObj) (* age 1) (* sitsin #FamilyRoom) (instead of [feel *]) Ooooh, it's so luxurious! (instead of [take *]) There's no reason to take up this luxurious carpet. %%Add touching the carpet #familyroompanels (name *) wood paneling (dict *) wood panel panelling (descr *) Your dad just recently bought this. It was fun helping him put it up. (* sceneryObj) (* age 2) (* sitsin #FamilyRoom) (instead of [take *]) I'm not sure what that would entail; it's kind of hard to grab that kind of thing. #brownrug (name *) brown rug (dict *) soft carpet brown rug (descr *) Sensible, practical, and easy to vacuum. (* sceneryObj) (* age 2) (* sitsin #FamilyRoom) (instead of [take *]) You don't really get to make the furnishing choices in this house. At least not right now. (instead of [look under *]) There's nothing underneath the rug. But that would be cool. #burgundycarpeting (name *) burgundy carpeting (dict *) burgundy carpet carpeting (descr *) You bought this carpet to be unique, but it turns out all the homeowners in the neighborhood had the same idea. (* sceneryObj) (* age 3) (* sitsin #FamilyRoom) (instead of [take *]) I mean, you bought this yourself, doesn't make sense to change it. #entertainmentcenter (name *) entertainment center (dict *) shelf shelves entertainment center wood massive (descr *) This massive entertainment center is designed to hold your TV and all of its attachments. You haven't moved in your TV yet. You'll do that after dad moves out. (* sceneryObj) (* age 3) (* sitsin #FamilyRoom) (instead of [take *]) This thing is incredibly heavy. #faketelevision (name *) TV (dict *) telly tellie Television dallas cathode ray channel station (not here *) (* sceneryObj) (descr *) You haven't actually put in the TV yet. (* age 3) (* sitsin #FamilyRoom) %%Add TV and devices #brightrug (name *) bright orange rug (dict *) bright orange rug boho style (descr *) Apparently this is 'boho-style'. (* sceneryObj) (* age 4) (* sitsin #FamilyRoom) (instead of [take *]) Why? It's cute where it is! #checkeredwalls (name *) checkered walls (dict *) red white checkered paint checkering base wall walls (descr *) The walls have a white base coat with red checkering painted over it. You added it in the latest remodel. (* sceneryObj) (* age 4) (* sitsin #FamilyRoom) (instead of [take *]) It is surprisingly difficult to pick up and carry walls. #hardwoodfloor (name *) hardwood floor (dict *) bare hardwood floor (descr *) Honestly, it kind of looks better this way. You're glad you got rid of all the old carpet; it wasn't doing this place any favors. (* sceneryObj) (* age 5) (* sitsin #FamilyRoom) (instead of [take *]) Good luck with that. This floor is not easy to pick up. #dustywalls (name *) dusty white walls (dict *) dusty white wall walls paint painted (descr *) The walls look like they were last painted years ago. Which, of course, they were. (* sceneryObj) (* age 5) (* sitsin #FamilyRoom) (instead of [take *]) You're done with this house, now. There's no reason to take the walls. #boombox (name *) boombox (item *) (dict *) stereo boombox boom box radio jvc rc m90 Bette Davis Eyes music (descr *) This is the JVC RC-M90, the cutting edge of sound technology. Uncle Joe got it for Grandma for her birthday. (if)(#battery is #in #boombox) (then) It's blasting out "Bette Davis Eyes" at maximum loudness. (else) It's off right now. (endif) The boombox is (open or closed *). (container *) (openable *) (* loud) (* is closed) (appearance *) (if)(* loud) (then) Music is coming from a (#boombox). (else) The (#boombox) is silent now. (endif) (instead of [switch off *]) (if)(#battery is #in *)(then) There's no obvious off switch, but you could open it to look more closely. (else) It's already off. (endif) (instead of [switch on *]) (if)(#battery is #in *)(then) It's already on. (else) It won't really work without the battery. (endif) (instead of [listen to #boombox]) (if)(#boombox loud) (then) Music is coming from the (#boombox); your grandma is listening to Bette Davis Eyes again. (else) The (#boombox) is silent now. (endif) (instead of [listen to #FamilyRoom]) (TimeAge $CurrentTime) ($CurrentTime = 2) (try [listen to #boombox]) (instead of [take *]) (#grandma) chides you, saying, "Now, don't you go taking my new boombox anywhere. I'll need it for Jazzercise with the ladies tonight." %%add special code for opening boombox: make it openable, make it closed, mention how odd it only uses one battery, not 10 %%move code below to after going up or down (on every tick) (TimeAge $CurrentTime) (if) ($CurrentTime = 2) (then) (now)(* is #in #FamilyRoom) (else) (now)(* is #in #Limbo) (endif) #battery (name *) battery (* undelivered) (dict *) cell battery batteries single Z-cell (descr *) A single Z-cell battery. This thing is honestly huge! Ada made it herself, years ago. (item *) (* is #in #boombox) (instead of [show * to #Ada2]) (try [give * to #Ada2]) (perform [give * to #Ada2]) (TimeAge $CurrentTime) (if) ($CurrentTime = 4) (then) You hand over the Z-cell battery to Ada. (par) "You found it!" says Ada, pumping her fist with excitement. "Perfect! You're gonna love what I come up with after this. Check in with me later...a lot later!" (now) (#battery is #in #Limbo) (now) ~(#battery travels) (now) ~(#battery undelivered) (par) Ada's future has changed. (elseif) ($CurrentTime = 5) (then) "Oh, I would have needed that years ago," says Ada wistfully. (else) "Why would I need that?" asks Ada rhetorically. "I've got plenty of stuff to do right now. Is this more of your spatio-temporal hijinks?" (par) "Hmmm, probably, yeah," you say. "I'll try catch you at a better time." (endif) (after [take #battery]) (#boombox loud) (par) The (#boombox) is now silent. (par) (#grandma) looks a bit put out. "I was listening to Kim Carnes!" she says. "Oh well. At least now I can hear Dallas better." (now) ~(#boombox loud) (after [take #battery]) (now)(#battery travels) (after [put #battery #in #boombox]) ~(#boombox loud) (par) The (#boombox) starts playing music loudly again. (#grandma) arches her eyebrow but says nothing. (now) (#boombox loud) (now) ~(#battery travels) #ChristmasTree (name *) Christmas tree (dict *) Christmas tree rainbow (descr *) You bought your own tree a few years ago. It's smaller than your family's old ones, since it's just you and Joe and Ada now, but it's still beautiful. It's glowing in a rainbow of colors. (container *) (appearance *) A beautiful (#ChristmasTree) full of lights sits in the corner. (* sceneryObj) (* sitsin #FamilyRoom) (* age 4) (instead of [take *]) You spent a lot of time putting this up; it wouldn't make sense to take it down before the big day! (instead of [switch off *]) Scrooge. (instead of [switch on *]) It's already on!. %%Make sure we can't take more than one #fakebulb (name *) lights (dict *) bulb bulbs light lights christmas (descr *) The bulbs are pretty large, and absolutely lovely. (* sceneryObj) (* is #partof #ChristmasTree) (instead of [take *]) That seems like an electrical hazard. (instead of [switch off *]) Scrooge. (instead of [switch on *]) It's already on!. (instead of [wave]) (current room $currentRoom) (#grandma is #in $currentRoom) You wave at Grandma, and she chuckles and waves back. #grandma (name *) Grandma (dict *) (grandmaNames) (female *) (proper *) (* is #in #FamilyRoom) (descr *) (grandmaDesc) (appearance * $ $) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) (#grandma) is watching (link){TV} from her brand new recliner. It's on (channelname) right now, playing (channelplay). (else) (#grandma) is watching (link){TV} from her old, busted recliner. It looks like Dallas is playing again. (if)(#spritecan is #heldby #grandma)(then) She's holding her usual bottle of Sprite. (endif) (endif) (select) (par) She gives you a little wave as you walk come down the stairs. (or) (stopping) (* dies 2) (* livesin #FamilyRoom) (grandmaNames) gramma grammie grammy grandma grand mama grandmother grand mother house tight curls granny nana gran (grandmaDesc) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) Grandma has tight curls of grey hair that bounce when she moves her head. She's wearing a green house dress and slippers. She gives you a little wink and goes back to watching TV. (else) Grandma looks pretty tired. Then again, she has been for weeks. She's comfortable on the couch in her house dress and slippers. She notices you looking and waves at you cheerfully. (endif) (perform [talk to *]) "What is it, dear?" asks your grandmother. (statusactivate node *) #housedress (name *) house dress (dict *) green house dress pattern floral housedress (descr *) (TimeAge $CurrentTime) This is your grandmother's most comfortable dress. It's green with a floral pattern. (if)($CurrentTime = 2)(then) (par) She bought a roll of the fabric years ago and makes a new dress every time the old one wears out. (endif) (* is #wornby #grandma) (instead of [take #housedress]) That would cause an embarassing situation. #slippers (name *) slippers (dict *) slipper (descr *) (TimeAge $CurrentTime) Grandma's favorite soft slippers. Her feet always get cold. (if)($CurrentTime = 2)(then) (par) You bought these ones to replace her last pair. (endif) (* is #wornby #grandma) (instead of [take #housedress]) And give her cold feet? Never! #newtelevision (name *) TV (dict *) telly tellie Television dallas cathode ray channel station (* sceneryObj) (descr *) Dallas is playing on the television. It's a rerun, so you already know who shot JR. Grandma may have forgotten. The doctors like keeping things simple for her, these days. (* age 2) (* sitsin #FamilyRoom) (instead of [switch off *]) Grandma points her finger at you. "Don't you dare, CJ!" she says. You back away. (instead of [switch on *]) It's already on. (grammar [watch [single]] for [examine $]) (instead of [take *]) This is a large cathode ray television. You'd probably crush yourself with it trying to move it. #fakeknob (name *) dial (dict *) knob (not here *) (descr *) This tv doesn't have a knob for changing channels, unlike your older TV. (* is #partof #newtelevision) (instead of [change #newtelevision]) Grandma would have been happy to have you pick the channel, back in the old days. But her doctors say that consistency and pattern are what she needs right now. It could upset her to change the channel. #oldtelevision (name *) TV (dict *) telly tellie Television channel station ad advertisement (if)(* channel 1)(then) sprite refreshing (elseif)(* channel 2)(then) perry mason (else) Cooking with Dione Lucas local (endif) (descr *) The TV is currently on (channelname). (if)(* channel 1)(then) An ad for a new softdrink is playing: Sprite! It seems very refreshing, and Grandma looks interested. (elseif)(* channel 2)(then) Perry Mason is playing. He's about to reveal what really happened. Grandma looks interested; you don't think she's watched much Perry Mason before, since it used to be scheduled opposite Bonanza. (else) Cooking with Dione Lucas is on; it's a show from New York that's playing during your local hour. She's doing a special on 100 Ways to Cook with Cinnamon. Grandma seems rapt with attention. (endif) (par) Of course, she always lets you change the channel if you want. Too bad there are only 3 channels on the dial. (* sceneryObj) (* age 1) (* channel 1) (* sitsin #FamilyRoom) (instead of [switch off *]) Grandma points her finger at you. "Don't you dare, CJ!" she says. You back away. You know she'll let you change the channel, though. (instead of [switch on *]) It's already on. (channelname) (if)(* channel 1)(then) ABC (elseif)(* channel 2)(then) CBS (else) NBC (endif) (channelplay) (if)(* channel 1)(then) an ad for Sprite, the new drink (elseif)(* channel 2)(then) Perry Mason. (else) a cooking show about cinnamon (endif) (instead of [take *]) You are a small child. This is a heavy television. I don't think this will work. (grammar [change [single]] for [change $]) (perform [change $]) You'll have to find other, more specific ways to change things. (if)(current room #FamilyRoom)(then) (TimeAge $CurrentTime) (if)($CurrentTime < 3)(then) Unless you're trying to change the TV, in which case you can just CHANGE CHANNEL. (endif) (endif) (instead of [change *]) (if)(* channel 1)(then) (now)(* channel 2) You turn the tv to the next channel, CBS. It's Perry Mason! You like this show, but grandma is usually watching Bonanza. Good thing it changed time slots. (fixmason) (elseif)(* channel 2)(then) (now)(* channel 3) (fixcinnamon) You turn the tv to the next channel, NBC. It's a cooking show that seems to be focusing on all the ways you can use cinnamon. (else) (fixsprite) (now)(* channel 1) You turn the tv to the next channel, ABC. A long ad is playing for Sprite, a brand new soft drink that's come out as a competitor to 7-Up. (endif) Grandma takes your channel-changing in stride, and settles in to watch the new show. (par) Your Grandma's future has slightly changed. (if)~(* channel 2)(then) (if)(#cinnamon is handled)(then) But not quite as much as before. (endif) (endif) #dial (name *) dial (dict *) knob (descr *) This is a small knob for changing between the three channels. It's currently set on (channelname), but you can change the channel if you want. (* is #partof #oldtelevision) (instead of [turn *]) (try [change #oldtelevision]) (grammar [change [single] to ABC] for [set $ to ABC]) (grammar [change [single] to NBC] for [set $ to NBC]) (grammar [change [single] to CBC] for [set $ to CBS]) (grammar [set [single] to ABC] for [set $ to ABC]) (grammar [set [single] to NBC] for [set $ to NBC]) (grammar [set [single] to CBC] for [set $ to CBS]) (perform [set $ to ABC]) You don't need to set anything in this game. To change the channel of a television, you can CHANGE CHANNEL. (perform [set $ to NBC]) You don't need to set anything in this game. To change the channel of a television, you can CHANGE CHANNEL. (perform [set $ to CBS]) You don't need to set anything in this game. To change the channel of a television, you can CHANGE CHANNEL. (grammar [set [single]] for [set $]) (perform [set $]) You don't need to set anything in this game. To change the channel of a television, you can CHANGE CHANNEL. (instead of [set #oldtelevision]) (try [change #oldtelevision]) (instead of [set #dial]) (try [change #oldtelevision]) #spritecan (name *) bottle of Sprite (descr *) Grandma's been into Sprite ever since she first saw it advertised, years ago. (* is #heldby #grandma) (instead of [take *]) Grandma doesn't let anyone take her Sprite. Ever. #masonautograph (name *) autographed poster of Raymond Burr (dict *) perry mason autograph signature (* is #in #Limbo) (* sitsin #Limbo) (* age 2) (* sceneryObj) (descr *) Grandma is a big Perry Mason fan now, so she paid for this autographed poster of Raymond Burr a few years back. (appearance *) Grandma's autographed poster of Raymond Burr is hanging on the wall. (instead of [take *]) Grandma looks at you in horror as you go to take her prized poster off the wall. You can't go through with it. (fixcinnamon) (if)(#cinnamon is pristine)(then) (now)(#cinnamon belongs #Pantry) (now)(#cinnamon beihSupport #pantryShelves) (endif) (now)(#masonautograph sitsin #Limbo) (now)(#masonautograph is #in #Limbo) (fixsprite) (if)(#cinnamon is pristine)(then) (now)(* belongs #Limbo) (endif) (now)(#spritecan is #heldby #grandma) (fixmason) (now)(#spritecan is #in #Limbo) (now)(#masonautograph sitsin #FamilyRoom) (now)(#masonautograph is #in #FamilyRoom) #oldrecliner (name *) recliner (dict *) chair shiny new recliner brand (* sceneryObj) (descr *) This shiny and new recliner has been Grandma's favorite ever since her surgery. (* age 1) (* sitsin #FamilyRoom) (instead of [take *]) Considering the chair is several times your body mass and Grandma is sitting on it, I don't think that will work. (grammar [recline [single]] for [recline $]) (perform [recline $]) That's not something that reclines. (grammar [unrecline [single]] for [unrecline $]) (perform [unrecline $]) You know that's not a word. I can't believe you actually tried that, you should tell someone. (instead of [recline #oldrecliner]) It's already reclined! (instead of [open *]) It's already open. (instead of [close *]) You're pretty small, and it's harder than it looks to close it! #newrecliner (name *) recliner (dict *) chair recliner old busted (* sceneryObj) (descr *) Grandma's recliner is well past its glory years, but she refuses to replace it. (* age 2) (* sitsin #FamilyRoom) (instead of [open *]) It's already open. (instead of [close *]) With how old and busted this thing is, it would probably shoot out a spring or something else dangerous. (instead of [take *]) Grandma needs her chair, now more than ever. (instead of [recline #newrecliner]) It's already reclined! #strangegirlgran (#grandma offers *) (label *) "Hey Grandma, some woman threw this list at me." (disp *) "Oh, that sounds pretty unusual. I've had a clipboard thrown at my face, if that makes you feel any better," she answers, still watching TV. (par) "No, that doesn't...actually, yeah, that does kind of make me feel better," you answer. (par) "Did she seem nice?" says Grandma. (par) "She seemed familiar, somehow. She was leaning out the upstairs window," you say. (par) "Ah, I see the problem. Don't worry dear, that kind of thing will sort itself out," says Grandma. #newhouseGran (#grandma offers *) (TimeAge $CurrentTime) ($CurrentTime = 1) (label *) "What do you think of the new house?" (disp *) "Oh, I adore it. The central air conditioning is just lovely!" #happyGran (#grandma offers *) (TimeAge $CurrentTime) ($CurrentTime = 2) (label *) "Happy Birthday!" (disp *) "Oh thank you, Katrina," says Grandma. (par) You try not to react at her calling you your mom's name. Grandma notices your unease and thinks for a moment. (par) "I mean CJ, of course. It's not every day you turn eighty-four years old! I appreciate you taking care of the party!" she says, putting a kind hand on yours for a moment. #whatwatchgran (#grandma offers *) (TimeAge $CurrentTime) ($CurrentTime = 1) (label *) "Hey Grandma, what are you watching?" (sticky *) (disp *) (if)(* channel 1)(then) "Coca-Cola made a new drink, it seems. It's called Sprite; isn't that the name of a fairy? It looks very interesting, though. I might have to try it," she says. (elseif)(* channel 2)(then) "As if you don't know," she says teasingly. "You're always talking about Perry Mason. I have to admit, he is quite handsome." (else) "I've heard about this show," she says, "but I thought it was only on in New York. She cooks on TV! I wonder why more people don't do that. She's talking about all the ways to use cinnamon. Maybe I'll have to buy more in the future." (endif) (instead of [enter #oldrecliner]) You only sit there when you're watching shows with grandma. (instead of [enter #newrecliner]) You're a bit too big now. #watchtogethergran (#whatwatchgran offers *) (sticky *) (disp *) "I'd love that, CJ," she says. You squeeze in next to her and she puts her arm around you. (par) (if)(* channel 1)(then) This has to be the longest soda commercial you've ever seen, but it's fun seeing Grandma react to it. (elseif)(* channel 2)(then) Perry Mason is great at helping defendants. Your dad prefers prosecutors, though. Grandma seems to enjoy the show as much as you do, though. (else) The kitchen on the show is a lot bigger than your own. And the lady is making some very strange food. You'd never thought of cinnamon gelatin before. (endif) After you watch for a bit, you get up again. (label *) "Can I watch with you for a bit?" (terminating *) #changechannelgran (label *) "Can I change the channel, Grandma?" (#whatwatchgran offers *) (sticky *) (disp *) "Sure, CJ. Go ahead, I don't mind. It's just nice spending time with you," she says. (* flows to #grandma) #thatscoolgran (label *) "That's interesting, Grandma." (#whatwatchgran offers *) (sticky *) (disp *) She smiles and nods. You turn to other topics. (* flows to #grandma) #whereplatesGran (sticky *) (#grandma offers *) (#plates is pristine) (label *) "Grandma, do you know where the plates are?" (disp *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) "What's that? Oh, I'm not sure. (else) You said plates? I'm not sure what plates you're talking about, dear, but (endif) I think your father would know." #whereCardGran (sticky *) (#grandma offers *) (#recipeCard is pristine) (label *) "Do you know where mom's baklava recipe is?" (disp *) "I think we put it on the memory board, if I remember. In your father's office," says Grandma. "I wish I could remember it myself, but that was the one recipe your grandfather knew how to make so I always let him. I'm glad your mother wrote it down." #whereRobGran (sticky *) (#grandma offers *) ~(#UncleRob follows) (label *) "I can't find Uncle Rob anywhere." (disp *) "Oh, I'm not sure. He walks around like it was his purpose in life. Have you checked with Ada? The two of them think alike." #whereSilverGran (sticky *) (#grandma offers *) (#servingdish is pristine) (label *) "Grandma, have you seen the good serving dish?" (disp *) "I lost that darned thing (TimeAge $CurrentTime) (if) ($CurrentTime = 2) (then) years ago. (else) just a couple of days ago! (endif) I was finishing washing up and putting away some of the plates when I heard the loudest clatter of my life. All the pots and pans had fallen over and rolled all over the room. I found them all eventually, but not the dish," says Grandma. #goodbyeGran (#grandma offers *) (label *) "That's all I wanted to say, Grandma." (disp *) She nods at you politely before going back to watching the TV. (terminating *) %%===================================================Kitchen=================================================== #Kitchen (room *) (singleton *) (name *) Kitchen (heads *) Kitchen (look *) (TimeAge $CurrentTime) (collect $Obj) *($Obj is #on #KitchenCounter) (into $List) (if) ($CurrentTime = 5)(then) The kitchen is quiet. (else) The kitchen is filled with wonderful smells. (endif) A long granite (#KitchenCounter) runs down one side(if)~(empty $List)(then), with (a $List) on it(endif). A small (#oven) is next to it. The backyard is to the (#east), the pantry is to the (#south), and the family room is to the (#west). (if) ($CurrentTime = 3)(then) (par) Plastic tarps are covering parts of the walls and ceilings. Light rain (select) begins to drum (or) drums (stopping) on them. (endif) (from * go #east to #Outdoors) (from * go #west to #FamilyRoom) (from * go #south to #Pantry) (instead of [smell]) (TimeAge $CurrentTime) (if)($CurrentTime = 5)(then) The whole house just smells dusty. (elseif)(#CJ is #in #Kitchen)(then) The kitchen smells like fried potatoes, mixed with a few other scents from Uncle Joe's meal. (else) You can smell delicious smells you can only assume come from the kitchen. (endif) (instead of [listen to *]) (TimeAge $CurrentTime) ($CurrentTime = 3) (try [listen to #lightrain]) #plastictarps (out of reach *) (name *) plastic tarps (dict *) tarp ceiling (plural *) (descr *) You put these up on the ceiling to temporarily handle the damage from the hurricane. (* sceneryObj) (*sitsin #Kitchen) (* age 3) (prevent [take *]) That would let a lot of wind and rain into the room that you don't want right now. #lightrain (name *) rain (out of reach *) (dict *) light drumming gentle patter (descr *) You can't see it, but you can certainly hear it. (* sceneryObj) (*sitsin #Kitchen) (* age 3) (instead of [listen to *]) The rain is a gentle patter, but reminds you of the storm before. #oven (name *) oven (container *) (* is closed) (dict *) steel white glass top (baklavadone) ~(partytime) baklava (heads *) (baklavadone) ~(partytime) baklava (instead of [switch off *]) (if)(partytime)(then) The oven's already off! (elseif)(baklavadone)(then) (excluded from all $) That would ruin the baklava! (else) It's already off. (endif) (instead of [switch on *]) (if)(partytime)(then) The food's already done! (elseif)(baklavadone)(then) It's already on. (else) You're not really using it yet. You could preheat it, but you'd better wait until you actually need it. (endif) (prevent [put $ #in *]) After all, you don't need to make anyting except the (if)(partytime)(then) baklava, and you've already done that! (elseif)(baklavadone)(then) baklava, and it's already in there! (else) baklava. (endif) (instead of [open *]) (if)(partytime)(then) The food's already done! (elseif)(baklavadone)(then) Not while the baklava is cooking! (else) You open it, but it's empty. You close it again. (endif) (instead of [close *]) It's already closed! (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) The oven is new and gleaming. Grandpa would have loved it. (elseif)($CurrentTime = 2)(then) Your dad just recently replaced the oven. This one is larger than the old one, and white instead of steel. (elseif)($CurrentTime = 3)(then) This is your dad's old stove, still. Your new one won't come in until later in the week. (elseif)($CurrentTime = 4)(then) This is a new stove with a glass top. It's excellent at even heating. (else) Your old stove is still here, but it's disconnected. (endif) (if)(baklavadone)(then) (if)~($CurrentTime = 5)(then) (if)~(partytime)(then) (par) The baklava is cooking inside. From here it looks delectable! (endif) (endif) (endif) (* is #in #Kitchen) (instead of [take *]) That would likely result in a gas leak. Or finding a bunch of gross crud underneath. Yuck. #baklava (uncountable *) (name *) baklava (* is #in #Limbo) (grammar [make [single]] for [make $]) (perform [make $object]) (if)($object = #recipeCard)(then) (TimeAge $CurrentTime) (if)(baklavadone)(then) You already made the baklava! (elseif)~(#recipeCard is #heldby #CJ)(then) You need to have the recipe card before you can make the recipe! (elseif)~(#walnuts is #heldby #CJ)(then) You can't make the recipe without the walnuts! (elseif)~(#butter is #heldby #CJ)(then) You can't make the recipe without the butter! (elseif)~(#cinnamon is #heldby #CJ)(then) You can't make the recipe without the cinnamon! (elseif)~(#dough is #heldby #CJ)(then) You can't make the recipe without the phyllo dough! (elseif)~(#honeyBear is #heldby #CJ)(then) You can't make the recipe without the honey! (elseif)~(#CJ is #in #Kitchen)(then) You can't make the recipe if you're not in the kitchen! (elseif)($CurrentTime = 5)(then) The oven has been disconnected, since you're moving out. (elseif)($CurrentTime = 1)(then) Uncle Joe looks at you, concerned, and says, "Aren't you too young to use the oven?" (else) You preheat the oven, unroll the dough, melt the butter, and begin layering. It takes a while and leaves you worn out, but it's in the oven. It should be done after dinner, when you can let it cool while everybody talks. (now)(baklavadone) (now)(#walnuts is #in #Limbo) (now)(#butter is #in #Limbo) (now)(#cinnamon is #in #Limbo) (now)(#dough is #in #Limbo) (now)(#honeyBear is #in #Limbo) (now)~(#walnuts travels) (now)~(#butter travels) (now)~(#cinnamon travels) (now)~(#dough travels) (now)~(#honeyBear travels) (endif) (else) \[MAKE is only used in this game for making a recipe, which you can do with MAKE RECIPE\] (endif) (supporter *(stablesupporter $)) #KitchenCounter (name *) counter (dict *) long granite (* is #in #Kitchen) (stablesupporter *) (descr *) This long granite counter is destined to outlast you, the house, and everyone in it. It was installed a little crooked when it was first put in, leaving a (#KitchenGap). (instead of [take *]) It took four men and a woman to put this in here. I don't think you can take it by yourself.. #KitchenGap (name *) gap (dict *) gap hole narrow (* is #in #Kitchen) (excluded from all *) (container *) (descr *) Stuff keeps falling in here for some reason. It's a narrow gap. (collect $Obj) *($Obj is #in *) (into $List) Right now, there's (a $List) stuck in there. (instead of [take *]) The gap is made of nothing. So you take nothing. This has no effect on anything. (instead of [look #behind #KitchenCounter]) (try [examine #KitchenGap]) (prevent [put #sapling #in *]) The sapling is way too big to fit in there. (prevent [put $obj #in *]) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) The last thing you need is more stuff in the gap. (else) Your arm is too big to fit, so you might not be able to get (the $obj) it out again. (endif) (prevent [take $object]) (TimeAge $CurrentTime) ~($CurrentTime = 1) ($object is #in #KitchenGap) The gap is too small for an adult's arm to fit. #servingdish (name *) serving dish (excluded from all *) (dict *) silver platter dish serving antique (if)(* dirty)(then) dirty (else) clean bright smooth (endif) (heads *) dish (* is #in #KitchenGap) (* undelivered) (item *) (* dirty) (descr *) This is the family's antique serving platter. Grandpa got it from the old country. (par) (if)(* dirty)(then) It looks pretty dirty right now. (else) It's bright and clean. (endif) (perform [give * to #unclejoe]) (if)(* dirty)(then) "What happened to this?" he asks incredulously. "Actually, I'd rather not know. Is there any way you could clean it up a little for me? I'm not putting food on it but it could bear a good wiping." (else) You hand the serving platter to Uncle Joe. (par) "This looks perfect," he says. "Thanks so much for getting this ready!" (now) (#servingdish is #in #Limbo) (now) ~(#servingdish undelivered) (now) ~(#servingdish travels) (endif) (instead of [touch *]) (if)(* dirty)(then) (if)(#dishtowel is #heldby #CJ)(then) (try [clean *]) (else) It's pretty gross. You'll need something to help you clean this. (endif) (else) It's clean and smooth. (endif) (on every tick) (if)(* is #heldby #CJ)(then) (now)(* travels) (endif) (instead of [clean $object]) (if)($object = #servingdish)(then) (if)(* dirty)(then) (if)(#dishtowel is #heldby #CJ)(then) You wipe off most of the dirt with the towel. It looks much better now! (now)~(* dirty) (else) It's pretty gross. You'll need something to help you clean this. (endif) (else) It's already clean! (endif) (elseif)($object = #potatoes)(then) "Can I help you with the potatoes?" you ask. (par) (potatocleanse) (else) (if)(#dishtowel is #heldby #CJ)(then) You rub the towel on (name $object), but it doesn't seem to help much. (else) You make a half-hearted attempt at cleaning (name $object). (endif) (endif) (grammar [clean/wipe [single] with [single held]] for [clean $ with $]) (perform [clean $object with $object2]) (if)($object2 = #dishtowel)(then) (try [clean $object]) (else) (The $object2) (isn't $object2) useful for cleaning. (endif) #KitchenTable (name *) table (dict *) table big smaller tables (* is #in #Kitchen) (stablesupporter *) (appearance *) (collect $Obj) *($Obj is #on *) (into $List) In the dining half of the kitchen, the big (#KitchenTable) has been assembled together for dinner. Right now the table has (a $List) on it. (partydescription) (descr *) (collect $Obj) *($Obj is #on *) (into $List) This is the big table for when the whole family eats, made up of smaller tables. The table has (a $List) on it. (instead of [open *]) (try [take *]) (instead of [take *]) And undo all the hard you did putting it together? No thanks. (grammar [disassemble [single]] for [open $]) #roastchicken (name *) chicken (dict *) roast roasted whole tender juicy whole-roasted (* sceneryObj) (* sitsin #Kitchen) (food *) (* age 2) (descr *) A tender and juicy roasted chicken. Uncle Joe sure is getting better at cooking. (if) ~(#drumstick is pristine)(then) It's missing a leg, though. (else) One (#drumstick) is sticking out. (endif) (appearance *) A whole-roasted (#roastchicken) is sitting out on the counter to cool. (prevent [take *]) Uncle Joe gives you a grim look. It seems you won't be taking this chicken anytime soon! Well, (if) ~(#drumstick is pristine)(then) not any more of it, at least. (else) maybe not all of it. One (#drumstick) is sticking out. (endif) (instead of [taste $object]) (try [eat $object]) #drumstick (name *) drumstick (dict *) leg tender (item *) (food *) (* untransmitted) (* travels) (* belongs #Kitchen) (* age 2) (descr *) This tender hunk of meat is the entire leg of a chicken. (instead of [show * to #Ada3]) (try [give * to #Ada3]) (perform [give * to #Ada3]) (TimeAge $CurrentTime) (if) ($CurrentTime = 2) (then) "Oh!" exclaims Ada. "Yes, I could learn a lot about legs from this!" (par) But then she looks concerned. "But this is only one leg, and it will go bad soon. I wish I could have more info on legs, especially in a way that won't decay with time. Like a photo or something." (now) (drumsticknown) (elseif)($CurrentTime > 2)(then) "Boy, that would have been useful years and years ago," says Ada wistfully. "I really messed up when I did my first leg prototypes. Set me back way too far." (else) "Huh, that looks cool. But I'm not sure I need that right now. Maybe later?" she asks, then goes back to work. (endif) #potatoes (name *) potatoes (dict *) potato (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) The potatoes look pretty lopsided, to be honest. (elseif)($CurrentTime = 2)(then) These potatoes are going to be excellent. They're what made Uncle Joe famous. (elseif)($CurrentTime = 3)(then) Your stomach grumbles just looking at these. Uncle Joe is an excellent cook. (else) If anything has been constant in your life, it's been Uncle Joe's potatoes. (endif) (* is #heldby #unclejoe) (instead of [take *]) With how fast he's chopping, you might lose a finger! #knife (name *) knife (descr *) Joe's knife is carefully honed. He's always been good at caring for sharp things. (* is #heldby #unclejoe) (instead of [take *]) This seems like a really bad idea. #unclejoe (name *) Uncle Joe (dict *) (joeNames) (male *) (proper *) (* dies 4) (* livesin #Kitchen) (* is #in #Kitchen) (descr *) (joeDesc) (appearance * $ $) (if)(* is #in #Outdoors)(then) Uncle Joe is eyeing the tree critically. (else) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) (#unclejoe) is slicing potatoes. He's going pretty slow, and not doing that great of a job. (elseif)($CurrentTime = 2)(then) (#unclejoe) is slicing potatoes expertly. He's gotten pretty good at this since he started his restaurant. (elseif)($CurrentTime = 3)(then) (#unclejoe) is slicing and dicing potatoes like an expert chef. Which, of course, he is. (else) (#unclejoe) is slowly and reflectively slicing potatoes. He has excellent technique, but less energy than he once did. (endif) (endif) (select) (par) "Hey, there you are," he says, as you walk in the room. "Hope you're hungry for later!" (or) (stopping) (joeNames) joseph uncle joe (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) curly black hair dark stubble (elseif)($CurrentTime = 2)(then) heavy-set lightly curled hair bald spot (elseif)($CurrentTime = 3)(then) grizzled mostly-bald leaner (else) (#unclejoe) is slowly and reflectively slicing potatoes. He has excellent technique, but less energy than he once did. (endif) (joeDesc) (TimeAge $CurrentTime) (#unclejoe) is only ten years older than you. (if)($CurrentTime = 1)(then) He's tall and big-framed, with curly black hair. Despite his youth, he already has dark stubble. (elseif)($CurrentTime = 2)(then) He's kind of heavy-set, and his lightly curled hair has a bald spot in the middle. (elseif)($CurrentTime = 3)(then) He's a grizzled, mostly-bald man. He's tall and bulky, but leaner than he was a few years ago. (else) He's a bald man with tufts of white hair around his ears and tan, weathered skin. (endif) (par) (if)~(partytime)(then) He looks happy to see you. He's also sweating profusely in the kitchen heat. (else) He's having fun and talking with everyone. (endif) (perform [talk to *]) (if)(* is #in #Outdoors)(then) He whistles, looking at the tree. "You're right," he says, "that really could be bad. Here, help me pull it out! We'll both pull it at the same time." (else) "Hey, Uncle Joe, do you have a second?" (par) "Sure, CJ, what's up?" (statusactivate node *) (endif) %%(after disp (terminating $)) %% (par) %% (try [look]) %% (tick) #helpSapling (sticky *) (#unclejoe offers *) (TimeAge $CurrentTime) ($CurrentTime = 1) ~(#sapling neverknown) ~(#mapletree sitsin #Limbo) (label *) "Hey Uncle Joe, could you help me move that sapling out back?" (disp *) He stops chopping for a minute. (par) "I don't know CJ, I just planted it back there." #strangegirlJoe (#unclejoe offers *) (label *) "Did you see a strange woman upstairs today?" (disp *) Uncle Joe wipes his prodigious brow. "CJ, I haven't left this kitchen at all. Did she look hungry? Because I think I made way too many potatoes." (par) "No, she didn't look hungry, but she did seem familiar. She left me a chores list for a party," you answer. (par) "Oh, well that's great, actually. I thought I was the only one getting ready. Maybe she's a guest who came early?" #whereAda (#unclejoe offers *) (#Garage is unvisited) (Adaknown) (sticky *) (label *) "Do you know where Ada is? I wanted to talk to her before dinner." (disp *) "Last I heard, she was in the garage. That was a while ago, though." #howWorkJoe (#unclejoe offers *) (label *) "How's work been recently?" (sticky *) (disp *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) "Gee, I've just been helping out Mr. Holladay in the back, but he's teaching me a lot about the grill," says Uncle Joe. (elseif)($CurrentTime = 2)(then) "It's great! People are loving our new menu down at the restaurant. I'm glad old Holladay let me take over, I really lucked out," says Uncle Joe. "Although it'll take me years to pay off the loan." (elseif)($CurrentTime = 3)(then) "We opened three new franchises this month," says Uncle Joe. "We're even expanding into Canada!" (else) He sighs. "Economy's been really bad, especially during the pandemic. But we've converted a lot of stores into kitchens for mobile ordering, and it's taking some of the sting off. I've been really stressed, though," he says. (endif) #merryJoe (#unclejoe offers *) (TimeAge $CurrentTime) ($CurrentTime 4) (label *) "Merry Christmas, Uncle Joe!" (disp *) "Merry Christmas, CJ!" shouts Uncle Joe, fling some potato slices in the air in a sort-of-attempt at juggling. "Hope you're hungry!" #whereCardJoe (sticky *) (#unclejoe offers *) (#recipeCard is pristine) (label *) "Do you know where mom's baklava recipe is?" (disp *) "Boy, I haven't seen that in a while. You making that? Thanks, it's been rough cooking everything else. Now let me see...I think your dad might know," says Uncle Joe. #hurricaneJoe (#unclejoe offers *) (TimeAge $CurrentTime) ($CurrentTime 3) (label *) "How'd you guys handle the hurricane?" (disp *) "Oh, man," he says, wiping his forehead with a towel. "We had four franchises get completely flooded. The insurance inspectors made us go out there and go over it with a fine-tooth comb. What a nightmare. Still, no lives were lost, thank heavens." #garageBreak (#unclejoe offers *) (TimeAge $CurrentTime) ($CurrentTime = 3) ~(#mapletree sitsin #Limbo) (label *) "Did you see what happened to the garage?" (disp *) He stops chopping for a minute. (par) "Yeah, what a mess. Can't believe the old maple fell on it. Should never have planted it that close to the house." #robJoe (#unclejoe offers *) (label *) "Do you know where Uncle Rob went?" (disp *) "I'm just glad he's not here snacking. That guy's an eating machine! But, you know, he's like you," he says, pointing at you. "He kind of 'wanders', if you get my drift. But I think you'll find him." #uglyTree (#helpSapling offers *) (label *) "I just think it's ugly, that's all." (disp *) Uncle Joe says, "Well, I don't know about that. (italic)De gustibus non est disputandum(roman), as they say. We all have different tastes, and I say it stays." (terminating *) #tooclose (#helpSapling offers *) (label *) "I think it's dangerous for the tree to be so close to the house." (disp *) "Hey, thanks for the heads up. Let's go grab it!" (par) (now)(#unclejoe is #in #Outdoors) (now)(#unclejoe livesin #Outdoors) Uncle Joe walks out to the back. (terminating *) #butterJoe (sticky *) (#unclejoe offers *) (#recipeCard is handled) ~(#butter is handled) (label *) "Do you have any butter, Uncle Joe?" (disp *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) "Yeah, I think I have a stick laying around here somewhere," he says, then grabs and tosses you a stick of (#butter). "There you go!" (now)(#butter is #heldby #CJ) (now)(#butter is handled) He stops talking and turns back to cooking. (else) "No, I stopped using that years ago. It's margarine for me, now." (endif) (terminating *) (TimeAge $CurrentTime) ($CurrentTime = 1) #helpJoe (#unclejoe offers *) (label *) "Can I help you with the potatoes?" (disp *) (potatocleanse) (terminating *) (grammar [scrub [single]] for [clean $]) (potatocleanse) (select) "Sounds great!" says Joe. He hands you a pile of potatoes and you scrub them. He shows you some interesting cooking techniques while you're working. He can talk about potatoes for hours, if you let him. He starts: "Potatoes are the fruit of the earth. You can roast them, boil them, fry them, mash them." (par) He goes on: "There's baked potatoes, mashed potatoes. Fried potatoes: pan fried, deep fried, stir-fried. There's potato tacos, twice-baked potatoes, tater-tots, potatoes au gratin, chips, potato soup, potato stew, potato salad, shrimp and potatoes, hashbrowns, steak fries. That's about it." (par) By now, you've washed a ton of potatoes. Uncle Joe says, "Thanks, CJ. That helps!" (or) "I think I'm good for now, but feel free to hang out!" he answers cheerfully. You spend a bit chatting with him about dinner and the party. (stopping) #nevermindJoe (#unclejoe offers *) (label *) "Never mind, Uncle Joe." (disp *) "No problem, kid. See you around!" (terminating *) #butter (name *) stick of butter (item *) (food *) (* travels) (* age 1) (* belongs #Limbo) (descr *) This stuff sure makes food taste good. %%===================================================Pantry=================================================== #Pantry (room *) (name *) Pantry (singleton *) (look *) This is your family's pantry, just a glorified closet with (#pantryShelves). (from * go #north to #Kitchen) #pantryShelves (name *) shelves (notItem *) (stablesupporter *) (dict *) shelf plain white load-bearing (descr *) Plain white shelves, completely utilitarian. And very sturdy. (appearance *) (collect $Obj) *($Obj is #on *) ~(notItem $Obj) (into $List) The shelves have (a $List) on them. (* is #in #Pantry) (instead of [climb *]) You'd rather not get your feet all over the shelves where the food goes. (instead of [take *]) These are load-bearing shelves. Good luck trying to take them! (instead of [eat $object]) (if)(food $object)(then) (if)($object = #yellowBeans)(then) You'd rather die. (elseif)(partytime)(then) (if)(badfood $object)(then) Uncle Joe might feel bad if you eat this instead of the food he made. (else) (try [take $object]) (endif) (else) You don't want to spoil your appetite! (endif) (else) With Uncle Joe (if)(partytime)(then)having cooked(else)cooking up(endif) a storm, there's no reason to eat inedible things. (endif) (perform [open $object]) (food $object) That's not part of the recipe. (stop) #yellowBeans (name *) can of yellow wax beans (food *) (* is #on #pantryShelves) (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) Nobody in the house likes yellow wax beans. But you saw this in the store and put it in the cart. No one will ever know. (elseif)($CurrentTime = 2)(then) Nobody in the house likes yellow wax beans, but, on the other hand, no one wants to throw this out. Who knows how old this is now. (elseif)($CurrentTime = 3)(then) Nobody in the house likes yellow wax beans. But this can is so old now it's part of your heritage, like the rest of the house. (elseif)($CurrentTime = 4)(then) Nobody in the house likes yellow wax beans. But the can has lasted longer than almost everything else in the house. It'd be a shame to move it now. (else) This can has born witness to over eighty years of history. It may well outlast mankind. Certainly you'll never eat it. (endif) (prevent [take *]) Eww. No thanks. #cheerios (name *) Cheerios (dict *) cereal cheerios box yellow rocky bullwinkle (food *) (badfood *) (item *) (plural *) (* travels) (* age 1) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) A yellow box of cereal with Rocky and Bullwinkle on it. (container *) (* is closed) (opaque *) (instead of [open *]) No point in opening cereal you're not about to eat. (stop) #peanutButter (name *) jar of peanut butter (dict *) skippy short glass peanut-butter brand (item *) (food *) (badfood *) (* travels) (* age 1) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) A short glass jar of Skippy brand peanut butter. #peachPreserves (name *) cans of peach preserves (dict *) jar jars jam jelly can preserve peaches (plural *) (item *) (food *) (* travels) (* age 1) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) A lot of cans of peach preserves. Grandma sure likes to be prepared. (instead of [take *]) No, grandma would get mad if she saw you carrying one around. She's saving them to hand out to her friends later in the year. #honeyBear (name *) honey bear (dict *) plastic bottle bottles (item *) (food *) (* travels) (* age 1) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) One of those new plastic honey bottles shaped like a bear. (instead of [open *]) You don't have to open it until you're actually making the baklava. #countChocula (name *) box of Count Chocula cereal (item *) (food *) (badfood *) (container *) (* travels) (* age 2) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) This must be left over from Halloween. (* is closed) (opaque *) (instead of [open *]) No point in opening cereal you're not about to eat. (stop) #quakerOatmeal (name *) box of oatmeal (dict *) maple brown sugar quaker (item *) (badfood *) (food *) (* travels) (* age 2) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) Oh, sweet, it's your favorite: maple and brown sugar. (container *) (* is closed) (opaque *) (instead of [open *]) No point in opening cereal you're not about to eat. (stop) (grammar [empty [single]] for [empty $]) (perform [empty $Obj]) (if)(container $Obj)(then) (collect $Obj) *($Obj is #on *) (into $List) (if)~(empty $List)(then) You try to get everything out of (the $Obj): *($item has parent $Obj) (try [take $item]) (elseif)(opaque $Obj)(then) (try [open $Obj]) (else) It's already empty. (endif) (else) That's not something you can empty. (endif) #cinnamon (name *) can of ground cinnamon (dict *) French's French (item *) (food *) (* travels) (* age 2) (* belongs #Limbo) (descr *) This is a can of French's ground cinnamon. (narrate taking *) (* is pristine) You grab the cinnamon. It seems to resist you a bit. Once you take it, you feel your timeline partially stabilize. #walnuts (name *) crushed walnuts (dict *) nut walnut nuts bag of (item *) (plural *) (food *) (* travels) (* age 3) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) Looks like this bag of crushed walnuts was the only thing left in the pantry, what with all the supply chain problems. You've already eaten through most of your supplies. #granola (name *) jar of granola (dict *) organic (item *) (food *) (badfood *) (* travels) (* age 4) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) You've switched over to organic granola, recently. (container *) (* is closed) (opaque *) (instead of [open *]) No point in opening cereal you're not about to eat. (stop) #dough (name *) phyllo dough (uncountable *) (dict *) phylo (item *) (food *) (* travels) (* age 4) (* belongs #Pantry) (* beihSupport #pantryShelves) (descr *) You set it out to warm earlier. Now it's perfect! %%===================================================Office=================================================== #BigOffice (room *) (name *) Office (singleton *) (dict *) studio (look *) (TimeAge $CurrentTime) (if) ($CurrentTime = 1)(then) This is your father's office. It's lined in shelves filled with old classics and many back issues of National Geographic, with a (#memorywall) on one wall. His tall oak (#officeDesk) takes up the most space. (elseif) ($CurrentTime = 2)(then) This is your father's office. It's covered in shelves filled with old classics and weathered issues of National Geographic, with a (#memorywall) on one wall. His old wooden (#oldofficeDesk) is here, with his new computer. (elseif) ($CurrentTime = 3)(then) This is your art studio. Or, at least, it will be. Right now, it's mostly empty, except for a single easel in the middle and a (#pedestal). Your family's (#memorywall) is here, the only thing you kept from your dad's old office. The shelves and most of the books had to be thrown out. (elseif) ($CurrentTime = 4)(then) This is your art studio, a spacious room with a single easel in the middle. The family (#memorywall) takes up a lot of space on one side. You usually use the rest of the space to store art. (else) This is your former studio, but now the room is empty. It echoes in here. Your family's (#memorywall) is on the ground. You're not packing it, because it'll go in the car with you. (endif) (par) The family room is back to the (#north). (from * go #north to #FamilyRoom) (grammar [echo] for itself) (perform [echo]) (TimeAge $CurrentTime) (if)($CurrentTime = 5)(then) "Echo, echo, echo,..." (else) You don't get much of an echo in here. (endif) #grandpa (name *) grandpa (male *) (* dies 0) #memorywall (name *) memory board (dict *) pictures wall (photo *) (* is #in #BigOffice) (descr *) The memory board has portraits of all your loved ones who have passed on. Right now, that includes (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) just your (link){grandfather} and your (link){mom}. (elseif)($CurrentTime = 2)(then) just your (link){grandfather} and your (link){mom}. (elseif)($CurrentTime = 3)(then) your (link){grandfather}, (link){grandmother} and (link){mom}. (elseif)($CurrentTime = 4)(then) your (link){grandparents} and your (link){parents}. (else) your (link){grandparents}, your (link){parents} and (link){Uncle Joe}. (endif) #grandpaportrait (name *) photo of your grandfather (photo *) (dict *) grandpa grand portraits granddad portrait picture black white grandparent grandparents photo (* born 0) (descr *) Grandpa died before you were born. It shows him standing outside a coal mine, pick in hand. That was his first job, after he immigrated. #coalmine (name *) coal mine (descr *) You remember hearing stories about how Grandpa used to work from before the sun rose till after it set when he started out. (* is #partof #grandpaportrait) #coalpick (name *) pick (dict *) heavy (descr *) Your grandfather's pick looks pretty heavy. He must have been strong. (* is #partof #grandpaportrait) #momportrait (name *) photo of your mother (dict *) mom portraits portrait picture mum picnic parent parents photo (* born 0) (photo *) (descr *) You only have vague memories of your mother, including the day this was taken. The photo shows her at a picnic, feeding you a tiny slice of baklava. (if)(#recipeCard is pristine)(then) (par) The corner of a (#fakeRecipeCard) is sticking out from behind the portrait. (endif) (now)(mommentioned) #fakeRecipeCard (name *) recipe card (dict *) corner (* is #in #BigOffice) (instead of [take *]) You snatch up the card. It's your mom's old baklava recipe! (now)(#fakeRecipeCard is #in #Limbo) (now)(#recipeCard is #heldby #CJ) (now)(#recipeCard is handled) (now)(player's it refers to #recipeCard) (now)(LastObject #recipeCard) (descr *) You can't really see any part of the recipe card except the corner. #recipeCard (name *) recipe card (dict *) mom old stain stains stained food mom's ~(baklavadone) baklava (item *) (* travels) (* age 1) (* belongs #Limbo) (descr *) This is your mom's recipe for baklava. (par) The card looks pretty old, and has food stains. At the bottom, it says, 'Dad's recipe'. Huh, you never thought about it, but she must have got it from Grandpa. (par) It says you need cinnamon, phyllo dough, butter, nuts, and honey. Hopefully, Uncle Joe isn't hogging all the butter again. (par) (if)~(baklavadone)(then) (par) \[To make the baklava, you can type MAKE RECIPE in the kitchen once you have all the ingredients.\] (endif) #grandmotherportrait (name *) photo of your grandmother (dict *) grandma portraits portrait picture grandparent grandparents photo (grandmaNames) (photo *) (* born 3) (descr *) This is your grandmother's graduation picture from nursing school. She's wearing a crisp white uniform and cap, and standing by two nuns. She passed away shortly after her 84th birthday. #nuns (name *) nuns (dict *) nun (descr *) Religion was involved a lot more with education when your grandma was training. (* is #partof #grandmotherportrait) #uniform (name *) uniform (dict *) crisp white cap (descr *) Your grandmother's uniform looks very clean. (* is #partof #grandmotherportrait) #fatherportrait (name *) photo of your father (dict *) dad portraits portrait picture parent parents photo (* born 4) (descr *) In this photo, your father is sitting in his room late at night, reading law. He looks just as you remember him. #joeportrait (name *) photo of your Uncle Joe (photo *) (dict *) portraits portrait picture hair photo (* born 5) (descr *) This picture of your Uncle Joe was taken at the opening of his first franchise, back when he had more hair. He's standing tall, arms crossed, grinning at the camera. (prevent [take $object]) (photo $object) Uncle Rob made this memory board, and you know that he doesn't like people messing with it. (if)(drumsticknown)(then) (par) Besides, these pictures wouldn't be useful to Ada, since it's hard to see legs in any of them. (endif) #restaurant (name *) restaurant fry palace (descr *) It wasn't the first one he ever owned, since he bought out his first boss's restaurant. But it was the first opened under the "Joe's Fry Palace" franchise. (* is #partof #joeportrait) #officeshelves (name *) shelves (dict *) shelf shelves bookcase bookcases (plural *) (descr *) These shelves came with the house. Your dad didn't want them to look empty, so he bought a ton of books to put on them. (findform) (* sceneryObj) (* age 1) (* sitsin #BigOffice) (instead of [take *]) That doesn't seem very practical, given all the books. #oldofficeshelves (name *) old shelves (dict *) old shelf shelves bookcase bookcases (plural *) (descr *) These shelves are showing their age now, bent by the books that they've held so long. (findform) (* sceneryObj) (* age 2) (* sitsin #BigOffice) (instead of [take *]) That doesn't seem very practical, given all the books. #goneofficeshelves (name *) old shelves and books (dict *) old shelf shelves bookcase bookcases book books (plural *) (not here *) (descr *) You threw away all the old shelves and books. (* sceneryObj) (* age 3) (* sitsin #BigOffice) #dadsbooks (name *) books (dict *) books book classic classics set sets (descr *) Your dad bought all of these books at once to fill up the shelves. The bookstore owner couldn't believe him at first when he told him what he wanted. Not that you've read most of these; they're pretty dry. (findform) (* sceneryObj) (* age 1) (* sitsin #BigOffice) (prevent [take *]) All the interesting-looking books you grabbed out a long time ago. The ones left here aren't very interesting. (prevent [read *]) All the interesting-looking books you grabbed out a long time ago. The ones left here aren't very interesting. #olddadsbooks (name *) dusty books (dict *) books book classic classics set sets dusty (descr *) These dusty old books have sat here unread for quite a long time. (findform) (* sceneryObj) (* age 2) (* sitsin #BigOffice) (prevent [take *]) No, these aren't the kind of books that you actually read. These are books that have never been read. It would be a shame to break that streak. Also, the dust would probably kill you. (prevent [read *]) No, these aren't the kind of books that you actually read. These are books that have never been read. It would be a shame to break that streak. Also, the dust would probably kill you. #nationalmagazines (name *) National Geographic magazines (dict *) national geographic magazine magazines issue issues (descr *) Your dad has been a subscriber to National Geographic as long as you can remember. You've read some of these before. (findform) (* sceneryObj) (* age 1) (* sitsin #BigOffice) (prevent [take *]) You run your thumb over them, thinking of your favorite ones. It's tempting, but it's time to get everyone ready for dinner. (prevent [read *]) You run your thumb over them, thinking of your favorite ones. It's tempting, but it's time to get everyone ready for dinner. #oldnationalmagazines (name *) National Geographic magazines (dict *) national geographic magazine magazines (descr *) These have really piled up over the years. Your dad move some of the old books into storage to make room for these. (findform) (* sceneryObj) (* age 2) (* sitsin #BigOffice) (prevent [take *]) Some of the newer ones look really good, but it's time to get everyone ready for dinner. (prevent [read *]) Some of the newer ones look really good, but it's time to get everyone ready for dinner. #easel (name *) easel (dict *) wooden single easel (descr *) It cost a little more than you budgeted for, but you hope it will suffice for the next few years, at least. (* sceneryObj) (* age 3) (* sitsin #BigOffice) (instead of [take *]) This isn't really a portable easel. Sure, it moves, but it wasn't designed to just be thrown over your shoulder and dragged from place to place. (instead of [push *]) (select) You move the easel ever so slightly. (or) You move it even (italic)more(roman) slightly. (or) You won't believe just how slightly this baby can move. (or) You move it the slightest anyone has ever moved an easel. (or) You violently throw the easel against the wall, shattering it to pieces, then stomp the pieces into nothingness. (par) Are you happy? The easel is gone. (par) And now the mimesis is destroyed, too. Great. Let's just try to forget this. (now)(#easel is #in #Limbo) (now)(#easel sitsin #Limbo) (now)(#mimesis sitsin #BigOffice) (now)(#mimesis is #in #BigOffice) (stopping) #mimesis (name *) mimesis (* age 3) (not here *) (descr *) Mimesis in this case means the representation or imitation of real life that we attempt to evoke through parser games. #pedestal (name *) pedestal (dict *) pedestal hefty (descr *) This hefty pedestal is where you intend to put your current inspiration. Your choice may shape your future career, so you've been a bit nervous about it. (supporter *) (* sceneryObj) (appearance *) (collect $Obj) *($Obj is #on *) (into $List) (if)~(empty $List)(then) On the pedestal, you can see (a $List), artfully arranged. (else) The pedestal has nothing on it. (endif) (* age 3) (* sitsin #BigOffice) (instead of [take *]) The pedestal is already in exactly the right position. ~(appearance $ #on #pedestal) #dishtowel (name *) dish towel (dict *) dishtowel colorful (if)~(#servingdish dirty)(then) dirty (endif) (heads *) towel (item *) (* travels) (* belongs #BigOffice) (* age 3) (* is #on #pedestal) (descr *) A colorful dish towel which struck your fancy at the store. (if) (* is pristine)(then) It is artfully arranged on the pedestal, serving as your current object of inspiration. (endif) (if)~(#servingdish dirty)(then) It's kind of dirty. (endif) (grammar [arrange [single]] for [arrange $]) (perform [arrange $object]) (if)($object is #on #pedestal)(then) You arrange (name $object), and you do so (italic)quite(roman) artfully. (else) You generally only arrange things that are already set up on your pedestal. (endif) (prevent [put #paintings #on #pedestal]) You feel the rush of a horrifying paradox threatening to devour you and all reality if you do that. (after [put $ #on #pedestal]) (#paintings travels) (par) You feel your future career slightly change. (after [take $object]) (#paintings travels) ($object pedestaled) (par) You feel your future career slightly change. #oldeasel (name *) old easel (dict *) wooden single old easel trusty (descr *) This trusty old easel has served you well for decades, now. (* sceneryObj) (* age 4) (* sitsin #BigOffice) #paintings (name *) (collect $Obj) *($Obj is #on #pedestal) (into $List) paintings of (if)(empty $List)(then) an empty pedestal (else) (a $List) (endif) (plural *) (dict *) (collect $Obj) *($Obj is #on #pedestal) (into $List) stack stacked painting paintings (if)(empty $List)(then) empty pedestal (else) ($List) (endif) (descr *) (collect $Obj) *($Obj is #on #pedestal) (into $List) These are the paintings you haven't sold recently. Most of the paintings are of (if)(empty $List)(then) an empty pedestal (else) (a $List) (endif) since that was the inspiration for your first paintings twenty years ago. (appearance *) (collect $Obj) *($Obj is #on #pedestal) (into $List) A few (link){paintings} of (if)(empty $List)(then) an empty pedestal (else) (a $List) (endif) line the side of the room. (item *) (* travels) (* age 4) (* belongs #BigOffice) (instead of [show * to #Ada3]) (try [give * to #Ada3]) (perform [give * to #Ada3]) (TimeAge $CurrentTime) (if) ~(#drumstick is #on #pedestal)(then) "Thanks, but I don't really need paintings of...whatever that is right now. Nice technique, though!" says Ada. (elseif) ($CurrentTime = 2) (then) You hand over the paintings to Ada. (par) "This is perfect!" says Ada. "I love it! Let me go throw these in the car to get them framed later," she says, running into the house. You hear the front door open and then close a couple seconds later. (par) She rushes back in. "Done! And thanks again! Now I can really get to work." (now) (#paintings is #in #Limbo) (now) ~(#paintings travels) (now) ~(#drumstick untransmitted) (par) (par) Ada's future has changed. (elseif) ($CurrentTime = 1) (then) "Huh, nice pictures," says Ada, distracted. "I'm not working on legs now, it'll take me years before I get that far!" (else) "Boy, those would have been useful years and years ago," says Ada wistfully. "I really messed up when I did my first leg prototypes. Set me back way too far." (endif) #computer (name *) computer (dict *) apple ii computer zork visicalc (descr *) Your dad's computer is turned on, running Visicalc. You'll have to wait until later to play Zork II. (* sceneryObj) (* age 2) (* sitsin #BigOffice) (instead of [switch off *]) And make your dad lose all his spreadsheets? That wouldn't be nice. It took him a week just to figure out how to install the program. (instead of [switch on *]) It's already on. (instead of [open *]) Dismantling the computer is an interesting idea, but this really isn't the time for it. (instead of [take *]) You imagine the look on your father's face if you took it, looming like a destructive Godzilla over his hard-won spreadsheets, his files and folders. He would be shocked if you took the ocmputer. But you don't. (grammar [play zork] for itself) (grammar [play zork ii] for [play zork]) (perform [play zork]) Unfortunately, you have no way to do that right now. (instead of [play zork]) (#CJ is #in #BigOffice) (TimeAge $CurrentTime) ($CurrentTime = 2) You reach your hand towards the computer. But then you recall your fine character and upstanding education. You refrain from going against the wishes of your father. But you do formulate a plan where one day the entire house will be yours! #subscriptionForm (name *) subscription form (item *) (dict *) crossword puzzle puzzles faded year worth (* travels) (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 2)(then) This looks fairly faded. (endif) It's a form for ordering a year's worth of crossword puzzle books. It's dated 1961. (* is #in #Limbo) (appearance *) A (#subscriptionForm) is lying here. (* age 1) (grammar [fill in [single]] for [fill $]) (grammar [fill [single]] for itself) (perform [fill $object]) You don't have anything handy to do that with. (if)($object = #crosswordBook)(then) Besides, your dad would have to fill that out himself. (endif) (findform) (if)(formfound)(then) (else) (par) Oh, what's this? There's a (#subscriptionForm) for ordering puzzles. (TimeAge $CurrentTime) (if)($CurrentTime = 2)(then) It looks fairly old. (endif) (now)(formfound) (now)(#subscriptionForm is #in #BigOffice) (now)(#subscriptionForm belongs #BigOffice) (TimeAge $CurrentTime) (now)(#subscriptionForm age $CurrentTime) (endif) #firstpapers (name *) papers (dict *) paper legal speech page pages (descr *) All these papers look the same. Pages and pages of legal speech. It's incredibly dull. (findform) (* sceneryObj) (* age 1) (* sitsin #BigOffice) (instead of [take *]) Ugh. No. You're allergic to legalese. #papers (name *) papers (dict *) paper legal speech page pages (descr *) All these papers look the same. Pages and pages of legal speech. It's incredibly dull, and part of the reason you went into art. (findform) (* sceneryObj) (* age 2) (* sitsin #BigOffice) (instead of [take *]) Ugh. No. You're allergic to legalese. #officeDesk (name *) desk (dict *) desk father's (descr *) Your father's new desk is his pride and joy. After you, of course. (findform) (* sceneryObj) (* age 1) (* sitsin #BigOffice) (instead of [take *]) You pick up the desk and everything on it, including your father, who flaily his big legs around and makes shrieking noises. (par) Okay, not really. (instead of [push *]) It's depressingly heavy. (instead of [search *]) (try [examine *]) #oldofficeDesk (name *) desk (dict *) old desk father's well-worn well worn (descr *) Your father's desk is old and well-worn. It's been here so long it's probably fused with the house. You shudder to imagine someone trying to move this thing someday. (findform) (* sceneryObj) (* age 2) (* sitsin #BigOffice) (instead of [push *]) You heave yourself against it, trying to break its spirit, but it breaks yours instead. You sink to the ground, defeated, before rising again. The desk hasn't budged. Your dad didn't notice. (instead of [search *]) (try [examine *]) (instead of [take *]) You grab the edge of the desk and lift up as hard as you can. Your dad doesn't even notice you trying. #officeChair (name *) chair (dict *) chair leather (descr *) This leather chair is where you find your father most of the time. He had it custom-made. (* sceneryObj) (* age 1) (* sitsin #BigOffice) (instead of [take *]) You say, "Dad, can I have that chair?" (par) "No," he says, and continues reading. #oldofficeChair (name *) old chair (dict *) old chair cracked gross (descr *) Your father refuses to throw out his old leather chair, no matter how cracked it is. (* sceneryObj) (* age 2) (* sitsin #BigOffice) (instead of [take *]) No thanks. This chair is gross. #officeLamp (name *) lamp (dict *) lamp brass crowther brand crowther-brand (descr *) A simple brass lamp illuminates the office. It's a Crowther-brand lamp. (* sceneryObj) (* age 1) (* sitsin #BigOffice) (instead of [switch off *]) Your dad flicks it back on again. "Nice try, CJ, but I'm not getting up until dinner's ready." (instead of [switch on *]) It's already on. (instead of [take *]) It's kind of unwieldly. No thanks. #oldofficeLamp (name *) lamp (dict *) lamp crowther-brand crowther brand (descr *) This lamp has lasted surprisingly long. It's an old Crowther-brand lamp. (* sceneryObj) (* age 2) (* sitsin #BigOffice) (instead of [switch off *]) Your dad flicks it back on again. "Nice try, CJ, but I'm not getting up until dinner's ready." (instead of [switch on *]) It's already on. (instead of [take *]) You dad loves this lamp, so you let him keep it. Besides, he'd end up in the dark. #dad (name *) Dad (dict *) (dadnames) (male *) (* is #in #BigOffice) (proper *) (descr *) (dadDesc) (appearance * $ $) (TimeAge $CurrentTime) (if)($CurrentTime = 3)(then) (select) Your (#dad {dad}) is puttering around, making sure that your new studio is ready for you to move into. (or) Your (#dad {dad}) is hustling back and forth, finishing the last few tasks before you can move in completely. (select) (par) He looks up and smiles as you walk in before going back to his work. (or) (stopping) (or) Your (#dad {dad}) is looking critically at the room, muttering about lighting. (or) Your (#dad {dad}) is taking a break from moving things, and is scratching his head. (at random) (else) (select) Your (#dad {dad}) is sitting at his desk, looking through papers. (or) Your (#dad {dad}) is staring thoughtfully into space. (or) Your (#dad {dad}) sighs deeply, then rummages through his papers. (or) Your (#dad {dad}) curses faintly to himself, then shakes his head at the paper he is reading. (at random) (endif) (select) (par) "Oh hey, CJ," he says, looking up for a second. (or) (stopping) (* dies 3) (* livesin #BigOffice) (dadnames) father dad daddy da rugged hair white (dadDesc) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) Dad is a rugged-looking man with a big, bristly mustache that covers most of his face. He's wearing a suit, which he always does. (elseif)($CurrentTime = 2)(then) Dad looks a little softer and more gentle than when you were a kid in this house, but he still looks tough. He has grey in his mustache, but always dyes his hair. He's still wearing his suit, like you remember. (else) Dad has mellowed out a lot since you were younger. He has a full head of white hair that he finally gave up on dyeing. He changed out of his "nice suit" earlier so he could wear his old suit, just in case things got messy. (endif) (perform [talk to *]) Your dad looks up. "Hey, CJ!" he says, smiling. "What's up?" (statusactivate node *) #mustache (name *) mustache (descr *) Your dad's mustache has steadily persisted despite going in and out of fashion over the years. (* is #partof #dad) #suit (name *) suit (dict *) old (descr *) Your father's suit always looks immaculate. You've seen him sewing up little rips and tears over the years to keep it that way. (* is #wornby #dad) #strangegirlDad (#dad offers *) (label *) "Hey, I saw a strange woman standing in the upstairs window. Any idea who it was?" (disp *) Your dad looks startled. "Huh. Strange woman. What did she look like?" (par) "I don't know, but she looked familiar. She threw a paper airplane at me," you say. (par) "Did she seem dangerous?" asks Dad. (par) "No, it's just weird having strangers in the house," you answer. (par) "Well, it wouldn't be the weirdest thing that's happened here. Let me know if you see her again, okay?" says dad. #chatMomDad (#dad offers *) (photoknown) (youngestknown) (label *) "I've been thinking about our family recently. It's pretty cool." (disp *) (TimeAge $CurrentTime) Your dad pauses for a bit. "Yeah, you come from a great group. We're lucky to have everybody in the house together." He looks over at the memory board. "Well, most people. Your mom was really tough, you know. That's why we were all so shocked when she got breast cancer. But before she went, she was the strongest one in the house. Had a temper, too. She never hit you or me, but oh, would she shout when she was mad." (par) He looks at the memory board, and adds, "Your grandfather was pretty much the same, like two peas in a pod. I heard they had some legendary arguments. But I only barely knew him, and by then he had mellowed out a ton. He had cancer, too, but it was lung cancer. You should probably get that checked out some day for all that stuff," he says. (if)($CurrentTime > 2)(then) (par) "Grandma never got it," you tell Dad. (par) He nods, and says, "That's true. Maybe it skips a generation." (else) "But you can worry about that when you're older." (endif) (par) The two of you chat for a little bit longer about the rest of your family before he gets back to work. #subscriptionDad (#dad offers *) (#subscriptionForm is #heldby #CJ) (TimeAge $CurrentTime) ($CurrentTime = 1) (label *) "Hey, can you sign us up for this crossword puzzle subscription?" (disp *) (try [give #subscriptionForm to #dad]) (instead of [give #subscriptionForm to #dad]) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) "Huh," he says, "that actually looks kind of cool. You know, I think I'll sign up," he says. "But only if you help me with them." (par) "Definitely," you say. (now)(#subscriptionForm is #in #Limbo) (now)(#subscriptionForm belongs #Limbo) (now)(#crosswordBook belongs #BigOffice) (now)(#crosswordBook age 2) (now)(formsubmitted) (par) He grabs the form from you and tucks it away. (par) Something has changed in your father's future. (else) "That looks cool, CJ, but I'm afraid you're a few decades out of date. That's from the 60s," says your dad with a chuckle. (endif) #crosswordBook (item *) (* travels) (* is #in #Limbo) (* undelivered) (name *) crossword puzzle book (descr *) This is one of your dad's favorite crossword puzzle books. It looks like he's solved every puzzle. (heads *) book (dict *) puzzles (appearance *) A (#crosswordBook) is lying here. (instead of [show * to #Ada4]) (try [give * to #Ada4]) (perform [give * to #Ada4]) (TimeAge $CurrentTime) (if) ($CurrentTime = 3) (then) You hand over the puzzle book to Ada. (par) "Wow," says Ada. "This is perfect! And I like that your dad worked on this. The data will influence the robot's personality, so he might end up similar to your dad. Kind of like brothers!" (now) (#crosswordBook is #in #Limbo) (now) ~(#crosswordBook undelivered) (par) Ada's future has changed. (elseif) ($CurrentTime > 3) (then) "Oh, man, that would have been perfect years ago," says Ada wistfully. (else) "Why would I need that?" asks Ada rhetorically. (endif) (narrate taking *) (* is pristine) You take the crossword puzzle book. (par) Your dad looks up, and says, "Hey, sorry kid, I already finished that one!" (par) "It's okay, dad," you say. "I think I can find a use for it." #wrongSubscriptionDad (sticky *) (#dad offers *) (#subscriptionForm is #heldby #CJ) (TimeAge $CurrentTime) ~($CurrentTime = 1) (label *) "Hey, can you sign us up for this crossword puzzle subscription?" (disp *) (try [give #subscriptionForm to #dad]) #hurricaneDad (#dad offers *) (TimeAge $CurrentTime) ($CurrentTime 3) (label *) "That hurricane was wild, wasn't it?" (disp *) He shakes his head grumpily. "That's what made me finally move out, you know," he says. "I realize I'm too old to keep rebuilding this place. No offence, of course; glad you're keeping it in family hands." #whereCardDad (sticky *) (#dad offers *) (#recipeCard is pristine) (label *) "Do you know where mom's baklava recipe is?" (disp *) His eyes light up. "Ooh, you're making that? I think I left it on the memory board, since it goes with the picture," he says, pointing towards the wall. (now)(cardmentioned) #wheredishDad (sticky *) (#dad offers *) (#servingdish is pristine) (label *) "Have you seen the serving dish?" (disp *) (TimeAge $CurrentTime) (if)($CurrentTime > 1)(then) "I think it's downstairs somewhere." (else) "I think Grandma might know. Why don't you ask her?" (endif) %%#merryDad %%(#dad offers *) %% (TimeAge $CurrentTime) %% ($CurrentTime 3) %%(label *) "Merry Christmas, Dad!" %%(label *) "Merry Christmas, Dad!" %%(disp *) He stops moving things around and wipes his brow. "Merry Christmas, CJ," he says. "Sorry about the garage, but we'll get it fixed!" #movingDad (#dad offers *) (TimeAge $CurrentTime) ($CurrentTime 3) (label *) "You excited about your new house, Dad?" (disp *) "Well, it's a condo, not a house, but yeah, it'll be nice not to have to mow the lawn every week." #whereplatesDad (sticky *) (#dad offers *) (#plates is pristine) (label *) "Do you know where the plates are?" (disp *) "Oh, those. Last I saw them, they were in the treehouse." (now)(platesknown) (after [examine $obj]) (photo $obj) (now)(photoknown) #sayinghiDad (#dad offers *) (label *) "Oh, just wanted to say hi." (disp *) "Hi to you, too, kid. Sorry I've been so busy lately!" he says. It hasn't just been lately, of course, but that's just Dad. (terminating *) %%===================================================Garage=================================================== #Garage (room *) (name *) Garage (dict *) workshop (look *) The garage has been converted into a workshop for Ada. A (#whiteboard) is in the corner. (par) The family room is to the (#south). (from * go #south to #FamilyRoom) (grammar [erase [single]] for [erase $]) (perform [erase $]) That's not really something you can erase. #workshop (name *) workshop (dict *) work shop (descr *) (try [look]) (* is #in #Garage) #whiteboard (name *) whiteboard (dict *) whiteboard white board (descr *) (TimeAge $CurrentTime) The whiteboard is covered in equations. (if)($CurrentTime = 1)(then)Ada is quite the young prodigy.(endif) (* is #in #Garage) (instead of [erase *]) Ada looks over at you. "Don't you dare!" she says. #equations (name *) equations and schematics (plural *) (dict *) equation formula formulas schematic schematics (intangible *) (descr *) (if)(#Ada1 is #in #Garage)(then) Looks like she's studying finite subdivision rules. This is a series calculating the growth rate of a Gromov hyperbolic group. (else) The entire chalkboard is covered in robot schematics. It would probably provide you deep and lasting insights if you knew anything about robotics or electrical engineering, but you don't. (endif) (* is #partof #whiteboard) (perform [read $object]) (try [examine $object]) #boxesofspareparts (name *) boxes of spare parts (dict *) boxes square parts box of part (descr *) Various boxes lie scattered around the room, filled with parts that Ada has hoarded over the years. (plural *) (* is #in #Garage) #Ada1 (name *) Ada (proper *) (dict *) (adaNames) (female *) (* is #in #Garage) (descr *) (adaDesc) (appearance * $ $) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Your cousin (#Ada1) is skipping around the garage, chatting to herself and occasionally drawing on the whiteboard. (elseif) ($CurrentTime = 2) (then) Your cousin (#Ada1) is working diligently on her latest theorem in applied homological algebra. She seems withdrawn and focused. (elseif) ($CurrentTime = 3) (then) Your cousin (#Ada1) is pacing around the room, muttering about her upcoming tenure review. (elseif) ($CurrentTime = 4) (then) Your cousin (#Ada1) is pacing around the room, talking to herself about securing research funding for her department. (else) Your elderly cousin (#Ada1) is pacing around the room somewhat wistfully. She still hasn't packed. (endif) (select) (par) She notices you walk in. (par) "Hi, CJ," she says absent-mindedly, and keeps walking around. (or) (stopping) (perform [talk to *]) (TimeAge $CurrentTime) (if) ($CurrentTime = 5) (then) (if) (#RobotStory undelivered) (then) (#Ada1) says, "You know, CJ, I regret never living my passion...making robots! It's too late for me to really get into it now, but it inspired me to write about them! Here, take this. I only wish my younger self could have seen it." (par) She hands you a (#RobotStory {small book}). (now) (#RobotStory is handled) (now) (#RobotStory is #heldby #CJ) (now) ~(#RobotStory undelivered) (else) "Hey CJ, what's up?" she says. (par) (statusactivate node *) %% "Please," says Ada, "find someone who appreciates my story. I know I would have, long ago." (endif) (elseif) ($CurrentTime = 1) (then) Ada says, "I'm trying to figure out what I want to do next. Some kind of big project. I'll let you know if I come up with anything! Anyway, what's up?" (par) (statusactivate node *) (else) Ada says, "Sorry, CJ, I'm busy. The life of a mathematician never slows down! Well, maybe never. But at least not until I've proven that there are no zeros off the critical line using annealing methods in numerical partial differential equations. But enough about me. What's up?" (par) (statusactivate node *) (endif) (adaNames) cousin thin rail-thin rail severe ponytail streak white dark hair curled curly wavy (TimeAge $CurrentTime) (if)($CurrentTime = 2)(then) red (elseif)($CurrentTime = 5)(then) crow feet crows crowsfeet crowfeet (endif) #sweater1 (name *) black sweater (descr *) Ada has always preferred black sweaters. (* is #wornby #Ada1) #sweater2 (name *) black sweater (descr *) Ada has always preferred black sweaters. (* is #wornby #Ada2) #sweater3 (name *) black sweater (descr *) Ada has always preferred black sweaters. (* is #wornby #Ada3) #sweater4 (name *) black sweater (descr *) Ada has always preferred black sweaters. (* is #wornby #Ada4) #sweater5 (name *) black sweater (descr *) Ada has always preferred black sweaters. (* is #wornby #Ada5) (adaDesc) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Ada is a young child, rail-thin and dressed in black, about your age. Her hair is pulled back in a severe ponytail, but curls at the edges. (elseif) ($CurrentTime = 2) (then) Ada is a tall, young woman, about your age. Her wavy hair is dyed bright red, and she's wearing a black sweater that hangs loosely on her. (elseif) ($CurrentTime = 3) (then) Ada is a tall woman, slender woman about your age. She has dark, curled hair with a white streak in the middle. (elseif) ($CurrentTime = 4) (then) Ada is an older woman, tall, elegant, and about your age. Her grey and curling hair has a white streak in the middle. (else) Ada is a frail but active elderly woman, about your age. Her grey hair has a white streak in it, and she has deep crowsfeet around her eyes but few other wrinkles. (endif) (par) She's your closest cousin, and a genius. #RobotStory (name *) short story about robots (dict *) robots robot short story book empire children's small (item *) (* travels) (* undelivered) (* age 5) (* belongs #Limbo) (descr *) It says "Robot Empire", by Ada S. It's a children's book (appearance *) Aunt Ada's book is on the floor. (perform [give * to #Ada1]) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) You give young (#Ada2) the book. (par) "Whoa! This story is awesome! I wonder if someone could make a robot in real life...you know what, I'm going to try it!" (par) She immediately starts tinkering around, assembling parts. This looks like it might take a while. (now) (#RobotStory is #in #Limbo) (now) (#RobotStory belongs #Limbo) (now) (#Ada1 is #in #Limbo) (now) (#Ada2 is #in #Garage) (now) (#ToasterPrototype is #in #Garage) (par) Ada's future has changed. (elseif) ($CurrentTime = 5) (then) "Keep it, dear," says Ada. (else) "I'm too busy to care about such childish things," says Ada. "I outgrew that type of story long ago." (endif) (prevent [read *]) (if) (* is #heldby #CJ) (then) It's about a space society of sentient robot ships that battle across an entire galaxy, trying to find a mysterious, black-hole orbiting planet said to contain the strongest metal in the universe. The main character is constantly upgrading itself throughout the story. (else) It's hard to read without holding it. (endif) (instead of [give * to #dad]) "Huh, I didn't know Ada was a writer. Always thought of her as a more right-brained person. You're the creative one, after all," says Dad. (par) "We can be good at more than one thing, Dad," you answer chidingly. (instead of [give * to #unclejoe]) "Neat," says Uncle Joe. "I'm more of a litfic guy myself, but I'm proud of Ada for writing this." (instead of [give * to #grandma]) "Oh? Ada wrote a book?" she asks. She peers at it closely. "Robots, huh. Never got into that kind of stuff. Good for her, though." #strangegirlAda (#Ada1 offers *) (#Ada2 offers *) (#Ada3 offers *) (#Ada4 offers *) (label *) "Ada, did you see a strange woman upstairs?" (disp *) "Besides you and me? Not really. Actually, have you ever even been upstairs? What with your... problem?" (par) "It's not a problem, Ada!" you exclaim. (par) "Oh, okay. That's actually a nice attitude. Anyway, no I haven't seen anyone. If you find her, let me know and I'll go say hi," she says. #dinnersoonAda (#Ada1 offers *) (#Ada2 offers *) (#Ada3 offers *) (#Ada4 offers *) (label *) "Make sure you're ready for dinner soon!" (disp *) (TimeAge $CurrentTime) (if) ($CurrentTime = 5)(then) "I don't know, I just don't have the heart to eat right now. I feel like I ran out of time with my ideas," she says. "It feels like part of my life is unresolved, like I could have done something greater." (else) "Not now, CJ," says Ada. "Sorry if it sounds rude, but I feel like I'm on a real mission, like I can do something great here! As soon as I can figure out a couple problems." (endif) #Ada2 (name *) Ada (proper *) (dict *) (adaNames) (female *) (* is #in #Limbo) (descr *) (adaDesc) (appearance * $ $) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Your cousin (#Ada2) is skipping around the garage, chatting to herself and occasionally drawing on the whiteboard. (elseif) ($CurrentTime = 2) (then) Your cousin (#Ada2) is sketching schematics on the whiteboard. (elseif) ($CurrentTime = 3) (then) Your cousin (#Ada2) is pacing around the room, tinkering with spare parts. (elseif) ($CurrentTime = 4) (then) (if) (#battery undelivered)(then) Your cousin (#Ada2) is frantically looking through the boxes. "Where is it?" she mutters. (else) Your cousin (#Ada2) is walking around excitedly, working on her latest breakthrough. (endif) (else) (if) (#battery undelivered)(then) Your elderly cousin (#Ada2) is looking around the workshop morosely. She still hasn't packed. (else) Your cousin (#Ada2) is finishing up her last bits of work. She still hasn't packed. (endif) (endif) (perform [talk to *]) (TimeAge $CurrentTime) (if) ($CurrentTime = 4)(then) (if) (#battery undelivered) (then) (select) "Sorry, CJ, I've got a major problem right now. What's up?" (or) "Hey, CJ. Sorry, I'm still looking for a good battery. What's up?" she says. (stopping) (statusactivate node *) (else) %% "Thanks for you help," says Ada, "but I've got to get cracking!" (par) (statusactivate node *) (endif) (elseif) ($CurrentTime = 5) (then) (if) (#battery undelivered) (then) (select) "Sorry, I'm just feeling down. What did you need?" (or) Ada says, "Gah, I'm still thinking about that battery I can't find. Anyway, what did you need?" (stopping) (par) (statusactivate node *) (elseif) (#ToasterBot undelivered) (then) Ada looks at you and beams. She says, "It's finally finished! My greatest work! It's (#ToasterBot)! Even though it...doesn't really toast anything. But it (italic)is(roman) vaguely toaster-shaped." (par) She hands you the little toaster robot, then smiles. (par) "It's not much, but it's the best I could do with the time I have..." she says. (par) (now) (#ToasterBot is #heldby #CJ) (now) (#ToasterBot is handled) (now) (#ToasterPrototype prototypeDone) (now) ~(#ToasterBot undelivered) (else) %% "Please," says Ada, "find someone who appreciates my little robot. I know I would have, long ago." She beams at you, and says, "Hey, what's up?" (par) (statusactivate node *) (endif) (elseif) ($CurrentTime = 1) (then) Ada says, "I love robots! I'm going to make one. It's kind of hard for me to know what to do, though, but I do have a cool idea!" (par) She messes around with the prototype for a bit, then realizes you're still there. "Oh, did you need anything?" (par) (statusactivate node *) (else) Ada says, "Sorry, CJ, I'm working on an idea for a robot! I've been kind of busy. What do you need?" (par) (statusactivate node *) (endif) #deliverbatteryAda (#Ada2 offers *) (TimeAge $CurrentTime) ($CurrentTime = 4) (#battery is #heldby #CJ) (batteryknown) (sticky *) (label *) "Hey, is this battery yours?" (disp *) (try [give #battery to #Ada2]) (terminating *) #latedeliverbatteryAda (#Ada2 offers *) (TimeAge $CurrentTime) ~($CurrentTime = 4) (#battery is #heldby #CJ) (batteryknown) (sticky *) (label *) "Hey, is this battery yours?" (disp *) (try [give #battery to #Ada2]) #whatswrongAda2time4 (#Ada2 offers *) (TimeAge $CurrentTime) ($CurrentTime = 4) (#battery undelivered) (sticky *) (label *) "Hey, what's wrong? You look upset." (disp *) Ada says, "Have you seen a battery anywhere? I made a really big battery years ago, large enough to power some hefty electronics. I was saving it to power my final creation. But I can't find it anywhere! I know I used it for something, but I have no idea where it's gone, or when. It's so frustrating!" (par) "I'll see if I can find anything like that," you say. (par) She gives you a wan smile. "Thanks!" (now)(batteryknown) #whatswrongAda2time5 (#Ada2 offers *) (TimeAge $CurrentTime) ($CurrentTime = 5) (#battery undelivered) (sticky *) (label *) "Hey, what's wrong? You seem bummed." (disp *) Ada says, "You know, I really could have done something special with robotics, I think. But I lost all of my motivation twenty years ago. I had a perfect idea for a prototype, but I lost this special battery I constructed. I tried recreating it, but nothing worked as well as my initial prototype. I had forgotten what I wanted to do. If only I could have found that darned battery!" (par) "Oh, gosh, well I hope you can find it," you say. (par) "That's the point," says Ada. "It's too late now." (now)(batteryknown) #whattoasterAda (#Ada2 offers *) (TimeAge $CurrentTime) ($CurrentTime = 1) (#ToasterBot is #heldby #CJ) (label *) "Hey, check out this cool Toaster Robot!" (disp *) (try [give #ToasterBot to #Ada2]) (terminating *) #oldwhattoasterAda (#Ada2 offers *) (TimeAge $CurrentTime) ~($CurrentTime = 1) ~($CurrentTime = 5) (#ToasterBot is #heldby #CJ) (label *) "Hey, check out this cool Toaster Robot!" (disp *) (try [give #ToasterBot to #Ada2]) #veryoldwhattoasterAda (#Ada2 offers *) (TimeAge $CurrentTime) ($CurrentTime = 5) (#ToasterBot is handled) (label *) "What should I do with this robot?" (disp *) "I dunno, I just remember how you inspired me with that robot story, years ago. I always wanted to inspire someone else in the same way," says Ada. #Limbo (room *) #TableLimbo (room *) #ToasterPrototype (name *) toaster prototype (dict *) toaster prototype robot wires attachment attachments steel shiny (heads *) prototype (* is #in #Limbo) (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) A toaster with wires coming out of it. This honestly isn't looking too hot right now. (elseif)($CurrentTime = 2)(then) The original toaster design remains, but there are multiple attachments now. (elseif)($CurrentTime = 3)(then) The original casing has been stripped off and replaced with shiny steel. It has a screen, too. (elseif)($CurrentTime = 4)(then) The robot shaped like a toaster has been pried open. Wires reach out of it in many directions. It is silent. (else) (if)(#battery undelivered)(then) The toaster robot is disassembled. It looks like it was never completed. (else) The prototype looks finished! Ada must so be so excited! (endif) (endif) (appearance *) The robot (link){prototype} Ada's always working on is in the corner. (proto *) #screen (name *) prototype's screen (descr *) The screen is inert, for now. (* is #partof #ToasterPrototype) (instead of [take $object]) (proto $object) Ada might still need that. #ToasterBot (name *) Toaster Bot (dict *) Toaster Bot robot cute little toasterbot attachments sparks (heads *) toaster robot bot steel screen attachments (item *) (* travels) (* undelivered) (* age 5) (* belongs #Limbo) (descr *) This is a cute little robot shaped like a toaster, although all toaster functionality was stripped out of it years ago. It doesn't have a lot of capabilities, apparently, but it's an honest-to-goodness robot with a screen and attachments, and that's pretty impressive. (par) Ada probably could have improved it, given enough time. (appearance *) The toaster robot (select) is tooling around. (or) sputters and coos. (or) sends out a little shower of sparks. (or) wiggles helplessly. (at random) (instead of [show * to #Ada2]) (try [give * to #Ada2]) (perform [give * to #Ada2]) (TimeAge $CurrentTime) (if) ~($CurrentTime = 1) (then) "I'm already working on something like that!" says Ada. (else) You give young (#Ada3) the robot. (par) "Holy Cow! What is this? I...hey, I think I know how this works! But it doesn't really...do much. Hmmm I think I have some ideas!" (par) She gets to work, grabbing parts and working on a new prototype. (now) (#ToasterBot is #in #Limbo) (now) (#ToasterBot belongs #Limbo) (now) (#ToasterPrototype is #in #Limbo) (now) (#Ada2 is #in #Limbo) (now) (#Ada3 is #in #Garage) (now) (#WalkingPrototype is #in #Garage) (par) Ada's future has changed. (endif) (grammar [pet [single]] for [pet $]) (perform [pet $]) That's not really something you would pet. (instead of [pet #ToasterBot]) You gently pet Toaster Bot, and it shoots out a light shower of sparks and beeps cheerfully. (instead of [show $object to $Person]) (try [give $object to $Person]) (instead of [give * to #dad]) "What the heck is that?" says Dad. (par) "Ada made it," you say. "It's name is Toaster Bot." (par) Toaster Bot shoots out sparks. Dad slowly inches away. (par) "Tell her it's beatiful. But, uh, can you take it out of here? Don't want it to start a fire." (instead of [give * to #unclejoe]) "Whoa, what's that?" asks Uncle Joe. (par) "This is Toaster Bot. Ada made it?" you say. (par) "Toaster, huh? Does it make toast," he asks, intrigued. (par) "I don't think so," you say. (instead of [give * to #grandma]) "Good heavens!" says Grandma. "That is the strangest-looking thing I have ever seen." (par) "It's a robot, Grandma. Ada made it," you say. (par) "Oh," says Grandma. "Well, that's very impressive. I'll tell her I'm proud of her." (instead of [put * #on #KitchenCounter]) (TimeAge $CurrentTime) ($CurrentTime < 5) Uncle Joe waves his finger menacingly. "No, no, no! I don't allow sentient appliances in my kitchen!" (instead of [switch on *]) Toaster Bot is already on! (instead of [switch off *]) Toaster Bot beeps forlornly. You can't bear to commit the robocide. (instead of [talk to *]) Toaster Bot just beeps and boops. #truescreen (name *) screen eyes (descr *) The screen mostly flashes, making different kinds of eyes, like UwU or OwO. (heads *) screen (* is #partof #ToasterBot) #Ada3 (name *) Ada (proper *) (dict *) (adaNames) (female *) (* is #in #Limbo) (descr *) (adaDesc) (appearance * $ $) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Your cousin (#Ada3) is skipping around the garage, chatting to herself and occasionally drawing on the whiteboard. (elseif) ($CurrentTime = 2) (then) (if)~(#drumstick untransmitted)(then) Your cousin (#Ada3) is eagerly sketching schematics on the whiteboard. (else) Your cousin (#Ada3) is staring at the whiteboard, frustrated. (endif) (elseif) ($CurrentTime = 3) (then) (if)~(#drumstick untransmitted)(then) Your cousin (#Ada3) is pacing around the room, tinkering with spare parts. (else) Your cousin (#Ada3) is pacing around the room. She looks tense. (endif) (elseif) ($CurrentTime = 4) (then) (if)~(#drumstick untransmitted)(then) Your cousin (#Ada3) is walking around excitedly, working on her latest breakthrough. (else) Your cousin (#Ada3) is walking around half-heartedly. (endif) (else) (if)~(#drumstick untransmitted)(then) Your cousin (#Ada3) is finishing up her last bits of work. She still hasn't packed. (else) Your cousin (#Ada3) is looking wistfully around the room. (endif) (endif) (perform [talk to *]) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Ada says, "I love robots! I'm going to make one. It's kind of hard for me to know what to do, though, but I do have a cool idea! What are you up to?" (par) (statusactivate node *) (elseif) (#drumstick untransmitted)(then) (if) ($CurrentTime = 2)(then) "Oh. Hey CJ. What's up?" she says. (par) (statusactivate node *) (else) "Sorry, CJ. What is it you needed?" she asks. (par) (statusactivate node *) (endif) (elseif) ($CurrentTime = 5) (then) (if) (#WalkBot undelivered) (then) Ada looks at you and beams. She says, "It's finally finished! My greatest work! It's (#WalkBot)!" (par) She places the walking robot on the ground and nudges it towards you. It troddles forward and cuddles your leg before walking to your side. Ada smiles, then sighs. (par) "There's so much more I could have done, given the time," she says. (now) (#WalkBot follows) (now) (#WalkingPrototype prototypeDone) (now) ~(#WalkBot undelivered) (else) %% "Please," says Ada, "find someone who appreciates my walking robot. I know I would have, long ago." "Hey, thanks for your help earlier. What do you need?" asks Ada. (par) (statusactivate node *) (endif) (else) Ada says, "Sorry, CJ, I'm working on an improved robot! What's up?" (par) (statusactivate node *) (endif) #deliverpaintingsAda (#Ada3 offers *) (TimeAge $CurrentTime) ($CurrentTime = 2) (#paintings is #heldby #CJ) (sticky *) (label *) "Hey, are these paintings helpful at all?" (disp *) (try [give #paintings to #Ada3]) (terminating *) #latedeliverpaintingsAda (#Ada3 offers *) (TimeAge $CurrentTime) ~($CurrentTime = 2) (#paintings is #heldby #CJ) (drumsticknown) (sticky *) (label *) "Hey, are these paintings helpful at all?" (disp *) (try [give #paintings to #Ada3]) #deliverdrumstickAda (#Ada3 offers *) (#drumstick is #heldby #CJ) (drumsticknown) (sticky *) (label *) "Hey, could you use this drumstick?" (disp *) (try [give #drumstick to #Ada3]) #whatswrongAda3time2 (#Ada3 offers *) (TimeAge $CurrentTime) ($CurrentTime = 2) (#drumstick untransmitted) (sticky *) (label *) "Hey, what's wrong? You seem frustrated." (disp *) "I wish I had inspiration for the joints," she says. "What I really need is a way to study a leg in detail." She sighs. "You got any legs?" (par) "Uh, I have two, I guess," you say, looking down at yours. "Same as you." (par) "Well, unless I can borrow them permanently, it's not going to help. If you see any other legs, let me know!" she says. (now)(drumsticknown) #whatswrongAda3timeOther (#Ada3 offers *) (TimeAge $CurrentTime) ($CurrentTime > 2) (#drumstick untransmitted) (sticky *) (label *) "Hey, what's wrong? You seem bummed." (disp *) Ada looks fairly frustrated. "I feel like I've just wasted my life. I tried to study robot motion, but I made a bad leg prototype in my 20's, and a rival got ahead of me and I never caught up. If only I had learned more about legs!" (par) She paces around in frustration, then calms herself by breathing deeply. (now)(drumsticknown) (par) "I'll see what I can do," you say. (par) "Thanks, CJ" says Ada. "It's a little late for that now, but maybe you can help out." #oldwhatwalkbotAda (#Ada3 offers *) (TimeAge $CurrentTime) ~($CurrentTime = 1) ~($CurrentTime = 5) (#WalkBot follows) (sticky *) (label *) "Hey, check out this cool Walking Robot!" (disp *) (showadabot) %%This code is copied because I also use it lower down for showing the bot to Ada (showadabot) "Yeah, I saw that when you came in. Where'd you get that?" asks Ada. (par) "Well, you know, I have my ways," you say with a wink. (par) "Huh, it looks a lot like what I'm working on. Man, it gives me some ideas but I'd have to start all over again. I guess I'm gone too far now for it to be useful, but this would have been great in the beginning." #veryoldwhatwalkbotAda (#Ada3 offers *) (TimeAge $CurrentTime) ($CurrentTime = 5) (#WalkBot follows) (label *) "What should I do with this robot?" (disp *) "Hey, I think people deserve to see this bad boy. Show it around!" says Ada proudly. #WalkingPrototype (name *) walking prototype (dict *) walking prototype robot bot small toaster humanoid tentacle tentacles tread treads (TimeAge $CurrentTime) ($CurrentTime > 2) ~(#drumstick untransmitted) leg legs jointed (* is #in #Limbo) (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) The toaster bot you dropped off has been stripped of a few parts, and Ada has drilled into the bottom a few times. (elseif)($CurrentTime = 2)(then) The old toaster shape has been replaced with a small humanoid torso. It looks like there should be legs at the bottom, but they're missing. (elseif)($CurrentTime = 3)(then) (if)(#drumstick untransmitted)(then) The prototype looks disastrous. It looks vaguely humanoid, but it has tentacles on the bottom that clearly do not work. (else) The prototype has simple legs now that look barely manageable. The numerous dents are evidence of many falls. (endif) (elseif)($CurrentTime = 4)(then) (if)(#drumstick untransmitted)(then) The prototype has treads, which look frankly ridiculous. One of them is completely mangled. (else) The prototype has jointed legs now that seem to be fairly successful, though somewhat fragile. (endif) (else) (if)(#drumstick untransmitted)(then) The prototype is disassembled. It looks like Ada is ready to discard it. (else) The prototype looks finished! Ada must so be so excited! (endif) (endif) (appearance *) The walking robot (link){prototype} Ada's always working on in the corner. (proto *) #WalkBot (name *) Walkbot (dict *) walkbot robot bot walk walking little boxy body silver copper (heads *) walkbot robot bot (* undelivered) (* age 5) (* is #in #Limbo) (descr *) This is a little walking robot with a boxy body colored silver and copper. It's currently following you. (appearance *) (#WalkBot) walks around in a little circle. (instead of [switch on *]) Walkbot doesn't need any more power, thank you very much. (instead of [switch off *]) You reach towards Walkbot. Walkbot turns to face you, bobbling fearfully. It backs away. Can you do it? Can you actually deactiviate it? Walkbot jitters. You can't. You can't do this. %%We have to use REFUSE instead of INSTEAD or PREVENT because of the condition that things must be carried to show them in the standard code (refuse [show * to #grandma]) "What a funny little thing!" says Grandma. "Did you buy that?" (par) "No, Ada made it," you say. (par) "Well that's marvelous," she says. "I'll have to tell her how proud I am." (refuse [show * to #unclejoe]) "Whoa!" says Joe. "What's this?" (par) "Ada made a walking robot," you answer. (par) "Neat! I don't suppose it knows how to chop potatoes, does it?" he asks, teasingly. (par) "I don't think so, Uncle Joe," you answer. (refuse [show * to #Ada3]) (showadabot) (refuse [show * to #dad]) "Is that something Ada made?" asks Dad. (par) "Yeah, how'd you know?" you ask. (par) "She's always talking about robotics these days. I'm proud of her," says Dad. (prevent [take #WalkBot]) Walkbot kicks its little legs, trying to get down. Eventually it kicks free and drops back to the ground, puttering around again. (instead of [talk to *]) WalkBot ignores you and does a little tap dance. (on every tick) (if)(#CJ is #in #Garage)(then) (TimeAge $CurrentTime) (if)(#WalkBot follows)(then) (if) ~($CurrentTime = 1) (then) (line) (else) Ada sees the walking robot following you and gasps. (par) "Oh my goodness! What an adorable robot! Hello, my name is (#Ada4). What's yours?" (par) When the robot doesn't respond, she strokes her chin and says, "Huh. Doesn't talk. I wonder if I can fix that. Give me some space, I'm gonna get to work!" (par) She immediately starts tinkering with the robot, pulling some parts out and replacing them with others. (par) Ada's future has changed. (now) (#WalkBot is #in #Limbo) (now) (#WalkBot belongs #Limbo) (now) ~(#WalkBot follows) (now) (#WalkingPrototype is #in #Limbo) (now) (#WalkingPrototype belongs #Limbo) (now) (#Ada3 is #in #Limbo) (now) (#Ada4 is #in #Garage) (now) (#AndroidPrototype is #in #Garage) (endif) (endif) (endif) #Ada4 (name *) Ada (proper *) (dict *) (adaNames) (female *) (* is #in #Limbo) (descr *) (adaDesc) (appearance * $ $) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Your cousin Ada is skipping around the garage, chatting to herself and occasionally drawing on the whiteboard. (elseif) ($CurrentTime = 2) (then) Your cousin Ada is sketching schematics on the whiteboard. (elseif) ($CurrentTime = 3) (then) (if) (#crosswordBook undelivered)(then) (#Ada4) is taking a break, looking kind of upset. (else) Your cousin (#Ada4) is pacing around the room, tinkering with spare parts. (endif) (elseif) ($CurrentTime = 4) (then) (if) (#crosswordBook undelivered)(then) (#Ada4) is walking around thoughtfully. She looks a bit sad. (else) Your cousin (#Ada4) is walking around excitedly, working on her latest breakthrough. (endif) (else) (if) (#crosswordBook undelivered)(then) (#Ada4) is walking around thoughtfully. She looks a bit sad. (else) Your cousin (#Ada4) is finishing up her last bits of work. She still hasn't packed. (endif) (endif) (perform [talk to *]) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Ada says, "I love robots! I'm going to make one. And I know exactly what I'm going to do. That robot from my future self is perfect to tinker with! Anyway, what do you need?" (par) (statusactivate node *) (elseif) ($CurrentTime = 2) (then) Ada says, "Sorry, I'm busy! But I can talk for a bit." (par) (statusactivate node *) (elseif) (#crosswordBook undelivered)(then) "Hey, CJ, what's up?" says Ada. (par) (statusactivate node *) (elseif) ($CurrentTime = 5) (then) (if) (#UncleRob undelivered) (then) Ada looks at you and beams. She says, "It's finally finished! My greatest work! It's (#UncleRob)!" (par) She presses a button, and Rob lights up. (par) "Hello, CJ. It's a pleasure to see you. Do you have any food? I am quite hungry," says Rob. (par) Ada smacks her forehead. "Of course! I forgot about dinner. Here, take Rob and let me know when everyone else gets here! I'm going to go wash up," she says, and walks into the house. (now) (#UncleRob follows) (now) (* is #in #Limbo) (now) (#AndroidPrototype prototypeDone) (now) (#AndroidPrototype is #in #Limbo) (now) ~(#UncleRob undelivered) (else) "Well," says Ada, "let's grab some dinner! Let me know when our guests arrive." (endif) (else) Ada says, "Sorry, CJ, I'm working on my ultimate robot! What's up?" (par) (statusactivate node *) (endif) #delivercrossAda (#Ada4 offers *) (TimeAge $CurrentTime) ($CurrentTime = 3) (#crosswordBook is #heldby #CJ) (crossknown) (sticky *) (label *) "Hey, my dad finished this crossword puzzle book. Could you use it?" (disp *) (try [give #crosswordBook to #Ada4]) (terminating *) #wrongdelivercrossAda (#Ada4 offers *) (TimeAge $CurrentTime) ~($CurrentTime = 3) (#crosswordBook is #heldby #CJ) (crossknown) (sticky *) (label *) "Hey, my dad finished this crossword puzzle book. Could you use it?" (disp *) (try [give #crosswordBook to #Ada4]) #whatswrongAda4time3 (#Ada4 offers *) (TimeAge $CurrentTime) ($CurrentTime = 3) (#crosswordBook undelivered) (sticky *) (label *) "Hey, what's wrong?" (disp *) Ada says, "I'm kind of stuck. I need a source of concentrated knowledge to train my robot with. And it can't be digital, I've had enough of that. I'm looking for something imperfect, like someone's journals or a finished book of puzzles." (par) "Hmmm," you say, "sounds like something my dad would have." (par) "Really? Well, let me know if you find it!" says Ada. (now)(crossknown) #whatswrongAda4timeOther (#Ada4 offers *) (TimeAge $CurrentTime) ($CurrentTime > 3) (#crosswordBook undelivered) (sticky *) (label *) "Hey, are you doing alright?" (disp *) Ada says, "I almost had a great idea for a robot, but I needed a good non-digital source of information and knowledge. That was years ago, though, and what I ended up going with has turned out useless. Set me on the wrong path." She sighs. (par) "Oh gosh, I'm sorry to hear that," you say. (par) "Thanks, CJ," she answers. (now)(crossknown) #mathAda (#Ada1 offers *) (TimeAge $CurrentTime) ~($CurrentTime = 5) (label *) "So why do you like math so much anyway?" (disp *) "Well, CJ, who wouldn't like math? In all the other sciences, you can doubt what your senses tell you. For all we know, nothing is real and we're just in a simulation or something. But math is a way of organizing human thought in consistent patterns, and it can be a source of truth even if you question everything else," she says. (par) "Wow, I guess that makes sense," you say. (par) "Also I tried biology but it was kind of boring," she says. #deliverbookAda (#Ada1 offers *) (TimeAge $CurrentTime) ($CurrentTime = 5) (#RobotStory is handled) (sticky *) (label *) "So, what am I supposed to do with this book?" (disp *) "I hope you just find someone who's interested in it, I guess," she says. "I know I would have been, when I was a kid." #altdeliverbookAda (#Ada1 offers *) (TimeAge $CurrentTime) ~($CurrentTime = 5) (#RobotStory is #heldby #CJ) (sticky *) (label *) "Hey, do you want to check out this book on robots?" (disp *) (try [give #RobotStory to #Ada1]) (terminating *) (TimeAge $CurrentTime) ($CurrentTime = 1) #robotAda (#Ada2 offers *) (#Ada3 offers *) (#Ada4 offers *) (label *) "So why do you like robots so much anyway?" (disp *) "Robots are cool. You have to know math to make them, and they're kind of like biological organisms but if you don't understand how part of the body works you can just put whatever you want there instead. Like something that shoots sparks, or makes a quacking sound," she says. "Also it helps ease my mind, because if we're in a simulation, and I make a simulated human, it's like a (italic)double simulation(roman) and I'm continuing on the chain of existence," she says, and cackles madly. (par) "Oh. I guess that's pretty cool," you say. (par) "You're darn right it is!" says Ada. #uncleRobAda (#Ada1 offers *) (#Ada2 offers *) (#Ada3 offers *) (#Ada4 offers *) (label *) "Hey, do you know where Uncle Rob is?" (sticky *) (disp *) "Man, why do people keep asking me that?" says Ada. "Rob is kind of...you know..." she makes a weird gesture with her finger, like an infinity sign, and leans forward to whisper, "non-spatio-temporally anchored. You know. Like you. And our other cousin." (par) She gives you a knowing nod and goes back to work. #timeAda (#Ada1 offers *) (#Ada2 offers *) (#Ada3 offers *) (#Ada4 offers *) (label *) "Ada, I seem to be traveling through time. Do you know anything about that?" (disp *) "Haha! Oh, CJ, you're such a kidder!" she says. "You know that you're one of the few members of the family with spatio-temporal disjunction. I've explained it to you many times before! And I specifically recall how disappointed you were when your beautiful and wondrous ability could be reduced to a simple and mundane 4-dimensional explanation! Oh, how the joy of mystery breaks down in the face of pure reason," she says, shaking her head. (par) "Oh, yeah," you say. "I completely forgot about my spatio-temporal disjunction. Thanks for reminding me!" #momAda (#Ada1 offers *) (mommentioned) (#Ada2 offers *) (mommentioned) (#Ada3 offers *) (mommentioned) (#Ada4 offers *) (mommentioned) (label *) "Hey, I know this is weird, but do you remember much about my mom?" (disp *) "I only met her when I was very little. It might be better to ask your dad or Joe or someone," she says a little uncomfortably. (par) "That's why I wanted to talk to you; they knew her more and I feel like they would just get sad if I asked. What do you remember about her?" you say. (par) "Oh, gosh. Well, I remember that she used to tell me stories when I was bored, like from Greek mythology. Cyclops and stuff. That was pretty cool. And she liked the color blue, and I swear I saw her take a pan out of the oven with her bare hands once. Although that doesn't really make sense given the laws of thermodynamics. Does that help?" she asks. (par) "Yeah, that's great. Thanks Ada!" you say. #nevermindAda (#Ada1 offers *) (#Ada2 offers *) (#Ada3 offers *) (#Ada4 offers *) (label *) "Nevermind, Ada!" (disp *) "OK, CJ, see you later!" she says. (terminating *) #AndroidPrototype (name *) android prototype (dict *) android prototype robot bot screen meter sensory apparatuses wires error errors (* is #in #Limbo) (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) The walking robot you dropped off has been partially disassembled. (elseif)($CurrentTime = 2)(then) The old humanoid walking robot has been completely revamped with a screen and exterior sensory apparatuses. Seems to be going well so far. (elseif)($CurrentTime = 3)(then) The prototype's outward appearance looks complete, but it's turned off and has wires going into its head. (elseif)($CurrentTime = 4)(then) (if)(#crosswordBook undelivered)(then) The prototype looks disastrous. Its screen displays numerous errors, something has gone wrong with its education. (else) The prototype's screen says that AI completion is at 50\%. Ada seems to be having remarkable success! (endif) (else) (if)(#crosswordBook untransmitted)(then) The prototype is disassembled. It looks like Ada is ready to discard it. (else) The prototype looks finished! Ada must so be so excited! (endif) (endif) (appearance *) The android (link){prototype} Ada's always working on is here. (proto *) #UncleRob (name *) Uncle Rob (dict *) (robnames) (proper *) (heads *) robot (male *) (* age 5) (* is #in #Limbo) (* undelivered) (descr *) (robDesc) (appearance *) (#UncleRob) (select) is glancing around the room amiably. (or) is making notes to himself about human culture. (or) hums a little ditty to himself. (at random) (instead of [talk to *]) Uncle Rob looks at you attentively. "What do you need, CJ?" he asks. (activate node *) (robnames) robot bot walk walking uncle rob android (robDesc) This is a big, walking, talking robot. It's engraved with the words "Uncle Rob!" on it. He has a thick copper mustache. #copperMustache (* is #partof #UncleRob) (descr *) This metallic mustache looks quite a bit like your dad's mustache. (name *) copper mustache (dict *) metallic #copperMustache (* is #partof #UncleRob2) (name *) copper mustache (dict *) metallic (descr *) This metallic mustache looks quite a bit like your dad's mustache. (instead of [switch on *]) It's not really clear how you would do that. (instead of [switch off *]) Uncle Rob smiles steadily while leaning down to stare you in the face. "No," he says. (instead of [give #drumstick to *]) "Wow, thanks!" says Uncle Rob. That is literally the best thing I have ever eaten in my life. In fact, it's the only thing I've eaten in my life!" he says, guffawing. (par) Then he looks serious again. "But I am still hungry. I hope dinner starts soon," he says. (now) (#drumstick is #in #Limbo) (now ) ~(#drumstick travels) #robSentient (#UncleRob offers *) (label *) "What's it like being sentient?" (disp *) "Thanks, CJ! Great question! I've been wondering the same thing. In fact, I'm trying to determine my organizing principles in life. I can't decide if Rule 1 should be 'I must not injure humans' or 'Live, laugh, love.'" #robEating (#UncleRob offers *) (label *) "How do you eat food?" (disp *) "You know, I honestly don't know. Probably some kind of slow-burn, inefficient mass-to-energy converter that requires a massive amount of infrastructure to deal with both constant consumption of input and constant excretion of output. You know, like you!" #robSongs (#UncleRob offers *) (label *) "Do you know any good songs?" (disp *) "Of course! This one's my favorite, from a personal hero of mine: They ruled the solar system (line) Near ten thousand years before (line) In their single starcrossed scout ships (line) Mining ast'roids, spinning lore. (par) (line) Then one true courageous miner (line) Spied a spaceship from the stars (line) Boarded he that alien liner (line) Out beyond the orb of Mars. (par) Yes, that ship was filled with danger (line) Mighty monsters barred his way (line) Yet he solved the alien myst'ries (line) Mining quite a lode that day. (par) O, they ruled the solar system (line) Near ten thousand years before (line) 'Til one brave advent'rous spirit (line) Brought that mighty ship to shore." #neverMindRob (#UncleRob offers *) (label *) "Nevermind." (disp *) "Never...mind? I always use my mind," he says, brow furrowing. (terminating *) %%===================================================Outdoors=================================================== #Outdoors (room *) (name *) Outdoors (singleton *) (look *) (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) Rolling grass stretches out as far as you can see. (elseif) ($CurrentTime = 2) (then) Rolling grass stretches all the way to your neighbor's distant fence. (elseif) ($CurrentTime = 3) (then) A small row of houses is lined up behind yours. Most of them are clearly still recovering from the storm. (par) From out here you can see the damage to your own (#houseexterior). (if)(#lawnhole is #in *)(then) The lawn has a pretty big (#lawnhole) in it, a couple feet across and fairly deep, but otherwise the damage is minimal. (endif) (par) The rain is drizzling. (elseif) ($CurrentTime = 4) (then) This plot of land is one of the biggest remaining backyards in the area. A pleasant stone fence sections it off. (else) The stone fence around this plot is covered with moss, but the grass is recently trimmed. (endif) (par) The kitchen is back to the (#west). (from * go #west to #Kitchen) (from * go #up through #ladder to #intreehouse) (#treehouse is #in #Outdoors) (narrate failing to leave * $) If you wander away from the house, you might miss dinner! (narrate leaving * #up) It's hard going, but you carefully make your way up the ladder. (narrate leaving #intreehouse #down) You carefully negotiate your way down the ladder. (instead of [climb #ladder]) (try [enter #ladder]) #houseexterior (name *) house (dict *) exterior damage (heads *) house (descr *) You can only see part of the house from out here. (TimeAge $CurrentTime) (if) ($CurrentTime = 1) (then) It looks huge from out here. (elseif) ($CurrentTime = 2) (then) The house doesn't look quite as big as it did when you were a kid. (elseif) ($CurrentTime = 3) (then) Some shingles are missing from your roof, overall the exterior is in pretty bad shape. (if)(#fallentree is #in #Outdoors)(then) The (#garageexterior) has been crushed by a (#fallentree). (else) But at least the (#garageexterior) is safe. (endif) (elseif) ($CurrentTime = 4) (then) It's looking a lot better since your remodeling. (else) Strange to think it won't belong to your family much longer. (endif) (* is #in #Outdoors) (instead of [take *]) Lifting your entire house would be an impressive feat. You've seen your cousin Emma do it before, but there were extentuating circumstances. #garageexterior (name *) garage (out of reach *) (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 3)(then) (if)(#fallentree sitsin #Outdoors)(then) The garage has been totally demolished by a fallen tree. (else) The garage has thankfully been spared by the storm. (endif) (elseif)($CurrentTime > 3)(then) (if)(#fallentree sitsin #Outdoors)(then) The garage was rebuilt after the hurricane, but Ada lost most of her equipment, and she never returned. (else) The garage isn't really used for cars. It's just a place for Ada to experiment. (endif) (else) The garage isn't really used for cars. It's just a place for Ada to experiment. (endif) (* is #partof #houseexterior) #roof (name *) roof (dict *) shingles shingle tarp tarps (out of reach *) (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 3)(then) The roof is missing a few shingles, which can't be good for it. Especially since you're paying for it. (else) It's hard to see the roof from here, but it looks to be in good shape. (endif) (* is #partof #houseexterior) #neighborhouses (name *) neighbours (dict *) small row of houses neighbour smaller plots plot land newer families (descr *) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) You actually don't have any neighbours, all the land is yours. (elseif)($CurrentTime = 2)(then) You just have the one neighbour, for now, the land split between you. (elseif)($CurrentTime = 2)(then) The houses of your neighbours look pretty bad, but no one was devastated. (elseif)($CurrentTime = 2)(then) All the other houses are lined up on smaller plots of land. (else) Most of your neighbours grew up and moved away, with newer families taking their place. (endif) (* is #in #Outdoors) #fence (name *) stone fence (* sceneryObj ) (descr *) This ended up costing more than you budgeted for, but it feels comforting. Kind of an earthy, settled feeling. (* age 4) (* sitsin #Outdoors) (instead of [take *]) After how much you paid for it? No thanks. #mossyfence (name *) mossy fence (dict *) moss old stone (* sceneryObj ) (descr *) This has lasted far longer than the wooden and vinyl fences your neighbors once had. (* age 5) (* sitsin #Outdoors) (instead of [take *]) No, you've left it for the next owner. #drizzle (name *) rain (dict *) light drumming drizzle cold pleasant drop drops raindrop raindrops (descr *) The rain is a little cold, and it's not very heavy. Kind of pleasant, to be honest. (* sceneryObj) (*sitsin #Outdoors) (* age 3) (instead of [take *]) If all the raindrops were lemondrops and gumdrops, oh what a rain that would be! Then you would take the rain. But it's not, so you don't. %%(grammar [feel [single]] for [touch $]) (instead of [drink *]) You let some raindrops fall on your tongue. (instead of [touch #drizzle]) It feels vaguely comforting on your skin. #grass (name *) grass (dict *) lawn off-color color soft (descr *) Your lawn is always a little off-color, but at least it's soft. (* is #in #Outdoors) (instead of [touch *]) Yep. That's one soft lawn. (instead of [take *]) You grab the grass and pull. You do not manage to lift your entire lawn into your inventory. %%make an object called damage #sapling (name *) sapling (* neverknown) (dict *) tree sapling small root bundle (item *) (descr *) This is a small sapling, its roots forming a sphere, more or less. (appearance *) (if)(* is pristine)(then) A (#sapling) is buried out here. (else) A (#sapling) is on the ground here, ready to be planted. (endif) (* travels) (* belongs #Outdoors) (* age 1) (instead of [give * to $person]) (animate $person) (if)($person = #grandma)(then) "Oh, good heavens, don't get dirt all over the house! Can't you put that outside somewhere?" she says. (elseif)($person = #dad)(then) "Oh, you guys are moving that? Where are you going to plant it?" says Dad. (elseif)($person = #unclejoe)(then) "Hey, you're the one who wanted to move it. I think we can find a place for it, but I am not digging any more holes!" He shakes his head. "I'm sure there's already a spot out there ready to plant it." (elseif)($person = #UncleRob)(then) "Wow, I have no idea how you got this to work. This shouldn't even be possible," he says. He turns to look at your screen \(of you, the person playing the game\), and taps it. "Hey, how did you get this sapling if you needed it to solve the puzzle to make me? That doesn't make any sense!" (else) "Wow, that is certainly a tree. Thanks...?" she says, and goes back to work. (endif) (instead of [take $object]) (animate $object) (if)($object = #CJ)(then) You take yourself just the way you are. (else) You can't take your family. Although sometimes you wish you could. (endif) (grammar [plant [single]] for [plant $]) (perform [plant $]) You can't plant that! (grammar [plant] for itself) (perform [plant]) Plant what? (asking for object in [plant []]) (instead of [plant #sapling]) (if)(player can see #lawnhole)(then) (try [put #sapling #in #lawnhole]) (else) There's not a good place to plant the sapling here. (endif) (instead of [pull #sapling]) (try [take #sapling]) (prevent [take #sapling]) (#sapling is pristine) (if) (#unclejoe is #in #Outdoors)(then) Together, the two of you yank out the tree, tugging it until it pops out. Uncle Joe shakes off some of the dirt, fixes the roots, and says, "Smart thinking, kiddo. This could have done some real damage!" He tousles your hair and walks back inside. (par) (now) (#sapling is #heldby #CJ) (now) (#unclejoe is #in #Kitchen) (now) (#unclejoe livesin #Kitchen) (now) (#sapling is handled) (now) (#mapletree sitsin #Limbo) (now) (#fallentree sitsin #Limbo) (now) (#lawnhole sitsin #Outdoors) (now) (#smashedtreehouse sitsin #Limbo) (tick) (try [look]) (par) You are now carrying a (#sapling). Something important has changed in the house's future. (else) You aren't strong enough to pull out the sapling yourself. Someone bigger could do it, if you could persuade them. (now) ~(* neverknown) (endif) (perform [put #sapling #on #pedestal]) Wow...I mean, I guess you can do that. It takes several minutes of balancing and skeptical looks from your father, but eventually it works! (now)(#sapling is #on #pedestal) #mapletree (name *) maple tree (dict *) maple tree (descr *) A beautiful maple tree that has been growing for a few years. It's pretty large, but it will grow even bigger over time. (appearance *) Your maple tree is beautiful in the summer light. (* sceneryObj) (* sitsin #Outdoors) (* age 2) (instead of [climb *]) It's still not big enough to climb well. (prevent [take #mapletree]) This maple tree has already grown enough that it's impossible for you to move. #fallentree (name *) fallen tree (dict *) fallen maple tree (heads *) tree (descr *) Your family's majestic maple tree has fallen onto the garage, crushing it completely. (appearance *) The old (link){maple tree} has fallen on the garage, and the brand new (link){treehouse} is smashed on top of it. (* sceneryObj) (* sitsin #Outdoors) (* age 3) (instead of [take *]) Yeah, you'll probably have to call a professional for removal. Would have been cheaper just to not plant it here in the first place. #smashedtreehouse (name *) smashed treehouse (out of reach *) (dict *) brand new smashed tree house treehouse (descr *) The hurricane knocked over the new treehouse. Now it's shattered, and so is everything in it! (heads *) house (* sceneryObj) (* sitsin #Outdoors) (* age 3) %%add garage #lawnhole (name *) hole (dict *) pretty big lawn hole (container *) (* is open) (descr *) This is a fairly sizable hole in the lawn. It's roughly circular and a couple of feet wide. (* sceneryObj) (* sitsin #Limbo) (* age 3) (instead of [take *]) Can you really take a hole? That's a weird ontological thing. #pottedtree (name *) sapling (dict *) potted tree sapling small root bundle planted maple (item *) (* sceneryObj) (descr *) This is a small maple sapling, recently planted. (appearance *) A (#pottedtree) is buried out here. (* sitsin #Limbo) (* age 3) (prevent [take *]) Well, it wouldn't make sense to do all that work and undo it again! #biggertree (name *) maple tree (dict *) beautiful lovely maple tree shade (* sceneryObj) (descr *) This is a tall and lovely maple tree, twenty years old. (appearance *) A tall maple tree provides shade. (* sitsin #Limbo) (* age 4) (instead of [climb *]) It's still not big enough to climb well. (prevent [take *]) After all the work you did to put it here? #biggesttree (name *) maple tree (dict *) beautiful maple old tree shade (* sceneryObj) (heads *) tree (descr *) This is a towering, lovely maple tree, forty years old. (appearance *) An old maple tree provides shade here. The treehouse you built for the neighbor kids sits in it, with a (#ladder) leading up. (* sitsin #Limbo) (* age 5) (instead of [climb *]) (try [climb #ladder]) (prevent [take *]) You're leaving the tree here for the neighbor kids. #treehouse (name *) treehouse (dict *) brand new tree house treehouse (out of reach *) (heads *) house (descr *) You wanted to leave a memento for the neighbors, when you realized that you had no one left to leave the house to. They've enjoyed it for the last few years. (par) A ladder leads up into it. (* sceneryObj) (* sitsin #Limbo) (* age 5) #ladder (door *) (name *) ladder (dict *) ladder new wide steps (descr *) This ladder leads up into the treehouse. It's new, like the rest of the treehouse, and has wide steps to help you get up more easily. (* sceneryObj) (* sitsin #Limbo) (* age 5) (instead of [take *]) It's firmly attached. (instead of [climb *]) (try [go up]) (prevent [leave #Outdoors #up]) ~(TimeAge 5) There doesn’t appear to be an exit in that direction. (prevent [leave #Outdoors #up]) ~(#ladder sitsin #Outdoors) There doesn’t appear to be an exit in that direction. (instead of [put #sapling #in #lawnhole]) It fits in quite nicely. You pat the dirt around it and it seems settled in. (par) You can feel your future change. (now) (#sapling belongs #Limbo) (now) (#sapling is #in #Limbo) (now) (#pottedtree is #in #Outdoors) (now) (#pottedtree sitsin #Outdoors) (now) (#biggertree sitsin #Outdoors) (now) (#biggesttree sitsin #Outdoors) (now) (#treehouse sitsin #Outdoors) (now) (#ladder sitsin #Outdoors) (now) (#lawnhole sitsin #Limbo) (now) (#lawnhole is #in #Limbo) #intreehouse (room *) (name *) Treehouse (look *) This is a small and homey little treehouse. It's not furnished; the kids will take care of that, eventually. The back yard is down below. (from * go #down through #ladder to #Outdoors) #plates (name *) plates (dict *) plate plates pile (item *) (plural *) (* travels) (* age 5) (* belongs #intreehouse) (appearance *) ~(partytime) A pile of (#plates) lies here. (descr *) There are just enough plates for everyone to eat dinner together. (if)(partytime)(then) (par) (collect $food) *($food sampled) (into $List) Your plate has (a $List) on it. (endif) (after [put * #on #KitchenTable]) Your whole timeline feels a bit more settled now. (now)~(* travels) (instead of [take *]) (* is #on #KitchenTable) No need to take the plates! Dinner (if)(partytime)(then) has already started! (else) will be ready soon! (endif) (instead of [put $object #on *]) (if)(partytime)(then) (if)(food $object)(then) (try [eat $object]) (else) That's not even edible! (endif) (else) The party hasn't started yet, so it's not time to put things on the plates. (endif) (grammar [dig] for itself) %%(grammar [[dig] [object]] for [dig]) %%(grammar [[dig] with/using [object]] for [dig]) (perform [dig]) You know, it's actually pretty hard to dig a hole of any reasonable size. Looks like you won't be adding any new holes in the ground. (grammar [hug [animate]] for [hug $]) (perform [hug $person]) (if)($person = #CJ)(then) You give yourself a big hug. (elseif)($person = #grandma)(then) You lean down and give grandma a hug. She hugs you back tight, giving you a pat on the back, while also possibly watching TV over your shoulder. (elseif)($person = #dad)(then) He seems a little distracted, but gives you a quick hug back. (elseif)($person = #unclejoe)(then) "Whoa, I'm kind of sweaty," he says. He wipes his forehead on his sleeve then gives you a quick, and, indeed, sweaty, hug. (elseif)($person = #UncleRob)(then) He's very pointy and inflexible. "Huh," he says, "never tried that before. Thanks!" (elseif)(animate $person)(then) (name $person) gives you the briefest of hugs then immediately goes back to (pronoun $person) own private activities. (else) Your hug doesn't quite seem to work. (endif) (grammar [kiss [animate]] for [kiss $]) (perform [kiss $]) You're more of a hugging family. %%Endgame=========================================================================================== (perform [open #frontdoor]) (#CJ is #in #FamilyRoom) Look who it is! It's your young cousin Emma! (par) "We finally made it! I brought a gift for Grandma, and a toy for later," she says. She holds up a wrapped present and a dollhouse. She looks at everyone else in the room behind you: "Hey grandma! Hey Uncle Rob!" she says. (par) "Hi, Emma!" says Grandma from her chair. "Come on in! We're just heading in to dinner." (par) Emma walks past you while Uncle Rob helps Grandma up and into the kitchen. (par) Your dad pokes his head out of the office. "Everyone's here already? Great! I can smell the baklava." He walks into the kitchen, and you hear Ada in there, too. (now)(#emma is #in #Kitchen) (now)(#dad2 is #in #Kitchen) (now)(#suit is #wornby #dad2) (now)(#dad is #in #Limbo) (now)(#dad livesin #Limbo) (now)(#grandma2 is #in #Kitchen) (now)(#housedress is #wornby #grandma2) (now)(#slippers is #wornby #grandma2) (now)(#grandma is #in #Limbo) (now)(#grandma livesin #Limbo) (now)(#ada5 is #in #Kitchen) (now)(#ada4 is #in #Limbo) (now)(#ada4 livesin #Limbo) (now)(#UncleRob2 is #in #Kitchen) (now)(#UncleRob is #in #Limbo) (now)~(#UncleRob follows) (now)(#UncleRob livesin #Limbo) (now)(#unclejoe2 is #in #Kitchen) (now)(#unclejoe is #in #Limbo) (now)(#unclejoe livesin #Limbo) (now)(#eatchicken is #on #KitchenTable) (now)(#fullbaklava is #on #KitchenTable) (now)(#augratin is #on #KitchenTable) (now)(#fries is #on #KitchenTable) (now)(#mashed is #on #KitchenTable) (now)(#gravy is #on #KitchenTable) (now)(#roastchicken is #in #Limbo) (now)(#roastchicken sitsin #Limbo) (now)(#gift is #on #KitchenTable) (now)(#dollhouse is #heldby #emma) (now)(partytime) (now)~(notedelivered) (stop) (prevent [open #frontdoor]) (#emma is #in #Kitchen) Why would you leave now? It's time for the party! (prevent [leave #FamilyRoom #up]) (#emma is #in #Kitchen) Everybody's already here, in this time period. Let's go eat! (prevent [leave #FamilyRoom #down]) (#emma is #in #Kitchen) Everybody's already here, in this time period. Let's go eat! #emma (name *) Emma (female *) (* interested) (proper *) (dict *) cousin model child six (descr *) Emma is your cousin that lives in the next town over, so you only see her on holidays and parties. She's around six years old, and is, honestly, a model child. (instead of [talk to *]) "What's up?" asks Emma. (statusactivate node *) #dad2 (name *) Dad (dict *) (dadnames) (male *) (* is #in #Limbo) (proper *) (descr *) (dadDesc) (instead of [talk to *]) "Hey, Dad," you say. (par) "Yeah, sweetie?" (par) (statusactivate node *) #grandma2 (name *) Grandma (dict *) (grandmaNames) (* interested) (female *) (* is #in #Limbo) (proper *) (descr *) (grandmaDesc) (instead of [talk to *]) "Hey, grandma," you say. (par) "Yes, dear?" she answers. (statusactivate node *) #ada5 (name *) Ada (dict *) (adaNames) (female *) (* is #in #Limbo) (proper *) (descr *) (adaDesc) (instead of [talk to *]) "Hey, Ada," you say. (par) Ada looks up from consuming a large variety of potatoes. "What's up?" she asks. (statusactivate node *) #unclejoe2 (name *) Uncle Joe (dict *) (joeNames) (male *) (* is #in #Limbo) (proper *) (descr *) (joeDesc) (instead of [talk to *]) "Hey, Uncle Joe!" you say. (par) "What's up, kid?" he asks. (statusactivate node *) #UncleRob2 (name *) Uncle Rob (dict *) (robnames) (male *) (* is #in #Limbo) (proper *) (descr *) (robDesc) (instead of [talk to *]) "Hi, Uncle Rob!" you say. (par) "Greetings, young CJ," he says. (statusactivate node *) (narrate entering #Kitchen) (partytime) Everyone's in the kitchen, seated at the table: (name #grandma2), (#dad2), (#emma), (#UncleRob2), (#unclejoe2), and (#ada5). They're cheerfully talking and saying hi to each other. Uncle Rob in particular seems excited to say hi to everyone. (par) You take your place at the table while Uncle Joe slices everything up. (par) Ada stands and says, "Here's to Grandma!" (par) "To grandma!" you all shout, and sit down to eat. (par) (appearance #KitchenTable) (prevent [leave #Kitchen $]) (partytime) Everyone's here. There's no reason to go anywhere else. #eatchicken (name *) roast chicken (descr *) This chicken is perfectly roasted, with a slightly crunchy golden skin. (dict *) crunchy roasted golden skin slice slices spicy (uncountable *) (food *) (instead of [take *]) You grab yourself a couple slices of chicken to eat. It's delicious! (instead of [smell *]) It smells spicy and warm. #fullbaklava (name *) baklava (food *) (uncountable *) (heads *) baklava (dict *) honey slice triangle triangles (descr *) The baklava you made has been sliced into individual triangles, and the whole tray has been placed on the serving dish in the center of the table. The crust is perfectly browned and crispy. (instead of [take *]) Your baklava came out perfect. You pick up a slice that's dripping with honey and eat it. (instead of [smell *]) It smells warm and sweet. Are those things detectable through the nose? Possibly. #fakedish (name *) serving dish (descr *) Your baklava is on display on the serving dish in the center of the table. (instead of [take *]) Uncle Joe looks concerned. "Wait! You'll knock off the baklava!" (* is #partof #fullbaklava) #augratin (name *) au gratin potatoes (dict *) potato potatos cheese cheesey scalloped evenly decadent (descr *) This is a cheesy potato dish made of evenly scalloped potatoes. (uncountable *) (food *) (instead of [take *]) You scoop up a healthy ladle of potatoes and lay it on your plate. The cheese is truly delightful. (instead of [smell *]) These potatoes smell like decadent cheese. #fries (name *) french fries (dict *) fresh fry potato potatoes potatos oily (descr *) This is Uncle Joe's most humble offering, but he's a master of his craft and has perfectly seasoned these fries. (plural *) (food *) (instead of [take *]) You snag a couple of fries. They're still pretty hot! (instead of [smell *]) The fries smell hot and oily. #mashed (name *) mashed potatoes (dict *) potato potatos butter cream rich mash (uncountable *) (food *) (descr *) Uncle Joe's recipe uses a lot of butter and cream. These are very rich potatoes. (instead of [take *]) You scoop up a big lump of potatoes and add gravy to it. (instead of [smell *]) It smells like butter. #gravy (name *) gravy (dict *) potato potatos (uncountable *) (food *) (descr *) Uncle Joe made this gravy from the chicken drippings. (instead of [take *]) You add a little bit of gravy to everything else you have. (instead of [smell *]) It smells rich, like roasted chicken. #gift (name *) wrapped present (dict *) gift (descr *) This is Emma's present for Grandma. (instead of [take *]) Emma says, "Wait, I want to give it Grandma! Ask her if she's ready." #dollhouse (name *) dollhouse (dict *) doll house (descr *) Emma's dollhouse has always intrigued you, to be honest. You feel like there's more to it than meets the eye. (container *) (* is closed) (opaque *) (instead of [open *]) Better to play after dinner. (stop) #bottle (name *) impossible bottle (dict *) klein (descr *) This is a bottle that intersects itself in bizarre ways. (before [take $object]) (partytime) (food $object) (now)($object sampled) (partydescription) (partytime) (#CJ is #in #Kitchen) (par) (collect $Person) *($Person interested) (into $List) (collect $Person) *(animate $Person) ~($Person interested) ($Person is #in #Kitchen) ~($Person = #CJ) (into $List2) (par) Everyone looks happy to talk, with (a $List) looking especially interested in chatting to you. (a $List2) are cheerfully eating and talking to each other. (if)(notedelivered)(then) (if)(presentopened)(then) (par) (select) (or) Emma has started to fidget. (or) Emma seems bored. She looks to you, pleadingly. (stopping) (endif) (endif) #partyDad (#dad2 offers *) (label *) "Are you enjoying the party, Dad?" (disp *) He smiles. "Yeah, I really am. When was the last time we were together like this? It reminds me of the parties we used to have before your grandfather passed away. Although the food is a lot better, thanks to Joe. Your baklava is pretty great, too!" #whatThinkingJoe (#unclejoe2 offers *) (label *) "What are you thinking about, Uncle Joe?" (disp *) "I just tried the baklava you made. You did great! It was definitely better than your mom and Grandpa's. They were horrible in the kitchen, no joke; I think I got all the cooking genes in this family, to be honest. But baklava was the one thing they knew how to do right. I think they'd be proud, CJ," says Uncle Joe. #openPresent (#grandma2 offers *) ~(presentopened) (label *) "Are you going to open your present from Emma, Grandma?" (disp *) "Oh, as long as it doesn't bother anyone," says Grandma. (par) "Yeah, go for it!" says Uncle Joe. "It's your party, have some fun!" (par) Grandma unwraps the present, revealing a very strangely-shaped (link){bottle}. It intersects itself in a bizarre fashion. It's labelled 'Klein'. (now)(#gift is #in #Limbo) (now)(#bottle is #heldby #grandma2) (par) "I love it!" says Grandma. Emma grins. (now)~(#grandma2 interested) (now)(presentopened) (notedelivered) (now)(#emma interested) (terminating *) #crazyDay (#emma offers *) ~(notedelivered) (label *) "You wouldn't believe the crazy day I had!" (disp *) "Yeah? What happened?" asks Emma. (par) "Some random woman I don't know threw me a note card from upstairs. She looked familiar, but I couldn't place her," you say. (par) "Really? What did the note card say?" asks Emma. (par) You show her the card. (par) "That gives me an idea," says Emma. She pulls out a card of her own and takes notes. (par) Ada looks over, and says, "Hey, are you guys resolving a spatio-temporal paradox?" (par) "I guess?" says Emma. She runs out of the room. You hear feet on the stairs and floorboards creaking above you. You hear a window opening, and a woman shouting, "There you go, CJ! See you at dinner!" Then there are footsteps coming down the stairs. (par) Emma comes back in, looking decidedly out of sorts. "You've got to get those stairs fixed. Whew!" (now)(notedelivered) ~(presentopened) (now)~(#emma interested) (terminating *) #emmaFamily (#emma offers *) (label *) "Where's the rest of your family, Emma?" (disp *) She smiles and pats the dollhouse. "Don't worry, CJ, they're in good hands!" #wannaPlay (#emma offers *) (notedelivered) (presentopened) (label *) "You look a little bored, Emma. Want to go do something fun?" (disp *) She nods. "Yeah, I finished dinner a while ago. Wanna play with this?" She pulls out her dollhouse. (par) "Well," you say, "I'm a little old for that." She looks crestfallen, so you grab the dollhouse and add, "But don't worry. Let me just run this downstairs." (game over {You have won!}) #adaCongrats (#ada5 offers *) (label *) "By the way, Ada, congratulations on solving the problem of sentient AI." (disp *) "Hey, people need hobbies," says Ada. "Besides, I definitely had some help. I think. The timeline is pretty confusing, to be honest." #robHey (#UncleRob2 offers *) (label *) "So, have you met everyone yet?" (disp *) Uncle Rob scratches his copper mustache. "Well, my existence seems to be feeding into some kind of ontological loop where I simultaneously have both always existed and never existed. So yes, and no, and maybe. But I'm glad to be here!" he says as he downs another few bites of au gratin potatoes. #justgladgrandma2 (#grandma2 offers *) (sticky *) (label *) "Nevermind, Grandma." (disp *) "Alright, dear" says Grandma. (terminating *) #justThanksEmma (#emma offers *) (sticky *) (label *) "Just wanted to say thanks for coming!" (disp *) "Thanks, CJ!" says Emma. (terminating *) #howdoingdad2 (#dad2 offers *) (sticky *) (label *) "Just wanted to say hi." (disp *) "Hi to you, too," he says with a smile. (terminating *) #justThanksJoe2 (#unclejoe2 offers *) (sticky *) (label *) "Just wanted to say thanks for the food." (disp *) "Hey, it's no problem!" says Uncle Joe "And have all you want, there's plenty!" (terminating *) #justThanksAda2 (#ada5 offers *) (sticky *) (label *) "Just glad that you're here, that's all." (disp *) "Well I'm definitely glad to be here, too," she says with a smile. (terminating *) #justThanksRob (#UncleRob2 offers *) (sticky *) (label *) "Just wanted to say that I hope you're enjoying your first party!" (disp *) "It's been amazing" says Uncle Rob. "And I've been using my puzzle-solving skills to the max, like: what's the optimal order to try new food in? It's excellent!" (terminating *) (instead of [ask $person about $object]) (animate $person) ($object is #heldby #CJ) (try [give $object to $person]) %%===================================================Standard actions=================================================== (grammar [skip/hop/leap] for [jump]) (instead of [jump]) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) You skip a bit. (elseif)($CurrentTime = 2)(then) You leap high in the air. (elseif)($CurrentTime = 3)(then) You do a fairly high leap. Your Dance Dance Revolution practice has paid off. (elseif)($CurrentTime = 4)(then) You do a short hop. (else) You manage a little leap, but it's tiring. (endif) (grammar [laugh] for itself) (perform [laugh]) You chuckle a bit. Life is funny sometimes. (grammar [chuckle] for [laugh]) (grammar [wink] for itself) (perform [wink]) You give a big wink. It feels silly, but fun. (instead of [sing]) (TimeAge $CurrentTime) (if)($CurrentTime = 1)(then) You sing:(line) I fall to pieces(line) Each time I see you again(line) I fall to pieces(line) How can I be just your friend? (elseif)($CurrentTime = 2)(then) You sing, "All in all, we're just another brick in the wall!" (elseif)($CurrentTime = 3)(then) You sing, "Say my name, say my name!" (par) It's been stuck in your head a long time. (elseif)($CurrentTime = 4)(then) You sing a random song from a podcast you listened to last week:(line) One, two three, how many animals do you see?(line) I see five, five, five animals on that tree. (else) You think of Clair de Lune, and hum along to it. (endif) (perform [look $Rel $Obj]) (collect $C) *($C is $Rel $Obj) (now) ($C is revealed) (into $List) (if) (empty $List) (then) (if) (#in = $Rel) (then) (The $Obj is) empty. (else) (if) ($Rel is one of [#under #behind]) (then) Unfortunately, to your great dismay, you find (else) There's (endif) nothing (present-name $Rel) (the $Obj). (endif) (else) (Name $Rel) (the $Obj) you see (a $List). (notice $List) (endif) (perform [attack $]) (TimeAge $CurrentTime) Considering this is (if)($CurrentTime > 2)(then)your house and your stuff,(else)your family's house and your family's stuff,(endif) destroying random objects doesn't make sense. (instead of [attack $person]) (animate $person) You're not that kind of family, thank heavens. (instead of [talk to $Obj about $]) (try [talk to $Obj]) (instead of [ask $Obj about $]) (try [talk to $Obj]) (instead of [tell $Obj about $]) (try [talk to $Obj]) (perform [give $Obj to #dad]) Your dad looks at (the $Obj) and says, "Why don't you hold onto that, CJ?" (perform [give $Obj to #grandma]) Grandma looks at (the $Obj) and says, "Oh, that looks interesting." She makes no move to take (it $Obj). (perform [give $ to #unclejoe]) Uncle Joe says, "I kind of have my hands full. Sorry, CJ." (perform [give $ to #Ada1]) "Ooh, neat," says Ada, and keeps working. (perform [give $ to #Ada2]) "Ooh, neat," says Ada, and keeps working. (perform [give $ to #Ada3]) "Ooh, neat," says Ada, and keeps working. (perform [give $ to #Ada4]) "Ooh, neat," says Ada, and keeps working. (perform [give $ to #WalkBot]) WalkBot is not capable of holding things. (perform [give $ to #UncleRob]) Uncle Rob looks at you, dumbfounded. (instead of [give $ to #CJ]) You silently and mentally transfer ownership of the item from yourself to yourself. (perform [give $ to $person]) (animate $person) (partytime) (name $person) is too busy eating the food you and (if)($person = #unclejoe2)(then)him(else)Uncle Joe(endif) made. (when $obj won't accept actor $Rel) (supporter $obj) (if) ($Rel is one of [#under #behind]) (then) You'd get pretty dirty. Maybe not. (else) From your youth, you have learned not to crawl all over high surfaces in this house. (endif) (refuse [enter $thing]) (container $thing) That's too small for anyone to fit into. (instead of [enter #smashedtreehouse]) There's not enough left to do that. (instead of [enter #fallentree]) It looks dangerous. Better keep your distance. (refuse [tell $Obj to | $]) (try [talk to $Obj]) %%===================================================Out of world actions=================================================== (grammar [about/credit/credits] for [about]) (perform [about]) This game was written in fulfillment of a prize in the 2020 IFComp. The winner was Impossible Bottle, by Linus Åkesson, and the prize was a small game set in the same universe. This game was written by Mathbrush using the Dialog programming language. It was beta tested by Radioactive Crow, Prosewitch, Beau S., Brett Witty, Jade, Amanda Walker, Rovarsson, Dee Cooke, Mike Russo, Angelique Po, Ade McT, Greg Frost, and Linus Åkesson. You can type HINT at any time to get a hint. Typing COMMANDS will give you a list of all commands necessary to complete the game. This may spoil some puzzles. (grammar [help/hint/hints/remember] for [hint]) (perform [hint]) (if)(#CJ is #in #FrontLawn)(then) Some simple commands to get started include X ME \(short for EXAMINE ME\), TAKE PAPER \(if you don't have it yet\) and GO EAST. After that, you'll have more options. (elseif)(#emma is #in #Kitchen)(then) (if)(#CJ is #in #Kitchen)(then) At this point, you can just keep TALKing TO anyone who's interested. (else) Everyone's waiting in the kitchen! (endif) (elseif)~(#frontdoor notendstate)(then) (select) You're almost done! Just go answer the door. (or) Follow the knocking sound. Once you're in the living room in 1981, just go west or open the door. (stopping) (else) There are hints for each chore on the list. Type (link){HINT DISH}, (link){HINT PLATES}, (link){HINT RECIPE}, (link){HINT ADA} or (link){HINT ROB} for each individual set of hints. (endif) (par) You can type (link){COMMANDS} to get a list of all the different commands that are required to complete the game. (if)(interpreter supports links)(then) (par) You can turn off the links at any time through the menu in the upper-right corner. (par) Desktop users who plan on using both links and text entry may benefit from selecting 'Always re-focus' in the same menu. (endif) (grammar [commands] for itself) (perform [commands]) The commands needed to complete this game are EXAMINE, TAKE, TALK TO, GO, OPEN, PUT, INVENTORY, WIPE, GIVE, MAKE, PLANT, CHANGE. (grammar [hint dish] for itself) (grammar [hint plates] for itself) (grammar [hint rob] for itself) (grammar [hint tree] for itself) (grammar [hint recipe] for itself) (grammar [hint ada] for itself) (perform [hint dish]) (TimeAge $CurrentTime) (if)~(#servingdish undelivered)(then) You've already finished this task! (elseif)(#servingdish is #heldby #CJ)(then) (if)(#servingdish dirty)(then) You need to clean the dish before you can give it back. (if)~(#dishtowel is #heldby #CJ)(then) (par) You'll need the (if)(#dishtowel is pristine)(then) towel from the pedestal. (else) towel. (endif) (endif) (elseif)($CurrentTime = 5)(then) You need to go back to a time when Uncle Joe was alive. (else) You need to go talk to Uncle Joe in the kitchen and give him the dish. (endif) (elseif)~(#servingdish is #in #KitchenGap)(then) (TimeAge $CurrentTime) (if)(#servingdish age $CurrentTime)(then) (current room $currentRoom) (if)(#servingdish belongs $currentRoom)(then) You can just TAKE the serving dish, since it's in this room. (else) (#servingdish belongs $belongroom) The serving dish is where you left it in (name $belongroom). (endif) (else) (#servingdish age $dishage) (if)($dishage < $CurrentTime)(then) You need to go downstairs to find where you left the dish. (else) You need to go upstairs to find where you left the dish. (endif) (endif) (else) (select) Have you asked the family about it? (or) Grandma can tell you where she last saw it. (or) (current room $currentRoom) (if)($currentRoom = #Kitchen)(then) (select) Have you examined everything in here? (or) Have you examined the counter? (or) Have you examined the gap? (or) (if)($CurrentTime = 1)(then) TAKE the dish. (else) You're too big to grab anything in the gap. You need to go downstairs. (endif) (stopping) (else) Grandma last saw it in the kitchen. (endif) (stopping) (endif) (on every tick) (#CJ is #in #Outdoors) (TimeAge $CurrentTime) ($CurrentTime = 3) (now)(crushedgarageknown) (perform [hint plates]) (TimeAge $CurrentTime) (if)(#plates is #on #KitchenTable)(then) You're already done with the plates. Good job! (elseif)(#plates is #heldby #CJ)(then) (if)(#CJ is #in #Kitchen)(then) You can just PUT the PLATES ON the TABLE. (else) You'll have to head to the kitchen to put the plates on the table. (endif) (elseif)(#plates is handled)(then) You already found the plates, you just need to figure out where you put them! (elseif)(#CJ is #in #intreehouse)(then) You can just TAKE the PLATES. (elseif)~(platesknown)(then) Your dad knows where the plates are. Have you asked him? (elseif)(#ladder sitsin #Outdoors)(then) (if)($CurrentTime = 5)(then) (if)(#CJ is #in #Outdoors)(then) You can go UP to the treehouse. (else) Your dad said the plates are outside in the treehouse. You need to head outside. (endif) (else) The tree you planted is fully grown in the far future. (endif) (elseif)(#sapling is #heldby #CJ)(then) (if)($CurrentTime = 3)(then) (if)(#CJ is #in #Outdoors)(then) Your dad said the plates were in the treehouse, but there is no tree yet. You need to PLANT the sapling. (else) Your sapling holds the key to your future, but it's best used outside. (endif) (else) (select) Your sapling holds the key to your future, but it's best used planted. It's too hard to make a hole yourself, but there's another time period that already has holes in the ground. (or) To be more specific, you need to plant your sapling in the year 2001, where a hurricane has hit. (stopping) (endif) (elseif)(#sapling is handled)(then) Your sapling holds the key to the future; you'll need to find it. (else) Your dad said the plates were in the treehouse, but the treehouse is broken. You'll need to deal with the tree; type HINT TREE for help with the tree. (endif) (perform [hint tree]) (TimeAge $CurrentTime) (if)(#sapling is handled)(then) You already solved this puzzle! (elseif)~(crushedgarageknown)(then) (if)($CurrentTime = 3)(then) Have you seen the tree itself yet? Go outside, on the east side of the house. (else) Have you seen the tree itself yet? Go to 2001. (endif) (elseif)(#sapling neverknown)(then) (if)($CurrentTime = 1)(then) (if)(#CJ is #in #Outdoors)(then) (select) The sapling is causing trouble in the future. Have you tried taking it now? (or) TAKE SAPLING. (stopping) (else) To deal with the tree, you have to find the tree. Go outside. (endif) (else) (select) The tree is a big problem. Have you gone back to when it was first grown? (or) Go back to 1961. (stopping) (endif) (elseif)(#unclejoe livesin #Kitchen)(then) (if)($CurrentTime = 1)(then) (if)(#CJ is #in #Kitchen)(then) You're not strong enough to move the sapling yourself. TALK TO UNCLE JOE. (else) You're not strong enough to move the sapling yourself. Uncle Joe can help; he's in the kitchen. (endif) (else) Uncle Joe can probably help, but only in the time period where the sapling is. Go back to 1961. (endif) (else) (if)($CurrentTime = 1)(then) (if)(#CJ is #in #Outdoors)(then) Try to take the sapling again! (else) Uncle Joe is waiting for you outside! (endif) (else) Uncle Joe is waiting to help you, back in 1961. (endif) (endif) (perform [hint rob]) (if)(#emma is #in #Kitchen)(then) You already solved this puzzle! (elseif)(#UncleRob follows)(then) You already solved this puzzle! (else) It might be best to work on the other puzzles first. (endif) (perform [hint/help ada]) (TimeAge $CurrentTime) (if)(#emma is #in #Kitchen)(then) You already solved this puzzle! (elseif)(#UncleRob follows)(then) You already solved this puzzle! (elseif)~(#fallentree sitsin #Limbo)(then) You need to deal with the tree that crushes the garage in 2001. Type HINT TREE for help with the tree. (elseif)(#Ada4 is #in #Garage)(then) (if)~(crossknown)(then) You need to talk to Ada to find out her next problem. (if)($CurrentTime = 3)(then) (if)(#CJ is #in #Garage)(then) You can type TALK TO ADA to find out more. (else) She's in the garage, like usual. (endif) (else) Ada's having problems in 2001. Go help her! (endif) (elseif)~(formfound)(then) (if)($CurrentTime < 3)(then) (if)(#CJ is #in #BigOffice)(then) (select) Have you explored this room a bit? It might have what Ada is looking for. (or) Try to EXAMINE the DESK. (stopping) (else) (select) Your dad's office might have what Ada's looking for. (or) Go to your dad's office and look around. (stopping) (endif) (else) (select) What you need might be in your dad's office. But that doesn't exist in this version of the house. (or) Go back to 1961 or 1981. (stopping) (endif) (elseif)~(#subscriptionForm is handled)(then) You found a subscription form earlier, in your dad's office. You just need to take it! (elseif)~(formsubmitted)(then) (if)($CurrentTime = 1)(then) (if)(#CJ is #in #BigOffice)(then) Try TALKing to your dad about the puzzle subscription. (else) Now that you have the form, you can go give it to your dad. (endif) (else) (select) That form is useful, but only at a certain time. Have you examined it? (or) You need to go back to 1961. (stopping) (endif) (elseif)~(#crosswordBook is handled)(then) (if)($CurrentTime = 2)(then) (if)(#CJ is #in #BigOffice)(then) (select) Have you seen a useful object for Ada in this room? (or) TAKE BOOK. (stopping) (else) (select) You should check to see if the form you submitted had any effect. (or) Go to your dad's office. (stopping) (endif) (else) You'll need to see if that form you sent out had any effect. Go to 1981. (endif) (elseif)(#crosswordBook undelivered)(then) (if)~(#crosswordBook is #heldby #CJ)(then) You'll need to go grab the crossword puzzle book where you left it. (else) (if)($CurrentTime = 3)(then) (if)(#CJ is #in #Garage)(then) You can just GIVE the BOOK TO ADA. (else) Ada could use the book. She's in the garage! (endif) (else) You'll need to go to the time when Ada needs the book, in 2001! (endif) (endif) (else) (if)($CurrentTime = 5)(then) (if)(#CJ is #in #Garage)(then) You can just TALK TO ADA like before to get the next iteration of robot! (else) You can just TALK TO ADA like before to get the next iteration of robot! She's in the garage, like usual. (endif) (else) You've already given Ada the book she needed, so go check on her in the future! (endif) (endif) (elseif)(#Ada3 is #in #Garage)(then) (if)(#WalkBot follows)(then) (if)($CurrentTime = 1)(then) Young Ada would be thrilled to see WalkBot. She's in the garage. (else) Young Ada would be thrilled to see WalkBot! She's in 1961. (endif) (elseif)~(drumsticknown)(then) You need to talk to Ada to find out her next problem. (if)($CurrentTime = 2)(then) (if)(#CJ is #in #Garage)(then) You can type TALK TO ADA to find out more. (else) She's in the garage, like usual. (endif) (else) Ada's having problems in 1981. Go help her! (endif) (elseif)~(#drumstick is handled)(then) (select) Ada needs some images of a leg. Have you seen any legs around the house? (or) (if)($CurrentTime = 2)(then) (if)(#CJ is #in #Kitchen)(then) (select) Have you examined the chicken? (or) TAKE DRUMSTICK. (stopping) (else) (select) There's cooked chicken with your name on it. Well, actually, with legs on it. (or) Go to the kitchen. (stopping) (endif) (else) You'll need to find a leg somewhere else. Check out 1981. (endif) (stopping) (elseif)~(#drumstick is #on #pedestal)(then) The drumstick is a leg, but Ada needs images of legs. (if)($CurrentTime = 3)(then) (if)~(#drumstick is #heldby #CJ)(then) You need to find where you put down the drumstick! (elseif)(#CJ is #in #BigOffice)(then) (select) Have you noticed how the pedestal works? (or) PUT DRUMSTICK ON PEDESTAL. (stopping) (else) (select) There's a room that can help you make images. (or) Go to the office (stopping) (endif) (else) You'll need to find a way to make images somewhere else. Check out 2001. (endif) (elseif)(#drumstick untransmitted)(then) (select) By putting the drumstick on the pedestal, you've created some paintings that are of use to Ada. (or) (stopping) (if)(#paintings is #heldby #CJ)(then) (if)($CurrentTime = 2)(then) (if)(#CJ is #in #Garage)(then) You can just GIVE the PAINTINGS TO ADA. (else) You have the paintings, you can just go give them to Ada! (endif) (else) You have the paintings, but she needs your help back in 1981! (endif) (elseif)(#paintings is handled)(then) You'll need to go grab the paintings where you left them. (else) (if)($CurrentTime = 4)(then) (if)(#CJ is #in #BigOffice)(then) Just TAKE the PAINTINGS. (else) The paintings are in the office. (endif) (else) You'll find the paintings in 2021. (endif) (endif) (else) (if)($CurrentTime = 5)(then) (if)(#CJ is #in #Garage)(then) You can just TALK TO ADA like before to get the next iteration of robot! (else) You can just TALK TO ADA like before to get the next iteration of robot! She's in the garage, like usual. (endif) (else) You've already given Ada the paintings she needed, so go check on her in the future! (endif) (endif) (elseif)(#Ada2 is #in #Garage)(then) (if)(#ToasterBot is #heldby #CJ)(then) (if)($CurrentTime = 1)(then) (if)(#CJ is #in #Garage)(then) You can GIVE TOASTER BOT TO ADA to see what she thinks! (else) Young Ada would be thrilled to see this Toaster Bot. She's in the garage. (endif) (else) Young Ada would be thrilled to see this Toaster Bot! She's in 1961. (endif) (elseif)(#ToasterBot is handled)(then) You need to find where you set down Toaster Bot and grab it! (elseif)~(batteryknown)(then) You need to talk to Ada to find out her next problem. (if)($CurrentTime = 4)(then) (if)(#CJ is #in #Garage)(then) You can type TALK TO ADA to find out more. (else) She's in the garage, like usual. (endif) (else) Ada's having problems in 2021. Go help her! (endif) (elseif)~(#battery is handled)(then) (if)($CurrentTime = 2)(then) (if)(#CJ is #in #FamilyRoom)(then) (if)(#boombox is open)(then) Just TAKE the BATTERY now that the boombox is open! (else) (select) Where could a battery be in this room? (or) You can OPEN BOOMBOX to find what you need. (stopping) (endif) (else) (select) There's an electronic device around heres somewhere that's pretty loud. It could have the battery you're looking for. (or) Go to the Family Room to find the battery. (stopping) (endif) (else) You'll need to find a battery somewhere. Check out 1981. (endif) (elseif)(#battery undelivered)(then) (if)~(#battery is #heldby #CJ)(then) You'll need to go grab the battery where you left it. (else) (if)($CurrentTime = 4)(then) (if)(#CJ is #in #Garage)(then) You can just GIVE the BATTERY TO ADA. (else) Ada could use the battery. She's in the garage! (endif) (else) You'll need to go to the time when Ada needs the battery, in 2021! (endif) (endif) (else) (if)($CurrentTime = 5)(then) (if)(#CJ is #in #Garage)(then) You can just TALK TO ADA like before to get the next iteration of robot! (else) You can just TALK TO ADA like before to get the next iteration of robot! She's in the garage, like usual. (endif) (else) You've already given Ada the battery she needed, so go check on her in the future! (endif) (endif) (elseif)(#fallentree sitsin #Outdoors)(then) (if)(crushedgarageknown)(then) The fallen tree has messed up the garage in 2001. Use HINT TREE to figure out how to deal with it. (else) (if)($CurrentTime = 3)(then) There's a big problem. Go outside \(to the east of the house\) to see what it is! (else) There's a big problem with Ada in the garage in 2001. Go see what it is! (endif) (endif) (else) (if)(#RobotStory is #heldby #CJ)(then) (select) Who would be most interested in reading this story? (or) (if)($CurrentTime = 1)(then) (if)(#CJ is #in #Garage)(then) You can just GIVE the STORY TO ADA. (else) Young Ada might like the story. She's in the garage! (endif) (else) A younger Ada might like the story. (select) (or) You'll need to go to 1961! (stopping) (endif) (stopping) (elseif)(#RobotStory is handled)(then) You'll need the short story. Go find where you left it and grab it! (else) (if)($CurrentTime = 5)(then) (if)(#CJ is #in #Garage)(then) Why not just TALK to ADA? (else) Have you tried talking to Ada in this time? (endif) (else) Ada changes a lot over time. She may be more interested in talking in the future. (select) (or) Try talking to Ada in 2041. (stopping) (endif) (endif) (endif) (perform [hint recipe]) (TimeAge $CurrentTime) (if)(baklavadone)(then) You're already done with the baklava. Good job! (elseif)~(#recipeCard is #heldby #CJ)(then) You need to have the recipe card before you can make the recipe. (if)(#recipeCard is handled)(then) You need to find where you left it and grab it. (elseif)~(cardmentioned)(then) Your dad would know where the card is. Have you tried talking to him? (elseif)~(#CJ is #in #BigOffice)(then) Your dad said the recipe card is in the Office. (else) The card is on the memory board. You can just TAKE CARD \(or X MOTHER if you want to discover it yourself\). (endif) (elseif)~(#walnuts is #heldby #CJ)(then) You need the walnuts to make the recipe. (if)(#walnuts is handled)(then) You already had the walnuts, you just need to find them again. (elseif)~($CurrentTime = 3)(then) (select) The walnuts belong to another time period, you need to go there to find them. (or) The walnuts are in 2001. (stopping) (elseif)~(#CJ is #in #Pantry)(then) The walnuts are in the pantry, south of the kitchen. (else) You can just TAKE the walnuts. (endif) (elseif)~(#butter is #heldby #CJ)(then) You need butter to make the recipe. (if)(#butter is handled)(then) You already had the butter, you just need to find them again. (elseif)~(#CJ is #in #Kitchen)(then) (select) You won't find the butter laying out. (or) Joe knows the most about the butter. Go find him in the kitchen. (stopping) (elseif)~($CurrentTime = 1)(then) (select) Hmmm, have you talked to Joe? Seems like he's not cooking with butter these days. (or) Go back to the 1961 kitchen. (stopping) (else) Talk to Joe and ask him for butter. (endif) (elseif)~(#cinnamon is #heldby #CJ)(then) You need the cinnamon to make the recipe. (if)(#cinnamon is handled)(then) You already had the cinnamon, you just need to find it again. (elseif)~(#oldtelevision channel 3)(then) (select) The cinnamon doesn't exist in your house yet. You'll need to find a way to get cinnamon in the house. (or) Have you noticed any ways to influence one time period from another? (or) Have you tried changing the channel in 1961? (or) (if)($CurrentTime > 1)(then) You need to go to 1961. (elseif)~(current room #FamilyRoom)(then) You need to go to the family room. (else) CHANGE CHANNEL until the show about cinnamon is on. (endif) (stopping) (elseif)~($CurrentTime = 2)(then) (select) The cinnamon now exists, but in another time period. You need to go there to find them. (or) The cinnamon is in 1981. (stopping) (elseif)~(#CJ is #in #Pantry)(then) The cinnamon is in the pantry, south of the kitchen. (else) You can just TAKE the cinnamon. (endif) (elseif)~(#dough is #heldby #CJ)(then) You need the phyllo dough to make the recipe. (if)(#dough is handled)(then) You already had the dough, you just need to find it again. (elseif)~($CurrentTime = 4)(then) (select) The phyllo dough belongs to another time period, you need to go there to find them. (or) The dough is in 2021. (stopping) (elseif)~(#CJ is #in #Pantry)(then) The phyllo dough is in the pantry, south of the kitchen. (else) You can just TAKE the phyllo dough. (endif) (elseif)~(#honeyBear is #heldby #CJ)(then) You need the honey to make the recipe. (if)(#honeyBear is handled)(then) You already had the honey, you just need to find it again. (elseif)~($CurrentTime = 1)(then) (select) The honey bear belongs to another time period, you need to go there to find them. (or) The dough is in 1961. (stopping) (elseif)~(#CJ is #in #Pantry)(then) The honey is in the pantry, south of the kitchen. (else) You can just TAKE the honey. (endif) (elseif)~(#CJ is #in #Kitchen)(then) You can't make the recipe if you're not in the kitchen! (elseif)($CurrentTime = 5)(then) The oven has been disconnected, since you're moving out. Try the kitchen in another time period. (elseif)($CurrentTime = 1)(then) You're too young to use the kitchen in this time period. You'll have to try when you're a little older. (else) You can now just MAKE BAKLAVA. (endif) (grammar [xyzzy] for itself) (perform [xyzzy]) You suddenly become aware that all of this is playing out on a greater stage for something...someone...to observe. Your eyes slowly turn to see a large, flickering screen... (par) Then everything goes back to normal. (amusing enabled) (amusing) Have you tried... (par) ...xyzzy? (par) ...ripping the list? (par) ...pushing the easel repeatedly? (par) ...turning off the robots? (par) ...singing in different time periods? (par)