潜伏状態のスタブ

スカのスタブは「潜伏状態の場合、攻撃力50%増」という説明がある。この効果を検証してみたい。

実験

ロイド北部未開拓地で、レパード(自然系)をスタブで叩く。

攻撃するのは
40スカ
スタブ攻撃力: 374 - 377
クリダメ増: 115%
ダメ増(自然): 0%

防御力

レパードの物理防御力が分からないので、まずは普通にスタブで叩いてクリダメ値を調べてみる。出現したクリダメ値はこの4つ

690, 692, 694, 695

攻撃時には、攻撃力 374 - 377の中からランダムに整数が選ばれ、ダメ値計算に使われるので、攻撃力とダメ値の対応はこうなるはず

374 → 690
375 → 692
376 → 694
377 → 695

このことから逆算すると、レパードの物理防御力は704と分かる。

潜伏スタブ

次に、潜伏状態からスタブを打ってみてクリダメを調べてみる。出現したクリダメ値はこの4つ。

1035, 1037, 1041, 1043

「攻撃力が50%増」と言った場合、2つの計算法が考えられる。
一つは攻撃力の範囲「374 - 377」を1.5倍し、561 - 365.5 という範囲にした後
この範囲からランダムに整数値が選ばれるという計算法。
もう一つは、まず先に「374 - 377」からランダムに整数を選び、1.5倍して計算する方法。

前者の場合ならダメ値は5つ現れるはずで、後者の場合は4つしか現れない。実際の測定ではダメ値は4つしか現れなかったので、後者の計算方法。つまり、374 - 377から整数値がランダムに選ばれ、計算がなされるはず。とすると、最初に選ばれた攻撃力と、最終的なダメ値の関係はこうなるはず。

374 → 1035
375 → 1037
376 → 1041
377 → 1043

ここで、ダメ値の増分をみてみると、 +2, +4, +2 となっている。もし、ダメ値が「最初の攻撃力の一次関数の切り捨て」になっているたとすると、こういうことは起き得ない。
なので、計算の途中で丸め処理が挟まっている可能性が高い。そして、恐らくそれは

step1. 攻撃力を1.5倍して、何らかの丸め処理をする
step2. (step1)で得られた値を攻撃力として、ダメ値を計算する。

という形になっているはず。この仮定の下で、計算に使われた攻撃力をダメ値から逆算すると

374 → 561 → 1035
375 → 562 → 1037
376 → 564 → 1041
377 → 565 → 1043

となる。ここで 375*1.5=562.5、 377*1.5=565.5 なので、「1.5倍して切り捨て」という計算が行われている事が分かる。結局計算法はこんな感じになる。

step1. 374 - 377 の間の整数をランダムに選び、1.5倍してから端数を切り捨てる。
step2. (step1)で得られた値を攻撃力として、ダメ値を計算する。

結論

「潜伏スタブは攻撃力が50%増」という説明があるけれど、その具体的なダメ値の計算法はこんな感じ。

step1. 攻撃力「〇〇~〇〇」という範囲内からランダムに整数が選ばれ、それを1.5倍し端数を切り捨てる。
step2. (step1)で得られた値を攻撃力として、あとは普通にダメ値を計算する。

そして、スタブに限らず他のスキルでも「〇〇のとき、攻撃力が??%増」となっているのはこの計算方法になっていると思う。