"Six" by Wade Clarke Release along with the source text. The release number is 4. [behind the scenes, this is 91. This version of the source has been tweaked microscopically for public release. *** THE SOURCE CODE FOR SIX IS RELEASED UNDER A CREATIVE COMMONS ATTRIBUTION NON-COMMERCIAL 4.0 INTERNATIONAL LICENSE. The full terms of this licence can be read here: http://creativecommons.org/licenses/by-nc/4.0/legalcode Here is a human readable summary of the terms of the licence: You are free to… * Share — copy and redistribute the material in any medium or format - * Adapt — remix, transform, and build upon the material - (The licensor cannot revoke these freedoms as long as you follow the licence terms.) …Under the following terms: * Attribution — You must give appropriate credit, provide a link to the licence, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. * NonCommercial — You may not use the material for commercial purposes. * No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the licence permits. Notices: You do not have to comply with the licence for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. No warranties are given. The licence may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. *** DEAR READER! - NOTES ON THIS SOURCE It is not possible to compile Six from this source alone. My goal in sharing the source is to help interested Inform 7 programmers see how it was made, in particular in its thorough approach to defining grammar variations, checking verbs against all people and objects in the game and providing helpful feedback messages. If I had to summarise how to program a helpful or comprehensively understanding game in this manner, it is by doing exhaustive grammar programming work above and beyond the standard of typical parser responses. And of course to bounce all of that programming off many good testers of a wide variety. I wish there was a simpler answer or a 'trick' one, but there isn't. The source is probably easiest to follow if you paste it into the Inform 7 IDE first. That way it will be colour-coded and nicely formatted before your eyes. Well, actually, probably after a huge pause, as your computer is likely to think about it a lot first. As it was written/compiled with Inform 7 6G60, that's the version of the IDE I guarantee it will autoformat correctly in. I make no guarantees for earlier or later versions of the IDE. Here are a few code examples which might be interesting: 1. Using the index or by text searching, jump to the Part "Search and variants". This code shows how the look/search/check grammar is funnelled into different actions based on exactly what was typed, including adverbs. The game distinguishes between 'coresearching' (a regular search), 'incompletesearching' (when players didn't type enough), 'insearching', 'insidesearching', 'throughsearching', 'beneathsearching' and 'behindsearching', and gives sensible feedback based on whatever object was being searched. This is in spite of me telling players they can just type 'check'. The upshot is that these are all things people are highly likely to try in a hide and seek game, so I sought to hit everything. I treat a lot of other commands in this split-up way. 2. Search the source for incidences of the phrase 'seek out anyone presence'. You'll find various help messages nearby which the game prints if the player is vague, for instance if they try to throw something but don't say whom or what they want to throw it at. These messages sometimes try to give specific or relevant-right-now examples. There are other phrases to check for the presence of humans/animals only (seek out human presence), untagged kids only (seek out chasee presence), or just your sister (seek out sister presence). 3. When Ayla's hiding, you can just type 'search tree', after you've identified the correct tree, in order to find her. But you can also then, or at other times, type something like 'search the tall ugly brown tree', with any number of the relevant adjectives in any order, and the game will work it out. The not-particularly-easy-to-understand code for this, involving lots of indexed text scanning and replacements, is in "Chapter - Painfully searching the Tree Garden Trees (supertreesearching)". The index is well organised, broadly divided into technical stuff, people, places and commands, so you can use that from within the IDE to track down code you may be interested in. To actually compile the game would also requires the graphic files, 7 custom extensions and 50+ sound files used by Six, and I haven't released these yet. You're not missing much in not having access to the custom extensions, as they're mostly variations on technical extensions (EG things that add an exit list) or new tech additions (EG to add sound fx capability, or a hack that allows the player to hit RETURN to repeat their last command.) My main Inform 7 programming idiosyncracy is that I resolve tons of actions at the 'check' stage, including printing text. I do very little with report rules. Is this 'good style'? Perhaps not per se, but if you know what needs to be resolved for each action, it's safe, and it just works way better for my own brain that splitting off all message-giving functions to the 'report' rules. Please enjoy your trip through this source. -Wade, July 2014 ] [You can search for these tags throughout the source: debug, gumby, cheat Remove commenting brackets from [debug] or [cheat] code sections will restore those cheaty or debuggy commands or alerts to the compiled game. [gumby] tagged comments are to draw my attention to bits of the code that remain querulous or might need my attention in future updates. There aren't many left.] [When adding any new out of world actions to the game - either here in the source or by way of an extension - those actions MUST be defined as 'acting fast' down in the part 'out of world time tags'] [When adding any 'as a mistake' lines, you MUST include the [no-time] tag in the message. Even though mistakes take no time by default, the 'no-time' signal won't show in the status line in the case of 'mistakes' unless the no-time tag was explicitly included.] Use no deprecated features. Release along with cover art. Use MAX_STATIC_DATA of 220000. [game broke i6's default limit of 180000 in version 71] Use MAX_ACTIONS of 300. [broke 200 in version 72] Use MAX_OBJ_PROP_COUNT of 128. [broke 64 in version 73] Use MAX_VERBS of 400. [broke 255 in version 83] Use MAX_SYMBOLS of 30000. [broke 20000 in version 83] Use MAX_LINESPACE of 15000. [broke 10000 in version 90] [noting is an action out of world applying to one topic. [debug] Understand "note [text]" as noting. Carry out noting: say "[line break] Noted."] [sussing is an action applying to one thing. [debug] Understand "sus [any thing]" as sussing. Carry out sussing: say "Hold: "; if player holds noun, say "*"; say line break; say "Carry: "; if player carries noun, say "*"; say line break; say "Enclosed by: "; if noun is enclosed by player, say "*"; say line break; say "Part of player: "; if noun is part of player, say "*"; say line break; say "worn by player: "; if noun is worn by player, say "*"; say line break; say "Cap: [The Noun][line break]"; say "lower: [the noun][line break]".] Cheating is an action out of world. Understand "cheat" as cheating. Carry out cheating: [the real cheat responses, to be kept in release version] say "[if the player is Harriet]You wouldn't dare![otherwise]Hm... you do like being tricky, but no, you don't like to be a cheater." [last when play begins: [cheat] say "Pia: [hideyhole of Pia][line break]"; say "Vince: [hideyhole of Vince][line break]".] [every turn: say "maze mode [maze_mode]". [debug] when play begins: now maze_mode is 1. ] [It goes "volume", "book", "part", "chapter", "section"] Book - Test Phrases - Not For Release Understand "ma" as making the maze. Making the maze is an action applying to nothing. Carry out making the maze: repeat with N running from 1 to 3: say trix in row N of Table of Subtricks. [When play begins (this is the run property checks at the start of play rule): [debug] repeat with item running through things: if description of the item is "": say "[item] has no description."] Book - Bibliography The story genre is "Fiction". The story description is "Your name is Harriet Leitner, and you and your twin sister Demi turned six this morning! You're having a fancy dress birthday party, and this afternoon you'll be playing Hide and Seek Tip over in the park. You can't wait to catch all your friends." The story creation year is 2011. Book - Extensions Include Numbered Disambiguation Choices by Aaron Reed. [contains no out of world actions] Include Basic Screen Effects by Emily Short. [author modesty] [contains no out of world actions] Include Introductions by Emily Short. [contains no out of world actions] Include Glulx Image Centering by Emily Short. [3.] [both contain no out of world actions] Include Plurality by Emily Short. [author modesty] [contains no out of world actions] Include Variable Time Control by Eric Eve. [contains no out of world actions] Include Glulx Status Window Control by Erik Temple. [contains no out of world actions] Include Default Messages by Ron Newcomb. [contains no out of world actions] [Of the extensions listed below this comment, they are attributed to me in the source for purposes of separating my modified versions of the extensions from the original ones in my extensions folder, a necessary concern in versions of Inform prior to 6L02. However!.. these extensions are correctly credited to their real authors when you type 'extensions' into the game. The only extension below which are 'really' by me are hitenterhack, MenusForSix and MultiplesoundsForSix. 'RTD' stands for 'real time delays'.] Include dicelockforsix by Wade Clarke. [author modesty] [contains no out of world actions] Include exitlisterforsix by Wade Clarke. [author modesty] [CONTAINS OUT OF WORLD ACTIONS] Include ExtendedBannerForSix by Wade Clarke. [author modesty] [contains no out of world actions] Include hitenterhack by Wade Clarke. [author modesty] [contains no out of world actions] Include MenusForSix by Wade Clarke. [author modesty] [CONTAINS ONLY ASKING FOR HELP OUT OF WORLD ACTION] Include MultipleSoundsForSix by Wade Clarke. [author modesty] [contains no out of world actions] Include PuncremForSix by Wade Clarke. [author modesty] [contains no out of world actions] Include RTDforsix by Wade Clarke. [author modesty] [includes Glulx Entry Points by Emily Short.] [contains no out of world actions] [Include Repeat Through a Rulebook by Ron Newcomb.] [debug - This is for test purposes only. Include it then type 'all rulebooks' to see em. NB will not compile with Numbered Disambiguation Choices] Part - Glulx Text Stylings To say header style: (- glk_set_style(style_Header); -) To say normal style: (- glk_set_style(style_Normal); -) Part - Custom Glulx Text Styles Table of Common Color Values (continued) glulx color value assigned number g-pure-red 16711680 [== $FF0000] g-pure-blue 255 [== $0000FF] g-pure-cyan 65535 [== $00FFFF] g-pure-yellow 16776960 [== $FFFF00] g-pure-magenta 16711935 [== $FF00FF] g-dark-green 24576 g-blue-violet 9055202 g-rose-red 13107200 g-azure 15794175 g-bisque 16770244 Table of User Styles (continued) style name justification obliquity indentation first-line indentation boldness fixed width relative size glulx color special-style-1 left-justified no-obliquity 0 0 bold-weight proportional-font 0 g-pure-red special-style-2 left-justified no-obliquity 0 0 bold-weight proportional-font 0 g-pure-blue Part - Banner Parameters Rule for printing the banner text: instead say "[header style][story title][normal style][line break][extended story headline] by [story author] – Release [release number][line break]Copyright [unicode 169] 2011 All rights reserved". Rule for printing the banner text when banner_on is "no": do nothing. Rule for constructing the status line when game_started is 0: do nothing. Part - Wade's Additions to Variable Time Control To take no time: [this definition overwrites what's in the extension] if game_started is 1: now time-reset is true; [time-reset variable set up in variable time extension] now turn signal is "+++++++"; now seconds is previous_seconds; now seconds_used is false. [my below addition prevents 'every turn' rules going off if [no-time] was set during the turn. Without my addition, every turn rules go off irrespective of [no time] tags] This is the NEW every turn stage rule: unless time-reset is true, follow the every turn rules. The NEW every turn stage rule is listed instead of the every turn stage rule in the turn sequence rulebook. Part - Transplants / Additions to Real-Time Delay post-timer flag, allow_fades are number variables. [global] A glulx timed activity rule (this is the redirect from timer rule): [overwrites what's in extension] now waiting flag is false; stop the timer; if post-timer flag is not 0: if post-timer flag is 1, now allow_fades is 0; [theme music, maze music, etc] if post-timer flag is 2, now plane_block of Ayla is 0; [plane noise] if post-timer flag is 3, instead perform combat noises; [use 'instead' here because we don't want post-timer automatically being reset to 0 after this one] now post-timer flag is 0. To do the post fader check: if allow_fades is 1: fade out the foreground sound faster; [don't need to check if sound supported here because allow_fades could only have been set to 1 if sound is supported] now allow_fades is 0. Part - Cribs from Small Kindnesses Chapter - Look command deactivated and rebuilt [This is necessary to unhook 'look in' from searching, at the least] Understand the commands "look", "l" as something new. Understand "look", "look around/about", "look around/about here" as looking. [have made look around/about (object) a search synonym down in that section] Understand "look [something]", "look at/on [something]" as examining. Understand the command "l" as "look". Understand "look" as lefting when maze_mode is 1 and mazecontrols is 2. Chapter - Don't perform implicit actions for doomed tasks Before eating an inedible thing (this is the Small Kindnesses don't implicitly take inedibles rule): if noun is a person or noun is enclosed by a person, instead say how nonsense; stop the action with library message eating action number 1 for the noun. Before wearing a not wearable thing (this is the Small Kindnesses don't implicitly take unwearables rule): stop the action with library message wearing action number 1 for the noun. Chapter - Implement USE verb for common actions Understand "use" and "use [text]" as a mistake ("[no-time][line break][second custom style]<< You should try a more specific verb than USE. >>[normal style]"). Understand "use [an edible thing]" as drinking. [gumby - revise this if we add any actual non-lemonade food.] Understand "use [a wearable thing]" as wearing. Part - Changes to Default Messages via Ron Newcomb's Extension [Use library message alerts. [debug] ] To say nonsense: say "[no-time][one of]dumb[or]silly[purely at random]". To say doesn't make sense: say "[no-time]That doesn't make sense." Table of custom library messages (continued) library-action library-message-id library-message-text Drinking action 1 "[no-time][if location is Picnic]You're not gonna drink [otherid]'s lemonade.[otherwise]There's nothing for you to drink here." Eating action 1 "[no-time]You can't eat [that-those of noun]!" Examining action 5 "[no-time]To find out what's in that direction, you should try going that way." [no-time already included in looking/examining action] Giving it to action 1 "[no-time]You can't give something you don't have." [old was [no-time]You aren't holding [the noun].] Going action 2 "[no-time]You can’t go that way." Going action 7 "[broad_movement_advice]" preferring abbreviated room descriptions action 1 "Six is now in SUPERBRIEF mode, which always gives short descriptions of locations (even if you haven't been to them before)." preferring sometimes abbreviated room descriptions action 1 "Six is now in BRIEF mode, which gives long descriptions of places you've never been to before and short descriptions otherwise." preferring unabbreviated room descriptions action 1 "Six is now in VERBOSE mode, which always gives long descriptions of locations (even if you've been to them before). This is the game's default mode." putting it on action 1 "[no-time]Silliness!" [You need to be holding Demi before you can put her on top of something else] putting it on action 2 "How [nonsense]!" [put something on itself] putting it on action 3 "[no-time]You don't need to do that." [put item on something] putting it on action 4 "How [nonsense]!" [drop yourself] requesting the score action 1 "[the_score_report]" Restarting the game action 2 "Restart failed." Restoring the game action 1 "Restore cancelled." Saving the game action 1 "Save cancelled." Sleeping action 1 "[no-time][if player is Harriet]You're wide awake and in the middle of a game![otherwise]A witch only rests after her day's witching is over, and you've got friends to find." Squeezing action 1 "[no-time]No way, you're not a squeezy-peasy!" [squeeze someone] Squeezing action 2 "[no-time]That won't help." [squeeze an object] Swearing mildly action 1 "[no-time]Huh?" [left these swearing huhs here, but really they've been replaced by my own Cursing action] swearing obscenely action 1 "[no-time]Huh?" switching the story transcript off action 1 "[line break][second custom style]<< Transcripting is already off. >>[normal style]" switching the story transcript off action 2 "[line break][second custom style]<< End of transcript. >>[normal style]" switching the story transcript off action 3 "[line break][second custom style]<< Attempt to end transcript failed. >>[normal style]" switching the story transcript on action 1 "[line break][second custom style]<< Transcripting is already on. >>[normal style]" switching the story transcript on action 2 "[line break][second custom style]<< Beginning a transcript of… >>[normal style]" switching the story transcript on action 3 "[line break][second custom style]<< Attempt to begin transcript failed. >>[normal style]" Swinging action 1 "[no-time]Swinging around might be dangerous." taking action 1 "[if player is Harriet]You got [otherwise]Got [end if][if the noun is plural-named]them.[otherwise]it." [get something - don't think this generic message ever fires in this game] taking action 2 "You're being [nonsense]!" [get yourself] taking action 3 "[no-time]You can't lift anyone up." [tried to get someone else] Taking action 6 "[no-time][That-Those the noun] seem[s] to belong to [the library message object]." Taking action 7 "[no-time][That-Those the noun] seem[s] to be a part of [the library message object]." Taking action 10 "[no-time]You can't get [that-those library message object]." [originally for trying to get scenery] Taking action 11 "[no-time]You can't get [that-those library message object]." [originally for trying to get fixed in place stuff] Taking action 14 "[no-time]You can only look from up here." [was "[no-time]You can't reach into [the library message object]."] Verifying the story file action 1 "The game file is in wonderful condition. Hooray!" Waiting action 1 "[WaitMessage]." Wearing action 3 "[no-time]You're already wearing [that-those noun]." -- 10 "[no-time]Sorry?" [If you type nothing at the prompt] -- 13 "[UndoMessage]" -- 20 "[the bossy boots fob][ignore library line break]" [used to be a message about telling players not to order others by saying 'Jack, again'] -- 23 "[the bossy boots fob][ignore library line break]" [another message about telling players not to order others by saying 'Jack, again'] -- 27 "[no-time][freaking_complicated]" [Original msg was "[no-time][line break][second custom style]<< Sorry, the game didn't understand that sentence. >>[normal style]" ... Had changed this to 'Sorry, this game doesn't know the verb X', but that ended up producing the odd lie response. EG as in the vid review of the game where the guy tried 'brush web with wand' and was told the game didn't understand 'brush'. In release 2, I try to deal with this and exceptions via the freaking_complicated rule.] -- 28 "[no-time][line break][second custom style]<< The game only understood what you typed as far as wanting to [ignore library line break]" -- 30 "[no-time]You can't see any such thing." -- 32 "[no-time]You aren't holding that." [haven't seen this printed by game, but added a no-time for safety] -- 33 "[no-time][line break][second custom style]<< You can only refer to one thing at a time in this game, so commands like GET ALL or TALK TO SISTER AND MUM won't work. >>[normal style]" -- 38 "[all_apologies]" -- 44 "[no-time]There's nothing you need to get here." [stupid message for if you type get all and there's nothing to get - now that I have disabled both get all and drop all, I hope it is never seen.] -- 50 "[first custom style]<< YOU JUST SCORED A POINT! >>[normal style]" -- 56 ". >>[normal style]" [if this msg is printed after a library message that I haven't blue-ised, it's gonna look weird. But the only msg I've seen follow up with msg 56 in this game so far is msg 28] -- 67 "[no-time]That doesn't make sense." [originally 'You must name something more substantial' - this message is a default for when you try to verb a direction - EG 'get north' - should check for noun being a direction with all verbs where it could make sense - EG - CHASE NORTH - JUMP SOUTH [gumby] ] -- 73 "[no-time][context pain]." To say all_apologies: say "[no-time][line break][second custom style]<< Sorry, this game doesn't know the verb '[current_command]'. >>[normal style]". To say freaking_complicated: repeat with N running through querulous verbs: if "[current_command]" exactly matches the text "[N]": say "[line break][second custom style]<< Sorry, the game only understood what you typed as far as wanting to '[current_command]'. You could try typing your command again, but this time without as many details at the end of it. >>[normal style]"; stop the action; break; say all_apologies. To say broad_movement_advice: if maze_mode is 1: say maze_movement_advice; otherwise: say "[no-time][line break][second custom style]<< To move from place to place, just type the direction you want to go - NORTH, SOUTH, EAST, WEST, UP or DOWN, or in short form, N, S, E, W, U or D. >>[normal style]". To say UndoMessage: stop all the sounds; if duel_mode is 1: read File of Undoability into Table of Fairy Bread; if woe in row 1 of Table of Fairy Bread is 1: now duel_fresh is 1; if duel_fresh is 1: say "[bracket]Your last move has been undone.[close bracket][line break][duel_text]"; zap undoability; rule succeeds; zap undoability; [always zero the undoability file - this catches the edge case where you might have been in the first move of the duel, undo'd out of it and ended up in the previous room. At this point, checking for duel_mode being 1 as a sign that the undability file needed zapping would miss it. Safer to always zap after undo!] say "[bracket]Your last move has been undone.[close bracket]". To say WaitMessage: [note - the full stops had to be placed in the library message section, not after each wait message below, to prevent an extra line break taking place after printing] if player is Harriet, say "[RandomLock][one of]You have a little rest[or]You pause for a moment[or]You stop and wiggle your toes in your sneakers[or]You smooth down your dress while you wait[or]You adjust your fairy wings while you're waiting[or]You wait a moment[at random]"; if player is Demi: say "[RandomLock][one of]You rest for a moment[or]You pause for a moment's thought[or]You take a moment to smooth your robes[or]You have a little wait[or]While you're waiting, you draw a few circles in the air with your wand[or][hat variance wait][at random]"; if player is in the location of Rose and watch_length of Rose is greater than 1: say ". [RandomLock]Rose is still [one of]watching you[or]keeping an eye on you[or]keeping her eyes on you[or]watching you closely[purely at random]". To say hat variance wait: if Demi wears black witch's hat: say "You wait a moment, taking the opportunity to make sure your hat is secure on your head"; otherwise: say "You wait a moment". To say context pain: if current_command is "chase": say "You can't see any such thing"; otherwise if current_command is "follow": say "You haven't seen them"; otherwise: say "That noun did not make sense in this context". Section - Verbosity Message Fixes The standard report preferring unabbreviated room descriptions rule is not listed in any rulebook. The standard report preferring sometimes abbreviated room descriptions rule is not listed in any rulebook. The standard report preferring abbreviated room descriptions rule is not listed in any rulebook. Report preferring unabbreviated room descriptions: issue library message preferring unabbreviated room descriptions action number 1. Report preferring sometimes abbreviated room descriptions: issue library message preferring sometimes abbreviated room descriptions action number 1. Report preferring abbreviated room descriptions: issue library message preferring abbreviated room descriptions action number 1. Part - ShadowChaser's Useful Functions Excerpts Chapter - Keypresses and Space To decide what number is the key_pressed: [is this routine used anymore? I think I've replcaed all incidences with SPACE_pressed] let keypress be 0; while keypress is 0: let keypress be the chosen letter; decide on the keypress. To decide what number is the key_pressed_with_question (question - some text): say "[question][line break]"; decide on the key_pressed. To get_the_space_key: let keypress be 0; while the infinite_loop is 1: let keypress be the chosen letter; if keypress is 32, make no decision. To WaitForSpace: say "[line break][second custom style]<< Press SPACE to continue >>[normal style][run paragraph on]"; get_the_space_key. To decide what number is nought to five: while the infinite_loop is 1: let keypress be the chosen letter; now keypress is keypress minus 48; if keypress is greater than -1 and keypress is less than 6, decide on the keypress. Chapter - Yes / No To decide what text is the yesno_answer: let the answer be "MAYBE"; let the exitvalue be 0; while the exitvalue is 0: let keypress be the key_pressed; if keypress is 89 or keypress is 121: let the answer be "YES"; let the exitvalue be 1; otherwise if keypress is 78 or keypress is 110: let the answer be "NO"; let the exitvalue be 1; decide on the answer. To decide what text is the yesno_answer_with_question (question - some text): say "[question][line break]"; decide on the yesno_answer. Chapter - Pause and Clear To pause_clear: WaitForSpace; clear the screen; redraw status line. To say pause_clear: pause_clear. To pause_clear (the_message - some text): say "[the_message][line break]"; get_the_space_key; clear the screen; redraw status line. To say pause_clear (the_message - some text): pause_clear the_message. To pause_only: WaitForSpace; redraw status line. To say pause_only: pause_only. To pause_only (the_message - some text): say "[the_message][line break]"; get_the_space_key; redraw status line. To say pause_only (the_message - some text): pause_only the_message. Part - ShadowChaser's StartEnd MenuPages (modified by Wade) Chapter - Definitions game_credits, banner_on are text variables. [GLOBAL] To say the_game_credits: say " [bold type]Six[roman type] was designed, written and programmed by Wade Clarke.[line break] Katherine Primrose drew the title pages and manual art.[line break] Wade composed and produced the soundtrack.[line break] Andrew Schultz, Bryan Kelly, Patrick Floyd, Anssi Räisänen, Katherine Primrose and Andrew Nawroth playtested the game.[line break] Extra credits for Release 2: Steve Amm (playtesting), Paul Lee and Emily Boegheim (transcripts), Thomas Reisinger (bug-spotting).[line break] Demi drew Demi's map of the park.[line break] Wade wrote the manual.[line break] These things were done in the year 2011.[paragraph break]Thanks to Eric Eve and Erik Temple who provided additional help with their extensions.[line break]Big thanks also go to all the folks on the Inform 6 and 7 Development board @ intfiction.org who fielded programming questions.[paragraph break]Six makes use of samples of the following sound files from Freesound (http://www.freesound.org): DogBarkPapillon02 from adamlhumphreys, Walking on Leaves from bsumusictech, Handclaps from NoiseCollector, Blood Hitting Window from Rock Savage, Bush8 from schademans, puddlewalk from j1987, Splattt from SlykMrByches, tree_leaves_rustling from Spleencast.[paragraph break]Contact Wade at bloomer@iprimus.com.au with your comments, questions, bug reports or transcripts.[paragraph break][bold type]Six[roman type] © 2011 by Wade Clarke – A Greengum Games Production[paragraph break](For nerdy info about the Inform Extensions used in this game, type VERSION"; if game_started is 1, say ")[line break]"; otherwise say " during the game.)". The game_started is a number variable. [GLOBAL] The infinite_loop is a number variable. The infinite_loop is 1. [GLOBAL] The key_buffer is a number variable. [GLOBAL] config_skip is a number variable. [GLOBAL] special_look_flag is a number variable. [GLOBAL] Chapter - Artworks Figure harriettitle is the file "startpicture.png". To display_start_art: display figure harriettitle centered. Figure demititle is the file "startpicture2.png". To display_start_art2: display figure demititle centered. Figure demiunlock is the file "bonus1.png". To display_unlock: display figure demiunlock centered. Figure winall is the file "bonus2.png". To display_winall: display figure winall centered. Figure rulerFigure is the file "pic_harriet_ruler.png". To display_ruler: display figure rulerFigure centered. Figure notimeFigure is the file "notime.png". To display_notime: display figure notimeFigure. Figure mapFigure is the file "pic_ingamemap.png". To display_map: display figure mapFigure centered. Part - Jesse McGrew's Conditional Undo (modified by Wade) [I've included basically the hook into allowing undo, so I can do a 'stop all sounds' before any undo.] Deciding whether to allow undo is an activity. The for deciding whether to allow undo rules have outcomes allow undo (success) and deny undo (failure). The for deciding whether to allow undo rules have default no outcome. Rule for deciding whether to allow undo: stop all the sounds; allow undo. The prevent undo flag is a truth state which varies. [GLOBAL] Include (- Constant ALLOWUNDO_ACT = (+deciding whether to allow undo+); Constant CANTUNDO_MSG = "That action cannot be undone.^^"; [ AllowUndo flag; BeginActivity(ALLOWUNDO_ACT); flag = ~~((+prevent undo flag+)); say__p = 0; if (ForActivity(ALLOWUNDO_ACT)) flag = RulebookSucceeded(); if (flag == 0 && ~~say__p) print (string) CANTUNDO_MSG; EndActivity(ALLOWUNDO_ACT); return flag; ]; -). Include (- [ Perform_Undo; #ifdef PREVENT_UNDO; L__M(##Miscellany, 70); return; #endif; if (turns == 1) { L__M(##Miscellany, 11); return; } if (undo_flag == 0) { L__M(##Miscellany, 6); return; } if (undo_flag == 1) { L__M(##Miscellany, 7); return; } if (~~AllowUndo()) return; if (VM_Undo() == 0) L__M(##Miscellany, 7); ]; -) instead of "Perform Undo" in "OutOfWorld.i6t". Book - Audio Part - General Setup user_musicvol, user_fxvol, startsong are number variables. [globals] [startsong: 0 = theme music, 1 = suite] To poll the volume settings: [don't call this unless sound supported] if game_started is 1: [stop all sounds except wind] stop the foreground sound; stop the background sound; stop the midground sound; stop the horizon sound; stop the bird sound; say "* The music [if user_musicvol is 0]is currently OFF[otherwise]volume is currently set to [bold type][user_musicvol] / 5[roman type][end if].[paragraph break]Please choose a new volume setting for the music from 0 to 5, where 0 is OFF and 5 is the maximum volume:[paragraph break]"; let level be nought to five; now user_musicvol is level; do the volume settings; if allow_fades is 0, play_tip_music; [play tip sound unless we know for a fact we're already hearing some music at the front end menu] say "[bold type]You have [if user_musicvol is 0]turned the music OFF.[otherwise]set the music volume to [user_musicvol] / 5.[end if][roman type][line break]"; say "* The sound effects [if user_fxvol is 0]are currently OFF[otherwise]volume is currently set to [bold type][user_fxvol] / 5[roman type][end if].[paragraph break]Please choose a new volume setting for the sound effects from 0 to 5, where 0 is OFF and 5 is the maximum volume:[paragraph break]"; let level be nought to five; now user_fxvol is level; do the volume settings; play_boing; say "[bold type]You have [if user_fxvol is 0]turned the sound effects OFF.[otherwise]set the sound effects volume to [user_fxvol] / 5.[end if][roman type]"; if audio of Ayla is 1, play_Aylasong_music; [reactivate ayla's song if it was turned off by the volume check] if location is R13, play_drain; [restart drain sound if it was turned off in R13] now numero in row 3 of Table of Sesame is user_musicvol; now numero in row 4 of Table of Sesame is user_fxvol; write File of Status from Table of Sesame. [write new sound settings to disk] To do the volume settings: if glulx sound is supported: set the foreground volume to user_musicvol; set the background volume to user_musicvol; set the midground volume to user_fxvol; set the horizon volume to user_fxvol; set the bird volume to user_fxvol; if wind_mode is 1: execute windsloughing; otherwise: set the wind volume to user_fxvol. To stop all the sounds: [really does stop ALL sounds, including wind] if glulx sound is supported: now post-timer flag is 0; stop the foreground sound; stop the background sound; stop the midground sound; stop the horizon sound; stop the bird sound; stop the wind sound. To do the startmusic timer: if glulx sound is supported and user_musicvol is not 0 and glulx timekeeping is supported: now post-timer flag is 1; [lets fade action know we have to turn allow_fades off when timer finishes] now allow_fades is 1; now startsong is 0; start a 10000 millisecond timer. To do the planepass timer: if glulx sound is supported and user_fxvol is not 0 and glulx timekeeping is supported: now post-timer flag is 2; [lets timer know we have to block listening in Tree Garden until it finishes] now plane_block of Ayla is 1; start a 7500 millisecond timer. To do the mazemusic timer: if glulx sound is supported and user_musicvol is not 0 and glulx timekeeping is supported: now post-timer flag is 1; [lets fade action know we have to turn allow_fades off when timer finishes] now allow_fades is 1; start a 8000 millisecond timer; [length of maze music to nearest second] say run paragraph on. [GUMBY - THIS PARTICULAR LINEBUMP FIX DOESN'T WORK - something to do with the when it occurs, and that other messages are printed after while music still playing. Not sure there's anything that can be done about this one.] To do the suitemusic timer: if glulx sound is supported and user_musicvol is not 0 and glulx timekeeping is supported: now post-timer flag is 1; [lets fade action know we have to turn allow_fades off when timer finishes] now allow_fades is 1; now startsong is 1; start a 81000 millisecond timer. To do the piratemusic timer: if glulx sound is supported and user_musicvol is not 0 and glulx timekeeping is supported: now post-timer flag is 1; [lets fade action know we have to turn allow_fades off when timer finishes] now allow_fades is 1; start a 5400 millisecond timer; [length of bulk of pirate music] say run paragraph on. [linebump fix for gargoyle] To do the victorymusic timer: if glulx sound is supported and user_musicvol is not 0 and glulx timekeeping is supported: now post-timer flag is 1; [lets fade action know we have to turn allow_fades off when timer finishes] now allow_fades is 1; start a 8500 millisecond timer. To fade out the foreground sound: say run paragraph on; [necessary to prevent linebumping in Gargoyle interpreter] let fullvol be 13307 times user_musicvol; let CV be fullvol; repeat with N running from 1 to 500: if CV is less than 1500, break; if CV is greater than 1500, now CV is CV minus 1000; if CV is greater than 5121, now CV is CV minus 2000; if CV is greater than 10241, now CV is CV minus 5000; if CV is greater than 20481, now CV is CV minus 7000; if CV is greater than 40961, now CV is CV minus 15000; set the raw foreground volume to CV; wait 110 milliseconds before continuing, strictly; [author of damusix reccommends a delay time of around 100 ms for good fades - he says definitely never below 100ms] stop the foreground sound; set the foreground volume to user_musicvol. To fade out the foreground sound faster: [quicker fade, uninterruptable] say run paragraph on; [necessary to prevent linebumping in Gargoyle interpreter] let fullvol be 13307 times user_musicvol; let CV be fullvol; repeat with N running from 1 to 5: if CV is greater than 50000, now CV is 50000; if CV is greater than 30000 and CV is less than 50000, now CV is 30000; if CV is greater than 15000 and CV is less than 30000, now CV is 15000; if CV is greater than 6000 and CV is less than 15000, now CV is 6000; if CV is greater than 1500 and CV is less than 6000, now CV is 1500; now CV is CV minus 1; set the raw foreground volume to CV; wait 110 milliseconds before continuing, strictly; if CV is less than 1500, break; stop the foreground sound; set the foreground volume to user_musicvol. Part - Foreground Channel (Music 1) [Most musics are played by the foreground channel.] Sound of StartingMusic is the file "s01_Six_Commence.ogg". Sound of HarrietEnd is the file "s02_Lose_A.ogg". Sound of DemiEnd is the file "s03_Lose_B.ogg". Sound of YouWin is the file "s04_Victory.ogg". Sound of PeaceBeWithYou is the file "s05_Peace_Be_With_You.ogg". Sound of mischief is the file "s06_Mischief.ogg". Sound of romp is the file "s07_Romp.ogg". Sound of mazefind is the file "s08_Maze_Discovery.ogg". Sound of Aylasong is the file "s09_Aylas_song.ogg". Sound of Tip is the file "s10_Tip.ogg". Sound of Suite is the file "s11_Chase_Suite_from_Six.ogg". Sound of Marion is the file "s12_Pirate_song.ogg". Sound of Night is the file "s13_Night.ogg". To play_start_music: if glulx sound is supported, play the sound of StartingMusic in foreground; To play_lose_music: if glulx sound is supported: if player is Harriet, play sound of HarrietEnd in foreground; otherwise play sound of DemiEnd in foreground. To play_win_music: if glulx sound is supported, play sound of YouWin in foreground. To play_peace_music: if glulx sound is supported, play sound of PeaceBeWithYou in foreground. To play_mischief_music: if glulx sound is supported, play sound of mischief in foreground. To play_romp_music: if glulx sound is supported, play sound of romp in foreground. To play_maze_music: if glulx sound is supported, play Sound of mazefind in foreground. To play_Aylasong_music: if glulx sound is supported, play Sound of Aylasong in foreground with loop. To play_tip_music: if glulx sound is supported, play Sound of Tip in foreground. To play_suite_music: if glulx sound is supported, play Sound of Suite in foreground. To play_pirate_music: if glulx sound is supported, play Sound of Marion in foreground. To play_night_music: if glulx sound is supported, play Sound of Night in foreground. Part - Background Channel (Music 2 - Spot Music) Sound of chimey is the file "sfx_chimey.ogg". Sound of StringSting is the file "sfx_string.ogg". Sound of FoundAyla is the file "sfx_Found_Ayla.ogg". Sound of MarionZap is the file "sfx_Marion_zap.ogg". Sound of MarionBlock is the file "sfx_Marion_block.ogg". To play_chimey: if glulx sound is supported, play Sound of chimey in background. To play_stringfx: if glulx sound is supported, play Sound of StringSting in background. To play_FoundAyla: if glulx sound is supported, play Sound of FoundAyla in background. To play_Marion_zap: if glulx sound is supported, play Sound of MarionZap in background. To play_Marion_block: if glulx sound is supported, play Sound of MarionBlock in background. Part - Midground Channel (Spot FX) [Most spot FX are played by the midground channel.] Sound of Boing is the file "sfx_boing.ogg". Sound of claps1 is the file "sfx_claps01.ogg". Sound of claps2 is the file "sfx_claps02.ogg". Sound of claps3 is the file "sfx_claps03.ogg". Sound of dog1 is the file "sfx_dog_1.ogg". Sound of dog2 is the file "sfx_dog_2.ogg". Sound of dog4 is the file "sfx_dog_4.ogg". Sound of dogdemi is the file "sfx_dog_demi_jump.ogg". Sound of dogyapnoise is the file "sfx_dog_yapnoise.ogg". Sound of FallMud is the file "sfx_fallmud.ogg". Sound of gigal is the file "sfx_giggleA_L.ogg". Sound of gigar is the file "sfx_giggleA_R.ogg". Sound of gigbl is the file "sfx_giggleB_L.ogg". Sound of gigbr is the file "sfx_giggleB_R.ogg". Sound of gigcl is the file "sfx_giggleC_L.ogg". Sound of gigcr is the file "sfx_giggleC_R.ogg". Sound of gigdl is the file "sfx_giggleD_L.ogg". Sound of gigdr is the file "sfx_giggleD_R.ogg". Sound of LeafChuck is the file "sfx_leafchuck.ogg". Sound of leafcrunch is the file "sfx_leafcrunch.ogg". Sound of MudIntoPuddle is the file "sfx_mudintopuddle.ogg". Sound of PieHit is the file "sfx_piehit.ogg". Sound of HarrietZap is the file "sfx_Harriet_zap.ogg". Sound of HarrietBlock is the file "sfx_Harriet_block.ogg". Sound of DemiZap is the file "sfx_Demi_zap.ogg". Sound of DemiBlock is the file "sfx_Demi_block.ogg". To play_boing: if glulx sound is supported, play the Sound of Boing in midground. To play_claps1: if glulx sound is supported, play the Sound of claps1 in midground. To play_claps2: if glulx sound is supported, play the Sound of claps2 in midground. To play_claps3: if glulx sound is supported, play the Sound of claps3 in midground. To play_dog1: if glulx sound is supported, play the Sound of dog1 in midground. To play_dog2: if glulx sound is supported, play the Sound of dog2 in midground. To play_dog4: if glulx sound is supported, play the Sound of dog4 in midground. To play_dogdemi: if glulx sound is supported, play the Sound of dogdemi in midground. To play_dogyapnoise: if glulx sound is supported, play the Sound of dogyapnoise in midground. To play_fallintomud_fx: if glulx sound is supported, play the Sound of FallMud in midground. To play_gigal: if glulx sound is supported, play Sound of gigal in midground. To play_gigar: if glulx sound is supported, play Sound of gigar in midground. To play_gigbl: if glulx sound is supported, play Sound of gigbl in midground. To play_gigbr: if glulx sound is supported, play Sound of gigbr in midground. To play_gigcl: if glulx sound is supported, play Sound of gigcl in midground. To play_gigcr: if glulx sound is supported, play Sound of gigcr in midground. To play_gigdl: if glulx sound is supported, play Sound of gigdl in midground. To play_gigdr: if glulx sound is supported, play Sound of gigdr in midground. To play_leafchuck: if glulx sound is supported, play the Sound of LeafChuck in midground. To play_leafcrunch: if glulx sound is supported, play the Sound of leafcrunch in midground. To play_mudintopuddle: if glulx sound is supported, play the Sound of MudIntoPuddle in midground. To play_piehit: if glulx sound is supported, play the Sound of Piehit in midground. To play_Harriet_zap: if glulx sound is supported, play Sound of HarrietZap in midground. To play_Harriet_block: if glulx sound is supported, play Sound of HarrietBlock in midground. To play_Demi_zap: if glulx sound is supported, play Sound of DemiZap in midground. To play_Demi_block: if glulx sound is supported, play Sound of DemiBlock in midground. To say random clap: lock the dice; let N be a random number between 1 and 3; if N is: -- 1: play_claps1; -- 2: play_claps2; -- 3: play_claps3. To play_random_l_giggle: lock the dice; let N be a random number between 1 and 4; if N is: -- 1: play_gigal; -- 2: play_gigbl; -- 3: play_gigcl; -- otherwise: play_gigdl. To play_random_r_giggle: lock the dice; let N be a random number between 1 and 4; if N is: -- 1: play_gigar; -- 2: play_gigbr; -- 3: play_gigcr; -- otherwise: play_gigdr. combatlist is a list of numbers that varies. [global] combatclock is a number variable. [global] To perform combat noises: [to put a gap in the queue, just insert a 7] if glulx sound is supported: if combatlist is { } or user_fxvol is 0: now post-timer flag is 0; rule succeeds; now post-timer flag is 3; if entry 1 in combatlist is: -- 1: play_Marion_zap; -- 2: play_Marion_block; -- 3: play_Harriet_zap; -- 4: play_Harriet_block; -- 5: play_Demi_zap; -- 6: play_Demi_block; unless combatlist is { }: [unless is just for safety] remove entry 1 from combatlist; start a combatclock millisecond timer. Part - Horizon Channel Sound of drain is the file "sfx_drain.ogg". Sound of PlanePass is the file "sfx_planepass.ogg". To play_drain: if glulx sound is supported, play the Sound of drain in horizon with loop. To play_planepass: if glulx sound is supported, play the Sound of PlanePass in horizon. Part - Bird Channel Sound of Galah is the file "sfx_galah.ogg". Sound of Myna is the file "sfx_mynabird.ogg". Sound of Raven 1 is the file "sfx_raven_ab.ogg". Sound of Raven 2 is the file "sfx_raven_c.ogg". Sound of Raven 3 is the file "sfx_raven_de.ogg". To play_galah: if glulx sound is supported, play Sound of Galah in bird. To play_myna: if glulx sound is supported, play Sound of Myna in bird. To play_raven1: if glulx sound is supported, play Sound of Raven 1 in bird. To play_raven2: if glulx sound is supported, play Sound of Raven 2 in bird. To play_raven3: if glulx sound is supported, play Sound of Raven 3 in bird. To play_random_raven: lock the dice; let N be a random number between 1 and 3; if N is: -- 1: play_raven1; -- 2: play_raven2; -- otherwise: play_raven3. Part - Wind Channel (ONLY THE WIND!) [Due to the special windslough programming on the wind channel, it's a 'one shot' type channel. Should never be used for anything else, or used more than once.] Sound of Wind is the file "sfx_wind.ogg". To play_wind_fx: if glulx sound is supported: play the Sound of Wind in wind; now wind_mode is 1. To execute windsloughing: let X be user_fxvol times 13000; if wind_slough is: -- 0: set the raw wind volume to user_fxvol times 13107; -- 1: set the raw wind volume to X divided by 2; -- 2: set the raw wind volume to X divided by 4; -- 3: set the raw wind volume to X divided by 10; -- 4: set the raw wind volume to X divided by 20; -- 5: set the raw wind volume to 500. wind_mode is a number variable. [global] wind_slough is a number variable. [global] Book - Wade's Question Routines Current question is text that varies. [global] Current question menu is a list of text that varies. [global] Current question answer is a number variable. [global] Question response echo is a number variable. [global] Asking a menu question is a rulebook. To ask a menu question: follow the asking a menu question rules. An asking a menu question rule: while the infinite_loop is 1: say current question; say line break; say fixed letter spacing; repeat with counter running from 1 to the number of entries in the current question menu: say "[counter] - [entry counter of the current question menu][line break]"; say variable letter spacing; let k be 0; while k is 0: let k be the chosen letter; now k is k minus 48; now current question answer is k; if k is less than 1 or k is greater than number of entries in the current question menu: say "[line break]Oops. You need to press a number between 1 and [number of entries in the current question menu].[paragraph break]"; otherwise: make no decision. An asking a menu question rule: if Question response echo is 1, say capitalised "[fixed letter spacing][entry current question answer of the current question menu][variable letter spacing][line break]". Book - Parser 1st Words Capture Hack and Blank Line Repeats Last Command Hack current_command is an indexed text variable. [holds first word of player's command] [GLOBAL] current_command2 is an indexed text variable. [holds first 2 words of player's command] [GLOBAL] their_last_command_in_full is an indexed text variable. [holds entire verbatim command player last typed] After reading a command (this is the remember the first two bloody words rule): remove stray punctuation; now turn signal is ""; now duel_fresh is 0; [during duel_mode, this stops 'undo' from restating the last action from you and Marion more than once - for instance, if she fires at you, then you 'look' twice, you will have to undo through the 2 looks before you see the moment where she fires at you again. The alternative would be to see her fire at you every time you typed undo, which I found less intuitive.] let T be indexed text; now T is the player's command; if T is "": [this line doesn't do this trick on its own - it works atop of the i6 code by VictorGijsbers which I put in the hitenterhack extension ] say "> [bold type][their_last_command_in_full][roman type] - [bracket]Your previous command[close bracket][line break]"; change the text of the player's command to "again"; continue the action; now their_last_command_in_full is T; if T is "g" or T is "again", continue the action; [if you typed 'g' or 'again', WE DON'T ALTER CURRENT_COMMAND OR CURRENT_COMMAND 2! THEY NEED TO STAY WHAT THEY WERE LAST TURN!] if T matches the regular expression ("\w+"): now T is "[text matching regular expression]"; now current_command is T; if current_command is "t", now current_command is "talk"; otherwise: now current_command is ""; now T is the player's command; if T matches the regular expression ("\w+ \w+"): now T is "[text matching regular expression]"; now current_command2 is T; if word number 1 in current_command2 is "t", replace word number 1 in current_command2 with "talk"; otherwise: now current_command2 is "". Book - Restore Game Hacks (LOOK after a RESTORE) [Some code by Erik Temple] Wanting to restore the game is an action out of world. Understand the command "restore" as something new. Understand "restore" as wanting to restore the game. Carry out wanting to restore the game: stop all the sounds; try restoring the game. The output from restoring rules are a rulebook. The last output from restoring rule (this is the default restoring the game rule): rule fails. Output from restoring: say "[bracket]Saved file successfully restored.[close bracket][paragraph break]"; read File of Status into Table of Sesame; [retrieve default volume settings from file] safely retrieve the volume settings; [replace saved game sound settings with player's stored defaults] set the background of the status window to colored; follow the revamp the window rule; try looking; rule succeeds. To safely retrieve the volume settings: let doober be numero in row 3 of Table of Sesame; if doober is greater than -1 and doober is less than 6: now user_musicvol is doober; otherwise: now numero in row 3 of Table of Sesame is 5; now user_musicvol is 5; let doober be numero in row 4 of Table of Sesame; if doober is greater than -1 and doober is less than 6: now user_fxvol is doober; otherwise: now numero in row 4 of Table of Sesame is 5; now user_fxvol is 5; write File of Status from Table of Sesame; [write levels to disk again, in case we repaired corrupt values] do the volume settings. Include (- [ RESTORE_THE_GAME_R res fref; if (actor ~= player) rfalse; fref = glk_fileref_create_by_prompt($01, $02, 0); if (fref == 0) jump RFailed; gg_savestr = glk_stream_open_file(fref, $02, GG_SAVESTR_ROCK); glk_fileref_destroy(fref); if (gg_savestr == 0) jump RFailed; @restore gg_savestr res; glk_stream_close(gg_savestr, 0); gg_savestr = 0; .RFailed; GL__M(##Restore, 1); ]; -) instead of "Restore The Game Rule" in "Glulx.i6t". Include (- [ SAVE_THE_GAME_R res fref; if (actor ~= player) rfalse; fref = glk_fileref_create_by_prompt($01, $01, 0); if (fref == 0) jump SFailed; gg_savestr = glk_stream_open_file(fref, $01, GG_SAVESTR_ROCK); glk_fileref_destroy(fref); if (gg_savestr == 0) jump SFailed; @save gg_savestr res; if (res == -1) { ! The player actually just typed "restore". We're going to print ! a successful restore message; the Z-Code Inform library does this correctly ! now. But first, we have to recover all the Glk objects; the values ! in our global variables are all wrong. GGRecoverObjects(); glk_stream_close(gg_savestr, 0); ! stream_close gg_savestr = 0; if ( FollowRulebook( (+ output from restoring rules +) ) && RulebookFailed()) { return GL__M(##Restore, 2); } return; } glk_stream_close(gg_savestr, 0); ! stream_close gg_savestr = 0; if (res == 0) return GL__M(##Save, 2); .SFailed; GL__M(##Save, 1); ]; -) instead of "Save The Game Rule" in "Glulx.i6t". Book - Capitalise Various Kinds of Things Subroutines current_caps_person is a person variable. [GLOBAL] To say CAPS POWER PERSON: [this routine capitalise all letters of current_caps_person and prints the result] let X be "[current_caps_person]" in upper case; if current_caps_person is Stevie and name_is_known of Stevie is 0, now X is "DOG"; say "[X]". [Note - I wondered if the above construction using indexed text is actually necessary. But I doublechecked, and you cannot just type 'say current_caps_person in upper case' because c_c_person is a character and not a text string] current_caps_object is an object variable. [GLOBAL] To say CAPS POWER OBJECT: [this routine capitalise all letters of current_caps_object and prints the result] let X be "[current_caps_object]" in upper case; say "[X]". To say uppedway: let X be "[chaseway]" in upper case; say "[X]". To say capitalised (thing - some text): let X be thing in upper case; say "[X]". Book - Game Header yourid, otherid, yourcostume and othercostume are text variables. [GLOBAL] The time of day is 12:00 PM. The maximum score is 6. This is the NEW notify score changes rule: [have eliminated the score announcement from the rule, because it only fires at the end of a turn, but I usually I want the 'you scored' message to appear midturn -- so I'll do announcements myself.] if the score is not the last notified score, now last notified score is the score. The NEW notify score changes rule is listed instead of the notify score changes rule in the turn sequence rules. suspend_extra_score is a number variable. [global] To say score addendum: unless the story has ended: if suspend_extra_score is 0, say ". You [if score is not 0]still [end if]need to tip [list of untagged chasees]". To say the_score_report: if score is 0: say "You haven't tipped anyone yet, so your score is 0. You've been playing for [turn count] turn[s][score addendum][ignore library line break]"; rule succeeds; if score is 6: say "You tipped all 6 friends in [turn count] turn[s][ignore library line break]"; rule succeeds; say "[if the story has ended]You tipped[otherwise]You've tipped[end if] [score] out of [the maximum score] friends [if the number of tagged chasees is greater than 0]([list of tagged chasees]) [end if]in [turn count] turn[s][score addendum][ignore library line break]". This is the grant_a_point rule: now current_actor is tagged; increase score by 1; play_tip_music; [the sound effect] if score is less than 6: issue miscellaneous library message number 50; otherwise: redraw status line; say "[first custom style]<< YOU JUST TIPPED THE LAST OF YOUR FRIENDS! >>[normal style][line break]"; WaitForSpace; now WINNERFLAG is 1; say paragraph break; play_win_music; do the victorymusic timer; instead end the story. Definition: a person is nottheplayer if it is not the player. quiptext is a text variable. [global] seeker flag is a number variable. [global] To seek out anyone presence: [if there's only 1 other character present, chooses them and makes seeker flag 1. Otherwise, chooses a random present character, or your sister (whether or not she's present), and sets seeker flag to 0.] now seeker flag is 0; [say "ANYONE"; [debug] ] if there is a nottheplayer person in location: lock the dice; now current_caps_person is a random nottheplayer person in location; [say "[current_caps_person]***"; [debug] ] now quiptext is ", "; if number of nottheplayer people in location is 1, now seeker flag is 1; otherwise: seek out sister presence. To seek out human presence: [if there's only 1 other human present, chooses them and makes seeker flag 1. Otherwise, chooses a random present person, or your sister (whether or not she's present), and sets seeker flag to 0.] now seeker flag is 0; [say "HUMAN"; [debug] ] if there is a notmehuman person in location: lock the dice; now current_caps_person is a random notmehuman person in location; [say "[current_caps_person]***"; [debug] ] now quiptext is ", "; if number of notmehuman people in location is 1, now seeker flag is 1; otherwise: seek out sister presence. To seek out chasee presence: [returns number of untagged chasees in location in seeker flag, and picks 1 at random in current_caps_person] now seeker flag is 0; [say "CHASEE"; [debug] ] if number of untagged chasees in location is greater than 0: lock the dice; now current_caps_person is a random untagged chasee in location; [say "[current_caps_person]***"; [debug] ] now seeker flag is number of untagged chasees in location. To seek out sister presence: [chooses your sister (whether present or not) and sets quiptext depending on her presence/absence] [say "SISTER"; [debug] ] if player is Harriet: now current_caps_person is Demi; otherwise: now current_caps_person is Harriet; [say "[current_caps_person]***"; [debug] ] if current_caps_person is in location: [no point setting seeker flag for your sister since she's always in a room (Picnic) with multiple characters] now quiptext is ", "; rule succeeds; now quiptext is " if [otherid] was here, ". Book - The Status File The File of Undoability is called "sixdata1". The File of Status is called "sixdata2". [Filfre and Spatterlight write this file as 'sixdata1' into the same folder containing the Six gblorb file. Therefore they will overwrite/share the file with each other.] [Gargoyle, Zoom write the file as 'sixdata1.glkdata' to the top level of the user's home directory [IE for me, into 'Wade']] Table of Sesame numero 1 [DO CONFIG ON BOOT?] [0 = no, 1 = yes, the default: perform config then change this to 0 and SAVE FILE] 0 [WHAT'S THE HEROINE STATUS?] [0 = default (clear the screen, no demi option), 791 = demi unlocked (clear screen)] 5 [Default Music Volume] 5 [Default Sound Volume] 0 [Unlocked Sound Suite? 0 = no 439 = yes] Book - The Uberstart Rules The uberstart rules is a rulebook. when play begins: follow the uberstart rules. Section - The Config Tests To reeeally wait: say run paragraph on; [necessary to prevent linebumping in Gargoyle interpreter] wait 500 milliseconds before continuing, strictly. The first uberstart rule (this is the check config rule): if File of Undoability exists: read File of Undoability into Table of Fairy Bread; [obtain colour scheme from this file - ] if woe in row 2 of Table of Fairy Bread is less than 1 or woe in row 2 of Table of Fairy Bread is greater than 9, now woe in row 2 of Table of Fairy Bread is 1; [or if file has been hacked, reset scheme to 1] zap undoability; [rewrites file to disk, zapping row 1 to 0 while it's at it] unless File of Undoability exists: [we immediately check to see that the file is in place. If it's not, we'll shut down now...] say "UH OH... Six wasn't able to create (or write to) one of its datafiles, so it had to shut down.[paragraph break]This can happen if you're trying to run Six from a folder on your hard drive for which third party applications (like Interactive Fiction interpreters) don't have sufficient Write Access privileges.[paragraph break]The easiest way to solve this problem is to move the file Six.gblorb from wherever it is now to your computer's desktop, then start it up again. Please quit this interpreter program before you move the file."; stop game abruptly; if File of Status exists: read File of Status into Table of Sesame; [say "YEAH I READ THE FILE[line break]"; [debug - read file if it exists] ] [WaitForSpace;] [debug] if numero in row 1 of Table of Sesame is 0: now config_skip is 1. [make no decision.] [perform no config - proceed to next uberstart rule] [GUMBY - THIS LINE IRRELEVANT?] An uberstart rule (this is the INIT FOR EVERYONE rule): if glulx sound is supported: create the midground channel; [makes a call to something I wrote in MultipleSoundsForSix] create the horizon channel; [ditto] create the bird channel; [ditto] create the wind channel; [ditto] now right hand status line is "[score]/6 ~ [turn count]"; [Used to include [time of day] ] Turn signal is a text variable. Turn signal is "". An uberstart rule (this is the sound check rule): if config_skip is 1, make no decision; [if we're skipping config - skip ahead] clear the screen; [sound config starts here] say "Welcome to Six![paragraph break]This Interactive Fiction game uses music, sound effects, coloured text and title page graphics.[paragraph break]Before you start playing, we'll go through a one-time configuration process to check that your interpreter supports all of these features. You will be able to revisit the configuration screens again later if you need to.[paragraph break][italic type](Note - If you're using either Zoom or Spatterlight as your Interactive Fiction interpreter, please quit Six now and download Gargoyle from -– [roman type][paragraph break] http://code.google.com/p/garglk/downloads/list[paragraph break][italic type]-– because Zoom does not support the sound and music used in Six, and Spatterlight is out of date and may fail to save games correctly.)[roman type][line break]"; say pause_clear "[line break][bold type]<< Press SPACE to begin >>[roman type]"; say "[bold type]1. Sound Test[roman type]"; say paragraph break; if glulx sound is supported: now user_musicvol is 5; [set sound levels -] now user_fxvol is 5; [to max -] set the foreground volume to 5; play_mischief_music; say "[italic type]SUCCESS[roman type] - Sound is supported![paragraph break]You should be hearing an introductory tune playing. Press 'T' to hear it again. If you find you can't hear the tune, you may need to unmute or turn up your computer's (or speakers[']) sound volume.[paragraph break][line break][bold type]<< Press SPACE to continue to the next test when you're ready >>[roman type]"; reeeally wait; [prevent hitting space twice accidentally] while the infinite_loop is 1: let k be the chosen letter; if k is 32, make no decision; [proceed with checks if space pressed] if k is 84 or k is 116, play_mischief_music; say "[italic type]Failed[roman type] - Either the interpreter you're using doesn't support sound or the feature is switched off.[paragraph break]You can play without sound, but you'll be missing out on the complete game experience as intended by the author.[paragraph break][bold type]<< Press 'R' to read about sound support for interpreters and how you might be able to get sound, or press SPACE to continue to the next test >>[roman type]"; reeeally wait; [prevent hitting space twice accidentally] now key_buffer is 0; while the infinite_loop is 1: let k be the chosen letter; if k is 32, make no decision; [proceed with checks if space pressed] if key_buffer is 0: if k is 82 or k is 114: clear the screen; say "All the major interpreters for Windows operating systems support sound and should have it switched on by default. These include (but aren't limited to): Gargoyle, WinGit, Glulxe and Filfre.[paragraph break]Under Mac OS X, two interpreters support sound: Gargoyle and Spatterlight. Gargoyle is the interpreter endorsed by the author of Six for Mac users, as it is well maintained and fully featured. Spatterlight is out of date, and might crash or fail to restore saved games.[paragraph break]Zoom (for Mac and Unix) does not support sound and therefore cannot be recommended for playing Six.[paragraph break]* After changing any preferences or downloading a new interpreter, you should quit and restart Six to make sure any new features are enabled. If the configuration process doesn't occur automatically after your restart, you will be able to activate it from Six's main menu.[paragraph break][line break][bold type]<< Press SPACE to continue to the next test >>[roman type]"; now key_buffer is 1; reeeally wait. [prevent hitting space twice accidentally] An uberstart rule (this is the colour text check rule): if config_skip is 1, make no decision; [if we're skipping config - skip ahead] clear the screen; say "[bold type]2. Coloured Text Check[roman type][paragraph break][line break][first custom style]This line should appear in red.[paragraph break][second custom style]This line should appear in blue.[normal style][paragraph break]If the above lines appeared in red and blue, coloured text support is working, and you should now press [bold type]SPACE[normal style] to continue to the next test.[paragraph break]If the above lines did not appear in the correct colours, your interpreter might be overriding the game's colour suggestions. This could reduce the visibility of in-game alert messages. Press [bold type]'R'[normal style] to read about how you can change your interpreter's style preferences to fix this.[normal style]"; reeeally wait; [prevent hitting space twice accidentally] now key_buffer is 0; while the infinite_loop is 1: let k be the chosen letter; if k is 32, make no decision; [proceed with checks if space pressed] if key_buffer is 0: if k is 82 or k is 114: clear the screen; say "Most interpreters support text styles. Some of them also give the player the option to use his or her own special styles instead of those suggested by the game, or to simply deactivate styles altogether. To see if any options like these are active in your interpreter at the moment, you should check its preferences / options / settings menu. If they are active, they might be preventing this game from displaying red and blue text.[paragraph break]The exact names of these options and their whereabouts will vary across different interpreters, but not too greatly. For instance, in Glulxe and Wingit, there is an Options screen, and in its 'General' pane is an option called 'Style hints override user settings'. You should place a tick in the box beside this option to allow Six to use its own special styles.[paragraph break]Note that Quixe, the online interpreter, does not support text styles at all.[paragraph break][line break][bold type]<< Press SPACE to continue to the next test >>[roman type]"; now key_buffer is 1; reeeally wait. [prevent hitting space twice accidentally] An uberstart rule (this is the graphics check rule): if config_skip is 1, make no decision; [if we're skipping config - skip ahead] clear the screen; say "[bold type]3. Graphics Check[roman type][paragraph break]"; if glulx graphics is supported: say "[italic type]SUCCESS[roman type] - Graphics are supported![paragraph break]"; display_ruler; say "[line break]To make sure that the game's title pages will be displayed in full, please resize your game window now so that Harriet's ruler grows as big as it can grow, and so that you can see all of the ruler in your window.[paragraph break]"; say "[second custom style]<< Once you've resized your window, press SPACE to end the configuration process. >>[normal style]"; unless glulx graphics is supported, say "[italic type]Failed[roman type] - Either the interpreter you're using doesn't support graphics or the feature is switched off.[paragraph break]The game will run but you won't see any of the title page or other graphics.[paragraph break][second custom style]<< Press 'R' to read about graphics support for interpreters and how you might be able to get graphics, or press SPACE to end the configuration process >>[normal style]"; reeeally wait; [prevent hitting space twice accidentally] now key_buffer is 0; while the infinite_loop is 1: let k be the chosen letter; if k is 32, make no decision; [proceed with checks if space pressed] if key_buffer is 0: if k is 82 or k is 114: clear the screen; say "Support for graphics has become almost universal in Interactive Fiction interpreters (except the online / browser-based ones.)[paragraph break]If you really are using an interpreter incapable of displaying graphics, and you would like to see graphics, I, Wade Clarke, the author of this game, would encourage you to fly into the shining future with a smile on your face by downloading the Gargoyle interpreter which support both graphics and sound, before you begin to play Six, from the following webpage:[paragraph break]"; say "http://code.google.com/p/garglk/downloads/list[paragraph break][second custom style]<< When and if you're ready, press SPACE to finish the configuration process! >>[normal style]"; now key_buffer is 1; reeeally wait. [prevent hitting space twice accidentally] An uberstart rule (this is the turn config off rule): if config_skip is 1, make no decision; [if we're skipping config - skip ahead] now numero in row 1 of Table of Sesame is 0; [otherwise, clear the config flag and -] write File of Status from Table of Sesame. Section - The Title Screen Rule Table of Kidquotes kid quote "Harriet" "Fairies are so better than witches." "Demi" "Hermione is the smartest in Harry Potter and she's a witch." "Marion" "The enemy of pirates is ninjas. Arrr!" "Ayla" "Hee hee hee..." "Pia" "I like long jump. I want to be at the Olympics." "Sam" "I just wish playing tip wasn't so scary." "Vince" "I like sneaking around." "Jack" "I don't like playing with girls. They're too slow." To say quote_the_kid: say line break; say fixed letter spacing; choose a random row in the Table of Kidquotes; say "'[quote entry]' – [kid entry]"; say variable letter spacing; say line break. Table of Kickoff Contents numero 0 0 0 0 0 0 0 0 0 0 max_kickoff_options, other title page are number variables. [global] other title page is 1. [1 is Harriet's, 2 is Demi's] To generate the kickoff menu: let O be a number; let N be numero in row 2 of Table of Sesame; if N is not 791: now numero in row 1 of Table of Kickoff Contents is 6; [harriet only start] now O is 2; otherwise: now numero in row 1 of Table of Kickoff Contents is 1; [harriet choice] now numero in row 2 of Table of Kickoff Contents is 2; [demi choice] now O is 3; now numero in row O of Table of Kickoff Contents is 3; [ALL: restore game] increment O; if N is 791: if glulx sound is supported: now numero in row O of Table of Kickoff Contents is 4; [SOUND hear theme] increment O; if numero in row 5 of Table of Sesame is 439: now numero in row O of Table of Kickoff Contents is 10; [SOUND play Six Suite, if unlocked] increment O; if glulx graphics is supported: now numero in row O of Table of Kickoff Contents is 9; [GRAPHICS view other sister's title] increment O; if glulx sound is supported: now numero in row O of Table of Kickoff Contents is 7; [SOUND change volumes] increment O; now numero in row O of Table of Kickoff Contents is 5; [ALL read credits] increment O; now numero in row O of Table of Kickoff Contents is 8; [ALL do config] increment O; now numero in row O of Table of Kickoff Contents is 11; [ALL quit] now max_kickoff_options is O. To say the_start_menu: say "[line break][one of]What do you wanna do? [or]Now what do you wanna do? [stopping]Please choose one of the following options:[paragraph break][fixed letter spacing]"; repeat with O running from 1 to max_kickoff_options: let P be numero in row O of Table of Kickoff Contents; if O is 10, say "Q Quit[line break]"; otherwise say "[O] [choice in row P of Table of kickoff words][line break]"; say line break; say variable letter spacing. Table of kickoff words choice "Start a new game as Harriet (Fairy)" [1] "Start a new game as Demi (Witch)" [2] "Restore a saved game" [3] "Hear the theme music (0:10) [if user_musicvol is 0](OPTION DISABLED - You have turned the music off)[end if]" [4] "Read the credits" [5] "Start a new game" [6] "Change sound levels (Current settings - Music: [if user_musicvol is 0]OFF[otherwise][user_musicvol] / 5[end if] - Sound FX: [if user_fxvol is 0]OFF[otherwise][user_fxvol] / 5[end if] )" [7] "Run the configuration tests again" [8] "View Harriet's title page" [9] "Listen to the Chase Suite from Six (1:22) [if user_musicvol is 0](OPTION DISABLED - You have turned the music off)[end if]" [10] "Quit" [11] To say seeya_later: say "Okay. Bye bye! (You can quit your interpreter program now.)" To do the new game sting shiznit: play_chimey; if glulx sound is supported, fade out the foreground sound. An uberstart rule (this is the title screen rule): now yourid is "Harriet";[ Default character is always Harriet.] now otherid is "Demi"; now yourcostume is "fairy"; now othercostume is "witch"; safely retrieve the volume settings; [if numero in row 2 of the Table of Sesame is 2, do something else;] clear the screen; if numero in row 2 of Table of Sesame is 791: display_start_art2; otherwise: display_start_art; if glulx sound is supported and config_skip is 1, reeeally wait; [if we didn't do config and came straight to this title page, enforce 500ms pause - this is to make sure start of music is heard on windoze terps wingit and glulxe] play_start_music; do the startmusic timer; if glulx sound is supported and user_musicvol is 0, say "( You currently have the music turned off )[line break]"; if glulx graphics is supported, say pause_only "[bold type]<< Press SPACE to begin >>[roman type][run paragraph on]"; [the run para on is needed here to negate a gargoyle linebump in case the music timer finishes on this screen] say "[line break][banner text][line break]"; generate the kickoff menu; if numero in row 2 of Table of Sesame is 791, say quote_the_kid; [display quote if Demi's unlocked] while the infinite_loop is 1: say the_start_menu; let k be 0; while k is 0: if allow_fades is 1, say run paragraph on; [linebump fix for gargoyle if the music timer was put into action] let k be the chosen letter; now k is k minus 48; if max_kickoff_options is greater than 9: if k is 33 or k is 65, now k is max_kickoff_options; [if there were 10+ menu options and you pressed Q , your Q is converted into the last menu option number, which is always QUIT] if k is greater than 0 and k minus one is less than max_kickoff_options: let j be numero in row k of Table of Kickoff Contents; if j is 1: [1 = start as harriet when given a choice] if glulx sound is supported, say "HARRIET"; do the new game sting shiznit; clear the screen; make no decision; [proceed to gogirl rule] otherwise if j is 2: [2 = start as demi] if glulx sound is supported, say "DEMI"; now yourid is "Demi"; now otherid is "Harriet"; now yourcostume is "witch"; now othercostume is "fairy"; do the new game sting shiznit; clear the screen; make no decision; [proceed to gogirl rule] otherwise if j is 3: [3 = restore game] if glulx sound is supported: say "RESTORE A GAME[paragraph break]"; do the new game sting shiznit; if glulx timekeeping is supported: wait 400 milliseconds before continuing, strictly; [need this delay to let the chimes go long enough that they don't click when 'wanting to restore the game' stops all sounds] try wanting to restore the game; otherwise if j is 4: [4 = play music - option not pickable by those without sound] if user_musicvol is greater than 0: if allow_fades is 1 and startsong is 1, fade out the foreground sound faster; play_start_music; do the startmusic timer; otherwise if j is 5: [5 = read credits] say "[the_game_credits][pause_clear]"; otherwise if j is 6: [6 = start as harriet - no choice] do the new game sting shiznit; clear the screen; make no decision; [proceed to gogirl rule] otherwise if j is 7: [7 = change volume settings - option not pickable by those without sound] say "The volume levels you choose here will be used whenever you start a new game. Note that if you re-run the configuration tests, volumes will be reset to maximum.[paragraph break]"; poll the volume settings; otherwise if j is 8: [8 = redo config] let answer be yesno_answer_with_question "Do you really want to run the configuration tests again? [bold type] (Y/N)[roman type][line break][run paragraph on]"; if answer is "NO", say "Okay."; if answer is "YES": now numero in row 3 of Table of Sesame is 5; [set sound levels -] now numero in row 4 of Table of Sesame is 5; [to max -] now numero in row 1 of Table of Sesame is 1; [set config flag on] write File of Status from Table of Sesame; stop all the sounds; clear the screen; reboot the game; [reboot into config] otherwise if j is 9: [9 = view harriet art] if other title page is 1: display_start_art; now other title page is 2; now choice in row 9 of Table of kickoff words is "View Demi's title page"; otherwise if other title page is 2: display_start_art2; now other title page is 1; now choice in row 9 of Table of kickoff words is "View Harriet's title page"; otherwise if j is 10: [10 = play chase suite (only available when unlocked)] if user_musicvol is greater than 0: if allow_fades is 1 and startsong is 0, fade out the foreground sound faster; play_suite_music; do the suitemusic timer; otherwise if j is 11: [11 = quit] say "[seeya_later]"; stop all the sounds; stop game abruptly; if k is less than 1 or k is greater than max_kickoff_options: say "Oops. You need to press a number between 1 and "; if max_kickoff_options is less than 10: say "[max_kickoff_options]."; otherwise: say "9, or Q to Quit.".[and now we proceed to the gogirl rule] Section - The GoGirl Rule megatree is a list of text that varies. [global] querulous verbs is a list of text that varies. [global] Ayla comment storage is a list of numbers that varies. [global] Ayla endstage storage is a list of numbers that varies. [global] Ayla endstage storage is { 50, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }. [The 50 at pos 1 randomises the list first time it runs. To add new entries, just add them after the 4 here, and put their details in under the endstage comment action.] An uberstart rule (this is the gogirl rule): give Marion pose 1; now megatree is { "tall", "short", "smooth", "rough", "pointy", "curly", "pretty", "ugly", "black", "brown", "gray", "grey", "green", "big", "neat", "perfect", "line", "garden", "lines", "branched", "looking" }; now querulous verbs is { "brush", "carry", "chase", "describe", "drag", "drop", "examine", "give", "grab", "hit", "hold", "inspect", "look", "move", "observe", "offer", "pat", "pick", "pull", "push", "put", "rotate", "search", "shift", "show", "snatch", "spin", "sweep", "take", "throw", "turn", "twist", "view", "watch", "x" }; now blowfly is off-stage; now ladybug is off-stage; now ladybugs is off-stage; now banner_on is "no"; refresh the maze rooms; randomise Ayla's comments; set the background of the status window to colored; follow the revamp the window rule; if yourid is "Demi": now player is Demi; now Harriet is in Picnic; now picnicgirls is in Picnic; now Stevie is not undescribed; now wordage in row 1 of the Table of treeattract is "interesting"; now wordage in row 2 of the Table of treeattract is "boring"; remove "pretty" from megatree; remove "ugly" from megatree; add "interesting" to megatree; add "boring" to megatree; now introduction of Ayla is "You've found Ayla! She's here in her princess costume. She must have been running away from you while you were following her around the maze, but it looks like she's not going to run away now.[paragraph break]Ayla smiles and says, 'Here I am.'"; now introduction of Marion is "[Demi's version of Marion's intro]"; let R be {1, 2, 3, 4}; [THESE ARE THE SUBTRICKS - ADD NEW SUBTRICKS HERE!.. AND ADD A ROW TO TABLE OF SUBTRICKS FOR EACH ADDITION!] lock the dice; sort R in random order; repeat with N running from 1 to number of entries in R: [subtricks setup] now trix in row N of Table of Subtricks is entry N from R; let S be { ByKoala, GiantGarden, BelowWall }; [this block puts Vince in one of 3 hiding places at random, then removes ByKoala from what's left (if Vince isn't hiding there) and puts Pia in one of the remaining 1 or 2 hiding places] lock the dice; sort S in random order; now hideyhole of Vince is entry 1 of S; if hideyhole of Vince is ByKoala, now initial appearance of Vince is "Vince is hiding here behind the koala statue."; if hideyhole of Vince is BelowWall, now initial appearance of Vince is "Vince is hiding here behind the rock."; remove entry 1 from S; if ByKoala is listed in S, remove ByKoala from S; now hideyhole of Pia is entry 1 of S; [now hideyhole of Pia is ByKoala; [cheat] ] wind strikes in 7 minutes from now; [wind strikes at 12:07 PM;] say "Your name is [yourid] Leitner, it's the January summer school holidays and today has been a great day.[paragraph break]You turned six this morning! And so did your twin sister, Harriet. As soon as you woke up, you ran to get mum and asked her to measure your height on the wall. You were very excited to find that you were taller again. When your friends started arriving for the birthday party, you put your witch's hat on to make yourself taller than all of them, even Pia.[paragraph break]One of the games you played at home this morning was pass the parcel, and you had a bit of an argument with Harriet over who was holding the parcel when the music stopped for the last time. You're certain it was you, then dad said you two could share it, but then you gave the parcel to Harriet anyway because you like to see her happy. You're better at most games than her, so sometimes you let her win.[paragraph break]You ate so many lollies this morning, you were starting to feel funny, but by the time everyone got to the park for lunch, you felt good again. And now it's time to play hide and seek tip. It's going to be great![paragraph break]"; otherwise if yourid is "Harriet": now Demi is in Picnic; now the dark bird is in Tree Garden; now the lady is in Tri Path; now Stevie is introduced; now theight of Ayla is a random number between 1 and 2; now tsmoothness of Ayla is a random number between 1 and 2; now tstyle of Ayla is a random number between 1 and 2; now tattract of Ayla is a random number between 1 and 2; now tcolour of Ayla is a random number between 1 and 4; wind strikes in 1 minute from now; [wind strikes at 12:01 PM;] say "Your name is [yourid] Leitner, it's the January summer school holidays and today has been a great day.[paragraph break]You turned six this morning! And so did your twin sister, Demi. While Demi is your twin, she is not one of those twins who looks the same as you. Mum has explained that that's because you and your sister are something called fraternal twins. You have decided that you like looking just like yourself, and Demi likes it that way, too.[paragraph break]Today, mum and dad are hosting a fancy dress birthday party for the pair of you and six of your friends: Marion, Ayla, Pia, Sam, Vince and Jack. You're dressed as a [yourcostume] and your sister is dressed as a [othercostume], which is what each of you wanted.[paragraph break]You all ate heaps of lollies and played games in the morning, and now your parents have taken you to the park for lunch.[paragraph break]While mum and dad are setting up the picnic, you and your friends are getting ready to play a game of hide and seek tip. Your sister is sitting this game out to drink some lemonade and cool down.[paragraph break]"; say "You agree to be in, and count with your eyes shut against a tree while your friends run off and hide in the park.[paragraph break]'... Forty-eight...' you shout at the top of your lungs. [if player is Harriet]You think carefully about the next number. It's not easy counting this high, but Demi is good at it and she often helps you practise.[otherwise][line break][end if][line break]'... Forty-nine...' you shout at the top of your lungs.[paragraph break]'... Fifty! Ready or not, [if player is Harriet]here I come!'[otherwise]the witch is coming for you!'[end if][line break]You really want to win this game. It's time to catch your friends.[paragraph break]"; say pause_only "[second custom style]<< Press SPACE to begin >>[normal style]"; now game_started is 1. Book - Initialisation Common to Both Sisters A person can be original, flight1, flight2, stunned, returning or home. A person is usually original. A person can be viewed from treehouse or not viewed from treehouse. A person is usually not viewed from treehouse. A person has numbers called demiyells, treehouse_precedent. A person can be demiyelling or notdemiyelling. A person is usually not demiyelling. Harriet, Ayla, Marion, Pia, Jack, Sam, Vince, Stevie, Rose are demiyelling. The last_person_sought is a person variable. [global] A kid is a kind of person. A parent is a kind of person. parents_topic_dog is a number variable. [global] A heroine is a kind of kid. A heroine has numbers called ever_rounded_fig, topic_dog. ever_searched_treegarden is a number variable. [global] A chasee is a kind of kid. A chasee can be tagged or untagged. A chasee is usually untagged. A chasee has number called justchased. The current_actor is a person variable. [global - this is a temp variable. Any routine can temporarily use it.] A coolbird is a kind of animal. A coolbird has number called ever_met. To say no birds allowed: say "[no-time]You can't get a bird!" Instead of taking a coolbird: say no birds allowed. A person has a number called basicindex. The basicindex of Harriet is 1. The basicindex of Demi is 2. The basicindex of Marion is 3. The basicindex of Ayla is 4. The basicindex of Pia is 5. The basicindex of Sam is 6. The basicindex of Vince is 7. The basicindex of Jack is 8. Harriet is a female heroine. "Harriet is sitting at the table with a glass of lemonade." Demi is a female heroine. "Demi is sitting at the table with her glass of lemonade." Harriet and Demi are in Edge Park. The player is Harriet. A missile is a kind of thing. A person can be nada or hero. A person is usually nada. Harriet, Demi, mum, dad are hero. Part - The boy, girl, sister and Leitner relative rules Understand "boy/friend" as Jack. Understand "boy/friend" as Sam. Understand "boy/friend" as Vince. Understand "girl/friend" as Ayla. Understand "girl/friend" as Pia. Understand "girl/friend" as Marion. Understand "sister/twin", "twin sister" as Harriet when player is Demi. Understand "sister/twin", "twin sister" as Demi when player is Harriet. Understand "girl" as Harriet when player is Demi and Harriet is in location. Understand "girl" as Demi when player is Harriet and Demi is in location. Understand "fairy" as Harriet when the player is Demi. [Stops 'yourself' being added to disambig. options when player is Harriet and types '(something) fairy'.] Understand "witch" as Demi when the player is Harriet. Understand "Harriet Leitner", "miss Leitner", "Leitner" as Harriet. Understand "Demi Leitner", "miss Leitner", "Leitner" as Demi. Understand "man", "mr/mister Leitner", "Leitner" as dad. Understand "woman", "mrs/misses/ms Leitner", "Leitner" as mum. Part - Harriet To say Harriet's: say "[if player is Harriet]your[otherwise]Harriet's". Harriet has numbers called just_jumped, ever_jumped, treegarden_checks, tried_leaves_on_raven, sung_for_Ayla, tried_leaves_on_Sam, spyness, tree_persistence, forsooth, leafiness, ever_flew. Harriet has numbers called ladybugquip, rosequip, teamquip, mudquip, peoplequip. Harriet wears a privately-named, improper-named thing called fairy costume. The printed name of fairy costume is "fairy costume". The indefinite article is "[Harriet's]". Understand "costume", "fairy/Harriets/Harriet's costume", "Harriets/Harriet's fairy costume" as fairy costume. [The private naming allows 'costume' to refer to the fairy costume, but 'fairy' alone will not work, preventing 'get fairy' and like from adding the costume to the list of disambiguation options.] Description of fairy costume is "[if player is Harriet]You've got your special pink dress, the fairy wings on your back, red and white sneakers and your fairy wand.[otherwise]Harriet's costume is a pink dress with fairy wings on the back. She also has a fairy wand and red sneakers." Does the player mean doing anything to fairy costume when player is Harriet: it is unlikely. [causes other characters' costumes to be rated above yours - so if you're not alone, you will by default refer to the costumes of others] Before taking inventory when the player is Harriet: [this pair of rules stops the costume appearing in Harriet's inventory.] now fairy costume is off-stage. After taking inventory when the player is Harriet: now Harriet wears fairy costume. The description of Harriet is "[if player is Harriet]You know that in your winged fairy costume you're looking super fairy-ish and pretty – at least you were when you saw yourself in the mirror at home this morning.[paragraph break]You give yourself a quick check over now, and... yes, you still look great![otherwise]Your sister is looking really pretty in her pink fairy costume. She's got wings and a fairy wand and red sneakers. But obviously, she's no witch." Harriet wears a pink dress. The description of pink dress is "[if player is Harriet]The dress is shiny pink and becomes a full loose skirt around your knees, which is really cool because it's easy to run around in.[otherwise]Harriet's dress is way shiny, and couldn't be more pink." Understand "skirt", "pink skirt" as pink dress. Does the player mean doing anything to pink dress when player is Harriet: it is unlikely. [a series of rulings to rate all others clothing above yours - except for your wand] fairy wings is a plural-named, improper-named thing worn by Harriet. The description of fairy wings is "[if player is Harriet]Your wings are clipped onto the back of your dress. They're soft and white, but also stiff, and you can kind of see through them.[otherwise]Cool wings! But you prefer a broomstick, yourself." The printed name is "pair of fairy wings". The indefinite article is "a". Understand "pair/wing", "Harriets/Harriet's wings", "Harriets/Harriet's fairy wings", "pair of wings", "pair of fairy wings" as fairy wings. Does the player mean doing anything to fairy wings when player is Harriet: it is unlikely. sneakers is a plural-named, improper-named thing worn by Harriet. The description of sneakers is "[if player is Harriet]The sneakers are bright red with white stripes like lightning bolts. They make you feel zoomy.[otherwise]You wouldn't tell her, but you're a bit jealous of Harriet's sneakers. It'd be cool if you could have had black sneakers instead of slippers." The printed name is "pair of red and white sneakers". The indefinite article is "a". Understand "sneaker/pair/red/white/lightning/shoe/shoes/bolt/bolts", "Harriets/Harriet's shoe/shoes/sneaker/sneakers", "Harriets/Harriet's red shoe/shoes/sneaker/sneakers", "Harriets/Harriet's red and white shoe/shoes/sneaker/sneakers", "pair of shoes/sneakers", "red and white shoe/shoes/sneaker/sneakers", "pair of red and white shoe/shoes/sneaker/sneakers", "lightning bolt/bolts" as sneakers. Does the player mean doing anything to sneakers when player is Harriet: it is unlikely. shoelaces is a plural-named, improper-named part of sneakers. The indefinite article of shoelaces is "[Harriet's]". The description of shoelaces is "You're pretty good at tying your laces." Understand "shoelace/lace/laces", "shoe lace/laces", "harriets/harriet's shoelace/lace/laces", "harriets/harriet's shoe lace/laces" as shoelaces. Does the player mean doing anything to shoelaces when player is Harriet: it is unlikely. Instead of examining shoelaces when player is Demi: try silently examining sneakers. Instead of doing anything other than examining to shoelaces: say "[no-time][if player is Harriet]You should leave your laces alone. You did them up really well today.[otherwise]You don't need to fiddle with Harriet's sneakers." A wand is a kind of thing. fairy wand is an improper-named wand held by Harriet. The description of fairy wand is "[if player is Harriet]Your wand feels curly in your hand. The handle is black and there's a little yellow star on the end.[otherwise]Harriet's wand has a yellow star on its tip. That would look pretty dumb on your wand." The indefinite article is "[Harriet's]". Understand "Harriets/Harriet's wand", "Harriets/Harriet's fairy wand" as fairy wand. the sparkly yellow star is part of fairy wand. The description of sparkly yellow star is "It's sparkly, and fixed tight to the fairy wand." the handle is part of fairy wand. The description of handle is "[if player is Harriet]It feels nice.[otherwise]You're not interested in the handle of Harriet's wand." Understand "wand handle", "fairy wand handle", "fairy handle" as handle. To say cool_wings: say "[no-time]No way! They're [one of]way cool[or]wicked cool[or]awesome[or]super cool[or]sooo pretty[purely at random] and you wouldn't be a fairy without them." Check taking off: if noun is fairy wings, instead say "[cool_wings]". Check dropping: if noun is fairy wings, instead say "[cool_wings]". To say cool_sneakers: say "[RandomLock][no-time]No, the sneakers protect your feet and help you go faster [one of]around[or]through[or]in[purely at random] the park." Check taking off: if noun is sneakers, instead say "[cool_sneakers]". Check dropping: if noun is sneakers, instead say "[cool_sneakers]". Check dropping: if noun is fairy wand, instead say "[no-time]Like you're really gonna drop your fairy wand, the source of your fairy powers... nope." Part - Demi To say Demi's: say "[if player is Demi]your[otherwise]Demi's". Demi has numbers called tried_mass_grab, ever_been_in_maze, discouragement, gigcount, ever_digged_the_quietness, right_now_listens, ever_tried_prolonged_maze_listening, maze_listening_requirement, tried_entering_treehouse, talked_to, stared_at_Rose, gazebotips, stereo_cue, flight_pain. Demi has numbers called heatquip, vincequip, girlquip, spideryquip. Demi wears a privately-named, proper-named thing called witch costume. The printed name of witch costume is "[Demi's] witch costume". Understand "costume", "witch/witch's/Demis/Demi's costume", "Demis/Demi's witch/witch's costume", "witch Demis/Demi's costume" as witch costume. [The private naming allows 'costume' to refer to the witch costume, but 'witch' alone will not work, preventing 'get witch' and like from adding the costume to the list of disambiguation options.] Description of witch costume is "[if player is Harriet]Demi has black everything - a black witch's hat, black robes, black slippers and a black wand.[otherwise]You've got your black witch's hat, black robes, black slippers and a black wand." Does the player mean doing anything to witch costume when player is Demi: it is unlikely. [causes other characters' costumes to be rated above yours - so if you're not alone, you will by default refer to the costumes of others] Before taking inventory when the player is Demi: [this pair of rules stops the costume appearing in Demi's inventory.] now witch costume is off-stage. After taking inventory when the player is Demi: now Demi wears witch costume. The description of Demi is "[if player is Demi]You are the best-looking witch you've seen. You've got black everything: a black witch's hat, long black robes, black slippers and a black wand for zapping people. You feel wise and powerful, though the robes are tricky to manage.[otherwise]Demi is dressed from head to toe in black.[first time] She looks scary, even while drinking lemonade![only] On top of her head is a pointed witch's hat. Beneath that, her straight black hair falls down the back of her robes to her waist. She has black slippers and a black wand as well. Her face is quite like yours, except her eyes are brown and yours are blue." demifringe is a privately-named, proper-named part of Demi. Printed name of demifringe is "[Demi's] fringe". Description of demifringe is "[if player is Harriet]You've never had a fringe, but Demi has one all the time. You wonder what it feels like.[otherwise]You like your fringe. It feels nice." Understand "fringe", "demis/demi's fringe" as demifringe. Does the player mean doing anything to demifringe when player is Demi: it is unlikely. A headgear is a kind of thing. black witch's hat is an improper-named headgear worn by Demi. The description of black witch's hat is "[if player is Demi]It's tall, pointy and black.[otherwise]How do witches get anything done? If you had a hat as tall as that you'd be bumping into stuff all the time." The indefinite article is "a". The printed name is "witch's hat". Understand "witch/demis/demi's hat", " demi/demi's black witch/witch's hat" as witch's hat. Does the player mean doing anything to black witch's hat when player is Demi: if black witch's hat is in ByRoundabout, it is possible; otherwise it is unlikely. [a series of rulings to rate all others clothing above yours - except for your wand] black robes is a plural-named, improper-named thing worn by Demi. The description of black robes is "[if player is Demi]Your robes wrap you in black from neck to toe, but – ugh, it's tricky to move around in them. You have to keep raising the hem with your left hand to avoid tripping over.[first time][paragraph break]Oh well, a witch has to do what a witch has to do.[only][otherwise]It's no wonder Demi is feeling so hot. Those robes of hers are not summer clothing!" The indefinite article is "some". Understand "robe", "black/demis/demi's robe/robes", "demis/demi's black robe/robes" as black robes. Does the player mean doing anything to black robes when player is Demi: it is unlikely. black slippers is a plural-named, improper-named thing worn by Demi. The description of black slippers is "[if player is Demi]The slippers fit you well and are comfy.[otherwise]The slippers are black and beautiful. Still, today you're glad to be wearing your sneakers." The indefinite article of black slippers is "a". The printed name is "pair of black slippers". Understand "pair/slipper/shoe/shoes", "demis/demi's slipper/slippers/shoe/shoes", "demis/demi's black slipper/slippers/shoe/shoes", "pair of slippers/shoes", "demis/demi's pair of slippers/shoes", "demis/demi's pair of black slippers/shoes" as black slippers. Does the player mean doing anything to black slippers when player is Demi: it is unlikely. black witch's wand is an improper-named wand held by Demi. The description of witch's wand is "[if player is Demi]The wand looks like black wood (but is plastic, really) and the tip is a little more pointy than the handle.[otherwise]It's scary and black, but you know that Demi likes spooky stuff. Harry Potter movies are too scary for you." The printed name is "witch's wand". The indefinite article is "[Demi's]". Understand "witch", "witch/demis/demi's wand", "black witch wand", "demis/demi's black/witch/witch's wand", "demis/demi's black witch/witch's wand" as black witch's wand. Understand "tip/handle", "wand tip/handle", "wand's tip/handle", "black wand tip/handle", "black wand's tip/handle" as black witch's wand when player is Demi. To say hermione_hat: say "[no-time]You know that Hermione doesn't wear her witch's hat all the time in Harry Potter, but still, you feel it's important to keep it on today." Check taking off: if noun is black witch's hat, instead say "[hermione_hat]". Check dropping: if noun is black witch's hat, instead say "[hermione_hat]". To say tempting_slippers: say "[no-time]There are twigs and sharp things on the ground around the park. You decide to keep your slippers on." Check taking off: if noun is black slippers, instead say "[tempting_slippers]". Check dropping: if noun is black slippers, instead say "[tempting_slippers]". Check dropping: if noun is black witch's wand, instead follow the yelly wand rule. A person has a number called demiyellsindex. [Even people who are not officially flagged as demiyelling [EG Rose!] have this number!] The demiyellsindex of Harriet is 1. [done] The demiyellsindex of Marion is 20. [done] The demiyellsindex of Ayla is 22. [done] The demiyellsindex of Pia is 18. [done] The demiyellsindex of Sam is 24. [done] The demiyellsindex of Vince is 8. [done] The demiyellsindex of Jack is 15. [done] The demiyellsindex of Rose is 11. [done] The demiyellsindex of Stevie is 26. [done] [Harriet, Ayla, Marion, Pia, Jack, Sam, Vince, Stevie, Rose are demiyelling.] Table of Demiyelling [if last entry is --, previous phrase is last spoken. If last entry is 'repeat', previous phrase repeats to infinity.] quote "gives you a puzzled look. 'What're you yelling for?' she asks.[paragraph break]'Just because I would never give up my wand,' you say." [Harriet] [1] "makes a scrunchy face at you." "says, 'Quiet, Demi!'" "giggles." "rolls her eyes." "tries to ignore you." -- "jumps in fright."[Vince] [8] "frowns." -- [10] "says, 'What are you shouting at? You're crazy!'"[Rose] [11] "says, 'Argh! Be quiet!" "[RandomLock][one of]puts[or]jams[or]sticks[purely at random] her fingers in her ears." "repeat" [Rose repeats fingers in ears] "raises his eyebrows. 'Whatever you say, witchetty-poo,' he says." [15] [Jack] "says, 'CRA-ZEEEE!' and wiggles his fingers beside his head." -- "gives you a curious look." [18] [Pia] -- "says, 'Arrrrr!' in a pirate voice. 'Yer giving me a headache!'" [Marion] [20] -- "giggles." [Ayla] [22] -- "frowns. 'I don't like how witches act,' he says." [Sam] [24] -- "barks[happydog sound] at you." [Stevie] [26] -- This is the yelly wand rule: if dad is in the location of the player and demiyells of dad is 6: say "You better not yell about your wand here anymore. Dad might get madder."; stop the action; say "[RandomLock]Drop the source of your witch powers?.. '[one of]NEVER[or]NOOOO[or]NO[or]NO WAY[or]NO CHANCE[purely at random]!' you cry, shaking your wand at the sky."; if dad is in the location of the player: increment the demiyells of dad; if the demiyells of dad is 1, say "[line break]Dad glances up at you.[line break]"; if the demiyells of dad is 2, say "[line break]Dad says, 'Demi, please, you don't need to do that.'[line break]"; if the demiyells of dad is 6, say "[line break]Dad looks up angrily. 'Demi,' he snaps, 'stop that at once! Go back to your game, but stop making all that noise here.'[line break]"; if a demiyelling person is in the location of the player: lock the dice; let watcher be a random demiyelling person in the location of the player; if watcher is Rose and sentinel of Rose is greater than 0, stop the action; [if we chose Rose to yell but she's facing the tree, abort] let index be the demiyellsindex of watcher plus the demiyells of watcher; if there is no quote in row index of the Table of Demiyelling, stop the action; say line break; if quote in row index of the Table of Demiyelling is "repeat": decrement index; say "[watcher] [quote in row index of Table of Demiyelling][line break]"; stop the action; otherwise: if watcher is Stevie: say "[The Stevie] "; otherwise: say "[watcher] "; say "[quote in row index of Table of Demiyelling][line break]"; increment the demiyells of watcher. Part - General Rules Check an actor going (this is the NEW determine map connection rule): let the target be nothing; if the noun is a direction: let direction D be the noun; let the target be the room-or-door direction D from the room gone from; otherwise: if the noun is a door, let the target be the noun; if the target is a door: now the target is the other side of the target from the room gone from; now the room gone to is the target. The NEW determine map connection rule is listed instead of the determine map connection rule in the check going rules. Instead of going nowhere when exit listing is enabled: say "[no-time]You can't go that way. "; list the exits. Instead of asking anyone to try doing anything: say the bossy boots fob. To say the bossy boots fob: say "[no-time]You're no bossy boots![paragraph break][second custom style]<< Ordering people around like that doesn't work in this game. >>[normal style][line break]" [EG prevents 'mum, get cicada'] Instead of answering: try being a blabbermouth. [prevents nonsensical conversation - EG 'mum, fjfjf'] To say concentrate_man: say "[RandomLock][no-time]You [one of]need to[or]should[purely at random] concentrate on playing tip now." Book - Characters Part - Mum and Dad Chapter - Mum mum is a female parent. "[mum_init_ap]". mum is in Picnic. The description of mum is "[if player is Harriet]Mum is wearing blue jeans and a brown T-shirt. She has dark brown hair which goes down past her shoulders, and today it is tied up in a ponytail. Her ponytail bounces around as she talks. She is very pretty, you think.[otherwise]Your family are always telling you how much you look like your mum. She has long brown hair, not black hair like you, though her hair is still dark. But you both have freckles and you both have brown eyes. Today mum is wearing her brown shirt and old blue jeans, and her hair is tied in a ponytail." Understand "mom/mother/mummy" as mum. There is a plural-named, improper-named thing called mum's blue jeans. mum wears mum's blue jeans. Printed name of mum's blue jeans is "blue jeans". The indefinite article is "mum's". The description of mum's blue jeans is "[if player is Harriet]Mum wears these jeans all the time, and they look like they have been worn a lot, too.[otherwise]You and Harriet are always spilling stuff on Mum's jeans. That's probably why they don't look so great!" Understand "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's jeans", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's blue jeans" as mum's blue jeans. ponytail is an improper-named part of mum. The printed name of ponytail is "ponytail". The indefinite article is "mum's". The description of ponytail is "[if player is Harriet]Mum's ponytail looks good, but you prefer to have your hair free.[otherwise]You like to wear a ponytail yourself sometimes. It also makes you look taller than Harriet when you do, though really you are both the same height. It's a good trick to play on your sister." Understand "pony tail", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's ponytail", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's pony tail" as ponytail. Understand "hair", "brown/mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's hair", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's brown hair" as ponytail. mum wears brown t-shirt. brown t-shirt is improper-named. The indefinite article of brown t-shirt is "mum's". The description of brown t-shirt is "[if player is Harriet]Mum always seems to be wearing that shirt when she plays with you and your sister.[otherwise]Mums brown t-shirt is as worn out as her jeans." Understand "t/shirt/tshirt", "brown t/shirt/tshirt", "t shirt", "brown t shirt", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's t/shirt/tshirt", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's brown t/shirt/tshirt", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's t shirt", "mummys/mummy's/mothers/mother's/mums/mum's/moms/mom's brown t shirt" as brown t-shirt. To say mum_init_ap: say "Mum is standing here talking to dad. "; lock the dice; if a random chance of 1 in 6 succeeds: choose a random row in Table of parent japes; say quote entry. Table of parent japes quote "She laughs at something he said." "He laughs at something she just said." "Mum shrugs at dad." "Dad shrugs at mum." "Dad is waving his arms around as he talks." "Mum fiddles with her ponytail as she talks." Chapter - Dad dad is an undescribed male parent with description "[if player is Harriet]Dad has light brown hair like you, but there's a little place on his head where there is less hair. He is wearing blue shorts and a white shirt today. He is so strong he can pick up both you and your sister at the same time when he wants to, and it's always funny when he does.[otherwise]Dad is wearing blue shorts and a white shirt. His friendly face is a bit red from the sun. He always waves his hands around when he's talking to mum, and he's doing it now. It's funny." Understand "daddy/father" as dad. There is a plural-named, improper-named thing called blue shorts. dad wears blue shorts. The indefinite article of blue shorts is "dad's". Description of blue shorts is "[if player is Harriet]They're blue summer shorts.[otherwise]They are in better shape than Mum's jeans." Understand "summer", "summer shorts", "blue summer shorts", "daddys/daddy's/fathers/father's/dad's/dads shorts", "daddys/daddy's/fathers/father's/dad's/dads summer shorts", "daddys/daddy's/fathers/father's/dad's/dads blue summer shorts" as blue shorts. dad wears white shirt. white shirt is improper-named. Printed name of white shirt is "white shirt". The indefinite article is "dad's". Description of white shirt is "[if player is Harriet]When dad moves around in the sun, his shirt glows.[otherwise]Dad's shirt is very neat." Understand "daddys/daddy's/fathers/father's/dad's/dads shirt", "daddys/daddy's/fathers/father's/dad's/dads white shirt" as white shirt. dad's hair is a proper-named part of dad. Description of dad's hair is "[if player is Harriet]His hair isn't as nice as yours, but of course he's a boy.[otherwise]Dad's hair is the same colour as Harriet's, light brown." Understand "daddys/daddy's/fathers/father's/dad's/dads hair" as dad's hair. dad is in Picnic. dad has number called forsooth. Part - Lady and Stevie Chapter - Lady there is an improper-named woman called the lady. "The lady is here with [lower_name of Stevie]." Printed name of the lady is "lady". The indefinite article is "the". Introduction of lady is "Coming along the path towards you is a tall, pretty lady walking a little dog on a leash. You like dogs, though your family doesn't have any." Understand "woman", "tall/pretty lady/woman", "tall pretty lady/woman", "pretty tall lady/woman" as lady. The description of the lady is "[if player is Harriet]The lady is tall and slim with red hair and very white skin. You wonder what it would be like to have red hair.[otherwise]The lady is very tall. She has pale red hair, glowing white skin and a friendly smile." the lady's pale red hair is part of the lady. The description of lady's pale red hair is "[if player is Harriet]The colour of the lady's hair is kind of orange and red at the same time.[otherwise]Looking at the lady's hair and thinking about it a little more, you decide it is the colour of a carrot." Understand "orange/carrot", "orange/carrot/lady/ladys hair", "lady/ladys/lady's orange/carrot hair" as lady's pale red hair. The lady's glowing white skin is part of the lady. The description of lady's glowing white skin is "[if player is Harriet]The lady's skin is beautiful.[otherwise]It seems to glow!" Understand "lady/ladys skin", "lady/ladys white skin", "lady/ladys glowing skin", "lady/ladys glowing white skin" as lady's glowing white skin. lady has numbers called waittimer, delay, they. ladytarget is a room that varies. [global] [will use this for Stevie too in Demi game] ladytarget rejuvenator is a number variable. [global] To say happydog sound: play_happydog. To play_happydog: lock the dice; let N be a random number between 1 and 3; if N is: -- 1 : play_dog1; -- 2 : play_dog2; -- 3 : play_dog4. Section - leash there is an improper-named thing called the leash. The indefinite article of leash is "the". lady carries leash. Description of leash is "The lady holds one end of the leash and the other end is attached to [if name_is_known of Stevie is 1]Stevie's[otherwise]the little dog's[end if] collar." Understand "dog/dogs/dog's/pup/pups/pup's/puppy/puppys/puppy's/doggy/doggys/doggy's/doggie/doggies/doggie's leash" as leash. Understand "stevie/stevies/stevie's leash", "stevie/stevies/stevie's dog/doggy/doggie leash" as leash when name_is_known of Stevie is 1. Chapter - Lady actions and Lady and Stevie movement To set the lady in motion: now lady is flight1. This is the not reporting for this turn rule: if dont_report_this_turn of current_actor is 1: now dont_report_this_turn of current_actor is 0; stop the action. Report lady going a direction (called way): if last location of lady is location: if they of lady is 1: say "then the two of them walk away to the [way]."; now they of lady is 0; otherwise: say "[RandomLock]The lady and Stevie [one of]go[or]head[or]walk away to the[purely at random] [way]."; [if lady is moving, that could only happen if you talked to her somehow and know the dog's name already] rule succeeds; otherwise: let vector be the best route from location of the lady to last location of the lady; say "The lady and Stevie arrive from the [vector]."; rule succeeds. Report Stevie going when lady is flight1: [hide Stevie movement reports when she's with lady. Lady's report will cover them both.] stop the action. [see end of 'Book - Every turn rules that need to be listed after all others ' for lady every turn stuff - had to put it there so her movements would be listed last in a turn.] Report Stevie going a direction (called way) when player is Demi: now current_actor is Stevie; abide by the not reporting for this turn rule; if last location of Stevie is location: if extra_status of Stevie is 5: say "[The Stevie] walks away to the [way]."; otherwise: say "[RandomLock][The Stevie] [one of]runs[or]scampers[or]trots[or]races[purely at random] away to the [way]."; rule succeeds; otherwise: let vector be the best route from location of Stevie to last location of Stevie; say "[The Stevie] arrives from the [vector]."; if ayla_mode is 1 and Stevie is in location, follow the complex dog interaction rule; rule succeeds. This is the complex dog interaction rule: if extra_status of Stevie is 0: now extra_status of Stevie is 1; say "Ayla gasps and says, 'Oh, look at this cute doggy.' She kneels down and rubs the dog's head and chin while the dog jumps around her. 'You're the cutest, aren't you?' she says to the dog. 'Yes, yes, yes!'[paragraph break]"; play_happydog; now Stevie is flight2; lock the dice; now ladytarget is a random oklady room adjacent to location; let way be best route from location to ladytarget; now dont_report_this_turn of Stevie is 1; say "[The Stevie] runs around her in a circle, then shoots off to the [way].[paragraph break]"; try Stevie going way; follow the smartquip prep rule; say "'Demi, let's follow the doggy,' says Ayla, tugging at your sleeve. 'Come on.'"; now dog_interact of Ayla is 0; now initial appearance of Stevie is "[if justchased of Stevie is 1][The Stevie] comes to a halt.[otherwise][The Stevie] is here, wagging [dog her its] tail. It looks like [dog she it]'s been waiting for you."; rule succeeds; if extra_status of Stevie is 1: now extra_status of Stevie is 2; say "'Doggy wants to play,' says Ayla. 'See?' She points at [the Stevie], who is looking back at the pair of you and dancing up and down. "; if name_is_known of Stevie is 1, say "[paragraph break]'Her name is Stevie,' you say. 'I read her tag.'[paragraph break]'Stevie, eh?' says Ayla. "; say "'My mum says if you don't walk dogs and play with them, they go crazy. This doggy wants to play, so we have to play.'[paragraph break]'But I want to look for people now!' you say.[paragraph break]'We have to play with the dog,' Ayla says firmly.[paragraph break]"; now hideyhole of Vince is antilady; [in this move, dog will go anywhere that's oklady except the hideyhole] lock the dice; now ladytarget is a random oklady room adjacent to location; let way be best route from location to ladytarget; now dont_report_this_turn of Stevie is 1; now hideyhole of Vince is oklady; say "[The Stevie] runs back and forth a couple of times, then scoots away to the [way]."; try Stevie going way; follow the smartquip prep rule; now initial appearance of Stevie is "[if justchased of Stevie is 1][The Stevie] comes to a halt.[otherwise][The Stevie] is here, crouching down in the grass and watching you. The dog's tail is spinning like the top of a helicopter."; rule succeeds; if extra_status of Stevie is 2: say "[one of]Ayla says, 'It's time to play with the doggy.'[or]Ayla smiles at [the Stevie].[or][Ayla's dog comment][run paragraph on][stopping]"; rule succeeds; if extra_status of Stevie is 3: now ladytarget is hideyhole of Vince; let way be best route from location to ladytarget through oklady rooms; now dont_report_this_turn of Stevie is 1; say "[RandomLock][one of][The Stevie] jumps up and [dogverb] away to the [way].[or][The Stevie] barks at [happydog sound]you, wags [dog her its] tail, then [dogverb] [way].[or][The Stevie] wags [dog her its] tail at you (it reminds you of a flag) then [dogverb] to the [way].[at random]"; try Stevie going way; if Stevie is in hideyhole of Vince: abide by the Stevie Vince check rule; otherwise: now extra_status of Stevie is 2; now initial appearance of Stevie is "[if justchased of Stevie is 1][The Stevie] comes to a halt.[otherwise][dog random pose]."; lock the dice; if a random chance of 1 in 2 succeeds: say "[one of]Ayla giggles.[or]Ayla says, 'We gotta follow the doggy.'[or]Ayla says 'I like following this dog.'[at random]"; rule succeeds; if extra_status of Stevie is greater than 3: rule succeeds. [basically a do nothing -after vince has been tipped in demi game, set stevie to flight1 and extra_status 5 to have her wander at random again. status 4 is for when she's in the room with vince and he's yet to be tipped.] Rule for writing a paragraph about Ayla when smartquip of Ayla is greater than 3: if location is not smartquip_room: say "Ayla comes running after you. She frowns at you and says, 'Why didn't you listen to me? I'm smart, too.'"; now smartquip of Ayla is 1; otherwise if location is smartquip_room and smartquip of Ayla is 5: now smartquip of Ayla is 2. To say Ayla's dog comment: [Ayla won't make a dog comment during a turn if you spoke to her and that conversation gabbed her (gab Ayla), which sets this flag. This prevents her speaking twice in a row.) ] if too_gabby of Ayla is 0: say "[RandomLock][one of]'Hey [if name_is_known of Stevie is 1]Stevie[otherwise]doggy[end if],' says Ayla.[or]Ayla giggles at [the Stevie]'s expression.[or]Ayla walks towards [the Stevie].[or]Ayla smiles.[or]Ayla wiggles back and forth to get [the Stevie]'s attention.[at random][line break]"; now too_gabby of Ayla is 0. To say dog random pose: say "[RandomLock][one of][The Stevie] is here, trotting back and forth happily. [dogcap she it] keeps [dog her its] eyes on you[or][The Stevie] is bouncing back and forth here. [dogcap she it] still wants to play[or][The Stevie] is rolling in the grass here, ready to play[at random]". To say dog she it: if name_is_known of Stevie is 1: say "she"; otherwise: say "it". To say dogcap she it: if name_is_known of Stevie is 1: say "She"; otherwise: say "It". To say dog her it: if name_is_known of Stevie is 1: say "her"; otherwise: say "it". To say dog her its: if name_is_known of Stevie is 1: say "her"; otherwise: say "its". This is the smartquip prep rule: if smartquip of Ayla is greater than 2: increment smartquip of Ayla; now smartquip_room is location of Stevie. Chapter - Stevie there is an undescribed, improper-named, female animal called Stevie. "[if justchased of Stevie is 1][The Stevie] comes to a halt.[otherwise][The Stevie] is sniffing around here." Stevie is in Tri Path. Description of Stevie is "[if player is Harriet][Harriet dog description].[otherwise][Demi dog description]." The printed name of Stevie is "little dog". The indefinite article is "the". The introduction of Stevie is "[Stevie activation]There's a little white and orange dog running around here. It looks happy, but where is the dog's owner?" To say Stevie activation: if player is Demi and Stevie is in location: if Stevie is original, now Stevie is stunned; [say "STEVIE WAS STUNNED AT ACTIVATION." [debug] ] To say Harriet dog description: if name_is_known of Stevie is 1: say "Stevie is funny. She has white and orange fur, and big ears like butterfly wings. She is happy and bouncy, and little, and she just keeps sniffing everything"; otherwise: say "The lady's dog is funny. It has white and orange fur, and big ears like butterfly wings. The dog is happy and bouncy, and little, and it just keeps sniffing everything"; To say Demi dog description: if name_is_known of Stevie is 1: say "You think the dog looks like a girl, even though Stevie sounds like a boy's name. But it's not a name you ever heard before today. The dog has white and orange fur and big ears"; otherwise: say "You don't mind dogs, especially if they're cute like this one, but you like cats way more. When you get close to the dog, you can see a little tag on its collar" Stevie has texts called cap_name, lower_name. cap_name of Stevie is "Her dog". lower_name of Stevie is "her dog". Stevie has numbers called name_is_known, ever_patted, justchased, waittimer, dont_report_this_turn, extra_status. waittimer of Stevie is 6. [only affects demi game - sets how long dog pauses when first seen before making its first move] Understand "dog/pup/puppy/doggy/doggie/small/little/white/orange", "ladys/lady's dog/pup/puppy/doggy/doggie", "ladys/lady's small/little/white/orange dog/pup/puppy/doggy/doggie", "white and orange dog/pup/puppy/doggy/doggie", "ladys/lady's white and orange dog/pup/puppy/doggy/doggie", "ladys/lady's small/little white and orange dog/pup/puppy/doggy/doggie" as Stevie. Instead of taking Stevie: take no time; if the player is Harriet: instead say "You wouldn't pick the dog up unless you were invited to."; otherwise: instead say "The dog is too frisky. You don't think you could hold onto it even if you really wanted to." Section - fur the fur is an improper-named part of Stevie. Description of fur is "The dog's fur is [if player is Harriet]soft and clean.[otherwise]long and neat." Printed name of fur is "dog's fur". Understand "fur", "white and orange", "white/orange/long/dog/dogs/dog's/puppy/puppys/puppy's fur", "white and orange fur", "white and orange dog/dogs/dog's/puppy/puppys/puppy's fur", "dog/dogs/dog's/puppy/puppys/puppy's white and orange fur" as fur. Understand "stevie/stevies/stevie's fur", "stevie/stevies/stevie's white/orange/long fur", "stevie/stevies/stevie's white and orange fur" as fur when name_is_known of Stevie is 1. Instead of taking fur: say how nonsense. Section - tail tail is an improper-named part of Stevie. Description of tail is "[if player is Harriet]The dog's fluffy tail is always wagging.[otherwise]The dog's tail is fluffy and always wiggling around." Printed name of tail is "dog's tail". The indefinite article is "the". Understand "tail/dogtail", "dog/dogs/dog's/puppy/puppys/puppy's/fluffy tail", "dog/dogs/dog's/puppy/puppys/puppy's fluffy tail" as tail. Understand "stevie/stevies/stevie's tail/dogtail", "stevie/stevies/stevie's fluffy tail" as tail when name_is_known of Stevie is 1. Instead of taking tail: say "[no-time][if player is Harriet]The dog's tail is funny and you'd like to hold it, but you don't think the dog would like that.[otherwise]You know better than to grab animals by the tail!" Section - dog ears dog ears is a privately-named, plural-named, improper-named part of Stevie. Description of dog ears is "[if player is Harriet]You like the butterfly shape of the dog's ears.[otherwise]The dog's head looks like a butterfly with those ears on it. It's cute." Printed name of dog ears is "dog's ears". The indefinite article is "the". Understand "ear/ears/dogear/dogears", "dog/dogs/dog's/puppy/puppys/puppy's/big ear/ears", "big dog/dogs/dog's/puppy/puppys/puppy's ear/ears", "dog/dogs/dog's/puppy/puppys/puppy's big ear/ears" as dog ears. Understand "stevie/stevies/stevie's ear/ears", "stevie/stevies/stevie's big ear/ears" as dog ears when name_is_known of Stevie is 1. Instead of taking dog ears: say how nonsense. Section - dog collar there is an improper-named thing called collar. The indefinite article of collar is "the". Stevie wears collar. Printed name of collar is "dog collar". Description of collar is "There's a dog tag on the collar." Understand "dog/dogs/dog's/pup/pups/pup's/puppy/puppys/puppy's/doggy/doggys/doggy's/doggie/doggies/doggie's collar" as the collar. Understand "stevie/stevies/stevie's collar", "stevie/stevies/stevie's dog/doggy/doggie collar" as collar when name_is_known of Stevie is 1. Instead of taking the collar: say "[no-time]There's no reason to do that." Section - dog tag dog tag is a privately-named, improper-named part of collar. The indefinite article of dog tag is "the". Description of dog tag is "[dog tag desc]." Understand "tag/dogtag", "dogs/dog's/dog tag", "little tag/dogtag", "little dogs/dog's/dog tag" as dog tag. Understand "stevie/stevies/stevie's tag/dogtag", "stevie/stevies/stevie's little tag/dogtag", "stevie/stevies/stevie's dogs/dog's/dog tag", "stevie/stevies/stevie's little dogs/dog's/dog tag" as dog tag when name_is_known of Stevie is 1. To say dog tag desc: if player is Harriet, say "[if name_is_known of Stevie is 1]Stevie's dog tag has her name on it[otherwise]The tag on the dog's collar says 'STEVIE'"; if player is Demi, say "The tag on the collar says 'Stevie'. [first time]Also, there's some handwriting you can't read. Grown-ups are always writing like that, and it's annoying. [only]You decide that while you're playing tip, you will keep an eye out for anyone who might be missing a dog. If you don't find the owner yourself, you can tell mum and dad at lunchtime"; know Stevie. To know Stevie: now name_is_known of Stevie is 1; now Stevie is proper-named; now printed name of Stevie is "Stevie"; now dog ears is proper-named; now printed name of dog ears is "Stevie's ears"; now dog tag is proper-named; now printed name of dog tag is "Stevie's dog tag"; now fur is proper-named; now printed name of fur is "Stevie's fur"; now tail is proper-named; now printed name of tail is "Stevie's tail". the handwriting is a part of dog tag. Understand "writing", "hand writing" as handwriting. Description of handwriting is "You can't understand any of the handwriting." Instead of taking dog tag: say "[no-time][if player is Harriet]You know that dogs wear tags so their owners can find them if they get lost. You wouldn't want to remove the dog's tag.[otherwise]You think the tag will work best if it stays on the dog. You decide to leave it there." Instead of taking handwriting: try taking dog tag. Part - Chasees Chapter - Ayla Ayla is a female chasee. "[if player is Harriet]Ayla is hiding here. She's curled up in a ball.[otherwise]Ayla is here[did ayla meet the dog]." To make Ayla roundabouty: now initial appearance of Ayla is "Ayla is on the roundabout with you." To make Ayla not roundabouty: now initial appearance of Ayla is "Ayla is here[did ayla meet the dog]." Understand "princess" as Ayla. Ayla has numbers called treegiggle, identified_tree, found_her, plane_block, dont_report_this_turn, advised_Harriet, advised_Demi, return_wait, audio, singing, interrupted_singing, hair conversation, dog_interact, commented_on_pias_jump, roundabout_remark, ravencopy, too_gabby, pia_woe_comment, forsooth, hugged_her. Ayla has numbers called smartquip, rosequipA, rosequipB, samquip, roundaboutquip, moretonquip, jackquip, treehousequip, mazequip, gazeboquip, clappy picnicquip, regular picnicquip, heightquip, leafquip, triquip, giantquip, tgquip, koalaquip, bwallquip, fairyquip, piaquip. smartquip of Ayla is 3. smartquip_room is a room that varies. [global] Ayla has numbers called theight, tsmoothness, tstyle, tattract, tcolour. [All these values are randomised at game start if player is Harriet.] Table of treeheight wordage "tall" "short" Table of treesmoothness wordage "smooth" "rough" Table of treestyle wordage "pointy" "curly" Table of treeattract wordage "pretty" "ugly" Table of treecolour wordage "black" "brown" "grey" "green" [If you're Demi, attract(iveness-es) become "interesting" and "boring" at game boot.] The description of Ayla is "[if player is Harriet]Ayla is shorter than most of your friends, and she is so cute! She has light brown skin and super smiley eyes. Her black hair comes down to her shoulders and has plaits in it. Today, she is dressed as a princess. Her dress is pink and white, and there's a gold crown on her head. You like how Ayla has trouble stopping herself from giggling.[otherwise]Ayla is small, but she has a huge smile and always looks happier than everyone else. Maybe that's why she can't help giggling so much. She has dark hair like you, except hers only goes to her shoulders, and she has a little fringe and plaits. Today she's a princess wearing a pink and white dress, and with a gold crown on her head." Ayla wears princess costume. princess costume is proper-named. Understand "aylas/ayla's costume", "aylas/ayla's princess costume" as princess costume. Description of princess costume is "Her princess dress is pink and white, and there's a gold crown on her head." The printed name of princess costume is "Ayla's princess costume". fringe is a proper-named part of Ayla. Printed name of fringe is "Ayla's fringe". Description of fringe is "[if player is Harriet]You've never had a fringe. You wonder what it feels like.[otherwise]You like having a fringe yourself." Understand "aylas/ayla's fringe" as fringe. There is a plural-named, proper-named thing called plaits. plaits are a part of Ayla. Printed name of plaits is "Ayla's plaits". Description of plaits is "[if player is Harriet]Ayla's plaits are really pretty. She knows how to do them on other people's hair, too.[otherwise]Ayla's plaits are tight and shiny. They look like beautiful little black ropes." Understand "plait", "aylas/ayla's plait/plaits" as plaits. Ayla wears a privately-named thing called ayla's dress. Printed name of ayla's dress is "Ayla's dress". Description of ayla's dress is "[if player is Harriet]Ayla's dress is white and fancy at her shoulders and down near her feet, and pink in the middle. It's beautiful.[otherwise]It's the most perfect princess dress you've ever seen, and you think you have seen a lot." Understand "pink/white/princess'/princess's/dress", "aylas/ayla's/princess/princess'/princess's dress", "aylas/ayla's pink/white/princess/princess'/princess's dress", "aylas/ayla's pink and white dress", "aylas/ayla's pink and white princess/princess'/princess's dress" as ayla's dress. Does the player mean examining ayla's dress: it is likely. [rank it over your own dress] Ayla wears a proper-named headgear called gold crown. Printed name of gold crown is "Ayla's gold crown". Description of gold crown is "[if player is Harriet]The crown is all sparkly, and makes Ayla - who is very short - look a little taller.[otherwise]The crown shines and sparkles wherever the sun touches it. Not only is it very pretty, but all of that shining reminds everyone who the princess is. If you had a crown, you would want everyone to remember that you were the boss." Understand "golden", "golden crown", "aylas/ayla's crown", "aylas/ayla's gold/golden crown" as gold crown. Report Ayla going a direction (called way): now current_actor is Ayla; abide by the not reporting for this turn rule; if last location of Ayla is location, instead say "[RandomLock]Ayla [one of]skips[or]hops[or]runs[purely at random] away to the [way]."; [use of 'instead here' will stop the rule continuing if it fires.] if last location of Ayla is Edge Park and player is in Picnic and Pia is in Picnic, instead say "Ayla arrives from the north. She sees Pia and says, 'Hey Pia, I can do your hair now.' Pia smiles and turns back to the table. Ayla stands behind her and starts to braid her hair." After Ayla going south from Edge Park when ayla_mode is 0: [this works for both players] give Ayla the singing description; if Pia is in Picnic, do the Pia-Ayla transforms; if player is Demi, put Stevie back on the map; [get Stevie outta the treehouse and back in play now Ayla's home] continue the action. [without this line, the 'Report' rule is not invoked, as the 'After' rule normally stops the flow of rule-checking.] Every turn when location is Picnic and ayla_mode is 1 and fairyquip of Ayla is 0: now fairyquip of Ayla is 1; say "Ayla goes over to your mum and asks, 'Mrs Leitner, are we going to have fairy bread this afternoon?'[paragraph break]'Yes we are, Ayla,' says mum. 'Is that a favourite of yours?'[paragraph break]'That's my favourite,' says Ayla. She comes back over to you.[paragraph break]'I could have told you that!' you say. Ayla giggles." To give Ayla the singing description: now initial appearance of Ayla is "[Ayla song go][if player is Harriet]Ayla is sitting at the table and singing a little song to herself.[otherwise]Ayla is sitting at the table. She's singing to herself. You like the song but you don't know it."; now singing of Ayla is 1. [this flag indicates she's got the singing description] To say Ayla song go: if audio of Ayla is 0: play_Aylasong_music; if glulx sound is supported, now audio of Ayla is 1. To stop Ayla singing: stop the foreground sound; now audio of Ayla is 0. Carry out player going north in Picnic: [Ayla related tweaks] if audio of Ayla is 1: if glulx sound is supported, fade out the foreground sound faster; stop Ayla singing; if Ayla is home and singing of Ayla is 0 and Pia is not in Picnic, give Ayla the singing description. To do the Pia-Ayla transforms: now initial appearance of Pia is "Pia is sitting at the table, having her hair braided by Ayla."; now braid is part of Pia; now Ayla is undescribed; [make Ayla 'invisible' - Pia's appearance stands in for both of them] now singing of Ayla is 0; if audio of Ayla is 1: stop Ayla singing; now audio of Ayla is 0. To make Ayla's first help offer: now Ayla is not undescribed; [now the Ayla stuff] say "Ayla stretches her arms and smiles at the sunshine. Then she turns to you and says, 'Hey Demi, can I stay with you and help you look for the others?'[paragraph break]Hm. Secretly you'd hoped you could have a cat for a partner, because teaming up with a princess doesn't seem as witchy[if Demi_acknowledged of Pia is 1]. But you already asked Pia to join you, and she said no[end if]...[paragraph break]"; play_chimey; let answer be yesno_answer_with_question "Do you want Ayla to come with you? [bold type] (Y/N)[roman type]"; if answer is "NO": let way be the best route from location to Picnic; say "[line break]'Um,' you say, 'I'm going to try to find everyone myself.'[paragraph break]'Oh,' says Ayla. 'Well, if you change your mind, come and get me from the picnic area.' Then she waves and walks away to the [way].[paragraph break]Oops! Maybe that was a mistake. You hope you didn't hurt Ayla's feelings."; now dont_report_this_turn of Ayla is 1; now Ayla is returning; rule succeeds; [checked] if answer is "YES": say "[line break]'Sure,' you say. 'Let's be a team.'[paragraph break]'Yeah!' says Ayla. 'Let's go.'[line break]"; now ayla is flight1; now ayla_mode is 1; put Stevie back on the map. To put Stevie back on the map: if location is oklady: now location is antilady; now ladytarget rejuvenator is 1; lock the dice; now Stevie is in a random oklady room; now last location of Stevie is location of Stevie; if ladytarget rejuvenator is 1, now location is oklady; if Stevie is as-yet-unknown: now Stevie is original; [if you still haven't met Stevie, make her pose 'original' again] otherwise: if Stevie is in ladytarget: make Stevie pleased with arriving; otherwise: now Stevie is flight1. [say "BACK ON THE MAP******". [debug] ] Section - Ayla Mode mechanics ayla_mode is a number variable. [global] [nb - an assumption of Ayla mode being 1 is that AYLA IS WITH YOU IN THE ROOM AT ALL TIMES!] Chapter - Pia Pia is a female chasee. "[if justchased of Pia is 1]Pia skids to a halt.[otherwise][Pia_to_the_eye]". Understand "cat/puss/pussycat", "pussy cat", "black cat/puss/pussycat", "black pussy cat" as Pia. Pia has text called Pia_to_the_eye. Pia has a room called hideyhole. The hideyhole of Pia is ByKoala. Pia has numbers called described_her_actions, Demi_acknowledged, spider_freak, dont_report_this_turn, Piawillflee [will be randomly set when she's first seen], pursued [0 = she moved on her own, 1 = you tried to tip her, 2 = you chased her], hurdled, Piahit. The description of Pia is "[the ultimate description of Pia].[line break]" The braid is a thing. The description of braid is "[if ayla_mode is 0]Ayla has only finished about half the braid in Pia's hair[otherwise]Ayla only finished half of Pia's braid before she joined you, so it looks funny[end if]." Understand "pia/pias/pia's/aylas/ayla's/unfinished/half braid" as braid. To say the ultimate description of Pia: if player is Harriet, say "Pia is dressed as a cat. All her clothes are black, she's wearing a black mask over her eyes and her curly red hair is held back by a cat-ears headband[first time]. She's the tallest girl in your class and sometimes gives you piggybacks. She is great at sports and running and jumping over things. She is very quiet, but also very kind[only][run paragraph on]"; if player is Demi, say "Pia is wearing a cat costume, and like yourself, is all in black. A mask across her eyes makes her look mysterious. You like her pointy ears[run paragraph on]"; if braid is part of Pia, say ". She has an unfinished braid in her hair[run paragraph on]". Pia wears a proper-named thing called cat costume. The printed name of cat costume is "Pia's cat costume". Understand "pias/pia's costume", "pias/pia's cat costume" as cat costume. Description of cat costume is "Pia's costume is all black. She's wearing a black mask over her eyes and her curly red hair is held back by a cat-ears headband." Pia wears an improper-named headgear called a cat-ears headband. The description of cat-ears headband is "[if player is Harriet]The ears are black and grey, pointy and cute. Pia's costume makes you wish you had your own headband.[otherwise]The ears are triangle-shaped and furry, just like the ears of a real cat." The indefinite article of cat-ears headband is "a". Understand "ear/ears/band", "cat/cats/cat's/Pias/Pia's ear/ears", "Pias/Pia's headband", "Pias/Pia's cat/cats/cat's headband", "cat ears headband", "Pias/pia's cat ears headband", "Pias/pia's cat-ears headband", "pointy", "pointy ear/ears" as cat-ears headband. Pia wears a black cat mask. The description of black cat mask is "[if player is Harriet]Pia's mask is held in place with black elastic and looks really cool. You would like to try it on later.[otherwise]You wore a mask once and you didn't like not being able to see so well out of it, but the eyeholes of Pia's mask are really big." Understand "black/pias/pia's mask", "pias/pia's black/cat mask", "pias/pia's black cat mask" as black cat mask. After Pia going south from Edge Park: now Pia_to_the_eye of Pia is "Pia is sitting at the table, having a rest."; if Ayla is in Picnic, do the Pia-Ayla transforms; continue the action. [without this line, the 'Report' rule is not invoked, as the 'After' rule normally stops the flow of rule-checking.] Table of Pia Harriet Poses pose "[RandomLock]Pia is here. She sees you and [one of]grins[or]smiles[purely at random]." "Pia is here, standing in the shade." "[RandomLock]Pia is here, [one of]walking[or]stepping[purely at random] very quietly." "[RandomLock]Pia is here, taking very light [if a random chance of 1 in 2 succeeds]cat-[end if]steps." "[RandomLock]Pia is here. She keeps her [if a random chance of 1 in 2 succeeds]cat-[end if]eyes on you as you approach." "Pia is here, stepping carefully[if location is outside] across the grass[end if]." "Pia is on the lookout here." Table of Pia Demi Poses pose "[RandomLock]Pia is here. She [one of]grins[or]smiles[purely at random] when she sees you." "Pia is standing over in the shade." "[RandomLock]Pia is here, [one of]sneaking[or]creeping[purely at random] away very quietly." "Pia is here. She's moving away from you with careful, light steps." "[RandomLock]Pia is here. Her [if a random chance of 1 in 2 succeeds]cat-[end if]eyes follow your movements." "Pia is here, stepping carefully[if location is outside] across the grass[end if]." "Pia is here. It looks like she's been watching out for you." To say Pia_calmly_goes: say "[RandomLock]Pia [one of]walks[or]heads[or]skips[purely at random]". Report Pia going a direction (called way): now current_actor is Pia; abide by the not reporting for this turn rule; If Pia is returning or Pia is home: if last location of Pia is location, instead say "[Pia_calmly_goes] [way]."; [use of 'instead here' will stop the rule continuing if it fires] if last location of Pia is Edge Park and player is in Picnic and Ayla is in Picnic, instead say "Pia arrives from the north. Ayla says, 'Pia! I can do your hair now.' Pia smiles and sits down at the table, then Ayla gets up, goes around behind her and starts to braid her hair."; continue the action; [otherwise - skip the rest of this rule but continue the report action in general - which allows 'Pia arrives' type messages] lock the dice; let N be a random number between 1 and the number of rows in Table of Pia Harriet Poses; [time to change Pia's look-at description - it changes each time she runs to a new room - this is that moment] if player is Harriet: now Pia_to_the_eye of Pia is pose in row N of Table of Pia Harriet Poses; otherwise: now Pia_to_the_eye of Pia is pose in row N of Table of Pia Demi Poses; if spider_freak of Pia is 1: now spider_freak of Pia is 0; instead say "Pia dashes away to the [way]."; if pursued of pia is 0, say "[RandomLock]Pia [if a random chance of 1 in 2 succeeds]suddenly [end if][one of]bounds[or]springs[purely at random] away [if a random chance of 1 in 2 succeeds]all cat-like [end if]to the [way]."; if pursued of Pia is greater than 0: if player is Harriet, say "[RandomLock]Pia [if a random chance of 1 in 2 succeeds]cleverly [end if][one of]slips[or]twists[purely at random] out of your reach, then [one of]sprints[or]runs[or]races[purely at random] away to the [way]."; if player is Demi: lock the dice; if a random chance of 1 in 2 succeeds: say "[RandomLock]Pia [one of]wiggles[or]leaps[or]springs[purely at random] out of your way, then escapes to the [way]."; otherwise: say "[RandomLock]Pia springs away from you [one of]just like[or]as quickly as[purely at random] a cat and races away to the [way]."; if pursued of Pia is 2: now pursued of Pia is 0; rule succeeds; now pursued of Pia is 0; [if Pia's move is being caused by you chasing her [pursued is 2], she will definitely not flee in the next room either - this gives you a chance to keep chasing her] lock the dice; now Piawillflee of Pia is a random number from 0 to 1; [ whenever Pia runs away, there's a 50% chance she will flee again next time you see him and a 50% chance she will hold her ground until you try to tip her. This also gives you a chance to chase her.] stop the action. [prevents normal report going action firing.] Every turn when Pia is in the location of the player: if Pia is home or Pia is returning or Pia_Stunned is happening or Pia is tagged, continue the action; [if Pia is home or returning or stunned, stop going through this rule] if Pia is in AboveWall: follow the Pia_hurdles rule; continue the action; if Piawillflee of Pia is 0, continue the action; [ if Pia is fleeing, but will not flee from present location until you try to tip/chaser her, do nothing now but continue with EVERY TURN rules] follow the PiaGo rule. This is the PiaGo rule: let way be the best route from location of Pia to AboveWall; [having eliminated all circumstances in which Pia will not flee, we now tend to how she does flee…] try Pia going way. [Pia flees - Pia's stance and 'willflee' will be changed by the 'report Pia going' rules if necessary] This is the Pia_hurdles rule: if the player is Harriet: if hurdled of Pia is 1: say "Again, Pia escapes from you by taking three big steps towards the wall and vaulting over it to the other side. Chasing her around is making you tired. Maybe this is your chance to catch up with her, but you'll have to be quick."; otherwise: say "[first time]Wow, is Pia really gonna do what it looks like she's about to do? –[paragraph break][only]She takes three huge cat leaps towards the wall, then vaults over it [first time]and through the air!.. [only]and disappears from sight.[line break][first time][line break]She must have landed on the grass below the other side of the wall, but you didn't think you could jump that far without getting hurt. You feel nervous and excited, and wonder whether you could do the same trick? It looked so cool.[only]"; if the player is Demi: if hurdled of Pia is 0: say "Pia takes three quick steps towards the wall... she's not going to jump over it, is she?[paragraph break]Your jaw drops as she does just that. She vaults the wall and sails through the air towards the lower level of the garden.[paragraph break]Could you do the same thing? It could be your only chance to catch up to her. But it's so far down! Ugh, what to do."; otherwise: say "Again, Pia escapes from you by taking three big steps towards the wall and vaulting over it to the other side. Rats!"; do the Pia jump applause check; if hurdled of Pia is less than 2, increment hurdled of Pia; now Pia is in BelowWall; now Pia is followable; now last location of Pia is AboveWall; now Piahit of Pia is 1. [initiates the Pia_stunned scene] To do the Pia jump applause check: repeat with C running through chasees: if C is in AboveWall and there is a quote corresponding to a speaker of C in the table of Pia Gratz: choose row with a speaker of C in the table of Pia Gratz; say "[line break][quote entry][line break]"; blank out the whole row. Table of Pia Gratz speaker quote Jack "Jack claps and whistles at what Pia just did." Ayla "Ayla gasps." Pia_Stunned is a recurring scene. Pia_Stunned begins when Piahit of Pia is 1. Pia_Stunned ends when the time since Pia_Stunned began is 2 minutes. [This gives the player one turn in which to tip Pia before she stands up.] When Pia_Stunned begins: if the player is Harriet, now Pia_to_the_eye of Pia is "Someone even more surprised by your jump than you is Pia, who is struggling to her feet beside you. You caught up to [Piahit abort]her!" To say Piahit abort: now Piahit of Pia is 0. [what happens is - the only way you can see the 'Someone even more...' message is if you follow her immediately over the wall. If that occurs, the piahit abort routine zaps the piahit counter, preventing pia's initial appearance from being changed between when you land and when (and if) you type 'look' - looking will show the same message that Pia just landed. However, if you delay for a turn in following her, you will see the correct message about being too slow when you land, and then she will immediately flee.] every turn during Pia_Stunned: increase the Piahit of Pia by 1; if the player is Harriet and Pia is untagged and the Piahit of Pia is 2: now Pia_to_the_eye of Pia is "[one of]It looks like you were too slow to catch up with Pia. She's already on her feet here and ready to run away from you again. You should have moved faster![or]Too slow... Pia is back on her cat feet now and ready to get away from you again.[stopping]". When Pia_Stunned ends: now Piahit of Pia is 0; if Pia is untagged: lock the dice; let N be a random number between 1 and the number of rows in Table of Pia Harriet Poses; if player is Harriet: now Pia_to_the_eye of Pia is pose in row N of Table of Pia Harriet Poses; otherwise: now Pia_to_the_eye of Pia is pose in row N of Table of Pia Demi Poses; if player is in BelowWall, try Pia going north. Chapter - Jack Jack is a male chasee. "[how_jack_looks_now]" To say how_jack_looks_now: if Jack is in Picnic: say "Jack is running around here, following a low-flying cicada. "; stop the action; if justchased of Jack is 1, say "Jack skids to a halt. "; otherwise say "[Jack_to_the_eye of Jack]". Understand "spiderman/spidey" as Jack. Jack has some text called Jack_to_the_eye. [Don't need to set an initial text because when Jack is first seen by either sister, you get a custom message.] Jack has numbers called Jackhit, Jackwillflee, odometer, dont_report_this_turn, ever_tried_leafing, about_to_get_up, forsooth, jack_meets_spider. Jackwillflee of Jack is 1. Jack is in BottomTreehouse. The introduction of Jack is "[if player is Harriet]As you approach the treehouse, you easily spot Jack, dressed as Spiderman, creeping along behind a curtain of vines. 'I see you, Jack!' you yell, making him jump.[otherwise]Jack suddenly pops out from behind the treehouse tree in his red and blue Spiderman costume." The description of Jack is "Jack is wearing a red and blue costume with black spiderweb patterns on it. [if player is Harriet]He has a funny face and can make you laugh just by wiggling it around sometimes. He can be a real showoff.[otherwise]He is small and fast, with blonde hair and a cheeky face, but Harriet likes him more than you do." Jack wears spiderman costume. spiderman costume is proper-named. Understand "jacks/jack's costume", "jacks/jack's spiderman costume" as spiderman costume. The printed name of spiderman costume is "Jack's spiderman costume". Instead of examining spiderman costume: try examining Jack. After a chasee (called returner) going south from Edge Park: if returner is returning: now returner is home; if player is in Picnic, now returner is seenatpicnic; [makes sure this flag is set if player moved to Picnic and is immediately followed by a chasee] continue the action. [without this line, the 'Report' rule is not invoked, as the 'After' rule normally stops the flow of rule-checking.] After Jack going south from Edge Park: now black prince cicada is in Picnic; now description of Jack is "[if player is Harriet]His attention is glued to the cicada now.[otherwise]He might be chasing that cicada forever... heh, silly."; continue the action. [without this line, the 'Report' rule is not invoked, as the 'After' rule normally stops the flow of rule-checking.] Table of Jack Poses Harriet Demi "Jack is here, ducking and weaving." "Jack is here, making scared noises and pretending to be afraid of you." "Jack is here, watching for your next move." "Jack is here, watching to see what your next move might be." "Jack is running around in circles here." "Jack is here, pretending to tip-toe around you." "Jack is running around here on all fours. He's crazy!" "Jack is scampering around here on all fours like a spider – if spiders had four legs, but you know they have eight." "Jack is marching up and down here." "Jack is running around here, flapping his arms like a bird." To say Jack_calmly_goes: say "[RandomLock]Jack [one of]strolls[or]heads[purely at random]". Report Jack going a direction (called way): now current_actor is Jack; abide by the not reporting for this turn rule; If Jack is returning or Jack is home: if last location of Jack is the location of the player, instead say "[Jack_calmly_goes] [way]."; [use of 'instead here' will stop the rule continuing if it fires] continue the action; [otherwise - skip the rest of this rule but continue the report action in general - which allows 'Jack arrives' type messages] lock the dice; let N be a random number between 1 and the number of rows in Table of Jack Poses; [time to change Jack's look-at description - it changes each time he runs to a new room - this is that moment] if player is Harriet, now Jack_to_the_eye of Jack is Harriet in row N of Table of Jack Poses; otherwise now Jack_to_the_eye of Jack is Demi in row N of Table of Jack Poses; if Jack is not original: [IE if Jack has already moved during the game] say "[RandomLock]Jack [one of]dashes[or]runs[or]sprints[purely at random] [if a random chance of 1 in 2 succeeds][one of]off[or]away[purely at random] [end if]to the [way]."; increment odometer of Jack; if odometer of Jack is 5: now odometer of Jack is 0; now Jackwillflee of Jack is 0; otherwise: lock the dice; now Jackwillflee of Jack is a random number from 0 to 1; [ whenever Jack runs away, there's a 50% chance he will flee again next time you see him and a 50% chance he will hold his ground until you try to tip him.] rule succeeds; now Jack is flight1; [ otherwise, change Jack's stance from original and proceed] [now jackwillflee of jack is 0;] [cheat] [now jack is in edge park;] [cheat] instead say "[if player is Harriet]Jack grins and sprints away to the [way]. Yikes, he is super fast![otherwise]Seeing you, Jack dances on the spot for a moment before sprinting off to the [way]." This is the fleekid rule: lock the dice; let target_room be a random superrocking room adjacent to location of current_actor; let way be the best route from location of current_actor to target_room; [say target_room; say way; say current_actor;] [restore this line for testing] try current_actor going way. Every turn when Jack is in the location of the player: if Jack is home or Jack is returning or Jackwillflee of Jack is 0 or Jackhit of Jack > 0, continue the action; [if Jack is in the picnic area - if Jack is fleeing, but will not flee from present location until you try to tip him - if Jack is returning, let the returning rules look after him - stop looking through these rules.] now current_actor is Jack;[having eliminated all circumstances in which Jack will not flee, we now tend to how he does flee…] follow the fleekid rule. [Jack flees - Jack's stance and 'willflee' will be changed by the 'report Jack going' rules if necessary] Jack_Stunned is a scene. Jack_Stunned begins when Jackhit of Jack is 1. Jack_Stunned ends when the time since Jack_Stunned began is 2 minutes. [This gives the player one turn in which to hit Jack with the leaves or mud] When Jack_Stunned begins: now Jack_to_the_eye of Jack is "Jack is [if player is Harriet]sitting here, covered in leaves. [otherwise]standing here, looking surprised." every turn during Jack_Stunned: increase the Jackhit of Jack by 1. When Jack_Stunned ends: if Jack is untagged: say "[if player is Harriet]As you watch, Jack gets back on his feet... Oh oh, you missed your chance to tip him.[otherwise]Jack says, 'Still too slow, slowpoke!' He rubs the mud off his chest and jumps away from you again.[paragraph break]Whoops! You realise you missed your chance to tip him."; [print sister-specific part of message] say "[line break]He's not going to fall for the same trick twice, and you know you'll never be able to outrun him. You're going to have to admit defeat eventually, and that means... you've lost the game!"; [print general part of message] play_lose_music; pause_only; say "[paragraph break][first custom style]*** YOU LOST BECAUSE JACK ESCAPED! ***[normal style][line break]"; end the story. Chapter - Marion Marion is a female chasee. Marion is in ByRoundabout. The description of Marion is "[describe Marion]." To say describe Marion: if player is Harriet: say "Marion looks wonderful dressed in her pirate costume, but she always looks wonderful. You think she is the prettiest girl in your class. She has wavy blonde hair [if Marion wears black pirate's hat](most of it is tucked up in her pirate hat at the moment) [end if]and pretty blue eyes"; otherwise: say "Marion has blonde hair and blue eyes, and right now, a fierce look on her face that says, 'I am a pirate and I can do anything.' You love every part of her pirate costume" To give Marion pose 1: [this pose is given at boot time] now initial appearance of Marion is "[if player is Harriet]Marion is pacing up and down the deck of her ship [ship perspective from roundabout].[otherwise]Marion is [ship perspective from roundabout] with her hands on her hips, marching up and down the deck of her ship." To say ship perspective from roundabout: if mounted of roundabout is 0: say "here"; otherwise: say "nearby". To give Marion pose 2: now initial appearance of Marion is "Marion is here with her sword pointed at you!" To give Marion pose 3: now initial appearance of Marion is "Marion stands across the clearing from you. She's raised her sword to protect herself." To give Marion pose 4: now initial appearance of Marion is "Marion is running across the clearing." To give Marion pose 5: now initial appearance of Marion is "Marion is pointing her sword at you over the top of the little hill." To give Marion pose 6: now initial appearance of Marion is "Marion's head is sticking up above the little hill." To give Marion pose 7: now initial appearance of Marion is "Marion is here." To give Marion pose 8: now initial appearance of Marion is "Marion is racing towards the roundabout." To give Marion pose 9: now initial appearance of Marion is "Marion is kneeling behind the far side of the roundabout, hanging off it with one hand. Her sword is pointed at you!" To give Marion pose 10: now initial appearance of Marion is "Marion's head is sticking out." To give Marion pose 11: now initial appearance of Marion is "Marion is kneeling behind the other side of the roundabout, hanging off it with one hand." To give Marion pose 12: now initial appearance of Marion is "Marion is hanging off the other side of the roundabout with her sword pointed at you!" To give Marion pose 13: now initial appearance of Marion is "Marion is on her back on the grass." To give Marion pose 14: now initial appearance of Marion is "Marion is here." The introduction of Marion is "Standing by the roundabout and looking very smart is your friend Marion. She's dressed as a pirate, wearing a white shirt, a red vest and a black pirate's hat, one of those ones shaped like a triangle. She's also carrying a sword, and she's pointing it at you now.[paragraph break]'Ahoy, landlubber!' she cries. 'I'm Red Marion and you're on my ship. I challenge you to a duel.'[paragraph break]You love how Marion is so good at pretending to be different people. She goes to drama after school, and she says she wants to be in movies.[paragraph break]'What's a duel?' you ask.[paragraph break]'A duel is where you and me have a fight. You try to zap me with your wand and I'll try to zap you with my sword. If you win, you can tip me, but if I win, you have to say I won hide and seek.'[paragraph break]'That's not fair!' you say.[paragraph break]'That's the only way you'll get to tip me, landlubber.'[paragraph break]What is this 'landlubber' thing she keeps saying?[paragraph break]'If you don't win,' she adds, 'we'll do it again another day and you can win then. That's fair, isn't it? So, are you ready to duel?'[paragraph break][duellaunch]". [This is the Harriet version. To avoid making the introduction phrase too long, I have the game change the intro to Demi's version at startup if the player is Demi.] To say Demi's version of Marion's intro: say "You have found Marion, who's dressed as a pirate. She's standing beside the roundabout, looking very proud of herself with one hand on her waist, the other holding her sword. When she sees you coming, she pushes her pirate hat firmly onto her head and raises her sword towards you.[paragraph break]'Ahoy!' she cries. 'Ye be on my ship, landlubber!'[paragraph break]'I'm no landlubber,' you tell her. 'You shall call me Witch Demi.' You stand up to look as tall and scary as you can.[paragraph break]"; if ayla_mode is 1: say "'Your friend looks like a landlubber,' says Marion, pointing at Ayla, who giggles.[paragraph break]'I'm Princess Ayla,' says Ayla, and she tries to stand up taller as well.[paragraph break]"; say "Marion leans on her sword and looks you up and down. She seems to decide you are tough enough. 'All right Witch Demi,' she says, 'I'm Red Marion, and I challenge you to a duel.'[paragraph break]A duel! You know all about those from Harry Potter.[paragraph break]'I'll duel you,' you say, 'and when I win, I'm gonna tip you.' "; if player holds mudpie or player holds leaf: say "You realise you'll need both hands free for this, so you "; if player holds leaf: say "toss your leaf away on a breeze. "; now leaf is part of bunch leaves; otherwise if player holds mudpie: say "toss your mudpie away into the trees. "; now mudpie is off-stage; say "[paragraph break]'And if I win,' says Marion, 'you have to give up tipping people and tell everyone I won this game.'[paragraph break]What a cheeky pirate... but you're not worried, because you're totally going to win.[paragraph break]'Okay Red Marion,' you say. 'You made a big mistake deciding to mess with me.' You lift up your wand and hold it tightly. 'I'm gonna zap you.'[paragraph break]'Uh uh,' she says. 'I'm gonna zap you.' "; if ayla_mode is 1: say "[paragraph break]'Fighting is silly,' says Ayla. 'I'm going to wait in the garden until you're finished.'[paragraph break]'Okay, see you in a moment,' you say. Ayla starts walking to the east.[paragraph break]Marion taps her foot until Ayla has gone. 'What a landlubber,' she says, shaking her head. [run paragraph on]"; now dont_report_this_turn of Ayla is 1; try silently Ayla going east; now ayla_mode is 0; [we reactivate Ayla mode after the duel by checking if Ayla is in GiantGarden - there's no other way she could get there on her own during the Demi game] do the preduel clearout; say "'Let's duel!' you say."; WaitForSpace; say line break; say duel_banner; say duel_instructions; now duel_text is "'Go!' shouts Marion. She dances a little to one side, then sprints across the grass in the other direction. It looks like she's headed for the roundabout."; say duel_text; give Marion pose 8; rule succeeds. Understand "pirate", "red marion" as Marion. Marion has numbers called duel_commence_fix, sailor_warning, described_her_actions, dont_report_this_turn, flight_yell. Report Marion going a direction (called way): now current_actor is Marion; abide by the not reporting for this turn rule; if last location of Marion is location, instead say "[RandomLock]Marion [one of]walks[or]runs[purely at random] [way]."; if last location of Marion is Edge Park and player is in Picnic and Marion is in Picnic, instead say "Marion arrives. She runs over to the table and sits down opposite your sister. The two of them start to play a clapping game." After Marion going south from Edge Park: [this works for both players] now Marion is undescribed; if player is Harriet: now initial appearance of Demi is "Demi and Marion are sitting at the table, [random clap]playing a clapping game."; otherwise: now initial appearance of Harriet is "Harriet is sitting across from Marion at the picnic table. The two of them are [random clap]playing a clapping game."; continue the action. [without this line, the 'Report' rule is not invoked, as the 'After' rule normally stops the flow of rule-checking.] Section - Marion's pirate costume Marion wears a privately-named, proper-named thing called pirate costume. The printed name of pirate costume is "Marion's pirate costume". Understand "costume", "pirate/pirates/pirate's/Marions/Marion's costume", "Marions/Marion's pirate/pirates/pirate's costume" as pirate costume. Description of pirate costume is "[if player is Harriet]Marion holds a curved sword and is wearing a red vest over her white shirt. [pirate hat status].[otherwise]Marion looks smart and fierce in her red vest, white shirt and black pirate's hat." To say pirate hat status: say "[if Marion wears black pirate's hat]On her head is a black pirate's hat[otherwise]Her black hat is on the grass at the moment". Section - black pirate's hat Marion wears a proper-named headgear called black pirate's hat. Initial appearance of black pirate's hat is "Marion's hat is lying on the grass." The printed name of black pirate's hat is "Marion's black pirate's hat". The description of black pirate's hat is "[if the player is Harriet]You really like the look of Marion's hat. It's black and shiny and soft, and shaped like a triangle.[otherwise]Marion's hat is really neat. It's black like your hat, but kind of shiny as well. It makes a triangle shape over a person's head." Understand "pirate/pirates", "marion/marions/marion's/pirate/pirates/black hat", "marion/marions/marion's pirate/pirates/pirate's/black hat", "marion/marions/marion's pirate/pirates/pirate's black hat", "marion/marions/marion's black pirate/pirates/pirate's hat" as black pirate's hat. Section - Marion's shirt Marion wears Marion's shirt. Marion's shirt is privately-named, proper-named. The printed name of Marion's shirt is "Marion's white shirt". The description of Marion's shirt is "[if the player is Harriet]Marion's shirt is clean and white. There is a lacey part over each of her wrists.[otherwise]Marion wears a sharp white shirt. It looks great on her." Understand "shirt/white/lacy/lacey", "lacy/lacey part/parts", "marion/marions/marion's shirt", "marion/marions/marion's white shirt" as Marion's shirt. Section - Marion's vest Marion wears Marion's vest. Marion's vest is privately-named, proper-named. The printed name of Marion's vest is "Marion's red vest". The description of Marion's vest is "[if the player is Harriet]Marion's vest is long, and dark and red in colour.[otherwise]You are jealous of Marion's dark red vest. It looks great over her white shirt." Understand "vest/red", "marion/marions/marion's vest", "marion/marions/marion's red vest", "marion/marions/marion's dark red vest" as Marion's vest. Section - Marion's sword Marion holds Marion's sword. Marion's sword is privately-named, proper-named. The printed name of Marion's sword is "Marion's sword". The description of Marion's sword is "[if the player is Harriet]Marion's sword is one of those curvy pirate ones. It's big![otherwise]Marion's sword is silver and curved." Understand "sword/silver/curvy/curved", "marion/marions/marion's sword", "marion/marions/marion's silver/curvy/curved/pirate/pirates/pirate's sword", "marion/marions/marion's silver/curvy/curved pirate/pirates/pirate's sword" as Marion's sword. Section - Marion's ship Marion's ship is proper-named scenery in ByRoundabout. The description of Marion's ship is "[if player is Harriet]You try to imagine what Marion's ship looks like. It would be one of those big pirate ones, with ropes and sails all over it, and it would make squeaky wood sounds.[otherwise]You can imagine Marion's ship rocking on the stormy seas, with tough Red Marion pacing up and down the deck, not bothered by the wind or water at all." Understand "deck" as Marion's ship. Before examining Marion's ship: abide by the duelblock B rule. Instead of doing anything other than examining to Marion's ship: abide by the duelblock B rule; say "[no-time][If player is Harriet]You don't want to mess around with Marion's ship. You think Marion would yell at you if you did.[otherwise]You think you should leave Marion's ship alone." Before Marion going south in ByRoundabout: [remove ship when Marion leaves] now Marion's ship is off-stage. Section - Clapping Games Table of clapgoofing goof "'You messed up!' says Marion to [otherid]. [if player is Harriet]'No way,' says Demi.[otherwise]'No I didn't,' says Harriet." "'You goofed,' Marion says to [otherid]. [if player is Harriet]'You goofed!' replies Demi.[otherwise]'No!' says Harriet." "[RandomLock]'Oops, sorry,' Marion says to [otherid]. [if player is Harriet]Demi [one of]shakes[or]grabs[or]squeezes[purely at random] Marion's shoulders and pretends to scream. Marion laughs.[otherwise]Harriet giggles." "'Ugh, stop,' Marion tells [otherid]. [if player is Harriet]Demi rolls her eyes.[otherwise]'Heh heh,' says Harriet." "'[if player is Harriet]Stop, stop, stop![otherwise]Wait,[end if]' [otherid] says to Marion. Marion stops trying to clap." "'You were meant to put your hands like this,' Marion tells [otherid]. [if player is Harriet]'Ah, okay,' says Demi.[otherwise]'Oh, I get it now,' says Harriet." "[if player is Harriet]'No, put your hands like this,' Marion tells [otherid]. She holds Demi's hands and moves them around.[otherwise]'You just put your hands back to front, silly,' Marion says to Harriet. Harriet looks like she's trying hard to concentrate. You love when she makes that face[first time], it's funny[only]." "[if player is Harriet]'Listen to me, I know how to do it right,' Demi tells Marion. She grabs Marion's hands and moves them around. 'Oh yeah,' says Marion.[otherwise]'Haha,' Harriet says to Marion. 'You did it wrong. Do this -' She turns Marion's hands around." Table of double lyrics lyric "'Double double [thisthing] [thisthing],' they say, [random clap]clapping each other's hands back and forth. " "'Double double [thatthing] [thatthing],' say Marion and [otherid], [random clap]clapping each other's hands front and back. " "'Double [thisthing], double [thatthing],' say Marion and [otherid], [random clap]clapping each other's hands back and forth. " "[RandomLock]'Double double [thisthing] [thatthing][one of],[or]![purely at random]' say Marion and [otherid], [random clap]finishing the game. " Table of double victory victory "[if player is Harriet]They laugh and clap at how well they did.[otherwise]They congratulate each other on how well they played." "Marion laughs." "[otherid] [if player is Harriet]giggles[otherwise]laughs." "[otherid] says, 'Yes!'" "Marion says, 'That was a good one.'" "Marion says, 'That was a really good one!'" "'Yeah!' says [otherid]." Table of Harriet clapping topics [Harriet as in - the clapper is Harriet] thiss thatt "ice" "cream" "this" "that" "jet" "plane" "land" "lubber" "big" "small" "fairy" "floss" "fairy" "bread" "sing" "song" "kiss" "hug" "T" "shirt" "T" "V" "pony" "tail" "lolly" "pop" "ice" "block" "hop" "scotch" "dog" "house" "cool" "pool" Table of Demi clapping topics thiss thatt "ice" "cream" "this" "that" "jet" "plane" "broom" "stick" "black" "cat" "fat" "cat" "scaredy" "cat" "rat" "cat" "sun" "shine" "rain" "cloud" "rain" "bow" "yo" "yo" "up" "down" "slippery" "dip" "beach" "ball" "tea" "bag" "black" "hat" "ping" "pong" clapstatus, clapgoof, clap_seenstart are number variables. [global] thisthing, thatthing are text variables. [global] Every turn when Marion is home: if clapgoof is 2: now clapgoof is 0; now clapstatus is 0; if clapgoof is 1: increment clapgoof; if location is Picnic: lock the dice; choose a random row in the table of clapgoofing; say goof entry; say line break; continue the action; increment clapstatus; if clapstatus is 5, now clapstatus is 1; if clapstatus is 1: if player is Harriet: lock the dice; choose a random row in table of Demi clapping topics; now thisthing is thiss entry; now thatthing is thatt entry; otherwise: lock the dice; choose a random row in table of Harriet clapping topics; now thisthing is thiss entry; now thatthing is thatt entry; if location is Picnic, say "Marion and [otherid] start a new [first time]clapping [only]game. "; if clapstatus is less than 4: lock the dice; if a random chance of 1 in 4 succeeds, now clapgoof is 1; if player is in Picnic: choose row clapstatus in table of double lyrics; say lyric entry; if clapgoof is 1: if player is Harriet, say "[RandomLock][if player is Harriet]Oops! [one of]Marion[or]Demi[or]They both[purely at random] made a mistake."; if player is Demi, say "[RandomLock]Oh, [one of]Marion[or]Harriet[purely at random] just [one of]messed up[or]made a mistake[or]missed her clap[purely at random]."; otherwise if clapstatus is 4: lock the dice; choose a random row in table of double victory; say victory entry; say line break; otherwise: say line break. Section - Gathered duel content Table of Fairy Bread [really this is the table of Undoability - just calling it fairy bread as a diversion for file hackers] woe 0 [undo status] 1 [status window colour choice] To zap undoability: now woe in row 1 of Table of Fairy Bread is 0; write File of Undoability from Table of Fairy Bread. To oneify undoability: now woe in row 1 of Table of Fairy Bread is 1; write File of Undoability from Table of Fairy Bread. duel_mode is a number variable. [global] duel_position is a number variable. [global] duel_text is a text variable. [global] duel_fresh is a number variable. [global] [To reinstate the duel_fresh effect, search for duel_fresh through source and remove comments from all relevant lines.] immunity_idol is a number variable. immunity_idol is 1. [global] [if this is ever 0 at the end of a turn during duel, player will die. resets to 0 after each check. starts at 1 so player survives first turn.] Check demanding exit listing when duel_mode is 1: instead say "[no-time]You can't go anywhere until you finish the duel!" This is the duelblock A rule: if duel_mode is 1, instead say "[no-time]You can't do that now, you're dueling!" This is the duelblock B rule: if duel_mode is 1, instead say "[no-time]You shouldn't do that now, you're dueling!" To say duellaunch: let answer be yesno_answer_with_question "You have a quick think. [Harriet leafcheck]Will you duel with Marion now? [bold type] (Y/N)[roman type]"; if answer is "NO": say "[line break]You shake your head. 'Not yet,' you say.[paragraph break]'Landlubbers like you are always chickens,' she says. 'Well, I'll be waiting for you here on my ship. Come and talk to me when you're ready to duel.' Then she starts walking around slowly with her hands behind her back. It looks like she's on the deck of a ship. "; [deliberate trailing space here needed to avoid a double paragraph print for some reason. I don't think there's any circumstance where this will backfire, but there might be.] rule succeeds; if answer is "YES": if player holds leafmissile or player holds leaf, do the preduel leaf disposal; commence Harriet's duel; rule succeeds. To say Harriet leafcheck: if player holds leafmissile or player holds leaf, say "If you duel now, you'll have to drop your [if player holds leaf]leaf[otherwise]leaves[end if] so your hands will be free. " To do the preduel leaf disposal: say "[line break]Okay. You drop the [if player holds leaf]leaf and it gently blows away.[otherwise]leaves and they gently blow away. You clap the leaf dust off your hands."; if player holds leafmissile, now leafmissile is off-stage; now a leaf is part of bunch leaves. To commence Harriet's duel: say duel_banner; say "[line break]'I'm ready,' you say, gripping your wand.[paragraph break]Marion grins and raises her sword. 'Right! I challenge you to a duel, landlubber! Winner takes all!'[paragraph break]'Stop calling me landlubber,' you say.[paragraph break]'Sorry,' says Marion. 'Okay, I challenge you to a duel, Harriet.'[paragraph break]'Yeah, let's challenge!' you say."; do the preduel clearout; say duel_instructions; do the post fader check; now duel_text is "'Let's go!' shouts Marion.[paragraph break]She immediately slices her sword towards you and yells out [do Marion's zap]'Zap!'[paragraph break]That zap from her sword is about to hit you! You better act fast."; say duel_text; give Marion pose 2; if duel_commence_fix of Marion is 1: say line break; now duel_commence_fix of Marion is 0. To say duel_banner: say "[line break][first custom style]-------- THE DUEL --------[normal style][line break]". To do the preduel clearout: let X be 0; [need to clear room of Pia and Jack, if they're in it] if Pia is in location, increment X; if Jack is in location, increment X; if player is Demi and X is 0: say paragraph break; if X is not 0: if player is Harriet: say "[line break]Marion [run paragraph on]"; otherwise: say "Then she [run paragraph on]"; if X is 2: now dont_report_this_turn of Jack is 1; now dont_report_this_turn of Pia is 1; lock the dice; now chaseroom is a random adjacent room; activate chaseway; try Jack going chaseway; try Pia going chaseway; say "turns to Jack and Pia and says, [if player is Harriet]'Go away, you guys! I don't want you messing up our duel.[paragraph break]Jack rolls his eyes. Then he runs [otherwise]'You guys will have to leave, otherwise you might mess up our duel.'[paragraph break]Jack frowns, then runs [end if]away to the [chaseway], followed by Pia."; otherwise if X is 1: if Jack is in location: lock the dice; now chaseroom is a random adjacent room; activate chaseway; now dont_report_this_turn of Jack is 1; try Jack going chaseway; say "turns to Jack and says, 'Go away, Jack! We need all this space for our duel.'[paragraph break][if player is Harriet]Jack pretends to be Marion, putting his hands on his hips and saying [italic type]'Go away, Jack! Go away, Jack!'[roman type], which makes you giggle. Then he waves and [otherwise]'I'm insulted!' says Jack. Then he [end if]walks away to the [chaseway]."; if Pia is in location: lock the dice; now chaseroom is a random adjacent room; activate chaseway; now dont_report_this_turn of Pia is 1; try Pia going chaseway; say "turns to Pia and says, 'Pia, you have to leave. [Yourid] and I need all this space for our duel.'[paragraph break]'Alright', says Pia, and she walks away to the [chaseway]."; if player is Demi, say line break. To say duel_instructions: print the duel instructions; say "[line break][first custom style]<< Press SPACE to begin the duel when you're ready >>[normal style][paragraph break]"; play_pirate_music; do the piratemusic timer; get_the_space_key; now duel_mode is 1; if wind_has_blown is 0, wind strikes in 8 minutes from now; [move wind strike out beyond end of duel] now duel_position is 1; now duel_fresh is 1; do the post fader check. To print the duel instructions: say "[line break][second custom style]<< In the duel, you should use these special commands: >>[paragraph break]ZAP - Type this to try to zap Marion with your wand. If you hit her, you win![line break]DODGE - Type this to try to run or jump out of the way of one of Marion's attacks.[line break]BLOCK - Type this to try to block one of Marion's attacks with your wand.[paragraph break]If you want to let Marion make the next move, you can try to WAIT.[paragraph break]If you want to see these special commands again, type SPECIAL.[paragraph break]You can also use regular commands during this duel if you think they will help[if player is Harriet], though most of the time, they won't![otherwise] - and they might![normal style]". To say hatfall fun: say "Oops! Her hat fell off, but she's not going back for it". This is the pirate hat loss rule: now black pirate's hat is in ByRoundabout; give Marion pose 4; advance the duel; rule succeeds. To say Marion reaches the hill: say "Now you can see where she's running to. There's a spot where the ground goes up a bit like a little hill, and Marion just jumped behind it. She pokes her head over the top of the hill and throws another shot at you, shouting 'Zap![run paragraph on]". To say Marion pops up: say "Waiting for her to appear again, you keep your wand pointed at the top of the hill…[paragraph break]There she is, she just put her head up". Before taking black pirate's hat when duel_mode is 1: if player is Harriet: if duel_position is 3 or duel_position is 5: say "You run across the grass towards Marion's hat. You are just putting your hand on top of it to pick it up when you hear Marian yell [do Marion's zap]'Zap!'… Uh oh![paragraph break]"; instead do the Harriet dp1kill; if duel_position is 4: say "Before you can move, [do Marion's zap]Marion's zap hits you.[paragraph break]"; instead do the Harriet dp1kill. To do Marion's spinaround victory: say "She spins around on the spot, points her sword at you and yells out [do Marion's zap]'Zap!'[paragraph break]You weren't ready for that zap at all."; do the Demi dp1kill. Before taking or wearing black witch's hat when player is Demi and black witch's hat is in ByRoundabout: if mounted of roundabout is 1: instead say "[no-time]You're on the roundabout. Your hat is too far away."; if duel_mode is 1: say "Not having your hat is driving you crazy! You turn around and run back for it...[paragraph break]'Zap!' [do Marion's zap]yells Marion.[paragraph break]Rats, what a dumb mistake you just made! You forgot your rule about never turning your back on your opponent."; instead do the Demi dp1kill; otherwise: say "You pick up your hat and examine it. It looks fine again now that the duel is over. Whew! You place it back on your head."; renew demi's hat; rule succeeds. to renew demi's hat: now description of black witch's hat is "It's tall, pointy and black."; now Demi wears black witch's hat. Before doing anything to black witch's hat when player is Demi and black witch's hat is in ByRoundabout: if duel_mode is 1: unless action is okay for the hat drama: instead say "[no-time]You need to concentrate on the duel!"; otherwise: instead say "[no-time]It's time to wear your hat again." To decide whether the action is okay for the hat drama: if examining, yes; no. To say Marion kneel and retaliate: say "There, she kneels down so that the bars of the roundabout are giving her some cover. She grabs onto them with one hand, then leans out around the side of the roundabout to throw a shot at you with her sword - 'Zap![run paragraph on]". To do the roundabout bump death: say "Oops, you bumped the roundabout! Marion shoots at you again immediately while you're confused - 'Zap!'[paragraph break]Rats, she got you!"; do the Demi dp1kill. To proceed to Demi's victory: now duel_mode is 0; give Marion pose 14; if Ayla is in GiantGarden: now dont_report_this_turn of Ayla is 1; try silently Ayla going west; say "Ayla comes back into the clearing. 'Is it over?' she asks. Then she sees Marion lying on the ground and says, 'Hooray for Witch Demi!'[line break]"; now ayla_mode is 1; say "[line break]You help Marion onto her feet, pat her on the back and say, 'Tip'."; now current_actor is Marion; abide by the grant_a_point rule; say "[line break]'Good work, Witch Demi,' says Marion, shaking your hand. 'You're no landlubber after all.' She gives you a salute with her sword.[paragraph break]'Thanks,' you say, taking a little bow. "; if ayla_mode is 1 and black witch's hat is in location: say "[paragraph break]Ayla just picked your hat up off the grass. 'Here's your hat,' she says, bringing it over to you.[paragraph break]'Thanks,' you say, noting that your hat looks fine again now that the duel's over. You pull the hat down onto your head. Ah, that's much better!"; renew demi's hat; otherwise: say line break; Marion leaves in 1 minute from now. At the time when Marion leaves: now Marion is returning; now initial appearance of Marion is "Marion is walking along here."; if Marion is in location: now dont_report_this_turn of Marion is 1; if described_her_actions of Marion is 1: say "[if player is Harriet]Marion waves and walks away to the south.[otherwise]'I'm going on my pirate holiday right now,' says Marion. She walks away to the south."; otherwise: say "[if player is Harriet]'I'm going on a pirate holiday now,' says Marion. She walks away to the south.[otherwise]'Well, pirates can't just stand around,' says Marion. 'They have to do pirate stuff.' Then she walks away to the south."; now described_her_actions of Marion is 1; try Marion going south. [NB - Do not use one of the below 'say' combat sound effects in the same pass as you use one of the 'combos' - because the one-offs cancel the combo sound queue when they happen. This is deliberate. ] To say do Harriet's block: now combatlist is { }; play_Harriet_block. To say do Harriet's zap: now combatlist is { }; play_Harriet_zap. To say do Demi's zap: now combatlist is { }; play_Demi_zap. To say do Demi's block: now combatlist is { }; play_Demi_block. To say do Marion's zap: now combatlist is { }; play_Marion_zap. To say do Marion's block: now combatlist is { }; play_Marion_block. To say combo 1delay1: now combatclock is 1000; now combatlist is { 1, 1 }; perform combat noises. To say combo 111 fast: now combatclock is 450; now combatlist is { 7, 7, 7, 1, 1, 1 }; perform combat noises. To say combo 141: now combatclock is 1000; now combatlist is { 1, 4, 1 }; perform combat noises. To say combo 321: now combatclock is 1000; now combatlist is { 3, 2, 1 }; perform combat noises. To say combo 1111: now combatclock is 700; now combatlist is { 7, 1, 1, 1, 1 }; perform combat noises. To say combo delay 1: now combatclock is 2500; now combatlist is { 7, 1 }; perform combat noises. To say combo 51: now combatclock is 450; now combatlist is { 5, 1 }; perform combat noises. To say combo 5delay1: now combatclock is 5500; now combatlist is { 5, 1 }; perform combat noises. To say combo 61: now combatclock is 450; now combatlist is { 6, 1 }; perform combat noises. Every turn when duel_mode is 1: if immunity_idol is 0: [if, with your action, you did not make immunity_idol be 1, this rule will make you wait after your action has executed] try waiting; now immunity_idol is 0. To advance the duel: [the routine always increments duel pos by 1. To set to some other value, set duel_position to 1 less than the target value right before coming to this subroutine.] say duel_text; increment duel_position; now duel_fresh is 1; say line break; now immunity_idol is 1. To do the Harriet dp1kill: say "'I zapped you, I zapped you!' says Marion. 'It's over, landlubber! I won!'[paragraph break]'Don't call me landlubber,' you say.[paragraph break]Because of the deal you made with Marion before the duel, you've lost this game of tip. Plus you'll have to tell everyone that Marion beat you. How annoying!"; do the both sisters duel closure. To do the Harriet dp2kill: say "Because of the deal you made with Marion before the duel, you've lost this game of tip. Plus you'll have to tell everyone that Marion beat you. How annoying!"; do the both sisters duel closure. To do the Demi dp1kill: say "[line break]'Ha!' says Marion. 'Nobody can defeat Red Marion in a duel! You lose, Witch Demi.'[paragraph break]Uh oh. You told Marion she would be the winner of this game of tip if she beat you in the duel, and that's just what she's done..."; do the both sisters duel closure. To do the both sisters duel closure: pause_only; play_lose_music; [normally I play the music before the keypress pause, but here it felt better this way] say "[paragraph break][first custom style]*** MARION DEFEATED YOU! YOU'VE LOST! ***[normal style][line break]"; end the story. Chapter - Sam Sam is a male chasee. "Sam the knight is here. He looks tense, and ready to run away from you." Sam is in Moreton West. Sam has numbers called fatigue, cue_exhausted, times_tipped, just_got_up, ever_chased, ever_begged, he_likes_that_way, described_his_actions, tired_pesters. [times_tipped is incremented whenever you chase Sam or try to tip him - compare this to 'ever_chased' - they're slightly different] [ever_chased is set to 1 the first time you physically follow Sam around the tree, and not before - both sisters] The introduction of Sam is "[if player is Harriet]Wandering around under the fig tree is Sam the Knight. He is so surprised by your arrival that he wobbles and almost trips over one of the giant tree roots.[paragraph break]'Forsooth!' he says, as he prepares to run away from you.[paragraph break]But what does 'forsooth' mean?[otherwise]Standing in the shade of the tree is a brave knight... well, maybe not a brave one. It's Sam. His grey armour doesn't fit him too well, so he looks a bit funny.[paragraph break]'The witch is here!' you shout, pointing your wand at Sam. [paragraph break][ayla witch addition]Sam gives a little scream. Yes, he should be afraid of you!" To say ayla witch addition: if ayla_mode is 1, say "'And the princess,' adds Ayla.[paragraph break]". The description of Sam is "[if player is Harriet]Sam is a bit of a chubber, so his belly sticks out from under his grey armour. He also has a grey helmet wobbling on his head.[otherwise]Sam is a very plump knight. His grey armour doesn't reach over his stomach. His square-shaped knight helmet doesn't fit his big, round face too well, either.[first time] Sometimes people call him 'fatty' at school, which is mean.[only]". Understand "knight" and "sam the knight" as Sam. Sam wears knight costume. knight costume is proper-named. Understand "sams/sam's costume", "sams/sam's knight costume" as knight costume. The printed name of knight costume is "Sam's knight costume". Instead of examining knight costume: try examining Sam. Sam wears the grey armour. The description of grey armour is "[if player is Harriet]Sam's armour is grey and looks like a bunch of overlapping dinner plates.[otherwise]Sam's grey armour doesn't fit him well, but it does look tough." Understand "gray/armor", "sams/sam's/grey/gray armour/armor", "sams/sam's grey/gray armor/armour" as grey armour. Sam wears a headgear called the grey helmet. The description of grey helmet is "[if player is Harriet]Sam's helmet is always wobbling, and looks like it could fall off his head at any moment.[otherwise]That helmet could really use a strap or something. It's too loose for Sam's head." Understand "gray/helm", "grey/gray helm/helmet", "sams/sam's grey/gray helm/helmet" as grey helmet. Report Sam going a direction (called way): [note - Sam only moves by the regular 'going' method when he is returning to Picnic after being tipped. That's why there's only 1 message here.] if just_got_up of Sam is 1, stop the action; if last location of Sam is the location of the player: if player is Demi and described_his_actions of Sam is 0: say "Sam says, 'I'm just going back to the picnic area.' Then he trudges away [way]."; now described_his_actions of Sam is 1; stop the action; instead say "Sam trudges to the [way]." [use of 'instead here' will stop the rule continuing if it fires. When it continues, that will allow 'Sam arrives' type messages] After Sam going south from Edge Park: now description of Sam is "[if player is Harriet]Sam is slumped over the table. His face is all red from running around in this heat. He looks like he's having a little nap.[otherwise]Your prisoner, Sam the knight, looks like he's about to fall asleep."; now initial appearance of Sam is "[if player is Harriet]Sam is sitting at the picnic table. He looks hot and tired out.[otherwise]Sam is sitting at the picnic table. He looks really tired."; continue the action. [without this line, the 'Report' rule is not invoked, as the 'After' rule normally stops the flow of rule-checking.] Chapter - Vince Vince is a male chasee. "Vince is hiding here behind the garden bed." [alternate init appearances set during demi game setup] Vince has room called hideyhole. hideyhole of Vince is GiantGarden. Vince has numbers called identified_hideyhole, found_him, dont_report_this_turn. [note - identified_hideyhole goes up to 3 in harriet game. In Demi game, it is only 0, or 1 (you have searched his hiding place, which the dog pointed out, and revealed him)] Understand "chinese/army/soldier", "army soldier/man/guy", "chinese army soldier/man/guy" as Vince. Understand "bottom" as Vince when player is Harriet and Vince is in location and Vince is untagged. Description of Vince is "[if player is Harriet]Vince is dressed as an army soldier. His uniform is all green and patchy. He's Chinese and he has black hair. One time at show and tell, he told a story about his parents coming to Australia from China when he was a baby.[otherwise]Vince is an army soldier. He dressed in one of those green uniforms that army people wear. He is quite tall and has thick black hair and eyebrows." Vince wears Vince's patchy green army soldier uniform. Vince's patchy green army soldier uniform is proper-named. The description of Vince's patchy green army soldier uniform is "[if player is Harriet]The uniform is totally green. You don't think it looks very nice.[otherwise]You think the uniform is green because it makes you harder to see when you're fighting in the jungle." The printed name of Vince's patchy green army soldier uniform is "Vince's army uniform". Vince wears a privately-named, proper-named thing called soldier costume. The printed name of soldier costume is "Vince's soldier costume". Understand "costume", "soldier/green/army/vince/vinces/vince's costume", "vince/vinces/vince's/green soldier/army costume", "vince/vinces/vince's green soldier/army costume" as soldier costume. Instead of examining soldier costume: try examining Vince's patchy green army soldier uniform. To say pirate hat status: say "[if Marion wears black pirate's hat]On her head is a black pirate's hat[otherwise]Her black hat is on the grass at the moment". Report Vince going a direction (called way): now current_actor is Vince; abide by the not reporting for this turn rule; If Vince is returning or Vince is home: if last location of Vince is location, instead say "Vince sneaks away to the [way]." After Vince going south from Edge Park: now initial appearance of Vince is "Vince is standing very still near the trees. It's hard to see him."; continue the action. [See 7.1.5 in Recipe book for more good movement report stuff and tricks.] [SEE PATIENT ZERO FOR A NPC MOVEMENT LOOP!] Book - The World superscenery is a kind of thing. superscenery is scenery. superscenery can be spoken of or not spoken of. superscenery is usually not spoken of. Carry out looking: now every superscenery in location is spoken of; [first time a room description is printed (as part of entering-a-new location-looking) any superscenery within that room will become spoken of.] now every person in location is hero. a bench is a kind of thing. bench is usually fixed in place. megaflora is a kind of thing. megaflora is scenery. Instead of taking megaflora: say don't pick the beautiful flowers. To say don't pick the beautiful flowers: say "[no-time][if player is Harriet]You know that these beautiful flowers are for looking at, not for picking.[otherwise]You know that people aren't mean to take any of these flowers." A room can be superrocking, rocking or verboten. A room is usually superrocking. [superrocking = any chasee can move there. rocking = chasees can only move there if chased. verboten = chasees can never go there] Gazebo is rocking. Picnic, Treehouse, hedgestart are verboten. [prevents Jack (and perhaps other kids) fleeing randomly to these rooms.] Outdoors is a region. Edge Park, Picnic, Tree Garden, Shade Mud, BelowWall, Moreton West, Moreton East, GiantGarden, AboveWall, BottomTreehouse, ByKoala, Tri Path, Hedge Maze, ByRoundabout, hedgestart are in Outdoors. [This is a list of all rooms outside InMaze EXCEPT Gazebo and Treehouse.] A room can be oklady or antilady. A room is usually antilady. BelowWall, Moreton West, GiantGarden, AboveWall, BottomTreehouse, ByKoala, Tri Path, Hedge Maze are oklady. InMaze is a region. R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16 are in InMaze. Definition: A direction is cardinal if it is not up and it is not down. Part - Backdrops To decide whether the action is okay for backdrops: if examining, yes; no. Chapter - Park There is an improper-named backdrop called park. The indefinite article is "the". park is everywhere. The description of park is "[if location is Picnic]You're in the picnic area south of the park. The park is to the north.[otherwise][park desc]." To say park desc: say "The park is all around you[if the player is Harriet]. It's huge and green and filled with tall trees and pretty flowers[otherwise]. It's a big, beautiful and exciting place" Instead of doing anything other than examining to the park: say "[no-time][second custom style]<< Since the park is all around you, you don't need to mention it in your commands. For example, there is no point typing a command like JUMP IN THE PARK. You can just type JUMP. >>[normal style][line break]". Chapter - Sky The sky is a backdrop. The sky is everywhere. [You can even see it from in the Gazebo] Description of sky is "[if player is Harriet]It's super bright and super blue.[otherwise]The sky is clear and blue. There sure is a lot of room up there." Understand "blue sky" as the sky. Before examining sky: if location is Moreton West or location is Moreton East, instead say "You can hardly see the sky through the fig tree." Instead of doing anything to the sky: if the action is okay for backdrops, continue the action; otherwise say "[no-time]You don't need to think about the sky right now." Chapter - Sun The sun is a backdrop. The sun is everywhere. [You can even see it from in the Gazebo] Understand "sunlight" as sun. Description of sun is "[if player is Harriet]It's too bright to look at![otherwise]Looking at the sun hurts your eyes." Before examining sun: if location is Moreton West or location is Moreton East, instead say "Your view of the sun is partly blocked by the branches of the fig tree." Instead of doing anything to the sun: if the action is okay for backdrops, continue the action; otherwise say "[no-time]You don't need to think about the sun right now." Chapter - Clouds The clouds is a plural-named backdrop. The clouds are everywhere. Understand "cloud" as clouds. Description of clouds is "There are no clouds in the sky today." Instead of doing anything other than examining to the clouds: try examining clouds. Chapter - Aeroplane the aeroplane is a privately-named backdrop. aeroplane is everywhere. Description of aeroplane is "[if plane_block of Ayla is 1]It's not one of those huge ones that carries lots of people, but it's big enough to make a lot of noise.[otherwise]You can't see the plane anymore. It flew away." aeroplane has number called flown. Understand "aeroplane", "plane" as aeroplane when flown of aeroplane is 1. [keeps aeroplane invisible until this flag is set] Before doing anything other than examining to aeroplane: instead say "[no-time]The aeroplane has gone. You don't need to think about it anymore." Chapter - The Grass (lawn / ground) the grass is a privately-named backdrop. grass is in InMaze, Outdoors. [IE it's everywhere except in the Gazebo.] Understand "grass/lawn/ground", "grass lawn" as grass. Description of grass is "[if player is Harriet]The grass is nice and green and spongy.[otherwise]The grass is soft and green." Instead of coresearching or examining grass when ladybug prime is 1: say "[one of]You carefully inspect the ground where Ayla was looking. 'I agree with you,' you say. 'I think the ladybugs were having a tea party here yesterday.'[paragraph break]'I knew it!' says Ayla. 'I wonder where they are today?'[paragraph break]'I don't know,' you say. 'They could have gone anywhere.'[or]You and Ayla search the ground again, but you don't find any more clues about the ladybugs.[stopping]". Instead of doing anything to grass: if the action is okay for backdrops, continue the action; otherwise say "[no-time]You don't need to fiddle around with the grass today." Chapter - Hedges There is a privately-named, improper-named backdrop called hedgea. The indefinite article of hedgea is "the". Printed name is "hedge". hedgea is in InMaze, Hedge Maze, hedgestart, ByKoala. Understand "hedge", "hedges" as hedgea. The description of hedgea is "[if player is Harriet]The hedge is like a wall that is made out of plants instead of bricks. The tiny leaves and branches grow so close together that you can't see through them.[otherwise]Looking at the hedges makes you wonder how they work. If you could grow a wall out of the ground using only plants, that would be a hedge. But how would it get to be so square? You will have to think about that later." the hedgea branches leaves is privately-named, improper-named. hedgea branches leaves is part of hedgea. The printed name of hedgea branches leaves is "hedge branches and leaves". The description of hedgea branches leaves is "The leaves and branches that make up the hedges are tiny." Understand "branch/branches/leaf/leaves/plant/plants/tiny", "tiny/hedge branch/branches/leaf/leaves/plant/plants", "tiny hedge branch/branches/leaf/leaves/plant/plants", "branches and leaves", "leaves and branches", "hedge branches and leaves", "hedge leaves and branches", "tiny hedge branches and leaves", "tiny hedge leaves and branches" as hedgea branches leaves. Instead of taking hedgea branches leaves: say "[no-time]You've got no use for any of those tiny bits and pieces from the hedge." Does the player mean doing anything to hedgea: it is unlikely. Does the player mean doing anything to hedgea branches leaves: it is unlikely. Chapter - Trees There is a privately-named, plural-named, improper-named backdrop called treesa. Printed name is "gum trees". The indefinite article of treesa is "the". The description is "[if player is Harriet]Most of the trees in the park are tall gum trees. They're grey, silver, white and green. Their branches are high up on the trunk and point towards the sky.[otherwise]The park is full of these gum trees. They have silver trunks and their branches reach up, not sideways." Understand "gum/tree/trees/grey/gray/silver/white/green/trunk/trunks", "gum tree/trees", "gum tree/trees trunk/trunks", "grey/gray/silver/white/green gum tree/trees", "grey/gray/silver/white/green gum tree/trees trunk/trunks" as treesa. treesa is in Picnic, Shade Mud, BelowWall, GiantGarden, AboveWall, BottomTreehouse, Edge Park, Tri Path, Hedge Maze, ByRoundabout. treesa branches is a privately-named, plural-named, improper-named part of treesa. The printed name of treesa branches is "gum tree branches". The indefinite article is "the". The description of treesa branches is "[if player is Harriet]The gum tree branches are high above you, and they go up and up and up and up...[otherwise]The gum tree branches are very high up, far out of reach." Understand "branch/branches", "grey/gray/silver/white/green/gum branch/branches", "tree branch/branches", "grey/gray/silver/white/green/gum tree branch/branches", "gum tree branch/branches", "grey/gray/silver/white/green gum tree branch/branches" as treesa branches. Instead of taking treesa branches: say "[no-time][if player is Harriet]The branches are strong, and they're out of your reach.[otherwise]Even if you could reach one of the branches, you wouldn't want to break a branch off a healthy tree. Well, maybe if there was a dead branch, but these branches are all healthy!" the treesa bark is privately-named part of treesa. The printed name of treesa bark is "gum tree bark". The description of treesa bark is "[if player is Harriet]The gum tree bark is silver in colour. It doesn't peel away from the tree.[otherwise]The silver bark on the gum trees is like their skin." Understand "bark", "silver/tree/trees/gum bark", "silver/gum tree/trees bark", "silver gum tree/trees bark" as treesa bark. Instead of taking treesa bark: say "[no-time][if player is Harriet]You can't get any bark off the gum trees. It just doesn't peel off.[otherwise]It doesn't come off. The gum tree bark can't be separated from the tree." treesa leaves is a privately-named, plural-named, improper-named part of treesa. The printed name of treesa leaves is "gum tree leaves". The indefinite article is "the". The description of treesa leaves is "[if player is Harriet]The gum leaves are long and green. They hang far above your head.[otherwise]The gum leaves are shaped like long teardrops. They're high up on the gum trees." Understand "leaf/leaves/gumleaf/gumleaves/green", "gumtree/gum/tree/green leaf/leaves", "gum tree leaf/leaves", "green gumtree leaf/leaves", "green gum tree leaf/leaves" as treesa leaves. Instead of taking treesa leaves: if player is Demi and Demi holds a leaf: say "[no-time]You've already got a leaf, and you can only carry one at a time."; otherwise: say "[no-time][if player is Harriet]The leaves of the gum trees are way up out of your reach[leafclue].[otherwise]The gum leaves are well out of your reach." Does the player mean doing anything to treesa: it is unlikely. [rank down one - get them below more notable stuff] Does the player mean doing anything to treesa branches: it is unlikely. [rank down one - keep rank equal with treesa] Does the player mean doing anything to treesa bark: it is unlikely. Does the player mean doing anything to treesa leaves: it is unlikely. Does the player mean doing something with treesa leaves: it is unlikely. [rank them below leafmissile and leaf - important for trying to throw leaf/leaves when in Below Treehouse] To say leafclue: [this is only in Harriet's game] if player holds leafmissile: say ". Besides, you already have a bunch of leaves"; rule succeeds; if wind_has_blown is 1 [and unhappy trees is examined] and leafiness of Harriet is 0: say ". Maybe you'll find some leaves back at the edge of the park now that that big wind has blown". Chapter - Field There is a backdrop called the field. field is in R9, BelowWall. Instead of examining field: try looking. Chapter - Clearing There is a backdrop called the clearing. clearing is in ByKoala, ByRoundabout, R2, R7, R14. Understand "grassy clearing" as the clearing. Instead of examining clearing: try looking. Chapter - Flowerbed and flowers There is a backdrop called the flowerbeds. the flowerbeds is in Edge Park, BottomTreehouse. Understand "bed/beds", "flowerbed/bed/beds", "flower bed/beds" as flowerbeds. Description of flowerbeds is "There are lots of different kinds of flowers in the flowerbeds. [if player is Harriet]They're so pretty. If you weren't playing tip, you might like to collect some.[otherwise] They look nice. Do witches do magic with flowers? You're not sure, but you don't have time to find out right now. You've got people to find." the flowers are part of flowerbeds. Description of flowers is "[if player is Harriet]It would be fun to grow flowers like this at home, but dad says mum has a black thumb. You asked him what that means, and he said, 'It means she's not very good at gardening.'[otherwise]Some of these flowers are lovely. You have a feeling a witch shouldn't think words like 'lovely', though." Understand "flower/petal/petals/pretty/lovely", "pretty/lovely flower/flowers" as flowers. Instead of taking flowers: say "[no-time][if player is Harriet]Not now. Maybe you'll pick some after your game.[otherwise]You will pick some flowers later this afternoon. You're too busy with being a witch and finding your friends at the moment." Chapter - Path and pathways There is an improper-named backdrop called the path. path is in Edge Park, Picnic, Tree Garden, Shade Mud, BelowWall, Moreton West, Moreton East, GiantGarden, AboveWall, BottomTreehouse, ByKoala, Tri Path, Hedge Maze, ByRoundabout, R6, R7, R8, R9, R10, R11. Instead of examining path: try looking. Understand "paths/pathway/pathways" as path. Understand "neat path", "neat paths/pathway/pathways" as path when location is GiantGarden. Does the player mean doing anything to the path: it is unlikely. [rank it below, for instance, triangle shaped path] Chapter - Yellow arrows the yellow arrows are a plural-named, improper-named backdrop in InMaze. Description of yellow arrows is "Wherever you go in the maze, there are always yellow arrows like these on the ground to show you the way to the exit." The indefinite article is "the". Understand "arrow", "yellow arrow" as yellow arrows. Understand "follow arrow/arrows/yellow", "follow the arrow/arrows/yellow", "follow yellow arrow/arrows", "follow the yellow arrow/arrows" as newexiting without destination when maze_mode is 1. Part - The Edge of the Park (Edge Park) There is a room called Edge Park. The printed name is "The Edge of the Park". The destination name is "the edge of the park". To say Edge_Park_desc: if the player is Harriet, say "You're at the south edge of the park. It's super hot today and the sun is pouring down on the grass and the flowerbeds[sick tree desc].[paragraph break]From here, paths lead north, east and west through the park, and to the south is the picnic area where mum and dad will set up lunch later"; if the player is Demi, say "This is the south edge of the park. The sky is blue and bright today, and the air is warm[sick tree desc].[paragraph break]Paths lead north, east and west, and to the south is the picnic area"; if the turn count is 1 and given_intro is 0 and player is Harriet: say ".[paragraph break](If this is your first time playing Six, type HELP to learn some very helpful stuff)"; now given_intro is 1. The description of Edge Park is "[Edge_Park_desc]." Understand "green/bright", "green/bright tree/trees", "tall", "tall tree/trees", "super tall", "super tall tree/trees", "super-tall", "super-tall tree/trees" as treesa when location is Edge Park. given_intro is a number variable. given_intro is 0. [GLOBAL] To say sick tree desc: if unhappy trees is not spoken of: if player is Harriet: say ". The trees here reach for the sky. Most of them are green and bright, "; if wind_has_blown is 0: say "but a few look unhappy and are covered in loose, dry leaves which wobble in the breeze. A good wind will blow them free"; otherwise: say "but a few look unhappy and dry"; otherwise: say ". Pretty flowers shake in the breeze around the base of some super-tall trees. "; if wind_has_blown is 0: say "A few of the trees look unwell, and the curly leaves on the unwell ones are ready to fall off"; otherwise: say "A few of the trees look unwell". To say the unhappy short description: say "You see some [unhappy or unwell] trees here." [A SUPER IMPORTANT NOTE ON ANY OF THESE 'HACK' RULES: Do not use RULE SUCCEEDS to get out of them, as it causes no-time activation to FAIL! Use only 'continue the action'] Carry out looking (this is the unhappy trees hack rule): if player is in Edge Park: if set to abbreviated room descriptions: say the unhappy short description; continue the action; [otherwise, if player didn't type LOOK, cancel the printout] if unhappy trees is spoken of, say the unhappy short description. The unhappy trees hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Carry out player going south from edge park: set pronouns from yerparents; [force 'them' to mean 'parents'] unless there is a male chasee in Picnic, set pronouns from dad. [force 'him' to mean dad if no male kids present] Chapter - Unhappy Trees unhappy trees are privately-named, plural-named, improper-named superscenery in Edge Park. Printed name of unhappy trees is "[unhappy or unwell] trees". The indefinite article is "the". The description of unhappy trees is "[unhappy trees desc]." Understand "tree/trees/unhappy/unhealthy/unwell", "unhappy/unhealthy/unwell tree/trees" as unhappy trees. To say unhappy trees desc: say "[if player is Harriet]Unlike the gum trees you can see all around the park, these ones don't look healthy. [otherwise]You don't know what kind of trees these unwell-looking trees are, but they're not gum trees. "; if wind_has_blown is 1, say "Their branches are bare now that the leaves have been blown down"; otherwise say "[if player is Harriet]Their crunchy leaves are out of your reach, but it looks like the wind could blow them free at any time[otherwise]Their dying leaves are all curly and crunchy, and will probably come down next time there's a strong wind". unhappy treebranches are a privately-named, plural-named, improper-named part of unhappy trees. The printed name of unhappy treebranches is "[unhappy or unwell] tree branches". The indefinite article is "the". The description of unhappy treebranches is "[if player is Harriet]The branches of the unhappy trees are grey, and they look worn out. They're high above you.[otherwise]The branches of the unwell trees are all grey and dried out." Understand "dead/grey/gray/branch/branches", "dead/grey/gray/tree/unhappy/unhealthy/unwell branch/branches", "dead/grey/gray/unhappy/unhealthy/unwell tree branch/branches", "unhappy/unhealthy/unwell grey/gray tree branch/branches", "grey/gray dead/unhappy/unhealthy/unwell tree branch/branches" as unhappy treebranches. Instead of taking unhappy treebranches: say "[no-time][if player is Harriet]They're out of your reach.[otherwise]The dead branches are out of reach." the unhappy treebark is privately-named part of unhappy trees. The printed name of unhappy treebark is "[unhappy or unwell] tree bark". The description of unhappy treebark is "[if player is Harriet]The unhappy trees don't seem to have any bark. Maybe it all fell off and blew away?[otherwise]The unwell trees seem to have lost all their bark." Understand "bark", "tree/trees/tree's/unhappy/unhealthy/unwell bark", "unhappy/unhealthy/unwell tree/trees/tree's bark" as unhappy treebark. Instead of taking unhappy treebark: say "[no-time]The [unhappy or unwell] trees don't have any bark." unhappy leaves are a privately-named, plural-named, improper-named part of unhappy trees. The printed name of unhappy leaves is "dry leaves". The indefinite article is "the". The description of unhappy leaves is "[if player is Harriet]You love playing with crunchy dry leaves, but these ones are still up in the tree.[otherwise]The dying leaves look nice and crunchy. Maybe they'll fall down later." Understand "leaf/leaves/dying/dry/crunchy/curly", "tree/curly/dying/dry/crunchy/unhappy/unhealthy/unwell leaf/leaves", "curly/dying/dry/crunchy/unhappy/unhealthy/unwell tree leaf/leaves" as unhappy leaves. Instead of taking unhappy leaves: say "[no-time]They're out of your reach. You'll have to wait for a wind to blow them down." Chapter - The Leaves To say leaf_fall_check: if saw_them_fall of bunch leaves is 0: now saw_them_fall of bunch leaves is 1; say ". They must have fallen when that big wind blew". There is a plural-named, improper-named thing called bunch leaves. "Hundreds of leaves are scattered all over the ground[leaf_fall_check]." The printed name is "bunch of leaves". The indefinite article is "a". Understand "dry/crunchy/scattered leaves", "bunch of dry/crunchy leaves", "bunch/hundreds of leaves", "hundreds/crunchy" as bunch leaves. The description of bunch leaves is "[if player is Harriet]They look fun and crunchy![otherwise]The leaves are like a carpet for the grass." bunch leaves has a number called saw_them_fall. There is an undescribed, improper-named missile called a leaf. The indefinite article of leaf is "a". leaf is part of bunch leaves. The description of leaf is "[if player is Harriet]The leaf is like a crackly, curly starfish, bigger than your hand.[otherwise]The leaf is a four-pointed star. It feels like dry paper with bumps all over it. It also reminds you of a dinosaur footprint or fossil.". a leaf is part of bunch leaves. Understand "dry/crunchy", "dry/crunchy leaf" as leaf. Understand "star" as leaf when player is Demi. leaf has a number called leafgrab_has_ever_run. There is a privately-named, improper-named, plural-named missile called leafmissile. [need no initial desc. because this item is never anywhere except in your inventory or offstage.] The printed name is "bunch of leaves". The indefinite article of leafmissile is "a". The description of leafmissile is "The crinkly leaves are bunched up in your cupped hands." Understand "dry/crunchy/leaves/bunch", "dry/crunchy leaves", "bunch of leaves", "bunch of dry/crunchy leaves" as leafmissile. Does the player mean taking a leaf when player holds leafmissile: it is very unlikely. [Harriet only: if she has 'the leaf' as part of leafmissile, this rule stops her trying to take her own leaf when something else is present that is called 'leaf' - for instance typing GET LEAF in Moreton West] Does the player mean dropping a leaf when player holds leafmissile: it is likely. [Harriet only: if she has 'the leaf' as part of leafmissile, this rule stops her trying to drop leaf/leaves she doesn't have when something else is present that is called 'leaf' - for instance typing DROP LEAF in Moreton West] Instead of taking a leaf: if the player holds leafmissile: say "[no-time]You already have a bunch of leaves."; stop the action; if the player holds a leaf: if player is Demi and tried_mass_grab of Demi is 1: say "[no-time]It's too hard to hold a bunch of leaves. You'll stick with just the one you have."; stop the action; say "[no-time]Well, you could slowly pick up a second leaf, then a third leaf, but...[line break]"; follow the leafgrab rule; stop the action; if player holds mudpie: let answer be yesno_answer_with_question "You've got the mud pie in your spare hand.[paragraph break]Do you want to drop the mud so you can take a leaf? [bold type] (Y/N)[roman type]"; if answer is "NO": say "[no-time][line break]Okay, you keep your pie."; stop the action; if answer is "YES": say "[line break]Okay, you throw the mud pie away into the trees. "; now mudpie is off-stage; say "[RandomLock][one of]You pick up[or]You take[or]You get[purely at random] [one of]one of the leaves[or]a leaf[purely at random][if a random chance of 1 in 2 succeeds] from the ground[end if]."; now player holds a leaf; if player is Harriet, now leafiness of Harriet is 1; if the tried_mass_grab of Demi is 1, stop the action; say "[line break]Then you look around you. [run paragraph on]"; follow the leafgrab rule. To say leaftalk: say "There are so many leaves here, you feel like grabbing a big bunch of them. " [the trailing space is needed here for correct linebreakage] This is the leafgrab rule: if leafgrab_has_ever_run of leaf is 1, say "[leaftalk][paragraph break]"; if leafgrab_has_ever_run of leaf is 0: say "[leaftalk]Hm![paragraph break]"; now leafgrab_has_ever_run of leaf is 1; let answer be yesno_answer_with_question "Do you want to get all the leaves you can carry? [bold type] (Y/N)[roman type]"; if answer is "NO": say "[line break]Okay, you stick with your one leaf."; stop the action; if answer is "YES": if the player is Harriet, now a leaf is part of leafmissile; [when Harriet picks up the bunch of leaves, they replace the single leaf in her inventory, and the single leaf becomes part of the bunch] take 60 seconds in all; [take 1 turn - overrides early [no-time] in this sequence] try silently taking bunch leaves. Instead of dropping a leaf: if player holds leafmissile: instead say "With some difficulty, you drop one of your leaves and watch it skip away. You still have heaps of leaves left."; otherwise: say "Okay. You drop your leaf and it [first time]gently [only]blows away."; now a leaf is part of bunch leaves. [proceed to actually drop the one leaf, which 'returns' to the pile in the park.] Instead of taking bunch leaves when the player is Demi: if tried_mass_grab of Demi is 1: instead say "[no-time]You already tried to get a pile of leaves, and you know it's too hard to do. You're only able to take a single leaf."; if player holds mudpie: let answer be yesno_answer_with_question "You've got the mud pie in your spare hand.[paragraph break]Do you want to drop the mud so you can try gather up some leaves? [bold type] (Y/N)[roman type]"; if answer is "NO": say "[no-time][line break]Okay, you keep your pie."; stop the action; if answer is "YES", say "[line break]Okay, you throw the mud pie into the bushes.[paragraph break]"; now mudpie is off-stage; say "You try to pick up a pile of leaves you could chuck at someone, but discover that without two hands free, you can't do it. Your right hand always has your wand in it, and managing your robes takes a lot of work. You'll have to forget about this idea."; now tried_mass_grab of Demi is 1; if the player has not held a leaf: let answer be yesno_answer_with_question "[line break]You could pick up one leaf, though. Do you want to take a leaf? [bold type] (Y/N)[roman type]"; if answer is "YES": instead try taking leaf; if answer is "NO": say "[line break]Okay. You haven't taken a leaf." Check taking: if noun is bunch leaves: if player holds leafmissile: instead say "[no-time]You've already got a nice big pile of leaves in your hands."; otherwise: say "You collect a big bunch of the leaves from the ground. It takes both your hands to hold them. You[first time] realise you[only] won't be able to tip anyone while you're carrying the leaves, but you can always drop or throw them if you need to and come back here to get more later."; if player is Harriet, now leafiness of Harriet is 1; now player holds leafmissile; now a leaf is part of leafmissile; pluralswitch leafmissile; rule succeeds. To pluralswitch (mcguffin - a thing): set pronouns from mcguffin; [get current case] if mcguffin is plural-named: now mcguffin is not plural-named; set pronouns from mcguffin; now mcguffin is plural-named; otherwise: now mcguffin is plural-named; set pronouns from mcguffin; now mcguffin is not plural-named. Check dropping: if noun is leafmissile: say "Okay. You drop the leaves and they [first time]gently [only]blow away."; now leafmissile is off-stage; now a leaf is part of bunch leaves; rule succeeds. Before dropping bunch leaves: if the player holds a leaf, instead say "[no-time]You only have one leaf."; [if player types leaves but is only carrying one leaf...] instead say "[no-time]You aren't carrying any leaves." [this message appears if you try to drop leaves in Edge Park, but arent' carrying any] wind_has_blown is a number variable. [global] At the time when wind strikes: play_wind_fx; say "[RandomLock]––– WHOOSH![paragraph break]A [one of] strong[or]powerful[or]great[or]huge[purely at random] gust of wind suddenly sweeps across the park. "; if player is Harriet, say "'Whooooa!' you cry as your fairy wings start to wobble and pull you along. You grab onto them to make sure you don't fly away. "; if player is Demi, say "Your hat tries to jump off your head. You grab on to the brim with one hand and wave your wand to cast a spell with the other.[paragraph break]'Wind, stop! I [one of]order[or]command[purely at random] you!' you yell. "; if Jack is in location, say "Jack giggles at you. "; if player is Harriet, say paragraph break; if player is Demi, say "The crazy wind keeps blowing.[paragraph break]'You're not listening!' you shout[run paragraph on]"; if player is in Edge Park: now saw_them_fall of bunch leaves is 1; set pronouns from bunch leaves; say "[if player is Harriet]All the leaves from the dried out trees are raining down on the path around you...[otherwise], as all the leaves from the dried out trees rain down on the path around you...[end if][line break]You are now surrounded by hundreds of leaves!"; otherwise: if player is Harriet, say "Above you, loose leaves from the trees are flying all over the place and swishing out of sight."; if player is Demi: if maze_mode is 1: say "."; otherwise: say ", as loose leaves from the trees go shooting away."; if dad is in location and player is Harriet, say "[line break]Dad laughs and comes over to help you hold your wings down. You see Demi trying to hold her witch's hat on her head, which makes you laugh as well."; if mum is in location and player is Demi, say "[line break]Mum comes over to you with a smile on her face and presses down on the tip of your hat. This keeps the whole hat on your head. 'Thanks mum,' you say. You can see dad holding onto Harriet's wings to stop them wobbling, too.[paragraph break]'Where on earth did that big wind come from?' says mum."; if lady is in location, say "[line break][if player is Harriet]'Be careful there!' the lady says with a laugh.[otherwise]The lady smiles."; [I don't know if lady could ever be present when wind blows in demi game, but put this here just in case] say "[RandomLock][line break]Then, as quickly as it began, the wind drops away. [if player is Harriet]'Whew,'[otherwise]'That's [one of]better[or]more like it[purely at random],'[end if] you say."; if Rose is in location and player is Demi: say "[line break]'You sure are a loudmouth,' "; if sentinel of Rose is 0: say "says Rose."; otherwise: say "says Rose over her shoulder."; now unhappy leaves is off-stage; now bunch leaves is in Edge Park; now wind_has_blown is 1. Chapter - blowfly the blowfly is a neuter animal. Understand "fly/blowie", "blow fly", "blow-fly" as blowfly. Part - In the Picnic Area (Picnic) There is a room called Picnic. "[if player is Harriet]You're at the north end of the picnic area. There's a table here where mum and dad will lay out the food later. They've already put the tablecloth out.[paragraph break]A path leads north into the park. To the south are more tables where other families are having picnics, but dad told you and your friends not to go down that way. He said you all have to stay in the park area while you're playing.[otherwise]You're in the picnic area. Mum and dad are here and they've put the tablecloth out. Other people are having picnics south of here, but dad told you not to go any further that way. He said he wants everyone playing in the park only, not around other tables or in the carpark.[paragraph break]You can go north into the park." The printed name is "In the Picnic Area". The destination name is "the picnic area". Picnic is south of Edge Park. There is an undescribed, improper-named bench called the picnic table in Picnic. The indefinite article of picnic table is "the". The description is "[if player is Harriet]The table is really long, so there will be room for everyone at picnic time. Your parents have covered it with a red and white chequered tablecloth, but they aren't going to put the food out until later, because it will get hot if it sits there while you're playing.[otherwise]The table is like one of those long ones in storybooks where everyone in the castle has to sit together. Mum and dad have put a red and white chequered tablecloth over it to get ready for the picnic." Instead of going south in Picnic: if player is Harriet, say "[no-time][one of]You start to walk towards some of the other picnic tables, then you hear mum's raised voice: 'Harriet, come back, please. We told you to stay up here.'[paragraph break]Whoops![paragraph break]'Busted!' says [Demi got your attention]Demi. You giggle.[or]No, you don't want to get in trouble.[stopping]"; otherwise say "[no-time][one of]You take a few steps toward the other picnic tables to the south, then dad's voice freezes you to the spot: 'Oi, Demi!' He gives a sharp [dad got your attention]whistle. You turn around and smile. 'Stay up here, please,' says dad.[or]You'll be in trouble if you go south. You don't need to go down there anyway. Your friends are in the park to the north.[stopping]". To say dad got your attention: set pronouns from dad. To say Demi got your attention: set pronouns from Demi. Chapter - Parents Alias yerparents is plural-named scenery in Picnic. The printed name of yerparents is "your parents". Understand "parent/parents", "mum/mom/mother/mummy and dad/daddy/father", "dad/daddy/father and mum/mom/mother/mummy" as yerparents. To decide whether the action is okay for parents alias: if examining, yes; if talking to, yes; no. Instead of examining yerparents: try examining mum; try examining dad. Instead of talking to yerparents: [for talking, Demi favours mum, Harriet favours dad] if parents_topic_dog is 1, instead try talking to dad; if player is Demi: say "You go over to mum.[line break]"; try talking to mum; otherwise: say "You go over to dad.[line break]"; try talking to dad. Instead of doing anything to yerparents: if the action is okay for parents alias, continue the action; lock the dice; if a random chance of 1 in 2 succeeds: now noun is mum; set pronouns from mum; otherwise: now noun is dad; set pronouns from dad; continue the action. Chapter - Scenery South of Picnic Area the carpark is scenery in Picnic. Description of carpark is "It's too far away for you to see." Instead of doing anything other than examining to carpark: say "[no-time]The carpark is far south of here, and out of bounds." picnicpeople is privately-named, improper-named scenery in Picnic. Printed name of picnicpeople is "people south of here". The indefinite article is "the". Description of picnicpeople is "[if player is Harriet]You can see all kinds of people at the tables south of here. Mums and dads and grandparents, boys and girls and bigger boys and girls, men and women. It looks like they're all having a fun day as well.[otherwise]You can see lots of different kinds of people eating at the other tables. At one table you notice two girls who look about the same age as each other. You wonder if they are sisters, or maybe even twin sisters like you and Harriet are." Understand "others/boy/boys/mums/dads/grandparents/men/women/people/family/families/tables/picnics", "other people/tables/family/families/picnics", "people/tables/family/families/picnics to south", "people/tables/family/families/picnics to the south", "people/tables/family/families/picnics south of here", "picnic table/tables to south", "picnic table/tables to the south", "picnic table/tables south of here" as picnicpeople. Understand "girl/girls" as picnicpeople when player is Harriet. [Demi's 'girls' goes to picnicgirls] Does the player mean doing anything to picnicpeople: it is unlikely. [reduce rank so friend boys, girls etc. will match before the picnic people] Instead of doing anything other than examining to picnicpeople: say "[no-time][if player is Harriet]The other people and tables are south of here, and you're not allowed down that way today. But that's okay because you're way more excited about playing with your friends in the park.[otherwise]The other people and tables are south of here. You're not allowed down there today, but you're way more interested in playing tip, anyway." picnicgirls is privately-named, improper-named scenery. Printed name of picnicgirls is "two girls". The indefinite article is "the". Description of picnicgirls is "The girls to the south of here are having lunch. Hmm, you can't really tell if they're sisters or not from here just by looking... Oh well, you're not allowed to go down that way today, and you have a game of tip to play anyway!" Understand "sisters/girl/girls/twins", "twin sisters", "two girls" as picnicgirls. [only put these girls in Picnic in Demi game] Does the player mean doing anything to picnicgirls: it is unlikely. [reduce rank...] Instead of doing anything other than examining to picnicgirls: say "[no-time]The two girls at the other picnic table are south of here. They're too far away to reach or to talk to." Chapter - Tablecloth the tablecloth is an undescribed thing in Picnic. The description is "[if player is Harriet]The red and white of the tablecloth is nice and bright.[otherwise]The pattern on the tablecloth is a bunch of red and white squares." Understand "cloth", "table cloth", "picnic tablecloth", "picnic table cloth" as tablecloth. Instead of taking tablecloth, say "[no-time][if player is Harriet]Your parents put it there for the picnic. You don't need it so you should leave it there.[otherwise]Mum and dad would want you to leave the tablecloth where it is. Besides, you don't have a use for it at the moment anyway." Chapter - Glass of lemonade There is an edible undescribed improper-named container called glass lemonade in Picnic. The description of glass lemonade is "[if player is Harriet]It looks cold and yummy, but you're busy with your game right now.[otherwise]Cool and fizzy. You look forward to having a glass yourself later." The printed name is "glass of lemonade". The indefinite article is "a". Understand "glass of lemonade", "drink" as glass lemonade. Before eating glass lemonade: instead say "[no-time]You know that you usually drink drinks, not eat them." Instead of taking or drinking glass lemonade: say "[no-time][if player is Harriet]That's Demi's lemonade, and she's all hot and sticky at the moment. You'll get yours later this afternoon.[otherwise]You don't want to pull Harriet's lemonade away from her, and you don't need a drink now, anyway." Chapter - Cicada There is an undescribed neuter animal called the black prince cicada. The black prince cicada is improper-named. The indefinite article is "the". The description of black prince cicada is "[if player is Harriet]Wow, this cicada is all black and shiny and beautiful. You don't see many like that around.[otherwise]The cicada is a Black Prince. You learned about the types of cicadas in a story that was read to you in the school library one time. This prince always manages to fly to another tree before Jack can catch up with it. Heehee!" The printed name of black prince cicada is "cicada". Understand "insect" as black prince cicada. Instead of taking black prince cicada: say "[no-time][if player is Harriet]If Jack can't catch it, you're sure you can't! Besides, you like the cicada being free.[otherwise]You'd rather leave it to silly Jack to chase after it." Part - Tree Garden (Tree Garden) To say gardengiggle: [Harriet only] say "This corner of the park is called the 'Tree Garden'"; if treegiggle of Ayla is 0, say ", and... what was that? You heard someone giggling![paragraph break]"; otherwise say ". "; say "Lots and lots of big trees have been planted in a neat line which winds around the edge of the lawn here. They look like furry people waiting in a queue. Someone has mown the grass and everything is really tidy." There is a room called Tree Garden. "[if player is Harriet][gardengiggle][line break]One path winds north towards a shady area under lots of trees, and another one goes west.[otherwise]You've come into the Tree Garden. It's super neat here. The big trees go around the edge of the lawn in perfect lines. There's a smell in the air like someone just mowed the lawn.[paragraph break]A path goes north into a mysterious-looking shaded area, and another goes back west to the edge of the park." Tree Garden is east of Edge Park. The printed name is "Tree Garden". The destination name is "the tree garden". Chapter - dark bird the dark bird is an undescribed neuter animal. Description of the dark bird is "[if treegarden_checks of Harriet is 0]You can see a little dark bird hopping around up in the treetops.[otherwise]The bird is having a rest right up near the top of one of the trees. It's dark and small, but you know that it can make a lot of noise." [dark bird not in Demi game. Btw, couldn't call it 'black bird' because black would always choose the bird over a black tree...] Understand "birdy", "dark birdy", "dark bird" as dark bird when player is Harriet. dark bird has a number called made_a_racket. Instead of taking the dark bird: say no birds allowed. Chapter - Tree Garden Trees and parts (tgtrees) tgtrees are privately-named, improper-named, plural-named superscenery in Tree Garden. Understand "tree/trees/line/lines", "tree garden tree/trees", "big/neat/perfect tree/trees/line/lines" as tgtrees. The printed name of tgtrees is "tree garden trees". The indefinite article is "the". The description of tgtrees is "[tgtrees desc]". To say tgtrees desc: say "[if player is Harriet]The trees have been planted in neat lines. There are so many of them! There are tall ones, short ones, smooth and rough ones, pointy ones, curly ones, pretty and ugly ones, and they come in four colours - black, brown, grey and green. [otherwise]There are tall trees and short trees, smooth trees and rough trees, pointy trees and curly trees. Some of them look interesting, while others... well, the others look boring. The trees come in four colours: black, brown, grey and green. "; if the player is Harriet: say "Each tree is separated from the next one by a wall of bushes, as if each tree in the Tree Garden has its own little room"; if the found_her of Ayla is 0: say ", and this is stopping you from seeing around all the trees at once. To find out if your friends are hiding behind any of the trees using only your eyes, you would have to look behind each tree, one at a time. What a lot of work! "; otherwise: say ". "; if the player is Demi: say "A perfectly square wall of bushes grows between every pair of trees. It's like a hotel for trees, with each tree in its own room"; if the found_her of Ayla is 0: say ".[paragraph break]You try to find a place to stand where you can see behind all the trees at once, but it's impossible. Hmm... it looks like the only way to find out if any of your friends are hiding behind any of these trees will be to search each tree. "; otherwise: say ". ". To say tgtrees short description: say "[if player is Harriet]Big trees are planted all the way around the edge of the garden.[otherwise]Big trees are planted around the edge of the garden in perfect lines.[end if]". tgtrees branches are a privately-named, plural-named, improper-named part of tgtrees. The printed name of tgtrees branches is "tree branches". The indefinite article is "the". The description of tgtrees branches is "Some of the branches are curly, some of them are pointy. [if player is Harriet]You like the curly ones. The pointy ones look angry.[otherwise]You like the pointy ones. They stand out much more than the curly ones." Understand "branch/branches/curly/pointy", "tree branch/branches", "curly/pointy tree branch/branches" as tgtrees branches. Instead of taking tgtrees branches: say "[no-time][if player is Harriet]You don't need a branch, and if you broke one off, you'd just be messing up the tree.[otherwise]You don't think it would be right to break a branch off one of the trees here." the tgtrees bark is privately-named, improper-named part of tgtrees. The printed name of tgtrees bark is "tree bark". The indefinite article is "the". The description of tgtrees bark is "[if player is Harriet]These trees don't seem to have much bark on them.[otherwise]The trees here have hardly any bark on them." Understand "bark", "tree bark" as tgtrees bark. Instead of taking tgtrees bark: say "[no-time][if player is Harriet]None of the bark will peel off.[otherwise]The bark won't peel off." the tgtrees leaves are privately-named, plural-named, improper-named part of tgtrees. The printed name of tgtrees leaves is "tree leaves". The indefinite article is "the". The description of tgtrees leaves is "[if player is Harriet]These trees have really small leaves[leafclue].[otherwise]The leaves on these trees are small and shiny." Understand "leaf/leaves/shiny/small", "tree leaf/leaves", "shiny/small tree leaf/leaves" as tgtrees leaves. Instead of taking tgtrees leaves: say "[no-time][if player is Harriet]The leaves on the trees here are kind of hard to reach, and they're very little anyway. You don't have a use for them[leafclue].[otherwise]The leaves on the trees here are a bit out of your reach, but even if they weren't, the trees look so nice in the tree garden, you wouldn't want to pull leaves off them." Carry out looking (this is the tgtrees hack rule): [this hack keeps the tgtrees visible in BRIEF and SUPERBRIEF.] if player is in Tree Garden: if set to abbreviated room descriptions: [if in SUPERBRIEF,] say tgtrees short description; continue the action; if the room-describing action is the looking action, continue the action; [in all non-SUPERBRIEF modes, if player typed 'look', trees are already mentioend in room desc, so stop] if set to sometimes abbreviated room descriptions and tgtrees is spoken of, say tgtrees short description. [otherwise, if in BRIEF mode and you entered the room for the 2nd+ time, print this] The tgtrees hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Every turn when Harriet is in Tree Garden: [and such and such is 0 - the Ayla routine here] if treegiggle of Ayla is 0: play_random_r_giggle; now treegiggle of Ayla is 1. Instead of waiting when Harriet is in Tree Garden and Ayla is off-stage and treegarden_checks of Harriet is greater than 0: try newlistening. Chapter - Tree Garden Bushes (tgbushes) tgbushes are privately-named, improper-named, plural-named scenery in Tree Garden. Understand "bush/bushes" as tgbushes. The printed name of tgbushes is "bushes". The indefinite article is "the". The description of tgbushes is "[if player is Harriet]The walls of bush are tall and neat and very thick. There's no way to see through them or around them.[otherwise]The bushes are so tall and thick, they're like the walls of a house. You doubt that even a big bad wolf could blow these down." Part - In the Shade by the Mud (Shade Mud) There is a room called Shade Mud. "[if player is Harriet]You're in a part of the park that gets less sun because the trees make a web of dark overhead.[paragraph break]Paths go north and south to less shady places.[otherwise]This is a shady and damp area in the park. Far overhead, the tree branches knot together like fingers, chopping up the sunlight. It feels a bit spooky.[paragraph break]You can leave this shady place by going north or south." The printed name is "In the Shade by the Mud". The destination name is "the place in the shade by the mud". Shade Mud is north of Tree Garden. Carry out looking (this is the mud hack rule): [this hack makes the mud appear above all of Rose's descriptions and actions. Also keeps the mud visible in BRIEF and SUPERBRIEF.] if player is in Shade Mud: if player is Harriet: say "[one of]There's a big puddle of mud here. Yuck![or]There's a big puddle of mud here.[stopping]"; otherwise: say "There's a big puddle of mud here." The mud hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Chapter - Rose Check going to Shade Mud for the first time: if the player is Demi, play_peace_music. To say regular_desc_of_Rose: if watch_length of Rose is greater than 1: say "[RandomLock]Rose is here[one of], watching[or]. She watches[purely at random] [one of]your every move[or]you closely[or]you like a hawk[purely at random]. "; [note trailing space in these print statements] stop the action; if watch_length of Rose is 1: say "[RandomLock][one of]Rose scratches her leg[or]Rose scratches her arm[or]Rose scratches her neck[or]Rose glares at you[or]Rose kicks at the grass[or]Rose kicks at the dirt[or]'Don't mess with me,' says Rose[or]'Watch yourself,' says Rose[purely at random]. "; stop the action; say "[RandomLock][The Rose] is here, leaning [one of]against[or]on[purely at random] a tree and counting [one of]out loud[or]aloud[purely at random]. ". Rose is a female person in Shade Mud. "[regular_desc_of_Rose]". Rose is improper-named. Printed name of Rose is "big girl". The indefinite article is "the". Understand "big girl" as Rose. Understand "girl" as Rose when Rose is in location. Rose has numbers called rosecount, sentinel, watch_length, saw_her_leave, threat_flag, Rose_leaves, duration, irritation, show_attempts, leafbops, forsooth, flight_complaint. The rosecount of Rose is 11. The sentinel of Rose is 1. [sentinel only relevant for Demi game] The duration of Rose is 200. [this means she leaves after counting to 20. Change this value to set how long she stays. Must be at least 12.] Rose has text called mud_message. [mud_message content is always set before 'make Rose attack' runs] To say RoseWords: [this routine capitalise the first letters of 'rosecount of Rose in words', then prints the result] let X be "[rosecount of Rose in words]" in sentence case; say "[X]". To say Rose_count_phrase: lock the dice; if a random chance of 1 in 2 succeeds, say "'[RandomLock][RoseWords],' [one of]says[or]counts[purely at random] [the Rose]. "; otherwise say "[RandomLock][The Rose] [one of]says[or]counts[purely at random], '[RoseWords][one of]...[no line break][or]![no line break][or] –[or].[no line break][purely at random]' "; say line break. The introduction of Rose is "[if player is Harriet]Leaning against one of the gum trees is a big girl in red overalls. It looks like she's playing her own game of hide and seek. She has her face pressed into her folded arms so that she can't see, and she's counting out loud.[otherwise]Leaning against a very tall gum tree with her face buried in her arms (because she is counting and not peeking) is a big girl wearing red overalls. She looks kind of tough." To say Rose_look_at_description: if the player is Harriet, say "[if talked_to of Rose is 0]You can't see the girl's face because it's against the tree, but she has dirty blond hair and her clothes are dirty. She looks a bit like a boy[otherwise]You saw Rose's face when she turned around. It was round and puffy, like someone on Bob the Builder"; if the player is Demi, say "[if sentinel of Rose is greater than 0]You can't see Rose's face now because it's against the tree, but with that crazy hair on top of her, she looks like a fierce lion[otherwise]She has pale frizzy hair like a bowl over her big head. Her overalls have patches of dirt on them. She is thick and strong-looking, but also messy-looking[end if][if watch_length of Rose is greater than 1]. She's not taking her eyes off you". The description of Rose is "[Rose_look_at_description]." There is a plural-named, improper-named thing called red overalls. The indefinite article of red overalls is "the". red overalls are worn by Rose. The description of red overalls is "[if player is Harriet]You like the colour of her overalls, but they're so dirty! It looks like she's been playing in that mud.[otherwise]The overalls and made out of that soft, squishy material that's like little cords side-by-side. But they're too dirty to look nice." Understand "clothes" as red overalls. To say Rose_leaves_Harriet: say "steps away from the tree, looks around (you see a happy look on her face), has a stretch and then starts pushing her way into the thick trees to the east. She quickly disappears amongst them.[paragraph break]'What a weird way to leave the park,' you think to yourself." To say Rose_leaves_Demi: say "steps away from the tree. Her face is red and splotchy from being pressed against her arms for so long.[paragraph break]'I'm going now,' she says. 'I'll be watching out for you, bad witch.' She points her finger at you and pokes the air a few times. You're not too impressed.[paragraph break]'Go on, then. Leave,' you say.[paragraph break]Rose gives you an unhappy look, then walks unexpectedly into the tangle of thick trees to the east. You can hear her bashing her way out of the park by this strange route." To get rid of Rose: now Rose_leaves of Rose is 3; [3 means she's totally gone] now saw_her_leave of Rose is 1; [you saw her go] now Rose is off-stage. To make Rose attack: if glulx sound is supported: say line break; [negates the 'run paragraph on' which always preceds entering this routine] say pause_only; [if we have sound, pause so sound appears right with cue message] say paragraph break; play_fallintomud_fx; say "[mud_message of Rose]!"; pause_only; say "[paragraph break]'AAAAAAAAAAAAAAAH!' you scream...[paragraph break]You're drenched in mud! You can't believe it![paragraph break]Your attacker has already run away...[line break]"; play_lose_music; pause_only; say "[paragraph break][first custom style]*** YOU'RE TOO SHOCKED TO KEEP PLAYING – YOUR DAY IS RUINED! ***[normal style][line break]"; end the story. Every turn: if the player is in Shade Mud and Rose_leaves of Rose is 2: now Rose_leaves of Rose is 3; if Rose is introduced, say "[The Rose] isn't here anymore."; continue the action; if the player is Demi and player is in the location of Rose and Rose is introduced: if watch_length of Rose is greater than 0: decrement watch_length of Rose; if watch_length of Rose is 0: if Demi is in the location of Rose, say "Rose turns back to the tree to continue her counting."; lock the dice; now sentinel of Rose is a random number between 3 and 6; if jack is in location: say "[RandomLock][line break]Jack [one of]sticks his tongue out[or]makes a crazy face[purely at random] at [the Rose] while she can't see. [if Ayla is in location]Ayla giggles. [end if][line break]"; now current_actor is Jack; follow the fleekid rule; continue the action; [we don't go on with counting routine if Rose has turned around to watch Demi] decrement sentinel of Rose; if sentinel of Rose is 0: know Rose; lock the dice; now watch_length of Rose is a random number between 3 and 6; if player is in Shade Mud, say "[one of]The girl turns away from the tree suddenly and fixes her eye on you, her hands on her hips. She looks you up and down.[paragraph break]'I'm Rose, and I don't like witches sneaking up on me,' she says. [check if ayla heard rose rant]'You better not try anything smart with me. This is my park.'[paragraph break]She keeps watching you suspiciously.[or]Rose suddenly stops counting and spins around to keep her eye on you.[stopping]"; if player holds mudpie: if threat_flag of Rose is 1: say "[line break]She sees you trying to hide the mud pie behind your back and shouts, 'I warned you!' – then rushes over and grabs you.[paragraph break]'Get off!' you scream, twisting and trying to splat the pie on her, but she spins you around and you stumble and fall – "; now mud_message of Rose is "right into the mud"; make Rose attack; continue the action; now threat_flag of Rose is 1; say "[line break]She sees you holding the mud pie and shouts, 'What are you doing? Put that mud back now or you'll be sorry!'[paragraph break]"; let answer be yesno_answer_with_question "Will you put the mud back? [bold type] (Y/N)[roman type]"; if answer is "YES": play_mudintopuddle; say "[line break]– SPLUT. You toss the pie back into the mud.[paragraph break]'Don't touch my mud again,' Rose says."; now mudpie is off-stage; if answer is "NO": say "[line break]'No!' you shout back. 'It's mine!'[paragraph break]Rose snarls and leaps across the grass at you. Without thinking, you raise the mud pie to throw at her, but she's big and fast, and grabs you before you get the chance. She shoves you hard – "; now mud_message of Rose is "right into the mud"; make Rose attack; continue the action; continue the action; [we don't go on with counting routine if Rose has turned around to watch Demi] if the rosecount of Rose is less than duration of Rose: increment the rosecount of Rose; if the rosecount of Rose is duration of Rose: if player is in Shade Mud: say Rose_count_phrase; say "[line break]She [if player is Harriet][Rose_leaves_Harriet][otherwise][Rose_leaves_Demi]"; get rid of Rose; otherwise if player is not in Shade Mud: if the player is Demi, now Rose_leaves of Rose is 1; [1 means she will go when Demi next enters her room] if the player is Harriet: now Rose is off-stage; [if Harriet wasn't there at the time, Rose leaves -] now Rose_leaves of Rose is 2; [2 gives a message saying 'she seems to have gone' next time you come in, then increments to 3] if player is in location of Rose: if the rosecount of Rose is less than duration of Rose, say Rose_count_phrase; if the Rose_leaves of Rose is 1:[this can only happen with Demi] say "[The Rose] [if player is Harriet][Rose_leaves_Harriet][otherwise][Rose_leaves_Demi]"; get rid of Rose. To say check if ayla heard rose rant: if ayla_mode is 1, now rosequipB of Ayla is 1. [prime Ayla to make 'own the park?' comment if she was present for Rose's initial rant] To say cannot_follow_Rose: say "[no-time][if player is Harriet]That thick forest area where [the Rose] went looks kind of scary. Besides, your friends are all in the park, so there's no point leaving, and mum and dad told you not to go out of the park.[otherwise]Even though you are a little curious about Rose and where she went, it looks like you could easily get lost in the thick forest to the east. You would rather stay here and finish playing with your friends." Instead of player going east when location is Shade Mud and Rose is off-stage and saw_her_leave of Rose is 1: say cannot_follow_Rose. Chapter - The Mud the puddle mud is scenery in Shade Mud. The description of puddle mud is "[if player is Harriet]It's all gloopy and smelly. It's horrible![first time] Definitely more of a witch's thing.[only][otherwise]It looks like a small swamp. There's a nice mushy part at the edge where you could scoop some of it up." The printed name is "big puddle of mud". The indefinite article is "a". Understand "puddle of mud", "big puddle", "big puddle of mud" as puddle mud. Understand "pie" as puddle mud when player does not hold mudpie. Understand "pie" as mudpie when player holds mudpie. There is an undescribed, improper-named missile called a mudpie. The description of mudpie is "The little pie has a nice weight in your hand." The printed name is "mud pie". The indefinite article is "a". Understand "mud", "mud pie" as mudpie. [NB only Demi will ever be able to get or examine the mudpie.] Check taking puddle mud: If the player is Harriet, instead say "[no-time]No, you would hate to get mud on your beautiful costume. Also – the mud stinks." Instead taking mudpie: if player is in Shade Mud, try silently taking puddle mud. Check taking puddle mud: if the player is Demi: if player carries mudpie, instead say "[no-time]You already have a mud pie. You can't carry more than one at a time."; if player carries leaf: let answer be yesno_answer_with_question "Right now you have a leaf in your hand.[paragraph break]Do you want to drop the leaf so you can get some mud? [bold type] (Y/N)[roman type]"; if answer is "NO": say "[no-time][line break]Okay, you keep your leaf and leave the mud where it is."; stop the action; if answer is "YES": say "[line break]Okay, you toss the leaf aside and it skips away.[paragraph break]"; now a leaf is part of bunch leaves; if player is in location of Rose and sentinel of Rose is 0: say "You kneel by the mud and start to scoop up a little mud pie.[paragraph break]Rose sees what you're doing and shouts, 'Oh no you don't!'[paragraph break]She rushes over to you and gives you a great big shove – "; now mud_message of Rose is "face first right into the mud"; make Rose attack; stop the action; [without this line, you will take the mudpie even on the death screen] say "You manage to scoop up a squishy mud pie with your non-wand hand.[run paragraph on]"; if Rose is in Shade Mud and threat_flag of Rose is 1: say " You hide this one behind your back. Then you look at Rose's back. You sure are tempted to throw this pie at her... but you're also sure that would cause more trouble."; otherwise: say paragraph break; now player holds mudpie; set pronouns from mudpie; rule succeeds. Before dropping mudpie: say "You don't want to mess up the park, so you "; if location is Shade Mud: say "toss the mud back into the puddle."; play_mudintopuddle; otherwise if maze_mode is 1 or location is ByKoala: say "poke the mudpie into a hedge."; otherwise if location is Gazebo: say "toss the mud over the fence and out of sight."; otherwise: say "toss the pie away amongst the trees, out of sight."; now mudpie is off-stage; rule succeeds. Part - Below the Wall (BelowWall) To say Harriet_below_wall_desc: if just_jumped of Harriet is 1: now just_jumped of Harriet is 0; say "[one of]OOF!... with an enormous thud, you crash into a green world. For a second it feels like you have no breath, but quickly you find that you are feeling fine and sitting on your bottom in the tall grass in the shade below the wall. You push your wings back into place (they must have worked) and climb to your feet.[paragraph break]That was awesome! [or]THUMP – You land in the grass by the wall much more neatly this second time. You spring to your feet. [or]THUMP - You land in the grass by the wall and roll to your feet. [first time]You're pretty good at this now! [only][stopping]"; play_romp_music; continue the action; say "You're in a field which is cool and damp. To the west is a stone wall, at the top of which is a higher level of the park. It's too high to climb over, plus the wall is covered in sticky green stuff that has grown in the shade[scenery_rock].[paragraph break]Pathways go north and south from here. " [space important] There is a room called BelowWall. "[if player is Harriet][Harriet_below_wall_desc][otherwise]You're in a cool, shaded field. It's nice to be out of the heat for a moment. To the west is a high stone wall covered in slippery moss[scenery_rock].[paragraph break]There is more shade to the south and another path goes north." The printed name is "Below the Wall". The destination name is "below the wall". North of Shade Mud is BelowWall. To say scenery_rock: say ". [if player is Harriet]Near the wall is a great big yellow rock, much bigger than yourself[otherwise]Near the base of the wall is a huge yellow rock. It looks like a small mountain". Instead of going up in BelowWall: try general objectclimbing wallbottom. Understand "tall", "tall grass" as grass when location is BelowWall. Chapter - Wallbottom the wallbottom is privately-named scenery in BelowWall. The description of wallbottom is "[if player is Harriet]It's wide, it's got the sticky green stuff all over it and it goes up and up.[otherwise]It looks like the grey wall of a castle - if that castle was covered in moss. The wall is wide and very tall." The printed name is "wall". Understand "grey/gray/stone/wall", "grey/gray wall/stone", "gray/grey stone wall" as wallbottom. Chapter - Sticky Green Stuff/Moss (1) the moss1 is privately-named scenery in BelowWall. Printed name of moss1 is "sticky green [if player is Harriet]stuff[otherwise]moss". Description of moss1 is "[if player is Harriet]The green stuff is yucky and totally stuck to the wall. You'd rather not touch it.[otherwise]The moss is like a soft and slippery carpet that is part of the wall." Understand "sticky", "stuff/moss", "sticky green/stuff/moss", "green stuff", "sticky green stuff/moss" as moss1. Instead of taking moss1: say "[no-time][if player is Harriet]There's no way you're touching that stuff.[otherwise]It's stuck to the wall, but you don't need it anyway." Instead of eating moss1: say "[if player is Harriet]No way! You're grossing yourself out![otherwise]You'd rather leave it on the wall." Chapter - Big Yellow Rock the big yellow rock is superscenery in BelowWall. Description is "[if player is Harriet]The rock is rough and kind of round, and the bottom of it is stuck well into the ground. You wonder if someone could be hiding behind it.[otherwise]The rock seems to be made out of hard sand. You've seen this kind of rock before at the beach. You like the feel of it. It's also large enough that someone could hide behind it." Understand "big/huge rock/yellow", "huge yellow rock", "sand" as big yellow rock. big yellow rock can be searched or unsearched. big yellow rock is unsearched. To say yellow_rock_desc: say "[if player is Harriet]Near the wall is a great big yellow rock, much bigger than yourself.[otherwise]Near the base of the wall is a huge yellow rock. It looks like a small mountain." Carry out looking (this is the yellow rock hack rule): [this hack makes the rock appear above all people descriptions and actions. Also keeps the rock visible in 'brief' and 'superbrief' modes.] if player is in BelowWall: if set to abbreviated room descriptions: [if in SUPERBRIEF,] say yellow_rock_desc; continue the action; if the room-describing action is the looking action, continue the action; [in all non-SUPERBRIEF modes, if player typed 'look', rock is already mentioend in room desc, so stop] if set to sometimes abbreviated room descriptions and big yellow rock is spoken of, say yellow_rock_desc. [otherwise, if in BRIEF mode and you entered the room for the 2nd+ time, print this] The yellow rock hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Part - West Side of the Moreton Bay Fig (Moreton West) There is a room called Moreton West. "[if player is Harriet]In this dusty corner of the park is the hugest of all the trees. Dad said it's called a Moreton Bay Fig. It has roots like crazy ropes and bark like an elephant's skin. You feel you could jump on your own head hundreds of times and still not reach the top of the tree.[paragraph break]You are on the west side of the tree and can go around to its east side. Paths also go south and west[webstatus][otherwise]You stand before the biggest tree in the park, the Moreton Bay Fig. It seems to come from a world of giants. Close to the trunk, the roots alone are often taller than you are! They coil around each other like giant stone snakes. The tree blocks out the sky, and the top is so far away you can't see it.[paragraph break]This is the west side of the tree. You can make your way east around to the other side. There are also paths to the south and west[webstatus]". The printed name is "West Side of the Moreton Bay Fig". The destination name is "the west side of the Moreton Bay Fig". Moreton West is north of BelowWall. After deciding the scope of the player when location is Moreton West: place gazebotable in scope; place gazebofence in scope. Before doing anything other than examining to gazebotable when player is in Moreton West: instead say "[no-time]You can't reach the picnic table from out here. It's inside the gazebo." Before doing anything other than examining or zapping to gazebofence when player is in Moreton West: instead say "[no-time]You can't reach the fence from here. It's part of the gazebo to the north." Before examining gazebotable when player is in Moreton West: instead say "[no-time]You can't get a good look at it from out here." [quoth zarf: 'Since the reaching inside rules are a rulebook with an outcome, you can create an earlier rule and "rule succeeds with result allow access" or "...deny access".] The zapping while reaching inside rooms rule is listed before the can't reach inside rooms rule in the reaching inside rules. This is the zapping while reaching inside rooms rule: if location is Moreton West and current action is zapping and noun is gazebofence: allow access; rule succeeds; if location is AboveWall and current action is zapping and noun is a person in BelowWall: allow access; rule succeeds. Chapter - Dust the dust is scenery in Moreton West. Instead of doing anything to dust: say "Fiddling with the dust just makes you sneeze... Ah-[italic type]CHOO![roman type][line break]". [takes time] Chapter - Fig tree and parts the Moreton Bay Fig Tree is a backdrop. Moreton Bay Fig Tree is in Moreton West, Moreton East. The description of Moreton Bay Fig Tree is "[if player is Harriet]This is the biggest tree you've ever seen and it makes the biggest shadows you've ever seen. [otherwise]You have never seen a tree bigger than this one. [end if]It's a long way around to the other side, and all of the tree's roots are in the way." Understand "trunk", "tree trunk" as Moreton Bay Fig Tree. the Moreton Bay Fig Tree roots are a plural-named part of the Moreton Bay Fig Tree. The printed name of the Moreton Bay Fig Tree roots is "fig tree roots". The indefinite article is "the". The description of Moreton Bay Fig Tree roots is "[if player is Harriet]Some of the roots are bigger than you are. They're all tangled together like a giant pile of skipping ropes.[otherwise]You like to look at the patterns the roots make as they twist around." Understand "root/pile/tangle/tangled/pattern/patterns", "pile/pattern/patterns/tangle of roots", "tangled/pile root/roots", "fig tree root/roots" as Moreton Bay Fig Tree roots. Instead of taking Moreton Bay Fig Tree roots: say "[no-time][if player is Harriet]These roots are like stone. They won't budge.[otherwise]These are the biggest tree roots you've ever seen. You're not surprised that you can't move them at all." the Moreton Bay Fig Tree bark is part of the Moreton Bay Fig Tree. The printed name of the Moreton Bay Fig Tree bark is "bark". The description of the Moreton Bay Fig Tree bark is "[if player is Harriet]You haven't actually touched an elephant's skin, but you imagine it's as tough as this bark.[otherwise]Some trees have bark that seems to be stuck onto the tree. The bark of the fig tree is so solid that you can't tell where the bark ends and the tree begins." Instead of taking Moreton Bay Fig Tree bark: say "[no-time][if player is Harriet]This bark is tough. It's not going anywhere.[otherwise]There's nothing to get. Pulling at the bark of the fig tree is like trying to pull over the whole tree!" the Moreton Bay Fig Tree branch branches is a plural-named thing. the Moreton Bay Fig Tree branch branches is part of the Moreton Bay Fig Tree. The printed name of the Moreton Bay Fig Tree branch branches is "tree branches". The description of the Moreton Bay Fig Tree branch branches is "[if player is Harriet]The branches are high above you, and they go up and up and up and up...[otherwise]The branches are like enormous arms reaching out and up. You can barely see through them to the sky." Instead of taking Moreton Bay Fig Tree branch branches: say "[no-time][if player is Harriet]You can't even reach them.[otherwise]They're way above you. You can't even touch them." the Moreton Bay Fig Tree leaf leaves is a plural-named thing. the Moreton Bay Fig Tree leaf leaves is part of the Moreton Bay Fig Tree. The printed name of the Moreton Bay Fig Tree leaf leaves is "tree leaves". The description of the Moreton Bay Fig Tree leaf leaves is "[if player is Harriet]The fig tree leaves aren't too interesting. They're small and green. They're high above you.[otherwise]The fig tree leaves are green and tiny. They're hanging way above you, out of reach." Instead of taking Moreton Bay Fig Tree leaf leaves: say "[no-time][if player is Harriet]The fig tree leaves are so far above your head that you would need a fireman to lift you up there with the ladder on his fire truck to even get close to them[leafclue].[otherwise]The leaves of the fig tree seem to be miles above your head. You could never reach any of them." Instead of going up in Moreton West: attempt the figgy impossible. Instead of going up in Moreton East: attempt the figgy impossible. To attempt the figgy impossible: say "(climb the fig tree)[line break][run paragraph on]"; try general objectclimbing Moreton Bay Fig Tree. Chapter - Spiderweb the spiderweb is in Moreton West. spiderweb is superscenery. The description of spiderweb is "[if player is Harriet]It looks like lots of other spiderwebs you've seen. You don't want to look at it closely because then you'll think about that icky spider.[otherwise]The web is really cool and detailed, and taller than you are. You wonder how the spider manages to work out the pattern. Still, if you want to open a path into the gazebo, you will need to brush the spider's web away." Understand "web/webs", "spider web/webs", "spider-web", "spider-webs", "spider's web/webs" as spiderweb. To say webstatus: [Substitution SPACING EXAMPLE ROX!!! Include one space at the end of each sub] if spiderweb is off-stage: say ", and you can enter the gazebo to the north. "; stop the action; if spiderweb is not spoken of: say ".[paragraph break][if player is Harriet]To the north is the entrance to the gazebo. The gazebo is a small house with lots of sides, a pointed roof and no walls. (There's a kind of fence where the walls would be.) Sometimes people have picnics on the table inside, but no-one is in there today, and you can see why. A big spider has built his web right across the entrance, and he's sitting in the middle of it. He's almost as large as your hand. How horrible! [otherwise]To the north is the pointy-roofed little building called the gazebo, but nobody is in there today because the way in is blocked by a big spider web. Sitting in the middle of the web is the orb weaver spider who made it. Wow, that web is amazing! [end if]"; if player is Demi, set pronouns from spiderweb; if spiderweb is spoken of: say ". [if player is Harriet]A huge[otherwise]The big[end if] spiderweb blocks the entrance to the gazebo to the north. ". To say web hack web description: say "[if player is Harriet]A huge[otherwise]The big[end if] spiderweb blocks the entrance to the gazebo to the north." Carry out looking (this is the web hack rule): [this hack keeps the web visible in BRIEF MODE.] if player is in Moreton West and spiderweb is on-stage: if set to abbreviated room descriptions: [if in SUPERBRIEF,] say web hack web description; continue the action; if the room-describing action is the looking action, continue the action; [in all non-SUPERBRIEF modes, if player typed 'look', web is already mentioend in room desc, so stop] if set to sometimes abbreviated room descriptions and spiderweb is spoken of, say web hack web description. [otherwise, if in BRIEF mode and you entered the room for the 2nd+ time, print this] The web hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. To say spider_creep: say "[no-time]Spiders creep you out. You don't want to go anywhere near [the noun]!" To decide whether the action is okay for orb weaver spider: if talking to, yes; if examining, yes; if zapping, yes; if following, yes; no. To decide whether the action is okay for spiderweb: if examining, yes; if zapping, yes; no. Instead of doing anything to orb weaver spider when the player is Harriet: if the action is okay for orb weaver spider, continue the action; otherwise say spider_creep. Instead of doing anything to spiderweb when the player is Harriet: if the action is okay for spiderweb, continue the action; otherwise say spider_creep. Instead of taking spiderweb when player is Demi: say "[no-time]You don't want to take the web with you, but maybe you could do something else to it." Before eating orb weaver spider: instead say "[if player is Harriet][no-time]Gross! That's the kind of yucky joke Demi likes to make.[otherwise][how nonsense]". Check going north when the player is in Moreton West: if player is Harriet: now Gazebo is not apparent; instead say "[no-time]The web completely blocks the way into the gazebo. There's nothing you can do about it, because you don't even want to think about going near the web or the spider!"; if spiderweb is in Moreton West, instead say "[no-time]The spider and his web are blocking the entrance to the gazebo." Chapter - Orb Weaver Spider the orb weaver spider is an undescribed, improper-named animal in Moreton West. The description of spider is "[if player is Harriet]You don't want to get too close, but from where you stand you can see that the spider is hairy and ugly.[otherwise]The orb weaver is a bit smaller than your hand. He is brown and grey, and sitting very patiently in the middle of his web." Printed name of orb weaver spider is "[if player is Harriet]spider[otherwise]orb weaver spider". Understand "brown/grey/gray spider", "brown/grey/gray orb weaver", "brown/grey/gray orb weaver spider" as orb weaver spider. Instead of taking orb weaver spider: [Demi only] say "[no-time]You don't want to carry the spider around with you while you're playing. Maybe you could just move it?" Chapter - Gazebo Exterior object the gazebo1 is privately-named, improper-named scenery in Moreton West. Printed name of gazebo1 is "gazebo". Description is "[gazebo desc]." Understand "gazebo/house/entrance", "small house", "gazebo entrance" as gazebo1. To say gazebo desc: say "[if player is Harriet]The gazebo is made out of wood, and it's a really weird shape. Sort of like a diamond, but not a diamond. There's a picnic table in there[otherwise]The gazebo looks far more interesting than the house where you live, even if it does only have one room. You like its weird, pointy shape. You can see there's a picnic table in there"; if player is Harriet, say ". It looks like the spider is keeping everyone out today, but you can see from here that none of your friends are hiding in the gazebo, so you probably don't need to get in there anyway". Chapter - Gazeboroof gazeboroof is a privately-named, improper-named backdrop. gazeboroof is in Moreton West and Gazebo. indefinite article of gazeboroof is "the". printed name of gazeboroof is "gazebo roof". Understand "roof/point", "gazebo/gazebos/gazebo's roof/point" as gazeboroof. Description of gazeboroof is "[if the player is Harriet]The gazebo's roof is tall and pointed.[otherwise]The roof of the gazebo is high and steep, and comes to a point." Part - Gazebo [Note - Harriet can never enter the Gazebo] There is a room called Gazebo. "You are in the gazebo, a building like a small tower with a white fence instead of a balcony around the outside of it.[first time] If you painted the fence black, it would be a very good place for a witch to live.[only][paragraph break]There is only one way out of the gazebo, and that is through a gap in the fence to the south." The printed name is "In the Gazebo". The destination name is "the gazebo". Gazebo is north of Moreton West. Chapter - Fence (gazebofence) the gazebofence is privately-named, improper-named, fixed in place scenery in Gazebo. Printed name of gazebofence is "fence". Description is "[if player is Harriet]It's a white wooden fence.[otherwise]It's a white picket fence." Understand "fence", "white/wood/wooden/gazebo fence", "white/wood/wooden gazebo fence" as gazebofence. Chapter - Gazebo Interior object There is a privately-named, improper-named bench called the gazebotable in gazebo. The initial appearance of gazebotable is "There is a picnic table here." The printed name of gazebotable is "picnic table". The description is "[if player is Harriet]The wooden table is off to one side. It is a dull green colour. It's not big enough for anyone to hide under or behind.[otherwise]The table is a bit dirty. It sits over on one side of the gazebo. It's not big enough for anyone to hide under or behind." Understand "table", "picnic table" as gazebotable. the gazebo2 is privately-named, improper-named scenery in Gazebo. Printed name of gazebo2 is "gazebo". Understand "gazebo" as gazebo2. Instead of examining gazebo2: try silently looking. Part - East Side of the Moreton Bay Fig (Moreton East) There is a room called Moreton East. "[if player is Harriet]It is very dark here in the shade of the towering fig tree.[paragraph break]Paths lead around the tree to the west.[otherwise]Very little sunlight reaches this side of the tree. Amongst its giant, twisting roots, you feel like you're in a world of stone.[paragraph break]The only way to go from here is west, to the other side of the tree." The printed name is "East Side of the Moreton Bay Fig". The destination name is "the east side of the Moreton Bay Fig". Moreton East is east of Moreton West. Part - The Giant Garden Bed (GiantGarden) There is a room called GiantGarden. "[if player is Harriet]There's a giant garden bed here with all the prettiest flowers in the park. They're laid out in coloured stripes like in a rainbow.[paragraph break]Neat paths go south, east and west.[otherwise]You're beside a giant garden bed. The flowers have been planted to create a rainbow pattern, and it's beautiful.[paragraph break]Paths goes south, east and west." The printed name is "The Giant Garden Bed". The destination name is "the giant garden bed". GiantGarden is west of Moreton West, east of ByRoundabout and north of AboveWall. Chapter - Giant Garden Bed the giant garden bed is superscenery in GiantGarden. The description is "[if player is Harriet]The rainbow flowers look very special, so you're not supposed to pick them. Something else you notice about the garden bed is that it's so big that a person could probably hide behind it.[otherwise]Imagine arranging all those flowers to make a rainbow. How clever! The garden bed rises quite high from the ground, which makes you think someone could be hiding behind it." Understand "flowerbed", "flower bed", "flower/garden bed rainbow" as giant garden bed. giant garden bed can be searched or unsearched. giant garden bed is unsearched. To say giant garden bed short description: say "You see the giant garden bed before you." Carry out looking (this is the giant garden bed hack rule): if player is in GiantGarden: if set to abbreviated room descriptions: [if in SUPERBRIEF,] say giant garden bed short description; continue the action; if the room-describing action is the looking action, continue the action; [in all non-SUPERBRIEF modes, if player typed 'look', garden bed already mentioend in room desc, so stop] if set to sometimes abbreviated room descriptions and giant garden bed is spoken of, say giant garden bed short description. [otherwise, if in BRIEF mode and you entered the room for the 2nd+ time, print this] The giant garden bed hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Chapter - Giantflowers giantflowers are improper-named, plural-named scenery in GiantGarden. Printed name of giantflowers is "flowers". The indefinite article of giantflowers is "all the". Description of giantflowers is "[if player is Harriet]The flowers are planted in this order in the garden bed rainbow: red, orange, yellow, green, blue, purple. [otherwise]In the garden bed rainbow, first come the red flowers, then the orange flowers, the yellow flowers, the green flowers, the blue flowers, and finally the purple flowers. [end if][floral postscript]". Understand "flower/flowers/petal/petals/stripe/stripes/beautiful/rainbow/pretty/prettiest/colored/coloured", "beautiful/rainbow/pretty/prettiest/colored/coloured flower/flowers/petal/petals/stripe/stripes", "rainbow of flowers" as giantflowers. Instead of taking giantflowers: say don't pick the beautiful flowers. Does the player mean doing anything to giantflowers: it is likely. Chapter - red flowers the red flowers are a plural-named, improper-named, fixed in place thing in GiantGarden. The indefinite article of red flowers is "the". Understand "flower/petal/petals/stripe/stripes/beautiful/rainbow/pretty/prettiest/colored/coloured", "red flower/petal/petals/stripe/stripes" as red flowers. Description of the red flowers is "[if player is Harriet]You like the red flowers a lot. Red is your favourite colour. [otherwise]Harriet would love the red flowers. She's always telling you that red is her favourite colour. Like you could forget! [end if][floral postscript]". Before listing nondescript items: if red flowers is marked for listing, now red flowers is not marked for listing. [means red flowers are never mentioned in room description printouts] [Red flowers were originally megaflora, and thus scenery, but I had to change this to make them fixed in place, then hack them out of room descriptions. Why? Because the parser will not even try to pick up scenery in a 'get X' disambiguation situation. That's bad for something you want to have the illusion of getability, like flowers. In this case, Harriet always reached for her red sneakers if you typed 'get red', and it could not be fixed with 'does the player mean's...] Instead of taking the red flowers: say don't pick the beautiful flowers. Understand "favorite/favorites/favourite/favourites", "favorite/favourite flower/flowers/color/colour/colored/coloured" as red flowers when player is Harriet. Chapter - orange flowers the orange flowers are a plural-named, improper-named megaflora in GiantGarden. The indefinite article of orange flowers is "the". Understand "droopy/drooping/soft/flower/petal/petals/stripe/stripes/beautiful/rainbow/pretty/prettiest/colored/coloured", "orange/droopy/drooping/soft flower/flowers/petal/petals/stripe/stripes" as orange flowers. Description of the orange flowers is "[if player is Harriet]The orange flowers look nice and soft. [otherwise]The orange flowers are kind of droopy. [end if][floral postscript]". Chapter - yellow flowers the gyellow flowers are a plural-named, improper-named, privately-named megaflora in GiantGarden. The indefinite article of gyellow flowers is "the". Printed name of gyellow flowers is "yellow flowers". Understand "yellow/bright/glowing/flower/flowers/petal/petals/stripe/stripes/beautiful/rainbow/pretty/prettiest/colored/coloured", "yellow/bright/glowing flower/flowers/petal/petals/stripe/stripes" as gyellow flowers. Description of the gyellow flowers is "[if player is Harriet]The yellow flowers are so bright in the sun that you have to screw up your eyes to look at them. [otherwise]The yellow flowers glow in the sun. [end if][floral postscript]". Chapter - green flowers the green flowers are a plural-named, improper-named megaflora in GiantGarden. The indefinite article of green flowers is "the". Understand "odd/flower/petal/petals/stripe/stripes/beautiful/rainbow/pretty/prettiest/colored/coloured", "green/odd flower/flowers/petal/petals/stripe/stripes" as green flowers. Description of the green flowers is "[if player is Harriet]Have you ever seen green flowers before? You're not sure. [otherwise]Green is an odd colour for a flower, you think. [end if][floral postscript]". Chapter - blue flowers the blue flowers are a plural-named, improper-named megaflora in GiantGarden. The indefinite article of blue flowers is "the". Understand "flower/petal/petals/stripe/stripes/beautiful/rainbow/pretty/prettiest/colored/coloured", "blue flower/petal/petals/stripe/stripes" as blue flowers. Description of the blue flowers is "[if player is Harriet]Blue flowers... Blue is Demi's favourite colour. It's not a very exciting colour compared to red, though. [otherwise]Blue flowers! Blue is your favourite colour. [end if][floral postscript]". Understand "favorite/favorites/favourite/favourites", "favorite/favourite flower/flowers/color/colour/colored/coloured" as blue flowers when player is Demi. Chapter - purple flowers the purple flowers are a plural-named, improper-named megaflora in GiantGarden. The indefinite article of purple flowers is "the". Understand "small/smallest/flower/petal/petals/stripe/stripes/beautiful/rainbow/pretty/prettiest/colored/coloured", "purple/small/smallest flower/flowers/petal/petals/stripe/stripes" as purple flowers. Description of the purple flowers is "[if player is Harriet]The purple flowers are the smallest ones in the garden bed. [otherwise]The purple flowers are really small. If your favourite colour wasn't blue, you would probably choose purple. [end if][floral postscript]". To say floral postscript: if giant garden bed is examined: say " "; rule succeeds; otherwise: if noun is the red flowers: if player is Harriet, say "These flowers are "; if player is Demi, say "[paragraph break]These flowers are "; if noun is the orange flowers or noun is gyellow flowers, say "They're "; if noun is the green flowers or noun is the blue flowers, say "[paragraph break]These flowers are "; if noun is the purple flowers and player is Demi, say "These flowers are part of the giant garden bed. "; if noun is not giantflowers and noun is not purple flowers, say "part of the giant garden bed. "; say "[if player is Harriet]The garden bed is so big that you suspect a person could hide behind it. [otherwise]The garden bed rises quite high from the ground, which makes you think someone could be hiding behind it. "; set pronouns from giant garden bed; now giant garden bed is examined. [first attempt to look at specific flowers in giantgarden elicits main description of the garden bed first] Part - Above the Wall (AboveWall) There is a room called AboveWall. "[if player is Harriet]This is a really exciting place in the park. It's like a room on another planet where the walls are made out of jungle.[paragraph break]Paths lead north, south and west. To the east is a stone wall about as high as your chest, but on the other side it's a longer drop to the grass below.[otherwise]This is a wild place in the park. The plants are growing crazily, making you feel like you're in a forest or jungle.[paragraph break]You can see paths leading to the north, south and west. To the east you see a stone wall which comes up to your chest. Over the wall, it's a long way down to the grass." The printed name is "Above the Wall". The destination name is "the place above the wall". South of AboveWall is BottomTreehouse. Instead of going down in AboveWall: try going east. After deciding the scope of the player while location is AboveWall: now peepslist is list of people in BelowWall; repeat with N running through peepslist: place N in scope. First report an actor going (this is the AboveWall and Treehouse scope hack rule): if player is in Treehouse and actor is not player: instead do nothing; [eliminate movements which would otherwise be visible from up in treehouse due to scope change.] if player is in AboveWall and actor is not player: if room gone from is BelowWall or room gone to is BelowWall: instead do nothing. [stop action before reporting occurs if actor enters/leaves shade mud] Before talking to anyone when player is in AboveWall: if noun is in BelowWall, instead say "[no-time][The Noun] can't hear you from down there." Before following Pia when player is in AboveWall and Pia is in BelowWall: instead try going east. Before doing anything other than examining or zapping or piafollowhacking to anyone when player is in AboveWall: if noun is in BelowWall, instead say "[no-time]You can't reach [the noun] from up here." [After covering Talking with the above Before rule, then all actions other than examine with this one, I think the restrictive messages concerning people visible in BelowWall from AboveWall are complete!] Chapter - Grey Stone Wall There is an improper-named thing called grey stone wall in AboveWall. grey stone wall is scenery. The indefinite article of grey stone wall is "the". The description is "[if player is Harriet]You run your hands over the wall. It's all rough, bumpy and stoney on its side, but smooth and flat on the top. Down below the other side of the wall is a [describe_grassy_area].[otherwise]The wall is grey and looks like part of a castle, only much smaller. Over the wall, down below, you see a [describe_grassy_area].". The printed name is "wall". Understand "gray", "gray wall/stone", "gray stone wall" as grey stone wall. To say describe_grassy_area: if number of people in BelowWall is 0: say "grassy area"; otherwise: if lady is in BelowWall, now printed name of lady is "the lady"; say "grassy area. You can see [list of people in BelowWall] down there"; if lady is in BelowWall, now printed name of lady is "lady". Instead of going east when the player is in AboveWall: if hurdled of Pia is 0: say "[if player is Harriet]You look over the wall... It's a long way down to the grass. You're too scared to try jumping or climbing down there.[otherwise]You don't feel confident enough to try jumping or climbing down to the grass. It would be great if you had a broomstick and could really fly, but you can't."; set pronouns from grey stone wall; stop the action; if player is Harriet: if ever_jumped of Harriet is 0: play_stringfx; say "You have butterflies in your tummy at the idea of leaping. "; if player holds leafmissile, say "Also, you'll have to drop your leaves first if you want to do this. "; let answer be yesno_answer_with_question "Are you sure you want to jump over the wall? [bold type] (Y/N)[roman type][line break]"; if answer is "NO": say "Gulp... the butterflies got the better of you! You stay where you are."; [deliberately choose to let this take up a turn, to give Pia time to get away if you dilly-dally] set pronouns from grey stone wall; stop the action; if answer is "YES": if player holds leafmissile: say "Okay. You drop your leaves and they skip away. "; now leafmissile is off-stage; now a leaf is part of bunch leaves; say "With a gasp, you gather your courage and run at the wall, throwing yourself over the top of it with your hands.[paragraph break]You're in the air, flying towards the grass!"; now special_look_flag is 1; [without this, after the jump, no time is taken, as somehow the nature of this move causes the new room to be described by the 'looking' action, which causes no time to be taken] if ever_jumped of Harriet is 1, say "You charge at the wall and leap over the top of it again -[paragraph break]Wheeee!..."; now ever_jumped of Harriet is 1; now last location of player is AboveWall; now just_jumped of Harriet is 1; clear the newroom flags; if Sam is in BelowWall, now Sam_fix is true; now player is in BelowWall; zap the tree flags; if the player is Demi, say "[one of]You have a go at climbing onto the wall, but you can immediately tell you won't be able to do it because of your robes. They're too hard to manage. Also, you've got your wand and hat to look after. You will have to forget about trying to jump over the wall. [ayla pia jump comment][line break][or][no-time]It's too hard for you to jump over the wall.[stopping]". To say ayla pia jump comment: if ayla_mode is 1 and Pia is in BelowWall and commented_on_pias_jump of Ayla is 0: say "[paragraph break]'Don't worry,' says Ayla, 'We can work out some other way to catch her.' "; now commented_on_pias_jump of Ayla is 1; if pia_woe_comment of ayla is 1: now pia_woe_comment of ayla is 2; say "[paragraph break]'I thought you said we'd never catch her?' you say.[paragraph break]'I changed my mind,' says Ayla. " Chapter - jungle plants the jungle plants is privately-named, improper-named scenery in AboveWall. The printed name of jungle plants is "wall of jungle plants". The description is "[if player is Harriet]When you look at the jungle plants, you almost expect to see a lion or a tiger as well.[otherwise]The plants are growing all over each other. They're out of control. It reminds you of grandma's back yard." Understand "jungle/forest/plant/plants/weed/weeds/vine/vines", "jungle/forest/crazy plant/plants/weed/weeds/vine/vines" as jungle plants. Understand "wall/walls/mess", "jungle wall/walls/mess", "wall/walls/mess of plants/forest/jungle/weed/weeds/vine/vines" as jungle plants when player is Harriet. Instead of taking jungle plants: say "[no-time][if player is Harriet]The plants are in a real mess. You'd have to tear them apart to take some of them, and you've got no use for them anyway.[otherwise]You don't need any of these crazy plants." Does the player mean doing anything to jungle plants: it is unlikely. [rank them below stone wall] Part - Below the Treehouse (BottomTreehouse) There is a room called BottomTreehouse. "[if player is Harriet]You're in a tangly area in the park. There's lots of tall grass waving in the breeze like water, and there are weeds growing around the flowerbeds and dangling from trees. A metal ladder attached to one tree leads up into a treehouse.[paragraph break]Paths also go north, south and west from here.[otherwise]This is one place in the park where they haven't mown the grass. It's like a green ocean which comes up to your waist! It's fun. There are also weeds creeping around and hanging from the trees over some flowerbeds. In the branches of one tree is a wooden treehouse, and there's a metal ladder you can climb up to reach it.[paragraph break]Paths leave this area to the north, south and west." The printed name is "Below the Treehouse". The destination name is "below the treehouse". South of BottomTreehouse is Edge Park. Understand "tall", "tall grass" as grass when location is BottomTreehouse. Instead of an actor going up from BottomTreehouse when the actor is Demi: say "[one of]You put your foot on the first step of the ladder, then fiddle with your robes, then try to bring your other foot up, but now you need to lift your robes again, but you've got your wand in your spare hand, and...[paragraph break]Rats! This is too hard in these clothes. You hop back down to the ground. It looks like you won't be able to get up in the treehouse today, but at least you can see from down here that nobody is hiding up there.[or][no-time]You already tried climbing the ladder today, and you know you can't do it.[stopping]"; now Treehouse is not apparent; now tried_entering_treehouse of Demi is 1. Instead of an actor going up from BottomTreehouse while the player holds leafmissile: follow the hard_to_climb rule. This is the hard_to_climb rule: let answer be yesno_answer_with_question "Your hands are full with the leaves.[paragraph break]Do you want to drop the leaves so you can climb the ladder to the treehouse? [bold type] (Y/N)[roman type]"; if answer is "NO": say "[no-time][line break]Okay, you hang onto the leaves and stay where you are."; stop the action; if answer is "YES": try dropping leafmissile; say "You climb the ladder."; try going up. Chapter - Weeds the weeds are plural-named, improper-named scenery in BottomTreehouse. The indefinite article of weeds is "the". The description is "[if player is Harriet]The weeds look like little green pieces of string that tie up everything they touch. One time you tied two pieces together and you got itchy hands.[otherwise]You know that the weeds are growing all the time, but so slowly that you can't see it if you just stand there watching them. The ones hanging from the trees look like party streamers." Understand "weed/vine/vines" as weeds. Understand "string/strings" as weeds when player is Harriet. Understand "streamer/streamers" as weeds when player is Demi. Instead of taking weeds: say "[no-time][if player is Harriet]You don't need them. Plus they make you itch![otherwise]They look neat, but you don't think you need them. They're weak and floppy." Chapter - Treehouse exterior object the treehouse1 is privately-named scenery in BottomTreehouse. Printed name of treehouse1 is "treehouse". Description is "[treehouse from the ground]." Understand "treehouse/wooden/house", "tree house", "wood/wooden treehouse", "wood/wooden tree house" as treehouse1. Does the player mean doing anything to treehouse1: it is likely. [rank it over treehouse tree] To say treehouse empty: say "You can see from down here that nobody is hiding in it". To say treehouse from the ground: if player is Harriet: if treehouse is unvisited, say "It looks fun. To see the inside of it, you will need to go up there"; otherwise say treehouse empty; otherwise: if tried_entering_treehouse of Demi is 0: say "The treehouse is made out of wood and sits up amongst the branches of the tree"; otherwise: say treehouse empty; now tried_entering_treehouse of Demi is 1. Section - Ladder exterior object the ladder1 is privately-named, improper-named scenery in BottomTreehouse. Printed name of ladder1 is "metal ladder". Description is "The metal is warm from the sun. The ladder leads up into the treehouse." Understand "metal/ladder", "metal ladder" as ladder1. Chapter - Treehouse tree and parts the thtree is a privately-named backdrop. thtree is in BottomTreehouse, Treehouse. The printed name of thtree is "treehouse tree". The description of thtree is "[if player is Harriet]The tree which holds up the treehouse is a really huge, thick one.[otherwise]The treehouse tree is strong enough to hold a whole house in its branches." Understand "tree/trees", "huge/thick tree", "treehouse tree", "tree house tree" as thtree. thtree branches are a plural-named, improper-named, privately-named part of thtree. The printed name of thtree branches is "treehouse tree branches". The indefinite article is "the". The description of thtree branches is "[if player is Harriet]The branches on this tree are huge![otherwise]The branches on this tree are enormous." Understand "branch/branches", "tree/treehouse branch/branches", "tree house branch/branches", "treehouse tree branch/branches", "tree house tree branch/branches" as thtree branches. Instead of taking thtree branches: say "[no-time][if player is Harriet]The branches on this tree can hold a whole house up. You can't even bend them a tiny bit.[otherwise]Since each branch on the treehouse tree is at least twice as thick as your whole body, you don't even try." the thtree bark is privately-named part of thtree. The printed name of thtree bark is "treehouse tree bark". The description of thtree bark is "[if player is Harriet]It's thick and rough.[otherwise]It's all hard and rough." Understand "bark", "tree/treehouse bark", "treehouse tree bark", "tree house tree bark" as thtree bark. Instead of taking thtree bark: say "[no-time][if player is Harriet]Pulling at this bark makes your hands sore. You give up.[otherwise]Like the rest of this tree, the bark is tough and chunky. You can't get any off." thtree leaves are a plural-named, improper-named, privately-named part of thtree. The printed name of thtree leaves is "treehouse tree leaves". The indefinite article is "the". The description of thtree leaves is "[if player is Harriet]This tree has hardly any leaves, and they're out of reach anyway[leafclue].[otherwise]The treehouse tree is pretty bare of leaves." Understand "leaf/leaves", "tree leaf/leaves" as thtree leaves. Does the player mean doing something with thtree leaves: it is unlikely. [rank them below leafmissile and leaf. Important for throwing disambig.] Instead of taking thtree leaves: try examining thtree leaves. Part - In the Treehouse (Treehouse) There is a room called Treehouse. "You're up in the wooden treehouse. Wow, what a great view! The house has no roof and its walls are red and blue[scenery_wheel]. This all looks fun, but you need to get on with finding your friends. Maybe if you check out the view, you can spot some of them from up here.[paragraph break]A ladder leads down to the ground." The printed name is "In the Treehouse". The destination name is "the treehouse". Treehouse is up from BottomTreehouse. Chapter - Treehouse scope code After deciding the scope of the player when location is Treehouse: if treehouseview is examined: repeat through Table of longrange rooms: now lookout place is location entry; if Stevie is in lookout place, place Stevie in scope; [the only animal we will allow to be in scope] unless number of notmehuman people in lookout place is 0: now peepslist is list of notmehuman people in lookout place; repeat with P running through peepslist: place P in scope; place grey stone wall in scope; place giant garden bed in scope; place Moreton Bay Fig Tree in scope; place puddle mud in scope. Understand "girl" as Rose when location is Treehouse and treehouseview is examined and Rose is in Shade Mud. Definition: A person is notintreehouse if it is not in Treehouse. Definition: A thing is awayfromtreehouse if it is not in Treehouse and it is not enclosed by Treehouse. ['in' covers backdrops, 'enclosed by' covers possessions of the player. The two aren't the same, but both are necessary to cover absolutely everything that's really 'in' the treehouse.] Before examining a notintreehouse person when player is in Treehouse: instead say "[no-time]You can't get a good look at [it-them of noun] from up here." Before examining an awayfromtreehouse thing when player is in Treehouse: instead say "[no-time]You're too far away to get a good look." Before talking to a notintreehouse person when player is in Treehouse: instead say "[no-time][The Noun] would never be able to hear you from up here.". Before talking to an awayfromtreehouse thing when player is in Treehouse: instead say doesn't make sense. Before zapping a notintreehouse person when player is in Treehouse: instead say "[zap]Of course, [the noun] didn't hear you from up here." Before zapping an awayfromtreehouse thing when player is in Treehouse: instead say zap. Before doing anything other than examining or zapping or talking to a notintreehouse person when player is in Treehouse: instead say "[no-time]You can't reach [the noun] from up here." Before doing anything other than examining or zapping or talking to an awayfromtreehouse thing when player is in Treehouse: instead say "[no-time]You can't reach [the noun] from up here." Chapter - Treehouse interior object the treehouse2 is privately-named scenery in Treehouse. Printed name of treehouse2 is "treehouse". Understand "treehouse/wooden/house", "tree house", "wood/wooden treehouse", "wood/wooden tree house" as treehouse2. Understand "wall/walls" as treehouse2 when location is Treehouse. Does the player mean doing anything to treehouse2: it is likely. [rank it over treehouse tree] Instead of examining treehouse2: try looking. Chapter - Steering Wheel the steering wheel is superscenery in Treehouse. Description of steering wheel is "It's a lot like the one in the car." To say scenery_wheel: If steering wheel is not spoken of, say ". There's a steering wheel attached to the trunk of the tree". Carry out looking (this is the wheel hack rule): if player is in Treehouse: if set to abbreviated room descriptions: say the wheel short description; continue the action; if steering wheel is spoken of, say the wheel short description. To say the wheel short description: say "There's a steering wheel attached to the trunk of the tree." The wheel hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Chapter - Ladder interior object the ladder2 is privately-named, improper-named scenery in Treehouse. Printed name of ladder2 is "metal ladder". Description is "The metal is warm from the sun. The ladder leads down to the ground." Understand "metal/ladder", "metal ladder" as ladder2. Part - By the Koala Statue (ByKoala) There is a room called ByKoala. "[if player is Harriet]You're in a round, paved clearing surrounded by a tall hedge. It's a little cooler here for some reason[scenery_koala].[paragraph break]Paths lead north and east.[otherwise]This corner of the park is shaped like a circle, and has a hedge around it[scenery_koala]. The ground isn't covered in grass, but with honey-coloured stones. You like it here.[paragraph break]You can leave the circle by going north or east." The printed name is "By the Koala Statue". The destination name is "the koala statue". ByKoala is west of Edge Park. To say scenery_koala: If giant stone koala statue is not spoken of, say "[if player is Harriet]. In the centre of the clearing is a giant stone koala[otherwise]. In the centre of the clearing is a huge stone koala". Chapter - Koalacircle the koalacircle is privately-named, improper-named scenery in ByKoala. the printed name of koalacircle is "circle". Understand "circle" as koalacircle when player is Demi. [don't need Harriet to address it - not in her description] Instead of examining koalacircle: try looking. Chapter - Pavings the pavings are plural-named, improper-named scenery in ByKoala. Description of pavings is "[if player is Harriet]They're neat little stones in the ground.[otherwise]The paving stones are pretty." The indefinite article of pavings is "the". Understand "paving/paved/stone/stones", "paving stone/stones" as pavings. Understand "honey", "honey-coloured/paving stone/stones", "honey-colored stone/stones", "honey coloured stone/stones", "honey colored stone/stones", "honey-colored paving stone/stones", "honey coloured paving stone/stones", "honey colored paving stone/stones" as pavings when player is Demi. Instead of taking pavings: say "[no-time]They're buried in the ground." Does the player mean doing anything to pavings when player is Harriet: it is unlikely. [rank STONE pavings below STONE koala] Chapter - Giant Stone Koala Statue the giant stone koala statue is superscenery in ByKoala. Understand "huge", "huge statue", "huge koala", "huge koala statue", "huge stone koala/statue", "huge stone koala statue" as giant stone koala statue. The printed name of giant stone koala statue is "koala statue". giant stone koala statue can be searched or unsearched. giant stone koala statue is unsearched. To say the koala short description: say "The huge stone koala stands before you." Carry out looking (this is the koala hack rule): [this hack makes the koala appear above all people descriptions and actions. Also keeps the koala visible in 'brief' mode.] if player is in ByKoala: if set to abbreviated room descriptions: say the koala short description; continue the action; [otherwise, if player didn't type LOOK, cancel the printout] if giant stone koala statue is spoken of, say the koala short description. The koala hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. The description of giant stone koala statue is "[koala_to_the_eye]". To say koala_to_the_eye: if the player is Harriet: say "What a fatty! Mum and dad took you to see koalas at Taronga zoo one time, and they were cute, but they were mostly asleep.[run paragraph on]"; if giant stone koala statue is unsearched, say ".. Hm, this koala is so big, someone could use it as a hiding place. Maybe you should look behind it?[run paragraph on]"; say " "; if the player is Demi: say "This statue reminds you that when you saw koalas at Taronga zoo, you were disappointed that they weren't doing much. Harriet liked them, though.[run paragraph on]"; if giant stone koala statue is unsearched, say "[paragraph break]Something else about this statue... it's so big that you can't see all the way around it at once. Maybe one of your friends is hiding behind it?[run paragraph on]"; say " ". Part - On the Triangle-Shaped Path (Tri Path) There is a room called Tri Path. "[if player is Harriet]The pathway becomes narrow here and splits in three directions. It makes you think of a triangle. The flowerbeds here are yellow and really pretty.[paragraph break]You can go north, south or east.[otherwise]Three paths meet here to form a triangle. Pretty yellow flowers have been planted beside the pathways.[paragraph break]You can leave the triangle by going north, south or east." The printed name is "On the Triangle-Shaped Path". The destination name is "the triangle-shaped path". Tri Path is north of ByKoala and west of BottomTreehouse. Chapter - Yellow Flowers and flowerbed the yellow flowerbeds are plural-named, improper-named scenery in Tri Path. The indefinite article of yellow flowerbeds is "the". Instead of examining yellow flowerbeds: try examining the pretty yellow flowers. Understand "bed/beds", "yellow/pretty flowerbed", "pretty flowerbeds", "pretty yellow flowerbed/flowerbeds" as yellow flowerbeds. the pretty yellow flowers are a plural-named, improper-named part of yellow flowerbeds. The indefinite article of pretty yellow flowers is "the". Description of pretty yellow flowers is "[if player is Harriet]You know daffodils are yellow, but these flowers aren't daffodils. You don't know what they are.[otherwise]The flowers are big and round. You once read a story about ladybugs having tea parties on flowers like these. Unfortunately you don't see any ladybugs or tea parties here." Understand "flower", "pretty/yellow flower", "pretty yellow flower", "petal/petals" as pretty yellow flowers. Instead of taking pretty yellow flowers: say "[no-time][if player is Harriet]Maybe you'll pick one later to show to dad, but you won't do that now.[otherwise]This looks like a special flowerbed. You're probably not meant to take flowers from it. Besides, ladybugs need a place to hold tea parties." Does the player mean doing anything to pretty yellow flowers: it is likely. [rank it above the flowerbed itself] Section - Ladybug and ladybugs characters the ladybug is a neuter animal. Understand "bug/insect", "lady bug", "mr ladybug" as ladybug. the ladybugs is a neuter, plural-named animal. Understand "bugs/insects", "lady bugs" as ladybugs. Chapter - Triangle-shaped path the triangle triangle-shaped path is scenery in Tri Path. the printed name of triangle triangle-shaped path is "triangle-shaped path". Understand "triangle shaped", "triangle shaped path" as triangle triangle-shaped path. Instead of examining triangle triangle-shaped path: try looking. Part - By the Roundabout (ByRoundabout) There is a room called ByRoundabout. "[roundabout full desc]." The printed name is "By the Roundabout". The destination name is "the roundabout". ByRoundabout is north of Hedge Maze. To say roundabout full desc: if mounted of roundabout is 0: say "[if player is Harriet]You're in a nice grassy clearing with paths leading out of it south and east[otherwise]You're in a big grassy clearing at the northwest corner of the park.[paragraph break]A path leads south towards the hedge maze, and another one goes east towards a colourful garden bed"; otherwise: say "You're up on the roundabout. [if player is Harriet]Around you is a nice grassy clearing with paths leading out of it south and east[otherwise]Around you is the big grassy clearing.[paragraph break]A path leads south towards the hedge maze, and another one goes east towards a colourful garden bed"; To say roundabout spin remark: if spin of roundabout is: -- 1: say "The roundabout spins slowly."; -- 2: say "The roundabout is spinning."; -- 3: say "The roundabout is spinning quickly. "; if mounted of roundabout is 1, say "Whee! "; say line break; -- 4: say "The roundabout is spinning very quickly." [we never see this if player initiates push - just left it in case it's relevant for Marion somehow] Carry out looking (this is the roundabout hack rule): [this hack gives current roundabout spin info when you look, to stand in for the info you won't be getting from an 'every turn' rule at such times.] if player is in ByRoundabout: if chasehide of roundabout is 2: [as it is at game init...] now chasehide of roundabout is 0; continue the action; [don't mention roundabout the first time you enter the room, as it's in Marion's desc.] if the looking action is the room-describing action: [ie if you typed LOOK, every turn rules are not going to mention roundabout, so...] [say "ROOM DESCRIBING ACTION HAPPENED";] [debug] if spin of roundabout is greater than 0: if chasehide of roundabout is 1: [if you chase someone into this room, there is both LOOK and every turn feedback. So here, I cancel the 'look' part to avoid double feedback.] now chasehide of roundabout is 0; continue the action; say roundabout spin remark; otherwise: if mounted of roundabout is 0, say "You see the roundabout."; otherwise: [this is what happens for an auto-look upon entering the room] if spin of roundabout is 0 and mounted of roundabout is 0, say "You see the roundabout." [only if it's not moving, mention it now because every turn rules won't] The roundabout hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Every turn: if spin of roundabout is greater than 0: decrement spin of roundabout; if spin of roundabout is 0: now orientation of roundabout is 0; if location is ByRoundabout, say "The roundabout comes to a halt."; otherwise if location is ByRoundabout: say roundabout spin remark. Before player going a direction (called way) when location is ByRoundabout: if way is up: if mounted of roundabout is 0: say "(onto the roundabout)[line break]"; instead mount the roundabout; if way is down: if mounted of roundabout is 1: say "(off the roundabout)[line break]"; instead demount the roundabout; if way is east or way is south: if duel_mode is 1: instead say "[no-time][if the player is Harriet]You have to stay and finish the duel![otherwise]No, a witch never turns her back on her opponent[first time] (or her sister)[only]!"; otherwise: if mounted of roundabout is 1: do the roundabout demount flag changes; say "You [if the player is Harriet]hop[otherwise]climb[end if] off the roundabout. "; if ayla_mode is 1: say "Ayla does the same."; make Ayla not roundabouty; otherwise: say line break; [if black witch's hat is in ByRoundabout, say line break;] follow the hat restore rule. This is the hat restore rule: if black witch's hat is in location: [namely ByRoundabout] say "You'll need to get your hat before you leave. You pick it up and examine it carefully. It looks fine again now that the duel is over. Whew! You place it back on your head."; renew Demi's hat. To do firsthopclimb roundabout: say "First you [if the player is Harriet]hop[otherwise]climb[end if] off the roundabout. "; do the roundabout demount flag changes; if ayla_mode is 1: say "Ayla does the same."; make Ayla not roundabouty; otherwise: say paragraph break. Chapter - Roundabout the roundabout is a fixed in place, undescribed thing in ByRoundabout. The initial appearance of roundabout is "You see the roundabout here." The description is "[if the player is Harriet]The roundabout is red, and there are bars around the edge of it for holding onto.[otherwise]The roundabout is painted red. There are bars on it that you can hold onto while you're riding." Understand "red", "red roundabout", "round about", "red round about", "round-about", "red round-about" as roundabout. Understand "ride" as vagueclimbing when location is ByRoundabout and mounted of roundabout is 0. Understand "ride [something]" as general objectclimbing when location is ByRoundabout and mounted of roundabout is 0. Understand "ride" as vague turning when location is ByRoundabout and mounted of roundabout is 1. Understand "ride [something]" as turning something when location is ByRoundabout and mounted of roundabout is 1. Understand "ride [something] [text]" as turning it in a direction when location is ByRoundabout and mounted of roundabout is 1. fauxriding is an action applying to one topic. Understand "ride", "ride [text]" as fauxriding when location is not ByRoundabout. Carry out fauxriding: say "[no-time][line break][second custom style]<< You can only RIDE the roundabout. >>[normal style][paragraph break]". bars are plural-named, improper-named part of roundabout. The printed name of bars is "roundabout bars". The indefinite article is "the". The description is "[if the player is Harriet]The bars are curved and made of metal.[otherwise]The bars are metal. They're as red as the rest of the roundabout." Understand "bar/metal", "red/metal bar/bars" as bars. roundabout has numbers called mounted, spin, orientation, chasehide. chasehide of roundabout is 2. [prevent roundabout appearing first time you enter that room] To mount the roundabout: if duel_mode is 1: if player is Harriet: say "[no-time]You're sure you'll get zapped if you try to climb up on the roundabout now. It's smarter to stay on the grass where you can run around."; rule fails; otherwise if player is Demi: if duel_position is 1: [soundsafe] say "You start to race towards the roundabout as well, but Marion gets there first. "; do Marion's spinaround victory; rule fails; if duel_position is 2: say "[no-time]You're too far away from the roundabout to get on right now. You'll have to do something else."; rule fails; if duel_position is 3: [soundsafe] say "You think you might be close enough to make it to the roundabout now, so you start to run.[paragraph break]'Zap!' [do Marion's zap]yells Marion, throwing another shot, which you run straight into."; do the Demi dp1kill; rule fails; if duel_position is 4: [soundsafe] now duel_text is "Marion's shot was a poor one, so you take this opportunity to step around it and onto the roundabout. You feel very confident now that you're higher up than she is. Looking a bit desperate, Marion yells [do Marion's zap]'Zap!' and whips her sword arm up, throwing a shot at you across the roundabout."; do the roundabout mount flag changes; give Marion pose 12; advance the duel; rule succeeds; [duel_position of 5 will fall through to tell you you're already on the roundabout] if duel_position is 6: [soundsafe] say "Feeling brave, you try to jump onto the moving roundabout… Ugh, you bumped your arm! Your wand falls out of your hand.[paragraph break]'Zap!' [do Marion's zap]yells Marion, jabbing her sword at you.[paragraph break]'Argh!' you cry, taking the zap right in the chest. You've lost."; do the Demi dp1kill; rule fails; if mounted of roundabout is 1: say "[no-time]You're already on the roundabout."; rule fails; abide by the leaf roundabout check rule; abide by the mud roundabout check rule; if spin of roundabout is greater than 0: say "You [if player is Harriet]get[otherwise]climb[end if] onto the moving roundabout. "; otherwise: say "You [if player is Harriet]get[otherwise]climb[end if] up on the roundabout. "; do the roundabout mount flag changes; if ayla_mode is 1: make Ayla roundabouty; if roundaboutquip of Ayla is 0: now roundaboutquip of Ayla is 1; say "Ayla gives it a big push, then jumps on as well."; now spin of roundabout is 4; otherwise: say "Ayla gets on too."; otherwise: say line break; if sailor_warning of Marion is 0: if player is Harriet and Marion is in location: say "[line break]Marion says, 'That's part of my ship. Make sure you don't tread on any of my pirates.'[paragraph break]'I'm being careful,' you say."; now sailor_warning of Marion is 1. This is the leaf roundabout check rule: if player holds leafmissile or player holds leaf: if player holds leafmissile, let answer be yesno_answer_with_question "Before you can get on the roundabout, you'll have to drop your leaves. Do you want to do this? [bold type] (Y/N)[roman type]"; if player holds leaf, let answer be yesno_answer_with_question "Before you can get on the roundabout, you'll have to drop your leaf. Do you want to do this? [bold type] (Y/N)[roman type]"; if answer is "NO": instead say "[no-time][line break]Okay. You hold onto your [if player holds leaf]leaf[otherwise]leaves[end if] and stay where you are."; if answer is "YES": if player holds leaf: try dropping leaf; otherwise: try dropping leafmissile. This is the mud roundabout check rule: if player holds mudpie: let answer be yesno_answer_with_question "Before you can get on the roundabout, you'll have to get rid of your mudpie. Do you want to do this? [bold type] (Y/N)[roman type]"; if answer is "YES": try dropping mudpie; if answer is "NO": instead say "[no-time][line break]Okay. You keep your mudpie and stay where you are." To do the roundabout mount flag changes: now mounted of roundabout is 1; now printed name of ByRoundabout is "On the Roundabout". To demount the roundabout: if duel_mode is 1: if duel_position is 5: [soundsafe] say "You try to get off the roundabout, but your robes snag on the bars. You're stuck![paragraph break]'Zap!' shouts [do Marion's zap]Marion, and the duel is over."; do the Demi dp1kill; rule fails; if mounted of roundabout is 0: say "[no-time]You're not on the roundabout."; rule fails; if spin of roundabout is greater than 0: say "You hop off the moving roundabout. "; otherwise: say "You get off the roundabout. "; do the roundabout demount flag changes; if ayla_mode is 1: say "Ayla gets off as well."; make Ayla not roundabouty; otherwise: say line break. To do the roundabout demount flag changes: now mounted of roundabout is 0; now printed name of ByRoundabout is "By the Roundabout". To togglemount the roundabout: if mounted of roundabout is 1: demount the roundabout; otherwise: mount the roundabout. [Every turn: [debug] say "SPIN "; say spin of roundabout; say line break; say "ORIENTATION OF IT"; say orientation of roundabout; say line break.] Chapter - Little Hill the little hill is scenery in ByRoundabout. Description of little hill is "[if the player is Harriet]The hill is like a bump in the earth. It doesn't go up very far.[otherwise]The hill is just a spot in this clearing where the ground is a little higher than usual." Understand "bump/spot/grassbump/earthbump", "bump in the earth", "grass/earth bump/hill" as little hill. Part - By the Hedge Maze (Hedge Maze) There is a room called Hedge Maze. "[maze entrance desc]". The printed name is "By the Hedge Maze". The destination name is "the hedge maze". Hedge Maze is north of Tri Path and west of AboveWall. To say maze entrance desc: if ever_met of raven is 0: say "[if player is Harriet]What was that sound just then? There must be a bird close by.[paragraph break][otherwise]You hear a bird cry out as you enter this big, open grassy area. "; if player is Demi, now ever_met of raven is 1; otherwise: say "You're in a [if player is Harriet]nice big[otherwise]big, open[end if] grassy area. "; if player is Harriet: say "West of here is the entrance to the hedge maze. [first time]It's a real life maze where all the walls are made out of hedges. You've been in there before and it can be lots of fun. [only]"; if player is Demi: say "To the west is the entrance to the hedge maze. [first time]It's a great place to hide, so you're sure that at least one of your friends will be in there. You will have to explore the maze to find out if you're right. [only]"; say "[paragraph break]Paths also lead north, south and east from here. ". Instead of going west when player is in Hedge Maze: if player is Demi: if Ayla is untagged: enter the maze; otherwise: say "[no-time]You don't need to go back into the maze. You already found Ayla."; otherwise: say "[no-time]You're too scared of that raven to walk past him into the maze. What if he pecked you on your head or something?[paragraph break]Hm... Being scared yourself makes you think that your friends were probably scared away by the raven as well. That might have stopped any of them from trying to hide in the maze. Maybe you should look for them elsewhere?"; now hedgestart is not apparent. Chapter - Maze Exterior Object the maze1 is privately-named scenery in Hedge Maze. Printed name of maze1 is "maze". Description is "[if player is Harriet]The maze is big, but you can't see inside it from out here. There is a tall hedge all the way around it.[otherwise]When you look towards the maze, you imagine a city made out of grass and trees. Of course you can't see inside it from out here. The outer hedge blocks your view." Understand "maze/entrance" as maze1. Understand "outer hedge" as hedgea when location is Hedge Maze. Chapter - Maze Interior Object the maze2 is a privately-named backdrop. maze2 is in InMaze and hedgestart. Printed name of maze2 is "maze". Understand "maze" as maze2. Instead of examining maze2: silently try looking. Chapter - Raven There is a male coolbird called the raven. "The raven sits on a hedge here, watching you." Understand "bird" as raven. raven is in Hedge Maze. The description of raven is "[if player is Harriet]Could a bird be any scarier? You don't think so. This raven looks like he could pick you up and carry you away. He's sitting still at the moment, but you don't trust him, and you're afraid to go near him.[otherwise]He's a good-looking bird, dark and shiny like the night." raven has numbers called talked_to, flown_into_maze. Rule for writing a paragraph about raven: if player is Demi: if player is in Hedge Maze and raven is as-yet-unknown: say "Sitting on the hedge beside the entrance to the maze is a big black bird, a [raven]. He must have called out when he saw you coming.[paragraph break]'Yes, here I am,' you say. You feel sure this bird would be the kind to help a witch like yourself."; [putting raven in braces prevents raven's regular desc. being printed thist turn, thanks to the way 'writing a paragraph about' works] play_random_raven; now raven is introduced; if player is in InMaze and raven is as-yet-unknown: [if we're writing about raven, by definition, the raven must be the bird in the current room] if current_trick is 1: [bird+giggle] follow the raven and giggle rule; if current_trick is 4: if subtrick is 4: follow the raven and giggle rule; otherwise: say "The [raven] suddenly arrives, swooping over your head and landing on one of the hedges."; now raven is introduced; if player is Harriet and ever_met of raven is 0: say "Ugh... A huge, scary black bird is sitting on the hedge beside the entrance to the maze. He has no white patches on him, so he's not a magpie. He must be a [raven]."; now ever_met of raven is 1; play_random_raven; now raven is introduced; set pronouns from raven. This is the raven and giggle rule: if flown_into_maze of raven is 0: say "The [raven] just landed on a hedge here and cried out. At the same time, you heard someone giggling nearby in the maze. But did that giggle come from the left or the right?"; otherwise: say "The [raven] is here, and he called out at the same time that you heard someone giggling nearby. But did that giggle come from the left or the right?"; now flown_into_maze of raven is 1; follow the stereo help rule. This is the stereo help rule: if glulx sound is supported and stereo_cue of Demi is 0 and user_fxvol is not 0: now stereo_cue of Demi is 1; say "[second custom style]<< If you have stereo speakers, you really can use your ears while in the maze. Note which side of you any giggling sound comes from... that will be the direction to go. >>[normal style][line break]". Chapter - Galah There is a neuter coolbird called the galah. "The galah sits on a hedge here." Understand "bird" as galah. The description of galah is "The galah has white, pink and grey feathers. Its colours make it really stand out here in the maze. You learned at school that Aborigines gave the bird its name." Rule for writing a paragraph about galah: if player is Demi: if player is in InMaze and galah is as-yet-unknown:[if we're writing about galah, by definition, the galah must be the bird in the current room] if current_trick is 1: [bird+giggle] follow the galah and giggle rule; if current_trick is 4: if subtrick is 4: follow the galah and giggle rule; otherwise: if ever_met of galah is 0: say "A pink bird with a white crest on its head - a [galah] - suddenly flies into view, squawking all the while. It settles on the hedge and then looks around."; otherwise: say "The [galah] suddenly walks around the corner. It squawks as it hops up onto the hedge."; now ever_met of galah is 1; now galah is introduced. This is the galah and giggle rule: if ever_met of galah is 0: say "There's a pink, parrotty bird with a white crest on its head sitting on the hedge here. You recognise it as a [galah]. The galah made a lot of noise as you approached, but at the same time, you heard someone giggling nearby in the maze. Did that giggle come from the left or the right? You're not sure."; otherwise: say "The [galah] is here, and it called out at the same time you heard someone giggling nearby. But did that giggle come from the left or the right?"; follow the stereo help rule. Chapter - Old Man the old man is an improper-named man. "The old man is standing here." The introduction of old man is "An old man wearing thick glasses comes around the corner. He looks surprised to see you standing there.[paragraph break]'Where are your parents?' he asks, sounding cross. 'Children shouldn't be running around here on their own.'" The description of old man is "The man's glasses make his eyes look big and watery. You don't like his face, but it's pointed right at you." old man wears the glasses. glasses are plural-named, improper-named. The indefinite article of glasses is "the". Understand "man/mans/man's glasses", "old man/mans/man's glasses" as glasses. Description of glasses is "You hope you don't have to wear glasses like that. They look heavy, like they're pushing the man's face down." the face is a part of old man. Printed name of face is "old man's face". Understand "man/mans/man's face", "old man/mans/man's face", "line/lines" as face. Description of face is "The man's face is hard and has some really deep lines in it." the eyes are a plural-named, improper-named part of old man. Printed name of eyes is "old man's eyes". The indefinite article of eyes is "the". Understand "eye" as eyes. Instead of examining eyes: try examining old man. old man has a number called impatience. Part - Into the Hedge Maze Table of maze contents [rooms] chamber R2 -- -- -- -- -- -- -- -- -- -- -- -- -- -- Table of maze routes [texts] rightway "left" -- -- -- -- Table of maze tricks [numbers] trick 0 -- -- -- -- [1 = bird+giggle. no direction info. raven or galah at random. 2 = nothing at first. wait for giggle. 3 = 1 giggle w info, then nothing else. 4 = encounter or nothing at all.] Table of Subtricks [numbers] trix 0 -- -- -- [1 nothing at all 2 bird only 3 old man 4 bird+giggle (permanent) NB - Add a row to table of Subtricks for each new subtrick I create!] maze_target is a room variable. [global] maze_mode, maze_progress, maze_pointer are number variables. [Global] mister_direction, old_mister_direction are text variables. [global] current_trick, subtrick, subtrick_pointer are number variables. [global] Instead of player going when maze_mode is 1: say maze_movement_advice. [a general catch all to intercept 'go west', 'go up' etc. while in maze - seems to work... is not checked til after specific commands like 'go maze', etc] To say maze_movement_advice: say "[no-time][line break][second custom style]<< You can only move through the hedge maze by going LEFT or RIGHT. To leave the maze at any time, type EXIT. >>[normal style][line break]". To pick left or right: lock the dice; if a random chance of 1 in 2 succeeds, now mister_direction is "left"; otherwise now mister_direction is "right". To flip directions: if mister_direction is "left", now mister_direction is "right"; otherwise now mister_direction is "left". To refresh the maze rooms: [recreate maze room order] let L be list of rooms in InMaze; lock the dice; sort L in random order; remove R1 from L; [remove the first room from the list] repeat with N running from 1 to 15: now chamber in row N of Table of maze contents is entry N of L. To create a new maze: pick left or right; [this part picks the left-right path through the new maze] now rightway in row 1 of Table of maze routes is mister_direction; flip directions; now rightway in row 2 of Table of maze routes is mister_direction; now maze_progress is 0; repeat with N running from 3 to 5: now old_mister_direction is mister_direction; pick left or right; if mister_direction is old_mister_direction: increment maze_progress; if maze_progress is 3: flip directions; now maze_progress is 0; now rightway in row N of Table of maze routes is mister_direction; let L be {1, 3, 3, 2, 4}; [work out what happens in each room from a catalogue of 5 events] lock the dice; let R be a random number between 1 and 3; [first event can only be a 1 or one of the two 3s] now trick in row 1 of Table of maze tricks is entry R of L; remove entry R from L; repeat with N running from 2 to 5: [fill other 4 rows] lock the dice; let R be a random number between 1 and number of entries in L; now trick in row N of Table of maze tricks is entry R of L; remove entry R from L. To enter the maze: [don't touch maze_pointer here] say conditional paragraph break; [this is needed to create the correct spacing between the typed command 'west' and the title of the room - a normal line break here results in 2 blank lines!] create a new maze; now maze_progress is 1; now discouragement of Demi is 0; now gigcount of Demi is 0; now maze_mode is 1; redraw status line; now special_look_flag is 1; now player is in hedgestart; WaitForSpace; do the post fader check; say line break; now ever_been_in_maze of Demi is 1; now mister_direction is "start"; now last location of player is location; [set last room to hedgestart] select next room; [point at next new maze room, though we won't go there right away] now maze_target is R1; [first move into the maze is always to R1] enter the new room. [go to R1] To try a path in the maze: if Ayla is in location: if Ayla is untagged: say "[no-time]You went to all this trouble to find Ayla, so you should tip her before you go anywhere else."; otherwise: say "[no-time]You've tipped Ayla and she wants to get back into the sun, so you should exit the maze."; rule fails; now last location of player is location; if glulx sound is supported and location is R13, stop the horizon sound; [turn off drain if leaving R13] clear the newroom flags; select next room; now maze_target is chamber in row maze_pointer of Table of maze contents; [store room we're about to move to in maze_target] say maze runnin; [says how you run further into the maze, etc.] if mister_direction is rightway in row maze_progress of Table of maze routes, take the right path; otherwise take the wrong path. To select next room: increment maze_pointer; if maze_pointer is 16: now maze_pointer is 1; refresh the maze rooms. To say maze runnin: if old man is in location, say "As you leave, you hear the old man shout out behind you: 'How rude!'[paragraph break]What a grouch he was![paragraph break]"; say "[RandomLock]You [one of]turn[or]go[purely at random] [mister_direction] and [one of]hurry[or]run[purely at random] [one of]further into the maze[or]around more twisting hedges[purely at random]..." To take the right path: increment maze_progress; if maze_progress is 6: [now maze_target is R13; [cheat] ] now Ayla is in maze_target; now found_her of Ayla is 1; now special_look_flag is 1; now right_now_listens of Demi is 0; now player is in maze_target; play_FoundAyla; if location is R13, play_drain; [start drain water sound] rule succeeds; enter the new room. To take the wrong path: [say "NO"; [debug or cheat] ] now maze_progress is maze_progress minus 2; if maze_progress is less than 1, now maze_progress is 1; if discouragement of Demi is less than 3, increment discouragement of Demi; if discouragement of Demi is 2, say get confident stupid; if discouragement of Demi is 3, say "[line break]Ugh, you have a feeling you took a wrong turn.[line break]"; enter the new room. To say get confident stupid: say "[line break]You start to wonder if you're catching up with that giggling person or falling behind them. But then you remember that you are a clever and powerful witch. You feel confident about continuing the search. "; if number of untagged chasees is greater than 1, say "And if you do feel tired and would rather come back here later, you could always exit the maze and search for friends elsewhere for now.[line break]"; otherwise say line break; WaitForSpace; say line break. To play the appropriate giggle: if rightway in row maze_progress of Table of maze routes is "left", play_random_l_giggle; otherwise play_random_r_giggle. To say current Ayla direction: say rightway in row maze_progress of Table of maze routes. To stick a bird in the room: lock the dice; if a random chance of 1 in 2 succeeds, now raven is in maze_target; otherwise now galah is in maze_target. To play the appropriate bird sound: if raven is in maze_target, play_random_raven; otherwise play_galah. To say dig the quietness: say "[RandomLock][one of]It's very quiet here. [or]It's really quiet here. Hm! [or]It's quiet here. [purely at random]"; if ever_digged_the_quietness of Demi is 0, say "Maybe if you just listen, you'll hear that person sneaking around?"; otherwise say line break; now ever_digged_the_quietness of Demi is 1. To enter the new room: [say maze_progress; [debug] ] now right_now_listens of Demi is 0; lock the dice; now maze_listening_requirement of Demi is a random number between 1 and 2; now raven is off-stage; now raven is as-yet-unknown; now galah is off-stage; [always clear the birds before moving through maze because they're reusable... don't wanna leave em somewhere] now galah is as-yet-unknown; now old man is off-stage; [also need to clear old man] now special_look_flag is 1; now current_trick is trick in row maze_progress of Table of maze tricks; [now current_trick is 4; [cheat] ] if current_trick is 1, stick a bird in the room; [bird+giggle setup] if current_trick is 4: ['nothing' or encounter setup or bird+giggle setup] repeat with N running from 1 to number of rows in Table of Subtricks: increment subtrick_pointer; if subtrick_pointer is greater than number of rows in Table of Subtricks, now subtrick_pointer is 1; if trix in row subtrick_pointer of Table of Subtricks is not 0, break; [as soon as we hit a non-zero entry, we choose it] now subtrick is trix in row subtrick_pointer of Table of Subtricks; [say subtrick; [debug]] if subtrick is less than 4, now trix in row subtrick_pointer of Table of Subtricks is 0; [only trick 4 is permanent - all others are one offs, replaced with 0s in the table once activated] [repeat with N running from 1 to number of rows in Table of Subtricks: [debug] say line break; say trix in row N of Table of Subtricks;] if subtrick is 2 or subtrick is 4, stick a bird in the room; [bird only and bird+giggle subtricks respectively] if subtrick is 3, now old man is in maze_target; clear the newroom flags; now player is in maze_target; [NOW THE PLAYER IS IN THE ROOM!!!] zap the tree flags; [always do this right after player moves] if location is R13, play_drain; [start drain water sound] if current_trick is 1: [bird+giggle setup] play the appropriate bird sound; play the appropriate giggle; if current_trick is 2, say dig the quietness; if current_trick is 3: increment gigcount of Demi; if gigcount of Demi is: -- 1: say "You just heard someone giggling! It sounded like it came from the [current Ayla direction]."; -- 2: say "What was that? You heard someone giggle nearby. It sounded like it came from the [current Ayla direction]."; -- otherwise: say "There was the giggling again. It definitely came from the [current Ayla direction]."; play the appropriate giggle; if current_trick is 4: if subtrick is 1, do nothing; if subtrick is 2, play the appropriate bird sound; if subtrick is 3, do nothing; if subtrick is 4: play the appropriate bird sound; play the appropriate giggle. A mazeroom is a kind of room. The printed name of a mazeroom is usually "In the Hedge Maze". Chapter - Hedgestart There is a mazeroom called hedgestart. hedgestart is west of Hedge Maze. "You have entered the hedge maze. Tall green walls of square hedge bend around each other, forming tricky patterns. It's spooky and mysterious, even on a sunny day. But it's exciting, too.[paragraph break]There are yellow arrows painted on the ground wherever you walk here. If you ever get lost, you can follow the arrows to the exit.[Demi maze intro][paragraph break]You walk forward into the maze…". The destination name of hedgestart is "the hedge maze" prompted player over maze sound is a number variable. [global] To say Demi maze intro: play_maze_music; do the mazemusic timer; if ever_been_in_maze of Demi is 1 and mazecontrols is 2, say "[paragraph break][second custom style]<< While you're in the maze, typing L will be short for LEFT again. Type CONTROLS if you want to review the controls setup for the maze. >>[normal style]"; if ever_been_in_maze of Demi is 0: say "[paragraph break][second custom style]<< You won't need to make a map of the maze - In fact, it cannot be mapped! Just pay attention to what your ears and eyes tell you. >>[paragraph break]<< Also, compass directions don't work in here. Use LEFT and RIGHT instead. You can type EXIT to leave the maze at any time. >>[normal style][paragraph break]"; perform the maze control check routine; if glulx sound is supported and user_fxvol is 0 and prompted player over maze sound is 0: now prompted player over maze sound is 1; let answer be yesno_answer_with_question "[paragraph break][bold type]<< Sound can help you in the maze, but you currently have the sound effects turned off. Would you like to turn them back on before you proceed? (Y/N)"; say line break; if answer is "YES": now user_fxvol is 5; do the volume settings; say "Okay. The sound effects volume has been set to 5 / 5. "; otherwise if answer is "NO": say "Okay. The sound effects remain off. This reminder will not appear again. "; say " >>[roman type][line break]"; do the post fader check. mazecontrols is a number variable. mazecontrols is 1. [global] To perform the maze control check routine: [the 'no time' tag is made in the CONTROLS command] now question response echo is 0; now current question is "[if ever_been_in_maze of Demi is 0]Now, how [otherwise]How [end if]would you like to control your movements while in the maze? Please choose one of the following setups by pressing 1 or 2:[line break]"; now current question menu is { "Type LEFT to go left, RIGHT to go right and L to look.", "Type L to go left, R to go right and LOOK to look." }; ask a menu question; now mazecontrols is current question answer; say "[second custom style]<< "; if mazecontrols is 1: say "You chose set up number 1. Remember that typing L will be short for LOOK, not 'go left'."; otherwise: say "You chose set up number 2. Remember that typing L will be short for GO LEFT, not 'look'. Type the whole word LOOK if you want to see your location description again while in the maze."; say "[line break]You can check or change the controls later by typing CONTROLS. >>[normal style] " [trailing space needed] Chapter - R1 There is a mazeroom called R1. "You stand in a narrow passage made by two hedges. It's dark and scary here. At the end of the passage you can turn left or right." [this is always the first room upon re-entering the maze] Chapter - R2 There is a mazeroom called R2. "You have run into a grassy clearing in the maze. It is quite sunny here. There are two new openings leading back into the maze, one to your left and one to your right." Chapter - R3 There is a mazeroom called R3. "You find yourself amongst some trees in the maze. Each one is like a small witch's tower. You can continue through this area to the left or to the right." witchtrees are plural-named, privately-named scenery in R3. Understand "tree/trees/tower/towers", "witch/witchs/witch's tree/trees/tower/towers" as witchtrees. The printed name of witchtrees is "trees". The indefinite article is "the". The description of witchtrees is "You have a close look at the trees, but you can't see any witches living inside. If the trees were bigger or you were smaller (not that you want to be shrunk) the tree could be your tower." Instead of taking witchtrees, say "[no-time]They're not so small that you can pick them up. They're still taller than you!" the witchtree bark is privately-named part of witchtrees. Understand "bark/skin", "tree/tower/towers bark/skin" as witchtree bark. The printed name of witchtree bark is "bark". The description of witchtree bark is "The bark of the trees here is more like their skin." Instead of taking witchtree bark: say "[no-time]It doesn't come off. It's almost like these trees don't have bark." witchtree branches are privately-named, improper-named, plural-named part of witchtrees. Understand "branch/branches", "tree/tower/towers/sharp branch/branches" as witchtree branches. The printed name of witchtree branches is "tree branches". The indefinite article is "the". The description of witchtree branches is "The branches on these trees are small and sharp." Instead of taking witchtree branches: say "[no-time]These branches are sharp all over. You don't want to hurt your hands." witchtree leaves are privately-named, improper-named, plural-named part of witchtree. The printed name of witchtree leaves is "tree leaves". The indefinite article is "the". The description of witchtree leaves is "These trees have tiny dark leaves." Understand "dark/leaf/leaves", "tree/tower/towers/dark leaf/leaves" as witchtree leaves. Instead of taking witchtree leaves: say "[no-time]You've got no use for these teeny-tiny leaves." Chapter - R4 There is a mazeroom called R4. "There is a great big wall of hedge right in front of you. You can go around it to the left or the right." Understand "wall", "big wall" as hedgea when location is R4. Chapter - R5 There is a mazeroom called R5. "You have come across a little pond with some moss growing around it. You can go around the left side of the pond or the right side." Section - Pond the pond is superscenery in R5. Description of pond is "You see a few tadpoles in the pond, but they hide themselves whenever you step close to the edge. Chloe at school said you can turn tadpoles into frogs. You would like to try that sometime, but you are busy with hide and seek right now." To say pond hack description: say "There is a little pond here with some moss growing around it." Carry out looking (this is the pond hack rule): if player is in R5: if set to abbreviated room descriptions: [if in SUPERBRIEF,] say pond hack description; continue the action; if the room-describing action is the looking action, continue the action; [in all non-SUPERBRIEF modes, if player typed 'look', pond is already mentioend in room desc, so stop] if set to sometimes abbreviated room descriptions and pond is spoken of, say pond hack description. [otherwise, if in BRIEF mode and you entered the room for the 2nd+ time, print this] The pond hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Section - Water the water is scenery in R5. Description of water is "It's kind of a browny colour." Before eating water: instead silently try drinking water. Instead of taking water: say "[no-time]You don't need any of the water, and it looks a bit dirty." Instead of drinking water, say "[no-time]You don't know if it's safe to drink, so you better not." Section - Moss the moss2 is privately-named scenery in R5. Printed name of moss2 is "moss". Description of moss2 is "The moss is wet and green, like seaweed. It looks interesting and normally you would like to investigate it, but you don't have time right now." Understand "moss" as moss2. To decide whether the action is okay for moss: if examining, yes; if talking to, yes; if eating, yes; if throwing without target, yes; no. Instead of doing anything to moss2: if the action is okay for moss, continue the action; otherwise say "[no-time][if Ayla is in location]You don't need to fiddle about with the moss now.[otherwise]You don't have time to fiddle about with the moss now. You're following someone through the maze." Section - Tadpoles the tadpoles are an undescribed, plural-named animal in R5. Description of tadpoles is "They're cute little guys with wriggly tails." The indefinite article is "the". Understand "tadpole" as tadpoles. Carry out examining pond: now tadpoles are introduced. Carry out examining tadpoles: now tadpoles are introduced. To decide whether the action is okay for tadpoles: if examining, yes; if talking to, yes; if taking, yes; if eating, yes; if throwing without target, yes; if following, yes; no. Instead of talking to tadpoles, say "[one of]'You're so cute,' you tell the tadpoles.[or]'Can you really turn into frogs?' you wonder aloud.[or]'I have to go now,' you tell the tadpoles. You wave them goodbye.[or][no-time]You don't have time to keep chatting with them.[stopping]". Instead of taking tadpoles, say "[no-time]Maybe another day." Instead of eating tadpoles, say "[no-time]What a horrid idea!" Instead of doing anything to tadpoles: if the action is okay for tadpoles, continue the action; otherwise say "[no-time][if Ayla is in location]You don't have time for the tadpoles now.[otherwise]You don't have time for the tadpoles now. You're chasing someone." Chapter - R6 There is a mazeroom called R6. "[r6_desc_process]a big stone pole. Hedge-lined paths go left and right away from here" r6_flag is a number variable. [global] To say r6_desc_process: if r6_flag is 1: say "You stand before "; otherwise: say "You turn a corner and almost walk into "; now r6_flag is 1. [flag is set to 0 again in the 'clear newroom flags' routine] the stone pole is a scenery in R6. The description of stone pole is "The pole is twice as wide and twice as tall as you are. You're sure there is a special name for one of these things, but you forget what it is right now." Chapter - R7 There is a mazeroom called R7. "You find yourself in a clearing shaped like a circle. The circle is made out of the hedges. Paths lead out the other side of the circle to the left and right." the circle is a scenery in R7. The description of circle is "You're not sure what's weirder, hedges that are square or hedges that are round. In this area, you can see both types at once!" Understand "round hedge/hedges" as hedgea when location is R7. Chapter - R8 There is a mazeroom called R8. "The hedges are quite close together here. It's almost like having a grass roof over your head. The end of the path splits so that you can turn either left or right." the grass roof is a scenery in R8. The description of roof is "The roof gives good protection from the sun, but you have a feeling you would get very wet here if it rained." Does the player mean doing anything to the grass roof: it is likely. [ranks it over grass backdrop] Chapter - R9 There is a mazeroom called R9. "You have found a grass field in the maze. There's lots of space here to run around in. Across the field, two paths lead back into the maze. One goes left, the other right." Chapter - R10 There is a mazeroom called R10. "The maze becomes curvy here. Ahead of you, it splits like a fork. One path curves away to the left. Another curves away to the right." Chapter - R11 There is a mazeroom called R11. "This part of the maze is up on a little slope. It's still not high enough for you to be able to see over the hedges, though. Paths go left and right." There is a privately-named, improper-named thing called little slope. little slope is scenery. The indefinite article of little slope is "the". Printed name is "slope". Understand "slope", "little slope" as little slope. little slope is in R11. Instead of examining little slope: try looking. Chapter - R12 There is a mazeroom called R12. "A few of the hedges here are shaped like beachballs. How funny! You can go between the hedges on your left or the ones on your right." the beachballs is plural-named, improper-named scenery in R12. Printed name of beachballs is "beachball hedges". The indefinite article of beachballs is "the". Description of beachballs is "You touch one of the beachball hedges. Even though it looks round, it's still prickly. Whoever made it this way must be very clever." Understand "ball/beachball", "ball/beachball hedge/hedges" as beachballs. Chapter - R13 There is a mazeroom called R13. "There is a grate in the ground here. It's dark underneath and you can hear water running. Ahead of you, you can turn the corner left or right." Instead of going down in R13: try newopening metal grate. Section - Grate the metal grate is superscenery in R13. Description of metal grate is "It's made out of metal and is attached firmly to the ground. You imagine it would be exciting to explore a dark tunnel with water running through it, but mum and dad once told you not to mess around with grates and drains. They said you could have an accident or something." Understand "drain", "metal drain" as metal grate. Instead of taking or pushing or pulling metal grate, say "[no-time]The grate is right in the ground. You could never move it." To say grate hack description: say "There is a grate in the ground here." Carry out looking (this is the grate hack rule): if player is in R13: if set to abbreviated room descriptions: [if in SUPERBRIEF,] say grate hack description; continue the action; if the room-describing action is the looking action, continue the action; [in all non-SUPERBRIEF modes, if player typed 'look', grate is already mentioend in room desc, so stop] if set to sometimes abbreviated room descriptions and grate is spoken of, say grate hack description. [otherwise, if in BRIEF mode and you entered the room for the 2nd+ time, print this] The grate hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Does the player mean doing anything to metal grate: it is likely. [makes sure I rate 'drain' meaning grate over 'drain' meaning drain water] Section - Drain Water the drain water is scenery in R13. Description of drain water is "It's too dark under the grate. You can't see the water, you can only hear it." Before eating drain water: instead silently try drinking drain water. Instead of taking drain water: say "[no-time]You can't reach it or see it. It's far down in the dark under the grate." Instead of drinking drain water, say "[no-time]You wouldn't drink the drain water even if you could reach it - which you can't." Chapter - R14 There is a mazeroom called R14. "You're in a clearing with some smaller hedges which only come up to your waist, but the area is still surrounded by taller hedges. You will have to decide whether to go out the left side of the clearing or the right side." the smaller hedges are plural-named scenery in R14. The indefinite article of smaller hedges is "the". Description of smaller hedges is "The smaller hedges are cute. They look like baby hedges." Understand "small/smaller hedge/hedges" as smaller hedges. the taller hedges are plural-named scenery in R14. The indefinite article of taller hedges is "the". Description of taller hedges is "These hedges are really tall. Not even a super tall person could see over them." Understand "tall/taller hedge/hedges" as taller hedges. Chapter - R15 There is a mazeroom called R15. "This is a shady spot in the hedge maze with a green seat which people can sit on. You can continue through the maze by turning left or right." Section - Green seat the green seat is superscenery in R15. Description of green seat is "The seat is painted green and is made out of curly metal. You can see right through it, so you know that nobody is hiding behind it." To say green seat hack description: say "You see a green seat here." Carry out looking (this is the green seat hack rule): if player is in R15: if set to abbreviated room descriptions: [if in SUPERBRIEF,] say green seat hack description; continue the action; if the room-describing action is the looking action, continue the action; [in all non-SUPERBRIEF modes, if player typed 'look', seat is already mentioend in room desc, so stop] if set to sometimes abbreviated room descriptions and green seat is spoken of, say green seat hack description. [otherwise, if in BRIEF mode and you entered the room for the 2nd+ time, print this] The green seat hack rule is listed before the room description paragraphs about objects rule in the carry out looking rules. Chapter - R16 There is a mazeroom called R16. "The hedges are very tall and neat here, and form the shape of a big letter T. You can turn left or right." Book - Commands This is the person or enclosed check rule: if noun is a person or noun is enclosed by a person, instead say "You're being [nonsense]!" To say how nonsense: say "How [nonsense]!" Part - Time-Taking Negations Carry out looking: [takes no turns or time] if the room-describing action is the looking action and special_look_flag is 0: if the turn count is greater than 1, take no time; otherwise take 0 seconds; now special_look_flag is 0. Carry out examining: [takes no turns or time] if the turn count is greater than 1, take no time; otherwise take 0 seconds. Carry out taking inventory: [takes 1 turn, no time] if the turn count is greater than 1, take no time; otherwise take 0 seconds. Part - Block [content complete] [for duel mode only] [roundabout safe] blocking is an action applying to nothing. Understand "block" as blocking. fussy blocking is an action applying to one topic. Understand "block [text]" as fussy blocking. Check fussy blocking: abide by the block possibility rule; say "[no-time][line break][second custom style]<< While you're dueling, just type BLOCK to block! >>[normal style][line break]"; instead try blocking. This is the block possibility rule: if duel_mode is 0: if Marion is tagged: say "[no-time][line break][second custom style]<< You can only BLOCK when you're in a duel. >>[normal style][line break]"; otherwise: say "[no-time]You don't need to block any attacks now."; rule fails. Check blocking: [blockt] abide by the block possibility rule; if player is Harriet: if duel_position is 1: [soundsafe] now duel_text is "You wave your wand across yourself and Marion's zap bounces off it. 'Peooo!' [do Harriet's block]you say. 'I blocked it.'[paragraph break]'Curses!' says Marion, taking a couple of steps to her right. She stops suddenly and holds her sword sideways in front of herself for protection."; give Marion pose 3; advance the duel; rule succeeds; if duel_position is 2: [soundsafe] now duel_text is "You hold your wand up to protect yourself as well. Marion takes this opportunity to start running across the clearing.[paragraph break][Hatfall fun]."; abide by the pirate hat loss rule; if duel_position is 3: [soundsafe] now duel_text is "You raise your wand to protect yourself. [combo 141]Marion throws a sideways zap at you while she's running and you knock it aside.[paragraph break][Marion reaches the hill]'"; give Marion pose 5; advance the duel; rule succeeds; if duel_position is 4: [soundsafe] now duel_text is "You swish your wand across yourself and block Marion's zap with [do Harriet's block]a 'Peooo!'[paragraph break]Marion ducks back behind the hill so you can't see her. [Marion pops up]!"; give Marion pose 6; advance the duel; rule succeeds; if duel_position is 5: [soundsafe] say "You hold your wand up to protect yourself. Marion immediately puts her head down again. It looks like she's not coming out.[paragraph break]You slowly lower your wand, and… 'Zap!' yells Marion, appearing so quickly from behind the hill that it makes you jump. Her sword is pointed right at you. You have to admit that she outsmarted you.[paragraph break]"; say combo delay 1; instead do the Harriet dp1kill; otherwise if player is Demi: if duel_position is 1: [soundsafe] now duel_text is "You hold your wand up, ready to knock away a zap from Marion, but she doesn't turn around until she's on the far side of the [do Marion's zap]roundabout. [Marion kneel and retaliate]'"; give Marion pose 9; advance the duel; rule succeeds; if duel_position is 2: [soundsafe] now duel_text is "'Peoo!' you say, [do Demi's block]swiping Marion's shot aside with your wand. Carefully but confidently, you begin to move towards the roundabout yourself. Marion pokes her head out from behind the bars to check what you're up to."; give Marion pose 10; advance the duel; rule succeeds; if duel_position is 3: [soundsafe] say "You raise your wand to protect yourself from another shot. You stay like that for a moment but nothing is happening. You lower your wand and try to see what Marion is doing. It's not easy with those bars in the way.[paragraph break]Suddenly Marion appears around the side of the roundabout again and throws another shot at you from her sword - [do Marion's zap]'Zap!'[paragraph break]Rats, she got you!"; instead do the Demi dp1kill; if duel_position is 4: [soundsafe] say combo 61; say "You swat Marion's zap away with your wand. "; instead do the roundabout bump death; if duel_position is 5: [soundsafe] say "You swish your wand in front of you to block Marion's shot - ugh, you accidentally struck one of the bars! Your wand falls from your hand![paragraph break]'No!' you cry.[paragraph break]'Zap!' says Marion, instantly firing at you again. You've been defeated."; say combo 61; instead do the Demi dp1kill; if duel_position is 6: [soundsafe] say "You hold up your wand to block a shot that is not coming. Marion uses this moment to scramble back to the roundabout. You lower your wand to try to get a clear shot at her again, but she rolls sideways on the grass and yells [do Marion's zap]'Zap!', hitting you in the side where you are not protected."; instead do the Demi dp1kill; Part - Brush Away [all safe] brushing away is an action applying to one thing. Understand "brush [something]", "brush away [something]", "brush [something] away" as brushing away. [As is, the above Understand line was caught out by 'brush web with wand' - which produced 'Sorry, this game doesn't know the verb "brush"..!!!'.. apparently because I changed the libmessage about 'didn't understand that sentence' to 'don't know the verb X.' I found the game responded more nicely in general if I removed the 'brush [something] away' token, so having a word after the 'something' seems to be the cause of the probs. But I want that word. So have now changed the libmsg to an 'only understood you as far as...' type message.] Understand the command "sweep" as something new. Understand the command "sweep" as "brush". vainbrushing is an action applying to nothing. Understand "brush", "brush away" as vainbrushing. Carry out vainbrushing: if location is Edge Park and bunch leaves is in location: say "(the leaves)"; pluralswitch bunch leaves; instead try brushing away bunch leaves; if location is Gazebo: say "(the table)"; set pronouns from gazebotable; instead try brushing away gazebotable; try brushing away player. [Spider and web actions are blocked for Harriet with instead rules. See those to program verb exceptions.] To say don't fiddle: say "[no-time]It's best not to fiddle with your costume." To say don't be a pokepop: say "[no-time][if player is Harriet]You don't like to go poking at people.[otherwise]You're not interested in poking at people." Before brushing away orb weaver spider: now noun is spiderweb. [gets you past the 'don't go poking at animals' blocking check.] Check brushing away: abide by the duelblock B rule; if noun is player: instead say "[no-time]You don't need to brush yourself off at the moment."; if noun is leaf or noun is leafmissile or noun is mudpie: instead say doesn't make sense; if noun is a wand enclosed by player: instead say don't fiddle; if noun is enclosed by player: instead try playing with noun; ['best not to fiddle'] if noun is an animal or noun is enclosed by an animal: instead say "[no-time]You don't like to go poking at animals."; if noun is a person or noun is part of a person: instead say don't be a pokepop; if noun is enclosed by a person: instead say "[no-time][if player is Harriet]You don't like to go poking at people's things.[otherwise]You're not interested in poking at people's things." Check brushing away: if noun is bunch leaves: instead say "[no-time]It's more fun if the leaves stay where they are."; if noun is gazebotable: instead say "[no-time]You'd just get dirty if you did that."; if noun is jungle plants: instead try coresearching jungle plants; if noun is moss1: instead try taking moss1; unless noun is spiderweb: instead say "[no-time]You don't need to [current_command] that." Carry out brushing away spiderweb: say "Using your wand, you carefully cut through the threads holding the spiderweb in place on one side. The web falls sideways and the spider runs along one of the remaining threads and disappears under the roof of the gazebo. You scrape away what's left of the web on the grass.[paragraph break]'Sorry Mister Spider,' you say, 'but you were in my way today.'[if Sam is in location][line break]'You're weird,' says Sam.[end if][line break]Now you can go into the gazebo to the north."; now spiderweb is off-stage; now orb weaver spider is off-stage; if Pia is in location and Pia is untagged: now spider_freak of Pia is 1; follow the PiaGo rule. [make her flee - seems more logical than having her stand there and watch you create a trap for her. I don't mind leaving Sam there, as he's not too bright.] Part - Chase [all safe] chaseroom is a room variable. chaseway is a direction variable. [globals] To activate chaseway: now chaseway is the best route from location to chaseroom. vague chasing is an action applying to nothing. Chasing is an action applying to one thing and one visible thing. [NB! [direction] only works in the command definition if we say 'one visible thing'. Just saying 'one thing' results in the '... more substantial' error message. Don't ask me why, but one visible thing is crucial here.] chasing-need-a-direction is an action applying to one thing and one topic. chasing-redirect-to-tipping is an action applying to one thing. chasing escapees is an action applying to one visible thing. chasing into mud is an action applying to two things. This is the validate_the_chasee rule: if noun is not a person: instead say "[no-time]You can only chase people and animals."; if noun is black prince cicada: instead say "[no-time]You'll leave the insect-chasing up to Jack."; if noun is dark bird: [Harriet only] instead say "[no-time]That bird is way up in the tree."; if noun is Stevie: if player is Harriet, instead say no chasing a leashed dog; if noun is galah: [Demi only] instead say "[no-time]Chasing birds is for bird brains like Jack. That's what you think."; if noun is old man: [Demi only] instead say "[no-time]That would be too rude."; if noun is orb weaver spider: [Demi only] instead say "[no-time]You don't like chasing spiders. It must not be very nice if you're the spider."; if noun is raven: if player is Harriet, instead say "[no-time]You're too afraid of the raven to go near him."; if player is Demi, instead say "[no-time]You like the raven. You don't want to chase him away."; if noun is player: instead say "[no-time]Chase yourself? That's no way to win a game of tip."; if noun is a heroine or noun is a parent or noun is Rose or noun is Marion or noun is lady: instead try tipping noun; [add any other characters whose response should be as if you tried to tip them to this line] if noun is a tagged chasee: say "[no-time]You've already tipped [noun]. You don't have time to keep chasing [it-them of noun] around when there are more people to tip."; rule fails. To say no chasing a leashed dog: say "[no-time]You can't really chase the dog. The leash keeps it from running too far away from the lady." Understand "chase" as vague chasing. Understand "chase [something] [direction]" as chasing. Understand "chase [something] [text]" as chasing-need-a-direction. Understand "chase [something]" as chasing-redirect-to-tipping. Understand "chase [any followable person]" as chasing escapees. Understand "chase [something] in/into [puddle mud]" as chasing into mud. Instead of chasing escapees: instead try following noun. [leads to 'noun context' error (73) if noun exists but is not followable, which I have diverted to print 'You can't see any such thing'] Check vague chasing: seek out anyone presence; if number of nottheplayer people in location is: -- 0 : instead say "[no-time]There's no-one here to chase."; -- 1 : if Stevie is in location: say "([The Stevie])[line break]"; set pronouns from Stevie; instead say "[The Stevie] runs around you in a circle."; otherwise: say "([current_caps_person])"; set pronouns from current_caps_person; instead try tipping current_caps_person; -- otherwise : instead say "[no-time][line break][second custom style]<< You also need to say whom you want to chase. For example, you could type CHASE [CAPS POWER PERSON]. >>[normal style][line break]". Check chasing: abide by the validate_the_chasee rule; if duel_mode is 1: if noun is Marion: instead say "[no-time]You have to finish your duel with Marion here."; otherwise: instead say "[no-time]You'll have to finish the duel first."; let D be second noun; if D is not cardinal: instead say "[no-time]You can't chase [if noun is an animal]animals[otherwise]people[end if] up or down, though it's funny to think about."; if location is Moreton West and D is north: if player is Harriet, instead say "[no-time]You can't chase anyone into the gazebo because that huge spiderweb is in the way."; if player is Demi and spiderweb is in Moreton West, instead say "[no-time]You can't chase anyone into the gazebo with that big spiderweb in the way."; if location is Gazebo, instead say "[no-time]You've got [it-them of noun] cornered here in the gazebo. You don't want to chase [it-them of noun] out - you want to tip [it-them of noun]."; [Demi only - Jack can't enter Gazebo. This message is intended to apply to Sam and Pia.] let destination be the room D from the location of the player; if destination is nothing: if noun is Stevie: say "[no-time]You can't chase [the Stevie] that way because you can't even go that way! "; otherwise: say "[no-time]You can't chase [the noun] that way because you can't even go that way! "; list the exits; rule fails; if destination is Picnic, instead say "[no-time]You don't want to chase anyone towards the picnic area. That's where they'll go after they've been tipped."; if destination is hedgestart: unless noun is Stevie, instead say "[no-time][if player is Harriet]You're too afraid to go past the raven, so you can't chase anyone into the maze.[otherwise]Chasing someone into the maze would just make it much harder to catch them."; [for Stevie, going to hedgestart will be blocked by it not being an oklady room.] if player is Demi, abide by the no hat equals no chase rule; abide by the only a fool would leave em untipped rule. This is the no hat equals no chase rule: if black witch's hat is in location, instead say "[no-time]You don't want to do any more chasing until you've got your hat back." Check chasing-need-a-direction: abide by the validate_the_chasee rule; if player is Demi, abide by the no hat equals no chase rule; now current_caps_person is the noun; lock the dice; now chaseroom is a random adjacent room; now chaseway is best route from location to chaseroom; instead say "[no-time][line break][second custom style]<< You need to say which way you want to chase [the noun]. For example, you could type CHASE [CAPS POWER PERSON] [uppedway]. >>[normal style][line break]". Check chasing-redirect-to-tipping: abide by the validate_the_chasee rule; if duel_mode is 1: if noun is Marion: instead say "[no-time]The only way you'll get to tip her is by beating her in this duel."; otherwise: instead say "[no-time]You'll have to finish the duel first."; if noun is Stevie: [Harriet won't reach this line - she's knocked out at the abide level] if ayla_mode is 0: instead say "You chase [the Stevie] [RandomLock][one of]in a circle[or]around in a few circles[or]back and forth on the grass[at random]. She [happydog sound]barks."; otherwise: instead try playing with Stevie; if noun is an untagged chasee, try tipping the noun. Check chasing into mud: abide by the validate_the_chasee rule; instead say "[no-time][if player is Harriet]It's easy to run around the puddle of mud, but you don't think [the noun] would be silly enough to run right into it. Also, you're afraid you might fall in the puddle yourself.[otherwise]The big mud puddle is very easy to see. You don't think you could trick anyone into running into it." To say known_place: let gubble be destination name of chaseroom; if chaseroom is visited, say " to [gubble]". To say Sam_swipe: say "You swipe at Sam but he jumps back out of your reach. He begins to make his way around to the other side of the tree by jumping and scrambling over the huge roots. It looks like hard work!" To say Sam_1st_pursuit: say "You start to follow him and… gosh, this IS hard work! Each root is like a small wall. Some of them you can leap over, some of them you have to stop and climb over. You can hear Sam breathing heavily ahead of you as you chase him." To say Sam_tired_pursuit: say "Again, Sam begins to flee from you by going around the other side of the tree. He jumps and climbs and climbs and jumps his way over the tangle of giant tree roots, and with great determination you do all of the same things as you try to catch up." To say Sam_supertired_pursuit: say "Sam groans as you run towards him again, then he starts to jump and leap over the roots as he heads for the other side of the tree. Panting a bit yourself now, you climb after him..." To say Demi_Sam_thwart: say "[if ever_chased of Sam is 0]You move to follow Sam but find that in your witch's robes, it's too hard to either climb or jump over the big roots. Giving up on this idea, you run away from the tree until you are beyond the reach of the roots, then circle around to its other side. Unfortunately, this is a much slower way of getting around the tree than Sam's way.[otherwise]Knowing you can't get over the big tree roots in your robe, you run away from the tree until you are clear of the roots, then circle around to the tree's other side. It takes awhile." To make the random Sam flees decision: [pick GiantGarden or BelowWall at random] lock the dice; if a random chance of 1 in 2 succeeds, now chaseroom is GiantGarden; otherwise now chaseroom is BelowWall. Carry out chasing: [general startoff] now chaseway is the second noun; now chaseroom is the room chaseway from the location of the player; if mounted of roundabout is 1: do firsthopclimb roundabout. Carry out chasing: if location is Moreton West and chaseway is east and noun is not Sam: [tried to chase someone (not Sam) east from Moreton West - divert it] [won't happen to Stevie as Moreton East is antilady.] make the random Sam flees decision; let V be the best route from Moreton West to chaseroom; say "You run at [the noun] and try to chase [it-them of noun] east, but you can tell [that-those of noun] doesn't want to go in that direction - probably because of all the big tree roots that are in the way.[paragraph break][if ayla_mode is 1]You all end up running [otherwise]The two of you end up running [end if][V] -[line break]"; do_the_chase_flags; rule succeeds. Carry out chasing: [placement of the Stevie stuff here is because we've just now cleared all the general chasing checks] if noun is Stevie: if ayla_mode is 0: if chaseroom is oklady: say "You run towards [the Stevie] and chase [dog her it] [chaseway]."; otherwise: lock the dice; now chaseroom is a random oklady room adjacent to location; activate chaseway; say "You run towards [the Stevie]. [dogcap she it] wiggles all over the place as you chase [dog her it], and you both end up going [chaseway] instead -[line break]"; otherwise if extra_status of Stevie is 2: now ladytarget is hideyhole of Vince; let way be best route from location to ladytarget through oklady rooms; if second noun is not way, say "You'll try to get [the Stevie] to go [second noun], but you've realised that it's hard to make a frisky dog do exactly what you want.[line break]"; instead try playing with Stevie; otherwise if extra_status of Stevie is greater than 3: [so 4 or 5] instead try playing with Stevie. Carry out chasing: if noun is Jack and chaseroom is Gazebo: [can only happen with Demi] make the random Sam flees decision; let V be the best route from Moreton West to chaseroom; say "You try to chase Jack towards the gazebo, but he won't go anywhere near it. He ends up running [V], and you follow him."; do_the_chase_flags; rule succeeds. Carry out chasing: if noun is Pia and chaseroom is Gazebo: [this will only happen - and only for Demi - if the check chasing rules allowed it to] say "Pia sees the path you've cleared to the gazebo and jumps inside. You follow behind her -[line break]"; do_the_chase_flags; say "Pia's eyes dart around the gazebo. Her lips make an 'O', like she's having a thinkies. You can tell she knows you've cornered her."; if Sam is in Moreton West: now Sam is in Moreton East; [make Sam move away so it doesn't look like he was dumb enough to watch you tip Pia, then fall for the same trick] rule succeeds. Carry out chasing: [Sam] if noun is Sam: if chaseroom is Gazebo: [this will only happen - and only for Demi - if the check chasing rules allowed it to] say "You race at Sam as fast as you can. When he tries to escape around the fig tree, you jump in front of him with your arms spread out. Then... yes! He decides to go north into the gazebo! You rush after him -[line break]"; now ever_chased of Sam is 1; do_the_chase_flags; say "You see Sam looking around for an escape route, but there isn't one - you're standing between him and the only way out of the gazebo. You've got him trapped![paragraph break]'Help!' he screams, 'The witch is coming to get me!'"; if Pia is in Moreton West: now Pia is in Moreton East; [make Pia move away so it doesn't look like she was dumb enough to watch you tip Sam, then fall for the same trick] rule succeeds; if chaseroom is not GiantGarden and chaseroom is not BelowWall: if fatigue of Sam is 3, instead try tipping Sam; if location is GiantGarden or location is BelowWall: now he_likes_that_way of Sam is 0; if location is GiantGarden and chaseway is east, now he_likes_that_way of Sam is 1; if location is BelowWall and chaseway is north, now he_likes_that_way of Sam is 1; if he_likes_that_way of Sam is 1: say "Sam seems happy to be chased [chaseway]... maybe he doesn't want to go too far away from the fig tree?"; otherwise: say "You race towards Sam, determined to chase him [chaseway][known_place], but he really doesn't want to go that way. Puffing and panting, he leads you in a big circle back to the fig tree."; now chaseroom is Moreton West; do_the_chase_flags; rule succeeds; if the player is Harriet: if times_tipped of Sam is 0: say Sam_swipe; now ever_chased of Sam is 1; treerun Sam; fat2Sam; say line break; say Sam_1st_pursuit; do_the_chase_flags; rule succeeds; if fatigue of Sam is 2: say Sam_supertired_pursuit; treerun Sam; fat2Sam; do_the_chase_flags; rule succeeds; [don't have to check for fatigue 3, since attempting to chase at that point will auto-tip] say Sam_tired_pursuit; [this last part is for fatigue 0 or 1] treerun Sam; fat2Sam; do_the_chase_flags; rule succeeds; if the player is Demi: if location is Moreton West: now chaseway is east; otherwise: now chaseway is west; now chaseroom is the room chaseway of location; say "[one of]You run towards Sam and he flees [chaseway], jumping and scrambling over the huge roots of the tree.[or]You charge at Sam again, and again he escapes you by starting to leap and climb over the fig tree roots. He's heading [chaseway] around the fig tree.[stopping][line break]"; say Demi_Sam_thwart; now ever_chased of Sam is 1; if times_tipped of Sam is less than 5, increment times_tipped of Sam; do_the_chase_flags; follow the Demi needs Sam hint rule; rule succeeds. Carry out chasing: [general] unless noun is Stevie, say "[RandomLock][one of]You rush after [the noun], jumping back and spreading your arms whenever [that-those of noun] tries to get around you. [if ayla_mode is 1]With Ayla's help, [otherwise]By doing this a few times, [end if]you manage to get [it-them of noun] to run [chaseway], and you follow [it-them of noun].[or]You run towards [the noun] – luckily for you, [that-those of noun] decides to run to the [chaseway], just like you wanted! You chase after [it-them of noun].[or]You [if ayla_mode is 1]and Ayla [end if]have to chase [the noun] in a few circles before you're able to get [it-them of noun] to run [chaseway]. You follow close behind [it-them of noun] –[line break][purely at random]"; do_the_chase_flags. To do_the_chase_flags: now special_look_flag is 1; [otherwise the 'look' in the new room takes no time] now justchased of noun is 1; [provides 'skids to a halt' type message for the person you chased in the new room, if appropriate] if noun is Sam: [undo Just Chased flag if we're chasing Sam between east and Moreton West] if chaseroom is Moreton West or chaseroom is Moreton East, now justchased of noun is 0; now last location of noun is location; now last location of player is location; now noun is in chaseroom; clear the newroom flags; now Sam_fix is true; if ayla_mode is 1: now last location of Ayla is location; if chaseroom is Moreton West or chaseroom is Moreton East: now initial appearance of Ayla is "Ayla arrives[did ayla meet the dog].[ayla autorecover]"; otherwise: now initial appearance of Ayla is "Ayla comes running along behind you[did ayla meet the dog].[ayla autorecover]"; now Ayla is in chaseroom; [if chaseroom is ByRoundabout and Marion is in ByRoundabout and Marion is as-yet-unknown, now hide of roundabout is 1;] if chaseroom is ByRoundabout and chasehide of roundabout is 0, now chasehide of roundabout is 1; now player is in chaseroom; [the new room's description is printed NOW] zap the tree flags; [always do this when player enters new room] now justchased of noun is 0. [why does the MIRACLE of changing this flag back to 0 right away work? Answer - because the new locale description was printed at the moment the player was moved to the new room, which occurred one line before this one.] To say ayla autorecover: [demi game only] now initial appearance of Ayla is "Ayla is here[did ayla meet the dog]." To say did ayla meet the dog: [this is checked everytime the game says 'Ayla is here' in the Demi game.] if ayla_mode is 1 and Stevie is in location: now dog_interact of Ayla is 1; otherwise: now dog_interact of Ayla is 0. Part - Clap [all safe] clapping is an action applying to nothing. Understand "clap" as clapping. overclapping is an action applying to one thing. Understand "clap [something]", "clap with [something]" as overclapping. foolclapping is an action applying to one topic. Understand "clap [text]" as foolclapping. To say the elaborate no clapping story: say "[no-time][if the player is Harriet]Clapping isn't easy without putting your wand down, and you don't really need to clap, so you decide not to.[otherwise]Your hands are busy enough already. You'd have to put your wand down to clap, and you don't want to do that." Check clapping: abide by the duelblock B rule; if location is Picnic and Marion is home, instead try playing with Marion; instead say the elaborate no clapping story. Check overclapping: abide by the duelblock B rule; if noun is player, instead say the elaborate no clapping story; if noun is Marion and Marion is home, instead try playing with Marion; if noun is a heroine and Marion is home, instead try playing with Marion; if noun is an animal or noun is not a person, instead say "[no-time]It only makes sense to try clapping with other people."; instead say the elaborate no clapping story. Check foolclapping: instead say doesn't make sense. Part - Clear [all safe] Understand the command "clear" as something new. Understand "clear" as a mistake ("[no-time][line break][second custom style]<< You also need to say what you want to clear. For example[unless location is Shade Mud] if you were at the mud puddle[end unless], you could try CLEAR MUD. >>[normal style]"). clearing something is an action applying to one thing. Understand "clear [something]" as clearing something. blabby clearing something is an action applying to one thing and one topic. Understand "clear [something] [text]" as blabby clearing something. Carry out blabby clearing something: say "[line break][second custom style]<< '[topic understood]' wasn't understood, so that part of what you typed was ignored. >>[normal style][line break]"; try clearing something noun. [lops off words beyond the noun] Check clearing something: if player is Demi: if noun is orb weaver spider or noun is spiderweb or noun is gazebo1, instead try brushing away spiderweb; if noun is puddle mud: instead say "[no-time]There's no way you could clear up this mud, and you wouldn't want to anyway."; if noun is bunch leaves: instead try taking bunch leaves; if noun is moss1 or noun is moss2 or noun is jungle plants: instead try taking noun; if noun is picnic table or noun is tablecloth or noun is weeds: instead say "[no-time]You don't need to do that."; if noun is gazebotable or noun is gazebo2: instead try brushing away gazebotable; instead say doesn't make sense. Part - Climb [all safe] Understand the command "climb" as something new. Understand "climb [a direction]" as going. Chapter - General Objectclimbing general objectclimbing is an action applying to one thing. Understand "climb [something]", "climb on/onto/over [something]", "climb on to [something]" as general objectclimbing. Check general objectclimbing: abide by the person or enclosed check rule; if noun is ladder1 or noun is treehouse1, instead try going up; if noun is ladder2 or noun is treehouse2, instead try going down; if noun is roundabout, instead togglemount the roundabout; [we could be climbing on or off] if noun is grey stone wall: if player is Harriet and hurdled of Pia is 1, say "[line break]The wall goes straight down. There's nothing on it you could hold onto. From what Pia did, it looks like the best way down might be to jump.[line break]"; instead try going east; if noun is wallbottom, instead say "[no-time][if player is Harriet]You could never climb up that wall. It's too high, and it's covered in that green stuff, too.[otherwise]The wall's really high and the slippery moss on it would make it an impossible climb, even if your robes were easier to manage."; if noun is giant stone koala statue, instead say "[no-time][if player is Harriet]The koala is too big and steep to climb.[otherwise]Even if you were wearing clothes which were better for climbing, you think the koala would be to steep to climb."; if noun is the picnic table or noun is the tablecloth, instead say "[no-time][if player is Harriet]That could be fun, but... mum and dad would probably get mad if they saw you standing on the tablecloth. And they're right here.[otherwise]You don't want to mess up the tablecloth."; if noun is gazebofence, instead say "[no-time]You don't need to climb the fence when you can just walk out of the gazebo."; [Harriet can't get into gazebo to climb fence in first place] if noun is gazebotable, instead say "[no-time]The table's dirty and you don't need to get on it."; [Harriet can't get into gazebo to access this table in first place] if noun is maze1 or noun is maze2 or noun is hedgea or noun is part of hedgea or noun is beachballs, instead say "[no-time][if player is Harriet]You can't climb over any of these hedges.[otherwise]The hedges aren't climbable."; if noun is big yellow rock, instead say "[no-time][if player is Harriet]The rock is too steep for you to be able to climb.[otherwise]The rock is steep and there's nothing on it you can grab on to. You can't climb it."; if noun is jungle plants, instead say "[no-time]The plants won't hold you."; if noun is weeds, instead say "[no-time][if player is Harriet]The ones hanging from the trees would break if you tried to climb them. But you don't like touching them anyway because they give you the itchies.[otherwise]The weeds are really weak. They wouldn't hold you."; if noun is treesa or noun is treesa branches or noun is tgtrees or noun is tgtrees branches or noun is unhappy trees or noun is unhappy treebranches, instead say "[no-time][if player is Harriet]Most of the trees around here are too tall to climb, and you haven't seen anyone hiding up a tree yet.[otherwise]The trees are mostly very tall in the park and too high for you to climb up, especially while you're in your witch costume. This doesn't worry you though, because you doubt any of your friends could climb these trees either."; if noun is Moreton Bay Fig Tree or noun is the Moreton Bay Fig Tree branch branches, instead say "[no-time][if player is Harriet]You wouldn't know where to begin! Lucky for you, you don't need to go up there.[otherwise]Impossible!"; if noun is the Moreton Bay Fig Tree roots: if player is Demi: say "You can't climb over them in your witch robes. To walk around the tree, you will need to move quite far away from the trunk and the roots first."; pluralswitch moreton bay fig tree roots; instead offer tree circling advice; if player is Harriet: if times_tipped of Sam is greater than 0 and Sam is followable and it's Moreton Time: [ie he must have fled to adjacent Moreton room] if location is Moreton West, instead try going east; if location is Moreton East, instead try going west; otherwise: say "You could climb over the roots and around to the other side of the tree, but it would be easier to walk."; instead offer tree circling advice; if noun is thtree or noun is thtree branches, instead say "[no-time]Climbing on the branches of this tree would be dangerous. The ladder is the safe way to get in and out of the treehouse."; if noun is witchtrees or noun is witchtree branches, instead say "[no-time]You don't have time for that."; if noun is the green seat, instead say "You climb onto the seat for a moment to find out if you can see over the hedges by standing on it, but you can't. You hop down again."; if noun is little hill: if duel_mode is 1: if player is Harriet: instead say "[no-time]The little hill is too far away. If you run straight towards Marion, you'll get zapped for sure."; otherwise: instead say "[if the player is Harriet]You walk up onto the little hill. It's really just a you-sized bump in the ground. You walk over it a few times for fun.[otherwise]You stand on the bump for a moment. You like being higher than other people, but this hill is pretty small. You step off again." To decide whether it's Moreton Time: if Sam is in Moreton West, yes; if Sam is in Moreton East, yes; no. Carry out general objectclimbing: [we only get here if you tried to climb a real noun, but I have no specific redirect for it, so it's probably not climbable] say "[no-time]You can't climb that." To offer tree circling advice: say "[no-time][line break][second custom style]<< To head around to the other side of the tree, just go "; if location is Moreton West: say "EAST. "; otherwise: say "WEST. "; say ">>[normal style][line break]". Chapter - vagueclimbing vagueclimbing is an action applying to nothing. Understand "climb" as vagueclimbing. Check vagueclimbing: if player is in BottomTreehouse, instead try going up; if player is in Treehouse, instead try going down; if player is in ByRoundabout: if duel_mode is 1 and player is Harriet and duel_position is greater than 3: say "(the little hill)"; set pronouns from little hill; instead try general objectclimbing little hill; otherwise: say "(the roundabout)[line break]"; set pronouns from roundabout; instead togglemount the roundabout; [we could be climbing on or off] if player is in AboveWall: say "(the wall)"; set pronouns from grey stone wall; instead try general objectclimbing grey stone wall; if player is in BelowWall: say "(the wall)"; set pronouns from wallbottom; instead try general objectclimbing wallbottom; if player is in Moreton West or player is in Moreton East: say "(the fig tree)"; set pronouns from Moreton Bay Fig Tree; instead try general objectclimbing Moreton Bay Fig Tree; if player is in ByKoala: set pronouns from giant stone koala statue; instead try general objectclimbing giant stone koala statue. Carry out vagueclimbing: [we only get here if there was no redirect in your location for a general attempt to 'climb'] if treesa is in location: say "(the gum trees)"; pluralswitch treesa; instead try general objectclimbing treesa; say "[no-time]There's nothing here you need to climb." Chapter - upclimbing upclimbing is an action applying to one thing. Understand "climb up [something]", "climb up on [something]" as upclimbing. Check upclimbing: abide by the person or enclosed check rule; if noun is ladder1 or noun is treehouse1 or noun is grey stone wall or noun is wallbottom or noun is giant stone koala statue or noun is the picnic table or noun is the tablecloth or noun is gazebofence or noun is gazebotable or noun is maze1 or noun is maze2 or noun is hedgea or noun is part of hedgea or noun is beachballs or noun is big yellow rock or noun is jungle plants or noun is weeds or noun is treesa or noun is treesa branches or noun is tgtrees or noun is tgtrees branches or noun is unhappy trees or noun is unhappy treebranches or noun is Moreton Bay Fig Tree or noun is the Moreton Bay Fig Tree branch branches or noun is the Moreton Bay Fig Tree roots or noun is thtree or noun is thtree branches or noun is witchtrees or noun is witchtree branches or noun is the green seat or noun is little hill, instead try general objectclimbing noun; if noun is ladder2 or noun is treehouse2, instead say "[no-time]From up here, you can only climb down."; if noun is roundabout, instead mount the roundabout. Carry out upclimbing: [fall-through] say "[no-time]You can't climb up that." Chapter - vague upclimbing vague upclimbing is an action applying to nothing. Understand "climb up", "climb up on" as vague upclimbing. Check vague upclimbing: if location is Treehouse: instead try upclimbing ladder2; if location is Gazebo: say "(the table)"; set pronouns from gazebotable; instead try general objectclimbing gazebotable; if location is Edge Park or location is Shade Mud: say "(the gum trees)"; pluralswitch treesa; instead try general objectclimbing treesa; if location is Picnic: say "(the picnic table)"; set pronouns from picnic table; instead try general objectclimbing picnic table; if location is Tree Garden: say "(the trees)"; pluralswitch tgtrees; instead try general objectclimbing tgtrees; if location is GiantGarden: say "(the garden bed)"; set pronouns from giant garden bed; instead try general objectclimbing giant garden bed; if location is Tri Path: say "(the yellow flowerbeds)"; pluralswitch yellow flowerbeds; instead try general objectclimbing yellow flowerbeds; if location is Hedge Maze: say "(the hedges)"; pluralswitch hedgea; instead try general objectclimbing hedgea; if player is in outdoors: [all 'outdoors' room with special requirements already eliminated above - any that remain work with general objectclimbing] instead try vagueclimbing; if location is R3: say "(the trees)"; pluralswitch witchtrees; instead try general objectclimbing witchtrees; if location is R6: say "(the stone pole)"; set pronouns from stone pole; instead try general objectclimbing stone pole; if location is R8: say "(the grass roof)"; set pronouns from grass roof; instead try general objectclimbing grass roof; if location is R12: say "(the beachball hedges)"; pluralswitch beachballs; instead try general objectclimbing beachballs; if location is R13: say "(the grate)"; set pronouns from metal grate; instead try general objectclimbing metal grate; if location is R15: say "(the green seat)"; set pronouns from green seat; instead try general objectclimbing green seat; if player is in InMaze: [all 'InMaze' rooms with special requirements already eliminated above - in any that remain, have player try to climb hedges.] say "(the hedges)"; pluralswitch hedgea; instead try general objectclimbing hedgea. Chapter - downclimbing downclimbing is an action applying to one thing. Understand "climb down/off [something]", "climb down on [something]", "climb off of/from [something]" as downclimbing. Check downclimbing: abide by the person or enclosed check rule; if noun is ladder1 or noun is treehouse1 or noun is wallbottom, instead say "[no-time]From down here, you can only climb up."; if noun is giant stone koala statue or noun is the picnic table or noun is the tablecloth or noun is gazebotable or noun is big yellow rock or noun is treesa or noun is treesa branches or noun is tgtrees or noun is tgtrees branches or noun is unhappy trees or noun is unhappy treebranches or noun is Moreton Bay Fig Tree or noun is the Moreton Bay Fig Tree branch branches or noun is witchtrees or noun is witchtree branches or noun is the green seat or noun is little hill, instead say "[no-time]You'd have to be on [the noun] before you could climb down."; if noun is roundabout, instead demount the roundabout; if noun is maze1 or noun is maze2 or noun is hedgea or noun is part of hedgea or noun is beachballs, instead say doesn't make sense; if noun is ladder2 or noun is treehouse2 or noun is grey stone wall or noun is gazebofence or noun is jungle plants or noun is weeds or noun is the Moreton Bay Fig Tree roots or noun is thtree or noun is thtree branches, instead try general objectclimbing noun; if noun is metal grate, instead try newentering with destination noun. Carry out downclimbing: [fall-through] say "[no-time]You can't climb down that." Chapter - vague downclimbing vague downclimbing is an action applying to nothing. Understand "climb down/off", "climb down on", "climb off of/from" as vague downclimbing. Check vague downclimbing: if location is Treehouse, instead try going down; if location is AboveWall, instead try going east; if location is BottomTreehouse, instead try downclimbing ladder1; if location is ByRoundabout: if mounted of roundabout is 1: instead demount the roundabout; if location is R13: say "(the metal grate)"; set pronouns from metal grate; instead try newentering with destination metal grate; instead say "[no-time]You're not on anything you can [current_command2] from at the moment." Chapter - intoclimbing intoclimbing is an action applying to one thing. Understand "climb in/into/inside [something]", "climb in to [something]" as intoclimbing. Check intoclimbing: abide by the person or enclosed check rule; if current_command2 is "climb inside": [forbid these if you used 'climb inside'] if noun is water or noun is pond or noun is treesa or noun is treesa branches or noun is tgtrees or noun is tgtrees branches or noun is unhappy trees or noun is unhappy treebranches or noun is Moreton Bay Fig Tree or noun is the Moreton Bay Fig Tree branch branches or noun is thtree or noun is thtree branches or noun is witchtrees or noun is witchtree branches or noun is little hill, instead say doesn't make sense; if noun is treehouse1, instead try going up; if noun is gazebo1, instead try going north; if noun is treehouse2 or noun is gazebo2 or noun is circle or noun is field or noun is the clearing or noun is maze2, instead say there_already; if noun is jungle plants, instead try general objectclimbing noun; if noun is maze1, instead say "[no-time]The only way to enter the maze is by walking west."; if noun is hedgea or noun is part of hedgea or noun is beachballs, instead say "[no-time]You can't climb into any of the hedges."; if noun is pond or noun is water or noun is metal grate, instead try newentering with destination noun; if noun is treesa or noun is treesa branches or noun is tgtrees or noun is tgtrees branches or noun is unhappy trees or noun is unhappy treebranches or noun is Moreton Bay Fig Tree or noun is the Moreton Bay Fig Tree branch branches or noun is thtree or noun is thtree branches or noun is witchtrees or noun is witchtree branches, instead try general objectclimbing noun. Carry out intoclimbing: [fall-through] say doesn't make sense. Chapter - vague intoclimbing vague intoclimbing is an action applying to nothing. Understand "climb in/into/inside", "climb in to" as vague intoclimbing. Check vague intoclimbing: if player is in BottomTreehouse, instead try going up; if player is in Moreton West, instead try going north.; if player is in R13: say "(the metal grate)"; set pronouns from metal grate; instead try newentering with destination metal grate. Carry out vague intoclimbing: [fall through] say "[no-time]There's nothing you can enter here." Chapter - outclimbing outclimbing is an action applying to one topic. Understand "climb out/outside", "climb out/outside [text]" as outclimbing. Check outclimbing: if maze_mode is 1, instead say "[no-time]The hedges are too high to climb over.[paragraph break][second custom style]<< Type EXIT when you're ready to follow the yellow arrows out of the maze. >>[normal style][line break]"; instead try newexiting without destination. Chapter - non-object climbing non-object climbing is an action applying to one topic. Understand "climb [text]" as non-object climbing. Carry out non-object climbing: say doesn't make sense. Part - Colouring colouring is an action applying to nothing. Understand "colour", "colours", "color", "colors" as colouring. Carry out colouring: now question response echo is 1; now current question is "[no-time]* You can change the colour scheme of the status bar if you'd like. Please choose one of the following:[line break]"; now current question menu is { "Park Green", "No Nonsense Grey", "Birthday Blue", "Daisies", "Swimming Pool", "Roses are Red", "Violets are Blue", "Some poems rhyme (Clear Sky)", "but this one doesn't. (Peachy)" }; ask a menu question; now woe in row 2 of Table of Fairy Bread is current question answer; follow the revamp the window rule; write File of Undoability from Table of Fairy Bread. This is the revamp the window rule: if woe in row 2 of Table of Fairy Bread is: -- 1 : set the background color of the status window to g-dark-green; set the text color of the status window to g-white; -- 2 : set the background color of the status window to g-dark-grey; set the text color of the status window to g-white; -- 3 : set the background color of the status window to g-pure-blue; set the text color of the status window to g-white; -- 4 : set the background color of the status window to g-pure-yellow; set the text color of the status window to g-black; -- 5 : set the background color of the status window to g-pure-cyan; set the text color of the status window to g-black; -- 6 : set the background color of the status window to g-rose-red; set the text color of the status window to g-white; -- 7 : set the background color of the status window to g-blue-violet; set the text color of the status window to g-white; -- 8 : set the background color of the status window to g-azure; set the text color of the status window to g-black; -- 9 : set the background color of the status window to g-bisque; set the text color of the status window to g-black; reconstruct the status window. verbose colouring is an action applying to one topic. Understand "colour [text]", "colours [text]", "color [text]", "colors [text]" as verbose colouring. Check verbose colouring: say "[line break][second custom style]<< To bring up the colour choice menu, you can just type "; say capitalised "[current_command]. >>[normal style][line break]"; instead try colouring. Part - Controls Understand "control [text]" as a mistake ("[no-time][line break][second custom style]<< You don't need to use CONTROL as a verb in this game. >>[normal style]"). wanting to fiddle with maze controls is an action applying to one topic. Understand "controls", "controls [text]", "control" as wanting to fiddle with maze controls. Check wanting to fiddle with maze controls: if numero in row 2 of Table of Sesame is 0: [Demi ain't unlocked] instead say control fob message; if player is Harriet: instead say "[no-time][line break][second custom style]<< You don't need to use the CONTROLS command when playing Harriet. >>[normal style][line break]"; if player is Demi: if maze_mode is 1: take no time; perform the maze control check routine; say line break; rule succeeds; if ever_been_in_maze of Demi is 1 or numero in row 5 of Table of Sesame is 439: instead say "[no-time][line break][second custom style]<< You can only use the CONTROLS command when you're in the maze. >>[normal style][line break]"; instead say control fob message. To say control fob message: say "[no-time][line break][second custom style]<< You don't need to use the CONTROLS command now. The game will tell you all about it in the future if you do need it! >>[normal style][line break]". Part - Count targeted counting is an action applying to one thing. Understand "count [something]" as targeted counting. Check targeted counting: if noun is leaf: instead say "[no-time]One leaf... Only counting to one is boring."; if noun is bunch leaves: pluralswitch bunch leaves; if player is Harriet: instead say "[one of]This pile of leaves looks good for counting.[paragraph break]'One leaf,' you say, pointing carefully at a leaf in the pile.[paragraph break]'Two leaves,' you say, pointing at the next one.[paragraph break]'Three,' you say poking your finger towards the third one. Then, 'Four, five, six, seven, eight, nine, ten, eleven, twelve...'[paragraph break]You keep going up to twenty-seven, then you start to feel confused. That leaf over there, did you count that one before? And how about that one next to your foot? You're not sure.[or][no-time]You think about trying to count the leaves again, but it takes so long and it's tricky. You don't want to be stuck here all day.[stopping]"; otherwise: now blowfly is hero; instead say "[one of]You're gonna count the leaves. You use your wand to help you, poking it at each leaf as you go. 'One, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen...'[paragraph break]When you reach seventy you take a little break and wipe a drop of sweat off your nose. Then you start counting again – 'Seventy-one, seventy-two, seventy-three –'[paragraph break]Hang on, what's that? A big fat blow-fly is buzzing around your head. He landed on your nose![paragraph break]'Get off!' you say, shaking your head. The fly zips away, but you forgot which leaf you were up[target the blowie] to.[or][no-time]You don't want to count all the leaves again. That dumb fly made you lose your concentration![stopping]"; if noun is leafmissile: [can only be for Harriet] pluralswitch leafmissile; instead say "[no-time]The leaves you're holding are all scrunched together. You can't see how many you have, but it's lots."; if noun is a person: instead say "[no-time]One!"; if noun is plural-named, pluralswitch noun; instead say "[no-time]You don't need to count [that-those of noun] right now. You're more interested in playing tip." numeric counting is an action applying to one number. Understand "[number]" as numeric counting. Instead of numeric counting: try counting. counting is an action applying to one topic. Understand "count", "count [text]" as counting. count hassle is a number variable. [global] Check counting: if location is Edge Park and wind_has_blown is 1: instead try targeted counting bunch leaves; unless Rose is in location, instead say "[no-time]You don't need to do any counting at the moment. You have people to tip." To say target the blowie: set pronouns from blowfly. Carry out counting: if player is Harriet: if count hassle is 1, instead say "[no-time]You don't want to do that again. You're afraid of what the girl might do."; increment count hassle; say "You concentrate and begin to count along with [the Rose]. '[RoseWords],' you say.[paragraph break]"; now duration of Rose is duration of Rose plus 4; increment rosecount of Rose; say "'[RoseWords],' counts [the Rose].[paragraph break]"; say "'[RoseWords],' you say.[paragraph break]"; increment rosecount of Rose; say "'Uh, [rosecount of Rose in words],' says [the Rose].[paragraph break]"; say "'[RoseWords],' you say.[paragraph break]"; say "[The Rose] stops counting and turns around. 'Be quiet,' she says. 'I can't concentrate.'[paragraph break]"; say "'I like counting,' you say. 'Can I help?'[paragraph break]"; say "'You're too small,' says [the Rose]. 'Go back to baby school. If I hear you counting again while I'm trying to count, you're gonna be sorry.' Then she turns around, leans on the tree again and continues her counting."; otherwise: if sentinel of Rose is 0: if count hassle is 1, instead say "[no-time]You'll have to wait for Rose to start counting again before you can do that."; instead say "[no-time]You just thought of a funny counting trick you could play on this girl, but you'll have to wait for her to start counting again first."; increment count hassle; if count hassle is 1: say "This is going to be funny.[paragraph break]'[wackcount],' you say.[paragraph break]"; say "'[RoseWords],' Rose says.[paragraph break]"; say "'[wackcount],' you say. '[wackcount]!'.[line break]"; now duration of Rose is duration of Rose plus 2; say "[line break]Rose spins around and glares at you. 'You messed up my counting,' she says. 'I hate that! You better not do it again.' Then she turns back to the tree."; rule succeeds; otherwise: say "'[wackcount],' you say.[paragraph break]"; say "'[RoseWords],' Rose says.[paragraph break]"; say "'[wackcount],' you say.[paragraph break]'Argh!' cries Rose, clapping her hands on her head as she spins around. 'You little witch, you did it again! I warned you!' She rushes over to you and gives you a great big shove – "; now mud_message of Rose is "right into the mud"; make Rose attack; stop the action. To say wackcount: [deliberately left 'lock the dice' out of this one] now heighthits is a random number between 3 and 300; let Y be "[heighthits in words]" in sentence case; say "[Y]". Part - Crush, squash, squish, scrunch, crunch (leaves, basically) [all safe] Understand the command "squash" as something new. [the others aren't in Inform] squashing is an action applying to one thing. Understand "squash", "squash [something]", "crush", "crush [something]", "shred", "shred [something]", "squish", "squish [something]", "scrunch", "scrunch [something]", "crunch", "crunch [something]" as squashing. Rule for supplying a missing noun while squashing: if player holds mudpie: say "(the mudpie)"; set pronouns from mudpie; now noun is mudpie; otherwise if player is in Shade Mud: say "(the mud)"; set pronouns from puddle mud; now noun is puddle mud; otherwise: now noun is the player. [I just picked the player because they're always present, thus triggering the general 'carry out squashing' action.] Check squashing: abide by the duelblock A rule; if noun is unhappy leaves, instead say "[no-time]You can't reach the dry leaves. They're all up in the [unhappy or unwell] tree."; if noun is leaf and leaf is part of bunch leaves, now noun is bunch leaves; if noun is bunch leaves: say "[if player is Harriet]You tread on a big, crunchy-looking leaf. Mmm, feels good![otherwise]You step on a big, round leaf and listen to it crunch. Satisfying!"; pluralswitch bunch leaves; instead play_leafcrunch; if noun is leaf: abide by the aylavince leaf alert rule; say "You take [if player holds leafmissile]one of your leaves[otherwise]your leaf[end if] and [current_command] it to dust in your hand... [italic type][current_command] - [current_command] - [current_command][roman type] - You love [current_command]ing dry leaves!"; unless player holds leafmissile, now leaf is part of bunch leaves; instead play_leafcrunch; if noun is leafmissile: abide by the aylavince leaf alert rule; say "You [current_command] all your leaves together in your hands and keep [current_command]ing them until they're just tiny pieces which blow away. That was fun, but you used up all your leaves."; pluralswitch bunch leaves; now leaf is part of bunch leaves; now leafmissile is off-stage; if glulx sound is supported, play Sound of leafcrunch in midground for 2 times; rule succeeds; if noun is puddle mud or noun is mudpie: if current_command is "squash" or current_command is "squish": if noun is mudpie: instead try playing with mudpie; if noun is puddle mud: instead try taking puddle mud. Does the player mean doing anything to leafmissile when location is Edge Park: it is unlikely. [without this, 'crush dry' leads to leaves you're holding being crushed before leaves on ground when in Edge Park] Carry out squashing: [fall-through action] say "[no-time]The only thing you'd like to [current_command] are some dry leaves"; if player holds leafmissile, instead say ". Like the ones you're carrying."; if player holds leaf, instead say ". Like the one you're carrying."; say ", but you don't have any." This is the aylavince leaf alert rule: if player is Harriet and Ayla is in location and Ayla is untagged: say "[no-time]If you [current_command] any leaves now, Ayla will know you're coming, so you decide not to."; rule fails; if Vince is in location and Vince is untagged: say "[no-time]If you [current_command] any leaves now, Vince will know you're coming so you decide not to."; rule fails. Part - Cry Crying is an action applying to one topic. Understand "cry", "cry [text]" as crying. Carry out crying: say "[no-time]You don't want to cry, you're having too much fun today." Part - Dance etc [all safe] dancing is an action applying to one topic. Understand "dance", "dance [text]", "jive", "jive [text]", "boogie", "boogie [text]" as dancing. Carry out dancing: take no time; if the player is Harriet: say "You do like dancing, but you're busy playing tip now."; otherwise: say "[one of]You could do a little witch's dance if your robes weren't so hard to manage. But you're busy anyway.[or]You're busy playing tip.[stopping]" Part - Defenstrate defenning is an action applying to one topic. Understand "defenestrate", "defenestrate [text]" as defenning. Carry out defenning: say "[no-time][line break][second custom style]<< Patrick Floyd suggested that this game understand the command DEFENSTRATE. How silly! >>[normal style][line break]". Part - Dodge [content safe] [for duel mode only] [roundabout safe] dodging is an action applying to nothing. Understand "dodge" as dodging. fussy dodging is an action applying to one topic. Understand "dodge [text]" as fussy dodging. Check fussy dodging: abide by the dodge possibility rule; say "[no-time][line break][second custom style]<< While you're dueling, just type DODGE to dodge! >>[normal style][line break]"; instead try dodging. This is the dodge possibility rule: if duel_mode is 0: if Marion is tagged: say "[no-time][line break][second custom style]<< You can only DODGE when you're in a duel. >>[normal style][line break]"; otherwise: say "[no-time]You don't need to dodge anything now."; rule fails. Check dodging: [dogar] abide by the dodge possibility rule; if player is Harriet: if duel_position is 1: [soundsafe] now duel_text is "You leap aside with a swishing noise and let the shot go past you. Marion takes a couple of quick steps to her right, then holds her sword sideways in front of her to protect herself."; give Marion pose 3; advance the duel; rule succeeds; if duel_position is 2: [soundsafe] now duel_text is "You jump to the side, even though there's no zap coming towards you at the moment. Marion lowers her sword and starts to run across the clearing.[paragraph break][hatfall fun]."; abide by the pirate hat loss rule; if duel_position is 3: [soundsafe] now duel_text is "You leap across the grass as Marion keeps running. She yells out [combo 1111]'Zap!' a few times, poking her sword in your direction while she's at it, but you're moving around too much for her shots to hit you.[paragraph break]'Missed me!' you shout.[paragraph break][Marion reaches the hill]'"; give Marion pose 5; advance the duel; rule succeeds; if duel_position is 4: [soundsafe] say "You start to run to get out of the way, and - Argh! You tripped over! While down on your hands and knees in the grass, you hear Marion yelling [combo 111 fast]'Zap, zap, zap!'[paragraph break]'I fell over,' you say. Ouch! Your hands are stinging from when they hit the ground.[paragraph break]'Let me help you up,' says Marion, running over to you. 'But I still won,' she adds.[paragraph break]You don't feel too happy about that, but you're also too sore to argue. [run paragraph on]"; instead do the Harriet dp2kill; if duel_position is 5: [soundsafe] say "Thinking Marion might attack you now, you start to run around on the grass. From the corner of your eye, you can see she's keeping her sword pointed at you all the time. You can't stop running or she'll get you!"; WaitForSpace; say "[paragraph break]You run and run and run… [do Marion's zap]Ugh, you're getting dizzy! And tired. You stop for a moment, and Marion immediately yells 'Zap!'[paragraph break]'Ohhhh!' you groan.[paragraph break]"; instead do the Harriet dp1kill; otherwise if player is Demi: if duel_position is 1: [soundsafe] now duel_text is "You bounce sideways across the grass a few times just in case Marion tries to zap you, but she doesn't turn around until she's on the far side of the [do Marion's zap]roundabout. [Marion kneel and retaliate]'"; give Marion pose 9; advance the duel; rule succeeds; if duel_position is 2: [soundsafe] now duel_text is "You duck sideways towards the ground. This is going to be close -[paragraph break]The zap just misses your head, but - oh no! It knocked your [do Marion's zap]hat off. Your smoking hat now lies on the grass. You can't stand the thought of leaving it behind, but there's no time to rescue it now. You keep moving towards the roundabout.[paragraph break]'I got your hat, witchy!' shouts Marion from behind the bars, and then she laughs. Suddenly she pokes her head out to see what you're doing."; now description of black witch's hat is "Your poor hat. It's been zapped, and it's all messed up!"; now black witch's hat is in ByRoundabout; give Marion pose 10; advance the duel; rule succeeds; if duel_position is 3: [soundsafe] say "You take a big jump to the side in case Marion attacks again. As soon as you do this, Marion's head pops back behind the roundabout like a jack in the box being closed. Whoa, your jump was so big that you lost your balance! You're wobbling![paragraph break]As you struggle to get your balance back, Marion pops out once again and throws a shot right into you - [do Marion's zap]'Zap!'"; instead do the Demi dp1kill; if duel_position is 4: [soundsafe] say combo 1delay1; say "You step out of the way of Marion's zap - "; instead do the roundabout bump death; if duel_position is 5: [soundsafe] say "There's not much room to move up here on the [do Marion's zap]roundabout, but you manage to duck under Marion's shot. At the same time, Marion loses her grip on the roundabout bar and falls back on to the grass.[paragraph break]'Surrender!' you shout, jumping forward and holding your wand right in front of Marion.[paragraph break]'Curses!' she says. 'Ya got me!'[line break]"; do the roundabout demount flag changes; instead proceed to Demi's victory; if duel_position is 6: [soundsafe] say "You begin to bounce across the grass in case Marion starts trying to zap you again, but you just wasted your opportunity to get her while she was on her back. The moment you stop moving, you hear her yell out [do Marion's zap]'Zap!', and you turn to find her sword pointed straight at you. She got you."; instead do the Demi dp1kill. Part - Drink vague drinking is an action applying to nothing. Understand "drink" as vague drinking. Carry out vague drinking: issue library message drinking action number 1. The block drinking rule is not listed in any rulebook. Carry out drinking: if noun is a person or noun is enclosed by a person: instead say how nonsense; instead say "[no-time]You can't drink that." Part - Duel (command) [all safe] vague duelmongering is an action applying to nothing. Understand "duel" as vague duelmongering. This is the Harriet what's a duel rule: if player is Harriet and Marion is as-yet-unknown: instead say "[no-time]What's a duel? You've heard the word, but you forget what it is." This is the already dueled Marion rule: if duel_mode is 1, instead say "[no-time]You're dueling right now!"; if Marion is tagged, instead say "[no-time][if the player is Harriet]Maybe later. Your first duel wasn't too long ago.[otherwise]One duel is enough for a day." Carry out vague duelmongering: abide by the Harriet what's a duel rule; abide by the already dueled Marion rule; if Marion is in location: instead try talking to Marion; otherwise: if player is Demi and Marion is as-yet-unknown: instead say "[no-time]Duel who? You don't expect to be in any duels today."; instead say "[no-time]When you're ready for that duel, you should go and talk to Marion." duelmongering is an action applying to one thing. Understand "duel [something]", "duel with [something]" as duelmongering. Carry out duelmongering: abide by the Harriet what's a duel rule; if noun is Marion: abide by the already dueled Marion rule; instead try talking to Marion; if noun is player: instead say doesn't make sense; if noun is an animal: instead say "[no-time][if the player is Harriet]Do animals have duels? Even if they do, you have decided they won't be having them with you.[otherwise]You're not going to duel any animals. That wouldn't be fair to the animal."; if noun is a person: if noun is a heroine: instead say "[no-time][if the player is Harriet]You don't feel like it. [otherwise]Maybe another day. [end if]You've got people to tip."; if noun is old man or noun is lady: instead say "[no-time]That would be rude!"; if noun is Rose: instead say "[no-time][if the player is Harriet]You wouldn't want to get in a fight with this girl.[otherwise]You don't think she'd know what a duel is, from the look of her."; if noun is a parent: instead say "[no-time][if the player is Harriet]Mum and dad wouldn't want to duel you![otherwise]You have a feeling mum and dad wouldn't want to duel with you. They would be no match for your great powers."; if noun is a chasee: if noun is untagged: if noun is Ayla or noun is Vince: instead say "You ought to tip [it-them of noun]."; instead say "[no-time][The Noun] won't want to duel[if Marion is tagged], not like Marion did[end if]. You'll have to tip [it-them of noun] the normal way."; otherwise: if ayla_mode is 1: instead say "[no-time]You're not gonna duel with your assistant."; instead say "[no-time]You've already tipped [noun]. You need to think less about duels and more about tipping everyone else."; instead say doesn't make sense. [fall-through line] Part - Eat vague eating is an action applying to nothing. Understand "eat" as vague eating. Carry out vague eating: instead say "[no-time]There's nothing here to eat." Part - Enter (In, Inside) [duel safe] [roundabout safe] newentering with destination is an action applying to one thing. newentering without destination is an action applying to nothing. Understand the commands "enter", "in", "inside" as something new. Understand "enter", "in", "inside", "go in/into/inside" as newentering without destination. Understand "enter [something]", "in [something]", "inside [something]", "go in/into/inside [something]" as newentering with destination. ['enter (nonsense)' gives 'You can't see any such thing'] Chapter - Newentering without destination Check newentering without destination: if player is in BottomTreehouse, instead try going up; if player is in Hedge Maze, instead try going west; if player is in Moreton West, instead try going north. Carry out newentering without destination: say "[no-time]There's nothing you can enter here." Chapter - Newentering with destination To say there_already: say "[no-time]You're already in [the noun]." Check newentering with destination: if noun is a person, instead say how nonsense. Check newentering with destination: if noun is treehouse1, instead try going up; if noun is treehouse2, instead say there_already; if noun is maze1, instead try going west; if noun is maze2, instead say there_already; if noun is giant garden bed or noun is yellow flowerbeds or noun is flowerbeds, instead say no room in the garden; if noun is gazebo1, instead try going north; if noun is gazebo2, instead say there_already; if noun is circle or noun is field or noun is the clearing, instead say there_already; if noun is hedgea, instead say "[no-time]The hedge is too thick. There's no way through it."; if noun is carpark, instead try going south. Check newentering with destination: if noun is pond or noun is water, instead say "[no-time]You don't want to get all wet."; [R5] if noun is metal grate or noun is drain water, instead say "[no-time]There's no way you can get through the grate." [R13] Carry out newentering with destination: say "[no-time]You can't enter that." To say no room in the garden: say "[no-time][if the player is Harriet]You wouldn't want to mess all the flowers up.[otherwise]You can't fit in there. You'd just wreck the flowers if you tried." Chapter - Rerouting 'go (place)' actions [duel safe] [roundabout safe] [in standard rules, when the player types 'go (noun)', it turns into the action 'entering the (noun)' - so in this chapter I intercept and reroute any 'go (place)' phrases that are valid] Instead of entering treehouse1: try going up. Instead of entering treehouse2: say there_already. Instead of entering maze1: try going west. Instead of entering maze2: say there_already. Instead of entering giant garden bed: say no room in the garden. Instead of entering yellow flowerbeds: say no room in the garden. Instead of entering flowerbeds: say no room in the garden. Instead of entering gazebo1: try going north. Instead of entering gazebo2: say there_already. Instead of entering circle: say there_already. Instead of entering field: say there_already. Instead of entering clearing: say there_already. Instead of entering ladder1: try going up. Instead of entering ladder2: try going down. Instead of entering hedgea: try newentering with destination hedgea. Instead of entering carpark: try going south. Instead of entering little hill: try general objectclimbing little hill. Instead of entering roundabout: mount the roundabout. Instead of entering: if noun is pond or noun is water or noun is metal grate or noun is drain water, try newentering with destination noun; otherwise stop the action with library message Going action number 7. [makes an unrerouted 'go (a visible object)' and 'go into/in/inside/through (a visible object)' give the generic GO advice message.] Part - Examine [all safe] A thing can be examined or unexamined. A thing is usually unexamined. Carry out examining a plural-named object (called faux): pluralswitch faux. [whenever you examine a plural-named object, this routine sets both the 'it' and 'them' pronouns to that object. May result in a some unnecessary setting of 'it' to genuinely plural objects, but the main purpose is to cover the majority of cases, which is where the object is plural-named but can also be referred to by its singular name. EGS - sneakers, flowers.] Last carry out examining something: now noun is examined. Chapter - Examining the tree garden trees (snootytreeexamining) negative treesearch is a number variable. [global] snootytreeexamining is an action applying to one topic. Understand "examine [text] tree/trees", "examine a/the [text] tree/trees","look [text] tree/trees", "look at [text] tree/trees", "look at a/the [text] tree/trees" as snootytreeexamining when location is Tree Garden. stabinthedarktreeexamining is an action applying to one topic. Understand "examine [text]", "examine a/the [text]", "look [text]", "look at [text]", "look at a/the [text]" as stabinthedarktreeexamining when location is Tree Garden. Carry out snootytreeexamining: now negative treesearch is 0; ambitiously search the trees. Carry out stabinthedarktreeexamining: now negative treesearch is 1; ambitiously search the trees. To ambitiously search the trees: let rockingmatch be 0; let T be indexed text; now T is the topic understood; repeat with N running through megatree: if "[the topic understood]" matches the text "[N]": replace the text N in T with ""; now rockingmatch is 1; let W be number of words in T; [if W>1, you typed illegal words] if W is 0: try examining tgtrees; rule succeeds; otherwise: if negative treesearch is 1: if rockingmatch is 0: say "[no-time]You can't see any such thing."; rule fails; say "[line break][second custom style]<< Oops. "; if W is greater than 2: say "Some of the words you typed didn't describe any of the tree garden trees. Those words were ignored"; if W is 2: say "A couple of the words you typed didn't describe any of the tree garden trees. Those words were ignored"; if W is 1: say "One word you typed didn't describe any of the tree garden trees. That word was ignored"; say ". >>[normal style][line break]"; try examining tgtrees. Chapter - Examining the view from the treehouse familiargarden is a number variable. [global] Table of longrange rooms location slang AboveWall [N] "in the place above the wall" GiantGarden [N] "near [if GiantGarden is visited]the[otherwise]a[end if] giant garden bed" Moreton West [NE] "on the west side of the Moreton Bay Fig Tree" Moreton East [NE] "on the east side of the Moreton Bay Fig Tree" BelowWall [NE] "below the wall" Shade Mud [E] "in [if Shade Mud is visited]the shady place near the puddle of mud[otherwise]a shady place near a puddle of mud" treehouseview is privately-named, improper-named scenery in Treehouse. Understand "view/park" as treehouseview. Printed name of treehouseview is "view". Indefinite article is "the". Does the player mean doing anything other than examining to treehouseview: it is unlikely. [direct actions other than 'examine' to regular park object when player's in treehouse.] view futzing is an action applying to nothing; Understand "look out/outside/n/north/e/east/w/west/s/south/ne/northeast/d/down", "look out/outside n/north/e/east/w/west/s/south/ne/northeast" as view futzing when location is Treehouse. Carry out view futzing: now treehouseview is examined; follow the wonderful view rule. Instead of doing anything other than examining or coresearching to treehouseview: [these both lead to the wonderful view rule] say doesn't make sense. Instead of examining treehouseview: now treehouseview is examined; follow the wonderful view rule. Instead of coresearching treehouseview: now treehouseview is examined; follow the wonderful view rule. peepslist is a list of people that varies. [global] lookout place is a room that varies. [global] This is the wonderful view rule: say "From here you can see over all of the areas in the park that are north and east of the treehouse, but you can't see to the west or south.[paragraph break]"; let saw_something be 0; let Rose_hack be 0; repeat through Table of longrange rooms: now lookout place is location entry; [say lookout place; test command] if number of people in lookout place is 0: if lookout place is Shade Mud and Rose_leaves of Rose is 2: if Rose is introduced or Rose is viewed from treehouse: say "* You notice that [the Rose] isn't at her tree anymore. You can't see her anywhere."; now Rose_leaves of Rose is 3; now saw_something is 1; next; now peepslist is list of people in lookout place; [say peepslist; debug] let F be a list of people; [F is an empy list we populate with the notable people found in each room] now F is { }; repeat with N running through peepslist: if N is an animal and N is not Stevie, next; [dog is only animal notable from the view, and in the Harriet game he's always with his owner] add N to F; if F is empty, next; now saw_something is 1; if lookout place is GiantGarden, now familiargarden is 1; repeat with N running through F: now N is viewed from treehouse; now N is hero; now treehouse_precedent of N is 1; [flag everybody seen in the view] if Rose is listed in F and number of entries in F is greater than 1: remove Rose from F; now Rose_hack is 1; let P be number of entries in F; if lady is listed in F: [if lady's in list, then dog is: place lady then dog together at end of list.] decrement P; remove { lady, Stevie } from F; add { lady, Stevie } at entry P in F; if number of entries in F is 1 and Rose is listed in F: say "* Over to the east, near "; if Shade Mud is visited: say "the"; otherwise: say "a"; say " puddle of mud, you see "; say Rose_from_afar; now Rose is viewed from treehouse; otherwise: if Sam is as-yet-unknown, now printed name of Sam is "Sam, who is dressed as a knight"; [temporarily change Sam and woman's print names before printing list] now printed name of lady is "the lady"; say "* To the [lookout direction], [slang corresponding to a location of lookout place in Table of longrange rooms], you can see "; say F; say ". "; if Rose_hack is 1: say "You can also see "; say Rose_from_afar; now printed name of Sam is "Sam"; now printed name of lady is "lady"; if lookout place is Shade Mud and Rose_leaves of Rose is 2: if Rose is introduced or Rose is viewed from treehouse: say "* You also notice that [the Rose] isn't at her tree anymore. You can't see her anywhere. "; now Rose_leaves of Rose is 3; say line break; if identified_hideyhole of Vince is less than 3, increment identified_hideyhole of Vince; if identified_hideyhole of Vince is: [3 loops, giving no further report] -- 1: say "** Away to the north, you just saw something moving near [if familiargarden is 1 or GiantGarden is visited]the[otherwise]a[end if] giant garden bed. You're not sure what it was, but it might have been a person."; -- 2: say "** You take another look north towards the giant garden bed, but you don't see that movement there again like you saw before. You'll have to go there to find out what it was."; now familiargarden is 0. [by definition, it was impossible to get into the treehouse without making Jack introduced. Pia will only be on on map if already introduced. Marion will only appear if she's returning after duel and her pathtaking leads her in sight of treehouse. I don't think Vince should ever appear - if you tip him behind Big Rock, he'll be outta range by time you're in treehouse. Even if you tip him in garden bed then run to treehouse with him 1 move behind you, he should get out of range before you can look at the view. Ayla will never appear. Sam is the only chasee who can be seen from the tree before you've met him.] To say Rose_from_afar: if Rose is introduced: if printed name of Rose is "Rose": say "Rose"; otherwise: say "that big girl"; say " counting against her tree. "; otherwise: say "a big girl you don't know with her face pressed against a tree. " To say lookout direction: if lookout place is AboveWall or lookout place is GiantGarden: say "north"; otherwise if lookout place is Shade Mud: say "east"; otherwise: say "northeast". Part - Exit (leave, out, outside) [all safe] newexiting with destination is an action applying to one thing. newexiting without destination is an action applying to nothing. vagueexiting is an action applying to one topic. Understand the commands "exit", "leave", "out", "outside" as something new. Understand "exit", "leave", "out", "outside", "go out/outside" as newexiting without destination. Understand "exit [something]", "leave [something]" as newexiting with destination. Understand "exit [text]", "leave [text]", "out [text]", "outside [text]" as vagueexiting. Chapter - Newexiting without destination Check newexiting without destination: if player is in Treehouse, instead try going down; if player is in Gazebo, instead try going south; if player is in InMaze: if Ayla is in location: if Ayla is untagged: instead say "[no-time]You're not leaving here without tipping Ayla."; otherwise: follow the can the drain sound rule; say "You and Ayla start to run through the maze, following the yellow arrows on the ground, and soon you are outside in the sun again."; now Ayla is in Hedge Maze; now Ayla is undescribed; clear the newroom flags; now Stevie is in Treehouse; [first - stow Stevie out of sight until Ayla is either home or has joined you!] now Stevie is stunned; now last location of Stevie is Treehouse; now player is in Hedge Maze; zap the tree flags; now maze_mode is 0; follow the mazeexit control check rule; redraw status line; make Ayla's first help offer; rule succeeds; if location is R1: say "You turn around and walk straight back out of the maze."; now special_look_flag is 1; otherwise: if maze_progress is greater than 3: let answer be yesno_answer_with_question "You have a feeling you're close behind that giggling person. Are you sure you want to leave the maze now?[bold type] (Y/N)[roman type][line break]"; if answer is "NO": instead say "[no-time]Okay. You decide to stay in the maze."; if answer is "YES": say "Okay, but you'll have to come back here later to find that person.[line break]"; follow the can the drain sound rule; say "You look at the ground and start to follow the yellow arrows through the maze. It only takes you a minute of walking to find the entrance again, which is also the exit."; clear the newroom flags; now player is in Hedge Maze; zap the tree flags; now maze_mode is 0; follow the mazeexit control check rule; rule succeeds. This is the can the drain sound rule: if glulx sound is supported and location is R13, stop the horizon sound; [can the drain sound if we leave from R13] now special_look_flag is 1. [don't know why the exit action was taking no time, but it was, so I force it to take a turn via here] This is the mazeexit control check rule: if mazecontrols is 2: say "[second custom style]<< Now that you're out of the maze, typing L is short for LOOK again. >>[normal style][line break]"; if Ayla is tagged, say line break. Carry out newexiting without destination: say "[no-time]You're already outside." Chapter - Newexiting with destination To say outside_already: say "[no-time]You're not in [the noun]." Check newexiting with destination: if noun is a person, instead say how nonsense. Check newexiting with destination: if noun is treehouse1, instead say outside_already; if noun is treehouse2, instead try going down; if noun is maze1, instead say outside_already; if noun is maze2, instead try newexiting without destination; if noun is gazebo1, instead say outside_already; if noun is gazebo2, instead try going south; if noun is circle, instead say maze_movement_advice; [R7] if noun is field and location is R9, instead say maze_movement_advice; [R9] if noun is pond or noun is water, instead say outside_already; [R5] Carry out newexiting with destination: say "That doesn't make sense.[line break]"; [no-time already in stop message] stop the action with library message going action number 7. [general movement advice] Chapter - Vagueexiting Carry out vagueexiting: stop the action with library message going action number 7. Part - Fly [all safe] Understand "fly [a direction]", "fly to [a direction]" as going when player is Harriet. flying is an action applying to one topic. Understand "fly", "fly [text]" as flying. Check flying: if player is Demi: instead say "[no-time]You don't have a broomstick with you today. You'll have to stay on the [one of]ground![or]ground.[stopping]"; if duel_mode is 1: instead say "[no-time]You better stay on the ground while you're dueling."; if location is Treehouse: instead say "[no-time]No, you don't want to fall out of the treehouse!"; if Ayla is in location and Ayla is untagged: instead say "[no-time]No, if you fly around now, Ayla will probably hear you and get the chance to run away."; if Vince is in location and Vince is untagged: instead say "[no-time]No, if you fly around now, Vince will probably hear you and get the chance to run away."; if location is AboveWall: instead try going east. Carry out flying: if mounted of roundabout is 1: say "You're gonna fly in circles! [run paragraph on]"; try turning something roundabout; otherwise: say "[RandomLock]You start running until you're going as fast as you can go, then you leap into the air... Takeoff![paragraph break][one of]'Yeah!' [or]'WOOO!' [or]'WHOOSH!' [or]'ZOOOOOM!' [at random]you yell as you soar through the sky, the wind pulling at your hair. Here comes the landing – [italic type]THUMP![roman type][line break]"; if ever_flew of Harriet is 0: now ever_flew of Harriet is 1; say "[RandomLock][line break]Being a fairy is [one of]the best[or]awesome[or]great[at random]."; if Demi is in location and flight_pain of Demi is 0: now flight_pain of Demi is 1; say "[line break]'Oops, I forgot my broomstick,' says Demi. 'I don't think I'll be able to fly today.'"; if Rose is in location and flight_complaint of Rose is 0: now flight_complaint of Rose is 1; say "[line break][The Rose] just made a growling noise!"; if Marion is in location and flight_yell of Marion is 0: now flight_yell of Marion is 1; say "[line break]'Arrrr,' says Marion, 'a boat is the only way to travel, matey.'" Part - Follow [all safe] A person has a room called last location. last location of a person is usually R2. A person can be notfollowable or followable. A person is usually notfollowable. A chasee can be seenatpicnic or notseenatpicnic. A chasee is usually notseenatpicnic. before player going to picnic: now every notseenatpicnic chasee in picnic is seenatpicnic. A person can be notfamily or family. A person is usually notfamily. Harriet, Demi, mum and dad are family. Chapter - vague following Understand "follow" as vague following. vague following is an action applying to nothing. Check vague following: abide by the duelblock A rule; now peepslist is list of followable people; if player is Harriet: if Harriet is listed in peepslist, remove Harriet from peepslist; otherwise: if Demi is listed in peepslist, remove Demi from peepslist; let X be number of entries in peepslist; if X is 0: instead say "[no-time]There's nobody you can follow at the moment."; lock the dice; now current_caps_person is a random followable nottheplayer person; [say "[current_caps_person] ***"; [debug] ] if X is 1: say "([current_caps_person])"; set pronouns from current_caps_person; instead try following current_caps_person; instead say "[no-time][line break][second custom style]<< You'll need to say whom you want to follow. For example, you could type FOLLOW [CAPS POWER PERSON]. >>[normal style][line break]". Chapter - following Following is an action applying to one visible thing. [visible means on-stage, but not necessarily in the same room] Understand "follow [any hero person]" as following. redundant following is an action applying to one visible thing and one topic. Understand "follow [any hero person] [text]" as redundant following. Check redundant following: say "[line break][second custom style]<< To follow someone, all you have to do is type FOLLOW (NAME OF PERSON). >>[normal style][line break]"; instead try following noun. rightherefollowing is an action applying to one thing. Understand "follow [something]" as rightherefollowing. redundant rightherefollowing is an action applying to one thing and one topic. Understand "follow [something] [text]" as redundant rightherefollowing. Check redundant rightherefollowing: instead try rightherefollowing noun. piafollowhacking is an action applying to one visible thing. Understand "follow [Pia]" as piafollowhacking when location is AboveWall and Pia is in BelowWall and Pia is followable. Understand "chase [Pia]" as piafollowhacking when location is AboveWall and Pia is in BelowWall and Pia is followable. Instead of piafollowhacking: try going east. Carry out rightherefollowing: if noun is not a person, instead say "[no-time]You can only follow people and animals."; if duel_mode is 1, instead say "[no-time][line break][second custom style]<< You don't need to use the FOLLOW command during the duel. >>[normal style][line break]"; if noun is tadpoles: instead say "[no-time]They're not going anywhere."; if noun is orb weaver spider: if player is Harriet: instead say spider_creep; otherwise: instead say "[no-time]It's not going anywhere."; if noun is player, instead say "[no-time][if player is Harriet]You're right here.[otherwise]Following you is a good idea. More people should do it![paragraph break]That was a pretty funny joke. You wish your sister understood more of your funny jokes."; instead say "[no-time][The Noun] is right here." to say know_picnic: say "[no-time]You already know [noun] is at the picnic area." Check following: if duel_mode is 1, instead say "[no-time][line break][second custom style]<< You don't need to use the FOLLOW command during the duel. >>[normal style][line break]"; if noun is ladybug or noun is ladybugs or noun is blowfly: instead say "[no-time]You don't know where [the noun] went."; if noun is tadpoles: instead say "[no-time]The tadpoles will still be in that pond where you saw them."; if noun is orb weaver spider: if orb weaver spider is in Moreton West: instead say "[no-time]The spider will still be in its web by the fig tree."; otherwise: [if it's off-stage - Demi possible only] instead say "[no-time]You don't know where the spider's gone now."; if noun is last_person_sought and treehouse_precedent of noun is 0, instead say "[no-time]You're still not sure where [that-those of noun] got to."; if noun is Rose: if saw_her_leave of Rose is 1: if player is in Shade Mud, instead say cannot_follow_Rose; instead say "[no-time]You saw [the Rose] leave the park earlier."; if Rose is off-stage and Rose_leaves of Rose is 3, instead say "[no-time]You don't know where she went."; if Shade Mud is unvisited and Rose is not viewed from treehouse, instead say "[no-time]You haven't seen her."; instead say "[no-time][The Rose] is probably still counting at her tree."; if noun is a coolbird: [if ever_met of noun is 0, instead say "[no-time]You haven't seen it.";] if player is Harriet and noun is raven, instead say "[no-time]The raven's not here. You saw him back near the hedge maze."; instead say "[no-time]You're not sure where [the noun] is now."; [need no checks for folowable etc- Raven and galah never move by normal move code and they never become followable] if noun is in Picnic: [no check added in this section for non-family non-chasees yet - in theory they won't ever go to Picnic] if noun is family, instead say "[no-time][if picnic is unvisited][The Noun] would be at the picnic area.[otherwise][know_picnic]"; if noun is a chasee: if noun is seenatpicnic, instead say know_picnic; if noun is followable, make no decision; [allow us to follow a chasee from Edge Park who literally just went to Picnic] instead say "[no-time][The Noun] is probably at the picnic area by now."; if noun is notfollowable: if noun is old man, instead say "[no-time]You don't know where the old man is now."; if treehouse_precedent of noun is 1: say "[no-time]You last spotted [the noun] from up in the treehouse, but you haven't seen [it-them of noun] since."; otherwise: say "[no-time][one of]Hm[or]Oops[or]Oopsies[purely at random], [one of]where did [the noun] go?.. You've lost [it-them of noun].[or]where did [the noun] get to? You've lost [it-them of noun].[or]you've lost track of [the noun].[or]no sign of [it-them of noun] here.[purely at random]"; if noun is not Rose, now last_person_sought is noun; stop the action; if last location of noun is not location of the player, instead say "[no-time]It's not clear where [the noun] has gone."; [note - say lady and dog leave, and you fiddle in your present location 3 turns, then try to follow them - you will accurately receive this msg because the last location of the lady will now be a room or 2 away. This is too complex a case to bother programming for.] abide by the only a fool would leave em untipped rule; if location is ByRoundabout, follow the hat restore rule. This is the only a fool would leave em untipped rule: if Vince is in location and Vince is untagged, instead say "[no-time]You don't want to go anywhere else until you've tipped Vince."; if player is Harriet and Ayla is in location and Ayla is untagged, instead say "[no-time]You don't want to go anywhere else until you've tipped Ayla." Carry out following: if noun is old man, instead say "[no-time]Following that man would take you back the way you came. You don't want to do that - you want to catch whoever is sneaking ahead of you in this maze."; if noun is Pia and Pia is in BelowWall and player is in AboveWall: try going east; stop the action; [for following Pia if she jumped] let the destination be the location of the noun; if noun is Sam and Sam is untagged: [check if we're following Sam from one Moreton to another] if location is Moreton West or location is Moreton East: if destination is Moreton West or destination is Moreton East: if the player is Harriet, abide by the Harriet follows Sam rule; if the player is Demi: say Demi_Sam_thwart; now ever_chased of Sam is 1; make player follow Sam; follow the Demi needs Sam hint rule; rule succeeds; if the destination is not a room, say "[no-time][the noun] isn't anywhere you can follow." instead; let aim be the best route from the location to the destination; say "[RandomLock]You [one of]run[or]skip[or]head[purely at random] [aim] after [the noun].[line break]"; try going aim; set pronouns from noun. [NOTE - this makes sure the person you followed remains the pronoun target, even if another person of the same gender flees in the new room at the same time as the person you're chasing.] This is the Demi needs Sam hint rule: if times_tipped of Sam is greater than 3 and location is Moreton West, say "... You've tried hard to catch up with Sam by chasing him in circles around this tree, and you realise it hasn't been working. He keeps taking the shortcut over the roots while you are forced to go around them because of your robes, and he's not getting tired or anything. It seems you'll have to come up with some other idea to catch him." This is the Harriet follows Sam rule: if ever_chased of Sam is 0: say "You start to follow Sam by climbing over the tree roots, and… gosh, this is hard work! Each root is like a small wall."; now ever_chased of Sam is 1; make player follow Sam; rule succeeds; if fatigue of Sam is 3: say "Puffing a bit yourself now, you climb over the roots as quickly as you can after Sam."; make player follow Sam; rule succeeds; say "To follow Sam quickly, you hop and climb over the tree roots again."; make player follow Sam; rule succeeds. To make player follow Sam: [THIS ROUTINE WORKS FOR EITHER DEMI OR HARRIET, SO NO CODE SPECIFIC TO ONE OR THE OTHER IN IT] now special_look_flag is 1; [otherwise the 'look' in the new room takes no time] now last location of player is location; clear the newroom flags; now Sam_fix is true; if ayla_mode is 1: now last location of Ayla is location; now initial appearance of Ayla is "Ayla arrives[did ayla meet the dog].[ayla autorecover]"; now Ayla is in chaseroom; now player is in the location of Sam; [the new room's description is printed NOW] zap the tree flags. [always do this when player enters a new room] Check player going east when player is in Moreton West: if Sam is in Moreton East and Sam is followable and Sam is untagged, instead try following Sam; now chaseway is east; make player round the tree. Check player going west when player is in Moreton East: if Sam is in Moreton West and Sam is followable and Sam is untagged, instead try following Sam; now chaseway is west; make player round the tree. To make player round the tree: [has special routines for Harriet and Demi] if the player is Harriet: if times_tipped of Sam is greater than 0 or ever_rounded_fig of Harriet is 1: say "You head [chaseway], circling wide around the outside of the fig tree roots."; otherwise: say "The tree roots are kind of in your way. To avoid having to climb over them, you walk away from the tree a bit before going [chaseway]."; now ever_rounded_fig of Harriet is 1; if player is Demi: if times_tipped of Sam is greater than 0 or ever_rounded_fig of Demi is 1: say "You head [chaseway], slowly circling around the outside of the fig tree roots."; otherwise: say "The tree roots are in your way. To avoid having to climb over them, you walk away from the tree a bit before going [chaseway]."; now ever_rounded_fig of Demi is 1. Carry out an actor going (this is the NEW move player and vehicle rule): now the last location of the actor is the holder of the actor; [update last room actor was in] if the actor is the player: now time-reset is false; [gumby - added this line because of a weird bug where, if you performed a search that took no-time and then your next move was to go in a direction, that move would also take no time. This line makes sure that if you take a step, it will take time. UPDATE - Believe I found source of bug. Incomplete searching was defined as an out of world action. Have corrected that, but will leave this fix here because it can't hurt to always ensure that moving takes time.] now turn signal is ""; clear the newroom flags; if the room gone to encloses Sam, now Sam_fix is true; if ayla_mode is 1: surreptitiously move Ayla to the room gone to during going; now last location of Ayla is location; if the actor is visible, now the actor is followable; [if NPC is about to leave player's room, they become followable] if the vehicle gone by is nothing, surreptitiously move the actor to the room gone to during going; if the vehicle gone by is not nothing, surreptitiously move the vehicle gone by to the room gone to during going; if actor is the player, zap the tree flags. [always do this when player moves rooms] The NEW move player and vehicle rule is listed instead of the move player and vehicle rule in the carry out going rules. To clear the newroom flags: [you do this just before the player goes to a new adjacent room] now every followable person is notfollowable; [clear all current following statues] [now every person in location is followable; [people in the present room become followable] [restore this line if you want to make it that you can follow a person whose room you just left] ] now last_person_sought is Harriet; [reset 'last_person_sought' flag for a new location] if location is R6, now r6_flag is 0. [clear r6 flag so player will again 'turn the corner' to R6 if they come across it again.] To zap the tree flags: [you do this just after the player goes to the new room] now peepslist is list of people in the location; repeat with N running through peepslist: now treehouse_precedent of N is 0; now N is hero; [make all chars in new room known to player] now gigglepuss is 0; now forsooth of Harriet is 0; now ladybug prime is 0; if wind_mode is 1 and duel_mode is 0: increment wind_slough; if wind_slough is 6: now wind_mode is 0; otherwise: execute windsloughing; if smartquip of Ayla is 1, now smartquip of Ayla is 2; [stops you replying to her 'I'm smart too' complaint if you don't respond immediately] if location is Shade Mud and Rose is in location and ayla_mode is 1 and rosequipA of Ayla is 0, now rosequipA of Ayla is 1. Part - Forsooth forsoothing is an action applying to one topic. Understand "forsooth", "forsooth [text]" as forsoothing. To say you don't know forsooth: say "[no-time]Forsooth? You don't know what that word means." Check forsoothing: if player is Demi, instead say you don't know forsooth; if Moreton West is unvisited, instead say you don't know forsooth; if the talked_to of Sam is 0, instead say "[no-time]You don't know what 'forsooth' means. You should talk to Sam and try to find out."; if Rose is in location and forsooth of Rose is 1: instead say "[no-time]You better not 'forsooth' here. It made [the Rose] mad."; abide by the aylavince alert verb rule; if forsooth of Harriet is 2, instead say "[no-time]That's enough forsoothing for now."; increment forsooth of Harriet; say "'Forsooth!' you shout."; if Sam is in location: if the talked_to of Sam is 2, increment the talked_to of Sam; [skip the 'trying out forsooth' stage, if that's where your conversation with him is at] if location is Picnic: say "[line break]Sam wakes up for a moment and shouts, 'Forsooth!'.. Then he slumps at the table again."; if location is not Picnic: if fatigue of Sam is greater than 0: say "[line break]Sam doesn't react. He's too busy puffing and panting.[run paragraph on]"; recover_Sam; if cue_exhausted of Sam is 0, now cue_exhausted of Sam is 1; otherwise: say "[line break]'Forsooth!' Sam shouts."; if Jack is in location and forsooth of Jack is 0: now forsooth of Jack is 1; say "[line break]'Forsooth yourself!' says Jack."; if dad is in location and forsooth of dad is 0: now forsooth of dad is 1; say "[line break]Dad looks over his shoulder and gives you a smile."; if Rose is in location and forsooth of Rose is 0: now forsooth of Rose is 1; say "[line break][The Rose] glances over her shoulder and says, 'Be quiet!'"; if Stevie is in location, say "[line break][The Stevie] [happydog sound]barks."; if Ayla is in location and forsooth of Ayla is 0: now forsooth of Ayla is 1; say "[line break]'What does [']forsooth['] mean?' asks Ayla.[paragraph break]'It's something knights like Sam say,' you explain." Part - Get, Take and Drop Rewritten to free them from standard rules problems [content complete not relevant] [duel safe] [roundabout safe - only thing you could get would be the black witch's hat, and that's already taken care of in the Before rule] Chapter - Drop rewritten to eliminate Drop All Understand the commands "drop", "discard" as something new. Understand "drop [something preferably held]" as dropping. Understand "drop [something] in/into/down [something]" as inserting it into. Understand "drop [something] on/onto [something]" as putting it on. Understand the command "discard" as "drop". Instead of inserting anything into anything: say "[no-time][line break][second custom style]<< You don't need to put things into or onto other things in this game. >>[normal style][line break]". Chapter - Mistake Dropping Understand "drop" as a mistake ("[no-time][line break][second custom style]<< You also need to say what you want to drop. For example, you could type DROP [have you got something handy]. >>[normal style]"). Chapter - Get+Take Rewritten to free them from Inform AI Understand the commands "take", "carry", "hold" as something new. Understand "take" as taking. Understand "take [something]" as taking. [changing 'things' to 'something' here eliminates 'get all' by sending it to 'can't verb multiple objects' error] Understand "take off [something]" as taking off. Understand "take [something] off" as taking off. Understand "take inventory" as taking inventory. Understand the commands "carry", "hold", "grab", "snatch" as "take". Rule for supplying a missing noun while taking: if maze_mode is 1: if location is R3: say "(the trees)"; now noun is witchtrees; pluralswitch witchtrees; rule succeeds; otherwise if location is R5: now noun is tadpoles; pluralswitch tadpoles; otherwise if location is R12: now noun is beachballs; pluralswitch beachballs; otherwise if location is R13: now noun is metal grate; set pronouns from metal grate; otherwise if location is R15: now noun is green seat; set pronouns from green seat; otherwise: now noun is hedgea branches; pluralswitch hedgea branches; say the nounbrackets; rule succeeds; if location is Picnic: now noun is glass lemonade; set pronouns from glass lemonade; otherwise if location is Edge Park: if bunch leaves is in location: now noun is bunch leaves; pluralswitch bunch leaves; otherwise: now noun is unhappy leaves; pluralswitch unhappy leaves; otherwise if location is Tree Garden: now noun is tgtrees leaves; pluralswitch tgtrees leaves; otherwise if location is Shade Mud: now noun is puddle mud; set pronouns from puddle mud; say "(mud)"; rule succeeds; otherwise if location is BelowWall: now noun is moss1; set pronouns from moss1; otherwise if location is Moreton West or location is Moreton East: now noun is Moreton Bay Fig Tree leaf leaves; pluralswitch Moreton Bay Fig Tree leaf leaves; otherwise if location is Gazebo: now noun is gazebotable; set pronouns from gazebotable; otherwise if location is GiantGarden: now noun is giantflowers; pluralswitch giantflowers; say "(flowers)"; rule succeeds; otherwise if location is AboveWall: now noun is jungle plants; pluralswitch jungle plants; say "(plants)"; rule succeeds; otherwise if location is BottomTreehouse: now noun is weeds; pluralswitch weeds; otherwise if location is Treehouse: now noun is steering wheel; set pronouns from steering wheel; otherwise if location is ByKoala: now noun is giant stone koala statue; set pronouns from giant stone koala statue; otherwise if location is Tri Path: now noun is pretty yellow flowers; pluralswitch pretty yellow flowers; otherwise if location is Hedge Maze or location is ByRoundabout: now noun is treesa leaves; pluralswitch treesa leaves; say the nounbrackets. To say the nounbrackets: say "([the noun])". Chapter - Get [I gathered all variations of get and put them together here.] Understand the command "get" as something new. Understand "get on/onto/over [something]", "get on to [something]", "get up/down on/onto [something]", "get up/down on to [something]" as general objectclimbing. Understand "get over" as vagueclimbing. Understand "get on/onto", "get on to", "get up on/onto", "get up on to" as vague upclimbing. Understand "get down on/onto", "get down on to" as vague downclimbing. Understand "get in/into/inside [something]" as newentering with destination. Understand "get in/into/inside" as newentering without destination. Understand "get out [something]", "get out of/from [something]" as newexiting with destination. Understand "get out", "get out of/from" as newexiting without destination. Understand "get up [something]" as upclimbing. Understand "get up" as vague upclimbing. Understand "get off/down [something]", "get off/down from [something]", "get off of [something]" as downclimbing. Understand "get off", "get off from/of", "off" as trying to get off. Understand "get down", "get down from/of" as vague downclimbing. Understand "get" as taking. Understand "get [something]" as taking. Chapter - Get off trying to get off is an action applying to nothing. Check trying to get off: if location is Treehouse, instead try going down; if mounted of roundabout is 1, instead demount the roundabout; instead say "[no-time]You're not on anything you need to get off." Chapter - Get in/out of trouble Understand "get in/into trouble" as a mistake ("[no-time][if the player is Harriet]No way, you don't like being in trouble![otherwise]But trouble is something you don't like getting into."). Understand "get out trouble", "get out of trouble" as a mistake ("[no-time][if the player is Harriet]You're not in trouble, and that's the way you like it.[otherwise]You're not in trouble."). Part - Giggle Giggling is an action applying to one topic. Understand "giggle", "giggle [text]" as giggling. gigglepuss is a number variable. [global] Carry out giggling: abide by the duelblock B rule; abide by the aylavince alert verb rule; if gigglepuss is 2: instead say "[no-time]You don't want to keep giggling just for the sake of giggling."; increment gigglepuss; if gigglepuss is 1, say "You giggle. "; if gigglepuss is 2, say "You giggle again. "; if Ayla is tagged and Ayla is in location: say "Ayla giggles."; otherwise: say line break. Part - Give [all safe] [roundabout safe - it's impossible to take any giveable object on the roundabout, therefore you won't be able to GIVE anything from up there, and no checks are needed] Understand the command "give" as something new. newgiving it to is an action applying to two things. hopeless giving is an action applying to one topic. vague giving is an action applying to one thing and one topic. Understand "give", "give [text]" as hopeless giving. Understand "give [something preferably held] to [someone]", "give [something preferably held] [someone]" as newgiving it to. Understand "give [someone] [something preferably held]" as newgiving it to (with nouns reversed). Understand "give [something preferably held]", "give [something preferably held] [text]" as vague giving. Carry out hopeless giving: seek out human presence; say "[no-time][line break][second custom style]<< You need to say what you want to give and whom you want to give it to. For example[quiptext]you could type GIVE [have you got something handy] TO [CAPS POWER PERSON]. >>[normal style][line break]". To say have you got something handy: let O be "WAND"; if player holds leaf, now O is "LEAF"; if player holds leafmissile, now O is "LEAVES"; if player holds mudpie, now O is "MUD"; say O. To say giving is only for people: say "[no-time][line break][second custom style]<< You can only give something to another person. >>[normal style][line break]". Check vague giving: abide by the duelblock A rule; if noun is a person: if noun is player, instead say how nonsense; if noun is not a notmehuman person, instead say giving is only for people; now current_caps_person is noun; instead say "[no-time][line break][second custom style]<< You also need to say what you want to give to [the noun]. For example, you could type GIVE [have you got something handy] TO [CAPS POWER PERSON]. >>[normal style][line break]"; otherwise: [if noun wasn't a person, it must be an object] abide by the check yer possession before trying to give it rule; now current_caps_object is noun; seek out human presence; if seeker flag is 1: say "(to [the current_caps_person])"; set pronouns from current_caps_person; instead try newgiving noun to current_caps_person; instead say "[no-time][line break][second custom style]<< You also need to say whom you want to give [the noun] to. For example[quiptext]you could type GIVE [CAPS POWER OBJECT] TO [CAPS POWER PERSON]. >>[normal style][line break]". This is the check yer possession before trying to give it rule: if noun is worn or noun is a wand carried by player or noun is part of a wand carried by player, instead say "[no-time][if player is Harriet]You're not giving away any parts of your costume.[otherwise]Pfft, you're not giving away any of your witch stuff."; if noun is part of player, instead say how nonsense; if noun is not enclosed by player, stop the action with library message giving it to action number 1 for the noun. [using enclosed at this point catches the leaf if it's part of the leafmissile, and we have already elminated parts of the player] To say giveaway alert: say "[no-time]You should tip [second noun] before you do anything that lets [it-them of second noun] know you can see [it-them of second noun]." Check newgiving it to: abide by the duelblock A rule; if second noun is player, instead say how nonsense; unless second noun is a notmehuman person, instead say giving is only for people; abide by the check yer possession before trying to give it rule; if second noun is an untagged chasee: if second noun is Ayla and player is Harriet: instead say giveaway alert; otherwise if second noun is Vince: instead say giveaway alert; otherwise: instead say "[no-time][The Second Noun] isn't going to accept anything from you. You haven't even tipped [it-them of second noun] yet."; if second noun is lady or second noun is old man or second noun is Rose: instead say "[no-time][That-those of second noun] won't want anything from you." This is the tagged chasees accepting rule: if second noun is Ayla and singing of Ayla is 1: instead say "Ayla keeps singing but shakes her head at you to let you know she's not interested."; if second noun is Pia or second noun is Ayla: instead say "'No thanks,' says [second noun]."; if second noun is Sam or second noun is Vince: instead say "[The Second Noun] shakes his head. He's not interested."; if second noun is Marion: instead say "'I don't need a [noun] right now,' says Marion."; if second noun is Jack: instead say "Jack laughs and says, 'I don't want that!'". sisterleafcrush is a number variable. [global] Check newgiving it to: [each of the 3 objects needs to be checked against sister, parents and tagged chasees only] abide by the newgiving giveable stuff rule. This is the newgiving giveable stuff rule: if noun is mudpie: if second noun is Harriet: instead say "'Yucky. I don't want that mud pie,' says Harriet."; if second noun is dad: instead say "'That's a good-looking mud pie, Demi,' says dad with a smile, but he doesn't take it."; if second noun is mum: instead say "'Oh, no thanks,' says mum with a laugh[first time][paragraph break]'But it's so nice and squishy,' you say, squishing the pie a few times with your fingers - [italic type]squish squish squish[roman type][only]."; abide by the tagged chasees accepting rule; if noun is leaf: if second noun is a heroine: [ie other sister] if sisterleafcrush is 0: now sisterleafcrush is 1; if second noun is Harriet, say "'Oooh, thank you,' says Harriet. She takes the leaf and crunches it up in her hand.[paragraph break]'My leaf!' you say.[paragraph break]'Haha,' says Harriet."; if second noun is Demi, say "'I like this leaf,' says Demi, taking the leaf. 'Look at the patterns on it.' Then she crushes it in her hand. 'Also, it's crunchy,' she says. You giggle."; unless player holds leafmissile, now a leaf is part of bunch leaves; otherwise: instead say "'I don't want another one,' says your sister."; if second noun is dad: instead say "'That's a good leaf, isn't it?' says dad. 'I like the crunchy ones. You keep it.'"; if second noun is mum: instead say "'There are lots of interesting leaves in this park, aren't there?' says mum. 'It's okay, I don't need this one, though.'"; abide by the tagged chasees accepting rule; if noun is leafmissile: if second noun is Demi: instead say "'I don't want all those,' says Demi."; if second noun is a parent: instead say "'No thanks, Harriet,' says [second noun]."; if second noun is Jack: instead say "Jack says, 'I don't want those.'"; abide by the tagged chasees accepting rule. [Jack was only one who needed a different msg compared to usual contents of the rule.] Part - Give up [a synonym for quit] Understand "give up" as quitting the game. Part - GO BACK [all safe] Understand "return", "retreat", "back", "go back" as retreating. Retreating is an action applying to nothing. Check retreating: if last location of player is location, instead say "[no-time]You haven't gone anywhere yet."; if maze_mode is 1: if location is R1, instead try newexiting without destination; instead say "[no-time]It's too hard to work out exactly where you came from."; if duel_mode is 1, instead try going east. Carry out retreating: if last location of player is adjacent to location of player: let way be the best route from the location to the last location of player; if mounted of roundabout is 1, do firsthopclimb roundabout; try going way; rule succeeds; say "[no-time]You can't climb the wall." [this message should only go off if your last move was to jump over the wall, thus preventing you from retreating] Part - Hide [all safe] hiding is an action applying to one topic. Understand "hide", "hide [text]" as hiding. Check hiding: if duel_mode is 1, instead say "[no-time][if the player is Harriet]There's nowhere to hide here. Marion will see you wherever you go in the clearing, and the roundabout is see-through, too.[otherwise]It's time to be brave and to fight, not to hide!" Carry out hiding: say "[no-time][if the player is Harriet]You don't want to hide yourself, you want to find the people who are hiding![otherwise]Imagine if the person doing the seeking in a game of hide and seek went and hid themselves. The game could go on forever! It's funny to think about, but it's not something you want to try today." Part - Jump [all safe] Understand the command "jump" as something new. newjumping is an action applying to nothing. Understand "jump", "jump over/on/across", "leap", "leap over/on/across", "vault", "vault over/on/across", "hop over/on/across" as newjumping. Understand the commands "skip" and "hop" as something new. Understand the commands "skip" and "hop" as "jump". [skip and hop are also jumping in standard rules] jumping with target is an action applying to one thing. Understand "jump [something]", "jump over/on/across [something]", "leap [something]", "leap over/on/across [something]", "vault [something]", "vault over/on/across [something]" as jumping with target. Understand "jump in" as newjumping when location is Edge Park. Understand "jump in [something]" as jumping with target when location is Edge Park. Understand "jump off" as newjumping when mounted of roundabout is 1. Check newjumping: abide by the duelblock B rule; if player is in Treehouse, instead say "[no-time]To jump out of the treehouse would be super dangerous."; if player is in AboveWall, instead try going east; if player is in Edge Park and wind_has_blown is 1, instead try jumping with target bunch leaves; if player is in Moreton West or player is in Moreton East: say "(the roots)"; instead try jumping with target Moreton Bay Fig Tree roots; if mounted of roundabout is 1: say "You jump off the [if spin of roundabout is not 0]moving [end if]roundabout. "; do the roundabout demount flag changes; if ayla_mode is 1: say "Ayla says 'Whee!' and jumps off after you."; make Ayla not roundabouty; otherwise: say line break; rule succeeds. Carry out newjumping: if the player is Harriet, say "[RandomLock][one of]You jump on the spot once. It makes your wings wobble.[or]You clench your fists and jump on the spot.[or]You jump once on the spot. That wasn't much of a fairy flight.[at random]"; if the player is Demi, say "[no-time]You don't think witches are keen on jumping for no reason, so you don't." Check jumping with target: if noun is player or noun is part of player, instead say doesn't make sense; if noun is little hill, instead try general objectclimbing little hill; abide by the duelblock B rule; if noun is leaf, instead say "[no-time]You can't do much jumping with one leaf."; if noun is bunch leaves: say "[if player is Harriet]You jump over and around in the leaves. Wheeee! Some of them go flying through the air.[otherwise]Jumping is hard in these robes, so you step on some of the leaves instead - [italic type]crunch, crunch, crunch.[roman type][line break]"; play_leafcrunch; rule succeeds; if noun is puddle mud, instead say "[no-time][if player is Harriet]The puddle is too big to jump across. If you fell in, it would be horrible.[otherwise]The puddle is wide and your robes make jumping around even harder than usual, so you decide not to risk it."; if noun is koala, instead say "[no-time]You could never jump over that!"; if player is in Treehouse, instead try newjumping; if player is in AboveWall: if noun is grey stone wall: try going east; stop the action; instead say "The only thing you can [current_command] over here is the wall."; if noun is pond or noun is water, instead say "[one of]You jump over the pond. Whee![or][no-time]Once was enough. You need to get after that person.[stopping]"; if noun is roundabout: if mounted of roundabout is 1: instead try newjumping; otherwise: abide by the leaf roundabout check rule; abide by the mud roundabout check rule; do the roundabout mount flag changes; say "You jump up onto the [if spin of roundabout is not 0]moving [end if]roundabout. "; if ayla_mode is 1: say "Ayla joins you."; if roundaboutquip of Ayla is 0, now roundaboutquip of Ayla is 1; make Ayla roundabouty; otherwise: say line break; rule succeeds; if noun is wallbottom, instead say "[no-time][if player is Harriet]From down here? Nobody could do that![otherwise]That's impossible from down here!"; if noun is Moreton Bay Fig Tree roots: if player is Demi, instead say "[one of]You try to get over the big roots, but in your witch's robes, it's too hard.[or][no-time]You already tried that and you know you can't do it because of your robes.[stopping]"; if location is Moreton West: if Sam is in Moreton East and Sam is followable and Sam is untagged: instead try following Sam; otherwise: now chaseway is east; instead make player jumpround the tree; if location is Moreton East: if Sam is in Moreton West and Sam is followable and Sam is untagged: instead try following Sam; otherwise: now chaseway is west; instead make player jumpround the tree; instead say "[no-time ]You don't need to." To make player jumpround the tree: [Harriet only!] if times_tipped of Sam is greater than 0 or ever_rounded_fig of Harriet is 1: say "You already learned it's easier to go around the roots when you can. [run paragraph on]"; otherwise: say "You try jumping over the first root in front of you. Oof! You got halfway up. You could keep climbing, but you realise it would be easier just to walk. [run paragraph on]"; now ever_rounded_fig of Harriet is 1; try going chaseway. Part - Kick [all safe] kicking is an action applying to one thing. Understand "kick [something]" as kicking. Understand "kick" as a mistake ("[no-time][kicking is lame]."). To say kicking is lame: say "[no-time][if the player is Harriet]You don't need to kick stuff[otherwise]You don't like kicking stuff" Check kicking: abide by the duelblock B rule; if noun is an animal or noun is enclosed by an animal, instead say "[no-time]You would never kick an animal!"; if noun is puddle mud: if player is Harriet, instead try taking puddle mud; instead say "[no-time]You're not good at kicking stuff. You have a feeling you might fall in the mud if you tried that."; if noun is leaf: instead say "[no-time]It's hard to kick just one leaf."; if noun is leafmissile: instead say "[no-time]If you kicked your leaves, they'd blow away and you'd lose them."; if noun is mudpie: instead say "[no-time]No, you'd just get mud all over your slippers."; if noun is player or noun is enclosed by player, instead say how nonsense; [this check needs to go after the leaf check in case player is carrying leaf/leafmissile] if noun is a person or noun is enclosed by a person, instead say "[no-time]Kicking people is naughty!"; if noun is bunch leaves: play_leafchuck; instead say "[if the player is Harriet]Pow! The leaves fly around then fall at your feet again.[otherwise]You kick the leaves and they make a nice rustling sound."; instead say "[kicking is lame]." Part - Hit [all safe] Understand the command "hit" as something new. hitting is an action applying to one thing. Understand "hit [something]" as hitting. Understand "hit [something] with/using [something preferably held]" as chucking it at (with nouns reversed). Understand "hit" as a mistake ("[no-time][hitting is lame]."). To say hitting is lame: say "[no-time][if the player is Harriet]You don't need to hit stuff[otherwise]You don't like hitting stuff" Check hitting: abide by the duelblock B rule; if noun is an animal or noun is enclosed by an animal, instead say "[no-time]You would never hit an animal!"; if noun is player or noun is enclosed by player, instead say how nonsense; if noun is a person or noun is enclosed by a person, instead say "[no-time]Hitting people is naughty!"; instead say "[hitting is lame]." Part - Hum [all safe] humming is an action applying to one topic. Understand "hum", "hum [text]" as humming. Check humming: abide by the duelblock B rule; if location is Picnic and Ayla is home and singing of Ayla is 1: instead say "[one of]That's a good idea. You don't know the words of Ayla's song, so you hum along with her instead. Ayla smiles at you as she continues to sing.[or]You hum along to Ayla's song some more.[stopping]"; abide by the aylavince alert verb rule; instead say "You hum a little tune to yourself." Part - Kiss / Hug [all safe] Understand the commands "kiss", "hug" as something new. Understand "kiss", "hug" as a mistake ("[no-time]You don't need to do that."). loving is an action applying to one thing. Understand "kiss [something]", "hug [something]" as loving. Check loving: abide by the duelblock B rule; if noun is giant stone koala and current_command is "hug": instead say "[no-time]The koala is far too fat to put your arms around."; if noun is player or noun is not a person: instead say how nonsense; if noun is Demi: instead say "[no-time]Maybe if she had fallen over and hurt herself, but she hasn't."; if noun is Harriet: say "[no-time]Fairies don't need to be [current_command]"; if current_command is "hug", say "g"; say "ed. They live in a pink world of love all the time, or something like that."; rule succeeds; if noun is Ayla and player is Harriet and hugged_her of Ayla is 0: if player is Harriet and Ayla is untagged: instead say "[no-time]You better tip her first."; now hugged_her of Ayla is 1; if current_command is "kiss": say "You're not very kissy, so you decide to give her a hug instead. Ayla giggles and hugs you back. "; otherwise: say "'Ayla!' you say, and you give her a hug. Ayla giggles and hugs you back. "; if singing of Ayla is 1: say "Then she continues her singing."; otherwise: say line break; rule succeeds; if noun is a parent and player is Harriet: instead say "[no-time]You don't feel like doing that right now. There was lots of hugging this morning."; if noun is Stevie: if current_command is "kiss": instead say "[no-time][if player is Harriet]Maybe if she was your dog, but she's not.[otherwise]Kiss a dog? Yuck, no."; instead say "[no-time][if player is Harriet]You don't think you should hug the lady's dog, but you could pat it.[otherwise]You don't want to do that. Not only because you're not crazy about dogs, but because you can never tell what a dog will do next."; if noun is an animal: instead say how nonsense; if player is Harriet, instead say concentrate_man; instead say "[no-time]That wouldn't be very witchy." Part - Laugh laughing is an action applying to one topic. Understand "laugh", "laugh [text]" as laughing. Carry out laughing: say "[no-time]You don't have to try to laugh. When funny things happen, you always laugh." Part - Left [all safe] lefting is an action applying to one topic. Understand the command "turn" as something new. Understand "left", "go l/left", "go to l/left", "go to the l/left", "turn l/left", "turn to l/left", "turn to the l/left", "turn corner l/left", "turn the corner l/left", "turn l/left corner", "turn the l/left corner" as lefting. Before lefting when maze_mode is 1 and mazecontrols is 2: if current_command is "look", instead try looking. Instead of lefting or righting when location is Treehouse: instead try turning myself. [leads to (steering wheel) subsitution] Instead of lefting or righting when maze_mode is 0: say maze_direction_alert. To say maze_direction_alert: if ever_been_in_maze of Demi is 0, stop the action with library message going action number 7; otherwise say "[no-time]<< You can only use the LEFT and RIGHT movement commands when you are in the hedge maze. >>". Carry out lefting: now mister_direction is "left"; try a path in the maze. Part - Listen [all safe] ['listening' already exists, applies to 1 thing, so I'm making 'newlistening' to do what i want] Newlistening is an action applying to nothing. Understand the command "listen" as something new. [unhook from regular 'listen'] Understand "listen", "wait and listen", "hear" as newlistening. Fussy listening is an action applying to one topic. Understand "listen [text]", "listen to [text]", "wait and listen [text]", "wait and listen to [text]", "hear [text]" as fussy listening. Carry out fussy listening: say "[line break][second custom style]<< To listen carefully, all you have to type is LISTEN. >>[normal style][line break]"; try newlistening. Check newlistening: abide by the duelblock A rule. Carry out newlistening: if location is Picnic: if singing of Ayla is 1 and Marion is in location, instead say "With Ayla singing and Marion and [otherid] clapping and mum and dad talking, there sure are a lot of noises here."; if singing of Ayla is 1, instead say "[if player is Harriet]You like Ayla's song.[otherwise]Ayla is a good singer, but you're thinking about interrupting her and inviting her to come with you after all."; if Marion is in location, instead say "[if player is Harriet]Listening to the clapping makes you want to join in, but you better tip everyone first.[otherwise]Hearing all that clapping makes you impatient to join the clapping game, but for now you need to concentrate on tipping everyone."; instead say "[if player is Harriet]Mum and dad are talking about grown-up stuff. Bor-ing![otherwise]You listen to mum and dad for a moment. They're talking about grown-up stuff, and they're not talking about you or your sister, so you lose interest." This is the Ayla's listen hint rule: say "You listen carefully...[paragraph break]You don't hear anything new."; if advised_Harriet of Ayla is 0: now advised_Harriet of Ayla is 1; decrement return_wait of Ayla; say "[line break]Ayla says, 'Don't worry. Nobody else is hiding here.'"; rule succeeds. Carry out newlistening: if location is Tree Garden: if player is Harriet: if plane_block of Ayla is 1, instead say "You try to listen, but the plane is still making too much noise. You will have to wait until it's further away."; if Ayla is in location: if Ayla is untagged, instead say "[no-time]Ayla isn't making any more noise. You should tip her."; otherwise abide by the Ayla's listen hint rule; say "You listen carefully...[paragraph break]"; if Ayla is tagged: if advised_Harriet of Ayla is 1, instead say "You don't hear anything new."; instead say "You don't hear anything new. [first time]You suppose there could be another person hiding behind a tree here, but you haven't heard any people sounds coming from the trees since Ayla's giggling. You have a feeling Ayla was the only one.[only]"; if treegarden_checks of Harriet is less than 4, increment treegarden_checks of Harriet; if treegarden_checks of Harriet is 1: play_myna; now made_a_racket of dark bird is 1; set pronouns from dark bird; instead say "Oh, there's a black bird up in one of the trees who just started chirping like crazy! How can you hear anything with that going on? You will have to wait until the birdy decides to be quiet - Ah, there, it stopped. Now you can listen some more."; if treegarden_checks of Harriet is 2: play_planepass; do the planepass timer; now flown of aeroplane is 1; set pronouns from aeroplane; instead say "Now what?... there's an aeroplane flying through the sky. It's making a lot of noise. You'll need to wait for the aeroplane to fly away before you can have a good listen."; if treegarden_checks of Harriet is 3: play_random_r_giggle; say "There, you heard the giggle again! You walk over towards where it came from. "; get the correct tree; now identified_tree of Ayla is 1; pluralswitch tgtrees; instead say "You think it came from behind [succinct tree desc] tree. This is the tree you will look behind."; if treegarden_checks of Harriet is 4, instead say "[no-time]You don't hear anything new. You should search behind that tree where the giggling came from, [succinct tree desc] one."; otherwise if player is Demi: if ayla_mode is 1 and tgquip of Ayla is 0, instead try talking to Ayla; if tgquip of Ayla is 1, instead say "[no-time]You don't need to keep listening here. You already decided nobody's hiding behind these trees." To say succinct tree desc: say "the [heighttext], [smoothnesstext], [styletext]-branched, [attracttext][if player is Demi]-looking[end if] [colourtext]". Carry out newlistening: if location is Shade Mud: if player is Harriet: if Rose is in location, instead say "You just hear [the Rose] counting."; otherwise if player is Demi: if Rose is in location: if sentinel of Rose is greater than 0: instead say "You hear [the Rose] counting."; otherwise: instead say "Rose keeps staring at you while you're trying to listen, but you manage to hold your concentration, and you don't hear any suspicious sounds around here." Carry out newlistening: if location is Gazebo: instead say "You hear the wind blowing gently through the gazebo." Carry out newlistening: if location is Hedge Maze: if player is Harriet: instead say "You don't hear any rustling sounds or voices coming from the hedge maze, so that makes you think people aren't going in there today."; otherwise: if Ayla is untagged: instead say "You can hear some faint voices and people sounds coming from the hedge maze. A few people must be in there today. And maybe a friend of yours or two, as well?"; otherwise: instead say "It's quiet here now." Carry out newlistening: if location is in InMaze: [Demi possible only] if Ayla is in location: if Ayla is untagged: say "[no-time]You don't have to listen anymore to find Ayla. She's here!"; otherwise: say "It's quiet here apart from the sounds of you and Ayla "; if location is R13: say "breathing, and of the running water."; otherwise: say "breathing."; say line break; follow the aylas_maze_advice rule; rule succeeds; increment right_now_listens of Demi; if current_trick is 1 or current_trick is 3, instead do the fruitless listening; [heard a giggle but there will be no repeat] if current_trick is 2: [will hear a giggle after waiting 1 or 2 turns] say "You stand still and listen for a moment…[paragraph break]"; if right_now_listens of Demi is less than maze_listening_requirement of Demi: if ever_tried_prolonged_maze_listening of Demi is 1: instead say "Nothing yet."; otherwise: say "You haven't heard anything yet, but maybe you need to be patient and keep listening."; now ever_tried_prolonged_maze_listening of Demi is 1; rule succeeds; if right_now_listens of Demi is maze_listening_requirement of Demi: play the appropriate giggle; instead say "There! You heard someone giggling. It came from the [current Ayla direction]."; if right_now_listens of Demi is greater than maze_listening_requirement of Demi: instead say "You don't hear anything new."; if current_trick is 4: if subtrick is less than 3 or subtrick is 4, instead do the fruitless listening. [heard bird or nothing or bird+giggle, and there will be no more info] Carry out newlistening: [fall-through - all non intercepted listen messages end here] say "You listen carefully... you don't hear anything suspicious." To get the correct tree: now heighttext is the wordage in row theight of Ayla of the Table of treeheight; now smoothnesstext is the wordage in row tsmoothness of Ayla of the Table of treesmoothness; now styletext is the wordage in row tstyle of Ayla of the Table of treestyle; now attracttext is wordage in row tattract of Ayla of the Table of treeattract; now colourtext is the wordage in row tcolour of Ayla of the Table of treecolour. To do the fruitless listening: if right_now_listens of Demi plus 1 is greater than maze_listening_requirement of Demi: say "[RandomLock]You wait a little [if maze_listening_requirement of Demi is 1]while[otherwise]longer[end if] and listen carefully, but don't hear anything new. [one of]You'll have to make a decision about which way to go.[or]Maybe the person heard you? You'll just have to pick a direction to go in.[purely at random]"; otherwise: say "You stand still and listen for a moment…[paragraph break]"; if ever_tried_prolonged_maze_listening of Demi is 1, say "Nothing yet."; otherwise say "You haven't heard any new sounds yet. You might need to be patient and keep listening."; now ever_tried_prolonged_maze_listening of Demi is 1. This is the aylas_maze_advice rule: if advised_Demi of Ayla is 0, say "Ayla says, 'I don't think anyone else is in here. C'mon, let's go.' She pulls on your sleeve.[paragraph break]'Yes, yes,' you say."; now advised_Demi of Ayla is 1. Part - Look (Changes To) Chapter - Look Over Understand "look over [something]" as examining. Part - Lose [all safe] losing is an action applying to one topic. Understand "lose", "lose [text]" as losing. Carry out losing: say "[no-time][if player is Harriet]You don't wanna lose![otherwise]No, you hate losing!" Part - Map and variants [all safe] asking for the map is an action applying to one topic. Understand "map", "map [text]" as asking for the map. Carry out asking for the map: take no time; say line break; if glulx graphics is supported: display_map; otherwise: say "[second custom style]<< Sorry, the map can't be displayed here because your Interactive Fiction interpreter doesn't support graphics. You can open up the map file that came with the game in the graphics program of your choice. >>[normal style][line break]". Section - Map backdrop map is a backdrop. map is everywhere. Instead of examining or reading map: try asking for the map. Before doing anything other than examining or reading to the map: instead say "[no-time][line break][second custom style]<< If you want to look at the map, just type MAP. >>[normal style][line break]". Part - Open [all safe] [mostly just in for the metal grate] Understand the command "open" as something new. vague opening is an action applying to nothing. Understand "open" as vague opening. Check vague opening: if location is R13: say "(the metal grate)"; instead try newopening metal grate; if location is Moreton West: if spiderweb is in location: say "(the gazebo)"; instead try newopening gazebo1; instead say "[no-time]There's nothing here you need to open." newopening is an action applying to one thing. Understand "open [something]" as newopening. Check newopening: abide by the duelblock B rule; if noun is a person, instead say how nonsense; if noun is metal grate, instead try newentering with destination noun; if noun is spiderweb, instead say "[no-time]The web isn't a door that you can open. Maybe you could do something else to it?"; [Demi possible only] if noun is gazebo2, instead say "[no-time]You're already in the gazebo."; if noun is gazebo1: if player is Harriet: instead say "[no-time]There's no way for you to get into the gazebo today."; otherwise: if spiderweb is in location, instead say "[no-time]You'll need to move that spiderweb if you want to open a path to the gazebo."; instead say "[no-time]You already removed the spider's web. There's nothing stopping you from going north into the gazebo."; instead say "[no-time]You can't open [that-those of noun]." Part - Pick (edit) Understand the command "pick" as something new. Understand the command "pick" as "take". Understand "pick up" as taking. Understand "pick up [thing]" as taking. Part - Pat [all safe] vague patting is an action applying to one topic. Understand "pat" as vague patting. Carry out vague patting: seek out anyone presence; if seeker flag is 1: say "(pat [the current_caps_person])"; set pronouns from current_caps_person; instead try patting current_caps_person; say "[no-time][line break][second custom style]<< You also need to say whom you want to pat. For example[quiptext]you could type PAT [CAPS POWER PERSON]. >>[normal style][line break]". Patting is an action applying to one thing. Understand "pat [something]", "pat [something] on head", "pat [something] on its/the head", "pet [something]", "pet [something] on head", "pet [something] on its/the head" as patting. malepatting is an action applying to one thing. Understand "pat [something] on his head", "pet [something] on his head" as malepatting. femalepatting is an action applying to one thing. Understand "pat [something] on her head", "pet [something] on her head" as femalepatting. Check malepatting: abide by the duelblock B rule; if noun is a female person, instead say "[no-time]But [the noun] is a girl." Carry out malepatting: instead try patting noun. Check femalepatting: abide by the duelblock B rule; if noun is a male person, instead say "[no-time]But [the noun] is a boy." Carry out femalepatting: instead try patting noun. To say pat_rose_fob: if the player is Harriet, say "[no-time][if the talked_to of Rose is not 0]She told you not to bug her.[otherwise]You haven't even talked to her yet."; otherwise say "[no-time]If anyone does not deserve a pat on the head, it's this girl!". To say chasee_pat_fob: say "[no-time]If you were close enough to pat [noun], you could tip [it-them of noun] – and so far you haven't been able to do that!" Check patting: [general checks] abide by the duelblock B rule; if noun is giant stone koala: instead say "[no-time]The koala's much too tall. You can't reach the top of its head."; if noun is part of a person (called patee): now noun is patee; set pronouns from patee; if noun is headgear enclosed by a person (called patee): now noun is patee; set pronouns from patee; if noun is not a person, [and therefore also not an animal] instead say "[no-time]It only makes sense to pat people or animals."; if noun is a parent or noun is the lady or noun is old man, instead say "[no-time]You're not tall enough to pat any grown-ups."; if noun is a coolbird or noun is the dark bird: if player is Demi: instead say "[no-time]You like birds, but you don't think they're a patting kind of animal."; if player is Harriet: if noun is the raven, instead say "[no-time]Pat the scariest bird ever? No way!"; if noun is the galah, instead say "[no-time]The galah has a big beak. You'd be a bit nervous about trying to pat it."; if noun is the dark bird, instead say "[no-time]That bird is way up in the tree."; if noun is black prince cicada or noun is orb weaver spider: if player is Harriet, instead say "[no-time]You don't want to pat a bug."; if noun is black prince cicada, instead say "[no-time]The cicada has enough problems without you poking at it as well."; instead say "[no-time]Even though you like spiders, you still think that patting them is going too far."; if mounted of roundabout is 1: if noun is Ayla: instead say "[no-time]It's too hard to pat Ayla while you're holding onto the roundabout."; otherwise: instead say "[no-time]You can't pat anyone while you're up on the roundabout." Check patting: [now we go through chasess in mostly alphabetical order] if noun is Ayla or noun is Vince: if noun is untagged: if player is Harriet: instead try tipping noun; otherwise: instead say "[no-time]Pat [it-them of noun]? You should tip [it-them of noun]."; if noun is Ayla: if player is Harriet: say "[one of]You pat Ayla on her head. She smiles and pats you on your head.[or]You pat Ayla on her head again. She laughs and says, 'Stop that![or][no-time]You've done that enough already.[stopping]"; otherwise: say "[no-time]You wouldn't want Ayla to pat you on your witch's hat, so you won't pat her on her gold crown."; if noun is Vince, instead say "[no-time][if player is Harriet]You don't feel like patting a soldier on the head.[otherwise]You would feel funny patting Vince. He's tall and he's a soldier. Do soldiers like to be patted on the head? You don't know." Check patting: if noun is Jack and Jack is tagged, instead say "[one of]You take the opportunity to pat Jack on his head.[paragraph break]'Sure,' he says, 'it's easy to tip me [italic type]now!'[roman type][line break][or][no-time]You don't need to pat him again.[stopping]"; if noun is Jack and Jack_stunned is happening, instead try tipping Jack. Check patting: if noun is Pia and Pia is tagged, instead say "[if player is Harriet][one of]You pat Pia on her head. It's not easy because she's taller than you. She smiles and pats her hair back in place.[or][no-time]You already did that.[stopping][otherwise][one of]'Good cat,' you say, and pat Pia on her head. She smiles.[or][no-time]You already patted the cat.[stopping]"; if noun is Pia and location is gazebo, instead try tipping Pia. Check patting: if noun is Sam and Sam is tagged: if player is Harriet and Sam is stunned, instead say "You knock on Sam's helmet a few times, like knocking on a door. He looks annoyed and pushes your hand away."; instead say "[if player is Harriet][one of]You knock on Sam's helmet a few times, like knocking on a door.[paragraph break]'Hey!' he says, and pushes your hands away.[or][no-time]Sam didn't like it when you did that, so you won't do it again.[stopping][otherwise][no-time]He's wearing a helmet. You don't want to be patting a hard helmet."; if noun is Sam and location is gazebo, instead say "[no-time]You should tip him!"; if noun is Sam and fatigue of Sam is 3, instead try tipping Sam. Check patting: [chasee fob line - no chasee checks below this rule!] if noun is Jack or noun is Pia or noun is Sam, instead say chasee_pat_fob; [this line is now complete, as Ayla and Vince are the only ones excluded from it, and Marion is dealt with below] if noun is Marion: if Marion is untagged: instead say "Marion jumps away from you. 'Hey,' she says, 'don't touch me! You can only tip me if you beat me in a duel. Don't be a cheater.'"; [can only happen for Harriet] otherwise: if the player is Harriet, say "[one of]You reach for Marion's head but she pushes your hand away. 'Nobody touches Red Marion's hat except for Red Marion,' she says.[or]Marion pushes you away again. 'I told you no!' she says.[or]You better not try that again. Marion was getting annoyed.[stopping]"; if player is Demi, say "[no-time]You wouldn't want Marion to pat you on your witch's hat, so you won't pat her on her pirate's hat." Check patting: if noun is Rose, instead say pat_rose_fob. Check patting: if noun is Stevie: if player is Harriet: if talked_to of lady is less than 4: if talked_to of lady is 0: say "A little shy of the lady, you go towards the dog and reach out your hand. The dog jumps over to you and [happydog sound]barks, and you rub its head.[paragraph break]'Hello,' says the lady, admiring your costume. 'Well, don't you look beautiful!'[paragraph break]You smile at her and say, 'Hello.'[paragraph break]'This is Stevie,' says the lady. 'I think she likes you.'[paragraph break]"; know Stevie; say "'Is Stevie a boy's name?' you say, bending down to pat the dog.[paragraph break]'Some people think it is if they haven't heard it before,' says the lady, 'but actually it's short for Stephanie.'[paragraph break]'Oh,' you say. The dog is warm and fuzzy and friendly.[paragraph break]'Okay,' says the lady, 'Stevie and I are going to continue on our walk now.'[paragraph break]'Bye Stevie,' you say. You just decided that you and Demi have to get a dog! You'll talk to mum and dad about it."; pluralswitch lady; [make 'them' and 'her' refer to lady] now topic_dog of Demi is 1; [prime dog conversation -] now parents_topic_dog is 1; [in these 2 lines.] now ever_patted of Stevie is 1; now talked_to of lady is 4; now ladytarget is BelowWall; set the lady in motion; rule succeeds; if talked_to of lady is greater than 3: [4+ means lady has begun to move about] say "[one of]'I'm going to pat Stevie[if ever_patted of Stevie is 1] again[end if],' you say to the lady.[paragraph break]She nods and says, 'Go ahead.' You kneel down and rub Stevie's head and neck. The dog runs around your legs, bumping them with her tail.[or]You try to pat Stevie again, but she's excited at the moment and won't stay still.[or]You reach for Stevie's head. Suddenly she leaps in the air, bumping her head on your hand. 'Oops!' you say. The surprise gave you a little fright.[paragraph break]The lady says, 'She's getting a bit excited. She'll be calmer after we finish our walk.'[or]You feel a bit nervous from when the dog jumped in the air. But also, you're mostly ready to get back to looking for your friends.[stopping]"; if player is Demi: if ayla_mode is 0: instead say "[one of]Cautiously you go to pat the dog... It jumps up and grabs your arm, then spins around in the air. [dogdemi sound]Ack![paragraph break]'Stop that!' you say, hopping back as the dog runs in circles. That's what bugs you about dogs, they're always acting crazy.[or][no-time]You don't want to try to pat the dog again yet. You're nervous it might jump on you.[stopping]"; otherwise if extra_status of Stevie is 2: say "[one of]You carefully go to pat [the Stevie] on [dog her its] head. [The Stevie] starts to bounce around, which makes you feel more confident. [run paragraph on][or]You rub [the Stevie]'s head and [dog her its] big butterfly ears. The dog pants. [run paragraph on][or]You pat [the Stevie] and [dog she it] swipes at your robes. [run paragraph on][stopping]"; instead try playing with Stevie; otherwise if extra_status of Stevie is 4: instead say "[no-time]You pat [the Stevie], but [dog she it] doesn't pay attention to you. [dogcap she it] seems to be more interested in [Vince spot]."; otherwise if extra_status of Stevie is 5: instead say "You pat [the Stevie], but [dog she it]'s not paying much attention to you anymore." To say dogdemi sound: play_dogdemi. Carry out patting Harriet: say "[if player is Harriet][one of]You pat yourself on your head. Mum always said to be kind to yourself. Now, back to tip![or][concentrate_man][stopping][otherwise][one of][no-time]Hm, you're not sure she deserves a pat on the head right now.[or][concentrate_man][stopping]". Carry out patting Demi: say "[if player is Demi][one of]You're not into patting yourself on the head. Especially when there's a sharp hat on your head.[or][concentrate_man][stopping][otherwise][one of]It's hard to pat someone who is wearing a witch's hat, so you just use your pointing finger to tap the tip of Demi's hat a few times.[paragraph break]Demi gives you a freezie face and says, 'Don't conde... don't condescend me.'[paragraph break]You don't know what that word means but you get the idea.[or][no-time]You'd better not do it again. Demi might get cranky.[stopping]". Part - Play Chapter - playing with [all safe] playing with is an action applying to one thing. Understand "play [something]", "play with [something]" as playing with. vague playing with is an action applying to one topic. Understand "play", "play with" as vague playing with. Carry out vague playing with: if Stevie is in location: say "(play with [the Stevie])"; set pronouns from Stevie; instead try playing with Stevie; seek out anyone presence; if seeker flag is 1: say "(play with [the current_caps_person])"; set pronouns from current_caps_person; instead try playing with current_caps_person; say "[no-time][line break][second custom style]<< You also need to say whom or what you want to play with. For example[quiptext]you could type PLAY WITH [CAPS POWER PERSON]. >>[normal style][line break]". To say I wanna join in clapping: say "[no-time][if player is Harriet]That clapping game sure does look fun, but you have people to tip. You can play clapping games later.[otherwise]You will play clapping games later. Right now, you're busy trying to tip people." Check playing with: if noun is player: instead say "[no-time]You're playing tip with your friends today. You don't have to play on your own."; if noun is a heroine: [ie your sister] if Marion is home: [in which case your sister will be playing clapping with her] instead say I wanna join in clapping; instead say "[no-time][otherid]'s having a rest and a drink now. She'll play later."; if noun is Marion and Marion is home: [ie involved in clapping] instead say I wanna join in clapping; if noun is worn by player or noun is part of something worn by player: instead say don't fiddle; if noun is part of player: [Demi fringe only thing that qualifies atm] instead say "[no-time]You don't need to fiddle with how you look today."; if noun is a wand carried by player or noun is part of a wand carried by player: instead say "You wave your wand in the air."; if noun is part of an animal: [so far, it can only be part of Stevie] instead try patting noun; if noun is part of someone: [IE a human] instead say don't be a pokepop; if noun is enclosed by a nottheplayer person: [ie by any other person or animal - covers worn and carried and parts thereof] instead say "[no-time]That's not yours."; if noun is an animal: if noun is black prince cicada or noun is dark bird: abide by the validate_the_chasee rule; if noun is galah: [Demi only] instead say "[no-time]How do you play with a galah? Asking yourself that question, you find that you don't know the answer."; if noun is orb weaver spider: [Demi only] instead say "[no-time]It's hard to play with a spider that's in its web."; if noun is raven: if player is Harriet, instead say "[no-time]You don't want to!"; if player is Demi: say "You [first time]try to [only]make the raven's sound - 'Aaaaaah!' you say."; if glulx sound is supported: pause_only; say line break; say "[line break][italic type]'Ahhhh!'[roman type] says the raven. [first time]He listened to you! What a cool bird. [only]"; if ayla_mode is 1 and ravencopy of ayla is 0: now ravencopy of Ayla is 1; say "[paragraph break]Ayla tries to make the raven's sound too, but she ends up coughing. You can't help laughing, then she laughs as well."; otherwise: say line break; play_raven2; rule succeeds; if noun is Stevie: if player is Harriet, instead say no chasing a leashed dog; if player is Demi: if ayla_mode is 0: instead try patting Stevie; otherwise: [it's impossible to be stationary in the presence of both Ayla and the dog with an extra_status of less than 2] if extra_status of Stevie is 2: now ladytarget is hideyhole of Vince; let way be best route from location to ladytarget through oklady rooms; now dont_report_this_turn of Stevie is 1; say "[one of]You run towards [the Stevie] and [dog she it] springs up to play with you. Ayla laughs and joins in. The dog chases Ayla in a loop then zips away to the [way].[or]You and Ayla run in a circle around [the Stevie], which makes [dog her it] very confused. As you both start to laugh, the dog [dogverb] to the [way].[or]You wiggle the edge of your robes at [the Stevie]. [dogcap she it] barks [happydog sound]and paws at them, then [dogverb] away to the [way].[stopping]"; try Stevie going way; if Stevie is in hideyhole of Vince: abide by the Stevie Vince check rule; otherwise: now extra_status of Stevie is 3; rule succeeds; if extra_status of Stevie is 3: instead say "ERROR - STATUS WAS 3:"; [debug? -remove - status should never be 3 when player has access to command prompt] if extra_status of Stevie is 4: instead say "[no-time][The Stevie] now seems to be more interested in [Vince spot]."; if extra_status of Stevie is 5: instead say "[one of]You and Ayla start to chase [the Stevie] in more circles, but the dog keeps stopping to look around at other things in the park.[paragraph break]'What's wrong with [dog her it]?' you ask Ayla.[paragraph break]Ayla smiles and says, 'The doggy's had enough playing.' She pats [the Stevie] and says, 'You're all tired now, aren't you? Aren't you?' [The Stevie] pants and waves [dog her its] tail slowly.[or][no-time][The Stevie] isn't interested. [dogcap she it]'s had enough playtime for now.[stopping]". To say dogverb: say "[RandomLock][one of]bounds[or]runs[or]races[or]charges[or]zips[or]scampers[purely at random]". To say Vince spot: if location is ByKoala: say "the koala statue"; otherwise if location is GiantGarden: say "the giant garden bed"; otherwise if location is BelowWall: say "the yellow rock" This is the Stevie Vince check rule: if location of Stevie is ByKoala: now initial appearance of Stevie is "[The Stevie] is here, sniffing at the koala statue."; otherwise if location of Stevie is GiantGarden: now initial appearance of Stevie is "[The Stevie] is here, sniffing around the edge of the giant garden bed."; otherwise if location of Stevie is BelowWall: now initial appearance of Stevie is "[The Stevie] is here, sniffing at the big rock."; now extra_status of Stevie is 4; now identified_hideyhole of Vince is 1; [checking this flag is 1 is all that's required to allow Demi to successfully search the hideyhole in question] rule succeeds. Check playing with: if noun is a person: if noun is a parent or noun is lady or noun is old man, instead try tipping noun; if noun is Rose: if player is Harriet, instead try tipping Rose; if player is Demi, instead say "[no-time]You don't like her. You don't want her playing with you."; if noun is a chasee: if noun is home: instead say "[no-time]You can play with [noun] later. You have other people to tip now."; otherwise: if noun is Marion and duel_mode is 1, instead say "[no-time]You're dueling with her right now!"; instead say "[no-time]You're playing tip with [it-them of noun] right now."; if noun is a bench or noun is green seat or noun is weeds or noun is jungle plants or noun is water or noun is stone pole or noun is part of hedgea or noun is part of treesa or noun is part of Moreton Bay Fig Tree or noun is part of thtree: instead say "[no-time]That wouldn't be much fun compared to tip."; if noun is giant stone koala statue: instead try general objectclimbing giant stone koala statue; abide by the leaf and leaves playing rule; if noun is mudpie: [Demi only] if Vince is in location and Vince is untagged, instead say "[no-time]If you squish your mudpie now, it might make a sound that would let Vince know you're coming, so you decide not to."; instead say "[italic type]Squish Squish Squish[roman type] - It feels good in your hand."; if noun is pavings or noun is red flowers or noun is a megaflora or noun is part of tgtrees or noun is puddle mud or noun is pretty yellow flowers or noun is part of witchtrees or noun is part of flowerbeds or noun is tablecloth or noun is part of unhappy trees: instead try taking noun; if noun is steering wheel or noun is treehouse2: instead try turning something steering wheel; if noun is roundabout: instead try turning something roundabout. Carry out playing with: [fall-through only] say doesn't make sense. This is the leaf and leaves playing rule: if noun is leaf or noun is bunch leaves or noun is leafmissile: now current_command is "crunch"; [temporarily change printed word to 'crunch' for squashing routine] try squashing noun; now current_command is "play"; [then back to 'play' to record what the player really typed] rule succeeds. Chapter - playing on playing on is an action applying to one thing. Understand "play on [something]" as playing on. vague playing on is an action applying to one topic. Understand "play on" as vague playing on. Carry out vague playing on: say "[no-time][line break][second custom style]<< You also need to say what you want to play on. For example, you could type PLAY ON GRASS. >>[normal style][line break]". Check playing on: if noun is a person or noun is enclosed by a person, instead say doesn't make sense. Check playing on: if noun is yellow flowerbeds or noun is pretty yellow flowers or noun is giant garden bed or noun is giantflowers or noun is red flowers or noun is a megaflora or noun is flowerbeds or noun is flowers: instead say "[no-time]You don't want to mess up the flowers."; if noun is a bench or noun is tablecloth or noun is green seat or noun is moreton bay fig tree roots or noun is moreton bay fig tree bark: instead say "[no-time]That wouldn't be much fun compared to tip."; if noun is tgtrees or noun is tgtrees branches or noun is witchtrees or noun is witchtree branches or noun is treesa or noun is treesa branches: instead say "[no-time]The trees are too tall to climb."; if noun is moreton bay fig tree or noun is moreton bay fig tree branch branches: instead say "[no-time]The tree is too tall to climb."; if noun is thtree or noun is thtree branches: instead try upclimbing thtree; if noun is moss2: instead say "[no-time]No, you might slip and fall in the pond."; if noun is stone pole or noun is grass roof or noun is beachballs or noun is taller hedges or noun is gazebofence or noun is hedgea: instead say "[no-time]You can't get up there."; if noun is tgbushes or noun is big yellow rock: instead try upclimbing noun; if noun is puddle mud: instead say "[no-time][if player is Harriet]No way![otherwise]You'd just sink into the mud if you tried that."; if noun is grey stone wall: instead say "[no-time]There's not much room on top of the wall for playing."; if noun is triangle triangle-shaped path or noun is pavings or noun is little slope or noun is field or noun is path: instead say "[no-time]You're on [the noun] now."; if noun is giant stone koala statue: instead try general objectclimbing giant stone koala statue; abide by the leaf and leaves playing rule; if noun is pavings or noun is red flowers or noun is a megaflora or noun is part of tgtrees or noun is puddle mud or noun is pretty yellow flowers or noun is part of witchtrees or noun is part of flowerbeds or noun is tablecloth or noun is part of unhappy trees: instead try taking noun; if noun is treehouse1: instead say "[no-time]You're not in the treehouse."; if noun is treehouse2: instead try turning something steering wheel; if noun is roundabout or noun is bars: if mounted of roundabout is 0: instead mount the roundabout; otherwise: instead try turning something roundabout; if noun is little hill: instead say "[no-time]The hill is too small to be much fun."; if noun is gazebo1 or noun is gazebo2: instead say "[no-time]Nobody could get up on top of the gazebo."; if noun is metal grate: instead say "You walk up and down on the grate. Your slippers make squeaky sounds on the metal."; if noun is smaller hedges: instead say "[no-time]There's not much room on the smaller hedges for playing." Carry out playing on: [fall-through only] say doesn't make sense. Part - Pout Pouting is an action applying to one topic. Understand "pout", "pout [text]" as pouting. Carry out pouting: say "[no-time][if the player is Harriet]Sometimes Demi pokes her lip out really far to pretend to be sad, and it always makes you laugh. And then mum will say, 'Oh, don't pout, Demi.' So that's what you think pouting is, but you don't really understand. You don't feel sad now, so you won't try poking your lip out.[otherwise]You don't think that poking your lip out and pretending to be sad is very witch-like." Part - Push Understand the commands "push", "move", "shift", "pull", "drag" as something new. Chapter - vague pushing vaguepushing is an action applying to one topic. Understand "push", "move", "shift", "pull", "drag" as vaguepushing. Carry out vaguepushing: if location is Treehouse or location is ByRoundabout: instead try vague turning; say "[no-time][line break][second custom style]<< You also need to say what you want to [current_command]. For example if you were at the roundabout, you could type "; say capitalised "[current_command] "; say "ROUNDABOUT. >>[normal style][line break]". Chapter - newpushing Table of Unbudgeables [checked] item ladder1 unhappy trees unhappy treebranches unhappy treebark picnic table yellow flowerbeds pavings giant stone koala statue treehouse1 little hill gazebo1 gazeboroof giant garden bed tgtrees tgtrees branches tgtrees bark wallbottom big yellow rock grey stone wall jungle plants witchtrees witchtree bark witchtree branches pond stone pole grass roof little slope beachballs metal grate smaller hedges taller hedges green seat gazebofence gazebotable gazebo2 treehouse2 ladder2 hedgea hedgea branches leaves treesa treesa branches treesa bark flowerbeds Moreton Bay Fig Tree Moreton Bay Fig Tree roots Moreton Bay Fig Tree bark Moreton Bay Fig Tree branch branches thtree thtree branches thtree bark overkill newpushing is an action applying to one thing and one topic. Understand "push [something] [text]", "move [something] [text]", "shift [something] [text]", "pull [something] [text]", "drag [something] [text]" as overkill newpushing when location is not Treehouse and location is not ByRoundabout. Carry out overkill newpushing: say "[line break][second custom style]<< '[topic understood]' was more information than the game needed. >>[normal style][line break]"; try newpushing noun. [lops off words beyond the noun] newpushing is an action applying to one thing. Understand "push [something]", "move [something]", "shift [something]", "pull [something]", "drag [something]" as newpushing. Check newpushing: if noun is bars, now noun is roundabout; if noun is roundabout or noun is steering wheel: instead try turning something noun; if duel_mode is 1: if noun is Marion or noun is enclosed by Marion: instead say no touching Marion yet; otherwise: abide by the duelblock B rule; if noun is spider, instead try brushing away spiderweb; if noun is an animal or noun is enclosed by an animal: instead say "[no-time]You don't like to go poking at animals."; if noun is an untagged chasee: instead do the turny fob; if noun is a notmehuman person or noun is enclosed by a notmehuman person: if noun is Rose, instead say "[no-time][if the player is Harriet]You don't like pushing people, especially big kids. They push back![otherwise]You can tell that starting a fight with [the Rose] wouldn't be smart."; instead say don't be a pokepop; if noun is an item listed in the Table of Unbudgeables: instead say "You can't move [that-those of noun]."; if noun is glass lemonade: instead say "[no-time]No, you might spill it."; if noun is weeds: instead say "[no-time][if the player is Harriet]You know you'll get itchy hands if you mess with the weeds.[otherwise]You don't need to do that."; if noun is spiderweb: instead try brushing away spiderweb; if noun is puddle mud: instead say "[no-time]You can't [current_command] that."; if noun is moss1 or noun is moss2: instead try taking noun; if noun is witchtree leaves: instead say "[no-time]That won't help."; if noun is bunch leaves or noun is part of bunch leaves: instead say "You [current_command] the leaves about with your foot. It's fun."; if noun is pretty yellow flowers or noun is giantflowers or noun is red flowers or noun is a megaflora or noun is flowers: instead say "[no-time]You don't want to mess up the flowers."; if noun is unhappy leaves or noun is tgtrees leaves or noun is treesa leaves or noun is Moreton Bay Fig Tree leaf leaves or noun is thtree leaves: instead say "[no-time]Those leaves are out of your reach."; instead say doesn't make sense. Chapter - pushing it in a direction pushing it in a direction is an action applying to one thing and one topic. Understand "push [something] [text]", "push [something] to [text]", "push [something] to the [text]", "move [something] [text]", "move [something] to [text]", "move [something] to the [text]", "shift [something] [text]", "shift [something] to [text]", "shift [something] to the [text]", "pull [something] [text]", "pull [something] to [text]", "pull [something] to the [text]", "drag [something] [text]", "drag [something] to [text]", "drag [something] to the [text]" as pushing it in a direction. Check pushing it in a direction: if noun is bars, now noun is roundabout; abide by the turning the turnables rule; [steering wheel and roundabout (and duel!) now dealt with] if topic understood is not a topic listed in Table of Spinny Directions: instead say doesn't make sense; [stop action if you used an invalid direction with it -] instead try newpushing noun. [otherwise, all other game content can be acted on as if you just pushed (noun) but without the direction - however, unless you're in ByRoundabout or Treehouse, 'overkill newpushing' will catch such actions first, which is fine, as it does the same thing ultimately but prints a better message for most circumstances] Part - Put (rebuilt) Understand the command "put" as something new. Understand "put" as a mistake ("[no-time][line break][second custom style]<< On its own, the command PUT won't do anything. You can try to PUT DOWN something you're carrying, or to PUT ON something wearable. >>[normal style]"). Understand "put on" as wearing. [add simple token so I can do missing noun stuff] Understand "put on [something preferably held]", "put [something preferably held] on" as wearing. Understand "put [something preferably held]", "put down [something preferably held]", "put [something preferably held] down" as dropping. Understand "put [something preferably held] on [something]", "put [something preferably held] [something]", "put [something preferably held] on [text]" as a mistake ("[no-time][line break][second custom style]<< You don't need to put things on other things in this game, though you can try to PUT DOWN something you're carrying, or PUT ON something wearable. >>[normal style]"). Understand "put [something preferably held] in/into [something]", "put [something preferably held] in/into [text]" as a mistake ("[no-time][line break][second custom style]<< You don't need to put things into other things in this game, though you can try to PUT DOWN something you're carrying, or PUT ON something wearable. >>[normal style]"). Part - Read [all safe] Understand the command "read" as something new. reading is an action applying to one thing. Understand "read [something]" as reading. wrongreading is an action applying to nothing. Understand "read" as wrongreading. Carry out wrongreading: instead say doesn't make sense. Check reading: if noun is collar, now noun is dog tag; if noun is dog tag or noun is handwriting, instead try examining noun; if noun is a person or noun is enclosed by a person, instead say doesn't make sense; instead say "[no-time]You can't read that." Part - Remove [all safe] [apart from removing the spider web, your own gear, and a few other exceptions, this mostly converts to 'take'] Understand the command "remove" as something new. Understand "remove" as a mistake ("[no-time][line break][second custom style]<< You also need to say what you want to remove. For example, you could try typing REMOVE SHOES. >>[normal style]"). Understand "remove [something]" as removing. Understand "remove [something] [text]" as blabby removing. Removing is an action applying to one thing. Blabby removing is an action applying to one thing and one topic. Carry out blabby removing: say "[line break][second custom style]<< '[topic understood]' wasn't understood. >>[normal style][line break]"; try removing noun. [lops off words beyond the noun] Check removing: if player is Demi: if noun is orb weaver spider or noun is spiderweb, instead try brushing away noun; if noun is player or noun is part of player, instead say doesn't make sense; if noun is part of something (called the lord object) enclosed by the player, now noun is the lord object; if noun is carried by player or noun is worn by player, instead try silently dropping noun; if noun is Rose: instead say "[no-time][if the player is Harriet]You don't know how you could make [the Rose] go away.[otherwise]It would be neat if you could just make this girl vanish, but you can't."; if noun is a parent or noun is a heroine or noun is lady or noun is old man: instead say how nonsense. Carry out removing: [fall-through] try taking noun. Part - Rest [a synonym for sleep] Understand the command "rest" as "sleep". Part - Right [all safe] righting is an action applying to nothing. Understand "r", "right", "go r/right", "go to r/right", "go to the r/right", "turn r/right", "turn to r/right", "turn to the r/right", "turn corner r/right", "turn the corner r/right", "turn r/right corner", "turn the r/right corner" as righting. Carry out righting: now mister_direction is "right"; try a path in the maze. Part - Scare [all safe] vague scaring is an action applying to one topic. Understand "scare" as vague scaring. Check vague scaring: seek out human presence; if seeker flag is 1: say "([current_caps_person])"; set pronouns from current_caps_person; instead try scaring current_caps_person; instead say "[no-time][line break][second custom style]<< You also need to say whom you want to try to scare. For example[quiptext]you could type SCARE [CAPS POWER PERSON]. >>[normal style][line break]". scaring is an action applying to one thing. Understand "scare [something]" as scaring. fussy scaring is an action applying to one thing and one topic. Understand "scare [something] [text]" as fussy scaring. Carry out fussy scaring: say "[line break][second custom style]<< '[topic understood]' was more information than the game needed. >>[normal style][line break]"; try scaring noun. [lops off words beyond the noun] Check scaring: if noun is not a person, instead say "[no-time]You can only try to scare people and animals."; if noun is player, instead say how nonsense; if noun is orb weaver spider, instead say "[no-time]You wouldn't like to scare the spider, but you would like to brush its web out of the way."; if noun is Stevie, instead say "[no-time][if player is Harriet]You don't want to scare the cute doggy.[otherwise]You don't want to scare the dog."; if noun is dark bird, instead say "[no-time]Who would want to scare that little birdy? Not you."; [Harriet only] if noun is a coolbird: if player is Demi: instead say "[no-time]You wouldn't like to scare a bird."; otherwise: instead try talking to raven; [can only be raven in Harriet game] if noun is black prince cicada, instead say "[no-time][if player is Harriet]You don't want to scare the cicada. Jack is probably scaring it enough already.[otherwise]The cicada has enough problems without you trying to scare it as well."; if player is Harriet and noun is not an animal, instead say "[no-time]You're a good fairy. You don't want to scare people. You bet Demi would like to scare some people, though."; if noun is Harriet: abide by the marion clap interference rule; instead say "[one of]You tiptoe up behind your sister and yell out 'Boo!'[paragraph break]Harriet screams and wobbles on her seat, and you start to laugh. 'You almost made me knock my lemonade!' she says.[paragraph break]'Oooooh, I'm sorry, Harriet,' you say, shaking her by the shoulders from behind.[or][no-time]Doing that once was enough for now.[stopping]"; if noun is old man, instead say "[no-time]He's the scary one!"; if noun is a parent, instead say "[no-time]You don't think you could scare mum or dad today. That's a better trick to try at home some time, when they're not ready for you."; if noun is Rose: if sentinel of Rose is 0, instead say "[no-time]You think you would need to surprise Rose to scare her, but you can't do that while she's standing there watching you. Maybe if you wait for a while, she might turn her back on you. Then you could try to scare her."; say "You sneak up on Rose so that you're standing behind her. Then you suddenly stamp your foot on the ground and yell out, 'BOO!'[paragraph break]'Ahhhh!' Rose screams, jumping away from the tree. You burst out laughing.[paragraph break]'That's it!' says Rose. She rushes over to you and gives you a great big shove – "; now mud_message of Rose is "right into the mud"; make Rose attack; stop the action; if noun is Jack, instead say "[no-time]You don't think anyone could scare Jack. He's always acting too crazy."; if noun is Marion, instead say "[no-time]You don't think you could scare a tough pirate like Red Marion."; if noun is Vince: if Vince is untagged, instead say "[no-time]If you scare Vince now, he might run away. You better just tip him."; instead say "[no-time]It's too hard to scare a spy. They're always on the lookout, so they know you're coming."; if noun is Ayla, instead say "[no-time][if ayla_mode is 1]You don't want to scare your faithful assistant.[otherwise]You don't want to scare Ayla. She's too nice!"; if noun is Sam, instead say "[one of]Without warning, you jump towards Sam and yell out, 'Boo!'[paragraph break]'Ahhh!' he shrieks. 'Don't scare me!'[paragraph break]'Sorry,' you say, but you can't help giggling as well.[or][no-time]Sam didn't like it when you scared him before, so you won't do it again.[stopping]"; if noun is Pia: if mounted of roundabout is 1, instead say "[no-time]You'll have to get off the roundabout if you want to do that."; instead say "[one of]You jump towards Pia and shout 'Boo!' but she doesn't react.[paragraph break]'Cats are hard to scare,' she says.[paragraph break]'No,' you say, 'cats are easy to scare. That's why we call them scaredy cats.'[paragraph break]'Oh yeah,' says Pia, then she laughs. 'Well, I'm not easy to scare.'[or][no-time]You already found out that you can't scare Pia. She's too hard to surprise.[stopping]". Part - Shoo vague shooing is an action applying to one topic. Understand "shoo" as vague shooing. Check vague shooing: if there is an animal in location: lock the dice; now current_caps_person is a random animal in location; if number of animals in location is 1: say "([current_caps_person])"; set pronouns from current_caps_person; instead try shooing current_caps_person; otherwise: instead say "[no-time][line break][second custom style]<< You also need to name an animal you want to try to shoo. For example, you could type SHOO [CAPS POWER PERSON]. >>[normal style][line break]"; otherwise: instead say "[no-time][line break][second custom style]<< You also need to name an animal you want to try to shoo. For example, if there was a bird here, you could type SHOO BIRD. >>[normal style][line break]". shooing is an action applying to one thing. Understand "shoo [something]" as shooing. fussy shooing is an action applying to one thing and one topic. Understand "shoo [something] [text]" as fussy scaring. Carry out fussy shooing: say "[line break][second custom style]<< '[topic understood]' was more information than the game needed. >>[normal style][line break]"; try shooing noun. [lops off words beyond the noun] Check shooing: if noun is player, instead say how nonsense; if noun is not an animal, instead say "[no-time]You can only try to shoo animals."; if noun is orb weaver spider or noun is a coolbird, instead try scaring noun; if noun is Stevie, instead say "[no-time][if player is Harriet]You don't want to shoo the cute doggy away.[otherwise]You don't want to shoo the dog away."; if noun is dark bird, instead say "[no-time]Who would want to shoo that little birdy? Not you."; [Harriet only] if noun is black prince cicada, instead say "[no-time][if player is Harriet]'Shoo!' you say to the cicada, trying to help it escape from Jack. It buzzes and flies around a bit, and Jack follows it, but it doesn't go away. It must not be too smart.[otherwise]The cicada has enough problems without you bothering it as well." Part - Scream screaming is an action applying to one topic. Understand "scream", "scream [text]" as screaming. Carry out screaming: say "[no-time][if the player is Harriet]You don't have to try to scream. It just happens sometimes when you're having fun or you get a fright.[otherwise]You don't want to scream now. You do it sometimes when you're excited or scared, but you don't like girls who just scream all the time. Especially if they do it near your ear." Part - Special wanting the duel rules is an action applying to one topic. Understand "special", "special [text]" as wanting the duel rules. Carry out wanting the duel rules: take no time; if duel_mode is 1: print the duel instructions; rule succeeds; [if ByRoundabout is unvisited or Marion is untagged, instead say "[line break][second custom style]<< You can't use this command when you're not in a duel. >>[normal style][line break]";] say "[line break][second custom style]<< You can only use this command when you're in a duel. >>[normal style][line break]". Part - Search and variants [all safe] [SEARCH is the master search verb. Variations which come here automatically are: look/search/check about/around. Varations which require extra qualification before coming here are: 'look/search/check inside/in/into/through/under/behind'] Understand the commands "search", "check" as something new. coresearching is an action applying to one thing. Understand "search [something]", "search about/around [something]", "look about/around [something]", "examine about/around [something]", "check [something]", "check out/about/around/on [something]" as coresearching. incomplete searching is an action applying to nothing. Understand "search", "search inside/in/into/through/under/beneath/behind", "look inside/in/into/through/under/beneath/behind", "examine inside/in/into/through/under/beneath/behind", "check", "check out/inside/in/into/through/under/beneath/behind/on" as incomplete searching. Carry out incomplete searching: if location is Picnic, instead say don't search the picnic area; if location is ByKoala: say "(the koala statue)"; set pronouns from giant stone koala statue; instead try coresearching giant stone koala statue; if location is Tree Garden: say "(the trees)"; pluralswitch tgtrees; instead try coresearching tgtrees; if location is BottomTreehouse: say "(the treehouse tree)"; set pronouns from thtree; instead try coresearching thtree; if location is Treehouse: say "(the treehouse)"; [deliberately left out pronoun setting here because of my oversight regarding 2 objects representing 2 different sides of the same thing] instead try coresearching treehouse2; if location is Tri Path: say "(the yellow flowerbeds)"; pluralswitch yellow flowerbeds; instead try coresearching yellow flowerbeds; if location is BelowWall: say "(the yellow rock)"; set pronouns from big yellow rock; instead try coresearching big yellow rock; if location is AboveWall: say "(the [if player is Harriet]jungle[otherwise]crazy[end if] plants)"; pluralswitch jungle plants; instead try coresearching jungle plants; if location is ByRoundabout: say "(the roundabout)"; set pronouns from roundabout; instead try coresearching roundabout; if location is GiantGarden: say "(the giant garden bed)"; set pronouns from giant garden bed; instead try coresearching giant garden bed; if location is Moreton West or location is Moreton East: say "(the Moreton Bay Fig Tree)"; set pronouns from Moreton Bay Fig Tree; instead try coresearching Moreton Bay Fig Tree; if location is Gazebo: say "(the picnic table)"; set pronouns from gazebotable; instead try coresearching gazebotable; if location is Hedge Maze or location is Shade Mud: say "(the gum trees)"; pluralswitch treesa; instead try coresearching treesa; if location is Edge Park: say "(the [unhappy or unwell] trees)"; pluralswitch unhappy trees; instead try coresearching unhappy trees; say "(the hedges)"; pluralswitch hedgea; instead try coresearching hedgea. [if you made it here, you must be in maze.] Chapter - Variant rerouting insearching is an action applying to one thing. insidesearching is an action applying to one thing. throughsearching is an action applying to one thing. beneathsearching is an action applying to one thing. behindsearching is an action applying to one thing. Understand "search in [something]", "look in [something]", "examine in [something]", "check in [something]" as insearching. Understand "search inside [something]", "look inside [something]", "examine inside [something]", "check inside [something]" as insidesearching. Understand "search into/through [something]", "look into/through [something]", "examine into/through [something]", "check into/through [something]" as throughsearching. Understand "search under/beneath [something]", "look under/beneath [something]", "examine under/beneath [something]", "check under/beneath [something]" as beneathsearching. Understand "search behind [something]", "look behind [something]", "examine behind [something]", "check behind [something]" as behindsearching. Section - insearching [as a principle here, I accept 'look in (trees, or branches or leaves of any tree) but no other part of a tree (roots or bark) - except witchtrees somewhat] [table checked] Table of Negative insearching item wallbottom giant stone koala statue big yellow rock gazebotable gazebofence triangle triangle-shaped path little slope grey stone wall path stone pole green seat roundabout tgtrees bark Moreton Bay Fig Tree roots Moreton Bay Fig Tree bark thtree bark unhappy treebark treesa bark witchtree bark little hill Check insearching: [these variant routines intercept anything special, then let through to coresearching anything that (a) will work there, or (b) is being rejected here, but will also be rejected there ] abide by the duelblock A rule; if noun is an item listed in Table of Negative insearching, instead say doesn't make sense; if noun is beachballs or noun is smaller hedges: pluralswitch noun; instead try coresearching hedgea; abide by the treeparts A redirection rule; if noun is witchtrees or noun is part of witchtrees: instead try examining witchtrees; try coresearching noun. [this is the fall-through line - anything not redirected above will now be dealt with by coresearching.] This is the treeparts A redirection rule: if noun is part of something (called master): [this line redirects accpted treeparts to their tree] if master is tgtrees or master is Moreton Bay Fig Tree or master is thtree or master is unhappy trees or master is treesa or master is witchtrees: if master is Moreton Bay Fig Tree or master is thtree: set pronouns from master; otherwise: pluralswitch master; instead try coresearching master. Section - insidesearching [for insidesearching, I accept no part of any tree - except witchtrees somewhat] [table checked] Table of Negative insidesearching item giant stone koala statue big yellow rock gazebotable gazebofence triangle triangle-shaped path little slope grey stone wall path stone pole green seat roundabout wallbottom tgtrees tgtrees branches tgtrees bark tgtrees leaves Moreton Bay Fig Tree Moreton Bay Fig Tree roots Moreton Bay Fig Tree bark Moreton Bay Fig Tree branch branches Moreton Bay Fig Tree leaf leaves thtree thtree branches thtree bark thtree leaves unhappy trees unhappy treebranches unhappy treebark unhappy leaves treesa treesa branches treesa bark treesa leaves witchtree bark little hill Check insidesearching: abide by the duelblock A rule; if noun is an item listed in Table of Negative insidesearching, instead say doesn't make sense; if noun is gazeboroof and location is Moreton West, instead say "[no-time]You can't see inside the gazebo's roof from out here."; if noun is beachballs or noun is smaller hedges: pluralswitch noun; instead try coresearching hedgea; if noun is witchtrees or noun is part of witchtrees: instead try examining witchtrees; try coresearching noun. [this is the fall-through line - anything not redirected above will now be dealt with by coresearching.] Section - throughsearching [for throughsearching, I accept trees and all their parts except the bark] [table checked] Table of Negative throughsearching item giant stone koala statue big yellow rock gazeboroof gazebotable triangle triangle-shaped path little slope wallbottom grey stone wall roundabout path stone pole tgtrees bark Moreton Bay Fig Tree bark thtree bark unhappy treebark treesa bark witchtree bark little hill Check throughsearching: abide by the duelblock A rule; if noun is an item listed in Table of Negative throughsearching, instead say doesn't make sense; if noun is beachballs or noun is smaller hedges: pluralswitch noun; instead try coresearching hedgea; abide by the the treeparts A redirection rule; if noun is witchtrees or noun is part of witchtrees: instead try examining witchtrees; try coresearching noun. Section - beneathsearching [for beneathsearching, you can search any tree (except witchtrees) and its leaves or branches, but not other parts. Bark searching diverts to bark taking.] [table checked] Table of Negative beneathsearching item triangle triangle-shaped path circle little slope koalacircle maze1 field clearing path maze2 drain water [table checked] Table of Cramped beneathsearching item giant stone koala statue giant garden bed big yellow rock gazebotable gazebofence gazebo2 hedgea yellow flowerbeds pretty yellow flowers gazebo1 flowerbeds flowers stone pole beachballs smaller hedges taller hedges Moreton Bay Fig Tree roots roundabout witchtrees little hill Check beneathsearching: abide by the duelblock A rule; if noun is an item listed in Table of Negative beneathsearching, instead say doesn't make sense; if noun is treehouse2, instead say "[no-time]You'd have to climb down again to search around beneath the treehouse."; if noun is spiderweb, instead say "[no-time]The only thing beneath the spiderweb is the ground, and the spiderweb goes all the way to the ground."; if noun is treehouse1, instead try coresearching thtree; if noun is hedgea branches leaves: pluralswitch hedgea branches leaves; now noun is hedgea; if noun is part of witchtrees: pluralswitch witchtrees; now noun is witchtrees; if noun is an item listed in Table of Cramped beneathsearching, instead say "[no-time]There's no room for a person to hide under [the noun]."; abide by the barktree redirection rule; if noun is part of something (called master): [this line redirects accepted treeparts to their tree - and it's fractionally different from treeparts A redirection rule because it doesn't include witchtrees] if master is tgtrees or master is Moreton Bay Fig Tree or master is thtree or master is unhappy trees or master is treesa: if master is Moreton Bay Fig Tree or master is thtree: set pronouns from master; otherwise: pluralswitch master; instead try coresearching master; try coresearching noun. This is the barktree redirection rule: if noun is thtree bark or noun is tgtrees bark or noun is unhappy treebark or noun is treesa bark or noun is witchtree bark or noun is Moreton Bay Fig Tree bark: [convert attempts to search beneath tree barks into trying to take those barks] set pronouns from noun; instead try taking noun. Section - behindsearching [here, I let through all parts of all trees] [table checked] Table of Negative behindsearching item triangle triangle-shaped path gazeboroof circle koalacircle puddle mud maze1 field clearing path maze2 water pond drain water Check behindsearching: abide by the duelblock A rule; if noun is an item listed in Table of Negative behindsearching, instead say doesn't make sense; if noun is flowerbeds or noun is flowers: pluralswitch flowerbeds; instead say "You don't find anyone hiding behind the flowerbeds."; if noun is spiderweb, instead say "[no-time]On the other side of the spiderweb is the gazebo."; if noun is gazebo1, instead say "[no-time]You can't see behind the gazebo from here."; if noun is gazebo2, instead say "[no-time]You don't see anyone hiding behind the gazebo."; if noun is hedgea branches leaves, now noun is hedgea; if noun is hedgea or noun is taller hedges or noun is tgbushes: pluralswitch noun; instead say "You can't see through [the noun]."; abide by the barktree redirection rule; abide by the treeparts A redirection rule; try coresearching noun. Chapter - coresearching Check coresearching: if current_command is "check": if noun is a person or noun is enclosed by a person: instead try silently examining noun; [check me etc. convert to examining] abide by the duelblock A rule; abide by the elemental search rule. This is the elemental search rule: if noun is player, instead say how nonsense; if noun is an animal, instead say "Search [the noun]?.. What a [nonsense] idea!"; [Check for animal before person, because animal IS a kind of person] if noun is a person, instead say "[no-time]You can't search other people, only places and things."; if noun is enclosed by a person, instead say "You're being [nonsense]! You won't find anyone there."; if location is Picnic, instead say don't search the picnic area. To say don't search the picnic area: say "[no-time]You don't need to do any searching here in the picnic area. One of the rules of your game is that nobody can hide here." Carry out coresearching when player is Harriet: if noun is giant stone koala statue: if Pia is original and hideyhole of Pia is ByKoala: [she can only be behind koala in Harriet game] now Pia is hero; say "You start to tiptoe around the statue...[paragraph break]Eek! Something black just zipped out of your sight![paragraph break]You jump back into the open to find tall Pia right in front of you, dressed in her black cat costume. You both scream with excitement, but before you can grab her, she springs away to the east."; now giant stone koala statue is searched; play_romp_music; now Pia is in Edge Park; now Pia is followable; now Pia is flight1; now Pia is introduced; set pronouns from Pia; now Pia_to_the_eye of Pia is pose in row 5 of Table of Pia Harriet Poses; [set Pia's initial pose here] lock the dice; now Piawillflee of Pia is a random number from 0 to 1; now last location of Pia is ByKoala; rule succeeds; instead say nobody there now; otherwise if noun is giant garden bed: if hideyhole of Vince is location and identified_hideyhole of Vince is greater than 0: if found_him of Vince is 0: [this line covers both Harriet and Demi games] say "You peek around the back of the giant garden bed and discover Vince hiding there, dressed as an army soldier in green. He's on his hands and knees and staying perfectly still. His bottom is poking in your direction, which is funny. He doesn't realise you can see him."; do the Vince found flags; rule succeeds; otherwise if found_him of Vince is 1: if Vince is untagged, instead say you already know where Vince is; instead say nobody there now; otherwise if noun is big yellow rock: instead say nobody there now. To do the Vince found flags: play_FoundAyla; now Vince is introduced; set pronouns from Vince; now found_him of Vince is 1; now identified_hideyhole of Vince is 3; [stops him being mentioned in treehouse view anymore] now noun is searched; now Vince is in location; now Vince is hero. To say you already know where Vince is: say "[no-time]You already know Vince is behind [Vince spot]." To say nobody there now: say "You take a look... There's nobody hiding behind it now." Carry out coresearching when player is Demi: if noun is giant stone koala statue or noun is giant garden bed or noun is big yellow rock: now noun is searched; if hideyhole of Vince is location and identified_hideyhole of Vince is 1: if found_him of Vince is 0: if noun is giant stone koala statue: say "You begin to creep around the side of the statue... There! You can see a little bit of green uniform sticking out. It must be Vince, who is dressed as a soldier. He doesn't know you've spotted him."; otherwise if noun is giant garden bed: say "You peek around behind the garden bed and discover someone hiding there. It's Vince! He's dressed all in green as an army soldier, and he's down on his hands and knees, not moving at all. You're behind him. He must not realise that you've spotted him."; otherwise if noun is big yellow rock: say "You peek around the side of the rock and see something green sticking out from around the corner. You quietly move around a little further and realise that you've found Vince, who's dressed all in green as an army soldier. He doesn't realise you've spotted him."; do the Vince found flags; rule succeeds; otherwise if found_him of Vince is 1: if Vince is untagged, instead say you already know where Vince is; instead say nobody there now; if hideyhole of Pia is location and Pia is original: [she can't be behind koala in demi game] if noun is giant garden bed: lock the dice; if a random chance of 1 in 2 succeeds: now chaseroom is ByRoundabout; otherwise: now chaseroom is Moreton West; activate chaseway; say "You lean down and poke your head around the back of the garden bed. You can see a black shape there. What is that?[paragraph break]Suddenly the shape comes to life and flies out into the open, giving you a big fright. 'AAAH!' you shriek.[paragraph break][if ayla_mode is 1]'Haha,' says Ayla.[paragraph break][end if]Now you can see that the shape is Pia, who's dressed as a black cat. She springs away to the [chaseway] on her long legs."; otherwise if noun is big yellow rock: lock the dice; now chaseroom is a random room adjacent to location; activate chaseway; say "As you begin to peek around one side of the rock, you hear a rustling noise from the other side. You hop back into the open to find tall Pia standing before you, dressed all in black in her cat costume. She must have popped out of hiding when she heard you coming.[paragraph break][if ayla_mode is 1]'Tip her!' shouts Ayla.[paragraph break][end if]Before you can move, Pia has run away to the [chaseway]."; play_romp_music; now Pia is in chaseroom; now Pia is followable; now Pia is flight1; now Pia is introduced; set pronouns from Pia; now Pia is hero; now Pia_to_the_eye of Pia is pose in row 5 of Table of Pia Harriet Poses; [set Pia's initial pose here] lock the dice; now Piawillflee of Pia is a random number from 0 to 1; now last location of Pia is location; rule succeeds; instead say nobody there now. To say unhappy or unwell: if player is Harriet, say "unhappy"; otherwise say "unwell". Carry out coresearching: [only falls through to here if nobody was found by your search] if noun is plural-named: pluralswitch noun; if noun is unhappy trees or noun is unhappy treebranches or noun is unhappy leaves: instead say "You don't find anyone behind any of the [unhappy or unwell] trees. They're not very wide, which makes them hard to hide behind."; if noun is treesa or noun is treesa branches or noun is treesa leaves: if mounted of roundabout is 1, do firsthopclimb roundabout; instead say "You have a look around but don't find anyone behind any of the gum trees. Most of the gum trees are too thin for a person to hide behind."; if noun is gazeboroof: instead say "[no-time]Nobody could get up there."; if noun is gazebotable: [picnic table can't be searched because it's in Picnic] instead say "[no-time]You can see from where you're standing that there's no-one behind the table."; if noun is gazebofence: instead say "[no-time]You can see through the fence, and nobody's using it to hide."; if noun is gazebo2: instead say "[no-time]There's not really any place for people to hide here in the gazebo."; if noun is treehouse2: instead say "[no-time]There's no-one up here except you."; if noun is hedgea or noun is part of hedgea or noun is taller hedges: instead say "[no-time]The hedges are like walls. Nobody could get inside them."; if noun is yellow flowerbeds or noun is part of yellow flowerbeds: instead say "[no-time]Nobody could hide in these flowerbeds or behind them. They're too small."; if noun is triangle triangle-shaped path or noun is circle or noun is little slope: instead say "[no-time]You don't see anyone hiding here."; if noun is koalacircle: instead say "[no-time][line break][second custom style]<< You should name the exact object you want to search. For instance, you could type SEARCH KOALA STATUE. >>[normal style][line break]"; if noun is weeds: instead say "[one of]Nobody's hiding in the weeds. You also feel confident that if someone ever does hide there, you'll be able to see them easily when you walk through this area. Those weeds just aren't very good for hiding behind.[or]There's still nobody there. You don't think anyone will ever try to hide there, because the weeds don't give enough cover.[stopping]"; if noun is treehouse1: instead say "[no-time]You can see from down here that nobody is hiding up there."; if noun is spiderweb: [Demi only here] instead say "[no-time]It has the spider in it, but you already knew that."; if noun is gazebo1: instead say "[no-time]You can see from here that none of your friends are hiding in the gazebo."; if noun is giantflowers or noun is red flowers or noun is a megaflora: instead say "You don't find anyone hiding in the flowers, but maybe you should look behind the flowerbed?"; if noun is tgtrees branches or noun is tgtrees leaves: instead try coresearching tgtrees; if noun is tgbushes: instead say "[no-time]The bushes are too thick for anyone to hide in."; if noun is puddle mud: instead say "[no-time]You don't think you're going to find any of your friends in the puddle of mud!"; if noun is wallbottom: instead say "[no-time]The wall is straight and flat, and there's nothing behind it. There's no way a person could use it for hiding."; if noun is moss1: instead say "[no-time][if player is Harriet]The green stuff is stuck flat to the wall. Nobody could use it to hide themselves.[otherwise]You giggle at the idea that your friends could hide in a patch of moss. Of course they couldn't."; if noun is grey stone wall: instead say "[no-time]If someone tried to hide behind this wall they would fall through the air down to the grass below."; if noun is jungle plants: instead say "[if the player is Harriet]You have a little poke around in the jungle plants. [otherwise]You poke around in the mess of plants. [end if]There's nobody there."; if noun is maze1: if player is Harriet: instead try going west; if player is Demi: if Ayla is tagged: instead try going west; otherwise: instead say "[no-time]To search the maze, you'll have to go in."; if noun is roundabout: [remember, can only search when not in duel mode] if mounted of roundabout is 1, instead say "[no-time]You're on the roundabout, so you know there's nobody hiding behind it."; instead say "[no-time]You can mostly see through the roundabout, and there's nobody behind it."; if noun is field: if location is R9: instead try coresearching triangle triangle-shaped path; if location is BelowWall: instead say "[no-time][line break][second custom style]<< You should name the exact object you want to search. For instance, you could type SEARCH ROCK. >>[normal style][line break]"; if noun is clearing: if location is ByKoala: instead try coresearching koalacircle; if location is ByRoundabout: if mounted of roundabout is 1, do firsthopclimb roundabout; instead say "You take a look around. It doesn't look like anyone's hiding here."; if noun is flowerbeds or noun is flowers: instead say "Nobody's hiding in the flowerbeds."; if noun is path: instead say "[no-time]The path is in the ground. You won't find anyone there!"; if noun is bunch leaves: instead say "[no-time]The leaves aren't piled high enough to hide anybody."; if noun is Moreton Bay Fig Tree or noun is Moreton Bay Fig Tree roots or noun is Moreton Bay Fig Tree branch branches or noun is Moreton Bay Fig Tree leaf leaves: if location is Moreton West: now chaseway is west; otherwise: now chaseway is east; instead say "[no-time]Standing here, you can see that nobody's hiding on this [chaseway] side of the tree."; if noun is thtree or noun is thtree branches or noun is thtree leaves: instead say "You look around the base of the treehouse tree. Nobody's using it to hide."; if noun is maze2: [Demi only] instead say "[no-time]You're searching the maze right now."; if noun is little hill: instead say "You have a peek over the hill. There's no-one hiding there."; [from here down - maze contents, except 'circle and 'little slope', which is bundled with triangle shaped path, and grass roof (nonsense), and taller hedges are bundled with hedgea] if noun is witchtrees or noun is part of witchtrees: instead say "You have a look around. There's nobody hiding around any of the little towers."; if noun is pond or noun is water: instead say "[no-time]Nobody could hide in the pond."; if noun is stone pole: instead say "You look around the pole. There's no-one behind it."; if noun is beachballs: instead say "You check behind the beachball hedges. Nobody is hiding there."; if noun is metal grate or noun is drain water: instead say "[no-time]The grate is sealed shut. Nobody could hide beneath it."; if noun is smaller hedges: instead say "Nobody's hiding behind the hedges here."; if noun is green seat: instead say "[no-time]You can see right through the seat, and there's nobody behind it."; [finally, the responses to nonsensical checks] if noun is part of unhappy trees or noun is pavings or noun is ladder1 or noun is part of tgtrees or noun is part of treesa or noun is grass roof or noun is steering wheel or noun is ladder2 or noun is yellow arrows or noun is mudpie or noun is part of Moreton Bay Fig Tree or noun is part of thtree: instead say doesn't make sense. Chapter - Searching the Tree Garden Trees (tgtrees) heightchoice, smoothnesschoice, stylechoice, attractchoice, colourchoice are number variables. [global] heighttext, smoothnesstext, styletext, attracttext, colourtext are texts which vary. [global] To say height question: if ever_searched_treegarden is 1, say "Do you want to investigate a tall tree or a short tree?"; otherwise say "Well, you have to start somewhere. Do you want to investigate one of the tall trees or one of the short trees?" To say smoothness question: say "Of the [heighttext] trees, do you want to pick one with smooth bark or one with rough bark?" To say style question: say "There are [heighttext] [smoothnesstext]-barked trees which have pointy branches, and others which have curly branches. Will you go towards the pointy-branched ones or the curly-branched ones?" To say attract question: say "Some [heighttext] [smoothnesstext] [styletext]-branched trees look [wordage in row 1 of the Table of treeattract], but others look [wordage in row 2 of the Table of treeattract]. Will you check out the [wordage in row 1 of the Table of treeattract][if player is Demi]-looking[end if] ones or the [wordage in row 2 of the Table of treeattract][if player is Demi]-looking[end if] ones?" To say colour question: say "You have almost decided which tree to search![paragraph break]There are four trees which are [heighttext], [smoothnesstext], [styletext]-branched and [attracttext][if player is Demi]-looking[end if]. One is black, one is brown, one is grey and one is green. Which tree will you pick?" To query treeheight: now current question menu is { "Tall", "Short" }; ask a menu question; now heightchoice is current question answer; now heighttext is the wordage in row heightchoice of the Table of treeheight. To query treesmoothness: now current question menu is { "Smooth", "Rough" }; ask a menu question; now smoothnesschoice is current question answer; now smoothnesstext is the wordage in row smoothnesschoice of the Table of treesmoothness. To query treestyle: now current question menu is { "Pointy", "Curly" }; ask a menu question; now stylechoice is current question answer; now styletext is the wordage in row stylechoice of the Table of treestyle. To query treeattract: if player is Harriet, now current question menu is { "Pretty", "Ugly" }; if player is Demi, now current question menu is { "Interesting", "Boring" }; ask a menu question; now attractchoice is current question answer; now attracttext is the wordage in row attractchoice of the Table of treeattract. To query treecolour: now current question menu is { "Black", "Brown", "Grey", "Green" }; ask a menu question; now colourchoice is current question answer; now colourtext is the wordage in row colourchoice of the Table of treecolour. Carry out coresearching tgtrees: pluralswitch tgtrees; if player is Harriet, abide by the special Ayla stuff rule; if player is Harriet and Ayla is off-stage and identified_tree of Ayla is 1: do the Ayla reveal; rule succeeds; if tgtrees is unexamined, say "[if player is Harriet]With a wall of bushes growing between each tree and the next, it's like every tree in the Tree Garden has its own little room. To check if anyone is hiding behind any of the trees, you will have to search around each tree, one at a time. What a lot of work![otherwise]With a wall of bushes growing between each tree and the next, it's like every tree in the Tree Garden has its own little room. To check if anyone is hiding behind any of the trees, you will have to search around each tree, one at a time. What a lot of work!"; now question response echo is 1; now current question is "[height question]"; query treeheight; now current question is "[smoothness question]"; query treesmoothness; now current question is "[style question]"; query treestyle; now current question is "[attract question]"; query treeattract; now current question is "[colour question]"; query treecolour; execute the tree search. This is the special Ayla stuff rule: if advised_Harriet of Ayla is 1, instead say "[no-time]Ayla said nobody else is hiding behind these trees. You trust her, so you decide not to spend more time searching here."; if Ayla is in location: if Ayla is untagged, instead say "[no-time]You don't need to look behind any more trees now - you need to tip Ayla!"; if Ayla is tagged: say "Ayla sees that you're still looking suspiciously at the trees. 'Don't worry,' she says. 'I'm the only one who hid here. You should look somewhere else.' While she's talking, her crown slips down her head a little. She pokes it again and this time it really sits in place."; now advised_Harriet of Ayla is 1; rule succeeds. To say creepy tippy: if player is Harriet, say "tiptoe"; otherwise say "creep". To execute the tree search: now ever_searched_treegarden is 1; now tgtrees is examined; say "[line break][if player is Harriet]After a bit of thinking[otherwise]After some thought[end if], you have picked out the [heighttext], [smoothnesstext], [styletext]-branched, [attracttext][if player is Demi]-looking[end if] [colourtext] tree.[paragraph break]You [creepy tippy] over to the base of the tree to investigate the bushy area around and behind it..."; WaitForSpace; say paragraph break; if player is Harriet and Ayla is off-stage and theight of Ayla is heightchoice and tsmoothness of Ayla is smoothnesschoice and tstyle of Ayla is stylechoice and tattract of Ayla is attractchoice and tcolour of Ayla is colourchoice: do the Ayla reveal; otherwise: if player is Harriet: say "[RandomLock][one of]Ohhhh, there's nobody hiding behind this tree.[or]There's nobody there.[or]There's nobody hiding here. Oh well.[or]Nobody's there![or]There's no-one hiding there.[at random]"; increment tree_persistence of Harriet; if tree_persistence of Harriet is greater than 2 and Ayla is untagged, say "[line break]Maybe if you wait and listen, that person you heard before will make another sound."; otherwise: say "[RandomLock][one of]Rats, there's nobody hiding behind this tree.[or]Rats, there's nobody there.[or]Rats, there's nobody hiding here.[or]Nobody's there![or]There's no-one hiding there. Rats![at random]". To do the Ayla reveal: now identified_tree of Ayla is 1; now found_her of Ayla is 1; now Ayla is introduced; now Ayla is hero; now Ayla is in location; set pronouns from Ayla; say "You've found your friend Ayla! She's hiding behind this tree, curled up in a ball with her knees tucked under her chin and her arms wrapped around her head. She is dressed as a princess and her gold crown is about to fall off. She's probably trying to stop herself from giggling or making any other sound. She looks so funny that you want to laugh, but she hasn't heard you coming, so you stay quiet so that you can tip her."; play_FoundAyla. Chapter - Painfully searching the Tree Garden Trees (supertreesearching) [WHAT I LEARNED HERE: Consider 'search [text] trees'. What if I don't want to catch the word 'the' in the text? Or 'a' for that matter? I can try to skip them by matching 'search the/a [text] trees' as well. This example works. However, once you add more than one variable token to a phrase -- a variable token being a series of slashed words -- I found Inform will then disregard any non-slashed term which follow in the same phrase. THUS: 'search the/a [text]' will work, and 'search inside the/a [text] will work, but 'search inside/around the/a [text] will NOT work as expected. In this case, words typed after 'inside/around' will fall into the [text] net, so if the player typed 'search inside the barrel', the topic understood will be 'the barrel', and not just 'barrel' as was intended. Changing the order in which the grammar phrases are set up in the code does not make one override the other, either. My way to get around this problem when I do the supertreesearching code is to simply have the the words 'a' and 'the' zapped from the topic understood after it is parsed but before it is processed for text matches, rather than trying to prevent 'a' and 'the' from falling into the [text] net in the first place.] supertreesearching is an action applying to one topic. Understand "search [text] tree/trees", "search around/about/in/through/beneath/behind [text] tree/trees", "look around/about/in/through/beneath/behind [text] tree/trees", "check out/around/about/in/through/beneath/behind [text] tree/trees" as supertreesearching when player is in Tree Garden. potentialsupertreesearching is an action applying to one topic. Understand "search [text]", "search around/about/in/through/beneath/behind [text]", "look around/about/in/through/beneath/behind [text]", "check out/around/about/in/through/beneath/behind [text]" as potentialsupertreesearching when player is in Tree Garden. heighthits, smoothhits, stylehits, attracthits, colourhits are number variables. [global] loop_killswitch, loopdud, loopconfusion, loop_badwords, loopvariety are number variables. [global] current_treetable is a table name variable. [global] Table of temporary tree adjectives [stores text temporarily for printing out purposes] adjective "adjectives go here" -- -- -- -- Carry out potentialsupertreesearching: [say megatree; [debug]] let rockingmatch be 0; let T be indexed text; now T is the topic understood; remove "looking" from megatree; [temporarily remove the 2 terms I consider too vague to be a allowed to trigger a tree search on their own] remove "branched" from megatree; repeat with N running through megatree: if "[the topic understood]" matches the text "[N]", now rockingmatch is 1; add "looking" to megatree; [.. and put them back] add "branched" to megatree; if rockingmatch is 0: say "[no-time]You can't see any such thing."; rule fails; try supertreesearching. Carry out supertreesearching: pluralswitch tgtrees; if player is Harriet, abide by the special Ayla stuff rule; [we won't permit this search to start if various Ayla conditions exist] let T be indexed text; now T is the topic understood; replace the word "a" in T with " "; replace the word "the" in T with " "; replace the word "big" in T with " "; replace the word "neat" in T with " "; replace the word "perfect" in T with " "; replace the word "line" in T with " "; replace the word "garden" in T with " "; replace the word "lines" in T with " "; [from 'big' to 'lines' are words which can refer to the original tgtrees object, so I'll knock them out here] replace the word "gray" in T with "grey"; replace the word "branched" in T with " "; [for curly-branched, etc] replace the word "looking" in T with " "; [looking - for Demi, interesting-looking, etc] let W be the number of words in T; [say "_[T]_"; [debug]] now heighthits is 0; now smoothhits is 0; now stylehits is 0; now attracthits is 0; now colourhits is 0; now heightchoice is 0; now smoothnesschoice is 0; now stylechoice is 0; now attractchoice is 0; now colourchoice is 0; now loopdud is 0; now loopconfusion is 0; now loop_badwords is 0; repeat with N running from 1 to W: now loop_killswitch is 0; repeat with O running from 1 to 5: if loop_killswitch is 1, break; if O is 1, now current_treetable is Table of treeheight; if O is 2, now current_treetable is Table of treesmoothness; if O is 3, now current_treetable is Table of treestyle; if O is 4, now current_treetable is Table of treeattract; if O is 5, now current_treetable is Table of treecolour; repeat with P running from 1 to number of rows in current_treetable: choose row P in current_treetable; if wordage entry exactly matches the text "[word number N in T]": if O is 1: if heightchoice is 0: now heightchoice is P; increment heighthits; otherwise: if P is not heightchoice: now loopconfusion is 1; now heighthits is 2; now loop_killswitch is 1; if O is 2: if smoothnesschoice is 0: now smoothnesschoice is P; increment smoothhits; otherwise: if P is not smoothnesschoice: now loopconfusion is 1; now smoothhits is 2; now loop_killswitch is 1; if O is 3: if stylechoice is 0: now stylechoice is P; increment stylehits; otherwise: if P is not stylechoice: now loopconfusion is 1; now stylehits is 2; now loop_killswitch is 1; if O is 4: if attractchoice is 0: now attractchoice is P; increment attracthits; otherwise: if P is not attractchoice: now loopconfusion is 1; now attracthits is 2; now loop_killswitch is 1; if O is 5: if colourchoice is 0: now colourchoice is P; increment colourhits; otherwise: if P is not colourchoice: now loopconfusion is 1; now colourhits is 2; now loop_killswitch is 1; if loop_killswitch is 1, break; [the killswitch is just to cut search time, aborting loops for current word as soon as a match is found] if loop_killswitch is 0: increment loop_badwords; [note that there was another word that matched nothing] now loopdud is 1. [if loopdud is ever set to 1, string contains a least one unmatched word.] [ carry out supertreesearching: [debug test responses] say "heighthits"; say heighthits; say "smoothhits"; say smoothhits; say "stylehits"; say stylehits; say "attracthits"; say attracthits; say "colourhits"; say colourhits; say "loopdud"; say loopdud. ] Carry out supertreesearching: if loopconfusion is 1: say "Trying to sort out these trees is making you confused. [run paragraph on]"; if heighthits is 2: say "A tree can't be both tall and short! [run paragraph on]"; now heighthits is 0; if smoothhits is 2: say "A tree can't be rough and smooth - it has to be one or the other. [run paragraph on]"; now smoothhits is 0; if stylehits is 2: say "A tree can be pointy or curly, but it can't be both. [run paragraph on]"; now stylehits is 0; if attracthits is 2: say "[if player is Harriet]Trying to find a tree which is pretty and also ugly is too hard[otherwise]A tree can be interesting or boring, but not both[end if]. [run paragraph on]"; now attracthits is 0; if colourhits is 2: say "Each tree is only one colour: black, brown, grey or green. You confused yourself when you tried to pick a tree that was more than one colour. [run paragraph on]"; now colourhits is 0; say line break. Carry out supertreesearching: if loopdud is 1: say "[second custom style]<< Oops. You [if loopconfusion is 1]also [end if]typed "; if loop_badwords is greater than 2: say "some words that didn't describe any of the tree garden trees. These words were ignored"; if loop_badwords is 2: say "a couple of words that didn't describe any of the tree garden trees. These words were ignored"; if loop_badwords is 1: say "a word that didn't describe any of the tree garden trees. This word was ignored"; say ". >>[normal style][line break]". Carry out supertreesearching: if heighthits is 1 and smoothhits is 1 and stylehits is 1 and attracthits is 1 and colourhits is 1: [take you out of here if you exactly picked one tree] get the player's tree; instead execute the tree search; if heighthits is 0 and smoothhits is 0 and stylehits is 0 and attracthits is 0 and colourhits is 0: [deal with you if you didn't type anything useful at all!] say "You haven't described any of the trees in the tree garden"; if identified_tree of Ayla is 1 and found_her of Ayla is 0: say ".[paragraph break]"; get the correct tree; let answer be yesno_answer_with_question "When you heard the giggling, it came from behind the [heighttext], [smoothnesstext], [styletext]-branched, [attracttext][if player is Demi]-looking[end if] [colourtext] tree. Do you want to search that tree? [bold type] (Y/N)[roman type]"; if answer is "YES": instead try coresearching tgtrees; if answer is "NO": instead say "[no-time][line break]Okay. You ended up not searching any tree."; otherwise: say ".[paragraph break]"; instead try coresearching tgtrees; perform the partial tree search. To get the player's tree: now heighttext is the wordage in row heightchoice of the Table of treeheight; now smoothnesstext is the wordage in row smoothnesschoice of the Table of treesmoothness; now styletext is the wordage in row stylechoice of the Table of treestyle; now attracttext is the wordage in row attractchoice of the Table of treeattract; now colourtext is the wordage in row colourchoice of the Table of treecolour. To properly announce the tree adjective: say Current question; if there is a wordage of Current question in the Table of treestyle, say "-branched"; if player is Demi and there is a wordage of Current question in the Table of treeattract, say "-looking". To perform the partial tree search: [here we complete a partially successful search] now loopvariety is 0; [loopvariety counts how many valid categories the player has already specified out of 5] blank out the whole of table of temporary tree adjectives; if heighthits is 1: increment loopvariety; [couldn't use a subroutine to replicate the repeated increment and choose instructions through this section - it wouldn't compile] choose a blank row in the table of temporary tree adjectives; now adjective entry is the wordage in row heightchoice of the Table of treeheight; if smoothhits is 1: increment loopvariety; choose a blank row in the table of temporary tree adjectives; now adjective entry is the wordage in row smoothnesschoice of the Table of treesmoothness; if stylehits is 1: increment loopvariety; choose a blank row in the table of temporary tree adjectives; now adjective entry is the wordage in row stylechoice of the Table of treestyle; if attracthits is 1: increment loopvariety; choose a blank row in the table of temporary tree adjectives; now adjective entry is the wordage in row attractchoice of the Table of treeattract; if colourhits is 1: increment loopvariety; choose a blank row in the table of temporary tree adjectives; now adjective entry is the wordage in row colourchoice of the Table of treecolour; if loopconfusion is 1 or loopdud is 1, say "... "; say "So you want to search a tree which is "; if loopvariety is 1: now Current question is adjective in row 1 of table of temporary tree adjectives; [just using Current question as temporary text storage here] properly announce the tree adjective; if loopvariety is 2: now Current question is adjective in row 1 of table of temporary tree adjectives; properly announce the tree adjective; say " and "; now Current question is adjective in row 2 of table of temporary tree adjectives; properly announce the tree adjective; if loopvariety is greater than 2: [IE 3 or 4 - 5 would be a full match, which was already diverted] let N be loopvariety minus 2; let O be loopvariety minus 1; repeat with P running from 1 to N: now Current question is adjective in row P of table of temporary tree adjectives; properly announce the tree adjective; say ", "; now Current question is adjective in row O of table of temporary tree adjectives; properly announce the tree adjective; say " and "; now Current question is adjective in row loopvariety of table of temporary tree adjectives; properly announce the tree adjective; say ".[paragraph break]"; now question response echo is 1; if heighthits is not 1: [this section collects details for remaining specifications the player failed to address] now current question is "Should this tree be tall or short?[line break]"; query treeheight; if smoothhits is not 1: [i say 'not 1' because 0 means there was no match, 2+ means there were too many] now current question is "Should this tree be smooth or rough?[line break]"; query treesmoothness; if stylehits is not 1: now current question is "Should this tree be pointy-branched or curly-branched?[line break]"; query treestyle; if attracthits is not 1: now current question is "Should this tree be [if player is Harriet]pretty or ugly[otherwise]interesting-looking or boring-looking[end if]?[line break]"; query treeattract; if colourhits is not 1: now current question is "Should this tree be black, brown, grey or green?[line break]"; query treecolour; get the player's tree; execute the tree search. Part - Seek Understand "seek", "seek [text]" as a mistake ("[no-time]When you play Hide and Seek Tip, you're seeking all the time."). Part - Show [Showing is mostly a clone of the 'give' coding, with a handful of rule exceptions, especially the fact you can try to show stuff to animals.] [all safe] [roundabout safe - it's impossible to take any object on the roundabout, therefore you won't be able to SHOW anything from up there, and no checks are needed] Understand the commands "show", "present", "display" as something new. newshowing it to is an action applying to two things. hopeless showing is an action applying to one topic. vague showing is an action applying to one thing and one topic. Understand "show", "show [text]" as hopeless showing. Understand the commands "present", "display" as "show". Understand "show [something preferably held] to [someone]", "show [something preferably held] [someone]" as newshowing it to. Understand "show [someone] [something preferably held]" as newshowing it to (with nouns reversed). Understand "show [something preferably held]", "show [something preferably held] [text]" as vague showing. Carry out hopeless showing: seek out human presence; say "[no-time][line break][second custom style]<< You need to say what you want to [current_command] and whom you want to [current_command] it to. For example[quiptext]you could type "; say capitalised "[current_command] "; say "[have you got something handy] TO [CAPS POWER PERSON]. >>[normal style][line break]". To say showing is only for people: say "[no-time][line break][second custom style]<< You can only [current_command] something to another person. >>[normal style][line break]". Check vague showing: abide by the duelblock A rule; if noun is a person: if noun is player, instead say doesn't make sense; now current_caps_person is noun; say "[no-time][line break][second custom style]<< You also need to say what you want to [current_command] to [the noun]. For example, you could type "; say capitalised "[current_command] "; say "[have you got something handy] TO [CAPS POWER PERSON]. >>[normal style][line break]"; rule succeeds; otherwise: [if noun wasn't a person, it must be an object] now current_caps_object is noun; seek out human presence; if seeker flag is 1: say "(to [the current_caps_person])"; set pronouns from current_caps_person; instead try newshowing noun to current_caps_person; say "[no-time][line break][second custom style]<< You also need to say whom you want to [current_command] [the noun] to. For example[quiptext]you could type "; say capitalised "[current_command] "; say "[CAPS POWER OBJECT] TO [CAPS POWER PERSON]. >>[normal style][line break]"; rule succeeds. Check newshowing it to: abide by the duelblock A rule; if second noun is player, instead say doesn't make sense; if second noun is not a person, instead say how nonsense; if second noun is an animal: instead say "[The Second Noun] do[es]n't seem to be interested."; if second noun is old man: instead say "[no-time]He's not going to be interested in anything you'd show him."; if second noun is an untagged chasee: if second noun is Ayla and player is Harriet: instead say giveaway alert; otherwise if second noun is Vince: instead say giveaway alert; otherwise: instead say "[no-time][The Second noun] won't come too close to you. You still haven't tipped [it-them of second noun]."; if second noun is lady: instead say "[one of]The lady smiles.[or]The lady seems to be busy keeping an eye on [the Stevie].[stopping]"; if second noun is Rose: if player is Harriet: if talked_to of Rose is: -- 0 : say "You decide to talk to the girl before you show her something. [run paragraph on]"; -- 1 : say "Rose told you not bug her, but you're curious about her. [run paragraph on]"; -- 2 : say "You're still curious. [run paragraph on]"; instead try talking to Rose; if player is Demi: if sentinel of Rose is greater than 0: instead try talking to Rose; otherwise: if the talked_to of Rose is greater than 2: instead say "[no_more_Demi_Rose_talk]."; otherwise: if show_attempts of Rose is less than 9, increment show_attempts of Rose; if show_attempts of Rose is 9, instead say "[no-time]You're tired of trying to show stuff to Rose."; instead say "[RandomLock][one of]'I don't care about that,' says Rose.[or]'Big deal!' says Rose.[or]'You're boring me,' says Rose.[or]'I don't care,' says Rose. 'You sure are a nuisance.'[or]Rose rolls her eyes at you.[or]'Snore!' says Rose.[or]'Like I care,' says Rose.[or]'I don't care, shrimp,' says Rose.[in random order]"; if second noun is Ayla and ayla_mode is 1: instead say "[no-time]You don't need to show things to Ayla. She's assisting you."; if noun is not a missile and noun is enclosed by player: if noun is a part of player: instead say "[no-time]You don't need to show people your haircut."; if noun is a wand or noun is part of a wand: instead say "[no-time]Everyone can already see how cool your wand is."; if noun is sneakers or noun is shoelaces: instead say "[no-time]Everyone can already see how cool your sneakers are."; instead say "[no-time]Everyone can already see how [if player is Harriet]pretty you look[otherwise]good your costume is[end if]."; unless noun is a missile: if noun is enclosed by second noun: if noun is part of second noun: instead say how nonsense; instead say "[The Second Noun] doesn't need to be shown [it-them of second noun] own stuff."; instead say "[no-time]You don't need to do that - [second noun] can already see [that-those of noun]." Check newshowing it to: [to reach this check rule, only sympathetic people are left (parents, sister and friends) and only the 3 missiles are left] if mounted of roundabout is 1, do firsthopclimb roundabout; abide by the newgiving giveable stuff rule. [in this case, the exact code from 'give' can be used for 'show'] Part - Smile Understand "smile", "smile [text]" as a mistake ("[no-time]Good and funny things are always happening, and they always make you smile. You don't have to think about doing it."). Part - Sing [all safe] the block singing rule is not listed in any rulebook. fiddly singing is an action applying to one topic. Understand "sing [text]" as fiddly singing. Carry out fiddly singing: instead try singing. Check singing: if player is Demi, instead say "[no-time]You don't think singing is a very witchy thing to do, so you don't."; abide by the duelblock B rule; abide by the aylavince alert verb rule. Carry out singing: [Harriet only - Demi already blocked] if location is Picnic and Ayla is in location: if singing of Ayla is 1: if interrupted_singing of Ayla is less than 2, increment interrupted_singing of Ayla; if interrupted_singing of Ayla is 1: say "You try to sing along with Ayla, but you don't know the song. Ayla stops singing and smiles.[paragraph break]'I made this song myself,' she says. 'But I don't know how to teach people.'[paragraph break]'That's okay, I still have to find everyone else,' you say."; if glulx sound is supported: fade out the foreground sound faster; pause_only; say "[line break]Ayla starts singing again."; play_Aylasong_music; rule succeeds; if interrupted_singing of Ayla is 2: instead say "[no-time]You don't know Ayla's song, so you like just listening to her sing it."; if singing of Ayla is 0: if sung_for_Ayla of Harriet is 0: say "[Harriet sings firework][paragraph break]'I love Katy Perry!' says Ayla."; if Pia is in location, say "[line break]'I don't like that song,' says Pia."; now sung_for_Ayla of Harriet is 1; rule succeeds; if sung_for_Ayla of Harriet is 1, instead say enough_singing; say "[one of][Harriet sings firework][bluh_singing][or][enough_singing][stopping]". To say Harriet sings firework: say "'Yeah yeah I'm a fiiiire-work!' you sing. " To say bluh_singing: say "Bleh, it's too hot for singing." To say enough_singing: say "[no-time]You've sung enough. You need to get tipping." Part - Sit [all safe] Understand the commands "sit", "sit down" as something new. Understand the commands "sit on/at", "sit on top of", "sit down on" as something new. [sit in/inside already knocked out in section for totally eliminated 2 word commands] To say the sitting fob: say "[no-time][if player is Harriet]You feel bouncy and you've got friends to tip. You don't feel like sitting down.[otherwise]Witches don't sit down when they're on the hunt!" To say the duel sit fob: say "[no-time]Marion would zap you easily if you sat down now." This is the duel sitting rule: if duel_mode is 1, instead say the duel sit fob. Chapter - General and non object sitting general sitting is an action applying to nothing. Understand "sit", "sit down" as general sitting. non object sitting is an action applying to one topic. Understand "sit [text]", "sit on [text]", "sit on top of [text]", "sit down on [text]" as non object sitting. Check general sitting: abide by the duel sitting rule. Carry out general sitting: if the green seat is in location, instead say "[no-time]Witches don't sit down when they're on the hunt. Even on a nice seat in the maze."; say the sitting fob. Check non object sitting: abide by the duel sitting rule. Carry out non object sitting: say the sitting fob. Chapter - targeted sitting targeted sitting is an action applying to one thing. Understand "sit [something]", "sit on/at [something]", "sit on top of [something]", "sit down on [something]" as targeted sitting. Check targeted sitting: abide by the duel sitting rule; abide by the person or enclosed check rule; if noun is a bench or noun is green seat or noun is treehouse2 or noun is grey stone wall or noun is bunch leaves or noun is circle or noun is metal grate or noun is the Moreton Bay Fig Tree roots or noun is little hill or noun is roundabout, instead say the sitting fob. Carry out targeted sitting: [we only get here if we tried to sit on a real noun, but it's not considered sittable by me and intercepted by ealier carry out rules] say "[no-time]You can't sit on [that-those of noun]." Part - Splash [all safe] splashing is an action applying to one thing. Understand "splash [something]", "splash in [something]" as splashing. blabby splashing is an action applying to one thing and one topic. Understand "splash [something] [text]" as blabby splashing. Carry out blabby splashing: instead try splashing noun. vaguesplashing is an action applying to nothing. Understand "splash" as vaguesplashing. Check vaguesplashing: if location is R5: instead say "[no-time]You don't want to get wet."; if location is Shade Mud: [I've made this a generic response to 'splash (anything)' in this room] if player is Harriet, instead try taking puddle mud; instead say "[no-time]You'd just get in a big muddy mess if you tried to splash the mud puddle."; if location is R13: instead say "[no-time]You can't reach the water. It's down in the drain, far beneath the grate."; instead say splashing is for water. To say splashing is for water: say "[no-time][if the player is Harriet]Splashing is for water and wet stuff.[otherwise]You can only splash stuff like water." Check splashing: if noun is mudpie: instead say "[no-time]The mud pie is too small for splashing in. It's a good size for throwing."; if location is R5 or location is Shade Mud or location is R13: instead try vaguesplashing; instead say splashing is for water. Part - Spy [all safe] spying is an action applying to one topic. Understand "spy", "spy [text]", "spy on", "spy on [text]" as spying. Check spying: abide by the duelblock B rule; if player is Demi, instead say "[no-time]You don't need to do any spying."; instead say "[no-time][if spyness of Harriet is 0]You don't know how to be a spy.[otherwise]You don't know anything about spying, but Vince said he'll teach you about it later." Part - Stand Understand the command "stand" as something new. Understand "stand", "stand [text]", "stand up", "stand up [text]", "stand on", "stand on [text]" as a mistake ("[no-time]You're already on your feet."). standclimbing is an action applying to one thing. Understand "stand on [something]", "stand up on [something]" as standclimbing. Check standclimbing: abide by the person or enclosed check rule; if noun is ladder2, instead say "[no-time]You're already at the top of the ladder."; if noun is roundabout, instead mount the roundabout; if noun is weeds, instead say doesn't make sense; instead try general objectclimbing noun. Part - Stare vague staring is an action applying to one topic. Understand "stare", "stare [text]" as vague staring. Check vague staring: if location is Shade Mud and Rose is in location: say "(at Rose)"; instead try staring at Rose; instead say "[no-time]Staring is rude." staring at is an action applying to one thing. Understand "stare [something]", "stare at [something]" as staring at. Check staring at: if noun is player, instead say how nonsense; if noun is Rose: if player is Demi and sentinel of Rose is 0: if stared_at_Rose of Demi is 1, instead say "[no-time]You already tried to out-stare Rose, and you couldn't do it."; now stared_at_Rose of Demi is 1; instead say "You start staring at Rose. Rose frowns and stares back. You keep staring. Nobody moves.[paragraph break]Ugh, your eyes are getting sore. You can't keep doing this, you've got to blink!..[paragraph break]Ah, that's better.[paragraph break]Rose says, 'Nobody can beat me at staring.'"; otherwise: instead say "You stare at Rose, but she's got her back turned to you, so she doesn't notice."; if noun is an animal, instead say "You stare at [the noun]. [The Noun] doesn't seem to care."; if noun is a person, instead say "[no-time]Staring is rude."; instead say "You stare at [the noun]." Part - Talk [duel safe] [roundabout safe] A person has a number called talked_to. Chapter - Talk (no target) vaguetalking is an action applying to nothing. Understand the command "speak" as something new. Understand "t", "talk", "talk to", "speak", "speak to" as vaguetalking. Definition: A person is notmehuman if it is not the player and it is not an animal. Check vaguetalking: let P be number of people in location minus 1; [total no. of characters present, minus yourself] if P is less than 1, instead say "[no-time]There's no-one here to talk to."; let A be number of animals in location; let H be P minus A; [gives number of non-you humans] if H is greater than 0: [if there are any humans to talk to, we will consider them over any animals] if H is 1: lock the dice; now current_actor is a random notmehuman person in location; [since only 2 people here and one is you, this line selects the other person] say "([current_command] to [the current_actor])"; set pronouns from current_actor; instead try talking to current_actor; otherwise: [H must be greater than 1] lock the dice; now current_caps_person is a random notmehuman person in location; instead say "[no-time][line break][second custom style]<< There's more than one person here, so you'll also need to say whom you want to talk to. For example, you could type TALK TO [CAPS POWER PERSON], or the shorter T [CAPS POWER PERSON]. >>[normal style][line break]"; otherwise: [there are only animals in the room] if A is 1: lock the dice; now current_actor is a random animal in location; [since only 2 characters are here and one is you, this line selects the animal] say "([current_command] to [the current_actor])"; set pronouns from current_actor; instead try talking to current_actor; otherwise: [A must be greater than 1] lock the dice; now current_caps_person is a random animal in location; instead say "[no-time][line break][second custom style]<< There's more than one animal here, so you'll also need to say which one you want to talk to. For example, you could type TALK TO [CAPS POWER PERSON], or the shorter T [CAPS POWER PERSON]. >>[normal style][line break]". Chapter - Talk To Talking to is an action applying to one thing. Understand "t [something]", "talk [something]", "talk to [something]", "speak [something]", "speak to [something]" as talking to. Check talking to: if noun is not a person [and ergo noun is also not an animal], instead say "[no-time]You can't talk to [that-those of noun]."; abide by the aylavince alert verb rule. Instead of talking to the player: abide by the duelblock B rule; if the player is Demi, say "[no-time]You don't need to talk to yourself too much. You can hear your thinking pretty well in your head."; otherwise say "[one of]'I'm going to find everyone,' you say to yourself.[or][no-time]Talking to other people is more fun.[stopping]". Section - Talk to Ayla To potentially interrupt Ayla's singing: if singing of Ayla is 1: say "Ayla stops singing to speak to you.[paragraph break]"; if glulx sound is supported, fade out the foreground sound faster; stop Ayla singing; now initial appearance of Ayla is "Ayla is sitting at the table."; now singing of Ayla is 0. To gab Ayla: now too_gabby of Ayla is 1. To randomise Ayla's comments: [done at boot time in gogirl rule] repeat with N running from 1 to 10: [note - to change no. of comments, all you have to do is change the 1 to X number here, then add the comments to the 'pull and deliver' action down in 'talking to Ayla'.] add N to Ayla comment storage; lock the dice; sort Ayla comment storage in random order. Carry out talking to Ayla: if player is Harriet: if Ayla is home: if Pia is home and hair conversation of Ayla is 0: now hair conversation of Ayla is 1; instead say "'That's pretty,' you say, admiring the braid Ayla is putting in Pia's hair. 'Can you do my hair later?'[paragraph break]'Sure,' says Ayla."; potentially interrupt Ayla's singing; instead say "[one of]'Hi Harriet,' she says. 'How is it going?'[paragraph break]'It's tricky to find everyone,' you say.[paragraph break]'You're tricky,' she says, then she giggles.[or]'My tummy wants food,' says Ayla. 'Are you going to tip everyone soon?'[paragraph break]'I'm doing it!' you say.[or]Ayla pats her tummy. You giggle.[stopping]"; if Ayla is untagged, instead try tipping Ayla; if Ayla is in Tree Garden and advised_Harriet of Ayla is 0: say "'Is anyone else hiding here?' you ask Ayla.[paragraph break]'No,' she says, 'it was just me.'"; now advised_Harriet of Ayla is 1; decrement return_wait of Ayla; rule succeeds; say "'I heard you giggling,' you say, which makes Ayla giggle some more."; [if you say this as she leaves Tree Garden and says 'that was fun', it will read well and make sense.] if location is not Tree Garden, say "[line break]'I was trying to stay quiet,' she says." Carry out talking to Ayla: if player is Demi: if maze_mode is 1: if Ayla is untagged: instead say "[one of]'You've been tricky,' you say. Ayla giggles.[or][no-time]It's time to tip her![stopping]"; otherwise: if advised_Demi of Ayla is 0: instead follow the aylas_maze_advice rule; otherwise: instead say "[one of]'Let's go,' says Ayla.[or][no-time]Ayla wants to leave the maze and get back in the sun.[stopping]"; otherwise if Ayla is home: [if you're out of the maze, Ayla must have been tipped. Also, it's impossible to speak to her when she's returning.] potentially interrupt Ayla's singing; say "'Hi Ayla,' you say.[paragraph break]'Can I come with you now?' asks Ayla. She looks hopeful.[paragraph break]'Yeah,' you say, 'let's go.'[paragraph break]'Yeah!' says Ayla. "; now ayla_mode is 1; now ayla is flight1; now initial appearance of Ayla is "Ayla is here[did ayla meet the dog]."; if Pia is in location: say "'I'll finish your hair later, Pia.'[paragraph break]'I hope so,' says Pia, who has half a braid in her hair. Ayla bounces to her feet."; now initial appearance of Pia is "Pia is sitting at the table, having a rest."; now Ayla is not undescribed; otherwise: say "She bounces to her feet."; rule succeeds; otherwise if ayla_mode is 1: if smartquip of Ayla is greater than 3: instead say "'Come on!' says Ayla, pointing after the dog."; if smartquip of Ayla is 1: now smartquip of Ayla is 2; instead say "'Sorry Ayla,' you say. 'I know you're smart. Don't worry, we'll catch up with the doggy.'[paragraph break]Ayla smiles."; if location is Gazebo and Sam is in location and Sam is untagged: instead say "[one of]'Let's spread out so he can't escape,' you tell Ayla.[paragraph break]'Right!' she says, moving away from you and putting out her arms.[or]'Hold that position!' you say to Ayla.[paragraph break]'I am,' she says.[or]'Keep holding that position!' you say to Ayla.[paragraph break]'I am!' she says.[stopping]"; if location is Gazebo and Pia is in location and Pia is untagged: instead say "[one of]'Be careful, she's tricky,' you tell Ayla.[paragraph break]'I know,' she says.[or]'Careful,' you remind Ayla.[paragraph break]'I know!' Ayla says again.[stopping]"; if Sam is in location or Sam is followable: if Sam is untagged: if location is not Gazebo and ever_chased of Sam is 1 and samquip of Ayla is 0: now samquip of Ayla is 1; gab Ayla; say "'We can't keep chasing Sam around [if location is Moreton East or location is Moreton West]this[otherwise]that[end if] tree,' you say. 'The roots are slowing me down.'[paragraph break]'We need to do something different,' [if Sam is in location]whispers[otherwise]says[end if] Ayla. 'Maybe we need to chase him somewhere else.'"; if Sam is in location, say "[line break]'Whispering's rude,' says Sam."; rule succeeds; if Jack is followable and Jack is untagged and jackquip of Ayla is 0: now jackquip of Ayla is 1; gab Ayla; instead say "'Do you like Jack?' you ask Ayla.[paragraph break]'Yes, he's funny,' says Ayla.[paragraph break]'Hm,' you say. Can you really be the only person who thinks Jack is annoying?"; if Pia is followable or Pia is in location: if Pia is untagged and Pia is not in Gazebo and piaquip of Ayla is 0: now piaquip of Ayla is 1; gab Ayla; if pia_woe_comment of ayla is 0, now pia_woe_comment of ayla is 1; [seed talk comment] instead say "'Pia is too fast for us,' moans Ayla. 'We'll never catch her.'[paragraph break]'Don't say that,' you say, poking Ayla with your wand.[paragraph break]'Ow!' says Ayla."; if location is Gazebo and gazeboquip of Ayla is 0: now gazeboquip of Ayla is 1; instead say "'Maybe this could be my castle,' says Ayla, looking around the gazebo.[paragraph break]'I want this to be my tower,' you say.[paragraph break]'Let's share,' says Ayla.[paragraph break]'Okay, that's fair,' you say."; if rosequipA of Ayla is 1 and location is not Shade Mud: now rosequipA of Ayla is 2; instead say "'I don't like that Rose girl,' you say.[paragraph break]'Me too,' says Ayla. '[if rosequipB of Ayla is greater than 0]I think she's [otherwise]She looks [end if]mean.'"; if location is Moreton West or location is Moreton East: if moretonquip of Ayla is less than 3: increment moretonquip of Ayla; gab Ayla; instead say "[one of]'How high do you think this tree is?' you ask Ayla.[paragraph break]'A million,' says Ayla, waving her hands.[paragraph break]'I think your answer is too big,' you say.[paragraph break]'Lots of floors?' says Ayla. 'A hundred billion?'[paragraph break]'How old do you think it is?' you say.[paragraph break]'It must be older than my dad,' says Ayla. 'He's pretty old.'[or]'I wish I could climb up and look around,' you say.[paragraph break]'You can't even climb over this tree's roots,' says Ayla, giggling. You grin.[or]'It's so dusty here,' says Ayla. 'My nose will run.'[paragraph break]'I don't have any tissues,' you say. 'You can use my sleeve if you want.'[paragraph break]'Gross!' says Ayla, and you both laugh.[stopping]"; if location is BelowWall and bwallquip of Ayla is 0: now bwallquip of Ayla is 1; gab Ayla; instead say "Thinking about the moss, you poke it with your finger. 'It's squishy,' you say.[paragraph break]'Ewww!' says Ayla.[paragraph break]'Heh heh,' you say."; if location is Shade Mud: if Rose is in location: if rosequipB of Ayla is 1: now rosequipB of Ayla is 2; say "'She doesn't really own the park, does she?' asks Ayla.[paragraph break]'Of course not,' you reply. 'Don't listen to her.'"; if sentinel of Rose is 0, say "[line break]'Yes I do!' says Rose."; rule succeeds; instead say "[one of]'Let's go, Demi,' says Ayla. 'I don't like it here.'[paragraph break]You think Ayla is afraid of Rose, but you don't like other kids bossing you around, even scary ones.[or]Ayla remains quiet.[stopping]"; if location is Tree Garden and tgquip of Ayla is 0: now tgquip of Ayla is 1; instead say "'I wonder if anyone's hiding here,' you say.[paragraph break]'Let's listen,' says Ayla.[paragraph break]'Good idea,' you say. The two of you stand still and wait for things to get really quiet, then you listen carefully for anyone moving or breathing or wiggling around behind one of the trees. You don't hear anything.[paragraph break]'I don't think there's anyone here,' says Ayla.[paragraph break]'Same here,' you say."; if location is Edge Park and tried_mass_grab of Demi is 1 and leafquip of Ayla is 0: now leafquip of Ayla is 1; instead say "'Maybe you could pick up some leaves,' you say to Ayla. 'It's too hard for me.'[paragraph break]'I don't like to carry things when I'm playing,' says Ayla.'"; if location is Picnic: if clappy picnicquip of Ayla is 0 and Marion is in Picnic: now clappy picnicquip of Ayla is 1; instead say "'That clapping looks fun,' says Ayla.[paragraph break]'We can join in later,' you say."; if regular picnicquip of Ayla is 0: now regular picnicquip of Ayla is 1; instead say "'Maybe I'll sit down for a minute,' says Ayla, walking towards the picnic table.[paragraph break]'No!' you say, pulling her back. 'No assistant of mine sits down on the job.' Ayla giggles."; if location is ByKoala and koalaquip of Ayla is 0: now koalaquip of Ayla is 1; gab Ayla; instead say "'Do you like koalas?' you ask Ayla.[paragraph break]'Of course. They're so cute,' she says.[paragraph break]'I saw them at the zoo and they just slept all the time,' you say.[paragraph break]'I still like them,' says Ayla.[paragraph break]'Well I think they're lazy,' you say."; if location is Tri Path and triquip of Ayla is less than 3: increment triquip of Ayla; gab Ayla; if triquip of Ayla is 1, instead say "'I love these flowers,' says Ayla, putting her face right in the yellow flowers. 'You just have to watch out for bees.'[paragraph break]'I don't see any bees around here,' you say."; if triquip of Ayla is 2, instead say "'I see a bee!' you shout.[paragraph break]'You can't trick me,' says Ayla, smiling. You giggle."; [when quip value reaches 3, no more bee specific comments are made - talk request falls through] if location is BottomTreehouse and tried_entering_treehouse of Demi is 1 and treehousequip of Ayla is 0: now treehousequip of Ayla is 1; gab Ayla; instead say "'Can you climb up in the treehouse and have a look around the park?' you ask Ayla.[paragraph break]'Oh, last time I was in the treehouse I got a big splinter,' says Ayla. 'They had to pull it out with tweezers and it hurt so much. I don't want to go in there.'[paragraph break]'Oh, okay,' you say."; if location is AboveWall and heightquip of Ayla is 0: now heightquip of Ayla is 1; instead say "'Do you like being up high?' you ask Ayla.[paragraph break]'I feel dizzy when I look down,' says Ayla.[paragraph break]'Oh, I don't,' you say."; if location is Hedge Maze and mazequip of Ayla is 0: now mazequip of Ayla is 1; gab Ayla; instead say "'That was fun in the maze, wasn't it?' you say.[paragraph break]'Yeah,' says Ayla, 'but I got cold.'"; if location is ByRoundabout: if roundaboutquip of Ayla is 0: instead say "[one of]'Let's get on the roundabout,' says Ayla.[or]'Come on, let's get on,' says Ayla.[stopping]"; if roundaboutquip of Ayla is 1: say "[if mounted of roundabout is 0]'Does the roundabout make you dizzy?' you ask Ayla.[paragraph break]'Always,' she says. 'I like that funny feeling.'[paragraph break]'I like to make Harriet dizzy by spinning her around,' you say. Ayla giggles.[otherwise]'Spin the roundabout, Demi!' says Ayla."; increment roundaboutquip of Ayla; rule succeeds; if roundaboutquip of Ayla is 2: say "'I wonder if you can get your own roundabout at home?' you say.[paragraph break]'I don't know any girl that lucky,' says Ayla."; increment roundaboutquip of Ayla; rule succeeds; [when quip value reaches 3, no more roundabout specific comments are made - talk request falls through] if location is GiantGarden and giantquip of Ayla is 0: now giantquip of Ayla is 1; gab Ayla; instead say "Ayla is looking at the rainbow of flowers. 'Did you ever chase a rainbow?' she asks.[paragraph break]'I know!' you say, 'They keep moving away from you. It was really annoying. My dad says they're made out of light.'[paragraph break]'How does that work?' says Ayla.[paragraph break]'I don't know,' you have to admit."; if Ayla comment storage is { }: instead deliver an Ayla endstage comment; instead pull and deliver an Ayla comment. ladybug prime is a number variable. [global] To pull and deliver an Ayla comment: let N be entry 1 of Ayla comment storage; remove entry 1 from Ayla comment storage; if N is: -- 1 : say "'Have you got any ideas?' you ask Ayla.[paragraph break]'Are we having chocolate ice cream this afternoon?' says Ayla. 'That's my favourite flavour.'[paragraph break]'I meant ideas about how to catch people,' you say.[paragraph break]'Oh, no. I was thinking about ice cream,' says Ayla."; -- 2 : unless location is gazebo: now ladybug prime is 1; now ladybugs is hero; [note plural! There is a single ladybug object and a plural one] say "'Do you know that there are people who can find which way other people went just by looking at the ground?' you say to Ayla.[paragraph break]'Wow,' says Ayla. She bends down to have a look at the grass. 'I think maybe some ladybugs were walking here,' she says.[paragraph break]'Hm,' you say."; otherwise: add 2 at entry 1 in Ayla comment storage; say "[one of]'Let's get back in the sun,' says Ayla.[or]'I wanna be in the sun again,' says Ayla.[or]'Come on,' says Ayla, pointing out of the gazebo.[or]'Come on!' says Ayla, pointing out of the gazebo again.[stopping]"; -- 3 : say "'I think a princess should have a castle to live in,' says Ayla.[paragraph break]'How about the treehouse?' you say.[paragraph break]'No,' says Ayla. 'I got hurt last time I went up there. Maybe I'll just be a ground princess.'"; -- 4 : say "'I'm looking forward to having fairy bread later,' says Ayla.[paragraph break]'That's Harriet's favourite, too,' you say."; -- 5 : say "'We still have to tip [list of untagged chasees],' says Ayla."; -- 6 : say "Ayla yawns. 'Sorry,' she says. 'I'm not really tired.'"; -- 7 : say "'It's so nice today,' says Ayla. You smile."; -- 8 : say "'This is the best party I ever went to,' says Ayla.[paragraph break]'It's good, isn't it?' you say."; -- 9 : say "'We should get a move on,' says Ayla.[paragraph break]'Yeah, our lunch can't wait forever,' you say."; -- 10 : say "'You look a bit hot,' you tell Ayla.[paragraph break]'My crown's making me hot,' she says. 'But I want to keep it on.'[paragraph break]'I feel like that about my hat,' you say." To deliver an Ayla endstage comment: if entry 1 of Ayla endstage storage is 50: remove entry 1 from Ayla endstage storage; lock the dice; sort Ayla endstage storage in random order; add 50 to Ayla endstage storage; [add reshuffle trigger to queue in last position] let N be entry 1 of Ayla endstage storage; rotate Ayla endstage storage backwards; [now entry 2 becomes entry 1, etc] if N is: -- 1 : say "[RandomLock]'I'm [if a random chance of 1 in 2 succeeds]getting [end if]hungry,' says Ayla."; -- 2 : say "[RandomLock]'I hope [if a random chance of 1 in 2 succeeds]we can[otherwise]we'll[end if] sit down soon,' says Ayla."; -- 3 : say "'I can't wait to eat after this,' says Ayla[first time]. She pats her tummy. You giggle[only]."; -- 4 : say "[RandomLock]'Tipping people [if a random chance of 1 in 2 succeeds]is not[otherwise]isn't[end if] easy[if a random chance of 1 in 2 succeeds]!' [otherwise],' [end if]says Ayla[first time].[paragraph break]'Nope,' you say[only]."; -- 5 : say "[RandomLock]'Let's hurry [if a random chance of 1 in 2 succeeds]up [end if]and win this game,' says Ayla."; -- 6 : say "[RandomLock][one of]'I love this dress,' says Ayla, admiring herself.[or]'Do you think my crown's beautiful? I do,' says Ayla.[or]'My mum made my dress,' says Ayla.[or][if a random chance of 1 in 2 succeeds]'Whew!' [otherwise]'Whew,' [end if]says Ayla, rubbing a drop of sweat off her nose[first time].[paragraph break]'Is that all you have to say?' you ask her. 'Yes,' she says. Then you both laugh[only].[or]'I'm trying not to get my dress too dirty[if a random chance of 1 in 2 succeeds] while we play[end if],' says Ayla.[in random order]"; -- 7 : say "'I wonder what your mum put in the lolly bags,' says Ayla[first time].[paragraph break]'I hope we'll be surprised,' you say.[paragraph break]'Surprises make me too excited. That's why my dad always says, [']No surprises for Ayla![']' says Ayla[only]."; -- 8 : say "'You know what I hate about big kids?' says Ayla. 'They can always run faster than me.'"; -- 9 : say "[RandomLock]Ayla yawns and pats her mouth. '[if a random chance of 1 in 2 succeeds]Oh, excuse [otherwise]Excuse [end if]me,' she says[first time]. You giggle[only]."; -- 10 : say "[RandomLock][one of]'We're [if a random chance of 1 in 2 succeeds]going to[otherwise]gonna[end if] win this game!' says Ayla.[paragraph break]'That's right,' you say.[or]'We're going to be the winners of hide and seek tip,' says Ayla.[in random order]". Section - Talk to black prince cicada Instead of talking to black prince cicada: say "The cicada isn't listening." Section - Talk to dark bird [for Harriet only] Carry out talking to dark bird: if made_a_racket of dark bird is 1: say "That bird might be small, but it made such an annoying noise that you don't want to talk to it. It might do it again."; otherwise: say "'Hey birdy! Hey birdy!' you say in a high voice. The bird chirps back with a noise that makes you cover your ears. Ugh!"; play_myna; now made_a_racket of dark bird is 1. Section - Talk to Demi Carry out talking to Demi: if topic_dog of Demi is 1: if parents_topic_dog is 1, now parents_topic_dog is 2; instead say "[one of]'Demi!' you say. 'Hey, hey -' You shake her shoulder. Demi turns to look at you. 'I had an idea. Let's ask mum and dad for a dog.'[paragraph break]'But I want to get a cat,' says Demi.[paragraph break]'A lady in the park showed me her dog,' you say, 'and it was so cute. It was cuter than any cat.'[paragraph break]'Hm,' says Demi. [thenshe clap return][or]'We can get a dog and then a cat later,' you say.[paragraph break]'Or maybe we could get the cat first,' says Demi with a grin. You giggle. [clap return][or][no more Demi dogtalk]'Okay, let's get a cat and a dog,' you say. 'And -'[paragraph break]'Shh,' Demi interrupts. She puts her hand on your mouth, making you mumble. 'We'll make a plan later,' she says. You nod, then you take her hand off your face.[paragraph break]'Yuck,' you say, 'your hand's all sticky.'[paragraph break]'I'm drinking lemonade,' says Demi. [thenshe clap return][stopping]"; if topic_dog of Demi is 2: say "'Demi, mum and dad say we can get pets when the back yard's cleaned up!' you almost shout at your sister.[paragraph break]'Yes!' says Demi, bouncing in her seat and making a fist. 'We're getting a cat first, right?'[paragraph break]'Maybe,' you say.[paragraph break]'Yes!' says Demi again. "; if Marion is in location: say "[paragraph break]'I already have a cat,' says Marion. 'Her name is Stars. Girl cats are much nicer than boy cats.'[paragraph break]'You're lucky,' says Demi."; otherwise: say thenshe clap return; now topic_dog of Demi is 0; rule succeeds; if heatquip of Demi is 0: now heatquip of Demi is 1; instead say "'How come you're so hot?' you ask Demi.[paragraph break]'We witches wear a lot of clothes,' she replies, tugging at her robes. [thenshe clap return]"; if vincequip of Demi is 0 and Vince is off-stage: now vincequip of Demi is 1; instead say "'I hope I can find Vince,' you say. 'He is very sneaky.'[paragraph break]'He's good at this game,' agrees Demi. [thenshe clap return]"; if girlquip of Demi is 0 and talked_to of Rose is not 0 and Rose_leaves of Rose is not 3: now girlquip of Demi is 1; instead say "'Demi,' you say, 'I met this weird girl in the park. She was counting like she was playing hide and seek, but she wasn't playing with anyone.'[paragraph break]'Hm,' says Demi. 'Did you invite her to play with us?'[paragraph break]'No,' you say. 'She said not to talk to her. She's not nice.'[paragraph break]'Hm!' says Demi again. She shrugs and has another sip of lemonade. [thenshe clap return]"; if spideryquip of Demi is 0 and Moreton West is visited: now spideryquip of Demi is 1; instead say "'You should see this spider in front of the gazebo,' you tell Demi. 'It's huge.'[paragraph break]'I bet it's a little garden spider,' says Demi. 'You're always saying stuff is huge when it's not.'[paragraph break]'No,' you laugh. 'Come and see.'[paragraph break]'I'll come later,' says Demi. She sips from her lemonade and says, 'Ah! Refreshing.' [thenshe clap return]". Carry out talking to Demi: if talked_to of Demi is less than 7, increment talked_to of Demi; if talked_to of Demi is 1: instead say "Demi looks at you and says, 'Shouldn't you be tipping people instead of hanging around here?'[paragraph break]'Don't be rude,' you say, and you give her a little poke with your fingers.[paragraph break]'Don't poke me, poke a pokepop,' says Demi. You both giggle. [clap return]"; if talked_to of Demi is greater than 1 and talked_to of Demi is less than 7: instead say "[RandomLock][one of]'Come on, Harriet,' says Demi, 'you need to get tipping.' [thenshe clap return][or]'I will be sixty-six by the time you find everyone,' says Demi. [thenshe clap return][or]Demi tells you, 'Get tipping, slowpoke!' [thenshe clap return][or]Demi pulls her hat down over her eyes when she sees you coming. You giggle. [clap return][or]Demi says, 'You need to find everyone so I can have a turn.' [thenshe clap return][in random order]"; instead say "'Do you have an exciting story to tell me?' asks Demi.[paragraph break]'I guess not,' you say.[paragraph break]'Then you should keep looking for people to tip instead of talking to me,' she says. [thenshe clap return]". To say thenshe clap return: if clapstatus is greater than 0 and clapstatus is less than 4 and clapgoof is 0 and Marion is in location: say "Then she goes back to her game with Marion."; otherwise: say line break. To say clap return: if clapstatus is greater than 0 and clapstatus is less than 4 and clapgoof is 0 and Marion is in location: say "[otherid] goes back to her game with Marion."; otherwise: say line break. To say no more Demi dogtalk: now topic_dog of Demi is 0. Section - Talk to Galah [for Demi only] Carry out talking to galah: say "[one of]'You're too noisy,' you tell the galah.[or]'I want you to be quiet from now on,' you tell the galah.[or]This bird doesn't look very smart, not like that raven. [first time]In fact, it looks a bit silly. [only]You don't feel like talking to it anymore.[stopping]" Section - Talk to Harriet Carry out talking to Harriet: if ladybugquip of Harriet is 0 and Marion is not home: now ladybugquip of Harriet is 1; now ladybug is hero; [note singular! There is a single ladybug object and a plural one] set pronouns from ladybug; instead say "You go over to your sister and say, 'Hi.'[paragraph break]'Look at this,' says Harriet. She points at her little finger, where you see a ladybug walking along. 'I call him Mr Ladybug.'[paragraph break]'How do you know it's a boy?' you ask.[paragraph break]Harriet shrugs. 'I don't know,' she says. 'I just think he is.'[paragraph break]'I think maybe it's a girl,' you say. 'See how cute she is?'[paragraph break]'Hm,' says Harriet, looking unsure. 'I already called it Mr Ladybug. I'm not changing the name.'[paragraph break]'Hello Mr Ladybug,' you say, bending your face down near the insect. Suddenly it takes off and flies away. 'See,' you say, 'she didn't like being called Mr Ladybug.'[paragraph break]'You dummy!' says Harriet."; if rosequip of Harriet is 0 and Rose is introduced and Rose_leaves of Rose is not 3: now rosequip of Harriet is 1; instead say "'Harriet,' you say, 'I met this mean girl called Rose in the park. She says she owns the park.'[paragraph break]'Then what happened?' says Harriet.[paragraph break]'She keeps turning around to count against a tree,' you say. 'I feel like playing a trick on her.'[paragraph break]'Don't get in trouble,' says Harriet.[paragraph break]'I won't,' you say. [clap return]"; if teamquip of Harriet is 0 and ayla_mode is 1: now teamquip of Harriet is 1; instead say "'Meet my new assistant, the princess,' you say to Harriet.[paragraph break]'That's me,' says Ayla. 'I'm her assistant and we're a team.'[paragraph break]Harriet smiles. [thenshe clap return]"; if mudquip of Harriet is 0 and player holds mudpie: now mudquip of Harriet is 1; instead say "'What d'you think of this?' you ask Harriet, then you quickly hold the mud pie right under her nose.[paragraph break]'Ahh!' cries Harriet, screwing up her face. 'Get it away! What's that?'[paragraph break]That face she just made was so funny. 'That's my mud pie,' you say.[paragraph break]'Keep it away from me,' says Harriet. 'If it gets on my dress, I'm telling.'[paragraph break]'You don't like my mud pie,' you say, pretending to be sad. Harriet laughs. [thenshe clap return]"; if peoplequip of Harriet is 0 and score is greater than 2: now peoplequip of Harriet is 1; now peepslist is list of tagged chasees; lock the dice; sort peepslist in random order; instead say "'How's it going?' asks Harriet.[paragraph break]'I've tipped [peepslist],' you say.[paragraph break]'Good!' say Harriet. [clap return]"; instead say "[one of]'Shouldn't you be tipping people?' says Harriet when she sees you coming. [thenshe clap return][or]'I don't like being bored,' says Harriet. 'You're making me wait for you to tip everyone.'[paragraph break]'I am not!' you say. [clap return][or]'Hey,' you say, before Harriet cuts you off.[paragraph break]'I only want to hear exciting stories,' says Harriet. [thenshe clap return][stopping]". Section - Talk to Jack To say Spider_Ejaculation: say "[RandomLock][one of]Super spider[or]Spider power[or]I'll save you[or]Yeah yeah yeah[or]Nobody can catch the Spiderman[or]Spider rocks[or]Rocka-rock-rock[or]I'm the best[or]Feel the speed[or]Let's spider[or]Everybody spider[or]It's spider time[at random]". To say faster_than_Spiderman: say "'I'm faster than Spiderman!' you sing to Jack, skipping around him.[paragraph break]'Quiet, you!' says Jack." To say Demi_gloats_Spiderman: say "Since you threw mud on Jack, you feel like leaving him alone for a little bit. Though just thinking about that look on his face again makes you want to giggle... You squash the sound back in your mouth with your hand." Carry out talking to Jack: if the player is Harriet: if Jack_Stunned is happening: say "'I got you, I got you!' you yell."; rule succeeds; [prevents flight1 message also going off] if Jack is flight1: if Jack is untagged: say "[one of]'I'm coming for ya,' you warn Jack.[paragraph break]To your surprise, Jack suddenly drops to all fours and scampers away from you. He can do that almost as fast as he can run.[paragraph break]'Spiderman suddenly sprang out of the way!' he shouts, wobbling back onto his feet.[or]You start to say something to Jack, but he just puts his fingers in his ears and starts yelling 'LA LA LA LA LA' while running around in circles out of your reach. Argh![or]Jack is ignoring anything you try to say to him now.[paragraph break]'[Spider_Ejaculation]!' he shouts.[stopping]"; [there is a moment when you've tagged him but he's still 'flight1' before he gets up, hence this check for his being untagged] otherwise: say "[faster_than_Spiderman]"; if Jack is returning, say "[faster_than_Spiderman]"; [only need one quote for 'returning' because it should be impossible to speak to him more than once as he returns to the picnic area.] if Jack is in Picnic, say "[one of]'Leave the poor thing alone,' you tell Jack as the cicada buzzes out of his way again. Jack doesn't seem to hear, and starts trying to creep up on the insect once more. You roll your eyes at him.[or]'Jack –' you begin.[paragraph break]Jack interrupts you. 'Hazza, will you hurry up and tip everyone so we can eat? I'm hungry.'[NO_HAZZA][or]Talking to Jack is becoming annoying. You should get back to tipping everyone.[stopping]"; if the player is Demi: if Jack_Stunned is happening: say "You open your mouth to say something..."; rule succeeds; [prevents flight1 message also going off] if Jack is flight1: if Jack is untagged: say "[one of]'Surrender, Spiderman!' you try in your most powerful witch voice.[paragraph break]'Never!' shouts Spiderman, bouncing around you and almost, but not quite, falling over.[or]You try to yell at Jack some more, but your voice catches in your throat and you end up coughing. Annoyingly, your hat falls over your eyes at the same time.[paragraph break]'Dummy witch!' says Jack, before laughing like crazy.[paragraph break]You frown and nudge your hat back up so you can see again.[or]You're tired of trying to talk to Jack. He's too nutty.[stopping]"; [there is a moment when you've tagged him but he's still 'flight1' before he gets up, hence this check for his being untagged] otherwise: say "[Demi_gloats_Spiderman]"; if Jack is returning, say "[Demi_gloats_Spiderman][line break]Jack gives you a suspicious look, then keeps walking."; [only need one quote for 'returning' because it should be impossible to speak to him more than once as he returns to the picnic area.] if Jack is in Picnic, say "[one of]You're quite sure Jack will never catch that cicada, and watching him try is kind of annoying.[paragraph break]'You're never going to catch it,' you tell him.[paragraph break]'Wait, wait!' he says, before jumping at the insect once again and missing by miles as it zips to a new perch.[paragraph break]What a dummy![or]You don't want to waste any more time on Jack.[stopping]". Section - Talk to lady To do the Stevie restless supergo: if lady is in location, say "'Oh well,' says the lady, 'Stevie's getting restless, so we're going to keep walking now. Bye bye.'"; pluralswitch lady; [makes 'them' and 'her' point to lady] now ladytarget is BelowWall; set the lady in motion. Carry out talking to lady when player is Harriet: if talked_to of lady is less than 8, increment talked_to of lady; if talked_to of lady is 1: know Stevie; now waittimer of lady is 5; [after initial contact, she'll start moving in 5 turns if you don't talk to her before that] instead say "'Hi,' you say to the lady, hoping to play with the dog.[paragraph break]'Oh, look at you!' says the lady. 'What a wonderful costume. You look beautiful.' You feel very pleased, but also shy. The little dog starts sniffing at your feet.[paragraph break]'This is Stevie,' says the lady. 'You can pat her if you want.'"; if talked_to of lady is 2, instead say "'Go on,' says the lady, 'don't be shy. Stevie likes you. Give her a pat.' The dog pokes at your shoelaces."; if talked_to of lady is 3, instead say "'She won't bite you or anything,' says the lady. She looks at her watch. The dog runs back and forth in front of you."; if talked_to of lady is 4: do the Stevie restless supergo; if talked_to of lady is greater than 4 and talked_to of lady is less than 8: delay the lady; if talked_to of lady is 5, instead say "'I want to get a dog,' you tell the lady. 'My sister and me have some fish now. They're a bit boring.'[paragraph break]'Yes, I think bigger animals like dogs and cats are more fun,' says the lady."; if talked_to of lady is 6, instead say "You have noticed that Stevie never stops sniffing around. 'Why do dogs keep sniffing everything?' you ask the lady.[paragraph break]'That's how they find out about the world,' she says. 'They probably learn more from their noses than from their eyes.'[paragraph break]'Oh,' you say."; if talked_to of lady is 7: say "'Can I pat her[if ever_patted of Stevie is 1] again[end if]?' you ask the lady.[paragraph break]'Sure,' she says. You go over to Stevie and pat her soft head. She sniffs your hands. Then you rub her head and neck. She looks happy."; now ever_patted of Stevie is 1; rule succeeds; if talked_to of lady is 8, instead say "[no-time]You've talked to the lady a few times now. You think you should get back to your game. You don't want your friends wondering if you're ever going to come and find them." Section - Talk to Marion Carry out talking to Marion: if player is Harriet: if Marion is untagged: if duel_mode is 0: if mounted of roundabout is 1: say "You hop off the roundabout to talk to Marion.[paragraph break]"; do the roundabout demount flag changes; say "[one of]'So, you're back,' [or]'Back again? [stopping]says Marion. 'Are you ready to duel with me now?'[paragraph break]"; let answer be yesno_answer_with_question "[Harriet leafcheck]Will you duel with Marion now? [bold type] (Y/N)[roman type]"; if answer is "NO": say "[line break]'Uh, no,' you say.[paragraph break]'You landlubber!' says Marion. 'Don't talk to me until you're ready.' Then she puts her hands on her hips and goes back to walking up and down the deck of her ship."; rule succeeds; if answer is "YES": if player holds leafmissile or player holds leaf, do the preduel leaf disposal; now duel_commence_fix of Marion is 1; [this just adds a linebreak fix in 'commence Harriet's duel] commence Harriet's duel; rule succeeds; otherwise if duel_mode is 1: if duel_position is 1 or duel_position is 4: [soundsafe] say "You open your mouth to speak just as [do Marion's zap]Marion's zap hits you. Whoops![paragraph break]"; instead do the Harriet dp1kill; if duel_position is 2: [soundsafe] now duel_text is "'You're the landlubber!' you shout at Marion, not sure what it means, but you are sure it will bug her. Marion lowers her sword and begins to run across the clearing.[paragraph break][hatfall fun]."; abide by the pirate hat loss rule; if duel_position is 3: [soundsafe] now duel_text is "'Chicken!' you yell. [Marion reaches the hill][do Marion's zap]'"; give Marion pose 5; advance the duel; rule succeeds; if duel_position is 5: [soundsafe] say "'I see you!' you shout. Marion immediately puts her head down again. Is she going to stay there?[paragraph break]You slowly lower your wand, and… 'Zap!' yells Marion, appearing so quickly from behind the hill that it makes you jump. Her sword is pointed right at you. You have to admit that she outsmarted you.[paragraph break]"; say combo delay 1; instead do the Harriet dp1kill; otherwise if Marion is tagged: unless Marion is home: say "'I'll be going on a pirate holiday now,' says Marion.[paragraph break]'Oh, where are you going to?' you ask.[paragraph break]'No questions!' says Marion."; now described_her_actions of Marion is 1; otherwise: instead say Marion concentrating on clapping. To say Marion concentrating on clapping: say "[RandomLock]'[if a random chance of 1 in 2 succeeds]Don't talk to me now, [end if]I'm concentrating on my clapping,' says Marion." Carry out talking to Marion: if player is Demi: if duel_mode is 1: if duel_position is 1: [soundsafe] say "'Stop!' you shout, but Marion ignores you and makes it to the roundabout. "; do Marion's spinaround victory; rule succeeds; if duel_position is 2 or duel_position is 4 or duel_position is 5: [soundsafe] say "As you open your mouth to speak to Marion, her [do Marion's zap]zap hits you."; instead do the Demi dp1kill; if duel_position is 3: [soundsafe] say "'Stop hiding, pirate!' you shout. Marion grabs the opportunity to zap you right between the eyes - [do Marion's zap]'Zap!'"; instead do the Demi dp1kill; if duel_position is 6: [soundsafe] say "'Ready to give up now, Red Marion?' you ask. Marion responds by saying [do Marion's zap]'Zap!' and poking her sword at you so fast that you barely see it moving."; instead do the Demi dp1kill; otherwise if Marion is tagged: unless Marion is home: say "'Wanna join up with me, pirate?' you ask Marion.[paragraph break]'Pirates don't join,' says Marion.[paragraph break]'Hm,' you say."; now described_her_actions of Marion is 1; otherwise: instead say Marion concentrating on clapping. Section - Talk to old man Carry out talking to old man: say "Mum and dad told you not to talk to strangers, but you think it's okay to answer this man's question.[paragraph break]'We're having a picnic at the picnic ground,' you explain. 'It's my birthday party and I'm playing hide and seek tip.'[paragraph break]'Well, please watch where you're going,' says the man. 'You almost ran into me.' He walks away the way you came.[paragraph break]That wasn't true, what he said, was it? You weren't even moving when he came around the corner. He wasn't very nice, but he's gone now."; evacuate the old man. Every turn when old man is in location: increment impatience of old man; if impatience of old man is 2: say "The old man says, 'Pay attention to me when I'm speaking to you, young lady.'"; if impatience of old man is 3: say "The old man says, 'You should know that you're terribly rude,' and then he walks away the way you came.[paragraph break]What a grouch! You're glad he's gone."; evacuate the old man. To evacuate the old man: now last location of old man is location; now old man is followable; now old man is off-stage. Section - Talk to orb weaver spider Carry out talking to orb weaver spider: if the player is Harriet: say "[one of]'You're hairy,' you tell the spider.[or]'You're ugly,' you say to the spider.[or]'You're a big, hairy ugly!' you yell at the spider. It doesn't move.[or][no-time]You don't have anything else to say to the spider. Besides, it's clear that it isn't going to move, no matter what you do or say.[stopping]"; otherwise: say "[one of]'Hi,' you say to the spider. 'Could you move, please?'[paragraph break]The spider stays perfectly still.[or]'A lot of people aren't listening to me, today,' you explain to the spider. The spiderweb wobbles a bit. This probably means the spider agrees with you.[or]'Could I move your web out of the way?' you ask the spider.[paragraph break]He doesn't move, so you think he probably doesn't mind one way or the other.[or]You thank Mister Spider for not causing any trouble. Now it's time to brush his web out of the way.[or]You don't need to keep talking to the spider. He already gave you permission to move his web out of the way so you can get into the gazebo.[stopping]". Section - Talk to parents pridequip, cakequip, parentrosequip, parentpeoplequip, duelquip, parentspideryquip, parentteamquip, yellquip are number variables. [global] Section - Talk to mum Carry out talking to mum: abide by the parent conversation tree rule. This is the parent conversation tree rule: if player is Harriet: if parents_topic_dog is not 0: if parents_topic_dog is 1, instead say "[no-time]You consider asking [noun] right now about getting a dog, but you think you should tell your sister your idea first."; if parents_topic_dog is 2: say "'"; if noun is mum: say "Mum,' you say, 'can we get a dog? And Demi wants a cat.'"; otherwise: say "Dad,' you say, 'can we get a dog? And also, Demi wants a cat.''[paragraph break]'Ah,' says dad. 'You two have got it all worked out, haven't you?' He turns to mum."; say "[line break]'Well actually, Harriet,' says mum, 'dad and I were talking about this just the other night. As soon as we've finished cleaning up the back yard, we think we'll be ready to look into getting some pets.'[paragraph break]'Yes!' you say. 'Thanks mum, thanks dad!'"; now topic_dog of Demi is 2; now parents_topic_dog is 0; rule succeeds; if pridequip is 0: now pridequip is 1; instead say "'I'm six!' you shout at [noun]. Then you sing, 'I'm six, I'm six, I'm siiiix.'[paragraph break][The Noun] claps at your performance. 'Thank you everyone,' you say."; if cakequip is 0: now cakequip is 1; instead say "'[The Noun],' you say, 'can you [if noun is dad]get mum to [end if]give me the biggest slice of birthday cake this afternoon?'[paragraph break]'I heard that!' shouts your sister.[paragraph break]'I think we'll try to make all the slices the same size,' says mum."; if parentrosequip is 0 and Rose is introduced and Rose_leaves of Rose is not 3: [if it's 3 it means we are aware that she's gone] now parentrosequip is 1; say "'[The Noun],' you say, 'I met this weird girl in the park. She's counting on her own.' "; if noun is dad: say "Dad looks at mum.[paragraph break]"; otherwise: say paragraph break; instead say "'Oh,' says mum. 'Do you think she might want to join your game?'[paragraph break]'I don't like her,' you say. 'She told me to be quiet.'[paragraph break]'Maybe you should just stay away from her, then,' says mum."; if parentpeoplequip is 0 and score is greater than 2: [gumby test me!] now peepslist is list of tagged chasees; now parentpeoplequip is 6 minus score; lock the dice; sort peepslist in random order; instead say "'I've tipped [score in words] people already,' you tell [noun]. 'I've tipped [peepslist].'[paragraph break]'Good work,' says [noun]. 'Only [parentpeoplequip in words] to go.'"; now parentpeoplequip is 1; if duelquip is 0 and Marion is tagged: now duelquip is 1; instead say "'[The Noun]!' you say, 'Marion and I had a duel, and I won. And I never did a duel before.'[paragraph break]'Oh, what did you have to do?' asks [noun].[paragraph break]'You have to zap the other person before they zap you. We did it at the roundabout.'[paragraph break]'Just make sure you don't zap any people who don't want to be zapped,' [that-those of noun] says.[paragraph break]'Okay,' you say."; instead say "[one of]'You should try to finish your game,' says [noun]. 'We won't be eating until you do.'[or]'[The Noun]! [The Noun]!' you say.[paragraph break]'Yes?' says [noun], stopping [its-their of noun] conversation with [if noun is mum]dad[otherwise]mum[end if].[paragraph break]'How are you?' you say.[paragraph break]'Harriet!' says [noun], and you laugh. [if noun is dad][paragraph break]Mum says, [end if]'Come on, your friends will want to eat soon. We only want to hear from you if you finish your game or if you have something interesting to say.'[paragraph break]'Okay mum,' you say.[or]You don't have anything new to tell mum and dad for now.[stopping]"; if player is Demi: if pridequip is 0: now pridequip is 1; instead say "'This is going to be a short game,' you tell [noun], 'because I'm very good at finding people.'[paragraph break][if noun is mum]'Is that so?' says mum [otherwise]'I bet you are,' says dad [end if]with a smile."; if parentrosequip is 0 and Rose is introduced and Rose_leaves of Rose is not 3: now parentrosequip is 1; instead say "'[The Noun],' you say, 'I met a funny girl in the park called Rose.'[paragraph break][if noun is mum]'Rose. That's a nice name,' says mum. 'What's funny about her?'[otherwise]'Oh, why is she funny?' asks dad.[end if][line break]'She thinks she owns the park,' you say.[paragraph break]'Well, you know that she doesn't, of course,' says [noun].[paragraph break]'Of course,' you say, waving your hand."; if parentpeoplequip is 0 and score is greater than 2: now parentpeoplequip is 1; let X be indexed text; now X is "[score in words]"; now X is "[X]" in title case; instead say "'Guess how many people I've tipped,' you say to [noun].[paragraph break]'[X]?' says [noun].[paragraph break]You gasp. 'How did you know?' you ask.[paragraph break]'I have my ways,' says [noun]. You think for a moment. Then you realise that all the people you've tipped are right here. You look at [noun] and [that-those of noun] smiles. 'See, that wasn't really a very impressive trick of mine, was it?' [that-those of noun] says.[paragraph break]'Nope,' you say."; if parentspideryquip is 0 and orb weaver spider is off-stage: now parentspideryquip is 1; instead say "'There was a big spider in front of the gazebo,' you tell [noun], 'but I moved it out of the way for everyone.'[paragraph break]'Demi, you shouldn't be touching any spiders,' says mum. 'You could get bitten. Come and ask dad or me first if there's a spider.'[paragraph break]'It's okay,' you say, 'I only touched its web.'"; if parentteamquip is 0 and ayla_mode is 1: now parentteamquip is 1; instead say "You put your arm around Ayla's shoulder and say to [noun], 'We're a team.' Ayla smiles.[paragraph break]'A princess and a witch, eh?' says dad.[paragraph break]'Oh, look at you,' says mum. 'Wait here, I'm going to get my camera.'[paragraph break]'I think it's still in the car,' says dad.[paragraph break]'No pictures!' you say, waving your arms at mum. Ayla giggles.[paragraph break]'I'll take one of the two of you later,' says mum. 'Just make sure to remind me.'[paragraph break]'I'm not reminding you,' you say.[paragraph break]'Demi!' says dad.[paragraph break]'I'll remind you, Mrs Leitner,' says Ayla.[paragraph break]'Well thank you, Ayla,' says mum. You roll your eyes at Ayla."; if duelquip is 0 and Marion is tagged: now duelquip is 1; instead say "'I won the duel!' you tell [noun].[paragraph break]'You weren't fighting with someone, were you?' asks [noun].[paragraph break]'Just Marion,' you say. 'It was awesome.' [The Noun] looks at [if noun is mum]dad [otherwise]mum [end if]and shrugs."; if yellquip is 0: now yellquip is 1; instead say "'The witch is here, the witch is here!' you shout at [noun].[paragraph break]Mum makes a face like her ears hurt. 'Could the witch please stop shouting and only talk to us if she has something important or interesting to say? We can't have lunch until you tip everyone.'[paragraph break]'Humph!' you say."; instead say "You don't have anything new to tell mum and dad for now." Section - Talk to dad Carry out talking to dad: abide by the parent conversation tree rule. Section - Talk to Pia To say Demi_catcall: say "[RandomLock]'Here [one of]pussycat[or]puss puss puss[purely at random]!' you say in a high voice. Pia [if a random chance of 1 in 2 succeeds]just [end if]smiles and shakes her head.[paragraph break]"; say "[first time]You have a little think. [only][one of]Pia[or]She[stopping] always manages to escape from you. Maybe you could chase her someplace where she would be cornered?" To say see_Pia_soon: if player is Harriet: say "You say, 'I will see you for lunch, as soon as I've tipped everyone.'[paragraph break]Pia says 'Yeah, seeya,' and waves at you."; now described_her_actions of Pia is 1; if player is Demi: say "[one of]'You're tricky,' you say, 'but I'm trickier.'[or]'Whatcha gonna do, pussycat?' you say.[stopping]"; if location is not Gazebo: say Pia's departure story for Demi. To say Pia's departure story for Demi: if location is not Gazebo, say line break; say "Pia says, 'I'm going back to the picnic area now, Demi. See you soon.' "; if location is Gazebo: say "She walks south out of the gazebo."; otherwise: say line break. Carry out talking to Pia: if player is Harriet: if Pia_Stunned is happening, instead say "Still excited from flying through the air, you look at Pia and say, 'Wow.'[paragraph break]Pia giggles."; [prevents flight1 message also going off] if Pia is flight1: if Pia is untagged: instead say "[one of]'Meow!' you say in a high voice.[paragraph break]Pia giggles.[or]'Come on Pia, let me catch you,' you say.[paragraph break]Pia shakes her head.[or]'I'm getting tired!' you say.[paragraph break]Pia just shrugs. She's too smart to fall for any tricks like that. You're just going to have to catch her.[or]You realise Pia's too smart to listen to anything you might say to try to trick her. You're going to have to be persistent and find a good moment to tip her.[stopping]"; [there is a moment when you've tagged her but she's still 'flight1' before she gets up, hence this check for her being untagged] otherwise: instead say "[see_Pia_soon]"; if Pia is returning, instead say "[see_Pia_soon]"; [only need one quote for 'returning' because it should be impossible to speak to her more than once as she returns to the picnic area.] if Pia is in Picnic: if Ayla is home and hair conversation of Ayla is 0: now hair conversation of Ayla is 1; instead say "'Ayla is good at this,' says Pia.[paragraph break]Ayla smiles. 'I can do your hair later if you want, Harriet,' she says.[paragraph break]'Yeah, thanks,' you say. She nods her head while continuing to concentrate on what she's doing."; say "[one of]'This game is hard,' you say.[paragraph break]'Come on Harriet,' Pia says with a smile. 'You can find everyone.'[or]Pia shoos you away. 'Get back to work!' she says.[stopping]". Carry out talking to Pia: if the player is Demi: now Demi_acknowledged of Pia is 1; if player is in gazebo and Pia is untagged, instead say "[one of]'You should have joined me, pussycat,' you say.[paragraph break]Pia shakes her head and keeps her eyes on you.[or]'It's too late now,' you say.[paragraph break]Pia remains silent.[or][no-time]Pia's still not talking. It's time to tip her![stopping]"; [Demi will never be able to see Pia during Pia_stunned, so need no special msg for that] if Pia is flight1: if Pia is untagged: say "[one of]'Join me, pussycat,' you say. 'As witch and cat, we could rule the world together!'[paragraph break]Pia smiles and shakes her head.[paragraph break]'Come on!' you say.[or]'Are you sure you don't want to join me?' you ask.[paragraph break]Pia holds up her hands like claws and makes a cat noise – 'ROWRRR!'[paragraph break]You laugh, then Pia laughs as well.[or][Demi_catcall][stopping]"; [there is a moment when you've tagged her but she's still 'flight1' before she gets up, hence this check for her being untagged] otherwise: say "[see_Pia_soon]"; if Pia is returning, say "[see_Pia_soon]"; [only need one quote for 'returning' because it should be impossible to speak to her more than once as she returns to the picnic area.] if location is Picnic: if ayla_mode is 0: if Ayla is in location, instead say "[no-time]You can't ask Pia to join you while Ayla's here. That wouldn't be nice. You're starting to think you should just ask Ayla."; [this combo only possible if you rejected Ayla outside the maze] instead say "[one of]'How about joining me now, cat?' you ask Pia. Pia smiles her mysterious smile and shakes her head.[or][no-time]You know that Pia-cat doesn't want to join you to rule the world, so you don't need to talk to her any more right now.[stopping]"; otherwise: [ie ayla_mode is 1] say "[one of]'Meow!' you say.[paragraph break]'Meow meow!' says Ayla. She pats Pia's headband. Pia giggles.[or]'I want to get a cat,' you tell Pia.[paragraph break]'My big brother has a snake,' says Pia.[paragraph break]'Oh, a snake?' says Ayla, making a face. 'I hate snakes. Cats are nice, though.'[or]'You don't want to join us as well, do you?' you ask Pia. Pia smiles and shakes her head.[paragraph break]Rats![or][no-time]You think you've already spent enough time talking with Pia.[stopping]" Section - Talk to raven Carry out talking to raven when player is Demi: if player is in Hedge Maze: if talked_to of raven is less than 4, increment talked_to of raven; if talked_to of raven is 1: say "'Did one of my friends go in the maze?' you ask the raven. He flaps his wings at you once and calls out. That sounded like 'yes' to you.[paragraph break]'Thanks!' you say."; play_random_raven; rule succeeds; if talked_to of raven is 2, instead say "'Could you show me where they went, please?' you ask the raven. The bird remains silent. Maybe he knows your game wouldn't be as much fun if he helped you too much. He's a smart bird."; if talked_to of raven is 3: say "[no-time]The raven won't give you any more help for now. It's about time for you to go west into the maze, but first you decide to try talking to the raven in his own language."; increment the talked_to of raven; if talked_to of raven is 4: instead try playing with raven; if player is in InMaze: if talked_to of raven is greater than 1: say "[one of]You say to the raven, 'Um, maybe I could use some help after all.'[paragraph break]The raven doesn't make a sound. Rats![or][no-time]It's probably smarter to be quiet now, so anyone hiding in the maze won't hear you.[stopping]"; otherwise: say "[one of]You ask the raven, 'Which way did that person go?'[paragraph break]His eyes twitch just once, but he doesn't say anything.[paragraph break]'Aha! You blinked one time,' you say, 'so does that mean they went left?' You wait for the raven to do something else, but he's like a statue now. 'How about right?' you try. Still no reply.[paragraph break]Rats![or]It's probably smarter to be quiet now, so anyone hiding in the maze won't hear you.[stopping]". Carry out talking to raven when player is Harriet: if talked_to of raven is less than 4, increment talked_to of raven; if talked_to of raven is 1: say "'Go away!' you say to the raven. 'I don't like you.' The raven's head turns a little bit, but he doesn't do anything else."; if Jack is in location: say "[line break]'Don't listen to Hazza,' says Jack, 'she's a bird brain.' Then he starts making squawking noises. "; if Pia is in location: say "Pia giggles."; otherwise: say line break; say NO_HAZZA; if talked_to of raven is 2: say "'Shoo!' you try, waving your arms. The raven still doesn't move. You start to get the feeling he likes being where he is."; if Jack is in location, say "[line break]Jack waves his arms at you and says 'Shoo, fairy! Shoo!' You try to ignore him."; if talked_to of raven is 3: say "'You win,' you say to the raven. "; if Pia is in location, say "Pia smiles. "; say "You've decided you'll leave the bird alone for now."; if talked_to of raven is 4: say "[no-time]You already decided you would leave the raven alone." Section - Talk to Rose To know Rose: now Rose is proper-named; now printed name of Rose is "Rose". To say no_more_Demi_Rose_talk: say "[no-time]You don't want to talk to her any more. She's got problems" Carry out talking to Rose: if the player is Harriet: increment the talked_to of Rose; if the talked_to of Rose is 1: if count hassle is 0: say "'Hello,' you say to the girl. 'What's your name? Are you playing hide and seek?'"; otherwise: say "'What's your name?' you ask the girl. 'Are you playing hide and seek?'"; say "[line break]The girl stops counting and turns to look at you. Her lips twist on her grouchy face.[paragraph break]'I'm Rose,' she says. 'Don't bug me, fairy girl[if count hassle is 0], I like counting.'[otherwise].'[end if][line break]And with that she turns back to the tree and continues to count. What a rudey!"; play_peace_music; know Rose; otherwise if the talked_to of Rose is 2: say "'So you're really not playing hide and seek?' you ask Rose.[paragraph break]Rose makes a groaning sound and turns to face you again. Her cheeks are red. [paragraph break]'I told you not to talk to me, shrimp.'[paragraph break]You feel afraid of her, but also annoyed. She's weird. What is she doing? She turns back to the tree. You wonder how old she is."; otherwise if the talked_to of Rose is 3: say "'I'm Harriet and I'm six,' you say. 'How old are you?'[paragraph break]Rose lets out a little scream. Suddenly she's in front of you and grabbing your shoulders – she gives you a great big shove..."; pause_only; say "[paragraph break]– SPLAT![paragraph break]You land right in the cold, slimy mud. It runs and splashes everywhere. Your costume is ruined.[paragraph break]Your lip wobbles, then you scream as Rose runs away."; play_fallintomud_fx; play_lose_music; pause_only; say "[paragraph break][first custom style]*** YOU'RE TOO UPSET TO KEEP PLAYING – YOUR DAY IS RUINED! ***[normal style][line break]"; end the story; if the player is Demi: if sentinel of Rose is greater than 0: if the talked_to of Rose is greater than 2, instead say "[no_more_Demi_Rose_talk]."; instead say "[RandomLock][one of]'Hey[or]'Rose[or]'Hey you[at random],' you say, but Rose acts like she [one of]can't[or]doesn't[purely at random] hear you."; increment talked_to of Rose; if the talked_to of Rose is 1, say "'Staring is rude,' you say.[paragraph break]Rose copies your voice – [italic type]'Staring is rude! Staring is rude!'[roman type][line break]"; if the talked_to of Rose is 2, say "'Don't copy!' you say.[paragraph break][italic type]'Don't copy!'[roman type] she copies."; if the talked_to of Rose is 3, say "'This isn't even your park,' you say. 'What are you doing counting to yourself? You could've played with my friends and me, but now I don't want you to.'[paragraph break]Rose looks unhappy at this. Then she clenches her fists.[paragraph break]'Go away!' she shrieks."; if the talked_to of Rose is greater than 3, say "[no_more_Demi_Rose_talk]." Section - Talk to Sam To recover_Sam: if fatigue of Sam is 1, say ".. Ah, it looks like he's okay now."; otherwise say line break. Carry out talking to Sam: if player is Harriet and talked_to of Sam is 0: if Sam is returning or Sam is home: say "'Hey, what does forsooth mean?' you ask Sam.[paragraph break]'My mum told me knights say it,' says Sam."; increment talked_to of Sam; rule succeeds; if Sam is returning, instead say "[if player is Harriet]'You should have brought your horse.' you say to Sam. [paragraph break]'Us knights don't take advice from fairies,' he replies.[otherwise]'Witches rule!' you say to Sam. He sighs. 'Cheer up!' you say."; if the player is Harriet: if Sam is stunned, instead say "Sam won't talk - he's trying to get his breath back."; if player is in picnic, instead say "[one of]You tap Sam on the shoulder.[paragraph break]'Let me rest,' he says.[or]You tap Sam on the shoulder again.[paragraph break]'Mnnn, get off, I'm having a rest!' he says.[or]You better leave him to his rest.[stopping]"; if fatigue of Sam is 3: if ever_begged of Sam is 1, instead say "[no-time]You're not going to fall for that mercy trick again!"; say "'Do you give up?' you ask Sam.[paragraph break]He squats there puffing and panting for a few moments, then says, 'Yes...'[paragraph break]... and then he bounces to his feet and yells, 'NO! I changed my mind!' – and with that he takes off for the other side of the tree again.[paragraph break]What a dirty trick!"; decrement times_tipped of Sam; [to negate the 'increment' that's part of the treerun routine] treerun Sam; now ever_begged of Sam is 1; rule succeeds; if the talked_to of Sam is 0, increment the talked_to of Sam; if the talked_to of Sam is 1: say "[one of]'What does forsooth mean?' you ask Sam.[or]'What is forsooth?' you ask Sam again.[stopping][line break]"; if fatigue of Sam is less than 1: say "He shrugs. 'I dunno, my mum told me that knights say it,' he says. 'Forsooth!'"; increment the talked_to of Sam; rule succeeds; say "[RandomLock]Sam doesn't [one of]answer[or]respond[or]reply[purely at random]. [one of]He's trying to get his breath back.[run paragraph on][or]He's still trying to get his breath back.[run paragraph on][stopping]"; recover_Sam; now cue_exhausted of Sam is 1; rule fails; if the talked_to of Sam is 2: say "'Forsooth,' you say to yourself, trying the word out. Then you turn to Sam and say, 'Forsooth forsooth forsooth! I'm gonna tip ya, forsooth!'"; increment the talked_to of Sam; rule succeeds; if the talked_to of Sam is 3: if the cue_exhausted of Sam is 1: say "[one of]'Fairies don't run out of breath,' you say.[or]'Fairies don't run out of breath,' you say again.[stopping][line break]"; if fatigue of Sam is less than 1: say "'Knights get tired,' Sam explains. 'That's why they ride horses, silly.'[paragraph break] 'Oh,' you say. That makes sense."; now cue_exhausted of Sam is 2; rule succeeds; say "Sam doesn't say anything – he's too busy huffing and puffing.[run paragraph on]"; recover_Sam; rule succeeds; instead try forsoothing; if the player is Demi: if player is in picnic: say "[one of]'How are you going, my prisoner?' you ask Sam.[paragraph break]'Prisoner sleepy,' he mumbles, and puts his head on the table.[or]Sam makes a loud snoring noise when you come towards him. You giggle.[or]'Just checking on my prisoner again,' you say.[paragraph break]'I'm hungry,' Sam says. 'Finish this game so we can eat.'[stopping]"; if tired_pesters of Sam is less than 4, increment tired_pesters of Sam; if tired_pesters of Sam is 3 and Jack is in picnic, say "[line break]'I'm hungry too!' Jack shouts."; rule succeeds; if player is in Gazebo and Sam is untagged, instead say "[one of]'That's right,' you say, 'you will have to live in this tower the rest of your life!'[paragraph break]'Nooo!' Sam cries.[paragraph break]You can't help but give a wicked laugh - 'Hahahaha!'[if ayla_mode is 1][line break]Ayla laughs as well, but not so wickedly.[end if][or]You realise that If you don't hurry up and tip him, all of your talk will be for nothing.[stopping]"; if Sam is tagged, instead say "'Now you know how great witches are,' you say to Sam."; if talked_to of Sam is less than 3, increment talked_to of Sam; if talked_to of Sam is 1: say "'A knight can't escape from a witch,' you say. 'I have the magic and the brains.'[paragraph break]Sam looks worried."; rule succeeds; if talked_to of Sam is 2: say "'So, because I'm so great, you should just give up now,' you tell Sam, creeping towards him.[paragraph break]Suddenly he seems to have a burst of courage. 'Never, forsooth!' he shouts, then he "; if location is Moreton West or location is Moreton East: treerun Sam; say "races away to the other side of the tree by jumping and climbing over its giant roots.[oh_rats]!"; rule succeeds; now chaseroom is Moreton West; [if you aren't in one of the tree rooms, you must be in GiantGarden, BelowWall or Gazebo - in which case, Sam flees to Moreton West] activate chaseway; say "runs away to the [chaseway].[oh_rats]!"; send Sammy to Moreton West; rule succeeds; if talked_to of Sam is 3, say "You start to explain to Sam again about how he should give up, but he shakes his head and ignores you.[paragraph break]'I'm not listening to you any more,' he says, 'You're too tricky.'" To send Sammy to Moreton West: now Sam is followable; now last location of Sam is location; now Sam is in Moreton West. To say oh_rats: say "[line break]Rats, he almost fell for your trick". [Note - I decided that only Demi will say 'Rats' in the game. Never Harriet.] Section - Talk to Stevie Carry out talking to Stevie: if player is Harriet: if talked_to of lady is 0: say "'Hi doggie!' you say to the dog. [run paragraph on]"; instead try patting Stevie; if talked_to of lady is less than 4: say "You look in the dog's face and say, 'Hello Stevie, how are you?' Stevie wags her tail and [happydog sound]barks happily.[line break]"; instead try patting Stevie; delay the lady; [4+ means lady has begun to move about] say "[one of]'What big ears you have,' you tell Stevie, but she doesn't seem to be paying attention to you.[or]'Sniff sniff sniff,' you say. The dog never stops sniffing things. You put your face near hers and say it again: 'Sniff sniff sniff.' She sniffs your face, which tickles.[or]'I would like a dog just like you,' you tell Stevie. She wags her tail. The lady smiles at you.[or][no-time]You think you've spent enough time talking to the dog, now.[undelay the lady][stopping]". To say undelay the lady: if lady is flight1: if delay of lady is 2, decrement delay of lady. Carry out talking to Stevie: if player is Demi: if ayla_mode is 0: instead say "[one of]'Hi hi hi,' you say to [the Stevie]. The dog barks and [dogsnuffle]snuffles. What does that mean, you wonder?[or]'Who is your owner?' you ask [the Stevie]. The dog barks some [happydog sound]more.[paragraph break][italic type]'Sorry, I don't understand you,'[roman type] you say loudly. This conversation isn't going well at all.[or]'Fetch!' you say. [The Stevie] looks at you. 'Play dead! Roll over!' The dog wags its tail. 'Don't you know any dog stuff?' you say. 'You're kind of a dummy, aren't you?'[or][no-time]The dog isn't smart enough to talk to you, you've decided.[stopping]"; otherwise if extra_status of Stevie is 2: instead say "[one of]'You're okay!' you say to [the Stevie]. [happydog sound]The dog barks.[or]'Bark woof bark!' you say, then you cough, because your dog voice makes your throat hurt. Ayla giggles at you.[or][no-time]You'd rather play with the dog than keep trying to talk to it. You don't know what to say.[stopping]"; otherwise if extra_status of Stevie is 4: if found_him of Vince is 0: instead say "'What's up, [if name_is_known of Stevie is 1]Stevie[otherwise]doggy[end if]?' you say. Why does [dog she it] keep sniffing around [Vince spot], you wonder."; otherwise if Vince is untagged: instead say "[no-time]You have a feeling the dog might warn Vince somehow if you talk to [dog she it] now."; otherwise: instead say "'You're not so dumb, are you?' you say to [the Stevie]. The dog looks around with a dumb look on [dog her its] face."; otherwise if extra_status of Stevie is 5: instead say "[no-time][The Stevie] has already helped you out today, and [dog she it] looks tired now. You'll let [dog her it] be." To say dogsnuffle: play_dogyapnoise. Section - Talk to Vince Carry out talking to Vince: if Vince is untagged, instead say "[no-time]You should tip Vince before you say anything, otherwise he'll know you're coming and he might run away."; if player is Harriet: if Vince is not home, instead say "'We have a Wii spy game called MySims Agents,' you say.[paragraph break]'Oh, I love that game,' says Vince.[paragraph break]'It's a bit too hard for me,' you say."; now spyness of Harriet is 1; instead say "[one of]'What are you doing?' you ask Vince.[paragraph break]'Shhhh,' he says. 'I'm on a secret mission.'[paragraph break]'Oh,' you say.[or]'Can I join you?' you ask.[paragraph break]'Shhhh!' says Vince. 'Keep your voice down. You don't know much about spying, do you? Maybe after lunch I'll show you how to be a spy.'[paragraph break]'Yes!' you say, making a fist.[paragraph break]'Keep your voice down!' he says again.[paragraph break]'Sorry,' you whisper.[or][no-time]You are curious about Vince's spying, but he won't let you join him until after lunch. If you talk to him again now, you know he'll just tell you to be quiet.[stopping]"; if player is Demi: if Vince is not home, instead say "'Off you go, spy,' you say. 'We have more people to find.'[paragraph break]'Yes, we have important work,' says Ayla, straightening her crown."; instead say "[one of]'Are you spying?' you ask Vince.[paragraph break]'Shh,' he whispers. 'Yes, I am.'[paragraph break]'What did he say?' Ayla asks. 'I didn't hear.'[paragraph break]'Quiet!' says Vince. 'You're ruining my spying.'[paragraph break]'Oh, sorry,' whispers Ayla.[paragraph break]'What did you say?' asks Vince.[paragraph break]'Shh!' you tell Vince. Vince giggles, then you all giggle and you all say, 'Shhhh!'[or][no-time]If you talk to Vince again, he'll tell you to be quiet again. You will leave him alone so he can keep on spying.[stopping]". Part - Tear / Cut / Rip Table of Untearables item picnic table giant stone koala statue ladder1 ladder2 tgbushes wallbottom big yellow rock grey stone wall stone pole grass roof beachballs metal grate smaller hedges taller hedges green seat gazeboroof gazebofence gazebotable steering wheel hedgea hedgea branches leaves tgtrees tgtrees branches moreton bay fig tree moreton bay fig tree branch branches thtree thtree branches unhappy trees unhappy treebranches treesa treesa branches witchtrees witchtree branches Understand "tear" as vague tearing. Understand the command "cut" as something new. Understand the commands "cut", "rip" as "tear". vague tearing is an action applying to nothing. Carry out vague tearing: say "[no-time][line break][second custom style]<< You also need to say what you want to [current_command]. For example, if you saw a statue covered in weeds, you could try typing "; say capitalised "[current_command] "; say "WEEDS. >>[normal style][line break]"; rule succeeds. tearing is an action applying to one thing. Understand "tear [something]" as tearing. Check tearing: if noun is bunch leaves or noun is leaf or noun is leafmissile: now current_command is "shred"; instead try squashing noun; if noun is mudpie: instead say "[no-time]The mud pie is too sloppy. You can't break it up into smaller pieces."; if noun is player or noun is part of player, instead say how nonsense; if noun is a person, instead say "[no-time]You can only [current_command] things, not people or animals."; if noun is enclosed by a nottheplayer person, instead say "[no-time][That-Those Of Noun] [is-are of noun]n't yours."; if noun is enclosed by a person, instead say "[no-time][if the player is Harriet]No, you don't want to mess up your costume.[otherwise]Wrecking your own stuff is a dumb idea."; if noun is spiderweb: instead try brushing away noun; if noun is tablecloth: instead say "[no-time]You don't want to [current_command] the tablecloth."; if noun is yellow flowerbeds or noun is part of yellow flowerbeds or noun is giant garden bed or noun is giantflowers or noun is a megaflora or noun is flowerbeds or noun is flowers: instead say "[no-time]You don't want to mess up the flowers."; if noun is jungle plants: instead say "[no-time]The plants are in a real mess. You've got no use for them."; if noun is weeds or noun is moss1 or noun is moss2: instead try taking noun; if noun is an item listed in the Table of Untearables, instead say "[no-time]You can't [current_command] [that-those of noun]."; if noun is moreton bay fig tree roots: instead say "[no-time][if the player is Harriet]These roots are like stone. You can't even scratch them.[otherwise]You don't think anything could damage these roots. They are super tough."; if noun is part of tgtrees or noun is part of moreton bay fig tree or noun is part of thtree or noun is part of unhappy trees or noun is part of treesa or noun is part of witchtrees: instead try taking noun; instead say doesn't make sense. Part - Tickle [all safe] vague tickling is an action applying to nothing. Understand "tickle" as vague tickling. Check vague tickling: seek out human presence; if seeker flag is 1: say "([current_caps_person])"; set pronouns from current_caps_person; instead try tickling current_caps_person; instead say "[no-time][line break][second custom style]<< You also need to say whom you want to tickle. For example[quiptext]you could type TICKLE [CAPS POWER PERSON]. >>[normal style][line break]". tickling is an action applying to one thing. Understand "tickle [something]" as tickling. Check tickling: if noun is player or noun is part of player, instead say "[no-time]That would be silly."; if noun is dad, instead say "[no-time]You know that dad isn't ticklish."; if noun is mum, instead say "[no-time]You don't want to start a tickle fight with mum. She always wins."; if noun is Rose: if player is Harriet: if the talked_to of Rose is 0, instead say "[no-time]You wouldn't tickle someone you don't know."; instead say "[no-time]You better not. She seems all grouchy."; instead say "[no-time]You don't think that's a very good idea."; if noun is lady or noun is old man: instead say "[no-time]You wouldn't tickle any grown-ups unless they were from your family."; if noun is dark bird or noun is a coolbird: instead say "[no-time]You wouldn't try to tickle a bird. That's silly."; if noun is orb weaver spider or noun is black prince cicada: instead say how nonsense; if noun is Stevie: instead say "[no-time]You don't think dogs are ticklish."; if noun is a heroine: abide by the marion clap interference rule; if player is Harriet: instead say "[one of]You sneak up to your sister and wiggle your fingers in her ribs.[paragraph break]'Haha, get lost!' she says.[or]You tickle Demi some more.[paragraph break]'Get off!' she shouts, laughing. 'Murder!'[or][no-time]You've tickled her enough. You should get back to tip.[stopping]"; otherwise: instead say "[one of]You creep up on your sister and tickle her waist.[paragraph break]'Hahaha!' says Harriet, twisting away from you.[or]You tickle Harriet some more. She twists away from you and says, 'Stop, stop, stop!'[paragraph break]You smile.[or][no-time]You've tickled her enough. You should get back to tip.[stopping]"; if noun is Ayla or noun is Vince: if noun is untagged, instead say "[no-time]Tickle [it-them of noun]? You should tip [it-them of noun]."; if noun is a chasee: if noun is a male: instead say "[no-time][If player is Harriet]You aren't tickling any boys.[otherwise]You don't want to tickle a boy."; otherwise: if noun is Ayla: [and tagged, if we made it down here] if ayla_mode is 1: abide by the vince tickle rule; instead say Ayla mutual tickle; otherwise: if Ayla is home and singing of Ayla is 1, instead say "[no-time]You wouldn't want to interrupt Ayla's singing."; instead say Ayla mutual tickle; if noun is Marion: if Marion is home, instead say "[no-time]No, you don't want to mess up her clapping game with your sister."; if Marion is untagged, instead try tipping Marion; instead say "[no-time]You don't feel like tickling a pirate."; if noun is Pia: if Pia is untagged: if Pia_stunned is happening, instead say "[no-time]You should tip her."; instead say "[no-time]If you were close enough to tickle Pia, you could tip her – and so far you haven't been able to do that!"; otherwise: instead say "[one of]Pia twists away and grabs your hands. 'I don't like tickling,' she says.[or]Pia told you she doesn't like being tickled, so you decide not to.[stopping]"; instead say "[no-time]You can only tickle people and animals." To say Ayla mutual tickle: say "[one of]You tickle Ayla. 'Teeheehee,' she says, then she tickles you, and you laugh as well.[or][no-time]That was funny when you tickled each other, but you should concentrate on playing tip for now.[stopping]". This is the marion clap interference rule: if Marion is home, instead say "[no-time]No, you don't want to mess up her clapping game with Marion." This is the vince tickle rule: if Vince is in location and Vince is untagged, instead say "[no-time]You should tip Vince before you make a lot of noise." Part - Tip [all safe] Chapter - vague tipping vague tipping is an action applying to nothing. Understand "tip", "tag", "catch" as vague tipping. Check vague tipping: seek out chasee presence; if seeker flag is 0: instead say "[no-time]Tip who? You don't see anyone here who needs tipping."; if seeker flag is 1: say "([current_caps_person])"; set pronouns from current_caps_person; instead try tipping current_caps_person; instead say "[no-time][line break][second custom style]<< You also need to say whom you want to tip. For example, you could type TIP [CAPS POWER PERSON]. >>[normal style][line break]". chapter - tipping Tipping is an action applying to one thing. Understand "tip [something]", "tag [something]", "catch [something]" as tipping. Instead of tipping the player: say "[no-time]You can't tip yourself!" Instead of tipping a heroine: say "[no-time]Your sister's not playing." Instead of tipping a parent: say "[no-time]Mum and dad aren't playing." Instead of tipping lady: say "[no-time]The lady isn't playing tip." Instead of tipping old man: say "[no-time]He isn't playing tip, and you don't think he would want to." Instead of tipping a tagged chasee: say "[no-time][one of]You've[or]You[purely at random] already tipped [it-them of noun]." Instead of tipping Rose: say "[no-time]She's not in your game." Check tipping: if noun is an animal, instead say "[no-time]You can only tip people."; if noun is not a person, instead say "[no-time]You can only tip people."; if duel_mode is 1: if noun is Marion, instead say "[no-time]You'll have to win the duel before you can tip her."; abide by the duelblock A rule; if player holds leafmissile, instead say "[no-time]You can't tip anyone while you're holding all those leaves."; if mounted of roundabout is 1, do firsthopclimb roundabout. Section - Tipping Ayla Check player going when Ayla is in Tree Garden and Ayla is untagged: instead say "[no-time]It would be silly to leave here without tipping Ayla first!" Carry out tipping Ayla when player is Harriet: say "You sneak up beside Ayla and say, 'Ay-la!' Ayla pops her head up from under her arms to see who's there. 'Tip!' you say as you pat her on the shoulder."; now current_actor is Ayla; abide by the grant_a_point rule; say "[line break]'Heehee', Ayla giggles. 'You got me.' She stands up and brushes some twigs off her knees, then straightens her crown on her head. 'I love hiding.'"; now initial appearance of Ayla is "[RandomLock]Ayla is here[if a random chance of 1 in 2 succeeds], smiling as usual[end if]."; rule succeeds. Carry out tipping Ayla when player is Demi: say "'Tip,' you say, tapping Ayla on the arm."; now current_actor is Ayla; abide by the grant_a_point rule; say "[line break]'I had to find you without using my magic,' you say.[paragraph break]'I was going to keep hiding from you,' says Ayla, 'but it's shady in here and I want to go back in the sun. Let's get out of the maze.'[paragraph break]'Good idea,' you say."; rule succeeds. Every turn when Ayla is in Tree Garden and Ayla is tagged and Ayla is original and player is Harriet: increment return_wait of Ayla; if return_wait of Ayla is 2: now Ayla is returning; let way be the best route from location of Ayla to Picnic; if player is in the location of Ayla: now dont_report_this_turn of Ayla is 1; [lets 'report' routine know we already printed a move message for Ayla this turn] say "'That was fun,' says Ayla. 'I'll see you at the picnic area.' Then she runs away to the [way]." [at this point, returning rule makes her take her first step this turn.] Section - Tipping Jack Check going when Jack_Stunned is happening and Jack is untagged: instead say "[no-time]If you walk away now, Jack will escape. This is your chance to tip him!" Carry out tipping Jack: if Jack_Stunned is happening: say "Seizing your chance, [if player is Harriet]you tap Jack's head and say, 'Tip!'[otherwise]you poke Jack in the shoulder and say, 'Tip!'"; now current_actor is Jack; abide by the grant_a_point rule; say "[line break][if player is Harriet]'I'll get you back later,' Jack says. Both of you start laughing as he peels more leaves off himself.[otherwise]'You cheater,' says Jack. He scoops some mud off his chest and rubs it on your arm in revenge, but since your robes are already black, it hardly shows up.[paragraph break]You wonder if you'll get in trouble, but... he was being such a meanie! Jack is smiling so you can tell he thought it was funny as well. Good."; Jack gets up in 1 minute from now; if player is Harriet, now about_to_get_up of Jack is 1; [need to set this flag for a turn so we can detect, for Harriet, if Jack is still on the ground if we try to zap him] rule succeeds; [and below this point we deal with trying to tip Jack if he was not stunned] if the player is Harriet, say "[one of]You swipe at Jack but he jumps out of your way easily.[paragraph break]'Nyah nyah!' he says, circling around you. You find yourself puffing and panting trying to get close to him. It's really frustrating.[paragraph break]'Fairies and girls are lame,' he says. 'You'll never tip me!'[paragraph break]How rude! You feel like throwing something at him to annoy him.[or][Jack_fobs_Harriet1][or][Jack_fobs_Harriet2][stopping]"; if the player is Demi, say "[one of]You lunge at Jack but he zips out of your way and you totally miss. You almost tripped over your robes! You can already tell it's a waste of time trying to get closer to him, so you pause to catch your breath.[paragraph break]'Not much of a witch, are you?' says Jack with a smirk. 'Also you're a slowpoke. Sloooow poooooke...'[paragraph break]He's making you so mad, you want to throw something at him![or]Jack [Jack_dodge] out of your way [Jack_dodge2]. '[Jack_insult],' he says.[stopping]". To say Jack_fobs_Harriet1: say "[RandomLock]You jump at Jack but he [Jack_dodge] out of your way.[paragraph break]'Spider-maaaan!' he shouts, then [one of]does a little dance[or]runs in a little zigzag[or]puts his hands on his hips[or]turns around[purely at random]. [one of]'I'm the best and you're the worst!'[or]'I'm the greatest.'[or]'I rock!'[or]'Yeah yeah yeah yeah yeah!'[or]'Go Spidey!'[purely at random]". To say Jack_fobs_Harriet2: say "[RandomLock]You run after Jack as fast as you can, but it still isn't fast enough. With a [one of]groan[or]gasp[purely at random] "; lock the dice; if a random chance of 1 in 2 succeeds, say "of frustration "; say "[RandomLock]you come to a rest as he [Jack_dodge] about you.[paragraph break]'Girls are [RandomLock][if a random chance of 1 in 2 succeeds]just [end if]too slow,' he says.[paragraph break]You need some kind of trick to catch him. Throwing something at him still seems like a good idea." To say Jack_dodge: say "[RandomLock][one of]whirls[or]spins[or]jumps[or]zips[or]slides[or]leaps[or]ducks[or]swishes[purely at random]". To say Jack_dodge2: say "[RandomLock][one of]again[or]once more[purely at random]". To say Jack_insult: say "[RandomLock][one of]Nice try[or]Fat chance[or]Pooh pooh witchetty-poo[or]Nope[or]Slowbies[or]Slowbie slowbie[or]Give up[purely at random]". At the time when Jack gets up: now about_to_get_up of Jack is 0; now Jack is returning; now Jack_to_the_eye of Jack is "Jack is here."; let way be the best route from location of Jack to Picnic; if player is in the location of Jack: now Jackhit of Jack is 3; [once it's 3, it won't change again] now dont_report_this_turn of Jack is 1; say "Jack gets up, brushes himself off and goes [way]."; try Jack going way. [Jack's first step while 'returning' uses the above line's custom message, not a regular message, as a one-off for him departing this location] Section - Tipping Marion [this carry out can only be reached by Harriet, if she tries to tip Marion before the duel. All other tipping Marion possibilities (during duel, after duel when she's tagged) are already covered elsewhere.] Carry out tipping Marion: instead try patting Marion. Section - Tipping Pia Carry out tipping Pia: if player is Harriet: if Pia_Stunned is happening: say "'Tip!' you shout as you touch Pia's arm.[paragraph break]'I didn't think you'd catch up to me after my jump,' says Pia. [paragraph break]'I flew,' you say."; now Pia_to_the_eye of Pia is "Pia is sitting on the grass."; now current_actor is Pia; abide by the grant_a_point rule; Pia gets up in 1 minute from now; rule succeeds; now pursued of Pia is 1; [indicates you tried to tip her - will set her move message accordingly] if player is Demi: if location is Gazebo: say "As you move towards Pia she takes a fast step in one direction, causing you to wobble, then quickly tries to step around you in the other direction. She is so tricky that her escape plan almost works, but there isn't enough room in the gazebo for her to get past you, and she ends up crashing right into your arms.[paragraph break]'Tip!' you say, and you both laugh."; now current_actor is Pia; abide by the grant_a_point rule; now Pia_to_the_eye of Pia is "Pia is here."; Pia gets up in 1 minute from now; [we can actually use the same get-up routine as if Harriet had just tipped her - we just have her 'get up' immediately] follow the gazebo hint rule; rule succeeds. This is the gazebo hint rule: increment gazebotips of Demi; if gazebotips of Demi is 1 and ayla_mode is 1, say "'Chasing [current_actor] in here worked really well,' says Ayla. 'Maybe we can catch someone else this way.'" At the time when Pia gets up: now Pia is returning; now Pia_to_the_eye of Pia is "Pia is here."; if Pia is in location: now Piahit of Pia is 4; [I set it to 4 to signal that Pia is entirely finished with the stun and get up routines.] now dont_report_this_turn of Pia is 1; if described_her_actions of Pia is 0: say "[if player is Harriet]Pia says, 'I'll see you back at the picnic area.' She stands up, brushes herself off and walks away to the south.[otherwise][Pia's departure story for Demi]"; now described_her_actions of Pia is 1; otherwise: [Harriet possible only] say "Pia stands up, brushes herself off and walks away to the south."; try Pia going south. [Pia's first step while 'returning' uses the above line's custom message, not a regular message, as a one-off for her departing this location] Section - Tipping Sam [every turn: say times_tipped of Sam. [debug] ] Check going when player is Demi: if the location is Gazebo and Sam is in Gazebo and Sam is untagged, instead say "[no-time]If you leave the gazebo now, Sam will escape!" Check going when player is Demi: if the location is Gazebo and Pia is in Gazebo and Pia is untagged, instead say "[no-time]If you leave the gazebo now, Pia will escape!" To treerun Sam: if location is Moreton West, now chaseroom is Moreton East; otherwise now chaseroom is Moreton West; now last location of Sam is the location; now Sam is in chaseroom; now Sam is followable; if times_tipped of Sam is less than 5, increment times_tipped of Sam. To fat3Sam: increase fatigue of Sam by 3; if fatigue of Sam is greater than 5, now fatigue of Sam is 5. To fat2Sam: increase fatigue of Sam by 2; if fatigue of Sam is greater than 4, now fatigue of Sam is 4. Every turn when the fatigue of Sam is greater than 0 and Sam is untagged: decrement fatigue of Sam. [update Sam's tiredness. Occurs after your move.] Sam_fix is a truth state variable. [global] Sam_fix is false. Rule for writing a paragraph about Sam when Sam is untagged: if justchased of Sam is 1: say "Sam skids to a halt."; now Sam_fix is false; continue the action; [a one off override if we chased sam somewhere other than around the fig tree] if Sam_fix is true, decrement the fatigue of Sam; now initial appearance of Sam is "Sam the knight is here. He looks tense, and ready to run away from you."; if the fatigue of Sam is 1, now initial appearance of Sam is "Sam is here, trying to catch his breath."; if the fatigue of Sam is 2, now initial appearance of Sam is "Sam is here, puffing and panting. His face is red!"; if the fatigue of Sam is 3, now initial appearance of Sam is "Sam is here, looking exhausted, gulping for air and holding himself up with his hands on his knees.[paragraph break]'Mercy!' he gasps."; if Sam_fix is true: increment the fatigue of Sam; now Sam_fix is false; continue the action. Carry out tipping Sam: if location is GiantGarden or location is BelowWall: let V be the best route from location to Moreton West; if player is Harriet, say "Sam jumps out of your way and runs [V] to the fig tree, his helmet wibble-wobbling on his head all the way."; if player is Demi, say "Sam hops to one side when you try to tip him, [first time]almost falling over as he does so, [only]then turns and runs [V] to the fig tree."; send Sammy to Moreton West; rule fails; if player is Harriet: if times_tipped of Sam is 0: say Sam_swipe; treerun Sam; fat3Sam; rule fails; if fatigue of Sam is 2: say "Sam groans as you come running for him again, then starts to jump and leap over the roots as he heads for the other side of the tree."; treerun Sam; fat3Sam; rule fails; if fatigue of Sam is 3: say "Sam tries to stagger away from you, but he has no energy left, while you have lots.[paragraph break]'Tip!' you say, patting him on the back."; now current_actor is Sam; abide by the grant_a_point rule; say line break; if talked_to of Sam is greater than 0, say "'Forsooth!' you add.[paragraph break]"; say "Sam says, 'I think I'll – [italic type]gasp[roman type] – have a rest – [italic type]puff[roman type] – here before – [italic type]pant[roman type] – I go back... to the picnic area... forsooth...' Then he plops down onto the ground, cross-legged."; Sam gets up in 4 minutes from now; now Sam is stunned; now initial appearance of Sam is "[RandomLock]Sam is sitting here, [if a random chance of 1 in 2 succeeds]slowly [end if]recovering his breath."; rule succeeds; say "You dash towards Sam. Again, he escapes from you by circling to the other side of the fig tree, jumping and climbing over its tangle of giant tree roots."; treerun Sam; fat3Sam; rule fails; if player is Demi: if location is Gazebo: say "Sam wiggles from side to side, but there's no way for him to avoid you here. You grab his shoulder and say, 'Tip!'"; now current_actor is Sam; abide by the grant_a_point rule; say "[line break]'Ohhhhhh,' Sam groans."; now initial appearance of Sam is "Sam the knight is here."; Sam recovers from fright in 1 minute from now; follow the gazebo hint rule; rule succeeds; if location is Moreton West or location is Moreton East: say "[RandomLock]You swipe at Sam [if a random chance of 1 in 2 succeeds]a few times [end if]but he hops [if a random chance of 1 in 2 succeeds]back [end if]out of your reach. He begins to make his way around to the other side of the tree by jumping and scrambling over its huge roots. [if ever_chased of Sam is 0]It doesn't look easy.[otherwise][line break][end if]"; treerun Sam; rule fails. At the time when Sam gets up: now Sam is returning; now initial appearance of Sam is "Sam the knight is wandering along here."; let way be the best route from location of Sam to Picnic; if player is in the location of Sam: now just_got_up of Sam is 1; [lets 'report' routine know we already printed a move message for Sam this turn] say "Sam drags himself to his feet, then walks away [way]."; try Sam going way; [Sam's first step while 'returning' uses the above line's custom message, not a regular message, as a one-off for her departing this location] now just_got_up of Sam is 0. At the time when Sam recovers from fright: now Sam is returning; let way be the best route from location of Sam to Picnic; if player is in the location of Sam: now just_got_up of Sam is 1; [lets 'report' routine know we already printed a move message for Sam this turn] now described_his_actions of Sam is 1; say "'I'm going back to the picnic area now,' Sam says, and he plods away to the [way]."; try Sam going way; [Sam's first step while 'returning' uses the above line's custom message, not a regular message, as a one-off for her departing this location] now just_got_up of Sam is 0. Section - Tipping Vince Check player going when Vince is in location and Vince is untagged: instead say "[no-time]You don't want to go anywhere else until you've tipped Vince." Carry out tipping Vince when player is Harriet: say "You tap Vince on the back and say, 'Tip!'"; now current_actor is Vince; abide by the grant_a_point rule; say "[line break]Vince crawls out from his hiding place and smiles. 'Was it hard to find me?' he asks.[paragraph break]'I guess so,' you say, 'I had to go up in the treehouse to spot you.'[paragraph break]'Good!' he says. 'I'm practising to be a spy.'"; now initial appearance of Vince is "Vince is here."; Vince goes home in 1 minute from now; rule succeeds. Carry out tipping Vince when player is Demi: [we can assume Ayla is present at this moment] say "You clap Vince on the back and say, 'Tip!' - which gives him quite a shock."; now current_actor is Vince; abide by the grant_a_point rule; say "[line break]He comes out from behind [Vince spot] with a big grin on his face. [The Stevie] walks over to him and starts sniffing and pawing at his legs. Ayla giggles.[paragraph break]'What's this dog doing here?' asks Vince.[paragraph break]'Doggy helped us find you,' says Ayla.[paragraph break][if name_is_known of Stevie is 1]'Her name's Stevie,' you remind Ayla.[paragraph break][end if]Vince gives the dog an annoyed look. Then he smiles again. 'I'm practising to be a spy, and I'm pretty good. I was sneaking from one hiding place to another while you were looking for me. You girls wouldn't have found me without this dog.'[paragraph break]'Yes we would,' says Ayla. 'We were going to look here anyway, weren't we, Demi?'[paragraph break]'Yeah,' you say.[paragraph break]Vince looks suspicious."; now initial appearance of Vince is "Vince is here."; Vince goes home in 1 minute from now; rule succeeds. At the time when Vince goes home: now Vince is returning; if player is Demi: [extra fixes for the dog which found Vince in the Demi game] now extra_status of Stevie is 5; [via 'every turn when stevie stunned' rule, we re-enter stevie random movement and flight1 routine, but the xtra status of 5 stops the 'did ayla see the dog' actions having any effect.] now waittimer of Stevie is 0; restpose Stevie; now Stevie is stunned; let way be the best route from location to Picnic; if Vince is in location: say "[if player is Harriet]'Seeya back at the picnic table,' says Vince. Then he runs away to the [way].[otherwise]'I have spy work to do back at the picnic table,' says Vince, standing up very straight and looking serious. 'Excuse me.' Then he walks away to the [way]."; now dont_report_this_turn of Vince is 1; try Vince going way. Section - Chasee general flee Carry out tipping a chasee: if the noun is Pia: follow the PiaGo rule; continue the action; now current_actor is noun; follow the fleekid rule. Every turn: [this is the Returning rule] repeat with C running through returning chasees: let way be the best route from location of C to Picnic; if way is a direction, try C going way. Part - Throw (3 kinds) [all throws now all safe] [all throws are roundabout safe and duel safe - impossible to get on roundabout or duel with anything in hands] Understand the command "throw" as something new. Chapter - THROW HACK Include (- [ PrintInferredCommand from singleton_noun; singleton_noun = FALSE; if ((from ~= 0) && (from == pcount-1) && (pattern-->from > 1) && (pattern-->from < REPARSE_CODE)) singleton_noun = TRUE; if (singleton_noun) { BeginActivity(CLARIFYING_PARSERS_CHOICE_ACT, pattern-->from); if (ForActivity(CLARIFYING_PARSERS_CHOICE_ACT, pattern-->from) == 0) { print "("; PrintCommand(from); print ")^"; } EndActivity(CLARIFYING_PARSERS_CHOICE_ACT, pattern-->from); } else { print "("; PrintCommand(from); print ")^"; } ]; [ PrintCommand from i k spacing_flag objs; !#Added objs if (from == 0) { i = verb_word; if (LanguageVerb(i) == 0) if (PrintVerb(i) == 0) print (address) i; from++; spacing_flag = true; } for (k=from : kk; if (i == PATTERN_NULL) continue; if (spacing_flag) print (char) ' '; if (i == 0) { print (string) THOSET__TX; jump TokenPrinted; } if (i == 1) { print (string) THAT__TX; jump TokenPrinted; } if (i >= REPARSE_CODE) { !#Added brace print (address) VM_NumberToDictionaryAddress(i-REPARSE_CODE); objs = 0; } !#Added line else if (i ofclass K3_direction) print (LanguageDirection) i; ! the direction name as adverb else { if (verb_word == 'throw' && (objs == 1)) print "at "; !#Added line if (verb_word == 'give' && (objs == 1)) print "to "; !#Added line print (the) i; objs++; } !#Added line .TokenPrinted; spacing_flag = true; } ]; -) instead of "Print Command" in "Parser.i6t". Chapter - vague throwing vague throwing is an action applying to nothing. Understand "throw" as vague throwing. Carry out vague throwing: abide by the duel chuckcheck bonus rule; let T be ""; if player holds leaf, now T is "LEAF"; if player holds leafmissile, now T is "LEAVES"; if player holds mudpie, now T is "MUD"; if T is "", instead say "[no-time]You don't have anything you want to throw."; seek out anyone presence; say "[no-time][line break][second custom style]<< You need to give more information, like what to throw and whom you want to throw it at. For example[quiptext]you could type THROW [T] AT [CAPS POWER PERSON]. >>[normal style][line break]". To say sister presence quip: if player is Harriet and Demi is in location: say ", "; rule succeeds; if player is Demi and Harriet is in location: say ", "; rule succeeds; say " if [otherid] was here, ". Chapter - throwing without target Throwing without target is an action applying to one thing. Understand "throw [something preferably held]" as throwing without target. Does the player mean throwing without target leaf: it is likely. Check throwing without target: abide by the chuckcheck rule. This is the chuckcheck rule: if noun is part of player: instead say doesn't make sense; if noun is someone or noun is part of someone: instead say "A funny but [nonsense] idea."; if noun is part of a wand (called masterwand) carried by player, now noun is masterwand; if noun is a wand carried by player: instead say "[no-time][if player is Harriet]Chuck your fairy wand? No, you'd hate it if it broke![otherwise]Your wand is too important for you to let go of it. Besides, 'You might take someone's eye out,' as mum is always saying."; if noun is worn by player: instead say "[no-time][if player is Harriet]Sometimes you throw your clothes at Demi at home, which is funny, but you don't want to throw them around while you're playing in the park.[otherwise]Throwing clothes is baby behaviour."; if noun is not enclosed by player, instead say "[no-time]You can't throw something you aren't carrying."; abide by the duel chuckcheck bonus rule. This is the duel chuckcheck bonus rule: if duel_mode is 1, instead say "[no-time][if the player is Harriet]You have to win the duel[otherwise]This duel is going to be decided[end if] by zapping, not by throwing things." [COMMENT --- Note how each rule is defined generally 'Check throwing without target:' then the conditions come inside the rule. This gives all rules listed this way equal preference, meaning the order I list them in is the order they will run in. If I had defined rules like 'Check throwing without target anyone, instead say ""A funny but [nonsense] idea."'... Inform will start to give rules precedence which are more specific than others, in spite of listing order. As an example, 'something carried by the player' is more specific than 'anyone', meaning the 'throw without target something carried by the player' rule would ALWAYS fire before the 'throw without target anyone' rule, in spite of listing order, and that is not what I wanted.] To say throwable_thing: if noun is leaf: say "LEAF"; otherwise if noun is leafmissile: say "LEAVES"; otherwise: say "MUD". To say throw_demo_target: if player is Harriet: say "DEMI"; otherwise: say "HARRIET". Carry out throwing without target: seek out anyone presence; if seeker flag is 1: say "(at [current_caps_person])"; set pronouns from current_caps_person; instead try chucking noun at current_caps_person; say "[no-time][line break][second custom style]<< You'll need to say whom you want to throw [the noun] at. For example[quiptext]you could type THROW [throwable_thing] AT [CAPS POWER PERSON]. >>[normal style][line break]". Chapter - chucking it at chucking it at is an action applying to two things. Understand "throw [something preferably held] [something]", "throw [something preferably held] at/against [something]" as chucking it at. Check chucking it at: [some character prohibitions that should come before blocks like 'throw your wand? no way!'] if noun is something worn or noun is carried by player: if second noun is player: instead say how nonsense; if second noun is a home chasee: instead say "[no-time][if the player is Harriet]Mum and dad don't like you throwing stuff, and they're right here. Besides, you've already tipped [second noun]. You think you should be thinking about the people you haven't tipped.[otherwise]You have far more important stuff to do, like tip people you haven't already tipped."; if second noun is a parent: instead say "[no-time][if player is Harriet]You would be in trouble forever if you threw something at [second noun]![otherwise]What a crazy thought you just had... You squeeze your face and it goes away. That's better."; if second noun is black prince cicada: instead say "[no-time]You don't want to bug the cicada. Jack is doing that enough."; if second noun is dark bird: instead say "[no-time]The dark bird is well out of reach."; if second noun is old man or second noun is lady: instead say "[no-time]You would never throw something at a grown-up."; if second noun is orb weaver spider or second noun is spiderweb: instead say "[no-time][if player is Harriet]If you threw something and it got stuck in the web, you would have to go near the web and the spider. Ugh! You're not going to risk doing that.[otherwise]You like the spider. You don't want to throw things at it. You just want to brush the web out of the way."; if second noun is Ayla: instead say "[no-time][if player is Harriet]You can't imagine ever wanting to throw something at Ayla.[otherwise]Ayla isn't one of those cheeky girls like your sister who make you feel like throwing stuff at them."; if second noun is Pia and player is Demi: instead say "Pia isn't one of those cheeky girls like your sister who make you feel like throwing stuff at them."; if second noun is Vince: instead say "[no-time]You don't feel like throwing anything at Vince.[if player is Harriet] He's pretty nice.[otherwise] He's not cheeky."; abide by the chuckcheck rule. To say NO_HAZZA: say "[line break][one of]'Don't call me Hazza,' you say.[or]'I told you not to call me Hazza,' you say.[stopping]". To finish up Jack: now description of Jack is "[if player is Harriet]He's still got a lot of leaves stuck on his Spiderman costume.[otherwise]The mud you hit him with completely covers the Spiderman symbol on his chest."; now Jackhit of Jack is 1. To lob the leaves: play_leafchuck; now leafmissile is off-stage; now a leaf is part of bunch leaves. [the only throwable objects in the game are the leafmissile (Harriet only), mudpie (Demi only) and leaf (both girls), so each character's Check section needs to deal with these 3.] Carry out chucking it at: [a heroine / your sister] if second noun is a heroine: if second noun is not the player: instead say "[no-time][if the player is Harriet]That wouldn't be nice on your birthday. Also, mum and dad are right here![otherwise]It might be a funny joke some other day, but today is your birthday, and Harriet's. You don't want to throw [the noun] at your sister."; otherwise: instead say how nonsense. Carry out chucking it at: [Galah] if second noun is galah: [possible for Demi only] If noun is leaf: unless player holds leafmissile, now a leaf is part of bunch leaves; instead say "You toss your leaf at the galah. The galah doesn't even notice and the leaf floats away."; if noun is mudpie: instead say "[no-time]You wouldn't do that to the galah." Carry out chucking it at: [Jack] if second noun is Jack: if noun is leafmissile: say "You wait for Jack to start showing off again just out of your reach, then suddenly chuck the whole pile of leaves in his face.[paragraph break]'BLUCH!... What?!' he shouts, falling on his backside in surprise. Sitting on the ground and covered in leaves, he starts to laugh, and to spit out bits of leaf."; lob the leaves; finish up Jack; rule succeeds; If noun is mudpie: say "When Jack gets close again, you chuck your mud pie right at his chest... SPLAT![paragraph break]'Arrgh!' Jack cries. He looks totally shocked and stands there, holding his arms up and checking out his muddy self. [if ayla_mode is 1]Ayla puts her hands over her mouth. Then Jack starts to laugh.[otherwise]Then he starts to laugh."; play_piehit; now mudpie is off-stage; finish up Jack; rule succeeds; If noun is leaf: if ever_tried_leafing of Jack is 0: now ever_tried_leafing of Jack is 1; say "[if player is Harriet]You throw a leaf at Jack, but it just plops down at your feet.[paragraph break]'Er, nice one Hazza!' he says. The leaf skips away as Jack bounces around and sticks his tongue out at you. Grrr![line break][NO_HAZZA][otherwise]You ball up your leaf at and chuck it Jack...[paragraph break]Pow! You got him right in the chest.[paragraph break]Unfortunately it was only a leaf, and it doesn't seem to have had much effect.[paragraph break]'What's this? Oh no, not a leaf!' cries Jack. He smooshes the leaf to dust with his hand and then laughs at you."; unless player holds leafmissile, now a leaf is part of bunch leaves; rule succeeds; otherwise: instead say "[no-time]You tried that before and it didn't work at all. You won't do it again." Carry out chucking it at: [Marion] if second noun is Marion: if Marion is untagged: [only possible for Harriet] instead say "[no-time]You think Marion would get angry if you did that. The only way to tip her will be to win that duel with her."; otherwise: instead say "[no-time][if the player is Harriet]You don't want to throw anything at Marion. The duel was lots of fun.[otherwise]After that duel, you would feel silly throwing anything at Marion." Carry out chucking it at: [Pia - Harriet here, Demi blocked at earlier stage] if second noun is Pia: if Pia is untagged, instead say "[no-time]Pia might be hard to catch, but you'd feel bad if you threw something at her."; instead say "[no-time]That wouldn't be nice." Carry out chucking it at: [Raven] if second noun is raven: if player is Harriet: if noun is leafmissile: if tried_leaves_on_raven of Harriet is 0: say "Hoping to scare the bird away, you throw the pile of leaves at it. This doesn't work very well… most of the leaves fall quickly to the ground and skip away. The raven flaps its wings once and calls out as some leaves float by, then it sits back down on its perch. You lost all your leaves for nothing!"; lob the leaves; if glulx sound is supported and user_musicvol is not 0 and glulx timekeeping is supported, wait 250 milliseconds before continuing, strictly; [pause to put leaf sound ahead of raven sound] play_random_raven; if tried_leaves_on_raven of Harriet is 1, say "[no-time]You tried that before and it didn't work. You don't want to waste your leaves by trying again. You're pretty sure the raven isn't going anywhere."; now tried_leaves_on_raven of Harriet is 1; rule succeeds; If noun is leaf: unless player holds leafmissile, now a leaf is part of bunch leaves; instead say "You throw a leaf towards the raven, but it's so light that it hardly goes anywhere. It spins gently to the ground then tumbles away."; otherwise if player is Demi: instead say "[no-time]You like the raven. You don't want to scare him away." Carry out chucking it at: [Rose] if second noun is Rose: if player is Harriet: [throwing anything throwable] say "[no-time]You wouldn't ever throw something at a stranger. "; if talked_to of Rose is not 0: say "Also, the girl looks a little scary."; otherwise: say line break; rule fails; if player is Demi: If noun is leaf: unless player holds leafmissile, now a leaf is part of bunch leaves; if sentinel of Rose is greater than 0: increment leafbops of Rose; if leafbops of Rose is less than 3: say "You toss the leaf at Rose. It twirls near her head before floating away. Rose stops counting and whirls around to face you.[paragraph break]"; say "[one of]'What was that?' she says. 'Something touched my hair.'[paragraph break]'I don't know,' you say with a shrug. Rose doesn't look like she believes you.[or]'There it was again!' says Rose. 'You must have seen it.'[paragraph break]'No, sorry,' you say.[stopping]"; now sentinel of Rose is 0; lock the dice; now watch_length of Rose is a random number between 3 and 6; rule succeeds; otherwise: say "You toss another leaf at Rose. A tiny puff of wind catches it and it lands right in her hair. You put your hands over your mouth to stop yourself from laughing.[paragraph break]Rose spins around and throws the leaf on the ground. [run paragraph on]"; do the Rose irritation; [game over!] rule succeeds; otherwise: now irritation of Rose is irritation of Rose plus 2; if irritation of Rose is 4 or irritation of Rose is greater than 5: say "The leaf twirls around a bit, then a tiny breeze blows it straight into Rose's surprised face. You giggle.[paragraph break]"; instead do the Rose irritation; say "You throw your leaf at Rose, but it just twirls around. Rose grabs it out of the air and crushes it to dust.[paragraph break]'What was that, some kind of witch magic trick?' she says. 'It was dumb. You better stop annoying me.'"; if talked_to of Rose is 1, now talked_to of Rose is 2; [if next dialogue was 'don't copy!', skip it] instead play_leafcrunch; if noun is mudpie: if threat_flag of Rose is 0: instead say "[no-time]Rose sure is a grouch, but... you're not sure you could throw a mud pie at a stranger."; otherwise: if ayla_mode is 1: instead say "[one of]Ayla sees what you're about to do and whispers, 'Don't, Demi!' She puts her hand on your arm to stop you.[paragraph break]Wait, Ayla's right. Even though Rose is annoying, throwing mud at her wouldn't be very nice, and you could get in lots of trouble, too.[or][no-time]You already decided not to throw the mudpie at Rose.[stopping]"; otherwise: say "You can't resist![paragraph break]SPLAT! - the mud pie explodes across Rose's back.[paragraph break]'AAAAH!' she screams, then she spins around to face you. She is furious. 'You're dead!' she says. She thunders towards you and starts hitting you on the shoulders. Ow ow ow!..[paragraph break]'Get lost!' you yell. Rose gives you a great big shove - "; play_piehit; now mud_message of Rose is "right into the mud"; make Rose attack; stop the action. Carry out chucking it at: [Sam] if second noun is Sam: if player is Harriet: if noun is leafmissile: if tried_leaves_on_Sam of Harriet is 0: say "You get as close to Sam as you can (which isn't all that close - he's always moving away from you) then throw your pile of leaves at him. They whirl around a bit, then blow away without getting near him. Sam smiles, but you feel annoyed that you lost all your leaves for nothing."; lob the leaves; if tried_leaves_on_Sam of Harriet is 1, say "[no-time]You won't try that again on Sam. It didn't work at all."; now tried_leaves_on_Sam of Harriet is 1; rule fails; If noun is leaf: unless player holds leafmissile, now a leaf is part of bunch leaves; instead say "You throw a leaf at Sam. It bounces off his armour and skips away. Sam giggles."; if player is Demi: If noun is leaf: unless player holds leafmissile, now a leaf is part of bunch leaves; instead say "You throw your leaf at Sam. The warm breeze quickly grabs it and takes it away. Sam giggles."; if noun is mudpie: instead say "[no-time]You wouldn't do that to Sam." Carry out chucking it at: [Stevie] if second noun is Stevie: if player is Harriet: instead say "[no-time]The lady might not like you throwing things at her dog."; if player is Demi: If noun is leaf: unless player holds leafmissile, now a leaf is part of bunch leaves; instead say "You throw your leaf towards [the Stevie]. She gives it a sniff but doesn't seem interested, even when it skips away on the breeze."; if noun is mudpie: instead say "[no-time]You wouldn't want to do that to [the Stevie]." To do the Rose irritation: say "'I told you to stop annoying me!' shouts Rose. 'That's it!'[paragraph break]She rushes over to you and gives you a great big shove – "; now mud_message of Rose is "right into the mud"; make Rose attack; stop the action. Carry out chucking it at: [fall through - if we get to here, all people have been eliminated. it's only world objects left, and I don't want any throwing at them] say "[no-time][if the player is Harriet]No, that wouldn't help.[otherwise]No, you don't like throwing things at other things for no reason." Part - Transcript commands [had to modify these to stop 'versions' command going off every time you start a transcript.] Check switching the story transcript on: now noversion is 1. Report switching the story transcript on: now noversion is 0. Part - Turn [code that's here now - for objects only - is duel safe. Make sure any code added is also duel safe to maintain this status.] [roundabout safe] [1st column name MUST be topic - this is specially coded in Inform to match 'topic understood'] [table checked] Table of Spinny Directions topic orientation "left" 1 [left = clockwise = 1] "l" 1 "clockwise" 1 "clock-wise" 1 "clock wise" 1 "right" 2 [right = anti clockwise = 2] "r" 2 "anticlockwise" 2 "anti-clockwise" 2 "anti clockwise" 2 "anti-clock-wise" 2 "anti-clock wise" 2 "anti clock-wise" 2 "anti clock wise" 2 "counterclockwise" 2 "counter-clockwise" 2 "counter clockwise" 2 "counter-clock-wise" 2 "counter-clock wise" 2 "counter clock-wise" 2 "counter clock wise" 2 Understand the command "rotate" as something new. Chapter - vague turning vague turning is an action applying to nothing. Understand "turn", "spin", "rotate" as vague turning. Check vague turning: if location is Treehouse: say "(the steering wheel)"; set pronouns from steering wheel; instead try turning something steering wheel; if location is ByRoundabout: say "(the roundabout)"; set pronouns from roundabout; instead try turning something roundabout. Carry out vague turning: say spinning yourself. To say spinning yourself: say "[if player is Harriet]You [current_command] on the spot. It's fun, but it makes you dizzy quickly.[otherwise]You don't think [current_command]ing on the spot is a good idea at the moment. Your hat might fall off." Chapter - playeronly turning playeronly turning is an action applying to one topic. Understand "turn east/west/north/south/e/w/n/s" as playeronly turning. Carry out playeronly turning: say spinning yourself. Chapter - turning myself turning myself is an action applying to one topic. Understand "turn [text]", "turn to [text]", "turn to the [text]" as turning myself. Understand "spin [text]", "spin to [text]", "spin to the [text]", "rotate [text]", "rotate to [text]", "rotate to the [text]" as turning myself. Check turning myself: if topic understood is a topic listed in Table of Spinny Directions: if location is ByRoundabout: [need to catch this to preserve direction of the turn] say "(the roundabout)"; set pronouns from roundabout; instead try turning roundabout in a direction topic understood; instead try vague turning; instead say "[no-time]That isn't a direction you can [current_command]." Chapter - turning something turning something is an action applying to one thing. Understand "turn [something]", "spin [something]", "rotate [something]" as turning something. To say no time to move roundy now: say "[no-time]You don't have time to move the roundabout now." Check turning something: if noun is bars, now noun is roundabout; if noun is steering wheel: [Harriet only] instead say "[one of]You spin the wheel all the way around. Vroom! You imagine you're driving a racing car.[or]You turn the wheel as hard as you can. 'Hang on everyone,' you shout as you turn the corner. Now you're driving a bus.[or]You turn the wheel back to the middle. 'Sorry everyone,' you say to your passengers. 'I'm sorry about all the bumping.'[or]You put your hands on the wheel again, but instead of turning it, you say 'I think we need petrol.'[or]You give the wheel another spin. 'Here is a good place to stop,' you say to the people on your bus. 'We need more petrol. Sorry, you'll have to get out.'[or][no-time]You let the bus run out of petrol once you got tired of turning the wheel. Now you can go back to playing tip.[stopping]"; if noun is roundabout: if orientation of roundabout is 0: now orientation of roundabout is 1; [both girls are right handers and will spin left/clockwise unless you specify] if duel_mode is 1: if player is Harriet: instead say no time to move roundy now; otherwise if player is Demi: if duel_position is less than 4: instead say "[no-time]You're too far away from the roundabout to spin it."; if duel_position is 4: now duel_text is "You give the roundabout a quick push.[paragraph break]'Ahh!' cries Marion, losing her grip on the roundabout bar and falling backward onto the grass. This is your big chance!"; now spin of roundabout is 4; give Marion pose 13; increment duel_position; [ie - after the duel is advanced, duel position will be 6] advance the duel; rule succeeds; if duel_position is 5: say "It's harder to spin the roundabout once you're on it. As you reach for the ground with your foot, Marion yells 'Zap!' [do Marion's zap]again. She got you."; instead do the Demi dp1kill; if spin of roundabout is 0: say "You give the roundabout a big push to the [roundabout angle] and set it spinning."; otherwise: say "You give the roundabout another push to keep it spinning."; now spin of roundabout is 4; if mounted of roundabout is 1 and ayla_mode is 1 and roundabout_remark of ayla is 0: say "[line break]Ayla says, 'Spin us more!'"; now roundabout_remark of ayla is 1; rule succeeds; abide by the rest of the turning people checks rule. Carry out turning something: [fall-through] instead say doesn't make sense. To say no touching Marion yet: say "[no-time]You can't touch Marion until this duel's over." This is the rest of the turning people checks rule: if current_command is "ride": instead say doesn't make sense; if noun is player: if mounted of roundabout is 1: now noun is roundabout; otherwise: instead say spinning yourself; if noun is Ayla and ayla_mode is 1 and mounted of roundabout is 1: instead try turning something roundabout; if duel_mode is 1 and noun is Marion: instead say no touching Marion yet; if noun is an untagged chasee: instead do the turny fob; if noun is a nottheplayer heroine: instead say "[no-time]You don't want to drag [otherid] off her seat."; if noun is a parent: instead say "[no-time]You're playing with your friends. You don't want to drag mum or dad around now."; if noun is a notmehuman person: instead say don't be a pokepop. To do the turny fob: if noun is Ayla or noun is Vince: say "[no-time]You ought to tip [it-them of noun]."; rule succeeds; if noun is Marion: try patting Marion; otherwise: say "[no-time]If you were close enough to touch [noun], you could tip [it-them of noun] – and so far you haven't been able to do that!" Chapter - turning it in a direction To say roundabout angle: if orientation of roundabout is 1: say "left"; otherwise: say "right". turning it in a direction is an action applying to one thing and one topic. Understand "turn [something] [text]", "turn [something] to [text]", "turn [something] to the [text]", "spin [something] [text]", "spin [something] to [text]", "spin [something] to the [text]", "rotate [something] [text]", "rotate [something] to [text]", "rotate [something] to the [text]" as turning it in a direction. Check turning it in a direction: abide by the turning the turnables rule; abide by the rest of the turning people checks rule. Carry out turning it in a direction: [fall-through] instead say doesn't make sense. This is the turning the turnables rule: if noun is steering wheel: if topic understood is not a topic listed in Table of Spinny Directions: instead say doesn't make sense; otherwise: try turning something steering wheel; rule succeeds; if noun is roundabout: if duel_mode is 1: if player is Harriet: instead say no time to move roundy now; if topic understood is not a topic listed in Table of Spinny Directions: instead say doesn't make sense; let X be a number; repeat through Table of Spinny Directions: [weird that I have to repeat through this table to make this work, but this is how the docs do it in 'Questionable Revolutions' example, 15.13] if topic understood includes topic entry, now X is orientation entry; if spin of roundabout is less than 1: now orientation of roundabout is X; instead try turning something roundabout; otherwise if spin of roundabout is greater than 0: if X is orientation of roundabout: instead try turning something roundabout; otherwise: say "The roundabout is already spinning the other way. By pushing "; if X is 1: say "left"; otherwise: say "right"; say ", you slow it down."; now spin of roundabout is 1; [this will stop roundabout immediately] rule succeeds. Part - Uncover [all safe] [basically a poor cousin of 'brush away'] Understand the command "uncover" as something new. Understand "uncover" as a mistake ("[no-time][line break][second custom style]<< You also need to say what you want to uncover. For example, if a statue was covered by weeds, you could type UNCOVER STATUE. >>[normal style]"). Uncovering is an action applying to one thing. Understand "uncover [something]" as uncovering. Carry out uncovering: if noun is gazebo1, instead try brushing away spiderweb; if noun is orb weaver spider or noun is spiderweb, instead try brushing away noun; if noun is player, instead say how nonsense; if noun is a person, instead say "[no-time][That-those of noun] do[es]n't need uncovering."; instead say "[no-time]That doesn't need uncovering." Part - Wait [all safe] [to do a normal wait, just let the action go through to the default report rule. To do anything else, intercept it first.] Check waiting: [waitt] if duel_mode is 1: if player is Harriet: if duel_position is 1: [soundsafe] say "Marion's zap [do Marion's zap]just hit you. Whoops![paragraph break]"; instead do the Harriet dp1kill; if duel_position is 2: [soundsafe] now duel_text is "You stay where you are. Marion lowers her sword and begins to run across the clearing.[paragraph break][hatfall fun]."; abide by the pirate hat loss rule; if duel_position is 3: [soundsafe] now duel_text is "You try to work out what Marion is doing. Ah… [run paragraph on][Marion reaches the hill][do Marion's zap]'"; give Marion pose 5; advance the duel; rule succeeds; if duel_position is 4: [soundsafe] say "You stay where you are, which isn't very smart. Marion [do Marion's zap]just zapped you.[paragraph break]"; instead do the Harriet dp1kill; if duel_position is 5: [soundsafe] say "Marion grabs this opportunity to point her sword straight at you. [do Marion's zap]'Zap!' she shouts.[paragraph break]She got you![paragraph break]"; instead do the Harriet dp1kill; otherwise if player is Demi: if duel_position is 1: [soundsafe] now duel_text is "You stay where you are. Marion [do Marion's zap]keeps running until she's on the far side of the roundabout. [Marion kneel and retaliate]'"; give Marion pose 9; advance the duel; rule succeeds; if duel_position is 2 or duel_position is 5: [soundsafe] say "You didn't manage to think of anything smarter to do than to stay where you are, so Marion's [do Marion's zap]shot goes straight into you."; instead do the Demi dp1kill; if duel_position is 4: [soundsafe] say "Marion's wild shot just [do Marion's zap]hit you! You should have taken some action, but it's too late now."; instead do the Demi dp1kill; if duel_position is 3 or duel_position is 6: [soundsafe] say "Marion jabs her sword arm straight at you and says, [do Marion's zap]'Zap!'[paragraph break]You should have taken some action, but it's too late now."; instead do the Demi dp1kill. Check waiting: if location is Gazebo: [Demi only] if Pia is in location and Pia is untagged: instead say "[no-time]This is no time to stand around. It's time to tip Pia!"; if Sam is in location and Sam is untagged: instead say "[no-time]This is no time to stand around. It's time to tip Sam!" Chapter - Wait addendum fussy waiting is an action applying to one topic. Understand "z [text]" as fussy waiting. Carry out fussy waiting: say "[no-time][line break][second custom style]<< Z is a shortcut for the WAIT command. You can't type anything after it. >>[normal style][line break]". Part - Wave Understand the command "wave" as something new. Understand "wave" as a mistake ("[no-time]You don't need to do that."). newwaving is an action applying to one thing. Understand "wave [something]" as newwaving. newwaving at is an action applying to one thing. Understand "wave at [something]" as newwaving at. This is the waving at living things rule: if noun is an animal: if noun is a coolbird or noun is dark bird: instead say "[if the player is Harriet]You wave your hands at [the noun] but it doesn't seem to be bothered.[otherwise][no-time]You don't want to wave at [the noun]. You might scare it."; if noun is Stevie: if player is Harriet and talked_to of lady is 0: say "You wave at the dog. [run paragraph on]"; try talking to lady; rule succeeds; otherwise: instead say "You wave at [the noun] but she doesn't notice. Maybe that's not a good way to get a dog's attention."; instead say "[no-time]You don't need to wave at [it-them of noun]."; if noun is a person: if noun is old man: instead say "[no-time]That would be rude."; if noun is Rose: instead say "[no-time][if the player is Harriet]She won't notice. She has her back to you.[otherwise]You don't want to wave at her!"; if noun is lady: [Harriet game only] if talked_to of lady is 0: say "You wave. [run paragraph on]"; try talking to lady; rule succeeds; otherwise: instead say "[no-time]Now that you've met her, you'd rather talk to the lady than just wave at her."; instead say "[no-time]You don't need to wave at [it-them of noun]." [fall-through for chasee or parent or heroine] Check newwaving: [could be waving an object, or waving at a person] if noun is player or noun is part of player: instead say how nonsense; abide by the waving at living things rule; if noun is enclosed by a nottheplayer person: [after this check, all that's left is player content and external world objects] instead say doesn't make sense; if noun is part of a wand (called masterwand), now noun is masterwand; if noun is enclosed by player: if noun is leaf or noun is leafmissile or noun is mudpie: instead say "[no-time]You don't need to wave [that-those of noun] around."; if noun is not a wand: [worn, part of you or carried] instead say "[no-time]Waving your [noun] around won't help you tip anyone."; if noun is not enclosed by player: if noun is bunch leaves or noun is leaf: instead say "[no-time]You can't wave what you don't have."; otherwise: instead say "[no-time]That won't help." Carry out newwaving: [you must have waved wand to get here] say "You wave your wand in the air[first time]. You feel like zapping something[only]."; Check newwaving at: [only for waving at people and things] if noun is player or noun is enclosed by player: instead say how nonsense; abide by the waving at living things rule; instead say "[no-time]That won't help." Part - Wear (add basic token) Understand "wear" as wearing. [add simple token so I can do missing noun stuff] Rule for supplying a missing noun while wearing: if player is Harriet: say "(your pink dress)"; set pronouns from pink dress; now noun is pink dress; otherwise: say "(the black robes)"; pluralswitch black robes; now noun is black robes. Part - What, When, Where, Who, Why, How pointless agonising is an action applying to one topic. Understand "what", "what [text]", "when", "when [text]", "where", "where [text]", "who", "who [text]", "why", "why [text]", "how", "how [text]", "if", "if [text]" as pointless agonising. Carry out pointless agonising: say "[no-time][line break][second custom style]<< This game can't answer questions. What you type in should be a command for your character to carry out. If you don't understand how to play, please read the booklet which came with the game: 'Six - An instruction manual for those new to Interactive Fiction'. >>[normal style][line break]". Part - Whee wheeing is an action applying to one topic. Understand "whee", "wheee", "whee [text]", "wheee[text]" as wheeing. Report wheeing: say "[no-time][RandomLock][one of]Yes, this is fun![or]Fun![or]Yes, you're having fun![at random]". Part - Whine [all safe] Whining is an action applying to one topic. Understand "whine", "whine [text]" as whining. Carry out whining: say "[no-time][if the player is Harriet]You can hear dad's voice in your head: 'Please don't whine, Harriet.'[otherwise]You don't like whiners. You don't want to be one." Part - Whistle [all safe] whistling is an action applying to one topic. Understand "whistle", "whistle [text]" as whistling. Check whistling: if player is Demi, instead say "[no-time]This is a bit embarrassing, but you can't whistle. Harriet can do it, and you keep trying to do it, and mum says one day you'll be able to do it, but you haven't been able to do it yet."; abide by the duelblock B rule; if location is Picnic and Ayla is home and singing of Ayla is 1: instead say "[one of]What a smart idea! You don't know the words of Ayla's song, so you try to whistle along with her instead. Ayla smiles at you as she continues to sing.[or]You whistle along to Ayla's song some more.[stopping]"; abide by the aylavince alert verb rule; instead say "You make a little whistling sound." This is the aylavince alert verb rule: if player is Harriet and Ayla is in location and Ayla is untagged: say "[no-time]If you [current_command] now, Ayla will know you're coming."; rule fails; if Vince is in location and Vince is untagged: say "[no-time]If you [current_command] now, Vince will know you're coming."; rule fails. Part - Win [all safe] winning is an action applying to one topic. Understand "win", "win [text]" as winning. Carry out winning: say "[no-time]Once you've tipped all your friends, then you'll win." Part - Yawn Understand "yawn", "yawn [text]" as a mistake ("[no-time]You're not sleepy-tired."). Part - Zap [all safe] [duel safe - I will allow the player to keep zapping inanimate objects during the duel, in case they think it will help them.] ever_tried_fighting is a number variable. [global] Understand the commands "attack", "fight" as something new. zapping is an action applying to one thing. Understand "zap [something]", "shoot [something]", "shoot at [something]", "fire at [something]", "point wand [something]", "point wand at [something]", "wave wand [something]", "wave wand at [something]", "attack [something]", "expelliamus [something]", "fight [something]", "jinx [something]", "hex [something]" as zapping. undirected zapping is an action applying to one topic. Understand "zap", "shoot", "shoot at", "fire at", "point wand", "point wand at", "wave wand at", "attack", "expelliamus", "fight", "jinx", "hex" as undirected zapping. ever_tried_vague_pointing is a number variable. [global] vague pointing is an action applying to one topic. Understand "point", "point [text]" as vague pointing. Carry out vague pointing: if ever_tried_vague_pointing is 0: now ever_tried_vague_pointing is 1; say "[line break][second custom style]<< Note that typing POINT is short for POINT WAND AT (someone) in this game - >>[normal style]"; try undirected zapping. To say zap: say "You "; if current_command is "wave": say "wave "; otherwise: say "point "; say "your wand at [the noun] and yell out 'Zap!'[paragraph break]". This is the two handed zapping block rule: if player holds leafmissile, instead say "[no-time]Your hands are full with the leaves. You'll have to drop them or throw them or something before you can aim your wand well enough to be able to zap stuff." Check zapping: if current_command is "fight" or current_command is "attack": if noun is not a person, instead say doesn't make sense; if ever_tried_fighting is 0: now ever_tried_fighting is 1; say "Your way of fighting is to use your wand to zap people. [run paragraph on]". [let action continue thru checks.] Check zapping: [general] abide by the two handed zapping block rule; if noun is a wand carried by player, instead say how nonsense; if noun is not leaf and noun is not leafmissile and noun is not mudpie: if noun is player or noun is enclosed by player, instead say "[no-time][if player is Harriet]Zapping yourself would be dumb![otherwise]Zapping yourself is not a smart idea."; if noun is enclosed by a nottheplayer person (called the loser), now noun is the loser; [if carried or worn by person, or it's a part of them or one of their possessions, convert to the person] if noun is not a person: say zap; if noun is glass lemonade: if player is Harriet, instead say "[one of]'Don't zap my lemonade,' says Demi.[or]'Cut that out!' says Demi.[or]Demi rolls her eyes at you.[or]Nothing happens.[stopping]"; if player is Demi, instead say "[one of]'Dad!' yells Harriet, 'Demi zapped my lemonade![paragraph break]'Demi, don't zap your sister's lemonade,' says dad.[paragraph break]You roll your eyes.[or]Harriet ignores you.[stopping]"; instead say "Nothing happens."; [end with this message unless you fired at a person or animal] if noun is in BelowWall and player is in AboveWall, instead say "[zap][The Noun] doesn't hear you." Check zapping: [animals] if noun is black prince cicada, instead say "[if player is Harriet][zap]The cicada doesn't move. How boring![otherwise]You don't want to bother the cicada. Jack is doing that enough for everyone."; if noun is dark bird, instead say "[zap]The bird's a bit far away. It probably didn't notice."; [remember, dark bird not in Demi game] if noun is galah, instead say "[no-time]The galah can be a bit noisy, but you don't want to zap any birds. You have a feeling they're mostly on your side."; if noun is orb weaver spider, instead say "[if player is Harriet][zap]The spider doesn't move.[otherwise][no-time]No, you like the spider."; if noun is raven: if player is Harriet: say zap; say "The raven doesn't even blink. "; if Jack is in location: instead say "Jack laughs. Grrr!"; otherwise: instead say line break; if player is Demi: instead say "[no-time]You wouldn't zap the raven. You like him."; if noun is Stevie: if player is Harriet, instead say don't shoot the nice lady; if player is Demi, instead say "[RandomLock][zap][one of][The Stevie]'s tail wags back and forth.[or][The Stevie] doesn't seem to notice.[purely at random]". To say don't shoot the nice lady: if talked_to of lady is 0: say "[no-time]You'd rather pat that doggy."; stop the action; say "[no-time]You don't want to zap the nice lady or [lower_name of Stevie]. You like them." Check zapping: [various people] if noun is lady, instead say don't shoot the nice lady; [Demi never meets lady] if noun is old man, instead say "[no-time]That would be too rude."; Check zapping: if noun is Ayla: if Ayla is untagged and player is Harriet, instead say "[no-time]If you make a loud zapping sound, she might get a chance to run away."; instead say "[no-time][if player is Harriet]Ayla is too nice to zap![otherwise]If you zapped Ayla, you'd feel like a meanie." Check zapping: if noun is dad: if player is Harriet, instead say "[zap][one of]'Harriet! How could you zap your own father?' asks dad in surprise. You laugh.[or]'I can't believe you would zap me twice,' says dad. He is so funny.[or]'Three times?' says dad. Then he turns to mum and says, 'Harriet zapped me three times.'[paragraph break]'Three times, eh?' says mum. 'How sad.'[or]'I give up!' says dad.[or]'Okay, that's enough now,' says dad.[or]Dad doesn't pay attention. You guess he's had enough.[stopping]"; if player is Demi, instead say "[zap][one of]'Argh, you got me,' says dad, clapping his hands to his chest, which makes you laugh. Then he goes back to talking to mum.[or]Dad ignored you this time. No fun![or]Dad ignores you.[stopping]". Check zapping: if noun is Demi: if Marion is home, instead say "[zap][one of]Demi says, 'I don't have time for your zapping while I'm clapping.'[paragraph break]'That's a good rhyme,' you say.[or]Demi ignores your zap to pay attention to her clapping.[stopping]"; instead say "[one of][zap]Demi quickly grabs her own wand and swishes it in front of her. 'PEOOO!' she says, making the zapping noise. 'I blocked your zap.' Then she goes back to her lemonade.[or][zap]Demi says, 'Don't mess with me! I am not even joking!'[paragraph break]You giggle. She is so funny when she gets all serious.[or][zap]Demi grabs her wand again, waves it at you and says, 'Zap Zap Zap!'[paragraph break]'You missed,' you say.[paragraph break]'Ha!' says Demi. 'You didn't even try to get out of the way. I zapped you every time.'[paragraph break]You know you didn't get out of the way, but you don't want to say so.[or][no-time]You don't want to get into an argument with Demi about the zapping. She would win.[stopping]". Check zapping: if noun is Harriet, instead say "[one of][zap]Harriet says, 'Don't zap me when I'm thirsty.'[paragraph break]'I'll zap you when I like,' you say.[or][zap]'Demi!' whines Harriet.[or][zap]Harriet bangs her hands on the table and says, 'B - A - R spells bar. You can't zap me while I'm on bar. Nyah nyah!'[or][no-time]Harriet says she's on bar. You're not sure about that, but you would probably say the same thing if she was zapping you, so you decide to not to zap her any more.[stopping]". Check zapping: if noun is Jack: say zap; if Jack is stunned or Jack_Stunned is happening or Jack is home or about_to_get_up of Jack is 1, instead say "Jack doesn't seem to take any notice."; say "[RandomLock]Jack [Jack_dodge] [one of]to the side[or]aside[purely at random] and [if player is Harriet]shouts[otherwise]says[end if], '"; if player is Harriet, instead say "[RandomLock][one of]You missed!'[or]Missed me!'[or]Too slow!'[or]You missed the Spiderman!'[or]Your spells won't work on me!'[or]Your spells can't hit the Spiderman!'[purely at random]"; if player is Demi, instead say "[RandomLock][one of]You missed, witchetty-poo.'[or]Point that thing someplace else!'[or]PEEOOO!.. you missed!'[purely at random]". Check zapping: if noun is Marion: if duel_mode is 1: instead try undirected zapping; [redirect works for both sisters] if Marion is tagged: instead say "[no-time]You zapped Marion enough during the duel."; otherwise: [Harriet possible only] instead say "[no-time]You won't try to zap Marion until you decide to duel with her." Check zapping: if noun is mum: if player is Harriet, instead say "[one of][zap]'Aren't you supposed to be a good fairy?' asks mum.[paragraph break]'Mm, I guess,' you say.[or][zap]'I would never have given you that wand if I knew you were going to shoot me with it,' says mum. You giggle.[or][zap]'Okay, no more zapping me now, thanks, Harriet,' says mum.[paragraph break]'Ohh!' you say.[or][no-time]You better not. Mum told you to stop.[stopping]"; if player is Demi, instead say "[zap][one of]'Ah, very good, Demi,' says mum with a smile.[or]Mum points a finger at you and says, 'Zap - back atcha.'[paragraph break]You wave your wand and knock her shot aside, making a PEOOO sound as you do so. 'I blocked you, mum!'[or]'You should try zapping your friends now[first time], sweetie. I'm zapped enough[only],' says mum.[stopping]". Check zapping: if noun is Pia: if Pia is tagged, instead say "[if player is Harriet][one of][zap]'Hey, that's not nice,' says Pia.[paragraph break]'Oh, sorry,' you giggle.[or][no-time]No, you don't want to annoy Pia.[stopping][otherwise][one of][zap]'I thought you liked cats?' says Pia.[paragraph break]'Oops!' you say.[or][no-time]Pia's right. You like cats, and you don't want to zap them.[stopping]"; if location is Gazebo, instead say "[zap]Pia doesn't budge."; say zap; if Pia_Stunned is happening, instead say "Pia smiles and leaps to her feet."; instead say "[if player is Harriet][one of]Pia leaps out of the way and makes a swishing sound with her mouth. 'You can't magic a cat,' she says. 'We're too quick.'[or]You try zapping Pia again, but she's too quick. She gets out of the way.[stopping][otherwise]Pia springs out of the way of your magic. [first time]You snap your fingers. [only]She's too fast." Check zapping: if noun is Rose: if player is Harriet, instead say "[zap][The Rose] doesn't turn around. Maybe she didn't hear you, or maybe she pretended not to hear you."; if player is Demi: say zap; if sentinel of Rose is greater than 0, instead say "Rose seems to ignore you."; now irritation of Rose is irritation of Rose plus 3; if irritation of Rose is 4 or irritation of Rose is greater than 5, instead do the Rose irritation; say "'Don't you do that to me!' says Rose. 'I already told you not to be smart.'[paragraph break]You don't like this bossy boots. You have an idea.[paragraph break]'I could jinx you with my magic,' you say. 'Do you know what that means? You would have bad luck all week. Every time you try walking somewhere, you'll trip over. I mean it!'[paragraph break]"; if ayla_mode is 1, say "'Yeah!' says Ayla from behind you.[paragraph break]"; if talked_to of Rose is 1, now talked_to of Rose is 2; [if next dialogue was 'don't copy!', skip it] instead say "You raise your wand towards Rose. She starts to look afraid. It's working!..[paragraph break]Suddenly she frowns. 'Liar,' she says, 'You can't do that.'[paragraph break]Rats!" Check zapping: if noun is Vince: if player is Harriet: if Vince is untagged, instead say "[no-time]You don't want to warn him that you've found him by making a loud noise."; instead say "[zap][one of]'Soldiers don't believe in magic,' says Vince, 'so you can't zap me.'[paragraph break]'That's not fair!' you say.[or]'I already told you, you can't magic me,' says Vince.[paragraph break]How annoying![or]Vince ignores you.[stopping]"; if player is Demi: if Vince is untagged, instead say "[no-time]You don't want to warn him that you've found him by making a loud zapping noise."; instead say "[one of][zap]'Soldiers don't believe in magic,' says Vince, 'so you can't magic me.'[paragraph break]'What?' you say. 'That's cheating.' Vince shakes his head.[or][zap]Vince frowns.[or]'Zap zap zap!' you say, but Vince is ignoring you.[or][no-time]You've had your fun with Vince. You won't zap him any more.[stopping]". Check zapping: if noun is Sam: say zap; if player is Harriet: if Sam is home, instead say "'Get off, I wanna rest,' says Sam."; if Sam is stunned or fatigue of Sam is greater than 1, instead say "Sam is too out of breath to react."; instead say "[one of]'Boing!' says Sam. 'Your magic bounced off my armour.'[or]'Boing!' says Sam. 'Your magic bounced off my armour again.'[or]Sam ignores you.[stopping]"; if player is Demi: if Sam is home, instead say "'Me sleepy,' says Sam."; instead say "[one of]'My armour protects me from your spells,' Sam says proudly.[or]'My armour still protects me from your spells,' says Sam.[or]'You're wasting your time,' says Sam.[stopping]". Check undirected zapping: if duel_mode is 0: abide by the two handed zapping block rule; seek out anyone presence; say "[no-time][line break][second custom style]<< "; if Marion is tagged: [IE if you've been through the duel] say "When you're not dueling, you "; otherwise: say "You "; say "also need to say whom or what you want to "; if current_command is "fire": say "fire at. "; otherwise if current_command is "point": say "point your wand at. "; otherwise if current_command is "wave": say "wave your wand at. "; otherwise: say "[current_command]. "; say "For example[quiptext]you could type "; if current_command is "fire": say "FIRE AT "; otherwise if current_command is "point": say "POINT WAND AT "; otherwise if current_command is "wave": say "WAVE WAND AT "; otherwise: say capitalised "[current_command] "; say CAPS POWER PERSON; say ". >>[normal style][line break]"; rule fails. Carry out undirected zapping: [duel mode must be 1 to get here] [zapt] if player is Harriet: if duel_position is 1: [soundsafe] say "'Zap!' you yell, [do Harriet's zap]poking your want at Marion, but it's too late - you didn't do anything about the shot that was coming towards you, and it hit you.[paragraph break]"; instead do the Harriet dp1kill; if duel_position is 2: [soundsafe] say "You point your wand at Marion and yell out 'Zap!' - but Marion already has her weapon up to protect herself, so she blocks your shot easily with one swoosh of the sword.[paragraph break]'Zap!' she yells, and with a second swoosh, she sends another shot in your direction. You aren't ready at all, and the zap lands right on your tummy.[paragraph break]'Oof!' you say, holding your belly.[paragraph break]"; say combo 321; instead do the Harriet dp1kill; if duel_position is 3: [soundsafe] now duel_text is "You throw another shot at Marion as she runs across the grass - [combo 321]'Zap!'[paragraph break]Marion waves her sword over her shoulder and bounces your shot away. [Marion reaches the hill]'"; give Marion pose 5; advance the duel; rule succeeds; if duel_position is 4: [soundsafe] now duel_text is "You quickly throw a [do Harriet's zap][do Marion's zap]zap back at Marion. She makes an explosion sound then ducks out of sight behind the hill.[paragraph break]'Your shot hit my shot,' she calls out. 'They blew each other up.'[paragraph break][Marion pops up]!"; give Marion pose 6; advance the duel; rule succeeds; if duel_position is 5: [soundsafe] say "'Zap!' you [do Harriet's zap]shout, throwing your zap straight at Marion's head. You got her![paragraph break]'Ohhh!' Marion cries, jumping out from behind the hill and stomping around. Then you both laugh. Marion walks over to her hat, picks it up and puts it back on her head. She comes over to you.[paragraph break]'You won, so you can tip me now,' she says, holding out her open hand.[paragraph break]'Tip,' you say, clapping her hand lightly. Marion smiles."; now current_actor is Marion; abide by the grant_a_point rule; say "[line break]'Let's have another duel later,' you say.[paragraph break]'Yeah!' says Marion."; now Marion wears black pirate's hat; give Marion pose 7; now duel_mode is 0; Marion leaves in 1 minute from now; rule succeeds; otherwise if player is Demi: if duel_position is 1: [soundsafe] now duel_text is "'Expelliamus!' you say, throwing a zap at Marion. Marion jumps in the air and does a little dance to twist out of the way. Wow![paragraph break]'Missed me,' she shouts. 'No funny magic words,' she yells over her shoulder. 'You have to say [']zap['] or it doesn't count.'[paragraph break]'Okay,' you shout back.[paragraph break]Marion just made it to the far side of the roundabout. [Marion kneel and retaliate]'"; say combo 5delay1; give Marion pose 9; advance the duel; rule succeeds; if duel_position is 2: [soundsafe] say "You fling a shot right back at Marion - 'Zap!' - but you walked straight into hers while you were doing it. And it looks like your own shot missed because Marion ducked back behind the roundabout bars."; say combo 51; instead do the Demi dp1kill; if duel_position is 3: [soundsafe] now duel_text is "'Zap!' you yell, throwing another shot at Marion with a big snap of your wand. Marion ducks back behind the roundabout bars to get out of the way.[paragraph break]Now's your chance. You run forward as quickly as you can to close the distance between yourself and the roundabout.[paragraph break]You made it! Now that you're right beside the roundabout, Marion isn't hidden from you any more. She's still kneeling down and hanging off the bar on the opposite side of the roundabout with one hand, and she looks surprised to see you're so close. 'Zap!' she yells, chucking another shot at you over the roundabout, though she didn't aim very well."; give Marion pose 11; say combo 5delay1; advance the duel; rule succeeds; if duel_position is 4: [soundsafe] say "'Zap!' you shout, tossing a shot down at Marion - oops, you bumped the roundabout! The roundabout moves Marion to safety. While you're still confused, she chops her sword through the air and yells 'Zap!' again, and you're hit."; say combo 51; instead do the Demi dp1kill; if duel_position is 5: [soundsafe] say "You immediately realise you made the wrong decision. Marion's already yelling 'I got you, I got you!' - and she's right. She [do Marion's zap]fired first."; instead do the Demi dp1kill; if duel_position is 6: [soundsafe] say "'Zap!' you shout, [do Demi's zap]pointing your wand straight at Marion's vest.[paragraph break]'Argh!' she cries, 'ya got me!' Then she rolls around on the ground making loud dying noises."; now chasehide of roundabout is 1; instead proceed to Demi's victory. Book - Every turn rules that need to go last [for instance - if the lady's every turn stuff isn't down here, she will move before other people doing every turn stuff. I want her move message to appear last, hence she's down here.] Part - Ayla Every turn when dog_interact of Ayla is 1: if Stevie is in location, follow the complex dog interaction rule. Part - Jack Every turn when location is Moreton West and Jack is in location and spider is in location and jack_meets_spider of Jack is 0: now jack_meets_spider of Jack is 1; if player is Harriet: say "Jack suddenly runs over to the spider and pretends to shake its hand. 'How ya doing, dude?' he shouts. 'It's me, Spiderman!' But when the spider doesn't react, he loses interest."; rule succeeds; otherwise: say "Jack suddenly jumps towards the spider and says, 'Hey! Spider's my mate, right spidey?'[paragraph break]The spider just sits there.[paragraph break]'Oi,' Jack yells, 'wake up!'[run paragraph on]"; if Sam is in location: say "[paragraph break]Sam giggles.[paragraph break]'Grrr,' says Jack, turning his back on the spider."; otherwise: say " – but it still doesn't move. 'Not talking, eh?' says Jack. 'Our friendship is over!' Then he turns his back on the spider and folds his arms."; rule succeeds. Part - Lady To delay the lady: [only delay her if she's walking around - IE her pose is flight1] if lady is flight1: now delay of lady is 2; restpose the lady. To restpose the lady: now initial appearance of lady is "[RandomLock]The lady is [one of]resting[or]standing[or]relaxing[purely at random] here while Stevie [one of]sniffs around in the grass.[or]rolls around on the ground.[or]plays in the grass.[or]runs around.[or]runs back and forth.[or]runs in circles.[or]chases herself in circles.[or]sniffs the ground.[purely at random]". To walkpose the lady: now initial appearance of lady is "The lady is walking [lower_name of Stevie] here." Every turn when player is Harriet and lady is original: if waittimer of lady is not 0: decrement waittimer of lady; if waittimer of lady is 0: now talked_to of lady is 4; do the Stevie restless supergo. Every turn when lady is flight1: if delay of lady is 1: now delay of lady is 0; if lady is in location: lock the dice; if a random chance of 1 in 7 succeeds: say "The lady smiles at you."; otherwise if a random chance of 1 in 2 succeeds: lock the dice; if a random chance of 1 in 2 succeeds: say "[RandomLock][one of]'Let's go, Stevie', says the lady, [or]The lady gives the leash a little pull to get Stevie's attention, [or]The lady gives a little whistle to get Stevie's attention, [or]The lady rubs Stevie's head to get her attention, [purely at random][run paragraph on]"; now they of lady is 1; otherwise: say "[RandomLock][one of]'Come on, Stevie,' says the lady.[or]'Hey', the lady says to Stevie.[or]'Let's go,' the lady says to the dog.[purely at random]"; if delay of lady is 2: [if you interrupted the lady, her delay will be set to 2.] now delay of lady is 1; continue the action; [note - was 'stop the action' before the stevie time freeze incident. That's what froze everything!] walkpose the lady; let way be the best route from the location of the lady to ladytarget through oklady rooms; try the lady going way; try Stevie going way; if lady is in ladytarget: lock the dice; now waittimer of lady is a random number between 3 and 8; now lady is stunned; restpose the lady. Every turn when lady is stunned: decrement waittimer of lady; if waittimer of lady is 0: now location of lady is antilady; [temporarily prevent her targeting her current location] lock the dice; now ladytarget is a random oklady room; now location of lady is oklady; set the lady in motion. Part - Stevie Every turn when Stevie is flight1: [only possible in Demi game] [if don't_move_again_this_turn of Stevie is 1: now don't_move_again_this_turn of Stevie is 0; stop the action;] [say "EVERY TURN WHEN STEVIE IS FLIGHT 1 WENT OFF NOW"; [debug] ] if Stevie is in ladytarget and Stevie is not flight2: make Stevie pleased with arriving; [have to check this before we move as well, in case player chased dog into ladytarget] continue the action; [note - this section used to be 'instead make Stevie pleased with arriving', before the stevie time freeze incident, but I've changed it to make sure all every turn rules keep firing] walkpose Stevie; let way be the best route from the location of Stevie to ladytarget through oklady rooms; try Stevie going way; [say "way: [way][line break]"; say "target: [ladytarget]"; [debug] ] if Stevie is in ladytarget and Stevie is not flight2, make Stevie pleased with arriving. To make Stevie pleased with arriving: lock the dice; now waittimer of Stevie is a random number between 3 and 6; now Stevie is stunned; [say "STEVIE WAS STUNNED IN THE PLEASED ROUTINE."; [debug] ] restpose Stevie. To restpose Stevie: now initial appearance of Stevie is "[if justchased of Stevie is 1][The Stevie] comes to a halt.[otherwise][The Stevie] is sniffing around here." To walkpose Stevie: if extra_status of Stevie is 5: now initial appearance of Stevie is "[if justchased of Stevie is 1][The Stevie] comes to a halt.[otherwise][The Stevie] is wandering around here."; otherwise: now initial appearance of Stevie is "[if justchased of Stevie is 1][The Stevie] comes to a halt.[otherwise][The Stevie] is running around here." Every turn when Stevie is stunned: [only possible in Demi game] unless Stevie is in Treehouse: decrement waittimer of Stevie; if waittimer of Stevie is less than 1: now location of Stevie is antilady; [temporarily prevent dog targeting its current location] lock the dice; now ladytarget is a random oklady room; now location of Stevie is oklady; set Stevie in motion. To set Stevie in motion: now Stevie is flight1. [say "BACK ON THE MAP********". [debug] ] Book - Command Removals and Rewrites Part - Knock out score notification toggling Understand the commands "notify", "notify on", "notify off" as something new. wanting to mess with notifications is an action out of world applying to nothing. Understand "notify", "notify on", "notify off" as wanting to mess with notifications. Carry out wanting to mess with notifications: say "[line break][second custom style]<< Score notification is always on in Six. After all, there are only six points to score! >>[normal style][line break]". Part - Knock out diagonal compass directions going all diagonal is an action applying to nothing. Understand the commands "sw", "se", "nw", "ne", "southwest", "southeast", "northwest", "northeast" as something new. Understand "sw", "se", "nw", "ne", "southwest", "southeast", "northwest", "northeast", "go sw/se/nw/ne/southwest/southeast/northwest/northeast" as going all diagonal. Instead of going all diagonal: say line break; take no time; if maze_mode is 0, say "[second custom style]<< You can't use the diagonal compass directions in this game. >>[normal style][line break]"; otherwise say "[second custom style]<< You can't use diagonal compass directions in this game, and you can't use any compass directions while in the maze. >>[normal style][line break]". Part - Closing off clothes removal and related dumb implicit commands Check an actor putting something on (this is the NEW can't put what's not held rule): if the actor is carrying the noun, continue the action; if the actor is wearing the noun, continue the action; stop the action with library message putting it on action number 1 for the noun. The NEW can't put what's not held rule is listed instead of the can't put what's not held rule in the check putting it on rules. [Here's the orig 'can't put what's not held' rule: Check an actor putting something on (this is the can't put what's not held rule): if the actor is carrying the noun, continue the action; if the actor is wearing the noun, continue the action; issue miscellaneous library message number 26 for the noun; silently try the actor taking the noun; if the actor is carrying the noun, continue the action; stop the action with library message putting it on action number 1 for the noun.] Check an actor dropping (this is the NEW can't drop clothes being worn rule): if the actor is wearing the noun: silently try the actor trying taking off the noun; if the actor is wearing the noun, stop the action; The NEW can't drop clothes being worn rule is listed instead of the can't drop clothes being worn rule in the check dropping rules. [ the NEW version removes the printed message declaring it's trying to drop the worn item first, but really it still tries to do that- which triggers the appropriate prohibition message.] Part - Save Rewritten to prevent sound-related bugs Understand the command "save" as something new. wanting to save the game is an action out of world. Understand "save" as wanting to save the game. Carry out wanting to save the game: stop all the sounds; try saving the game. Part - Quit and Restart Commands Rewritten To say playon: say "Okay. The game continues!"; now suspend_extra_score is 0. This is the NEW quit the game rule: now suspend_extra_score is 1; try requesting the score; say "Quitting will cause your current game to be lost and will close down Six. If you just want to go back to the main menu, you should use the RESTART command instead.[paragraph break]"; let answer be yesno_answer_with_question "Do you really want to quit Six? [bold type] (Y/N)[roman type][line break]"; if answer is "NO": say "[playon]"; stop the action; if answer is "YES": stop all the sounds; say "[seeya_later]"; stop game abruptly. The NEW quit the game rule is listed instead of the quit the game rule in the carry out quitting the game rulebook. This is the NEW restart the game rule: now suspend_extra_score is 1; try requesting the score; let answer be yesno_answer_with_question "Do you really want to abandon the current game and restart? [bold type] (Y/N)[roman type][line break]"; if answer is "NO": say "[playon]"; stop the action; if answer is "YES": do a super reboot. The NEW restart the game rule is listed instead of the restart the game rule in the carry out restarting the game rulebook. Part - Command Maintenance Chapter - Verb Synonyms Understand "ascend" as up. Understand "descend" as down. Understand "walk to [a direction]", "run to [a direction]", "skip [a direction]", "skip to [a direction]", "hop [a direction]", "hop to [a direction]" as going. [plain 'walk' and 'run' already in standard rules. Straight 'skip' and 'hop' equal jump in standard rules.] Understand "walk [text]", "walk to [text]", "run [text]", "run to [text]", "skip [text]", "skip to [text]", "hop [text]", "hop to [text]" as hopeless going. Hopeless going is an action applying to one topic. Carry out hopeless going: issue library message going action number 7. Understand "pronoun" as requesting the pronoun meanings. Understand the commands "inspect", "observe", "view" as "examine". Understand the command "taste" as something new. Understand "taste" as eating. Understand the commands "points", "sc" as "score". Chapter - Eliminating swearing Understand the commands "bother", "curses", "drat", "darn", "shit", "fuck", "damn" as something new. cursing is an action applying to one topic. Understand "bother", "bother [text]" as cursing. Understand the commands "curses", "drat", "darn", "shit", "fuck", "damn" as "bother". [A maximum of 32 synonyms for 'bother' are allowed in this line. Restore or add your own curse words to this code by adding them with commas after 'damn'.] Carry out cursing: say "[no-time]Huh?" Chapter - Verbs you don't need to use flaw1 is an action applying to one topic. flaw2 is an action applying to one topic. Understand the commands "adjust", "attach", "awake", "awaken", "break", "burn", "buy", "cast", "chop", "clean", "close", "consult", "cover", "crack", "cross", "destroy", "disrobe", "doff", "don", "dust", "embrace", "fasten", "feed", "feel", "insert", "kill", "light", "lock", "murder", "pay", "polish", "press", "prune", "punch", "purchase", "rub", "screw", "scrub", "set", "shed", "shine", "shut", "slice", "smash", "smell", "sniff", "switch", "tease", "think", "thump", "tie", "torture", "touch", "unlock", "unscrew", "unwrap", "wake", "wipe", "wreck" as something new. [To eliminate existing verbs, they MUST first be defined as something new - otherwise functional variations will slip through, such as 'burn me' - things ending with 'me' in general. There may be others but this is a known one.] Understand "adjust", "adjust [text]", "attach", "attach [text]", "awake", "awake [text]", "awaken", "awaken [text]", "break", "break [text]", "burn", "burn [text]", "buy", "buy [text]", "cast", "cast [text]", "chop", "chop [text]", "clean", "clean [text]", "close", "close [text]", "consult", "consult [text]", "cover", "cover [text]", "crack", "crack [text]", "cross", "cross [text]", "destroy", "destroy [text]", "disrobe", "disrobe [text]", "doff", "doff [text]", "don", "don [text]", "dust", "dust [text]", "embrace", "embrace [text]", "fasten", "fasten [text]", "feed", "feed [text]", "feel", "feel [text]", "insert", "insert [text]", "kill", "kill [text]", "light", "light [text]", "lock", "lock [text]", "murder", "murder [text]", "pay", "pay [text]", "polish", "polish [text]", "press", "press [text]", "prune", "prune [text]", "punch", "punch [text]", "purchase", "purchase [text]", "rub", "rub [text]", "screw", "screw [text]", "scrub", "scrub [text]", "set", "set [text]", "shed", "shed [text]", "shine", "shine [text]", "shut", "shut [text]", "slice", "slice [text]", "smash", "smash [text]", "smell", "smell [text]", "sniff", "sniff [text]", "switch", "switch [text]", "tease", "tease [text]", "think", "think [text]", "thump", "thump [text]", "tie", "tie [text]", "torture", "torture [text]", "touch", "touch [text]", "unlock", "unlock [text]", "unscrew", "unscrew[text]", "unwrap", "unwrap [text]", "wake", "wake [text]", "wipe", "wipe [text]", "wreck", "wreck [text]" as flaw1. [this line then eliminates these verbs from the game. The regular and [text] variation in each case is essential to prevent 'I only understood you as far as...' messages from occurring.] Understand "advance", "advance [text]", "brag", "brag [text]", "chirp", "chirp [text]", "curse", "curse [text]", "find", "find [text]", "fly", "fly [text]", "join", "join [text]", "poke", "poke [text]", "scratch", "scratch [text]", "shake", "shake [text]", "sneak", "sneak [text]", "steal", "steal [text]", "stroll", "stroll [text]", "tackle", "tackle [text]", "trap", "trap [text]", "tweet", "tweet [text]", "untie", "untie [text]", "wander", "wander [text]", "wash", "wash [text]", "wink", "wink [text]" as flaw1. [for verbs that aren't in Inform by default, you don't have to define them as 'something new' first, but you do need to add the 'verb [text]' variations to properly cripple them.] Carry out flaw1: say "[no-time][line break][second custom style]<< You don't need to use the verb "; say capitalised "[current_command] "; say "in this game. >>[normal style]"; say line break. Understand the command "y" as something new. [Eliminate these completely - game will respond 'I don't know that verb.'] Understand the commands "turn on/off", "sit in/inside", "look up" as something new. Understand "turn on/off", "turn on/off [text]", "sit in/inside", "sit in/inside [text]", "look up", "look up [text]", "play in", "play in [text]" as flaw2. Carry out flaw2: say "[no-time][line break][second custom style]<< You don't need to use the command "; say capitalised "[current_command2] "; say "in this game. >>[normal style]"; say line break. [2 worders: VS regular turn, for roundabout, which I'll allow] Chapter - Out of World Stuff Asking for credits is an action out of world applying to one topic. Understand "credit", "credit [text]", "credits", "credits [text]", "author", "author [text]", "authors", "authors [text]" as asking for credits. Carry out asking for credits: say the_game_credits. Asking for help is an action out of world applying to one topic. Understand "help", "about", "about [text]", "info", "info [text]", "information", "information [text]", "instructions", "instructions [text]" as asking for help. Understand "help [text]" as a mistake ("[no-time][line break][second custom style]<< You don't need to use HELP as a verb in this game, but if you type HELP on its own, you will be taken to Six's help menu. >>[normal style]"). Carry out asking for help: now current menu is Table of Master Options; carry out the displaying activity; clear the screen; now special_look_flag is 1; [without this, first move after return from menu screen is a freebie] try looking. Asking for handylist is an action out of world applying to one topic. Understand "handy", "handy [text]" as asking for handylist. Carry out asking for handylist: say "[line break][second custom style]<< Here's a handy list of Six's main special commands. >>[normal style][paragraph break]"; repeat through table of handiness: if handy entry is "CONTROLS": if player is Harriet or numero in row 2 of Table of Sesame is 0, next; if ever_been_in_maze of Demi is 1 or numero in row 5 of Table of Sesame is 439: say "CONTROLS[line break]"; next; otherwise: say "[handy entry][line break]". Table of handiness handy "* Game Commands *" " " "CHASE (PERSON) (DIRECTION)" "FOLLOW (PERSON)" "LISTEN" "MAP" "SCORE" "SEARCH (SOMETHING)" "TALK (PERSON) [bracket]T for short[close bracket]" "TIP (PERSON)" " " "* Utility Commands *" " " "COLOUR" "COMPASS ON" "COMPASS OFF" "CONTROLS" [only appears if appropriate] "EXITS" "EXITS OFF" "EXITS ON" "HANDY" "VOLUME" Understand "hint", "hint [text]", "hints", "hints [text]", "walkthru", "walkthru [text]", "walkthrough", "walkthrough [text]" as asking for hints. Asking for hints is an action out of world applying to one topic. Carry out asking for hints: say "[one of]Hm, you wonder if you could ask [if player is Harriet]mum and dad[otherwise]your parents[end if] if they saw where your friends ran to, but... no, that would be cheating. You feel confident you can find everyone on your own. [hintron][or]You'll tip everyone, you know you will! [hintron][stopping]". To say hintron: say "[paragraph break][second custom style]<< There are no built-in hints in Six. You might want to review the topic 'A few words of advice' in the HELP menu, or in the game's manual. >>[normal style][line break]". Wanting to change the volume is an action out of world applying to one topic. Understand "volume", "vol", "volume [text]", "vol [text]", "sound", "sound [text]" as wanting to change the volume. Carry out wanting to change the volume: say line break; if glulx sound is supported: poll the volume settings; otherwise: say "[second custom style]<< The volume change command has been disabled because your Interactive Fiction interpreter doesn't support sound. >>[normal style][line break]". Section - Version Command noversion is a number variable. [global] Understand "version", "versions" as requesting the story file version. [can't find any way to add [text] after these without making the source not-compileable] This is the add the banner to the top of the story file version rule: say "[line break][header style][story title][normal style][line break][extended story headline] by [story author][line break]Release [release number] / Serial number [story serial number] / Inform 7 build [I7 version number]"; if noversion is 1: say line break; stop the action. The add the banner to the top of the story file version rule is listed first in the carry out requesting the story file version rulebook. Report requesting the story file version: if noversion is 1, stop the action; say "Exit Lister Version 9 by Eric Eve[line break]Real-Time Delays Version 1/100607 by Erik Temple[line break]Dice-Lock Version 1/080522 by S John Ross[line break]Extended Banner version 5 by Stephen Granade[paragraph break]"; say "* Six also uses modified versions of the following extensions –[paragraph break]Small Kindnesses version 11 by Aaron Reed[line break]Punctuation Removal version 4 by Emily Short[line break]Conditional Undo version 3/080626 by Jesse McGrew[line break]Multiple Sounds version 2 by Massimo Stella[line break]StartEnd MenuPages version 1 by ShadowChaser[line break]Useful Functions version 1 by ShadowChaser[paragraph break]"; say "– plus it uses unmodified versions of the following extensions:[paragraph break]'Girl Power, Yeah!' by The Spice Girls[line break]Elocution Lessons by Hermione Granger[line break]'I'm too feminine for this game' by Lucy Van Pelt[line break]'Scorpion Island relishes in its splendid isolation' by Scorpion Island[line break]'Sometimes I doubt your commitment to Sparkle Motion' by Donnie Darko[paragraph break]"; say "Six is presented in 2.6 DemiStereo (TM) in selected interpreters.[line break]". Chapter - Communication Commands Eliminated Understand the commands "answer", "ask", "no", "say", "shout", "sorry", "tell", "yes" as something new. [standard commands I am redirecting to the msg about not needing to talk to folks in this game.] Understand "answer", "answer [text]", "ask", "ask [text]", "no", "no [text]", "say", "say [text]", "shout", "shout [text]", "sorry", "sorry [text]", "taunt", "taunt [text]", "tell", "tell [text]", "yes", "yes [text]" as being a blabbermouth. [standard commands I am redirecting to the msg about not needing to talk to folks in this game.] Understand "agree", "agree [text]", "bye", "bye [text]", "compliment", "compliment [text]", "hi", "hi [text]", "demand", "demand [text]", "greet", "greet [text]", "ok", "ok [text]", "okay", "okay [text]", "order", "order [text]", "reply", "reply [text]", "request", "request [text]", "whisper", "whisper [text]", "yell", "yell [text]" as being a blabbermouth. [this second set of commands are ones that do not exist by default in inform] Being a blabbermouth is an action out of world applying to one topic. Carry out being a blabbermouth: say "[line break][second custom style]<< To communicate with other folks in Six, just type TALK TO (PERSON) or the shorter TALK (PERSON) or the supershort T (PERSON). If there's only one other character nearby, you can even just type TALK or T. >>[normal style][line break]". Chapter - Rules that have to go last! Last check taking off: if noun is worn by player, instead say "What a [nonsense] idea!" [this rule to prevent clothing removal must go after all rules giving messages for the removal of specific items of clothing. Note also that an equivalent 'check dropping' rule is not necessary, as to drop something worn, it must first be removed, which triggers this rule here.] Chapter - End Game Menu The ask the final question rule is not listed in any rulebook. [don't need this rule because this game never asks the final question - all game start and end routines are coded by me.] To say the_end1_menu: say "What do you wanna do? Please choose one of the following options:[paragraph break][fixed letter spacing]1 Undo your last move so you can keep the bad thing from happening![line break]2 Restore a saved game[line break]3 Start a brand new game[line break]4 Quit playing for now[paragraph break][variable letter spacing]". ever_printed_end1_menu, WINNERFLAG are number variables. [global] The last when play ends rule (this is the game ending rule): if WINNERFLAG is 1: if player is Harriet: instead do Harriet wins everything; otherwise: instead do Demi wins everything; otherwise: try requesting the score; while the infinite_loop is 1: redraw status line; if ever_printed_end1_menu is 1: say line break; otherwise: now ever_printed_end1_menu is 1; say the_end1_menu; let k be 0; while k is 0: let k be the chosen letter; if k is 49: if duel_mode is 1, oneify undoability; follow the immediately undo rule; [1 = undo] otherwise if k is 50: [2 = restore] try wanting to restore the game; otherwise if k is 51: [3 = start a new game] do a super reboot; otherwise if k is 52: [4=quit] stop all the sounds; say "[seeya_later]"; stop game abruptly; say "Oops. You need to press a number between 1 and 4.[paragraph break]". To do a super reboot: stop all the sounds; close the status window; clear the screen; reboot the game. To reboot the game: fill status bar with Table of Zilch Status; follow the immediately restart the VM rule. Chapter - Victories To do Harriet wins everything: say "You've tipped everybody! You've won![paragraph break]You and [current_actor] run back to the picnic area where your sister and the rest of your friends are waiting for you. Everyone congratulates you - especially dad, who says you were taking forever - and then he and mum bring out the party lunch. You and Ayla run straight to the fairy bread, but everyone else goes for the little party pies. Jack stuffs a whole pie in his mouth at once, which makes everybody laugh, though it also makes mum tell him not to be so silly."; WaitForSpace; do the post fader check; say "[paragraph break].[line break].[line break].[paragraph break]That night, after all your friends have gone home, you and Demi are allowed to stay up past bedtime to eat one more piece of birthday cake each. As you both sit there munching away, you have a think to yourself about your day. 'This was the best birthday ever,' you say to your sister. [tweeny pause]Demi smiles at you and says, 'I agree.' [tweeny pause][bold type]--- THE END[roman type][paragraph break]"; if numero in row 2 of Table of Sesame is 791: say pause_only "[line break][second custom style]<< Press SPACE to return to the main menu >>[normal style]"; do a super reboot; otherwise: say pause_only "[line break][bold type]<< Press SPACE to continue >>[roman type]"; now numero in row 2 of Table of Sesame is 791; write File of Status from Table of Sesame; [write Demi unlocked status to hard drive now] say "[paragraph break][second custom style]*** YOU HAVE UNLOCKED DEMI ! ***[normal style][paragraph break]"; if glulx graphics is supported: display_unlock; say line break; say "There are two playable characters in Six, and you just unlocked the second one – Demi. To play the game as Demi, choose the Demi option from Six's main menu.[paragraph break]Demi has a different personality to her sister, and her game is more challenging, with new tricks, locations and variations.[paragraph break]"; say pause_only "[line break][second custom style]<< Press SPACE to return to the main menu >>[normal style]"; do the post fader check; do a super reboot. To do Demi wins everything: say "You've won! You[if ayla_mode is 1], Ayla[end if] and [current_actor] hurry back to the picnic area where your sister and the rest of your friends are waiting for you. Everyone congratulates you. Then Jack says, very loudly, 'I'm starving,' and mum and dad bring out the party lunch.[paragraph break]As soon as Ayla sees the fairy bread, she says 'Yum,' and runs over to stand next to it. Harriet runs over to be beside her.[paragraph break]While you're all eating, Marion suggests that anyone wearing a hat should swap their hat with someone else. You put on Sam's helmet and give him your witch's hat. He looks very silly, and Harriet laughs at how you look now. Marion puts on Ayla's little gold crown, and Ayla's head disappears beneath Marion's giant pirate hat, which makes everybody laugh.[paragraph break]You don't like being without your hat for too long, though, so you take it back off Sam pretty quickly. You feel good when you put it back on."; say "[line break]Whoops, you just remembered the lost dog! As you're about to tell mum and dad all about it, a lady comes into the picnic area from the park. She is holding a leash, and on the end of that leash is [the Stevie], who looks happy. 'I thought I'd lost you, Stevie,' the lady says to the dog. 'We're going to get you a new leash.'[paragraph break]Ayla has seen the lady too, and runs over to talk to her. You don't hear what they say to each other, but Ayla pats the dog again before waving goodbye to both of them."; WaitForSpace; do the post fader check; say "[paragraph break].[line break].[line break].[paragraph break]That night, after all your friends have gone home, you and Harriet are allowed to stay up past your bedtime to eat some more birthday cake.[paragraph break]'I don't think you'll ever get to sleep tonight after all this,' says mum.[paragraph break]'Nobody can stop me getting to sleep,' you say, waving her off. Harriet giggles as mum leaves the room. [tweeny pause]'This was the best birthday ever,' says Harriet, munching on her slice of cake. You definitely agree. You're about to tell her so when you notice that she's concentrating hard on her cake, and whenever she concentrates hard on food like that, she makes a little happy sound. You find it funny, but Harriet doesn't like it when you say she's making sounds, so you decide not to mention it. [tweeny pause]'I agree,' you say, and you feel very happy."; play_night_music; say "[line break][bold type]--- THE END[roman type][paragraph break]"; if glulx graphics is supported: WaitForSpace; say line break; unless glulx sound is supported, say line break; [extra line needed if there's no music - annoying but I've tested it] display_winall; say "[line break]A message from the author:[paragraph break][italic type] 'Congratulations! You have completed the game with both sisters. You truly are a master of hide and seek tip. Thanks for playing.'[roman type][line break]"; say variable letter spacing; if numero in row 5 of Table of Sesame is 439: say pause_only "[line break][second custom style]<< Press SPACE to return to the main menu >>[normal style]"; do a super reboot; otherwise: say pause_only "[line break][bold type]<< Press SPACE to continue >>[roman type]"; now numero in row 5 of Table of Sesame is 439; write File of Status from Table of Sesame; [write suite unlocked status to hard drive now] say "[paragraph break][second custom style]YOU HAVE UNLOCKED THE CHASE SUITE FOR SIX[normal style][paragraph break]"; if glulx sound is supported: say "You can now listen to a suite of music composed for Six from the main menu."; otherwise: say "An option has been added to the main menu allowing you to listen to a suite of music composed for Six. However, the option will not appear in Interactive Fiction interpreters which do not support sound, or while sound support is switched off."; say "[line break]You've now unlocked all of Six's extras.[line break]"; say pause_only "[line break][second custom style]<< Press SPACE to return to the main menu >>[normal style]"; do a super reboot. To say tweeny pause: if glulx timekeeping is supported: say line break; wait 50 milliseconds before continuing, strictly; otherwise: say paragraph break. Part - Out of world time tags Rule for setting action variables when acting fast: now turn signal is "+++++++". Chapter - Built in actions Quitting the game is acting fast. Saving the game is acting fast. Restoring the game is acting fast. Restarting the game is acting fast. Verifying the story file is acting fast. Switching the story transcript on is acting fast. Switching the story transcript off is acting fast. Requesting the story file version is acting fast. Requesting the score is acting fast. Preferring abbreviated room descriptions is acting fast. Preferring unabbreviated room descriptions is acting fast. Preferring sometimes abbreviated room descriptions is acting fast. Switching score notification on is acting fast. Switching score notification off is acting fast. Requesting the pronoun meanings is acting fast. Chapter - Actions added by Wade in this source wanting to mess with notifications is acting fast. asking for credits is acting fast. asking for help is acting fast. asking for handylist is acting fast. asking for hints is acting fast. wanting to change the volume is acting fast. being a blabbermouth is acting fast. [noting is acting fast. [debug]] cheating is acting fast. wanting to save the game is acting fast. wanting to restore the game is acting fast. Chapter - Actions added by extensions [all these are from Exit Lister extension] Exit starting is acting fast. Exit stopping is acting fast. demanding compass on is acting fast. demanding compass off is acting fast. demanding exit listing is acting fast.