Ovale Spell Priority

161 - combo=0 turns into incorrect damage multiplier

When a spell has SpellInfo(... combo=0), it indicates to Ovale that it is a finisher that consumes all of the combo points.  However, Ovale takes that info and makes incorrect use of it when it computes the damage multiplier for that finisher.  Right now, it takes the damage multiplier that's correctly computed, then multiplies it by the number of combo points consumed.  However, that is only an approximation, and the finishers have much more complex formulas than simply scaling up the damage multiplier.

We should simply provide a way to allow the script to query how many combo points were consumed by the finisher.  That would allow the script author to write the correct formulas for computing spell damage for comparison purposes.

Name Size MD5
0001-Fix-for-ticket-161.patch 6.2 KiB 3843da499456...
User When Change
jlam Sep 18, 2012 at 00:07 UTC
jlam Sep 17, 2012 at 20:14 UTC
jlam Sep 17, 2012 at 20:14 UTC Changed assigned to from Sidoine to jlam
jlam Sep 17, 2012 at 20:12 UTC

Added attachment 0001-Fix-for-ticket-161.patch

jlam Sep 17, 2012 at 01:41 UTC Create

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

  • 4 comments
  • Avatar of jlam jlam Sep 17, 2012 at 21:54 UTC - 0 likes

    It's also possible with this patch to make full use of the Damage(id) and LastSpellEstimatedDamage(id) conditions. For example, you can add SpellInfo() for Rip that looks like:

    Define(dream_of_cenarius_damage 108381)
        SpellInfo(dream_of_cenarius_damage duration=30)
    Define(rip 1079)
        SpellInfo(rip duration=16 energy=30 tick=2 combo=0)
        SpellInfo(rip base=113 bonuscp=320 bonusapcp=0.3872) # damage coefficients
        SpellAddTargetDebuff(rip rip=1)
        SpellDamageBuff(rip dream_of_cenarius_damage=1.25)
    

    With the above information, you can use Damage(rip) as a script condition returning a number that's computed as:

    Damage(rip) == { 113 + (320 * CP) + (0.3872 * AP * CP) } * DamageMultiplier(rip)
    

    You can also use LastSpellEstimatedDamage(rip) to get the snapshotted damage estimate of the last Rip. Note that these estimates won't include the damage multipliers for mastery effects.

  • Avatar of jlam jlam Sep 17, 2012 at 21:24 UTC - 0 likes

    Just commentary on this ticket:

    For finishers that consume all of their combo points, you should use combo=0 instead of combo=-5 in the SpellInfo() for that finisher. The only exception is Savage Roar if Glyph of Savagery is present. Usually, you can't do a finisher with 0 CPs and Ovale assumes that is always true. So, for Savage Roar, you can do:

    Define(savage_roar ...)
        SpellInfo(savage_roar combo=0)
        SpellInfo(savage_roar combo=-5 glyph=glyph_of_savagery)
    Define(glyph_of_savagery ...)
    

    The second SpellInfo() will overwrite any matching parameters that were set in the first SpellInfo().

  • Avatar of jlam jlam Sep 17, 2012 at 20:12 UTC - 0 likes

    I've attached a patch that fixes this issue. In addition to provding a way to get the number of combo points used, it also provides a way to get the estimated damage of a spell for comparison purposes.

  • Avatar of jlam jlam Sep 17, 2012 at 01:50 UTC - 0 likes

    I will add the conditions for querying the number of combo points consumed. For now, if you need correct values for the damage multiplier, avoid using combo=0.

  • 4 comments

Facts

Last updated
Sep 18, 2012
Reported
Sep 17, 2012
Status
Fixed - Developer made requested changes. QA should verify.
Type
Defect - A shortcoming, fault, or imperfection
Priority
Medium - Normal priority.
Votes
0

Reported by

Possible assignees