RookB Posted January 14, 2015 Share Posted January 14, 2015 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 More sharing options...
TACeMossie Posted January 14, 2015 Share Posted January 14, 2015 (edited) 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 January 14, 2015 by TACeMossie Link to comment Share on other sites More sharing options...
Ryuku-sama Posted January 14, 2015 Author Share Posted January 14, 2015 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 More sharing options...
RookB Posted January 15, 2015 Share Posted January 15, 2015 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 More sharing options...
KikiWolf Posted January 15, 2015 Share Posted January 15, 2015 (edited) 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 ? Edited January 15, 2015 by KikiWolf Link to comment Share on other sites More sharing options...
Ryuku-sama Posted January 15, 2015 Author Share Posted January 15, 2015 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 More sharing options...
KikiWolf Posted January 15, 2015 Share Posted January 15, 2015 (edited) Thanks for your reply. i understand now, you use Hail of Bolts to proc IA before the opening. Never do that, i'll test it this evening. Edited January 15, 2015 by KikiWolf Link to comment Share on other sites More sharing options...
cs_zoltan Posted February 27, 2015 Share Posted February 27, 2015 Shameless bump, did you manage to get hold of the coefficients? Link to comment Share on other sites More sharing options...
TACeMossie Posted March 3, 2015 Share Posted March 3, 2015 (edited) 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 March 3, 2015 by TACeMossie Link to comment Share on other sites More sharing options...
TACeMossie Posted March 3, 2015 Share Posted March 3, 2015 Anyway, here's the coefficients: Rapid ShotsAttack 1: Coefficient 0.2, Multiplier -0.8Attack 2: Coefficient 0.2, Multiplier -0.8Attack 3: Coefficient 0.2, Multiplier -0.8Attack 4: Coefficient 0.2, Multiplier -0.8Attack 5: Coefficient 0.2, Multiplier -0.8 Offhand Attack 1: Coefficient 0, Multiplier -0.8Offhand Attack 2: Coefficient 0, Multiplier -0.8Offhand Attack 3: Coefficient 0, Multiplier -0.8Offhand Attack 4: Coefficient 0, Multiplier -0.8Offhand Attack 5: Coefficient 0, Multiplier -0.8 Mag Shot Attack: Coefficient 2.47, Multiplier 0.65Offhand Attack: Coefficient 0, Multiplier 0.65 Power Shot Attack: Coefficient 1.42, Multiplier -0.05Offhand 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.3Attack 2 (Offhand): Coefficient 0, Multiplier -0.3Attack 3: Coefficient 1.0475, Multiplier -0.3 Incendiary Missile Attack 1: Tech Attack, Coefficient 0.41, Base Damage 0.021-0.061Attack 2: Burn (5 ticks), Coefficient 0.34, Base Damage 0.034 Serrated Shot Attack 1: Ranged Attack, Coefficient 0.7, Multiplier -0.53Attack 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.151AoE 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 More sharing options...
cs_zoltan Posted March 3, 2015 Share Posted March 3, 2015 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 More sharing options...
Ryuku-sama Posted March 3, 2015 Author Share Posted March 3, 2015 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 More sharing options...
cs_zoltan Posted March 3, 2015 Share Posted March 3, 2015 (edited) Anyone can tell me the main/secondary/tertiary stat budget in 198 gear without augments? nm, I looked it up myself >: Edited March 3, 2015 by cs_zoltan Link to comment Share on other sites More sharing options...
cs_zoltan Posted March 3, 2015 Share Posted March 3, 2015 (edited) Edit: nm, I forgot the Warrior class buff >< Edited March 3, 2015 by cs_zoltan Link to comment Share on other sites More sharing options...
ForceWelder Posted March 4, 2015 Share Posted March 4, 2015 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 More sharing options...
cs_zoltan Posted March 4, 2015 Share Posted March 4, 2015 (edited) 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: 5202nd: 480Difference 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 March 5, 2015 by cs_zoltan Link to comment Share on other sites More sharing options...
Ryuku-sama Posted March 5, 2015 Author Share Posted March 5, 2015 Very likely.... Link to comment Share on other sites More sharing options...
cs_zoltan Posted March 12, 2015 Share Posted March 12, 2015 (edited) 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 March 15, 2015 by cs_zoltan Link to comment Share on other sites More sharing options...
Kaos_KidSWTOR Posted March 12, 2015 Share Posted March 12, 2015 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 crit240 surge240 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 More sharing options...
cs_zoltan Posted March 12, 2015 Share Posted March 12, 2015 How easy would it be to change this for Arsenal? Or would Arsenal use the same or similar stats? Change all the coefficients and draw up a general rotation. Link to comment Share on other sites More sharing options...
TACeMossie Posted March 12, 2015 Share Posted March 12, 2015 (edited) 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 crit240 surge240 alacrity Needs more augment options! Add in Acc/Alac/surge for actual BiS Just have a minimum acc threshold of 750 or so Edited March 12, 2015 by TACeMossie Link to comment Share on other sites More sharing options...
cs_zoltan Posted March 13, 2015 Share Posted March 13, 2015 (edited) 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 March 13, 2015 by cs_zoltan Link to comment Share on other sites More sharing options...
TACeMossie Posted March 13, 2015 Share Posted March 13, 2015 (edited) 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 March 13, 2015 by TACeMossie Link to comment Share on other sites More sharing options...
cs_zoltan Posted March 13, 2015 Share Posted March 13, 2015 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 More sharing options...
TACeMossie Posted March 13, 2015 Share Posted March 13, 2015 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 More sharing options...
Recommended Posts