PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding
Calculations for refresh duration chance (e.g. Refresh Ignite)
まだ誰も着手していません。
- 主要言語
- Lua
- スター
- 5.4k
- フォーク
- 2.4k
- 平均マージ
- 1日 12時間
- マージ済み PR(30日)
- 26
説明
Check for duplicates
- I've checked for duplicate open and closed issues by using the search function of the issue tracker
What platform are you running Path of Building on?
Linux - PoB Frontend
Is your feature request related to a problem?
Currently the chance to refresh ignite duration mods are not supported by PoB.
Describe the solution you'd like
Ailment duration refresh, such as the Mastery "50% chance to refresh ignite duration on critical strike" will on average result in an extended duration of the ailment, based on the chance to proc. From my testing, it can be calculated as follows:
Given:
D = base duration of the ailment (including all increases/decreases, faster/slower mods, etc.)
t = attack/cast time of the critting hit
p = probability that a refresh will occur (e.g. 50% refresh chance * crit chance * hit chance)
q = 1 - p
n = the number of hits during the ailment's base lifetime
n = \lfloor D / t \rfloor
Then the expected total duration is:
t \cdot \frac{1 - q^{n}}{p \, q^{n}} + (D - n \, t)
This looks at the number of hits it would take for n attempts to refresh to fail in a row, and then basing the average on how long it will take for that to happen.
Describe alternatives you've considered
No response
Additional context
As an example of the impact of this, suppose you have:
D = 4 seconds (ignite duration)
t = 0.45 seconds (cast time)
p = 0.1 (50% of a 0.2 crit chance)
With this function it would mean that, on average, the time an individual instance of ignite would last is ~6.35s. This final value would then be used to impact certain other calculations, such as the number of ailment stacks.
Note that this does not handle the special case where p -> 1. If it's guaranteed to refresh the duration (or close to it), the duration is in essence infinite. I don't know what impact that would have on other calculations. There may be the need for an alternative metric to be used, such as the expected lifespan of the entity that is ignited.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
この issue ではファイル、テスト、エントリーポイントのいずれも指定されていません。まず、提案されている期待持続時間の式と、p→1 におけるその制限を確認し、次に refresh chance と ailment stacks が他の計算にどのように影響すべきかを判断してください。完了条件は、refresh-duration effects がサポートされ、guaranteed-refresh case に定義済みの挙動があることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- lua
- 領域
- backend
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 25/100