レトロゲーム
攻略サイト
 ワールド9
FC
ドラゴンクエスト2 
悪霊の神々

敵の通常攻撃のダメージ計算

ファミコンドラゴンクエスト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に確定し、計算は終了します。(下記の(1)(2)(3)の処理をしません。)
    • 3/4の確率で下記の処理(イ)でdが計算されます。(tは一時変数です。)
      (イ)弱ダメージ計算処理
      t = A / 4 * R / 256
      d = t - t / 4
  • X  A / 8の場合は最弱ダメージパターンになり、この場合も確率で下記の2通りに分岐します。
    • 1/2の確率でダメージは0に確定し、計算は終了します。(下記の(1)(2)(3)の処理をしません。)
    • 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で、54197の値を取ります。

解説

最初の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)の処理で、攻撃を受ける仲間が防御しているとダメージが半減します。