Dialogue Skipping and Bug # 1
So, I finally sat down and worked through why I couldn't get dialogue skipping working. It was being caused by the fact that there is a disconnect in data; the "time remaining" value is stored in both the task and the dialogue UI control. So, even though I was killing the task, the time remaining for the control remained the same and thus the control stayed visible (and the script works based on the control's time remaining.)
Bug # 2
I corrected that and was able to skip the text...but then no text after it would appear. Thus enters bug #2, which was caused by the fact that I'm kind of dumb. The system is setup so that when a character says something, it creates a SpeechBubble and adds it to a SpeechBubbleCollection. The collection searches all of the current ones and replaces any entry that is already active for that character. This way, only a single speech bubble is active for any character at one time. I achieved this by copying the contents of the new item over the old item (dumb). The task was added at a later point (the first time I tried making it so you can skip dialogue) and I never updated the code that copied the values over. So, I've switched the system to just replace the entry rather than copy the data over (not sure why I didn't do that in the first place.)
This led to yet another issue. Originally the text was just displayed one after another. However, I wasn't a big fan as it made it very hard to keep up. So, in script I went through and added a 0.5 second delay in between each dialogue call. The issue being that there is no way for me to skip that when skipping dialogue; so there was an extended delay before showing the next dialogue line. So, I've decided to add that half a second directly to the task for the dialogue line. So now, if you skip that line of dialogue, the half a second is skipped as well.
I've added some popup messages at the beginning of the tutorial, but I'm not really sure about them. It's only 3 popups for you to click OK on, but I hate being intrusive. I'm thinking of possibly something that just pops up in the corner or something. Here's a shot of what I have set up now:
I'll have to see about implementing something different. The problem with using on-screen text is that I have to display it for a long time and as a character isn't saying it (and thus input is not locked) it can't be skipped.
I'm working on implementing a difficulty system similar to that of The Curse of Monkey Island. Basically, from the options menu you select Normal or Hard. This setting is available from the scripting engine and thus scenes can be load objects based on the difficulty. For those that haven't played The Curse of Monkey Island, there was normal mode and a "Mega Monkey" mode which had more puzzles. So, depending on the difficulty setting, there may be more puzzles or some puzzle steps may have already been completed.