L90 Mitigation Stat Weights for Warriors

<edit> It’s been brought to my attention that, unlike in Cataclysm, the mastery rating to mastery percent conversion factor isn’t the same for all classes anymore. I’ve used the paladin value here (600 mastery rating = 1% mastery), but for Prot warriors it’s actually 272.6 rating to 1% mastery. This will have three major effects on the simulation:

1) Mastery’s value will be about 2.2x larger than the simulation predicts, putting it on-par with dodge and parry

2) Dodge and parry will get slightly weaker. It’s not clear what the exact order will be, but I’ll try and run some sims and get results posted soon.

3) Hit and Expertise should lose even more value due to the extra rage income from more critical blocks.

I’ve just run the simulation again, fixing the mastery conversion as well as a few other bugs (my Sword and Board proc rate was too low, Berserker Rage is now included), and got the following results:

N=50, \tau=10000, stat=1500

|          |  dodge |  parry |    hit |    exp | mastery |
|     mean | 0.0072 | 0.0072 | 0.0001 | 0.0000 |  0.0074 |
|      std | 0.0004 | 0.0005 | 0.0004 | 0.0004 |  0.0004 |
| std_mean | 0.0001 | 0.0001 | 0.0001 | 0.0001 |  0.0001 |
|          |        |        |        |        |         |
|     mean | 0.9730 | 0.9740 | 0.0114 | 0.0031 |  1.0000 |
|      std | 0.0562 | 0.0644 | 0.0562 | 0.0558 |  0.0520 |
| std_mean | 0.0079 | 0.0091 | 0.0079 | 0.0079 |  0.0074 |

Note that this is with 0 hit/exp natively, so this is as good as hit/exp get. I’ve increased the amount of stats to 1500, as you can see, which will make them a little less valuable because we’re averaging their contribution from 0 hit to 1500 hit rating. Those values will be lower than if we averaged from 0 to 500, for example, but the upside is that the simulation is more stable.

These results aren’t that surprising. With Berserker rage and significantly increased Rage generation from critical blocks, we’re already at or above the shield block rage threshold without hit/exp. In essence, we don’t need any hit or expertise to improve our Shield Block uptime, so they give us no significant TDR effect.

Also, as you can see, mastery has caught up and slightly surpassed dodge/parry now that the coefficient has been corrected.

The question of hit/exp’s value is something I’d like to investigate further. Right now I’m working on another set of simulations modeling short fight durations (i.e. 30-second windows), hopefully I’ll have those for you by Friday. After that, we’ll see what we can do about incorporating Shield Barrier. Though to be honest, I could use your help on that – what’s the logic that a warrior uses to determine when to use Shield Barrier?

</edit>

It’s been a while since I last covered Warrior stat weights and many of the spec’s core mechanics have changed since then, so it seemed like a good idea to revisit that calculation now that we have a more finalized implementation.

At first this seemed like it would be a pretty simple problem. The avoidance calculations are similar to paladins (though the warrior diminishing returns equations now have different constantsbest estimates are $C_p=237.1$ and $C_d=90.4$, with $k=0.956$ – but that’s a trivial issue). One of the major complications in the previous calculation was the interaction of auto-attacks and Enrage, which was completely removed.

Unfortunately the rotation, which was very easy to model in the last version, got significantly more complicated. Revenge was tweaked to a 9-second cooldown that resets when the warrior dodges or parries, which throws a wrench into the works. Whereas before we could so some simple 4-sequence modeling and solve the matrix, now that sort of modeling requires ~32 sequences, and the randomized cooldown on Revenge means that each sequence has up to 6 potential variants (based on the cooldown of Revenge at the beginning of the sequence), leading to 192 potential states to consider. I think it’s possible to write the transition matrix for that system analytically, but the result will be complicated enough that it’s unlikely to simplify to something useful. I’m still considering various approximation approaches so that we can find an analytic form, because it would be useful for the sorts of scaling analyses I’ve done for paladins, or to put together a useful spreadsheet. But that will probably have to wait until several other projects are finished. In the meantime, however…..

A good friend of mine once said “If at any point a brute force strategy isn’t working, you’re not using enough brute force.” And since I’ve been updating the paladin Monte-Carlo simulation, it was pretty fast to rewrite it to create a warrior version. So, brute force it is.

I was pleasantly surprised by the results. One significant “feature,” if you will, of the new warrior mechanics is that there’s absolutely no haste scaling. You don’t get rage from auto-attacks, nor are any of your ability cooldowns reduced by it (ala Sanctity of Battle for paladins). This is significant for two reasons:

  1. Warriors will be at a distinct disadvantage on fights with a big haste buff (Sinestra, Madness) because their resource generation doesn’t scale with it. This is an odd reversal of sorts, since Paladins were in this position in Cataclysm while rage tanks and DKs all gained a benefit from the raid-wide buff. I’d also argue this is a big problem for Warriors, just as it was a big problem for Paladins in Cata (looking at that old post… wow, it’s eerie how accurate Mel was).
  2. It means that the Monte-Carlo simulation will run a lot faster. If everything happens in lock-step with the GCD (1.5-second boss swing timer, everything else changing in 1.5-second intervals), I can use very large time steps in the simulation. Whereas in the paladin Monte-Carlo, I need to use time steps of 10 milliseconds, the warrior one can function properly with 1.5-second time steps. I’m using 500 milliseconds just to be safe, which means the simulation runs 50x faster than the paladin version (and then some, since I don’t even need to sim a haste stat weight). I could get another factor of ~3 by boosting the time steps to 1.5-seconds, but when the simulation runs in minutes to the paladin version’s hours, it seemed unnecessary.

The first is bad news for warriors. The second is good news, because it means I can run the simulations quickly and efficiently. So without further adieu, let’s look at how we do it.

Simulation Set-Up and Methodology

The code for this section can be found in the matlabadin repository:

warr_mc.m
warr_mc_sw.m
warr_mc.rg.m

I’ve covered the details of how the Monte-Carlo works before, but in short: we simulate a limited combat environment, generating random numbers (just like the game does) to determine the outcome. By running the simulation long enough and accumulating enough data, we get statistically significant results.

We track a number of variables: the boss swing timer, the global cooldown, the durations of the Shield Block, Sword and Board, and Weakened Blows buffs, the cooldowns of Shield Slam, Revenge, Battle Shout, Thunder Clap, the internal cooldown on rage generation from Enrage, and the cooldown/charge mechanics for Shield Block.

At each time step, the simulation checks these variables to see if something should happen. For example, if the boss swing timer is up, it’ll generate a boss attack and check to see if it’s avoided, blocked, critical-blocked, or taken as a full hit. If we avoid, it’ll set the cooldown on Revenge to zero. If the GCD is up, it’ll choose a spell to cast based on availability and priority, generate rage if appropriate, apply the appropriate buffs and debuffs, and so on.

The priority I’m using is:

Shield Slam > Revenge > Battle Shout > Thunder Clap > Devastate

This should be the maximum rage-generating priority queue, at the expense of slightly lower Weakened Blows uptime. That’s probably fair, since in a two-tank situation you may not be responsible for keeping it up alone anyway. I’m using the new rage values, so Shield Slam is generating 20 (25 if Sword and Board is up), Revenge is generating 15, and the internal cooldown on gaining rage from Critical Blocks is 3 seconds. I’m also including the passive rage generation from Defensive Stance (1 every 3 seconds, i.e. every other GCD).

We start out with a warrior geared in LFR-level (483) Mists of Pandaria gear. These are actually the stats of a paladin gear set I came up with for my MATLAB simulations, but they should work just as well for a warrior. The point is to get a reasonable estimate of the amount of Strength and ratings at that gear level. The stats I’m using are:

buffed Strength: 9208
parry rating: 4834
dodge rating: 4892
mastery rating: 6758
hit rating: 1521
expertise rating: 1777
haste rating: 0

On the character sheet, these translate to:

Mastery: 28.86%
Parry: 17.86%
Dodge: 10.45%
Block: 19.56%
Critical Block: 28.86%

and of course, against a L93 boss we lose 9% of that avoidance and 4.5% of the block.

To determine how effective each stat is at reducing damage, we calculate the total damage taken at those stat levels after 500,000 minutes of combat (50 “encounters” of 10,000 minutes each). We then do it again after adding 500 points of whichever rating we’re interested in. By comparing the two results, we can determine the amount by which we’ve reduced damage intake.

Simulation Results

With the stats I described above, here are the results. I’ve normalized everything to mastery for clarity, so mastery gets a 1.000 stat weight and everything else is represented as it’s effectiveness at reducing total damage taken in comparison to one point of mastery.

|          |  dodge |  parry |    hit |    exp | mastery |
|     mean | 2.6734 | 2.6448 | 0.2882 | 0.2120 |  1.0000 |
|      std | 0.5378 | 0.5073 | 0.3969 | 0.4399 |  0.4535 |
| std_mean | 0.0761 | 0.0717 | 0.0561 | 0.0622 |  0.0641 |

As I discussed in an earlier post, the mean (often represented as $\mu$) tells us the effectiveness of each stat. The standard deviation ($\sigma$, or “std”) tells us how much variation we’d expect to see in one “encounter.” The standard deviation of the mean($\sigma_{\rm mean}$) tells us how much variation we’d expect to see in the mean if we ran the entire 500,000-minute simulation again. Thus, we’d expect our mean values to be accurate to ~$\pm 2\sigma_{\rm mean}$, as that’s the 95% confidence interval. In this simulation, that means we’re pretty confident in our values to ~$\pm 0.1$.

The results here were a little surprising. Dodge and Parry are excellent, and hit and expertise appear to be abysmal. That dodge and parry would be strong could have been predicted, perhaps, given the symbiotic nature of avoidance and Revenge. Not only does avoiding reduce damage, it also gives you more rage to reduce even more damage with Shield Block. Even so, I was surprised at just how far ahead of mastery both are. Mastery has a small negative interaction with Shield Block, insofar as during the Shield Block uptime the block chance portion of mastery (~15% chance against the boss) is useless. However, during that uptime the Critical Block portion (28.86% chance of a crit block) gets a lot stronger, which should more than compensate for the loss.

What surprised me more was the hit and expertise values – why are they so low? After all, the recent buff to rage generation was presumably to help correct rage starvation issues. If warriors were rage-starved, wouldn’t resource generation stats like hit and expertise be very valuable?

Well, sort of. The answer lies in some of the data I haven’t shown you yet. Here’s a plot from a single 50,000-min simulation that shows the break down in hit size, along with some other statistics:

Warrior hit size breakdown

Histogram of our sample warrior’s damage events. 40% corresponds to a critical block, 70% to a regular block. 100% is a full-sized hit, 0% is an avoid.

The breakdown itself is interesting – only ~34% of their events are regular hits and many more are blocked or crit-blocked. That’s some nice damage smoothing. But the stats of interest to us right now is in the title. S=65.9% is the uptime of the Shield Block buff, which is nearly at the cap of 66.6%, as enforced by the charge mechanic. $R_{\rm rage}$ is the rate of rage generation, an amazing 6.713 rage per second. That explains why hit and expertise aren’t valuable – we’re generating rage fast enough that we could cast Shield Block every 8.9 seconds, but we’re artificially limited to every 9 seconds by the cooldown. This is reflected in the “average time between Shield Blocks” statistic, $T_{\rm sb}=9.1 s$. Adding more rage generation is mostly worthless at this point, because we can’t actually use that rage.

In fact, the only reason the stats have any value at all is because this is a Monte-Carlo. In an analytical calculation, we’d be capped and they’d drop off in value to zero. But since this is a statistical simulation, there will be cases where we miss a few generators in a row and end up in a rage drought, leading to slightly lower Shield Block uptime (and thus more damage taken). That’s why $T_{\rm sb}$ is 9.1 and not 9.0. Hit and expertise just smooth out those droughts, giving us a marginal but low value.

If I track rage generation in the simulation, I find that out of the total ~20 million rage generated, we “waste” 362 thousand of it because we can’t use it (technically we can convert that to Shield Barrier usage, but the sim doesn’t know it – we’ll talk about this more later).

To test this, let’s artificially set the hit and expertise on our gear to zero. In theory, that should drop our rage generation and Shield Block uptime, which should give us a better feel for how much value hit and expertise have when we’re not bumping into the “rage cap” (nominally 60 rage every 9 seconds, or 6.6667 rage per second). If we do that, we get:

|          |  dodge |  parry |    hit |    exp | mastery |
|     mean | 2.4602 | 2.3382 | 1.0757 | 1.1019 |  1.0000 |
|      std | 0.5113 | 0.5616 | 0.5172 | 0.4833 |  0.4527 |
| std_mean | 0.0723 | 0.0794 | 0.0731 | 0.0684 |  0.0640 |

And here’s the associated histogram:

Warrior hit size breakdown, 0 hit/exp

Histogram of our sample warrior’s damage events at 0 hit/exp. 40% corresponds to a critical block, 70% to a regular block. 100% is a full-sized hit, 0% is an avoid.

So if we’re below the rage threshold (and we are, at ~6 rage per second), hit and expertise are quite valuable because they have a measurable effect on Shield Block uptime. Note that our Shield Block uptime has dropped to 60.6%, and the corresponding time between Shield Blocks has increased to 9.9 seconds. This is reflected further in the rage generation analysis: we generate about 18 million rage and “waste” only a little over 8 thousand.

We can run a simulation to see exactly how these stat weights scale with expertise. Using warr_mc_rg.m, I run the simulation at expertise values from 0% to 15% in 1% steps. Here are the associated values, along with the mean rage generation rate (“RPS”) and Shield Block uptime (“SBU”):

|    exp% |    mean |    std | std_mean |    rps |    sbu |
|  0.0000 |  1.0000 | 0.3813 |   0.0539 | 6.0611 | 0.6155 |
|  1.0000 |  0.8916 | 0.3962 |   0.0560 | 6.1278 | 0.6220 |
|  2.0000 |  0.8908 | 0.4396 |   0.0622 | 6.1986 | 0.6284 |
|  3.0000 |  0.8274 | 0.4781 |   0.0676 | 6.2652 | 0.6345 |
|  4.0000 |  0.8182 | 0.4092 |   0.0579 | 6.3311 | 0.6401 |
|  5.0000 |  0.7261 | 0.3817 |   0.0540 | 6.3990 | 0.6457 |
|  6.0000 |  0.6671 | 0.3972 |   0.0562 | 6.4667 | 0.6505 |
|  7.0000 |  0.5626 | 0.3531 |   0.0499 | 6.5332 | 0.6548 |
|  8.0000 |  0.3836 | 0.3612 |   0.0511 | 6.6002 | 0.6584 |
|  9.0000 |  0.3374 | 0.4133 |   0.0584 | 6.6653 | 0.6611 |
| 10.0000 |  0.1987 | 0.3614 |   0.0511 | 6.7291 | 0.6633 |
| 11.0000 |  0.0835 | 0.3768 |   0.0533 | 6.7937 | 0.6647 |
| 12.0000 |  0.0599 | 0.3666 |   0.0518 | 6.8561 | 0.6656 |
| 13.0000 |  0.0254 | 0.3691 |   0.0522 | 6.9206 | 0.6661 |
| 14.0000 |  0.0513 | 0.3546 |   0.0501 | 6.9834 | 0.6663 |
| 15.0000 | -0.0373 | 0.3645 |   0.0515 | 7.0452 | 0.6663 |

And here are the associated plots:

Warrior expertise stat weight as a function of expertice percentage

The expertise stat weight (normalized to its value at 0% expertise) as overall expertise value is increased.

Warrior rage generation and Shield Block uptime as a function of expertise percentage

As expertise is increased rage generation increases linearly, but Shield Block uptime saturates to its asymptotic value of 0.6667. Datatips are shown to highlight certain values.

The data is a little noisy, but it’s pretty clear that the value of expertise drops off pretty steadily up to around 9%. From the bottom graph, we see that 9% is where we hit the 6.667 rage threshold, and correspondingly we see a “knee” in the Shield Block uptime curve. Shield Block’s uptime is saturating to it’s asymptotic value of 66.67%, and this “knee” is where we start really feeling the effects of that cap. Since warrior skills are equally affected by hit or expertise, we can surmise that hit behaves similarly, and what really matters is that the sum of hit and expertise is 9% (though of course, hit over the 7.5% cap doesn’t count!).

Beyond the 9% threshold, SB uptime only increases slowly and the value of hit or expertise is primarily due to the smoothing of rage droughts that I described earlier. The bulk of the rage generation beyond this point is what we consider “wasted” in this simulation (more on that in a second). So we can reasonably say that any hit or expertise beyond a total of 9% (i.e., hit+expertise=9%) has little to no effect on Shield Block uptime.

It’s also worth noting that the TDR value doesn’t see a sharp drop-off at 9%. The TDR value steadily decreases up to around 11%, after which it hits rock-bottom. The steepest descent seems to occur from 6% to 10%. But by 7.5% expertise, the TDR value is at half of its original value.

As a brief aside, I’m wondering if the recent rage generation buffs were even necessary. At zero hit and expertise, warriors already get 60% coverage with Shield Block, and they can’t realistically improve that very much with hit and expertise. Perhaps that’s intended though, and the excess rage is supposed to go into Shield Barrier usage. I’m not as clear on what the design goals are for warriors.

In fact, it’s about time we addressed the issue of Shield Barrier. The simulation doesn’t do anything to try and model Shield Barrier, partly because it’s so variable. I could probably implement it under a few circumstances. I’d have to track Vengeance somehow, which isn’t impossible, but would slow the simulation down a bit. We’d also have to approximate Shield Barrier’s absorb according to our normalized Vengeance value, which I haven’t had time to do.

However, we can come up with a conceptual estimate based on the assumption that all of the “wasted” rage can be converted to Shield Barrier casts. There would obviously be a little attrition, in that you might push Shield Block back a few seconds if you use a 60-point Shield Barrier at the wrong time, but overall the result shouldn’t be that far off from the approximation. Even in our near-capped case, where we “wasted” 362 thousand rage (which is about 1.8% of all rage generated), that’s still only an extra Shield Barrier every ~5000 seconds, or every ~83 minutes.

We can do the same analysis using our expertise scaling data. At 14% expertise we’re generating 6.983 rage per second. If we assume that everything over the 6.667 RPS we need to maintain Shield Block gets turned into Shield Barriers, that’s 0.316 rage per second, or another Shield Barrier every ~190 seconds (about every 3 minutes). So that extra 6% expertise beyond the 9% threshold buys one Shield Barrier every fight, maybe two on a 6+ minute encounter. That’s doesn’t seem like a lot of survivability for a 2040 rating investment (then again, it only takes one sometimes…).

Conclusions

I think these simulations were quite fruitful. It’s clear that the results differ enough from the paladin ones that a separate analysis was warranted. I’ve seen a lot of ambiguity regarding stat weights for prot warriors, and these simulations bring statistical evidence into those discussions. For one thing, the value of hit and expertise seems a lot lower than many assumed, and their value at level 90 will end up being directly correlated to how important extra Shield Barrier casts are. That may even be a player-specific decision rather than a hard-and-fast rule.

In addition, I think everyone will be a little surprised at how strong avoidance is for warriors. The synergy between Revenge and dodge/parry is a fearsome thing, effectively turning dodge/parry into rage generation stats. The warrior that eschews hit/exp and stacks dodge/parry may not suffer much as far as rage generation is concerned simply because of Revenge. Rather than having to choose between a resource generation stat and an avoidance stat, like a paladin does, the warrior can stick with avoidance and get both.

I’d say that this devalues hit and expertise, and that every warrior will be stacking avoidance to the sky, but hit and expertise still give an element of control that’s worth considering. High avoidance may give you enough resource generation to maintain a fairly high Shield Block uptime, but that avoidance-based rage income is just as stochastic as the damage reduction it grants. You could easily get doubly screwed by a string of missed attacks occurring simultaneously with a string of unavoided attacks, leaving you high and dry. At least with respectable hit/exp values, you have more control over your rage income.

That said, Shield Block’s 2-charge mechanic and the ability to pool 120 rage mitigate this problem quite a bit. That might be enough control for a skilled warrior, making the sheer rating investment of hit- and expertise-cap unattractive for such a small benefit. And we have shown that it only takes about 9% total hit+expertise to reach the point where Shield Block is available as often as it can be. It wouldn’t surprise me if avoidance-stacking became the dominant gearing strategy for warriors even while the hit/exp/mastery/haste strategy becomes dominant for paladins.

As a brief footnote: The warrior diminishing returns equations are a little different than the paladin ones, and seem to have been balanced pretty well given our gear set with roughly equal amounts of dodge and parry rating. Remember, the stated design goal was for our rating values to be approximately equal after the extra parry->strength conversion. I find myself wondering if that’s why the warrior equations were changed again. They were identical to paladins at one point in beta, but the most recent change adjusted the scaling and the dodge cap. I also wonder whether the paladin dodge cap will be adjusted similarly before L90 raiding.

This entry was posted in Tanking, Theck's Pounding Headaches, Theorycrafting and tagged , , , , , , , , , , , , , , . Bookmark the permalink.

90 Responses to L90 Mitigation Stat Weights for Warriors

  1. I can’t keep up with your math, Theck, but it is because of folks like you that I prefer WoW to other games. Knowing that people who understands the math play this game and punch it in the face with that math is really … comforting? empowering? something… to me, and leaves me feeling like I get to have more control over my character because of your hard work.

    So, thanks.

    //Mech

  2. Angelflavor says:

    I may not fully understand all this but I love it. The work you put into this game is amazing and I wish I could do 1/2 of what you can lol.

    I only play a Prot Paladin currently and I think part of the reason is that I know you will be there showing us all the options we have back up with numbers. Now seeing you really “mathing” out warriors….It maybe to much too ask but I think it would be cool if you could do all tanking classes. >_> Personally I would love to see some stats for brewmaster monks once data is readily available.

  3. Button says:

    Interesting. Thanks very much for doing the brute force work Theck!

    One thing I feel needs more emphasis is just how important critical block is to rage generation. 10 rage per critical block is nothing to be sneezed at, and in a decent-sized group of enemies, Shield Block will effectively pay for itself!

    I also submit that the fluctuation in rage generation caused by critical block will eclipse the fluctuation caused by low hit and expertise. Going by my own spreadsheet (in progress – I have yet to integrate critical block), going from 0 hit/expertise to capped on hit/expertise is a gain of less than 1 rps – or less of a rage gain than critically blocking once every 10 seconds! Which would imply that, though capping hit and expertise would slightly increase rage-reliability, it wouldn’t be enough to prevent the occasional stretch of starvation, let alone to regulate rage generation.

    The big question on my mind – and what’s prevented me from going into rage generation from block on my spreadsheet – is, since Shield Barrier does more damage reduction than Shield Block in most cases, how often are we really going to be using Shield Block, even given its lower effective rage cost? Your simulation makes it sound like you think warriors will be using Shield Barrier only when they have rage to burn while maximizing Shield Block uptime; whereas I was under the impression that the proper relationship between the two (in single-target) was the opposite.

    I suspect in 5.0 we’re going to see two different prot warrior styles – a rage-spendthrift Shield Block uptime style reminiscent of TBC, and a rage-thrifty DK-like style which pools its rage and focuses on Shield Barriering just before/after big spikes.

    • Theck says:

      I really can’t answer the question about Shield Barrier yet, because I haven’t worked any of that out. If Shield Barrier usage becomes higher priority than Shield Block, then the model I’ve used isn’t really appropriate. That said, it seems odd to me for Shield Barrier to eclipse the mitigation granted by Shield Block, both because Shield Block is the ability that’s cooldown-limited and because Shield Barrier is more versatile. I would have assumed that for balance reasons, Block would be better for physical (melee) damage and Barrier would be the magic mitigation tool.

      Then again, are you saying Shield Barrier is better at L85, or L90? It might be that the numbers are tuned around L90, and Barrier’s dominance at L85 is an anomaly.

      • Button says:

        Barrier is definitely better at 85, but I’ve also read that it’s better at 90 (while main-tanking). Numbers are here: http://us.battle.net/wow/en/forum/topic/6036677472

        GC’s response: http://us.battle.net/wow/en/forum/topic/5889309137?page=97#1930

        These numbers are from July, but as Shield Barrier is still scaling linearly (according to the formula on WoWhead), I’m inclined to believe they’re still accurate/that the devs didn’t implement exponential scaling, as GC intimated they might.

        P.S. wrt my previous post, my spreadsheet was using old rage gen values for SS and Rev; updated, capping hit and expertise is a 1 rps gain over 0 hit/expertise, instead of a ~0.8 gain. Ooh la la.

      • Ninjouz says:

        For any heroic encounters, I really don’t see SBar being used before SBlock. At least on heavy melee damage (90% of T14 encounters). Hardest bosses I’ve seen deal about 300K every 2 s on armor tanks (after passive/armor reductions).

        I believe that an average SBar for this type of encounter would be near 200K absorbs.

        That would be eaten by a single melee leaving out of the open for unmitigated & deadly hits. Whille SBlock can cover you up to 4 hits if really well timed (at least 3) for a minimum mitigation of 300 000 * 3 * 0.3 (30% blocks) = 270K.

        Plus we’ll get increased rage gen through crit block (because at entry raid gear, our avoidance will sux thus revenge not resetting as often as 85 high end gear).

        • Theck says:

          The mitigation isn’t quite as simple as you’ve described because of critical blocks. It should be something like D*3*0.3+D*3*0.3*(1-Bc)*CBc. The second term is the additional damage mitigated by the extra critical blocks you get by having SB up (Bc is your block chance, CBc is your crit block chance), if I did the math correctly. Also note that the net TDR gain is a little smaller: D*3*0.3*(1-Bc)+D*3*0.3*(1-Bc)*CBc. The extra factor in the first term accounts for the fact that you would have blocked some of the attacks without Shield Block. And both of those ignore the rage gain mechanic, which will push the value higher.

          • Ninjouz says:

            Yeah, I was only comparing one SBlock use vs one SBar use in terms of mitigated damage.

            I admit it’s more complicated, cuz avoidance grants SBar some favor, while decreasing SBlock utilty but hey, to ease up healing, i think that the less RNG we get, the more we please our healers.

  4. Ninjouz says:

    Really nice post, Theck. Thanks on behalf of warrior community!
    However, you forgot in your script a really useful ability : Berserker Rage. It gives 10 rage per use (30sec CD). I think that with this included, we should be at SB uptime cap.

    Also, in a raid environment, Weakened Blows should be applied by the OT, so we can get one more devastate every 30sec.

    Then again, we got a 3min CD named Avatar, that increase our rage gain by our damaging abilities (SS, REV).

    Maybe, with all this, mastery should be more valuable ?

    Thanks again

    • Theck says:

      It very well might. Where would BR fit into the priority? I’d assume that it would fall behind Battle Shout but ahead of Thunder Clap (assuming you’re the one putting that up in the first place).

      • Ninjouz says:

        Here’s the magic : BR is off GCD, so you can use it whenever you like (It gives an enrage thus 10 rage).

      • Taunty says:

        Zerker Rage is off the gcd. It also doesn’t just give you 10 rage like Battle Shout does, but triggers a regular Enrage. Not sure if these are affected by or do affect the crit block inner cd, gonna let a buddy hit me with his Rogue.

        • Taunty says:

          Interesting to see that I’m not the only one who took a wile to read this.
          Here is a combat log snippet of an ilvl ~333 Rogue hitting a ~402 Warrior: http://pastebin.com/1d2m0gTe
          On 22:43:35 (lines 4-7), I hit Zerker Rage and trigger Enrage, complete with buff and rage gain. One second later, 22:43:36 (lines 8-11), i critblock a white swing and get my Enrage refreshed (and gain 10 rage).
          The other scenario is easier to test, Zerker Rage actually does trigger a full-fledged Enrage even half a second after a critical block.

          • Theck says:

            So if I’m reading that correctly,
            1) Zerker rage is off-GCD
            2) It grants 10 rage when cast (but not 10+10 for the enrage effect, just a flat 10)
            3) It doesn’t interfere with the 3-second ICD on crit-block Enrages
            Right?

          • Taunty says:

            Correct on all three accounts (except for a small semantic error that wouldn’t change anything for what you’re doing – it doesn’t generate any rage on its own, but rather triggers an Enrage which does).

          • Theck says:

            Yeah, that’s what I thought, but I worded it poorly.

      • Scyas says:

        Berserker Rage is not on the GCD, so unless there is a fear mechanic it can be used on cooldown.

      • Dalmasca says:

        Considering that BR isn’t on the GCD, it shouldn’t really matter. I don’t know how your simulation handles that though.

    • Coreus says:

      I don’t use Berserker Rage rotationally– I keep it off CD to ensure that I can use Enraged Regen any time I need to. 10 Rage every 30 seconds [and a small damage boost] is not worth losing that ability.

  5. Wrathblood says:

    Theck, I have a concern that you might be underweighting Hit and Exp. First, my understanding is that Barrier is likely to be the go-to defensive move for Warriors well up into the first tier of MoP. Since it has a much shorter CD than Block, there’s no real risk of having Rage get wasted. You address this in part by discussing the value of Hit and Exp at lower values, but Barrier works fundamentally differently than Block, being an absorb shield rather than a mitigation tool. As such I fear Warriors will end up with really variable incoming damage levels (not as bad as DKs, but much more so even than in 5.0.4) which will increase Warriors’ desire for rage even further. Not even to move Hit/Exp ahead of Avoidance or anything (I think you’re spot-on about how good Avoidance is for them), but solidly ahead of Mastery for longer.

    Second, and this is more of a question, Hit and Exp are valuable for Paladins, in part to keep HoPo generation strong, but also in part to reduce the variability of ShoR up-time. The whole “Control” strategy thing. Do you see a similar dynamic going on with Warriors?

    Paladins have a semi-interesting decision between Hit/Exp and Haste in terms using your HoPo flow most efficiently vs increasing the flow, but its not really very interesting because Haste (at current levels) isn’t ever really a very good stat. For Warriors, however, their Haste-equivalent (in terms of increasing Rage) is Avoidance, which is already a pretty spiffy. So swapping out of Avoidance (survivability + your flow of Rage) to increase Hit/Exp (and thus the efficiency of your Rage generation and its usage) is a much more painful decision to make.

    • Theck says:

      I think that the Barrier>Block situation is likely unintended (or wrong). It seems backwards to me that a cooldown-limited ability like Block would be less attractive than Barrier. I’m sure that the intent was for Barrier to be the anti-magic tool, and Block to be the anti-melee tool. It may be that this is the case at 90, and right now at 85 they’re unbalanced. If it’s still that way at 90, I can’t see it lasting very long before getting fixed.

      That said, if it does persist, we can sim it. I’m not sure the result will be that much different though – my guess is that hit/exp might edge out mastery, but that dodge and parry will still pull ahead for TDR.

      Regarding “Control,” I think we’re seeing something very similar here. The difference is that our control stats have a feedback loop that make them all stronger (up to the hit and exp caps, of course). With a warrior (at least, one focused on Shield Block), there’s a steady-state upper limit that they hit well before the hit/exp cap, and they don’t have the same feedback mechanism.

      That said, Omega and I have been discussing something this morning. He’s pointed out that in many fights, you only tank for 30 seconds before taunting back and forth between tanks. A warrior can pool 120 rage and have all of their abilities ready to get 4 back-to-back Shield Blocks off after the taunt, for 24 seconds of uptime. In theory, they can cover 27 seconds of that 30-second period with Shield Block. One would think that this increases the value of mastery, hit, and expertise (for rage gen to make sure that happens). I’m currently running simulations to verify this (though so far, the results are surprisingly not what we expected!). Expect a follow-up post later this week, or early next.

      • Wrathblood says:

        That’s an interesting observation. Frequent tank swaps + active mitigation could lead to all sorts of defensive wackiness. I’m curious to see how it sims out.

  6. Lakh says:

    I’ve been having a break the last couple of months & haven’t been keeping up to date, but do we have a stat weight for strength?

    Some of the numbers I’ve heard floating around, it sounds like the plate tanks could end up gemming strength for our avoidance sets…

    • Theck says:

      At 85 it’s slightly ahead of parry, at 90 it will be slightly behind. There’s not much point to simming it, since it’s value is linked identically to parry.

    • Button says:

      Remember that Shield Barrier doesn’t take into account AP from strength (save the 10% from the raid buff). So it’s only worth very slightly more than the parry it gives.

  7. Stunti says:

    Hey, nice work.
    You said that shield-block has an uptime cap from 66.67%. but it fan be used twice before cooling down, so that there is a possible uptime of 12/15sec. so it would pe uprimed nearby 85% and mastery should be much stronger in that case.

    im sorry for my worse english.

    • Ninjouz says:

      Not really, only one charge can be “recharging” at a time. So when the first one is still recovering, the second one has to wait.

    • Theck says:

      See my reply to Wrathblood above, in the steady state it’s a max of 66.67%, but immediately after a taunt you can get ~90% uptime for the first 30 seconds provided you’ve planned properly. I’m doing another round of sims to see how this changes things (and in that one, I can drop Tclap since the other tank should be putting it up for you).

  8. Coreus says:

    Really appreciate your work, man. Some surprising results, and I’m very interested to see what you have to add on Barrier use.

    My assumption would be that because Block is a % of incoming damage and Barrier is a flat amount there will something like a break point for incoming damage where one becomes more useful over the other. The reason Barrier is so consistently ahead right now is because the current tier is so nerfed and we’re so overgeared that very little actually hits us hard enough to make Block worth casting.

    In any case I seriously doubt Blizzard this will be the case at L90. My expectation is that Block will be what we typically spend rage on, with Barrier acting as a clinch ability to smooth over damage spikes, or for the boss abilities that deal a big tank hit. Pooling rage to get one Barrier before the big hit and one immediately after takes a hell of a lot of stress away from the healers. I think more than any other thing, intelligent Barrier use will be what separates really good Warrior tanks from average ones.

  9. Taunty says:

    Barrier actually isn’t a flat amount, but based on the damage you have taken before using it via Vengeance. It is similar to Death Strike in that regard, but the window is 20 sec long instead of DS’s 5. That way, as long as you can survive Impale without Barrier, its better to use it when recovering. Ever seen whats happening when Impale almost oneshots you while wearing Indomitable Pride?
    Only you are overgearing content to such extremes that you are regularly using minimum Barriers it becomes a flat amount, but I don’t think (actually, i have no idea) this is the case in t13 hardmodes. Furthermore, Dragon Soul traditionally throws quite a bunch of unblockable stuff at you, eskewing our views on SBlock vs. Barrier.

  10. Tengenstein says:

    The interesting thing about Shield Barrier is that its pretty much double our vengeance at 60 rage (and scales linearly down as we decrease the rage we spend on it), but vengeance is proportional to the amount of damage the boss is doing before avoidance and damage reductions. So Shield Barrier is also proportional to boss damage.

  11. Airowird says:

    Hey Theck, thanks for the prot war simming, but I think you made a mistake somewhere (can’t check, don’t have MatLab installed atm).
    At level 90, 600 Mastery rating (= 1 old Mastery) grants 2,2% crit block chance and 0,505% block chance. Your crit block values seem very low compared to what it should be, which means your Mastery value is probably way off as well. My calculations show it to be within ~10% of avoidance, depending on gear.

    Also, on live, the rating -> pre-DR avoidance ratio isn’t the same as what mythok seems to have used in his beta calculations (it’s currently 265,07835 or 1,5 times the old 85 value). This also shifts the coefficients found by him around. I rechecked on live and the values I found are:

    Vintage cap V = 65,63144
    C_p = 3,62 * V = 237,5858128
    C_d = 1,4 * V = 91,884016
    Str / parry% = 243,638
    Str / parry rating = 108,80% (*)

    At 30ish data points, all my model values are as exact as the ingame paper doll shows me.
    parry R² = 0.99947
    dodge R² = 0.99931
    delta never exceeds 0.005% (rounding accuracy) and the average deltas are ~0.0025% (as expected)

    Thanks to some help from Tanja, my favourit spirit healer, I also found out that Agility still gives Dodge chance (at a rate of anywhere above 3000 and up to 24000 agility per %dodge at 85) and the non-DR portion of strength->parry is the same even with stat reducing debuffs. e.g. of my 3427 strength I had 856 left after ress sickness, of which 192 still counted as non-DR. Nekid with ress sickness, the 48 strength I had left was all scaling non-DR, so no ‘negative parry rating’ either.

    (*) The strength vs parry rating number seems messed up right now, but considering that you can get twice the amount of parry rating on a red gem in MoP, it seems a perfect balance between not messing up gemming and food tables just giving all warriors strength without issues.

    • Theck says:

      A few comments:

      1) Those dodge and parry coefficients are exactly what I’m using. Note that at L90, the strength -> parry% conversion drops below the parry rating->parry% conversion rate (even 1 to 1). It’s only at L85 that STR is better than parry.

      2) The Agi->Dodge conversion factor is about 10,000. That’s been known for some time,
      but it’s too small to be of any practical use to us (which is intended, I’m sure).

      3) Regarding res sickness, that’s how the STR->Parry conversion has always worked. Base strength gets converted without DR, and (str-base_str) gets converted and put into the DR equation. Any stat-modifying buff (positive or negative) will affect the DR part, but won’t affect the base (unless, I suppose, it dropped you beneath base str? I’m not sure I’ve ever seen that – maybe res sickness while naked? But how often are you going to be tanking a boss with res sickness while naked?).

      4) Most importantly, the mastery issue. I got my values by testing on live. Here’s the spreadsheet I used: https://docs.google.com/spreadsheet/ccc?key=0AjPXp3A1frAgdFF1WkozU05mZjNXQjRla2Z6RHRvSlE#gid=6

      It was very well fit with the standard block DR equation:
      $latex 3+10+1/(1/C+k/x),$
      with k=0.885 and C=149.1, just like paladins. The 3% and 10% are from base and Bastion of Defense, respectively. The pre-DR value $latex x$ was very clearly
      $latex x=mastery/4.75$

      Hopping on beta (since live is down for maintenance), I specced a pre-made L85 warrior protection and put on a bunch of mastery gear. Here are the tooltip results:
      Mastery: 36.79% (17.60% base +19.19% from 1564 mastery rating)
      Tooltip: “Increases your chance to block by 8% and your chance to critically block by 36%”
      Block: 21.26%

      The tooltip rounds crit block down, so that 36% crit block isn’t accurate. The 36.79% mastery is really 36.79% crit block, not 36%. This is easy to test: socketing one 20-mastery gem boosted me up to 37.04% mastery and 37% crit block on the tooltip. So we know that, at least at L85, the mastery-to-crit-block conversion is 1 to 1.

      For some reason the tooltip rounds block UP though. 36.79/4.75=7.7453, which would round up to 8%. And if we plug x=7.74 (again, this is another weird place where WoW uses floor() instead of round()) into our equation, we get:
      $latex 3+10+1/(1/149.1+0.885/7.74)=21.2612$
      Which exactly matches our 21.26% block.

      So, I’m very confident that the mastery->CB and mastery->block conversions I have are correct at level 85. In all other cases, moving from L85 to L90 has only changed the rating conversion factor, and I suspect it’s the case here too, but I can’t test it myself. If someone would be so kind as to log on to a L90 warrior on beta and report their mastery and tooltip crit block values, we can confirm that this is true.

      In short, unless something is drastically different for warriors than for other classes, I think your mastery-to-crit-block and mastery-to-block conversion factors are out of date.

      • Airowird says:

        1) You are stating different C values at the top of your blog, with a link to a ‘best estimate’, so either way, those need to be fixed. You actually posted a different C value than you used for Dodge, and those that you used doesn’t actually fit what I’m seeing on live right now.
        2) It might not generally be efficient, but it can’t really hurt to know these values, both for potential weird scenarios where they might matter, as well as making sure the base Dodge chance isn’t skewing accuracy of actual testing.
        3) Basicly, everything up till ‘regular’ base str gives non-DR, everything past it is on DR. I suppose this won’t occur a lot, but just in case Blizzard designs an encounter that reduces your Strength to nearly nothing, now you know!
        4) I was specificly pointing out that with 6758 Mastery Rating, 28,86% Mastery seems very low, as I expect 24,78% Mastery just from that amount of rating, in line with the (base Mastery = 4800 rating). My own damage reduction calculations show mastery being relatively on par with avoidance (within ~10% value, depending on gear) as well, which lead me to conclude that you might have missed something.
        But if you want to talk Block DR:
        Out of 56 data point I just collected on EU live servers, round(mastery/4,75) is not in line with the tooltip in 25 situations, compared to only 3 with int(mastery*,505/2,2) and even 0 using int(mastery*,5/2,2), which would be far more accurate and consistent with other tooltips.
        The delta on (M/4,75) goes from -0,7 to +0,53; this is hardly consistent rounding.
        The delta on (M*,505/2,2) goes from -1,06 to -0,04; smaller window, but the lower bound means it’s also wrong. (Yup, guess I’m wrong as well)
        The delta on (M/4,4) goes from -0,98 to 0 (at 0 mastery rating), which is in line with the rounding.
        Using 4,4 also means that in order to refit the curve, k = 0,956 similar to all other DR formulae.
        The C value would remain the same, although due to the inaccuracy of tooltip information I can’t really make a statisticly accurate statement about that without collecting far more data points (specificly extremely high end mastery setups with enough block chance to actually show some DR)

        PS: if you rewrite the DR formula you can get to X’ = C * X / (X + C*k) and if you add in rating as X = R / Q
        -> X’ = C * (R / Q) / ( (R/Q) + C*k) = C * R / ( R + C*Q*k)
        As long as Q*k remains constant, the actual block chance remains the same, but atleast this way you can more accurately predict what the tooltip is going to show.

        • You cant just round in regards to WoW code though, something I found out when writing CTC addons. To get truly accurate results you have to do (floor( (M/x) * 10^2) / 10^2), with x being what ever the Mastery -> Block Scalar ends up being. If you just Round numbers to the hundredths place you can easily end up with a bit too much or too little %. WoW seems to be designed around this flooring.

          • Theck says:

            Yeah, they tend to use floor() just about everywhere. There are a few notable exceptions (though, not notable enough that I remember them off the top of my head!), but when in doubt, go with floor().

        • Theck says:

          There’s a lot to process here, so..
          1) Unless you have access to some *very* thorough testing that I do not, you don’t know $latex C_d$ or $latex C_p$ to better than +/- 0.2ish. We cannot go high enough on the DR curve to unambiguously determine it to better accuracy than that. At this point, I have better “best estimates” than I did before:
          http://maintankadin.failsafedesign.com/forum/viewtopic.php?p=739678&sid=fb7409d9ed1c91fbdb423f319c42dc53#p739678
          And they consistently seem to fall around $latex C_d=91.1$ and $latex C_p=237.1$. I don’t have your data, so I can’t look at it to see what went wrong, but your values seem to fall outside the 95% confidence interval of every data set I’ve collected. From that, my best conclusion is that there’s a mistake somewhere, but I can’t really tell you where it is.

          In any event, this is splitting hairs. The simulation results won’t differ significantly whether we use 90, 91, or 92 as the dodge cap value, and similarly for parry. The statistical error involved in a Monte-Carlo sim is much larger than these minute cap adjustments you’re concerned about.

          2) It can’t hurt to know them, but in a practical sense we can’t test them. How, exactly, do you propose we accumulate the 200,000 agility we need to accurately determine the constant? For practical purposes, it’s enough to know that the amounts of agility we’ll come across in-game give no significant avoidance benefit.

          3) I knew already. =D Most of us have, in fact, for several years, ever since the STR->parry conversion was first implemented.

          4) I was assuming all classes get 1% mastery from 600 rating. I was under the impression that value was constant across classes. But apparently that’s not the case. That will definitely bump Mastery up in effectiveness. Based on your numbers, that makes the conversion factor for prot warriors ~273? So mastery will be ~2.2x better than this simulation predicts, putting it on par with dodge and parry. It’ll take some time for me to update the sims, but I’ll add a note at the beginning of the post.

          5) Regarding the DR equation: This is my data set:
          https://docs.google.com/spreadsheet/ccc?key=0AjPXp3A1frAgdFF1WkozU05mZjNXQjRla2Z6RHRvSlE#gid=6
          Collected on my L85 prot warrior after 5.0.4 was released. If I put that in MATLAB and fit it with 13+1/(1/149.1+0.885/(x/a)), I get:

          General model:
          f(x) = 13+1/(1/149.1+0.885/(x/a))
          Coefficients (with 95% confidence bounds):
          a = 4.75 (4.748, 4.751)

          Goodness of fit:
          SSE: 0.0002888
          R-square: 1
          Adjusted R-square: 1
          RMSE: 0.004249

          I’ve added a few columns to that data set spreadsheet. The first (“Using eqn”) calculates the expected block value using the mastery value and the above equation. The second (“Diff”) subtracts that result from the observed tooltip block value. As you can see, the error is less than 0.01 in all cases. I’ve also added two columns to compare the difference between FLOOR(EQN) and ROUND(EQN), neither of which line up properly.

          It seems you’re suggesting both a different rounding scheme (type-casting as integer), and a different DR equation. I think the discussion about rounding scheme is mostly irrelevant for our purposes, if intellectually interesting. But the equation point is worth considering. If I attempt to fit using the usual warrior k value and your conversion factor of 0.5/2.2, I get this:

          General model:
          f(x) = 13+1/(1/149.1+0.956/(x*0.5/2.2))+b
          Coefficients (with 95% confidence bounds):
          b = 0.004968 (0.002522, 0.007414)

          Goodness of fit:
          SSE: 0.0003622
          R-square: 1
          Adjusted R-square: 1
          RMSE: 0.004758

          I think, however, that we don’t have enough data to unambiguously determine which DR equation we’re using. Adding your formula on to the spreadsheet shows that neither round() nor floor() give any better results than my version. And while it would be nice to unambiguously determine this for the future, at this point it also makes little difference to the results of the simulation. Both equations give essentially the same block value, within +/- 0.01, which isn’t going to change the simmed values any.

          • Theck says:

            After thinking about it some:
            1) Those two DR formulas are functionally identical, and
            2) I think your DR formula makes more sense

            Note that it doesn’t matter whether you use 0.956*2.2/0.5 or 0.885*4.75 in the equation, because they represent the same degree of freedom. In both cases, we’re describing $latex a$ in $latex 1/(1/C+a/x)$. When I fit using a=0.885/Q, I’m just getting a Q value from the fit that identically matches 0.885*0.5/(0.956*2.2). So there’s no point quibbling about the DR equations, because they’re BOTH correct.

            However, now that I know a little more about how MoP mastery works across classes, I think your equation seems like the more logical choice.

            All classes get one “point” of mastery per 600 rating. Mastery points are just inaccessible to us as players, but they’re still in the game. Each *spec* gets different amounts of mastery % per point, just like before. In a paladin’s case, it’s 1% per 1 point. In a warrior’s case, it’s 2.2% per 1 point. That agrees with all of the data we have so far for mastery rating and percentage.

            A warrior then gets 1% crit block and (0.5/2.2)% block chance per 1% mastery. Another way to view this is that a warrior gets 2.2% crit block and 0.5% block chance per *point* of mastery (or per 600 mastery rating).

            It makes more sense to me that the warrior DR equation would use those factors directly, as well as that it would use a uniform $latex k$ value across all DR calculations. It’s less sensible to have a random factor of 4.75 in the works.

          • Airowird says:

            Well the factor simply becomes 4.4 (2.2/0.5) using the ‘older’ k value, but mostly, it’s so the floor(0.5*mastery) matches the block chance tooltip dead-on.

            Once I get my Warrior to 90 I’ll start collecting more accurate data. With the round Q at 600 rating per mastery point, it should atleast help remove rating->mastery rounding issues, leaving us more accurate end-numbers.

      • Theck says:

        Fit to the dodge data:

        General model:
        f(x) = 5.01+1/(1/C+0.956/x)
        Coefficients (with 95% confidence bounds):
        C = 91.03 (90.95, 91.1)

        Goodness of fit:
        SSE: 8.751e-005
        R-square: 1
        Adjusted R-square: 1
        RMSE: 0.001379

        Fit to the parry data:

        General model:
        f(x,y) = 3+186/243.6+1/(1/C+0.956/((x-186)/243.6+y))
        Coefficients (with 95% confidence bounds):
        C = 237.1 (237.1, 237.1)

        Goodness of fit:
        SSE: 1.307e-007
        R-square: 1
        Adjusted R-square: 1
        RMSE: 5.331e-005

  12. Airowird says:

    Could you comment on why you have a post-DR Dodge chance of 8.57% with a base of 5.01, yet you only have 3.54 dodge gained from rating? Where is the other 0.02% coming from?

    • Mythor says:

      These are values from directly out of the game. the missing 0.017668008899999 is likely cause of rounding.

      • Airowird says:

        Found it, the ‘missing’ chance is actually a gain from being so low on the DR scale, not from rounding. Ah well, I’ll put in some more time in this once MoP is out and I can gather myself more lvl90 data points.

        • Mythor says:

          Can you explain that with values?

          • Airowird says:

            The ~3.54 dodge bonus is pre-DR, granting the ~3.56 dodge chance between the total and the base.
            This is because at values under (1-k) * C, (something around 4.3ish % pre-DR dodge or somewhere around 3.8k rating, should be ~3.8k parry rating as well) you actually gain more post-DR dodge than pre-DR dodge.
            I originally assumed that you got the post-DR in that spreadsheet as you called it the ‘bonus’, but I checked & tested the API methods that call out those accurate numbers and now the spreadsheet numbers actually make sense :)

          • Mythor says:

            The values in the spreadsheet are directly out of the game, using that very same API. The in game function call is GetCombatRatingBonus, hence the ‘bonus’ name.

            I did not read your question correctly and used post processed values to mix it up… long day.

          • Theck says:

            Basically what he said. Because k<1, you actually get *more* than 1% dodge or parry from 1% pre-DR dodge or parry if your overall dodge or parry is low. There's a crossover point at which you start getting less than 1% dodge or parry post-DR. This effect is even larger for paladins, as our k=0.885.

            As an example, the first 1% pre-DR dodge you get gives:
            1/(1/90+0.956/1)=1.0341, or about 1.03%.

            For a paladin, it's even larger:
            1/(1/65+0.885/1)=1.1106, or 1.11%.

          • Mythor says:

            Yes yes, that was not the issue, I perfectly understand how it works :)

          • Theck says:

            Ah, no worries, I was confused then.

  13. CMeP says:

    I’ve got a question about Critical Block. On the beta, Mastery appears to convert to CB at ~272/1%. Here, it’s the standard 600. Is the tool-tip simply wrong?

    • Mythor says:

      It’s 272.6 indeed.

      • CMeP says:

        Would that mean Critical Block chance were 42-43% instead? Or am I jumping the gun?

        • Airowird says:

          In the Cataclysm system, everyone gained the same amount of Mastery per rating. After that, a prot warrior (as example) gained X% block chance and Y% crit block chance per Mastery.

          In the new Mists of Pandaria system, the same amount of rating instantly gives Y% Mastery, giving Y% critical block chance (1:1 relation!) and X% block chance. So 28% Mastery gives 28% crit block chance.

          The easiest way to determine the Mastery% per rating is through the base Mastery%. Previously, in Cataclysm, nearly everyone had a base of 8 Mastery if you had 0 rating. This has now changed to the amount of Mastery you get for 8*600 = 4800 rating. In the case of prot warriors, you get 17.60% Mastery as base, so the you know that the rate at which you get 1% Mastery = 1% crit block chance is 4800/17.60 = ~272.6 rating per % crit block.

  14. CMeP says:

    Clarifying terms helps. Still, I take it that means 6,758 rating yields 42.38% Mastery [17.6+(2.2*(6,758/600))], thus 42.38% Critical Block, yes?

  15. Tengenstein says:

    Shield barrier usage is something I’m not really sure there’s one hard and fast rule. At certain AP levels it can be ridiculously good to the point of excluding Shield Block entirely, after impales i can pretty much chain Shield barriers. Generally its used to bleed off excess rage, either covering the 3 seconds between Shield blocks or proactively to soften a burst like impale of psychic drain.

  16. Mythor says:

    I am very interested in a SBar only fight. There are magic only bosses in MoP, and they would not yield as much RPS.

    Sbar can have 100% uptime, but it’s all very dependent on ‘swing timers’ and vengeance, so it’s hard to model realistically.

    Prot DPS is also very tied to block/parry (Glyph of Heavy Repercussions, Glyph of Hold the Line), something that I would like to see changed.

    • Theck says:

      Actually, in thinking about it, I think implementing Shield Barrier would be easier than I originally thought. I don’t need to model Vengeance at all, because it’s calculated before all of the mitigation effects I’m considering. So assuming the boss is attacking only the warrior, Vengeance will quickly reach its steady state value and stay there. So it’s just a matter of coding it in the priority system (which, for a SBarr only fight, is pretty trivial – cast whenever it’s not up)

      • Mythor says:

        It’s the steady state I was referring to, Vengeance can fluctuate a lot due to boss abilities. And due to it’s nature often get’s useful right after you needed it for SBar. But if we assume evenly distributed and consistent incoming damage it’s very easy indeed.

      • Ninjouz says:

        I think that the useful thing to know is “is there a threshold at which SBar gives more mitigation than SBlock @ 60 rage”.

        For any magic fights (LeiShi), it’s obvious that we should focus on stam/hit/exp.

        For mixed fights, the magical damages are often abilites on semi accurate timer (then requiring some SBar planning) and/or permanent steady DoT effects (not lethal).

        • Mythor says:

          The threshold is simple, you need to know the size and amount of hits you will receive in the upcoming 6 seconds (we will learn those values when we actually do the bosses). Then you just fill in your block/crit block values and compare the result with your SBar.

          @60rage absorb = max(2 * (AP – Str * 2), Sta * 2.5)

          My gut feeling is that it will only be the case if you get multiple big hits within 6 seconds. If it is more often then SBar is silly.

      • Airowird says:

        With an SBar only fight, you could technicly average out the Vengeance & rage generation values, build SBar based on average Vengeance, reduce it to an average absorb per second (based on rage gain), then compare to incoming DPS and compare that to the SB model.
        Atleast that’s the easier way to do it, because due to the mechanics of SBar (linear scaling absorb per rage, with anywhere from 20 to 60 rage consumed), the usage will depend as much on your healer setup as on the boss DPS mechanics.
        Not to metion that with the “cast when it’s not up” model you can pretty much guarantee you’ll never be sitting on surplus rage and you need a avoidance streak to cap to 120 rage, use SBar, then not consume it for 6s while also gaining 60 rage in that timeframe (= minimum of Revenge every GCD on top of avoiding every single hit)

      • Button says:

        I disagree – I think SBar would be used like Death Strike, pounded after a spike. On tank swap fights or fights which have long periods of not being meleed for some other reason, this will ensure a higher value of Vengeance when barrier’s used; but even on a Patchwerk, using Sbar reactively is probably the way to go.

        It’s like having a guaranteed (if potentially partial) avoid, or popping a Battlemaster’s trinket: no matter when you use it there’s a chance that you’ll ‘waste’ it, but it’s only at low health that it’ll actually save you.

  17. Pingback: The Care and Feeding of Warriors: Issues and Concerns » Pandaria.nl - World of Warcraft Mists of Pandaria blog

  18. Pingback: The Care and Feeding of Warriors: Issues and Concerns | Vexed

  19. Pingback: The Care and Feeding of Warriors: Issues and Concerns | Owned Gamers

  20. Pingback: The Care and Feeding of Warriors: Issues and Concerns

  21. Pingback: The Care and Feeding of Warriors: Issues and Concerns | Mass-Dispel

  22. Pingback: The Care and Feeding of Warriors: Issues and Concerns | WowBurner.com

  23. Pingback: The Care and Feeding of Warriors: Issues and Concerns | InfiniStreams.com

  24. Pingback: The Care and Feeding of Warriors: Issues and Concerns | DaPhat.com Online Gaming Community

  25. Pingback: The Care and Feeding of Warriors: Issues and Concerns | Mikes Wow Macros

  26. Pingback: The Care and Feeding of Warriors: Issues and Concerns » » WarcraftgatewayWarcraftgateway

  27. Krennick says:

    Ability priority notes:
    Thunder clap does not contribute to rage generation. Weakened Blows is 30 second duration. Devastate triggers Sword and Board, which resets cooldown on shield slam – I napkin mathed a while back (with old rage values, assumed shield slam would hit etc) and while I don’t recall the exact value I think I put devastate on an average 2.5-3 rage generated per use. This would justify using Devastate over Thunder Clap unless there is 6 or so seconds left on Weakened Blows (since you don’t want Thunder Clap usage to compromise use of Revenge or Shield Slam and you also don’t want it to drop).

    Secondly, I think we should consider if Revenge should be used before Shield Slam. The 9 second cooldown is triggered earlier than the 6 second cooldown – also the ability that is likely to have its cooldown reset randomly through outside events is triggered first – and otoh Shield Slam is used at a time when Devastate can be used as the cooldown immediately following, which maximises the rage returned from Devastate over time. In isolation I agree that Shield Slam should come before Revenge, but I think these other factors pull in the opposite direction and I don’t know what it would level out at.

    If we think of 4 GCDs starting with Shield Slam I’d like to have Revenge already on cooldown, use Devastate on the second and third GCDs if Revenge is not up and have the fourth GCD available for Thunder Clap if neither Shield Slam nor Revenge cooldowns have reset by then. Not saying it’s better, but I think it’s worth assessing.

    Shield Barrier usage notes:
    At level 85. Madness heroic. I tank, take impale (and other melee hits). My ~10k AP climbs to ~170k and my ~11k shield barrier (per 20 rage) scales with AP to ~110k dmg absorbed per 20 rage. Hagara focused assault cannot be dodged/parried/blocked – but wait until you’ve taken the first 7 or so hits and your vengeance is sky-high and shield barrier is immense. While I agree you would use shield barrier against magic because it actually has an effect against magic where shield block has none it is perhaps also relevant to say that shield barrier is better than shield block when your vengeance is sky-high. So, typically when you have been tanking a while and particularly when you have survived some heavy hitting (also 3+ debuff stack on Yor’Sahj, while magic – point would be the same if it was physical)

    At times it feels like Shield Barrier scales with vengeance so well that the higher the dmg I take, the more shield barrier absorbs to the point where the amount of dmg needing to be healed might become less… I’m sure that’s not true, and an illusion enforced by earth shield, hots and other absorbs. I guess I’m just unnecessarily underlining that Shield Barrier increases dramatically in value with vengeance.

    Reduced damage taken notes:
    In your simulation you judge how much less dmg we take if we increase a specific value. What this tells us mainly is how much mana healers need to expend over the fight duration to keep you alive. However, healers running out of mana is not the only way tanks die. Tanks also die from worst case scenarios. The times when the boss does not miss and regardless how high your dodge/parry is you still fail to dodge or parry repeatedly. In other words, what is also useful is the absolutely worst possible 6 or 9 or 12 seconds (to take numbers out of the air) and how much dmg you would take if the worst were to occur. You know, the reason we wanted to hit CTC in the first place.

    On second thought this is not such an obvious question. You model to prioritse shield block ensuring the maximum shield block uptime allowed by the cooldown. And if we’re talking worst case we’re also assuming that none of the blocks are critical. So while arguably dodge and parry are worth nothing (because I pre-suppose for this scenario that dodge and parry has not occurred) similarly we have to argue that mastery is worth nothing (because we have to pre-suppose that critical blocks do not occur). However, it is a thing to revisit once we start considering situations where shield barrier takes preference over shield block.

    Also if we’re talking worst case we’ve just taken some heavy hits and likely Shield Barrier jumps ahead of Shield Block.

    Critical block notes:
    Since I haven’t fully respecced on live and still run around with more than 50% mastery/crit block I was a bit surprised to see your numbers of 28.86%, so I checked on test what my warrior has there. It’s 33% and not important. I noticed in the mastery description that mastery “increases” you chance to crit block. Increases from? Is there a base crit block chance which is not 0? I mention this because you seem to have acted on the assumption that there is no base crit block chance. I don’t know if there is. Minor thing in either case I think.

  28. nickstaroba says:

    In trying to absorb this great article, I’ve run into one stop. What is TDR?
    Thanks

  29. Pingback: L90 Warrior Mitigation Followup | Sacred Duty

  30. drummer0702 says:

    Maybe I’m missing something, but doesn’t the 66% up time (and possibly 100% up time on a two tank fight) completely mess with the parry/dodge relationship with Revenge? You’re going to be blocking so often that there is going to be little time to Dodge and Parry. Thus, your rage generation is going to be far worse?

    • Theck says:

      Dodge and parry are rolled for first, so blocking doesn’t inhibit avoidance. In other words, when the game rolls to determine the result of an attack, it does so using the following logic:

      1st roll) Check for dodge, parry, and Miss. If the roll is higher than your dodge+parry+miss, go on to roll 2.
      2nd roll) Check for hit/block.
      3rd roll) Check for hit/crit (irrelevant for tanks).

      Note, however, that dodge and parry *do* inhibit blocking. Because of the two-roll nature, you’ll always block the same percentage of attacks that aren’t avoided. But as your avoidance gets higher, there are fewer attacks that are eligible for the block roll.

  31. Pingback: The Care and Feeding of Warriors: Tanking itemization - Owned Gamers

  32. Savyk says:

    Might be a silly question but everything here seems to be around rage generation and mitigation. By neglecting hit/expertise are we leaving ourselves open to aggro issues because our DPS is not high enough to ward off the Raid DPS?

Leave a Reply