@@ -2318,6 +2318,7 @@ function calcs.offence(env, actor, activeSkill)
2318
2318
2319
2319
-- Exerted Attack members
2320
2320
local exertedDoubleDamage = env .modDB :Sum (" BASE" , cfg , " ExertDoubleDamageChance" )
2321
+ local exertingWarcryCount = env .modDB :Sum (" BASE" , nil , " ExertingWarcryCount" )
2321
2322
globalOutput .OffensiveWarcryEffect = 1
2322
2323
globalOutput .MaxOffensiveWarcryEffect = 1
2323
2324
globalOutput .TheoreticalOffensiveWarcryEffect = 1
@@ -2333,11 +2334,6 @@ function calcs.offence(env, actor, activeSkill)
2333
2334
if value .activeEffect .grantedEffect .name == " Ancestral Cry" and activeSkill .skillTypes [SkillType .MeleeSingleTarget ] and not globalOutput .AncestralCryCalculated then
2334
2335
globalOutput .AncestralCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
2335
2336
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
2341
2337
globalOutput .AncestralCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
2342
2338
globalOutput .AncestralExertsCount = env .modDB :Sum (" BASE" , nil , " NumAncestralExerts" ) or 0
2343
2339
local baseUptimeRatio = m_min ((globalOutput .AncestralExertsCount / output .Speed ) / (globalOutput .AncestralCryCooldown + globalOutput .AncestralCryCastTime ), 1 ) * 100
@@ -2360,11 +2356,6 @@ function calcs.offence(env, actor, activeSkill)
2360
2356
elseif value .activeEffect .grantedEffect .name == " Infernal Cry" and not globalOutput .InfernalCryCalculated then
2361
2357
globalOutput .InfernalCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
2362
2358
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
2368
2359
globalOutput .InfernalCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
2369
2360
if activeSkill .skillTypes [SkillType .Melee ] then
2370
2361
globalOutput .InfernalExertsCount = env .modDB :Sum (" BASE" , nil , " NumInfernalExerts" ) or 0
@@ -2390,11 +2381,6 @@ function calcs.offence(env, actor, activeSkill)
2390
2381
globalOutput .CreateWarcryOffensiveCalcSection = true
2391
2382
globalOutput .IntimidatingCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
2392
2383
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
2398
2384
globalOutput .IntimidatingCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
2399
2385
globalOutput .IntimidatingExertsCount = env .modDB :Sum (" BASE" , nil , " NumIntimidatingExerts" ) or 0
2400
2386
local baseUptimeRatio = m_min ((globalOutput .IntimidatingExertsCount / output .Speed ) / (globalOutput .IntimidatingCryCooldown + globalOutput .IntimidatingCryCastTime ), 1 ) * 100
@@ -2440,11 +2426,6 @@ function calcs.offence(env, actor, activeSkill)
2440
2426
globalOutput .CreateWarcryOffensiveCalcSection = true
2441
2427
globalOutput .RallyingCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
2442
2428
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
2448
2429
globalOutput .RallyingCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
2449
2430
globalOutput .RallyingExertsCount = env .modDB :Sum (" BASE" , nil , " NumRallyingExerts" ) or 0
2450
2431
local baseUptimeRatio = m_min ((globalOutput .RallyingExertsCount / output .Speed ) / (globalOutput .RallyingCryCooldown + globalOutput .RallyingCryCastTime ), 1 ) * 100
@@ -2491,11 +2472,6 @@ function calcs.offence(env, actor, activeSkill)
2491
2472
globalOutput .CreateWarcryOffensiveCalcSection = true
2492
2473
globalOutput .SeismicCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
2493
2474
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
2499
2475
globalOutput .SeismicCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
2500
2476
globalOutput .SeismicExertsCount = env .modDB :Sum (" BASE" , nil , " NumSeismicExerts" ) or 0
2501
2477
local baseUptimeRatio = m_min ((globalOutput .SeismicExertsCount / output .Speed ) / (globalOutput .SeismicCryCooldown + globalOutput .SeismicCryCastTime ), 1 ) * 100
@@ -2525,11 +2501,6 @@ function calcs.offence(env, actor, activeSkill)
2525
2501
elseif value .activeEffect .grantedEffect .name == " Battlemage's Cry" and not globalOutput .BattleMageCryCalculated then
2526
2502
globalOutput .BattleMageCryDuration = calcSkillDuration (value .skillModList , value .skillCfg , value .skillData , env , enemyDB )
2527
2503
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
2533
2504
globalOutput .BattleMageCryCastTime = calcWarcryCastTime (value .skillModList , value .skillCfg , value .skillData , actor )
2534
2505
if activeSkill .skillTypes [SkillType .Melee ] then
2535
2506
globalOutput .BattleCryExertsCount = env .modDB :Sum (" BASE" , nil , " NumBattlemageExerts" ) or 0
@@ -2570,7 +2541,6 @@ function calcs.offence(env, actor, activeSkill)
2570
2541
for _ , cryTimeRatio in ipairs (warcryList ) do
2571
2542
globalOutput .ExertedAttackUptimeRatio = m_max (globalOutput .ExertedAttackUptimeRatio or 0 , globalOutput [cryTimeRatio ] or 0 )
2572
2543
end
2573
- local warcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount" )
2574
2544
if globalBreakdown then
2575
2545
globalBreakdown .ExertedAttackUptimeRatio = { }
2576
2546
t_insert (globalBreakdown .ExertedAttackUptimeRatio , s_format (" Maximum of:" ))
@@ -2585,19 +2555,19 @@ function calcs.offence(env, actor, activeSkill)
2585
2555
local incExertedAttacks = skillModList :Sum (" INC" , cfg , " ExertIncrease" )
2586
2556
local moreExertedAttacks = skillModList :Sum (" MORE" , cfg , " ExertIncrease" )
2587
2557
local moreExertedAttackDamage = skillModList :Sum (" MORE" , cfg , " ExertAttackIncrease" )
2588
- local autoExertionExertedDamage = skillModList :Sum (" MORE" , cfg , " OverexertionExertAverageIncrease" )
2558
+ local overexertionExertedDamage = skillModList :Sum (" MORE" , cfg , " OverexertionExertAverageIncrease" )
2589
2559
local echoesOfCreationExertedDamage = skillModList :Sum (" MORE" , cfg , " EchoesExertAverageIncrease" )
2590
2560
if activeSkill .skillModList :Flag (nil , " Condition:WarcryMaxHit" ) then
2591
2561
skillModList :NewMod (" Damage" , " INC" , incExertedAttacks , " Exerted Attacks" )
2592
2562
skillModList :NewMod (" Damage" , " MORE" , moreExertedAttacks , " Exerted Attacks" )
2593
2563
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" )
2596
2566
else
2597
2567
skillModList :NewMod (" Damage" , " INC" , incExertedAttacks * globalOutput .ExertedAttackUptimeRatio / 100 , " Uptime Scaled Exerted Attacks" )
2598
2568
skillModList :NewMod (" Damage" , " MORE" , moreExertedAttacks * globalOutput .ExertedAttackUptimeRatio / 100 , " Uptime Scaled Exerted Attacks" )
2599
2569
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" )
2601
2571
skillModList :NewMod (" Damage" , " MORE" , echoesOfCreationExertedDamage * globalOutput .GlobalWarcryUptimeRatio / 100 , " Uptime Scaled Echoes of Creation" )
2602
2572
end
2603
2573
globalOutput .ExertedAttackAvgDmg = calcLib .mod (skillModList , skillCfg , " ExertIncrease" )
@@ -5358,7 +5328,7 @@ function calcs.offence(env, actor, activeSkill)
5358
5328
end
5359
5329
local averageWarcryCount = output .GlobalWarcryUptimeRatio / 100
5360
5330
if activeSkill .skillModList :Flag (nil , " Condition:WarcryMaxHit" ) then
5361
- averageWarcryCount = env .modDB :Sum (" BASE" , nil , " GlobalWarcryCount " )
5331
+ averageWarcryCount = env .modDB :Sum (" BASE" , nil , " ExertingWarcryCount " )
5362
5332
end
5363
5333
if averageWarcryCount and dmgType and dmgMult then
5364
5334
local dmgBreakdown , totalDmgTaken = calcs .applyDmgTakenConversion (activeSkill , output , breakdown , dmgType , (output .Life or 0 ) * dmgMult / 100 * averageWarcryCount )
0 commit comments