Ovale Spell Priority

195 - Improved handling of combo points

Druids have a passive ability called Primal Fury (http://www.wowhead.com/spell=16961) which returns 15 rage on Mangle and auto-attacks while in Bear form and two combo points while in cat form from single target combo point abilities (Mangle, Rake, Shred, Ravage, Shred! and Ravage!).

The "SPELL_DAMAGE" event is sufficient to determine when a combo point has been added. It is also sufficient to determine when two need to be added. Here is some lua code that aggixx wrote into a Weak Aura to see how many combo points to add:

function (event, ...)
    local isCombo, isFinisher
    WA_feralCP_spells = WA_feralCP_spells or {
        [1822] = true, -- Rake
        [5221] = true, -- Shred
        [6785] = true, -- Ravage
        [33876] = true, -- Mangle
        [102545] = true, -- Ravage!
        [114236] = true, -- Shred!
    WA_feralCP_count = WA_feralCP_count or 0
    WA_feralCP_GCD = WA_feralCP_GCD or 0
    if event == "COMBAT_LOG_EVENT_UNFILTERED" then
        local _, cleuevent, _, sourceGUID, _, _, _, destGUID, _, _, _, spell, _, _, _, _, _, _, _, _, critical = ...
        if sourceGUID == UnitGUID("player") then
            if cleuevent == "SPELL_DAMAGE" then
                if destGUID == UnitGUID("target") then
                    if WA_feralCP_spells[spell] and critical then
                        WA_feralCP_count = min(WA_feralCP_count + 1, 5)
    elseif event == "UNIT_COMBO_POINTS" then
        local unit = ...
        if unit == "player" then
            WA_feralCP_count = GetComboPoints("player", "target")
    elseif event == "PLAYER_TARGET_CHANGED" then
        WA_feralCP_count = GetComboPoints("player", "target")

Here are two Mangles from a combat log, the first is a normal hit, and the second is a crit: 11/27 23:58:26.888 SPELL_DAMAGE,0x0200000005C273A4,"Leafkiller",0x511,0x0,0xF53079AA0000417F,"Raider's Training Dummy",0x10a28,0x0,33876,"Mangle",0x1,19320,-1,1,0,0,0,nil,nil,nil

11/27 23:58:28.856 SPELL_DAMAGE,0x0200000005C273A4,"Leafkiller",0x511,0x0,0xF53079AA0000417F,"Raider's Training Dummy",0x10a28,0x0,33876,"Mangle",0x1,38979,-1,1,0,0,0,1,nil,nil Note that the third to last parameter is the crit indicator.

Since Ovale is spell agnostic, my idea is to add a new parameter to SpellInfo to tell it to add two combo points for crits on certain spells. For example:

Define(MANGLECAT 33876) #cat bleed+debuff
    SpellInfo(MANGLECAT inccounter=ripshreds energy=35 combo=1 critcombo=2)

In an ideal world, Ovale would update the combo points when it gets the SPELL_DAMAGE event and not wait for a call to GetComboPoints. This would make the move suggester much more responsive and reduce flickering. I see a lot of that right now, both when I add combo points that crit, and also when I use a finisher, where a new finisher is briefly displayed before Ovale realizes that combo points is now equal to zero. It seems like it knows I have cast something before it knows how many combo points are now on the target.

User When Change
jlam Nov 30, 2012 at 03:13 UTC Changed status from Accepted to Fixed
jlam Nov 29, 2012 at 07:22 UTC Changed status from New to Accepted
jlam Nov 29, 2012 at 07:22 UTC Changed assigned to from Sidoine to jlam
Leafkillr Nov 28, 2012 at 19:03 UTC Create

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

  • Avatar of jlam jlam Nov 30, 2012 at 03:11 UTC - 0 likes

    This has been implemented in Ovale 5.1.2. The semantics for "critcombo=N" means that N extra combo points are added on a critical strike of that spell. You should also use "if_spell=primal_fury" to make sure that only comes into effect if the druid has learned primal_fury, e.g.:

      Define(mangle 33876)
        Spellinfo(mangle combo=1 energy=35 inccounter=ripshreds)
        SpellInfo(mangle critcombo=1 if_spell=primal_fury)
      Define(primal_fury 16961)
  • Avatar of jlam jlam Nov 29, 2012 at 07:21 UTC - 0 likes

    The Fluid Druid thread with more information is http://fluiddruid.net/forum/viewtopic.php?f=11&t=852&p=11498.



Last updated
Nov 30, 2012
Nov 28, 2012
Fixed - Developer made requested changes. QA should verify.
Enhancement - A change which is intended to better the project in some way
Medium - Normal priority.

Reported by

Possible assignees