DefaultCaptureRateCalculator

@Service
class DefaultCaptureRateCalculator(captureBallPolicy: CaptureBallPolicy = DefaultCaptureBallPolicy()) : CaptureRateCalculator

默认捕捉率计算器。

公式说明:

  1. 先解析球修正

  2. 计算状态倍率

  3. 计算有效捕获率 max(1, captureRate + flatBonus)

  4. 计算 HP 因子 ((3 * maxHp) - (2 * currentHp)) / (3 * maxHp)

  5. 计算捕捉值 a = effectiveCaptureRate * hpFactor * ballMultiplier * statusMultiplier

  6. a >= 255 则必定成功

  7. 否则计算四摇阈值 b = 1048560 / sqrt(sqrt(16711680 / a))

  8. 将单摇概率提升为四摇全过的整体成功概率

注意:

Constructors

Link copied to clipboard
constructor(captureBallPolicy: CaptureBallPolicy = DefaultCaptureBallPolicy())

Functions

Link copied to clipboard
open override fun calculate(input: CaptureRateInput): CaptureRateResult

计算捕捉率相关结果。