multiplyFishProbability

魚が釣れる全体の確率 (getProbability) を factor 倍にする。他の全ての候補の確率は互いの比を保ったまま一律に増減する。

現在の確率を P、魚のレアリティが選ばれる確率を p、目標の確率を P' = factor * P とし、 他の候補の確率に掛かる係数を c = (1 - P') / (1 - P) とすると、次の 2 つの重みだけを変更する。

  • 魚の重み: (P' / P) / c 倍

  • レアリティの重み: (1 / c - 1 + p) / p 倍

同じレアリティの他の魚の重みと、他のレアリティの重みは変わらない。 魚がレアリティ内で唯一の重みが正の魚の場合は、レアリティの重みだけを変更する。

次の場合は特別に扱う。

  • P が 0 (重み 0 の魚や、重み 0 のレアリティの魚) の場合は何も変更しない。重みを与えるには setFishWeight を使う

  • factor が 0 の場合は魚の重みを 0 にする。同じレアリティに重みが正の他の魚がいればレアリティの重みを 1 - q 倍 (q はレアリティ内での魚の割合) にし、他の候補の比を保つ。唯一の魚ならレアリティの重みは変更しない

  • P が 1 (他に抽選対象が無い) で factor が正の場合は、確率を移す先が無いため何も変更しない

  • P' が 1 以上になる場合は確率を 1 に丸め、同じレアリティの他の魚と他のレアリティの重みを 0 にする

Return

処理した場合 true、候補外の魚なら false

Parameters

fish

魚の ID

factor

全体の確率に掛ける倍率。有限かつ 0 以上

Throws