Elitist Jerks Modeling Flurry with DW and WF

11/29/06, 10:54 PM   #1
• Vulajin
Vula'jin the Void, blessed by the loa

Mal'Ganis
So, I've been trying to make a little dinky spreadsheet to calculate Enhancement Shaman DPS, and an interesting conundrum has befallen me. I've figured out how to model Flurry for a single weapon. I've figured out how to model Flurry for a single weapon with Windfury. I've figured out how to model Flurry for Dual Wield, and I've figured out how to model it if both weapons have Windfury. However, I cannot for the life of me imagine how one would model Flurry with Dual Wield if only one of the two weapons has Windfury. It seems almost impossible, because I see no way to determine the probability distribution for a given swing to be at reduced speed when the preceding swings could be any combination involving zero to three Windfury-capable swings.

Let me just briefly run down how I'm handling each of the above situations, so that if I'm making some sort of conceptual mistake, someone can correct me on it.

First, there's the situation where you have one weapon with Flurry. This is very simple; The probability of a given swing having reduced speed is equal to the probability of any of the three previous swings having crit. In other words, you take the probability that none of the previous three swings crit times the base weapon speed, plus the complement of that probability times the Flurry-reduced speed (speed/1.3).

Now, if you have Flurry with Windfury, then any of the three previous swings may have procced Windfury, and if any of those extra swings crit, Flurry procced. I approach this by first calculating the probability, on any given initial swing, either that the initial swing crits or that a Windfury swing occurs and crits. In other words:

1 - ((1-Crit%)*(1-(Crit%+Hit%+Glance%)*0.20*Crit%)*(1-(Crit%+Hit%+Glance)*0.20*Crit%))

That's the probability that any given swing gets at least one crit. Then you simply substitute that in the formula for the first situation.

Now, when you have Dual Wield with no Windfury, as long as you can guarantee that the main and offhand have the same chances to crit/hit/etc. (i.e. you have the same weapon skill with both), the formula stays exactly the same. Same if you have Windfury on both weapons.

But...what if you have Windfury, say, only on the main hand, and something else on the offhand? Now, for any given swing, it's possible that some of the preceding attacks were Windfury-capable, and the rest were not. In that case, how can you know how many? Can we do some sort of probability-based average (in which case, please forgive me, as I horribly fail at more advanced probability stuff)? Or can/should we approach the model in a completely different fashion? Would it simply be more plausible to write a program to simulate the situation for different weapon speeds and output averages over extremely long time periods instead (in which case, I would very easily be capable of such a thing)?

I appreciate any help I can get on this one. It kind of reminds me of the whole thing about what fraction of a main hand swing you "gain" when your offhand procs sword spec (which I was also never able to figure out for myself).

 Originally Posted by Enervate Yep, still a fucking idiot.

 11/29/06, 11:00 PM #2 Deathwing Bald Bull     Gethol Orc Warrior   Black Dragonflight I'm going to wait for someone else to do it first because I'm an egotistical bastard. And no one has said my current calcs are that far off...yet. Note: my windfury calcs have to change for expac still. White to yellow makes a big difference.
 11/29/06, 11:07 PM #3 Skiace Don Flamenco     Bawfuls Troll Shaman   Dalaran i've been working on this for awhile, i posted a thread about it a month or so back but there was little to no interest. since then i've added a lot to it and tried to keep up with all changes made in beta. here's the latest version of my spreadsheet: http://ieng9.ucsd.edu/~acrocker/shaman_statsDWv05.xls it's probably not that user friendly or easy to follow, since no one seemed to care when i started working on it, plus i'm lazy. i'd love to discuss it with anyone who's interested. i'm pretty sure i can model just one weapon with WF while accounting for flurry, but i've never considered it. i'll think about it now and see what i get.
11/29/06, 11:15 PM   #4
• Vulajin
Vula'jin the Void, blessed by the loa

Mal'Ganis
 Originally Posted by Deathwing I'm going to wait for someone else to do it first because I'm an egotistical bastard. And no one has said my current calcs are that far off...yet.
Aww, come on, don't do that to me. This whole thing is making me insane. Teeeeellll meeeeeee!! >_<

 Originally Posted by Enervate Yep, still a fucking idiot.

 11/29/06, 11:20 PM #5 Skiace Don Flamenco     Bawfuls Troll Shaman   Dalaran i think you're making it more complicated than it needs to be. here's how i do it. i start with a sample size of a large number of swings (1000 or so, doesn't matter in the end) and with weapon info, you can figure out the total damage that each weapon should do in the given sample size, accounting for hits/crits/misses etc. I do this independantly for each weapon, MH and OH. then you add winfury on top of that, by taking the total number of hits and crits, multiply by WF proc-rate, and you have the number of times windfury is expected to proc. it would be a simple matter to just exclude WF procs for one hand in my spreadsheet. for flurry, it's a little complicated but i think it makes sense. i first calculate the effective average weapon speed. for example, if you're using a 2.0 speed weapon in each hand, this number is 1.0 because on average you're getting a swing in every 1.0 seconds. this value is calculated as follows: (MH_speed*OH_speed)/(MH_speed+OH_speed) using that speed and the total number of swings in the sample size, you figure out the expected time it should take to make those swings (ignoring flurry and WF). then you calculate the actual time it takes, due to flurry. that time is calculated by this: test_swings*wep._speed*(((1-base_crit)^3) + (1/(1+flurry_haste))*(1-(1-base_crit)^3)) where test_swings is the sample size of say 1000, wep_speed is the previously mentioned average speed. entirely separate from this, all the damage being done is calculated. that adds WF and crits/misses etc on top of it. i *think* this method effectivly models such that WF swings don't eat flurry procs, but i suppose i'm not sure that it accounts for WF crits procing flurry. EDIT: to clarify, the issue is making sure that WF crits DO proc flurry in the model, but only for the given weapon, yes? just kind of getting my thoughts/calculations out there as i think about this....
11/29/06, 11:26 PM   #6
• Vulajin
Vula'jin the Void, blessed by the loa

Mal'Ganis
 Originally Posted by Skiace i *think* this method effectivly models such that WF swings don't eat flurry procs, but i suppose i'm not sure that it accounts for WF crits procing flurry. EDIT: to clarify, the issue is making sure that WF crits DO proc flurry in the model, but only for the given weapon, yes? just kind of getting my thoughts/calculations out there as i think about this....
I have no problem modeling that WF swings don't eat Flurry. The problem I'm looking to solve is how to model WF crits proccing Flurry if only one of the two weapons has WF. Flurry, when procced, applies to any and all equipped weapons (to the best of my knowledge) and lasts for three swings of either one.

 Originally Posted by Enervate Yep, still a fucking idiot.

 11/29/06, 11:34 PM #7 Skiace Don Flamenco     Bawfuls Troll Shaman   Dalaran for one weapon, i think it's simpler than you are making it out to be. without windfury, the probability that at any given time you are not in flurry is (as we all know): (1-C)^3 but if you have Windfury, then a windfury crit on any one of those swings will still result in you being in flurry, since WF procs flurry but doesnt' eat it (correct?). thus, instead of raising it to the power of 3, we need to raise it to (3+average WF swings in this time). in 3 swings, you will proc windfury an average of 0.6 times, thus you will have an additional 1.2 swings, on average. so for a single weapon with WF, we should be using (1-C)^4.2 with two weapons, this will remain unchanged if they both have WF, but it will go down if one has it and one doesn't. there's probably a way to use the relative speeds of each weapons to figure out what it should be. i'll think about it some more. edit: yeah, just use the speeds to calculate what proportion of the previous 3 swings belong to a given weapon, and thus on average how many of those 3 swings have a chance to proce WF. for example, perhaps the WF weapon accounts for an average of 1.8 of those 3 swings. then the total swings you're looking at is 3+(1.8*0.2*2)=3.72 thus your magic "chance i'm not in flurry" number is: (1-C)^3.72 EDIT2: i already have the mechanism in place to figure out how many of the 3 swings belong to a given weapon, as i needed it in order to distribute a sample of total swings between two weapons of different speeds. the number of a given sample of swings (in this case the key 3) that each weapon contributes is: mainhand: test_swings*(1-(MH_speed/(MH_speed+OH_speed))) offhand: test_swings*(1-(OH_speed/(MH_speed+OH_speed))) in the case of the flurry calculations, test_swings=3.
11/29/06, 11:50 PM   #8
Whiteknight
Bald Bull

Night Elf Warrior

Proudmoore
Originally Posted by Vulajin
 Originally Posted by Deathwing I'm going to wait for someone else to do it first because I'm an egotistical bastard. And no one has said my current calcs are that far off...yet.
Aww, come on, don't do that to me. This whole thing is making me insane. Teeeeellll meeeeeee!! >_<
I imagine Deathwing had to model this for warriors in his spreadsheet. I assume you've looked at the theory in here?
http://forums.elitistjerks.com/viewtopic.php?id=7030

 11/29/06, 11:58 PM #9 Skiace Don Flamenco     Bawfuls Troll Shaman   Dalaran alright, i think it's pretty simple. to clarify my previous post and consolidate it, here's how you could model dual wielding with 1 or both weapons supporting WF. wherever you're putting your flurry calculations in, instead of having (1-C)^3 you replace this with (1-C)^(3+A) here's how you calculate A. you need a check to see if a given weapon has winfury on it. perhaps a spreadsheet cell for each weapon, where a 1 corrosponds to having WF and a 0 corrisponds to not having it. call these two cells MH_WF_check and OH_WF_check. then: A = ((1-(OH_speed/(MH_speed+OH_speed)))*OH_WF_check+(1-(MH_speed/(MH_speed+OH_speed)))*MH_WF_check)*3*WF_procrate*2 conceptualy this breaks down to: (percentage of swings that belong to off-hand * OH check + percentage of swings that belong to main-hand * MH check) * 3swings * 20% chance to proc WF * 2WFswings edit: here's a hopefuly more clear representation of the A equation. does that make sense?
11/30/06, 12:00 AM   #10
• Vulajin
Vula'jin the Void, blessed by the loa

Mal'Ganis
You're definitely right about being able to make it simpler in the way you identified. However, the crit rate for Windfury swings won't be exactly equal to the melee crit rate, once Windfury changes to yellow attacks (if you assume that yellow attacks use a multiple-roll system, as I conjectured in my other thread)...it'll be closer to (1-M-D-P-B)*C.

Thanks for the tip, though.

(edit) This was a response to post #7. Also, I'm now reading the Warrior DPS spreadsheet thread linked in #8. So, I'll be back in this thread in a couple hours. >_>

 Originally Posted by Enervate Yep, still a fucking idiot.

11/30/06, 12:09 AM   #11
Skiace
Don Flamenco

Troll Shaman

Dalaran
 Originally Posted by Vulajin You're definitely right about being able to make it simpler in the way you identified. However, the crit rate for Windfury swings won't be exactly equal to the melee crit rate, once Windfury changes to yellow attacks (if you assume that yellow attacks use a multiple-roll system, as I conjectured in my other thread)...it'll be closer to (1-M-D-P-B)*C.
you are correct about that, although it is a minor difference and an approximation i'm willing to live with.

11/30/06, 12:34 AM   #12
• Vulajin
Vula'jin the Void, blessed by the loa

Mal'Ganis
 Originally Posted by Skiace you replace this with (1-C)^(3+A) here's how you calculate A. you need a check to see if a given weapon has winfury on it. perhaps a spreadsheet cell for each weapon, where a 1 corrosponds to having WF and a 0 corrisponds to not having it. call these two cells MH_WF_check and OH_WF_check. then: A = ((1-(OH_speed/(MH_speed+OH_speed)))*OH_WF_check+(1-(MH_speed/(MH_speed+OH_speed)))*MH_WF_check)*3*WF_procrate*2 conceptualy this breaks down to: (percentage of swings that belong to off-hand * OH check + percentage of swings that belong to main-hand * MH check) * 3swings * 20% chance to proc WF * 2WFswings edit: here's a hopefuly more clear representation of the A equation. http://img155.imageshack.us/img155/7116/ary7.jpg does that make sense?
I love you for pointing out something that should have been obvious, but I probably wouldn't in a million years have made the leap needed to reach that equation. Back to work for me now. :)

By the way, I downloaded v0.2 of your spreadsheet earlier (found the old thread from a forum search before I posted this one) and, no offense, but I found it utterly incomprehensible. Of course, I'm sure anyone looking at my current work would be similarly lost, as I don't think either of us started with the intention of designing for readability. Still, I think I'm going to endeavor to make mine a bit more user-friendly, maybe put some things in like the ability to specify your gear and buffs.

Regarding the "approximation" of the new crit rate if you assume a multiple-roll system, you don't need to do that. I think you could just take the (1-C)^(3+A) equation and replace it with:

(1-C)^3 * (1-(1-M-D-B-P)*C)^A

Which would accurately model the correct crit rate for Windfury swings.

 Originally Posted by Enervate Yep, still a fucking idiot.

11/30/06, 12:43 AM   #13
Skiace
Don Flamenco

Troll Shaman

Dalaran
Originally Posted by Vulajin
 Originally Posted by Skiace you replace this with (1-C)^(3+A) here's how you calculate A. you need a check to see if a given weapon has winfury on it. perhaps a spreadsheet cell for each weapon, where a 1 corrosponds to having WF and a 0 corrisponds to not having it. call these two cells MH_WF_check and OH_WF_check. then: A = ((1-(OH_speed/(MH_speed+OH_speed)))*OH_WF_check+(1-(MH_speed/(MH_speed+OH_speed)))*MH_WF_check)*3*WF_procrate*2 conceptualy this breaks down to: (percentage of swings that belong to off-hand * OH check + percentage of swings that belong to main-hand * MH check) * 3swings * 20% chance to proc WF * 2WFswings edit: here's a hopefuly more clear representation of the A equation. http://img155.imageshack.us/img155/7116/ary7.jpg does that make sense?
I love you for pointing out something that should have been obvious, but I probably wouldn't in a million years have made the leap needed to reach that equation. Back to work for me now. :)

By the way, I downloaded v0.2 of your spreadsheet earlier (found the old thread from a forum search before I posted this one) and, no offense, but I found it utterly incomprehensible. Of course, I'm sure anyone looking at my current work would be similarly lost, as I don't think either of us started with the intention of designing for readability. Still, I think I'm going to endeavor to make mine a bit more user-friendly, maybe put some things in like the ability to specify your gear and buffs.

Regarding the "approximation" of the new crit rate if you assume a multiple-roll system, you don't need to do that. I think you could just take the (1-C)^(3+A) equation and replace it with:

(1-C)^3 * (1-(1-M-D-B-P)*C)^A

Which would accurately model the correct crit rate for Windfury swings.
is the newer one any easier to figure out? i added more borders to try to make things more clear. yellow cells are input cells, green cells are significant calculated values. i suppose i should make "userfriendly" the next thing i work on.

11/30/06, 12:51 AM   #14
Oggie
Disharmonious

Lightbringer
With the understanding of the spreadsheed being incomplete in this respect, is there any way I could get a download link possibly for it?

I'd really like to get more data on what kind of realistic dps I'm looking at immedately after the patch..8grin*

 Originally Posted by bartolimu It makes me want to hit Marge Thatcher on the nose with a rolled up newspaper.

11/30/06, 1:06 AM   #15
Skiace
Don Flamenco

Troll Shaman

Dalaran
 Originally Posted by Oggie With the understanding of the spreadsheed being incomplete in this respect, is there any way I could get a download link possibly for it? I'd really like to get more data on what kind of realistic dps I'm looking at immedately after the patch..8grin*

http://ieng9.ucsd.edu/~acrocker/shaman_statsDWv05.xls

 Elitist Jerks Modeling Flurry with DW and WF