FC ドラゴンクエスト2
 悪霊の神々
敵の通常攻撃のダメージ計算

FCドラゴンクエスト2の、敵の通常攻撃のダメージの計算方法について解説します。(味方の通常攻撃のダメージ計算方法はこれとは異なりますので注意してください。)

計算方法

まず、攻撃する敵の攻撃力AAから攻撃される仲間の守備力の半分(小数部分切り捨て)を引いた値をX、そして計算するダメージの途中計算結果を入れる変数をdとします。それから、平均128の値をとる乱数が登場しますので、それをRとします。また、:=の記号で代入を表し、除算は全て小数部分切り捨てで計算することとします。


まず最初に、ダメージ計算はXAの関係により下記の3通りに分岐します。

A ÷ 4 < Xの場合は通常ダメージパターンで、以下の式でdが計算されます。(tは一時変数です。)

t := X × R ÷ 256
d := t - t ÷ 4
・・・【ア】

A ÷ 8 < X ≦ A ÷ 4の場合は弱ダメージパターンになり、さらに確率で下記の2通りに分岐します。

1/4の確率でダメージは0に確定し、計算は終了します。

3/4の確率で下記の式でdが計算されます。(tは一時変数です。)

Y := A ÷ 4 × R ÷ 256
d := Y - Y ÷ 4
・・・【イ】

X ≦ A ÷ 8の場合は最弱ダメージパターンになり、この場合も確率で下記の2通りに分岐します。

1/2の確率でダメージは0に確定し、計算は終了します。

1/2の確率で、上記の【イ】式でdが計算されます。


計算が終了しなかった場合(式【ア】や【イ】でdの値を計算した場合)は処理が合流し、さらに以下の3つの工程を経た後のdの値が実際のダメージとなります。

(1)まず、dの値が0だった場合は、1/2の確率でdの値が1に更新されます。(1/2の確率で0のまま。)

(2)次に、攻撃される仲間が眠っている場合、d1.25倍(小数部分切り捨て)に更新されます。

(3)最後に、攻撃を受ける仲間が防御している場合、dの値は半分(小数部分切り捨て)になります。


なお、乱数Rは通常攻撃のダメージ計算に用いられるものと同じものです。大雑把には正規分布に従い、平均値は約128、標準偏差は約18.44で、54~197の値を取ります。

解説

最初の3通りの分岐は、仲間の守備力が敵の攻撃力1.5倍のところと1.75倍のところがしきい値になっています。

仲間の守備力が敵の攻撃力の約1.5倍より低ければ通常ダメージパターンとなります。この場合の平均ダメージは、敵の攻撃力1/2から仲間の守備力1/4を引いて、さらに3/4倍したものになります。仲間の攻撃の計算に似ていますが、最後に約3/4倍(【ア】式の2行目)しているので、仲間の攻撃よりダメージは低くなるようになっています。

仲間の守備力が敵の攻撃力の約1.5倍より高くなると弱ダメージパターンとなります。この場合、1/4の確率でノーダメージ、3/4の確率で敵の攻撃力9.375%程度のダメージとなります(このとき、仲間の守備力は影響しません)。

さらに仲間の守備力が上がって敵の攻撃力の約1.75倍を超えると最弱ダメージパターンになり、ノーダメージになる確率が1/2に増えます。

仲間の攻撃とは異なり、仲間の守備力が敵の攻撃力2倍を超えても敵の攻撃のダメージを0または1に抑えることはできないようになっています。


3通りの分岐の処理が終わったら、合流して(1)(2)(3)の処理が続きます。(1)の処理はほとんど意識する必要はないでしょう。(2)の処理はあまり知られていないと思います。攻撃を受ける仲間が眠っているとダメージが増えてしまう、という処理です。最後に(3)の処理で、攻撃を受ける仲間が防御しているとダメージが半減します。