Optimal Link + Aura Calculator For Summon Raging Spirit [Updated 1.1.5]

Yep all the numbers are with ele weakness on, and assuming monsters have 30% resist to all elements. (This is outlined in the main post, but I don't blame you for asking since I keep editing it).

I think with 3 purities and saffell's you can have insane survivability. Something like 77+6/7/8+4/5 so 87-90 all elemental resists. The purities are nice because they actually help spirits survive AoE spell damage, but purity of elements does that for 40% reservation as well. :)
All my builds /view-thread/1430399

T14 'real' clearspeed challenge /1642265
"
MatrixFactor wrote:
Yep all the numbers are with ele weakness on, and assuming monsters have 30% resist to all elements. (This is outlined in the main post, but I don't blame you for asking since I keep editing it).

I think with 3 purities and saffell's you can have insane survivability. Something like 77+6/7/8+4/5 so 87-90 all elemental resists. The purities are nice because they actually help spirits survive AoE spell damage, but purity of elements does that for 40% reservation as well. :)


Thanks, and yeah sorry, I know the math is there but its a bit hard to follow and I have no idea how to use the code you have in there to do your own calculations.

I'll wait till 1.5 comes out, I'm really wanting to modify my low life aura support build, just trying to figure out how. I may still go that route and take the dps drop since it'll be great in parties when someone is providing generosity Hatred/Anger/Wrath.

Thanks again for all the responses.
Last edited by Moose65#0910 on Aug 4, 2014, 4:21:59 AM
Just started getting into HC build with SRS, may be the one to try in the new 4-month ones coming up.

For this, and your other SRS info threads, thanks, you're a bloody legend!
Raging spirit+echo+multistrike+melee physical DMG+melee DMG on full life with hatred and wrath
Xp

Need comparison/calculation on 1st post
Last edited by tempoltone#3177 on Aug 11, 2014, 6:30:02 AM
Edit: Nvm, I see the answer to my question in the OP now.
Last edited by Xallion#3440 on Aug 13, 2014, 4:53:40 PM
Wow, thanks so much for this script. It's so much more amazing than what I was building in Google Sheets.

I think I may have found a few bugs (or maybe just things I misunderstand?). If you are interested:

1. I think Hatred should also be scaled by damage effectiveness. I tested with power siphon here. Note how the cold damage is higher for PS than normal attack.
2. WED should apply to the 50% converted fire damage, and any fire damage from added fire (see #3 from the same album). Right now, the script's WED only affects wrath/anger. *Edit: WED doesn't work with SRS at all. So it's actually the other part that is wrong, it shouldn't be increasing the aura damage.
3. The extra damage from added fire should be using PhysDmg, not FireDmgBase (only makes a small difference because they are the same except FireDmgBase has the 15% increased from 20q added fire).

There was also some discussion about whether hatred was calculated on pre or post conversion phys dmg. The fourth screenshot shows that it's calculated from pre-conversion phys dmg (didn't test added fire, but I am assuming it behaves the same way). Your script already handled this correctly.


Modified

############################################################
#Global Parameters
############################################################
param n_support := 5; #how many support gems can we link simultaneously
param n_aura := 3; #how many auras can we run simultaneously
param n_curse := 1; #how many curses

param minion_id := 0.8; #minion increased dmg from tree+items
param minion_ias := 0.12; #minion increased atk speed from tree+items
param spell_id := 0;
param aura_inc := 0.54; #increased aura effectivenes total from tree+items
param dura_inc := 0.45; #increased spell duration from items/tree
param cast_inc := 0.30; #totem or player +cast from passives and gear

param monster_armor := 983;
param monster_fire_res := 0.0; #According to Cezury 30% for rare mobs and 40% for unique monsters
param monster_cold_res := 0.0; ##50% Due to EE proc'd by ice nova
param monster_light_res := 0.0; ##50% Due to EE proc'd by Arc
param Travel_Time := 0; #Average travel time in seconds (for DPS estimation).

param dura_base := 3.5; #how long does the summoned spell last (3.5s for raging spirit)
param cast_time := 0.8; #how long does the spell take to cast (0.8s for raging spirit)
param APS_base := 1.627; #base # attacks per second for raging spirit, other value for other summoned stuff
param effectiveness := 0.7; #70% dmg effectiveness, set to other value if not using other minion types

param reduced_cast := 1.0; # Cast Speed reduced to 0.7 by Totem, set to 1.0 for self-cast
param n_totems := 1; # set to 1.0 in case of player casting. 2-3 in case of totem.
param totem_dmg_penalty := 1.0; # set to 1.0 in case of player casting. 0.5 for totem.
param SE_fcr_more := 0.69; #20/20 Spell Echo
param SE_dmg_less := -0.1;
param SE_dmg_inc := 0.0;
param HasteFCRBase := 0.16; #Lvl 20 Haste
param VaalHasteFCRBase := 0.41;

#totem don't work with SE
#param reduced_cast := 0.7; # Cast Speed reduced to 0.7 by Totem, set to 1.0 for self-cast
#param n_totems := 3; # set to 1.0 in case of player casting. 2-3 in case of totem.
#param totem_dmg_penalty := 0.5; # set to 1.0 in case of player casting. 0.5 for totem.
#param SE_fcr_more := 0;
#param SE_dmg_less := 0;
#param SE_dmg_inc := 0;
#param HasteFCRBase := 0.0; #Lvl 20 Haste


############################################################
#Support Gems
############################################################
var MS integer >= 0, <= 1; # MultiStrike
var MPD integer >= 0, <= 1; # MeleePhysDmg
var MSp integer >= 0, <= 1; # MeleeSplash
var MD integer >= 0, <= 1; # MinionDmg
var FCR integer >= 0, <= 1; # Faster Cast
var Dur integer >= 0, <= 1; # Inc Dura
var FA integer >= 0, <= 1; # Faster Attack
var CS integer >= 0, <= 1; # Culling Strike
var Emp integer >= 0, <= 1; # Empower
var WED integer >= 0, <= 1; # Weapon Elemental
var SE integer >= 0, <=1; # Spell Echo
var RM integer >= 0, <=1; # Remote Mine
var AF integer >= 0, <=1; # Added Fire

param MS_inc := 0.67; #20/20MS
param MS_mult := -0.36; # 36% less damage
param MS_IAS_more := 1.07; # 107% more atk speed
param MPD_mult := 0.49; #Lvl 20/20 MPD, 46% more damage
param MPD_inc := 0.1;
param MD_inc := 0.92; #Lvl 20/20 MD, 92% increased damage
param MSp_mult := -0.16; #Lvl MSplash 34% less damage to other targets, 16%less to first => 25% avg, set to 0.5 for 2 targets
param MSp_inc := 0.48; # 48% Increased damage
param FCRval := 0.49; #Lvl 20/20 FCR 49% cast
param Durval := 0.74; #Lvl 20/20 IncDura 74% Inc Dura
param FA_ias := 0.54; #20/20 Faster Attack
param CS_ias := 0.1; #L20/Q20 Culling strike 10% IAS
param CS_fcr := 0.1; # 10% FCR
param CS_inc := 0.22; # 22% increased damage
param RM_mult := 0.49; #L20 Remote mine, 49% more damage
param WED_mult := 0.59; #20/20 WED
param WED_inc := 0.1;
param AF_mult := 0.39; #20/20 Added Fire
param AF_inc := 0.15;

var Vuln integer >= 0, <= 1; #Vulnerability
var EW integer >= 0, <= 1; #Elemental Weakness

param Vuln_more := 0.44; #20/20 Vuln
param EW_more := .5; #20/2 EW - treat EW as EE

############################################################
#Auras
############################################################
var Anger integer >=0, <=1;
var Hatred integer >=0, <=1;
var Wrath integer >=0, <=1;
var Haste integer >=0, <=1;
var VaalHaste integer >=0, <=1;
var FleshOffering integer >= 0, <=1;

param WrathDmgBase := 150; #Lvl 20 Wrath
param AngerDmgBase := 125; #Lvl 20 Anger

param HatredPct := 0.36; #Lvl 20 Hatred
param HasteIASBase := 0.16; #Lvl 20 Haste
param VaalHasteIASBase := 0.0;
param FleshOfferingIAS := 0.4;
#Haste FCR is on the top with totem/self settings

#First we set the auras up

param WrathDmg := WrathDmgBase*(1+aura_inc)*effectiveness*totem_dmg_penalty;
param AngerDmg := AngerDmgBase*(1+aura_inc)*effectiveness*totem_dmg_penalty;
param HasteFCR := HasteFCRBase*(1+aura_inc);
param HasteIAS := HasteIASBase*(1+aura_inc);
param VaalHasteIAS := VaalHasteIASBase*(1+aura_inc);
param VaalHasteFCR := VaalHasteFCRBase*(1+aura_inc);

############################################################
#Optimization Problem Statement
############################################################
var APS;
var NSpirit;
var Dmg;
var SpiritDmgBase;
var PhysDmg;
var FireDmgBase;

#We want to maximize total DPS
maximize DPS: APS * NSpirit * Dmg * (1+(1/9)*CS)* (1+SE_dmg_less*SE) * (1+RM_mult*RM);

##########
# Base item section: uncomment (remove #) from one of the following lines:
##########
#In a +0 staff or in a armor L3 Empower
#subject to SpiritBase: SpiritDmgBase = (606.5+185*Emp)*totem_dmg_penalty; #Lvl 20 Raging Spirit After Buff

#In a +2 Staff (use this to simulate +2 hat, but set N_supports to 3 at the top):
#subject to SpiritBase: SpiritDmgBase = (791.5+233.5*Emp)*totem_dmg_penalty; #272.3

#In a +1 +2 Staff L3 Emp:
subject to SpiritBase: SpiritDmgBase = (901.5+419*Emp)*totem_dmg_penalty; #419=L3 Emp 594=L4 Emp

#In a +1 +2 Staff L4 Emp L21 Spirit:
#subject to SpiritBase: SpiritDmgBase = (1025+667.5*Emp)*totem_dmg_penalty; #419=L3 Emp 594=L4 Emp
##########
# End of base item section
##########

subject to PhysDamage: PhysDmg = SpiritDmgBase*(1+minion_id+MD*MD_inc+MS*MS_inc+MSp*MSp_inc+SE_dmg_inc*SE+spell_id+CS*CS_inc)*(1+MS_mult*MS)*(1+MSp_mult*MSp)*(1+MPD_mult*MPD);

subject to FireDamage: FireDmgBase = SpiritDmgBase*(1+minion_id+MD*MD_inc+MS*MS_inc+MSp*MSp_inc+SE_dmg_inc*SE+spell_id+CS*CS_inc+AF_inc*AF+WED_inc*WED)*(1+MS_mult*MS)*(1+MSp_mult*MSp)*(1+MPD_mult*MPD); #The difference is the 15% increased from 20q added fire, and the increased from 20q WED

#Next, compute the maximum number of *active* spirits we can keep up. Each spirit idles for 0.5 seconds after being cast, and then must travel to its target
subject to Nspirits: NSpirit = n_totems*((dura_base*(1+dura_inc+Durval*Dur)-0.5-Travel_Time)/(cast_time/(reduced_cast*(1+FCRval*FCR+HasteFCR*Haste+cast_inc+CS_fcr*CS+VaalHaste*VaalHasteFCR)*(1+SE_fcr_more*SE) )));

#Next, the buffed attacks per second.
subject to cons_IAS: APS = APS_base*(1+Haste*HasteIAS+minion_ias+FA_ias*FA+CS_ias*CS+VaalHaste*VaalHasteIAS+FleshOffering*FleshOfferingIAS)*(1+MS_IAS_more*MS);

#####Finally, the damage#####
#############################
subject to dmg_cons: Dmg = Wrath* (WrathDmg*(1+minion_id+MD*MD_inc+WED_inc*WED+SE_dmg_inc*SE+spell_id+CS*CS_inc)*(1+MS_mult*MS))*(1+MSp_mult*MSp)*(1+WED_mult*WED)*(1+EW_more*EW-monster_light_res) +

Anger* (AngerDmg*(1+minion_id+MD*MD_inc+WED_inc*WED+SE_dmg_inc*SE+spell_id+AF*AF_inc+CS*CS_inc)*(1+MS_mult*MS))*(1+MSp_mult*MSp)*(1+WED_mult*WED)*(1+EW_more*EW-monster_fire_res) +

Hatred*(SpiritDmgBase*(1+aura_inc)*HatredPct*(1+minion_id+MD*MD_inc+CS*CS_inc+MS*MS_inc+MSp*MSp_inc+WED_inc*WED+SE_dmg_inc*SE+spell_id))*(1+MS_mult*MS)*(1+MSp_mult*MSp)*(1+MPD_mult*MPD)*(1+WED_mult*WED)*(1+EW_more*EW-monster_cold_res)*effectiveness+

0.5*PhysDmg*(1+Vuln_more*Vuln)*(1-(monster_armor/(monster_armor+12*0.5*PhysDmg*(1+Vuln_more*Vuln))))+ #Physical Part

0.5*FireDmgBase*(1+EW_more*EW-monster_fire_res)*(1+WED_mult*WED)+ #Converted to Fire part, already includes increased/decreased ele mods

(AF_mult*AF)*PhysDmg*(1+AF_inc*AF+WED_inc*WED)*(1+EW_more*EW-monster_fire_res)*(1+WED_mult*WED); #Added Fire base part, increased/decreased and more/less ele mods stack multiplicatively with the phys ones

#####end of the damage#####
###########################

subject to aura_cons: Haste + Hatred + Wrath + Anger <= n_aura;
subject to gem_cons: MS + MPD + Dur + FCR + MD + MSp + FA + CS + WED + Emp + RM + AF + SE<= n_support;
subject to curse_cons: Vuln + EW <= n_curse;
#subject to gem_cons2: RM + Dur = 0;
#subject to force_emp: Emp = 1;
#subject to use_splash: MSp = 1;
#subject to cs_off: CS = 0;
#subject to aura_cons2: Haste = 0;
#subject to aura_cons3: Hatred = 0;
#subject to aura_cons4: Anger = 0;
subject to fleshoff: FleshOffering = 0;
subject to vaalhaste: VaalHaste = 0;
subject to remotemineoff: RM = 0;
#subject to duroff: Dur = 0;
subject to WEDoff: WED = 0;


solve;

display DPS, NSpirit, Dmg, APS;

display Haste, Anger, Hatred, Wrath, FleshOffering, VaalHaste;

display MS, MPD, Dur, FCR, MD, MSp, FA, CS, WED, SE, Emp, AF, RM;

display EW, Vuln;


Last edited by yoden#0011 on Aug 17, 2014, 3:44:08 PM
"
yoden wrote:
Wow, thanks so much for this script. It's so much more amazing than what I was building in Google Sheets.

I think I may have found a few bugs (or maybe just things I misunderstand?). If you are interested:

1. I think Hatred should also be scaled by damage effectiveness. I tested with power siphon here. Note how the cold damage is higher for PS than normal attack.
2. WED should apply to the 50% converted fire damage, and any fire damage from added fire (see #3 from the same album). Right now, the script's WED only affects wrath/anger. *Edit: WED doesn't work with SRS at all. So it's actually the other part that is wrong, it shouldn't be increasing the aura damage.
3. The extra damage from added fire should be using PhysDmg, not FireDmgBase (only makes a small difference because they are the same except FireDmgBase has the 15% increased from 20q added fire).

There was also some discussion about whether hatred was calculated on pre or post conversion phys dmg. The fourth screenshot shows that it's calculated from pre-conversion phys dmg (didn't test added fire, but I am assuming it behaves the same way). Your script already handled this correctly.


1. Tested in game, effectiveness doesn't apply to hatred.

2. WED doesn't work with spirits anyways, it should be removed.

3. I believe this is how the added fire gem works with its quality. I posted this in the added fire feedback section, and I'm led to believe that's how it works.
All my builds /view-thread/1430399

T14 'real' clearspeed challenge /1642265
Can you add the option of having a 6L staff with:
+2 fire gem
+1 all gem
+1 sup gem (master mod)
once for self cast, once for spell totem.
I'm not updating this any more, because there wasn't enough interest/people using it. I made a easy to use & powerful SRS DPS Calculator based in google sheets.

If you get to modifying it to include arbitrary gem/quality levels and +gem mods on staff, send me a link so I can incorporate it.
All my builds /view-thread/1430399

T14 'real' clearspeed challenge /1642265

Report Forum Post

Report Account:

Report Type

Additional Info