I want to have a list of topics shown to PC and then add some options to it only when they're mentioned in some other bit of dialogue (i.e. info). I can't really make it work though. I can set a branch as top-level which will make it available from the beggining, or as normal which will treat it basically as a response -- exactly like topics inside a branch -- so it will be the only choice and after that the player returns to original topics. And I want it in the general topic list but not by default.
I think it may not be clear what I mean so i'll give an example (based on the actual dialogue I'm working on).
I have topics A, B and C available to PC.
When the player clicks on topic A, he gets some response and goes back to the topic list with the same options A, B and C.
If the player clicks on B, he gets some info, then has to choose one of 2 responses (topics), gets another info and goes back to the general list. But now there's also an option D, because there was something mentioned in that conversation.
Or he can click C instead which will give him a simple info but also unlocks topic D.
I think it would be very simple to do if we could use variables. So I could make a script that says "set optionD to 1" and use it with infos in B and C branches. Then I could require a condition "optionD is 1" in order to show topic D. But as far as I know we can't use variables in dialogues (can we?). So the closest thing are quest stages but I don't think it's a good idea to overuse them. Also they are still limiting.
And I could add a LOT of links but that also doesn't seem like a good way to do this.
So... Any suggestions? Ways to go around limitations?
PS. There are possible conversations that are even more complex. For instance there could be an option E which would become available once the PC used topics C and D. So it can't be just set that it shows up after option D, because the player could say B, then D, and in this case he still needs to click on C.
You know what I mean? How do I do stuff like this?
PS2. When I set a branch as top-level (which is a default type) does it change anything if I link to it or not?
