Openarl / PathOfBuilding

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

Max DPS after ramp up #160

Open myrahz opened 7 years ago

myrahz commented 7 years ago

Certain situations like multiple poison stacks or multiple ignites aren't being taken into account when calculating DPS.

Lets say I have a DPS of 20 000, Poison DPS is 6 000, 3 second poison duration and 0.5 attack/cast rate.

Based on my attack/cast rate I'll apply multiple poisons. For instance if I have a 3 second poison duration and a 0.5 attack/cast rate, I'll be able to apply 5 concurrent poisons, therefore my Max DPS (which would take 3 seconds to ramp) would be DPS + ( Poison DPS * number of concurrent poisons )

My Max DPS, which would be achieved after 3 seconds of fighting the same target, would be 20 000 + (5*6 000) = 50 000.

This could also be applied to ignites and emberwake.

Openarl commented 7 years ago

The program already does this to calculate the Total DPS inc. Poison stat. Is there a specific setup where that doesn't appear to be working?

Edit: And it does likewise for Total DPS inc. Ignite when you have Emberwake equipped.

myrahz commented 7 years ago

Sorry, forgot to mention it is for skills that have Average Damage but no DPS.

Openarl commented 7 years ago

Oh, well those skills will have Total Damage inc. Poison/Ignite calculated instead. The program won't be able to calculate DPS with Poison if it can't calculate the skill's DPS; the fact that it's showing Average Damage means it can't calculate the skill's actual hit rate (usually due to complications in the skill's mechanics).

myrahz commented 7 years ago

What about handling those skill mechanics? Similar to Blade Flurry.

I can think of a few like Firestorm (which I've opened an issue with some sort of calculation), Fire Nova Mine.

(Fire Nova Mine Calcs) https://docs.google.com/spreadsheets/d/1qs8_--R6Wiz9wjdh2PENPJiZ8HD7HaezJzA5DEFB5PU/edit?usp=sharing

Also, Minefield is reducing the damage due to the negative multiplier it has, yet damage isn't being tripled due to the fact that you lay 3 mines instead of one, that would be really useful.

Openarl commented 7 years ago

Of course that would be the ideal solution; but more detailed simulation of skill mechanics can get very complicated, given the variety of skills and supports in the game (many of which would require code that's specific to that skill). It's not something that I've really had the time to address, aside from a few skills like Blade Flurry that aren't too difficult to handle, and I have bigger priorities at the moment (particularly flask support).

myrahz commented 7 years ago

Obviously, I'm just giving ideas, because I usually have a lot of them, you handle them the way you want :) I also consider Flask Support is a bigger priority, that would be awesome.