In Inform 7, using the following conversation code:
A person has a table name called conversation. Asking someone about something is speech. Telling someone about something is speech. Answering someone that something is speech. Asking someone for something is speech.
Instead of speech when the noun is a person:
repeat through the conversation:
if the topic understood includes topic entry:
say “[reply entry][paragraph break]”;
I then have a table such as:
Table of John Doe’s Conversation
“war” “it’s quite sad, isn’t it.”
Is there a way to easily fit in an Understand function in this table? So that the game will recognize players typing “conflict”, “battle”, or “that mess outside” as “war”? I could just fill up my table infinitely with every possible variation of the topic and just copy/paste replies as necessary, but when working with more elaborate and lengthier replies, this becomes unwieldy.
Topic columns basically are Understand functions. SO if you put something like this in your table:
Table of Conversation
"conflict/battle" or "that mess outside" "Uh-huh."
then Inform will understand it as you expect–ASK WILHELM ABOUT CONFLICT, ASK WILHELM ABOUT BATTLE, and ASK WILHELM ABOUT THAT MESS OUTSIDE will all yield the proper response. See §16.13 of Writing with Inform on topic columns (particularly the bit at the very end).
By the way, it’s very helpful if you enclose your code in code tags–not only does that help it stand out from everything else, it preserves the tabs, so it can be copy-pasted into someone’s Inform app (for testing, for example). Use the “code” button above the box where you type your comment.
Excellent, thanks very much for the tip, matt w.
Oh, if you’re ever in a position where you do have to put the same quoted text multiple times in your source, it’s a good idea to use a text substitution:
[code]Instead of asking John about “war”: say “[faux pas]”.
Instead of asking Grace about “melons”: say “[faux pas]”.
To say faux pas: say “You wouldn’t dream of mentioning such a subject.”[/code]
Not only does that save a lot of typing, it ensures that everything stays in sync when you edit it, and is basically super helpful.