PriorityQueue

This project is abandoned.

Whether this project is out of date or its author marked it as abandoned, this project is no longer maintained.

If you wish to take this project over, please report it and state your intentions.

Priority Queue is a very simple idea. Based on your class you choose a list of abilities and place them in order (usually highest dps ability first). Priority Queue will then display the icon for that ability in a small frame when its available.

This way you can select a list of abilities to use and see the icon for the next skill in sequence. Where this works particularly well is for procs. eg: an Enhancement Shaman will have Lightning Bolt as top priority but only when he gets 5 stacks of Maelstrom Weapon buffs and thus its instant cast. Similarly a mage will want to use Pyroblast as top priority but only when he gets a hot streak.

Having had the ShockAndAwe addon available for over 6 months now I regularly get pleas from other classes/specs to do something similar for them. Priority Queue is that something.

Now of course as I don't have lvl 80s of all the different classes and specs I will rely on you the user community to provide the things that should be in the priority list for your class. I can code it and you can select it as a priority, in whatever order you like.

Initial Versions

In order to get the correct skills to work I need to do two things.

1) I need to know what skills your class/spec uses 1a) I need to know what conditions those abilities are used under - eg: only use when buff X on target or when Y procs - sometimes really simple - only use when available

2) I need to know what priority to use the skills in this is usually highest dps/threat first.

So when you install this early beta please be aware that your personal class/spec might not be enabled if this is the case please rather than moan, post the list of skills you use and I can add them to the list. You can then try to work out the priority order and let me know what works for you.

This project could be great for lots of classes but it needs input and support from the community for it to work.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of tlai tlai Jul 07, 2010 at 19:12 UTC - 0 likes

    Is it possible to add a priority queue so we can see what is coming next, similar to http://wow.curse.com/downloads/wow-addons/details/clcret.aspx so we can see the next spell available off cool down.

    Testing on my frost dk the priority frame seems to update too slowly (maybe because there is no queue) as i want to start spamming the next button asap, which is only a gcd so that when i cast a spell i am already spamming the next one but the frame is still blank.

    Hopefully you make these changes so i can use this for my enhance shammy as shock and awe doesn't have this either and doesn't seem to be update anymore. (the combo counter doesn't seem to be working for maelstrom too but this isn't important).

    Last edited Jul 07, 2010 by tlai
  • Avatar of craxton craxton Jun 30, 2010 at 06:43 UTC - 0 likes

    will this addon work for the deDE Client too? if not let me know wich files need a translation, i will do it :)

  • Avatar of Takamuri Takamuri May 31, 2010 at 15:36 UTC - 0 likes

    Arcane Mage Priorities:

    1st: Arcane Blast x3 (x3 self debuffs) 2nd: Arcane Missiles if you have Missile Barrage proc 3rd: Arcane Blast x4 4th: Arcane Barrage

    -- Spells
    C["Arcane Blast"], _, C["Arcane Blast Icon"] = GetSpellInfo(42897)
    C["Arcane Missiles"], _, C["Arcane Missiles Icon"] = GetSpellInfo(42846)
    C["Arcane Barrage"], _, C["Arcane Barrage Icon"] = GetSpellInfo(44781)
    C["Mirror Image"], _, C["Mirror Image Icon"] = GetSpellInfo(55342)
    
    -- Procs 
    C["Missile Barrage"] = GetSpellInfo(44401)
    C["Arcane Blast"] = GetSpellInfo(36032)
    
    --Priority List
    self.presets.priorities.name["Arcane"] =  L["Arcane"]
    self.presets.priorities.list["Arcane"] = { "ab_3", "am_mb",  "ab_4",  "abar", "none", "none", "none", "none", "none", "none" }
    
    --Spell Functionality
    
    PriorityQueue.priorityTable.name["ab_3"] = L["Arcane Blast x3"]
    PriorityQueue.priorityTable.icon["ab_3"] = C["Arcane Blast Icon"]
    PriorityQueue.priorityTable.test["ab_3"] = 
    	function () 
    		local sdebuff, sduration, scount = PriorityQueue:GetDebuffInfo(C["Arcane Blast"],true,"player")
    						
    		if scount < 3 then
    				return PriorityQueue:SpellAvailable(C["Arcane Blast"])
    		end
    	end
    
    PriorityQueue.priorityTable.name["ab_3"] = L["Arcane Blast x3"]
    PriorityQueue.priorityTable.icon["ab_3"] = C["Arcane Blast Icon"]
    PriorityQueue.priorityTable.test["ab_3"] = 
    	function () 
    		local sdebuff, sduration, scount = PriorityQueue:GetDebuffInfo(C["Arcane Blast"],true,"player")
    						
    		if scount < 3 then
    				return PriorityQueue:SpellAvailable(C["Arcane Blast"])
    		end
    	end
    
    PriorityQueue.priorityTable.name["ab_4"] = L["Arcane Blast x4"]
    PriorityQueue.priorityTable.icon["ab_4"] = C["Arcane Blast Icon"]
    PriorityQueue.priorityTable.test["ab_4"] = 
    	function () 
    		local sdebuff, sduration, scount = PriorityQueue:GetDebuffInfo(C["Arcane Blast"],true,"player")
    						
    		if scount < 4 then
    				return PriorityQueue:SpellAvailable(C["Arcane Blast"])
    		end
    	end
    
    PriorityQueue.priorityTable.name["mi"] = C["Mirror Image"]
    PriorityQueue.priorityTable.icon["mi"] = C["Mirror Image Icon"]
    PriorityQueue.priorityTable.test["mi"] = 
    	function () 
    			return PriorityQueue:SpellAvailable(C["Mirror Image"])
    	end
    
    PriorityQueue.priorityTable.name["am_mb"] = L["Arcane Missiles with MB"]
    PriorityQueue.priorityTable.icon["am_mb"] = C["Arcane Missiles Icon"]
    PriorityQueue.priorityTable.test["am_mb"] = 
    	function () 
    		local sbuff = PriorityQueue:GetBuffInfo(C["Missile Barrage"])
    				
    		if sbuff == true then
    			return PriorityQueue:SpellAvailable(C["Arcane Missiles"])
    		else
    			return false
    		end
    	end
    
    PriorityQueue.priorityTable.name["abar"] = L["Arcane Barrage NoMB"]
    PriorityQueue.priorityTable.icon["abar"] = C["Arcane Barrage Icon"]
    PriorityQueue.priorityTable.test["abar"] = 
    	function () 
    	local sbuff = PriorityQueue:GetBuffInfo(C["Missile Barrage"])
    		if sbuff == false then
    				return PriorityQueue:SpellAvailable(C["Arcane Barrage"])
    		end
    	end
    
    Last edited May 31, 2010 by Takamuri
  • Avatar of Takamuri Takamuri May 30, 2010 at 13:00 UTC - 0 likes

    I was able to 'fix'(its more of a bandaid) a bug where the addon displays no suggestion for the next priority. I believe what is happening is the addon removes the suggestion after a failed spell cast. (see Curse message board for Priority Queue for other people having issue). It probably uses SLIGHTLY more memory (as you can see via debug) but it works for now:

    if PriorityQueue.db.char.priority.next ~= PriorityQueue.db.char.priority.previous then
    	PriorityQueue:SetPriorityIcon(PriorityQueue.db.char.priority.next)
    end
    

    TO:

    -- if PriorityQueue.db.char.priority.next ~= PriorityQueue.db.char.priority.previous then
    	PriorityQueue:SetPriorityIcon(PriorityQueue.db.char.priority.next)
    -- end
    
  • Avatar of Jiminimonka Jiminimonka May 15, 2010 at 10:52 UTC - 0 likes

    I recommend you take a loot at Watcher also.

    http://wow.curseforge.com/addons/shotwatch/

    Since the developer seems to have vanished, your addon might become its replacment, and it certainly has a lot of nice config options.

    Last edited May 15, 2010 by Jiminimonka
  • Avatar of richard2114 richard2114 May 11, 2010 at 10:55 UTC - 0 likes

    Hiya, Have not downloaded the addon, so have no clue as to how it works. I just found this addon (a few minutes ago) while looking for a replacement for my fav addon: "watcher" from Gelin (shotandawe and others). Gelin have not been seen for more than a year and although his addons work tremendously well still. Cataclysm is nearing and I fear I have become dependant on "watcher" (priority cast management) and most likely watcher will not survive cataclysm... I was rdy to set myself the task to learn the code and work with the addon, but first, check if others are working on similar things!

    Anyway, that addon rocks (for rangers at least, any spec). It has autoshot ticks, informs you when to change to viper and back to dragonhawk (configurable), handles explosive shot under "lock and load" and do all sort of other nice things for chymera shot. And it is totally configurable. I have it set for my DK too and it work like a charm with rune cooldowns and rune power and it even prioritise casts according to deceases on target. Its wonderful, (aside for a small bug that hides the icons for my DK until I hit my first priority cast, then the icons appear and everything is great).

    You guys are working on something like this? have you had a look at "Watcher" from Gelin? It sounds as if in this addon the priority cast is done for you, in watcher, you set your own priorities and the addon just display them to you in an optimised manner. (just from reading description and posts, have not downloaded the addon yet).

  • Avatar of Cynicster Cynicster Feb 11, 2010 at 14:44 UTC - 0 likes

    @Surge - Concerning the MM rotation: - Rapid Fire' use should be manually determined as it will depend on whether one wants to use it for mana regen or to maximise DPS at a key point in a fight. The former could be calculated by an addon whereas the later cannot. - Arcane Shot should not feature in a MM hunter's rotation as it doesn't benefit from ArP and therefore results in a DPS loss for its mana cost. It's only used is as gap filler when moving and other instants are on cooldown. - Aimed Shot should be prioritised over Readiness so that when Readiness is triggered Aimed Shot's cooldown is reset as well. - Readiness' use should also be manually determined for maximum efficiency.

    Apologies for the small topic derail ;)

  • Avatar of Pericles Pericles Oct 08, 2009 at 17:29 UTC - 0 likes

    Re: Hunter priorities - No sorry nothing should be assumed. If Hunters mark is important and its not on the target and its regarded as a high priority that it be on the target then it should warn you need hunters mark its not difficult and is precisely the purpose of the addon.

    Why would you want to risk forgetting hunters mark when you could be warned about it.

    Re: time to die and effects that has. I appreciate this makes a difference to priorities and thus changes what you might want to do and isn't currently implemented however it WOULD be a useful thing to have and isn't that difficult to calculate. I would of course only bother with calculating time to live for any mob tagged as a "World Boss" ie: Raid/Instance level bosses.

    Thanks for the details of what priority skills should be included. Unfortunately you didn't actually give any conditionals on any of the skills. I recently found out that Explosive shot for instance shouldn't be cast if the last explosive shot debuff is still on the boss. Your list doesn't include this.

    This is the BIG difficulty of getting such an addon to work for a class I don't have a level 80 of. People aren't thinking things through what I need is a list of the EXACT conditions that must be present to use a skill. For a limited number of skills this is simply the skill is off cooldown. However for lots of skills there are extra conditions eg: don't use if debuff still on target, only use when you have buff X.

    For any of the lists to be useful I need a full list of the EXACT conditions for each skill. Then and only then can they be put in any meaningful order.

  • Avatar of Surge Surge May 21, 2009 at 18:50 UTC - 0 likes

    Hunter priorities

    For simplicities sake, Hunter's Mark should be assumed, Kill Command should always be on cooldown, and trinkets and/or Blood Fury should be used with Rapid Fire (which will always stack with other cooldowns).

    It should also be noted there is a ton of situational hand-holding that simply can't be done by this addon, unfortunately. For example, if the NPCs time to die is under 40 seconds you should not apply Hunter's Mark unless OOC, and if it's under 20 seconds, you should never use Serpent Sting. This has to be estimated, which I believe is beyond the scope of this addon.

    MM spec:

    • Serpent Sting
    • Rapid Fire if missing at least 10% mana and spec'd into Rapid Recuperation, otherwise it is first priority
    • Chimera Shot
    • Kill Shot
    • Arcane Shot
    • Readiness
    • Aimed Shot
    • Steady Shot, unless any of the above has less than .5 seconds on CD.

    SV:

    • Black Arrow
    • Rapid Fire
    • Explosive Shot
    • Serpent Sting
    • Steady Shot, unless Serpent Stings duration is under 3 seconds and Explosive Shot cooldown will come up during the GCD. In this case, Serpent should be reapplied if possible (I believe it throws a more powerful spell error if AP varies; unsure)

    BM:

    • Bestial Wrath, unless can be stacked within 15 seconds with trinkets, Rapid Fire and/or Blood Fury
    • Arcane Shot
    • Multi/Aimed Shot
    • Serpent Sting
    • Steady Shot
  • Avatar of bastetswarrior bastetswarrior May 16, 2009 at 19:54 UTC - 0 likes

    Re: front243

    We'd have to rewrite things quite a bit to make it more user configurable. Each action would need to have an associated list of user configurable triggers such as cooldown time for spells and items, aura checking for valid unitIDs, health/power/threat/rune checking for valid unitIDs, combo point checking for self and target. Most users would just want a ready made list to work with, but you are right that a select group would like more control.

Facts

Date created
Mar 20, 2009
Categories
Last update
Jul 23, 2010
Development stage
Abandoned
Language
  • enUS
License
GNU General Public License version 3 (GPLv3)
Downloads
10,828
Recent files
  • A: r69 for 3.3.5 Jul 23, 2010
  • A: r68 for 3.3.5 Jun 26, 2010
  • A: r67 for 3.3.5 May 14, 2010
  • A: r66 for 3.3.3 May 07, 2010
  • A: r65 for 3.3.3 May 07, 2010

Authors