Right, that’s what I mean: the code can’t determine if you’re trying to discuss, because there is no interlocutor. Ideally it would be nice to implicitly greet the person, then generate a new action to try asking them about the [something], but Inform doesn’t really allow that. This thread goes into some of the technical details.
But anyway, this doesn’t seem like improper behavior to me…? “Something” doesn’t refer to any quip defined in this code, so the error message is correct: that’s not a topic of conversation available, whether you’re talking to Bob or not.
And it shouldn’t be looking for a command named “Bob quip”: Understand "tell [someone] that/about [a typable quip]" or
"ask [someone] that/about [a typable quip]" or
"tell [someone] [a typable quip]" or
"ask [someone] [a typable quip]" as discussing it with (with nouns reversed)
when the second noun is the current interlocutor.
handles that case.
But, hmm, it’s not. And I can’t see why. This minimized extension+your example works:[spoiler][code]“ThreadedConversationExample” by Blecki
[Include Threaded Conversation BETA by Chris Conley.]
Include conversation framework by Eric Eve.
a quip is a kind of thing.
A quip can be informative or questioning.
A quip has text called the comment. A quip has some text called the response.
The quip-repository is a privately-named transparent closed unopenable container.
When play begins: now every quip is in the quip-repository.
After deciding the scope of the player while discussing, discussing something with:
place the quip-repository in scope.
Understand the commands “ask”, “tell”, “say”, “discuss”, “answer”, “a”, “t” as something new.
Discussing it with is an action applying to two visible things.
Understand “discuss [a quip] with [someone]” or
“say [a quip] to [someone]” as discussing it with
when the second noun is the current interlocutor.
Understand “tell [someone] [a informative quip]” or
“ask [someone] [a questioning quip]” or
“tell [someone] that/about [a informative quip]” or
“ask [someone] that/about [a questioning quip]” as discussing it with (with nouns reversed)
when the second noun is the current interlocutor.
Understand the command “a” as “ask”.
Understand the command “t” as “tell”.
Understand “discuss [text] with [something]” or
“say [text] to [something]” as a mistake (“You’re not talking to [the noun].”)
when the current interlocutor is nothing or
the noun is not the current interlocutor.
Understand “tell [something] that/about/-- [text]” or
“ask [something] that/about/-- [text]” as a mistake (“You’re not talking to [the noun].”)
when the current interlocutor is nothing or
the noun is not the current interlocutor.
[instead of subjectifying something to:
try saying hello to the second noun.]
Check saying hello to the player:
say “Talking to yourself is unrewarding.” instead;
Rule for supplying a missing noun when the second noun is a quip: try discussing the second noun instead.
Check discussing something with when the second noun is not the current interlocutor:
abide by the greet a new interlocutor rule.
Carry out discussing it with:
try discussing the noun.
Discussing is an action applying to one visible thing.
Understand “talk about/-- [a quip]” and
“say [a quip]” and
“discuss [a quip]” as discussing.
Understand “change the/-- subject to [a quip]” and
“tell about [a informative quip]” and
“ask about [a questioning quip]” and
“tell [a informative quip]” and
“ask [a questioning quip]” as discussing.
Gus is a man.
Bob is a man.
The radio is a thing. The player carries the radio.
After deciding the scope of the player when discussing (this is the place radio interlocutor in scope rule):
Place Gus in scope.
After deciding the scope of the player when saying hello to (this is the place radio interlocutor in scope when greeting rule):
Place Gus in scope.
an unimportant question is a questioning quip.
The comment is “X, Y? Maybe Z?”.
The response is “‘Xyyzy, clearly,’ says [the current interlocutor].”.
The oblong box is a room. “You can reach Gus through your radio.”
Bob is in the oblong box.
every turn: showme the current action.
test me with “ask bob question/ask bob about question”.[/code][/spoiler]
That means somewhere between here and the full extension code, some of those understand lines are breaking down. And that’s annoying, because this section is pretty much the only part of the code that deals with understanding.