diff --git a/CHANGELOG.md b/CHANGELOG.md index af6707ff..1b42e9cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,63 @@ # Change log -## Release 11 (unreleased) +## Unreleased + +### Bugs fixed + +- Search engine descriptions were not shown for the e-book reader and the secretary's computer. (@Roachbones) +- The sun did not have the "distant" attribute, but instead behaved as if being touchable. (@Roachbones) +- With Andra in control, it was possible to get a reprise of Alex's hesitation speech by trying to go back in through the tall window, if you diregarded it the first time when going out. (@Roachbones) +- Examining the word, the words, or the wordage could cause run-time problems. (@Roachbones) +- The wordage description was broken since release 7. +- The start up data embedded in the game file was bad in the two previous releases. The game will now print a warning at startup if it detects bad embedded data. (@hanna-kruppe) +- Run-time problem P10 would occur when trying to remove letters from the current room. (@eriktorbjorn) +- Lena would occasionally ask the player to change the modem even though it is no longer present. (@eriktorbjorn) +- The fast travel GO TO command could be used to bypass the confrontation with Alex's father (@DefKonOne). +- Typing EXAMINE DIRECTION and then replying with a direction (such as NORTH) to the resulting "Which do you mean" disambiguation question would cause run-time problem P10. +- Run-time problem P60 would occur when using the soap dispenser after removing all the sinks. (@Stealthii) +- Turning on the tap while in a shower or bath would cause run-time problem P43 as the game attempted to move the player out of play. It was also possible to drop any objects in the bath or shower, and then remove them from play by turning on the tap. We fix this by blocking entry into showers and baths. (@Roachbones). +- The first aid station was not fixed in place and could be picked up, while its description still said it was mounted to the wall. (@lynn) +- Brock could be turned into a bock, potentially breaking the game. (@Roachbones) +- It is now possible to sit on the built-in seating in the Galley. (@Roachbones) +- Creating the scree will once again kill the player. This was changed in release 9, but it turns out the movie screen is assumed to always be in place in too many places in the code. (Mike Russo) +- The password to Brock's laptop would not be understood if entered verbatim, as the Punctuation Removal extension removes one of the characters. (Mike Russo) +- The ho would be escorted away with a park-specific message even when she was not created in the park. (@most90) + +### Cosmetic output errors + +- The guidebook and the game blurb gave two different years as the liberation of Anglophone Atlantis. (@Roachbones) +- The shred was anagrammed into a single herd rather than herds. (@Roachbones) +- The live branch is now mentioned in the description of the statue arm. +- The inlaid desk was still referenced in certain messages after it was gone. (@lynn) +- After shooting ourselves with the anagramming gun, the text would say that we return to "or original form" instead of "our original form". (@lynn) +- Taking the pill would print a message about tossing the pill into "our mouths" rather than "our mouth". (@Roachbones) +- Many more important things are now highlighted. (@dfabulich, @eriktorbjorn) +- Eliminates many unintended double spaces throughout the output text. (@Roachbones, @lynn) +- There would in some cases be a missing newline after the "Batman remark" at the end of the roundabout scene. (@eriktorbjorn) +- There would sometimes be a superfluous "I can't see what you're talking about" message when use of the letter-remover was attempted but disallowed. (@eriktorbjorn) +- Adds various missing words ("he", "when", and "is", to be precise) to the output text. (Mike Russo) +- A stray period was printed when exiting the tin hut while the trap door was closing. (Mike Russo) +- When Brock comments something the player is wearing, it could sometimes be accompanied by a bit of flavor text that would be repeated in the next paragraph. (Mike Russo) +- Fixes a typo in the description of the synthesizer after sawing it open ("permanenty".) (@dstelzer) +- Switching on or examining the ebook reader while wearing the monocle would produce some confusing text about examining the Book search engine. Interacting with other computers could produce similar undesired output. (Mike Russo) +- The message when examining the player's yacht bed would start a sentence with a lower case letter. (Mike Russo) +- If the player puts something on the u-shaped desk while the printer drawer is open, the room description would output a broken sentence. (@svemoe) +- Lena would comment on the origin paste even if the player does not have it, when fast-travelling from the Counterfeit Monkey Bar to the Aquarium Bookstore with GO TO BOOKSTORE. (@most90) +- Many of Lena's quips would not trigger on the same turn as entering the bookstore. + +### Parsing + +- Chaining letter-remover commands with THEN now works, as in U-REMOVE MOURNING DRESS THEN WAVE R-REMOVER AT T-SHIRTS, or SET LETTER-REMOVER TO U THEN WAVE IT AT DRESS THEN SET LETTER-REMOVER TO R, thanks to the "Before Processing a Command" extension and other contributions by Daniel Stelzer. (@dstelzer) +- T INSERTER without a hyphen is now understood as the T-inserter. +- The T-inserter can now be used by typing INSERT T IN (thing). +- Things like REMIND MAN THAT MRS. ROSEHIP IS MARRIED would be understood as two different commands separated by a period. Periods after titles are now properly stripped from input. +- DEMO is now understood as DEMONSTRATION. (@Stealthii) +- Contractions such as WHAT'S, HE'S, and IT'S are understood. (@Stealthii) +- Adds more synonyms to the "ask why he is here" quip for the gift shop volunteer. WHY ARE YOU HERE and ASK WHY HE IS THERE now work. +- Going DOWN when standing on the tarpaulin-covered masses in the tin hut will no longer make the player try to enter the trap door. (Mike Russo) +- ASK WHETHER BROCK SEEMED UPSET would not be understood when the current memory is "how it started with Brock". (@most90) + +## Release 11 - Some scenes would never progress if initiated close enough to in-game midnight. Getting past the secretary seems to have been particularly vulnerable to this. - Alex's mother could pick up the player or other impossibly heavy items from the futon and place them on the counter. @@ -42,7 +99,7 @@ ### Parsing -- Adds yes and no in Lojban (go'i and go'inai) as synonyms to their English counterparts. These make sense as valid replies when Professor Higgate asks if the player speaks Lojban. +- Adds yes and no in Lojban (go'i and go'inai) as synonyms to their English counterparts. These make sense as valid replies when Professor Higgate asks if the player speaks Lojban. ### Cosmetic output errors @@ -115,7 +172,7 @@ - Adds PASSKEY, another kind of plural PITS, plural PIT TRAPS, and a non-liquid kind of TEAR. - Fixes the broken plural ILLS and plural POTS that were listed in the code but impossible to create. - Creating CAT ARMY, COMPLICIT SHARK, SCREE, SORD, TOMS, RIG, or ROCK BAND no longer ends the game. This makes it possible to create some previously unreachable objects, such as TOMCATS. -- Creating TILLS does end the game, however, saving us from implementing plural TOLLS and TELLS. +- Creating TILLS does end the game, however, saving us from implementing plural TOLLS and TELLS. - The joke responses to attempting to synthesize ROCK and ROLL, KEY-LIME and PI, SILL and CATE, and PAN and EAR now work when using the programmable dais as well as the synthesizer. - The BASINS and derivatives BASIS and BASS are reinstated. These were removed by mistake in release 7. diff --git a/Counterfeit Monkey.inform/Source/story.ni b/Counterfeit Monkey.inform/Source/story.ni index cb94ecf3..45071fef 100644 --- a/Counterfeit Monkey.inform/Source/story.ni +++ b/Counterfeit Monkey.inform/Source/story.ni @@ -82,6 +82,7 @@ Use static object grouping. Include Scope Caching by Mike Ciul. Include Large Game Speedup by Andrew Plotkin. Include Subcommands by Daniel Stelzer. +Include Before Processing a Command by Daniel Stelzer. [ Startup precomputation ] Include version 1/160718 of Startup Precomputation by Dannii Willis. diff --git a/Counterfeit Monkey.materials/Extensions/Aaron Reed/Numbered Disambiguation Choices.i7x b/Counterfeit Monkey.materials/Extensions/Aaron Reed/Numbered Disambiguation Choices.i7x index 60906938..7c5e2e3c 100644 --- a/Counterfeit Monkey.materials/Extensions/Aaron Reed/Numbered Disambiguation Choices.i7x +++ b/Counterfeit Monkey.materials/Extensions/Aaron Reed/Numbered Disambiguation Choices.i7x @@ -120,6 +120,33 @@ Does the player mean doing something when the player's command includes "[number otherwise if the second noun is not nothing and the disambiguation id of the second noun is N: it is very likely; +Chapter - Remove "direction" as a synonym for directions + +[Inform will automatically create the synonym "direction" for all directions, which would make this extension cause a run-time problem when the player types something like EXAMINE DIRECTION (because we do not handle directions, only things and rooms.) As a workaround, we remove this automatic synonym. Thanks to Dr Peter Bates for writing this code.] + +When play begins (this is the depluralise directions rule): + repeat with d running through directions: + depluralise d + +To depluralise (d - a direction): (- RemoveDirectionPlural({d}); -). + +Include (- +[ RemoveDirectionPlural o f p x y a n ; + if (o == 0) rfalse; ! null object + if (~~(o provides name)) rfalse; ! no name property + n = o.#name/WORDSIZE; ! number of names in array + if (n < 2) rfalse; ! 1 or no names in array + p = o.&name; ! address of name array + f = p-->0; ! first name in array + for (x=1:x x; ! read dictionary address of next name in array + if (y == 'direction') { + p-->x = f; ! substitute with first name in array + } + } +]; +-). + Numbered Disambiguation Choices ends here. ---- DOCUMENTATION ---- diff --git a/Counterfeit Monkey.materials/Extensions/Andrew Plotkin/Large Game Speedup.i7x b/Counterfeit Monkey.materials/Extensions/Andrew Plotkin/Large Game Speedup.i7x index 3329e051..19405b3d 100644 --- a/Counterfeit Monkey.materials/Extensions/Andrew Plotkin/Large Game Speedup.i7x +++ b/Counterfeit Monkey.materials/Extensions/Andrew Plotkin/Large Game Speedup.i7x @@ -41,8 +41,8 @@ Include (- -) after "Sort" in "Tables.i6t". To sort (T - table name) up to row (N - number) in (TC - table column) order - (documented at ph_sortcolumn): - (- TableSortPartial({T}, {N}, {TC}, 1); -). + (documented at ph_sortcolumn): + (- TableSortPartial({T}, {N}, {TC}, 1); -). [We have to clear these flags for every thing. It's worth having a routine that skips I7's usual SetEitherOrProperty() mechanism and all its safety checks.] To rapidly set all things not mentioned: (- OptimizedAllThingsUnsetMentioned(); -). @@ -73,7 +73,7 @@ To set the/-- locale priority of (O - an object) to (N - a number): let rownum be 0; let blanknum be 0; repeat with I running from 1 to locale-table-count: - let ent be the notable-object in row I of the Table of Locale Priorities; + let ent be the notable-object in row I of the Table of Locale Priorities; if ent is nothing: if blanknum is 0: now blanknum is I; @@ -117,7 +117,7 @@ This is the optimized interesting locale paragraphs rule: let the domain be the parameter-object; sort the Table of Locale Priorities up to row locale-table-count in locale description priority order; repeat with I running from 1 to locale-table-count: - let O be the notable-object in row I of the Table of Locale Priorities; + let O be the notable-object in row I of the Table of Locale Priorities; if O is not nothing: carry out the printing a locale paragraph about activity with O; continue the activity. @@ -198,8 +198,8 @@ Include (- [ WriteListFrom first style depth noactivity iter i a ol; @push c_iterator; @push c_style; @push c_depth; @push c_margin; - if (iter) c_iterator = iter; else c_iterator = ObjectTreeIterator; - c_style = style; c_depth = depth; + if (iter) c_iterator = iter; else c_iterator = ObjectTreeIterator; + c_style = style; c_depth = depth; c_margin = 0; if (style & EXTRAINDENT_BIT) c_margin = 1; ! Set or clear the list_filter_permits flag. Try to do it efficiently. @@ -228,12 +228,12 @@ Include (- } } - first = c_iterator(first, depth, 0, START_ITF); + first = c_iterator(first, depth, 0, START_ITF); if (first == nothing) { - if (style & ISARE_BIT ~= 0) LIST_WRITER_INTERNAL_RM('W'); - else LIST_WRITER_INTERNAL_RM('Y'); - if (style & NEWLINE_BIT ~= 0) new_line; - } else { + if (style & ISARE_BIT ~= 0) LIST_WRITER_INTERNAL_RM('W'); + else LIST_WRITER_INTERNAL_RM('Y'); + if (style & NEWLINE_BIT ~= 0) new_line; + } else { if ((noactivity) || (iter)) { WriteListR(first, c_depth, true); say__p = 1; @@ -246,7 +246,7 @@ Include (- } } - @pull c_margin; @pull c_depth; @pull c_style; @pull c_iterator; + @pull c_margin; @pull c_depth; @pull c_style; @pull c_iterator; ]; -) instead of "WriteListFrom" in "ListWriter.i6t". @@ -265,8 +265,8 @@ Include (- } if (length == 0) { - if (style & ISARE_BIT ~= 0) LIST_WRITER_INTERNAL_RM('W'); - else if (style & CFIRSTART_BIT ~= 0) LIST_WRITER_INTERNAL_RM('X'); + if (style & ISARE_BIT ~= 0) LIST_WRITER_INTERNAL_RM('W'); + else if (style & CFIRSTART_BIT ~= 0) LIST_WRITER_INTERNAL_RM('X'); else LIST_WRITER_INTERNAL_RM('Y'); } else { @push MarkedObjectArray; @push MarkedObjectLength; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act I Among Sightseers.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act I Among Sightseers.i7x index d6bf9881..964c0f60 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act I Among Sightseers.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act I Among Sightseers.i7x @@ -245,7 +245,7 @@ Instead of buying something which is part of the clothing shops: Instead of putting the restoration gel on something which is part of the clothing shops: say "The shop window is, unsurprisingly, not open to reach into." -The typographer's office is a facade in Sigil Street. It is scenery. +The typographer's office is a facade in Sigil Street. It is scenery. Understand "sign" or "display" or "poster" or "typographer" or "font" or "fonts" or "comma" or "commas" or "punctuation" as the typographer's office. It fronts north. The description of the typographer's office is "The office advertises custom fonts and symbols, though it is very unlikely that anyone decides to have a custom font made simply because they happened to catch a notice in a shop window. In hon[our] of the holiday, there is also a display poster showing the form of the humble comma as it manifests itself in a variety of popular fonts." Instead of looking toward Back Alley: @@ -307,7 +307,7 @@ Rule for printing the banner text when stored first name is not "Andra": do nothing instead. Before taking inventory for the first time: - if the player is carrying the letter-remover and the number of things carried by the player is 1: + if the player is carrying the letter-remover and the number of things carried by the player is 1: say "You insisted that we bring almost nothing into the synthesis room, so the criminal who was performing the synthesis couldn't rob us. I had hoped there was more hon[our] among thieves, but you said no, there isn't."; A last when play begins rule (this is the initial conversation rule): @@ -751,7 +751,7 @@ Chapter 1 - Central Park Area Section 1 - The Park -Park Center is a room. The description of the Park Center is "This is a handsome expanse of [grass], shaped like a rectangle with rounds cut from the corners, bounded by [railings] along the north side. There are no stalls and no barkers here, but [small children] are running around [if the horses are part of the fountain]an impressive[else]a desecrated[end if] [marble fountain][if hoses are part of the marble fountain], currently spewing water in all directions[end if].[one of] +The Park Center is an improper-named room. The description of the Park Center is "This is a handsome expanse of [grass], shaped like a rectangle with rounds cut from the corners, bounded by [railings] along the north side. There are no stalls and no barkers here, but [small children] are running around [if the horses are part of the fountain]an impressive[else]a desecrated[end if] [marble fountain][if hoses are part of the marble fountain], currently spewing water in all directions[end if].[one of] I gather from the direction of your thoughts that you dislike small children, so I'll restrain myself from trying to communicate with them.[or][stopping]". @@ -801,7 +801,7 @@ There's a bang, a last glittering fan of water in the air.[paragraph break]"; gel-convert the hoses; say "As for the Officer, she's already speaking into her radio as she turns away.". -Every turn when the ho is in location: +Every turn when the ho is in location and the location is the park center: say "It isn't but a few seconds before a watchful parent notices the ho strutting around and goes to report her. She is too stupid [--] as a constructed person [--] to put up much resistance when an officer shows up to escort her away."; @@ -841,7 +841,7 @@ Instead of telling the children about something: [The fountain itself is similar to one in a plaza in Carcassonne. The horses-to-hoses business was a late-game addition, thanks to Jim Munroe trying to amuse the children.] -The marble fountain is a scenery container. It is in Park center. The description of the fountain is "[if horses are part of the marble fountain]It depicts some horses rising out of the waves, with trident-bearing gods on their backs, and some nymphs overseeing the whole operation. Probably 17th-century, to judge by the excessive number of writhing [figures][else if hoses are part of the marble fountain]The nymphs and trident-bearing gods are now aiming hoses out at passers-by[else if hoe is part of the marble fountain]A single bewildered nymph is carrying a hoe, which presumably isn't much use out at sea[else]The former majesty of the fountain has been extensively vandalized[end if]." +The marble fountain is a scenery container. It is in Park center. The description of the fountain is "[if horses are part of the marble fountain]It depicts [end if][if boldening is true and horses are part of the marble fountain][bold type][end if][if horses are part of the marble fountain]some horses[roman type] rising out of the waves, with trident-bearing gods on their backs, and some nymphs overseeing the whole operation. Probably 17th-century, to judge by the excessive number of writhing [figures][else if hoses are part of the marble fountain]The nymphs and trident-bearing gods are now aiming [hoses] out at passers-by[else if hoe is part of the marble fountain]A single bewildered nymph is carrying a [hoe], which presumably isn't much use out at sea[else]The former majesty of the fountain has been extensively vandalized[end if]." The introduction is "The fountain celebrates [--] if that's the right word [--] the conquest of this island by the Dutch in 1607, it having been a Spanish possession for about 140 years before that. In spite of this the fountain bears not a word of any foreign language, the original Latin or vernacular inscriptions having been long since renovated away." @@ -894,7 +894,7 @@ Some grass is scenery in the Park Center. The description is "Deep green and vel Rule for distantly describing the Fair: say "That way is the fair: a mass of booths and people and games and bright sunlight, too chaotic to get a good look at from here." -The Fair is south of Park Center. It is checkpoint. The description is "[one of]Today is Serial Comma Day, one of the biggest holidays on the island, and a time when half the police force is off duty while the other half is over-extended. The perfect day to make an escape. [or][stopping]The square at the cen[ter] of town is [one of]therefore [or][stopping]crowded with people, and there's an overpowering smell of artificial butter and spun sugar." +The Fair is south of Park Center. It is improper-named and checkpoint. The description is "[one of]Today is Serial Comma Day, one of the biggest holidays on the island, and a time when half the police force is off duty while the other half is over-extended. The perfect day to make an escape. [or][stopping]The square at the cen[ter] of town is [one of]therefore [or][stopping]crowded with people, and there's an overpowering smell of artificial butter and spun sugar." Instead of smelling the Fair: say "It smells like candy and popcorn, with a note of booze and another note of sweaty crowd." @@ -920,7 +920,7 @@ Instead of turning the wheel: The random foodstuffs are scenery in the fair. Understand "spun" or "sugar" or "candy" or "butter" or "artificial" or "booze" or "popcorn" as the random foodstuffs. The description is "An assortment of unwholesome things to eat are sold here, and since it's extremely hot, [we] smell all of them pungently and in rapid succession. If it's not my imagination, actually, I think this female nose is better than mine. (I've heard that women have a better sense of smell. This could be wrong.) At the moment that sensitivity is a liability, as disorienting as flashes of a col[our]ed strobe.". [* I wanted to give the sense in the first portion of the game that Alex and Andra are really disoriented by what has happened to them. Some of their sensations are borrowed from what it's like to have a migraine on a hot, sunny day amid a crowd: everything is simply too present to endure, and smells and noises become distinct and offensive even if normally they'd be quite pleasant.] -Some kiosks are fixed in place things in the Fair. The description of the kiosks is "They're the usual tacky affairs of brightly painted [if the player wears the Britishizing goggles]fibreboard[otherwise]fiberboard[end if] and cheap prizes. I don't see any likely to help us today, however." Understand "activity" or "activities" or "cheap" or "prizes" or "face-painting" or "face painting" or "spell offs" or "spell-offs" as the kiosks. +Some kiosks are fixed in place things in the Fair. The description of the kiosks is "They're the usual tacky affairs of brightly painted [if the player wears the Britishizing goggles]fibreboard[otherwise]fiberboard[end if] and cheap prizes. I don't see any likely to help us today, however." Understand "activity" or "activities" or "cheap" or "prizes" or "face-painting" or "face painting" or "spell offs" or "spell-offs" as the kiosks. A ranking rule for the kiosks: increase description-rank of the kiosks by 50. @@ -981,7 +981,7 @@ A first every turn rule (this is the win the tube rule): now the barker is nowhere; say "There is a [if the ear is in a pan]disgusted gasp[otherwise]cheer[end if] from the spectators. [The word-balance] tilts slowly but inexorably. - [The barker] looks astonished and displeased, except for a fraction of a second when he just noticeably winks. With exaggerated bad grace hands us [a gel]. 'There's your prize. And now this contest is over.' + [The barker] looks astonished and displeased, except for a fraction of a second when he just noticeably winks. With exaggerated bad grace he hands us [a gel]. 'There's your prize. And now this contest is over.' He stalks away."; record "winning the gel" as achieved; @@ -1152,7 +1152,7 @@ Rule for listing exits when the location is Church Forecourt: else: say "South and east lead to more of the park; there is a small [cinema-exterior][if the backpack is not handled] (where I left my pack)[end if] to the north, and the entrance to the [church exterior] is west."; -The cinema-exterior is a facade in Church Forecourt. It fronts north. It is scenery. The description is "Large red letters on the marquee announce the latest film from Cannes." Understand "small" or "cinema" or "theater" or "theatre" or "movie" or "red letters" or "large red" or "large letters" or "large red letters" or "marquee" or "film" or "cannes" as the cinema-exterior. The printed name is "cinema". +The cinema-exterior is a facade in Church Forecourt. It fronts north. It is scenery. The description is "Large red letters on the marquee announce the latest film from Cannes." Understand "small" or "cinema" or "theater" or "theatre" or "movie" or "red letters" or "large red" or "large letters" or "large red letters" or "marquee" or "film" or "cannes" as the cinema-exterior. The printed name is "cinema". Section 4 - Heritage Corner @@ -1237,7 +1237,7 @@ Rule for listing exits when the location is Heritage Corner: else: say "The park continues to the north and west; to the east is [if the hostel is unvisited]a backpackers['] [hostel-exterior] where you've stayed recently and where you stowed the rest of your important possessions[otherwise]the [hostel-exterior][end if]." -The hostel-exterior is a facade in Heritage Corner. It is scenery. The printed name is "hostel". The description is "It's a narrow brick townhouse with only one or two rooms on each floor, and silly ornamental brickwork up near the skyline. The label over the entrance merely announces a generic hostel, without the dignity of a name." Understand "hostel" or "sign" or "townhouse" or "silly brickwork/bricks" or "ornamental brickwork/bricks" or "silly ornamental brickwork/bricks" or "brickwork" or "narrow" or "brick" or "backpacker's" or "backpackers'" or "backpacker" as the hostel-exterior. The hostel-exterior fronts east. +The hostel-exterior is a facade in Heritage Corner. It is scenery. The printed name is "hostel". The description is "It's a narrow brick townhouse with only one or two rooms on each floor, and silly ornamental brickwork up near the skyline. The label over the entrance merely announces a generic hostel, without the dignity of a name." Understand "hostel" or "sign" or "townhouse" or "silly brickwork/bricks" or "ornamental brickwork/bricks" or "silly ornamental brickwork/bricks" or "brickwork" or "narrow" or "brick" or "backpacker's" or "backpackers'" or "backpacker" as the hostel-exterior. The hostel-exterior fronts east. The octagonal bricks are scenery in Heritage Corner. The description is "Alternating with square bricks of a slightly darker shade of maroon. Nothing about this seems remotely significant." Understand "ground" or "paving" or "floor" as the octagonal bricks. @@ -1536,9 +1536,9 @@ The central hillock is scenery in Monumental Staircase. The description is "A sq A little of the original fortification does exist immediately north and curving around to the northwest, but it is in very bad shape here, and the top of the walls cannot be walked on at this point." Understand "city" or "fortified" or "walls" or "great" or "enclave" as the hillock. -The harbor-view is a distant backdrop. The printed name is "harbor". It is in Old Hexagonal Turret, Old City Walls, Crumbling Wall Face, Outdoor Cafe, and Monumental Staircase. It screens east and northeast. Understand "port" or "harbor" or "docks" or "dock" as harbor-view. The description is "A harbor swarming with small and medium-sized tourist boats; most of the major shipping comes in via another route." The introduction is "That is where [we] [are] trying to get to [--] or rather, get through." +The harbor-view is a distant backdrop. The printed name is "harbor". It is in the Old Hexagonal Turret, the Old City Walls, the Crumbling Wall Face, the Outdoor Cafe, and the Monumental Staircase. It screens east and northeast. Understand "port" or "harbor" or "docks" or "dock" as harbor-view. The description is "A harbor swarming with small and medium-sized tourist boats; most of the major shipping comes in via another route." The introduction is "That is where [we] [are] trying to get to [--] or rather, get through." -The fish-market-view is a distant backdrop. The printed name is "fish market". It is in Old Hexagonal Turret, Old City Walls, Crumbling Wall Face, Outdoor Cafe, and Monumental Staircase. Understand "market" or "fish market" as the fish-market-view. The description is "From this angle and distance, all you can see is the open space and a few awnings. It's not the best time of day for this kind of thing anyway." +The fish-market-view is a distant backdrop. The printed name is "fish market". It is in the Old Hexagonal Turret, the Old City Walls, the Crumbling Wall Face, the Outdoor Cafe, and the Monumental Staircase. Understand "market" or "fish market" as the fish-market-view. The description is "From this angle and distance, all you can see is the open space and a few awnings. It's not the best time of day for this kind of thing anyway." Instead of going down in the Staircase, try going east. Instead of going up in the Staircase, try going west. @@ -1610,7 +1610,7 @@ topic reply "bureau/rotunda" or "bureau of orthography" or "orthography" "The entry is long and greasily flattering: resplendent blue dome, magnificent interior, warm and hospitable employees, world-renowned historical research department, etc., etc., etc." "Serial Comma Day" or "holiday" "Commemorating the 1935 standard[ization] of a whole range of punctuation conventions, Serial Comma Day is one of three major patriotic holidays on Anglophone Atlantis. (See also SHAPLY DAY, SECESSION DAY.)" "Shaply Day" "Named in hon[our] of pioneering suffragette Phyllida Shaply, Shaply Day commemorates the 1877 decision to allow all citizens of Anglophone Atlantis to vote in referenda (the direct-democracy form for deciding contentious issues). This right was extended regardless of race, gender, or creed and is a source of considerable pride to Atlanteans." -"Secession Day" or "secession" "The secession of Atlantis from British governance in 1823 culminated in the reduction of the attacking British fleet on April 19. The holiday celebrates this occasion, which is considered the beginning of Atlantean self-rule." +"Secession Day" or "secession" "The secession of Atlantis from British governance in 1822 culminated in the reduction of the attacking British fleet on April 19. The holiday celebrates this occasion, which is considered the beginning of Atlantean self-rule." "cannon" or "depluralizing" or "depluralizing cannon" or "hexagonal" or "turret" or "depluralising" or "depluralising cannon" "The Guidebook explains that Atlantis['] harb[our]s were traditionally defended by the deplural[izing] cannon, using techniques discovered by Clarence Arbot in 1779. Turrets along the old city walls provided elevated positions for these cannons, allowing them considerable range. See also SECESSION, CLARENCE ARBOT." "sigil street" or "sigil" "The entry on Sigil Street proclaims it an excellent place for those seeking to commission their own fonts or indulge in other typographical expenses." "ampersand bend" or "ampersand/bend" "Ampersand Bend is notable to the guidebook chiefly for the presence of a fine museum. A little less fine now that we've been past, perhaps." @@ -1634,12 +1634,12 @@ topic reply "fair/fairground/fairs/fairgrounds" or "market" or "farmer's market" "The guidebook is lyrical about the phenomenal produce to be enjoyed at the farmer's market held in Hesychius Street every Saturday and Wednesday and also on special days of observation." "fish market" "The fish market, the guidebook explains, may be found at the northeastern part of town near the docks, and holds most of its sales in the early morning." "dock/docks/boat/boats/ferry/ferries" "The guidebook gives us to understand that the docks, found northeast of the central town, are a pleasant place to commission short voyages of exploration and to see the island from a distance. It does, however, warn against spending too much time in the adjacent taverns, which have an unsavory reputation." -"tavern/taverns" or "counterfeit" or "monkey" or "counterfeit monkey" "The Counterfeit Monkey is a tavern of unsavory reputation near to the docks, said to be the locale of more fistfights and disturbances of the peace than the rest of the city put together. The tavern is named in hon[our] of a famous linguistic con job and was a regular site for contraband creation and smuggling. In 1929, the Bureau first developed tools and procedures for identifying linguistic fakes, the Monkey was the target of a law enforcement raid; but a lively and committed criminal community soon put the Monkey in business again with new strategies." +"tavern/taverns" or "counterfeit" or "monkey" or "counterfeit monkey" "The Counterfeit Monkey is a tavern of unsavory reputation near to the docks, said to be the locale of more fistfights and disturbances of the peace than the rest of the city put together. The tavern is named in hon[our] of a famous linguistic con job and was a regular site for contraband creation and smuggling. In 1929, when the Bureau first developed tools and procedures for identifying linguistic fakes, the Monkey was the target of a law enforcement raid; but a lively and committed criminal community soon put the Monkey in business again with new strategies." "all-purpose" or "all purpose" "The All-Purpose, the guidebook explains, is a general civil servant attached to the Bureau of Orthography, with wide-ranging powers to repair, correct, and heal using a variety of linguistic tools." "university/college/education" "The guidebook praises the many excellent departments and exceptional research work performed at the university. This is all true, naturally." "new church/cathedral" or "church/cathedral" "The guidebook devotes two and a half pages to the splendors of the New Church, located on the western edge of the town square. It particularly admires the clean lines of the architecture, the solidly constructed pews, and the austere decoration; in fact, the more you read, the more the guide seems to be rhapsod[izing] about what the builders left [i]out[/i], instead of what they put in. The guide also recommends a visit to the church gift shop, which apparently supports assorted worthy causes, such as, for instance, buying a new roof for the structure and paying a custodial staff." "food/eating/dining/restaurant/restaurants/eateries/cafe/cafes/café/bistro/cafés/eatery/lunch/dinner/breakfast" "The guidebook lists several places to eat around town: the outdoor café near the docks; a Food Corner sometimes found in the town square; the restaurant attached to the Fleur D'Or hotel." -"lucius" or "quagmire" or "lucius quagmire" or "disturbance of meaning" "A brief and plainly expurgated entry indicates that Lucius Quagmire was a film-maker in the early part of the 20th century who founded the Disturbance of Meaning group with the intention to undermine the Anglophone hegemony. He was convicted of treason." +"lucius" or "quagmire" or "lucius quagmire" or "disturbance of meaning" "A brief and plainly expurgated entry indicates that Lucius Quagmire was a film-maker in the early part of the 20th century who founded the Disturbance of Meaning group with the intention to undermine the Anglophone hegemony. He was convicted of treason." Every turn when the attendant carries a louse: @@ -1874,7 +1874,7 @@ Understand "count [bills]" as a mistake ("[We] thumb quickly through the bills [ Section 4 - The New Church -The New Church is west of the Church Forecourt. It is indoors and proper-named. The description is "Not a Gothic cathedral from the era when the church was wealthy and secure, but a gallant Neo-classical response to the turmoil of the 18th century, when the power of language was just beginning to be evident, and instead of an immutable cosmology, we suddenly had observer-consensus reality. [one of]What is the need or use of God, if it turns out that He gave all the power of creation to Adam when He let him name the animals?[or][stopping]". +The New Church is west of the Church Forecourt. It is indoors and improper-named. The description is "Not a Gothic cathedral from the era when the church was wealthy and secure, but a gallant Neo-classical response to the turmoil of the 18th century, when the power of language was just beginning to be evident, and instead of an immutable cosmology, we suddenly had observer-consensus reality. [one of]What is the need or use of God, if it turns out that He gave all the power of creation to Adam when He let him name the animals?[or][stopping]". The inscription is fixed in place in the New Church. It is distant. The initial appearance is "An [inscription] above [the altar], picked out in gold paint, reads Ἐν ἀρχῇ ἦν ὁ λόγος." Understand "paint" or "gold" as the inscription. The description is "It means, In the Beginning was the Word. @@ -1935,7 +1935,7 @@ To say prayer response: [--]and now quiet. I don't know what, if anything, that may have accomplished, but I promise not to be rude if you need to do it again. " -The gift-shop-exterior is a facade in New Church. It is scenery. It fronts south. The description is "[We] can't really see it from here; I just know that it is back there, from previous visits, though decently screened from the main body of the church." Understand "shop" or "gift shop" or "narthex" as the gift-shop-exterior. The printed name is "gift shop". +The gift-shop-exterior is a facade in New Church. It is scenery. It fronts south. The description is "[We] can't really see it from here; I just know that it is back there, from previous visits, though decently screened from the main body of the church." Understand "shop" or "gift shop" or "narthex" as the gift-shop-exterior. The printed name is "gift shop". The Cathedral Gift Shop is south of the New Church. Understand "narthex" and "giftshop" as the cathedral gift shop. It is indoors. The description is "This area used to be a sort of antechamber where the priests and choir might gather for processions into the church, but it has now been done over for retail purposes. This is one of several schemes to make the New Church pay for its own upkeep: a problem is that people somehow feel everything associated with a church ought to be free, including lunchtime concerts, potluck suppers, and Thursday-night lecture series." @@ -2069,7 +2069,7 @@ Part 3 - Roundabout Access [Instead of going to Old City Walls when the backpack is not handled: say high-street refusal instead. -Instead of approaching Old City Walls when the backpack is not handled: +Instead of approaching the Old City Walls when the backpack is not handled: say high-street refusal instead.] @@ -2198,7 +2198,7 @@ Chapter 1 - City Walls Section 1 - Old City Walls -Old City Walls are north of the Monumental Staircase. Understand "wall" as Old City Walls. The description is "Only portions of the old walls still stand, but you can walk along what remains, as though you were defending the place. They're a me[ter] and a half wide, made of ashlar blocks. On the vertical faces these blocks are still rough, but underfoot they have been worn smooth by the passage of many defenders and (subsequently) tourists. One of the [defaced ashlar block]s in the wall has even been defaced, some old inscription gouged out.[one of] +The Old City Walls are north of the Monumental Staircase. Understand "wall" as Old City Walls. The description is "Only portions of the old walls still stand, but you can walk along what remains, as though you were defending the place. They're a me[ter] and a half wide, made of ashlar blocks. On the vertical faces these blocks are still rough, but underfoot they have been worn smooth by the passage of many defenders and (subsequently) tourists. One of the [defaced ashlar block]s in the wall has even been defaced, some old inscription gouged out.[one of] I used to like to climb around up here when I was a kid. I made believe[--] oh, you'll think it's silly.[or][stopping] @@ -2225,9 +2225,9 @@ Turret-view is a facade in Old City Walls. It fronts east. It is scenery. The pr Section 2 - The Turret -The Old Hexagonal Turret is east of Old City Walls. The description is "Up here [we] stand on the remains of the old fortifications; this turret offers a view out over the docks, the fish market, and the harbor, which it was designed to protect." +The Old Hexagonal Turret is east of Old City Walls. It is improper-named. The description is "Up here [we] stand on the remains of the old fortifications; this turret offers a view out over the docks, the fish market, and the harbor, which it was designed to protect." -Out-direction of Old Hexagonal Turret is west. [Back to old city walls] +Out-direction of the Old Hexagonal Turret is west. [Back to old city walls] The depluralizing cannon is a container in the Old Hexagonal Turret. It is fixed in place. Understand "heavy" or "old" or "barrel" as the depluralizing cannon. The printed name is "deplural[izing] cannon". The initial appearance is "A heavy old [depluralizing cannon] is aimed out to sea." @@ -2265,11 +2265,11 @@ Understand "fire [cannon]" or "load [cannon]" or "aim [cannon]" or "use [cannon] Section 3 - The Walls Crumble -Crumbling Wall Face is north of the Old City Walls. The description is "The wall once continued north from here some distance before curving northwest around the remainder of the city. So much has crumbled away, though, that the walkway is impassable north of this point. To protect citizens, there is a [safety railing] across the [view of jagged wall]. +The Crumbling Wall Face is north of the Old City Walls. The description is "The wall once continued north from here some distance before curving northwest around the remainder of the city. So much has crumbled away, though, that the walkway is impassable north of this point. To protect citizens, there is a [safety railing] across the [view of jagged wall]. A [metal ladder] of four rungs descends the inner face of the wall, allowing pedestrians access to the streets to the west." -Sanity-check going north in Crumbling Wall Face: +Sanity-check going north in the Crumbling Wall Face: say "The wall pretty much falls away into slippery rubble at that point, which is why there's a safety railing in the way." instead. rule for listing exits while looking in Crumbling Wall Face: @@ -2343,7 +2343,7 @@ Rule for writing a paragraph about the farmer: if a mentionable thing (called item) is in location: say line break. -An asparagus is carried by the farmer. It is a vegetable. The indefinite article of the asparagus is "some". The description of the asparagus is "It looks particularly tender and pleasant, but I avoid the stuff." +An asparagus is carried by the farmer. It is a vegetable. The indefinite article of the asparagus is "some". The description of the asparagus is "It looks particularly tender and pleasant, but I avoid the stuff." A lime is carried by the farmer. It is a vegetable. The description of the lime is "A small, wrinkled, intense-looking fruit: it wouldn't give much juice, but is likely very strong." @@ -2419,9 +2419,9 @@ My parents' home is a facade in Webster Court. The printed name is "my parents[' My childhood bedroom faces northwest, away from the docks, towards the roofs of other villas and the open sea." -The pink door is north of Webster Court and south of Foyer. The pink door is a door. The pink door is scenery. It is lockable and locked. +The pink door is north of Webster Court and south of the Foyer. The pink door is a door. The pink door is scenery. It is lockable and locked. -Foyer is indoors and checkpoint. +The Foyer is indoors and checkpoint and improper-named. Parental appearance is a scene. Parental appearance begins when the location is webster court and Patriotic chard-garden is visited and Private Beach is visited. @@ -2446,7 +2446,7 @@ He closes the door behind him."; Report taking off the monocle in the presence of fake-father: say "Hastily I take off our monocle and palm it. Father shouldn't recogn[ize] us in our current body, but wearing expensive Bureau equipment in his presence would be a terrible idea." instead. -fake-father is a man. fake-father is privately-named. The printed name of fake-father is "Father". Understand "father" and "dad" as fake-father. The description of fake-father is "He looks put out. Serial Comma Day is supposed to be a day off, even for him." The initial appearance is "My father is just outside [my home]. He's clipping the cuffs of his trousers so that he won't snag them on anything during his ride in to work. His scooter is propped against the [statue of Noah Webster], ready for action." +fake-father is a man. fake-father is privately-named. The printed name of fake-father is "Father". Understand "father" and "dad" as fake-father. The description of fake-father is "He looks put out. Serial Comma Day is supposed to be a day off, even for him." The initial appearance is "My father is just outside [my home]. He's clipping the cuffs of his trousers so that he won't snag them on anything during his ride in to work. His scooter is propped against the [statue of Noah Webster], ready for action." After writing a paragraph about fake-father: set pronouns from fake-father. @@ -2519,7 +2519,7 @@ After going to Webster Court when Private Beach is visited and Patriotic Chard-G otherwise: clear the path-walked for the player; unless final destination is Webster Court: - now approach-destination is Winding Footpath; [Tricks the approaching verb into stopping here even if you're trying to reach someplace really far away.] + now approach-destination is the Winding Footpath; [Tricks the approaching verb into stopping here even if you're trying to reach someplace really far away.] continue the action. Section 3 - Chard-Garden @@ -2602,9 +2602,9 @@ A description-concealing rule when the gum is marked for listing: if the gum is not handled and the gum is not seen: now the gum is not marked for listing. -Test gum with "tutorial off / look / x school / x palm / look / x gum / get gum / look / x palm trees / chew gum / eat gum / drop gum / look / get gum / put gum on spinner / get mug / x mug / wave g-remover at mug / n" in Roget Close. +Test gum with "tutorial off / look / x school / x palm / look / x gum / get gum / look / x palm trees / chew gum / eat gum / drop gum / look / get gum / put gum on spinner / get mug / x mug / wave g-remover at mug / n" in Roget Close. -Rule for listing exits while looking in Roget Close: +Rule for listing exits while looking in Roget Close: do nothing instead. After going from Roget Close to the Winding Footpath: @@ -2620,15 +2620,15 @@ Soon, however, the footpath begins to descend purposefully towards the level of Section 5 - Winding Footpath -The spinner-gate is north of Roget Close. It is a closed transparent locked door. The printed name of the spinner-gate is "gate". Understand "gate" as the spinner-gate. The initial appearance is "If you look just north between the houses, you'll notice also the footpath down to an almost-private beach. It used to be open, but it's now gated off, and built into the [spinner-gate] is a chic modern [if boldening is true][bold type][end if]sculpture[roman type]." +The spinner-gate is north of Roget Close. It is a closed transparent locked door. The printed name of the spinner-gate is "gate". Understand "gate" as the spinner-gate. The initial appearance is "If you look just north between the houses, you'll notice also the footpath down to an almost-private beach. It used to be open, but it's now gated off, and built into the [spinner-gate] is a chic modern [if boldening is true][bold type][end if]sculpture[roman type]." The description of the spinner-gate is "A gate of wrought iron bars between two sturdy columns[if the spinner-gate is closed and the spinner-gate is locked], too close to climb through and too tall to climb over[else if the spinner-gate is closed], closed but not locked[else if the spinner-gate is open]; at the moment the gate has been pushed conveniently open[end if]. Built into the right-hand column, next to the gate latch, is a curious [if boldening is true][bold type][end if]sculpture[roman type]." -Out-direction of Winding Footpath is south. [Through the spinner gate] +Out-direction of the Winding Footpath is south. [Through the spinner gate] Through spinner-gate is the Winding Footpath. South of Winding Footpath is Roget Close. -Winding Footpath is an outdoors checkpoint room. The description is "The [underfoot-path] winds between the villas, sloping steeply downward. It is narrow, and [bushes] left and right conceal it even from the windows of the people living nearby." Understand "path" as Winding Footpath. +The Winding Footpath is an outdoors checkpoint room. The description is "The [underfoot-path] winds between the villas, sloping steeply downward. It is narrow, and [bushes] left and right conceal it even from the windows of the people living nearby." Understand "path" as Winding Footpath. Instead of going down in Winding Footpath: try going north. @@ -2754,7 +2754,7 @@ But Anglophone Atlantis prefers to forget what it was."; Report inserting something into the shrine: say "[We] give [the noun] a place of solemn hon[our] above the relief of frolicking ladies." instead. -The low relief is a part of the shrine. Understand "ladies" or "three" or "waves" or "surface" or "nymph" or "nymphs" or "bare" or "breasts" or "breast" or "garment" or "garments" or "carving" or "sculpture" or "sculpted" as the low relief. The description is "It looks like three ladies dancing on the surface of waves. They're probably meant to be nymphs, if I had to guess. They have bare breasts and fluttering garments, but the carving was done by someone who has not the slightest idea how to make limbs appear under sculpted cloth, so it all looks clunky, as though they don't have hips or legs at all, just randomly swirling skirts as their lower halves. +The low relief is a part of the shrine. Understand "ladies" or "three" or "waves" or "surface" or "nymph" or "nymphs" or "bare" or "breasts" or "breast" or "garment" or "garments" or "carving" or "sculpture" or "sculpted" as the low relief. The description is "It looks like three ladies dancing on the surface of waves. They're probably meant to be nymphs, if I had to guess. They have bare breasts and fluttering garments, but the carving was done by someone who has not the slightest idea how to make limbs appear under sculpted cloth, so it all looks clunky, as though they don't have hips or legs at all, just randomly swirling skirts as their lower halves. All the same, there's something appealing about it." @@ -2779,11 +2779,11 @@ Table of Ultratests (continued) topic stuff setting "shrine" { god, pita, roll of bills, as-coin, cross, army, members, yellow sign, Guidebook } Winding Footpath -Test shrine with "tutorial off / autoupgrade / wave z-remover at kudzu / look behind bushes / put god in shrine / look / get god / wave a-remover at pita / wave t-remover at pit / put pi in shrine / look / get pi / put bills in shrine / look / get bills / put as in shrine / look / get as / put cross in shrine / look / get cross / put army in shrine / look / get army / put members in shrine / look / get members / wave s-remover at members / put member in shrine / look / get member / wave g-remover at sign / put sin in shrine / look / get sin / put guidebook in shrine / look / get guidebook" [holding the god and the pita and the roll of bills and the as and the cross and the army and the members and the yellow sign and the Guidebook in the Winding Footpath.] +Test shrine with "tutorial off / autoupgrade / wave z-remover at kudzu / look behind bushes / put god in shrine / look / get god / wave a-remover at pita / wave t-remover at pit / put pi in shrine / look / get pi / put bills in shrine / look / get bills / put as in shrine / look / get as / put cross in shrine / look / get cross / put army in shrine / look / get army / put members in shrine / look / get members / wave s-remover at members / put member in shrine / look / get member / wave g-remover at sign / put sin in shrine / look / get sin / put guidebook in shrine / look / get guidebook" [holding the god and the pita and the roll of bills and the as and the cross and the army and the members and the yellow sign and the Guidebook in the Winding Footpath.] Section 6 - The Beach -Private Beach is north of Winding Footpath. It is checkpoint. The description is "This is little more than a strip of fine yellow [sand], perhaps twenty me[ter]s from side to side, and five from the [hillside] to the waterline[if the sage is in the location and the sage is not handled]. A little [sage] grows on the hillside, escaped from some garden, along with wilder plants[end if]. Above, at the top of that slope, are houses with balconies overlooking the sea, but from this angle it's impossible to see much of them, or for them (you'll have to take my word on this) to see us[if high street is visited and roundabout is not visited]. +The Private Beach is north of Winding Footpath. It is checkpoint. The description is "This is little more than a strip of fine yellow [sand], perhaps twenty me[ter]s from side to side, and five from the [hillside] to the waterline[if the sage is in the location and the sage is not handled]. A little [sage] grows on the hillside, escaped from some garden, along with wilder plants[end if]. Above, at the top of that slope, are houses with balconies overlooking the sea, but from this angle it's impossible to see much of them, or for them (you'll have to take my word on this) to see us[if high street is visited and roundabout is not visited]. It's tempting to look for crabs among the rocks, but the tide is high just now, and even at the best of times this is not an area rich in sealife[end if]." diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act II Among Smugglers.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act II Among Smugglers.i7x index aac35ad3..23752aff 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act II Among Smugglers.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act II Among Smugglers.i7x @@ -60,11 +60,11 @@ A description-concealing rule: if Counterfeit Monkey is unvisited: now aquarium-exterior is not marked for listing. -aquarium-exterior is a facade in Deep Street. It fronts east. The printed name is "Aquarium Bookstore". Understand "aquarium" or "shop" or "window" or "bookstore" or "store" as aquarium-exterior. The initial appearance is "[The Aquarium] is to the east." The introduction is "It is an esoteric bookstore (and purveyor of other things), but one whose owner has helped you in the past[if the player knows lena-needed and aquarium is not visited]. That would be Lena, the woman that [we] need to talk to about Slango[end if]." +aquarium-exterior is a facade in Deep Street. It fronts east. The printed name is "Aquarium Bookstore". Understand "aquarium" or "shop" or "window" or "bookstore" or "store" as aquarium-exterior. The initial appearance is "[if boldening is true][bold type][end if]The Aquarium Bookstore[roman type] is to the east." The introduction is "It is an esoteric bookstore (and purveyor of other things), but one whose owner has helped you in the past[if the player knows lena-needed and aquarium is not visited]. That would be Lena, the woman that [we] need to talk to about Slango[end if]." The description is "[if Aquarium is visited]The outside manages to give an impression of poverty, gloom, and probable drug use; though, having seen the inside, I am going to guess that the real issues are sloth and kookiness[otherwise]I've never been inside the Aquarium: the outside never looked terribly savory. Perhaps that's the point[end if]." Rule for writing a topic sentence about aquarium-exterior when aquarium-exterior is not as-yet-unknown: - say "[The Aquarium] is to the east. [if aquarium-closed-sign is in location]There's a closed sign in the window and a forbidding atmosphere[otherwise]It's dim inside, but occasional movements suggest that the proprietor, Slango's friend Lena, is inside[end if]. " + say "[if boldening is true][bold type][end if]The Aquarium Bookstore[roman type] is to the east. [if aquarium-closed-sign is in location]There's a closed sign in the window and a forbidding atmosphere[otherwise]It's dim inside, but occasional movements suggest that the proprietor, Slango's friend Lena, is inside[end if]. " A ranking rule when aquarium-exterior is not as-yet-unknown and Aquarium is visited and a car (called target) is in the location: increase description-rank of the target by 20. @@ -115,7 +115,7 @@ After going from the Aquarium when Slango is in the Counterfeit Monkey: Section 2 - The Aquarium -The Aquarium Bookstore is east of Deep Street. It is a privately-controlled checkpoint room. It is indoors. The description is "The shop takes its name from the [collection of fish] mounted on every wall: swordfish, bass, other things I don't recogn[ize]. Underneath these dubious tokens, the walls are covered with bookshelves, and there are stacks of books on the floor where the shelves have proven insufficient." +The Aquarium Bookstore is east of Deep Street. It is a privately-controlled proper-named checkpoint room. It is indoors. The description is "The shop takes its name from the [collection of fish] mounted on every wall: swordfish, bass, other things I don't recogn[ize]. Underneath these dubious tokens, the walls are covered with bookshelves, and there are stacks of books on the floor where the shelves have proven insufficient." The aquarium-shelving is scenery in the aquarium. Understand "shelves" or "bookshelves" or "shelving" as the aquarium-shelving. The printed name is "shelving". The description is "They're completely crammed with books." @@ -218,7 +218,7 @@ Definition: a thing is disguisable: yes; if it is proffered by the modems: yes; - if it is proffered by the preamps: + if it is proffered by the preamps: yes; no. @@ -347,12 +347,12 @@ Check waving the letter-remover at the briny rivulets when the current setting o say "The letter-remover has a go, and for a moment the rivulets turn into a single, unified trickle. But the ground is so uneven that soon the liquid has diverged again into multiple rivulets. Some things can only be cleaned up the old-fashioned way, but fortunately this one isn't really our problem." instead -The Authenticator is a woman in Fish Market. Understand "tall" or "stern" or "woman" or "uniform" or "black" or "caped" as the Authenticator. The initial appearance is "A tall, stern woman is standing in the middle of the market. She wears the black caped uniform of an Authenticator, and a monocle just like mine. And I don't think I want her to see us." The description of the Authenticator is "She isn't looking our way yet, but she will be any minute now." +The Authenticator is a woman in Fish Market. Understand "tall" or "stern" or "woman" or "uniform" or "black" or "caped" as the Authenticator. The initial appearance is "A tall, stern [if boldening is true][bold type][end if]woman[roman type] is standing in the middle of the market. She wears the black caped uniform of an Authenticator, and a monocle just like mine. And I don't think I want her to see us." The description of the Authenticator is "She isn't looking our way yet, but she will be any minute now." Section 5 - Outdoor Cafe -The Outdoor Cafe is south of the Fish Market and west of Deep Street. The printed name is "Outdoor Café". The description is "From this slightly raised terrace, tourists have a view of the activity in the market and out over the docks[one of][or]. The street is [east], the Fish Market [north][stopping]." +The Outdoor Cafe is south of the Fish Market and west of Deep Street. It is improper-named. The printed name is "Outdoor Café". The description is "From this slightly raised terrace, tourists have a view of the activity in the market and out over the docks[one of][or]. The street is [east], the Fish Market [north][stopping]." The rocky cliff-face is a scenery facade in Outdoor Cafe. It fronts south. Understand "cliff" or "rocks" or "face" as the rocky cliff-face. The description is "This little terrace area has been carved out of the hillside. Immediately to the south there is only rough rock wall for many feet up." The closure notice is "That way is bare cliff rock. ". @@ -522,18 +522,21 @@ Every turn when the trap-door is open and the trap-door is not wedged by somethi now the trap-door is closed; if the location is the Crawlspace or the location is the Tin Hut: say "The trap-door makes a creaking noise and slams shut again"; - if the player is in the Crawlspace: - say ". I DO NOT LIKE being in the dark in a confined space with potential rats. Sorry, I'm getting us out of here. You can come back later."; - custom-wait for any key; - try going up; - otherwise if Crawlspace is not visited: - say ". They must prop it open when they use it."; - otherwise: - say "." + if the player is in the Crawlspace: + say ". I DO NOT LIKE being in the dark in a confined space with potential rats. Sorry, I'm getting us out of here. You can come back later."; + custom-wait for any key; + try going up; + otherwise if Crawlspace is not visited: + say ". They must prop it open when they use it."; + otherwise: + say "." Instead of going to the Crawlspace when the Crawlspace is visited and the trap-door is not wedged by something: say "Let's wait to explore down there until [we] can make sure the trap door won't slam on us." +Before going down when the player is on the tarpaulin-covered masses: + try exiting instead. + Before closing a door which is wedged by something (called the impediment): say "(first removing [the impediment])[command clarification break]"; try taking the impediment; @@ -611,7 +614,7 @@ Check waving the letter-remover at the boats when the current setting of the let Check waving the letter-remover at the boats when the current setting of the letter-remover is "s": say "Deplural[izing] all the boats would be a fascinating re-enactment of historical events, except that the boats are full of harmless tourists and the letter-remover doesn't have nearly the power required to achieve that goal." -The customs-exterior is a facade in Docks. It fronts east. The initial appearance is "To the east, up a moderate rise from the sea-level docks, is the imposing exterior of the Customs House. The classical look is only a little undermined by the public-service posters along the front." The introduction is "There passports are inspected and cargo passed under authentication, foreign items renamed or confiscated, and suspected smugglers interrogated." +The customs-exterior is a facade in Docks. It fronts east. The initial appearance is "To the east, up a moderate rise from the sea-level docks, is the imposing exterior of the Customs House. The classical look is only a little undermined by the [public-service posters] along the front." The introduction is "There passports are inspected and cargo passed under authentication, foreign items renamed or confiscated, and suspected smugglers interrogated." The description is "The building itself is not especially grand, but you have never been on the good side of the people who work there, and that gives you a perfectly justifiable dislike of the place, and the sense that it's larger than life." Understand "exterior" or "customs" or "house" as the customs-exterior. The printed name is "customs house". @@ -674,7 +677,7 @@ Check waving the letter-remover at the tattoos: Some tattoos are part of the clientele. The description of the tattoos is "[one of]One says I HEART MA[or]One is a detailed rendering of scenes from Brooklyn[or]One looks like an Elder Sign[at random]." The clientele is a person in Counterfeit Monkey. The initial appearance is "[The clientele] is keeping [the barman] thoroughly busy." - The description of the clientele is "A nasty-looking bunch. They can be good enough if you're on the right side of them, but getting and staying that way isn't easy. And they're justly suspicious: the customs house not infrequently tries to infiltrate the criminal organ[ization]s and brotherhoods, though with no great success." Understand "crowd" or "players" or "player" or "customers" or "customer" or "guys" or "people" or "guy" as the clientele. + The description of the clientele is "A nasty-looking bunch. They can be good enough if you're on the right side of them, but getting and staying that way isn't easy. And they're justly suspicious: the customs house not infrequently tries to infiltrate the criminal organ[ization]s and brotherhoods, though with no great success." Understand "crowd" or "players" or "player" or "customers" or "customer" or "guys" or "people" or "guy" as the clientele. After reading a command when location is Counterfeit Monkey (this is the replace men with clientele rule): while the player's command includes "men": @@ -695,7 +698,7 @@ Instead of saying hello to the clientele: say "They're... busy. At best interrupting them would interrupt their code, and at worst it would make them think [we] [are] a Bureau agent." [say "At the moment they aren't harassing us, but there's no reason to get their attention. After all, it took plenty of work to get their respect the first time out, and we don't have the time now to earn it again."] -The bar-top is a supporter in Counterfeit Monkey. It is scenery. Understand "counter" or "bar" as the bar-top. The printed name of the bar-top is "bar". The description is "Kept scrupulously clean, whatever you might say about the rest of the place." +The bar-top is a supporter in Counterfeit Monkey. It is scenery. Understand "counter" or "bar" as the bar-top. The printed name of the bar-top is "bar". The description is "Kept scrupulously clean, whatever you might say about the rest of the place." To summon Slango: move Slango to the Counterfeit Monkey; @@ -1030,14 +1033,15 @@ After going to Roundabout when the protesters are not off-stage and the location increase path description count by 1; say "The whole Roundabout has ground to a halt, with protesters walking in the street and in some places completely filling the road. But this is mostly a nuisance until I notice that there are a couple of teenagers handcuffed to a tree. -I give the wheel a yank and run the car up onto the central traffic circle a little way. Call it a parking job. We need to get those kids out of here before their arrest is processed and they go to storage. I might not have the nerve to do anything by myself, but you're with me, and I'm starting to appreciate that's like being Batman. "; +I give the wheel a yank and run the car up onto the central traffic circle a little way. Call it a parking job. We need to get those kids out of here before their arrest is processed and they go to storage. I might not have the nerve to do anything by myself, but you're with me, and I'm starting to appreciate that's like being Batman."; if the player is in a car (called target): move the target to Traffic Circle; silently try switching off a random ignition which is part of target; - follow the compass-drawing rule instead; otherwise: move the player to Traffic Circle; - follow the compass-drawing rule instead. + follow the compass-drawing rule; + stop the action. + Sanity-check doing something when the location is Traffic Circle and the player is in a car: if the noun is a thing and the noun is not enclosed by a car and the noun is not a car: @@ -1055,7 +1059,7 @@ Sanity-check exiting when the player is in an undisguised car and the location i Check waving the letter-remover at the Traffic Circle when the current setting of the letter-remover is "l": say "Perhaps a Traffic Circe would be able to turn cars into pigs, but the letter-remover has neither the imagination nor the power to bring this entity to life." instead. -Traffic Circle is inside from the Roundabout. It is a privately-controlled checkpoint outdoors road. +Traffic Circle is inside from the Roundabout. It is a privately-controlled checkpoint improper-named outdoors road. Out-direction of Traffic Circle is outside. [The roundabout and the traffic circle are the only place where the standard outside and inside directions are used] @@ -1105,15 +1109,9 @@ A description-concealing rule when the location is Traffic Circle: now the olive branch is not marked for listing; now every car is not marked for listing; -To decide what object is home for (item - the olive branch): - decide on huge-metal-arm. - -To decide what object is home for (item - the live branch): - decide on huge-metal-arm. - After waving the letter-remover at the olive branch creating the live branch: - now the live branch is part of the huge-metal-arm; - say "[one of]It takes a little more care with aim than usual, but we do manage to strike the olive branch, turning it into a live branch. It goes green and healthy at once[or]Confidently we reconvert the olive branch[stopping]. + now the live branch is on the huge-metal-arm; + say "[one of]It takes a little more care with aim than usual, but we do manage to strike the [olive branch], turning it into a [live branch]. It goes green and healthy at once[or]Confidently we reconvert the [olive branch][stopping]. [irritation reaction]."; @@ -1147,14 +1145,14 @@ NO MORE 'NON-REFERRABLE PROCEDURES'...[line break] ...ON ECONOMIC POLICY[line break] ...ON HUMAN RIGHTS". -The stuffed octopus is a thing. It is on the giant Atlantida statue. The flexible appearance of the stuffed octopus is "The discarded stuffed octopus lies on the [ground][one of], looking sadly at us[or], googly eyes fixed on the heavens[at random]." +The stuffed octopus is a thing. It is on the giant Atlantida statue. The flexible appearance of the stuffed octopus is "The discarded [stuffed octopus] lies on the [ground][one of], looking sadly at us[or], googly eyes fixed on the heavens[at random]." The description of the stuffed octopus is "Slightly wrong, actually, but I suppose they didn't have a stuffed squid handy. Of the four symbols associated with Atlantis, the squid [--] representing invention and individuality [--] is the one that has greatest resonance for protesters[if the stuffed octopus is on the giant Atlantida statue]. -This one has been tied to Atlantida's hand alongside the olive branch she traditionally carries[end if]." +This one has been tied to Atlantida's hand alongside the [end if][if the stuffed octopus is on the giant Atlantida statue and the olive branch is on the huge-metal-arm][olive branch] she traditionally carries[end if][if the stuffed octopus is on the giant Atlantida statue and the live branch is on the huge-metal-arm][live branch] she untraditionally carries[end if]." -Some traffic-island-protesters are a plural-named man. The printed name is "protesters". Understand "protesters" or "crowd" as the traffic-island-protesters. The initial appearance is "Protesters clog the street and sit or stand around the base of the statue." +Some traffic-island-protesters are a plural-named man. The printed name is "protesters". Understand "protesters" or "crowd" as the traffic-island-protesters. The initial appearance is "Protesters clog the street and sit or stand around the base of the statue." The All-Purpose-Officer is a privately-named man in Traffic Circle. The printed name is "All-Purpose Officer". Understand "all" or "purpose" or "all-purpose" or "officer" as the All-Purpose-Officer. The description is "He is uniformed and has a look of serious determination." The All-Purpose-Officer is carrying a diminutive affixer and a restoration-gel rifle. @@ -1295,7 +1293,7 @@ Instead of the All-Purpose-Officer touching the live branch: gel-convert the live branch. Instead of the All-Purpose-Officer touching the protest-sign: - say "[one of]Once the All-Purpose Officer comes level with [the protest-sign], he shoots it with [the diminutive affixer], turning it into a signet[or]Forced to repeat himself, [the actor] jams the diminutive affixer into the sign a little harder than strictly necessary, with predictable results[or]Stony-faced with fury, [the actor] punches [the protest-sign] again with the diminutive affixer[stopping]. [run paragraph on][signet description][paragraph break]"; + say "[one of]Once the All-Purpose Officer comes level with [the protest-sign], he shoots it with [the diminutive affixer], turning it into a [signet][or]Forced to repeat himself, [the actor] jams the diminutive affixer into the sign a little harder than strictly necessary, with predictable results[or]Stony-faced with fury, [the actor] punches [the protest-sign] again with the diminutive affixer[stopping]. [run paragraph on][signet description][paragraph break]"; diminish the protest-sign. To diminish (item - a thing): diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act III Among Scholars.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act III Among Scholars.i7x index bac3adbb..9150bf25 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act III Among Scholars.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act III Among Scholars.i7x @@ -22,7 +22,7 @@ Long Street North is a proper-named and southern road. Understand "long street n Some anemic palm trees are a backdrop. They are in Long Street North and Long Street South. The description is "The only foliage comes in a clump high above. The effect is distorted and unnatural, and I say that having lived with them all my life. They are trees in the same sense that ostriches are birds." The printed name is "an[ae]mic palm trees". Understand "palms" or "anaemic" as the anemic palm trees. -South of Long Street North is Long Street South. Long Street South is a proper-named southern road. Understand "long street s" as Long Street South. The description is "Long Street is lined on each side with a double-row of tall, an[ae]mic palm trees that bend towards one another many feet overhead. [We] are now in the southern part of this long corridor, between the Canadian Embassy and Arbot Maps & Antiques." +South of Long Street North is Long Street South. Long Street South is a proper-named southern road. Understand "long street s" as Long Street South. The description is "Long Street is lined on each side with a double-row of tall, an[ae]mic palm trees that bend towards one another many feet overhead. [We] are now in the southern part of this long corridor, between the Canadian Embassy and Arbot Maps & Antiques." The Canadian Embassy is a facade in Long Street South. It fronts east. It is scenery. The description is "The embassy is the largest foreign embassy here: Canadians do a lot of business with Atlantis, but the Québécois require special permission to enter, so there's a call for substantial clerical work. The building is a solid 1960s block in concrete with slit-shaped windows." Understand "concrete" or "windows" or "solid" or "block" or "slit-shaped" or "slit" or "window" or "slit shaped" or "slits" as the Canadian Embassy. @@ -55,14 +55,14 @@ After going to Arbot Maps & Antiques: say "The woman watching over the store stops you. 'I'm sorry,' she says. 'We are only open to those who have made previous visiting arrangements.' And we're shooed back out."; move the player to Long Street South, without printing a room description. -Arbot Maps & Antiques is west of Long Street South. It is indoors, checkpoint and southern. Understand "shop" or "store" or "antique" as Arbot Maps & Antiques. +Arbot Maps & Antiques is west of Long Street South. It is indoors, checkpoint and southern. Understand "shop" or "store" or "antique" as Arbot Maps & Antiques. Out-direction of Arbot Maps & Antiques is east. [Long Street South] Instead of smelling Arbot Antiques: say "The place smells of fresh coffee and old paper." -The maps collection is a thing in Arbot Maps & Antiques. Understand "large" or "collection" or "of" or "antique" or "under glass" or "street maps" or "maiana" or "navigation" or "distant places" or "charts" or "island" or "topography" as the maps collection. It is fixed in place. The printed name is "[if looking]collection[otherwise]maps collection[end if]". The initial appearance is "There is a large [maps collection] of vintage and antique maps under glass [--] the island of Atlantis as a whole, street maps of here and of Maiana, navigation maps of the harb[our], and then maps of more distant places as well." +The maps collection is a thing in Arbot Maps & Antiques. Understand "large" or "collection" or "of" or "antique" or "under glass" or "street maps" or "maiana" or "navigation" or "distant places" or "charts" or "island" or "topography" as the maps collection. It is fixed in place. The printed name is "[if looking]collection[otherwise]maps collection[end if]". The initial appearance is "There is a large [maps collection] of vintage and antique maps under glass [--] the island of Atlantis as a whole, street maps of here and of Maiana, navigation maps of the harb[our], and then maps of more distant places as well." The description of the maps collection is "[We] pore over a map of [one of]the Old City when the walls were still intact, as reconstructed from archaeological surveys[or]forbidden dig zones in Atlantis[or]bus routes between here and Maiana ca. 1973[or]island topography as measured in 1910[or]1880 shipping lines between Atlantis, Gibraltar, and points east[at random]." Instead of examining the maps collection when the Slangovia map is unseen: @@ -142,7 +142,7 @@ appearance description idle Section 3 - The Fleur d'Or -West of Long Street North is the Fleur d'Or Lobby. The description of the Fleur d'Or Lobby is "[one of]The Fleur d'Or is a high-end hotel that serves businessmen and luxury tourists interested in the linguistic mechanisms of the island. As a result, it has all kinds of paid exemptions, including an exemption allowing it to operate under a foreign name. +West of Long Street North is the Fleur d'Or Lobby. The description of Fleur d'Or Lobby is "[one of]The Fleur d'Or is a high-end hotel that serves businessmen and luxury tourists interested in the linguistic mechanisms of the island. As a result, it has all kinds of paid exemptions, including an exemption allowing it to operate under a foreign name. [or][stopping][The spotlights] in the ceiling light the floor in distinct pools of Bureau blue, and a [room divider] etched with random letters separates the lobby from the drinks club to the [west]." Understand "hotel" as the Fleur d'Or Lobby. @@ -155,7 +155,7 @@ The hotel has recently had a face lift, with the silly old ornamentation pried o If you are my mother, you call this style Atlantean Postmodern. Less kindly, it is something from the sweaty dreams of an upscale swimming-pool installer." -Fleur d'Or lobby is indoors and southern. The room divider is a scenery thing in Fleur d'Or Lobby. The printed name is "sheet of frosted glass". Understand "glass" or "sheet" or "sheet of" or "frosted" or "annotation" or "primordial" or "primeval" or "sea" as the room divider. The description is "The glass is a good three quarters of an inch thick, and looks very sturdy. The etched letters glow or fade out again depending on the changing light conditions in the lobby. +Fleur d'Or lobby is indoors, proper-named and southern. The room divider is a scenery thing in Fleur d'Or Lobby. The printed name is "sheet of frosted glass". Understand "glass" or "sheet" or "sheet of" or "frosted" or "annotation" or "primordial" or "primeval" or "sea" as the room divider. The description is "The glass is a good three quarters of an inch thick, and looks very sturdy. The etched letters glow or fade out again depending on the changing light conditions in the lobby. Annotation in the corner indicates that this is a commissioned artwork by Anne Landis Rosehip, entitled 'The Primeval Sea.'" @@ -166,7 +166,7 @@ The spotlights are a scenery thing in the Fleur d'Or Lobby. Understand "spotligh Rule for listing exits when looking in Fleur d'Or Lobby: do nothing instead. -A piano is a fixed in place instrument in the Fleur d'Or Lobby. The initial appearance is "[if the player is on the piano-bench]We're seated at a handsome piano in the corner[else]There is no one at the glossy [piano] in the corner[end if]." The description is "A glossy grand, probably worthy of better than bar music." Understand "keys" or "keyboard" as the piano. +A piano is a fixed in place instrument in the Fleur d'Or Lobby. The initial appearance is "[if the player is on the piano-bench]We're seated at a handsome piano in the corner[else]There is no one at the glossy [piano] in the corner[end if]." The description is "A glossy grand, probably worthy of better than bar music." Understand "keys" or "keyboard" as the piano. The piano-bench is an enterable scenery supporter. It allows seated. [The piano-bench is part of the piano.] The piano-bench is in the Fleur d'Or Lobby. The printed name is "piano bench". Understand "bench" or "piano bench" as the piano-bench. The description of the piano-bench is "Lightly padded and made of the same wood as the piano itself." @@ -199,7 +199,7 @@ Report performing the piece on an instrument which is not the oboe: Report performing something on an instrument which is not the oboe: say "We pick out [one of]some vaguely remembered commercial jingles from your childhood[or]a church hymn you heard a lot in your youth[or]my mother's fav[our]ite Atlantean folk tune[at random]." instead. -Check improvising the topic understood on the piano when the player is not on the piano-bench: +Check improvising the topic understood on the piano when the player is not on the piano-bench: try entering the piano-bench; Report improvising a topic listed in the Table of Musical Styles on the piano: @@ -231,7 +231,7 @@ Rule for writing a topic sentence about the piano: Section 4 - Drinks Club -Fleur d'Or Drinks Club is west of Fleur d'Or Lobby. It is indoors, checkpoint and southern. The description is "The back wall is dramatically decorated with bottled liquors of all sorts, from gin to cachaça; there's a giant bottle of Campari, taller than your average three-year-old, with a red ribbon around its neck. +Fleur d'Or Drinks Club is west of Fleur d'Or Lobby. It is indoors, checkpoint, proper-named and southern. The description is "The back wall is dramatically decorated with bottled liquors of all sorts, from gin to cachaça; there's a giant bottle of Campari, taller than your average three-year-old, with a red ribbon around its neck. What makes this place technically a drinks club rather than a bar is its lic[ense] to serve letter-manufactured food and drink. [A toolkit] on the [dor-bar-top] contains [a list of things *in the toolkit], ready to be transformed into their respective cocktails." @@ -319,7 +319,7 @@ After printing the name of the patron while writing a topic sentence about the b [Understand "play [piano]" as a mistake ("[one of]I have no skill in that department[or]I don't play[or]I don't think we want to attract attention with a jangly performance, thanks[at random]."). -Understand "play [text]" as a mistake ("[one of]I have no skill in that department[or]I don't play[or]I don't think we want to attract attention with a jangly performance, thanks[at random].") when the player can see the piano. ] +Understand "play [text]" as a mistake ("[one of]I have no skill in that department[or]I don't play[or]I don't think we want to attract attention with a jangly performance, thanks[at random].") when the player can see the piano. ] Part 2 - Student Quarters @@ -355,7 +355,7 @@ The apartment complex is a facade in Palm Square. The initial appearance is "I l Section 2 - Babel Cafe -South of Palm Square is Babel Café. Understand "cafe" as the Babel Café. The description of Babel Café is "Through many changes of management, this institution has fed the denizens of the university and ignored their semi-sedition." Babel Café is indoors and southern. +South of Palm Square is Babel Café. Understand "cafe" as the Babel Café. The description of Babel Café is "Through many changes of management, this institution has fed the denizens of the university and ignored their semi-sedition." Babel Café is indoors, proper-named and southern. Out-direction of Babel Café is north. [Back to Palm Square] @@ -458,10 +458,10 @@ Sanity-check locking keylessly the bathroom window: Report opening the bathroom window for the first time: - say "The window slides open with a hideous protesting shriek." instead. + say "The [if boldening is true][bold type][end if]window[roman type] slides open with a hideous protesting shriek." instead. Report closing the bathroom window: - say "[We] slide the window shut[one of]. I feel obscurely better now[or][stopping]." instead. + say "[We] slide the [if boldening is true][bold type][end if]window[roman type] shut[one of]. I feel obscurely better now[or][stopping]." instead. Before: if the noun is the bathroom window or the second noun is the bathroom window, reveal bathroom window. @@ -509,7 +509,7 @@ In-direction of Apartment Bathroom is south. [My apartment] Out-direction of Apartment Bathroom is east. [Palm Square] Rule for listing exits when the location is Apartment Bathroom: - say "[We] could climb back out the window, or [we] could go south into the rest of my apartment." + say "[We] could climb back [if boldening is true][bold type][end if]out[roman type] the window, or [we] could go [if boldening is true][bold type][end if]south[roman type] into the rest of my apartment." A nightstand is a supporter in the apartment bathroom. The initial appearance is "An antique [nightstand] of my mother's, which does not actually fit anywhere near my bed, is jammed into one corner of the bathroom." @@ -517,7 +517,7 @@ The description of the nightstand is "It is wobbly, scratched, and chipped, whic Instead of inserting something into the nightstand, say "[The nightstand] doesn't have a drawer." -The key is a passkey on the nightstand. It unlocks the apartment door. The heft of the key is 1. The description is "It's made of an extremely ordinary blank.". The key unbolts the apartment door. The indefinite article of the key is "a". +The key is a passkey on the nightstand. It unlocks the apartment door. The heft of the key is 1. The description is "It's made of an extremely ordinary blank.". The key unbolts the apartment door. The indefinite article of the key is "a". Test key-article with "i" holding the key. @@ -575,7 +575,7 @@ When play begins (this is the setting up my apartment rule): Test sink-kitchen with "X KITCHEN / WAVE S-REMOVER AT SINK / X KITCHEN" in My Apartment. -Studies Primary Language Acquisition is a book in My Apartment. Journal of Third-World Economics is a book in My Apartment. +Studies Primary Language Acquisition is a book in My Apartment. Journal of Third-World Economics is a book in My Apartment. The printed name of Studies Primary Language Acquisition is "Studies in Primary Language Acquisition". Understand "studies in" as Studies Primary Language Acquisition. @@ -590,7 +590,7 @@ A pot-of-yogurt is an edible thing. The printed name is "yogurt". Understand "yo Rule for printing the name of the pot-of-yogurt when the player wears the Britishizing goggles: say "yoghurt". -Test yogurtbug with "tutorial off / x yogurt / x yoghurt" holding the pot-of-yogurt. +Test yogurtbug with "tutorial off / x yogurt / x yoghurt" holding the pot-of-yogurt. A futon is a clothed bed. The futon is in My Apartment. The description of the futon is "Strictly speaking, more of a futon mattress. It doesn't have a frame." The flexible appearance is "My [futon] is on the floor in the opposite corner. ". @@ -735,7 +735,7 @@ Carry out taking the ring: Instead of climbing the gate: say "It is not badly built, as far as gates go, and it would not be possible to climb over without attracting attention." -Southeast of the sturdy iron gate is the University Oval. The University Oval is proper-named, checkpoint and southern. +Southeast of the sturdy iron gate is the University Oval. The University Oval is improper-named, checkpoint and southern. The description of University Oval is "This is the cen[ter] of the university, a broad grassy oval shaded with [sycamore trees] and surrounded by buildings in brick or white stone." @@ -808,7 +808,7 @@ Out-direction of Samuel Johnson Hall is north. [To University oval] Rule for listing exits while looking in Samuel Johnson Hall: do nothing instead. -The framed photograph of Waterstone is a thing in Samuel Johnson Hall. It is fixed in place. The initial appearance is "On the wall hangs a [photograph of Waterstone], with the words SHAPLY CHAIR in big letters underneath." Understand "photo" or "picture" or "professor" or "frame" as the framed photograph. +The framed photograph of Waterstone is a thing in Samuel Johnson Hall. It is fixed in place. The initial appearance is "On the wall hangs a [photograph of Waterstone], with the words SHAPLY CHAIR in big letters underneath." Understand "photo" or "picture" or "professor" or "frame" as the framed photograph. The printed name is "framed photograph of Professor Waterstone". The description is "The Shaply Chair is not named after the famous suffragette Phyllida Shaply, but after her considerably less famous or interesting descendant Lawrence Shaply, who was well-placed within Dental Consonants Ltd. when it started up and subsequently had buckets of money with which to endow university chairs. @@ -818,12 +818,12 @@ This may explain the particularly expansive grin on Waterstone's face in this im Section 3 - Seminar Room -Southwest of Samuel Johnson Hall is the seminar door. The seminar door is a closed lockable locked door. The seminar door is scenery. The description of the seminar door is "It's sturdy, because sometimes valuable equipment is stored in the room beyond. That room also contains the library of department books, a set of research materials kept on hand so that people don't have to go over to the university library to double-check basic data during a discussion." +Southwest of Samuel Johnson Hall is the seminar door. The seminar door is a closed lockable locked door. The seminar door is scenery. The description of the seminar door is "It's sturdy, because sometimes valuable equipment is stored in the room beyond. That room also contains the library of department books, a set of research materials kept on hand so that people don't have to go over to the university library to double-check basic data during a discussion." -Southwest of the seminar door is Language Studies Seminar Room. The description of the Language Studies Seminar Room is "They recently redid this room, and whoever picked the decorations had postmodern tastes." The Language Studies Seminar Room is indoors, checkpoint and southern. +Southwest of the seminar door is Language Studies Seminar Room. The description of the Language Studies Seminar Room is "They recently redid this room, and whoever picked the decorations had postmodern tastes." The Language Studies Seminar Room is indoors, checkpoint, improper-named and southern. After looking in the Language Studies Seminar Room when the seminar door is open: - if Professor Higgate is marked-visible: + if Professor Higgate is enclosed by location: continue the action; silently try closing the seminar door; if the seminar door is closed: @@ -832,7 +832,7 @@ After looking in the Language Studies Seminar Room when the seminar door is open The LSR chair is a chair in The Language Studies Seminar Room. The printed name of the LSR chair is "chair". The LSR chair is not scenery. The LSR chair is portable. -Before going from the Language Studies Seminar Room when the player carries Problem of Adjectives: +Before going from the Language Studies Seminar Room when the player carries Problem of Adjectives: try putting Problem of Adjectives on the LSR bookcase. Carry out putting Problem of Adjectives on the LSR Bookcase: @@ -843,8 +843,8 @@ Carry out putting Problem of Adjectives on the LSR Bookcase: The LSR bookcase is a supporter in the Language Studies Seminar Room. The initial appearance is "The bookshelves lining the walls contain the department library." The description is "Built in and sturdily made." The printed name is "bookshelf". Understand "shelf" or "shelves" or "bookshelf" as the LSR bookcase. -The big table is a supporter in the Language Studies Seminar Room. "The [big table] at the cen[ter] of the room is an irregular polygon[if the LSR chair is in location and the LSR chair is not handled], with one [LSR chair] pushed up to the shortest side[end if]." - The introduction is "I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach." +The big table is a supporter in the Language Studies Seminar Room. "The [big table] at the cen[ter] of the room is an irregular polygon[if the LSR chair is in location and the LSR chair is not handled], with one [LSR chair] pushed up to the shortest side[end if]." + The introduction is "I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach." The description is "Crafted from some exotic wood with lots of interesting burl structure. There was a wealthy donor behind the construction of this room." Understand "polygon" as the big table. @@ -907,9 +907,16 @@ Many courses are taught by graduate students, but these are naturally not listed Instead of taking the secretary's computer: say "I understand that theft is more or less your way of life, but please hold back this once." +The u-shaped desk can be hack-mentioned. + Before writing a paragraph about something when the u-shaped desk is in the location: + if the u-shaped desk is unmentioned: + now the u-shaped is not hack-mentioned; now the u-shaped desk is mentioned. [We want "the u-shaped desk" not "a u-shaped desk" or worse "an u-shaped desk".] +After printing the name of the u-shaped desk: + now the u-shaped desk is hack-mentioned. + The department printer is a device on the u-shaped desk. It is fixed in place. The description is "The networked [printer] handles output for all the computers in the department. [printer indicator]." Understand "lights" or "indicator" as the department printer. The printed name is "printer". @@ -920,12 +927,12 @@ Instead of taking the department printer: say "It would be a heavy thing to carry around, and I don't see much use for it elsewhere." Rule for writing a paragraph about the department printer: - say "[if boldening is true][bold type][end if]The department printer[roman type] also sits on [the u-shaped desk]. [run paragraph on]"; + say "[if boldening is true][bold type][end if]The department printer[roman type] [if the u-shaped desk is hack-mentioned]also [end if]sits on [the u-shaped desk]. [run paragraph on]"; now the department printer is mentioned; now the output tray is referenced by the current-paragraph; now the paper-drawer is referenced by the current-paragraph; if the paper-drawer is open: - say "[The paper-drawer] stands open[if the paper-drawer is not surprising]. [end if][run paragraph on]"; + say "[The paper-drawer] stands open[if the paper-drawer is surprising], revealing [a list of mentionable things *in the paper-drawer][end if]. [run paragraph on]"; while a surprising thing (called second special-target) is referenced by the current-paragraph: carry out the disclosing contents activity with the second special-target; rapidly set all immediate children of the second special-target mentioned; @@ -935,11 +942,6 @@ Rule for writing a paragraph about the department printer: otherwise: say line break. - -Rule for disclosing contents of the paper-drawer: - now the current-subject is paper-drawer; - say ", revealing [a list of mentionable things *in the paper-drawer]. [run paragraph on]". - After examining the department printer: if the paper-drawer is closed: say "The paper drawer is closed."; @@ -996,7 +998,7 @@ Test paper-bug with "tutorial off / shutoffice / wave c-remover at cream / open A draft document is a thing. Understand "pages" or "speech" or "talk" or "asterisks" as the draft document. [Understand "paper" as the draft document when the paper is not visible.] The description is "[homonym-shame-wanted]It's fifteen pages double-spaced, and appears to be the draft of a talk Professor Waterstone is preparing to give at a convention. I immediately notice, however, that several portions of the speech are marked with angry triple asterisks [--] Waterstone's way of marking up parts of text that need serious revision. -The talk concerns 'homonym shame': the anxiety felt in the Victorian era, and still manifested at times in modern culture, about objects that shared the same name as (and therefore theoretically might be converted into) something rude. Methods of disguising the legs of pianos and crotches of trees occupy a good portion of Waterstone's exposition, and there is a page-long aside on methods of making sure that donkeys are known by that name and not by the alternative. +The talk concerns 'homonym shame': the anxiety felt in the Victorian era, and still manifested at times in modern culture, about objects that shared the same name as (and therefore theoretically might be converted into) something rude. Methods of disguising the legs of pianos and crotches of trees occupy a good portion of Waterstone's exposition, and there is a page-long aside on methods of making sure that donkeys are known by that name and not by the alternative. To judge, however, from the angry asterisking, Waterstone is still looking for at least one more example of an object susceptible to double-entendre that has been successfully rendered innocent by some linguistic modification." @@ -1292,7 +1294,7 @@ Definition: a thing is Waterstone-inspiring: yes; no. -[It is confusing if Watersone looks at the player's belongings before we even know that he is looking for anything. So we use a fact, homonym-shame-wanted, to check whether the player knows about the puzzle. This will be set to known if we have read the draft document, if we have already tried to show or give something to Waterstone, or simply by knocking on his door after having been thrown out the first time.] +[It is confusing if Watersone looks at the player's belongings before we even know that he is looking for anything. So we use a fact, homonym-shame-wanted, to check whether the player knows about the puzzle. This will be set to known if we have read the draft document, if we have already tried to show or give something to Waterstone, or simply by knocking on his door after having been thrown out the first time.] Instead of knocking on office-door-1 when Professor Waterstone is on a chair and office-door-1 is closed and the location is Language Studies Department Office: if the player does not know homonym-shame-wanted: @@ -1342,7 +1344,7 @@ He locks his door again and goes out. I think he is actually humming something." complete "Speak to Professor Waterstone and get his invitation to see the T-inserter"; say "[line break]>"; custom-wait for any key; - say "[line break]Before we can do anything, Waterstone pops his head back in. 'What you did there [--] not strictly within the rules. But I admire, shall we say, [i]Realpolitik[/i]. You'll go far. Ignore Brown, but you'd probably do that anyway. Never talk to Higgate at all. I will see you later.'[paragraph break]And he pops back out."; + say "[line break]Before we can do anything, Waterstone pops his head back in. 'What you did there [--] not strictly within the rules. But I admire, shall we say, [i]Realpolitik[/i]. You'll go far. Ignore Brown, but you'd probably do that anyway. Never talk to Higgate at all. I will see you later.'[paragraph break]And he pops back out."; rule succeeds. A Water-reaction rule for the passage when the ass does not proffer the passage: @@ -1425,6 +1427,9 @@ A description-concealing rule when the location is the Language Studies Departme [Report Professor Waterstone locking office-door-1 with something: say "Through the window in Waterstone's door, [we] can see him turning the lock. When he catches us watching he gives a tight, unfriendly smile and goes back to his desk." instead.] +Instead of looking toward Waterstone’s Office when office-door-1 is closed: + try searching the special glass window. + Check examining office-door-1 when the subcommand of office-door-1 matches "waterstone": if Professor Waterstone is marked-visible: try examining Professor Waterstone instead. @@ -1639,7 +1644,7 @@ The reclamation computer is running a password-lock program called reclamation s The reclamation computer is running an enumerated multiple-choice program called the reclamations operation program. The options table of the reclamations operation program is the table of deeds. - The description of the reclamations operation program is "At the top of the screen is the message STATUS: [if the reclamation machine is closed and the reclamation machine is limit-replacing]STANDBY[otherwise if reclamation machine is abstract-removing]REMOVING ABSTRACTION LIMITS[otherwise if reclamation machine is abstract-replacing]RESTORING ABSTRACTION LIMITS[otherwise if the reclamation machine is limit-replacing]RESTORING LEGAL LIMITS ON ANIMAL-CREATION[otherwise]REMOVING LEGAL LIMITS ON ANIMAL-CREATION[end if]. + The description of the reclamations operation program is "At the top of the screen is the message STATUS: [if the reclamation machine is closed and the reclamation machine is limit-replacing]STANDBY[otherwise if reclamation machine is abstract-removing]REMOVING ABSTRACTION LIMITS[otherwise if reclamation machine is abstract-replacing]RESTORING ABSTRACTION LIMITS[otherwise if the reclamation machine is limit-replacing]RESTORING LEGAL LIMITS ON ANIMAL-CREATION[otherwise]REMOVING LEGAL LIMITS ON ANIMAL-CREATION[end if]. [options-list of the item described]". @@ -1928,6 +1933,12 @@ The printed name is "Lecture Hall". Understand "podium" or "at podium" or "at th After printing the name of Lecture Hall 1 while not constructing the status line: say " [roman type](at the [podium])". +Instead of looking toward Lecture Hall 1 when the location is Samuel Johnson Basement: + say "There is a lecture room to the east." + +Instead of looking toward Lecture Hall 1: + say "[We] see the podium that way." + The podium is a supporter in Lecture Hall 1. It is scenery. The description is "An advanced, pre-wired [podium] that allows the instructor to project slides from a laptop or show movies." On the podium is a page. The page is a notepad. The description of the page is "A sheet of lined paper[if the location is Lecture Hall 1], presumably left by the person who lectured here last[end if]." @@ -1970,6 +1981,9 @@ Lecture Hall 2 is south of Lecture Hall 1. The printed name is "Lecture Hall". U After printing the name of Lecture Hall 2 while not constructing the status line: say " [roman type](among the [if boldening is true][bold type][end if]seats[roman type])". +Instead of looking toward Lecture Hall 2: + say "[We] see the seats that way." + Some wooden seats are supporters in Lecture Hall 2. Understand "hard" or "wood" as the wooden seats. The initial appearance is "The room extends [if Location is Lecture Hall 1]south[otherwise]north[end if], full of hard [wooden seats]." The description is "Ingeniously uncomfortable." Rule for disclosing contents of the wooden seats when at least one mentionable thing is on the wooden seats: diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act IV Among Policemen.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act IV Among Policemen.i7x index c77b6915..1155e720 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act IV Among Policemen.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act IV Among Policemen.i7x @@ -26,7 +26,7 @@ Rule for listing exits when looking in Tall Street: else: say "To the south is the important blue rotunda of the Bureau of Orthography. The street runs west towards the busy roundabout." -The employment office is a facade in Tall Street. It fronts north. It is scenery. +The employment office is a facade in Tall Street. It fronts north. It is scenery. The description is "Only the stencilled lettering in the window identifies this place: Temporary Employment For Job Seekers. The blinds are down and the door locked. It doesn't look like a large facility." Understand "blinds" or "blind" or "door" or "window" or "lettering" as the employment office. Section 2 - Abandoned Park @@ -71,7 +71,7 @@ Rule for listing exits when looking in the Rotunda: The used furniture shop is a facade in Abandoned Park. It fronts east. The description is "Like just about everything else, the shop is closed, but were it open, it would be just the place to buy cracked mirrors, scuffed end tables, and wobbly chairs painted with a thick layer of off-white paint." It is scenery. -The veterinary clinic is a facade in Abandoned Park. It fronts north. It is scenery. +The veterinary clinic is a facade in Abandoned Park. It fronts north. It is scenery. The description is "From outside it looks just the same as almost any kind of professional office: there could just as well be a doctor in there, or a lawyer, or a psychiatrist." @@ -206,7 +206,7 @@ The skylight is scenery in the rotunda. The description is "It is distant and pe The inscribed-text is scenery in the Rotunda. Understand "new" or "orthodox" or "orthography" or "inscribed" or "text" or "lettering" or "inscription" as the inscribed-text. The printed name is "text". The description of the inscribed-text is "It is far too small to read, especially since the letters are not painted or inked, just carved into the stone surfaces." Instead of touching the inscribed-text: say "The letters are cool and tiny under our fingers." -The informational bulletin-board is fixed in place in the Rotunda. Understand "bulletin" or "board" as the bulletin-board. The initial appearance is "Near the street entrance is a sizable [bulletin-board] advertising the services of the Bureau[if the bin is in the location]; and next to this, pushed back to be out of the way, is a [bin][end if].[run paragraph on]" +The informational bulletin-board is fixed in place in the Rotunda. Understand "bulletin" or "board" as the bulletin-board. The initial appearance is "Near the street entrance is a sizable [bulletin-board] advertising the services of the Bureau[if the bin is in the location]; and next to this, pushed back to be out of the way, is a [bin][end if].[run paragraph on]" The description is "[i]What Can Your Bureau of Orthography Do For You?[/i] inquires the bulletin board, in a sprightly casual font. @@ -712,6 +712,9 @@ Sanity-check going from the Sensitive Equipment Testing Room: Check waving the letter-remover at Brock when the current setting of the letter-remover is "b": say "Brock would never forgive [us] if [we] turned him back into a rock now." instead. +Check waving the letter-remover at Brock when the current setting of the letter-remover is "r": + say "Brock would never forgive [us] if [we] turned him into a bock now." instead. + Carry out putting gel on the rock when the player does not know brock-found: now the player knows brock-found; complete "Find Brock"; @@ -784,7 +787,7 @@ Definition: a thing is bureau-disallowed if it is not bureau-allowed. ] Section 5 - Cold Storage -Cold Storage is southwest of Bureau Basement Secret Section. It is indoors, forbidden and southern. The description is "Shelves on both sides of the room are full of [objects-on-stands] on stands: objects that used to be men and women, and in a few cases even children. The [stand labels] preserve their original names." +Cold Storage is southwest of Bureau Basement Secret Section. It is indoors, improper-named, forbidden and southern. The description is "Shelves on both sides of the room are full of [objects-on-stands] on stands: objects that used to be men and women, and in a few cases even children. The [stand labels] preserve their original names." The introduction is "If this goes wrong, we could wind up living in here permanently. So we'd better figure whom to send out, and do it fast." @@ -864,7 +867,7 @@ I want to stop you, but you've got the upper hand now[or][stopping]. 'Yeah, but [regarding the victim][they] [don't] look like a criminal mastermind, does [they]?' -[end if][one of]There's a noise like the firing of a restoration gel rifle and [or]The rifle fires again, followed by[stopping] the sound of [the victim] collapsing into [a list of things which proffer the victim]. 'Nice try,' shouts a voice from outside. 'Next?'"; +[end if][one of]There's a noise like the firing of a restoration gel rifle and[or]The rifle fires again, followed by[stopping] the sound of [the victim] collapsing into [a list of things which proffer the victim]. 'Nice try,' shouts a voice from outside. 'Next?'"; now victim is nowhere; otherwise if the victim is the patsy-woman: now the story viewpoint is second person singular; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act V Atlantida Herself.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act V Atlantida Herself.i7x index e859fb3f..c72b855b 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act V Atlantida Herself.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Act V Atlantida Herself.i7x @@ -17,7 +17,7 @@ Section 1 - Display Reloading Room At the same time, we want to discourage the player from thinking that there is something to be won by trying to communicate with those back upstairs. So while the tourists are shown to have reactions to certain types of item, they remain on a tight cycle and can't be broken out of their basic behavior.] -Display Reloading Room is south of Equipment Archive. It is indoors, forbidden and southern. The description is "This area [if the display-platform is not in the location]is more or less empty. [Hazard-tape] marks off an area of the floor to indicate that [we] shouldn't stand there[otherwise]is mostly taken up with the [display-platform] descended from the room above[end if]." +Display Reloading Room is south of Equipment Archive. It is indoors, improper-named, forbidden and southern. The description is "This area [if the display-platform is not in the location]is more or less empty. [Hazard-tape] marks off an area of the floor to indicate that [we] shouldn't stand there[otherwise]is mostly taken up with the [display-platform] descended from the room above[end if]." A tv monitor is a fixed in place device in the Display Reloading Room. It is switched on. Understand "black" or "white" or "black and white" or "television" or "security" as the tv monitor. The initial appearance is "A black and white [tv monitor] is embedded in the wall." @@ -161,7 +161,7 @@ Instead of going north in Wonderland when the secret-door is closed and the secr Section 3 - Equipment Archive -Equipment Archive is a room. It is indoors, forbidden and southern. The description is "The [if boldening is true][bold type][end if]ceiling[roman type] is mirrored, perhaps to make it harder for anyone to sneak around without being noticed among the shelves." +Equipment Archive is a room. It is indoors, improper-named, forbidden and southern. The description is "The [if boldening is true][bold type][end if]ceiling[roman type] is mirrored, perhaps to make it harder for anyone to sneak around without being noticed among the shelves." A ceiling mirror is a mirror in the Equipment Archive. @@ -235,7 +235,7 @@ The surveillance room description is intentionally kept very brief as a partial The Surveillance Room is east of the Oracle Project. It is indoors. -The surveillance computer is a desktop computer in the Surveillance Room. It is fixed in place. The initial appearance is "A [surveillance computer] is mounted on the wall, an impressive flat screen readout[if the surveillance computer is switched on] displaying current activity[otherwise] presently blacked out[end if]." The surveillance computer is switched on. +The surveillance computer is a desktop computer in the Surveillance Room. It is fixed in place. The initial appearance is "A [surveillance computer] is mounted on the wall, an impressive flat screen readout[if the surveillance computer is switched on] displaying current activity[otherwise] presently blacked out[end if]." The surveillance computer is switched on. The description of the surveillance computer is "Below the flat screen are a keyboard and mouse, both shiny silver. Only top of the line equipment down here, it seems." Understand "flat" or "screen" or "readout" as the surveillance computer's screen. The description of the surveillance computer's screen is "It is bigger than my parent's television, and that is saying something." @@ -295,7 +295,7 @@ Test surveillance with "x computer / x screen / turn on computer / select securi Test survey with "test surveillance" in Surveillance Room. -The surveillance computer runs a search engine called access-database. The data table of access-database is the Table of Access Data. +The surveillance computer runs a search engine called access-database. The description of access-database is "[We] can type search terms to look for data records.". The data table of access-database is the Table of Access Data. Table of Access Data topic title data @@ -412,7 +412,7 @@ The spiral staircase is a down-staircase in Surveillance Room. It fronts down. T Section 3 - Workshop -Workshop is east of Surveillance Room. Workshop is indoors and forbidden. The description is "A room whose importance is obvious from how clean it is and how little furniture it is allowed to have." +Workshop is east of Surveillance Room. Workshop is indoors, improper-named and forbidden. The description is "A room whose importance is obvious from how clean it is and how little furniture it is allowed to have." @@ -433,7 +433,7 @@ The concrete-lining is scenery in the Generator Room. The printed name is "concr The yellow paint lettering is scenery in the Generator Room. The initial appearance is "CAUTION: HIGH ENERGY EQUIPMENT, it says. DO NOT OPERATE WITHOUT TRAINING. There is also a stenciled letter A surrounded by atom-style rings." Understand "stenciled" or "letter" or "letter a" or "atom-style" or "rings" or "ring" or "atom" as the yellow paint lettering. The printed name is "[if looking]Yellow[otherwise]yellow[end if] paint lettering". -The first aid station is in the Generator Room. The initial appearance is "[A first aid station] is built onto the wall[if the first aid station is open] and hangs open[otherwise]. It is closed[end if]." The first aid station is an openable closed container. The description of the first aid station is "It's a large box mounted to the wall, with a red cross painted on the front of it." Understand "large" or "box" or "red" or "cross" as the first aid station. +The first aid station is in the Generator Room. It is fixed in place. The initial appearance is "[A first aid station] is built onto the wall[if the first aid station is open] and hangs open[otherwise]. It is closed[end if]." The first aid station is an openable closed container. The description of the first aid station is "It's a large box mounted to the wall, with a red cross painted on the front of it." Understand "large" or "box" or "red" or "cross" as the first aid station. A ranking rule when the first aid station is mentionable: increase the description-rank of the first aid station by 10. @@ -508,7 +508,7 @@ The portcullis is a door. It is east of Tunnel through Chalk and west of Persona The description of the portcullis is "Heavy black metal bars, left from a much earlier state. [portcullis status]." To say portcullis status: - say "It is currently [if the portcullis is open]raised[otherwise]lowered[end if][if the jack wedges the portcullis] a few feet by [a jack][end if][if the pulley is non-empty]. From the pulley above the portcullis hangs [a list of things *in the pulley][otherwise]. There's a pulley and hook arrangement above the portcullis, but the hook is empty[end if]". + say "It is currently [if the portcullis is open]raised[otherwise]lowered[end if][if the jack wedges the portcullis] a few feet by [a jack][end if][if the pulley is non-empty]. From the [pulley] above the portcullis hangs [a list of things *in the pulley][otherwise]. There's a [end if][if the pulley is empty and boldening is true][bold type][end if][if the pulley is empty]pulley and hook[roman type] arrangement above the portcullis, but the hook is empty[end if]". Instead of searching the portcullis: if the player is in Tunnel through Chalk: @@ -620,7 +620,7 @@ Instead of pulling the portcullis: [Nothing makes this explicit, but in addition to being part of the counterweight, the counter measures numbers of visits to the oracle in a given month. For the most part people do not open the portcullis and consult with Atlantida from the outside instead, as they are increasingly afraid of her.] -The ordinary-counter is on the pulley. The printed name of the ordinary-counter is "counter". The description of the ordinary-counter is "One of those devices with a press-button to increment a number, to assist with counting things like the number of people attending an event. There's also a loop to let the user wear it over one finger. The counter currently reads [counter-state]." The ordinary-counter has a number called the counter-state. The counter-state of the ordinary-counter is 17. +The ordinary-counter is on the pulley. The printed name of the ordinary-counter is "counter". The description of the ordinary-counter is "One of those devices with a press-button to increment a number, to assist with counting things like the number of people attending an event. There's also a loop to let the user wear it over one finger. The counter currently reads [counter-state of the ordinary-counter]." The ordinary-counter has a number called the counter-state. The counter-state of the ordinary-counter is 17. Understand "press-button" or "button" as the ordinary-counter. Understand "counter" as the ordinary-counter. The ordinary-counter is wearable. @@ -637,7 +637,7 @@ Chapter 3 - Atlantida's Spaces Section 1 - Personal Apartment -The Personal Apartment is a room. It is indoors, checkpoint and forbidden. The description is "At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. [if the oil-paintings are in the location][Oil-paintings] on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. [end if]An antique bed stands in the cen[ter] of the room." +The Personal Apartment is a room. It is indoors, checkpoint, improper-named and forbidden. The description is "At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. [if the oil-paintings are in the location][Oil-paintings] on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. [end if]An antique bed stands in the cen[ter] of the room." atlantida-woman is a woman in the Personal Apartment. [She is on the fancy bed.] The printed name of atlantida-woman is "Atlantida". The description of atlantida-woman is "Her face is ageless, her eyes a piercing blue. She looks like Phyllida Shaply, our famous forebear, except that there is something ethereal and heroic about her as well." @@ -733,7 +733,7 @@ topic title data "biography" or "phyllida" or "shaply" or "marcus" or "aurelius" or "churchill" or "winston" or "margaret" or "thatcher" or "martin" or "luther" or "king" or "nelson" or "mandela" "biographies" "The collection includes four different biographies of Phyllida Shaply; numerous lives of her contemporaries; and then a bizarrely diverse coverage of saints and villains, ancient and recent figures. Marcus Aurelius appears, as do Winston Churchill and Margaret Thatcher, Martin Luther King and Nelson Mandela." "economy/economics/macroeconomics" "books on the economy" "Several impressive-looking textbooks on macroeconomics are listed, though from the bookmarks it is clear that the owner has not been able to get all the way through them." -The tall window is a door. The initial appearance is "A window in the north wall, cut out through the cliff face, gives a view of [if the current daytime is sunset]the ocean in fading sunlight[otherwise if the current daytime is evening]tranquil sea under a darkening sky[otherwise]brilliant sunlight and the hot sea[end if]." It is north of Private Solarium and south of the Precarious Perch. +The tall window is a transparent door. The initial appearance is "A window in the north wall, cut out through the cliff face, gives a view of [if the current daytime is sunset]the ocean in fading sunlight[otherwise if the current daytime is evening]tranquil sea under a darkening sky[otherwise]brilliant sunlight and the hot sea[end if]." It is north of Private Solarium and south of the Precarious Perch. The description of the tall window is "[if the tall window is open]The window stands open.[else]The window is closed.[end if]". @@ -768,7 +768,7 @@ Instead of going through the closed tall window: say "The window is shut: you'd break the glass." -Official Grounds is a region. The Antechamber, Rotunda, Tools Exhibit, All-Purpose Office, Bureau Hallway, Bureau Basement South, Bureau Basement Middle, Bureau Basement Secret Section, Wonderland, and Sensitive Equipment Testing Room, Equipment Archive, Cold Storage, Display Reloading Room, Workshop, Generator Room, Surveillance Room, and Oracle Project are in the Official Grounds. +Official Grounds is a region. The Antechamber, Rotunda, Tools Exhibit, All-Purpose Office, Bureau Hallway, Bureau Basement South, Bureau Basement Middle, Bureau Basement Secret Section, Wonderland, and Sensitive Equipment Testing Room, Equipment Archive, Cold Storage, Display Reloading Room, Workshop, Generator Room, Surveillance Room, and Oracle Project are in the Official Grounds. The Antechamber, All-Purpose Office, Bureau Hallway, Bureau Basement South, Bureau Basement Middle, Bureau Basement Secret Section [, Wonderland, Display Reloading Room, Oracle Project, Workshop, Equipment Archive, and Cold Storage] are privately-controlled. @@ -864,7 +864,7 @@ Instead of going up in Abandoned Shore: Instead of going north in Abandoned Shore when the player is not in the kayak: say "[We] have too far to go; just swimming won't get [us] out to Slango's yacht." -Abandoned Shore is below Precarious Perch. It is forbidden and checkpoint. The description is "There's a little inlet of shore here, mostly boulders with little sand, completely cut off from the dock area and sheltered by the curve of the rock so that it wouldn't be visible from the sea unless someone were very close in." +Abandoned Shore is below Precarious Perch. It is forbidden, improper-named and checkpoint. The description is "There's a little inlet of shore here, mostly boulders with little sand, completely cut off from the dock area and sheltered by the curve of the rock so that it wouldn't be visible from the sea unless someone were very close in." Some boulders are scenery in Abandoned Shore. Understand "crack" or "rocks" or "boulder" as the boulders. The description is "Rough black rock, the kind that tears up your hands if you try to hold onto it too tightly." @@ -986,7 +986,7 @@ Check facing in abandoned shore: Report facing in Abandoned Shore: say "The charm of this place is that it's very hard to see anything in any direction but the ocean. In every other direction [we] are completely protected by rocks." instead. -Open Sea is north of the Abandoned Shore. It is forbidden and checkpoint. The description is "The water stretches in all directions, but [we] can see off to the north where [viewed-yacht] is anchored, ready to bring [us] back aboard. Its metallic blue shape almost blends in with the water." +Open Sea is north of the Abandoned Shore. It is forbidden, improper-named and checkpoint. The description is "The water stretches in all directions, but [we] can see off to the north where [viewed-yacht] is anchored, ready to bring [us] back aboard. Its metallic blue shape almost blends in with the water." The introduction is "If [we] were further around the island to the east, [we] might be able to see bits of the drowned city: both the buildings that were legitimately destroyed when the land sunk into the sea, and the areas where during the Civil Dispute of Standard[ization] the authorities dumped unwanted foreign archaeological [if the player is wearing britishizing goggles]artefact[otherwise]artifact[end if]s. But here I'm afraid it's just shellfish and sand down there." Rule for listing exits when looking in the Open Sea: @@ -1070,7 +1070,7 @@ The aft is a direction. The aft has opposite fore. Understand "a" or "af" as aft The aft-port is a direction. The aft-port has opposite fore-starboard. It is nautical-directional. Understand "pa" or "ap" as aft-port when the location is nautical. -The aft-starboard is a direction. It is nautical-directional. The aft-starboard has opposite fore-port. Understand "sa" or "as" or "asb" as aft-starboard when the location is nautical. +The aft-starboard is a direction. It is nautical-directional. The aft-starboard has opposite fore-port. Understand "sa" or "as" or "asb" as aft-starboard when the location is nautical. The fore-port is a direction. It is nautical-directional. The fore-port has opposite aft-starboard. Understand "pf" or "fp" as fore-port when the location is nautical. @@ -1109,7 +1109,7 @@ The yacht's name is obviously a riff on Counterfeit Monkey (Slango's reason for Section 2 - Sunning Deck -Sunning Deck is a nautical room. It is forbidden. +The Sunning Deck is a nautical room. It is forbidden. The description is "[one of]This is a very fine boat: sleek, shiny, big... Oh, you don't like it when I put it that way, I see. All right then: a high-speed yacht, something luxurious enough that it looks like a rich man's toy to harbor officials, but it handles almost like a cigarette boat. [if the player wears the Britishizing goggles]Fibreglass[otherwise]Fiberglass[end if] hull, shaped in a deep V for racing, capable of 80 knots on a calm sea. Range of around 300 nautical miles, enough to take us past Gibraltar to Málaga or perhaps even Almeria. This bit is the aft portion[or]This is the aft section of the deck[stopping], broad and flat and suitable for sunning oneself." @@ -1136,7 +1136,7 @@ In-direction of Navigation Area is down. [Into galley] Rule for writing a paragraph about Slango when Slango is on the Command Chair: say "Slango is in [the command chair]. He looks more relaxed driving the boat than I've ever seen him before." -The steep staircase top is a down-staircase. It is in the Navigation Area. It fronts down. The description is "The steps are taller than is really quite comfortable.". The printed name is "steep staircase". Understand "ladder" as the steep staircase top. +The steep staircase top is a down-staircase. It is in the Navigation Area. It fronts down. The description is "The steps are taller than is really quite comfortable.". The printed name is "steep staircase". Understand "ladder" as the steep staircase top. The steep staircase bottom is an up-staircase. It fronts up. It is in the Galley. The description is "The stairs ascend to the navigation area on deck." The printed name is "steep staircase". Understand "ladder" as the steep staircase bottom. @@ -1144,11 +1144,11 @@ The command chair is an enterable scenery supporter in the Navigation Area. The The controls are scenery in the Navigation Area. Understand "mass" or "buttons" or "button" or "lever" or "levers" or "steering" or "wheel" as the controls. The description is "It's curious, looking at these and knowing I've never touched them before in my life, and yet having your instinctive muscular knowledge of what they're all for and how they work. I feel like I could sit down and drive the yacht, and at the same time I find the idea terrifying." -Foredeck is fore from the Navigation Area. It is nautical and forbidden. The description is "Here the yacht is nothing but a nose over the water. A [hatch], hardly big enough for a portly person, descends into the so-called crew cabin." +The Foredeck is fore from the Navigation Area. It is nautical and forbidden. The description is "Here the yacht is nothing but a nose over the water. A [hatch], hardly big enough for a portly person, descends into the so-called crew cabin." In-direction of Foredeck is down. [Into crew cabin] -Some portholes are a kind of thing. Portholes are usually scenery. The description of the portholes is usually "Perhaps I should drop any attempt to sound nautical and just call them windows, because they are not the round things one normally thinks of. But they are waterproof and just above the water line." Understand "window" or "windows" or "porthole" or "portholes" as portholes. The printed name of portholes is always "portholes". +Some portholes are a kind of thing. Portholes are usually scenery. The description of the portholes is usually "Perhaps I should drop any attempt to sound nautical and just call them windows, because they are not the round things one normally thinks of. But they are waterproof and just above the water line." Understand "window" or "windows" or "porthole" or "portholes" as portholes. The printed name of portholes is always "portholes". Instead of searching portholes: say "It's hard to get much of a view, just the glimmering and rolling of the water surface." @@ -1173,7 +1173,7 @@ This is the pre-drawer rule: Section 4 - Crew Cabin -The Crew Cabin is a room. It is nautical and forbidden. It is indoors. The description is "It was meant to be mine, before we turned out to be inseparable It's... Spartan. But I didn't pay for expensive accommodations. Oh, yes, and I can understand that it must be a bother for you to give up the storage space. +The Crew Cabin is a room. It is nautical and forbidden. It is indoors. The description is "It was meant to be mine, before we turned out to be inseparable. It's... Spartan. But I didn't pay for expensive accommodations. Oh, yes, and I can understand that it must be a bother for you to give up the storage space. I'm fascinated to note what shape a bed can be when it's not rectangular. More sort of curved and tapering. Convenient if you're called on to house a mermaid.". @@ -1194,7 +1194,7 @@ There's even a little washing machine, for items too big to hand-wash in the sin Out-direction of Galley is up. [Back up to navigation area] -A built-in table is scenery in the Galley. It is a supporter. The description is "When the weather is good and there is nothing urgent happening, you all often eat out on the sunning deck, which is more congenial; but at other times you take your meals down here, on this table. The seating is built-in.". Some seating is part of the built-in table. The seating is an enterable supporter. Understand "built-in seating" as the seating. +A built-in table is scenery in the Galley. It is a supporter. The description is "When the weather is good and there is nothing urgent happening, you all often eat out on the sunning deck, which is more congenial; but at other times you take your meals down here, on this table. The seating is built-in.". Some seating is part of the built-in table. The seating is an enterable supporter. The seating allows seated. Understand "built-in seating" as the seating. The galley cabinet is a scenery cabinet in the Galley. @@ -1269,7 +1269,7 @@ Instead of inserting something into a freezer compartment: Section 6 - Brock's Stateroom -Brock's Stateroom is fore from the Galley. It is nautical and forbidden. It is indoors. The description is "Bigger than your bunk or Slango's, Brock's space takes the whole width of the yacht here, with windows out both sides, and a double bed. +Brock's Stateroom is fore from the Galley. It is nautical and forbidden. It is indoors. The description is "Bigger than your bunk or Slango's, Brock's space takes the whole width of the yacht here, with windows out both sides, and a double bed. The shape of hull in this part of the yacht means that the room is much narrower fore than aft, the walls sweeping grandly outward from the head of [Brock's bed]. It looks like the bed of Captain Horndog, Space Woman[ize]r. If you ask me." @@ -1310,6 +1310,14 @@ The expensive laptop is a laptop. The description is "It's Brock's fav[our]ite o The expensive laptop is running a password-lock program called Brock's security. The password of Brock's security is "2!ch_nqrx@v". +An input handling rule for Brock's security (this is the fix broken password rule): + let N be "[the topic understood]"; + if N matches the text "2 ch_nqrx@v": + carry out the rewarding successful answering activity with Brock's security; + rule succeeds; + otherwise: + abide by the check for correct passwords rule. + The expensive laptop is running a multiple-choice program called Brock-OS. The options table of Brock-OS is the Table of GUI Choices. @@ -1354,7 +1362,7 @@ Some front portholes are portholes. They are in Brock's Stateroom. Section 7 - Brock's Head -Brock's Head is aft-port from Brock's Stateroom. It is nautical and forbidden. It is indoors. It is a bathroom. The description is "Brock has gotten the best accommodations in this respect as well: his bathroom is less cramped than the others aboard, and the mirror is bigger." +Brock's Head is aft-port from Brock's Stateroom. It is nautical and forbidden. It is indoors. It is a bathroom. The description is "Brock has gotten the best accommodations in this respect as well: his bathroom is less cramped than the others aboard, and the mirror is bigger." Instead of going starboard in Brock's Head: try going fore-starboard. @@ -1364,7 +1372,7 @@ Instead of going fore in Brock's Head: Section 8 - Your Bunk -Your Bunk is aft-starboard from the Galley. It is nautical and forbidden. It is indoors. The description is "Amazing: it's even tinier than my apartment, and the bed isn't even a twin in width. Across from the bed is a built-in [bench], with [random portholes] above, just at the waterline." +Your Bunk is aft-starboard from the Galley. It is nautical and forbidden. It is indoors. The description is "Amazing: it's even tinier than my apartment, and the bed isn't even a twin in width. Across from the bed is a built-in [bench], with [random portholes] above, just at the waterline." Out-direction of Your bunk is fore-port. [Back to galley] @@ -1384,7 +1392,7 @@ Your wardrobe contains a sundress, a black turtleneck, some trousers, and a swim The sundress, black turtleneck, trousers, and swimsuit are wearable. The description of the sundress is "Bought during a vacation in Nauplia. It was tempting to look like the other tourists. And why not?" The sundress covers the torso-area. The description of the black turtleneck is "It averts attention and is useful on jobs." The turtleneck covers the torso-area. - The description of the trousers is "Close-fitting and dark col[our]ed, useful to wear when going places sneakily by night." The trousers cover the legs-area. + The description of the trousers is "Close-fitting and dark col[our]ed, useful to wear when going places sneakily by night." The trousers cover the legs-area. The description of the swimsuit is "Often the only form of exercise available is swimming off the back of the True Macaque, and Slango insists that you and Brock do this daily if on-shore forms of exertion are not available. It's a one-piece suit, meant for function rather than show." The swimsuit covers the torso-area. Sanity-check wearing the sundress: @@ -1418,6 +1426,9 @@ Every turn when the location is nautical and portholes are in location: Your bed is a yacht bed in your bunk. It is scenery. The description is "Homely but familiar." +Rule for describing the drawer layout of your bed: + say "Your bed has two drawers. "; + Some back portholes are portholes. They are in your bunk. Instead of going fore in Your Bunk: @@ -1425,11 +1436,11 @@ Instead of going fore in Your Bunk: Section 10 - Your Head -Your Head is aft from Your Bunk. It is nautical and forbidden. It is a bathroom. It is indoors. The description is "All the absolutely required amenities of a bathroom, packed into the least possible space. The international space station assigns more room to the bathroom functions." +Your Head is aft from Your Bunk. It is nautical and forbidden. It is a bathroom. It is indoors. The description is "All the absolutely required amenities of a bathroom, packed into the least possible space. The international space station assigns more room to the bathroom functions." Section 11 - Slango's Bunk -Slango's Bunk is aft-port from the Galley. It is nautical and forbidden. It is indoors. The description is "Just as tiny as yours, with a bed narrower than a standard twin, and its own miniature head, and drawers cunningly fitted under the bed to hold clothing and other necessities." +Slango's Bunk is aft-port from the Galley. It is nautical and forbidden. It is indoors. The description is "Just as tiny as yours, with a bed narrower than a standard twin, and its own miniature head, and drawers cunningly fitted under the bed to hold clothing and other necessities." Out-direction of Slango's bunk is fore-starboard. [Back to galley] diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Actions and Human Conversation.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Actions and Human Conversation.i7x index 0ea66e9d..503974df 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Actions and Human Conversation.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Actions and Human Conversation.i7x @@ -323,7 +323,7 @@ To say directions to (destination - a room): -- 1: say ". That's just [way] from here[run paragraph on]"; -- otherwise: - if distance is less than 5: + if distance is less than 5: say ". It's not far; you'd head [way] to start[run paragraph on]"; otherwise if distance is less than 9: say ". It's a little bit of a walk, but not too bad. Head [way] to start with[run paragraph on]"; @@ -393,7 +393,7 @@ location-questioning quip is a kind of questioning quip. where there seems airport is a weakly-phrased location-questioning quip. The printed name is "where there is an airport". The true-name is "where there seems airport". - Understand "is" or "an" or "airport" or "international" or "plane" or "airplane" as where there seems airport. The place-sought is "an airport". + Understand "is" or "an" or "airport" or "international" or "plane" or "airplane" as where there seems airport. The place-sought is "an airport". [The mentions-list is {geography, transportation}.] The reply is "[one of]'Atlantis doesn't have a commercial airport,' says [the current interlocutor]. 'There's an airstrip that belongs to Dental Consonants Limited, but if you don't have a corporate jet, forget it.'[or]'[awkward no]. Occasionally you might see planes or even a helicopter, but they're going to the DCL campus for business purposes. Tourists only come by ocean.'[or][The current interlocutor] explains, as we've already heard, that there is no airport, at least not as far as we're concerned.[stopping]". It is background-information. @@ -401,7 +401,7 @@ where there seems airport is a weakly-phrased location-questioning quip. where there seems garage is a weakly-phrased location-questioning quip. The printed name is "where there is a garage". The true-name is "where there seems garage". - Understand "is" or "a" as where there seems garage. The place-sought is "a garage". + Understand "is" or "a" as where there seems garage. The place-sought is "a garage". [The mentions-list is {geography, transportation}.] It is background-information. The correct answer is Park Center. @@ -414,7 +414,7 @@ Availability rule for where there seems garage: where there seems telephone service is a weakly-phrased location-questioning quip. The printed name is "where there is telephone service". The true-name is "where there seems telephone service". - Understand "is" or "phone" as where there seems telephone service. The place-sought is "a public telephone". + Understand "is" or "phone" as where there seems telephone service. The place-sought is "a public telephone". [The mentions-list is {geography}.] It is background-information. The correct answer is Park Center. @@ -427,14 +427,14 @@ Availability rule for where there seems internet service when the current interl where there seems internet service is a weakly-phrased location-questioning quip. The printed name is "where there is internet service". The true-name is "where there seems internet service". - Understand "is" as where there seems internet service. The place-sought is "internet service". + Understand "is" as where there seems internet service. The place-sought is "internet service". [The mentions-list is {Internet, geography}.] The reply is "[one of]'There are some cafés and places that have access to the Atlantis network,' [the current interlocutor] [say]. 'But a lot of them are probably closed today for Serial Comma Day.'[or][holiday closures][stopping]". It is background-information. where food seems sold is a weakly-phrased location-questioning quip. The printed name is "where food is sold". The true-name is "where food seems sold". - Understand "is" or "where there seems" as where food seems sold. The place-sought is "a source of groceries". + Understand "is" or "where there seems" as where food seems sold. The place-sought is "a source of groceries". [The mentions-list is {food, geography}.] The reply is "[one of]'All the regular grocery stores are probably closed for Serial Comma Day, but you could try the farmer's market up on Hesychius Street.'[or][holiday closures][at random]". It is background-information. @@ -442,36 +442,36 @@ where food seems sold is a weakly-phrased location-questioning quip. where a school seems is a weakly-phrased location-questioning quip. The printed name is "where a school is". The true-name is "where a school seems". - Understand "is" or "elementary" or "grammar" or "comprehensive" or "junior" or "where there seems" as where a school seems. The place-sought is "an elementary school". + Understand "is" or "elementary" or "grammar" or "comprehensive" or "junior" or "where there seems" as where a school seems. The place-sought is "an elementary school". [The mentions-list is {education, geography}.] It is background-information. The correct answer is Roget Close. where customs seems found is a weakly-phrased location-questioning quip. The printed name is "where customs is found". The true-name is "where customs seems found". - Understand "is" or "where there seems" as where customs seems found. The place-sought is "customs services". + Understand "is" or "where there seems" as where customs seems found. The place-sought is "customs services". [The mentions-list is {immigration, geography}.] It is background-information. The correct answer is Customs House. where post office seems found is a weakly-phrased location-questioning quip. The printed name is "where a post office is found". The true-name is "where post office seems found". - Understand "is" or "post office" or "postal" or "mail" or "postal/mail service" or "where there seems" as where post office seems found. The place-sought is "a post office". + Understand "is" or "post office" or "postal" or "mail" or "postal/mail service" or "where there seems" as where post office seems found. The place-sought is "a post office". [The mentions-list is {geography}.] It is background-information. The correct answer is Deep Street. where pharmacy seems found is a weakly-phrased location-questioning quip. The printed name is "where a pharmacy is found". The true-name is "where pharmacy seems found". - Understand "is" or "drugs" or "drug" or "druggist" or "chemist" or "chemists" or "where there seems" as where pharmacy seems found. The place-sought is "a pharmacy". + Understand "is" or "drugs" or "drug" or "druggist" or "chemist" or "chemists" or "where there seems" as where pharmacy seems found. The place-sought is "a pharmacy". [The mentions-list is {geography}.] It is background-information. The correct answer is Midway. where lodging seems found is a weakly-phrased location-questioning quip. The printed name is "where lodging is found". - The true-name is "where lodging seems found". - Understand "is" or "hostel" or "lodgings" or "where there seems" as where lodging seems found. The place-sought is "lodging for the night". + The true-name is "where lodging seems found". + Understand "is" or "hostel" or "lodgings" or "where there seems" as where lodging seems found. The place-sought is "lodging for the night". [The mentions-list is {geography}.] It is background-information. The correct answer is Hostel. @@ -493,14 +493,14 @@ Instead of discussing where lodging seems found when location is dormitory: where there seems hotel is a weakly-phrased location-questioning quip. The printed name is "where there is a hotel". The true-name is "where there seems hotel". - Understand "is" or "a" or "fleur" or "d'or" as where there seems hotel. The place-sought is "a hotel". + Understand "is" or "a" or "fleur" or "d'or" as where there seems hotel. The place-sought is "a hotel". [The mentions-list is {geography}.] It is background-information. The correct answer is Fleur d'or. where there seems Arbot is a weakly-phrased location-questioning quip. The printed name is "where to find Arbot Maps & Antiques". The true-name is "where there seems Arbot". - Understand "is" or "Arbot" or "antiques" or "an" or "store" or "shop" or "arbots" or "arbot's" or "maps" or "&" as where there seems arbot. The place-sought is "an antiques store". + Understand "is" or "Arbot" or "antiques" or "an" or "store" or "shop" or "arbots" or "arbot's" or "maps" or "&" as where there seems arbot. The place-sought is "an antiques store". [The mentions-list is {geography}.] It is background-information. The correct answer is Arbot Maps & Antiques. @@ -513,7 +513,7 @@ Instead of discussing where there seems Arbot when the location is Arbot Maps & where there seems cinema is a weakly-phrased location-questioning quip. The printed name is "where there is a cinema". The true-name is "where there seems cinema". - Understand "is" or "a" or "cinema" as where there seems cinema. The place-sought is "a cinema". + Understand "is" or "a" or "cinema" as where there seems cinema. The place-sought is "a cinema". [The mentions-list is {geography}.] It is background-information. The correct answer is Cinema. @@ -526,7 +526,7 @@ Instead of discussing where there seems cinema when the location is the cinema l where there seems pub is a weakly-phrased location-questioning quip. The printed name is "where there is a pub". The true-name is "where there seems pub". - Understand "is" or "a" or "bar" as where there seems pub. The place-sought is "a pub". + Understand "is" or "a" or "bar" as where there seems pub. The place-sought is "a pub". [The mentions-list is {geography, counterfeit monkey-as-subject}.] It is background-information. The correct answer is Counterfeit Monkey. @@ -1442,7 +1442,7 @@ buy the wrap is a purchasing quip. It quip-supplies the clerk. Carry out the clerk discussing buy the wrap: - move the wrap to the player; + move the wrap to the player; say "The clerk takes the wrap out of the case and puts it on the table for us." Availability rule for buy the pocket-bread: @@ -1564,13 +1564,13 @@ Does the player mean doing something to the gimlets: Does the player mean doing something to the nails: it is very unlikely. -Does the player mean doing something to the screwdriver when location is Fleur d'Or Drinks Club: +Does the player mean doing something to the screwdriver when location is Fleur d'Or Drinks Club: it is very likely. -Does the player mean doing something to the gimlet when location is Fleur d'Or Drinks Club: +Does the player mean doing something to the gimlet when location is Fleur d'Or Drinks Club: it is very likely. -Does the player mean doing something to the nail when location is Fleur d'Or Drinks Club: +Does the player mean doing something to the nail when location is Fleur d'Or Drinks Club: it is very likely. Carry out the bartender discussing buy the screwdriver: @@ -1642,9 +1642,9 @@ Rule for printing the name of rusty nail while looking at the rusty-nail-drink t say "metallic kind of rusty nail". Rule for printing the name of rusty-nail-drink while looking at the rusty-nail-drink through something: say "rusty nail cocktail". -Rule for printing the name of screwdriver while looking at the screwdriver-drink through something: +Rule for printing the name of screwdriver while looking at the screwdriver-drink through something: say "tool form of screwdriver". -Rule for printing the name of screwdriver-drink while looking at the screwdriver-drink through something: +Rule for printing the name of screwdriver-drink while looking at the screwdriver-drink through something: say "screwdriver cocktail". Rule for printing the name of gimlet while looking at the gimlet-drink through something: say "tool form of gimlet". @@ -2125,7 +2125,7 @@ Carry out Kate discussing which map was sold: now the Slangovia map is in the location. what sort of demonstration is a questioning quip. - Understand "schedule" or "plan" or "plans" as what sort of demonstration. + Understand "schedule" or "plan" or "plans" or "demo" as what sort of demonstration. The comment is "'[if immediately]What sort of demonstration is that[otherwise]You mentioned that your boss and the other gentleman went to a demonstration. What kind of demonstration was it[end if]?'" The reply is "She smiles and shrugs. '[Mr] Arbot used to work for the Bureau before he retired to sell antiques. He still has lots of connections. It could be anything.'" It indirectly-follows whether she hath seen Brock-man. @@ -2142,6 +2142,8 @@ Cryptic. Perhaps he was posing as a researcher? But we can't very well ask, not It indirectly-follows whether she hath seen Brock-man. It quip-supplies Kate. +Understand "brock" as whether Brock-man seemed upset. + recommend-help is an NPC-directed quip. The reply is "'If your friend is missing, you could report him to the Bureau, you know,' she says. 'I believe they keep close tabs on academic and research visitors. They may well know where he is.' @@ -2331,7 +2333,7 @@ whether crime could ever be justified is a questioning quip. The comment is "'Hy whether the government seems just is a questioning quip. The printed name is "whether the government is just". The true-name is "whether the government seems just". - Understand "is" as whether the government seems just. The comment is "'Do you think the government is just?'". + Understand "is" as whether the government seems just. The comment is "'Do you think the government is just?'". [The mentions-list is {bureau, legislation}.] The reply is "'What, here? Of course. We had universal suffrage before lots of places, right?' he says, counting off on his fingers. '1877. And we never had slavery. Plus there is very little poverty and there's a high standard of living. Good health care. No complaints here.'". It quip-supplies the ticket-taker. @@ -2339,7 +2341,7 @@ whether the government seems just is a questioning quip. whether immigration laws seem fair is a questioning quip. The printed name is "whether immigration laws are fair". The true-name is "whether immigration laws seem fair". - Understand "are" as whether immigration laws seem fair. The comment is "'Do you think our immigration laws are fair?'". + Understand "are" as whether immigration laws seem fair. The comment is "'Do you think our immigration laws are fair?'". [The mentions-list is {immigration, legislation, bureau}.] The reply is "'They seem like they're working,' he says. 'I don't really give that kind of thing a lot of thought, but, I've never met someone who seemed like they shouldn't have been let in, you know?'". It quip-supplies the ticket-taker. @@ -2350,7 +2352,7 @@ Definition: whether he hath ever been in trouble alongside law is civic: whether he hath ever been in trouble alongside law is a questioning quip. The printed name is "whether he has ever been in trouble with the law". The true-name is "whether he hath ever been in trouble alongside law". - Understand "has" or "with" as whether he hath ever been in trouble alongside law. The comment is "'Have you ever had any run-ins with the law?'". + Understand "has" or "with" as whether he hath ever been in trouble alongside law. The comment is "'Have you ever had any run-ins with the law?'". [The mentions-list is {security, legislation, crime}.] The reply is "'That's kind of none of your business, isn't it?'". It quip-supplies the ticket-taker. @@ -2381,7 +2383,7 @@ Instead of saying no when the current interlocutor is the ticket-taker and expla explain that we hath a recorder is a performative quip. The printed name is "explain that we have a recorder". The true-name is "explain that we hath a recorder". - Understand "have" as explain that we hath a recorder. The comment is "'I'm, ah, recording all of this. Makes it easier not to have to write things down during the survey. More scientific, too.'". + Understand "have" as explain that we hath a recorder. The comment is "'I'm, ah, recording all of this. Makes it easier not to have to write things down during the survey. More scientific, too.'". [The mentions-list is {yourself}.] The reply is "'Uh... okay.'". It quip-supplies the ticket-taker. @@ -2389,7 +2391,7 @@ explain that we hath a recorder is a performative quip. we seem curious is an informative quip. The printed name is "we are curious". The true-name is "we seem curious". - Understand "are" as we seem curious. The comment is "'No, not exactly. I was just curious about what you thought,' we say.". + Understand "are" as we seem curious. The comment is "'No, not exactly. I was just curious about what you thought,' we say.". [The mentions-list is {yourself}.] The reply is "'...huh.'". It quip-supplies the ticket-taker. @@ -2443,7 +2445,7 @@ mutual-embarrassment is an NPC-directed quip. assure him that we seem not hitting on him is a performative quip. The printed name is "assure him that we are not hitting on him". The true-name is "assure him that we seem not hitting on him". - Understand "are" as assure him that we seem not hitting on him. The comment is "You laugh. 'Sorry, no, I wasn't asking you out[forget you-hit-on],' you say. 'I'm sure she's a lucky girl, but I'd be robbing the cradle just a little.'". + Understand "are" as assure him that we seem not hitting on him. The comment is "You laugh. 'Sorry, no, I wasn't asking you out[forget you-hit-on],' you say. 'I'm sure she's a lucky girl, but I'd be robbing the cradle just a little.'". [The mentions-list is { yourself, ticket-taker }.] The reply is "'Heh. Heh. Yeah. Heh.' He's not meeting our eye and his face is going even redder than it was before, but I can't think what else you could have said there. Except, of course, for the option of leaving the poor guy alone, since this is hardly germane to our mission.". It quip-supplies the ticket-taker. @@ -2451,7 +2453,7 @@ assure him that we seem not hitting on him is a performative quip. about what his girlfriend seems like is a questioning quip. The printed name is "what his girlfriend is like". The true-name is "what his girlfriend seems like". - Understand "is" as what his girlfriend seems like. The comment is "'What's she like, your girlfriend?'". + Understand "is" as what his girlfriend seems like. The comment is "'What's she like, your girlfriend?'". [The mentions-list is { romance, ticket-taker }.] The reply is "'Uh... she's blonde, about this tall' (he holds his hand at the height of his own shoulder) 'and she has two sisters. And she really likes collecting perfumes. She wants to be a perfume designer when we're older. Or I think there's another name for it.'". It quip-supplies the ticket-taker. @@ -2485,24 +2487,24 @@ An availability rule for where my backpack seems: where my backpack seems is an unlisted questioning quip. The printed name is "where my backpack is". The true-name is "where my backpack seems". - Understand "is" or "pack" or "lost" as where my backpack seems. The comment is "'I left my pack in the cinema,' we say. 'Can I just go in and fetch it? I'll come right back out. No need for a ticket.'". + Understand "is" or "pack" or "lost" as where my backpack seems. The comment is "'I left my pack in the cinema,' we say. 'Can I just go in and fetch it? I'll come right back out. No need for a ticket.'". [The mentions-list is {backpack}.] The reply is "He scowls. 'We've been getting a lot of people trying to scam us,' he says. 'So I'm going to say no.'". It quip-supplies the ticket-taker. -An availability rule for argue about lost plus found policy: +An availability rule for argue about lost plus found policy: if the player encloses the backpack: it is off-limits; if the ticket-taker knows allowed-in-movie: it is off-limits. -argue about lost plus found policy is a performative quip. - The printed name is "argue about the lost and found policy". The true-name is "argue about lost plus found policy". - Understand "and" as argue about lost plus found policy. The comment is "'That's ridiculous. I'll be right back out!'". +argue about lost plus found policy is a performative quip. + The printed name is "argue about the lost and found policy". The true-name is "argue about lost plus found policy". + Understand "and" as argue about lost plus found policy. The comment is "'That's ridiculous. I'll be right back out!'". [The mentions-list is {yourself, backpack}.] The reply is "'We clean the theater between showings,' he says bullishly. 'So if you had left something in there, we would have found it. You must have left your stuff somewhere else.'". It quip-supplies the ticket-taker. - It directly-follows where my backpack seems. + It directly-follows where my backpack seems. Availability rule for demonstrate lost backpack: if the player does not enclose the backpack: @@ -2513,7 +2515,7 @@ demonstrate the lost backpack is a performative quip. [The mentions-list is {backpack}.] The reply is "'Uh... the person who cleaned before me must've been a little bit careless,' he says. Right.". It quip-supplies the ticket-taker. - It indirectly-follows argue about lost plus found policy + It indirectly-follows argue about lost plus found policy Before discussing buy movie-ticket when the player encloses the ticket: say "Oh, doesn't that seem a waste? We have a nice fake ticket that we didn't have to spend any money on. Maybe money's like water to you.... @@ -2739,7 +2741,7 @@ Did they indeed? I wonder who that could have been, hm?". whether there seem beds available is a questioning quip. The printed name is "whether there are beds available". The true-name is "whether there seem beds available". - Understand "are" or "bed" or "space" or "room" as whether there seem beds available. The comment is "'Are there free beds for the evening?'". + Understand "are" or "bed" or "space" or "room" as whether there seem beds available. The comment is "'Are there free beds for the evening?'". The reply is "'Sure,' she says. 'You can go up and claim whichever free one you like. The hostel won't really fill up until this evening.'". It quip-supplies the attendant. It is background-information. @@ -2751,7 +2753,7 @@ who would do this is a questioning quip. It quip-supplies the attendant. It directly-follows whether there seems an internet connection nearby. -what other group was like is an unlisted questioning quip. The comment is "'Was there anything interesting about the other group? The three guys?' I'm starting to see how much you enjoy playing off your own cleverness. I just hope it doesn't get us caught.". +what other group was like is an unlisted questioning quip. The comment is "'Was there anything interesting about the other group? The three guys?' I'm starting to see how much you enjoy playing off your own cleverness. I just hope it doesn't get us caught.". [The mentions-list is {internet}.] The reply is "She shrugs. That sounds like a no, then.". It quip-supplies the attendant. @@ -2838,7 +2840,7 @@ She's missing the point entirely, of course: Serial Comma Day celebrates the ado Oh, all right, I'll stop. But you should hear Professor Waterstone on this topic." -what she recommends seeing in city is a questioning quip. The comment is "'So, is there stuff I really should see around here? The best of the city, or something?'". +what she recommends seeing in city is a questioning quip. The comment is "'So, is there stuff I really should see around here? The best of the city, or something?'". [The mentions-list is {entertainment}.] The reply is "'I'm not, like, a concierge,' she says. 'If you came to town you must have had a reason, right? Plus you can maybe pick up a map somewhere around here[if the guidebook is not enclosed by the player], or we usually have a guidebook or two lying around that someone left[end if].'". It quip-supplies the attendant. @@ -2938,7 +2940,7 @@ The greeting of backpacking girl is "'Greetings, fellow traveler!'" whether she seems really from canada is a questioning quip. The printed name is "whether she is really from Canada". The true-name is "whether she seems really from canada". - Understand "is" or "canadian" as whether she seems really from canada. The comment is "'So,' we say, nodding at the pack. 'Are you really Canadian?'". + Understand "is" or "canadian" as whether she seems really from canada. The comment is "'So,' we say, nodding at the pack. 'Are you really Canadian?'". [The mentions-list is {heavy pack}.] The reply is "'Uh, no. I come from Ohio[fake-canada]. But don't tell anyone that. My mom thought this would be safer in case of terrorists. She's also worried about serial killers but there's not much I can do about that.'". It quip-supplies the backpacking girl. @@ -3187,7 +3189,7 @@ Carry out discussing ask for privacy: whether she had trouble alongside customs is a questioning quip. The printed name is "whether she had trouble with customs". The true-name is "whether she had trouble alongside customs". - Understand "with" as whether she had trouble alongside customs. The comment is "'How was coming through Customs?' we ask. 'Any trouble there?'". + Understand "with" as whether she had trouble alongside customs. The comment is "'How was coming through Customs?' we ask. 'Any trouble there?'". [The mentions-list is {immigration}.] The reply is "'Not really. There were a few people in line, and they made me take all my stuff out of my backpack... and this one guy I saw them take away into a back room, and I don't think he ever came out again. But, uh, they were nice enough to me I guess. I was expecting worse.'". It quip-supplies the backpacking girl. @@ -3309,7 +3311,7 @@ curate-backstory is an NPC-directed quip. why gift shop volunteer seems here is a questioning quip. The printed name is "why he is here". The true-name is "why gift shop volunteer seems here". - Understand "is" or "he" as why gift shop volunteer seems here. + Understand "is" or "he" or "there" or "are" or "you" as why gift shop volunteer seems here. [The mentions-list is {volunteer, employment}.] The comment is "'If you aren't interested in this place, why do you volunteer here?' we ask[you-are-dangerous].". The reply is "His left eyelid twitches. 'The Rosehip woman,' he says, after a moment. 'She's a looker.' [paragraph break]I'm not sure what's more disturbing: someone expressing attraction to my mother; that person being a good thirty years her senior; or the use of the phrase 'she's a looker', which even this old character probably got from a movie.". @@ -3320,7 +3322,7 @@ my mother is a woman. remind the gift shop volunteer that Mrs Rosehip seems married is a performative quip. The printed name is "remind the gift shop volunteer that [Mrs] Rosehip is married". The true-name is "remind the gift shop volunteer that Mrs Rosehip seems married". - Understand "is" or "dad" or "father" or "my father" or "my dad" or "your father" or "your dad" or "remind him" as remind gift shop volunteer that Mrs Rosehip seems married. + Understand "is" or "dad" or "father" or "my father" or "my dad" or "your father" or "your dad" or "remind him" as remind gift shop volunteer that Mrs Rosehip seems married. [The mentions-list is {my mother}.] The comment is "'My mother[--]' we begin, before you catch me. @@ -3528,7 +3530,7 @@ whether this liquid will be water is a questioning quip. The reply is "Her eyebrows crinkle together. 'Yes [--] well, maybe,' she says. 'Why?'". It quip-supplies the activist. It is restrictive. - It indirectly-follows how campaign will address problems of visualization. + It indirectly-follows how campaign will address problems of visualization. whether this liquid will also be flavorless is a questioning quip. Understand "flavor" or "flavour" or "flavourless" as whether this liquid will also be flavorless. @@ -3574,7 +3576,7 @@ explain about our plans is a performative quip. It quip-supplies the activist. It directly-follows point out that being from Language Studies does not make us wrong. -Report smiling when the current interlocutor is the activist and the current quip is not explain about our plans: +Report smiling when the current interlocutor is the activist and the current quip is not explain about our plans: say "[We] smile, a little more broadly than usual[one of][or]. So I think she's cute[stopping]." instead. Report smiling when the current quip is explain about our plans and the current interlocutor is the activist: @@ -3676,7 +3678,7 @@ The greeting of the barman is "[one of]'Help you?' asks Parker the barman unenth whether he hath seen slango is a questioning quip. The printed name is "whether he has seen Slango". The true-name is "whether he hath seen slango". - Understand "has" or "parker" or "barman" or "bartender" as whether he hath seen slango. The comment is "'I wonder whether you've seen an associate of mine,' we say to Parker. 'Name of Slango.'". + Understand "has" or "parker" or "barman" or "bartender" as whether he hath seen slango. The comment is "'I wonder whether you've seen an associate of mine,' we say to Parker. 'Name of Slango.'". [The mentions-list is {Slango}.] The reply is "Parker looks over the bar at us. 'He comes in here from time to time,' he says. 'Very regular customer. Always has about three rum and cokes.' [paragraph break]This is a lie, and therefore a test. Slango doesn't drink alcohol himself and doesn't permit drunkenness in his crew.". It quip-supplies the barman. @@ -3727,7 +3729,7 @@ Instead of subject-asking the origin paste when the origin paste is not won: whether we can hath the origin paste is a questioning quip. The printed name is "whether we can have the Origin Paste". The true-name is "whether we can hath origin paste". - Understand "have" as whether we can hath origin paste. The comment is "'That Origin Paste for sale?' ". + Understand "have" as whether we can hath origin paste. The comment is "'That Origin Paste for sale?' ". [The mentions-list is {origin paste}.] The reply is "'Well now,' he says, grinning, 'that would surely be illegal, would it not? Origin Paste is after all a controlled substance in this country, due to its unhappy association with fraudulent activities. On the other hand there is no law against someone [i]winning[/i] the Origin Paste in a completely legitimate game of chance or skill.'". It quip-supplies the barman. @@ -3815,10 +3817,13 @@ To say game-coaching: otherwise: say "The barman keeps an eye on our remaining time." +The liquid wager rules is an object-based rulebook. +The tiny wager rules is an object-based rulebook. +The import wager rules is an object-based rulebook. + The wager is an object that varies. The wager is yourself. -The proposed solution is an object that varies. The wager-name is an object that varies. -The wager-judging rule is a rule that varies. The wager-judging rule is the liquid wager rule. +The wager-judging rules is an object-based rulebook that varies. The wager-judging rules is the liquid wager rules. The wager-index is a number that varies. Instead of giving something to the barman when play the game is the current quip and the wager is yourself: @@ -3831,7 +3836,6 @@ Instead of showing something (called the item) to the barman when play the game say "'No no no,' he says. 'No suicides or self-inanimations in my bar today, thanks.'" instead; now the wager-name is the item; now the wager is the item; - now the proposed solution is the item; make wager choice; while something (called the wager-parent) which is not the wager proffers the wager: now the wager is the wager-parent; @@ -3841,22 +3845,20 @@ Instead of showing something (called the item) to the barman when play the game Instead of showing something (called the item) to the barman when the wager is not the player: if the item is not proffered by the wager: say "'Sorry,' he says, 'but I know that didn't come from [the wager-name] you bet on.'" instead; - now the proposed solution is the item; - follow the wager-judging rule; + follow the wager-judging rules for the item; if the rule succeeded: now the origin paste is won; record "winning a barroom bet" as achieved; try the barman discussing wager-won; now the wager is the player; otherwise: - choose a row with a selected rule of wager-judging rule in the Table of Wager Suggestions; + choose a row with a selected rule of wager-judging rules in the Table of Wager Suggestions; say "'[one of]That doesn't fit the category[or][personal no][or][awkward no][at random],' says [the barman]. [summary entry][paragraph break]". Every turn when the location is Counterfeit Monkey and the wager is not the player and the paste is not won: repeat with item running through things which are proffered by the wager: if the item is marked-visible: - now the proposed solution is the item; - follow the wager-judging rule; + follow the wager-judging rules for the item; if the rule succeeded: now the origin paste is won; record "winning a barroom bet" as achieved; @@ -3876,9 +3878,9 @@ To make wager choice: let selection be false; while selection is false: choose row N in the Table of Wager Suggestions; - follow the selected rule entry; + follow the selected rule entry for the wager; if the rule failed: - now the wager-judging rule is the selected rule entry; + now the wager-judging rules is the selected rule entry; now the wager-index is N; now selection is true; otherwise: @@ -3888,27 +3890,27 @@ To make wager choice: To say wager-choice: say "[run paragraph on]"; - choose a row with a selected rule of wager-judging rule in the Table of Wager Suggestions; + choose a row with a selected rule of wager-judging rules in the Table of Wager Suggestions; say "[description entry]"; -Sanity-check drinking the wager when the wager-judging rule is the tiny wager rule: +Sanity-check drinking the wager when the wager-judging rules is the tiny wager rules: say "You know from experience that a quantity of liquid smaller than a pebble is not deemed to count." instead. Table of Wager Suggestions -description summary (a text) selected rule (a rule) -"'Something smaller than a pebble!' suggests a woman in the front row. She passes forward her own ante to the bar, and the game is on." "'[one of]I know the definition of 'small' is a bit vague, but think smaller than that. Pebble-sized or smaller.[or]That's not quite within the range of small as I understand it.[at random]'" tiny wager rule -"'A liquid,' says a gruff man. ('You always say liquid!' complains one of the others. 'It's his fav[our]ite thing!' says a third.) But the ante is submitted and the challenge set." "'It has to be a liquid [--] any kind.'" liquid wager rule -"'Import Category 5!' shouts a voice. [paragraph break]The barman raises his eyebrows apologetically and says, 'It's a well-defined category, so I have to allow it: any kind of edible consumable object, be that food or beverage, that does not fall under the botanical import category. So no fruits or vegetables.'" "[if the noun is a vegetable]'[The noun] is an agricultural import, so it's outside category 5. You need something consumable but not a fruit or vegetable.'[otherwise]'It has to be some kind of consumable thing but not a vegetable or fruit.'[end if]" import wager rule +description summary (a text) selected rule (an object-based rulebook) +"'Something smaller than a pebble!' suggests a woman in the front row. She passes forward her own ante to the bar, and the game is on." "'[one of]I know the definition of 'small' is a bit vague, but think smaller than that. Pebble-sized or smaller.[or]That's not quite within the range of small as I understand it.[at random]'" tiny wager rules +"'A liquid,' says a gruff man. ('You always say liquid!' complains one of the others. 'It's his fav[our]ite thing!' says a third.) But the ante is submitted and the challenge set." "'It has to be a liquid [--] any kind.'" liquid wager rules +"'Import Category 5!' shouts a voice. [paragraph break]The barman raises his eyebrows apologetically and says, 'It's a well-defined category, so I have to allow it: any kind of edible consumable object, be that food or beverage, that does not fall under the botanical import category. So no fruits or vegetables.'" "[if the noun is a vegetable]'[The noun] is an agricultural import, so it's outside category 5. You need something consumable but not a fruit or vegetable.'[otherwise]'It has to be some kind of consumable thing but not a vegetable or fruit.'[end if]" import wager rules + -The wager-assessment rules are an object-based rulebook. -A wager-assessment rule (this is the liquid wager rule): +A liquid wager rule for something (called the proposed solution) (this is the liquid wager rule): if the proposed solution is fluid: rule succeeds; rule fails. -A wager-assessment rule (this is the tiny wager rule): +A tiny wager rule for something (called the proposed solution) (this is the tiny wager rule): if the proposed solution is nothing: say "Error: wager-assessment tested with nothing!"; rule fails; @@ -3916,7 +3918,7 @@ A wager-assessment rule (this is the tiny wager rule): rule succeeds; rule fails. -A wager-assessment rule (this is the import wager rule): +A import wager rule for something (called the proposed solution) (this is the import wager rule): if the proposed solution is edible and the proposed solution is not a vegetable: rule succeeds; rule fails. @@ -3933,7 +3935,7 @@ Time up is an NPC-directed quip. complain that the game seems unfair is a performative quip. The printed name is "complain that the game is unfair". The true-name is "complain that the game seems unfair". - Understand "is" as complain that the game seems unfair. The comment is "'This game is unfair,' we say. 'You're the moderator, but you have a vested interest in the defender continuing to win, because you get half the ante every time!'". + Understand "is" as complain that the game seems unfair. The comment is "'This game is unfair,' we say. 'You're the moderator, but you have a vested interest in the defender continuing to win, because you get half the ante every time!'". [The mentions-list is {origin paste}.] The reply is "'The house puts up the stakes, remember,' he says. 'But the Counterfeit Monkey has been running this game for years, and would people keep coming back to play if it were rigged?' [paragraph break]Of course, the regulars usually play def[ense] and newcomers offense, which makes the game into a device for fleecing strangers for the benefit of the bar and its usual patrons. But sometimes someone is allowed to win, if they're clever.". It quip-supplies the barman. @@ -3950,14 +3952,14 @@ Availability rule for whether he hath any other games going: whether he hath any other games going is a questioning quip. The printed name is "whether he has any other games going". The true-name is "whether he hath any other games going". - Understand "has" or "parker/barman" as whether he hath any other games going. The comment is "'So, is there anything else I can win? Any other games going?'". + Understand "has" or "parker/barman" as whether he hath any other games going. The comment is "'So, is there anything else I can win? Any other games going?'". [The mentions-list is {paste}.] The reply is "Parker laughs. 'Not until tomorrow, kid,' he says. 'We only run one game a day.'". It quip-supplies the barman. -how long he hath worked at bar is a questioning quip. - The printed name is "how long he has worked at the bar". The true-name is "how long he hath worked at bar". - Understand "has" as how long he hath worked at bar. The comment is "'How long have you been working at this pub?' we ask. 'And do you like it?'". +how long he hath worked at bar is a questioning quip. + The printed name is "how long he has worked at the bar". The true-name is "how long he hath worked at bar". + Understand "has" as how long he hath worked at bar. The comment is "'How long have you been working at this pub?' we ask. 'And do you like it?'". [The mentions-list is {employment}.] The reply is "He wrinkles his nose. 'Word of advice: don't go around asking questions like that down here,' he says.". It quip-supplies the barman. @@ -3986,7 +3988,7 @@ whether he believes in god-2 is a questioning quip. The comment is "'Where do you stand on God?' we ask[you-are-religious].". The printed name is "whether he believes in God". The true-name is "whether he believes in god-2". [The mentions-list is {religion}.] - The reply is "'Don't give it much thought,' he says. 'Please don't tell me you're here with a pamphlet . I won't read it.'". + The reply is "'Don't give it much thought,' he says. 'Please don't tell me you're here with a pamphlet. I won't read it.'". It quip-supplies the barman. It is background-information. Understand "parker/barman" or "god" as whether he believes in god-2. @@ -4177,7 +4179,7 @@ Instead of saying goodbye to Slango during consulting-Slango: When consulting-Slango ends: say "This gives us something to go on, anyway. We give Slango what I intend as a reassuring nod of solidarity."; record "meeting Slango" as achieved; - if Slango is marked-visible: + if Slango is enclosed by location: if Slango is the current interlocutor: try Slango saying goodbye to the player; say "He heads out towards the docks and quickly disappears from view [--] returning to the yacht to wait for us to arrive with Brock."; @@ -4196,9 +4198,9 @@ Report Slango saying goodbye to the player: now brock-bed is triggered. -Test Slango with "tutorial off / deparker / z / t who / laugh / snicker / snicker" in the Counterfeit Monkey. +Test Slango with "tutorial off / deparker / z / t who / laugh / snicker / snicker" in the Counterfeit Monkey. -Test Slango2 with "tutorial off / deparker / z / t who / explain / snicker / snicker" in the Counterfeit Monkey. +Test Slango2 with "tutorial off / deparker / z / t who / explain / snicker / snicker" in the Counterfeit Monkey. @@ -4221,7 +4223,7 @@ A plausibility rule for whether she hath seen slango when the player knows lena- whether she hath seen slango is a questioning quip. The printed name is "whether she has seen Slango". The true-name is "whether she hath seen slango". - Understand "has" or "Lena" as whether she hath seen slango. The comment is "[one of]'You wouldn't happen to have seen Slango about recently?' we ask.[or][if Lena does not know trust-me]'I'm still curious about Slango. Seen him?'[otherwise]'Now, you owe me one Slango,' you say. 'Where'd he get to?'[end if][stopping]". + Understand "has" or "Lena" as whether she hath seen slango. The comment is "[one of]'You wouldn't happen to have seen Slango about recently?' we ask.[or][if Lena does not know trust-me]'I'm still curious about Slango. Seen him?'[otherwise]'Now, you owe me one Slango,' you say. 'Where'd he get to?'[end if][stopping]". [The mentions-list is {Slango}.] The reply is "'Slango and I were catching up. Bless that man, he's hung like a yak,' she says. 'But he got bad news and had to hurry back to the yacht. Said something about not being able to keep an appointment. I take it you're the appointment? I can try reaching him for you, if you want.'". It quip-supplies Lena. @@ -4230,7 +4232,7 @@ whether she hath seen slango is a questioning quip. who we seem-3 is an informative quip. The printed name is "who we are". The true-name is "who we seem-3". - Understand "are" as who we seem-3. The comment is "'Lena, it's Andra. And company. Maybe Slango mentioned that I was auditioning a new silent partner.'". + Understand "are" as who we seem-3. The comment is "'Lena, it's Andra. And company. Maybe Slango mentioned that I was auditioning a new silent partner.'". [The mentions-list is {yourself}.] The reply is "[lena-distrusts]'I don't know what you're talking about,' she says. 'But since you're here, whoever you are, I wonder whether you'd like to have a look at some merchandise of mine that could use a spruce.' [paragraph break]Aha. She wants us to prove our identity; probably has contraband that needs concealing, and wants us to do the deed as proof of trustworthiness[queue offer-contraband as immediate obligatory].". It quip-supplies Lena. @@ -4259,49 +4261,56 @@ A first conversation-reply rule when the current interlocutor is Lena: [say "STARTING: "; try checking queue for Lena;] let needs more conversation be true; + let ream-is-here be false; + if the single ream is enclosed by location: + now ream-is-here is true; + let odes-is-here be false; + if the odes-book is enclosed by location: + now odes-is-here is true; if Lena is urgently eager-to-speak: let needs more conversation be false; - if (the single ream is undisguised and the single ream is marked-visible) or (the odes-book is undisguised and the odes-book is marked-visible): - if Lena does not recollect needs-disguise: + if Lena does not recollect needs-disguise: + if (the single ream is undisguised and ream-is-here is true) or (the odes-book is undisguised and odes-is-here is true): queue needs-disguise as postponed optional; [She'll only say this once.] - if (the single ream is undisguised and the single ream is marked-visible) or (the odes-book is undisguised and the odes-book is marked-visible) and Lena recollects needs-disguise: + otherwise if (the single ream is undisguised and ream-is-here is true) or (the odes-book is undisguised and odes-is-here is true): if Lena does not recollect still-needs-pasting or a random chance of 1 in 3 succeeds: queue still-needs-pasting as postponed optional; if needs more conversation is false: make no decision; [positive feedback before negative...] - if the single ream is marked-visible and Lena does not recollect ream-approval: + if ream-is-here is true and Lena does not recollect ream-approval: queue ream-approval as immediate obligatory; - if the odes-book is marked-visible and Lena does not recollect odes-approval: + if odes-is-here is true and Lena does not recollect odes-approval: queue odes-approval as immediate obligatory; - if the origin paste is marked-visible: + if the origin paste is enclosed by location: casually queue nice-paste; - if the odes-book is marked-visible and the ream is marked-visible and the ream is disguised and the odes-book is disguised and Lena does not know trust-me: + if odes-is-here is true and ream-is-here is true and the ream is disguised and the odes-book is disguised and Lena does not know trust-me: queue that-does-it as immediate obligatory; - if the modem is marked-visible and Lena is not urgently eager-to-speak: + if the modem is enclosed by location and Lena is not urgently eager-to-speak: if Lena does not recollect modem-complaint or a random chance of 1 in 3 succeeds: queue modem-complaint as immediate obligatory; - if an ode is marked-visible and Lena is not urgently eager-to-speak: + if an ode is enclosed by location and Lena is not urgently eager-to-speak: if Lena does not recollect ode-complaint: queue ode-complaint as immediate obligatory; otherwise if Lena does not recollect second-ode-complaint or a random chance of 1 in 3 succeeds: queue second-ode-complaint as immediate obligatory; - if the preamp is marked-visible and Lena is not urgently eager-to-speak: + if the preamp is enclosed by location and Lena is not urgently eager-to-speak: if Lena does not recollect preamp-complaint or a random chance of 1 in 3 succeeds: queue preamp-complaint as immediate obligatory; - if the reams are marked-visible and Lena is not urgently eager-to-speak: - if Lena does not recollect reams-complaint or a random chance of 1 in 3 succeeds: - queue reams-complaint as immediate obligatory; - if the reams are marked-visible and the modems are marked-visible and Lena is not urgently eager-to-speak: - if Lena does not recollect task-reminder or a random chance of 1 in 3 succeeds: - queue task-reminder; - if the modems are marked-visible and Lena is not urgently eager-to-speak: + if the reams are enclosed by location: + if Lena is not urgently eager-to-speak: + if Lena does not recollect reams-complaint or a random chance of 1 in 3 succeeds: + queue reams-complaint as immediate obligatory; + if the modems are enclosed by location and Lena is not urgently eager-to-speak: + if Lena does not recollect task-reminder or a random chance of 1 in 3 succeeds: + queue task-reminder; + if Lena is not urgently eager-to-speak and the modems are enclosed by location: if Lena does not recollect modems-complaint or a random chance of 1 in 3 succeeds: queue modems-complaint as immediate obligatory; - if the preamps are marked-visible and Lena is not urgently eager-to-speak: + if Lena is not urgently eager-to-speak and the preamps are enclosed by location: if Lena does not recollect preamps-complaint or a random chance of 1 in 3 succeeds: queue preamps-complaint as immediate obligatory; - if the monocle is marked-visible and Lena is not urgently eager-to-speak and lena recollects who we seem-3: + if the monocle is enclosed by location and Lena is not urgently eager-to-speak and lena recollects who we seem-3: if Lena does not recollect monocle-remark: queue monocle-remark; [say "NMC True: "; @@ -4317,7 +4326,7 @@ task-reminder is an NPC-directed quip. The reply is "[one of]Lena looks from us to [the list of things *in the contraband box]. 'So maybe you could do something with these,' she says, looking at us sidelong. I can tell she's starting to wonder whether we're legitimate[or]'If you need to get some tools or something, I'll still be here,' Lena comments. Honestly I am surprised she's so patient about our slowness on her little test[or]Lena looks us up and down as though trying to reconfigure our face into your face, the one she knows[or]Lena is waiting for us to do something to change [the list of things *in the contraband box].[stopping]." modems-complaint is an NPC-directed quip. - The reply is "[one of][if the odes is seen]'Let's go back to the odes,' Lena suggests.[otherwise if the preamps are marked-visible]'Try doing something with the modems,' Lena suggests.[otherwise]'Now the modems,' says Lena. 'Unless you're too tired.'[end if][or]Lena awaits your attention to the modems.[stopping]". + The reply is "[one of][if the odes-book is seen]'Let's go back to the odes,' Lena suggests.[otherwise if the preamps are marked-visible]'Try doing something with the modems,' Lena suggests.[otherwise]'Now the modems,' says Lena. 'Unless you're too tired.'[end if][or]Lena awaits your attention to the modems.[stopping]". modem-complaint is an NPC-directed quip. The reply is "[one of]Lena regards the solitary modem unsympathetically. 'Well, it's shrunk,' she says. 'But that doesn't make it look like what it isn't.'[or]Lena continues to look at the modem with distaste.[stopping]". @@ -4411,7 +4420,7 @@ that-does-it is an NPC-directed quip. The reply is "'Perfect,' Lena says, regarding her contraband possessions with satisfaction[trust-me]. 'Welcome back, Andra and Guest[queue whether she hath seen slango].'" Instead of saying yes when current interlocutor is Lena and encourage Lena to contact slango is available: - try discussing encourage Lena to contact slango; + try discussing encourage Lena to contact slango; Instead of saying no when current interlocutor is Lena and encourage Lena to contact slango is available: say "Are you mad? That's exactly what we need her to do."; @@ -4574,7 +4583,7 @@ Carry out Professor Brown discussing whether he can fix the letter-remover: why reifying living creatures seems cruel is a questioning quip. The printed name is "why reifying living creatures is cruel". The true-name is "why reifying living creatures seems cruel". - Understand "is" as why reifying living creatures seems cruel. The comment is "'Why would it be cruel to make a living creature?' you ask.". + Understand "is" as why reifying living creatures seems cruel. The comment is "'Why would it be cruel to make a living creature?' you ask.". [The mentions-list is {letter-remover}.] The reply is "'We don't know whether such creations have awareness and sensation like other creatures,' he says. 'If they do, it is horrible to bring them into existence only to send them out again.'". It quip-supplies Professor Brown. @@ -4691,9 +4700,9 @@ Instead of saying yes when the current interlocutor is Professor Higgate and tha Every turn when the current interlocutor is Professor Higgate and we do not speak lojban is available: - try discussing we do not speak lojban. + try discussing we do not speak lojban. -that we do not speak Lojban is an unlisted informative quip. Understand "no" as that we do not speak Lojban. +that we do not speak Lojban is an unlisted informative quip. Understand "no" as that we do not speak Lojban. [The mentions-list is {constructed language}.] The comment is "'I'm afraid I don't understand,' we say, smiling faintly.". The reply is "Her face falls. 'Ah! I was hoping you'd be here for Conversational Lojban Tea.' The room is conspicuously lacking other Lojban conversationalists.[queue cucumber regret]". @@ -4834,7 +4843,7 @@ if we can take the paint is a questioning quip. [The mentions-list is {paint}.] The reply is "'Oh! Well, that's very kind of you. Make sure you do it properly!'". It quip-supplies Professor Higgate. - It indirectly-follows whether she needs paint. + It indirectly-follows whether she needs paint. Carry out Professor Higgate discussing if we can take the paint: now the paint is released. @@ -4848,8 +4857,8 @@ availability rule for whether she seems sure she doesn't want the pint: it is off-limits. whether she seems sure she doesn't want the pint is a weakly-phrased questioning quip. - The printed name is "whether she is sure she doesn't want the pint". The true-name is "whether she seems sure she doesn't wantthe pint". - Understand "is" as whether she seems sure she doesn't want the pint. The comment is "'You're sure I can't tempt you with this nice pint?'". + The printed name is "whether she is sure she doesn't want the pint". The true-name is "whether she seems sure she doesn't want the pint". + Understand "is" as whether she seems sure she doesn't want the pint. The comment is "'You're sure I can't tempt you with this nice pint?'". [The mentions-list is {pint}.] The reply is "'Perfectly,' she says. 'Tea and water for me.'". It quip-supplies Professor Higgate. @@ -4863,7 +4872,7 @@ paint-recycling is an NPC-directed quip. which conlangs she kens is a questioning quip. The printed name is "which conlangs she knows". The true-name is "which conlangs she kens". - Understand "knows" or "what" or "languages" or "language" as which conlangs she kens. The comment is "'Which conlangs do you know, then?'". + Understand "knows" or "what" or "languages" or "language" as which conlangs she kens. The comment is "'Which conlangs do you know, then?'". [The mentions-list is {constructed language}.] The reply is "'Esperanto, Volapük, and Lojban, naturally,' she says. 'Interlingua, a bit of Fukhian,' (she is careful to pronounce the h sound), '...Quenya, Klingon, Royeship, Toki Pona... and several others in which I am not fluent enough to speak, but know well enough for the purposes of study.'". It quip-supplies Professor Higgate. @@ -4916,7 +4925,7 @@ whether he met the activists is a questioning quip. what he kens about me is an unlisted questioning quip. The printed name is "what he knows about me". The true-name is "what he kens about me". - Understand "knows" as what he kens about me. The comment is "'Actually, I did wonder: do you have a student named Alex Rosehip? One of the teaching assistants, I think?'". + Understand "knows" as what he kens about me. The comment is "'Actually, I did wonder: do you have a student named Alex Rosehip? One of the teaching assistants, I think?'". [The mentions-list is {yourself}.] The reply is "He looks at us with an unusually keen stare. 'He is an advisee of mine,' says Waterstone. 'A bright scholar, but I fear that he has taken on board some dubious ideas about the [i]applications[/i] of what we study. I would suggest that you take anything he may have said to you with a grain of salt.'". It quip-supplies Professor Waterstone. @@ -4927,7 +4936,7 @@ Availability rule for why he seems working on Serial Comma Day: why he seems working on Serial Comma Day is a questioning quip. The printed name is "why he is working on Serial Comma Day". The true-name is "why he seems working on Serial Comma Day". - Understand "is" or "professor" or "waterstone" as why he seems working on serial comma day. The comment is "'Why are you in today?' we ask. 'Isn't it a holiday?'". + Understand "is" or "professor" or "waterstone" as why he seems working on serial comma day. The comment is "'Why are you in today?' we ask. 'Isn't it a holiday?'". [The mentions-list is {Waterstone, celebration}.] The reply is "'The pursuit of knowledge does not occur according to the calendar,' he says. Then he adds, 'And my wife is having the carpets shampooed[carpets-shampooed] and kicked me out of the house.'". It quip-supplies Professor Waterstone. @@ -4939,7 +4948,7 @@ Availability rule for why he doesn't go to the demonstration: why he doesn't go to the demonstration is a questioning quip. The comment is "'I'm surprised you're not at this demonstration,' we say, gesturing towards the invitation on his desk. 'It looks interesting.'". - Understand "professor" or "waterstone" as why he doesn't go to the demonstration. + Understand "professor" or "waterstone" or "demo" as why he doesn't go to the demonstration. [The mentions-list is {invitation}.] The reply is "'Does it?' he asks wearily. 'It sounds like a dead bore to me. Unfortunately, I can be neither at the demonstration nor at home at the moment. I have this blasted presentation to finish[if the player does not know carpets-shampooed], and my wife is having the carpets shampooed[carpets-shampooed] [--] on a holiday! [--] and won't let me work in my own study[otherwise] and thanks to the carpets I can't work in my own study[end if].'". It quip-supplies Professor Waterstone. @@ -5064,7 +5073,7 @@ First conversation-reply rule when the current interlocutor is Brock: casually queue good-abstracts; otherwise if Brock is not urgently eager-to-speak and "Test T-inserter on making creatures" is completed and Brock does not recollect seems-lifelike: casually queue seems-lifelike; - otherwise if Brock is not urgently eager-to-speak and "Test T-inserter on situations where it could build more than one thing" is completed and Brock does not recollect stability-results: + otherwise if Brock is not urgently eager-to-speak and "Test T-inserter on situations where it could build more than one thing" is completed and Brock does not recollect stability-results: casually queue stability-results. The random-commentary rule is listed after the character pursues own ideas rule in the conversation-reply rules. @@ -5105,7 +5114,7 @@ A Brock-suggestion rule when "Test T-inserter on making abstracts" is completed: try Brock discussing test-creatures; rule succeeds. -A Brock-suggestion rule when "Test T-inserter on making abstracts" is completed and "Test T-inserter on making creatures" is completed: +A Brock-suggestion rule when "Test T-inserter on making abstracts" is completed and "Test T-inserter on making creatures" is completed: if Brock does not recollect test-stability or a random chance of 1 in 3 succeeds: unless "Test T-inserter on situations where it could build more than one thing" is completed: carry out the beat-producing activity; @@ -5167,7 +5176,7 @@ The waxen look melts and he grins. 'Thank god. It's harder than you'd expect bei weird-you-look is an NPC-directed quip. The reply is "'It's weird [--] you have a different face but the expressions are still yours. It's like you have a really good rubber mask on.'" -nice-garment is an NPC-directed quip. +nice-garment is a weakly-phrased NPC-directed quip. The reply is "'[worn-thing].'" To say worn-thing: @@ -5228,7 +5237,7 @@ defend Alex is a performative quip. [The mentions-list is {Brock, yourself}.] The reply is "'He's us,' Brock replies. 'Come on, let's just get this over with and get out of here. We can talk this all out when we're all feeling more like ourselves, okay?'". It quip-supplies Brock. - It directly-follows remind brock that synthesis was necessary because of him. + It directly-follows remind brock that synthesis was necessary because of him. accept his advice is a performative quip. The comment is "'Fine.' I can feel the adrenaline from your anger coursing through us. It makes me want to take a swing at something, but you have it under control.". @@ -5242,7 +5251,7 @@ An availability rule for discover why Brock got stuck here: it is off-limits; make no decision. -An availability rule for discover why Brock got stuck here: +An availability rule for discover why Brock got stuck here: if Brock-argument is not happening: it is off-limits; if the time since Brock-argument began is greater than 4 minutes: @@ -5257,7 +5266,7 @@ discover why Brock got stuck here is a performative quip. rejoice that brock seems okay is a performative quip. The printed name is "rejoice that Brock is okay". The true-name is "rejoice that brock seems okay". - Understand "is" as rejoice that brock seems okay. The comment is "'That was a lot narrower than I like,' you say. To my horror, we are tearing up a little. 'I thought you might be in Cold Storage already.'". + Understand "is" as rejoice that brock seems okay. The comment is "'That was a lot narrower than I like,' you say. To my horror, we are tearing up a little. 'I thought you might be in Cold Storage already.'". [The mentions-list is {yourself, Brock}.] The reply is "'Hey, hey. I'm here.' He puts an arm around our shoulder, hugs uncertainly[casually queue you-okay].". It quip-supplies Brock. @@ -5401,7 +5410,7 @@ Rule for listing plausible quips during Brock-argument: To say get-to-work: say "[one of]. Then again, we could just get to work so we can be out of here faster[or]. Maybe it's not worth it, though[or]. Or, then again, there's always finishing the job[stopping]". -Test Brockscene with "tutorial off / autoupgrade / unmonkey / open tub / gel rock / suggest we get out / insist / ask about buried command / wave g-remover at sign / put sin in the t-inserter / gel stint / wave g-remover at sign / wave s-remover at sin / i / put sin in t-inserter / wave s-remover at stint / wave n-remover at tint / wave t-remover at tit / put i in t-inserter / wave t-remover at tit / put i in t-inserter / get rock / i" holding the tub in the Equipment Testing. +Test Brockscene with "tutorial off / autoupgrade / unmonkey / open tub / gel rock / suggest we get out / insist / ask about buried command / wave g-remover at sign / put sin in the t-inserter / gel stint / wave g-remover at sign / wave s-remover at sin / i / put sin in t-inserter / wave s-remover at stint / wave n-remover at tint / wave t-remover at tit / put i in t-inserter / wave t-remover at tit / put i in t-inserter / get rock / i" holding the tub in the Equipment Testing. Table of Ultratests (continued) topic stuff setting @@ -5410,7 +5419,7 @@ topic stuff setting Test Misdirection with "tutorial off / autoupgrade /unmonkey / sw / n / w / e / open tub / gel rock / e" [holding the tub and the apple and the roll of bills and the piece in Bureau Secret Section.] -Test BrockAlt with "tutorial off / autoupgrade / unmonkey / open tub / gel rock / put seer in t-inserter / x automaton / turn on automaton / gel automaton / put seer in t-inserter / x automaton / turn on automaton/ x automaton / put the roll in the t-inserter / gel the troll / wave d-remover at chard / put char in t-inserter / wave c-remover at chart / wave r-remover at hart / get hat / x hat / wear hat / remove hat / put hat in t-inserter" [holding the tub and the seer automaton and the chard and the roll in the Equipment Testing.] +Test BrockAlt with "tutorial off / autoupgrade / unmonkey / open tub / gel rock / put seer in t-inserter / x automaton / turn on automaton / gel automaton / put seer in t-inserter / x automaton / turn on automaton/ x automaton / put the roll in the t-inserter / gel the troll / wave d-remover at chard / put char in t-inserter / wave c-remover at chart / wave r-remover at hart / get hat / x hat / wear hat / remove hat / put hat in t-inserter" [holding the tub and the seer automaton and the chard and the roll in the Equipment Testing.] Instead of putting gel on the rock when Brock-argument has happened and Brock-argument has ended and Cold Dilemma has not happened: say "No, we leave him in rock form for now. One of us will have an easier time slipping out than two." @@ -5568,7 +5577,7 @@ I know you think it's a bit sketchy that my mother just walks into my apartment claim to hath seen him this morning is a performative quip. The printed name is "claim to have seen him this morning". The true-name is "claim to hath seen him this morning". - Understand "have" as claim to hath seen him this morning. The comment is "'He went out to, ah, do some research, I think. He left before I was completely awake.' (Thanks, now you've given my mother the impression that I'm a cad.)". + Understand "have" as claim to hath seen him this morning. The comment is "'He went out to, ah, do some research, I think. He left before I was completely awake.' (Thanks, now you've given my mother the impression that I'm a cad.)". [The mentions-list is {romance}.] The reply is "She looks at the disheveled futon[if the futon is non-empty], with [the list of things *in the futon] still arranged on it[end if], and her expression becomes even more unreadable. 'I did think I'd taught my son better manners,' she remarks. 'I apolog[ize] on his behalf.'". It quip-supplies My mother. @@ -5579,7 +5588,7 @@ Instead of shrugging when my mother is marked-visible and we don't ken is availa we don't ken is an informative quip. The printed name is "we don't know". The true-name is "we don't ken". - Understand "know" as we don't ken. The comment is "'I don't know,' we say.". + Understand "know" as we don't ken. The comment is "'I don't know,' we say.". [The mentions-list is {yourself}.] The reply is "'A communicative couple, then,' she says dryly. My mother has never been very nice to girlfriends she considered stupid.". It quip-supplies My mother. @@ -5635,8 +5644,8 @@ explain we might go out is a performative quip. It is restrictive. It directly-follows not-planning-dinner. -Instead of shrugging when my mother is marked-visible and claim he didn't say is available: - try discussing claim he didn't say . +Instead of shrugging when my mother is marked-visible and claim he didn't say is available: + try discussing claim he didn't say . claim he didn't say is a weakly-phrased performative quip. The comment is "'Er... he didn't tell me. I assume he'll explain later.'". @@ -5685,6 +5694,9 @@ She's not even visible through the window any longer."; Section 10 - Father +Instead of approaching when location is the Sensitive Equipment Testing Room and Cold Dilemma has not happened: + try going east. + After going from the Sensitive Equipment Testing Room: now father is marked-visible; set the current interlocutor to father; @@ -5832,7 +5844,7 @@ that it's one of those things atlanteans learn is an informative quip. what-atlantis is a questioning quip. The printed name is "what he is doing in Atlantis". The true-name is "what-atlantis". - Understand "what" or "he" or "nexami" or "engeo" or "is" or "doing" or "Atlantis" or "in Atlantis" as what-atlantis. The comment is "'So, what are you doing in Atlantis?'". + Understand "what" or "he" or "nexami" or "engeo" or "is" or "doing" or "Atlantis" or "in Atlantis" as what-atlantis. The comment is "'So, what are you doing in Atlantis?'". [The mentions-list is {Nexami}.] The reply is "'Doing a show tonight,' he says. 'Up on the City Walls.' This is only partly a lie: you know that his main business in town is some sort of computer science contract, and that it's largely cover that his band is playing in the Serial Comma Day festivities.". It quip-supplies Nexami Engeo. @@ -5872,10 +5884,13 @@ A description-concealing rule: Rule for writing a topic sentence about Atlantida-woman: say "[Atlantida-woman] stands between us and the eastern exit, backlit by sunlight[if the player is gelled and atlantida-woman carries the rifle]. [The rifle] hangs loose in her hand[otherwise if the player is not gelled and the atlantida-woman carries the rifle]. She has [the rifle] trained on our torso[end if]. "; if Atlantida-woman does not carry the restoration-gel rifle: - say "She dwarfs [the inlaid desk] and all the other furnishings in the room. "; - now the inlaid desk is mentioned; - now the stack of files is mentioned; - now the rubber stamp is mentioned. + if the inlaid desk is in the location: + say "She dwarfs [the inlaid desk] and all the other furnishings in the room. "; + now the inlaid desk is mentioned; + now the stack of files is mentioned; + now the rubber stamp is mentioned; + otherwise: + say "She dwarfs all of the furnishings in the room. ". Rule for listing exits while looking in Personal Apartment when atlantida-woman is in the location: do nothing instead. @@ -6122,7 +6137,7 @@ Atlantida [one of]rolls her eyes and fires the weapon, hitting the lady speaking Sanity-check going east in the presence of atlantida-woman: say "[We] would have to get through her first." instead. -After attacking atlantida-woman with something when Atlantida-woman carries the restoration-gel rifle: +After attacking atlantida-woman with something when Atlantida-woman carries the restoration-gel rifle: if the second noun is proffered by Brock: continue the action; if the second noun is proffered by something which is not the second noun: @@ -6134,7 +6149,7 @@ After attacking atlantida-woman with something when Atlantida-woman carries the Report attacking atlantida-woman with the leaf: say "[We] wield the leaf like a dagger[one of] and slice across her arm, drawing blood. She recoils, angry but not deterred[or]. This time [we] don't manage to land another blow[stopping]." instead. -Report attacking atlantida-woman with something: +Report attacking atlantida-woman with something: say "[one of][We] swing [the second noun] at her, but can't quite reach. She's keeping her distance[or]Closing some of the distance, [we] try a slash of [the second noun]. She leaps backward[or][We] lunge with [the second noun], but she dodges[cycling]." instead. Instead of throwing something at atlantida-woman: @@ -6166,7 +6181,7 @@ topic stuff setting "missiles" { rock, page, sword, secret-plans, iron-pans, ire } -- "attacks" { sword, foil, stick, sill, leaf, slat, track, warm rods, wand batch, swordstick, crosspiece } -- -Test oracle with "tutorial off / autoupgrade / unmonkey / load gun / wave h-remover at power chord / open tub / look / x paintings / x charts / x fable / gel paperweight / gel fable / look up 1942 in cabinet / look up 1982 in cabinet / look up 1962 in cabinet / look up 1958 / look up 1964 / look up 2003 / look up 1983 in cabinet / x paper / x weight / get weight / e / e / e / put pastis in bucket / go to workshop / plug in cord / go to surveillance / d / get counter / go to workshop / put counter and weight on dais / turn switch / pull lever / get counterweight / go to tunnel / put counterweight on hook / pull counterweight / e" [in the Oracle holding the anagramming gun and the bullets and the power chord and the pastis and the tub.] +Test oracle with "tutorial off / autoupgrade / unmonkey / load gun / wave h-remover at power chord / open tub / look / x paintings / x charts / x fable / gel paperweight / gel fable / look up 1942 in cabinet / look up 1982 in cabinet / look up 1962 in cabinet / look up 1958 / look up 1964 / look up 2003 / look up 1983 in cabinet / x paper / x weight / get weight / e / e / e / put pastis in bucket / go to workshop / plug in cord / go to surveillance / d / get counter / go to workshop / put counter and weight on dais / turn switch / pull lever / get counterweight / go to tunnel / put counterweight on hook / pull counterweight / e" [in the Oracle holding the anagramming gun and the bullets and the power chord and the pastis and the tub.] Test missiles with "establish / throw rock at Atlantida / throw paper at atlantida / throw plans at atlantida / throw sword at atlantida / throw tub at atlantida / throw pans at atlantida / throw ire at atlantida" [holding the rock and the page and the sword and the secret-plans and the iron-pans and the ire.] @@ -6175,7 +6190,7 @@ Test attacks with "establish / hit atlantida with sword / hit atlantida with foi Section 13 - Scene Interlude with Guards -Sanity-check going through the tall window when Atlantida-refreshed is off-stage: +Sanity-check going through the tall window to Precarious Perch when Atlantida-refreshed is off-stage: if story viewpoint is second person singular: say "[We] could do that. [We] could climb out that window and not look back. It would be faster, easier, unquestionably safer. But what about the people we're leaving behind? What about my father and Professor Higgate? What about the protesters who got arrested today? @@ -6279,7 +6294,7 @@ topic stuff setting "almostlast" { anagramming gun, bullets, tub, counterweight } The Tunnel "lastmeeting" { anagramming gun, bullets, tub } Personal Apartment -Test almostlast with "tutorial off / establish / unlegend / load gun / put counterweight on hook / open tub / open portcullis / go through portcullis / x files / z / a cold storage / look / shoot anagramming gun at gel rifle / look / gel astrologer / shoot gel rifle at atlantida" [in the Tunnel holding the anagramming gun and the bullets and the tub and the counterweight.] +Test almostlast with "tutorial off / establish / unlegend / load gun / put counterweight on hook / open tub / open portcullis / go through portcullis / x files / z / a cold storage / look / shoot anagramming gun at gel rifle / look / gel astrologer / shoot gel rifle at atlantida" [in the Tunnel holding the anagramming gun and the bullets and the tub and the counterweight.] Test lastmeeting with "tutorial off / establish / unlegend / load gun / open tub / x files / a cold storage / look / shoot anagramming gun at gel rifle / look / gel astrologer / shoot gel rifle at atlantida" [in the Personal Apartment holding the anagramming gun and the tub.] @@ -6425,4 +6440,13 @@ When Guard-capture ends in capture: abide by the game-ending rule. +Chapter 4 - Subject visibility bug + +[There is a bug where conversation subjects can randomly become marked as visible, causing all kinds of trouble. Until the root cause is found, this counters it.] + +A first every turn rule when geography is marked-visible: + repeat with N running from 1 to subject count: + unless subject-number N is enclosed by location: + now subject-number N is marked invisible. + Animal Actions and Human Conversation ends here. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Speedups.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Speedups.i7x index 88aa5bb1..2be859b4 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Speedups.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Animal Speedups.i7x @@ -55,7 +55,7 @@ Include ]; [ MyFakePeopleGoing room dir traveler last; - LIST_OF_TY_SetLength((+ incoming-list +), 0, -1, 1); + LIST_OF_TY_SetLength((+ incoming-list +), 0, -1, 1); for (traveler = child(room): traveler : traveler = last) { last = sibling(traveler); if (traveler ofclass (+ person +) && traveler.(+ fake +) && traveler ~= (+ roc +)) diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Approaching Speedups.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Approaching Speedups.i7x index 879f4263..66a221c5 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Approaching Speedups.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Approaching Speedups.i7x @@ -24,7 +24,7 @@ This is the even newer creating a path history rule: Carry out going to a forbidden room (called target): now the target is nonsecret. -Understand "go to [any nonsecret room]" or "goto [any nonsecret room]" or "go back to [any nonsecret room]" or "return to [any nonsecret room]" or "revisit [any nonsecret room]" as approaching. +Understand "go to [any nonsecret room]" or "goto [any nonsecret room]" or "go back to [any nonsecret room]" or "return to [any nonsecret room]" or "revisit [any nonsecret room]" as approaching. The tell the player when blocked at a door rule response (A) is "Unfortunately, [we] [find] [we] [lack] a key fitting [the locked-thing]."; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Character Models.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Character Models.i7x index 5272a5bb..0cf37caa 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Character Models.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Character Models.i7x @@ -18,7 +18,7 @@ Instead of waving the letter-remover at yourself when the current setting of the Check waving the letter-remover at yourself when the current setting of the letter-remover is "i": say "If this were likely to work, it would be a terrible idea. Fortunately, we don't self-identify simply as I, and secondly, the letter-remover won't remove the last letter of something." instead. -The printed name of the player is "Alexandra". [This seems to have no effect whatsoever] +The printed name of yourself is "Alexandra". [This seems to have no effect whatsoever] Understand "us" or "ourselves" or "we" or "ourself" or "alexandra" or "your/my/our/-- body" or "you/yourself" as yourself. @@ -174,16 +174,118 @@ A first after reading a command rule when how-many-people-here is positive (this replace the regular expression "^(ask|tell) (.*?) to " in N with "\2, "; change the text of the player's command to N. -After reading a command when the current interlocutor is not nothing and player's command includes "ask/tell/a/t" and the player's command does not include "ask/tell/a/t about" (this is the new strip interlocutor from input rule): + +[Fix from otisdog and Dr Peter Bates to make "if the player's command includes "[someone talk-eligible]" work as intended. +See https://intfiction.org/t/run-time-problem-p39-when-changing-the-number-of-input-words-in-counterfeit-monkey/65734] + +Include (- + +! ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== +! Parser.i6t: TryGivenObject +! ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== + + +[ TryGivenObject obj nomatch threshold k w j; + #Ifdef DEBUG; + if (parser_trace >= 5) print " Trying ", (the) obj, " (", obj, ") at word ", wn, "^"; + #Endif; ! DEBUG + + if (nomatch && obj == 0) return 0; + +! if (nomatch) print "*** TryGivenObject *** on ", (the) obj, " at wn = ", wn, "^"; + + dict_flags_of_noun = 0; + +! If input has run out then always match, with only quality 0 (this saves +! time). + + if (wn > WordCount()) { ! MODIFIED + if (nomatch) return 0; + if (indef_mode ~= 0) + dict_flags_of_noun = $$01110000; ! Reject "plural" bit + MakeMatch(obj,0); + #Ifdef DEBUG; + if (parser_trace >= 5) print " Matched (zero)^"; + #Endif; ! DEBUG + return 1; + } + +! Ask the object to parse itself if necessary, sitting up and taking notice +! if it says the plural was used: + + if (obj.parse_name~=0) { + parser_action = NULL; j=wn; + k = RunRoutines(obj,parse_name); + if (k > 0) { + wn=j+k; + + .MMbyPN; + + if (parser_action == ##PluralFound) + dict_flags_of_noun = dict_flags_of_noun | 4; + + if (dict_flags_of_noun & 4) { + if (~~allow_plurals) k = 0; + else { + if (indef_mode == 0) { + indef_mode = 1; indef_type = 0; indef_wanted = 0; + } + indef_type = indef_type | PLURAL_BIT; + if (indef_wanted == 0) indef_wanted = INDEF_ALL_WANTED; + } + } + + #Ifdef DEBUG; + if (parser_trace >= 5) print " Matched (", k, ")^"; + #Endif; ! DEBUG + if (nomatch == false) MakeMatch(obj,k); + return k; + } + if (k == 0) jump NoWordsMatch; + } + + ! The default algorithm is simply to count up how many words pass the + ! Refers test: + + parser_action = NULL; + + w = NounWord(); + + if (w == 1 && player == obj) { k=1; jump MMbyPN; } + + if (w >= 2 && w < 128 && (LanguagePronouns-->w == obj)) { k = 1; jump MMbyPN; } + + if (Refers(obj, wn-1) == 0) { + .NoWordsMatch; + if (indef_mode ~= 0) { k = 0; parser_action = NULL; jump MMbyPN; } + rfalse; + } + + threshold = 1; + dict_flags_of_noun = (w->#dict_par1) & $$01110100; + w = NextWord(); + while (Refers(obj, wn-1)) { + threshold++; + if (w) + dict_flags_of_noun = dict_flags_of_noun | ((w->#dict_par1) & $$01110100); + w = NextWord(); + } + + k = threshold; + jump MMbyPN; +]; + +-) instead of "TryGivenObject" in "Parser.i6t". + +After reading a command when the current interlocutor is not nothing and player's command includes "ask/tell/a/t" (this is the new strip interlocutor from input rule): if the player's command includes "[someone talk-eligible]": let M be the substituted form of the matched text; unless M is "1" or M is "men": [To avoid conflicts with Numbered Disambiguation Choices and referring to the clientele in the Counterfeit Monkey bar as "men"] - let cmd be "[player's command]"; - replace the regular expression "^(ask|tell|a|t) [M] " in cmd with "\1 "; - change the text of the player's command to cmd. + cut the matched text. The new strip interlocutor from input rule is listed instead of the strip interlocutor from input rule in the After reading a command rules. + The counterfeit monkey-as-subject is a subject. The printed name is "Counterfeit Monkey Bar". Understand "counterfeit" or "monkey" or "bar" as the counterfeit monkey-as-subject. Bureau is a subject. Understand "bureau of orthography" or "orthography" as the bureau. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Conversation Speedups.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Conversation Speedups.i7x index 9709e55b..07fd5364 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Conversation Speedups.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Conversation Speedups.i7x @@ -141,7 +141,7 @@ Include (- !print "Eliminated duplicate subjects. Current number: ",subject_count,".^"; ]; - [ GetSubject index col; + [ GetSubject index; return ((+ Table of Current Subjects +)-->1)-->(index+COL_HSIZE); ]; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Custom Speedups.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Custom Speedups.i7x index 1949d1e2..05c141ff 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Custom Speedups.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Custom Speedups.i7x @@ -78,7 +78,7 @@ Include (- MarkContentsVisible(o.component_sibling); ! Don't look inside closed opaque containers - if (child(o) && ~~((o has openable && o hasnt open) && o hasnt transparent)) + if (child(o) && ~~((o has openable && o hasnt open) && o hasnt transparent)) o = child(o); else while (o) { @@ -104,7 +104,7 @@ Include (- MarkContentsInvisible(o.component_sibling); ! Don't look inside closed opaque containers - if (child(o) && ~~((o has openable && o hasnt open) && o hasnt transparent)) + if (child(o) && ~~((o has openable && o hasnt open) && o hasnt transparent)) o = child(o); else while (o) { @@ -148,7 +148,7 @@ Include (- ! Don't look inside people or vehicles containing the player - if (child(o) && ~~(o ofclass (+ person +) || ( o ofclass (+ vehicle +) && o == parent(player))) ) o = child(o); + if (child(o) && ~~(o ofclass (+ person +) || ( o ofclass (+ vehicle +) && o == parent(player))) ) o = child(o); else while (o) { @@ -200,7 +200,7 @@ Include (- i = FindVisibleThing(o.component_sibling, i); ! Don't look inside closed opaque containers or the backpack - if (child(o) && ~~(o has openable && (o hasnt open && (o hasnt transparent || o == (+ the backpack +) )))) o = child(o); + if (child(o) && ~~(o has openable && (o hasnt open && (o hasnt transparent || o == (+ the backpack +) )))) o = child(o); else while (o) { if (sibling(o)) { o = sibling(o); break; } diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Dispensers.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Dispensers.i7x index bec2c889..eb1a56b8 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Dispensers.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Dispensers.i7x @@ -40,7 +40,8 @@ Sanity-check taking the sop-dispenser when the sop is in the sop-dispenser: Instead of squeezing something dispenser-like (called dispenser-thing): let soap-like be a content corresponding to a source of dispenser-thing in the Table of Dispensers; if soap-like is in the dispenser-thing: - let target be a random sink in the location; + let target be an object; + now target is a random sink in the location; if the soap-sap-receptacle-supporter is non-empty: now target is the first thing held by soap-sap-receptacle-supporter; if target is a sink: @@ -98,19 +99,19 @@ Carry out waving the letter-remover at the soap dispenser creating the sap-dispe now the sap-liquid is proffered by the soap; move the soap to the repository. -Carry out waving the letter-remover at the soap dispenser creating the sop-dispenser when the soap is in the soap dispenser: +Carry out waving the letter-remover at the soap dispenser creating the sop-dispenser when the soap is in the soap dispenser: if the sop is in the repository: move the sop to the sop-dispenser; now the sop is proffered by nothing; now the sop is proffered by the soap; move the soap to the repository. -Carry out putting the gel on the sap-dispenser when the sap-liquid is in the sap-dispenser: +Carry out putting the gel on the sap-dispenser when the sap-liquid is in the sap-dispenser: if the soap is in the repository: move the soap to the soap dispenser; move the sap-liquid to the repository. -Carry out putting the gel on the sop-dispenser when the sop is in the sop-dispenser: +Carry out putting the gel on the sop-dispenser when the sop is in the sop-dispenser: if the soap is in the repository: move the soap to the soap dispenser; move the sop to the repository. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Features of Created Objects.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Features of Created Objects.i7x index 0c44182d..35077798 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Features of Created Objects.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Features of Created Objects.i7x @@ -161,7 +161,7 @@ Sanity-check rubbing or squeezing or touching or waving or pulling or pushing or Sanity-check eating or drinking or tasting an r-abstract thing: say "[The noun] [are] too abstract to offer sustenance." instead. -Sanity-check pushing an r-abstract thing to a direction: +Sanity-check pushing an r-abstract thing to a direction: say "[The noun] [aren't] solid enough for that kind of treatment." instead. Sanity-check switching on or switching off an r-abstract thing: if the noun is a device: diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Hashing.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Hashing.i7x index 551dfd6b..366b1d76 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Hashing.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Hashing.i7x @@ -83,9 +83,9 @@ Include (- ]; [ ShowLetterHash h i b; - for (i=0, b=1; i<26; i++, b=b*2) { - if (h&b) print "1"; else print "0"; - } + for (i=0, b=1; i<26; i++, b=b*2) { + if (h&b) print "1"; else print "0"; + } ]; -); diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Initial Quip Positions.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Initial Quip Positions.i7x index dcd5cf3c..9d1f49c7 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Initial Quip Positions.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Initial Quip Positions.i7x @@ -89,7 +89,7 @@ assure him that we seem not hitting on him is in the backup-repository. what his girlfriend seems like is in the backup-repository. delay ticket-taker is in the backup-repository. where my backpack seems is in the backup-repository. -argue about lost plus found policy is in the backup-repository. +argue about lost plus found policy is in the backup-repository. demonstrate the lost backpack is in the backup-repository. buy movie-ticket is in the backup-repository. whether we can hath the scope is in the backup-repository. @@ -173,7 +173,7 @@ how one might go about winning is in the backup-repository. play the game is in the backup-repository. complain that the game seems unfair is in the backup-repository. whether he hath any other games going is in the backup-repository. -how long he hath worked at bar is in the backup-repository. +how long he hath worked at bar is in the backup-repository. what he thinks about the Bureau is in the backup-repository. whether he hates customs officials is in the backup-repository. whether he believes in god-2 is in the backup-repository. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Intelligent Substitution.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Intelligent Substitution.i7x index fd1f49f3..f1191f6b 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Intelligent Substitution.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Intelligent Substitution.i7x @@ -96,8 +96,8 @@ Include score = score - 100; } - ! The letter-remover is not upgraded to create this. - ! Don't choose this. + ! The letter-remover is not upgraded to create this. + ! Don't choose this. if (contender ofclass (+ person +) && ~~(+ letter-remover +).(+ creature-enabled +)) { score = score - 100; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Liquids.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Liquids.i7x index 9bc63fa6..94f48c9d 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Liquids.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Liquids.i7x @@ -23,7 +23,7 @@ Instead of taking an uncontained fluid thing (called the fluid): Understand "drink from [something]" as drinking. Sanity-check drinking a tap (called target tap): - if the subcommand of the target tap matches "water" or the player's command includes "from": + if the subcommand of the target tap matches "water" or the player's command includes "from": say "It may not be sanitary." instead. Sanity-check inserting something into a tap (called target tap): diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Loudness.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Loudness.i7x index c476fada..81048368 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Loudness.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Loudness.i7x @@ -93,7 +93,7 @@ Array noisy_things --> 10; i = MyFindNoiseMakerLoop(o.component_sibling, i); ! Don't look inside closed containers - if (child(o) && ~~(o has openable && o hasnt open) ) o = child(o); + if (child(o) && ~~(o has openable && o hasnt open) ) o = child(o); else while (o) { diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Memories.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Memories.i7x index 14a8dfbe..e079f94e 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Memories.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Memories.i7x @@ -311,7 +311,7 @@ Slango still didn't look impressed. Section 10 - Counterfeit Monkey Clue -category-memory is a memory. The max is 1. The printed name is "past experience playing games". Understand "past" or "experience" or "playing" or "games" as category-memory. +category-memory is a memory. The max is 1. The printed name is "past experience playing games". Understand "past" or "experience" or "playing" or "games" as category-memory. Carry out an actor discussing how one might go about winning: trigger category-memory. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Mentions Indices.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Mentions Indices.i7x index 41affc24..eca13729 100755 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Mentions Indices.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Mentions Indices.i7x @@ -171,8 +171,8 @@ delay ticket-taker has mention-start-index 133. delay ticket-taker has mention-stop-index 133. where my backpack seems has mention-start-index 134. where my backpack seems has mention-stop-index 134. -argue about lost plus found policy has mention-start-index 135. -argue about lost plus found policy has mention-stop-index 136. +argue about lost plus found policy has mention-start-index 135. +argue about lost plus found policy has mention-stop-index 136. demonstrate the lost backpack has mention-start-index 137. demonstrate the lost backpack has mention-stop-index 137. buy movie-ticket has mention-start-index 138. @@ -321,8 +321,8 @@ complain that the game seems unfair has mention-start-index 225. complain that the game seems unfair has mention-stop-index 225. whether he hath any other games going has mention-start-index 226. whether he hath any other games going has mention-stop-index 226. -how long he hath worked at bar has mention-start-index 227. -how long he hath worked at bar has mention-stop-index 227. +how long he hath worked at bar has mention-start-index 227. +how long he hath worked at bar has mention-stop-index 227. what he thinks about the Bureau has mention-start-index 228. what he thinks about the Bureau has mention-stop-index 229. whether he hates customs officials has mention-start-index 230. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Multimedia.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Multimedia.i7x index 649a4ed4..53a6def4 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Multimedia.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Multimedia.i7x @@ -59,6 +59,9 @@ When identification ends (this is the open the graphics window rule): if glulx graphics is supported: let main-width be the width of the main window; let measure-width be the width of the measuring window; + if measure-width is 0: + open the measuring window; + now measure-width is the width of the measuring window; unless graphics is disabled or main-width is less than 41 or measure-width is less than 405: now current graphics drawing rule is the compass-drawing rule; open the graphics window; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Presentation Details.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Presentation Details.i7x index 0c758845..8603810a 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Presentation Details.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Presentation Details.i7x @@ -37,7 +37,8 @@ Section 2 - Input Editing Include Punctuation Removal by Emily Short. First after reading a command (this is the remove stray punctuation rule): - remove stray punctuation. + remove stray punctuation; + resolve punctuated titles. Section 3 - Styles @@ -204,9 +205,9 @@ Points (a number) Citation (some text) Time (a time) 15 "returning to the yacht" To record (T - text) as achieved: - choose row with a citation of T in the Table of Tasks Achieved; - if there is no time entry begin; - now time entry is the time of day; + choose row with a citation of T in the Table of Tasks Achieved; + if there is no time entry begin; + now time entry is the time of day; increase score by points entry; end if. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Regenerate Mentions.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Regenerate Mentions.i7x index 183d7854..4b32c0f3 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Regenerate Mentions.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Regenerate Mentions.i7x @@ -198,7 +198,7 @@ The mentions-list of assure him that we seem not hitting on him is {yourself, ti The mentions-list of what his girlfriend seems like is {Romance, ticket-taker}. The mentions-list of delay ticket-taker is {Entertainment}. The mentions-list of where my backpack seems is {backpack}. -The mentions-list of argue about lost plus found policy is {yourself, backpack}. +The mentions-list of argue about lost plus found policy is {yourself, backpack}. The mentions-list of demonstrate the lost backpack is {backpack}. The mentions-list of buy movie-ticket is {hidden-ticket}. The mentions-list of whether we can hath the scope is {Regulation Authentication Scope}. @@ -273,7 +273,7 @@ The mentions-list of how one might go about winning is {Origin Paste}. The mentions-list of play the game is {Origin Paste, Entertainment}. The mentions-list of complain that the game seems unfair is {Origin Paste}. The mentions-list of whether he hath any other games going is {Origin Paste}. -The mentions-list of how long he hath worked at bar is {Employment}. +The mentions-list of how long he hath worked at bar is {Employment}. The mentions-list of what he thinks about the Bureau is {Bureau, barman}. The mentions-list of whether he hates customs officials is {Immigration, barman, local-officials}. The mentions-list of whether he believes in god-2 is {Religion}. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Alphabetic Details.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Alphabetic Details.i7x index 7839ba7b..e0db80e5 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Alphabetic Details.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Alphabetic Details.i7x @@ -17,13 +17,13 @@ Instead of searching the aas-object: say "There are a surprising number of sharp bits: this is friable stone, but it hasn't yet been eroded into smoothness." -The description of the ad is "A folded, rumpled newspaper ad for [ad subject]." The ad has some text called the ad subject. The heft of the ad is 1. +The description of the ad is "A folded, rumpled newspaper ad for [ad subject of the ad]." The ad has some text called the ad subject. The heft of the ad is 1. Before examining the ad for the first time: if the restoration gel is not seen: now the ad subject of the ad is "Restoration Gel: a unique patented formula to restore lost letters and undo the effects of a letter-remover"; otherwise: - now the ad subject is "[one of]fixed-price dinners at Literal[or]an exhibit on the pre-history of linguistic concepts at the local museum, especially highlighting their possession of an amazing classic codex[or]seaweed wrap treatments at the Fleur d'Or spa[sticky random]"; + now the ad subject of the ad is "[one of]fixed-price dinners at Literal[or]an exhibit on the pre-history of linguistic concepts at the local museum, especially highlighting their possession of an amazing classic codex[or]seaweed wrap treatments at the Fleur d'Or spa[sticky random]"; The adage is an r-abstract thing. The heft of the adage is 0. The description of the adage is "It reads: [one of]Don't make a god of gold[or]The value of a thing is what it may become[or]From little acorns, much corn may be harvested[or]Every stick has three ends[or]Good fences make good fertil[ize]r[or]Even players have layers[or]If hoses were horses, gardeners would rule the racetrack[or]The fanciest word is the least productive[or]Wordplay is stronger than swordplay[or]Judge a man by his verbs alone[at random]." @@ -38,7 +38,7 @@ But no, it has come out as the representation of an era, the golden age of Atlan The ahi is an edible thing. The indefinite article of an ahi is "some". The description of the ahi is "Sashimi-grade tuna, deep translucent pink except around the edges, where it has been seared and coated with blackened sesame seeds.". Understand "tuna" or "fish" as the ahi. -The heft of an air is 0. The indefinite article of an air is "some". The description of an air is "It's hard to see." The scent-description of an air is "nothing". +The heft of an air is 0. The indefinite article of an air is "some". The description of an air is "It's hard to see." The scent-description of an air is "nothing". Sanity-check doing something other than smelling with an air when the noun must be touched: say "[The noun] is not susceptible to [action name part of the current action]." instead. @@ -122,34 +122,34 @@ The description of the art is "It's a very plausible copy of [one of]'Still Life The description of an as is "[one of]It appears to be an as, a [or]A [stopping]Roman coin of very low denomination[one of]. (Your knowledge, not mine. Should I ask how you know such things?)[or].[stopping] It is made of copper and has the letters S C stamped on one side." Understand "as/roman/coin/copper" as an as. The heft of an as is 1. The printed name of an as is "as". Understand "asses" as the plural of as. Instead of searching or looking under an as: - say "We inspect both obverse and reverse, but come away none the wiser." + say "We inspect both obverse and reverse, but come away none the wiser." Instead of buying an as: - say "We're much too late for speculation in this particular currency." + say "We're much too late for speculation in this particular currency." Instead of touching or squeezing or rubbing an as: - say "The metal surface is dull and weathered, skin-temperature, all smooth edges." + say "The metal surface is dull and weathered, skin-temperature, all smooth edges." Rule for initially listing contents: - initially group ases together. + initially group ases together. Rule for grouping together an as (called target): - say "[listing group size in words] asses"; - let source be the holder of the target; - now every as held by the source is mentioned. + say "[listing group size in words] asses"; + let source be the holder of the target; + now every as held by the source is mentioned. Does the player mean doing something to the as-coin when the subcommand of the as-coin matches "as": - it is likely. + it is likely. Does the player mean doing something to the as-coin when action requires a carried noun and the player does not carry the as-coin: - it is likely. + it is likely. Does the player mean taking the as-coin when the player carries the as-coin: it is unlikely. Does the player mean doing something when the second noun is the as-coin and the subcommand of the as-coin matches "as": - it is likely. + it is likely. Does the player mean doing something when the second noun is the as-coin and action requires a carried second noun and the player does not carry the as-coin: - it is unlikely. + it is unlikely. The fake-as is an as. @@ -270,7 +270,7 @@ The bass-fish is a privately-named thing. The description is "A trophy of a fish The heft of the bat is 1. The description of the bat is "It's small and black-furred, and looks like it would rather be in a cool dark place alone with some fruit." -The Ben-wig is wearable. It covers the head-area. The printed name is "Ben wig". Understand "wig" or "ben wig" as the ben-wig. The description is "It is a wig belonging to [--] at a guess [--] a Ben Franklin costume. A rubbery pate simulates baldness at the top of the head, while grey curls hang below. It would not, I fear, look remotely persuasive on our head." +The Ben-wig is wearable. It covers the head-area. The printed name is "Ben wig". Understand "wig" or "ben wig" as the ben-wig. The description is "It is a wig belonging to [--] at a guess [--] a Ben Franklin costume. A rubbery pate simulates baldness at the top of the head, while grey curls hang below. It would not, I fear, look remotely persuasive on our head." The scent-description is "the faintest whiff of dust". The description of the bell is "It's a tiny golden bell with a tiny golden clapper inside." The bell is an instrument. @@ -585,7 +585,7 @@ Understand "cook [char]" as a mistake ("Even if you know how, there's no time fo The description of the charlie is "It's a quantity of very suspicious-looking white powder. Cocaine, I believe. Drug slang was never my strength." The charlie is illegal. The indefinite article of the charlie is "some". -Sanity-check smelling the charlie: +Sanity-check smelling the charlie: say "[We][']d prefer not to undergo this whole process while higher than a kite. We need our wits." instead. Sanity-check cutting the charlie: say "Odds are it's already cut with corn starch or baby powder or whatever it is they put into drugs to make up the weight." instead. @@ -627,7 +627,7 @@ Instead of listening to the click: [clock] -The clock has a time called the current time. The description of a clock is "It appears to be one of those archetypal alarm clocks that crows at sunrise and generally makes a nuisance of itself. It shows the time to be about [the current time to the nearest five minutes in words]." +The clock has a time called the current time. The description of a clock is "It appears to be one of those archetypal alarm clocks that crows at sunrise and generally makes a nuisance of itself. It shows the time to be about [the current time of the clock to the nearest five minutes in words]." Every turn (this is the advance clock rule): increase the current time of the clock by one minute. @@ -635,13 +635,13 @@ Every turn (this is the advance clock rule): Understand "set [clock] to [time]" as setting it by time. Setting it by time is an action applying to one thing and one time. Instead of setting the clock to something: - say "[The noun] can be set only to a time of day, such as 8:00 AM, or midnight." + say "[The noun] can be set only to a time of day, such as 8:00 AM, or midnight." Carry out setting a clock by time: - now the current time of the noun is the time understood. + now the current time of the noun is the time understood. Report setting a clock by time: - say "[We] set [the noun] to [time understood]." + say "[We] set [the noun] to [time understood]." A cluck is an r-abstract noisy thing. The heft of the cluck is 0. The description of the cluck is "Genuine barnyard stuff, it sounds like." @@ -675,7 +675,7 @@ Test cockbug with "autoupgrade / wave l-remover at clock / open tub / gel cock" [The cockpit is a thing. The heft of the cockpit is 10. The description is "It's a tiny room lined on every surface with buttons and instrument readouts and warning signs, altimeters and radios and all sorts of other gadgets I don't recognize." Understand "buttons" and "readouts" and "instrument" and "warning" and "signs" and "altimeters" and "radios" and "gadgets" and "button" and "readout" and "sign" and "altimeter" and "radio" and "gadget" as the cockpit.] -The cock-ring is a wearable thing. The printed name is "cock ring". The cock-ring is naughty-sounding. The description is "A sturdy ring of black rubber[one of]. Which reminds me [--] never mind[or]. And no, I'm not going to tell you about that memory[or]. Stop prying[stopping]." Understand "cock" or "ring" as cock-ring. +The cock-ring is a wearable thing. The printed name is "cock ring". The cock-ring is naughty-sounding. The description is "A sturdy ring of black rubber[one of]. Which reminds me [--] never mind[or]. And no, I'm not going to tell you about that memory[or]. Stop prying[stopping]." Understand "cock" or "ring" as cock-ring. Sanity-check wearing the cock-ring: say "Er. Our combined physique doesn't allow for a place to put that." instead. @@ -738,7 +738,7 @@ The description of the countertop is "The result is a slab of good black granite The cratering is r-abstract. The indefinite article is "some". The heft is 0. The description is "It's an image, light as air, of the moon and the craters on it." -The crew-group is a privately-named plural-named person. The description of the crew-group is "Five (or six? it's extremely hard to count) swarthy sailors. They look buff and burly and have very thick eyebrows." The heft of the crew-group is 6. The printed name of the crew-group is "crew". Understand "crew" as the crew-group. +The crew-group is a privately-named plural-named person. The description of the crew-group is "Five (or six? it's extremely hard to count) swarthy sailors. They look buff and burly and have very thick eyebrows." The heft of the crew-group is 6. The printed name of the crew-group is "crew". Understand "crew" as the crew-group. [Persuasion rule for asking the crew-group to try doing something: rule succeeds.] @@ -881,6 +881,11 @@ An eel is edible. The description of an eel is "Manifested dead, because out of The eight-object is an r-abstract thing. The printed name is "eight". Understand "eight" or "8" as the eight-object. The heft is 0. The description is "It looks like an infinity symbol rotated ninety degrees." +[This and the equivalent rule for the ten-object below makes sure that things like PUT EIGHT IN BUCKET will work as expected for the eight-object and ten-object (otherwise it will be understood as putting ten random objects in the bucket). Referring to them as 8 and 10 will still not work, as we don't want to interfer with the numbered disambiguation.] +After reading a command when the eight-object is marked-visible (this is the replace eight-object in input rule): + while the player's command includes "eight": + replace the matched text with "eight-object". + The elegantly winter pilot is a woman. Understand "aviatrix" or "slim" or "alert" as the elegantly winter pilot. The initial appearance is "[The elegantly winter pilot] shows no sign of nervousness or impatience." The description is "A slim, alert aviatrix, dressed suitably for a biplane duel somewhere over the Ukraine. Her eyes are almond-shaped and her glance taunting." @@ -1280,7 +1285,7 @@ The keycard is a passkey. It unlocks the small door. The description is "An elec Carry out taking the keycard: record "acquiring a keycard" as achieved. -The key-lime is an edible thing. The printed name is "key lime". Understand "key" or "lime" as the key-lime. The description is "One of those small, extra-flavorful limes used as a flavor for pie." +The key-lime is an edible thing. The printed name is "key lime". Understand "key" or "lime" as the key-lime. The description is "One of those small, extra-flavorful limes used as a flavor for pie." The scent-description is "sharp and citrusy". The flavor-description is "The outer layer of skin tastes a little bit sharp, but most of the flavor is locked inside.". @@ -1576,18 +1581,18 @@ topic stuff setting Test oboe with "hard mode / y / tutorial off / load gun / look / open station / get balm / shoot balm / put lamb in bucket / x oboe / blow oboe / play oboe / play music on oboe / play chopsticks on oboe" [in the generator room holding the anagramming gun and the bullets.] -The description of the ode is "A short poem, letter-pressed attractively on a sheet of thick paper. It is entitled 'Our Ancestors, The Immortal Spirits of the Pyramids,' a fact which disinclines me to study the rest." Understand "poem" as the ode. The scent-description of the ode is "paper". +The description of an ode is "A short poem, letter-pressed attractively on a sheet of thick paper. It is entitled 'Our Ancestors, The Immortal Spirits of the Pyramids,' a fact which disinclines me to study the rest." Understand "poem" as an ode. The scent-description of an ode is "paper". -Instead of searching the ode: +Instead of searching an ode: say "A quick survey of the first verse reveals two metrical errors and a very dodgy rhyme of 'Ra' and 'car.'" -Instead of listening to the ode: +Instead of listening to an ode: say "It is mercifully silent. I don't think reading it aloud would improve my opinion of the thing." -Instead of frowning at or laughing at the ode: +Instead of frowning at or laughing at an ode: say "Yes, I share your critical sentiments exactly." -Instead of smiling at the ode: +Instead of smiling at an ode: say "[We] smile derisively." The description of the odes-book is "A slender volume of poetry, bound between red covers. It looks completely harmless and is written in English. @@ -1799,7 +1804,7 @@ The passage-place is a thing. The printed name is "passage". Understand "passage [This portion is, again, totally an Easter egg: there's no need to go to the Shadow Chamber, and on the whole it's pretty unlikely that anyone will on the first try. However, it's a repository for palindromes and word puzzles of non-English and slightly superstitious origin, suggesting that some sense of magic attached to these even before linguistic efficacy was widely detected.] -The Shadow Chamber is a room. It is indoors, checkpoint and forbidden. The description is "Dim lights in the floor make it possible to navigate in here, though it's still fairly dark. The place is small and shabby, the air stale.[assign-amanda]". +The Shadow Chamber is a room. It is indoors, checkpoint, improper-named and forbidden. The description is "Dim lights in the floor make it possible to navigate in here, though it's still fairly dark. The place is small and shabby, the air stale.[assign-amanda]". [Somewhat hackish way to get an extra line break before the achievement message and avoid a double paragraph break after] To say assign-amanda: @@ -2177,7 +2182,7 @@ The printed name of the pi-tat-inn is "pi tat inn". Understand "pi tat inn" or " The description of the pill is "It is small, round, and blue. There are no brand or generic markings to indicate what it might do." The pill is edible. The heft of the pill is 1. Instead of tasting or eating the pill: - say "[We] toss the pill into our mouths and swallow it dry. + say "[We] toss the pill into our mouth and swallow it dry. There is no immediate reaction, but after a few minutes a cramping pain begins to spread through our stomach, and it becomes difficult to breathe. Yellow and blue spots float in front of our eyes. Our skin begins to itch. Dimly I wonder whether these symptoms correspond to any real medical condition or whether the pill is simply poisonous by invention; but [we] [are] not clear-minded enough to go on thinking these sorts of thoughts for long."; end the story saying "[We] have poisoned ourself" @@ -2350,7 +2355,7 @@ The printed name of the polling-chart is "polling chart". Understand "polling" o A poppycock is a noisy r-abstract thing. The indefinite article is "some". The heft of the poppycock is 0. The description is "A great deal of drivel. Or, no: more the concept of drivel, as regarded by a previous age. -Curiously, therefore, the concept manifests itself as a little floaty cloud in which a flustered gent with Victorian [if the player wears the Britishizing goggles]moustaches[otherwise]mustaches[end if], verging on apoplexy." +Curiously, therefore, the concept manifests itself as a little floaty cloud in which is a flustered gent with Victorian [if the player wears the Britishizing goggles]moustaches[otherwise]mustaches[end if], verging on apoplexy." Instead of listening to the poppycock, say "[one of]'POPPYCOCK!' shouts the little imaginary man[or]'ARRANT NONSENSE,' shouts the angry poppycock-gentleman[or]'STUFF! POPPYCOCK!' The imaginary man is beet red and his mustaches quiver[at random]." @@ -2567,7 +2572,7 @@ Sanity-check going somewhere when the player carries the power cord: if the player carries the power cord: stop the action. -Understand "plug [a power socket] into [a power socket]" as connecting it to. Understand "plug in [a power socket] in [a power socket]" as connecting it to. Connecting it to is an action applying to two things. +Understand "plug [a power socket] into [a power socket]" as connecting it to. Understand "plug in [a power socket] in [a power socket]" as connecting it to. Connecting it to is an action applying to two things. Understand "connect [a power socket] to [a power socket]" as connecting it to. Understand "connect [a power cord] to [a power socket]" as plugging it into. @@ -2684,7 +2689,7 @@ The rampage is an r-abstract thing. It is noisy. The description of the rampage A rap is usually noisy. A rap is usually r-abstract. The description of the rap is "A pulsating ball of angry air." -[Originally the rap riffed on the lyrics of the handful of songs I know at all well. The results were so painfully square that Sam Ashwell responded by schooling me with a 38K email entitled 'A Very White Person Summarises Hip-Hop Themes'. +[Originally the rap riffed on the lyrics of the handful of songs I know at all well. The results were so painfully square that Sam Ashwell responded by schooling me with a 38K email entitled 'A Very White Person Summarises Hip-Hop Themes'. The results do not live up to his efforts, but you should know that he really really tried and, hey, the Sir Mixalot joke is gone.] @@ -2950,7 +2955,7 @@ Ross is a proper-named man. The description of Ross is "He's red-headed and he l The description of the rotas inscription is "It reads: [paragraph break][fixed letter spacing] P[line break] A[line break] T[line break] A E O[line break] R[line break]PATERNOSTER[line break] O[line break] O S A[line break] T[line break] E[line break] R[variable letter spacing]". The rotas inscription is fixed in place. -Rule for printing the name of the rotas inscription when not shooting: +Rule for printing the name of the rotas inscription when not shooting: say "Roman inscription". Understand "roman" or "letters" or "lettering" as the rotas inscription. The initial appearance of the rotas inscription is "On the opposite wall is a cross of inscribed letters, this time Roman." @@ -3012,7 +3017,7 @@ The saint-pint is a container. The printed name of the saint-pint is "saint pint The Scot is a man. The description is "The full stereotype: bagpipes, kilt, sporran. If you look at him too long, he says, 'Och.'" Understand "bagpipes" or "kilt" or "sporran" or "man" as the Scot. The greeting of the Scot is "'Och,' he says. A tic." -The scree is a fixed in place thing. The heft of the scree is 8. The description of the scree is "The scree is a sloping pile of small and mid-sized stones, most of them roughly broken off. They look like the result of a rockfall rather than of, say, long erosion by water." The indefinite article of the scree is "some". Understand "stones" or "stone" or "rubble" or "pile" as the scree. +The scree is a fixed in place thing. The heft of the scree is 10. The description of the scree is "The scree is a sloping pile of small and mid-sized stones, most of them roughly broken off. They look like the result of a rockfall rather than of, say, long erosion by water." The indefinite article of the scree is "some". Understand "stones" or "stone" or "rubble" or "pile" as the scree. Instead of climbing the scree: say "As soon as [we] get a step or two up the pile, [we] slide back down again." @@ -3492,16 +3497,16 @@ To say generated tale: if V is: -- 1: now tale-intro is "Once upon a time, a [t-hero] was [one of][or]hard at work [or]busy [or]in the middle of [at random][t-activity]. "; - now tale-danger is "Then the [t-hero] met with a [t-antagonist]. [one of]For a time [t-nom] thought that [t-nom] and [t-pos] family were done for, so great was [t-pos] fear, when[or]Everything seemed lost until[or]The [t-hero] did not know what to do until[or]The [t-hero] was overwhelmed with terror until[at random] [one of][t-nom] remembered the [t-tool][or][t-nom] found the [t-tool] again among [t-pos] possessions[or]the [t-tool] spoke aloud saying USE ME, USE ME[at random]. "; + now tale-danger is "Then the [t-hero] met with a [t-antagonist]. [one of]For a time [t-nom] thought that [t-nom] and [t-pos] family were done for, so great was [t-pos] fear, when[or]Everything seemed lost until[or]The [t-hero] did not know what to do until[or]The [t-hero] was overwhelmed with terror until[at random] [one of][t-nom] remembered the [t-tool][or][t-nom] found the [t-tool] again among [t-pos] possessions[or]the [t-tool] spoke aloud saying USE ME, USE ME[at random]. "; -- 2: now tale-intro is "Once upon a time, the supreme councilor of the land was captured by a [t-antagonist][one of], and no one but a [t-hero] dared try to save him[or]. A brave [t-hero] set out to save him[or], and only a [t-hero] was willing to go after him[at random]. "; now t-activity is "searching high and low for the councilor"; - now tale-danger is "At last the [t-hero] found the lair of the [t-antagonist]. "; - now tale-resolution is "[tale-resolution]The councilor was saved, and all rejoiced. "; + now tale-danger is "At last the [t-hero] found the lair of the [t-antagonist]. "; + now tale-resolution is "[tale-resolution]The councilor was saved, and all rejoiced. "; -- 3: now t-activity is "[one of]treasure[or]a cure to the plague[or]fresh water[or]the world's hottest spice[or]the world's sweetest honey[or]the world's end[or]the Secret Word that Makes Men Live Forever[or]the 27th letter of the alphabet (which God gave secretly to the angels)[as decreasingly likely outcomes]"; - now tale-danger is "When at last the [t-hero] [one of]discovered the hiding place of the [t-activity][or]tracked down the [t-activity] with subtle maps and a magic compass[or]uncovered the [t-activity] by asking every merchant and priest in the land[or]came to the hidden place where the [t-activity] could be found[at random], [t-nom] found it was being guarded by a [t-antagonist]. "; - now tale-resolution is "[tale-resolution]The [t-hero] and [t-pos] whole town lived [one of]healthily[or]wisely[or]joyfully[or]wealthily[at random] ever after. "; + now tale-danger is "When at last the [t-hero] [one of]discovered the hiding place of the [t-activity][or]tracked down the [t-activity] with subtle maps and a magic compass[or]uncovered the [t-activity] by asking every merchant and priest in the land[or]came to the hidden place where the [t-activity] could be found[at random], [t-nom] found it was being guarded by a [t-antagonist]. "; + now tale-resolution is "[tale-resolution]The [t-hero] and [t-pos] whole town lived [one of]healthily[or]wisely[or]joyfully[or]wealthily[at random] ever after. "; if t-activity is "the world's end" and chosen tale-villain is t-foreigner: now tale-resolution is "[tale-resolution]But all were amazed that the world's end should be in a foreign land rather than their own. "; otherwise if t-activity is "the 27th letter of the alphabet, which God gave secretly to the angels": @@ -3551,15 +3556,15 @@ To say generated tale: now V is a random number between 1 and 8; if V is: -- 1: - now tale-donation is "In the midst of [t-activity], [t-nom] was interrupted by a [t-helper]. [one of]Though [t-nom] did not welcome the interruption, [or]Though [t-nom] was rude, [or]The [t-hero] said, 'Go away! Can't you see I'm busy?' But [or]The [t-hero] made a bad face, but [at random]the [t-helper] said, '[one of]I was sent to bring you this[or]A dream told me to present you this[or]I have brought you a[or]I wanted only to give you this[at random] [t-tool].' Thinking nothing of it, the [t-hero] went on [t-pos] way. "; + now tale-donation is "In the midst of [t-activity], [t-nom] was interrupted by a [t-helper]. [one of]Though [t-nom] did not welcome the interruption, [or]Though [t-nom] was rude, [or]The [t-hero] said, 'Go away! Can't you see I'm busy?' But [or]The [t-hero] made a bad face, but [at random]the [t-helper] said, '[one of]I was sent to bring you this[or]A dream told me to present you this[or]I have brought you a[or]I wanted only to give you this[at random] [t-tool].' Thinking nothing of it, the [t-hero] went on [t-pos] way. "; if t-tool is "whip": now tale-resolution is "When the [t-helper] met with the [t-hero] again, the [t-helper] said, 'Now perhaps you see what sort of creature it is proper to beat!' [tale-resolution]"; otherwise if t-tool is "mirror": now tale-resolution is "The [t-helper] returned to the [t-hero] and said, 'Now use your mirror on yourself, and see what kind of person you have become!' [tale-resolution]"; otherwise: - now tale-resolution is "The next morning [t-nom] met the [t-helper] again. Astonished, [t-nom] said, 'Why did you give the [t-tool] to me after I treated you unkindly?' The [t-helper] replied: '[one of]I did this not for you, but for the whole island[or]I could not withhold that which it was your fate to receive[or]In payment, you and your family must always treat me well and bring me gifts[at random].' [tale-resolution]"; + now tale-resolution is "The next morning [t-nom] met the [t-helper] again. Astonished, [t-nom] said, 'Why did you give the [t-tool] to me after I treated you unkindly?' The [t-helper] replied: '[one of]I did this not for you, but for the whole island[or]I could not withhold that which it was your fate to receive[or]In payment, you and your family must always treat me well and bring me gifts[at random].' [tale-resolution]"; -- 2: - now tale-donation is "[one of]While the [t-hero] was [t-activity][or]Just then[at random], a [t-helper] approached [t-obj] and demanded [tale-donation]. And though the [t-hero] was very busy, [t-nom] gave all the aid in [t-pos] power. In return, the [t-helper] gave [t-obj] a [t-tool]. "; + now tale-donation is "[one of]While the [t-hero] was [t-activity][or]Just then[at random], a [t-helper] approached [t-obj] and demanded [tale-donation]. And though the [t-hero] was very busy, [t-nom] gave all the aid in [t-pos] power. In return, the [t-helper] gave [t-obj] a [t-tool]. "; if chosen tale-gift is t-diversion and t-activity is not "scouring the land for what was lost": now tale-donation is "[tale-donation]'I cannot imagine what use this will be,' thought the [t-hero]. But [t-nom] put it away in [t-pos] bag, because [t-nom] knew that there is a use for everything in its time. "; -- 3: @@ -3712,6 +3717,11 @@ The description of the tat is "It looks like the end-of-day leftovers from a par The ten-object is r-abstract. The heft of the ten-object is 0. Understand "ten" or "10" as the ten-object. The description of a ten-object is usually "The concept of ten is here represented by [one of]the letter X[or]the digits 1 and 0[or]the digit A[or]an Olympic judge holding up a scorecard[or]two hands, exposing their fingers[or]two feet, spreading their toes[at random]." The printed name of a ten-object is usually "ten". +[This and the equivalent rule for the eight-object above makes sure that things like PUT EIGHT IN BUCKET will work as expected for the eight-object and ten-object (otherwise it will be understood as putting ten random objects in the bucket). Referring to them as 8 and 10 will still not work, as we don't want to interfer with the numbered disambiguation.] +After reading a command when the ten-object is marked-visible (this is the replace ten-object in input rule): + while the player's command includes "ten": + replace the matched text with "ten-object". + The description of the Tao is "It presents itself as one of those circular yin-yang symbols, part black, part white. I'm afraid Atlantean understanding of Asian philosophies is fairly simplistic." A tap can be hot, unhot or undecided. A tap is usually undecided. @@ -3728,7 +3738,7 @@ The description of a tap is "It's a tap marked [if the item described is hot]Hot The description of the tape is "It's clear tape, the kind you use to wrap presents or make childhood art projects. I made an entire paper village when I was small, at significant expense in sticky tape." -The description of the tar is "A pot of sticky black goo." The indefinite article of tar is "some". Instead of tasting or eating the tar: say "Ugh." Instead of smelling the tar: say "It smells like roadworks on a hot day." +The description of the tar is "A pot of sticky black goo." The indefinite article of tar is "some". Instead of tasting or eating the tar: say "Ugh." Instead of smelling the tar: say "It smells like roadworks on a hot day." The tarpan is a neuter animal. The description is "A small, mouse-col[our]ed horse with black-barred legs. It looks wild and shows no signs of ever having been saddled or ridden." @@ -3842,7 +3852,7 @@ Table of Ultratests (continued) topic stuff setting "paintings" { anagramming gun, bullets, paintings, tub } Sensitive Equipment Testing Room -Test paintings with "autoupgrade / load gun / wave s-remover at paintings / shoot painting / put giant pin in t-inserter / shoot giant pint / wave g-remover at pig tat inn / shoot pi tat inn / put pin in inserter / shoot titan pint / open tub / gel tint / shoot paintings / wave g-remover at sign / shoot sin" [holding the anagramming gun and the bullets and the paintings and the tub in the Sensitive Equipment Testing Room.] +Test paintings with "autoupgrade / load gun / wave s-remover at paintings / shoot painting / put giant pin in t-inserter / shoot giant pint / wave g-remover at pig tat inn / shoot pi tat inn / put pin in inserter / shoot titan pint / open tub / gel tint / shoot paintings / wave g-remover at sign / shoot sin" [holding the anagramming gun and the bullets and the paintings and the tub in the Sensitive Equipment Testing Room.] The titan-pin is wearable. The description of the titan-pin is "The pin depicts two giant-like figures locked in a wrestling match." The printed name is "titan pin". Understand "titan" or "titan pin" as the titan-pin. Understand "pin" as the titan-pin when the pin is marked invisible. @@ -4215,7 +4225,7 @@ The description of the weight is "Shaped like a headless pyramid. '0.5 kg' is st The wet epigraph is r-abstract. The heft is 0. The description is "Currently it reads, '[one of]Unshakable faith is faith that has been shaken[or]Anyone who thinks the sky is the limit, has limited imagination[at random].'" -The wig is wearable and floppy. It covers the head-area. The description is "A surprisingly realistic wig, cut to about the shoulder. It looks like our hair, but a good bit longer." +The wig is wearable and floppy. It covers the head-area. The description is "A surprisingly realistic wig, cut to about the shoulder. It looks like our hair, but a good bit longer." The scent-description is "the faintest whiff of shampoo". @@ -4237,11 +4247,32 @@ The description of the wire rack is "The new rack is miraculously much larger th The word is r-abstract. The heft of the word is 0. The description is "At the moment, the word is '[recent word]', floating about in [one of]handsome Garamond[or]Arno Pro[or]unmistakable Hoefler[or]slick Buivinga[or]elegant Didot[or]unimaginative Times[or]Helvetica[or]solid-bodied Gotham[at random] lettering." +Definition: a thing is description-appropriate: + if it is the word: + no; + if it is the wordage: + no; + if it is the words: + no; + if it is a quip: + no; + if it is a facade: + no; + if it is a door: + no; + if it is a tap: + no; + if it is a software: + no; + yes. + To say recent word: + let target be a random thing; let N be some text; - now N is the substituted form of the description of a random marked-visible thing; - if N is "": + if target is not description-appropriate or the description of target is "": now N is description of the passage; + otherwise: + now N is the substituted form of the description of target; let count be the number of words in N; let index be a random number between 1 and count; say word number index in N. @@ -4254,9 +4285,10 @@ To say generictext: let N be a random number between 20 and 30; let assemblage be text; repeat with I running from 1 to N: - let content be description of a random seen thing; - if content is "": + let target be a random thing; + if target is not description-appropriate or the description of target is "": next; + let content be the substituted form of the description of target; let max be the number of words in content; let word-choice be a random number between 1 and max; now assemblage is "[assemblage][word number word-choice in content] "; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Major Contents.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Major Contents.i7x index a3ce7225..8d04cbb1 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Major Contents.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Repository Major Contents.i7x @@ -93,7 +93,6 @@ An alterna-tart is a kind of woman. A tattle is a kind of thing. A tear is a kind of fluid thing. An alterna-tear is a kind of thing. -A ten-object is a kind of thing. A tent is a kind of container. Some plural-tents is a kind of container. A tin-can is a kind of container. ["tin"] @@ -506,7 +505,7 @@ A live branch is in the repository. [paintings] -The repository contains a painting, an inapt sign, an inapt sin, a satin-pin, a satin-pint, a saint-pint, a giant-pin, a giant-pint, a pig-tat-inn, a pi-tat-inn, a titan-pin, a titan-pint, and an inapt tint. +The repository contains a painting, an inapt sign, an inapt sin, a satin-pin, a satin-pint, a saint-pint, a giant-pin, a giant-pint, a pig-tat-inn, a pi-tat-inn, a titan-pin, a titan-pint, and an inapt tint. [page] @@ -963,7 +962,7 @@ A nitrate is in the repository. The repository contains a papa and some papas and an aa and an aas-object. [page] -The repository contains a passage-place. ["page", "passage"] +The repository contains a passage-place. ["page", "passage"] [pass] The repository contains a password-thing, a passcard, a passage, a passkey-thing. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Room Description Speedups.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Room Description Speedups.i7x index 355d27df..73f28596 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Room Description Speedups.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Room Description Speedups.i7x @@ -102,7 +102,7 @@ Include (- ]; [ HasLightSource i; - rtrue; + rtrue; ]; [ ComponentHasLight o; @@ -110,7 +110,7 @@ Include (- ]; [ HidesLightSource obj; - rfalse; + rfalse; ]; -) instead of "Light Measurement" in "Light.i6t". @@ -129,8 +129,8 @@ Include (- Include (- [ SilentlyConsiderLight; - lightflag = true; - location = real_location; + lightflag = true; + location = real_location; rfalse; ]; @@ -411,10 +411,9 @@ Include (- col=TableFindCol((+ Table of Seen Things +), (+ output subject +), true); - for (obj=IK2_First: obj : obj=obj.IK2_Link) + for (obj=IK2_First: obj && seen_count < 60 : obj=obj.IK2_Link) if (obj has workflag && obj hasnt mentioned) { seen_count++; - if (seen_count > 60) print_ret "ERROR: more than 60 mentionable things in room!^"; ((+ Table of Seen Things +)-->col)-->(seen_count+COL_HSIZE) = obj; } ]; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Safety Overrides and Disasters.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Safety Overrides and Disasters.i7x index 0aa3f122..56e762b4 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Safety Overrides and Disasters.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Safety Overrides and Disasters.i7x @@ -120,7 +120,7 @@ Unfortunately, the lab is more than enough to bury [us] under its bulk."; Check waving the letter-remover at the patron when the current setting of the letter-remover is "m" and the player knows mark-known: say "With a distinct whiff of newly sawn planks, Mark turns into an ark. From here, the width of the bow in cubits is hard to guess. It just looks huge, much too huge for the little space it's crammed into… -Unfortunately, the ark is more than sufficient to bury us under its bulk."; +Unfortunately, the ark is more than sufficient to bury [us] under its bulk."; abide by the game-ending rule. Check waving the letter-remover at the warp when the current setting of the letter-remover is "p": @@ -185,7 +185,7 @@ Unfortunately, the revel is more than big enough to bury [us] under its bulk."; abide by the game-ending rule. Check shooting the shred with the loaded anagramming gun: - say "The gun fires ruggedly into the shred, which shatters and then reforms as a herd. Cows, goats, and sheep, all mingled together and furious to be thus manifested without a shepherd. + say "The gun fires ruggedly into the shred, which shatters and then reforms as some herds. Cows, goats, and sheep, all mingled together and furious to be thus manifested without a shepherd. Something spooks the herds [--] not surprising, as there is scarcely enough room here for them to move. The cows try to go one direction, the goats another, and [we] [are] dragged underhoof."; end the story saying "That was unwise"; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Schedule and Time.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Schedule and Time.i7x index 2c8db0e3..c9e2c231 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Schedule and Time.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Schedule and Time.i7x @@ -197,9 +197,6 @@ Seeking transport is a scene. Seeking transport begins when playing to plan ends When seeking transport ends: now the farmer is nowhere; now the farmer's stall is nowhere; [We want to give the sense of change here, and also get the farmer out of the way before he can be transformed into a FAME abstraction.] - repeat with item running through quips in quip-repository: - if item is a location-questioning quip and item is not where there seems arbot: - now item is nowhere; now the current daytime is mid afternoon; assign "Ask people around here if they've seen Slango"; say "...and... Slango is not here. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tests.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tests.i7x index 5f32b199..cef79e71 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tests.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tests.i7x @@ -487,35 +487,35 @@ After printing the name of something (called N) while listing longs: otherwise: say " (strong)" -Understand "list noisy" as listing noisy. Listing noisy is an action out of world. +Understand "list noisy" as listing noisy. Listing noisy is an action out of world. Carry out listing noisy: let N be the list of noisy things; sort N; say "[N]". -Understand "list cat 5" as listing category five. Listing category five is an action out of world. +Understand "list cat 5" as listing category five. Listing category five is an action out of world. Carry out listing category five: let N be the list of edible things which are not vegetables; sort N; say "[N]". -Understand "list liquid" as listing liquid. Listing liquid is an action out of world. +Understand "list liquid" as listing liquid. Listing liquid is an action out of world. Carry out listing liquid: let N be the list of fluid things; sort N; say "[N]". -Understand "list edible" as listing edible. Listing edible is an action out of world. +Understand "list edible" as listing edible. Listing edible is an action out of world. Carry out listing edible: let N be the list of edible things; sort N; say "[N]". -Understand "list uncontained" as listing uncontained. Listing uncontained is an action out of world. +Understand "list uncontained" as listing uncontained. Listing uncontained is an action out of world. Carry out listing uncontained: let N be the list of uncontained fluid things; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tools.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tools.i7x index f7e7e4da..171a4ba6 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tools.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Tools.i7x @@ -109,36 +109,33 @@ After printing the name of the small knob: Sanity-check doing something to the small knob: now the noun is the letter-remover device. -To expand X-remover-string: - replace the text " [current setting of the letter-remover]-remover" in player-command-substitute with " letter-remover"; - replace the regular expression "^[current setting of the letter-remover]-remove " in player-command-substitute with "letter-remove ". - -A first command-string altering rule (this is the implicitly change letter-remover setting rule): +A first before processing a command rule (this is the implicitly change letter-remover setting rule): now the letter-remover is static; - let N be player-command-substitute; - if N matches the regular expression ".-remove": - if N matches the regular expression "(.*) (.)-remover (.)*": - replace the regular expression "(.*) (.)-remover (.)*" in N with "\2"; - otherwise if N matches the regular expression "(.*) (.)-remover": - replace the regular expression "(.*) (.)-remover" in N with "\2"; - otherwise: - replace the regular expression "(.)-remove.*" in N with "\1"; + let C be the substituted form of the player's command; + if C matches the regular expression "\b.-remove": + let N be "[C]"; + let pre be "[C]"; + let post be "[C]"; + replace the regular expression ".*?\b(.)-remove.*" in N with "\1"; + replace the regular expression "(.*?)\b.-remove.*" in pre with "\1"; + replace the regular expression ".*?\b.-remove(.*)" in post with "\1"; + now C is "[pre]letter-remove[post]"; if the current setting of the letter-remover exactly matches the text N: - expand X-remover-string; + change the text of the player's command to C; make no decision; if the number of characters in N is greater than 1: make no decision; + unless N matches the regular expression "": + say "Only the 26 letters of the English alphabet are available to the letter-remover."; + reject the player's command; if the letter-remover is in a closed backpack: silently try opening the backpack; if the backpack is closed: - stop the action; + reject the player's command; if the player can touch the letter-remover: - unless N matches the regular expression "": - say "Only the 26 letters of the English alphabet are available to the letter-remover."; - parsing fails; now the current setting of the letter-remover is N; now the letter-remover is changing; - expand X-remover-string; + change the text of the player's command to C; otherwise: say "[run paragraph on]"; @@ -163,7 +160,26 @@ Check vaguely setting: Instead of vaguely setting the letter-remover: say "You have to set it to a specific letter, as in SET [letter-remover] TO X." -Understand "set [letter-remover device] to [text]" or "tune [letter-remover device] to [text]" or "turn [letter-remover device] to [text]" as tuning it to. [Understand "set [something] to [text]" as tuning it to.] Tuning it to is an action applying to one carried thing and one topic. +Understand "set [something] to" as objectlessly setting. Objectlessly setting is an action applying to one thing. + +Check objectlessly setting: + say "I don't understand what to set [the noun] to." instead. + +Instead of objectlessly setting the letter-remover: + say "Only the 26 letters of the English alphabet are available to the letter-remover." + +Include (- +[ WORD_TOKEN ; + if(NextWordStopped() == -1) return GPR_FAIL; + consult_from = wn-1; + consult_words = 1; + return GPR_PREPOSITION; +]; +-). + +The Understand token word translates into I6 as "WORD_TOKEN". + +Understand "set [letter-remover device] to [word]" or "tune [letter-remover device] to [word]" or "turn [letter-remover device] to [word]" as tuning it to. [Understand "set [something] to [word]" as tuning it to.] Tuning it to is an action applying to one carried thing and one topic. Check tuning it to: if the noun is not the letter-remover device, say "[The noun] cannot be tuned." instead. @@ -179,8 +195,9 @@ Check tuning it to: Carry out tuning it to: now the current setting of the letter-remover device is the topic understood. + Report tuning it to: - say "You flick our thumb over the small knob: [we] now have [a-an letter-remover device]." + say "[We] flick our thumb over the small knob: [we] now have [a-an letter-remover device]." Report tuning the letter-remover to something for the third time: say "[first custom style][bracket]You can also tune the device just by using another name for it: referring to the device as, for instance, an N-remover will automatically set it to n.[close bracket][roman type][paragraph break]" @@ -257,7 +274,8 @@ Setting action variables for waving the letter-remover device at an object which now letter absence is true; otherwise: let starting text be the printed name of second noun; - now the second noun is seen; + if the second noun is a thing: + now the second noun is seen; now starting text is starting text in lower case; if the second noun is yourself: now starting text is "alexandra"; @@ -508,7 +526,7 @@ Chapter 3 - The T-inserter The T-inserter machine is a fixed in place enterable container in the Sensitive Equipment Testing Room. The initial appearance is "At the cen[ter] of the room is a gleaming new T-inserter Machine[if the machine is non-empty], currently containing [a random thing in the T-inserter machine][end if][one of]. This is a state of the art device: letter removal has been well understood for decades, but insertion is much more dangerous and difficult, fraught with ambiguity[or][stopping]." The description is "Made of brushed steel, it resembles an industrial espresso machine, with a space in which to insert items. A dozen small nozzles poke into this space, and the grate beneath is ready to drain off any superfluity of T-ness. There is a tiny brass plate near the base of the machine." -Understand "space" and "grate" and "inserter" as the machine. The carrying capacity of the T-inserter Machine is 1. +Understand "space" and "grate" and "inserter" and "t inserter" as the machine. The carrying capacity of the T-inserter Machine is 1. The brass plate is part of the machine. Understand "base" as the brass plate. The description is "DENTAL CONSONANTS LTD [--] ABSOLUTELY NO PALATALS OR LABIALS [--] GUARANTEED". @@ -637,11 +655,19 @@ Report teeing something: set pronouns from the goal-object; abide by the dangerous construction rules for the goal-object instead. +T-inserting is an action applying to one thing. Understand "insert t in/into [thing]" as t-inserting. + +Instead of t-inserting: + if the T-inserter Machine is in location: + try inserting noun into t-inserter; + otherwise: + say "[We] have no obvious way of inserting T into [the noun]." + Test it-construction with "autoupgrade / wave a-remover at pita / wave p-remover at pit / wave t-remover at it / put i in t-inserter / get it / wave t-remover at it / put i in t-inserter" holding the pita in the Sensitive Equipment Testing Room. Chapter 4 - The Synthesizer -The plexiglas case is a thing in the Language Studies Seminar Room. It is enterable, transparent, closed, openable, lockable, and locked. It is fixed in place. The initial appearance is "A massive plexiglas case takes up one corner of the room." The description is "The case is made of very thick protective plastic on a metal frame[if the screws are part of the plexiglas case and the plexiglas case is lockable]. It is thoroughly locked shut; I don't think [we][']ll have any luck with normal forms of approach. However, plexiglas is a cuttable substance with the right tools, and then there are the screws at the back[otherwise if the plexiglas case is not lockable]. The lid has been compromised by a saw, and the case is now permanenty open[end if]." +The plexiglas case is a thing in the Language Studies Seminar Room. It is enterable, transparent, closed, openable, lockable, and locked. It is fixed in place. The initial appearance is "A massive plexiglas case takes up one corner of the room." The description is "The case is made of very thick protective plastic on a metal frame[if the screws are part of the plexiglas case and the plexiglas case is lockable]. It is thoroughly locked shut; I don't think [we][']ll have any luck with normal forms of approach. However, plexiglas is a cuttable substance with the right tools, and then there are the screws at the back[otherwise if the plexiglas case is not lockable]. The lid has been compromised by a saw, and the case is now permanently open[end if]." Test plexibug with "tutorial off / get plexiglas" in the Language Studies Seminar Room. @@ -1210,6 +1236,33 @@ But I have to say, you were right: the scope neither beeps nor blatts. [The acto First carry out looking at the inscription through an authentication scope: say "[The second noun] begins to whirr and whirr, as though something inside has caught in an unresolvable loop. After a very long time, it whirrs down again without any noise of rejection or acceptance." instead. +Report switching on a computer (this is the new computers make a noise on starting rule): + say "[The startup noise of the noun][paragraph break]" (A); + let target screen be a random screen that is part of the noun; + let player-wears-monocle be false; + if the player is wearing the monocle: + now player-wears-monocle is true; + now the player carries the monocle; + try examining the target screen; + if player-wears-monocle is true: + now the player wears the monocle; + stop the action. + +The new computers make a noise on starting rule is listed instead of the computers make a noise on starting rule in the report switching on rulebook. + +After examining a switched on computer (this is the new report software when examining a functioning computer rule): + let target screen be a random screen that is part of the noun; + let player-wears-monocle be false; + if the player is wearing the monocle: + now player-wears-monocle is true; + now the player carries the monocle; + try examining the target screen; + if player-wears-monocle is true: + now the player wears the monocle; + continue the action. + +The new report software when examining a functioning computer rule is listed instead of the report software when examining a functioning computer rule in the after rulebook. + Chapter 8 - The Origin Paste A thing can be disguised or undisguised. A thing is usually undisguised. @@ -1243,7 +1296,9 @@ Instead of smelling the player: say "[We] smell of lavender. It's not as bad a reek as it was earlier, though. No one would think it was anything but soap." Sanity-check putting the origin paste on something when the origin paste is in a closed backpack: - try opening the backpack. + try opening the backpack; + if the backpack is closed: + stop the action. Sanity-check putting the origin paste on the restoration gel: try putting the restoration gel on the origin paste instead. @@ -1453,7 +1508,9 @@ Before doing something when the noun is the tube or the second noun is the tube: say "[one of]Unfortunately, there's hardly any gel remaining in the tube.[or]There isn't enough gel remaining in the little tube for use.[at random]" instead. Sanity-check putting the restoration gel on something when the tub is in a closed backpack: - try opening the backpack. + try opening the backpack; + if the backpack is closed: + stop the action. Before inserting something (called the source) into something gel-related (called the target): unless the source is gel-related: [Things like "put gel in tub" are dealt with elsewhere] @@ -1475,7 +1532,7 @@ Sanity-check putting the restoration gel on something irretrievable: Before putting the restoration gel on something which is in a container (called the box): if the second noun is proffered by an uncontained fluid thing (called the liquid): if the number of things in the box is greater than 1 or the number of things proffered by the second noun is greater than 1 and the box is not the synthesizer: - say the liquid would make a mess in the box instead. + say the liquid would make a mess in the box instead. Before putting the restoration gel on something which is enclosed by the backpack: if the backpack is closed: @@ -1808,7 +1865,10 @@ Check shooting something with the loaded anagramming gun: add the item to the possibles list; [* We make a list because otherwise, for any set of anagrammed objects in the repository, we will always just swap back and forth between the first two that are implemented and never get to the others.] let max be the number of entries in the possibles list; if max is 0: - say "The gun fires ruggedly into [the noun], but is unable to make anything interesting out of [the initial key]. [The noun] [recoalesce] into [their] original form." instead; + if the noun is the player: + say "There is a momentary splitting sensation as the gun tries to make something interesting out of [the initial key]. [We] reacoalesce into our original form." instead; + otherwise: + say "The gun fires ruggedly into [the noun], but is unable to make anything interesting out of [the initial key]. [The noun] [recoalesce] into [their] original form." instead; otherwise: now detritus is entry max of the possibles list. @@ -1886,7 +1946,7 @@ Sanity-check shooting something irretrievable with the restoration-gel rifle: Before shooting something which is in a container (called the box) with the restoration-gel rifle: if the noun is proffered by an uncontained fluid thing (called the liquid): if the number of things in the box is greater than 1 or the number of things proffered by the noun is greater than 1 and the box is not the synthesizer: - say the liquid would make a mess in the box instead. + say the liquid would make a mess in the box instead. [Because it's possible to change something into an object that becomes fixed in place in the backpack, or too heavy to move...] @@ -2319,7 +2379,7 @@ Chapter 16 - The Cryptolock aka Vowel Rotator The puzzle here is completely different depending on whether you're playing hard mode or easy mode.] -The cryptolock is a scenery enterable container in the Generator Room. It is fixed in place. The printed name of the cryptolock is "brushed steel bucket". Understand "brushed" or "steel" or "container" or "bucket" as the cryptolock. +The cryptolock is a scenery enterable container in the Generator Room. It is fixed in place. The printed name of the cryptolock is "brushed steel bucket". Understand "brushed" or "steel" or "container" or "bucket" as the cryptolock. The cryptoswitch is a device. The cryptoswitch is part of the cryptolock. The printed name of the cryptoswitch is "reverse switch". Understand "reverse" or "switch" as the cryptoswitch. diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Utilitarian Inventory.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Utilitarian Inventory.i7x index e0bf5146..16aee51c 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Utilitarian Inventory.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/Utilitarian Inventory.i7x @@ -275,9 +275,9 @@ Include (- ((+ Table of Inventory Ordering +)-->col)-->(i+COL_HSIZE) = TABLE_NOVALUE; } - ! if we found no value, return nothing. - if (v == TABLE_NOVALUE) return nothing; - else return v; + ! if we found no value, return nothing. + if (v == TABLE_NOVALUE) return nothing; + else return v; ]; -). @@ -295,8 +295,8 @@ Include (- [ IsInventoryListable p par prop; if (p == (+ restoration gel +) or nothing) rfalse; ! It is the restoration gel if (p provides component_parent && p.component_parent) rfalse; ! It is part of something - par = parent(p); - if (par ~= (+ player +) && par ~= nothing && par has animate) rfalse; ! It is worn by an animal + par = parent(p); + if (par ~= (+ player +) && par ~= nothing && par has animate) rfalse; ! It is worn by an animal rtrue; ]; diff --git a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/World Model Tweaks.i7x b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/World Model Tweaks.i7x index dfc91830..36c21e43 100644 --- a/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/World Model Tweaks.i7x +++ b/Counterfeit Monkey.materials/Extensions/Counterfeit Monkey/World Model Tweaks.i7x @@ -75,12 +75,31 @@ The Smarter Parser simplify punctuation rule is not listed in any rulebook. The scandalous standardize swears rule is not listed in any rulebook. +The standardize apostrophes rule is not listed in any rulebook. + +A first after reading a command rule (this is the new standardize apostrophes rule): + if the player's command includes "what's": + replace the matched text with "what is"; + if the player's command includes "he's": + replace the matched text with "he is"; + if the player's command includes "it's": + replace the matched text with "it is"; + if the player's command includes "'m ": + replace the matched text with " am "; + if the player's command includes "'re ": + replace the matched text with " are "; + if the player's command includes "'ll ": + replace the matched text with " will "; + if the player's command includes "'ve ": + replace the matched text with " have "; + When play begins (this is the change smarter parse messages rule): choose row with SP rule of asking unparseable questions rule in the Table of Smarter Parser Messages; now the message entry is "[one of]If you're trying to converse with other characters, the suggestions in the text provide possible phrasings; so if you read 'I might ask about lentils.', you might phrase your command ASK ABOUT LENTILS. Introducing other words or variant phrasings that weren't part of the suggestion may confuse the game. Alternatively, if you just want to take an action in the game world, try giving a direct command, such as EXAMINE THE ASP or WAVE THE P-REMOVER AT THE PHONEY[or]That does not seem to be a topic of conversation at the moment[stopping]." + Section 2 - Additional Parsing Lines for USE [Wherever possible, we want USE THING to fall through to a plausible default behavior, which we do with a bunch of additional grammar lines:] @@ -172,9 +191,9 @@ This is the sanity-check stage rule: The sanity-check stage rule is listed before the before stage rule in the action-processing rules. To decide whether (item - a thing) must be touched: - if the item is the noun and the action requires a touchable noun, yes; - if the item is the second noun and the action requires a touchable second noun, yes; - no. + if the item is the noun and the action requires a touchable noun, yes; + if the item is the second noun and the action requires a touchable second noun, yes; + no. An accessibility rule (this is the no touching NPC stuff rule): if the touch-goal is enclosed by someone (called the owner) who is not the actor and the touch-goal must be touched: @@ -897,7 +916,7 @@ Instead of going nowhere when the noun is not fronted by a facade in the locatio carry out the listing exits activity; now suppress-exit-listing is false. -[The parser would sometimes misinterpret commands such as GO TO CINEMA as FIND CINEMA-EXTERIOR and leave the player in from of the cinema rather than inside it. This gets around this by making sure that we always try to walk through any facade that we are "finding".] +[The parser would sometimes misinterpret commands such as GO TO CINEMA as FIND CINEMA-EXTERIOR and leave the player in front of the cinema rather than inside it. This gets around this by making sure that we always try to walk through any facade that we are "finding".] Instead of finding a facade: let the-direction be a random direction fronted by the noun; @@ -946,22 +965,20 @@ Include Facing by Emily Short. Instead of examining a direction: try facing the noun. -Rule for distantly describing a proper-named room (called target) (this is the new distant description rule): +Rule for distantly describing a room (called target) (this is the new distant description rule): say "[We] make out [the target] that way." The default distant description rule is not listed in any rulebook. -Rule for distantly describing a room (called target): - let N be the printed name of the target; - unless the target is proper-named: - now N is N in lower case; - say "[We] can make out [N] that way." - Rule for distantly describing a room (called target) which encloses someone when the location is indoors: - let N be the printed name of the target; - unless the target is proper-named: - now N is N in lower case; - say "That way [we] can see [N], in which [is-are a list of people enclosed by the target]." + say "That way [we] can see [the target], in which [is-are a list of people enclosed by the target]." + +Check looking toward a room (this is the new can't see through closed door rule): + now the occluding door is the door direction faced from the location; + if the occluding door is a door and the occluding door is closed and the occluding door is not transparent: + say "[We] can't see that way because [the occluding door] [are] closed." instead. + +The new can't see through closed door rule is listed instead of the can't see through closed door rule in the check looking toward rules. When play begins (this is the nothing-to-see-that-way rule): now nothing-to-see-that-way is "[We] can't see anything interesting in that direction." @@ -1044,7 +1061,7 @@ Report facing when the location is indoors: say "There's nothing remarkable [noun] there." instead; say "There's no door in that direction." instead. -The sky is a distant backdrop. It screens up. The sun is part of the sky. The description of the sky is "[sky-description]". The description of the sun is "[sun-description]". +The sky is a distant backdrop. It screens up. The sun is a distant part of the sky. The description of the sky is "[sky-description]". The description of the sun is "[sun-description]". [When play begins (this is the move backdrops to the outdoors rule): move the sky backdrop to all outdoors rooms.] @@ -1396,7 +1413,7 @@ Instead of going by car when the location is offroad: move protesters backdrop to all roads in Busy Streets; move traffic backdrop to all roads in Busy Streets.] -Some protesters are a backdrop. Understand "student" or "students" as the protesters. The description is "Hundreds of people pack the sidewalk, wearing slogans and carrying angry signs." +Some protesters are a backdrop. Understand "student" or "students" as the protesters. The description is "Hundreds of people pack the sidewalk, wearing slogans and carrying [angry signs]." A description-concealing rule when the location is High Street (this is the hide protesters rule): rapidly set all contents of the protesters not marked for listing. @@ -1689,6 +1706,9 @@ Sanity-check washing a person who is not the player: say "[The noun] could probably use a wash, but on the whole I don't see the point." instead; say "Bathing people other than myself is kind of over-intimate." instead. +Instead of entering a bath: + try bathing. + A public restroom is a kind of room. A toilet-stall is a kind of container. The printed name of a toilet-stall is always "toilet stall". Rule for printing the plural name of a toilet-stall: say "toilet stalls". Understand "stall" as a toilet-stall. Understand "stalls" as the plural of a toilet-stall. A toilet-stall is always fixed in place and enterable and openable. @@ -2017,8 +2037,7 @@ The description of a keyboard is usually "Arranged in the Dvorak layout preferre When play begins (this is the search engines rule): repeat with item running through search engines: - now the results-found response of item is "The search turns up the following results:"; - now the description of the item is "[We] can type search terms to look for data records." + now the results-found response of item is "The search turns up the following results:". Chapter 2 - Substances diff --git a/Counterfeit Monkey.materials/Extensions/Daniel Stelzer/Before Processing a Command.i7x b/Counterfeit Monkey.materials/Extensions/Daniel Stelzer/Before Processing a Command.i7x new file mode 100644 index 00000000..696c7da6 --- /dev/null +++ b/Counterfeit Monkey.materials/Extensions/Daniel Stelzer/Before Processing a Command.i7x @@ -0,0 +1,491 @@ +Version 2/250424 of Before Processing a Command by Daniel Stelzer begins here. + +Book - I7 Code + +Before processing a command is a rulebook. + +Book - I6 Code + +Chapter - Default (for use without Unified Glulx Input by Andrew Plotkin) + +Include (- + if (held_back_mode) { + held_back_mode = false; wn = hb_wn; + if (verb_wordnum > 0) i = WordAddress(verb_wordnum); else i = WordAddress(1); + j = WordAddress(wn); + if (i<=j) for (: i0 = ' '; + i = NextWord(); + if (i == AGAIN1__WD or AGAIN2__WD or AGAIN3__WD) { + ! Delete the words "then again" from the again buffer, + ! in which we have just realised that it must occur: + ! prevents an infinite loop on "i. again" + + i = WordAddress(wn-2)-buffer; + if (wn > num_words) j = INPUT_BUFFER_LEN-1; + else j = WordAddress(wn)-buffer; + for (: ii = ' '; + } + + VM_Tokenise(buffer, parse); + jump ReParse; + } + + .ReType; + + cobj_flag = 0; + actors_location = ScopeCeiling(player); + BeginActivity(READING_A_COMMAND_ACT); if (ForActivity(READING_A_COMMAND_ACT)==false) { + Keyboard(buffer,parse); + num_words = WordCount(); players_command = 100 + num_words; + } if (EndActivity(READING_A_COMMAND_ACT)) jump ReType; + + .ReParse; + + parser_inflection = name; + + ! Initially assume the command is aimed at the player, and the verb + ! is the first word + + num_words = WordCount(); players_command = 100 + num_words; + wn = 1; inferred_go = false; + + #Ifdef LanguageToInformese; + LanguageToInformese(); + ! Re-tokenise: + VM_Tokenise(buffer,parse); + #Endif; ! LanguageToInformese + + num_words = WordCount(); players_command = 100 + num_words; + + ! CHANGED DMS + FollowRulebook((+ before processing a command +)); + if(RulebookFailed()) jump ReType; + ! END CHANGE + + k=0; + #Ifdef DEBUG; + if (parser_trace >= 2) { + print "[ "; + for (i=0 : i(i*2 + 1); + #Ifnot; ! TARGET_GLULX + j = parse-->(i*3 + 1); + #Endif; ! TARGET_ + k = WordAddress(i+1); + l = WordLength(i+1); + print "~"; for (m=0 : mm; print "~ "; + + if (j == 0) print "?"; + else { + #Ifdef TARGET_ZCODE; + if (UnsignedCompare(j, HDR_DICTIONARY-->0) >= 0 && + UnsignedCompare(j, HDR_HIGHMEMORY-->0) < 0) + print (address) j; + else print j; + #Ifnot; ! TARGET_GLULX + if (j->0 == $60) print (address) j; + else print j; + #Endif; ! TARGET_ + } + if (i ~= num_words-1) print " / "; + } + print " ]^"; + } + #Endif; ! DEBUG + verb_wordnum = 1; + actor = player; + actors_location = ScopeCeiling(player); + usual_grammar_after = 0; + + .AlmostReParse; + + scope_token = 0; + action_to_be = NULL; + + ! Begin from what we currently think is the verb word + + .BeginCommand; + + wn = verb_wordnum; + verb_word = NextWordStopped(); + + ! If there's no input here, we must have something like "person,". + + if (verb_word == -1) { + best_etype = STUCK_PE; jump GiveError; + } + if (verb_word == comma_word) { + best_etype = COMMABEGIN_PE; jump GiveError; + } + + ! Now try for "again" or "g", which are special cases: don't allow "again" if nothing + ! has previously been typed; simply copy the previous text across + + if (verb_word == AGAIN2__WD or AGAIN3__WD) verb_word = AGAIN1__WD; + if (verb_word == AGAIN1__WD) { + if (actor ~= player) { + best_etype = ANIMAAGAIN_PE; + jump GiveError; + } + #Ifdef TARGET_ZCODE; + if (buffer3->1 == 0) { + PARSER_COMMAND_INTERNAL_RM('D'); new_line; + jump ReType; + } + #Ifnot; ! TARGET_GLULX + if (buffer3-->0 == 0) { + PARSER_COMMAND_INTERNAL_RM('D'); new_line; + jump ReType; + } + #Endif; ! TARGET_ + for (i=0 : ii = buffer3->i; + VM_Tokenise(buffer,parse); + num_words = WordCount(); players_command = 100 + num_words; + jump ReParse; + } + + ! Save the present input in case of an "again" next time + + if (verb_word ~= AGAIN1__WD) + for (i=0 : ii = buffer->i; + + if (usual_grammar_after == 0) { + j = verb_wordnum; + i = RunRoutines(actor, grammar); + #Ifdef DEBUG; + if (parser_trace >= 2 && actor.grammar ~= 0 or NULL) + print " [Grammar property returned ", i, "]^"; + #Endif; ! DEBUG + + if ((i ~= 0 or 1) && (VM_InvalidDictionaryAddress(i))) { + usual_grammar_after = verb_wordnum; i=-i; + } + + if (i == 1) { + parser_results-->ACTION_PRES = action; + parser_results-->NO_INPS_PRES = 0; + parser_results-->INP1_PRES = noun; + parser_results-->INP2_PRES = second; + if (noun) parser_results-->NO_INPS_PRES = 1; + if (second) parser_results-->NO_INPS_PRES = 2; + rtrue; + } + if (i ~= 0) { verb_word = i; wn--; verb_wordnum--; } + else { wn = verb_wordnum; verb_word = NextWord(); } + } + else usual_grammar_after = 0; +-) instead of "Parser Letter A" in "Parser.i6t". + +Chapter - UGI (for use with Unified Glulx Input by Andrew Plotkin) + +Section - Replacement (in place of Section - Parser__parse in Unified Glulx Input by Andrew Plotkin) + +Include (- + parser_results_set = false; + + if (held_back_mode) { + held_back_mode = false; wn = hb_wn; + if (verb_wordnum > 0) i = WordAddress(verb_wordnum); else i = WordAddress(1); + j = WordAddress(wn); + if (i<=j) for (: i0 = ' '; + i = NextWord(); + if (i == AGAIN1__WD or AGAIN2__WD or AGAIN3__WD) { + ! Delete the words "then again" from the again buffer, + ! in which we have just realised that it must occur: + ! prevents an infinite loop on "i. again" + + i = WordAddress(wn-2)-buffer; + if (wn > num_words) j = INPUT_BUFFER_LEN-1; + else j = WordAddress(wn)-buffer; + for (: ii = ' '; + } + + VM_Tokenise(buffer, parse); + jump ReParse; + } + + .ReType; + + cobj_flag = 0; + actors_location = ScopeCeiling(player); + + BeginActivity(READING_A_COMMAND_ACT); if (ForActivity(READING_A_COMMAND_ACT)==false) { + .ReParserInput; + num_words = 0; players_command = 100; + ParserInput( (+ primary context +), inputevent, buffer, parse); + if (input_rulebook_data-->IRDAT_RB_CURRENT ~= 0) { + print "(BUG) Reading-a-command called recursively!^"; + } + parser_results_set = false; + InputRDataInit( (+ handling input rules +), inputevent, buffer, parse); + FollowRulebook((+ handling input rules +), (+ primary context +), true); + InputRDataFinal(); + if (RulebookFailed()) { + jump ReParserInput; + } + if (inputevent-->0 == evtype_LineInput) { + num_words = WordCount(); players_command = 100 + num_words; + } + if (parser_results_set && parser_results-->ACTION_PRES ~= 0) { + ! If we're not parsing, reading a command shouldn't show the input. + num_words = 0; players_command = 100; + } + } if (EndActivity(READING_A_COMMAND_ACT)) jump ReType; + + .ReParse; + + if (parser_results_set && parser_results-->ACTION_PRES ~= 0) { + ! The rulebook gave us an explicit action. + rtrue; + } + + num_words = 0; players_command = 100; + if (inputevent-->0 == evtype_LineInput) { + num_words = WordCount(); players_command = 100 + num_words; + } + + if (num_words == 0) { + ! Either this was a blank line or it was not line input at all. Reject it. + ! (Blank line input could reach this point if the PASS_BLANK_INPUT_LINES option is set.) + EmptyInputParserError(); + jump ReType; + } + + parser_inflection = name; + + ! Initially assume the command is aimed at the player, and the verb + ! is the first word + + wn = 1; inferred_go = false; + + #Ifdef LanguageToInformese; + LanguageToInformese(); + ! Re-tokenise: + VM_Tokenise(buffer,parse); + #Endif; ! LanguageToInformese + + num_words = WordCount(); players_command = 100 + num_words; + + ! CHANGED DMS + FollowRulebook((+ before processing a command +)); + if(RulebookFailed()) jump ReType; + ! END CHANGE + + k=0; + #Ifdef DEBUG; + if (parser_trace >= 2) { + print "[ "; + for (i=0 : i(i*2 + 1); + #Ifnot; ! TARGET_GLULX + j = parse-->(i*3 + 1); + #Endif; ! TARGET_ + k = WordAddress(i+1); + l = WordLength(i+1); + print "~"; for (m=0 : mm; print "~ "; + + if (j == 0) print "?"; + else { + #Ifdef TARGET_ZCODE; + if (UnsignedCompare(j, HDR_DICTIONARY-->0) >= 0 && + UnsignedCompare(j, HDR_HIGHMEMORY-->0) < 0) + print (address) j; + else print j; + #Ifnot; ! TARGET_GLULX + if (j->0 == $60) print (address) j; + else print j; + #Endif; ! TARGET_ + } + if (i ~= num_words-1) print " / "; + } + print " ]^"; + } + #Endif; ! DEBUG + verb_wordnum = 1; + actor = player; + actors_location = ScopeCeiling(player); + usual_grammar_after = 0; + + .AlmostReParse; + + scope_token = 0; + action_to_be = NULL; + + ! Begin from what we currently think is the verb word + + .BeginCommand; + + wn = verb_wordnum; + verb_word = NextWordStopped(); + + ! If there's no input here, we must have something like "person,". + + if (verb_word == -1) { + best_etype = STUCK_PE; jump GiveError; + } + if (verb_word == comma_word) { + best_etype = COMMABEGIN_PE; jump GiveError; + } + + ! Now try for "again" or "g", which are special cases: don't allow "again" if nothing + ! has previously been typed; simply copy the previous text across + + if (verb_word == AGAIN2__WD or AGAIN3__WD) verb_word = AGAIN1__WD; + if (verb_word == AGAIN1__WD) { + if (actor ~= player) { + best_etype = ANIMAAGAIN_PE; + jump GiveError; + } + #Ifdef TARGET_ZCODE; + if (buffer3->1 == 0) { + PARSER_COMMAND_INTERNAL_RM('D'); new_line; + jump ReType; + } + #Ifnot; ! TARGET_GLULX + if (buffer3-->0 == 0) { + PARSER_COMMAND_INTERNAL_RM('D'); new_line; + jump ReType; + } + #Endif; ! TARGET_ + for (i=0 : ii = buffer3->i; + VM_Tokenise(buffer,parse); + num_words = WordCount(); players_command = 100 + num_words; + jump ReParse; + } + + ! Save the present input in case of an "again" next time + + if (verb_word ~= AGAIN1__WD) + for (i=0 : ii = buffer->i; + + if (usual_grammar_after == 0) { + j = verb_wordnum; + i = RunRoutines(actor, grammar); + #Ifdef DEBUG; + if (parser_trace >= 2 && actor.grammar ~= 0 or NULL) + print " [Grammar property returned ", i, "]^"; + #Endif; ! DEBUG + + if ((i ~= 0 or 1) && (VM_InvalidDictionaryAddress(i))) { + usual_grammar_after = verb_wordnum; i=-i; + } + + if (i == 1) { + parser_results-->ACTION_PRES = action; + parser_results-->NO_INPS_PRES = 0; + parser_results-->INP1_PRES = noun; + parser_results-->INP2_PRES = second; + if (noun) parser_results-->NO_INPS_PRES = 1; + if (second) parser_results-->NO_INPS_PRES = 2; + rtrue; + } + if (i ~= 0) { verb_word = i; wn--; verb_wordnum--; } + else { wn = verb_wordnum; verb_word = NextWord(); } + } + else usual_grammar_after = 0; + +-) instead of "Parser Letter A" in "Parser.i6t". + +Before Processing a Command ends here. + +---- DOCUMENTATION ---- + +This extension adds a new rulebook, "before processing a command", which is run before each iteration of the parser. In other words, if the player enters a command like "N. E. JUMP", this rulebook will run once with the player's command set to "N. E. JUMP", once with it set to "E. JUMP", and once with it set to "JUMP". + +This is intended to avoid many of the headaches created by "after reading a command" rules, and acts similarly to them in as many respects as possible. In particular, it also allows you to "reject the player's command", which returns control to the keyboard, skipping any remaining commands. + +Note that this is a single rulebook, not an activity. There are no "for processing a command" or "after processing a command" rules. + +Example: * Echo - A basic demonstration of the extension. + +"Echo" + +Include Before Processing a Command by Daniel Stelzer. + +Before processing a command: say "[player's command]". + +Lab is a room. + +Test me with "wait / jump then wait then wave / wave. jump". + +Example: *** The Riddle of the Labyrinth - Cancelling a series of commands when something dramatic happens in the world. + +"The Riddle of the Labyrinth" + +Include Before Processing a Command by Daniel Stelzer. + +[We want to interrupt ongoing commands if something dramatic has happened since the last time the player typed something on the keyboard. + +We handle this with a flag: it gets set to false whenever the player has the opportunity to type, and set to true whenever dramatic changes happen in the world. + +If the flag is true "before processing a command", then, we want to cancel all processing. This is where "reject the player's command" comes in.] + +The interruption flag is initially false. +Before reading a command: now the interruption flag is false. +Before processing a command when the interruption flag is true: + say "(Since something dramatic has happened, the remainder of your command---'[player's command]'---has been cut off.)[paragraph break]"; + now the interruption flag is false; + reject the player's command. + +To interrupt ongoing commands: + now the interruption flag is true. + +[Now we contrive a reason why the player would want to type a long sequence of commands on a single line, but might also get interrupted in the process. + +This is a sort of maze that was very popular in the early 80s, where every wrong step leads back to the starting location. The intended result is that you need to know the correct path in advance. But what usually happened instead was that players would map it by brute force.] + +Definition: a direction (called the way) is viable if the room-or-door (way) from the location is not nothing. +A maze is a kind of room. The printed name of a maze is "Labyrinth". The description of a maze is "Exits lead [list of viable directions]." + +Start is a maze. The description of Start is "You've chalked a big X on the floor here to mark your starting point. Exits lead [list of viable directions]." North of Start is Start. East of Start is Maze1. West of Start is Start. South of Start is Start. + +Maze1 is a maze. North of Maze1 is Maze2. East of Maze1 is Start. West of Maze1 is Start. South of Maze1 is Start. + +Maze2 is a maze. North of Maze2 is Maze3. East of Maze2 is Start. West of Maze2 is Start. South of Maze2 is Start. + +Maze3 is a maze. North of Maze3 is Start. East of Maze3 is Maze4. West of Maze3 is Start. South of Maze3 is Start. + +Maze4 is a maze. North of Maze4 is Start. East of Maze4 is Maze5. West of Maze4 is Start. South of Maze4 is Start. + +Maze5 is a maze. North of Maze5 is Start. East of Maze5 is Start. West of Maze5 is Start. South of Maze5 is Maze6. + +Maze6 is a maze. North of Maze6 is Start. East of Maze6 is Start. West of Maze6 is Maze7. South of Maze6 is Start. + +Maze7 is a maze. North of Maze7 is Start. East of Maze7 is Start. West of Maze7 is Start. South of Maze7 is Start. Southeast of Maze7 is End. + +End is a room. The description of End is "That last passage dropped you in a dead end with no exits. How can you escape now?" Northeast of End is nothing. + +[And our source of interruptions!] + +The Minotaur is a man. +Instead of jumping in the presence of the Minotaur: + say "You jump on the spot. The Minotaur is startled and flees!"; + now the Minotaur is nowhere. +Instead of doing anything in the presence of the Minotaur: + say "The Minotaur charges. The results are unfortunately too gory to describe in text."; + end the story saying "You have died". + +Every turn: + if a random chance of 1 in 5 succeeds: + move the Minotaur to the location; + say "The Minotaur lumbers into the room!"; + interrupt ongoing commands. + +[We don't really want to make the player brute-force the maze.] + +The player carries a clue. The description of the clue is "Instead of the traditional spool of thread, the king's daughter gave you this slip of paper. On the front it says: 'E. N. N. E. E. S. W. SE. Then say the magic word.' On the back it says: 'Jumping scares the Minotaur away.'" + +[And the final magic word. SAY XYZZY will, by default, map to "answering yourself that xyzzy".] + +Instead of answering yourself that a topic: + say "You cry out, '[topic understood]'! But there is no answer." + +[The correct path through the maze has drawn out this magic letter on the map.] + +Instead of answering yourself that "r" when the location is End: + say "As you call out the magic word, a hidden door swings open in the wall..."; + end the story finally saying "But what happens next?". diff --git a/Counterfeit Monkey.materials/Extensions/Daniel Stelzer/Subcommands.i7x b/Counterfeit Monkey.materials/Extensions/Daniel Stelzer/Subcommands.i7x index dee3400e..70079e71 100644 --- a/Counterfeit Monkey.materials/Extensions/Daniel Stelzer/Subcommands.i7x +++ b/Counterfeit Monkey.materials/Extensions/Daniel Stelzer/Subcommands.i7x @@ -1,96 +1,104 @@ -Subcommands by Daniel Stelzer begins here. +Version 3/250315 of Subcommands by Daniel Stelzer begins here. "Exposes the snippets referring to each noun." An object has a snippet called the subcommand. The subcommand property translates into I6 as "parsed_snippet". Include (- + Property parsed_snippet; Constant EmptySnippet = 100; +Global dont_inject_pronoun; + -) after "Definitions.i6t". Include (- + +! ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== +! Parser.i6t: Noun Domain +! ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== + [ NounDomain domain1 domain2 context dont_ask first_word i j k l answer_words marker snip; - #Ifdef DEBUG; - if (parser_trace >= 4) { - print " [NounDomain called at word ", wn, "^"; - print " "; - if (indef_mode) { - print "seeking indefinite object: "; - if (indef_type & OTHER_BIT) print "other "; - if (indef_type & MY_BIT) print "my "; - if (indef_type & THAT_BIT) print "that "; - if (indef_type & PLURAL_BIT) print "plural "; - if (indef_type & LIT_BIT) print "lit "; - if (indef_type & UNLIT_BIT) print "unlit "; - if (indef_owner ~= 0) print "owner:", (name) indef_owner; - new_line; - print " number wanted: "; - if (indef_wanted == INDEF_ALL_WANTED) print "all"; else print indef_wanted; - new_line; - print " most likely GNAs of names: ", indef_cases, "^"; - } - else print "seeking definite object^"; - } - #Endif; ! DEBUG - - match_length = 0; number_matched = 0; match_from = wn; - - SearchScope(domain1, domain2, context); - - #Ifdef DEBUG; - if (parser_trace >= 4) print " [ND made ", number_matched, " matches]^"; - #Endif; ! DEBUG - - wn = match_from+match_length; - ! === NEW === - if (match_length == 0) { - snip = EmptySnippet; - } else { - snip = 100 * match_from + match_length; - } - ! === END === - - ! If nothing worked at all, leave with the word marker skipped past the - ! first unmatched word... - - if (number_matched == 0) { wn++; rfalse; } - - ! Suppose that there really were some words being parsed (i.e., we did - ! not just infer). If so, and if there was only one match, it must be - ! right and we return it... - - if (match_from <= num_words) { - if (number_matched == 1) { - i=match_list-->0; - ! === NEW === - i.parsed_snippet = snip; - ! === END === - return i; - } - - ! ...now suppose that there was more typing to come, i.e. suppose that - ! the user entered something beyond this noun. If nothing ought to follow, - ! then there must be a mistake, (unless what does follow is just a full - ! stop, and or comma) - - if (wn <= num_words) { - i = NextWord(); wn--; - if (i ~= AND1__WD or AND2__WD or AND3__WD or comma_word - or THEN1__WD or THEN2__WD or THEN3__WD - or BUT1__WD or BUT2__WD or BUT3__WD) { - if (lookahead == ENDIT_TOKEN) rfalse; - } - } - } - - ! Now look for a good choice, if there's more than one choice... - - number_of_classes = 0; - - if (number_matched == 1) { - i = match_list-->0; + #Ifdef DEBUG; + if (parser_trace >= 4) { + print " [NounDomain called at word ", wn, "^"; + print " "; + if (indef_mode) { + print "seeking indefinite object: "; + if (indef_type & OTHER_BIT) print "other "; + if (indef_type & MY_BIT) print "my "; + if (indef_type & THAT_BIT) print "that "; + if (indef_type & PLURAL_BIT) print "plural "; + if (indef_type & LIT_BIT) print "lit "; + if (indef_type & UNLIT_BIT) print "unlit "; + if (indef_owner ~= 0) print "owner:", (name) indef_owner; + new_line; + print " number wanted: "; + if (indef_wanted == INDEF_ALL_WANTED) print "all"; else print indef_wanted; + new_line; + print " most likely GNAs of names: ", indef_cases, "^"; + } + else print "seeking definite object^"; + } + #Endif; ! DEBUG + + match_length = 0; number_matched = 0; match_from = wn; + + SearchScope(domain1, domain2, context); + + #Ifdef DEBUG; + if (parser_trace >= 4) print " [ND made ", number_matched, " matches]^"; + #Endif; ! DEBUG + + wn = match_from+match_length; + ! === NEW === + if (match_length == 0) { + snip = EmptySnippet; + } else { + snip = 100 * match_from + match_length; + } + ! === END === + + ! If nothing worked at all, leave with the word marker skipped past the + ! first unmatched word... + + if (number_matched == 0) { wn++; rfalse; } + + ! Suppose that there really were some words being parsed (i.e., we did + ! not just infer). If so, and if there was only one match, it must be + ! right and we return it... + + if (match_from <= num_words) { + if (number_matched == 1) { + i=match_list-->0; + ! === NEW === + i.parsed_snippet = snip; + ! === END === + return i; + } + + ! ...now suppose that there was more typing to come, i.e. suppose that + ! the user entered something beyond this noun. If nothing ought to follow, + ! then there must be a mistake, (unless what does follow is just a full + ! stop, and or comma) + + if (wn <= num_words) { + i = NextWord(); wn--; + if (i ~= AND1__WD or AND2__WD or AND3__WD or comma_word + or THEN1__WD or THEN2__WD or THEN3__WD + or BUT1__WD or BUT2__WD or BUT3__WD) { + if (lookahead == ENDIT_TOKEN) rfalse; + } + } + } + + ! Now look for a good choice, if there's more than one choice... + + number_of_classes = 0; + + if (number_matched == 1) { + i = match_list-->0; if (indef_mode == 1 && indef_type & PLURAL_BIT ~= 0) { if (context == MULTI_TOKEN or MULTIHELD_TOKEN or MULTIEXCEPT_TOKEN or MULTIINSIDE_TOKEN or @@ -101,11 +109,11 @@ Include (- EndActivity(DECIDING_WHETHER_ALL_INC_ACT, i); } } - } - if (number_matched > 1) { + } + if (number_matched > 1) { i = true; - if (number_matched > 1) - for (j=0 : j 1) + for (j=0 : jj, match_list-->(j+1)) == false) i = false; ! === NEW === @@ -116,52 +124,53 @@ Include (- (match_list-->(number_matched-1)).parsed_snippet = snip; ! === END === if (i) dont_infer = true; - i = Adjudicate(context); - if (i == -1) rfalse; - if (i == 1) rtrue; ! Adjudicate has made a multiple - ! object, and we pass it on - } - - ! If i is non-zero here, one of two things is happening: either - ! (a) an inference has been successfully made that object i is - ! the intended one from the user's specification, or - ! (b) the user finished typing some time ago, but we've decided - ! on i because it's the only possible choice. - ! In either case we have to keep the pattern up to date, - ! note that an inference has been made and return. - ! (Except, we don't note which of a pile of identical objects.) - - if (i ~= 0) { - ! === NEW === + i = Adjudicate(context); + if (i == -1) rfalse; + if (i == 1) rtrue; ! Adjudicate has made a multiple + ! object, and we pass it on + dont_inject_pronoun = true; ! See bug I7-2115 for discussion of this + } + + ! If i is non-zero here, one of two things is happening: either + ! (a) an inference has been successfully made that object i is + ! the intended one from the user's specification, or + ! (b) the user finished typing some time ago, but we've decided + ! on i because it's the only possible choice. + ! In either case we have to keep the pattern up to date, + ! note that an inference has been made and return. + ! (Except, we don't note which of a pile of identical objects.) + + if (i ~= 0) { + ! === NEW === i.parsed_snippet = snip; ! === END === - if (dont_infer) return i; - if (inferfrom == 0) inferfrom=pcount; - pattern-->pcount = i; - return i; - } + if (dont_infer) return i; + if (inferfrom == 0) inferfrom=pcount; + pattern-->pcount = i; + return i; + } if (dont_ask) { ! === NEW === if (match_length == 0) { (match_list-->0).parsed_snippet = EmptySnippet; - } else { + } else { (match_list-->0).parsed_snippet = 100 * match_from + match_length; - } + } ! === END === return match_list-->0; } - ! If we get here, there was no obvious choice of object to make. If in - ! fact we've already gone past the end of the player's typing (which - ! means the match list must contain every object in scope, regardless - ! of its name), then it's foolish to give an enormous list to choose - ! from - instead we go and ask a more suitable question... + ! If we get here, there was no obvious choice of object to make. If in + ! fact we've already gone past the end of the player's typing (which + ! means the match list must contain every object in scope, regardless + ! of its name), then it's foolish to give an enormous list to choose + ! from - instead we go and ask a more suitable question... - if (match_from > num_words) jump Incomplete; + if (match_from > num_words) jump Incomplete; - ! Now we print up the question, using the equivalence classes as worked - ! out by Adjudicate() so as not to repeat ourselves on plural objects... + ! Now we print up the question, using the equivalence classes as worked + ! out by Adjudicate() so as not to repeat ourselves on plural objects... BeginActivity(ASKING_WHICH_DO_YOU_MEAN_ACT); if (ForActivity(ASKING_WHICH_DO_YOU_MEAN_ACT)) jump SkipWhichQuestion; @@ -174,139 +183,141 @@ Include (- if (j) PARSER_CLARIF_INTERNAL_RM('A'); else PARSER_CLARIF_INTERNAL_RM('B'); - j = number_of_classes; marker = 0; - for (i=1 : i<=number_of_classes : i++ ) { - while (((match_classes-->marker) ~= i) && ((match_classes-->marker) ~= -i)) marker++; - k = match_list-->marker; + j = number_of_classes; marker = 0; + for (i=1 : i<=number_of_classes : i++ ) { + while (((match_classes-->marker) ~= i) && ((match_classes-->marker) ~= -i)) marker++; + k = match_list-->marker; - if (match_classes-->marker > 0) print (the) k; else print (a) k; + if (match_classes-->marker > 0) print (the) k; else print (a) k; - if (i < j-1) print ", "; - if (i == j-1) { + if (i < j-1) print ", "; + if (i == j-1) { #Ifdef SERIAL_COMMA; if (j ~= 2) print ","; - #Endif; ! SERIAL_COMMA - PARSER_CLARIF_INTERNAL_RM('H'); - } - } - print "?^"; + #Endif; ! SERIAL_COMMA + PARSER_CLARIF_INTERNAL_RM('H'); + } + } + print "?^"; .SkipWhichQuestion; EndActivity(ASKING_WHICH_DO_YOU_MEAN_ACT); - ! ...and get an answer: + ! ...and get an answer: .WhichOne; - #Ifdef TARGET_ZCODE; - for (i=2 : ii = ' '; - #Endif; ! TARGET_ZCODE - answer_words=Keyboard(buffer2, parse2); - - ! Conveniently, parse2-->1 is the first word in both ZCODE and GLULX. - first_word = (parse2-->1); - - ! Take care of "all", because that does something too clever here to do - ! later on: - - if (first_word == ALL1__WD or ALL2__WD or ALL3__WD or ALL4__WD or ALL5__WD) { - if (context == MULTI_TOKEN or MULTIHELD_TOKEN or MULTIEXCEPT_TOKEN or MULTIINSIDE_TOKEN) { - l = multiple_object-->0; - for (i=0 : ii; - multiple_object-->(i+1+l) = k; - } - multiple_object-->0 = i+l; - rtrue; - } - PARSER_CLARIF_INTERNAL_RM('C'); - jump WhichOne; - } + #Ifdef TARGET_ZCODE; + for (i=2 : ii = ' '; + #Endif; ! TARGET_ZCODE + answer_words=Keyboard(buffer2, parse2); + + ! Conveniently, parse2-->1 is the first word in both ZCODE and GLULX. + first_word = (parse2-->1); + + ! Take care of "all", because that does something too clever here to do + ! later on: + + if (first_word == ALL1__WD or ALL2__WD or ALL3__WD or ALL4__WD or ALL5__WD) { + if (context == MULTI_TOKEN or MULTIHELD_TOKEN or MULTIEXCEPT_TOKEN or MULTIINSIDE_TOKEN) { + l = multiple_object-->0; + for (i=0 : ii; + multiple_object-->(i+1+l) = k; + } + multiple_object-->0 = i+l; + rtrue; + } + PARSER_CLARIF_INTERNAL_RM('C'); + jump WhichOne; + } ! Look for a comma, and interpret this as a fresh conversation command ! if so: for (i=1 : i<=answer_words : i++ ) if (WordFrom(i, parse2) == comma_word) { - VM_CopyBuffer(buffer, buffer2); - jump RECONSTRUCT_INPUT; + VM_CopyBuffer(buffer, buffer2); + jump RECONSTRUCT_INPUT; } - ! If the first word of the reply can be interpreted as a verb, then - ! assume that the player has ignored the question and given a new - ! command altogether. - ! (This is one time when it's convenient that the directions are - ! not themselves verbs - thus, "north" as a reply to "Which, the north - ! or south door" is not treated as a fresh command but as an answer.) - - #Ifdef LanguageIsVerb; - if (first_word == 0) { - j = wn; first_word = LanguageIsVerb(buffer2, parse2, 1); wn = j; - } - #Endif; ! LanguageIsVerb - if (first_word ~= 0) { - j = first_word->#dict_par1; - if ((0 ~= j&1) && ~~LanguageVerbMayBeName(first_word)) { - VM_CopyBuffer(buffer, buffer2); - jump RECONSTRUCT_INPUT; - } - } - - ! Now we insert the answer into the original typed command, as - ! words additionally describing the same object - ! (eg, > take red button - ! Which one, ... - ! > music - ! becomes "take music red button". The parser will thus have three - ! words to work from next time, not two.) - - #Ifdef TARGET_ZCODE; - k = WordAddress(match_from) - buffer; l=buffer2->1+1; - for (j=buffer + buffer->0 - 1 : j>=buffer+k+l : j-- ) j->0 = 0->(j-l); - for (i=0 : i(k+i) = buffer2->(2+i); - buffer->(k+l-1) = ' '; - buffer->1 = buffer->1 + l; - if (buffer->1 >= (buffer->0 - 1)) buffer->1 = buffer->0; - #Ifnot; ! TARGET_GLULX - k = WordAddress(match_from) - buffer; - l = (buffer2-->0) + 1; - for (j=buffer+INPUT_BUFFER_LEN-1 : j>=buffer+k+l : j-- ) j->0 = j->(-l); - for (i=0 : i(k+i) = buffer2->(WORDSIZE+i); - buffer->(k+l-1) = ' '; - buffer-->0 = buffer-->0 + l; - if (buffer-->0 > (INPUT_BUFFER_LEN-WORDSIZE)) buffer-->0 = (INPUT_BUFFER_LEN-WORDSIZE); - #Endif; ! TARGET_ - - ! Having reconstructed the input, we warn the parser accordingly - ! and get out. + ! If the first word of the reply can be interpreted as a verb, then + ! assume that the player has ignored the question and given a new + ! command altogether. + ! (This is one time when it's convenient that the directions are + ! not themselves verbs - thus, "north" as a reply to "Which, the north + ! or south door" is not treated as a fresh command but as an answer.) + + #Ifdef LanguageIsVerb; + if (first_word == 0) { + j = wn; first_word = LanguageIsVerb(buffer2, parse2, 1); wn = j; + } + #Endif; ! LanguageIsVerb + if (first_word ~= 0) { + j = first_word->#dict_par1; + if ((0 ~= j&1) && ~~LanguageVerbMayBeName(first_word)) { + VM_CopyBuffer(buffer, buffer2); + jump RECONSTRUCT_INPUT; + } + } + + ! Now we insert the answer into the original typed command, as + ! words additionally describing the same object + ! (eg, > take red button + ! Which one, ... + ! > music + ! becomes "take music red button". The parser will thus have three + ! words to work from next time, not two.) + + #Ifdef TARGET_ZCODE; + k = WordAddress(match_from) - buffer; l=buffer2->1+1; + for (j=buffer + buffer->0 - 1 : j>=buffer+k+l : j-- ) j->0 = 0->(j-l); + for (i=0 : i(k+i) = buffer2->(2+i); + buffer->(k+l-1) = ' '; + buffer->1 = buffer->1 + l; + if (buffer->1 >= (buffer->0 - 1)) buffer->1 = buffer->0; + #Ifnot; ! TARGET_GLULX + k = WordAddress(match_from) - buffer; + l = (buffer2-->0) + 1; + for (j=buffer+INPUT_BUFFER_LEN-1 : j>=buffer+k+l : j-- ) j->0 = j->(-l); + for (i=0 : i(k+i) = buffer2->(WORDSIZE+i); + buffer->(k+l-1) = ' '; + buffer-->0 = buffer-->0 + l; + if (buffer-->0 > (INPUT_BUFFER_LEN-WORDSIZE)) buffer-->0 = (INPUT_BUFFER_LEN-WORDSIZE); + #Endif; ! TARGET_ + + ! Having reconstructed the input, we warn the parser accordingly + ! and get out. .RECONSTRUCT_INPUT; + dont_inject_pronoun = false; ! ADDED + num_words = WordCount(); players_command = 100 + num_words; - wn = 1; - #Ifdef LanguageToInformese; - LanguageToInformese(); - ! Re-tokenise: - VM_Tokenise(buffer,parse); - #Endif; ! LanguageToInformese + wn = 1; + #Ifdef LanguageToInformese; + LanguageToInformese(); + ! Re-tokenise: + VM_Tokenise(buffer,parse); + #Endif; ! LanguageToInformese num_words = WordCount(); players_command = 100 + num_words; - actors_location = ScopeCeiling(player); + actors_location = ScopeCeiling(player); FollowRulebook(Activity_after_rulebooks-->READING_A_COMMAND_ACT); - return REPARSE_CODE; + return REPARSE_CODE; - ! Now we come to the question asked when the input has run out - ! and can't easily be guessed (eg, the player typed "take" and there - ! were plenty of things which might have been meant). + ! Now we come to the question asked when the input has run out + ! and can't easily be guessed (eg, the player typed "take" and there + ! were plenty of things which might have been meant). .Incomplete; - if (context == CREATURE_TOKEN) PARSER_CLARIF_INTERNAL_RM('D', actor); - else PARSER_CLARIF_INTERNAL_RM('E', actor); - new_line; + if (context == CREATURE_TOKEN) PARSER_CLARIF_INTERNAL_RM('D', actor); + else PARSER_CLARIF_INTERNAL_RM('E', actor); + new_line; - #Ifdef TARGET_ZCODE; - for (i=2 : ii=' '; - #Endif; ! TARGET_ZCODE - answer_words = Keyboard(buffer2, parse2); + #Ifdef TARGET_ZCODE; + for (i=2 : ii=' '; + #Endif; ! TARGET_ZCODE + answer_words = Keyboard(buffer2, parse2); ! Look for a comma, and interpret this as a fresh conversation command ! if so: @@ -317,117 +328,119 @@ Include (- jump RECONSTRUCT_INPUT; } - first_word=(parse2-->1); - #Ifdef LanguageIsVerb; - if (first_word==0) { - j = wn; first_word=LanguageIsVerb(buffer2, parse2, 1); wn = j; - } - #Endif; ! LanguageIsVerb - - ! Once again, if the reply looks like a command, give it to the - ! parser to get on with and forget about the question... - - if (first_word ~= 0) { - j = first_word->#dict_par1; - if ((0 ~= j&1) && ~~LanguageVerbMayBeName(first_word)) { - VM_CopyBuffer(buffer, buffer2); - jump RECONSTRUCT_INPUT; - } - } - - ! ...but if we have a genuine answer, then: - ! - ! (1) we must glue in text suitable for anything that's been inferred. - - if (inferfrom ~= 0) { - for (j=inferfrom : jj == PATTERN_NULL) continue; - #Ifdef TARGET_ZCODE; - i = 2+buffer->1; (buffer->1)++; buffer->( i++ ) = ' '; - #Ifnot; ! TARGET_GLULX - i = WORDSIZE + buffer-->0; - (buffer-->0)++; buffer->( i++ ) = ' '; - #Endif; ! TARGET_ - - #Ifdef DEBUG; - if (parser_trace >= 5) - print "[Gluing in inference with pattern code ", pattern-->j, "]^"; - #Endif; ! DEBUG - - ! Conveniently, parse2-->1 is the first word in both ZCODE and GLULX. - - parse2-->1 = 0; - - ! An inferred object. Best we can do is glue in a pronoun. - ! (This is imperfect, but it's very seldom needed anyway.) - - if (pattern-->j >= 2 && pattern-->j < REPARSE_CODE) { - PronounNotice(pattern-->j); - for (k=1 : k<=LanguagePronouns-->0 : k=k+3) - if (pattern-->j == LanguagePronouns-->(k+2)) { - parse2-->1 = LanguagePronouns-->k; - #Ifdef DEBUG; - if (parser_trace >= 5) - print "[Using pronoun '", (address) parse2-->1, "']^"; - #Endif; ! DEBUG - break; - } - } - else { - ! An inferred preposition. - parse2-->1 = VM_NumberToDictionaryAddress(pattern-->j - REPARSE_CODE); - #Ifdef DEBUG; - if (parser_trace >= 5) - print "[Using preposition '", (address) parse2-->1, "']^"; - #Endif; ! DEBUG - } - - ! parse2-->1 now holds the dictionary address of the word to glue in. - - if (parse2-->1 ~= 0) { - k = buffer + i; - #Ifdef TARGET_ZCODE; - @output_stream 3 k; - print (address) parse2-->1; - @output_stream -3; - k = k-->0; - for (l=i : ll = buffer->(l+2); - i = i + k; buffer->1 = i-2; - #Ifnot; ! TARGET_GLULX - k = Glulx_PrintAnyToArray(buffer+i, INPUT_BUFFER_LEN-i, parse2-->1); - i = i + k; buffer-->0 = i - WORDSIZE; - #Endif; ! TARGET_ - } - } - } - - ! (2) we must glue the newly-typed text onto the end. - - #Ifdef TARGET_ZCODE; - i = 2+buffer->1; (buffer->1)++; buffer->( i++ ) = ' '; - for (j=0 : j1 : i++,j++ ) { - buffer->i = buffer2->(j+2); - (buffer->1)++; - if (buffer->1 == INPUT_BUFFER_LEN) break; - } - #Ifnot; ! TARGET_GLULX - i = WORDSIZE + buffer-->0; - (buffer-->0)++; buffer->( i++ ) = ' '; - for (j=0 : j0 : i++,j++ ) { - buffer->i = buffer2->(j+WORDSIZE); - (buffer-->0)++; - if (buffer-->0 == INPUT_BUFFER_LEN) break; - } - #Endif; ! TARGET_ - - ! (3) we fill up the buffer with spaces, which is unnecessary, but may - ! help incorrectly-written interpreters to cope. - - #Ifdef TARGET_ZCODE; - for (: ii = ' '; - #Endif; ! TARGET_ZCODE - - jump RECONSTRUCT_INPUT; + first_word=(parse2-->1); + #Ifdef LanguageIsVerb; + if (first_word==0) { + j = wn; first_word=LanguageIsVerb(buffer2, parse2, 1); wn = j; + } + #Endif; ! LanguageIsVerb + + ! Once again, if the reply looks like a command, give it to the + ! parser to get on with and forget about the question... + + if (first_word ~= 0) { + j = first_word->#dict_par1; + if ((0 ~= j&1) && ~~LanguageVerbMayBeName(first_word)) { + VM_CopyBuffer(buffer, buffer2); + jump RECONSTRUCT_INPUT; + } + } + + ! ...but if we have a genuine answer, then: + ! + ! (1) we must glue in text suitable for anything that's been inferred. + + if (inferfrom ~= 0) { + for (j=inferfrom : jj == PATTERN_NULL) continue; + #Ifdef TARGET_ZCODE; + i = 2+buffer->1; (buffer->1)++; buffer->( i++ ) = ' '; + #Ifnot; ! TARGET_GLULX + i = WORDSIZE + buffer-->0; + (buffer-->0)++; buffer->( i++ ) = ' '; + #Endif; ! TARGET_ + + #Ifdef DEBUG; + if (parser_trace >= 5) + print "[Gluing in inference with pattern code ", pattern-->j, "]^"; + #Endif; ! DEBUG + + ! Conveniently, parse2-->1 is the first word in both ZCODE and GLULX. + + parse2-->1 = 0; + + ! An inferred object. Best we can do is glue in a pronoun. + ! (This is imperfect, but it's very seldom needed anyway.) + + if (pattern-->j >= 2 && pattern-->j < REPARSE_CODE) { + if (~~dont_inject_pronoun) { + PronounNotice(pattern-->j); + for (k=1 : k<=LanguagePronouns-->0 : k=k+3) + if (pattern-->j == LanguagePronouns-->(k+2)) { + parse2-->1 = LanguagePronouns-->k; + #Ifdef DEBUG; + if (parser_trace >= 5) + print "[Using pronoun '", (address) parse2-->1, "']^"; + #Endif; ! DEBUG + break; + } + } + } + else { + ! An inferred preposition. + parse2-->1 = VM_NumberToDictionaryAddress(pattern-->j - REPARSE_CODE); + #Ifdef DEBUG; + if (parser_trace >= 5) + print "[Using preposition '", (address) parse2-->1, "']^"; + #Endif; ! DEBUG + } + + ! parse2-->1 now holds the dictionary address of the word to glue in. + + if (parse2-->1 ~= 0) { + k = buffer + i; + #Ifdef TARGET_ZCODE; + @output_stream 3 k; + print (address) parse2-->1; + @output_stream -3; + k = k-->0; + for (l=i : ll = buffer->(l+2); + i = i + k; buffer->1 = i-2; + #Ifnot; ! TARGET_GLULX + k = Glulx_PrintAnyToArray(buffer+i, INPUT_BUFFER_LEN-i, parse2-->1); + i = i + k; buffer-->0 = i - WORDSIZE; + #Endif; ! TARGET_ + } + } + } + + ! (2) we must glue the newly-typed text onto the end. + + #Ifdef TARGET_ZCODE; + i = 2+buffer->1; (buffer->1)++; buffer->( i++ ) = ' '; + for (j=0 : j1 : i++,j++ ) { + buffer->i = buffer2->(j+2); + (buffer->1)++; + if (buffer->1 == INPUT_BUFFER_LEN) break; + } + #Ifnot; ! TARGET_GLULX + i = WORDSIZE + buffer-->0; + (buffer-->0)++; buffer->( i++ ) = ' '; + for (j=0 : j0 : i++,j++ ) { + buffer->i = buffer2->(j+WORDSIZE); + (buffer-->0)++; + if (buffer-->0 == INPUT_BUFFER_LEN) break; + } + #Endif; ! TARGET_ + + ! (3) we fill up the buffer with spaces, which is unnecessary, but may + ! help incorrectly-written interpreters to cope. + + #Ifdef TARGET_ZCODE; + for (: ii = ' '; + #Endif; ! TARGET_ZCODE + + jump RECONSTRUCT_INPUT; ]; ! end of NounDomain @@ -448,13 +461,13 @@ Include (- !print "sst = ", second_kova, "^"; if (noun_kova == SNIPPET_TY or UNDERSTANDING_TY) { - if (inp1 ~= 1) { inp2 = inp1; second = noun; } - parsed_number = 100*consult_from + consult_words; - inp1 = 1; noun = nothing; ! noun = parsed_number; + if (inp1 ~= 1) { inp2 = inp1; second = noun; } + parsed_number = 100*consult_from + consult_words; + inp1 = 1; noun = nothing; ! noun = parsed_number; } if (second_kova == SNIPPET_TY or UNDERSTANDING_TY) { - parsed_number = 100*consult_from + consult_words; - inp2 = 1; second = nothing; ! second = parsed_number; + parsed_number = 100*consult_from + consult_words; + inp2 = 1; second = nothing; ! second = parsed_number; } mask = ActionData-->(at+AD_REQUIREMENTS); @@ -462,61 +475,61 @@ Include (- meta = 0; if (inp1 == 1) { - if (noun_kova == OBJECT_TY) { - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('B'); new_line; } - rtrue; - } + if (noun_kova == OBJECT_TY) { + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('B'); new_line; } + rtrue; + } } else { - if (noun_kova ~= OBJECT_TY) { - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('C'); new_line; } - rtrue; - } - if ((mask & NEED_NOUN_ABIT) && (noun == nothing)) { - @push act_requester; act_requester = nothing; - CarryOutActivity(SUPPLYING_A_MISSING_NOUN_ACT); - @pull act_requester; - if (noun == nothing) { - if (say__p) rtrue; - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('D'); new_line; } - rtrue; - } - ! === NEW === - noun.parsed_snippet = EmptySnippet; - ! === END === - } - if (((mask & NEED_NOUN_ABIT) == 0) && (noun ~= nothing)) { - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('E'); new_line; } - rtrue; - } + if (noun_kova ~= OBJECT_TY) { + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('C'); new_line; } + rtrue; + } + if ((mask & NEED_NOUN_ABIT) && (noun == nothing)) { + @push act_requester; act_requester = nothing; + CarryOutActivity(SUPPLYING_A_MISSING_NOUN_ACT); + @pull act_requester; + if (noun == nothing) { + if (say__p) rtrue; + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('D'); new_line; } + rtrue; + } + ! === NEW === + noun.parsed_snippet = EmptySnippet; + ! === END === + } + if (((mask & NEED_NOUN_ABIT) == 0) && (noun ~= nothing)) { + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('E'); new_line; } + rtrue; + } } if (inp2 == 1) { - if (second_kova == OBJECT_TY) { - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('F'); new_line; } - rtrue; - } + if (second_kova == OBJECT_TY) { + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('F'); new_line; } + rtrue; + } } else { - if (second_kova ~= OBJECT_TY) { - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('G'); new_line; } - rtrue; - } - if ((mask & NEED_SECOND_ABIT) && (second == nothing)) { - @push act_requester; act_requester = nothing; - CarryOutActivity(SUPPLYING_A_MISSING_SECOND_ACT); - @pull act_requester; - if (second == nothing) { - if (say__p) rtrue; - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('H'); new_line; } - rtrue; - } - ! === NEW === - second.parsed_snippet = EmptySnippet; - ! === END === - } - if (((mask & NEED_SECOND_ABIT) == 0) && (second ~= nothing)) { - if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('I'); new_line; } - rtrue; - } + if (second_kova ~= OBJECT_TY) { + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('G'); new_line; } + rtrue; + } + if ((mask & NEED_SECOND_ABIT) && (second == nothing)) { + @push act_requester; act_requester = nothing; + CarryOutActivity(SUPPLYING_A_MISSING_SECOND_ACT); + @pull act_requester; + if (second == nothing) { + if (say__p) rtrue; + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('H'); new_line; } + rtrue; + } + ! === NEW === + second.parsed_snippet = EmptySnippet; + ! === END === + } + if (((mask & NEED_SECOND_ABIT) == 0) && (second ~= nothing)) { + if (actor == player) { ACTION_PROCESSING_INTERNAL_RM('I'); new_line; } + rtrue; + } } rfalse; diff --git a/Counterfeit Monkey.materials/Extensions/Dannii Willis/Startup Precomputation.i7x b/Counterfeit Monkey.materials/Extensions/Dannii Willis/Startup Precomputation.i7x index 5fdb1a5c..0af163a8 100644 --- a/Counterfeit Monkey.materials/Extensions/Dannii Willis/Startup Precomputation.i7x +++ b/Counterfeit Monkey.materials/Extensions/Dannii Willis/Startup Precomputation.i7x @@ -15,11 +15,13 @@ The finalise startup precomputation rule translates into I6 as "SP_Save". Include (- -[ SP_Attempt_Load fref res; +[ SP_Attempt_Load fref res embedded_data_exists; + embedded_data_exists = false; ! Test if the interpreter supports resource streams if ( glk_gestalt( gestalt_ResourceStream, 0 ) ) { ! Open the blorb chunk if it exists + embedded_data_exists = true; gg_savestr = glk_stream_open_resource( SP_Blorb_Chunk_Number, GG_SAVESTR_ROCK ); } ! Otherwise check if an external precomputation savefile exists @@ -39,6 +41,10 @@ Include (- if ( gg_savestr ) { @restore gg_savestr res; + if ( res == 1 && embedded_data_exists == true ) + { + SP_bad_embedded_startup_data = true; + } glk_stream_close( gg_savestr, 0 ); gg_savestr = 0; } @@ -73,6 +79,19 @@ Include (- -). + +Include (- + +Global SP_bad_embedded_startup_data = 0; + +-) after "Definitions.i6t". + +Bad embedded precomputation data is a truth state that varies. The bad embedded precomputation data variable translates into I6 as "SP_bad_embedded_startup_data". + +A last when play begins rule (this is the complain if embedded precomputation data is bad rule): + if bad embedded precomputation data is true: + say "ERROR!!! BAD EMBEDDED STARTUP DATA!!!"; + Startup Precomputation ends here. ---- DOCUMENTATION ---- @@ -86,7 +105,7 @@ To embed the precomputation data inside the blorb, compile a release version of python blorbtool.py Story.gblorb import Data 9998 IFZS Story-startup-data.glkdata This extension will by default use a blorb resource number of 9998. If for some reason you need to change it, you can use this command to set another (higher) number: - + Use startup precomputation blorb chunk number of at least 10000. -This extension is released under the Creative Commons Attribution licence. Bug reports, feature requests or questions should be made at . \ No newline at end of file +This extension is released under the Creative Commons Attribution licence. Bug reports, feature requests or questions should be made at . diff --git a/README.md b/README.md index a78cf1ff..dd4a7c78 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ An Inform 7 game by Emily Short A collage with a cat, a crumpled 50 Euro bill, some secret plans and a city map. -Copyright © 2012-2021 by Emily Short and others +Copyright © 2012-2023 by Emily Short and others *Counterfeit Monkey* is licensed under the [Creative Commons Attribution-ShareAlike 4.0 license](http://creativecommons.org/licenses/by-sa/4.0/). diff --git a/tools/command scripts/test_fish.txt b/tools/command scripts/test_fish.txt index 5c075696..5cf139e1 100644 --- a/tools/command scripts/test_fish.txt +++ b/tools/command scripts/test_fish.txt @@ -528,5 +528,5 @@ synthesize wave i-remover at carpi shoot rusty nail shoot shrimp cocktail -no -quit \ No newline at end of file +quit +y \ No newline at end of file diff --git a/tools/insert.sh b/tools/insert.sh index 789e8f2c..328ba0f4 100755 --- a/tools/insert.sh +++ b/tools/insert.sh @@ -1,3 +1,12 @@ #!/bin/bash +path_to_interpreter=./git +testfile="command scripts/test_minimal.txt" + +rm monkeyac.glkdata +rm testing.glkdata +rm "Counterfeit Monkey-startup-data.glkdata" + +$path_to_interpreter "../Counterfeit Monkey.materials/Release/Counterfeit Monkey.gblorb" <"$testfile" > transcript.txt + echo "y" | python2 blorbtool.py "../Counterfeit Monkey.materials/Release/Counterfeit Monkey.gblorb" import Data 9998 IFZS "Counterfeit Monkey-startup-data.glkdata" diff --git a/tools/regtest/CM-regtest b/tools/regtest/CM-regtest index 343b99fa..a57edc73 100644 --- a/tools/regtest/CM-regtest +++ b/tools/regtest/CM-regtest @@ -122,7 +122,7 @@ We reset the device to p. There's a smell of fermenting apple, then cider, then There is a cheer from the spectators. The word-balance tilts slowly but inexorably. -The barker looks astonished and displeased, except for a fraction of a second when he just noticeably winks. With exaggerated bad grace hands us some restoration gel. "There's your prize. And now this contest is over." +The barker looks astonished and displeased, except for a fraction of a second when he just noticeably winks. With exaggerated bad grace he hands us some restoration gel. "There's your prize. And now this contest is over." He stalks away. @@ -1831,7 +1831,7 @@ The snapping continues. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. This corner office was won in a battle of wills with several other departments during the most recent rebuilding drive. Professor Waterstone is fond of reminding the others that he was the one to obtain this favorable position whenever there is a disagreement about procedure. @@ -1881,7 +1881,7 @@ A moment later the printer whirs thoughtfully. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though the north door is closed. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. > x printer The networked printer handles output for all the computers in the department. The indicator lights glow red to indicate that the paper-drawer is empty. An additional light indicates that some document is in the queue to print and is waiting for the printer to be ready. @@ -1942,7 +1942,7 @@ The snapping continues. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though the north door is closed. -The department printer also sits on the u-shaped desk. The paper drawer stands open. +The department printer sits on the u-shaped desk. The paper drawer stands open. The snapping continues. @@ -1961,7 +1961,7 @@ The snapping continues. > get draft /We (take|get|pick up|acquire) the draft document. It's fifteen pages double-spaced, and appears to be the draft of a talk Professor Waterstone is preparing to give at a convention. I immediately notice, however, that several portions of the speech are marked with angry triple asterisks — Waterstone's way of marking up parts of text that need serious revision. -The talk concerns "homonym shame": the anxiety felt in the Victorian era, and still manifested at times in modern culture, about objects that shared the same name as (and therefore theoretically might be converted into) something rude. Methods of disguising the legs of pianos and crotches of trees occupy a good portion of Waterstone's exposition, and there is a page-long aside on methods of making sure that donkeys are known by that name and not by the alternative. +The talk concerns "homonym shame": the anxiety felt in the Victorian era, and still manifested at times in modern culture, about objects that shared the same name as (and therefore theoretically might be converted into) something rude. Methods of disguising the legs of pianos and crotches of trees occupy a good portion of Waterstone's exposition, and there is a page-long aside on methods of making sure that donkeys are known by that name and not by the alternative. To judge, however, from the angry asterisking, Waterstone is still looking for at least one more example of an object susceptible to double-entendre that has been successfully rendered innocent by some linguistic modification. @@ -2048,7 +2048,7 @@ They recently redid this room, and whoever picked the decorations had postmodern /A massive plexiglas case takes up one corner of the room. (There is|The plexiglas case contains|In the plexiglas case is) a compact but high-powered late model synthesizer( in the plexiglas case)?. -The big table at the center of the room is an irregular polygon, with one chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. +The big table at the center of the room is an irregular polygon, with one chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. The snapping continues. @@ -2849,7 +2849,7 @@ We scoop the peacock into our arms. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though both doors are closed. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. > knock on waterstone's door /(Waterstone|He) looks at the peacock, briefly arrested by some thought. He gets a monocle like mine out of his drawer. He looks through it at the peacock, notes the cock and the pea; grins. He gets up and comes out of his office. @@ -2944,7 +2944,7 @@ We reset the device to y. The sticky gives way to the now-familiar stick. The snapping continues. > go to tall street -/(We |We have a (brief|quick|short) |We make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike) (over to|as far as|to) University Oval. +/(We |We have a (brief|quick|short) |We make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike) (over to|as far as|to) the University Oval. University Oval This is the center of the university, a broad grassy oval shaded with sycamore trees and surrounded by buildings in brick or white stone. @@ -3657,7 +3657,7 @@ I want to stop you, but you've got the upper hand now. The pa backs out the door. -There's a noise like the firing of a restoration gel rifle and the sound of the pa collapsing into a pearl. "Nice try," shouts a voice from outside. "Next?" +There's a noise like the firing of a restoration gel rifle and the sound of the pa collapsing into a pearl. "Nice try," shouts a voice from outside. "Next?" I vote we gel Brock and send him out to my father. No, hear me out. Brock's cover is probably not in great shape anyway. You might be able to rescue him later. And it would be a coup for my father to have a real big arrest to put on the record. @@ -4147,7 +4147,7 @@ I open the portcullis. > e Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. The metal portcullis guards the way back. It is currently raised. From the pulley above the portcullis hangs a counterweight. @@ -4254,7 +4254,7 @@ A set of children's playing jacks. They are lined up, with curious precision, in /I reset the device to s. There is a [a-z \-]+, and the jacks turn into a jack. A heavy-duty jack, suitable for raising cars or other substantial objects. > go to workshop -/(It's a |I (make the ))?(short |quick |brief |)(walk|hike) (over to|as far as|to) Personal Apartment. There I try propping the portcullis with the jack. +/(It's a |I (make the ))?(short |quick |brief |)(walk|hike) (over to|as far as|to) the Personal Apartment. There I try propping the portcullis with the jack. /(Then|Next|After that|From there) (I |I have a (brief|quick|short) |I make the( brief| quick| short)? |it's a( brief| quick| short)? )(walk|hike). @@ -4288,7 +4288,7 @@ She gets to her feet. /(I |I have a (brief|quick|short) |I make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike). Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. Atlantida stands nearby, urging me to hurry out via the Private Solarium. I think she's enjoying her role as conspiratorial heroine. @@ -4624,7 +4624,7 @@ I want to stop you, but you've got the upper hand now. The pa backs out the door. -There's a noise like the firing of a restoration gel rifle and the sound of the pa collapsing into a pearl. "Nice try," shouts a voice from outside. "Next?" +There's a noise like the firing of a restoration gel rifle and the sound of the pa collapsing into a pearl. "Nice try," shouts a voice from outside. "Next?" I vote we gel Brock and send him out to my father. No, hear me out. Brock's cover is probably not in great shape anyway. You might be able to rescue him later. And it would be a coup for my father to have a real big arrest to put on the record. @@ -5165,7 +5165,7 @@ You open the portcullis. > e Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. The metal portcullis guards the way back. It is currently raised. From the pulley above the portcullis hangs a counterweight. @@ -5308,7 +5308,7 @@ She gets to her feet. /(You |You have a (brief|quick|short) |You make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike). Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. Atlantida stands nearby, urging you to hurry out via the Private Solarium. I think she's enjoying her role as conspiratorial heroine. diff --git a/tools/regtest/CM-regtest-hard b/tools/regtest/CM-regtest-hard index a0c7024b..0d43af59 100644 --- a/tools/regtest/CM-regtest-hard +++ b/tools/regtest/CM-regtest-hard @@ -114,7 +114,7 @@ We reset the device to p. There's a smell of fermenting apple, then cider, then There is a cheer from the spectators. The word-balance tilts slowly but inexorably. -The barker looks astonished and displeased, except for a fraction of a second when he just noticeably winks. With exaggerated bad grace hands us some restoration gel. "There's your prize. And now this contest is over." +The barker looks astonished and displeased, except for a fraction of a second when he just noticeably winks. With exaggerated bad grace he hands us some restoration gel. "There's your prize. And now this contest is over." He stalks away. @@ -1423,7 +1423,7 @@ On the wall hangs a framed photograph of Professor Waterstone, with the words SH Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. This corner office was won in a battle of wills with several other departments during the most recent rebuilding drive. Professor Waterstone is fond of reminding the others that he was the one to obtain this favorable position whenever there is a disagreement about procedure. @@ -1465,7 +1465,7 @@ A moment later the printer whirs thoughtfully. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though the north door is closed. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. > x printer The networked printer handles output for all the computers in the department. The indicator lights glow red to indicate that the paper-drawer is empty. An additional light indicates that some document is in the queue to print and is waiting for the printer to be ready. @@ -1504,7 +1504,7 @@ We open the tiny refrigerator, revealing some cream and a silver platter. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though the north door is closed. -The department printer also sits on the u-shaped desk. The paper drawer stands open. +The department printer sits on the u-shaped desk. The paper drawer stands open. > put ream in printer The ream fits exactly into the depth of the drawer. We adjust the plastic clamps that hold pages in place until everything is snug. @@ -1517,7 +1517,7 @@ The printer whirs as though clearing its throat, and then begins to spit pages r > get draft /We (take|get|pick up|acquire) the draft document. It's fifteen pages double-spaced, and appears to be the draft of a talk Professor Waterstone is preparing to give at a convention. I immediately notice, however, that several portions of the speech are marked with angry triple asterisks — Waterstone's way of marking up parts of text that need serious revision. -The talk concerns "homonym shame": the anxiety felt in the Victorian era, and still manifested at times in modern culture, about objects that shared the same name as (and therefore theoretically might be converted into) something rude. Methods of disguising the legs of pianos and crotches of trees occupy a good portion of Waterstone's exposition, and there is a page-long aside on methods of making sure that donkeys are known by that name and not by the alternative. +The talk concerns "homonym shame": the anxiety felt in the Victorian era, and still manifested at times in modern culture, about objects that shared the same name as (and therefore theoretically might be converted into) something rude. Methods of disguising the legs of pianos and crotches of trees occupy a good portion of Waterstone's exposition, and there is a page-long aside on methods of making sure that donkeys are known by that name and not by the alternative. To judge, however, from the angry asterisking, Waterstone is still looking for at least one more example of an object susceptible to double-entendre that has been successfully rendered innocent by some linguistic modification. @@ -1590,7 +1590,7 @@ They recently redid this room, and whoever picked the decorations had postmodern /A massive plexiglas case takes up one corner of the room. (There is|The plexiglas case contains|In the plexiglas case is) a compact but high-powered late model synthesizer( in the plexiglas case)?. -The big table at the center of the room is an irregular polygon, with one red chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. +The big table at the center of the room is an irregular polygon, with one red chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. /(We could|I'd like to|We want to|I'm inclined to|My response would be to) ask which conlangs she knows. @@ -2190,7 +2190,7 @@ There is a continuous angry whine from the jigsaw. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though both doors are closed. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. There is a continuous angry whine from the jigsaw. @@ -2234,7 +2234,7 @@ We already have that. There is a continuous angry whine from the jigsaw. > go to tall street -/(We |We have a (brief|quick|short) |We make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike) (over to|as far as|to) University Oval. +/(We |We have a (brief|quick|short) |We make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike) (over to|as far as|to) the University Oval. University Oval This is the center of the university, a broad grassy oval shaded with sycamore trees and surrounded by buildings in brick or white stone. @@ -3327,7 +3327,7 @@ You open the portcullis. > e Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. The metal portcullis guards the way back. It is currently raised. From the pulley above the portcullis hangs a counterweight. @@ -3436,7 +3436,7 @@ A set of children's playing jacks. They are lined up, with curious precision, in /You reset the device to s. There is a [a-z \-]+, and the jacks turn into a jack. A heavy-duty jack, suitable for raising cars or other substantial objects. > go to workshop -/(You |You have a (brief|quick|short) |You make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike) (over to|as far as|to) Personal Apartment. There you try propping the portcullis with the jack. +/(You |You have a (brief|quick|short) |You make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike) (over to|as far as|to) the Personal Apartment. There you try propping the portcullis with the jack. /(Then|Next|After that|From there) (you |you have a (brief|quick|short) |you make the( brief| quick| short)? |it's a( brief| quick| short)? )(walk|hike). @@ -3470,7 +3470,7 @@ She gets to her feet. /(You |You have a (brief|quick|short) |You make the( brief| quick| short)? |It's a( brief| quick| short)? )(walk|hike). Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. Atlantida stands nearby, urging you to hurry out via the Private Solarium. I think she's enjoying her role as conspiratorial heroine. diff --git a/tools/regtest/CM-regtest-tests b/tools/regtest/CM-regtest-tests index f4503647..003173d5 100644 --- a/tools/regtest/CM-regtest-tests +++ b/tools/regtest/CM-regtest-tests @@ -1988,7 +1988,7 @@ We run some water from the sink tap over the funnel, leaving it glistening and c We run some water from the sink tap over the funnel, leaving it glistening and clean. >gonear Aquarium Bookstore -Which do you mean, 1) Aquarium Bookstore or the 2) Aquarium Bookstore? +Which do you mean, 1) Aquarium Bookstore or 2) Aquarium Bookstore? >2 Aquarium Bookstore @@ -2053,7 +2053,7 @@ This road descends steeply from southwest to northwest, passing between white co The Aquarium Bookstore is to the east. It is an esoteric bookstore (and purveyor of other things), but one whose owner has helped you in the past. -We can go northwest, southwest, east to the Aquarium Bookstore, and west from here. +We can go northwest, southwest, east to Aquarium Bookstore, and west from here. #tinhut @@ -2292,7 +2292,7 @@ We take the shuttlecock. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. This corner office was won in a battle of wills with several other departments during the most recent rebuilding drive. Professor Waterstone is fond of reminding the others that he was the one to obtain this favorable position whenever there is a disagreement about procedure. @@ -2325,7 +2325,7 @@ A moment later the printer whirs thoughtfully. Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though the north door is closed. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. >put shuttlecock in backpack We open the backpack. @@ -2540,7 +2540,7 @@ It is the gooseberry fool flavor, left over from a six-pack. I always eat the st #returnbook >gonear Language Studies Seminar Room -(Language Studies Seminar Room) +(the Language Studies Seminar Room) Language Studies Seminar Room They recently redid this room, and whoever picked the decorations had postmodern tastes. @@ -2548,7 +2548,7 @@ The bookshelves lining the walls contain the department library. There are Histo A massive plexiglas case takes up one corner of the room. In the plexiglas case is a compact but high-powered late model synthesizer. -The big table at the center of the room is an irregular polygon, with one chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. +The big table at the center of the room is an irregular polygon, with one chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. >put problem away We take a moment to find the proper place for the book. @@ -2565,7 +2565,7 @@ The sound of discussion comes from down the hall: two voices speaking in Lojban, Language Studies Department Office This big, slightly drab area holds such useful objects as the mailboxes and the secretary's computer. On ordinary days the secretary would be in as well, presiding over affairs. The offices of individual professors lie north and west, though the west door is closed. -The department printer also sits on the u-shaped desk. +The department printer sits on the u-shaped desk. This corner office was won in a battle of wills with several other departments during the most recent rebuilding drive. Professor Waterstone is fond of reminding the others that he was the one to obtain this favorable position whenever there is a disagreement about procedure. @@ -2906,7 +2906,7 @@ There now: the T-inserter has constructed both steer automaton and setter automa >placefather >gonear cold storage -(Cold Storage) +(the Cold Storage) Cold Storage Shelves on both sides of the room are full of objects on stands: objects that used to be men and women, and in a few cases even children. The stand labels preserve their original names. @@ -2975,7 +2975,7 @@ Time passes. >placefather >gonear cold storage -(Cold Storage) +(the Cold Storage) Cold Storage Shelves on both sides of the room are full of objects on stands: objects that used to be men and women, and in a few cases even children. The stand labels preserve their original names. @@ -3042,7 +3042,7 @@ Time passes. >placefather >gonear cold storage -(Cold Storage) +(the Cold Storage) Cold Storage Shelves on both sides of the room are full of objects on stands: objects that used to be men and women, and in a few cases even children. The stand labels preserve their original names. @@ -5863,7 +5863,7 @@ We already have that. We already have that. >take the pill -We toss the pill into our mouths and swallow it dry. +We toss the pill into our mouth and swallow it dry. There is no immediate reaction, but after a few minutes a cramping pain begins to spread through our stomach, and it becomes difficult to breathe. Yellow and blue spots float in front of our eyes. Our skin begins to itch. Dimly I wonder whether these symptoms correspond to any real medical condition or whether the pill is simply poisonous by invention; but we are not clear-minded enough to go on thinking these sorts of thoughts for long. @@ -5871,7 +5871,7 @@ That is, that's what would have happened if we had done something so foolish. Sh >yes >take pill -We toss the pill into our mouths and swallow it dry. +We toss the pill into our mouth and swallow it dry. There is no immediate reaction, but after a few minutes a cramping pain begins to spread through our stomach, and it becomes difficult to breathe. Yellow and blue spots float in front of our eyes. Our skin begins to itch. Dimly I wonder whether these symptoms correspond to any real medical condition or whether the pill is simply poisonous by invention; but we are not clear-minded enough to go on thinking these sorts of thoughts for long. @@ -5952,7 +5952,7 @@ She seems to have taken the meaning the first time. [Can't move screws: it's part of the plexiglas case.] >gonear language studies seminar room -(Language Studies Seminar Room) +(the Language Studies Seminar Room) Language Studies Seminar Room They recently redid this room, and whoever picked the decorations had postmodern tastes. @@ -5960,7 +5960,7 @@ The bookshelves lining the walls contain the department library. There are Histo A massive plexiglas case takes up one corner of the room. There is a compact but high-powered late model synthesizer in the plexiglas case. -The big table at the center of the room is an irregular polygon, with one red chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. +The big table at the center of the room is an irregular polygon, with one red chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. >wave s-remover at screws We reset the device to s. With a distinct whiff of deodorant, the screws turn into some crew. Five (or six? it's extremely hard to count) swarthy sailors. They look buff and burly and have very thick eyebrows. @@ -8185,7 +8185,7 @@ The backpacking girl gags. After a moment to regain her composure, she flees the #shop-volunteer >gonear New Church -Which do you mean, 1) what is worth seeing in the New Church, the 2) New Church, or 3) New Church? +Which do you mean, 1) what is worth seeing in the New Church, the 2) New Church, or the 3) New Church? >3 New Church @@ -9101,7 +9101,7 @@ The hundreds of people are carrying angry signs and wearing slogans. We can go north, south to Long Street South, and west from here. -The car is making an unpleasant raspy growl. +The truck is making an unpleasant raspy growl. >go to arbot We drive to Long Street South. There we struggle to find a parking spot. @@ -9372,7 +9372,7 @@ We could thank the bartender. #lena >gonear Aquarium Bookstore. -Which do you mean, 1) Aquarium Bookstore or the 2) Aquarium Bookstore? +Which do you mean, 1) Aquarium Bookstore or 2) Aquarium Bookstore? >2 Aquarium Bookstore @@ -9515,7 +9515,7 @@ This road descends steeply from southwest to northwest, passing between white co The Aquarium Bookstore is to the east. It is an esoteric bookstore (and purveyor of other things), but one whose owner has helped you in the past. -We can go northwest, southwest, east to the Aquarium Bookstore, and west from here. +We can go northwest, southwest, east to Aquarium Bookstore, and west from here. >car-acquire Deep Street @@ -9525,7 +9525,7 @@ Our pathetic little car is parked right outside Aquarium Bookstore. Here is how Suffice it to say that we are not similarly blessed. -We can go northwest, southwest, east to the Aquarium Bookstore, and west from here. +We can go northwest, southwest, east to Aquarium Bookstore, and west from here. >start car We swing the car door open. @@ -9590,7 +9590,7 @@ This road descends steeply from southwest to northwest, passing between white co The Aquarium Bookstore is to the east. It's dim inside, but occasional movements suggest that the proprietor, Slango's friend Lena, is inside. -We can go northwest, southwest to the Roundabout, east to the Aquarium Bookstore, and west from here. +We can go northwest, southwest to the Roundabout, east to Aquarium Bookstore, and west from here. The car is making an unpleasant raspy growl. @@ -10997,7 +10997,7 @@ We open the portcullis. >e Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. The metal portcullis guards the way back. It is currently raised. From the pulley above the portcullis hangs a counterweight. @@ -11499,7 +11499,7 @@ There's a faint tang of salt air. >e Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. The metal portcullis guards the way back. It is currently raised. From the pulley above the portcullis hangs a counterweight. @@ -11576,7 +11576,7 @@ Fused? We should be two pieces by now. Maybe she has an explanation? But you see >hit atlantida with foil Atlantida raises the rifle and fires with certain aim before the blow has a chance to land. -[gel-convert: BUG! The fossil is not in the repository. It will be moved from Crumbling Wall Face to ourselves.] +[gel-convert: BUG! The fossil is not in the repository. It will be moved from the Crumbling Wall Face to ourselves.] With an audible SPLORT, the foil becomes a fossil. Atlantida smiles with half a mouth. "You've arrived on a difficult day. In the ordinary course of things, I keep things quiet: the spirit of democracy, but none of the sordid wrangling and bribes and corruption and compromise. It's only when the spirit of the island itself is threatened, that we have to resort to such extreme measures." @@ -11722,7 +11722,7 @@ We open the portcullis. >go through portcullis Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. The metal portcullis guards the way back. It is currently raised. From the pulley above the portcullis hangs a counterweight. @@ -11772,7 +11772,7 @@ My response would be to ask whether the protesters feel the same way. >look Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. Atlantida stands between us and the eastern exit, backlit by sunlight. The restoration gel rifle hangs loose in her hand. @@ -11795,7 +11795,7 @@ The infertile astrologer falls awkwardly to earth and looks around in confusion. >look Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. Atlantida stands between us and the eastern exit, backlit by sunlight. She dwarfs the inlaid desk and all the other furnishings in the room. @@ -11867,7 +11867,7 @@ We open the portcullis. >go through portcullis Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. The metal portcullis guards the way back. It is currently raised. From the pulley above the portcullis hangs a counterweight. @@ -11916,7 +11916,7 @@ My response would be to ask whether the protesters feel the same way. >look Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. Atlantida stands between us and the eastern exit, backlit by sunlight. The restoration gel rifle hangs loose in her hand. @@ -11939,7 +11939,7 @@ The infertile astrologer falls awkwardly to earth and looks around in confusion. >look Personal Apartment -At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. +At a guess, this is a room hardly anyone ever visits, or even knows about. Though the ceiling and one wall are bare cave, the rest has been paneled and graciously decorated in the style of the end of the 18th century. Oil paintings on the walls depict great men and women of Atlantis gone by: Phyllida Shaply, Amelia Landison, Clarence Arbot, Jon Rosehip. An antique bed stands in the center of the room. Atlantida stands between us and the eastern exit, backlit by sunlight. She dwarfs the inlaid desk and all the other furnishings in the room. @@ -12199,7 +12199,7 @@ Once you've selected hard mode, you can't go back: certain puzzles with multiple Counterfeit Monkey is now in "hard" mode. Tutorials are off. The world is reconfigured against you. Good luck. >gonear language studies seminar room -(Language Studies Seminar Room) +(the Language Studies Seminar Room) Language Studies Seminar Room They recently redid this room, and whoever picked the decorations had postmodern tastes. @@ -12207,7 +12207,7 @@ The bookshelves lining the walls contain the department library. On the bookshel A massive plexiglas case takes up one corner of the room. In the plexiglas case is a compact but high-powered late model synthesizer. -The big table at the center of the room is an irregular polygon, with one red chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. +The big table at the center of the room is an irregular polygon, with one red chair pushed up to the shortest side. I think the shape is intended to undermine traditional conceptions of academic hierarchy, but in practice it just means that whoever gets to seminar late has to sit with a table angle jabbing him in the stomach. >x chair It is an ordinary inexpensive variety of chair, made locally and found around the island in great numbers. This one has been painted red. @@ -12277,7 +12277,7 @@ A fairly natural-looking extension, red in color, attachable by comb. It should We settle the red hairpiece on our head and adjust our hair underneath. >gonear cafe -Which do you mean, 1) where the Babel Café is, 2) Outdoor Café, the 3) café building, or 4) Babel Café? +Which do you mean, 1) where the Babel Café is, the 2) Outdoor Café, the 3) café building, or 4) Babel Café? >2 Outdoor Café