@@ -2318,6 +2318,7 @@ function calcs.offence(env, actor, activeSkill)
23182318
23192319 -- Exerted Attack members
23202320 local exertedDoubleDamage = env .modDB :Sum (" BASE" , cfg , " ExertDoubleDamageChance" )
2321+ local exertingWarcryCount = env .modDB :Sum (" BASE" , nil , " ExertingWarcryCount" )
23212322 globalOutput .OffensiveWarcryEffect = 1
23222323 globalOutput .MaxOffensiveWarcryEffect = 1
23232324 globalOutput .TheoreticalOffensiveWarcryEffect = 1
@@ -2333,11 +2334,6 @@ function calcs.offence(env, actor, activeSkill)
23332334 if value .activeEffect .grantedEffect .name == " Ancestral Cry" and activeSkill .skillTypes [SkillType .MeleeSingleTarget ] and not globalOutput .AncestralCryCalculated then
23342335 globalOutput .AncestralCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
23352336 globalOutput .AncestralCryCooldown = calcSkillCooldown (value .skillModList , value .skillCfg , value .skillData )
2336- output .GlobalWarcryCooldown = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCooldown" )
2337- output .GlobalWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
2338- if modDB :Flag (nil , " WarcryShareCooldown" ) then
2339- globalOutput .AncestralCryCooldown = globalOutput .AncestralCryCooldown + (output .GlobalWarcryCooldown - globalOutput .AncestralCryCooldown ) / output .GlobalWarcryCount
2340- end
23412337 globalOutput .AncestralCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
23422338 globalOutput .AncestralExertsCount = env .modDB :Sum (" BASE" , nil , " NumAncestralExerts" ) or 0
23432339 local baseUptimeRatio = m_min ((globalOutput .AncestralExertsCount / output .Speed ) / (globalOutput .AncestralCryCooldown + globalOutput .AncestralCryCastTime ), 1 ) * 100
@@ -2360,11 +2356,6 @@ function calcs.offence(env, actor, activeSkill)
23602356 elseif value .activeEffect .grantedEffect .name == " Infernal Cry" and not globalOutput .InfernalCryCalculated then
23612357 globalOutput .InfernalCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
23622358 globalOutput .InfernalCryCooldown = calcSkillCooldown (value .skillModList , value .skillCfg , value .skillData )
2363- output .GlobalWarcryCooldown = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCooldown" )
2364- output .GlobalWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
2365- if modDB :Flag (nil , " WarcryShareCooldown" ) then
2366- globalOutput .InfernalCryCooldown = globalOutput .InfernalCryCooldown + (output .GlobalWarcryCooldown - globalOutput .InfernalCryCooldown ) / output .GlobalWarcryCount
2367- end
23682359 globalOutput .InfernalCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
23692360 if activeSkill .skillTypes [SkillType .Melee ] then
23702361 globalOutput .InfernalExertsCount = env .modDB :Sum (" BASE" , nil , " NumInfernalExerts" ) or 0
@@ -2390,11 +2381,6 @@ function calcs.offence(env, actor, activeSkill)
23902381 globalOutput .CreateWarcryOffensiveCalcSection = true
23912382 globalOutput .IntimidatingCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
23922383 globalOutput .IntimidatingCryCooldown = calcSkillCooldown (value .skillModList , value .skillCfg , value .skillData )
2393- output .GlobalWarcryCooldown = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCooldown" )
2394- output .GlobalWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
2395- if modDB :Flag (nil , " WarcryShareCooldown" ) then
2396- globalOutput .IntimidatingCryCooldown = globalOutput .IntimidatingCryCooldown + (output .GlobalWarcryCooldown - globalOutput .IntimidatingCryCooldown ) / output .GlobalWarcryCount
2397- end
23982384 globalOutput .IntimidatingCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
23992385 globalOutput .IntimidatingExertsCount = env .modDB :Sum (" BASE" , nil , " NumIntimidatingExerts" ) or 0
24002386 local baseUptimeRatio = m_min ((globalOutput .IntimidatingExertsCount / output .Speed ) / (globalOutput .IntimidatingCryCooldown + globalOutput .IntimidatingCryCastTime ), 1 ) * 100
@@ -2440,11 +2426,6 @@ function calcs.offence(env, actor, activeSkill)
24402426 globalOutput .CreateWarcryOffensiveCalcSection = true
24412427 globalOutput .RallyingCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
24422428 globalOutput .RallyingCryCooldown = calcSkillCooldown (value .skillModList , value .skillCfg , value .skillData )
2443- output .GlobalWarcryCooldown = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCooldown" )
2444- output .GlobalWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
2445- if modDB :Flag (nil , " WarcryShareCooldown" ) then
2446- globalOutput .RallyingCryCooldown = globalOutput .RallyingCryCooldown + (output .GlobalWarcryCooldown - globalOutput .RallyingCryCooldown ) / output .GlobalWarcryCount
2447- end
24482429 globalOutput .RallyingCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
24492430 globalOutput .RallyingExertsCount = env .modDB :Sum (" BASE" , nil , " NumRallyingExerts" ) or 0
24502431 local baseUptimeRatio = m_min ((globalOutput .RallyingExertsCount / output .Speed ) / (globalOutput .RallyingCryCooldown + globalOutput .RallyingCryCastTime ), 1 ) * 100
@@ -2491,11 +2472,6 @@ function calcs.offence(env, actor, activeSkill)
24912472 globalOutput .CreateWarcryOffensiveCalcSection = true
24922473 globalOutput .SeismicCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
24932474 globalOutput .SeismicCryCooldown = calcSkillCooldown (value .skillModList , value .skillCfg , value .skillData )
2494- output .GlobalWarcryCooldown = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCooldown" )
2495- output .GlobalWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
2496- if modDB :Flag (nil , " WarcryShareCooldown" ) then
2497- globalOutput .SeismicCryCooldown = globalOutput .SeismicCryCooldown + (output .GlobalWarcryCooldown - globalOutput .SeismicCryCooldown ) / output .GlobalWarcryCount
2498- end
24992475 globalOutput .SeismicCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
25002476 globalOutput .SeismicExertsCount = env .modDB :Sum (" BASE" , nil , " NumSeismicExerts" ) or 0
25012477 local baseUptimeRatio = m_min ((globalOutput .SeismicExertsCount / output .Speed ) / (globalOutput .SeismicCryCooldown + globalOutput .SeismicCryCastTime ), 1 ) * 100
@@ -2525,11 +2501,6 @@ function calcs.offence(env, actor, activeSkill)
25252501 elseif value .activeEffect .grantedEffect .name == " Battlemage's Cry" and not globalOutput .BattleMageCryCalculated then
25262502 globalOutput .BattleMageCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
25272503 globalOutput .BattleMageCryCooldown = calcSkillCooldown (value .skillModList , value .skillCfg , value .skillData )
2528- output .GlobalWarcryCooldown = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCooldown" )
2529- output .GlobalWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
2530- if modDB :Flag (nil , " WarcryShareCooldown" ) then
2531- globalOutput .BattleMageCryCooldown = globalOutput .BattleMageCryCooldown + (output .GlobalWarcryCooldown - globalOutput .BattleMageCryCooldown ) / output .GlobalWarcryCount
2532- end
25332504 globalOutput .BattleMageCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
25342505 if activeSkill .skillTypes [SkillType .Melee ] then
25352506 globalOutput .BattleCryExertsCount = env .modDB :Sum (" BASE" , nil , " NumBattlemageExerts" ) or 0
@@ -2570,7 +2541,6 @@ function calcs.offence(env, actor, activeSkill)
25702541 for _ , cryTimeRatio in ipairs (warcryList ) do
25712542 globalOutput .ExertedAttackUptimeRatio = m_max (globalOutput .ExertedAttackUptimeRatio or 0 , globalOutput [cryTimeRatio ] or 0 )
25722543 end
2573- local warcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
25742544 if globalBreakdown then
25752545 globalBreakdown .ExertedAttackUptimeRatio = { }
25762546 t_insert (globalBreakdown .ExertedAttackUptimeRatio , s_format (" Maximum of:" ))
@@ -2585,19 +2555,19 @@ function calcs.offence(env, actor, activeSkill)
25852555 local incExertedAttacks = skillModList :Sum (" INC" , cfg , " ExertIncrease" )
25862556 local moreExertedAttacks = skillModList :Sum (" MORE" , cfg , " ExertIncrease" )
25872557 local moreExertedAttackDamage = skillModList :Sum (" MORE" , cfg , " ExertAttackIncrease" )
2588- local autoExertionExertedDamage = skillModList :Sum (" MORE" , cfg , " OverexertionExertAverageIncrease" )
2558+ local overexertionExertedDamage = skillModList :Sum (" MORE" , cfg , " OverexertionExertAverageIncrease" )
25892559 local echoesOfCreationExertedDamage = skillModList :Sum (" MORE" , cfg , " EchoesExertAverageIncrease" )
25902560 if activeSkill .skillModList :Flag (nil , " Condition:WarcryMaxHit" ) then
25912561 skillModList :NewMod (" Damage" , " INC" , incExertedAttacks , " Exerted Attacks" )
25922562 skillModList :NewMod (" Damage" , " MORE" , moreExertedAttacks , " Exerted Attacks" )
25932563 skillModList :NewMod (" Damage" , " MORE" , moreExertedAttackDamage , " Exerted Attack Damage" , ModFlag .Attack )
2594- skillModList :NewMod (" Damage" , " MORE" , autoExertionExertedDamage * warcryCount , " Max Autoexertion Support" )
2595- skillModList :NewMod (" Damage" , " MORE" , echoesOfCreationExertedDamage * warcryCount , " Max Echoes of Creation" )
2564+ skillModList :NewMod (" Damage" , " MORE" , overexertionExertedDamage * exertingWarcryCount , " Max Autoexertion Support" )
2565+ skillModList :NewMod (" Damage" , " MORE" , echoesOfCreationExertedDamage * exertingWarcryCount , " Max Echoes of Creation" )
25962566 else
25972567 skillModList :NewMod (" Damage" , " INC" , incExertedAttacks * globalOutput .ExertedAttackUptimeRatio / 100 , " Uptime Scaled Exerted Attacks" )
25982568 skillModList :NewMod (" Damage" , " MORE" , moreExertedAttacks * globalOutput .ExertedAttackUptimeRatio / 100 , " Uptime Scaled Exerted Attacks" )
25992569 skillModList :NewMod (" Damage" , " MORE" , moreExertedAttackDamage * globalOutput .ExertedAttackUptimeRatio / 100 , " Uptime Scaled Exerted Attack Damage" , ModFlag .Attack )
2600- skillModList :NewMod (" Damage" , " MORE" , autoExertionExertedDamage * globalOutput .GlobalWarcryUptimeRatio / 100 , " Uptime Scaled Autoexertion Support" )
2570+ skillModList :NewMod (" Damage" , " MORE" , overexertionExertedDamage * globalOutput .GlobalWarcryUptimeRatio / 100 , " Uptime Scaled Autoexertion Support" )
26012571 skillModList :NewMod (" Damage" , " MORE" , echoesOfCreationExertedDamage * globalOutput .GlobalWarcryUptimeRatio / 100 , " Uptime Scaled Echoes of Creation" )
26022572 end
26032573 globalOutput .ExertedAttackAvgDmg = calcLib .mod (skillModList , skillCfg , " ExertIncrease" )
@@ -5358,7 +5328,7 @@ function calcs.offence(env, actor, activeSkill)
53585328 end
53595329 local averageWarcryCount = output .GlobalWarcryUptimeRatio / 100
53605330 if activeSkill .skillModList :Flag (nil , " Condition:WarcryMaxHit" ) then
5361- averageWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount " )
5331+ averageWarcryCount = env .modDB :Sum (" BASE" , nil , " ExertingWarcryCount " )
53625332 end
53635333 if averageWarcryCount and dmgType and dmgMult then
53645334 local dmgBreakdown , totalDmgTaken = calcs .applyDmgTakenConversion (activeSkill , output , breakdown , dmgType , (output .Life or 0 ) * dmgMult / 100 * averageWarcryCount )
0 commit comments