Step Skipping - Step Dependencies(More use of |PRE|)
CodingDino opened this issue ยท 10 comments
In order to support step skipping, we need to provide step dependency data as well. This will need to be the responsibility of guide authors.
Steps should be dependent on previous quests. Complete/Turn in steps should NOT be dependent on accept quests.
This feature will work by building a database of skipped quests. A step with a dependency listed will check the skipped quest table - if it's dependency is there, it will not display and will be grayed out (x'd out?) in the full guide list. It will also check the completed quest table to make sure the user didn't click "skip" when they really had already completed the quest (this shouldn't happen, but it will be a failsafe).
Alright, so here is how I'm planning to implement this:
Left click skips the step. I'm assuming people will more often be skipping a step than they will be manually completing it. Right click will manually complete the step.
When a step is skipped, it is added to a database, WoWProDB.char.guide.skippedQIDs.
When a step comes up, it checks it's QID against the skipped steps database. If it's there, it skips it.
When a new step comes up that has a |PRE| tag, it checks it against the skipped step database. If it's there, it will skip the step, and add the new quest ID to the skipped quest database as well.
In the current guide panel, skipped steps will turn gray and have an X in the checkbox. Clicking on the X will uncheck it. Right clicking manually checks it off, and left clicking skips, just like in the normal guide panel.
Success! When you un-skip the first quest, the dependent quest now also un-skips. I think it's okay to leave this as the only option for the behavior - it's possible someone would NOT want to un-skip the later quest, but not likely, and they can always manually re-skip it.
Multiple prerequisites now supported. The only thing left to add is the tooltip stating what the dependency is, and I think that can wait for now.
Okay. I'm using a gray checkmark to denote a skipped step, since I couldn't find an X.
At the moment, when you skip a step that has things dependent on it, those things also get skipped. However, you can't unskip them without unskipping the first step first -- which is roughly the correct behavior --- BUT when you unskip the first step, the ones father along also remain skipped. I don't think I like this. We'll see what can be done.
Also, it would be really nice to know why later steps were skipped. Being able to mouse over it and see the dependency would be ideal. Not sure how possible this is, though, if we are using QIDs instead of names.
Also, still need to add a warning, which can be turned off, and a method for giving a quest multiple prerequisites.
Question - do we want to make them right click and select "skip" - or do we want to assume that things are working correctly, that auto-complete always works, and make clicking manually skip the step? I personally would prefer the second option, and that is roughly how Tour Guide handled things.
Assuming that things are working correctly is usually the quickest way to discover that things are not working correctly. That said, tbh, I don't think I see any benefit to hiding it in a sub-menu. You'll learn this is almost always my answer, as if you hadn't learned that already. ;)
I would prefer a distinction between left/right clicking on the checkoff box versus the step label. For instance: Left click the checkbox to manually complete the step, right click the checkbox to manually skip the step and add it to the DB of skipped steps (possibly with a confirmation dialog popup explaining the consequences), left click the step title to view the relevant quest in the quest log, and right click the step title to display the coordinates and/or push them to tomtom. That's how I'd do it. :)
Also, be sure that if you have skipped the quest in the addon, but have since gone back and completed that quest, that there is a way to update the addon with this information.
Finally, I think it would be wise to make sure that steps which have a skipped dependency in the DB can still be manually unchecked and displayed in the guide window - in case of an error in the DB of skipped quests/dependencies.