Theck's MATLAB thread - Cataclysm/4.x

Warning: Theorycraft inside.

Moderators: Fridmarr, Worldie, Aergis, theckhd

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Aug 20, 2010 7:53 am

Checking up on a few of tlitp's revisions - the base damages on the abilities seem awfully low. For example, here's the edit for AS:

Code: Select all
raw.AvengersShield= ((440+536)./2 + 0.00.*player.hsp + 0.00.*player.ap).*mdf.spdmg;

down from 5605-6850 base damage and 7% scaling with each stat.

Just to test this, I hopped on beta and checked the tooltip damage at 80 for several gear configurations:

Code: Select all
asmin=[2768 3355 3941 4349];asmax=[3327 3914 4500 4908];asap=[522 1740 2956 3800];assp=[178 544 908 1166];
model=2768+0.37.*(asap-min(asap)+assp-min(assp));plot(asap,asmin,asap,model)
2768-0.37.*(min(asap)+min(assp))


37% was empyrically what I found to be the best integer scaling percentage by trial and error. The last line then spits out a base damage of 2509, well above the base threshold in the code, which seems to be gotten from the tooltip on MMO-champion.

Interestingly, both mmo-champion and wowhead have the higher base damage in the formula, but the spell scaling is still set at 7%.

Did I miss something here? Do the ap/sp coefficients change with level? Or has this change just not been reflected on the database sites?
"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: 6211
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Aug 20, 2010 8:12 am

Interesting observation:
CS tooltip on beta says 130% weapon damage, which is consistent with 100% base and 30% from Crusade (100*1.3)
CS as ret says 132% weapon damage. The only other source I could find for this is Communion, which increases your damage by 2%. It's consistent with 100*(1+0.3+0.2) or floor(100*1.3*1.02).

HotR tooltip says 45% weapon damage with Crusade (30%) and 2pT10 (20%). That's consistent with 30*(1+.3+.2), but not with floor(30*1.3*1.2). Provided the base damage is still 30%, this means that Crusade, 2T10, Communion, and other such effects are all calculated additively rather than multiplicatively.

<edit> Just as a sanity check, unequipping 2T10 drops the tooltip to 39%, as expected.
"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: 6211
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Aug 20, 2010 8:37 am

Did similar testing of HammerNova, here's the data:

Code: Select all
mnd=[743 778 801 820 855 999 1028 1054 1204];mxd=[1082 1117 1140 1159 1194 1390 1419 1445 1595];sp=[178 275 337 391 488 598 679 751 1116];ap=[522 846 1050 1230 1554 1920 2192 2432 3800];

tier=[1 1 1 1 1 1 .45/.39 .45/.39 .45/.39 .45/.39];
hmod=(684.*tier+0.085.*(ap+sp));plot(ap,mnd,ap,hmod);

Unfortunately, I was dumb and accidentally equipped 2T10 when I was taking the data (I took this earlier, before I noticed the effect in the previous post - that's actually what led me to notice it). The tier variable offsets this for the most part. Interestingly, it seems like the 2-piece only affects the base damage of HammerNova, because the scaling doesn't change after equipping it.

But in any event, it looks like the scaling is somewhere around 8.5% ap and sp, assuming the coefficients are the same.
"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: 6211
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Chicken » Fri Aug 20, 2010 8:51 am

theckhd wrote:Or has this change just not been reflected on the database sites?
It could very well be that, apparently the new streaming client Blizzard uses has changed how the data the database websites use works. They're also not perfect yet at getting the numbers from the new automatic scaling with level that abilities do. They also extract a lot of data from the tooltips, so if those haven't been updated yet they might show some wrong formulas.
Image
User avatar
Chicken
 
Posts: 425
Joined: Fri Jun 26, 2009 2:19 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Marblehead » Fri Aug 20, 2010 9:20 am

Chicken wrote:
theckhd wrote:Or has this change just not been reflected on the database sites?
It could very well be that, apparently the new streaming client Blizzard uses has changed how the data the database websites use works. They're also not perfect yet at getting the numbers from the new automatic scaling with level that abilities do. They also extract a lot of data from the tooltips, so if those haven't been updated yet they might show some wrong formulas.

Indeed, that seems to be the case.

Code: Select all
% Level 80

asmin=[2769 2776 4084 4315 4612 4719];asmax=[3328 3335 4643 4874 5171 5278];asap=[524 538 3252 3726 4407 4627];assp=[179 187 1001 1153 1209 1275];
model=2769+0.37.*(asap-min(asap)+assp-min(assp));plot(asap,asmin,asap,model)

% Level 83

asmin=[2957 4265 4752 4850 4931];asmax=[3554 4862 5349 5447 5528];asap=[557 3271 4279 4481 4707];assp=[189 1003 1311 1376 1311];
model=2957+0.37.*(asap-min(asap)+assp-min(assp));figure(2);plot(asap,asmin,asap,model)

At both levels, the 37% coefficient looks pretty accurate. However, even if I don't believe that the coefficients change through levels, I'm interested in checking the numbers on a 10lvl paladin, just to be sure.

On a side note, in the last 2 sets of numbers at lvl 80 I used some gear with AP enchants and in the last one at lvl 83 I used BoM. That made the model values to be a bit off. I wonder why that happened.
Image
Life is not difficult, people are.
User avatar
Marblehead
 
Posts: 96
Joined: Sun Aug 02, 2009 9:28 pm
Location: Bloodhoof (EU)

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Chicken » Fri Aug 20, 2010 10:40 am

Marblehead wrote:At both levels, the 37% coefficient looks pretty accurate. However, even if I don't believe that the coefficients change through levels, I'm interested in checking the numbers on a 10lvl paladin, just to be sure.
You might want to check that up to level 20 if you get around to it, assuming the level 10 coefficient turns out to be lower at any rate. On live spell ranks learned before level 20 have lower coefficients than spell ranks learned at or above level 20. If they turn out to still be lower at level 20 we'll know that the scaling of coefficients at least continues for a longer amount of time in Cataclysm.
Image
User avatar
Chicken
 
Posts: 425
Joined: Fri Jun 26, 2009 2:19 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Aug 20, 2010 10:48 am

Marblehead wrote:On a side note, in the last 2 sets of numbers at lvl 80 I used some gear with AP enchants and in the last one at lvl 83 I used BoM. That made the model values to be a bit off. I wonder why that happened.


It means that the spell isn't actually scaling equally with SP and AP. In all of the other data points (including mine), both your SP and AP were coming from Strength, and thus weren't independent.

Example: you get c1 AP from each point of STR, and c2 SP from each point of STR. Thus, the formula would look like:

dmg = base + sa*AP + ss*SP = sa*c1*STR + ss*c2*STR = (sa*c1 + ss*c2)*STR

where sa and ss are the scaling coefficients for AP and SP respectively. We know SP and AP, but can't determine sa and ss independently if all you check is the scaling with STR, because they aren't independent. The only way to do that is to add just AP or just SP from a different source (SP or AP from gear, for example).

I didn't think to equip AP gear earlier to check the scaling independently. From your plots, it looks like the model lags the data when you only add AP, which means that it scales slightly faster with AP than with SP. If you try modeling it as

base+sa*AP+ss*SP

and use the empirical constraint equation

sa*c1+ss*c2=0.37*(c1+c2)

it should be pretty easy to nail both down by only varying one. I think that c1=2 and c2=0.6 should be the right values.
"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: 6211
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Aug 20, 2010 10:52 am

By the way, I uploaded some rough "priority simulation" modules.

prio_model defines a priority model to evaluate. It's fairly robust, and should allow for any sort of conditional statement we'd want to evaluate ('player.hopo>=3 || HS.up==0' for example).

prio_sim takes that priority model and evaluates it over N timesteps of dt. I have it set up for N=300 and dt=0.1, but those are obviously changeable.

prio_sim also constructs the rotation structure "rs" which gets passed to rotation_drawer to make pretty pictures. If you want to see what I mean, update to the latest revision and type:

sample_calculation
prio_model
prio_sim
"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: 6211
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby bentglasstube » Fri Aug 20, 2010 10:57 am

I want to have pretty pictures, but the sim doesn't seem to run with Octave.

Code: Select all
octave:1> sample_calculation                                                   
warning: division by zero                                                       
error: `rotation_model' undefined near line 33 column 1                         
error: called from:                                                             
error:   c:\Users\Alan\Projects\matlabadin\sample_calculation.m at line 33, column 1


Unfortunately I don't really know MATLAB or Octave well enough to debug this.
User avatar
bentglasstube
 
Posts: 40
Joined: Mon Jul 13, 2009 11:46 am
Location: Phoenix, AZ

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Marblehead » Fri Aug 20, 2010 11:01 am

Code: Select all
% Level 16

asmin=[184 195];asmax=[211 222];asap=[114 136];assp=[52 59];
model=184+0.37.*(asap-min(asap)+assp-min(assp));plot(asap,asmin,asap,model)


I think that we can safely assume that coefficients (at least for AS) remain unchanged throughout leveling.
Image
Life is not difficult, people are.
User avatar
Marblehead
 
Posts: 96
Joined: Sun Aug 02, 2009 9:28 pm
Location: Bloodhoof (EU)

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby theckhd » Fri Aug 20, 2010 11:03 am

Not 100% sure why it's giving you a "divide by zero" error, but if you go into sample_calculation and comment out the line that calls rotation_model, it should skip that entirely.

Alternatively, you could add a junk line of code to the end of rotation_model ("temp=1"). I'm guessing that octave has a problem with the fact that rotation_model has no executable code. tlitp commented it all out in one of the recent revisions.
"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: 6211
Joined: Thu Jul 31, 2008 3:06 pm
Location: Harrisburg, PA

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby bentglasstube » Fri Aug 20, 2010 11:38 am

The divide by zero error is on line 94 of avoid_dr.m
Code: Select all
missdr = 1./(1./c_miss + k./total_miss);        %miss after DR


total_miss is 0 at this point because defense is gone.

I commented that out and added a 1 to the end of rotation model.
I get the following output and a boring graph:

Code: Select all
octave:1> sample_calculation                                                   
warning: Success!                                                               
octave:2> prio_model                                                           
octave:3> prio_sim                                                             
warning: Order not defined or too short, defaulting to text order               
error: set: unknown property "YTickLabels"                                     
error: called from:                                                             
error:   c:\Users\Alan\Projects\matlabadin\rotation_drawer.m at line 54, column
1                                                                               
error:   c:\Users\Alan\Projects\matlabadin\prio_sim.m at line 110, column 1     


notpretty.png
You promised me pretty graphs theck </3
notpretty.png (6.05 KiB) Viewed 1297 times


Edit: I dug a little deeper and fixed the YTickLabels issue but I guess Octave doesn't have the "rectangle" function so I don't get pretty graphs.
User avatar
bentglasstube
 
Posts: 40
Joined: Mon Jul 13, 2009 11:46 am
Location: Phoenix, AZ

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Gaffer » Fri Aug 20, 2010 12:25 pm

Gaffer wrote:I'll try to get the Vengeance details you're looking for tomorrow. I made the mistake of going to Hyjal and the three times I attempted to log in, I zone in on top of ~5 horde that corpse camp me.


Still an issue. I'll transfer a character to the PvE server this weekend if no one else gets you the Vengeance information you need before I get some time.
Gaffer
 
Posts: 35
Joined: Tue Oct 14, 2008 2:39 am

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby bentglasstube » Fri Aug 20, 2010 12:30 pm

I played around a little more with Octave and got as far as this
prettier.png
prettier.png (7.46 KiB) Viewed 1287 times

I guess I will have to leave the plotting up to those of you who have real matlab.
User avatar
bentglasstube
 
Posts: 40
Joined: Mon Jul 13, 2009 11:46 am
Location: Phoenix, AZ

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby tlitp » Sat Aug 21, 2010 12:33 pm

Do Octave/FreeMat get along nicely with structures within structures ? You can load avoid_dr r55 directly, it's self-sufficient :
Code: Select all
clear;avoiddr=avoid_dr(0,0,0)

If that's the case, additional code cleanup is down the road.
User avatar
tlitp
 
Posts: 487
Joined: Mon Jul 27, 2009 3:25 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby bentglasstube » Mon Aug 23, 2010 9:34 am

Octave doesn't throw any errors for that code but it has been running for about 3 minutes without finishing.

Edit: nevermind, it works perfectly in Octave
User avatar
bentglasstube
 
Posts: 40
Joined: Mon Jul 13, 2009 11:46 am
Location: Phoenix, AZ

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby tlitp » Tue Aug 24, 2010 11:14 am

Is Vengeance more or less functional on b12759 ? If so, there are a few things that need to be clarified :
I. damage type (physical/magic/environmental)
II. passive damage reduction effects (armor)
III. active DREs (both intrinsic, say AD, and extrinsic, say PS)
IV. absorb effects

Appending :
Is plate spec functional in b12803 ? If so...
I. Does the activation require 8/8 plate ? Is x/x enough, for x<8 ? (mostly of academic interest, to get the mechanics pinned down)
II. How exactly does it interact with the other STA modifiers ?

For reference, the current implementation :
Code: Select all
player.sta=floor((base.sta+mdf.mining).*(1+(mdf.TbtL./40)).*mdf.BoK)+ ...
    floor((gear.sta+mdf.PWF+extra.sta).*(1+(mdf.TbtL./40)).*mdf.BoK);
User avatar
tlitp
 
Posts: 487
Joined: Mon Jul 27, 2009 3:25 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Marblehead » Tue Aug 24, 2010 8:48 pm

tlitp wrote:Appending :
Is plate spec functional in b12803 ? If so...
I. Does the activation require 8/8 plate ? Is x/x enough, for x<8 ? (mostly of academic interest, to get the mechanics pinned down)
II. How exactly does it interact with the other STA modifiers ?

For reference, the current implementation :
Code: Select all
player.sta=floor((base.sta+mdf.mining).*(1+(mdf.TbtL./40)).*mdf.BoK)+ ...
    floor((gear.sta+mdf.PWF+extra.sta).*(1+(mdf.TbtL./40)).*mdf.BoK);

I. Yes, the activation requires every item to be plate. If one slot contains cloth/leather/mail or it's empty, the bonus is canceled.

II. Tested. It follows the same pattern.
Code: Select all
player.sta=floor((base.sta+mdf.mining).*(1+(mdf.TbtL./40)).*mdf.BoK.*mdf.PlSp)+ ...
    floor((gear.sta+mdf.PWF+extra.sta).*(1+(mdf.TbtL./40)).*mdf.BoK.*mdf.PlSp);
where mdf.PlSp is obviously the Plate Specialization modifier.
Image
Life is not difficult, people are.
User avatar
Marblehead
 
Posts: 96
Joined: Sun Aug 02, 2009 9:28 pm
Location: Bloodhoof (EU)

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Marblehead » Tue Aug 24, 2010 9:27 pm

tlitp wrote:Is Vengeance more or less functional on b12759 ? If so, there are a few things that need to be clarified :
I. damage type (physical/magic/environmental)
II. passive damage reduction effects (armor)
III. active DREs (both intrinsic, say AD, and extrinsic, say PS)
IV. absorb effects

I. Any damage type. Whenever you take damage, no matter where it came from, Vengeance is generated.

II-IV. Vengeance is based purely on damage taken (i.e. hitpoints lost), not the raw hit. That said, since the effects II-IV reduce damage taken, they reduce the Vengeance generation.
Image
Life is not difficult, people are.
User avatar
Marblehead
 
Posts: 96
Joined: Sun Aug 02, 2009 9:28 pm
Location: Bloodhoof (EU)

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby tlitp » Tue Aug 24, 2010 11:32 pm

Marblehead wrote:II-IV. Vengeance is based purely on damage taken (i.e. hitpoints lost), not the raw hit.

Did you test explicitly #4 ? Say x (pre-mitigation)->y (post)->z (post-absorb). Does Vengeance scale with y or with z ?
User avatar
tlitp
 
Posts: 487
Joined: Mon Jul 27, 2009 3:25 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Marblehead » Wed Aug 25, 2010 1:42 am

tlitp wrote:
Marblehead wrote:II-IV. Vengeance is based purely on damage taken (i.e. hitpoints lost), not the raw hit.

Did you test explicitly #4 ? Say x (pre-mitigation)->y (post)->z (post-absorb). Does Vengeance scale with y or with z ?

Let's say that a mob hits for 1k damage post-mitigation. Then:

a) For every "full" hit, Vengeance generates 1000*0.05= 50 attack power.
b) If the hit is blocked, Vengeance generates 1000*0.7*0.05= 35 attack power.
c) If the hit is partially absorbed for 500 damage, Vengeance generates (1000-500)*0.05= 25 attack power.
d) If the hit is fully absorbed, Vengeance doesn't generate any attack power.
Image
Life is not difficult, people are.
User avatar
Marblehead
 
Posts: 96
Joined: Sun Aug 02, 2009 9:28 pm
Location: Bloodhoof (EU)

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby tlitp » Sat Aug 28, 2010 9:59 pm

Do Reckoning-based hits proc Righteousness ? Do they apply Censure ?
For the second one : either track the stack counter, either duel a Rogue (synchronizing Reckoning with Evasion).

EDIT : To clarify the current Vengeance mechanics. Stacking buff, adding 5%*damage per stack (up to a total of 10%*health), 15 sec duration. Correct ?
User avatar
tlitp
 
Posts: 487
Joined: Mon Jul 27, 2009 3:25 pm

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby masterpoobaa » Wed Sep 01, 2010 10:01 pm

That doesn't bode well... the more damage we adsorb, block, parry or dodge the less vengeance we generate?

Well crap. That doesn't bode well for gear scaling at all.
Ellifain @ Khaz'Goroth does not approve of torture, save where there's experience/rep/loot involved.
masterpoobaa
 
Posts: 1482
Joined: Thu Jul 31, 2008 5:14 pm
Location: Brisbane, Australia, Earth, Sol, Orion Arm, Milky Way, Local Group, Virgo Supercluster, Universe.

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Petrus » Sat Sep 04, 2010 4:10 am

@Theck: I have beta access (and have for quite a while now) and will test anything in this thread.

I'll go through a bit more tomorrow and try to test any untested things.
User avatar
Petrus
Maintankadonor
 
Posts: 725
Joined: Wed Feb 06, 2008 3:45 am
Location: St. Paul, Minnesota

Re: Theck's MATLAB thread - Cataclysm/4.x

Postby Kierly » Mon Sep 06, 2010 9:19 pm

I have been doing some testing on the beta with vengeance it appears to decay linearly (10% of the AP value after last increase every 2s) over 20s from the last time you take damage.
Kierly
 
Posts: 12
Joined: Tue Aug 31, 2010 10:39 am

PreviousNext

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