Thank for the suggestion - I looked at it, and while "Play On Enable" was unticked, I had "Wait One Frame Before Starting" TICKED. I un-ticked that and ran it again a few times and haven't encountered it, and it actually seems to be running smoother too.
Thanks again! Really loving this system, I got the Save System running as well and it's incredibly flexible.
One more question - I want to implement a sort of "insult swordplay" mechanic from Monkey Island, where you fight pirates by trading insults, and learning new ones from the ones you defeat.
Is it possible to use a Scriptable Object to hold new responses, and then have a Response Menu look at that SO database? Essentially just using a list[] of strings of responses. It would save me having to manually write each potential response for each individual fight, however, if this is out of the scope of Dialogue I totally get it.
Or, I wonder, can a Response Menu reference a list of text variables from within the Dialogue System? I know you can set up bools and other variables within Dialogue, but can you make a dynamic Response Menu from that?
What I've done for now with my test 'fight' is I have a set list of responses, and the one you 'learn' is locked off until you hear it from the enemy, at which point you can pick again from the same menu, but the list now shows the learned insult.
Dialogue newbie - point-and-click interface
Re: Dialogue newbie - point-and-click interface
Hi,
No need for a ScriptableObject. You can create a conversation, or a branch of a conversation, that has the insults:
Use their Conditions to block off each one until you set a corresponding DS variable:
For example, if an NPC says "Your father smells of elderberries," then in that NPC node use the Script field to set the Insult.Elderberries variable true. In the corresponding player node's Conditions, require that this variable is true.
If you're going to use insults in multiple places -- not just in a single, reusable battle conversation -- then you can use the conversation position stack. This is a more advanced feature, so you might want to save it for later experimentation. Briefly, there are two Lua functions you can use in Script fields: PushConversationPosition() records the current conversation state. Then you can use a cross-conversation link to dip into an Insults conversation. At the end of the Insults conversation, use PopConversationPosition() to record to the position that you recorded before dipping into the Insults conversation.
No need for a ScriptableObject. You can create a conversation, or a branch of a conversation, that has the insults:
Use their Conditions to block off each one until you set a corresponding DS variable:
For example, if an NPC says "Your father smells of elderberries," then in that NPC node use the Script field to set the Insult.Elderberries variable true. In the corresponding player node's Conditions, require that this variable is true.
If you're going to use insults in multiple places -- not just in a single, reusable battle conversation -- then you can use the conversation position stack. This is a more advanced feature, so you might want to save it for later experimentation. Briefly, there are two Lua functions you can use in Script fields: PushConversationPosition() records the current conversation state. Then you can use a cross-conversation link to dip into an Insults conversation. At the end of the Insults conversation, use PopConversationPosition() to record to the position that you recorded before dipping into the Insults conversation.
Re: Dialogue newbie - point-and-click interface
Beautiful, that gives me a great starting point! Thank you again.
Re: Dialogue newbie - point-and-click interface
Glad to help!