Jump to content

Stat Equations


dipstik

Recommended Posts

updated 8/1/19:

equations of the type: percent rating = cap* ( 1 - ( 1 - ( 1 / cap) )^( (rating/75 ) / divisor) )

 

attribute divisor cap

Defense 2.125 30 (base 10%)

Shield 1.279 50 (base 20%)

Absorb 1.066 50 (base 5%)

Critical 1.503 30 (base 5%)

Surge 1.503 30 (base 50%)

Alacrity: 2.015 30 (1214 for 1.4 s, 3206 for 1.3 s, 7990 for 1.2 s)

Accuracy 2.015 30 (1589 gives 9% which will give 10% with companion buff)

Crit from Mastery: 8.43 20

 

These do not take that form:

 

Max Health= Endurance*14 (base 900 endurance 52295 Base Health)

Health Regen = 0.0475*Endurance

Bonus damage from Mastery = 0.2*Mastery (base 1000 Mastery)

Bonus damage from Power= 0.23*Power

Bonus damage from Force/Tech Power= 0.23*FTPower

Bonus Healing from Mastery= 0.14*Mastery

Bonus Healing from Power = 0.17*Power

Bonus Healing from Force/Tech Power = 0.17*FTPower

Damage Reduction Percent = 100*armor_rating/ (armor_rating+ 465* 75 - 7900)

 

original post:

 

 

 

Just wanted to start a thread to get more info.

 

I tried to see if the crit equation changed since the old equation wasnt adding up to the new values (after replacing with new 75 lvl) and maple and wolfram werent happy when i did this:

 

solve({11.55 = a*(1-(1-0.01/b)^((1617*(1/75))/c)), 12.14 = a*(1-(1-0.01/b)^((1725*(1/75))/c)), 12.71 = a*(1-(1-0.01/b)^((1833*(1/75))/c))}, {a, b, c})

 

I was able to get a numeric solution from excel using solver, but the numbers are funny:

 

a= 29.9171011

b= 0.410366122

c= 1.090098511

 

but this did extrapolate correctly the the third data point (only used 1725 and 1833 points for solver)

 

i tried setting a=30, b=0.4 and c= 1.1 but did not get values that lined up with in game data...

 

typically b=a/100 (they are the same if you calc the fraction instead of percent) but i wasnt able to get that to work either...

 

if i set a=30 and solve using solver i get:

b= 0.583407016

c= 0.765740936

 

which gives 11.5627 for 1617 crit rating (instead of 11.55)

 

or

 

b=0.412787855

c=1.089126494

 

which gives 11.53767 instead of 11.55

 

depending on what point i use to solve and which point is set to a criteria i can get any of these solutions:

 

29.9171011 30.08079436 30.08076192

0.410366122 0.413218617 0.394542242

1.090098511 1.090249155 1.142525738

 

 

i think i need to get additional data points and review different equation types... the range i have looks very linear (r^2=0.9997) which is not good. If you guys want to give me rating values and the percentage that would help. I must have done something wrong

 

that being said, these equations do seem to give correct values, but they dont look like the right parameters....

 

crit/surge:

a= 29.9171011

b= 0.410366122

c= 1.090098511

 

alacrity

30.06114991

0.381193186

1.583290223

 

accuracy: looks like 1589 will be new target with companion wihout accuracy buffs from gear/spec etc., 3 aug and 3 enhancements gives 1617.

30.05888337

0.426155439

1.414730655

 

base end: 52295

health = 14*Endurance (there is a - 7.72 offset that might not be real)

 

def

30.97602989

0.406267138

1.618992556

 

shield

49.17079729

0.623908233

1.004003389

 

absorb

49.94444327

0.639701332

0.830023395

 

crit form mastery (this one i couldn't quite get, it would give 0.01% off for either outer point)

20.23431466

0.2634927

6.473281181

 

damage reduction

Armor_Rating/ (Armor_Rating+ 457.2399* 75 -7312.62 ) * 100

 

bonus damage: 0.2*mastery+0.23*power+0.23*f/t_power

 

Edited by dipstik
Link to comment
Share on other sites

I assumed that what dipstik calls coefficients a and b wouldn't change, since it serves as a limes, cap which we can't exceed, and changing it without adjusting all NPC attacks everywhere would dramatically change balance in old content.

 

Assuming only the last coefficient in exponent changed, I got the new defense coefficient 2.125 instead of 1.2:

def_chance = 30*(1-(1-0.01/0.3)^((def_rating/75)/2.125))

This matches tooltip data (CSV) for 10 data points in range between 560 to 2800.

 

Shield was more difficult, because working under the same assumption I can't fit the curve to all data points, one doesn't match- this might be a result of rounding error, but I can't be sure. New coefficient would be 1.2789 instead of 0.78:

shld_chance = 50*(1-(1-0.01/0.5)^((shld_rating/75)/1.2789))

This matches tooltip data (CSV) in range between 431 to 4243 rating, so even if the formula is wrong, it is reasonably accurate in the entire interesting range.

 

Interestingly, shield curve normalized to stat budget is almost identical to L70 formula and gear, and defense curve is flatter by up to one ehancement's worth:

https://www.dropbox.com/s/866l47wa8g0fg5f/shield_norm_bastion.png?dl=0

https://www.dropbox.com/s/7yunujplssmjhm3/defense_norm_bastion.png?dl=0

Link to comment
Share on other sites

Bumping because, while my bigly brain definitely understood all the math, some kind soul may be interested in translating this into dum-dum speak.

Which I definitely don't need. Since I absolutely understand the curving equations and solving for c. Shut up.

Link to comment
Share on other sites

Bumping because, while my bigly brain definitely understood all the math, some kind soul may be interested in translating this into dum-dum speak.

Which I definitely don't need. Since I absolutely understand the curving equations and solving for c. Shut up.

 

I am not 100% sure but I just use the old number for say alacrity 1860 for 1.3 cooldown point and divide that number by the coefficient provided in the how it scales ie. 0.38 in this case for alacrity - the second number, the fraction in each category, I get 4895. Is this correct? so the new 1860 if nothing is changed is 4895?

 

Can do this for crit, accuracy etc.

 

Note I may be totally misunderstanding this formula too so please clarify how we are translate old figures to the appropriate new figures in the pts so far?

Edited by ottffsse
Link to comment
Share on other sites

Basically, there are two values used to turn your attribute rating into your attribute. So for the crit chance you get from crit rating you have a hard cap of 30% and a divisor of 0.8, so you get (in 4.0):

 

30 * ( 1 - ( 1 - ( 0.01 / 0.3 ) )^( ( CritRating / max(level,20) ) / 0.8 ) )

 

Here a=30 b=0.3 (which is a/100) and c (the divisor) = 0.8.

 

The rules are different for armor rating becoming damage reduction and endurance becoming health points.

 

But it looks like level sync might be messing up our assumptions to the equations. Will test on my ship with no buffs.

Link to comment
Share on other sites

I've discussed this topic with some guild members of mine since PTS launched and just want to chime in with some things.

 

The divisors have been changed for all formulas already; there are level 72-73 and 74-75 values, but ignoring the former we have, for example, Alacrity at 1.862 and Crit at 1.3624. As observed putting those into the existing formulas still doesn't add up to what is actually required to get the desired rating. It's unlikely any part of the formula is different because the numbers (30 & 0.3 in these 2 cases) represent the hard cap, so the divisors are likely higher than they should be.

 

The parse dummy's HP was also noted to be higher than the module's value too; 4M was 4427689, which is a bit over 1.1x as high. Coincidentally, or not, as an unnamed developer complained about base stats being changed when I mentioned this to them, the 'correct' alacrity divisor is 2.014, which is also a bit over 1.1x as high (but not exactly the same as the HP increase).

 

So what does this mean? Perhaps nothing, perhaps values are inadvertently higher than they should be. The dummy HP value will be fixed next patch so we'll see what happens with the stat equations.

Link to comment
Share on other sites

I did some maths by myself and the first thing I recognised when trying to solve this numerically was,

that you get an extremly high standard error on b as well as c.

So I looked into the given equation and found that b and c are both defining the base of the exponential function,

so they are to some extent interchangable and only b ̃ is needed:

 

y=a*(1-(1-0.01/b)^(x/(75*c)) )=a*(1-(1-0.01/b)^(1/c*x/75) )=a*(1-〖(1-0.01/b)^(1/c )〗^(x/75) )=a*(1-(1-1/b ̃ )^(x/75) )

 

(alternativly you could describe the whole base through b ̃, but this way I found reasonably looking values)

 

Solving this for crit and alacrity (over 10 points with values up to over 5000 each) resulted in the following values:

 

Crit:

 

a=30

b ̃=45

 

Alacrity:

 

a=30

b ̃=60

 

When checking these equations I found minor differences to the actual values,

which can be solved by rounding the base off after some decimals (falls in the range of the standard error).

Edited by nitramsanoj
Link to comment
Share on other sites

it is true that setting b=.01*a or setting b~=f(b,c) communicates the redundancy of variables. By setting c=1 i was able to get b=0.44849 to match my values. Using the values you mention (b~=45) dont seem to give matching values to my data set. I do like the elegance of b~=45, and looks close to my c=1.50344 solution.

 

Perhaps it would be helpful if we all post the points we are working with to resolve these regressions.

 

alacrity:

1725 9.63

1617 9.13

1509 8.62

 

crit:

1833

1725

1617

 

12.71

12.14

11.55

 

accuracy:

1832 10.11

1401 8.09

970 5.87

 

crit from mastery:

10614 11.55

9548 10.78

8690 10.12

 

 

defense:

285 1.76

570 3.42

855 4.99

 

shield:

431 4.34

840 8.11

1249 11.56

 

absorb:

409 4.91

818 9.34

1541 16.13

 

dmg red:

 

4782 15.06

4200 13.47

3212 10.64

 

health points:

15556 217785

14371 201188

13185 184590

 

 

theoretically we should be able to solve this with two data points for two unknowns (a and c assuming b=0.01*a, or a and b~).

 

Setting b=0.01*a (using old a values) I get for c values:

 

crit: 1.50344 a=30

alacrity: 2.0136 a=30

accuracy: 2.0181 a=30

def: 2.125 (Foyle) a=30

shield: 1.2789 (Foyle) a=50

absorb: 1.0656 a=50

crit from mastery: 8.4254 a=20

max health = 14*Endurance + 52295 (there is a - 7.72 offset that might not be real)

damage reduction = Armor_Rating/ (Armor_Rating+ 457.2399* 75 -7312.62 ) * 100

Edited by dipstik
Link to comment
Share on other sites

So in essence we are going back to expertise gear without calling it expertise stats? Will we have to then again build a PvE gear set and a PvP set again cause onslaught was supposed to customize and simplify gearing, these numbers look like tipping the scales from balanced to one side one set of gear again?

 

:(

Link to comment
Share on other sites

So in essence we are going back to expertise gear without calling it expertise stats? Will we have to then again build a PvE gear set and a PvP set again cause onslaught was supposed to customize and simplify gearing, these numbers look like tipping the scales from balanced to one side one set of gear again?

 

:(

 

how so? because of level sync?

Link to comment
Share on other sites

I don't have my set of data points here at the moment, but I'll post them tomorrow.

 

Checked your points for crit though and they fit when using 30*(1-roundoff((1-1/45);4)^(x/75) ).

Your alacrity points actually fit as well using the same just with b~=60.

Edited by nitramsanoj
Link to comment
Share on other sites

I don't have my set of data points here at the moment, but I'll post them tomorrow.

 

Checked your points for crit though and they fit when using 30*(1-roundoff((1-1/45);4)^(x/75) ).

Your alacrity points actually fit as well using the same just with b~=60.

 

it seems like b~=c*a/100 doesnt it? if not, what is the residual?

Edited by dipstik
Link to comment
Share on other sites

I'm sure you meant b~=a*c=c*b*100

 

This is actually true as an rough approximation because:

 

( 1−0.01/𝑏 )^( 1/𝑐 ) = ( 1−1/𝑏 ̃ )

⇔ ( 1−1/𝑎 )^( 1/𝑐 ) = ( 1−1/𝑏 ̃ ) with (𝑏=𝑎/100) )

⇔ 𝑏 ̃ = 1/ ( 1−( 1−1/𝑎 )^( 1/𝑐 ) ) = 1/ ( 1−exp⁡( 1/𝑐 ln( 1−1/𝑎 )) )

 

⇒𝑏 ̃≈1/ ( 1−exp⁡( −1/𝑐𝑎 ) ) with ln⁡( 1+𝑥 ) = 𝑥+𝑂( 𝑥^2 )

 

⇒𝑏 ̃≈1/ ( 1−( 1−1/𝑎𝑐 ) )=𝑎𝑐 with exp⁡( 𝑥 ) = 1+𝑥+𝑂( 𝑥^2 )

 

(mathematically not completely correct, but it works ... )

 

 

for c you get: c=ln( 1-1/a )/ln( 1-1/b~ ) or better ln( 1-1/a )/ln( rounddown(1-1/b~;4) ), because we rounded the base down before too

 

c(a=30, b~=45)~=1.5032

c(a=30, b~=60)~=2.0130

 

this lines up with your values quiet well

Edited by nitramsanoj
Link to comment
Share on other sites

Crit:

 

431 3,65

862 6,85

1.293 9,67

1.724 12,14

2.155 14,31

2.586 16,22

3.017 17,89

3.448 19,36

3.879 20,66

4.310 21,79

4.742 22,79

5.174 23,67

5.498 24,26

5.822 24,79

6.936 26,27

8.823 27,89

9.828 28,44

 

Alacrity:

 

1.294 7,56

863 5,28

432 2,77

324 2,1

216 1,42

431 2,76

862 5,27

1.293 7,55

1.724 9,62

2.155 11,5

2.586 13,2

3.017 14,75

3.448 16,16

3.879 17,43

Link to comment
Share on other sites

I'm sure you meant b~=a*c=c*b*100

 

This is actually true as an rough approximation because:

 

( 1−0.01/𝑏 )^( 1/𝑐 ) = ( 1−1/𝑏 ̃ )

⇔ ( 1−1/𝑎 )^( 1/𝑐 ) = ( 1−1/𝑏 ̃ ) with (𝑏=𝑎/100) )

⇔ 𝑏 ̃ = 1/ ( 1−( 1−1/𝑎 )^( 1/𝑐 ) ) = 1/ ( 1−exp⁡( 1/𝑐 ln( 1−1/𝑎 )) )

 

⇒𝑏 ̃≈1/ ( 1−exp⁡( −1/𝑐𝑎 ) ) with ln⁡( 1+𝑥 ) = 𝑥+𝑂( 𝑥^2 )

 

⇒𝑏 ̃≈1/ ( 1−( 1−1/𝑎𝑐 ) )=𝑎𝑐 with exp⁡( 𝑥 ) = 1+𝑥+𝑂( 𝑥^2 )

 

(mathematically not completely correct, but it works ... )

 

 

for c you get: c=ln( 1-1/a )/ln( 1-1/b~ ) or better ln( 1-1/a )/ln( rounddown(1-1/b~;4) ), because we rounded the base down before too

 

c(a=30, b~=45)~=1.5032

c(a=30, b~=60)~=2.0130

 

this lines up with your values quiet well

 

you could also use the binomial approximation (likely derived from taylor): (1+x)^a ~ 1+x*a if |x*a|<<1 and |x|<1

(1-1/a)^(1/c)=(1-1/b~) gives 1+(-1/a)*(1/c)=1-1/(a*c)=(1-1/b~) so a*c=b~

 

now that they have talked about this scaling thing they are doing, there might be something like that going on... there is likely a bunch of level sync and bolster math.

 

using nitramsanoj data is get c= 2.01546308556461 (perfectly it seems as SSE=0) for alacrity i could not find a better solution than 1.5032 ( i got 1.50571149181725 but this has a SSE of 0.005 versus 0.0001)

Edited by dipstik
Link to comment
Share on other sites

how so? because of level sync?

 

The specialization of character customization. And the change in how stat equations impact specific stats. i.e. accuracy currently is invaluable in regs, but needs some in Ranked etc. The bolster really messes with standardized stats and those who have PvPed since launch know this and just cheat the bolster system. Unless we just remove Bolster from Ranked and allow them to test in unranked zones as they have normally. But, I do not foresee this happening. PvE gear never balances with PvP bolster and most of the time requires a few pieces to be altered during play of PvP vs PvE and then there is of course the Naked Bolster... where toons go in with just their relics... just some concepts to consider when altering stat numbers...

Edited by Amunra-amunray
Link to comment
Share on other sites

I am not 100% sure but I just use the old number for say alacrity 1860 for 1.3 cooldown point and divide that number by the coefficient provided in the how it scales ie. 0.38 in this case for alacrity - the second number, the fraction in each category, I get 4895. Is this correct? so the new 1860 if nothing is changed is 4895?

 

Can do this for crit, accuracy etc.

 

Note I may be totally misunderstanding this formula too so please clarify how we are translate old figures to the appropriate new figures in the pts so far?

 

Alacrity is always broken in PvP bolster. Granted is a great resource for Raiders and the PvEers, but its seems to always be a tragedy when it meets same class buffs and PvP bolster. Not sure the math there, but Guilds are now forming class specific guilds to specialize in these same class buff mechanics that are invading the Regs space. Do not see it as much in Ranked PvP.

Link to comment
Share on other sites

are you sure this is without any set bonus stuff? i was on last night and i checked accuracy stuff:

 

970 5.87

1401 8.09

1589 9

1832 10.11

1494 8.54

1399 8.08

968 5.86

873 5.34

778 4.8

683 4.26

 

i think they did change the stats on the relics though... i wrote stuff down and it was different... but i may have wrote the wrong thing down

Edited by dipstik
Link to comment
Share on other sites

are you sure this is without any set bonus stuff? i was on last night and i checked accuracy stuff:

 

970 5.87

1401 8.09

1589 9

1832 10.11

1494 8.54

1399 8.08

968 5.86

873 5.34

778 4.8

683 4.26

 

i think they did change the stats on the relics though... i wrote stuff down and it was different... but i may have wrote the wrong thing down

 

Maybe they got or are assuming the companion 1% accuracy buff? 1725 acc gives 9.63%, which would bring it to 10.63% with the companion buff.

Link to comment
Share on other sites

b^=1-1/b~ Base of the exponential function, so

 

a*(1- (b^)^(x/75) ) = a*(1- (1-1/b~)^(x/75) ) = a*(1- (1-1/a)^(x/75/c) )

 

Defense

 

Datapoints:

 

 

652 3,88

1.304 7,26

1.956 10,21

2.398 11,98

4.712 18,98

2.269 11,48

2.582 12,67

2.895 13,79

3.208 14,83

3.521 15,81

3.834 16,72

4.147 17,58

4.552 18,6

5.230 20,13

5.908 21,46

6.586 22,6

7.264 23,6

7.927 24,44

8.575 25,15

9.223 25,78

11.646 27,48

11.246 27,25

 

 

a = 30

b~ = 63.22

b^ = 0.984 18

c = 2.126

 

Shield

 

Datapoints:

 

 

431 4,34

862 8,300000000000001

1.293 11,92

2.156 18,25

3.724 27,18

1.724 15,22

2.155 18,24

2.586 21

3.017 23,51

3.448 25,81

3.879 27,91

4.310 29,83

5.173 33,18

5.713 34,99

6.253 36,6

6.793 38,04

8.361 41,41

7.530 39,76

 

 

a = 50

b~ = 63,81

b^ = 0.984 33

c = 1.279

 

Absorption

 

Datapoints:

 

 

431 5,16

862 9,789999999999999

1.293 13,94

2.016 19,96

3.584 29,79

1.724 17,66

2.155 20,99

2.586 23,99

3.017 26,67

3.448 29,08

3.879 31,24

4.310 33,17

5.033 35,98

5.573 37,77

6.113 39,33

6.653 40,69

8.221 43,74

7.390 42,27

 

 

a = 50

b~ = 53.27

b^ = 0.981 23

c = 1.066

 

 

 

Also looked into crit and alacrity again:

 

Crit

 

Same Datapoints as before

 

a = 30

b~ = 44.84

b^ = 0.977 70

c = 1.503

 

Alacrity

 

Same Datapoints as before

 

a = 30

b~ = 59.95

b^ = 0.983 32

c = 2.015

 

 

Didn't validate those numbers yet though

Edited by nitramsanoj
Link to comment
Share on other sites

See 7:31 post about how it impacts bolster. Expertise is strictly a stat math derivative and bolster is only good if you gear like a PvEer, but if you gear like a pvper, accuracy is hardly used in REGs and Ranked still uses 100% not even 110% additionally the cross stating of Tanks and Healers to dps makes these classes overpowered especially in teams with similar classes, i.e, two sorcs and two juggs on one team or MERCs omg an all MERC team is invincible, test it yourself... if you do not PvP then you may not see it until its in action.

And, no matter how much you think Juggs and Guardians are the hero of the game. That is not the Star Wars way. Balance is the Star wars way even on the dark side. While they try to tip the balance to benefit them in the end the story still says, BALANCE and that means amongst all classes not just the SERVER or Dev favorites.

 

The specialization of character customization. And the change in how stat equations impact specific stats. i.e. accuracy currently is invaluable in regs, but needs some in Ranked etc. The bolster really messes with standardized stats and those who have PvPed since launch know this and just cheat the bolster system. Unless we just remove Bolster from Ranked and allow them to test in unranked zones as they have normally. But, I do not foresee this happening. PvE gear never balances with PvP bolster and most of the time requires a few pieces to be altered during play of PvP vs PvE and then there is of course the Naked Bolster... where toons go in with just their relics... just some concepts to consider when altering stat numbers...
Link to comment
Share on other sites

  • 2 weeks later...
×
×
  • Create New...