ダメージ計算の仕様調査メモ【ポケモン】
ダメージ計算アプリを作る過程で不明点があったため、仕様を確定させるための実験を行った。
ポケモンではダメージ計算の過程で命の珠やタイプ一致補正など様々な補正がかかってくるが、それらはそれぞれ補正タイミングと補正後の処理がまちまちである。
例えば、命の珠はタイプ相性補正後のダメージ自体に補正がかかるが、拘り鉢巻の補正はA実数値にかかり、また力の鉢巻は技の威力に補正がかかる。
これらの補正タイミングは一見順不同ように思えるが、各補正の後に切り捨て処理や四捨五入処理が入ることを考えれば、その順番や処理方法よって結果に差異が生まれてくることは容易に想像できるだろう。そのため、ダメージ計算アプリを作る上でこれらの仕様の把握は非常に重要になる。
幸い、先人達の残した記録のおかげで0から仕様を検証する必要はない。ダメージ計算の仕様について事細かに書かれた参考サイトを以下に示しておくので、暇な時にでも覗いてみてほしい。
さて、参考サイトのおかげで楽々とアプリが作れると思った矢先、サイトの中に今一つ仕様が理解できない部分を見つけてしまった。
威力・実数値・ダメージへの補正についての記述部分なのだが、補正後の計算が四捨五入なのか五捨五超入なのかがよく分からないのである(表中と補足部で記述が異なっている)。
しかもこの記述では、同じ部分で補正が重複した場合に全ての補正を掛けた後に丸め処理を行うのか、各補正をかけるたびにその都度丸め処理を行うのかもよく分からなくなっている。
これは困った。
検証実験
この辺りの仕様に関してネットで色々と調べてみたが答えは見つからなかったので、仕方なく検証して確かめることにした。
考えられる計算の仕様は以下のように分かれる。
・丸め処理【四捨五入 or 五捨五超入】
・処理タイミング【各補正後 or 全補正後】
・各補正後処理の場合の処理順【珠→リフレク or リフレク→珠】
以上の仕様を検証するため、以下のポケモンを用意した。
カイリュー@命の珠 A186(252)
地震 / 雷パンチ / ぶんまわす / 羽休め
ラッキー H330(36)-B32(52)
タマゴ産み
オーロンゲ@光の粘土(適当なリフレクター要員)
今回は、同じ「ダメージにかかる補正」である命の珠とリフレクターの補正を重複させてみた。以下のように、最高乱数のダメージからダメージ計算の仕様を検証することができる。
ということで、この検証を実際に行ってみた。
この検証は、FFのマリさん(@marimaripoke)にご協力いただき実施することができました。本当にありがとうございます。
検証結果
・リフレク珠地震 → 167ダメージ
・リフレク地震 → 128ダメージ
・リフレク珠ぶん回す → 101ダメージ
ということで、ダメージにかかる補正が重複した場合、全ての補正を掛け終わった後に五捨五超入処理をすることがわかった。
威力にかかる補正や実数値にかかる補正についても同様の検証を行いたいところだが、流石に大変なのできっと今回の検証結果と同じ仕様だろうということでアプリの作成を進めていきたい。
ということで、雑メモでした。
最後まで読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?