Friday, February 11, 2011

Mortal Strike in PvE

One of the people in our raid core this expansion is adamant that Blizzard designs 10-man fights to use at most 2 tanks and at most 3 healers. He gets really mad when we try to do things with 3 tanks or 4 healers because that's "not intended" and there has to be a normal way to get things done. I don't have any faith that Blizzard knows a thing about balancing 10-man raids (Sarth+3 anyone?) so especially right at the start of a new tier of content I think trying lots of things makes sense even if it's "not intended".

We pulled our first hard mode of the expansion last night and I made the comment that I didn't think 2 tanks was even remotely feasible due to the fight mechanics, which got another snippy comment about Blizzard's intentions. So, it's time to justify to myself with math why I don't think 2 tanks is feasible from a numbers point of view let alone a logistical point of view. The primary reason I feel this way is a healing taken debuff applied to one of the tanks, so we need to assess what this debuff essentially does.

If a tank isn't taking very much damage (Kurinaxx, 2nd boss in BM, or the dogs in ICC as examples) or the healers can trivially overheal them then a mortal strike debuff doesn't really do anything. It turns the abundance of overhealing into actual healing and reduces HPS numbers across the board without actually impacting how the fight works out. The healers just do their thing and everything is fine. The only real concern here is if the buff ever stacks to 100% healing reduction, because then the tank is just going to die.

If the damage is high enough that the tank is actually in danger of dying normally from spikes (Broodlord in BWL) or if healer mana or throughput is a real concern then things are different. In the spiking out case the tank's 'time to full' goes up which makes it more likely he gets exploded, but if you have enough extra healing you can just brute force this out.

In the mana or throughput case you can model the mortal strike debuff as proportionally increasing the tank's maximum health pool and incoming damage taken. (A lot like comparing a stamina stacking tank to a block stacking tank, actually.) For a while this doesn't hurt because the healers won't have any trouble keeping the tank alive, but eventually the amount of 'damage' they have to heal gets absurdly high.

The time for the tank to go from full to dead remains the same since both their maximum health and their incoming damage remain proportionally the same, but the amount of incoming damage just keeps going up and up until the healers either run out of mana or simply become unable to deal with the amount of damage. So if we know how much the healers can handle we can work out how high a mortal strike proportion we can live with. To know these things we have to know how much damage the fight is putting out and what the healers can deal with both short term and long term.

The fight I'm interested in is heroic Halfus in Bastion of Twilight. First let's look at the absurd case of a single tank and see where we become unsustainable, but to do that we need to take a look at how much damage is being done by each of the parts of the fight. I tanked each part of the fight that we released last night, so all numbers used here will be for me (a stamina tank, not a block tank).





Proto-Behemoth Breath - Unavoidable 12k damage breath to everyone in the raid, likely resisted 15%. This pulses 8 times over 7 seconds and goes off every 26 seconds. So it bursts out 734k damage over 7 seconds to the raid and an extra 82k MSed damage over 7 seconds to the tank. Over the whole fight this is 28k DPS to the raid and 3k MSed DPS to the tank. Releasing the whelps cuts this in half, saving us 14k DPS on the raid and 1.5k MSed DPS on the tank.

Proto-Behemoth Fireballs - There are two entries here in the parse, one which hit a lot of people for 14k and one which hit a few people for 28k. These can be dodged, so it's unclear to me just how much damage would be thrown out by never moving out of the fireballs or how much you can expect to take even when you're trying to move out of the fireballs. I bet we can do better than we did, but last night we took 22% as much fireball damage as breath damage, so something like 11k DPS on the raid and 1K MSed DPS on the tank. Note this is only possible if you release the Time Warden. If you don't then the fireballs can't be avoided and probably are a straight up raid wipe. Also note that I believe releasing the whelps modifies this damage too, so these numbers would also be bigger if the whelps stayed in their cage. (By 6k per fireball.)

Orphaned Emerald Whelp Melee - It's somewhat difficult to get precise numbers here since I try to keep at least one cooldown up at all times while tanking these, and things are further complicated by the fact the warlock was transforming and tanking them part of the time as well. They look to hit me for about 5k a swing every 2.4 seconds. They hit the warlock for only about 3.5k a swing, but he never dodges/parries and I avoid about 32% of their attacks which actually works out about the same. Those are pre-cooldown numbers, though, so I actually take substantially less damage than the warlock a lot of the time. At any rate, assuming they hit me the whole time and I don't pop a cooldown they're doing 11k MSed DPS to the tank. Releasing them is a minor savings overall and a big burst savings in terms of incoming damage.

Time Warden Melee - This guy swings every 1.8 seconds for what looks to be about 30k a swing pre-cooldown, so he's swinging into the tank for about 11k MSed DPS to the tank. If we were dodging even half of the incoming fireballs (and I bet we dodged a lot more than that) then releasing this guy ASAP is also right from a damage taken point of view unless the tank gets a really large MS debuff.

Storm Rider Melee - This guy seems to swing every 1.8 seconds for about 28k a swing. I'd be willing to bet it's actually the same as Time Warden so in the ballpark of 11k MSed DPS again. Releasing this guy slows Halfus' cast speed by 500%, turning his shadow nova from a .25 second cast (actually impossible for me to interrupt and extremely unlikely for everyone else) to a 1.5 second cast which should be able to be hit every time. Shadow Nova does 28k per target and has a brutal knockback. He casts it every 13 seconds while debuffed. It's unclear if he will cast it more often when not debuffed. It's still 19k DPS on the raid and 2k MSed DPS on the tank if it goes off every 13 seconds ignoring the impact of the healers and tank getting knocked around. It seems to be clearly right to release this guy as well.

Nether Scion Melee - Surprise, surprise. He swings every 1.8 seconds for about 28k, so we're again in the range of 11k MSed DPS to the tank. The impact he has on the fight is he reduces Halfus' damage by a substantial amount by debuffing him for 25% less attack speed, 25% less hit chance, and 25% less damage. I'd like to say this is obviously good but we'll need to look at Halfus' damage to see.

Slate Dragon? - We didn't release this guy at all, but I'd assume he also does 11k MSed DPS to the tank. If we had released him then he would have periodically stunned Halfus for 12 seconds and increased the damage he takes by some unclear amount from the tool-tip. This isn't a flat reduction in incoming damage like everything else is so far. When the stun isn't up releasing this guy is just an increasing in damage which may overwhelm the healers. But when the stun is up, it could be a big boost. We'll need to look at Halfus to see. Apparently the stun procs every 35 seconds, so Halfus actually ends up stunned more than a third of the time which could be pretty solid.

Halfus - I hardly tanked him and he had the Nether Scion debuff, but he was actually swinging every 1.1 seconds for about 30k. He would be missing 57% of the time. Without the buff he would be swinging every .88 seconds (maybe? unclear how this stacks with thunderclap and his built in haste buff) for 40k a swing and missing only 32% of the time. So it would be either 12k DPS or 31k DPS. (And the MS would stack up a lot faster.) Uh, please release the Nether Scion! The stunning ability would cut this by a third, so it would save only 4k DPS (plus a more manageable MS debuff).

Now, how fast does the MS debuff stack up? Well, it gets applied on every melee hit, but it has to pass a second hit check. You can't dodge or parry the second hit check but it can miss, and that miss chance is affected by the Nether Scion debuff. A full absorb of the initial melee swing isn't good enough, the MS debuff can still be applied even if Blood Shield steps in to try to save the day. The debuff had a little over 69% chance to be applied on our 4 pulls. He's swinging every 1.1 seconds. He hits 43% of the time he swings. He procs MS 69% of the time he hits. So he expects to apply a stack of the debuff every 3.7 seconds. 

What is our actual healing throughput cap at the start of the fight? This is something I really don't know. I don't know how hard the healers were actually healing yesterday. How much more could they have squeezed out if they needed to? Were we going to lose to mana issues? I do know we were losing to me dying, so we were probably close to the limit. On our one attempt that killed drakes our raid healing done during heroism averaged around 46k. Earlier attempts had a high near that, but were lower when people started dying. (I think this is because of shadow novas knocking people around.) Lets push things a little higher and say 50k is our raid limit for healing throughput. How much damage is coming in assuming we release just the 4 drakes we released yesterday? (Though MS is reducing those numbers some, too, so we're probably above 50k under the definition of MS we're using.)

Raid - 14k from breath and 11k from fireballs for 25k DPS total.
Tank - 1.5k from breath, 1k from fireballs, 11k from each of 4 drakes/whelps, 12k from Halfus for 58.5k DPS total.

It took us 65 seconds to kill off the whelps and then about 60 seconds per drake after that. Even ignoring the MS effect we're not even under our healing threshold until 3 drakes are dead! (I chained cooldowns pretty much non-stop including external cooldowns for over a minute to start the fight if you're wondering how we didn't just explode.)

The way MS works isn't linear. The effect on health and damage is the same (until 100% less healing) but it curves upwards. (x=1/(1-y) ; 0<=y<1) This debuff in particular is 8% per stack, so with 1 stack you're taking 8.7% more damage. With 2 stacks you're taking 19% more damage. 3 is 31% more. At 11 you're taking 733% more damage. At 12 you're taking 2400% more damage. At 13 you can't be healed. It takes 48 seconds on average to get a 13 stack. One tank clearly can't work, even with one shot of bop.

How about 2 tanks? Well, the debuff itself lasts 30 seconds. Assuming both tanks have essentially infinite max health and a zone-wide AE taunt. (So we're racing against just throughput and not spikes here.) Then the optimal damage reduction strategy is to have tank 2 taunt everything when tank 1 gets a 1-stack. (Maybe more, but whatever base case.) Then tank 1 taunts back in as soon as his stack drops. At any given point in time after the fight has started you have one tank with a big stack standing around tanking nothing and one tank with an increasing stack tanking everything. If the current tank ever gets above the non-tank in stack size the non-tank taunts in on everything but Halfus (so his stack can still drop). We expect to tank everything for 3.7 seconds with no stacks, then everything for 3.7 seconds with 1 stack, etc... We expect to switch out in the 7-9 stack range, but we will be fighting everything with at least a 6 stack for 8 seconds. At this point the tank is taking +92% damage or around 113k DPS. I don't know about your healers, but my healers can't heal me to full every 1.7 seconds under any conditions, especially not while also healing the raid from 25k DPS.

The problem here is we're ramping up all of the tank damage for the entire fight. All of the drakes and whelps are hitting a debuffed tank for essentially the whole fight. Without cooldowns we don't have the throughput to keep an undebuffed tank alive through all the mobs with no raid damage as it is, and most cooldowns aren't even as powerful as a 3 stack of MS.

How can we solve this? Well, bop buys us some time for sure. You can have 1 tank on everything but Halfus and 1 on just Halfus. Your Halfus tank is probably fine for 40 seconds, then he gets bopped and taunts back in for another 40 seconds. If you can wipe out most of the adds in 80 seconds you're high and dry.

Releasing the 5th drake helps a little, too. If your non-Halfus tank can live through every mob in the zone wailing on him then your Halfus tank gets an extra 50% longer before he's in danger of dying. Instead of having 80 seconds before you're home free you have 120. We used 3 tanks and had an undergeared DPSer, so we were rocking 3.5 DPSers instead of 5 to get our minute per drake timing. Go to 5 full DPSers and you're looking at 42 seconds per drake. We can kill 3 drakes before our Halfus tank is dead. This doesn't feel good enough, especially since the guy tanking 5 drakes is _really_ dead.

Unless you have lots of disc priests, of course, since then your healing throughput ramps up over the course of the fight and you get many more cooldowns to use. Bust down two drakes, AE the whelps with triple damage living bomb, and you can probably kill another drake before you need to taunt Halfus. This could work with a properly stacked and geared raid.

The other option is to just bring a 3rd tank. This lets you manage the MS debuff while still sinking most of the tank damage into a non-MSed target.

How good is releasing the Slate Dragon? Well, it saves you MS stacking since every new tank who taunts in gets a 12 second period of time with no MS stacks coming in at all. This blocks 3 stacks per rotation which is often the difference between taking 31% more damage and 92% more damage. It also keeps him from actually swinging at all during that period of time. Assuming 2 tanks on just Halfus you're taking your incoming DPS taken from Halfus from 18k normally to 8k, which pretty much offsets the Slate Dragon's personal damage. It doesn't even do it in as spiky a way as I thought, since it means the MS debuff only gets up to +47% damage instead of all the way to +177% damage.

But you still have to kill the Slate Dragon. This costs you 5.8M normal damage but gains you an extra 100% damage on Halfus afterwards. With 4 drakes dead you do x5 damage so it's like Halfus has 10.2M health. With 5 drakes dead you do x6 damage so it's like Halfus has 8.5M health. So this forces you to do an extra 4.1M damage which just doesn't make sense when the incoming damage is basically the same. (Unless, of course, you don't kill Slate Dragon and just offtank him forever. Because you're removing the same amount of damage from Halfus this could make sense if you're keeping 3 tanks the whole time. With a bear/cat it doesn't.)

Can 2 tanking this fight work? Yes, with excellent gear and raid stacking. I'm sure the top group from 25 man guilds can pull this off with ease. But I think for normal groups you really need the 3rd tank.

I also think it could work if you just release drakes one or two at a time. You have to start with Nether Scion and Storm Rider and find a way to heal through all the fire damage. If you can pop enough cooldowns to live you can burn out those drakes and 'sail' to victory.

No comments: