Behavior of DoTs and Haste in Warlords of Draenor

Among the various bits of mechanical info that’s been revealed about Warlords is the fact DoTs and HoTs will no longer have “haste breakpoints” and will no longer “snapshot” your stats at cast time. Celestalon has mentioned this a few times on twitter and frequently responded to questions about it. Since a lot of people seem to have questions on how the math of this breakpoint-less system will work, I want to to explain some of the behavior that will result from this. First, a brief history of this whole problem.

Current System: Haste Breakpoints and Rounding

Before Cataclysm, haste generally did not affect the rate of DoT ticks. There were a few exceptions, such as the Glyph of Rapid Rejuvenation that caused the tick rate of Rejuvenation to be affected by haste. But this did so by shortening the total duration of the HoT and keeping the number of ticks constant, so it didn’t have to address the big question of DoTs and haste: what do to with the fractional ticks that appear when you do this?

When Cataclysm introduced a general mechanic whereby DoT ticks would be accelerated by haste, it handled this problem by changing the duration of the DoT, rounding it to the nearest integer number of ticks.

To work an example: say a DoT has a 12-second duration and a tick period of 3 seconds. Unhasted, when you cast the DoT, a 12-second debuff appears on the target, and the 4th tick will occur exactly as the debuff expires. If you add 25% haste, the tick period will decrease to 2.4 seconds (3/1.25). Since 5 ticks at 2.4 seconds is exactly 12, you will still get a 12-second debuff when you cast the DoT, and now it will be the 5th tick that occurs as the debuff expires. But what if you only had 20% haste? Now the tick period is 2.5 seconds (3/1.2). Since there is no system in place for handling partial ticks, the game can either give you:

  • A 4-tick DoT that lasts 10 seconds, or
  • A 5-tick DoT that lasts 12.5 seconds.

In fact, you get the latter. The game rounds to the closest whole number of ticks, and since in this example, the 5-tick option is closer to the default duration of 12, that’s what you get.

Finally, if you had 12.5% haste, the tick rate would be 2.667. So a 4-tick DoT would be 10.67 seconds, and a 5-tick DoT would be 13.33 seconds. These are equidistant from 12, and this is the oft-discussed “breakpoint.” At any higher amount of haste, you get 5 ticks, and at any lower amount, you get 4.

DoThaste1

A few important results of this:

  • The damage done with a single cast jumps up at the breakpoint, as you probably already understand. But hopefully this clarified why the breakpoint has to exist in the current system.
  • The DoT duration went all over the place: it started at 12, then went down under 11, then up over 13, then back to 12. In fact, it follows a sawtooth pattern, as shown in the graph below.
  • The tick period decreases steadily and smoothly. This does mean that if you continuously maintain a DoT, the DPS it does increases smoothly. However, the frequency with which you have to spend a GCD refreshing the DoT depends on its duration, and that behaves erratically, as discussed.

DoThaste2

A related issue is what happens when you refresh a DoT while it’s ticking. Pre-Catalysm, you would start a fully new DoT and lose the remaining portion of the previous. Starting in Cataclysm, you get the next tick of the old DoT, and then the full duration of the new DoT. So the window to refresh a DoT with zero loss of uptime is the final tick period of each DoT. Warlocks, due to Pandemic, have a much longer window–half the length of a DoT.

Finally, since the computation of a DoT’s duration must be made at the time of cast or refresh, it has to snapshot your haste at that time. There’s no way to update the tick period on the fly when the duration is precomputed to be a whole number of ticks and there’s no system for handling a partial tick.

The Warlords System: Smooth Scaling with Haste

So the two mains goals for a revision in Warlords were:

  • Eliminate haste breakpoints, because, especially with the removal of reforging, they cause a lot of gearing confusion, and
  • Eliminate DoT snapshotting, which was seen as introducing too much of a skill gap in some classes, and also imposing a UI requirement.

The one new piece of tech that makes both of these possible is, as you may have guessed, partial DoT ticks. What exactly is a “partial DoT tick”?

When a DoT expires, it will do a partial tick of damage based on how much time had elapsed since the previous full tick.

So if a DoT had been ticking every 2 seconds, and it ticks with 3 seconds remaining in the duration, it will give a full tick with 1 second remaining. Then, when the debuff expires, the DoT will see that 1 second (half of a tick period) has elapsed since the previous full tick, and will give a tick of half the usual strength.

And that’s actually all. Partial ticks are simply a way of reconciling the fact that the DoT itself doesn’t necessarily end at the exact moment a tick occurs. Once there’s a way for the DoT duration to end whenever it ends, rather than ensuring it happens on a tick, there’s complete flexibility to vary DoT tick timing as needed to accomplish the goals above. To focus on one important point, even though the partial tick only happens if the DoT falls off, this does still affect you if you continuously refresh a DoT, because the initial duration of the DoT no longer changes with your haste. The example below should make this clear.

One other point to discuss before examples is how refreshing will work. When the “final tick” of a DoT will usually be a partial tick of any length, the system of requiring a refresh in the final tick period doesn’t work as well anymore. What Blizzard has suggested is that they will give everyone a mechanic like Pandemic, although at some percentage lower than 50% (possibly 30%). So your window to refresh a DoT without any loss of uptime will be 30% of the duration, regardless of the tick interval.

Screen Shot 2014-03-29 at 4.19.15 PM

Examples

Basic example: with our 12-second DoT with a 3-second tick period from above. At 0 haste or 25% haste, the behavior will be the same as above (putting aside changing haste or clipping), since you already had a whole number of ticks. But at 20% haste (2.5 second tick time), the new system will become clear. When you cast the DoT, a 12-second debuff will appear on the target, ticking every 2.5 seconds, as opposed to the 12.5-second debuff you’d get in the current system. The 4th tick will happen after 10 seconds, and there will be 2 seconds remaining. If you do not refresh, then after those two seconds, the DoT will expire, doing a partial tick that is 80% as strong as a regular tick (2/2.5 = 0.8).

Example with added ticks: Now you’re under the effect of Bloodlust and some other procs, and are up to 60% haste. The number of ticks you’d expect for one cast, from a default of 4 ticks, is 4*1.6 = 6.4 ticks. So you will get 6 full ticks, exactly as under the current system, but now there will be a new partial tick at 40% strength as the DoT expires. Under the new system, haste does still add full DoT ticks, but it doesn’t add them all at once at certain points. More haste will add increasing fractions of the next tick, until it’s created a whole new tick, and then start adding fractions of the subsequent tick.

Example with refresh: Back to the initial example with 20% haste, say you refresh anytime in the last 3.6 seconds of the initial DoT (30% of the 12-second duration). Then the DoT will be extended by 12 seconds, so it will be set to expire 24 seconds after the initial cast. The 4th tick will happen at 10 seconds after initial cast as before. But now no partial tick will happen at 12s (since the DoT is not expiring), and the 5th tick will happen right on schedule at 12.5s. Ticks will continue to happen at 15, 17.5, 20, and 22.5. Then when the DoT expires at 24s, 1.5s after the previous full tick, you will get a tick worth 60% of full value.

Note what has happened in total: you’ve cast the DoT 2 times and spent 2 GCDs. The DoT was on the target for 24.0 seconds (twice the default duration). You got 9.6 ticks’ worth of damage. This is exactly right, as you cast a DoT with a default 4 ticks, twice, with 20% haste. 4*2*1.2 = 9.6.

Example with changing haste: Same example as the previous, but after 15 seconds, your haste decreases from 20% to 11.1%, increasing your tick interval from 2.5 to 2.7 seconds. So after the tick at 15 seconds, ticks will occur at 17.7, 20.4, and 23.1. When the HoT expires at the 24-second mark, it will have been 0.9s since the last full tick, so the partial tick upon expiration will be 1/3 of full strength (0.9/2.7).

Example with continuous refresh: Now, in a 300-second fight, you cast the DoT at the start, and always refresh in the Pandemic window after that. Because every cast of the DoT adds 12 seconds of duration, after you cast 25 times, it will expire exactly as the fight ends.  With 20% haste, it will tick every 2.5 seconds that entire time, giving a total of 120 ticks by the end of the fight. This is exactly what you would expect: without haste, the 3-second DoT would have ticked 100 times in the fight, so with 20% haste, it ticked 120 times.

If you point out that that’s the same thing that would happen in the current system, 120 ticks over the course of the encounter in that example, you’d be right. However, in the current system, each application of the DoT adds 12.5 seconds of duration, so you’d only have cast it 24 times to cover a 300-second fight. That oddity will no longer be present in Warlords.

Conclusion

In an ideal world with no tech limitations, one could imagine DoTs that do damage perfectly continuously. Then, there would be no issue of a DoT ending between “ticks,” and the damage could smoothly increase with any stat as desired. The best summary of the Warlords system is that it mirrors this result, but it buckets the damage into ticks. If you think of each tick as including the damage that occurred since the previous one, that explains the partial tick perfectly. When the DoT expires between ticks, the leftover amount of damage that the DoT should do is gathered together and put into one final tick. In the end, the total amount of damage done always corresponds to the amount of time the DoT was active, and the “ticks” are simply a way of delivering the damage in periodic clumps.

The end result is that the system is coherent from all angles. A DoT cast always adds a fixed amount of duration, and a DoT always does an amount of damage corresponding to the time it was active. Haste will smoothly increase the amount of damage a DoT does while active. If you focus on these things rather than on the partial tick, the system is easiest to understand. The partial tick is simply a mechanism to make sure that the final bit of damage is done correctly, and in general you shouldn’t worry about it. The most prominent change from the current system is that the duration of a DoT doesn’t change with haste.

23 thoughts on “Behavior of DoTs and Haste in Warlords of Draenor

  1. Funnily enough, while it appears I had the right idea of how the new system would work, this post has made me realise I never really understood how the current system works.

    Anyway, great post! It’s all very clear.

  2. Pingback: Warlords of Draenor Mini-Analyses: Healing Gameplay | healiocentric

  3. Pingback: WoDsplosion! | UNconstant

  4. Pingback: Warlords of Draenor Mini-Analysis: Mistweaver Edition | healiocentric

  5. Pingback: Removal of haste breakpoints and partial ticks explained | Infus on Wow

  6. Some classes may still have important breakpoints unless tick side-effects also get scaled by partial ticks.

    Sometimes a DoT/HoT tick provides benefits other than raw damage. Shooting Stars (and in WoD, Insect Swarm) mean that for a Balance Druid, every tick has a significant benefit other than the raw damage it deals. Suppose my DoT ticks for 10 damage, but the side effect is “worth” about 2 additional damage. Adding haste to get my cast from 10 ticks (100 direct damage plus 20 damage somewhere else) to 10 full ticks and one 10% tick (101 direct damage plus 22 in side-effects) means that a 1% increase in haste (10 to 10.1 ticks) gave me 2.5% extra value (120 to 123). The next 1% would boost the direct damage, but not the secondary effect (because it doesn’t add a tick, it just makes an existing tick stronger). It is only worth about 0.85% in total benefit (123 to 124)…

    The could mostly solve that by saying that a partial tick has an reduced chance of generating the side effect (or in some cases the side effect could be made smaller …)

    The lack of snapshotting weakens my argument a bit. 14s DoTs combined with 15s Nature’s Grace probably means that a large fraction of my DoTs spend part of their time under Nature’s Grace (meaning that if a spreadsheet says my DoTs have 10 ticks, there is really a lot of variation between 9 and 11 ticks). There may be no accurate way to predict which haste level pushes a lot of my casts from 10 ticks.

    • Yeah, I’ve never heard any answer on that part, but prorating the proc chance along with the damage should work fine. It might not matter most of the time since important rotational DoTs (of the sort that tend to have procs on them) are often continuously refreshed.

  7. Pingback: The sorrow of the shadow priest | Sivation's musings about WoW

  8. For a simulator I’m working on, I’d like a bit more detail. If you don’t know the answers, perhaps you could suggest a place to look?
    1) If my haste changes between ticks, I’m guessing the current tick goes off at the previously scheduled time, but later ticks will use the new haste. That is much easier to implement efficiently, and it doesn’t impact mechanics very much (unless you have very slow ticks, say 5s or slower). They might make exceptions for massive, occasional haste changes (like a tree’s genesis).
    2) If I refresh while a partial tick is pending, what is the behavior? For instance, I have a DoT which (at current haste) should tick every 1.5s. However the DoT is scheduled to expire just 1s after the previous tick, so the game has “scheduled” a 2/3 tick to occur in 1s. If I refresh at 0.5s, I’m guessing the game says “Erdluf has already waited for 1/3 of a full tick. We’ll give him a full tick when he’s waited for the other 2/3 of a full tick (which we’ll compute at his current, possibly new, haste level)”.

    • 1) I’ve been assuming as much, but don’t think I’ve seen it officially discussed anywhere.
      2) I think this is correct, as far as not getting a partial tick when you refresh. I don’t know the detail about whether it computes the new full tick based on your haste as of the previous tick, or as of when you refresh.

  9. Pingback: TC101: Testing Simulationcraft | Sacred Duty

  10. Pingback: Warlords of Draenor - Resto Druidの変更 : World of Warcraft で LOL

  11. Pingback: Resto druid WOD level 90 survival guide 6.0 | Restokin

  12. Pingback: WoD Mistweaver Changes Part 2 – Stats & Priorities | The Misty Teahouse

  13. Pingback: What the 6.0.2 changes to heal-over-time mechanics mean for us | Righteous Defense

  14. Pingback: Affliction lock

  15. Pingback: Healing Discussion Podcast #5 | It's Dangerous to Go Alone

  16. Pingback: Resto Druids: Haste vs. Mastery | It's Dangerous to Go Alone

  17. Pingback: [Veteran] Haste "Breakpoints" - Page 3

  18. Mate, great explanation. Since I play Resto Druid (which of course has the most HOT spells among all other healers). it helps me a lot to understand the system. I find it very interesting how you guys examine all the maths behind the game :D Great job.

  19. Pingback: Fonctionnement de la Hâte et des DoTs sur Warlords of Draenor | Ankhspirit

Leave a Reply

Your email address will not be published. Required fields are marked *