I7 : Getting started with conversation

I’m stumbling about aimlessly, trying to figure out how to add some dialog. I figured a good place to start was to create some topics for the persons to talk about:

[code]A talk-topic is a kind of thing.
A talk-topic is privately-named.
A talk-topic can be used or unused. A talk-topic is usually unused.
A talk-topic has some text called audio.
The audio of a talk-topic is usually “I do not care about that.”.

goat-racing is a talk-topic.
The audio of goat-racing is usually “They’re so fast. That is why we all love watching it.”[/code]

Now, I want every person in the game to have their own goat-racing topic, so they can reply with their own very individual audio.

How do I do that? Or is there better dialog-code out there which I should rather get ‘inspired’ by?

Have you read the recipe book?
§7.12. Characters Following a Script
§7.8. Saying Complicated Things
Are good places to start. Read the examples, you might get ideas.

Thanks! Trying to get my head around Tables now …

(okay, this is a big subject … gonna go offline, make some tea, and read some §16)

Yeh. Even I haven’t got my head completely around tables as of yet. Good luck pal.

Okay, my first table thing! After a greeting and a hint that he has the code, Gork will smalltalk a lot and then finally give you the code.

[
URGENT-CONVERSATION
This is talk which is seen one-time only. They are picked in order of prio. Some of them are locked and some of them will unlock others.
reply-title is simply a title.
prio is which one comes first.
used is true if this one has already been displayed.
enabled is if they can be used. (normally true, but some of them may be locked from the beginning
enable-smalltalk refers to the smalltalk entry it make enabled true ("none" if it don't)
enable-urgent refers to the urgent entry it make enabled true ("none" if it don't)
reply is what is said.

SMALLTALK-CONVERSATION
This is talk which repeats. They are picked at random. However, some of them are locked and some of them will unlock others.
reply-title is simply a title.
single is if they are single-used (normally false, but if they unlock another, they are sometimes true)
enabled is if they can be used. (normally true, but some of them may be locked from the beginning
enable-smalltalk refers to the smalltalk entry it make enabled true ("none" if it don't)
enable-urgent refers to the urgent entry it make enabled true ("none" if it don't)
reply is what is said.
]

Chapter - talk

A person has a table name called urgent-conversation. 
A person has a table name called smalltalk-conversation. 

Understand "talk to [someone]" as talking.
Talking is an action applying to one thing.

Report talking:
	let the urgent-source be the urgent-conversation of the noun;
	let the smalltalk-source be the smalltalk-conversation of the noun;
	Sort urgent-source in prio order;
	Repeat through urgent-source:
		If enabled entry is true:
			If used entry is false:
				Say "[reply entry][paragraph break]";
				Now used entry is true;
				If enable-urgent entry is not "none": [turns on the next sentence]
					Now the enabled corresponding to a reply-title of "[enable-urgent entry]" in the urgent-source is true;
				If enable-smalltalk entry is not "none": [turns on the next bs sentence]
					Now the enabled corresponding to a reply-title of "[enable-smalltalk entry]" in the smalltalk-source is true;
				Stop;
	Sort smalltalk-source in random order;
	Repeat through smalltalk-source:
		If enabled entry is true:
			If used entry is false:
				Say "[reply entry][paragraph break]";
				If single entry is true:
					Now used entry is true;
				If enable-urgent entry is not "none":
					Now the enabled corresponding to a reply-title of "[enable-urgent entry]" in the urgent-source is true;
				If enable-smalltalk entry is not "none":
					Now the enabled corresponding to a reply-title of "[enable-smalltalk entry]" in the smalltalk-source is true;
				Stop;
				


Chapter - World

Home is a room.

Gork is a man in home.
The urgent-conversation of Gork is the Table of Gork-Urgent.
The smalltalk-conversation of Gork is the Table of Gork-Smalltalk.

Table of Gork-Urgent
reply-title	prio	used	enabled	enable-smalltalk	enable-urgent	reply
"code"	1	false	false	"none"	"none"	"'It's time to tell you ... the code is ELBOW'"
"greeting"	2	false	true	"none"	"none"	"'I'm Gork.' he says."
"message"	3	false	true	"none"	"none"	"'I know code. I may tell you later.'"

Table of Gork-Smalltalk
reply-title	used	single	enabled	enable-smalltalk	enable-urgent	reply
"ignore"	false	false	true	"none"	"none"	"He ignores you."
"stuff1"	false	false	true	"none"	"none"	"'I'm Gork ... hey, I already said that!'"
"stuff2"	false	true	true	"stuff3"	"none"	"'You talk lot.'"
"stuff3"	false	false	false	"none"	"code"	"'As I said, you talk a lot.'"


I’m very happy you figured out tables!
Only I’d be wary of using this kind of thing in a real game only because that is not how a traditional IF works.
To get the code “elbow” you simply just have to keep saying “talk to gork” which is very repetitious.
As the player I should be able to “ask gork about code”.

It’s fine to start off a conversation with “talk to gork” because the player at this point has no information to “ask” or “tell” about, but after Gork mentions that he has a code and he will tell you at some point, the player will try and “ask gork about code” which is a reasonable thing, but when you type “ask gork about code” it has the default phrase “there is no reply”.

To get the code “elbow” all I, as the player, has to do is type “talk to gork” and then the shortcut “g” four times and I have the code!
A bit boring and this is very far from a real conversation.

This is something to keep in mind. Always imagine oneself as the player.

Still, good luck!