@@ -5553,11 +5553,15 @@ function calcs.offence(env, actor, activeSkill)
5553
5553
output .WithBleedDPS = baseDPS
5554
5554
end
5555
5555
if skillFlags .impale then
5556
+ local mainHandImpaleDPS , offHandImpaleDPS
5556
5557
if skillFlags .attack and skillData .doubleHitsWhenDualWielding and skillFlags .bothWeaponAttack then
5557
- -- due to how its being combined
5558
- output .ImpaleModifier = output .ImpaleModifier / 2
5558
+ -- separately combine
5559
+ mainHandImpaleDPS = output .MainHand .impaleStoredHitAvg * ((output .MainHand .ImpaleModifier or 1 ) - 1 ) * output .MainHand .HitChance / 100 * skillData .dpsMultiplier
5560
+ offHandImpaleDPS = output .OffHand .impaleStoredHitAvg * ((output .OffHand .ImpaleModifier or 1 ) - 1 ) * output .OffHand .HitChance / 100 * skillData .dpsMultiplier
5561
+ output .ImpaleDPS = mainHandImpaleDPS + offHandImpaleDPS
5562
+ else
5563
+ output .ImpaleDPS = output .impaleStoredHitAvg * ((output .ImpaleModifier or 1 ) - 1 ) * output .HitChance / 100 * skillData .dpsMultiplier
5559
5564
end
5560
- output .ImpaleDPS = output .impaleStoredHitAvg * ((output .ImpaleModifier or 1 ) - 1 ) * output .HitChance / 100 * skillData .dpsMultiplier
5561
5565
if skillData .showAverage then
5562
5566
output .WithImpaleDPS = output .AverageDamage + output .ImpaleDPS
5563
5567
output .CombinedAvg = output .CombinedAvg + output .ImpaleDPS
@@ -5572,19 +5576,34 @@ function calcs.offence(env, actor, activeSkill)
5572
5576
output .CombinedDPS = output .CombinedDPS + output .ImpaleDPS
5573
5577
if breakdown then
5574
5578
breakdown .ImpaleDPS = {}
5575
- t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(average physical hit before mitigation)" , output .impaleStoredHitAvg ))
5576
- t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(chance to hit)" , output .HitChance / 100 ))
5577
- if skillFlags .notAverage then
5578
- t_insert (breakdown .ImpaleDPS , output .HitSpeed and s_format (" x %.2f ^8(hit rate)" , output .HitSpeed ) or s_format (" x %.2f ^8(%s rate)" , output .Speed , skillFlags .attack and " attack" or " cast" ))
5579
- end
5580
- t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(impale damage multiplier)" , ((output .ImpaleModifier or 1 ) - 1 )))
5581
- if skillData .dpsMultiplier ~= 1 then
5582
- t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(dps multiplier for this skill)" , skillData .dpsMultiplier ))
5583
- end
5584
- if quantityMultiplier > 1 then
5585
- t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(quantity multiplier for this skill)" , quantityMultiplier ))
5579
+ if skillFlags .attack and skillData .doubleHitsWhenDualWielding and skillFlags .bothWeaponAttack then
5580
+ t_insert (breakdown .ImpaleDPS , s_format (" Main Hand:" ))
5581
+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(MH average physical hit before mitigation)" , output .MainHand .impaleStoredHitAvg ))
5582
+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(MH chance to hit)" , output .MainHand .HitChance / 100 ))
5583
+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(MH impale damage multiplier)\n " , ((output .MainHand .ImpaleModifier or 1 ) - 1 )))
5584
+ t_insert (breakdown .ImpaleDPS , s_format (" = %.2f" , mainHandImpaleDPS ))
5585
+ t_insert (breakdown .ImpaleDPS , s_format (" Off Hand:" ))
5586
+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(OH average physical hit before mitigation)" , output .OffHand .impaleStoredHitAvg ))
5587
+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(OH chance to hit)" , output .OffHand .HitChance / 100 ))
5588
+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(OH impale damage multiplier)" , ((output .OffHand .ImpaleModifier or 1 ) - 1 )))
5589
+ t_insert (breakdown .ImpaleDPS , s_format (" = %.2f" , offHandImpaleDPS ))
5590
+ t_insert (breakdown .ImpaleDPS , s_format (" Combined total:" ))
5591
+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f + %.2f" , mainHandImpaleDPS , offHandImpaleDPS ))
5592
+ else
5593
+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(average physical hit before mitigation)" , output .impaleStoredHitAvg ))
5594
+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(chance to hit)" , output .HitChance / 100 ))
5595
+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(impale damage multiplier)" , ((output .ImpaleModifier or 1 ) - 1 )))
5586
5596
end
5587
- t_insert (breakdown .ImpaleDPS , s_format (" = %.1f" , output .ImpaleDPS ))
5597
+ if skillFlags .notAverage then
5598
+ t_insert (breakdown .ImpaleDPS , output .HitSpeed and s_format (" x %.2f ^8(hit rate)" , output .HitSpeed ) or s_format (" x %.2f ^8(%s rate)" , output .Speed , skillFlags .attack and " attack" or " cast" ))
5599
+ end
5600
+ if skillData .dpsMultiplier ~= 1 then
5601
+ t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(dps multiplier for this skill)" , skillData .dpsMultiplier ))
5602
+ end
5603
+ if quantityMultiplier > 1 then
5604
+ t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(quantity multiplier for this skill)" , quantityMultiplier ))
5605
+ end
5606
+ t_insert (breakdown .ImpaleDPS , s_format (" = %.1f" , output .ImpaleDPS ))
5588
5607
end
5589
5608
end
5590
5609
0 commit comments