PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding
Poison DPS is misleading (per LocalIdentity's YouTube comment)
Nobody has claimed this yet.
- Dominant language
- Lua
- Stars
- 5.4k
- Forks
- 2.4k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 26
Description
Per LocalIdentity's comment on YouTube ( https://www.youtube.com/watch?v=gzeNUY868vA&lc=UgxPMYfdY6504PLfhrV4AaABAg ), he's interested in suggestions for a "better way to represent poison DPS in PoB".
Monster life can predict how long a creature will be subject to damage given a certain poison curve. Ignoring any other effects, poison DPS can be represented as (DPS per poison {DPSp} * number of poison stacks {Pn}), with DPS per poison staying constant and number of poison stacks increasing linearly up to a maximum (Pn = min(tP/s, durationP/s)). For a given monster life L, L = integral (0-t) (DPSp * min(P/sx, durationP/s)) dx, which for values of t below poison duration is L = 1/2 * DPSp * P/s * t^2, and for times above poison duration is L = 1/2 * DPSp * P/s * d^2 + DPSp * P/s * (t-d). This could be used to provide time to kill monsters at specific life totals as well as effective DPS against monsters with specific life totals. Useful to provide accurate DPS against specific endgame bosses as well as a time to kill for general map mobs at certain tiers. I'd include the information in Calcs, providing both an average-case performance and worst-case performance (resistant enemies in a resistant map) for each tier of enemies {normal, magic, rare}.
For a more correct solution, PoB could simulate each poison stack given certain monster stats (since both poison DPS and poison duration vary depending on number of poisons inflicted recently), but I think it'll be a bit more involved than necessary, and may affect performance. Simplifying it so that each poison stack acts as if it's been fully ramped up is a reasonable assumption in general mapping, and is likely close to base truth for bosses.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing poison calculations and the Calcs area, which the issue identifies as the intended place for the results. Determine how current poison DPS is represented, then define the required monster-life cases and average/worst-case outputs before estimating an implementation. No files or tests are named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100