DefaultCaptureRateCalculator
@Service
默认捕捉率计算器。
公式说明:
先解析球修正
计算状态倍率
计算有效捕获率
max(1, captureRate + flatBonus)计算 HP 因子
((3 * maxHp) - (2 * currentHp)) / (3 * maxHp)计算捕捉值
a = effectiveCaptureRate * hpFactor * ballMultiplier * statusMultiplier若
a >= 255则必定成功否则计算四摇阈值
b = 1048560 / sqrt(sqrt(16711680 / a))将单摇概率提升为四摇全过的整体成功概率
注意:
这里返回的是“理论成功概率”
battle 层若需要实际摇晃结果,可以在后续用 CaptureRateResult.shakeCheckThreshold 配合随机源再做判定