Chapter 7: Other Characters
7.7. Saying Simple Things

There are times when even the commands ASK and TELL are overkill: sometimes the player doesn't have much information to offer, so TELL is never useful, for instance. If we don't want to make any distinction between modes of conversation, we can conflate the actions so that ASK LUCIUS ABOUT OLLIVANDER, TELL LUCIUS ABOUT OLLIVANDER and LUCIUS, OLLIVANDER all do the same thing: see Sybil 1.

If we are frequently permitting the player to say things like LUCIUS, OLLIVANDER as shorthand for "talk to Lucius about Ollivander", then we may also want to allow LUCIUS, OLLIVANDER? This makes the player character seem a bit slow (or at least Laconic), but it is an effective interface in some cases. The trick is that the question mark at the end of the command may prevent Inform from recognizing the keyword; should that problem arise, we may want to use Punctuation Removal to erase question marks from the player's command before attempting to interpret it.

Along the same lines, there are situations in conversation where similar commands do not correspond to the same actions within Inform; if we're careless about this, we may force the player to guess which vocabulary we want him to use, which is always vexing. Some cases to look out for:

Inform has actions for "saying yes" and "saying no". Sometimes this is useful, but sometimes we want YES and SAY YES TO FRED to do the same thing. Sybil 2 shows how to roll these responses into one; Proposal expands on the idea to show more ways in which a player could reasonably answer a question put by another character.

Again, if we want ASK SYBIL ABOUT CAKE to do the same thing as SHOW CAKE TO SYBIL, we might use the technique in Nameless to make objects into valid topics of conversation, and to make ASK and SHOW behave the same way.

* See Remembering, Converting and Combining Actions for ways to redirect one conversation command to another conversation topic

* See Varying What Is Read for a way of asking the player trivia questions that he can answer only on the next turn


91
* Example  Sybil 1
Direct all ASK, TELL, and ANSWER commands to ASK, and accept multiple words for certain cases.

WI
93
** Example  Sybil 2
Making the character understand YES, SAY YES TO CHARACTER, TELL CHARACTER YES, ANSWER YES, and CHARACTER, YES.

WI
171
** Example  Proposal
Asking the player a yes/no question which he must answer, and another which he may answer or not as he chooses.

WI

Suppose we want to ask the player a question where he might say yes or no in response. There are two possible forms of this: the modal question where the player must pick one to proceed, and the non-modal question where he might also type other verbs.

"Proposal"

The story genre is "A Worked Example about Yes/No Questions".

Section 1 - Asking a Modal Yes/No Question

When play begins:
    say "Do you like Mr Spruce? ";
    if player consents, now Spruce is handsome;
    otherwise now Spruce is ugly;
    say paragraph break.

Section 2 - Mr Spruce's Non-Modal Question

Use full-length room descriptions.

The Conservatory is a room. "You are in a room full of plants."

Mr Spruce is a man in the Conservatory. Mr Spruce can be apprehensive or calm. Mr Spruce is calm. Mr Spruce can be handsome or ugly.

At 9:02 AM: say "Mr Spruce flings himself to his knees and implores you to become his lawfully wedded wife.";
    now Mr Spruce is apprehensive;
    Mr Spruce gives up in two minutes from now.

At the time when Mr Spruce gives up:
    say "Mr Spruce sighs heavily, seeing that you don't intend to reply. 'Never mind, my dear, I'll ask later. Perhaps I should have spoken to your Papa first... yes, a gently-bred female... no wonder...'";
    now Mr Spruce is calm;
    Mr Spruce departs in one minute from now.

At the time when Mr Spruce departs:
    if the player can see Mr Spruce, say "Mr Spruce takes his leave of you.";
    otherwise say "Mr Spruce pokes his head in to say that he is leaving.";
    end the story saying "Well, that is over..."

Instead of saying yes in the presence of an ugly apprehensive Mr Spruce:
    now Mr Spruce is calm;
    say "Remembering what your mother said to you about the stock exchange and Dear Papa, you close your eyes and accept Mr Spruce.";
    end the story saying "Alas for your maiden hopes."

Instead of saying yes in the presence of a handsome apprehensive Mr Spruce:
    now Mr Spruce is calm;
    say "You are silent with delight for a moment before you say yes, yes!";
    end the story saying "How Genevieve Stubbs will cry!"

Instead of saying no in the presence of an ugly apprehensive Mr Spruce:
    now Mr Spruce is calm;
    say "Gently you inform Mr Spruce that it is impossible. He seems less deflated than you had expected.";
    end the story saying "Odd, that..."

Instead of saying no in the presence of a handsome apprehensive Mr Spruce:
    now Mr Spruce is calm;
    say "You lower your eyes and refuse petulantly, hoping to stir him to a more ardent repetition of these same requests. But then -- alack! -- he says 'I see how it is!' in a strangled voice, and strides from the room!";
    end the story saying "A fatal error!"

And since the player might SAY YES TO SPRUCE, we had better reroute the relevant options:

Instead of answering Mr Spruce that "no", try saying no.

Instead of answering Mr Spruce that "yes", try saying yes.

Instead of asking Mr Spruce to try saying yes, try saying yes.

Instead of asking Mr Spruce to try saying no, try saying no.

Instead of saying sorry, try saying no.

Instead of asking Mr Spruce to try saying sorry, try saying no.

Instead of answering Mr Spruce that "sorry", try saying no.

Test me with "z / z / z / yes".

Test more with "z / z / z / no".

286
** Example  Nameless
ASKing someone about an object rather than about a topic.

WI


PreviousContentsNext