Advertisement
Guest User

Untitled

a guest
Nov 21st, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.83 KB | None | 0 0
  1. With the new expansion comes new shinys. In this the first "real" post of this blog, let's dive in and take a deep look at each option.
  2.  
  3.  
  4.  
  5. Comparing Damage
  6.  
  7.  
  8.  
  9. While you COULD just use simcraft to find the damage output differences, I prefer to do my theorycrafting on paper. Plus who doesn't love math? The first step to comparing damage without simulating it, is to model each of the talents mathematically. This means making a formulaic representation of the abilities damage. For example: if you wanted to mathematically model the damage per second of a dot that ticked once every 3 seconds for 50% AP each tick, it would look something like this: DPS = (damage)*(ticks per second), which is basically saying "how often and for how much". Plugging in our given values (10% AP every 3 seconds) and we get DPS = (.5*AP)*(1/3) = 1/6*AP, or 16.67% AP per second. If you had 7,000 attack power, this dot would have a base DPS (so not including anything like +% dmg modifiers or other boss mechanics) of 1166.67 DPS.
  10.  
  11. One of the reasons I prefer to do my theorycrafting this way as opposed to using simcraft, is because it's very easy to come back and adjust for various nerfs/buffs. Lets say they buffed this buffs tick rate to once every 2 seconds. All we'd have to do is adjust the formula: DPS = (.5*AP)*(1/2) = 1/4*AP or 25% AP per second, at 7,000 AP this becomes 1750 dps. Quite a buff! nerfbat incoming...
  12.  
  13. Now that we've established what a formulaic model LOOKS like, we need to go about making one that works for the lvl 100 talent options. In the example above we only looked at single target damage. For a real comparison we're going to have to account for the number of enemies (and a bunch of other talent specific stuff), which means our final comparison will be in terms of both AP and the number of mobs we are attacking, and stuff like how often you use Blood Boil, and all sorts of goodies.
  14.  
  15. With the intro out of the way, let's start modeling!
  16.  
  17.  
  18.  
  19. Necrotic Plague
  20.  
  21.  
  22.  
  23. In order to model Necrotic Plague, we need to set up some situations. You can not refresh NP, and doing anything that would apply NP simply adds a stack. This means that how fast you get to 15 stacks (the cap) is dependant on how fast you are using Blood Boil. So how do we find BB/sec? Well that takes a TON of math, and I don't want to clutter this post with it just yet. There WILL be a blog post down the road showing how the numbers are achieved, but for the purposes of this comparison suffice it to say that the BB/sec for MAX BB use (every B AND D rune) is:
  24.  
  25. (8*60)/(((2*(10/(1.155*(haste rating/10,000+1)))) + 13/824*(60 + (4/3)*number of enemies attacking you + 1207.9(haste/10000+1) + 577.5(haste/10000+1)*multistrike%))/60 (we'll call this $BB)
  26.  
  27. (note: The number of enemies attacking you comes from the RP gained from NP, where you get 2 rp whenever a mob swings at you. We are assuming a 1.5 second swing timer.)
  28.  
  29. From here, calculating the time until 15 stacks is just like figuring out how long it will take a car to reach 60 miles an hour. The base "acceleration" of NP is one tick (which grows it 1 stack) per 2 seconds. In otherwords, 0.5 stacks per second. We simply add the stacks/sec acceleration given by the BB/sec model we have above, and we get an acceleration of 0.5+$BB per second.
  30.  
  31. Now that we have a way to model the growth of NP as a function of haste and multistrike, we can start to piece together the total damage.
  32.  
  33.  
  34.  
  35. First let's break the growth into 2 parts: the rise to 15 stacks and the total time in 15 stacks. These together will add up to 30 seconds (NPs total duration) so we can put it in an equation like this: (growth time + max stack time) = 30. We can find the growth time by an old fashioned physics equation. v2=v1+a*t, where v2 is our desired velocity (or in our case stack count) v1 is starting veloity (in our case, 1 stacks) and a is our growth (0.5+$BB) and t is what we want to solve for. t = 14/(.5+$BB). This means we can find the time that NP is at max stacks by taking 30 - 14/(.5+$BB). Let's solve the easy part first, the max stack damage. All we need to do is find the number of ticks we get at 15 stacks. We already know the average time in seconds NP will be at 15 stacks (30-14/(.5+$BB)), and we know NP ticks every 2 seconds. Therefore the total tick count at 15 stacks is equal to 15-14/(2*(.5+$BB)).
  36.  
  37.  
  38.  
  39. Now we've spent quite a lot of time looking at variables. Sometimes it's nice to come up for air and check to make sure our numbers are realistic. Given my current stats (518 haste and 21.56% multistrike raid buffed) we can figure out using our math above that my theoretical max BB/second is 0.34895, in other words i'm blood boiling an average of once every ~3 seconds. It's important to remember that this is an average. You will have much high BB/sec if you pop ERW after expending all your runes on BB for a total of 8 BB each 1 GCD apart, but you would also then have a very large downtime of no BB due to no runes. With my average BB/sec, it would take me about 17.67 seconds to reach 15 stacks if I were spamming BB. This is about what we'd expect given that if you used no Blood Boils at all it would take you the full 30 seconds to reach 15 stacks on the final tick.
  40.  
  41. Recap so far
  42.  
  43. Alright let's take some inventory. We have figured out the theoretical maximum Blood Boils per second as a function of haste and multistrike. Then using that, we found the model for how many ticks we have at full strength (15 stacks) and how many we have leading up to full strength.
  44.  
  45. Now let's go further and apply the number of ticks * damage of each tick to get an actual damage result. The 15 stack damage is easy to calculate, since the stack doesn't change. The formula for NP is (1+0.025AP)*stacks, so the total damage of that part of NP is equal to damage*numbers of ticks = (15+.375*AP)*(15-14/(2*(.5+$BB))). All that's left is to find the damage of the growth portion of NP.
  46.  
  47.  
  48.  
  49. This takes a bit more modeling (sick of it yet?)
  50.  
  51.  
  52.  
  53. We know how many ticks it will take to reach 15 stacks (15/(.5+$BB))/2), We how fast the stacks grow, and we know how much damage NP will do at a given stack value. The way we are going to model this looks like this: tick1+tick2+tick3+....tickn, where n is the number of ticks that occur at <15 stacks. So for example let's say that you managed to use Blood Boil every 2 seconds (to make the math cleaner). Tick1 would be at 1 stack, tick2 at 3 stacks, tick3 at 5 stacks.....tick 8 finally hits 15 stacks, so n was 7 because the 8th stack was at full strength.
  54.  
  55. If you've taken any math at a pre-calculus level or above (and remembers it) you should be familiar with the ∑ symbol. It represents a summation operation. So the sum from i=1 to 5 of the function i would be: 1+2+3+4+5. We are going to use a summation to model the ticks <15 stacks, but what do we sum from? And how for do we go? Well we'd like to sum from 1 (1 stack) to our tick count (14/(.5+$BB))/2), however there is a slight problem. Indexing only uses integers. In other words, it doesn't make sense to count: first, second, third, third and a half-th(?). When you enumerate items, you can't have a partial item. The number of ticks we have is an theoretical average, and is not an integer, meaning we have to account for the left over bit somewhere else. In other words, if we would get 8.5 ticks as a theoretical average, then we would sum over 8 ticks and add one more tick worth half of what a normal 9th tick would be. We can do this with the floor function "⌊⌋" in our summation, which will round our tick count down for summation.
  56.  
  57. But what will the function look like that we sum over? How do we know the current stack count? Well we know that each tick is 2 seconds apart, so we can use the stack growth rate to see the average stack count for that tick based on the time since the very first tick. For example tick 8 would happen at 16 seconds, and with a growth of (.5+$BB) it would have a stack of 16*(0.5+$BB)+1 (the +1 is because NP starts at 1 stack, not 0). With all that in place the model for the <15 stack portion, and including the portion for the full strength ticks, we get a full model of NP's tick damage that looks like this:
  58.  
  59. sum_1^⌊ (14/(.5+$BB))/2)⌋ ( (1+0.025AP)*(2*(i-1)*(0.5+$BB)+1)) + ((14/(.5+$BB))/2)-⌊ (14/(.5+$BB))/2)⌋)* ((14/(.5+$BB))*(0.5+$BB)+1) + (15+.375*AP)*(15-14/(2*(.5+$BB)))
  60.  
  61. This is getting messy again, so lets call this $tickdmg.
  62.  
  63.  
  64.  
  65. There's one final piece that needs to be considered when looking at NP's damage, and that is the RP gained when mobs swing at you. Observant readers will notice I added a little note when I showed the BB/sec formula, which means all the work up till now has been including the RP gains from NP. Phew... But we still need to acknowledge the damage of actually spending the RP, not just how that RP affects BB/sec.
  66.  
  67. You get 2 RP whenever you are swung at, and we can assume that an standard mob will swing at you once every 1.5 seconds. This means that for each target you get 4/3 RP per second, or (4/3)*n where n is the number of targets. Death Coil costs 30 RP, so that means you get ((4/3)*n)/30 DC per minute. That's not the end though, because those Death Coils gave us Blood Tap stacks, which can be used for more runes, which gives us more RP which gives us....
  68.  
  69. It may sounds like an infinite loop, but I promise it's not. It diminishes significantly each time. It can be modeled by what's called a geometric series. The value gets smaller and smaller so quickly, there is a point at which it will never give more than a certain amount of RP. To help visualize this, let's use the old half-step thought problem. If you were to stand 2 meters away from an object, then half the distance between you and the object every second, how many seconds would it take to reach the object? after the first second you would be 1 meter away, then .5 meters away, then .25 meters, then .125 meters, then .0625 meters... This would goo on until the end of time, and you would never reach the object until you reached infinity.
  70.  
  71. "But there is a set distance between the 2 objects! How can you move forward forever? The total distance covered can NOT exceed 1 meter!! And what the hell does this have to do with Necrotic Plague!?!?" -you
  72.  
  73. To answer the first point, yes. Lets take a look at it in the form of a geometric sum. The sum is from 0 to infinity, and the expression is (1/2)^i.
  74.  
  75.  
  76.  
  77. PICTURE HERE
  78.  
  79.  
  80.  
  81. You can see that as you get closer and closer to infinity, you get closer and closer to 2. This is called a convergent series, and it means that if you added up ALL points to infinity in that series, you would get a non-infinite value - in this case 2.
  82.  
  83. To answer your second question, we are going to use the same principle to figure out the total gain from an infinite series of turning runes into RP, then turning the RP into Death Coils, then turning those into runes, which turns back into RP, so on so forth. When you spend 30 RP on DC, you get 2 charges of BT. This translates to 40% of a rune. Let's assume for the sake of comparing damage output that you will use that rune on a Blood Boil. So our first "step" has us getting 1 DC and 40% of a BB. When we spend that BB though, we get 10 RP back, so the next chunk has us getting 40% of 10 RP back to spend on 2/15ths of a Death Coil, so on so forth. Lets look at it on paper.
  84.  
  85.  
  86.  
  87. 30 RP = 1 DC + 2/5BB + 4 RP
  88.  
  89. 4 RP = 2/15 DC + 4/75BB + 8/15 RP.
  90.  
  91. 8/15 RP = 4/225 + 8/1125BB + 16/225 RP
  92.  
  93. so on so forth
  94.  
  95. Can you see the pattern? rewritten, this is 1 DC + .4*BB + 2/15*(1 DC + .4*BB) + 4/225*(1 DC + .4*BB)+.....
  96.  
  97. If we rewrite it again with (1 DC +.4*BB) replaced with x we get x+2/15*x+4/225*x+......
  98.  
  99. We have a geometric series! YAAAY!!!
  100.  
  101.  
  102.  
  103. IMAGE
  104.  
  105.  
  106.  
  107. We can rewrite this as the sum from i = 0 to infinity of x*(2/15)^i. When i = 0 (the first sum) we just get x. When it is 1, we get 2/15. When it is 2, we get 4/225. Isn't math AWESOME!?!? ok i'll stop...
  108.  
  109. Anyway. Just like the distance problem (which is called "Zora's paradox" btw) from earlier, we can find the value that a certain amount of RP gives us including ALL the infinite returns of RP and runes by finding the sum we just wrote. Turns out it ends up being a very clean (15/13)*x where x is the amount of rp. If you like this kind of math, then you'll the blog post that covers how we found the BB/sec formula.
  110. So in summation (no pun intended) we have the mathematical model of NP in terms of DPS/sec and as a function of haste, multistrike, and the number of targets and it is:
  111.  
  112. (15/13)*(4/3)*n+ sum_1^⌊ (14/(.5+$BB))/2)⌋ ( (1+0.025AP)*(2*(i-1)*(0.5+$BB)+1)) + ((14/(.5+$BB))/2)-⌊ (14/(.5+$BB))/2)⌋)* ((14/(.5+$BB))*(0.5+$BB)+1) + (15+.375*AP)*(15-14/(2*(.5+$BB)))
  113.  
  114.  
  115.  
  116. Where n is the number of targets and $BB is the BB/sec, given by the equation:
  117.  
  118. (8*60)/(((2*(10/(1.155*(haste rating/10,000+1)))) + 13/824*(60 + (4/3)*number of enemies attacking you + 1207.9(haste/10000+1) + 577.5(haste/10000+1)*multistrike%))/60
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement