環境の物理方面に固いポケモンを吹っ飛ばす火力指数
カイリュー以外HB特化で計算。
左の指数から乱数で落とせて、右の指数で確定一発になる (最高乱数~ 最低乱数の範囲)
後述のスクリプトで計算。
もはや物理耐久ランキング。
クレベース 118316 ~ 139507
H202
B259
ディンルー 115078 ~ 135800
H262
B194
ヘイラッシャ 106473 ~ 125605
H257
B183
テツノカイナ 104000 ~ 122800
H261
B176
H252カイリュー(マルスケ込み) 102978 ~ 121796
H198
B115
ポリゴン2(進化のきせき) 101578 ~ 120191
H192
B156 * 1.5
チオンジェン(特性込み) 96658 ~ 114370
H192
B167
ガチグマ(アカツキ) 94071 ~ 110823
H220
B189
キョジオーン 93637 ~ 110455
H207
B200
カバルドン 90950 ~ 107525
H215
B187
ママンボウ 89307 ~ 105455
H272
B145
ブリジュラス 89091 ~ 105000
H197
B200
ブラッキー 81314 ~ 95878
H202
B178
アーマーガー 79746 ~ 94210
H205
B172
ドヒドイデ 79419 ~ 93673
H157
B224
ハッサム 64800 ~ 76582
H: 177
B: 162
実際に計算してみると、耐久指数のランキングでは見えなかった硬さがわかって良い。
ドヒドイデってこんなに柔らかかったのか。
あとカイリューバグってる。
`
使ったスクリプト
function caclulateDamageRange(powerIndex, defenceStatus) {
// 攻撃側のレベル×2÷5+2→切り捨て
let p1 = Math.floor((50 * 2) / 5 + 2);
// * 物理技(特殊技)の威力×攻撃側のこうげき(とくこう)÷防御側のぼうぎょ(とくぼう)→切り捨て
const p2 = Math.floor((p1 * powerIndex) / defenceStatus);
// / 50 + 2 切り捨て
const p3 = Math.floor(p2 / 50) + 2;
// ×乱数(0.85, 0.86, …… ,0.99, 1.00 のどれか)→切り捨て
return [Math.floor(p3 * 0.85), p3];
}
function caclulateDamageLine(hp, defence) {
let result = {};
for (let power = 0; power < 1000000; power++) {
const [minDamage, maxDamage] = caclulateDamageRange(power, defence);
if (!result.max && maxDamage > hp) {
result.max = power;
}
if (!result.min && minDamage > hp) {
result.min = power;
}
if (result.min && result.max) {
break;
}
}
console.log(`${result.max} ~ ${result.min}`);
}
// 例ハッサム
caclulateDamageLine(177, 162);
ダメージ計算式はここを参考。
ダメージ計算ツールと一致したのであってそう。
この記事が気に入ったらサポートをしてみませんか?