convNode not working right using adv3lite

I’m having trouble with a convNode object disappearing from scope before it’s completed (using adv3lite).

Harry and Max are having a conversation. Max asks a question and I don’t want Harry to be able to end the conversation without answering. So I have a stillOnTomorrow convNode with a NodeEndCheck that prevents Harry from ending the call prematurely.

That part works.

But if Harry (or, more precisely, the game player) responds with an unexpected answer instead of the Yes defined in the convNode, the conversation moves on and will no longer acknowledge the yes topic.

Here’s the transcript when Harry does what is expected (answers Yes to the question)…

But If instead of saying yes, Harry says something unexpected, then the Yes topic is lost forever…

Zipped game code (with a commented out attempt to recover using a reveal and the isActive property—didn’t work) is attached for reference.

Jerry (3.02 KB)

The problem is that you’re not doing anything in your code to trap the unexpected answers and keep then within the ConvNode. You need to add one or more DefaultTopics to the ConvNode to do this. The simplest might be something like this (straight after your NodeEndCheck object, or just before it if you prefer!):

++ DefaultAnyTopic
    "<q>But are we still on tomorrow, Dad?</q> Max repeated, ignoring your
    attempts to change the subject. <.convstay>"