I’m working on a new feature, which I‘m calling the “Wow-Pro Guide Picker.”
Part of it will be behind the scenes: If you get a quest for a guide that is registered for the guide picker, it will automatically switch to that guide. So if you start doing the Tillers dailies and then go off to August Celestials, the guides will just switch. Pick up the fishing daily in Dalaran, and it will just work. So WoWPro will remember—for any guide you have used—what quests it has, and use that as the data to do a switch.
But what if you want to quickly pick another guide? Well, ALT-TAB might pop up a window that looks like this:
The guide picker will query each module and ask it to generate a list of candidate guides. The leveling module will exclude zones that are too advanced or have been completed. The World Events module can look at the calendar and see what holidays are active. The dailies modules can consider your level and what factions you don’t have good reps with. But each module sends back its list with a preference-ranking from 0 to 100. The guide picker then merges the lists and shows you the top N guides you can pick from. You can click on the icon to choose it, or hit ALT-TAB till the right one is highlighted. I’ll let you guess where I stole the UI concept from :-).
This is going to change the way we register guides. The number of arguments to the guide registration would go way up and be crazy to manipulate. So instead of a Registration function per guide class, with a fixed set of arguments, we are going to have a single registration function with guide annotators. I think it is easier to show with an example:
WoWPro.Dailies:RegisterGuide("LudoTimeless", "Timeless Isle", "Timeless Isle", "MoP", "Ludovicus", "Neutral", function() WoWPro:Timeless() -- Set up NPC Scan to pick up the rares and elites! return [[
g=WoWPro:RegisterGuide("LudoTimeless","Ludovicus","Neutral","Dailies") WoWPro:GuideZone(g,"Timeless Isle") WoWPro:GuideIcon(g,"Achievement",8715) WoWPro:GuideLevels(g,90,nil) WoWPro:GuideILevel(g,489) WoWPro:GuidePicker(g,function() ... end) WoWPro:GuideGenerator(g,function() WoWPro:Timeless() -- Set up NPC Scan to pick up the rares and elites! return [[
The only mandatory parameters for a guide are its name, the author, the type, and the faction.
Some guides might set a minimum gear level. Others may define a special function for the guide picker or reference a canned one for the guide type.
I will probably also add a control panel—to set things like “I *really* love profession dailies”, “I am an achievement wacko“, or “I do dirty things for rep”—which will help the guide picker know how to weigh the guides.
Anyhow, it will slowly come alive! Comments and suggestions appreciated.