Taking a look at Soul Capacitor

I was glancing through the heroic HFC rankings today, and went to see why Asterixz put up such a great log on Iron Reaver. Right away Spirit Eruption jumps out at you – that’s an agi trinket! Obviously the result was good for him, but is Soul Capacitor actually a good choice, with Agility not increasing AP for mistweavers?

First, let’s figure out the effect of Soul Capacitor. This is actually pretty straightforward for MW – with 1.0PPM, and the mythic version doing a 135.42% explosion of your damage over 10 seconds, the math is easy. 10/60*0.3542= .0590333, or a 6% damage increase.

For a quick sanity check against the log, his explosions were 2.07m off 1.53m absorbed damage, for an extra 540k damage. He did 4.88m total damage, so the extra damage was 4.88/(4.88-.54), or 13%! This seems like a big difference from the expected damage increase, but that didn’t take into account a couple things. First, Asterixz did a great job of bursting during the Soul Cap procs, especially getting Touch of Death off in the second one (the Touch of Death alone increased his damage by 179k damage, or 4% – a huge chunk of that 13%). Secondarily, and much less important, was the fight length.

Let’s now take a look at some other trinkets, to see how they compare. The easiest way I could think of was to take my sheet with the BiS list, which includes the Iron Reaver Piston. With everything equipped, I come out with 51018.32 DPS over 3 minutes on 1 target with Zen Sphere. Subtracting the stats from Iron Reaver Piston, that goes down to 47284.29. That means that the Iron Reaver Piston is a 7.9% damage increase – higher than the average Soul Capacitor increase, but less than Asterixz’s great usage.

How about IG? Well, a significant part of IG’s value is in the spirit, but for fights as short as 4 minutes, the spirit you have from the legendary ring covers all your mana needs, with Zen Sphere (with Chi Burst, that goes down to just over 3 minutes). Even with the Spirit doing nothing, though, adding back IRP and subtracting IG gives DPS of 47667.87, for a damage added of 7.03% – still more than the average Soul Capacitor.

What did we learn from all this? Well, in a long fight, Soul Capacitor is probably not better than IG or IRP. However, in a short fight, it might edge ahead, depending how well the procs line up with your burst periods. If you’re going for a #1 parse, it’s certainly the trinket that can get you the best overall results when it lines up well.

Looking at Swing Reset math

I’ve been looking for a while at a way to calculate the actual amount of reduced autoattacks due to swing resets. Despite mastery spawns and Expel Harm being fixed with 6.2, Surging Mists still resets the swing timer. I’m pretty sure this is by design, for a couple reasons. First, it wasn’t changed when the other two were. Second, I checked on a Shaman, and with 5-stack Maelstrom Weapon (the same as 5-stack Vital Mists, basically), Lightning Bolt and Chain Lightning don’t reset the swing timer, but Healing Surge does. In the combat log (link), too, you can see that it shows up differently: the heal has a “begins casting” line, which is probably what resets the swing timer.

Anyway, with only Surging Mists left to reset the swing timer, I thought it wouldn’t be too hard to see how many swings you actually lose over the long term. I started by figuring out how many autoattack swings I’d take per Surging Mists cast, and then thought it’d be straightforward to figure out a formula from there. (As a side note, this isn’t perfect, because Surging Mists casts aren’t perfectly regular due to your t30, power strikes, etc, but it’s not a huge deal I think). However, I got stuck there. I wasn’t sure how to look at it from a probability standpoint, specifically because a reset doesn’t just remove a swing, it instead delays the next and all subsequent swings.

I returned to the tried-and-true method I used for Tiger Strikes, writing a sim. You can see the code here (link). For this sim, you input your swing timer and resets per second, then it spits out how many swings you’d have if there was no reset, and how many swings actually go off. Then you can divide the second by the first to find the impact of the lost swings. I was expecting to find that the longer your swing timer is, the worse resetting is for you, since you can push the next attack back further. For shorter casts, each reset would add less time, so it wouldn’t be as bad. That’s not what I found.

Looking at my stats first, I ran it with a 1.508 swing timer and .1126 resets per second. I got 84.9% of swings going off. Then I checked what would happen if I instead had a 2 second swing timer. This time, the numbers came out to 90.1% of swings. I had to go to bed at that point, but today I ran some more tests, because two data points is too few. I today checked a 1s swing timer and .1126 resets per second, and to my surprise, that was also 90%. Now, I’m just really confused and not sure where to go from here. Any thoughts?

Tentative 6.2 BiS list

This list makes a couple assumptions, primarily among them that they don’t fix the legendary rings such that we can use the int DPS one. If we can use the DPS one, that would likely mean a trinket change as well. It also assumes a fight length of 5 minutes – you may want to swap trinkets for fight length, dropping spirit for shorter and adding spirit for longer.

Head: Hood of Unknowable Secrets (Xhul’horac)
Neck: Choker of Forbidden Indulgence (Gorefiend)
Shoulder: Mantle of the Somber Gaze (Operator Thogar)
Back: Cloak of Hideous Unity (Fel Lord Zakuun)
Chest: Vest of the Somber Gaze (Flamebender Ka’graz)
Wrist: Bloodcult Bracers (Kilrogg Deadeye)
Hand: Fistwraps of the Hurricane’s Eye (Socrethar the Eternal)
Waist: Flayed Demonskin Belt (Hellfire Citadel Trash)
Leg: Legwraps of the Hurricane’s Eye (Gorefiend)
Feet: Jungle Assassin’s Footpads (Hellfire Citadel Trash)
Ring: Seal of the Traitorous Councilor (Socrethar the Eternal)
Ring: Etheralus, the Eternal Reward (Legendary Questline)
Trinket: Intuition’s Gift (Kilrogg Deadeye)
Trinket: Iron Reaver Piston (Iron Reaver)
Weapon: Edict of Argus (Archimonde)

Some notes: Gavel of the Eredar + Gibbering Madness is virtually equal to Edict of Argus – use whichever you can get. The 715 ring with the int proc is better than the legendary ring until around ilvl 765.

Stat Weights – PoM DPS Stamina

Wow, this one is super super easy! Stamina affects your DPS through one spell only – Touch of Death. Also, in WoD, you have no base health, only stamina*60. Don’t forget to add in the raid buff  – 10% stamina. To get Touch of Death damage, we’ll multiply that health by a further 1.2, to account for Fortifying Brew. For the Stamina scaling, you can then just look at your current Touch of Death damage, your Touch of Death damage if you had 110 extra stamina, divide the second by the first, multiply that by the portion of your overall damage that Touch of Death is, and then multiply by 100 to convert it to percent. That’s it, and (with the mastery bug being fixed in the current PTR build), that finishes our stat weights!

Stat Weights – PoM DPS Weapon Damage

Thankfully after the last few posts, weapon damage is fairly straightforward. Unlike most classes who have melee damage as a significant portion of their damage, crane stance actually has a fair bit of damage that is not affected by weapon  damage. Those spells that do scale are as follows: special attacks (Jab, Expel Harm, Rising Sun Kick, Blackout Kick, and Tiger Palm), and melee attacks. What we need to do is see what portion of our damage is those abilities, and then how much they increase when you increase weapon damage.

Looking at the formulas for these attacks, the main drivers of their scaling are weapon damage and attack power. While melee damage has its own ratio, luckily, all of the special attacks share the same ratio of scaling as each other, with their damage differentiated by an overall multiplier. This means that we can add all those together and look at their scaling, then take melee attacks separately.

Once we’ve figured out what portion of our damage is special attacks, and what portion is melee, then we start the scaling. I increased weapon damage by 11 for my scaling because it is a pretty reasonable amount, and multiplies easily for the final stat weight. I just plugged weapon damage+11 into the formulas (I used Jab for the special, but since they all scale the same, you can use any), divide that new damage by the original damage, and subtract 1 to find out the fraction of additional damage that special and melee gain. Then you can multiply those individually to their respective damage fractions, and add them together to find the overall damage increase fraction. Finally you multiply by 100 to get a percentage increase in damage, and then multiply that number by 10 to get to the crit equivalency, since 110/11=10.

Stat Weights – PoM DPS Haste

Multistrike started to get a little complicated with the Jade Mists aspect, but overall it’s almost simple compared to haste. Much as in the last post, the math formulas get way too long to all type out and look neat in this space. If you want to follow along, go ahead over to the spreadsheet link on the right and make a copy for yourself to play around with.

Haste has 4 major effects: it lowers GCD/cast time, increases melee attack speed, increases DoT/HoT tick speed, and increases the proc rate of your RPPM trinkets. In crane stance, we don’t have any casts longer than the GCD except for possible mana tea channels, so the GCD decrease matters but not cast time. The primary effect of this is the increased number of special attacks you can perform, with a secondary effect of more mana being spent. Melee attack speed obviously applies. Our only periodic damage is Zen Sphere and Xuen’s Tiger Lightning, neither of which is affected by haste, so that part does not change anything.

The most annoying part is in calculating the effect of the increased proc rate of RPPM trinkets, particularly when one of them has a haste proc. I chose not to go into the recursive stuff and just compare the haste rates without the haste procs for your overall average haste, which leaves haste a tiny bit lower than it maybe should be, but overall should not make a huge difference. In my specific case I think it meant that I averaged about 5 additional haste from my haste proc going off more often.

With that in mind, we can start calculating how much of an overall increase in DPS you get from haste. I chose to add 90 haste to the base because that’s 1% by direct conversion, which would be easy to convert to crit equivalence later. Don’t forget that you need to multiply in the raid buff, which is uniquely multiplicative among raid buffs. Also, add in the extra haste from your haste proc trinket going off more, if necessary. The first part is the easiest – just see how many autoattacks you’ll have with the new haste and subtract the amount of autoattacks you currently do, then multiply by the average autoattack damage. Then, do the same thing with Xuen’s autoattacks.

Next, you have to take into account the reduced GCD. This means you get more GCDs in each 8 second period, returning to our Jade Mists calculation. Depending on your multistrike level, this could either go into partial RSK cycles or partial BoK cycles, so you consume as much RSK cycles as you can before putting the leftover globals into partial BoK cycles. You then convert those cycles into damage, just like in the Jade Mists calcs.

Then, you can add in the bonus from any non-haste RPPM procs going off more often. In this situation you don’t have to worry about recursive effects, so you can use post-proc average haste, see how much that increases the proc uptimes, and then multiply the additional stats you get out of it by their stat weights and add that in.

Finally, you have to worry about the additional mana usage with the lowered GCD, which converts to extra special attacks. This extra mana usage means you’ll need to spend additional time drinking (unless your spirit is high enough or the fight is short enough), so you take the portion of the fight you currently drink, the portion of the fight you’d drink with the extra haste, and use those to figure out what % of the fight you’re actually DPSing compared to the baseline. Then you use the new as a percentage of the old, and take that as a multiplier for your haste factor.

At this point we need to take a quick sidebar to establish mana tea drinking time. For this you need to factor in your spirit level, your haste level, and the fight length. Unless you’re using CJL or massive RJW uptime, you’re never going to run out of mana tea stacks, so that’s not a concern. Instead, you see how fast you’ll run out of your mana buffer, which is your base mana (160,000 for everyone except gnomes, who get a bit more). You do this by calculating your base regen, adding in passive spirit regen, and then finding out how much mana you spend per second. You take the difference, which is your mana deficit per second, and divide the buffer by it to find out how long you could go without drinking. Then, for the rest of the fight, you need to sustain yourself. You figure out how much mana you get from tea per second using your spirit value, determine how long it would take to use that mana, and from there you can find out what percentage of the post-buffer fight you need to drink. Convert that to seconds, take it out of the entire fight, and you have your overall % of time drinking. Finally I should note here that this is the only part of the spreadsheet that currently includes bloodlust as part of its calculations – it assumes a 40 second period where you have lust in the fight, and re-calculates the mana per second you spend in that time.

After that, all that remains is to factor in the increased tiger strikes uptime due to higher haste. Going back to the same simulations we ran for multistrike at various levels, I’m estimating that haste is about 80% as effective as multistrike at increasing tiger strikes uptime. Since that was 10% for multistrike, we can just add in 8% of multistrike’s stat weight at the end.

So, we take everything we have so far – the added damage due to extra globals, extra autoattacks (for you and xuen), and extra points for RPPM increase, and add those together. Then you multiply by your mana tea adjustment multiplier. Finally, you multiply that all by 110/90, to give your crit equivalency points, and then add in your tiger strikes increase. Simple, right?

Finishing PoM DPS Multistrike: Jade Mists

When we last left off with the stat weight posts, we were partially done with Multistrike as a stat weight. We’d taken into account the base damage increase from MS, the increased tiger strikes uptime, and the 5% bonus to MS from gear you get thanks to Jade Mists. Then I got stuck when I tried to figure out the contribution that Jade Mists’ other function, which is a chance equal to your multistrike to reset the charge of Rising Sun Kick when you use it (this can’t chain – if you reset on one RSK, the “bonus” RSK can’t proc another reset).

We’d gotten as far as to figure out the spare globals in a base 8 second cycle, but that was about it. I believe I’ve finally figured out the missing link from there. Based on the amount of spare globals and your effective multistrike%, you can figure out how much of the spare global(s) goes to using up RSK resets, and how many are used for BoK. This is the first post I have where the math gets too complicated to write out full equations in the post, so mosey on over to the spell data spreadsheet and make a copy if you want to follow along and play around with the numbers.

Quick intro to the spreadsheet here – the first tab is mostly for entering your stats, talents, food buff options, and estimated Tiger Strikes uptime (using the sim currently, haven’t implemented the formula that Geodew came up with and I’m trying to verify). The second tab takes your stats and the spell formulas and translates it into actual damage per cast numbers. One thing to note is that crit, multistrike, and versatility don’t currently affect any of those DPC numbers, and really are only currently factored in for the final stat weights and the DPS guess on the first sheet, right above the laundry list of things I still need to add in to the sheet. PoM DPS tab is the one we’re primarily going to use here, where I’ve tried to encapsulate an 8 second cycle, matching the natural RSK recharge. The fourth tab is for the future!

So, returning to the Jade Mists issue. A1:B12 roughly cover the same information we had in the last Multistrike post. Row 13 is the first small difference – where we left off, we just divided the leftover globals by 3 to see how much of a Jab-Jab-(spender) cycle we had available, but that didn’t account for the fact that the cycle is not exactly that, because of Vital Mists and tier 17 2pc. Columns E-K account for that cycle. I made the decision to waste a stack of Vital Mists here. The 1 chi you spend on TP to get an even 5-stack of VM is used up in what I’ve termed the “maintenance” engine, so the extra RSK/BoKs don’t have a TP to match, meaning you’re going up to 6 stacks instead of 5 before using the Surging. With t17p2, you don’t take up a full 3 globals on the non-maint cycle.

Once you have the amount of free globals, you apportion that to as many RSK cycles you can, and fill the rest with BoK cycles. Then you can add up all the damage you do, throwing in average Xuen damage, and reducing the AA damage to factor in the swing timer resets. These adjustments are currently crude estimates, but I pulled the numbers I used from some Gruul logs, so they shouldn’t be too bad. Once you have the damage you do in an 8 second cycle, then our goal is to see how an increase in multistrike converts to the overall damage increase, and turn that into a stat weight.

The way I approached this was to see how much multistrike would be needed to increase the damage in a given 8-second period by 1%, by converting some of that BoK cycle filler into RSK cycles. This is rows 23 down to 34. What it comes down to is a simple system of equations:
(RSK cyc dmg)*(RSK cycles)+(BoK cyc dmg)*(BoK cycles)+(maint dmg)=(current 8s dmg*1.01)
(BoK cycles)=(spare cycles based on free GCDs)-(RSK cycles)

You plug in the numbers from above and then use some middle-school algebra to solve for RSK cycles. Calling back from above, this mirrors the multistrike%, so you know how much effective multistrike you need to gain. You can cut out 10% because we earlier estimated that multistrike has about a 10% bonus on itself through additional Tiger Strikes uptime, and another 5% thanks to the Jade Mists’s multiplier on gear. Finally, you multiply by 100 to convert it to an actual percentage and then 66 to convert that percentage to rating.

Finally, you need to convert that so we can add it into the stat weight. Remember that what we have calculated today is the additional multistrike rating needed to get a 1% overall DPS gain through Jade Mists’s RSK resets. Now if you remember all the way back to the beginning of the series, we followed Geodew in defining crit as the baseline, with its weight being 1.0 before diminishing returns. In his stat weight post he says this essentially means that 110 rating = 1% hps gained. Multistrike’s base weight is also 1.0, because despite requiring 66 rating for 1%ms, 110 rating is the same gain as 110 crit due to the different mechanics. So, with that in mind, we can divide 110 by the multistrike rating we need for 1% gain to figure out the factor we put into the stat weight. Finally, while all previous factors have been multiplicative on the weights, I believe this one should be additive, because it’s a separate mechanic from the normal diminishing returns/stat bonuses.

The Mystery of the Missing Autoattacks

Ever since I first started looking into Tiger Strikes uptime, I noticed that the number of autoattacks in my logs were less than expected. For example, in my most recent kill, I had 171 autoattacks attempted in 5:04, or an average of 1.78 seconds between attacks, despite having a weapon with a 1.6s base attack speed! I had a number on theories on why that was happening. My first theory was simply time spent not attacking – time lost to channeling mana tea, and time lost to being fully petrified (since I largely look at Gruul logs).

This didn’t cover it, so then I had this wild theory that perhaps autoattack range is shorter than ability usage range – perhaps by trying to stay at max range to Gruul, I was cheating myself of autoattacks. In subsequent weeks I always made sure to stay closer, and it seemed like my autoattacks went up, and along with it my Tiger Strikes uptime. I had thought I had solved it, and didn’t look closely at it again until today. What I didn’t realize at the time is that I got my Kromog sword the following week, so the real culprit didn’t affect me as badly.

The problem is the numerous activities we do during combat that reset the swing timer. I finally looked closely at my autoattacks and the time between them, from this log. I exported the melee attack events, multistrikes excluded, to a csv thanks to wcl’s lovely export function (support Kihra’s patreon if you can!). I then added a column tracking the time since the last autoattack, a few columns to track any debuffs/buffs that would affect swing speed, and finally a column where I could track casts. Throw in some conditional formatting, and the result looked like this:

autoattacks

I quickly sussed out two main culprits: Expel Harm, and Surging Mists, which only used when at 5 stacks so it’s instant and has no mana cost. Still, there are clearly unaccounted-for delays in the autoattacks. The first such example happens at 13.410, where you’d expect a delay more in the ~1.0 range but we have 1.59. I went back to the casts table and finally found it – a Gift of the Serpent cast at 12.378, resetting the swing timer (at this point roughly 1.03) so that the next cast comes at 13.410. (Quick note if you’re looking in logs yourself, spellID 119031 is when they spawn, 135920 is when they expire after 30 seconds and heal somebody nearby, and 124041 is when somebody runs over it and gets healed). That’s right, the random spawning of orbs from Mistweaver mastery resets the swing timer. This actually means that mastery on gear, which increases the chance to spawn orbs, has a negative value for DPS.

So, at last we’ve solved the mystery. My preliminary theorycrafting (which, I was very close to getting a Jade Mists weight to finally finish the multistrike weight, I promise) indicates that this is about a 7.5% DPS loss just from lost autoattack damage, before you take into account lower Tiger Strikes, trinket, weapon enchant, and ring procs via less combat events. Once you add those in, it could well be over a 10% DPS loss.

Stat Weights – PoM DPS Multistrike

Multistrike is the most complicated of the stats we’ve looked at yet. Its benefit comes in three components: the added average damage to all attacks by the increased chance of multistrike on those attacks, the increase in Tiger Strikes uptime, and finally, the benefit from Jade Mists of replacing Blackout Kicks with Rising Sun Kicks.

The first aspect we’ll explore is the most straightforward: the increased chance of multistrike on every attack, the same as crit. This is a little bit easier than versatility, because you don’t have to convert for rating differences. The reason for the rating equivalence is covered better by Geodew in his Serpent Stat weights than I could say it, so click the link to the side if you need more detail.

Next, we have to factor in the additional multistrike you get from Tiger Strikes – higher base multistrike% gives more chance to multistrike on melee attacks, which gives you more chances to proc Tiger Strikes, which gives you a higher effective multistrike% throughout the course of the fight. This means that each multistrike rating on gear is just a little bit better than it would otherwise be.

How much? Well, since we don’t have a great equation for 6.1 Tiger Strikes yet, I ran the sim a bunch of times with the four common base weapon speeds, and haste and multistrike each from 500-2400, in increments of 100. Due to the scale of that simulation, I wasn’t able to run each individual sim as long as I wanted, so the results are not as high fidelity as I would like. The best approximation I could come up with is that 2400 multistrike is about 25% higher Tiger Strikes uptime than 500 multistrike. For example, we’ll use the 2.3 mace, with 900 haste. 500 multistrike is normally 12.57 raid buffed multistrike base, plus 46.14% Tiger Strikes uptime, for another effective 11.54 multistrike and a total of 24.11 average multistrike. Bumping that up top 2400 multistrike, you have a raid buffed 41.36% base ms, and then 57.82% Tiger Strikes uptime, which is 14.46% extra effective multistrike, 55.82 total average multistrike. So without factoring in Tiger Strikes, 1900 multistrike would give 28.79% multistrike, but once you add it in, you have an actual 31.71%. Dividing 31.71 by 28.79 gives 1.104, so we can say Tiger Strikes makes multistrike approximately 10% more valuable.

The other way Tiger Strikes factors into the multistrike weight is that you have to account for it when calculating the diminishing returns – make sure to add the effective multistrike you get to it from raid buffed multistrike when compiling your current multistrike factor in the diminishing returns component.

Now, the final confusing part – Jade Mists letting you replace Blackout Kicks with Rising Sun Kicks, through immediately refreshing a charge of RSK. Since it can’t happen on consecutive Rising Sun Kicks, a 100% multistrike chance means you can replace one Blackout Kick every 8 seconds – the Rising Sun Kick recharge time. A single Rising Sun Kick does 1.65 times as much damage as a single Blackout Kick. Honestly, at this point, I can’t wrap my brain fully around the effects. I’ll continue thinking about it, but for now we’ll just fudge it and say we have enough Haste, and are choosing Zen Sphere, so we don’t ever need to cast BoK outside of keeping the buff up, so additional Jade Mists procs don’t help us out on that end.

(thinking about Jade Mists begins here) You can break down every 8 second period into a set number of globals based on haste (with 1097, 6.44 globals), and then allocate those globals to things you already know happen on average in that period. For example you’ll Tiger Palm every 20 seconds, so an 8 second period will contain .4 Tiger Palms. Crane’s Zeal doesn’t have the same pandemic mechanic that Tiger Palm does, so we’ll say once every 18 seconds for that = .444… Blackout Kicks. One Rising Sun Kick from the charge that naturally regenerates, of course. .8 or .2666… globals to your t30 talent, depending on Zen Sphere or Chi Burst. So far that’s 2.644… globals taken up, with Zen Sphere. Of course we’ve also spent 2 + .4 + (.444*2) = 3.2888 chi, so we need to generate that as well. We get 1.315 from the .658 of a Vital Mists Surging cast (w/ 2pc) we get from spending those chi, and .53 from power strikes. I don’t currently use 4pc, but we’ll throw that in there as well – 8/45*2= .35. This puts us at 2.195 so we need 1.093 jabs still, for a total of 1.75 globals generating the Chi we’re assuming we’re spending. That’s 4.395 globals of our 6.44 used. Our remaining 2.045 globals can be used on roughly 2/3 of a jab-jab-spend cycle, so you need 68% effective multistrike to be able to cover every extraneous BOK with a RSK, I think.

Still working on how to increase the weight if you’re not covering every BOK…

OK, so at 68% you’re covering every extraneous BOK. With 34%, you could only cover half of those BOKs. Not sure where I’m going with this but it feels like a start.

And, of course, don’t forget the 5% amplification to all multistrike on gear than Jade Mists gives as its other effect.

So to wrap it up, we have 1.1*(1/(1+((MS/66)+5+(TSUT/4))/100))*1.05. An additional multiplier will be added in to account for Jade Mists once that’s figured out. If you think you have a way to account for it, or even a good avenue forward from what I have so far, please chime in!

6.2 Tiger Strikes uptime

Update: Geodew has correctly pointed out that because of the low amount of proc events within the duration of the buff, and because you can’t have partial attacks, the Poisson process is not valid. Check back for a corrected post later today. (view the bottom of this post, and the comments, for the conclusion I came to with Hamlet)

As we covered earlier in the 6.2 first look, the structure of Tiger Strikes is changing. It’s losing the ability to proc from multistrikes, but increasing the amount of multistrike it gives when it does proc. So currently, you have a 10% proc chance on all melee attacks and melee multistrikes, and after the patch, it’s merely a 10% proc chance on all melee attacks, but not their multistrikes.

The primary difficulties in theorycrafting the uptime for Tiger Strikes are the fact that it can overlap itself, refreshing the buff instead of stacking or adding time, and the fact that when Tiger Strikes is up, you have a higher chance of further Tiger Strikes chances because of the higher multistrike chance it gives. The 6.2 change removes this second aspect, so all you have to worry about is the overlapping procs.

I was first looking at the effects of weapon speed, haste, and multistrike on Tiger Strikes about two months ago, and ran into all of these same issues. I asked noted WoW theorycrafter Hamlet if he had any tips and he pointed me in the direction of this post, which didn’t quite work out for me because it had the same issues with the multistrike buff. I kept it in the back of my mind, though, and in 6.2, it’ll be perfectly applicable.

If you scroll down to “More Elaborate PPM: Overlaps and Poisson”, this is exactly what we need. Tiger Strikes has a proc chance rather than being PPM, but the PPM isn’t the essential part of the formula anyway. The uptime formula is 1 - e^{-\lambda}, where \lambda is the average procs in the duration of the buff. Then we just have to figure out how many times we attack every 8 seconds (the duration of Tiger Strikes), multiply by .1, and there you have it. The result for \lambda is .1*(8/(Base Weapon Speed/(1+raid buffed haste))), with (1+ raid buffed haste) multiplied by 1.55 if you have a two-hander to account for Way of the Monk. The final formula you have for Tiger Strikes is then

1-e^{-{.1*(8/(BAT/(1+RBH)))}}

We’ll then check this against our sim , which gave us an estimated 46.08% uptime with base attack speed of 1.6 and 1007 haste. That turns into 19.08% raid buffed haste with haste food. Plugging these values in gives us a result of 44.86%, which is close enough for me to breathe a sigh of relief over my sim being mostly accurate.

The section I chose from that post was wrong for these purposes. I missed the most important part: “This is a good model for WoW procs as long as the attack rate is very high compared to the time intervals being examined.” With 3-6 attacks in that 8 second period, that requirement is not met. Instead, we can use the first formula from the appendix, as follows.

{1-(1-P)^N}

In our case, P is the proc chance, 0.1, and N is the number of attacks in the buff period, or how many attacks you can fit into 8 seconds. This is simply 8/(BAT/(1+RBH%/100)). Geodew points out that since attacks are discrete events, you should round down. In our case, with 1007 haste and 250 haste from food, raid buffed haste is 19.665, and base attack speed is 1.9. 8/(1.6/(1+19.665/100))=5.98325, which we truncate to 5. Then you do 1-(1-.1)^5 = .4095, or 40.95%. This is a fair amount lower than the other approximation, which invites further investigation.

If we treat partial attacks as valid, we don’t truncate at all. 1-(1-.1)^5.98325 = .467620, which is 46.76%. This is strikingly close to the simulated result of 46.08%. I’m not saying the sim is perfect, but it does seem curious that the result is so much closer to the non-truncated result. Perhaps treating attacks as discrete is the wrong way to approach it, over long periods of time? Perhaps the sim is way off? I’ll run it again in a few hours when I get home to check the numbers.

Final edit: I got home and ran a longer sim, covering 999,999,999 milliseconds, the equivalent of 277.78 hours. I also made sure to use 250 haste food rather than 200 multistrike food, which I had in an earlier version of the sim. The estimated uptime was 46.76%. I now feel fairly confident in saying treating attacks as discrete events is an incorrect approach.