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 以上