@@ -5553,11 +5553,15 @@ function calcs.offence(env, actor, activeSkill)
55535553 output .WithBleedDPS = baseDPS
55545554 end
55555555 if skillFlags .impale then
5556+ local mainHandImpaleDPS , offHandImpaleDPS
55565557 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
55595564 end
5560- output .ImpaleDPS = output .impaleStoredHitAvg * ((output .ImpaleModifier or 1 ) - 1 ) * output .HitChance / 100 * skillData .dpsMultiplier
55615565 if skillData .showAverage then
55625566 output .WithImpaleDPS = output .AverageDamage + output .ImpaleDPS
55635567 output .CombinedAvg = output .CombinedAvg + output .ImpaleDPS
@@ -5572,19 +5576,34 @@ function calcs.offence(env, actor, activeSkill)
55725576 output .CombinedDPS = output .CombinedDPS + output .ImpaleDPS
55735577 if breakdown then
55745578 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 )))
55865596 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 ))
55885607 end
55895608 end
55905609
0 commit comments