Register

WeakAuras - Bleed Ratios

Pimp your interface.
Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: WeakAuras - Bleed Ratios

Postby raffy » Fri Jun 28, 2013 8:54 pm

I've been developing a Feral dot tracking library (LibCatus) that tracks multiple target Rip, Rake, Thrash dots as multipliers of their base effects (like https://dl.dropboxusercontent.com/u/298 ... pTable.txt) with Soul Swap support.

I figure this might help centralize the code that keeps getting repeated across multiple mods. I don't have anything to release at this moment, but it's in the pipeline. Additionally, I wanted to mimic the lookahead functionality that Catus has, in hope that allows for smarter DoT clipping.

Currently, LibCatus consists of a few global functions. The biggest problem I've been having is getting "the base stats" to compute the "1.0x" equivalent Rip/Rake/Thrash. Right now, you need to execute a slash command to sample your buffed (but proc-less) stats (once) prior to combat.

I believe Absolute DoT strength is much more important than Relative DoT strength. Especially, if you knew the expected distribution of "how many 2x, 3x, 4x, 5x, 6x, etc..." Rip ticks should you should have over a given fight.
Image

Revered
User avatar
Posts: 363
Joined: Wed Jun 29, 2011 4:49 am

Re: WeakAuras - Bleed Ratios

Postby Stenhaldi » Sat Jun 29, 2013 8:01 am

raffy wrote:The biggest problem I've been having is getting "the base stats" to compute the "1.0x" equivalent Rip/Rake/Thrash. Right now, you need to execute a slash command to sample your buffed (but proc-less) stats (once) prior to combat.

That's also a problem I've thought about and I think the only reliable ways to implement a more automated solution would be to either subtract off every short-term buff or to sum up stats from gear and a list of allowed buffs -- both of which could end up frighteningly complicated (and the former would require maintenance each time a new proc is added; the latter is better in that respect).

On the plus side, the "press a key to reset base stats" method is pretty intuitive. While standing around prior to the pull you might notice a display other than "1" on your spells, so you hit that key and all the displays reset to "1". There is versatility in this method too, for one can think of situations where you might want to reset base stats in combat to factor out a long-term effect, like Titan Gas or the Primordius buffs.

I actually started writing the framework to implement an absolute DoT strength display in Weakauras (using the above method) at some point, but never got around to finishing it as I decided the relative strength displays were sufficient. It's interesting to note, however, that the usefulness of an absolute strength display is not limited to DoTs -- you could use it even on direct-damage spells, so for example, it could tell you how much more damage your ferocious bite will do if you cast it before some proc expires.

Revered
Posts: 208
Joined: Tue Jun 28, 2011 10:41 am

Re: WeakAuras - Bleed Ratios

Postby Dysheki » Tue Jul 02, 2013 1:32 pm

Yeah, bleed strength compared to your base strength would be nice, but I think relative compared to your previous bleed is acceptable and I don't have much of an issue with it.
Image

Posts: 3
Joined: Sat Dec 08, 2012 1:34 am

Re: WeakAuras - Bleed Ratios

Postby Raudo » Mon Aug 19, 2013 4:11 am

I encountered a problem in the PTR when using 4p t16. If you use TF + Rip at 5 cp, the bleed strenght the weakaura shows seems a lot lower than expected.

For example, with no procs whatsoever and always SR up:

- I use TF+Rip at 5 cp

- The target gets 3 cp, but when you get to 5cp the next Rip is always 165% stronger, even when TF buff wears off. It should be ~86% lower, not 165% higher.

I don't know if its a bug in the weakaura code or something else, maybe someone else can reproduce it?

Edit: This was using Stenhaldi WA for bleed ratios.

Revered
User avatar
Posts: 363
Joined: Wed Jun 29, 2011 4:49 am

Re: WeakAuras - Bleed Ratios

Postby Stenhaldi » Mon Aug 19, 2013 5:55 am

Thanks -- I think I know why that's happening. Will post a new version soon.

Revered
User avatar
Posts: 363
Joined: Wed Jun 29, 2011 4:49 am

Re: WeakAuras - Bleed Ratios

Postby Stenhaldi » Mon Aug 19, 2013 7:46 am

Here is my new version. It should handle the new set bonus properly. I actually wrote it months ago, but didn't publish it because it wasn't clear to me that it was an end-user improvement at the time (it mainly made the code nicer).

Weakauras import string

Description for people coming to this post directly:

For Rip, Rake, and Thrash, this tracks the strength of any bleed you apply, taking into account attack power, crit chance, mastery, and other multipliers. It then displays the ratio between the strength of the bleed you could cast (based on your current stats) and that of the bleed that is already on your current target. So for example, if it displays "100", then the bleed you could cast is just as strong as the one that's already up. If it displays "130", then you could apply a 30% stronger bleed. If it displays "80", then the new bleed would be 20% weaker. Other notes:
  • It will remember bleed strength on multiple targets.
  • It remembers how many combo points you cast Rip at, but assumes you will cast it at 5 combo points. (This felt like the most useful way to deal with combo points.)

It is a script for WeakAuras (or WeakAuras 2). After you import, it will show up as three small numbers in the middle of the screen that are only visible when you have the appropriate bleed active. You can move them around and resize them by selecting them in the WeakAuras options and using the settings in the Display tab (or dragging them).

It does not include any icons or timers for the respective bleeds. If you need those, you can make separate WeakAuras displays for them. The way I use this script is that I simply display the ratio number on top of my usual bleed icon display.

Changes:
Spoiler: show
The main change is the timing. I was previously snapshotting on aura application, and this led to timing issues for which I had to write special case code. For example, by the time the snapshot was recorded, DoC would have been consumed, and combo points would have been depleted (this is what was causing the problem with 4P T16).

I now snapshot on spellcast, but only record the snapshot on the subsequent aura application. This makes the timing work out more nicely, so it should no longer fail (or require special case code) in situations where the spellcast triggers a stat change.

Oh and Blizzard changed the DoC spellid from 108381 to 145152 in 5.4, so I updated the weakaura to account for that (but it still checks for the old spellid as well, so it'll continue to work in 5.3).

---

The code-

Feral Stat Logic
Spoiler: show
custom text, updates on every frame
Code: Select all
function()
    if WA_calcStats_feral then WA_calcStats_feral() end
    return ""
end

custom trigger on every frame
Code: Select all
function()
    CritDamageMult = 2 -- adjust for crit damage meta
   
    if not WA_calcStats_feral then
        function WA_calcStats_feral()
            local APBase, APPos, APNeg = UnitAttackPower("player")
            local AP = APBase + APPos + APNeg
            local DamageMult = select(7, UnitDamage("player"))
            local Mastery = 1 + GetMasteryEffect() / 100
           
            local PlayerLevel, TargetLevel = UnitLevel("player"), UnitLevel("target")
            local CritChance
            if TargetLevel == -1 then
                CritChance = (GetCritChance()-3)/100
            else
                CritChance = (GetCritChance()-max(TargetLevel-PlayerLevel,0))/100
            end
            local CritEffMult =  1 + (CritDamageMult-1)*CritChance
           
            local CP = GetComboPoints("player", "target")
            if CP == 0 then CP = 5 end
           
            local DoCSID = select(11, UnitAura("player", "Dream of Cenarius"))
            if DoCSID == 145152 or DoCSID == 108381 then
                DamageMult = DamageMult * 1.3
            end
           
            WA_stats_RipTick = (113+CP*(320+0.0484*AP))*Mastery*DamageMult*CritEffMult
            WA_stats_RipTick5 = (113+5*(320+0.0484*AP))*Mastery*DamageMult*CritEffMult
            WA_stats_RakeTick = (99+0.3*AP)*Mastery*DamageMult*CritEffMult
            WA_stats_ThrashTick = (686+0.141*AP)*Mastery*DamageMult*CritEffMult
        end
    end
   
    return true
end

Feral Snapshot Logic
Spoiler: show
triggers on COMBAT_LOG_EVENT_UNFILTERED,PLAYER_REGEN_ENABLED,PLAYER_ENTERING_WORLD,PLAYER_ALIVE
Code: Select all
function (event, ...)
    Rip_sDamage = Rip_sDamage or {}
    Rake_sDamage = Rake_sDamage or {}
    Thrash_sDamage = Thrash_sDamage or {}
   
    if event == "COMBAT_LOG_EVENT_UNFILTERED" then
        local _, param, _, source, _, _, _, destination, _, _, _, spell = ...
       
        -- snapshot on spellcast
        if source == UnitGUID("player") and param == "SPELL_CAST_SUCCESS" then
           
            if spell == 1079 then
                WA_calcStats_feral()
                Rip_sDamage_cast = WA_stats_RipTick
            elseif spell == 1822 then
                WA_calcStats_feral()
                Rake_sDamage_cast = WA_stats_RakeTick
            elseif spell == 106830 then
                WA_calcStats_feral()
                Thrash_sDamage_cast = WA_stats_ThrashTick
            end
           
            -- but only record the snapshot if it successfully applied
        elseif source == UnitGUID("player") and (param == "SPELL_AURA_APPLIED" or param == "SPELL_AURA_REFRESH") then
            if spell == 1079 then
                Rip_sDamage[destination] = Rip_sDamage_cast
            elseif spell == 1822 then
                Rake_sDamage[destination] = Rake_sDamage_cast
            elseif spell == 106830 then
                Thrash_sDamage[destination] = Thrash_sDamage_cast
            end
        end
       
        -- clean up out of combat
    elseif (not UnitAffectingCombat("player")) and (not UnitGUID("boss1")) then
        Rip_sDamage = {}
        Rake_sDamage = {}
        Thrash_sDamage = {}
    end
end

Rake Ratio
Spoiler: show
triggers on rake aura spellid (1822), updates display every frame
Code: Select all
function()
    Rake_sDamage = Rake_sDamage or {}
    if Rake_sDamage[UnitGUID("target")] then
        local RatioPercent = (WA_stats_RakeTick / Rake_sDamage[UnitGUID("target")]) * 100
        if RatioPercent >= 110 then
            return format("|cFF00FF00%d|r", RatioPercent)
        elseif RatioPercent <= 90 then
            return format("|cFFFF0000%d|r", RatioPercent)
        else
            return format("|cFF999999%d|r", RatioPercent)
        end
    else return ''
    end
end

Rip Ratio
Spoiler: show
triggers on rip aura name, updates display every frame
Code: Select all
function()
    Rip_sDamage = Rip_sDamage or {}
    if Rip_sDamage[UnitGUID("target")] then
        local RatioPercent = (WA_stats_RipTick5 / Rip_sDamage[UnitGUID("target")]) * 100
        if RatioPercent >= 110 then
            return format("|cFF00FF00%d|r", RatioPercent)
        elseif RatioPercent <= 90 then
            return format("|cFFFF0000%d|r", RatioPercent)
        else
            return format("|cFF999999%d|r", RatioPercent)
        end       
    else return ''
    end
end

ThrashCat Ratio
Spoiler: show
triggers on thrash-cat aura spellid (106830), updates display every frame
Code: Select all
function()
    Thrash_sDamage = Thrash_sDamage or {}
    if Thrash_sDamage[UnitGUID("target")] then
        local RatioPercent = (WA_stats_ThrashTick / Thrash_sDamage[UnitGUID("target")]) * 100
        if RatioPercent >= 110 then
            return format("|cFF00FF00%d|r", RatioPercent)
        elseif RatioPercent <= 90 then
            return format("|cFFFF0000%d|r", RatioPercent)
        else
            return format("|cFF999999%d|r", RatioPercent)
        end       
    else return ''
    end
end
Last edited by Stenhaldi on Sun Oct 27, 2013 5:57 pm, edited 7 times in total.

Posts: 3
Joined: Sat Dec 08, 2012 1:34 am

Re: WeakAuras - Bleed Ratios

Postby Raudo » Mon Aug 19, 2013 4:06 pm

I think it doesn't work with DoC 5.3, raiding at the moment and bleed strenght doesn't change.

Edit: found the error, in feral stat logic custom trigger the id for DoCSID == 108373 should be 108381

Revered
User avatar
Posts: 363
Joined: Wed Jun 29, 2011 4:49 am

Re: WeakAuras - Bleed Ratios

Postby Stenhaldi » Mon Aug 19, 2013 4:37 pm

oops, fixed

Posts: 2
Joined: Tue Aug 27, 2013 12:55 pm

Re: WeakAuras - Bleed Ratios

Postby Rakes » Tue Aug 27, 2013 1:03 pm

I'm still using the WA from the first post in this thread (yours wont work for me Stenhaldi) and on 5.4 PTR it does not track DoC - it makes no difference with or without DoC buff.

I dont know if this will be the same once the patch goes live, for PTR is ... you know... PTR^^ Is anyone else having the same problem?


Maybe I will have to use yours in the end, Sten - but at moment all i get is low FPS once infight and nothing else^^

Revered
User avatar
Posts: 363
Joined: Wed Jun 29, 2011 4:49 am

Re: WeakAuras - Bleed Ratios

Postby Stenhaldi » Tue Aug 27, 2013 6:45 pm

Rakes wrote:I'm still using the WA from the first post in this thread (yours wont work for me Stenhaldi)

Make sure you don't have both of them enabled at the same time because their variable names will conflict.

If you want to just get the original one working, change the DoC spellid from 108381 to 145152.

User avatar
Posts: 43
Joined: Thu Nov 25, 2010 7:28 am

Re: WeakAuras - Bleed Ratios

Postby Ekthelion » Wed Aug 28, 2013 5:36 am

Even after changing the spell id there is a problem with 4T16, as you described (showing always bigger ratio for Rip after set effect occurred). The new version works perfectly on both versions of the game. GreatTHANKS Stenhaldi!
Da Vuhdo iz wid'ya mon!
Image

Posts: 6
Joined: Mon Aug 05, 2013 1:15 pm

Re: WeakAuras - Bleed Ratios

Postby Baes » Thu Aug 29, 2013 6:50 am

I would to thank you for an amazing auras and apologize in advance for a silly question, as I am only starting my cat.

If I understand correctly my actions according to the auras: if I see it anything but grey I should take an action on replying and if it is grey I would do nothing until I see them turning green/red/orange and then go with highest?

thank you so much in advance!

User avatar
Posts: 43
Joined: Thu Nov 25, 2010 7:28 am

Re: WeakAuras - Bleed Ratios

Postby Ekthelion » Thu Aug 29, 2013 8:38 am

The number says how strong NEW Rip/Rake/Thrash would be comparing to the current one on the target. So the NEW bleed is just weaker(<100%), same or stronger (>100%).
So in principle: when it's green, you can reapply, when it's any other color then you normally don't, and especially when it's red :)
Da Vuhdo iz wid'ya mon!
Image

Posts: 6
Joined: Mon Aug 05, 2013 1:15 pm

Re: WeakAuras - Bleed Ratios

Postby Baes » Thu Aug 29, 2013 12:57 pm

Ekthelion wrote:The number says how strong NEW Rip/Rake/Thrash would be comparing to the current one on the target. So the NEW bleed is just weaker(<100%), same or stronger (>100%).
So in principle: when it's green, you can reapply, when it's any other color then you normally don't, and especially when it's red :)



thank you so much Ekthelion!

Posts: 2
Joined: Tue Aug 27, 2013 12:55 pm

Re: WeakAuras - Bleed Ratios

Postby Rakes » Mon Sep 02, 2013 6:04 pm

Stenhaldi wrote:
Rakes wrote:I'm still using the WA from the first post in this thread (yours wont work for me Stenhaldi)

Make sure you don't have both of them enabled at the same time because their variable names will conflict.

If you want to just get the original one working, change the DoC spellid from 108381 to 145152.


Thanks for your quick response, Sten!

Wondrously, your WA seems to work just fine now...don't know what I did wrong last time I tried :X (didn't have any other Ratio WA active!)
Who cares^^ Thanks a lot!

Revered
User avatar
Posts: 363
Joined: Wed Jun 29, 2011 4:49 am

Re: WeakAuras - Bleed Ratios

Postby Stenhaldi » Sun Sep 08, 2013 9:56 pm

Made a very quick fix (same link) to show the rake ratio on aura spellid (1822) instead of name. This solves a minor issue where it would erroneously display when only treant rake was active.

Easy change to make if you don't want to re-import. Go to Rake Ratio trigger, check "use full scan", check "spell ID" and put 1822 in the spell ID field.

Honored
Posts: 149
Joined: Fri Jan 21, 2011 9:51 pm

Re: WeakAuras - Bleed Ratios

Postby mekell » Tue Sep 10, 2013 1:26 pm

It is just showing the "|cFF00FF00%d|r" or similar as the ratios on my screen. Is this the correct parameter to the format fuction?

Comparing new to old, it looks correct. The old one worked, i wonder what is going on...
Image

Honored
Posts: 149
Joined: Fri Jan 21, 2011 9:51 pm

Re: WeakAuras - Bleed Ratios

Postby mekell » Tue Sep 10, 2013 2:01 pm

Figured it out. My Feral Stat logic custom trigger wasnt firing correctly.

I set it to....
Type: Custom
Event Type: Status
Check On: Events
Events: PLAYER_ENTERING_WORLD,ACTIVE_TALENT_GROUP_CHANGED,PLAYER_REGEN_DISABLED

And it works.
Image

Honored
User avatar
Posts: 69
Joined: Thu Feb 14, 2013 5:15 pm

Re: WeakAuras - Bleed Ratios

Postby Cetlysm » Thu Sep 12, 2013 6:00 pm

Why are ratios from rip and rake with only SR go from 100 to 125 after I get DoC, shouldn't it go to 130 with DoC?
Using the new 5.4 ID

Revered
User avatar
Posts: 363
Joined: Wed Jun 29, 2011 4:49 am

Re: WeakAuras - Bleed Ratios

Postby Stenhaldi » Thu Sep 12, 2013 6:19 pm

Sorry, forgot to change that. Fixed now (same link). If you don't want to re-import, just go to the Feral Stat Logic custom trigger and change the line

DamageMult = DamageMult * 1.25

to

DamageMult = DamageMult * 1.3

Honored
User avatar
Posts: 69
Joined: Thu Feb 14, 2013 5:15 pm

Re: WeakAuras - Bleed Ratios

Postby Cetlysm » Thu Sep 12, 2013 6:23 pm

Love you

User avatar
Posts: 12
Joined: Sun Sep 16, 2012 1:32 pm

Re: WeakAuras - Bleed Ratios

Postby Collie » Sun Sep 15, 2013 5:43 pm

Thanks for all of your improvements and efforts, Stenhaldi. I recently came back to WoW and found your revision very useful - so much so that I'll be linking to yours instead in the original post. No sense in keeping the obsolete version on the front page.

Speaking of antiquated things, I did notice that there's a vestigial variable hanging around from my original version. See screenshot here. It's in the three Ratio displays. Shouldn't do anything except consume a few extra bytes of memory as it is.

Posts: 17
Joined: Wed Sep 25, 2013 6:01 pm

Re: WeakAuras - Bleed Ratios

Postby Simbba » Wed Sep 25, 2013 7:30 pm

I have never used weakauras before and im trying to figure out how to show my bleed strengths. So i tried making a aura for rip and rake but i can't get it to work, just shows the icon of rip/rake and the number but not the bleed strength i know im doing something wrong but i don't know what.

Would like the have the multiplier displayed like Fragnance from Method or close to that, please help im a noob on this weakauras

Honored
Posts: 81
Joined: Thu Mar 14, 2013 9:29 am

Re: WeakAuras - Bleed Ratios

Postby Paloro » Thu Sep 26, 2013 9:38 am

Simbba wrote:I have never used weakauras before and im trying to figure out how to show my bleed strengths. So i tried making a aura for rip and rake but i can't get it to work, just shows the icon of rip/rake and the number but not the bleed strength i know im doing something wrong but i don't know what.

Would like the have the multiplier displayed like Fragnance from Method or close to that, please help im a noob on this weakauras


After you make the aura for Rip/Rake/Thrash in weakaura, you can simply use the import function in game and copy/paste the string that is provided in this thread. Once that string is uploaded you should be able to alter the size/position/coloring no problem.
Image

Honored
Posts: 50
Joined: Wed Aug 21, 2013 12:24 pm

Re: WeakAuras - Bleed Ratios

Postby inferiorlol » Sat Oct 19, 2013 5:06 pm

Stenhaldi wrote:
raffy wrote:The biggest problem I've been having is getting "the base stats" to compute the "1.0x" equivalent Rip/Rake/Thrash. Right now, you need to execute a slash command to sample your buffed (but proc-less) stats (once) prior to combat.

On the plus side, the "press a key to reset base stats" method is pretty intuitive.


I did something along that lines with your WA bleed code as base.

I just added a new variable:

Code: Select all
WA_stats_mult = AP*Mastery*DamageMult*CritEffMult


to the Feral Stat Logic aura, and then I made a new weakaura to snapshot this to another variable at a button press (I chose Aquatic Form since I figure I would never accidentally use that in a raid).

I then make a new aura to return the ratio between these two variables. As of right now you need to have a target with the correct level you want to snapshot against since your code uses that to calculate the CrittEffMult. Very basic but it works pretty well for me.

http://www.youtube.com/watch?v=JZLNVA3l ... e=youtu.be

PreviousNext

Return to Addons / UI

Who is online

Users browsing this forum: Google Adsense [Bot] and 2 guests