Remembering by Aaron Reed Search for other extensions by this author Approved for the Public Library

Versions

Download version 9/140430For Inform 7 6L38

Links

Description

Replaces 'You can't see any such thing' for a seen but out-of-scope noun with a message acknowledging that the parser recognizes the object. With Glulx, also keeps track of where the player last saw that object.

Tags parser pc

Documentation

The parser message "You can't see any such thing." is used both when the player types a noun the game does not understand, and when he types one that is not currently visible. This extension replaces the message in the latter case (if the player knows about the object in question) with a message acknowledging that the game knows that object exists. In Glulx games, the extension also tracks where each object was last seen and shares that info with the player. We do this with a new internal verb, "to remember," which is triggered by any attempt to examine, take, or drop a "seen" but not visible noun. ("Seen" is defined in the required Epistemology by Eric Eve extension.) Disambiguation questions during remembering are usually fairly pointless, since the command isn't going to succeed anyway. We replace them with a generic "You can't see that" style message that doesn't reference a specific noun. If you *do* want to ask disambiguation questions while remembering, add the following line to your code: The Remembering don't disambiguate while remembering rule is not listed in any rulebook. In Glulx games, the message additionally reports the last thing the player witnessed enclosing the item, be it a room, supporter/container, or person. To describe the parent of the remembered item, a new activity is provided called "saying the location name of something". Rooms, for instance, are by default described like "at 'Stage'" (since it's difficult to know whether authors have given their rooms names that will make sense in a natural-language sentence). You can override this for specific rooms by creating a more specific rule: For saying the location name of Stage: say "on the main stage". You could also (for instance) make rules to describe items remembered to be in the possession of certain groups of people: For saying the location name of a person who is a thief (called the villain): say "pilfered by [the villain]". (See the Rules tab of the Index pane or the final section of the extension itself for a list of the built-in rules.) All these and the other responses generated by the extension can be seen with the RESPONSES testing command, and modified by giving them a new value. For instance, to change the way an item remembered to be in a room is reported: The Remembering saying room name rule response (A) is "in the area known as [the place]". Note: this functionality should work for most games, but assumes that the player character does not change, that time is sequential over the course of the game, and that the player does not observe objects moving in unusual ways (such as during a cut scene). If any of these assumptions are incorrect for your game, you'll need to replace or adjust this chapter. A final note: if your game makes use of "any" tokens in your Understand lines, you may want to replace the "Remembering replace did not make sense in that context" rule with one that works for your game. (This rule ensures that the "You can't see any such thing" message is still printed for unrecognized words, or nouns which haven't been encountered yet.) Example: * Memory Lane - A simple example. *: "Memory Lane" Include Remembering by Aaron Reed. l964 is a room. A 7-inch reel of tape is in l964. The Ghost of Audio Mediums Future is a man in l964. "A hooded figure, the Ghost of Audio Mediums Future, beckons forward into a cellophane-shrouded future." Understand "forward" or "future" as north. Understand "back" or "past" as south. North of l964 is l975. Some eight-track tapes are in l975. l980 is north of l975. A double album is in l980. l986 is north of l980. Some cassette tapes are in l986. l991 is north of l986. A compact disc is in l991. l999 is north of l991. Some Napstered MP3s are in l999. Circa 2006 is north of l999. The printed name of Circa 2006 is "2006". An iPod Nano is in Circa 2006. Test me with "future / x reel / future / x tapes / x ghost / future / future / x tapes". Section - Remembering Room Names (for Glulx only) The Remembering saying room name rule is not listed in any rulebook. For saying the location name of a room (this is the new saying room name rule): say "in [the item described]". Example: * A Happening - A more confusing example testing the more complex Glulx reporting capabilities. *: "A Happening" Include Remembering by Aaron Reed. A room called Southwest Corner is south of a room called Northwest Corner. A room called Northeast Corner is east of Northwest Corner and north of Southeast Corner. Southeast Corner is east of Southwest Corner. Alice and Diana are women in Northwest Corner. Bob, Carl, and Earl are men in Southeast Corner. The pedestal is a fixed in place supporter in Northwest Corner. On the pedestal is an open transparent container called the glass bowl. The miniature train is an enterable vehicle in Southeast Corner. A birdcage, a jar of marmalade, and a mitten are in Northeast Corner. The birdcage is an openable closed transparent container. In the birdcage is a rosary. A weather vane, a jar of peanut butter, and a croquet mallet are in Southwest Corner. Every turn: repeat with char running through people who are not the player: let decision be a random number between 1 and 3; if decision is 1: let item be a random portable thing enclosed by location of char; if item is a thing and char can see item: if item is openable and item is closed and a random chance of 2 in 3 succeeds: try char opening item; otherwise if item is openable and item is open and a random chance of 2 in 3 succeeds: try char closing item; try char taking item; otherwise: now decision is 2; if decision is 2: let item be a random thing held by char; if item is a thing: let resting place be a random supporter enclosed by location of char; if resting place is a supporter and char can see resting place: try char putting item on resting place; otherwise: now resting place is a random open container enclosed by location of char; if resting place is a container and char can see resting place: try char inserting item into resting place; otherwise: try char dropping item; otherwise: now decision is 3; if decision is 3: if char is not enclosed by a vehicle and char can see a vehicle (called conveyance) which does not enclose a person who is not the player: try char entering conveyance; otherwise if char is enclosed by a vehicle and a random chance of 1 in 2 succeeds: try char exiting; let current space be location of char; let next space be a random room which is adjacent to current space; let way be best route from current space to next space; try char going way. Test me with "n / z / e / z / s / z / w / x bowl / x marmalade / x mitten / x bob / x rosary / x diana" Section - Better descriptions (for Glulx only) First for saying the location name of a container: say "fancifully situated within [the item described]". First for saying the location name of a supporter: say "positioned rather artistically atop [the item described]".