Jump to content

Apologizes to the Assault Mando/IO Merc community


Ryuku-sama

Recommended Posts

Thanks for sharing your spreadsheet. By comparison, I found a couple small issues with my simulator that I was able to fix.

 

I didn't fully deconstruct your spreadsheet and I'm going off memory but, a few things I noticed:

  • On the Parse tab, column "C" appears to be omitted from the row summation.
  • On the abilities damage tab, the crit chance appears mixed. Some use the "with relic" and some do not.
  • The dubuffs are multiplied instead of added. It is my understanding that you sum all percent modifiers prior to multiplication. It doesn't have a big impact though.
  • In another thread, TACeMoisse noted the dummy armor was now 15200, 35%, which is 8185. I'm not sure where he got it, but that's what I'm using.

I checked the ability coefficients and they match what I'm using. I got mine for Merc's which should be the same. Swtor_potato seems to have removed the lists he had posted. I think the offhand damage is managed with the min/max on the barrels so it should still be good.

Link to comment
Share on other sites

  • Replies 81
  • Created
  • Last Reply

Top Posters In This Topic

Thanks for sharing your spreadsheet. By comparison, I found a couple small issues with my simulator that I was able to fix.

 

I didn't fully deconstruct your spreadsheet and I'm going off memory but, a few things I noticed:

  • On the Parse tab, column "C" appears to be omitted from the row summation.
  • On the abilities damage tab, the crit chance appears mixed. Some use the "with relic" and some do not.
  • The dubuffs are multiplied instead of added. It is my understanding that you sum all percent modifiers prior to multiplication. It doesn't have a big impact though.
  • In another thread, TACeMoisse noted the dummy armor was now 15200, 35%, which is 8185. I'm not sure where he got it, but that's what I'm using.

I checked the ability coefficients and they match what I'm using. I got mine for Merc's which should be the same. Swtor_potato seems to have removed the lists he had posted. I think the offhand damage is managed with the min/max on the barrels so it should still be good.

 

That armor rating was an incorrect assumption I used till we actually figured out the new amount. It is now 8829 armor, which is about a 37% reduction

 

The formula for reduction @ 60 is:

 

Armor / ( Armor + 15200)

Edited by TACeMossie
Link to comment
Share on other sites

  • On the Parse tab, column "C" appears to be omitted from the row summation.
  • On the abilities damage tab, the crit chance appears mixed. Some use the "with relic" and some do not.
  • The dubuffs are multiplied instead of added. It is my understanding that you sum all percent modifiers prior to multiplication. It doesn't have a big impact though.

 

Dumb... Yeah. I forgot to add C which was about 250 DPS.. Dumb.. Dumb.. Dumb... I am dumb.

 

Dumb... Tech abilities use the no relics... Dumb.. Dumb.

 

Some are multiplicative to others and some are additive... It's much more of a mess than all are additive or all are multiplicative.

Link to comment
Share on other sites

That armor rating was an incorrect assumption I used till we actually figured out the new amount. It is now 8829 armor, which is about a 37% reduction

 

The formula for reduction @ 60 is:

 

Armor / ( Armor + 15200)

 

Thanks for the update! I'll modify my formulas to match.

 

 

Some are multiplicative to others and some are additive... It's much more of a mess than all are additive or all are multiplicative.

 

I've wondered about that and haven't found any details on it. I was able to verify percent modifiers in the discipline tree are all additive and was able to get tool tips to match exactly. Fortunately, that's where most of the big modifiers are so the other buffs won't affect the end result much whether they get added or multiplied.

Link to comment
Share on other sites

Hi and thank you for this spreadsheets , I maybe wrong but in the opening you consider that MagShot is free but it's only for the burning targets, isn't it ?

 

Free Mag is happeneing when you pro IPA/IA. I just use the AoE which name I can't remember to proc it.. The first one will be free and the second one will regen 5 heat since the target will be under Plasma Cell Burn from the first one.

Link to comment
Share on other sites

  • 1 month later...
Shameless bump, did you manage to get hold of the coefficients?

 

No idea if he did, but now its easy. Just head over to reddit, look up swtor_potato, and he's got a nice datamined 3.1.2 PTS thread. Open the one called "Class, Codex and Conversation" changes, and at the top there is a file called "XML/PTS/swtor_bounty_hunter_discTrees.xml"

 

Click view, and its a list of every bounty hunter abilities energy costs, cooldowns + coefficients. Use that.

 

If you don't want to do it that way, the other option (which is more complicated) includes lots of maths and time (for anyone interested in learning how to do it, heres a long post I made before I reread what Zoltan said and felt like an idiot).

 

Ill assume a merc, which is more frustrating.

 

RANGED ABILITY:

 

Tooltip damage = (Mainhand Damage + 0.3 * Offhand Damage) * (Ranged Coefficient + 1) + (Coefficient * Ranged Bonus Damage) + (Base Damage Multiplier * Base Damage)

 

Base Damage (or Standard Health) is 3185 at level 60.

 

You start by pulling out the mainhand + offhand.

 

Say the mainhand is a barrel with 600-1000 damage and the offhand is a 660-1100 damage barrel. Overall, the contribution of the 2 would be 798-1330 damage, so depending on the range of the ability would depend on the multiplier.

 

E.g. Rail Shot would do 1045-1742 damage before accounting for bonus damage + base damage, so simply by figuring out the range (1742-1045 = 697), you can compare it to the normal range (1330-798 = 532), and see that it is 31% larger - making the ranged Coefficient 0.31

 

After that, the next process is the same for both ranged and tech attacks. You take the average damage that is left after accounting for the ranged damage (e.g. removing 1045-1742 from Rail Shot, or with a tech attack it is min damage / 2 + max damage / 2), and unless the attack is auto-attack the remaining value will be Coefficient * (Power + (Base Damage / 10))

 

If you want to get really fancy, you can figure out the multipliers for the damage range on a tech as a last step. Lets use an imaginary tech attack that has a coefficient of 1.25 and a range of 2500-2796, with a tech power bonus of 1800.

 

With this range, we can see that 2250 of the damage comes from the tech damage, leaving 250-546 damage as the result of the coefficient for base damage. Base damage is 3185, so the min + max values would be (250/3185) and (546/3185), which means its min and max values are 0.0785 and 0.1715

 

And there's everything you need to know about how to get coefficients... Assuming the ability was trained last at level 60. Unfortunately, this isn't always the case, and sometimes you have to do more work by modifying the amount of power in your gear to find out the skills base damage based on when it was last trained. Its only 3185 if it was last trained at level 60.

Edited by TACeMossie
Link to comment
Share on other sites

Anyway, here's the coefficients:

 

Rapid Shots

Attack 1: Coefficient 0.2, Multiplier -0.8

Attack 2: Coefficient 0.2, Multiplier -0.8

Attack 3: Coefficient 0.2, Multiplier -0.8

Attack 4: Coefficient 0.2, Multiplier -0.8

Attack 5: Coefficient 0.2, Multiplier -0.8

 

Offhand Attack 1: Coefficient 0, Multiplier -0.8

Offhand Attack 2: Coefficient 0, Multiplier -0.8

Offhand Attack 3: Coefficient 0, Multiplier -0.8

Offhand Attack 4: Coefficient 0, Multiplier -0.8

Offhand Attack 5: Coefficient 0, Multiplier -0.8

 

Mag Shot

 

Attack: Coefficient 2.47, Multiplier 0.65

Offhand Attack: Coefficient 0, Multiplier 0.65

 

Power Shot

 

Attack: Coefficient 1.42, Multiplier -0.05

Offhand Attack: Coefficient 0, Multiplier -0.05

 

Unload (I think something is wrong with this, shouldn't it hit 8 times?)

 

Attack 1: Coefficient 1.0475, Multiplier -0.3

Attack 2 (Offhand): Coefficient 0, Multiplier -0.3

Attack 3: Coefficient 1.0475, Multiplier -0.3

 

Incendiary Missile

 

Attack 1: Tech Attack, Coefficient 0.41, Base Damage 0.021-0.061

Attack 2: Burn (5 ticks), Coefficient 0.34, Base Damage 0.034

 

Serrated Shot

 

Attack 1: Ranged Attack, Coefficient 0.7, Multiplier -0.53

Attack 2: Offhand Attack, Coefficient 0, Multiplier -0.53

 

Attack 3: Bleed (5 ticks), Coefficient 0.4, Base Damage 0.04

 

Thermal Detonator

 

Tech Attack, Coefficient 2.48, Base Damage 0.228-0.268

 

Missile Blast

 

Initial Hit: Tech Attack, Coefficient 1.31, Base Damage 0.111-0.151

AoE Splash: Tech Attack, Coefficient 0.655, Base Damage 0.0455 - 0.0855

 

Electro Net

 

Initial Damage: Tech Attack, Coefficient 0.3, Base Damage 0.03

 

Supercharge

 

Initial Damage: Tech Attack, Coefficient 0.5, Base Damage 0 (See, its an exception to the rule!). Hits 6 times.

Link to comment
Share on other sites

No idea if he did, but now its easy. Just head over to reddit, look up swtor_potato, and he's got a nice datamined 3.1.2 PTS thread. Open the one called "Class, Codex and Conversation" changes, and at the top there is a file called "XML/PTS/swtor_bounty_hunter_discTrees.xml".

 

Thanks that's what I was looking for.

Link to comment
Share on other sites

Thank you so much TACe!!!!!

But I'm currently working on coding something to get a better simulation for relics and SCC. I'm also working on a Rage simulator too.... But with scholl taking some time I work rather slowly... And with the change on PTS right now, I'm sure the optimal amount of crit will go down to maybe 400.. Far from the current 600...

Link to comment
Share on other sites

Excuse my ignorance, but I find this whole conversation over my head. I am remembering why I didn't focus in computer programing when I was in college. Regardless though, I wish the OP and everyone giving feedback luck with the project. Sometimes great things can come from unexpected results.
Link to comment
Share on other sites

Alright, this time I think it's bug free.

I only used a simple 15second rotation for my model.

Things I left out:

 

SCG, EN, Relic, Execute

 

Things I used:

 

2 MS, 2 PS, 1 IM, 1 SS, 1 TD, 1 RS, 1 UL, 8 CGC

 

 

I used crit by 40 incremental, what I got:

  • 1st: 520
  • 2nd: 480
  • Difference in damage: 2,884984962

SCB, EN doesn't have surge bonus though, and execute phase further emphasizes the surge bonus-less DoTs, so BiS crit should be around 450.

Edited by cs_zoltan
Link to comment
Share on other sites

I wrote a C++ program to simultaneously get BiS crit, alacrity, and surge while also being able to easily change augments.

 

Here's the code, some doublechecking would be nice from other people :) (overall dps looks low, even for post nerf values)

Just make a new consol project in c++ and copy paste this:

 

#include <iostream>

#include <math.h>

 

using namespace std;

 

struct maximum {

double total;

int i,j;

};

 

int main()

{

double mainstat = 2880 + 550 + 198 + 50; //gear, base, stim, datacron, cunning, cunning data

double secondarystat = (116 + 50) * 1.05;

double mainstatcrit = 0;

double power = 2364;

double augment = 676;

double critrating = 0;

double critper = 0;

double surgerating = 480;

double surgeper = 0;

double alacrityrating = 0;

double alacrityper = 0;

 

double relic_upt = 0;

 

double weapondamage = 871.5;

double BD = 0;

double TBD = 0;

 

 

//Mag Shot

 

double ms = 0;

 

double ms_cv = 2.47;

double ms_sth = 3185 * 0.247;

double ms_mody = 0.65;

 

double mso = 0;

 

double mso_cv = 0;

double mso_sth = 3185 * 0;

double mso_mody = 0.65;

 

//Rapid Shots

 

double rs = 0;

 

double rs_cv = 0.2;

double rs_sth= 3185 * 0;

double rs_mody = -0.8;

 

double rso = 0;

 

double rso_cv = 0;

double rso_sth= 3185 * 0;

double rso_mody = -0.8;

 

//Power Shot

 

double ps = 0;

 

double ps_cv = 1.42;

double ps_sth= 3185 * 0.142;

double ps_mody = -0.05;

 

double pso = 0;

 

double pso_cv = 0;

double pso_sth= 3185 * 0;

double pso_mody = -0.05;

 

//Unload

 

double ul = 0;

 

double ul_cv = 1.0475;

double ul_sth= 3185 * 0.10475;

double ul_mody = -0.3;

 

double ulo = 0;

 

double ulo_cv = 0;

double ulo_sth= 3185 * 0;

double ulo_mody = -0.3;

 

//Serrated Shot

 

double ss = 0;

 

double ss_cv = 0.7;

double ss_sth= 3185 * 0.07;

double ss_mody = -0.53;

 

double sso = 0;

 

double sso_cv = 0;

double sso_sth= 3185 * 0;

double sso_mody = -0.53;

 

double ssd = 0;

 

double ssd_cv = 0.4;

double ssd_sth= 3185 * 0.04;

 

//IM

 

double im = 0;

 

double im_cv = 0.41;

double im_sth= 3185 * 0.041;

 

double imd = 0;

 

double imd_cv = 0.34;

double imd_sth= 3185 * 0.034;

 

//CGC

 

double cgc = 0;

 

double cgc_cv = 0.1715;

double cgc_sth= 3185 * 0.01715;

 

// TD

 

double td = 0;

 

double td_cv = 2.48;

double td_sth= 3185 * 0.248;

 

//MB

 

double mb = 0;

 

double mb_cv = 1.31;

double mb_sth= 3185 * 0.131;

 

//SCB

 

double scb = 0;

 

double scb_cv = 0.5;

double scb_sth= 3185 * 0;

 

//EN

 

double en = 0;

double ent = 0;

 

double en_cv = 0.3;

double en_sth= 3185 * 0.03;

 

//Here you can change hard coded augments-----

mainstat += augment;

power += 0;

//--------------------------------------------

 

double ent_upt = 15.0/90.0;

double scg_cd_ne = 10.0/((3.0-ent_upt)/15.0);

double scg_cd_e = 10.0/((2.0-ent_upt)/15.0);

double scg_upt_ne = 10.0/scg_cd_ne;

double scg_upt_e = 10/scg_cd_e;

double scb_upt_ne = 15.0/scg_cd_ne;

double scb_upt_e = 15.0/scg_cd_e;

 

 

 

double armor=8829;

double armor1=(armor*0.8)/(armor*0.8+15200);

double armor2=(armor*0.8*0.7)/(armor*0,8*0,7+15200);

double armor3=(armor*0.8*0.4)/(armor*0.8*0.4+15200);

 

double techcrit = 14 + 20 * ( 1 - pow( ( 1 - ( 0.01 / 0.2 ) ),( ( secondarystat / 60) / 5.5 ) ));

double rangedcrit = 16;

 

double total = 0;

double total_ne = 0;

double total_e = 0;

 

maximum t[48*58];

int k=0,max=0;

//---------------------------------MAINSTAT AUGS----------------------------------

for (int i=0; i<=480; i+=120){

surgeper=30 * (1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( surgerating / 60) / 0.22 ) ));

alacrityper=30 * (1 - pow(( 1 - ( 0.01 / 0.3 ) ),( ( alacrityrating / 60) / 1.25 ) )) + (6.0/90.0) * 10;

for (int j=0; j<=550; j+=10){

critper = 30 * ( 1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( critrating / 60 ) / 0.9 ) ));

relic_upt = 6.0 / ( 23.0 / (alacrityper / 100.0));

 

mainstatcrit = 20 * ( 1 - pow( ( 1 - ( 0.01 / 0.2 ) ),( ( ( ( mainstat + relic_upt * 890 ) * 1.05 ) / 60) / 5.5 ) ));

 

BD = ((mainstat+relic_upt*890) * 1.05 * 0.2 + (power + relic_upt * 890 ) * 0.23)*1,05;

TBD = ((mainstat+relic_upt*890) * 1.05 * 0.2 + secondarystat*0.2 + (power + relic_upt * 890 + 2790) * 0.23)*1,05;

 

ms = ( ms_cv * BD + ms_sth + (1+ms_mody) * weapondamage ) * (1+(((100 + 7*(mainstatcrit+critper+rangedcrit) )/800)*((61+surgeper+30)/100)))*(1-armor3)*1.05;

mso = ( mso_cv * BD + mso_sth + (1+mso_mody) * weapondamage * 0.3 ) * (1+(((100 + 7*(mainstatcrit+critper+rangedcrit) )/800)*((61+surgeper+30)/100)))*(1-armor3)*1.05*0.67;

 

rs = ( rs_cv * BD + rs_sth + (1+rs_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.9;

rso = ( rs_cv * BD + rs_sth + (1+rso_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.57;

 

ps = ( ps_cv * BD + ps_sth + (1+ps_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

pso = ( pso_cv * BD + pso_sth + (1+pso_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05*0.67;

 

ul = ( ul_cv * BD + ul_sth + (1+ul_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05;

ulo = ( ulo_cv * BD + ulo_sth + (1+ulo_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05*0.67;

 

ss = ( ss_cv * BD + ss_sth + (1+ss_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05;

sso = ( sso_cv * BD + sso_sth + (1+sso_mody) * weapondamage * 0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.67;

ssd = ( ssd_cv * TBD + ssd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05;

 

im = ( im_cv * TBD + im_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+(0.05+0.05));

imd = ( imd_cv * TBD + imd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+(0.05+0.05));

 

cgc = ( cgc_cv * TBD + cgc_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+(0.05+0.05+0.3));

 

td = ( td_cv * TBD + td_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

 

mb = ( mb_cv * TBD + mb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*(1-armor1)*(1+(0.05+0.75+0.1));

 

scb = ( scb_cv * TBD + scb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+0.1)*(1+(0.05+0.05));

 

en = ( en_cv * TBD + en_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05;

ent = en + en*1.2 + en*1.2*1.2 + en*1.2*1.2*1.2 + (en*1.2*1.2*1.2*1.2)*6;

 

total_ne = ((ms*2 + mso*2 + ul*4 + ulo*4 + ss + sso + ssd*5*(1+scg_upt_ne*0.1) + im + imd*5*(1+scg_upt_ne*0.1) + cgc*8*(1+scg_upt_ne*0.1) + td + ent *ent_upt*(1+scg_upt_ne*0.1) + scb*scb_upt_ne + rs *(1-ent_upt) + rso *(1-ent_upt) + ps*2 + pso*2 )/15)*(1+(alacrityper/100));

total_e = ((ms*2 + mso*2 + ul*4 + ulo*4 + ss + sso + ssd*5*1.3*(1+scg_upt_e*0.1) + im + imd*5*1.3*(1+scg_upt_e*0.1) + cgc*8*1.3*(1+scg_upt_e*0.1) + td + mb + ent *ent_upt*1.3*(1+scg_upt_e*0.1) + scb*scb_upt_e*1.3 + rs *(1-ent_upt) + rso *(1-ent_upt) + ps + pso )/15)*(1+(alacrityper/100));

 

total = (10.0 / ( ( 7.0 / total_ne ) + ( 3.0 / total_e ) ))*1.01 *1.005;

 

t[k].total=total;

t[k].i=i;

t[k].j=j;

k++;

 

 

critrating+=10;

power-=10;

}

power = 2364;

critrating = 0;

surgerating-=120;

alacrityrating+=120;

}

surgerating = 480;

alacrityrating = 0;

 

for (int i=1;i<k;i++){

if (t.total>t[max].total)

max=i;

}

cout<<"mainstat:"<<endl;

cout<<"total: "<<t[max].total<<", crit: "<<critrating+t[max].j<<", surge: "<<surgerating-t[max].i<<", alacrity: "<<alacrityrating+t[max].i<<endl<<endl;

 

 

//-----------------------POWER AUGS------------------------------

mainstat -=augment;

power += augment;

 

k=0;

for (int i=0; i<=480; i+=120){

surgeper=30 * (1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( surgerating / 60) / 0.22 ) ));

alacrityper=30 * (1 - pow(( 1 - ( 0.01 / 0.3 ) ),( ( alacrityrating / 60) / 1.25 ) )) + (6.0/90.0) * 10 ;

for (int j=0; j<=550; j+=10){

critper = 30 * ( 1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( critrating / 60 ) / 0.9 ) ));

relic_upt = 6.0 / ( 23.0 / (alacrityper / 100.0));

 

mainstatcrit = 20 * ( 1 - pow( ( 1 - ( 0.01 / 0.2 ) ),( ( ( ( mainstat + relic_upt * 890 ) * 1.05 ) / 60) / 5.5 ) ));

 

BD = ((mainstat+relic_upt*890) * 1.05 * 0.2 + (power + relic_upt * 890 ) * 0.23)*1,05;

TBD = ((mainstat+relic_upt*890) * 1.05 * 0.2 + secondarystat*0.2 + (power + relic_upt * 890 + 2790) * 0.23)*1,05;

 

ms = ( ms_cv * BD + ms_sth + (1+ms_mody) * weapondamage ) * (1+(((100 + 7*(mainstatcrit+critper+rangedcrit) )/800)*((61+surgeper+30)/100)))*(1-armor3)*1.05;

mso = ( mso_cv * BD + mso_sth + (1+mso_mody) * weapondamage * 0.3 ) * (1+(((100 + 7*(mainstatcrit+critper+rangedcrit) )/800)*((61+surgeper+30)/100)))*(1-armor3)*1.05*0.67;

 

rs = ( rs_cv * BD + rs_sth + (1+rs_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.9;

rso = ( rs_cv * BD + rs_sth + (1+rso_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.57;

 

ps = ( ps_cv * BD + ps_sth + (1+ps_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

pso = ( pso_cv * BD + pso_sth + (1+pso_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05*0.67;

 

ul = ( ul_cv * BD + ul_sth + (1+ul_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05;

ulo = ( ulo_cv * BD + ulo_sth + (1+ulo_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05*0.67;

 

ss = ( ss_cv * BD + ss_sth + (1+ss_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05;

sso = ( sso_cv * BD + sso_sth + (1+sso_mody) * weapondamage * 0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.67;

ssd = ( ssd_cv * TBD + ssd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05;

 

im = ( im_cv * TBD + im_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+(0.05+0.05));

imd = ( imd_cv * TBD + imd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+(0.05+0.05));

 

cgc = ( cgc_cv * TBD + cgc_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+(0.05+0.05+0.3));

 

td = ( td_cv * TBD + td_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

 

mb = ( mb_cv * TBD + mb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*(1-armor1)*(1+(0.05+0.75+0.1));

 

scb = ( scb_cv * TBD + scb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*(1+0.1)*(1+(0.05+0.05));

 

en = ( en_cv * TBD + en_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05;

ent = en + en*1.2 + en*1.2*1.2 + en*1.2*1.2*1.2 + (en*1.2*1.2*1.2*1.2)*6;

 

total_ne = ((ms*2 + mso*2 + ul*4 + ulo*4 + ss + sso + ssd*5*(1+scg_upt_ne*0.1) + im + imd*5*(1+scg_upt_ne*0.1) + cgc*8*(1+scg_upt_ne*0.1) + td + ent *ent_upt*(1+scg_upt_ne*0.1) + scb*scb_upt_ne + rs *(1-ent_upt) + rso *(1-ent_upt) + ps*2 + pso*2 )/15)*(1+(alacrityper/100));

total_e = ((ms*2 + mso*2 + ul*4 + ulo*4 + ss + sso + ssd*5*1.3*(1+scg_upt_e*0.1) + im + imd*5*1.3*(1+scg_upt_e*0.1) + cgc*8*1.3*(1+scg_upt_e*0.1) + td + mb + ent *ent_upt*1.3*(1+scg_upt_e*0.1) + scb*scb_upt_e*1.3 + rs *(1-ent_upt) + rso *(1-ent_upt) + ps + pso )/15)*(1+(alacrityper/100));

 

total = (10.0 / ( ( 7.0 / total_ne ) + ( 3.0 / total_e ) ))*1.01 *1.005;

 

t[k].total=total;

t[k].i=i;

t[k].j=j;

k++;

 

 

critrating+=10;

power-=10;

}

power = 2364+augment;

critrating = 0;

surgerating-=120;

alacrityrating+=120;

}

surgerating = 480;

alacrityrating = 0;

 

for (int i=1;i<k;i++){

if (t.total>t[max].total)

max=i;

}

cout<<"power:"<<endl;

cout<<"total: "<<t[max].total<<", crit: "<<critrating+t[max].j<<", surge: "<<surgerating-t[max].i<<", alacrity: "<<alacrityrating+t[max].i<<endl<<endl;

}

 

Edited by cs_zoltan
Link to comment
Share on other sites

I wrote a C++ program to simultaneously get BiS crit, alacrity, and surge while also being able to easily change augments.

 

Here's the code, some doublechecking would be nice from other people :) (overall dps looks low, even for post nerf values)

Just make a new consol project in c++ and copy paste this:

 

#include <iostream>

#include <math.h>

 

using namespace std;

 

struct maximum {

double total;

int i,j;

};

 

int main()

{

double mainstat = 2880 + 550 + 198;

double mainstatcrit = 0;

int power = 2364;

int augment = 676;

int critrating = 0;

double critper = 0;

int surgerating = 480;

double surgeper = 0;

int alacrityrating = 0;

double alacrityper = 0;

 

double weapondamage = 871.5;

double BD = 0;

double TBD = 0;

 

 

//Mag Shot

 

double ms = 0;

 

double ms_cv = 2.47;

double ms_sth = 3185 * 0.247;

double ms_mody = 0.65;

 

double mso = 0;

 

double mso_cv = 0;

double mso_sth = 3185 * 0;

double mso_mody = 0.65;

 

//Rapid Shots

 

double rs = 0;

 

double rs_cv = 0.2;

double rs_sth= 3185 * 0;

double rs_mody = -0.8;

 

double rso = 0;

 

double rso_cv = 0;

double rso_sth= 3185 * 0;

double rso_mody = -0.8;

 

//Power Shot

 

double ps = 0;

 

double ps_cv = 1.42;

double ps_sth= 3185 * 0.142;

double ps_mody = -0.05;

 

double pso = 0;

 

double pso_cv = 0;

double pso_sth= 3185 * 0;

double pso_mody = -0.05;

 

//Unload

 

double ul = 0;

 

double ul_cv = 1.0475;

double ul_sth= 3185 * 0.10475;

double ul_mody = -0.3;

 

double ulo = 0;

 

double ulo_cv = 0;

double ulo_sth= 3185 * 0;

double ulo_mody = -0.3;

 

//Serrated Shot

 

double ss = 0;

 

double ss_cv = 0.7;

double ss_sth= 3185 * 0.07;

double ss_mody = -0.53;

 

double sso = 0;

 

double sso_cv = 0;

double sso_sth= 3185 * 0;

double sso_mody = -0.53;

 

double ssd = 0;

 

double ssd_cv = 0.4;

double ssd_sth= 3185 * 0.04;

 

//IM

 

double im = 0;

 

double im_cv = 0.41;

double im_sth= 3185 * 0.041;

 

double imd = 0;

 

double imd_cv = 0.34;

double imd_sth= 3185 * 0.034;

 

//CGC

 

double cgc = 0;

 

double cgc_cv = 0.1715;

double cgc_sth= 3185 * 0.01715;

 

// TD

 

double td = 0;

 

double td_cv = 2.48;

double td_sth= 3185 * 0.248;

 

//MB

 

double mb = 0;

 

double mb_cv = 1.31;

double mb_sth= 3185 * 0.131;

 

//SCB

 

double scb = 0;

 

double scb_cv = 0.5;

double scb_sth= 3185 * 0;

 

//EN

 

double en = 0;

double ent = 0;

 

double en_cv = 0.3;

double en_sth= 3185 * 0.03;

 

//Here you can change hard coded augments-----

mainstat += 0;

power += augment;

alacrityrating += 0;

 

mainstat *=1,05;

mainstatcrit = 20 * (1 - pow( ( 1 - ( 0.01 / 0.2 ) ),( ( mainstat / 60) / 5.5 ) ));

 

double scg_upt = 0.19405;

double execute_upt = 0.25;

//-----------------

 

double armor=8829;

double armor1=(armor*0.8)/(armor*0.8+15200);

double armor2=(armor*0.8*0.7)/(armor*0,8*0,7+15200);

double armor3=(armor*0.8*0.7*0.7)/(armor*0.8*0.7*0.7+15200);

 

int techcrit = 14;

int rangedcrit = 16;

 

double total = 0;

 

maximum t[48*58];

int k=0,max=0;

 

for (int i=0; i<=480; i+=10){

surgeper=30 * (1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( surgerating / 60) / 0.22 ) ));

alacrityper=30 * (1 - pow(( 1 - ( 0.01 / 0.3 ) ),( ( alacrityrating / 60) / 1.25 ) )) ;

for (int j=0; j<=550; j+=10){

critper = 30 * ( 1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( critrating / 60 ) / 0.9 ) ));

 

BD = (mainstat * 0.2 + power * 0.23)*1,05;

TBD = (mainstat * 0.2 + (power + 2790) * 0.23)*1,05;

 

ms = ( ms_cv * BD + ms_sth + (1+ms_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor3)*1.05;

mso = ( mso_cv * BD + mso_sth + (1+mso_mody) * weapondamage * 0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor3)*1.05*0.67;

 

rs = ( rs_cv * BD + rs_sth + (1+rs_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.9;

rso = ( rs_cv * BD + rs_sth + (1+rs_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.57;

 

ps = ( ps_cv * BD + ps_sth + (1+ps_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

pso = ( pso_cv * BD + pso_sth + (1+pso_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05*0.67;

 

ul = ( ul_cv * BD + ul_sth + (1+ul_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05;

ulo = ( ulo_cv * BD + ulo_sth + (1+ulo_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05*0.67;

 

ss = ( ss_cv * BD + ss_sth + (1+ss_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05;

sso = ( sso_cv * BD + sso_sth + (1+sso_mody) * weapondamage * 0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.67;

ssd = ( ssd_cv * TBD + ssd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05;

 

im = ( im_cv * TBD + im_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05;

imd = ( imd_cv * TBD + imd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+scg_upt*0.1)*(1+execute_upt*0.3);

 

cgc = ( cgc_cv * TBD + cgc_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+scg_upt*0.1)*(1+execute_upt*0.3);

 

td = ( td_cv * TBD + td_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

 

mb = ( mb_cv * TBD + mb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*1.75;

 

scb = ( scb_cv * TBD + scb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+0.1)*(1+execute_upt*0.3);

 

en = ( en_cv * TBD + en_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+scg_upt*0.1)*(1+execute_upt*0.3);

ent = en + en*1.2 + en*1.2*1.2 + en*1.2*1.2*1.2 + en*1.2*1.2*1.2*1.2;

 

total = ((ms*2 + mso*2 + ul*4 + ulo*4 + ss + sso + ssd*5 + im + imd*5 + cgc*8 + td + mb * (7/24) + ent *0.1235 + scb*scg_upt + rs *(1-0.1235) + rso *(1-0.1235) + ps * (1+(17/24)) + pso * (1+(17/24)) )/15)*(1+(alacrityper/100));

 

t[k].total=total;

t[k].i=i;

t[k].j=j;

k++;

 

critrating+=10;

power-=10;

}

power = 2364+augment; //AUGMENT

critrating = 0;

surgerating-=10;

alacrityrating+=10;

}

surgerating = 480;

alacrityrating = 0; //AUGMENT

 

for (int i=1;i<k;i++){

if (t.total>t[max].total)

max=i;

}

cout<<"total: "<<t[max].total<<", crit: "<<critrating+t[max].j<<", surge: "<<surgerating-t[max].i<<", alacrity: "<<alacrityrating+t[max].i<<endl<<endl;

 

 

 

//Rounding to enhancement values

for (int i=1;i<k;i++){

if (t.i==240 and t.j==420)

cout<<"total: "<<t.total<<", crit: "<<critrating+t.j<<", surge: "<<surgerating-t.i<<", alacrity: "<<alacrityrating+t.i<<endl<<endl;

}

 

for (int i=1;i<k;i++){

if (t.i==360 and t.j==420)

cout<<"total: "<<t.total<<", crit: "<<critrating+t.j<<", surge: "<<surgerating-t.i<<", alacrity: "<<alacrityrating+t.i;

}

cin.get();

}

 

 

Result for BiS gear:

  • 13 power augments, 1 accuracy augment.
  • 420 crit
  • 240 surge
  • 240 alacrity

 

How easy would it be to change this for Arsenal? Or would Arsenal use the same or similar stats?

Link to comment
Share on other sites

I wrote a C++ program to simultaneously get BiS crit, alacrity, and surge while also being able to easily change augments.

 

Here's the code, some doublechecking would be nice from other people :) (overall dps looks low, even for post nerf values)

Just make a new consol project in c++ and copy paste this:

 

#include <iostream>

#include <math.h>

 

using namespace std;

 

struct maximum {

double total;

int i,j;

};

 

int main()

{

double mainstat = 2880 + 550 + 198;

double mainstatcrit = 0;

int power = 2364;

int augment = 676;

int critrating = 0;

double critper = 0;

int surgerating = 480;

double surgeper = 0;

int alacrityrating = 0;

double alacrityper = 0;

 

double weapondamage = 871.5;

double BD = 0;

double TBD = 0;

 

 

//Mag Shot

 

double ms = 0;

 

double ms_cv = 2.47;

double ms_sth = 3185 * 0.247;

double ms_mody = 0.65;

 

double mso = 0;

 

double mso_cv = 0;

double mso_sth = 3185 * 0;

double mso_mody = 0.65;

 

//Rapid Shots

 

double rs = 0;

 

double rs_cv = 0.2;

double rs_sth= 3185 * 0;

double rs_mody = -0.8;

 

double rso = 0;

 

double rso_cv = 0;

double rso_sth= 3185 * 0;

double rso_mody = -0.8;

 

//Power Shot

 

double ps = 0;

 

double ps_cv = 1.42;

double ps_sth= 3185 * 0.142;

double ps_mody = -0.05;

 

double pso = 0;

 

double pso_cv = 0;

double pso_sth= 3185 * 0;

double pso_mody = -0.05;

 

//Unload

 

double ul = 0;

 

double ul_cv = 1.0475;

double ul_sth= 3185 * 0.10475;

double ul_mody = -0.3;

 

double ulo = 0;

 

double ulo_cv = 0;

double ulo_sth= 3185 * 0;

double ulo_mody = -0.3;

 

//Serrated Shot

 

double ss = 0;

 

double ss_cv = 0.7;

double ss_sth= 3185 * 0.07;

double ss_mody = -0.53;

 

double sso = 0;

 

double sso_cv = 0;

double sso_sth= 3185 * 0;

double sso_mody = -0.53;

 

double ssd = 0;

 

double ssd_cv = 0.4;

double ssd_sth= 3185 * 0.04;

 

//IM

 

double im = 0;

 

double im_cv = 0.41;

double im_sth= 3185 * 0.041;

 

double imd = 0;

 

double imd_cv = 0.34;

double imd_sth= 3185 * 0.034;

 

//CGC

 

double cgc = 0;

 

double cgc_cv = 0.1715;

double cgc_sth= 3185 * 0.01715;

 

// TD

 

double td = 0;

 

double td_cv = 2.48;

double td_sth= 3185 * 0.248;

 

//MB

 

double mb = 0;

 

double mb_cv = 1.31;

double mb_sth= 3185 * 0.131;

 

//SCB

 

double scb = 0;

 

double scb_cv = 0.5;

double scb_sth= 3185 * 0;

 

//EN

 

double en = 0;

double ent = 0;

 

double en_cv = 0.3;

double en_sth= 3185 * 0.03;

 

//Here you can change hard coded augments-----

mainstat += 0;

power += augment;

alacrityrating += 0;

 

mainstat *=1,05;

mainstatcrit = 20 * (1 - pow( ( 1 - ( 0.01 / 0.2 ) ),( ( mainstat / 60) / 5.5 ) ));

 

double scg_upt = 0.19405;

double execute_upt = 0.25;

//-----------------

 

double armor=8829;

double armor1=(armor*0.8)/(armor*0.8+15200);

double armor2=(armor*0.8*0.7)/(armor*0,8*0,7+15200);

double armor3=(armor*0.8*0.7*0.7)/(armor*0.8*0.7*0.7+15200);

 

int techcrit = 14;

int rangedcrit = 16;

 

double total = 0;

 

maximum t[48*58];

int k=0,max=0;

 

for (int i=0; i<=480; i+=10){

surgeper=30 * (1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( surgerating / 60) / 0.22 ) ));

alacrityper=30 * (1 - pow(( 1 - ( 0.01 / 0.3 ) ),( ( alacrityrating / 60) / 1.25 ) )) ;

for (int j=0; j<=550; j+=10){

critper = 30 * ( 1 - pow( ( 1 - ( 0.01 / 0.3 ) ),( ( critrating / 60 ) / 0.9 ) ));

 

BD = (mainstat * 0.2 + power * 0.23)*1,05;

TBD = (mainstat * 0.2 + (power + 2790) * 0.23)*1,05;

 

ms = ( ms_cv * BD + ms_sth + (1+ms_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor3)*1.05;

mso = ( mso_cv * BD + mso_sth + (1+mso_mody) * weapondamage * 0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor3)*1.05*0.67;

 

rs = ( rs_cv * BD + rs_sth + (1+rs_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.9;

rso = ( rs_cv * BD + rs_sth + (1+rs_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.57;

 

ps = ( ps_cv * BD + ps_sth + (1+ps_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

pso = ( pso_cv * BD + pso_sth + (1+pso_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05*0.67;

 

ul = ( ul_cv * BD + ul_sth + (1+ul_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05;

ulo = ( ulo_cv * BD + ulo_sth + (1+ulo_mody) * weapondamage *0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper+30)/100)))*(1-armor2)*1.05*0.67;

 

ss = ( ss_cv * BD + ss_sth + (1+ss_mody) * weapondamage ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05;

sso = ( sso_cv * BD + sso_sth + (1+sso_mody) * weapondamage * 0.3 ) * (1+(((mainstatcrit+critper+rangedcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*0.67;

ssd = ( ssd_cv * TBD + ssd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05;

 

im = ( im_cv * TBD + im_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05;

imd = ( imd_cv * TBD + imd_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+scg_upt*0.1)*(1+execute_upt*0.3);

 

cgc = ( cgc_cv * TBD + cgc_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+scg_upt*0.1)*(1+execute_upt*0.3);

 

td = ( td_cv * TBD + td_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper+30)/100)))*(1-armor1)*1.05;

 

mb = ( mb_cv * TBD + mb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*(1-armor1)*1.05*1.75;

 

scb = ( scb_cv * TBD + scb_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+0.1)*(1+execute_upt*0.3);

 

en = ( en_cv * TBD + en_sth ) * (1+(((mainstatcrit+critper+techcrit)/100)*((61+surgeper)/100)))*1.07*1.05*(1+scg_upt*0.1)*(1+execute_upt*0.3);

ent = en + en*1.2 + en*1.2*1.2 + en*1.2*1.2*1.2 + en*1.2*1.2*1.2*1.2;

 

total = ((ms*2 + mso*2 + ul*4 + ulo*4 + ss + sso + ssd*5 + im + imd*5 + cgc*8 + td + mb * (7/24) + ent *0.1235 + scb*scg_upt + rs *(1-0.1235) + rso *(1-0.1235) + ps * (1+(17/24)) + pso * (1+(17/24)) )/15)*(1+(alacrityper/100));

 

t[k].total=total;

t[k].i=i;

t[k].j=j;

k++;

 

critrating+=10;

power-=10;

}

power = 2364+augment; //AUGMENT

critrating = 0;

surgerating-=10;

alacrityrating+=10;

}

surgerating = 480;

alacrityrating = 0; //AUGMENT

 

for (int i=1;i<k;i++){

if (t.total>t[max].total)

max=i;

}

cout<<"total: "<<t[max].total<<", crit: "<<critrating+t[max].j<<", surge: "<<surgerating-t[max].i<<", alacrity: "<<alacrityrating+t[max].i<<endl<<endl;

 

 

 

//Rounding to enhancement values

for (int i=1;i<k;i++){

if (t.i==240 and t.j==420)

cout<<"total: "<<t.total<<", crit: "<<critrating+t.j<<", surge: "<<surgerating-t.i<<", alacrity: "<<alacrityrating+t.i<<endl<<endl;

}

 

for (int i=1;i<k;i++){

if (t.i==360 and t.j==420)

cout<<"total: "<<t.total<<", crit: "<<critrating+t.j<<", surge: "<<surgerating-t.i<<", alacrity: "<<alacrityrating+t.i;

}

cin.get();

}

 

 

Result for BiS gear:

  • 13 power augments, 1 accuracy augment.
  • 420 crit
  • 240 surge
  • 240 alacrity

 

Needs more augment options! Add in Acc/Alac/surge for actual BiS

 

Just have a minimum acc threshold of 750 or so

Edited by TACeMossie
Link to comment
Share on other sites

Needs more augment options! Add in Acc/Alac/surge for actual BiS

 

Just have a minimum acc threshold of 750 or so

 

There's already and option for Alacrity. I could try the rest but not even Alacrity augments are BiS...

 

 

Also I made some bug fixes, overall dps still seems low though :(

Edited by cs_zoltan
Link to comment
Share on other sites

There's already and option for Alacrity. I could try the rest but not even Alacrity augments are BiS...

 

 

Also I made some bug fixes, overall dps still seems low though :(

 

It seems you forgot relic procs, as well as the (very, very minor) contribution of cunning to tech DPS.

 

And set bonus's.

 

And your execute code is sloppy.

 

Also the armor pen on Mag Shot/Mag Bolt is additive, not multiplicative, so it means that Mag Bolt ignores 60% of the targets armor, not 51%. The reason sundered is multiplicative is it reduces the targets armor, not increasing your armor pen

Edited by TACeMossie
Link to comment
Share on other sites

It seems you forgot relic procs, as well as the (very, very minor) contribution of cunning to tech DPS.

About relics: Should I use avarge uptime for it or you have a better alternative?

Cunning also reminds me that I didn't account for datacrons.

 

And set bonus's.

 

And your execute code is sloppy.

Well 2PC, I think, doesn't matter. And since I only draw up a general 15sec rotation I have no clue how to include the 6PC, or if it would change anything.

 

Also the armor pen on Mag Shot/Mag Bolt is additive, not multiplicative, so it means that Mag Bolt ignores 60% of the targets armor, not 51%. The reason sundered is multiplicative is it reduces the targets armor, not increasing your armor pen

This part?

   double armor=8829;
   double armor1=(armor*0.8)/(armor*0.8+15200);
   double armor2=(armor*0.8*0.7)/(armor*0,8*0,7+15200);
  [b] double armor3=(armor*0.8*0.7*07)/(armor*0.8*0.7*0.7+15200);[/b]

 

This is the right way?

double armor3=(armor*0.8*0.4)/(armor*0.8*0.4+15200);

Link to comment
Share on other sites

About relics: Should I use avarge uptime for it or you have a better alternative?

Cunning also reminds me that I didn't account for datacrons.

 

 

Well 2PC, I think, doesn't matter. And since I only draw up a general 15sec rotation I have no clue how to include the 6PC, or if it would change anything.

 

 

This part?

   double armor=8829;
   double armor1=(armor*0.8)/(armor*0.8+15200);
   double armor2=(armor*0.8*0.7)/(armor*0,8*0,7+15200);
  [b] double armor3=(armor*0.8*0.7*07)/(armor*0.8*0.7*0.7+15200);[/b]

 

This is the right way?

double armor3=(armor*0.8*0.4)/(armor*0.8*0.4+15200);

 

For relics, I'd say use an uptime of 6 * Alacrity / 23. Nice, well rounded number and it accounts for alacrity and its ridiculous effect on offensive abilities!

2-set technically doesnt change gear, but it gives a more accurate max DPS

6-piece is simple - Mag shot is used 8 times every minute - so for mag shot the crit rate would be:

 

(100 + 7* Ranged Crit)/800.

 

It will result in slightly devalued crit + also a slight increase to surge's value

 

And for the armor pen bit, yeah the updated option is right.

 

As for fixing up execute, its (as stated earlier)

 

DPS = 10 / ( ( 7 / Normal DPS ) + ( 3 / Execute DPS ) )

Link to comment
Share on other sites

×
×
  • Create New...