PathOfBuildingCommunity / PathOfBuilding

Offline build planner for Path of Exile.
https://pathofbuilding.community
Other
3.98k stars 2.08k forks source link

Impale damage doesn't take the right average damage hit to calculate impale dps #7787

Closed Maxensimon closed 2 months ago

Maxensimon commented 2 months ago

Check version

Check for duplicates

Check for support

What platform are you running Path of Building on?

Windows

What is the value from the calculation in-game?

In game the calculation is that each stack of impale take 10% of the incoming damage. So if I inflict a 10000 physical damage hit, I should have 1000 damage stored. PoB actually does this well but the average hit taken is wrong.

What is the value from the calculation in Path of Building?

I have a build with an average physical hit of 330000 physical damage. The average physical hit taken is 150000 but I cannot find this value anywhere from the impale calculation.

How to reproduce the issue

Character build code

https://pobb.in/pvEW2M29dUAN

Screenshots

image image

bdemolder commented 2 months ago

Going to give my opinion already, but we might wait for someone with a better thorough knowledge....

According to my knowledge and what I found out: https://www.poewiki.net/wiki/Receiving_damage https://poedb.tw/us/Receiving_damage ("After damage mitigation, modifiers to damage taken are applied.")

The damage taken is step 7, and impale is calculated based on unmitigated damage (end of step 3 in poe wiki): "When a hit applies impale to a target, 10% of that hit's physical damage is recorded before any damage mitigation is applied."

bdemolder commented 2 months ago

@Regisle Sorry if you don't like this tag, tell me if I should not, but I was told you might be good in answering this with almost certainty. :D

mcheese commented 2 months ago

Gonna tag in here, as I was also just trying to figure out what's wrong with my impale damage on the updated PoB. My issue, which also applies here, is that increased damage taken modifiers seem not to be applied to impale at all.

In the OPs PoB, if I disable Pride, Maim (gem) and uncheck Intimidate the average physical hit in impale calc matches the actual Average Damage. Which is all correct, given that impale is based on the pre-mitigation damage. But the final impale damage and dps does not increase when these things are enabled again. And AFAIK at least Pride and Vulnerabilitys generic physical damage taken increase should be applied to the dealt impale damage at the end.

bdemolder commented 2 months ago

Going to add a little bit easier to calculate example based on the other issue:

This way you can enable/disable the custom mod for easy damage taken calculations (10% of 1k or 500 impale dps is easier to understand)

https://pobb.in/wFfb1O9sTa5M
Seikah commented 2 months ago

It appears to handle base impale damage correctly, but the impale calculation is incomplete. It only applies physical 'damage reduction' (the specific stat gained from Armour + Additional Physical Damage Reduction), not other relevant modifiers on the enemy, such as increased/reduced/more/less damage taken.

bdemolder commented 2 months ago

Seems indeed I missed over this line in the poewiki:

"It cannot be evaded, dodged, suppressed, or blocked, but it can be affected by mechanics such as damage taken as, avoidance, damage reduction, and modifiers to damage taken, including reflect-specific modifiers."

So the issue described the base impale damage being wrong, whilst it is correct, but the eventual dps might need to take into account those things indeed like @Seikah mentioned, to be confirmed?

Seikah commented 2 months ago

Yes. Impale stores damage before mitigation, and is mitigated when it deals damage, so the enemy doesn't double-dip its defenses.

As a secondary damage reflected hit, it's mitigated normally:

I don't know how many of these are implemented in PoB for enemies. Just damage reduction and the last two?

SuperJelle commented 2 months ago

Could there be more issues with the calc in 3.25? For me, the average damage used by impale is higher than the average damage. https://i.imgur.com/RXFOrsc.png

mcheese commented 2 months ago

Yes, as noticed in #7831 critical hits are broken differently. Could you share the PoB so I can check if my current fix works for this?

SuperJelle commented 2 months ago

Yes, of course! https://pobb.in/EcCBlL7M4cW8

bdemolder commented 2 months ago

be careful @mcheese , it can happen it is higher cuz it is taking the unmitigated damage, whilst the average on top is mitigated @SuperJelle

see https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/7726

SuperJelle commented 2 months ago

I'm not sure the new calc is right. Now the value used by impale for average damage is around half of what my average damage is?

mcheese commented 2 months ago

The average base damage is before mitigation, including damage taken. So it misses all your Pride and Vulnerability effect, but gets it back in the impale damage multiplier. We are aware the whole calc breakdown may be a bit unclear and were discussing ideas how to improve it.

SuperJelle commented 2 months ago

Ahh, I think I found it. It looks like PoB is calculating Pride as increased damage taken instead of more damage taken (edit: to be clear it is only in the impale calc is it using it incorrectly). My DPS modifier is 53% increased and 20% more which is x1.836 overall while impale is using x1.72 instead.

If I multiply the impale's average damage by 1.836 I get the exact number I have under Average Damage.

mcheese commented 2 months ago

Is the 20% more from flesh and stone? That one is bugged right now (increased damage taken from HITS is missing...), I'm on it.

In the MH DMG Mod calc you can see the impale taken multiplier btw: image

SuperJelle commented 2 months ago

No, it's from pride:

2024-07-24 (2) 2024-07-24 (3)

edit: I'm not sure why I specifically accused Pride of being the culprit. I guess it could just as likely be one of the other modifiers that are causing issues.

You can have a look for yourself if you want to. I posted the pob in this thread yesterday: https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/7787#issuecomment-2244884370

mcheese commented 2 months ago

Attack (Intimidate) is not contributing.

(1 + 0.12 + 0.2 + 0.11) * 1.2 = 1.716 -> rounded for display to 1.72

SuperJelle commented 2 months ago

Should it not be counted? I don't see why the debuff would not work for Impale - it affects hit damage and Impale is a reflection of your hit.

SuperJelle commented 2 months ago

The Impale itself is not a hit. But it is based on the damage from the hit which is affected by the debuff.

mcheese commented 2 months ago

The Impale itself is not a hit. But it is based on the damage from the hit which is affected by the debuff.

No, impale damage is a hit. It's Reflected Physical Damage (and reflected damage does not proc on hit effects). And it records before debuffs or armour apply. The impale hit is then scaled by debuffs. But it is no longer an attack.

We just ingame tested for Intimidate (and Snipers Mark). And this seems to be correct. (Even if the numbers are kinda hard to test) Also, which was easier to test: "-50 Physical Damage taken from Attack Hits" (Immortal Flesh) is definitely not applying to impale damage. The test character was close to immune until impale got stacked, but took regular damage after. Which confirms that Attack damage taken modifiers to not apply to impale.

SuperJelle commented 2 months ago

Very interesting. I believe this implies that impale damage has been calculated incorrectly in every single version of PoB until now? In 2.42 which is based on PoE 3.24 impale damage is affected by Intimidate (and assuming I've done my checks correctly this has been the case since ~3.12 when I started using impale)

bdemolder commented 2 months ago

Yes, I can't speak of all versions before this, but l ast version before 3.25 had this.

Base impale damage was improved with: https://github.com/PathOfBuildingCommunity/PathOfBuilding/issues/7726

And this issue being resolved solved: