Remove Advertisements

"Total" EH - incorporating different damage types into EH

Warning: Theorycraft inside.

Moderators: Fridmarr, Worldie, Aergis, theckhd

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Sat Dec 05, 2009 8:14 pm

theckhd wrote:Before I make any other comments, I'd like to make a point about "new" vs. "old" in regards to this calculation. I've seen a lot of people assuming that "new EH" means that this is a completely new idea. That's probably mostly my fault for the title of the thread - it was supposed to be a play on "New Math," but that's probably too outdated of a reference for many readers to get.

In any event, it's not a new idea. This is still the same EH we know and love. All I've done is demonstrate the correct formula for it, so that people can use it more accurately. There are far too many people who use it incorrectly to make decisions about gearing ("Armor trinket A gives me more EH than stamina trinket B, so I'll wear it for Jaraxxus").

The hope is that by providing both the correct definition and a better insight into what EH actually represents, it will become a more useful tool to tanks that know what they're doing.


Heh - if you can still change the title of the thread, you might be better off just putting the quotes around the word "NEW". Might make people realize what you mean a little better. :lol:
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby Reynardadin » Sun Dec 06, 2009 1:06 am

I've now implemented NEH in TankTotals for arbitrary values of X and Y, defined by the user via the configuration GUI. You can grab it here to play around with the sliders, or via the Curse client if you have it set to download alphas. Should work correctly for all tanks, but I've only been able to test it for paladins. I haven't implemented the in-combat damage tracking that I mentioned in my previous post, but with the calculation working it should be pretty trivial.

In this post, I'll demonstrate how the GUI operates, and how NEH (or "EH2" as it's labelled in the TankTotals display) is calculated by the addon.

First let’s define some values:

Code: Select all
H = 49459 // my HP at the time
Mt = 1 - 0.97 * 0.94 * 0.97 = 0.11555 // 3% SOTT, 6% RF, 3% GBoS
Ma = 0.631578
Mg = 1 - 0.97 * 0.94 * 0.97 * 0.94 = 0.16862 // 3% SOTT, 6% RF, 3% GBoS, 6% GBTL
Mrf = 0.1 // Fire aura gives 10% guaranteed resistance
A = 1.0875 // EH scaling factor due to 3/3 Ardent Defender


For the purposes of my addon, I wanted to display both the EH2 value and the overall weighted mitigation given the relative percentage contribution of each damage source. To do so, I used Theck's formula in a slightly roundabout manner. The regular formula is of the form:

Code: Select all
EH = E*H
E = D/d = (1-X-Y)/(1-Ma)(1-Mt) + X/(1-Mt) + Y/(1-Mg)(1-Mr)


But

Code: Select all
d = D*(1-M)
=> M = 1 - d/D


Thus, the weighted mitigation across all damage sources is:

Code: Select all
M = 1 - (1/E)


And NEH ("EH2") is:

Code: Select all
EH2 = E*H*A
or
EH2 = [H/(1-M)] * A


Let's first take the case where X = 0 and Y = 0, i.e. a fight consisting of 100% melee damage with no bleeds or magic.

Image

Note the following:
  • the “Mitigation” value on line 2 refers to melee mitigation, i.e. 1 - (1-Ma)(1-Mt) = 0.67415
  • the “Bleed” value on line 4 is simply Mt, while the “Spell” value on line 5 is Mg
  • the “Fire” value on line 6 is 1 - (1-Mg)(1-Mrf) = 0.25176
Note also that the value of EH2 is the same as EH, which is what we’d expect for a fight with no magic or bleed damage. First, calculate E:

Code: Select all
E = (1-X-Y)/(1-Ma)(1-Mt) + X/(1-Mt) + Y/(1-Mg)(1-Mr)
= 1/(0.36842)(0.88445) + 0 + 0
= 3.0689

=> M = 1 - (1/3.0689)
= 0.67415


The weighted mitigation across all damage sources, labelled "Survival" in the TankTotals display, is thus 67.415%. Because all damage is melee in this scenario, this is exactly the same as the Mitigation figure on line 2 of the screenshot. We can now calculate

Code: Select all
EH2 = [H/(1-M)] * A
= [49459 / (1-0.67415)] * 1.0875
= 151784.563 * 1.0875
= 165.066k


The same holds for the case where X = 1.0, i.e. a fight consisting of 100% Bleed damage.

Image

Here, the weighted mitigation is simply equal to the physical mitigation without armor, Mt; EH2 is therefore

Code: Select all
EH2 = [H/(1-Mt)] * A
= [49459 / (1-0.11555)] * A
= 55920.629 * 1.0875
= 60.814k


... and similarly for the case where Yh = 1.0, i.e. where a particular school of magic (Holy, in this case) accounts for all damage:

Image

Code: Select all
E = 0 + 0 + ΣYi/(1-Mgi)(1-Mri), Yh = 1.0, Yi = 0 ∀ i =/= h
=> E = 1/(1-Mgh)(1-Mrh)


But we have no resistance to Holy damage; therefore

Code: Select all
E = 1/(1-Mgh)
=> M = 1 - (1 - Mgh) = Mgh


Code: Select all
EH2 = [H/(1-Mgh)] * A
= [49459/(1-0.16862)] * 1.0875
= 59490.245 * 1.0875
= 64.696k


Finally, here’s a demonstration of the formula in full effect: a mixture of melee, bleed and magic damage, where we have different resistances to each school.

Image

In this case,

Code: Select all
X = 0.25, Yh = 0.25, Yf = 0.25
(1-X-ΣYi) = 0.25 // melee damage


Code: Select all
E = (1-X-Y)/(1-Ma)(1-Mt) + X/(1-Mt) + Y/(1-Mg)(1-Mr)
= 0.25/(1-0.67415) + 0.25/(1-0.11555) + 0.25/(1-0.16862) + 0.25/(1-0.16862)(1-0.1)
= 1.68471

=> M = 0.406425


Code: Select all
EH2 = [H/(1-M)] * A
= [49459/(1-0.406425)] * 1.0875
= 83323.927 * 1.0875
= 90.615k
Last edited by Reynardadin on Sun Dec 06, 2009 9:51 am, edited 4 times in total.
Reynardadin
 
Posts: 10
Joined: Sat Dec 05, 2009 4:11 am

Re: "New EH" - incorporating different damage types into EH

Postby Meloree » Sun Dec 06, 2009 1:21 am

theckhd wrote:More pertinently, we decided somewhere around page 3 or 4 that choosing X, Y, and Z based on the total damage taken in a fight isn't the right way to use the formula, as Xenix mentioned a few posts up. As you correctly noted, avoidance would affect the X/Y/Z values if you used total damage taken, and avoidance has no place in an EH calculation.


Only because I'm way drunk, just back from a birthday party for a frriend, but...

HEY!!!!...

I got tere first. I think.
Meloree
Maintankadonor
 
Posts: 1420
Joined: Wed Mar 12, 2008 10:15 am

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Sun Dec 06, 2009 8:04 am

Reynardadin wrote:Quick post to let people know that I've now implemented NEH in TankTotals. I'm in the process of writing a full explanation and demonstration, but for now he's a shot of the UI and the resulting "EH2" number:

[EDIT] Noticed a problem with the implementation. I'll post a proper update when it's fixed.


Seems to be working fine in Dalaran for me - EH values are calculated correctly (with the net 8.75% increase from AD). A couple things to consider adding, though. First, a slider for non-resistable magic damage (a la froststrike or plasma blast). And second, consider renaming the bleed slider or putting a comment in the tooltip since there are some damaging attacks (such as Spinning Pain Strike from the mistress's on Jaraxxus, phase punch and Big Bang from Algalon, etc.) that are physical and ignore armor but aren't bleeds, and would fall into this category.

Just as an example on that, though: If you set the damage-type to 100% bleed, you would need 112,750 EH2 (since that's how much raw damage it does) to be guaranteed to survive Algalon's Big Bang on 25-man. You could then get whatever buffs and cooldowns you propose to use to survive it up and compare. In my current gear, that gives me 120,192 with Sanc and divine protection only, which means I could survive it non-raid buffed using divine protection.

One question since I didn't have a priest nearby to test - does it include extra EH in its calculations for PW:Shield (and Val'anyr procs and just absorbs in general), and does it include inspiration/ancestral fortitude in the bleed and regular damage calculations? I tested and it does not include resist potions, which you might consider adding since you already have block calculations in there and it is a similar mechanic.

Also, you might consider making two columns of sliders - one for raw damage, and one for post-mitigation damage so you could adjust it based on the numbers you have (yeah, this would be complicated to do). And, finally you might consider adding a non-adjustable slider showing percent physical damage affected by armor just as an information-type thing for a quick check that you set the other sliders correctly.

Edit: One last thing - the "include AD heal in EH" calculation is wrong. The AD heal is a guaranteed minimum 30% increase in your EH from full health so it's basically a free 30% more health. The add-on is saying it's worth only 11k full physical EH when it would heal for 16,593, which is of course impossible. Just change it to add the AD heal amount to your health when calculating EH and NEH and it should be correct.
Last edited by Xenix on Sun Dec 06, 2009 9:21 am, edited 1 time in total.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby Jerey-Darkspear » Sun Dec 06, 2009 9:19 am

I have a question regarding your dA calculations.

When you take the derivative with respect to A

You say that you're solving the d(EH) equation when EH is not changing, i.e. d(EH) = 0. However, if you do that, shouldn't dA be negative?
Code: Select all
If:
0 = A + B
Then:
A = -B

Not:
A = B


This will change equation (5) to:
Code: Select all
    dA = -(K+A)/H * dH          (5)


And will change equation (21) to:
Code: Select all
         -(K+A)      1
    dA = -------*---------*dH                       (21)
            H     (1-X-Y)


I don't think it changes any conclusions though.

A gain in armor (positive) would need a loss in health (negative) or vice-versa.
Image
Jerey-Darkspear
 
Posts: 183
Joined: Tue Jun 17, 2008 12:38 am

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Sun Dec 06, 2009 9:27 am

Yes - he should have said that he was solving for the amount of armor that offset a change in health (-dH) if you're plugging in absolute values, since we're seeing where losing some health dH and gaining some armor dA cause d(EH) to be zero, which requires dA/dH to be negative. His equations are derived as if you plug in absolute values.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby Reynardadin » Sun Dec 06, 2009 9:37 am

Xenix wrote:First, a slider for non-resistable magic damage (a la froststrike or plasma blast). And second, consider renaming the bleed slider or putting a comment in the tooltip since there are some damaging attacks.

I've kept the "Bleed" name for simplicity and tidiness on the main display, but I've added a note in the tooltip indicating that it applies to all armor-ignoring effects. I'll add a non-resistable magic slider for the release version.

Xenix wrote:One question since I didn't have a priest nearby to test - does it include extra EH in its calculations for PW:Shield (and Val'anyr procs and just absorbs in general), and does it include inspiration/ancestral fortitude in the bleed and regular damage calculations? I tested and it does not include resist potions, which you might consider adding since you already have block calculations in there and it is a similar mechanic.

Yes, it includes AF/Inspiration; it incorporates every such mitigation buff in the game (he said, tempting fate). It doesn't account for absorbs, and I'm wary of trying to implement a shield module until their combat log behaviour is more consistent. The block calculations are there, but block chance and value are only considered when computing the figures for Total Melee Damage Reduction (i.e. including avoidance and flat mitigation) and Estimated TTL.

Xenix wrote:Also, you might consider making two columns of sliders - one for raw damage, and one for post-mitigation damage so you could adjust it based on the numbers you have (yeah, this would be complicated to do).

The NEH calculation is designed to operate off of Theck's formula, so relative percentages of postmitigated damage are really all that's needed. Once I've implemented the in-combat damage recording module, it'll be able to calculate the percentages for you.

Xenix wrote:And, finally you might consider adding a non-adjustable slider showing percent physical damage affected by armor just as an information-type thing for a quick check that you set the other sliders correctly.

Hmmm, good idea. I'll stick it in the next version.

Xenix wrote:Edit: One last thing - the "include AD heal in EH" calculation is wrong. The AD heal is a guaranteed minimum 30% increase in your EH from full health since it's basically a free 30% more health.

Not if you aren't defense capped, it isn't :P Obviously that's not a concern, but the addon tests for it nonetheless. I altered the AD Heal code a bit while working the NEH code in, so I'll check back over it now. It was working fine before today.

There's a link to a slightly newer version of the addon than the one you're using in the post I'm about to put in the edit space above :)
Reynardadin
 
Posts: 10
Joined: Sat Dec 05, 2009 4:11 am

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Sun Dec 06, 2009 10:10 am

<edited to correct the function>

With no heals + AD heal, your EH would be: 1.0875 * EH w/o AD+ 0.3 * EH w/o AD / 0.8, or 1.4625 your EH w/o AD. (You get the full damage reduction of AD after the heal kicks in since you're at 30% or less health)

Here is the function with the correct formulation:
Code: Select all
function Paladin:GetADEHFactor()
        local adHealEH = 0.0;

        -- AD's heal adds extra effective HP; heal amount is dependent upon defense rating
        if not ADCD_Bar and TTPCDB.ArdentEHTTL then adHealEH = 0.3 * min(1, GetCombatRating(CR_DEFENSE_SKILL)/689); end

   return ((1 + ((0.35+adHealEH) / TankTotals.MitigationBuffs[S["Ardent Defender"]]) - 0.35));
end
  • If the "include AD heal" option is not checked, this is EH w/o AD * 1.0875
  • If the AD debuff is up, adHealEH = 0 and this will be EH w/o AD * 1.0875.
  • With "include AD heal" checked and no AD debuff up, your EH is equal to your EH including AD as mitigation + 30% of your EH including AD as mitigation = 1.0875 * EH w/o AD+ .3 * EH w/o AD / 0.8, or 1.4625 your EH w/o AD
Replace the GetADEHFactor() function with this code in Paladin.lua for the correct AD calculation (or just remove the "- adHealEH" from the end of your equation.)

One other thing - you have a slider for boss melee damage, but not one for the swing timer associated with that damage (or even a mention of what the swing timer you're assuming is.) You need that for an accurate TTL calculation.
Last edited by Xenix on Sun Dec 06, 2009 1:26 pm, edited 1 time in total.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby Reynardadin » Sun Dec 06, 2009 10:47 am

Xenix wrote:One other thing - you have a slider for boss melee damage, but not one for the swing timer associated with that damage (or even a mention of what the swing timer you're assuming is.) You need that for an accurate TTL calculation.

It's not needed; the MH and OH swing timer is read from the mob you're currently targetting, and will update whenever an attack speed debuff is applied or drops off. If you're not targetting anything, it assumes a 2s base swing with attack speed debuff active.
Reynardadin
 
Posts: 10
Joined: Sat Dec 05, 2009 4:11 am

Re: "New EH" - incorporating different damage types into EH

Postby jere » Sun Dec 06, 2009 3:06 pm

Xenix wrote:Edit: One last thing - the "include AD heal in EH" calculation is wrong. The AD heal is a guaranteed minimum 30% increase in your EH from full health so it's basically a free 30% more health. The add-on is saying it's worth only 11k full physical EH when it would heal for 16,593, which is of course impossible. Just change it to add the AD heal amount to your health when calculating EH and NEH and it should be correct.


Are you sure on this? It didn't use to always give you the full 30% heal. Was it ever fixed/changed?
Image
User avatar
jere
 
Posts: 2960
Joined: Fri May 11, 2007 5:12 pm

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Sun Dec 06, 2009 3:48 pm

It doesn't always heal you -by- 30%, but it will heal you -to- 30% (or absorb enough that you're at 30% if you were over that) every time it procs, yes. If you run the calculations, that will mean you always can take at least 30% more damage before dying (actually 37.5% more since you still have the 20% damage reduction after the heal).

As an example:
  • Say you're at 1 health and take 1 damage. AD absorbs the damage and the proc heals you to 30% (the heal would be for 30% of your health - 1). You then need to take 37.5% of your health in further damage to die. Total damage to death from 1 health = 37.5% + 1
  • Let's say you're at 10% of your life and take 10% of your health in damage. AD absorbs the damage but the proc only heals you for 20% of your life, putting you at 30% health. It takes an extra 37.5% damage from there to kill you. Total damage to death from 10% health = 37.5% + 10%.
  • On the other hand, if you're at say 50% health and take 100% of your health in damage, you'll be set to 30%. AD won't heal you at all, but instead absorbs 80% of the hit, putting you at 30%. You'll (still) need to take 37.5% more damage to die, which means total damage to death from 50% health = 37.5% + 100%.
  • Say I'm at 100% health and take a 5 million damage rocket strike. AD absorbs enough to set me at 30% health, same as before, and it took just shy of an extra ~5 million damage to kill me from full. (As an example, browse this log for Rocket Strike on Kimurellia. You'll find "[21:37:12.081] Rocket Strike Rocket Strike Kimurellia 32354 (A: 2790181, R: 1500000)", which means I had 46,220 health if I was at 100% when taking that strike, and if you search the same log for Ardent Defender, you'll see I got no heal from that attack - it was all absorbs. (there was an earlier proc of AD in the same log where I was at low enough health that it healed me some as well as absorbing some).

In short, the minimum increase from the AD ability will be 37.5% of your <EH not counting AD mitigation> or a 34.48% increase over your <EH w/ AD mitigation>. AD actually will use a combination of absorb/heal to set you to 30% health after proccing, but that does not change the minimum EH increase. On the other hand, the maximum EH increase is unlimited (If you consider the EH increase to survive the rocket, it's ridiculous :roll:). I'm fairly sure what people were noticing is that the heal amount wasn't always 30% of your health, which is accurate since AD uses a combination of absorb and heal when it procs.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby jere » Sun Dec 06, 2009 7:59 pm

That's the thing, it used to not heal you to 30%. We had a thread up where people were getting healed for 245 HP and not up to 30%. I'll see if I can dig it up.
Image
User avatar
jere
 
Posts: 2960
Joined: Fri May 11, 2007 5:12 pm

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Sun Dec 06, 2009 8:44 pm

I can only speak from personal experience here, but the only time I have ever had AD fail to heal me back up to 30% was on Thorim after an Unbalancing Strike when it lowered my defense enough to negate the talent. I do seem to remember a thread discussing that when it was on the PTR still, and it is entirely possible that it was bugged on live as well, but I haven't personally seen that actually happen to me.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

Re: "New EH" - incorporating different damage types into EH

Postby Nadir » Mon Dec 07, 2009 12:15 am

From what I can remember the amount you are healed by depends on your health prior to the overkill. This was from the early days of 3.2 though...

1. If 30% of your health is more than your remaining health, then amount healed = 30% of your health - remaining health
2. If 30% of your health is less than your remaining health, then amount healed = 30% of your health.
Image
Nadir
 
Posts: 266
Joined: Mon May 04, 2009 8:37 am

Re: "New EH" - incorporating different damage types into EH

Postby Xenix » Mon Dec 07, 2009 8:15 am

Yes, that would go perfectly with what I said - it does depend on the amount of health you have prior to the killing blow because it absorbs the entire killing blow if you're under 30% health. Here is an example from our logs when I dc'd on Mimiron. Go to the deaths tab and click "more" to show the whole thing.

From full health:
Code: Select all
[21:32:59.378] Eyesis Earthliving Kimurellia +0 (O: 857)
[21:33:00.034] VX-001 P3Wx2 Laser Barrage Kimurellia 7849 (A: 3790, R: 6000)
[21:33:00.034] VX-001 P3Wx2 Laser Barrage Kimurellia 13302 (R: 4000)
[21:33:00.409] VX-001 P3Wx2 Laser Barrage Kimurellia 14044 (A: 921, R: 2000)
[21:33:00.831] VX-001 P3Wx2 Laser Barrage Kimurellia 10642 (A: 2660, R: 4000)
[21:33:00.846] Kimurellia Ardent Defender Kimurellia +11906
[21:33:00.846] VX-001 P3Wx2 Laser Barrage Kimurellia Absorb (13302)
[21:33:01.300] VX-001 P3Wx2 Laser Barrage Kimurellia 10642 (A: 2660, R: 4000)
[21:33:01.675] Ebe Vampiric Embrace Kimurellia +67
[21:33:01.675] Ebe Vampiric Embrace Kimurellia +60
[21:33:01.675] VX-001 P3Wx2 Laser Barrage Kimurellia 4028 (O: 9274, R: 4000)
[21:33:02.003] Kimurellia dies

So, I was at full health and took 45,837 damage. AD then -absorbed- the next 13.3k hit and healed me for 11,906, making the total damage I had taken from full 33,931. Now, if that number represents 70% of my health, as it should after an AD proc, than my total health would be 33,931/0.7 = 48,473.

Let's continue. After that heal, it takes another 14,670 damage to kill me with 127 healing coming in, or a net of 14,543 damage to kill me after the AD proc, making my total health 14,543/0.3 or 48,477, only four health off of the previous calculation, which is to be expected from rounding.

In this case, 30% of my health was 14,543. The heal did not heal for that much, only 11,906. The reason for that is AD absorbs the entire killing blow when you are under 30% health, -not- just the part that was overkill. If you are over 30% health, you don't get a heal at all and it absorbs enough to leave you at 30%. People were just looking at the heal alone and thinking something was messed up.

In any case, it gave me effectively an extra 25,208 health, much more than 30%, but the minimum health increase from the ability proc will be 30%, and that makes the minimum EH increase 37.5% of your (EH w/o AD mitigation) or 34.48% increase over your (EH w/ AD mitigation) due to the 20% damage reduction you still have for that last 30% of your health bar.
Kimurellia - Holy/Protection Paladin - Scions of Destiny - Eredar-US
User avatar
Xenix
 
Posts: 244
Joined: Thu Jun 25, 2009 4:56 am

PreviousNext

Return to Advanced Theorycraft and Calculations

Who is online

Users browsing this forum: No registered users and 1 guest


Remove Advertisements

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 380 on Tue Oct 14, 2008 6:28 pm

Users browsing this forum: No registered users and 1 guest
?php } else { ?