Hi there. I’ve been puttering around with conversation in I7 using Eric Eve’s Conversation Package, and I’ve run into a dilemma of sorts. I’ve solved it, maybe, but I’m not sure I solved it well.
The scenario is this: the player rings a doorbell, and a turn later an NPC answers it and says, “May I help you?” The player has something in mind to discuss already, so this action should start in a conversation node, with suggested topics.
The code I had was something like this:
[code]Ringing is an action applying to one visible thing. Understand “ring [something]” as ringing. The doorbell can be rung. The doorbell is not rung.
Instead of ringing the doorbell:
say “Ding![line break]”;
now the doorbell is rung;
Anna opens the door in one turn from now.
At the time when Anna opens the door:
say “The doorknob turns and the door opens. Anna steps out.”;
move Anna to Porch;
initiate conversation with Anna at intro-node;
continue the action.
intro-node is a closed convnode.
The tell-suggestions are { envelope }.
The other-suggestions are { yes-no-suggestion }.
node-introduction for intro-node:
say “May I help you?”.
[/code]
All well and good. The problem is that the conversation is initiated with Anna the turn after the door opens:
[code]>ring bell
Ding!
z
Time passes.
The doorknob turns and the door opens. Anna steps out.
z
“May I help you?”
(You could say yes or no; or tell her about the incriminating envelope.)
[/code]
Whereas what I want is for the node-introduction message and the topic list to happen in the turn Anna steps out.
To add to my confusion, even though the node-introduction hasn’t printed, the conversation has actually already started:
[code]>z
Time passes.
The doorknob turns and the door opens. Anna steps out.
hello, Anna
You are already talking to Anna.
“May I help you?”
(You could say yes or no; or tell her about the incriminating envelope.)
[/code]
This was quite frustrating for a while – the example game in Conversation Nodes’ documentation shows a character immediately launching into conversation when the player enters, but apparently this doesn’t work when it’s the NPC doing the entering.
My solution so far has been to add a new variation of “initiate conversation” that doesn’t schedule the change for the end of the turn:
To plunge into a/-- conversation with (new-speaker - a person) at/in/using/with (new-node - a convnode):
now the current interlocutor is new-speaker;
now the node of the current interlocutor is the new-node;
now the node-timer is the node-time of the current node;
follow the node-introduction rules for the current node.
And then we “plunge into conversation with Anna at intro-node”.
The question is: is there a better way to do this? Is there something that was already in Conversation Node that I’m missing? (More than likely.)