Add support for Forking Critical Strikes #1100
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1081 .
Description of the problem being solved:
As Tangletongue is one of most used uniques in current patch, it should be added as its addition would be very useful to most of players using PoB.
Forking crits, according to in-game descriptions and players' observation:
Implementation adds flag CritFork from modifier, which have to support:
Double roll on Critical Chance
(same as already implemented Lucky critical, but after Lucky happens)
50% base chance -> 75% odds of hitting single critical strike with Forking
50% base chance -> 75% of hitting with Lucky -> 93,75% of hitting with Fork/Lucky
Lucky should be first as each Fork has separate Lucky roll if both modifiers are together.
Multiplying Crit Multplier on forking Crits
if both rolls succeed, then multiplier is doubled:
e.g. 50% odds for fork -> half of crits are 300 multi, other half is 200 multi (assuming default multiplier)
Implementation calculates it using average Crit Multiplier (for example above, it would be 250):
(critchance before fork) * (critchance before fork) / (critchance before accuracy penalty) -> average MORE multiplier provided by forking, e.g. 50% base -> 25% for fork hit/25% more crit multiplier
Correction for accuracy must be made due to calculating only for critical hits (other dont have crit multiplier, so they're irrelevant for average), so avg. crit multplier stays same as intended, despite hit chance changing (and, due to it, effective crit chance).
Unresolved
Link to a build that showcases this PR:
https://maxroll.gg/poe2/pob/4f59g0on
After screenshot: