@@ -5435,7 +5435,15 @@ function calcs.offence(env, actor, activeSkill)
54355435 output .CombinedAvgToMonsterLife = output .CombinedAvg / monsterLife * 100
54365436 end
54375437 if skillFlags .impale then
5438- output .ImpaleDPS = output .PhysicalStoredCombinedAvg * ((output .ImpaleModifier or 1 ) - 1 ) * output .HitChance / 100 * skillData .dpsMultiplier
5438+ local mainHandImpaleDPS , offHandImpaleDPS
5439+ if skillFlags .attack and skillData .doubleHitsWhenDualWielding and skillFlags .bothWeaponAttack then
5440+ -- separately combine
5441+ mainHandImpaleDPS = output .MainHand .impaleStoredHitAvg * ((output .MainHand .ImpaleModifier or 1 ) - 1 ) * output .MainHand .HitChance / 100 * skillData .dpsMultiplier
5442+ offHandImpaleDPS = output .OffHand .impaleStoredHitAvg * ((output .OffHand .ImpaleModifier or 1 ) - 1 ) * output .OffHand .HitChance / 100 * skillData .dpsMultiplier
5443+ output .ImpaleDPS = mainHandImpaleDPS + offHandImpaleDPS
5444+ else
5445+ output .ImpaleDPS = output .PhysicalStoredCombinedAvg * ((output .ImpaleModifier or 1 ) - 1 ) * output .HitChance / 100 * skillData .dpsMultiplier
5446+ end
54395447 if skillData .showAverage then
54405448 output .WithImpaleDPS = output .AverageDamage + output .ImpaleDPS
54415449 output .CombinedAvg = output .CombinedAvg + output .ImpaleDPS
@@ -5450,19 +5458,34 @@ function calcs.offence(env, actor, activeSkill)
54505458 output .CombinedDPS = output .CombinedDPS + output .ImpaleDPS
54515459 if breakdown then
54525460 breakdown .ImpaleDPS = {}
5453- t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(average physical hit before mitigation)" , output .PhysicalStoredCombinedAvg ))
5454- t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(chance to hit)" , output .HitChance / 100 ))
5455- if skillFlags .notAverage then
5456- 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" ))
5457- end
5458- t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(impale damage multiplier)" , ((output .ImpaleModifier or 1 ) - 1 )))
5459- if skillData .dpsMultiplier ~= 1 then
5460- t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(dps multiplier for this skill)" , skillData .dpsMultiplier ))
5461- end
5462- if quantityMultiplier > 1 then
5463- t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(quantity multiplier for this skill)" , quantityMultiplier ))
5461+ if skillFlags .attack and skillData .doubleHitsWhenDualWielding and skillFlags .bothWeaponAttack then
5462+ t_insert (breakdown .ImpaleDPS , s_format (" Main Hand:" ))
5463+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(MH average physical hit before mitigation)" , output .MainHand .impaleStoredHitAvg ))
5464+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(MH chance to hit)" , output .MainHand .HitChance / 100 ))
5465+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(MH impale damage multiplier)\n " , ((output .MainHand .ImpaleModifier or 1 ) - 1 )))
5466+ t_insert (breakdown .ImpaleDPS , s_format (" = %.2f" , mainHandImpaleDPS ))
5467+ t_insert (breakdown .ImpaleDPS , s_format (" Off Hand:" ))
5468+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(OH average physical hit before mitigation)" , output .OffHand .impaleStoredHitAvg ))
5469+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(OH chance to hit)" , output .OffHand .HitChance / 100 ))
5470+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(OH impale damage multiplier)" , ((output .OffHand .ImpaleModifier or 1 ) - 1 )))
5471+ t_insert (breakdown .ImpaleDPS , s_format (" = %.2f" , offHandImpaleDPS ))
5472+ t_insert (breakdown .ImpaleDPS , s_format (" Combined total:" ))
5473+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f + %.2f" , mainHandImpaleDPS , offHandImpaleDPS ))
5474+ else
5475+ t_insert (breakdown .ImpaleDPS , s_format (" %.2f ^8(average physical hit before mitigation)" , output .PhysicalStoredCombinedAvg ))
5476+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(chance to hit)" , output .HitChance / 100 ))
5477+ t_insert (breakdown .ImpaleDPS , s_format (" x %.2f ^8(impale damage multiplier)" , ((output .ImpaleModifier or 1 ) - 1 )))
54645478 end
5465- t_insert (breakdown .ImpaleDPS , s_format (" = %.1f" , output .ImpaleDPS ))
5479+ if skillFlags .notAverage then
5480+ 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" ))
5481+ end
5482+ if skillData .dpsMultiplier ~= 1 then
5483+ t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(dps multiplier for this skill)" , skillData .dpsMultiplier ))
5484+ end
5485+ if quantityMultiplier > 1 then
5486+ t_insert (breakdown .ImpaleDPS , s_format (" x %g ^8(quantity multiplier for this skill)" , quantityMultiplier ))
5487+ end
5488+ t_insert (breakdown .ImpaleDPS , s_format (" = %.1f" , output .ImpaleDPS ))
54665489 end
54675490 end
54685491
0 commit comments