I´ve posted this data also in the official forums
Explanation of some terms I use here:
"tick" - each moment (time) that the game checks for damage and effects of tornadoes and WW (including fury cost)
"hit" - actual tick hit (damage) on monsters
"aps" - exact attacks per second value that I calculated manually, it does not always correspond with the character screen details value
"IAS" - increased attack speed
All of the conclusions mentioned below are based on actual in-game tests. I´ve researched this by recording each situation using fraps and afterwards I viewed the video in slow motion.
The process of figuring out the mechanics:
1. First thing I figured out after the damage values and proc coefficients were tick breakpoints of tornadoes at different aps values by counting the number of tornado ticks.
2. Based on some WW recordings I made the assumption that it scales with aps in the same way as tornadoes. I found out the specifics of dual-wielding.
3. I viewed the fury cost of WW with the mouse over the fury globe to find out that it had a fixed fury cost per tick (pre 1.0.5) and that it scales with aps (1.0.5).
4. After further 1.0.5 (PTR) tests I figured out that each WW tick (damage) corresponds with a fury tick on the fury globe (losing fury) which made it easier for me to find out the actual tick frequency of WW.
5. I found out that the game usually runs at 60 fps and as I recorded at 60 fps and could view the video frame by frame, I figured out that tick frequency is just a sequence of specific frame lengths (ticks) depending on the aps values.
6. Having the aps and the corresponding frame length of ticks, I figured out formulas that would allow me to calculate the exact frequency breakpoints for WW and Sprint Run Like the Wind. The researched values were the same as the calculated ones
7. I´m currently in the process of figuring out the new mechanics behind WW fury cost per tick in 1.0.5 that scales with aps.
Let´s get started already.
Note that the following data is applicable to the 1.0.5 version of the game. The only differences between 1.0.5 and 1.0.4 were the change in the proc coefficient of Sprint and the WW fury cost change per tick from a set fury cost per tick to fury cost scaling with aps. No changes were made to tick frequency mechanics and breakpoints.
SPRINT RUN LIKE THE WIND MECHANICS
1. Tornadoes do 20% main hand base weapon damage per tick. Base weapon damage is the value below DPS in the weapon window. A simplified damage formula (per tick) = 0.2 * (base weapon damage) * (1 + strength/100) * (1 + sum of damage bonuses from skills and gear/100). A critical hit then multiplies the result by (1 + total critical hit damage/100). To calculate your DPS, just multiply the damage per tick by the tick frequency according to the chart I provide below.
2. Tornadoes have a 0.08 (down from 0.2) proc coefficient, which means that:
a ) each tornado tick heals you for 8% of your total life on hit value,
b ) each tornado tick has a 8% chance to generate 3 fury when you equip a Mighty Weapon in your main hand and use the passive skill Weapons Master,
c ) each tornado tick has a 8% chance to activate an on hit proc effect from a legendary weapon,
d ) each tornado Critical Hit has a 8% chance to:
- generate 15 fury when Into the Fray is active,
- create a blood explosion when Bloodshed or Slaughter is active; note that the patch notes for version 1.0.2b of the game state that Bloodshed and Slaughter effects can´t be triggered by each other´s critical hits,
- lower the cooldown of Overpower by 1 second
3. Tornado tick frequency scales with attacks per second (chart below).
4. When dual-wielding, tornado tick frequency depends on the attacks per second (aps) of the last weapon swung before using Sprint.
1. WW does 145%/3 (48.33%) base weapon damage per tick. Volcanic Eruption rune does Volcanic Eruption rune does 145% * 1.3 / 3 (62.83%) base weapon damage per tick. The damage formula is the same as for tornadoes, just change the 0.2 modifier to 0.4833 or 0.6283 depending on what rune you use.
2. WW has a 0.13 proc coefficient. The effects are the same as with Tornadoes, but they now have a higher probability (13%) to happen.
3. WW tick frequency scales with aps the same way tornado tick frequency does, they even have the same breakpoints.
4. WW fury cost scales with aps in 1.0.5 while it had a fixed fury cost per tick in the previous versions of the game; now the more aps you have the less fury it costs per tick. The fury cost ranges from 3 fury per tick at the lowest aps to 1.634 fury per tick at 4.4472 aps. You´ll find the average fury cost per tick values on tick frequency breakpoints below (to be done).
5. When dual-wielding:
a) WW alternates between weapons to deal damage beginning with the weapon you are about to swing before using WW
b ) WW tick frequency depends on the weapon you are about to swing not the weapon you swung before using WW (exact opposite of Sprint)
c) WW fury cost per tick (for the whole duration of WW until you stop spinning) depends on the weapon you are about to swing before using WW. It does not alternate between the weapons and their individual WW fury cost.
You may have noticed that the tick frequency source when dual wielding is different for Sprint and WW. Sprint frequency depends on the weapon you swung last before sprinting while WW frequency depends on the weapon you are about to swing (not the weapon you swung last before WW). If you click both skills at the same time and if the MH/OH tick frequencies are different, Sprint and WW will tick at different frequencies.
WHIRLWIND/SPRINT RLTW FORMULAS:
Tick frame length = (20 / aps); rounded down to the nearest whole number
Number of tornado ticks = (180 / frame length); rounded up to the nearest whole number
Ticks per second = (60 / frame length)
ATTACKS PER SECOND - FRAME LENGTH - TICK FREQUENCY - # OF TORNADO TICKS
0.86957-0.90909 aps - 22 frames per tick - 2.73 ticks per second - 9 ticks
0.90910-0.95238 aps - 21 frames per tick - 2.86 ticks per second - 9 ticks
0.95239-1.00000 aps - 20 frames per tick - 3.00 ticks per second - 9 ticks
1.00001-1.05263 aps - 19 frames per tick - 3.16 ticks per second - 10 ticks
1.05264-1.11111 aps - 18 frames per tick - 3.33 ticks per second - 10 ticks
1.11112-1.17647 aps - 17 frames per tick - 3.53 ticks per second - 11 ticks
1.17648-1.25000 aps - 16 frames per tick - 3.75 ticks per second - 12 ticks
1.25001-1.33333 aps - 15 frames per tick - 4.00 ticks per second - 12 ticks
1.33334-1.42857 aps - 14 frames per tick - 4.29 ticks per second - 13 ticks
1.42858-1.53846 aps - 13 frames per tick - 4.62 ticks per second - 14 ticks
1.53847-1.66666 aps - 12 frames per tick - 5.00 ticks per second - 15 ticks
1.66667-1.81818 aps - 11 frames per tick - 5.45 ticks per second - 17 ticks
1.81819-2.00000 aps - 10 frames per tick - 6.00 ticks per second - 18 ticks
2.00001-2.22222 aps - 9 frames per tick - 6.67 ticks per second - 20 ticks
2.22223-2.50000 aps - 8 frames per tick - 7.50 ticks per second - 23 ticks
2.50001-2.85714 aps - 7 frames per tick - 8.57 ticks per second - 26 ticks
2.85715-3.33333 aps - 6 frames per tick - 10.0 ticks per second - 30 ticks
3.33334-4.00000 aps - 5 frames per tick - 12.0 ticks per second - 36 ticks
4.00001-5.00000 aps - 4 frames per tick - 15.0 ticks per second - 45 ticks
5.00001-6.66666 aps - 3 frames per tick - 20.0 ticks per second - 60 ticks
6.66667-10.00000 aps - 2 frames per tick - 30.0 ticks per second - 90 ticks
10.00001-20.00000 aps - 1 frame per tick - 60.0 ticks per second - 180 ticks
Note that I provided up to 5 decimal numbers for aps values but the most accurate way to describe the mechanics is as follows:
22 frames per tick: 22 =< (20 / aps) < 23
21 frames per tick: 21 =< (20 / aps) < 22
20 frames per tick: 20 =< (20 / aps) < 21
19 frames per tick: 19 =< (20 / aps) < 20
18 frames per tick: 18 =< (20 / aps) < 19
17 frames per tick: 17 =< (20 / aps) < 18
16 frames per tick: 16 =< (20 / aps) < 17
15 frames per tick: 15 =< (20 / aps) < 16
14 frames per tick: 14 =< (20 / aps) < 15
13 frames per tick: 13 =< (20 / aps) < 14
12 frames per tick: 12 =< (20 / aps) < 13
11 frames per tick: 11 =< (20 / aps) < 12
10 frames per tick: 10 =< (20 / aps) < 11
9 frames per tick: 9 =< (20 / aps) < 10
8 frames per tick: 8 =< (20 / aps) < 9
7 frames per tick: 7 =< (20 / aps) < 8
6 frames per tick: 6 =< (20 / aps) < 7
5 frames per tick: 5 =< (20 / aps) < 6
4 frames per tick: 4 =< (20 / aps) < 5
3 frames per tick: 3 =< (20 / aps) < 4
2 frames per tick: 2 =< (20 / aps) < 3
1 frame per tick: 1 =< (20 / aps) < 2
You don´t need to round anything if you apply the second chart.
1. You have to calculate your attacks per second value manually as the ingame character screen is rounding the values and can be misleading when applied to this chart.
Attacks per second formula = ((base weapon aps * weapon IAS) + (attacks per second from legendaries and enchantress)) * (gear IAS + skill IAS + dual wield IAS)
NEW! WW/Sprint aps breakpoints calculator (provided by Twister)
2. The initial (first) WW tick has a different frame length than the rest. It is unknown why, but for the purpose of utilizing the chart, ignore the first tick.
Special thanks to Twister who gave me parts of his gear on the PTR to find out the highest possible tick frequency which kind of forced me to continue my research and eventually figure out the exact mechanics. Also thanks for the breakpoint calculator
Hope you enjoyed reading this post. Share the knowledge and have fun.
Edited by Nubtro, 15 November 2012 - 09:34 AM.