View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0027571 | Legion Core | General | public | 2023-09-04 22:00 | 2024-05-25 06:01 |
Reporter | wrptn2 | Assigned To | godxx | ||
Priority | urgent | Severity | crash | Reproducibility | always |
Status | acknowledged | Resolution | open | ||
Summary | 0027571: Dot clipping mechanics and partial dot ticks | ||||
Description | 1. Partial DoT ticks are not implemented. Whenever a DoT ends, extra damage is supposed to be calculated based on the time spent for a tick that never happened because the aura expired. This is a consequence of haste: haste shortens the interval of time between DoTs but does not reduce the duration of the aura. That's how it worked in Cataclysm, but it no longer does starting from Warlords of Draenor. Say you have a DoT that lasts 12 seconds and ticks every 3 seconds. With 5% haste, the new tick speed is 3/1.05 = 2.85 seconds. That means you are expected to get 12/2.85=4.2 ticks. The timeline looks like this: 00.00 AURA APPLIED 02.85 TICK 05.70 TICK 08.55 TICK 11.40 TICK 12.00 PARTIAL TICK <--- This is not implemented The damage of the partial tick is calculated as a fraction of the spell's tick speed. It's easier to think of every tick's damage as being a percentage of the time since the tick before that: 00.00 AURA APPLIED 02.85 2.85/2.85 = 100% 05.70 2.85/2.85 = 100% 08.55 2.85/2.85 = 100% 11.40 2.85/2.85 = 100% 12.00 0.60/2.85 = 21% <----- NON FUNCTIONAL Prior to Warlords of Draenor, that final "bonus" tick would not happen, and the spell duration would be adjusted to include either 4 ticks or an extra 5th tick. But Warlords of Draenor **removed** aura duration scaling with haste. Instead, this partial tick mechanic was introduced. 2. DoT Clipping is not implemented. Whenever a dot is reapplied while active, any time remaining towards the next tick of the previous application would be carried over and would be used as the initial period of the spell. Here is a timeline, again with our imaginary spell 00.00 AURA APPLIED 02.85 TICK 05.70 TICK 08.55 TICK 10.00 AURA REFRESHED 11.40 TICK 14.25 TICK 17.10 TICK 19.95 TICK 22.80 TICK 24.00 PARTIAL TICK Notice that the time of the first tick after refreshing the aura is relative to the last tick of the previous application. THIS DOES NOT WORK EITHER. Notice also that a partial tick has been added, because even if the aura was refreshed 2 seconds before it would initially expire, that duration still needs to carry over, because we effectively cast our DoT twice | ||||
Steps To Reproduce | 1. Create a shadowpriest 2. Get some amount of haste. 3. Create a new WeakAura with the following trigger: https://i.imgur.com/ZHecpd3.png Lua Code: ``` function(s, waEvent, ...) local timestamp, event, hideCaster, sourceGUID, sourceName, sourceFlags, sourceRaidFlags, destGUID, destName, destFlags, destRaidFlags, spellID, spellName,spellSchool,auraType = ... if (waEvent == "COMBAT_LOG_EVENT_UNFILTERED") then if (sourceGUID ~= UnitGUID("player")) then return false end if (event == "SPELL_AURA_REMOVED" or event == "SPELL_AURA_APPLIED" or event == "SPELL_DAMAGE" or event == "SPELL_CAST_SUCCESS") then SendChatMessage(timestamp .. "[" .. event .. "]: " .. spellID .. " (" .. spellName .. ")", "PARTY") end return false end end ``` 4. Cast Vampiric Touch. Refresh it BEFORE THE LAST TICK EXPIRES. https://i.imgur.com/VJxVzBW.png (this is with 4.52% haste) 5. Notice that the time between two ticks around the refresh is larger than the expected tick speed. However, if you instead look at the time between the new application and the first tick, it lines up. | ||||
Additional Information | https://infuswow.wordpress.com/2014/03/28/partial-ticks-in-warlords-of-draenor/ https://web.archive.org/web/20190318195112/http://iam.yellingontheinternet.com/2014/03/29/behavior-of-dots-and-haste-in-warlords-of-draenor/ Probably everywhere all over simulationcraft | ||||
|
more info (up to date for DF but mostly accurate, this has not changed since WoD) https://blog.askmrrobot.com/how-wow-works-periodic-damage-and-healing-dots-and-hots/ |
|
Also triaged to General because this is a core game mechanic but **really** impacts shadowpriest (because void bolt refreshes vampiric touch and shadow word pain meaning the damage gets delayed more frequently with haste) |
|
For cliary (because i can't edit my previous messages - wtf?), the partial tick of the second example would deal 42% of a normal tick of damage (because we cast twice, we are expected to have 24 seconds overall, so 8.4 ticks, so 8 full ticks + (24 - 8 * 2.85)/2.85 = 42%` of a tick). |
Date Modified | Username | Field | Change |
---|---|---|---|
2023-09-04 22:00 | wrptn2 | New Issue | |
2023-09-04 22:00 | wrptn2 | Status | new => assigned |
2023-09-04 22:00 | wrptn2 | Assigned To | => Alica228 |
2023-09-05 01:01 | wrptn2 | Note Added: 0072272 | |
2023-09-05 07:58 | Alica228 | Assigned To | Alica228 => Kyckax |
2023-09-05 11:04 | Kyckax | Assigned To | Kyckax => godxx |
2023-09-06 17:43 | godxx | Status | assigned => acknowledged |
2023-09-09 01:27 | wrptn2 | Note Added: 0072317 | |
2023-09-09 01:58 | wrptn2 | Note Added: 0072318 |