Theck's MATLAB thread - MoP/5.x

Warning: Theorycraft inside.

Moderators: Fridmarr, Worldie, Aergis, theckhd

Postby theckhd » Thu Mar 22, 2012 6:18 am

FSM Simulation Details

The code now uses a "Finite-State Machine" or "FSM" implementation to calculate ability weight values. This is a pretty drastic change from our previous simulation methods, and a significant improvement in many areas.

For reference, the old analytical modeling, priority simulation, and numerical modeling methods are detailed in the appendix.

The basic idea behind a Finite-State Machine is to catalog every possible "state" of the system, along with the possible transitions between states. From that information, the code tries to determine the state distribution of the system in equilibrium. In many senses, it's very similar to a Markov chain.

There are pros and cons to each of the methods we've used, but the FSM implementation has the most pros and fewest cons by far:

Analytical Model
  • Pros
    1. very fast in MATLAB
    2. simple to debug
    3. gives exact DPS values
  • Cons
    1. limited to very simple queues
    2. not very flexible
    3. needs to be re-written every time game mechanics change
Priority Simulation + Numerical Modeling
  • Pros
    1. very flexible
    2. easy to update as game mechanics change
    3. fast once database is generated and modeled
  • Cons
    1. simulation is slow
    2. noisy even for long sim times
    3. generating the database takes ~days
    4. did I mention slow?
FSM
  • Pros
    1. very fast compared to priority sims
    2. results can be easily cached and stored for re-use
    3. gives exact DPS values
    4. very flexible
    5. easily updated when game mechanics change
  • Cons
    1. a little more complicated to code
    2. limited Matlab support for graphs (overcome by using C#)


As a simple example of how the FSM code works, let's look at a limited system of a Paladin with two spells, Crusader Strike and SotR, and a priority queue of SotR>CS. There are only two things to track in this system - the cooldown of Crusader Strike and the amount of Holy Power the Paladin has. We can represent that with two digits, one for the cooldown and one for the amount of Holy Power.

For our initial state, let's just start with no holy power and no cooldown on CS. We represent this state as:

Code: Select all
state0=[0 0]  (cooldown=0, holypower=0)


So far so good. To determine the transitions between states, we consider the priority queue. In this state, we can't cast a 3-HP SotR, so the only transition is to use CS, which takes us to one of two state:
Code: Select all
state1=[3 1] (cooldown=3, holypower=1)  (if CS hits)
state2=[3 0] (cooldown=3, holypower=0)  (if CS misses)


Since the GCD is active we can't cast anything, so the transitions out of these states are all "do nothing and wait 1.5 seconds." If we do that, we knock 1.5s off of the CS cooldown, leading to the states [1.5 1] and [1.5 0]. In both of those states, we'd again "do nothing" for another 1.5s, leading to states [0 1] and [0 0]. At that point, we again consult the queue and see that in both of those states, we'd choose to cast CS again, leading to the following new transitions (we already know what happens in [0 0]):
Code: Select all
[0 1] -> [3 2] (if CS hits)
[0 1] -> [3 1] (if CS misses)


We could draw this out, with each state as a node and each transition between states being an arrow pointing from the beginning state to the end state. If we did that, it would look a lot like a graph or a flow chart (see any of the figures in the Wikipedia article).

If we continued this process, we'd eventually reach a point where we've cataloged all possible states and transitions, at which point we'd have a complete graph of the "state space." For our simple system, we have a very small state space - it's even simpler than I've shown, because we can skip all of the possible states where the GCD blocks transitions. That narrows it down to:
Code: Select all
[0 0]  [1.5 0]
[0 1]  [1.5 1]
[0 2]  [1.5 2]
[0 3]  [1.5 3]


In other words, 8 different states. In practice, we'd be tracking more things - the cooldowns of 5-8 different spells, the duration of several buffs (Inq, Grand Crusader, Sacred Duty), internal cooldowns (Eternal Glory), and so forth. An actual state space in one of our sims can be as large as 20k-30k states. And we need to store the transitions between states, as well as the probability of each transition.

Creating the graph is just the first step, we also need to solve the system to find its equilibrium. You can think of this as figuring out what the average process flow through the graph is.

A simple process flow for our graph would look something like this, assuming every CS was successful:
Code: Select all
[0 0]->[1.5 1]->[0 1]->[1.5 2]->[0 2]->[1.5 3]->[0 0]
CS  - (empty)-  CS  - (empty)-  CS  -  SotR  -

That's just one way a sequence could go - you could also imagine an endless string of CS misses that just bounces you back and forth between [0 0] and [1.5 0], or any other combination. What we want is the weighted average of every possible process.

The old priority simulation code effectively did this by starting at one point on the graph and traveling through it many, many times. It just kept track of the current state and rolled the dice to see what the next transition was. That's pretty good, but it takes a long time and is always susceptible to statistical noise. The even older, analytical code could only do this for very limited systems in which there were very few states with well-defined transitions.

FSM implementations can be solved in a variety of ways. One can construct a transition matrix M that contains all of the transition probabilities and solve the linear system associated with it using standard linear algebra techniques. Unfortunately, when you're dealing with matrices of this size (20,000 x 20,000 elements) many of those techniques take an incredibly long time unless the matrix is particularly well-behaved. Instead, we've used an iterative technique that starts in a given state (usually one where each state has a probability of 1/N, where N is the number of states) and then calculates the change in each state from one step (essentially matrix multiplication of state vector v, v_out=M*v). It then repeats that process until the change in any state is smaller than a predefined tolerance threshold.

It turns out that the state generation and iterative solving process is quite a bit faster to do in C# than Matlab, so our implementation calls an executable file to do the state generation and crunching. We then import the results into Matlab and do our post-processing on the stat weights like we've always done.

The C# code that handles the FSM logic can be found in the RotationCalculator\Matlabadin\ folder within the trunk. You should be able to use any C# development environment to fool with it, including the free Microsoft Visual C# express 2010. If you want to compile it, you'll need a C# compiler or the Microsoft .Net framework.

Finally, to give credit where credit is due, the FSM implementation we're using wouldn't exist without all the hard work put in by Iminmmnni, who suggested we try this route. He has written and maintained the vast majority of the C# code, and been absolutely essential in getting it working and implemented.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Postby theckhd » Thu Mar 22, 2012 6:19 am

Code

If you'd like to mess around with the code yourself, you'll either need MATLAB or a variant thereof. MATLAB is stupidly expensive itself, but there are free alternatives, including FreeMat, Octave, and Scilab. I haven't tested any of the code in these programs, but I haven't used any fancy functions or anything, so they should natively be able to run the m-files. If you run into errors, let me know and I'll see if there's anything simple I can do to help make the code more compatible with the free versions.

The files themselves are hosted on Google Code this time around to make collaboration easier. You can read and review all of the code directly through the Google Code interface, including color-coded diffs. If you want to grab the latest code, you can do so over http or with any SVN client. It's immensely easier to work with than the old system, which was me having a local copy and re-coding all the suggested changes myself.

The project name is matlabadin. Here's a bunch of useful links:

Project home page
Direct link to the trunk.
Revision hisotry
Changelog, from which you can click on any revision to see files changed, get diffs, etc.
Issue tracker
Wiki - completely empty at this point, but will (hopefully) eventually contain a page for each file describing what it does, how it works, etc.
RSS Feeds for all sorts of changes, including one that tracks every SVN commit.

The easiest way to get the whole batch is through SVN, however I hope to set up a nightly .zip repository down the line once the code has stabilized. Please contact me via PM or through the Google Code system if you'd like to help contribute to the code base in any way, even if it's just helping to keep the wiki up to date (or at this point, building it from scratch).

I hope to add a "user's guide" of sorts when I find some time, but it may be a while.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Postby theckhd » Thu Mar 22, 2012 6:19 am

Outstanding Requests

See the Call to Arms thread.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Thu Mar 22, 2012 6:27 am

As of today, I'm opening this thread for discussion. Tlitp, Iminmmnni and I have been working hard on the code to get the basic framework in place. Things like, "how do we represent/store this information" are mostly taken care of, and the code is surprisingly readable.

Note that at this stage, the thread is focused on getting the simulations running smoothly, NOT on the results.
It's far too early in beta to determine what our optimal rotation will be at release, for example. Things can and will change during beta. The goal in these first few months of beta is making sure that we're modeling everything properly and deciding what things we'll want to know.

Questions such as "What rotation/talents/glyphs/etc should I be using at level 90" will be deleted.

Note also that this time around, I'm not going to bother modeling our mechanics below max level (90). I don't think it's worth the extra hassle for less than one month of relevance.

Here's where the community comes in. I need volunteers willing to help flesh out the code base and get it up and running. There are a number of ways that you, the dedicated forum poster, can contribute. For example:
  1. Code Monkey - someone with a basic knowledge of MATLAB who's interested/willing to help maintain the code base. Stuff like making minor corrections to different modules or writing calculation files. Prerequisites would be that you know enough not to screw up the code, and have a passing familiarity with how to do SVN checkouts/commits or are willing to learn how to do so. The project is hosted on Google Code: Project matlabadin.
  2. Error checkers - People who will look through the code and try and spot mistakes. Things like, "You missed the Seals of the Pure modifier for Seal of Awesomeness" or "I ran the code in Octave and got an error on line x of module y, here's how I fixed it." If you don't want to mess around with SVN commits but can read MATLAB code, this could be the job for you!
  3. Wikinators - Eventually I want the wiki to include a page for each module describing what it does and how it's used. At this point, I don't have a specific idea how I want to do this, and won't have time to work on it until much farther down the line. If someone else wanted to make this their pet project, it would be an immense help.
  4. Data Miner - Willing to do simple fetch/retrieve operations. Things like "Here's a list of all of the spell coefficients and base damages for our abilities at level 85, according to wowhead." Beta access isn't even necessary for this. If you're able to read MATLAB code and willing to check these sorts of things against the code and post about possible errors, that's even better.
  5. Tester - I'll need people to go in and test things in the Beta from time to time. Things like "Does Talent X affects the damage of Ability Y or not" or "What's the proc rate on Talent Z?" This would probably require beta access.

How to contribute
  1. If you are interested in helping and need project access on Google Code: Send me a PM with your Google Account e-mail address and the type of work you'd like to help out with. You can contact me either on the boards here or via theckhd@gmail.com. You need a Google Account to gain access to the project. If you contact me via e-mail, please mention your forum name so I have some clue who I'm talking to.
  2. If you are interested in helping with the code but do not need project access: Simply do whatever it is you're willing to do to help, and post your findings, observations, comments, or whatever in this thread. Also, keep an eye on this thread and the Call to Arms thread, as tlitp and I will periodically be posting requests when we need things checked or tested. I will be keeping a "master list" of unresolved issues/requests in the Call to Arms thread.

Feel free to post questions about the code as well. If you're trying to help but don't understand what a certain line of code (or even an entire module) is doing, ask! Chances are one of us will have a good answer, but who knows - you might catch us making a bad assumption or doing something in a more complicated fashion than is necessary.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby Iminmmnni » Wed Mar 28, 2012 9:02 pm

Some more terms for the MoP glossary:
DP - Divine Purpose (unless Holy in which case it's Divine Plea)
HA - Holy Avenger
SW - Sanctified Wrath
SH - Selfless Healer
FoL - Flash of Light (potentially in rotation if SH chosen)
Iminmmnni
 
Posts: 45
Joined: Thu Mar 24, 2011 4:41 pm
Location: Melbourne

Re: Theck's MATLAB thread - MoP/5.x

Postby Jaitee » Fri Mar 30, 2012 3:48 am

Iminmmnni wrote:Some more terms for the MoP glossary:
DP - Divine Purpose (unless Holy in which case it's Divine Plea)
HA - Holy Avenger
SW - Sanctified Wrath
SH - Selfless Healer
FoL - Flash of Light (potentially in rotation if SH chosen)


DP is already taken by divine protection! (we have to many divine abilities)
Jaitee
 
Posts: 77
Joined: Mon Apr 19, 2010 12:11 am

Re: Theck's MATLAB thread - MoP/5.x

Postby benebarba » Sun Apr 01, 2012 11:36 am

The wiki will now be getting less empty. Sloooowly.

And if you have grammar complaints, I claim engineering as a defense :P
benebarba
 
Posts: 2222
Joined: Tue Oct 19, 2010 7:30 am

Re: Theck's MATLAB thread - MoP/5.x

Postby Fetzie » Mon Apr 02, 2012 5:53 am

You could use DP, DivP, and DivPl to differentiate between Divine Protection, Divine Purpose and Divine Plea
Fetzie | Protection Paladin | EU-Kazzak
Author of the TankSpot Protection Paladin Guide
Image
Sagara wrote:You see, you need to *spread* the bun before you insert the hot dog.

bldavis wrote:we are trying to extend it as long as we can...it just never seems to last very long
User avatar
Fetzie
 
Posts: 2019
Joined: Sat Feb 07, 2009 9:43 am
Location: Karlsruhe, Germany

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Mon Apr 02, 2012 6:21 am

Pyrea wrote:You could use DP, DivP, and DivPl to differentiate between Divine Protection, Divine Purpose and Divine Plea

We don't have Divine Plea anymore in MoP. DP should probably be clear from context, given that you can't "talent" Divine Protection, nor would you put it as a conditional in a rotation. If a situation arises where it's not clear form the context, DivPurp will suffice.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby xstratax » Thu May 10, 2012 3:27 pm

Ive seen AM used in other threads, but dont see a reference in the glossary. Ive tried searching for it, but without knowing the meaning its been fruitless (plus the search is limited to 4+ character strings only). Im not sure if its a Prot thing, but if so I can only assume it would be good to add it here.
xstratax
Maintankadonor
 
Posts: 94
Joined: Fri Aug 14, 2009 1:18 pm

Re: Theck's MATLAB thread - MoP/5.x

Postby Worldie » Thu May 10, 2012 3:33 pm

AM means Active Mitigation usually as far as i know.
theckhd wrote:Fuck no, we've seen what you do to guilds. Just imagine what you could do to an entire country. Just visiting the US might be enough to make the southern states try to secede again.

halabar wrote:Noo.. you don't realize the problem. Worldie was to negative guild breaking energy like Bolvar is to the Scourge. If Worldie is removed, than someone must pick up that mantle, otherwise that negative guild breaking energy will run rampant, destroying all the servers.
User avatar
Worldie
Global Mod
 
Posts: 8587
Joined: Sun Sep 02, 2007 1:49 pm
Location: Italy

Re: Theck's MATLAB thread - MoP/5.x

Postby benebarba » Thu May 10, 2012 3:46 pm

Worldie wrote:AM means Active Mitigation usually as far as i know.

Yeah, now that it's become a buzzword for tanks, it's getting used a lot.
benebarba
 
Posts: 2222
Joined: Tue Oct 19, 2010 7:30 am

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Thu May 10, 2012 5:44 pm

xstratax wrote:Ive seen AM used in other threads, but dont see a reference in the glossary. Ive tried searching for it, but without knowing the meaning its been fruitless (plus the search is limited to 4+ character strings only). Im not sure if its a Prot thing, but if so I can only assume it would be good to add it here.

Seems reasonable, nice catch.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby benebarba » Fri May 11, 2012 7:06 am

I'll go ahead and mirror the glossary here in the matlabadin documentation as well, since many of the same acronyms are used. It certainly couldn't hurt.
benebarba
 
Posts: 2222
Joined: Tue Oct 19, 2010 7:30 am

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Mon Aug 27, 2012 5:12 pm

We have gotten to the point where the majority of the code is working properly (we think). I'll be posting a bunch of data in the next few days for people to peruse and sanity-check. Some things aren't yet finished (primarily dynamic effects, like enchants).
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby Klaudandus » Mon Aug 27, 2012 5:23 pm

cant wait to see what comes out of this
The Element of Forum Hyperbole
Image
---
Flüttershy - Draenei Protection Paladin, Aerie Peak
Klaudandus - BE Protection Paladin, Feathermoon (Semi-retired)
User avatar
Klaudandus
 
Posts: 9336
Joined: Thu Apr 02, 2009 7:08 am
Location: Texas' Armpit

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Mon Aug 27, 2012 6:00 pm

First of all: Gear sets. I'm going to keep a larger variety of gear lists this expansion so I can track DPS increases as a function of gear. I'm not likely to be generating data sets for all of them, though. Here are the gear sets I have so far, feel free to critique them:
Code: Select all
%%Starter pre-5-mans, ilvl 450
gem=ddb.gemset{1}; %define gem template
%TODO: update all gear
tempegs(1)=equip(82919);  %Masterwork Spiritguard Helm
% tempegs(1)=socket(tempegs(1),gem.meta,gem.red);
tempegs(2)=equip(87356); %Badge of the Amber Siege
tempegs(3)=equip(82920); %Masterwork Spiritguard Shoulders
tempegs(4)=equip(87427); %Blade-Dulling Greatcloak
tempegs(5)=equip(82921); %Masterwork Spiritguard Breastplate
tempegs(6)=equip(82924); %Masterwork Spiritguard Bracers
% tempegs(6)=reforge(tempegs(6),'dodge','mast');
% tempegs(6)=socket(tempegs(6),gem.yel);
tempegs(7)=equip(82922); %Masterwork Spiritguard Gauntlets
tempegs(8)=equip(82923); %Masterwork Spiritguard Belt
tempegs(8)=enhance(tempegs(8),equip(90046,'s')); %Belt Buckle
tempegs(8)=socket(tempegs(8),gem.blu);
tempegs(9)=equip(82923); %Masterwork Spiritguard Legplates
tempegs(10)=equip(82925); %Masterwork Spiritguard Boots
tempegs(11)=equip(83796); %Heart of the Earth
tempegs(12)=equip(89525); %Thunderstone Ring
tempegs(13)=equip(85181); %Iron Protector Talisman
tempegs(14)=equip(77530); %Ghost Iron Dragonling
tempegs(15)=equip(81061); %Ook's Hozen Slicer
tempegs(16)=equip(81233); %Impervious Carapace (Heroic)
%%Enchants (21-37)
tempegs(23)=equip(126994,'s'); %Shoulder - Ox Horn Inscription
tempegs(24)=equip(104401,'s'); %Cloak - Greater Protection
tempegs(25)=equip(104397,'s'); %Chest - Superior Stamina
tempegs(26)=equip(104385,'s'); %Wrist - SuperiorDodge
tempegs(27)=equip(104420,'s'); %Hands - Superior Mastery
tempegs(29)=equip(124128,'s'); %Legs - Ironscale Leg Armor
tempegs(30)=equip(104414,'s'); %Feet - Pandaren's Step
tempegs(31)=equip(103463,'s'); %Ring - Stamina
tempegs(32)=equip(103463,'s'); %Ring - Stamina
tempegs(35)=equip(104440,'s'); %Weapon - Colossus
tempegs(36)=equip(130758,'s'); %Shield - Greater Parry
ddb.gearset(1)={tempegs};

%%Starter pre-raid, ilvl 463
tempegs(1)=equip(81574); %Helm of Rising Flame
tempegs(1)=socket(tempegs(1),gem.meta,gem.yel);
tempegs(2)=equip(81568); %Armsmaster's Sealed Locket
tempegs(3)=equip(81287); %Spaulders of Immovable Stone
tempegs(4)=equip(81571); %Soulrender Greatcloak
tempegs(5)=equip(81696); %Canine Commander's Breastplate
tempegs(6)=equip(81065); %Bubble-Breaker Bracers
tempegs(7)=equip(81101); %Gauntlets of Resolute Fury
tempegs(8)=equip(81086); %Sparkbreath Girdle
tempegs(8)=enhance(tempegs(8),equip(90046,'s')); %Belt Buckle
tempegs(8)=socket(tempegs(8),gem.blu);
tempegs(9)=equip(81270); %Sap-Encrusted Legplates
tempegs(10)=equip(82852); %Wrathplate Treads
tempegs(11)=equip(81124); %Crystallized Droplet
tempegs(12)=equip(81139); %Lime-Rimmed Signet
tempegs(13)=equip(81243); %Iron Protector's Talisman
tempegs(14)=equip(81181); %Heart of Fire
tempegs(15)=equip(81061); %Ook's Hozen Slicer
tempegs(16)=equip(81096); %Shield of Blind Hate
ddb.gearset(2)={tempegs};

%%T14 LFR, ilvl 483
tempegs(1)=equip(86661); %White Tiger Faceguard (LFR)
tempegs(1)=socket(tempegs(1),gem.meta,gem.blu);
tempegs(2)=equip(86872); %Kaolan's Withering Necklace (LFR)
tempegs(3)=equip(86659); %White Tiger Shoulderguards (LFR)
tempegs(3)=socket(tempegs(3),gem.blu);
tempegs(4)=equip(86883); %Daybreak Drape (LFR)
tempegs(5)=equip(86663); %White Tiger Chestguard (LFR)
tempegs(5)=socket(tempegs(5),gem.yel,gem.yel);
tempegs(6)=equip(86848); %Serrated Wasp Bracers (LFR)
tempegs(7)=equip(86662); %White Tiger Handguards (LFR)
tempegs(8)=equip(86903); %Protector's Girlde of Endless Spring (LFR)
tempegs(8)=enhance(tempegs(8),equip(90046,'s')); %Belt Buckle
tempegs(8)=socket(tempegs(8),gem.blu,gem.blu);
tempegs(9)=equip(86660); %White Tiger's Legguards (LFR)
tempegs(9)=socket(tempegs(9),gem.red);
tempegs(10)=equip(86870); %Deepwater Greatboots (LFR)
tempegs(10)=socket(tempegs(10),gem.yel);
tempegs(11)=equip(86830); %Ring of the Shattered Shell (LFR)
tempegs(12)=equip(86813); %Vizier's Ruby Signet (LFR)
tempegs(13)=equip(86775); %Jade Warlord Figurine (LFR)
tempegs(14)=equip(86790); %Vial of Dragon's Blood (LFR)
tempegs(15)=equip(86863); %Scimitar of Seven Stars (LFR)
tempegs(15)=socket(tempegs(15),gem.blu);
tempegs(16)=equip(86778); %Steelskin, Qiang's Impervious Shield (LFR)
ddb.gearset(3)={tempegs};

%%T14 Normal, ilvl 496
tempegs(1)=equip(85321); %White Tiger Faceguard
tempegs(1)=socket(tempegs(1),gem.meta,gem.blu);
tempegs(2)=equip(86234); %Kaolan's Withering Necklace
tempegs(3)=equip(85319); %White Tiger Shoulderguards
tempegs(3)=socket(tempegs(3),gem.blu);
tempegs(4)=equip(86325); %Daybreak Drape
tempegs(5)=equip(85323); %White Tiger Chestguard
tempegs(5)=socket(tempegs(5),gem.yel,gem.yel);
tempegs(6)=equip(86190); %Serrated Wasp Bracers
tempegs(7)=equip(85322); %White Tiger Handguards
tempegs(8)=equip(86384); %Protector's Girlde of Endless Spring
tempegs(8)=enhance(tempegs(8),equip(90046,'s')); %Belt Buckle
tempegs(8)=socket(tempegs(8),gem.blu,gem.blu);
tempegs(9)=equip(85320); %White Tiger's Legguards
tempegs(9)=socket(tempegs(9),gem.red);
tempegs(10)=equip(86232); %Deepwater Greatboots
tempegs(10)=socket(tempegs(10),gem.yel);
tempegs(11)=equip(86172); %Ring of the Shattered Shell
tempegs(12)=equip(86155); %Vizier's Ruby Signet
tempegs(13)=equip(86046); %Jade Warlord Figurine
tempegs(14)=equip(89079); %Lao-Chin's Liquid Courage
tempegs(15)=equip(86219); %Scimitar of Seven Stars
tempegs(15)=socket(tempegs(15),gem.blu);
tempegs(16)=equip(86075); %Steelskin, Quiang's Impervious Shield
ddb.gearset(4)={tempegs};

%%T14 Heroic, ilvl 509
tempegs(1)=equip(87111); %White Tiger Faceguard (Heroic)
tempegs(1)=socket(tempegs(1),gem.meta,gem.blu);
tempegs(2)=equip(90509); %Kaolan's Withering Necklace (Heroic)
tempegs(3)=equip(87113); %White Tiger Shoulderguards (Heroic)
tempegs(3)=socket(tempegs(3),gem.blu);
tempegs(4)=equip(87159); %Daybreak Drape (Heroic)
tempegs(5)=equip(87109); %White Tiger Chestguard (Heroic)
tempegs(5)=socket(tempegs(5),gem.yel,gem.yel);
tempegs(6)=equip(87001); %Serrated Wasp Bracers (Heroic)
tempegs(7)=equip(87110); %White Tiger Handguards (Heroic)
tempegs(8)=equip(87185); %Protector's Girlde of Endless Spring (Heroic)
tempegs(8)=enhance(tempegs(8),equip(90046,'s')); %Belt Buckle
tempegs(8)=socket(tempegs(8),gem.blu,gem.blu);
tempegs(9)=equip(87112); %White Tiger's Legguards (Heroic)
tempegs(9)=socket(tempegs(9),gem.red);
tempegs(10)=equip(90507); %Deepwater Greatboots (Heroic)
tempegs(10)=socket(tempegs(10),gem.yel);
tempegs(11)=equip(86968); %Ring of the Shattered Shell (Heroic)
tempegs(12)=equip(86946); %Vizier's Ruby Signet (Heroic)
tempegs(13)=equip(87083); %Jade Warlord Figurine
tempegs(14)=equip(89079); %Lao-Chin's Liquid Courage
tempegs(15)=equip(86987); %Scimitar of Seven Stars (Heroic)
tempegs(15)=socket(tempegs(15),gem.blu);
tempegs(16)=equip(87050); %Steelskin, Quiang's Impervious Shield (Heroic)
ddb.gearset(5)={tempegs};


Gear stats

Code: Select all
| ilvl-> |   450 |   463 |   483 |   496 |   509 |
|   Stat |       |       |       |       |       |
|    str |  7910 |  8044 |  8593 |  9802 | 11266 |
|    sta | 14961 | 16649 | 21224 | 25053 | 27734 |
|    agi |     0 |     0 |     0 |     0 |     0 |
|    int |     0 |     0 |     0 |     0 |     0 |
|    hit |   732 |   570 |  1521 |  1741 |  2024 |
|   crit |     0 |     0 |     0 |     0 |     0 |
|    exp |   279 |   279 |  1777 |  2030 |  2317 |
|  haste |     0 |     0 |     0 |     0 |     0 |
|   mast |  4500 |  2911 |  3668 |  2973 |  3265 |
|     ap |     0 |     0 |     0 |     0 |     0 |
|     sp |     0 |     0 |     0 |     0 |     0 |
| health |     0 |     0 |     0 |     0 |     0 |
|  dodge |  3617 |  4360 |  4892 |  5469 |  6153 |
|  parry |  2393 |  4961 |  4834 |  5411 |  6167 |
| barmor | 45220 | 45141 | 48020 | 50154 | 52373 |
| earmor |     0 |     0 |     0 |     0 |     0 |
| avgdmg |  6335 |  6335 |  7634 |  8616 |  9726 |
|  swing |     3 |     3 |     3 |     3 |     3 |


Player Stats

Code: Select all
|    ilvl-> |    450.000 |    463.000 |    483.000 |    496.000 |    509.000 |
|      Stat |            |            |            |            |            |
|       str |   8491.000 |   8632.000 |   9208.000 |  10478.000 |  12015.000 |
|       sta |  21853.000 |  24207.000 |  30588.000 |  35928.000 |  39667.000 |
|       agi |    110.000 |    110.000 |    110.000 |    110.000 |    110.000 |
|       int |    119.000 |    119.000 |    119.000 |    119.000 |    119.000 |
| armorystr |   8088.000 |   8222.000 |   8771.000 |   9980.000 |  11444.000 |
|        HP | 452345.000 | 485301.000 | 574635.000 | 649395.000 | 701741.000 |
|     armor |  49742.000 |  50648.202 |  53878.440 |  56272.788 |  58762.506 |
|      spdr |      0.000 |      0.000 |      0.000 |      0.000 |      0.000 |
|      mana |  60000.000 |  60000.000 |  60000.000 |  60000.000 |  60000.000 |
|   phhaste |      0.000 |      0.000 |      0.000 |      0.000 |      0.000 |
|   sphaste |      5.000 |      5.000 |      5.000 |      5.000 |      5.000 |
|     spgcd |      1.429 |      1.429 |      1.429 |      1.429 |      1.429 |
|  censTick |      2.857 |      2.857 |      2.857 |      2.857 |      2.857 |
|    EFTick |      2.857 |      2.857 |      2.857 |      2.857 |      2.857 |
|    phcrit |      2.587 |      2.587 |      2.587 |      2.587 |      2.587 |
|    spcrit |      2.047 |      2.047 |      2.047 |      2.047 |      2.047 |
|     hcrit |      5.047 |      5.047 |      5.047 |      5.047 |      5.047 |
|    aacrit |      2.587 |      2.587 |      2.587 |      2.587 |      2.587 |
|      mast |     20.650 |     18.002 |     19.263 |     18.105 |     18.592 |
|       exp |      1.571 |      1.571 |      5.976 |      6.721 |      7.565 |
|     mehit |      2.153 |      1.676 |      4.474 |      5.121 |      5.953 |
|     sphit |      3.724 |      3.247 |     10.450 |     11.841 |     13.518 |
|      miss |      0.000 |      0.000 |      0.000 |      0.000 |      0.000 |
|     dodge |      6.825 |      7.641 |      8.213 |      8.821 |      9.526 |
|     parry |     10.748 |     13.797 |     14.252 |     16.185 |     18.541 |
|     block |     29.150 |     26.502 |     27.763 |     26.605 |     27.092 |
|     avoid |     17.573 |     21.439 |     22.465 |     25.006 |     28.067 |
|  avoidpct |      0.176 |      0.214 |      0.225 |      0.250 |      0.281 |
|  blockpct |      0.291 |      0.265 |      0.278 |      0.266 |      0.271 |
|    acoeff |  58370.000 |  58370.000 |  58370.000 |  58370.000 |  58370.000 |
|      phdr |      0.460 |      0.465 |      0.480 |      0.491 |      0.502 |
|    VengAP | 100000.000 | 100000.000 | 100000.000 | 100000.000 | 100000.000 |
|        ap | 140678.000 | 141016.000 | 142399.000 | 145447.000 | 149136.000 |
|        sp |  70339.000 |  70508.000 |  71199.500 |  72723.500 |  74568.000 |
|   wdamage |  32460.914 |  32523.686 |  34079.029 |  35627.586 |  37422.186 |
|   ndamage |  30451.229 |  30509.171 |  32044.757 |  33549.771 |  35291.671 |
|     swing |      2.340 |      2.340 |      2.340 |      2.340 |      2.340 |
|    wswing |      2.212 |      2.182 |      2.177 |      2.160 |      2.139 |
|      wdps |  14675.831 |  14908.112 |  15651.926 |  16497.513 |  17493.685 |
|       mps |   1800.000 |   1800.000 |   1800.000 |   1800.000 |   1800.000 |
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Mon Aug 27, 2012 6:02 pm

Ability Damage sims:

Code: Select all
---50k Vengeance ---

| Ability |    Raw |    Dmg |    AoE |  Heal |
|         |        |        |   (4T) |       |
|      CS |  18402 |  14988 |      0 |     0 |
|    HotR |   2855 |   2325 |      0 |     0 |
|  HaNova |   7411 |   6081 |   6081 |     0 |
|       J |  51566 |  50072 |      0 |     0 |
|      AS |  77708 |  69651 |      0 |     0 |
|    Cons |  69587 |  62372 |  62372 |     0 |
|      HW |  43059 |  38594 |   2412 |     0 |
|     HoW |  70123 |  63825 |      0 |     0 |
|    SotR |  53145 |  43287 |      0 |     0 |
|     WoG |  75912 |      0 |      0 | 76689 |
|      EF |  75912 |      0 |      0 | 76689 |
| EF(HoT) |   8603 |      0 |      0 |  8692 |
|      SS |  37343 |      0 |      0 | 37343 |
|     HPr |  77427 |  69399 |  69399 | 50197 |
|      LH | 139262 | 124823 | 124823 | 92677 |
|      ES | 265063 | 237581 |      0 |     0 |
|     SoT |   2686 |   2756 |      0 |     0 |
|     SoR |   1270 |   1303 |   1303 |     0 |
|     SoI |  18153 |      0 |      0 | 11799 |
| Censure |  20469 |  20999 |      0 |     0 |
|   Melee |  15089 |  11477 |      0 |     0 |


Code: Select all
---100k Vengeance ---

| Ability |    Raw |    Dmg |    AoE |   Heal |
|         |        |        |   (4T) |        |
|      CS |  27502 |  22400 |      0 |      0 |
|    HotR |   4311 |   3511 |      0 |      0 |
|  HaNova |  11191 |   9183 |   9183 |      0 |
|       J |  89429 |  86837 |      0 |      0 |
|      AS | 130943 | 117366 |      0 |      0 |
|    Cons | 120617 | 108111 | 108111 |      0 |
|      HW |  71724 |  64287 |   4018 |      0 |
|     HoW | 120838 | 109986 |      0 |      0 |
|    SotR |  92016 |  74947 |      0 |      0 |
|     WoG | 120012 |      0 |      0 | 121241 |
|      EF | 120012 |      0 |      0 | 121241 |
| EF(HoT) |  13868 |      0 |      0 |  14010 |
|      SS |  60743 |      0 |      0 |  60743 |
|     HPr | 122409 | 109717 | 109717 |  79352 |
|      LH | 220154 | 197328 | 197328 | 146502 |
|      ES | 452047 | 405177 |      0 |      0 |
|     SoT |   4090 |   4196 |      0 |      0 |
|     SoR |   1918 |   1968 |   1968 |      0 |
|     SoI |  31653 |      0 |      0 |  20574 |
| Censure |  35274 |  36187 |      0 |      0 |
|   Melee |  22976 |  17476 |      0 |      0 |
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Mon Aug 27, 2012 6:05 pm

Glyphs:

Config #1: 2% hit, 5% exp, rotation is '^WB>CS>J>AS>^SS>Cons>HW>SotR' (default)
Config #2: 2% hit, 5% exp, rotation is '^WB>CS>J>AS>^SS>Cons>HW>WoG'
Config #3: 7.5% hit, 7.5% exp, default rotation
Config #4: 2% hit, 5% exp, default rotation, 3 targets

Code: Select all
---100k Vengeance ---

|                         |  cfg1 | cfg1 |  cfg2 |   cfg2 |  cfg3 | cfg3 |  cfg4 | cfg4 |
|                   Glyph |   DPS |  HPS |   DPS |    HPS |   DPS |  HPS |   DPS |  HPS |
|            Base DPS (k) |  72.3 |  9.3 |  62.4 |   24.1 |  78.4 |  9.3 |  70.3 |  9.3 |
|         AlabasterShield |  2498 |    0 |     0 |      0 |  2734 |    0 |  5697 |    0 |
|        Ascetic Crusader |     0 |    0 |     0 |      0 |     0 |    0 |     0 |    0 |
|          Avenging Wrath |     0 |    0 |     0 |      0 |     0 |    0 |     0 |    0 |
|           Battle Healer |     0 |    0 |     0 |      0 |     0 |    0 |     0 |    0 |
|            Blessed Life |     0 |    0 |     0 |      0 |     0 |    0 |     0 |    0 |
|            Divine Storm |     0 |    0 |     0 |      0 |     0 |    0 |     0 |    0 |
|         Double Jeopardy |     0 |    0 |     0 |      0 |     0 |    0 |  1284 |    0 |
|             Final Wrath |  2247 |    0 |  2247 |      0 |  2426 |    0 |   749 |    0 |
|          Flash of Light |     0 |    0 |     0 |      0 |     0 |    0 |     0 |    0 |
|          Focused Shield |  2135 |    0 |  2135 |      0 |  2374 |    0 |  2135 |    0 |
|           Focused Wrath |     0 |    0 |     0 |      0 |     0 |    0 |  2995 |    0 |
| Hammer of the Righteous |   169 |    0 |   169 |      0 |   173 |    0 |   169 |    0 |
|             Harsh Words |     0 |    0 | 13583 | -14764 |     0 |    0 |     0 |    0 |
|         Immediate Truth | -5310 |    0 | -5440 |      0 | -5208 |    0 | -5264 |    0 |
|             Inquisition |     0 |    0 |     0 |      0 |     0 |    0 |     0 |    0 |
|           Word of Glory |     0 |    0 |  3184 |      0 |     0 |    0 |     0 |    0 |
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Mon Aug 27, 2012 7:23 pm

Talents:

Config #1 is 2% hit, 5% exp
Config #2 is 7.5% hit, 7.5% exp
Config #3 is 2% hit, 5% exp, 5 targets.

Code: Select all
---50k Vengeance ---

|                    |  cfg1 | cfg1 |   cfg1 |  cfg2 | cfg2 |   cfg2 |  cfg3 | cfg3 |   cfg3 |
|             Talent |   DPS |  HPS |    HPG |   DPS |  HPS |    HPG |   DPS |  HPS |    HPG |
| Base (no talents)  | 44.2k | 0.0k |  0.365 | 49.9k | 0.0k |  0.415 | 42.7k | 0.0k |  0.365 |
|      Eternal Flame | -1398 | 8203 |     -0 | -1693 | 8625 |      0 | -1398 | 8203 |     -0 |
|      Sacred Shield |  -864 | 5747 |     -0 |  -947 | 5737 |      0 |  -421 | 5747 |     -0 |
|       Holy Avenger |  2341 |    0 |   0.11 |  3015 |    0 |  0.124 |  2341 |    0 |   0.11 |
|   Sanctified Wrath |  4674 |    0 |  0.021 |  5208 |    0 |  0.023 |  4860 |    0 |  0.021 |
|     Divine Purpose |  1545 |    0 |      0 |  2583 |    0 |      0 |  1545 |    0 |      0 |
|         Holy Prism |  2044 | 2184 | -0.001 |  2201 | 2176 | -0.001 |  2574 | 2184 | -0.001 |
|     Light's Hammer |  1595 | 1501 |     -0 |  1736 | 1500 |      0 |  1789 | 1501 |     -0 |
| Execution Sentence |  3489 |    0 |     -0 |  3793 |    0 |      0 |  3683 |    0 |     -0 |


|                  |   cfg1 |  cfg1 |   cfg2 |  cfg2 |   cfg3 |  cfg3 |
|           Talent |   SBU% | AvgU% |   SBU% | AvgU% |   SBU% | AvgU% |
|             Base |  36.53 | 36.53 |  41.48 | 41.48 |  36.53 | 36.53 |
|     Holy Avenger | 100.00 | 46.05 | 100.00 | 50.26 | 100.00 | 46.05 |
| Sanctified Wrath |  47.52 | 38.36 |  52.63 | 43.34 |  47.52 | 38.36 |
|   Divine Purpose |  46.32 | 46.32 |  55.31 | 55.31 |  46.32 | 46.32 |


Code: Select all

---100k Vengeance ---

|                    |  cfg1 |  cfg1 |   cfg1 |  cfg2 |  cfg2 |   cfg2 |  cfg3 |  cfg3 |   cfg3 |
|             Talent |   DPS |   HPS |    HPG |   DPS |   HPS |    HPG |   DPS |   HPS |    HPG |
| Base (no talents)  | 73.8k |  0.0k |  0.365 | 83.1k |  0.0k |  0.415 | 71.1k |  0.0k |  0.365 |
|      Eternal Flame | -2407 | 13053 |     -0 | -2915 | 13721 |      0 | -2407 | 13053 |     -0 |
|      Sacred Shield | -1460 |  9348 |     -0 | -1603 |  9332 |      0 |  -723 |  9348 |     -0 |
|       Holy Avenger |  3990 |     0 |   0.11 |  5143 |     0 |  0.124 |  3990 |     0 |   0.11 |
|   Sanctified Wrath |  8014 |     0 |  0.021 |  8927 |     0 |  0.023 |  8321 |     0 |  0.021 |
|     Divine Purpose |  2659 |     0 |      0 |  4446 |     0 |      0 |  2659 |     0 |      0 |
|         Holy Prism |  3113 |  3452 | -0.001 |  3348 |  3440 | -0.001 |  3997 |  3452 | -0.001 |
|     Light's Hammer |  2461 |  2373 |     -0 |  2680 |  2371 |      0 |  2784 |  2373 |     -0 |
| Execution Sentence |  5952 |     0 |     -0 |  6471 |     0 |      0 |  6275 |     0 |     -0 |


|                  |   cfg1 |  cfg1 |   cfg2 |  cfg2 |   cfg3 |  cfg3 |
|           Talent |   SBU% | AvgU% |   SBU% | AvgU% |   SBU% | AvgU% |
|             Base |  36.53 | 36.53 |  41.48 | 41.48 |  36.53 | 36.53 |
|     Holy Avenger | 100.00 | 46.05 | 100.00 | 50.26 | 100.00 | 46.05 |
| Sanctified Wrath |  47.52 | 38.36 |  52.63 | 43.34 |  47.52 | 38.36 |
|   Divine Purpose |  46.32 | 46.32 |  55.31 | 55.31 |  46.32 | 46.32 |
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby Weebey » Mon Aug 27, 2012 11:00 pm

I'm having some trouble with some of the numbers in the above post. In particular, I can't see how Final Wrath could possibly be a comparable dps increase to Focused Shield. Here is why:

Assuming a one-phase Patchwerk fight, one expects roughly 20% of Holy Wrath casts to benefit from Final Wrath (actually, HoW makes this assumption false, but on the other hand things like syncing execute phase with damage CD's and pots could mitigate it a little; in any case let's be generous to Final Wrath and assume this percentage is true.) A 50% damage increase that is effective roughly 20% of the time comes out to a roughly 10% increase in Holy Wrath damage.

Focused Shield, obviously, is a 30% increase in Avenger's Shield damage on a single target fight.

So for these two glyphs to come out equal, then (in an unglyphed setting) Holy Wrath would need to account for roughly 3 times the damage AS does. Assuming the ability damage post above contains unglyphed values, AS hits roughly twice as hard as Holy Wrath; while Holy Wrath has a shorter CD, it is our lowest priority attack, and GC procs obviously increase AS usage. As a result, AS should probably be used at least as much as Holy Wrath, and certainly not the 1/6 of the time needed to get the glyphs to equalize.

Here are logs from a Prot Paladin on Heroic 25 Man Feng, a single target fight: http://www.worldoflogs.com/reports/lb8s ... etails/13/

All the provisos about looking at a single log granted, and I have no idea how optimal his rotation is (although I assume the tanks for Midwinter are pretty good), but Avenger's Shield is doing almost 3.5 times the damage of Holy Wrath in those logs. Assuming he is using Focused Shield but not Final Wrath, AS is still almost 2.7 times the damage of Holy Wrath, i.e. the exact reverse situation required for the glyphs to be equal.

Obviously this is not rigorous; but the gap between the napkin math (and the evidence from logs) and the sim results are close to an order of magnitude, far too large to be accounted for by the greater precision of the latter. Either there is something wrong with the argument here, or there is an error with the code. I don't mind being wrong--indeed, I would prefer it if I knew there were no errors in the code--but if so I would like to know where.
Weebey
 
Posts: 22
Joined: Mon Mar 07, 2011 2:02 pm

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Tue Aug 28, 2012 5:26 am

There are a number of methodology details that I've left out so far, because I haven't had time to write up explanations. For example, in most cases I'm not modeling an entire fight, I'm calculating steady-state DPS. So the sim doesn't have any idea what the boss's health is, because it doesn't exist. Toggling the Holy Wrath glyph on just increases Holy Wrath's DPS by 50%. Its actual DPS benefit on an encounter is going to be about 20% of what's shown, which is where your order of magnitude comes from.

For some of the more important cases, I've taken this into account. For example, Holy Avenger and Sanctified Wrath both perform some amount of weighted averaging so that their values are realistic full-encounter estimates. Here are the formulas:

Code: Select all
DPS0 = DPS without any of the talents or effects active
HA_DPS = [(DPS with HA active) - DPS0]*HA_uptime
SW_DPS = [(DPS with SW active)*SW_Uptime + DPS0*(1-SW_Uptime)] - [(DPS with AW active)*AW_Uptime + DPS0*(1-AW_Uptime)]

The calculations with SW active obviously take into account the rotation shift (CS>J -> J>CS) and the increased uptime (hence the change from AW_ to SW_).
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Tue Aug 28, 2012 5:29 am

I'll try and have more results posted later today and tomorrow, but between work and the 5.0.4 patch I'm not sure how much time I'll have.
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - MoP/5.x

Postby Weebey » Tue Aug 28, 2012 9:07 am

I thought that might be the explanation, but this language in your talents and glyphs guide made me think otherwise:

"50% extra Holy Wrath damage in execute range. This is actually a reasonably large DPS increase, on the order of ~2% or so at L90. Probably about the same at L85."

I thought you were claiming that it was an overall 2% damage increase. I think you should consider editing the text to make clear you are talking about 2% during execute.
Weebey
 
Posts: 22
Joined: Mon Mar 07, 2011 2:02 pm

Re: Theck's MATLAB thread - MoP/5.x

Postby theckhd » Tue Aug 28, 2012 12:09 pm

Yeah, I definitely meant 2% during execute. Good catch, I'll clean up that language. Any other concerns before I start dumping stat weight data on you?
"Theck, Bringer of Numbers and Pounding Headaches," courtesy of Grehn|Skipjack.
Simcraft 6.x, Call to Arms 6.0, Talent Spec & Glyph Guide 6.x, Blog: Sacred Duty
User avatar
theckhd
Moderator
 
Posts: 6205
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Next

Return to Advanced Theorycraft and Calculations

Who is online

Users browsing this forum: No registered users and 1 guest

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 380 on Tue Oct 14, 2008 6:28 pm

Users browsing this forum: No registered users and 1 guest