[Derivation] Armor/Mastery/Avoidance Calculations
Moderators: Fridmarr, Worldie, Aergis, theckhd
Re: [Derivation] Armor/Mastery/Avoidance Calculations
/run ChatFrame1:AddMessage(format("Unhittable at 102.4%%  you have %.2f%%", GetDodgeChance() + GetBlockChance() + GetParryChance() + 5))
That should cover the new one, no need to do all kinds of calculations around defense rating any more now.
That should cover the new one, no need to do all kinds of calculations around defense rating any more now.

Chicken  Posts: 1597
 Joined: Fri Jun 26, 2009 2:19 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
That's the part I was curious about I think I deleted a little too much when i first tried to edit the macro. Thank you!

Lionnis  Maintankadonor
 Posts: 43
 Joined: Tue Mar 16, 2010 6:04 am
Re: [Derivation] Armor/Mastery/Avoidance Calculations
I believe all of the derivations are now properly updated for 4.2. If anyone finds any typos/errors, please let me know.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7800
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
I want to transform the matlabadin code into an excel formula.
%Dodge
avoiddr.dodgedr= =1/(1/((65.63144+0.956)/(dodge/176.71890258)))
That turns 2066 dodge rating into 5.6957 dodge, which seems low, so I must have made a mistake. Maybe something to do with the *(base.lvl==85) section because I don't understand what that's doing?
%Parry
avoiddr.parrydr=1./(1./65.6314+0.956/(parry/176.71890258));
That turns 1382 parry rating (661 from gear and 721 from 3521 strength) into 7.2737 parry which is also low.
Help please?
%Dodge
avoiddr.dodgedr= =1/(1/((65.63144+0.956)/(dodge/176.71890258)))
That turns 2066 dodge rating into 5.6957 dodge, which seems low, so I must have made a mistake. Maybe something to do with the *(base.lvl==85) section because I don't understand what that's doing?
%Parry
avoiddr.parrydr=1./(1./65.6314+0.956/(parry/176.71890258));
That turns 1382 parry rating (661 from gear and 721 from 3521 strength) into 7.2737 parry which is also low.
Help please?
~Arathor~
Arianne  80 Paladin  Protection
Arianne  80 Paladin  Protection
 Arianne
 Posts: 502
 Joined: Wed Jul 11, 2007 1:22 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Arianne wrote:%Dodge
avoiddr.dodgedr= =1/(1/((65.63144+0.956)/(dodge/176.71890258)))
%Parry
avoiddr.parrydr=1./(1./65.6314+0.956/(parry/176.71890258));
The dodge formulation is b0rked.
At a quick glance, avoid_dr() is working as intended :
 Code: Select all
clear;base=player_model;avoiddr=avoid_dr(base,2066,1382,0)
avoiddr =
k: 0.9560
c_dodge: 65.6314
c_parry: 65.6314
agi_dodge: []
dodge: 11.6909
dodgedr: 10.3082
parry: 7.8203
parrydr: 7.2737
totavoid: 17.5819

tlitp  Posts: 556
 Joined: Mon Jul 27, 2009 3:25 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
I know matlabadin works fine, I just don't know enough matlab to translate that into excel code evidently (maybe I have parens in the wrong place because I don't know the order of operations in matlab?).
So undr'd dodge is avoiddr.dodge = 2066/176.71890258 = 11.69088
avoiddr.dodgedr=1./(1./avoiddr.c_dodge+avoiddr.k./avoiddr.dodge);
=1/(1/65.63144+0.956/11.69088)
That gives me 778.466 in excel. o.O What am I doing wrong?
So undr'd dodge is avoiddr.dodge = 2066/176.71890258 = 11.69088
avoiddr.dodgedr=1./(1./avoiddr.c_dodge+avoiddr.k./avoiddr.dodge);
=1/(1/65.63144+0.956/11.69088)
That gives me 778.466 in excel. o.O What am I doing wrong?
~Arathor~
Arianne  80 Paladin  Protection
Arianne  80 Paladin  Protection
 Arianne
 Posts: 502
 Joined: Wed Jul 11, 2007 1:22 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Arianne wrote:I know matlabadin works fine, I just don't know enough matlab to translate that into excel code evidently (maybe I have parens in the wrong place because I don't know the order of operations in matlab?).
So undr'd dodge is avoiddr.dodge = 2066/176.71890258 = 11.69088
avoiddr.dodgedr=1./(1./avoiddr.c_dodge+avoiddr.k./avoiddr.dodge);
=1/(1/65.63144+0.956/11.69088)
That gives me 778.466 in excel. o.O What am I doing wrong?
It did? I get 

lythac  Moderator
 Posts: 2676
 Joined: Wed Sep 24, 2008 8:10 am
Re: [Derivation] Armor/Mastery/Avoidance Calculations
o.O It works in my current version of excel 2010 on my desktop, but it doesn't work in my excel 2007 on my laptop. Weirdness. Ok, well I'll just use my desktop. Thanks Lythac and tlitp.
~Arathor~
Arianne  80 Paladin  Protection
Arianne  80 Paladin  Protection
 Arianne
 Posts: 502
 Joined: Wed Jul 11, 2007 1:22 pm
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Arianne wrote:o.O It works in my current version of excel 2010 on my desktop, but it doesn't work in my excel 2007 on my laptop. Weirdness. Ok, well I'll just use my desktop. Thanks Lythac and tlitp.
I'm gonna guess order of operations issue.
 Durability
 Posts: 44
 Joined: Wed Jun 16, 2010 11:15 am
Re: [Derivation] Armor/Mastery/Avoidance Calculations
I know all the math to figure it out is laid out perfectly on the first page, but the aptitude to do so eludes me. After block cap, what is the break point for armor you would need for the armor meta to again become more valuable (as the value from the block meta plateaus)? Or is it even worth considering?

pfunkmort  Posts: 99
 Joined: Mon Apr 13, 2009 3:11 am
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Interesting question. It's pretty easy to solve equation (VI.5) for Ar, which lets you calculate the armor breakpoint:
Where I've used x=0.01 since the block meta is 1%.
Reaching block cap is equivalent to saying that Bc=1.024Av; in other words, your block chance Bc fills up the full remainder of the 102.4% CTC that Avoidance hasn't covered already. In that sort of situation, block chance and avoidance completely drop out of the equation:
(note that I could have gotten there quicker by recognizing that the 1.024Av in XX.6 is Bc, but I thought this version made the thought process a little clearer).
Here's what I get for the armor breakpoints using Av=0.35 (and Bc=0.55 for the belowcap break point):
Those armor values are in thousands, so the break point at a "low" 55% block is between 40k and 50k armor. However, if you reach block cap, the block meta gets significantly stronger than the armor meta. We'd need at least 90k armor to make them equal in the worstcase scenario, and closer to 150k200k armor once you include any realistic model of Holy Shield. At really high block values, we start getting negative numbers because there's literally no amount of armor that provides equivalent mitigation.
I'll probably update the front page with this derivation in the next few days. Perhaps an armor crossover point is a more intuitive way to see the balance between the two metas in the first place; the current version was conceived when it was still unclear how the block meta worked, but it seems less relevant now since we know it's 1%.
 Code: Select all
Ar = K/[2(1.024AvBc*Bv)/Bc  1.02] (XX.6)
Where I've used x=0.01 since the block meta is 1%.
Reaching block cap is equivalent to saying that Bc=1.024Av; in other words, your block chance Bc fills up the full remainder of the 102.4% CTC that Avoidance hasn't covered already. In that sort of situation, block chance and avoidance completely drop out of the equation:
 Code: Select all
Ar = K/[2*(1.024Av(1.024Av)*Bv)/Bc  1.02]
= K/[2*(1.024Av)(1Bv)/Bc  1.02]
= K/[2*(Bc)(1Bv)/Bc  1.02]
= K/[2*(1Bv)  1.02]
(note that I could have gotten there quicker by recognizing that the 1.024Av in XX.6 is Bc, but I thought this version made the thought process a little clearer).
Here's what I get for the armor breakpoints using Av=0.35 (and Bc=0.55 for the belowcap break point):
 Code: Select all
Bv 0.31 0.3767 0.41 0.51
x 0.009981 0.009254 0.008891 0.007801
x_2 0.01128 0.01062 0.01029 0.009297
Ar= 40.17 48.08 53.32 79.27
Ar_cap= 90.48 143.7 203.6 814.3
Those armor values are in thousands, so the break point at a "low" 55% block is between 40k and 50k armor. However, if you reach block cap, the block meta gets significantly stronger than the armor meta. We'd need at least 90k armor to make them equal in the worstcase scenario, and closer to 150k200k armor once you include any realistic model of Holy Shield. At really high block values, we start getting negative numbers because there's literally no amount of armor that provides equivalent mitigation.
I'll probably update the front page with this derivation in the next few days. Perhaps an armor crossover point is a more intuitive way to see the balance between the two metas in the first place; the current version was conceived when it was still unclear how the block meta worked, but it seems less relevant now since we know it's 1%.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of GrehnSkipjack.
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty
MATLAB 5.x, Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 5.x, Blog: Sacred Duty

theckhd  Moderator
 Posts: 7800
 Joined: Thu Jul 31, 2008 3:06 pm
 Location: Harrisburg, PA
Re: [Derivation] Armor/Mastery/Avoidance Calculations
What about magical damage? More specifically, at what point does an armor elixir become better than a prismatic elixir?

BennyHill  Posts: 17
 Joined: Sat Feb 12, 2011 10:02 pm
 Location: USDragonblight
Re: [Derivation] Armor/Mastery/Avoidance Calculations
BennyHill wrote:What about magical damage? More specifically, at what point does an armor elixir become better than a prismatic elixir?
Any time there is a pure physical damage fight (Patchwork).
Xayton <Notéd> Llane
I'll try being nicer if you'll try being smarter.
I'll try being nicer if you'll try being smarter.

Xayton  Posts: 45
 Joined: Wed May 13, 2009 5:25 am
 Location: Sanity
Re: [Derivation] Armor/Mastery/Avoidance Calculations
I know that. The math behind this answer is what I'm interested in. You should be able to compare resistance to any other stat.

BennyHill  Posts: 17
 Joined: Sat Feb 12, 2011 10:02 pm
 Location: USDragonblight
Re: [Derivation] Armor/Mastery/Avoidance Calculations
Well it depends on the % of magic damage taken. For sustained damage this is usually not much more then 30%. But for killing spikes it can be much more. You can handle those with cd's, but if it's unpredictable, it might be nice to look into resist for NEH purposes.
However, I don't know if resist is still on a roll system. I know its shows a % on the sheet, but the sheet doesn't exactly reveal mechanic properly in many cases. If it's still on a roll system, you could aim for a soft cap. Last time I looked the prismatic elixir doesn't push you over a soft cap for lvl 88 mobs, so you would be forced to use very old resist sources, with very low stam/resist ratio's. The cloak enchant is fairly cheap though. This also locks you out of using a flask, wich can be a problem if you are blockcapped without the mastery elixir.
I'm not quite sure about resist, I looked into it but it doesn't look too attractive in its current state and for current encounters to me. I'd be interesed in hearing other ideas.
However, I don't know if resist is still on a roll system. I know its shows a % on the sheet, but the sheet doesn't exactly reveal mechanic properly in many cases. If it's still on a roll system, you could aim for a soft cap. Last time I looked the prismatic elixir doesn't push you over a soft cap for lvl 88 mobs, so you would be forced to use very old resist sources, with very low stam/resist ratio's. The cloak enchant is fairly cheap though. This also locks you out of using a flask, wich can be a problem if you are blockcapped without the mastery elixir.
I'm not quite sure about resist, I looked into it but it doesn't look too attractive in its current state and for current encounters to me. I'd be interesed in hearing other ideas.

Awyndel  Posts: 672
 Joined: Sat Feb 14, 2009 8:49 am
 Location: The Netherlands
Return to Advanced Theorycraft and Calculations
Who is online
Users browsing this forum: No registered users and 1 guest