Openarl / PathOfBuilding

Offline build planner for Path of Exile.
MIT License
2.15k stars 1.04k forks source link

Vicious Projectiles applying Physical + Chaos Damage Over Time to Poison #1182

Closed emrysduvent closed 6 years ago

emrysduvent commented 6 years ago

I noticed that Vicious Projectiles is currently ~2.22x multiplier for poisons caused by physical hits on PoB.

I believe the Physical Damage Over Time more multiplier is being applied in addition to the Chaos Damage Over Time more multiplier. I don't believe poison works this way since it doesn't do any physical damage over time.

QuasiTD commented 6 years ago

Can't say for sure on the numbers, but if I had to guess it's because Vicious projectiles boosts the physical damage of the hit as well as the dot, so you get the VP multiplier on the base physical damage, which then is used to calculate the DoT damage, and then amped again by the dot buff from VP.

emrysduvent commented 6 years ago

It's definitely not that. Poison does not double dip. All dots are based off the base damage, not the base damage after damage modifiers have been applied. The previous PPAD (which should be functionally identical for Physical base damage poisons) did not have such numbers.

You can also test by adding a jewel with: 49% More Physical Attack Damage 49% More Damage Over Time

and comparing to Vicious Projectiles. Vicious Projectiles does like 1.4x more damage on PoB.

QuasiTD commented 6 years ago

Change your jewel to add projectile damage instead of physical damage(in suffixes) and it will affect poison damage. The skill tree in 3.4 was changed that increases to projectile damages also increase Dot Damage. Now I'm not sure if it's a bug in PoE or if it's like this ingame. Someone much smarter than me would need to figure that out.

Edit: Nevermind, I misremembered anyways, was the bow passives were changed from damage boost to ailments, be flat boost to damage over time.

emrysduvent commented 6 years ago

Yeah, you can even test with: 49% More Physical Attack Damage 49% More Projectile Damage 49% More Damage Over Time

(boosting your base damage two times) and it will still be way less than Vicious Projectiles for a Poison build. Also, once again, the previous PPAD gem did not have this problem, so it should be primarily the dot modifiers which were changed with the addition of Vicious Projectiles.

I'm pretty sure it's the More Physical Damage Over Time mod applying to the poison as well. This seems similar to the Burn modifiers applying to Poisons from fire damage (Volkuur's Guidance fire variant or Consuming Darkness) bug in PoB.

One hacky workaround for this currently could be to just replace the 49% More Physical Damage Over Time mod with a 49% More Bleed Damage mod since we don't have any other sources of Physical Damage Over Time (Blood Rage doesn't count since it is not scaled by such mods regardless).

QuasiTD commented 6 years ago

I think I found the spot it went off, from the dex support lua entry for vicious projectiles:

levelMods = { [1] = nil, [2] = mod("PhysicalDamage", "MORE", nil, bit.bor(ModFlag.Attack, ModFlag.Projectile)), --"support_projectile_attack_physicaldamage+%_final" [3] = mod("PhysicalDamage", "MORE", nil, ModFlag.Dot), --"support_phys_chaos_projectile_physical_damage_overtime+%_final" [4] = mod("ChaosDamage", "MORE", nil, ModFlag.Dot), --"support_phys_chaos_projectile_chaos_damage_overtime+%_final" },

If you look at Melee Phys Damage Support it looks like: levelMods = { [1] = nil, [2] = mod("PhysicalDamage", "MORE", nil, ModFlag.Melee), --"support_melee_physicaldamage+%_final" [3] = mod("Damage", "MORE", nil, 0, bit.bor(KeywordFlag.Bleed, KeywordFlag.Poison)), --"support_melee_physical_damage_poison_and_bleedingdamage+%_final_from_melee_hits" },

So thats where your double-dipping came from.

emrysduvent commented 6 years ago

I looked into those lines before, but they seem correct for the most part. If you look ingame (wiki is not updated yet), Vicious Projectiles is worded quite differently from Melee Phys now. This is because Vicious Projectiles can support non-poison chaos dots such as Caustic Arrow and Toxic Rain while Melee Phys cannot. So, Vicious Projectiles having two separate dot mods while Melee Phys having only one is correct. The problem isn't that Vicious Projectiles has two dot mods, it is that the two dot mods are both applying to Poison when only one of them (the chaos one) should.

A caveat is that I'm not sure how much the wording of ModFlag.Dot matters. If it matters a lot, it could be that just changing it to "support_phys_projectile_physical_damage_over_time+%final" would fix this. I'm unable to test atm whether this would however.

emrysduvent commented 6 years ago

Locally replacing the physical damage over time line with the bleed line from chance to bleed worked fine for me, but this is pretty hacky.

ie: replace mod("PhysicalDamage", "MORE", nil, ModFlag.Dot), --"support_phys_chaos_projectile_physical_damage_overtime+%_final"

with mod("Damage", "MORE", nil, 0, KeywordFlag.Bleed), --"support_chance_to_bleed_bleedingdamage+%_final"

Openarl commented 6 years ago

Well, crap. I really should have seen this coming, after the Burning Damage + Poison issue. I've fixed this in the next update, which will be out shortly; I've also made mechanical changes to prevent this issue from happening in the future.