原神が好きなので原神でプログラミングの勉強をする その5

前回の続きです。

ダメージ = (攻撃力 × 天賦倍率 × 特殊乗算 + 実数ダメージ加算) × ダメージバフ補正 × 会心補正 × 元素反応補正 × 敵の防御補正 × 敵の元素耐性補正
原神 Wiki

前回までで味方側のデータは全部出し終わったので、敵の情報を入れて最終的なダメージを出したいと思います。

敵の防御補正

防御補正は下記の計算式で出せるようです。

 防御補正  = (キャラレベル+100) / {(1 - 防御無視%)×(1 - 防御デバフ%)×(敵レベル+100)+キャラレベル+100}
原神 Wiki

今回はとある場所にいるLv85の遺跡守衛のデータで試してみます。

const syuei_def_ratio = (90 + 100) / (1 * 1 * (85 + 100) + 90 + 100)
undefined
> syuei_def_ratio
0.5066666666666667

防御補正は0.5になるようですね。

敵の元素耐性補正

元素耐性の計算式は下記のようになるようです。

元素耐性補正 = [敵の現耐性%に応じて以下の3つに場合分けされる]
 0%未満      の場合: 1 - 敵の現耐性% / 2
 0%以上75%未満 の場合: 1 - 敵の現耐性%
 75%以上      の場合: 1 / (4 × 敵の現耐性% + 1)
原神 Wiki

遺跡守衛の炎への耐性は10%らしいのですが、genshin-dbにはそれっぽいデータがありませんでした。私が見つけられてないだけ?

倍率は0.9となります。

最終計算!

いよいよ全ての計算を行なってみます!

> (hutao_goma_90_attack * hutao_combat3_13 * 1 + 0 ) * 1 * 1 * 1 * syuei_def_ratio * 0.9
2224.640693185107
> (hutao_goma_90_attack * hutao_combat3_13 * 1 + 0 ) * 1 * (1 + crit_ratio) * 1 * syuei_def_ratio * 0.9
5662.902871647467

Lv90胡桃がLv90製錬1の護摩の杖を装備し、HP満タンの状態でLv13の元素爆発をLV85の遺跡守衛に打った時のダメージは・・・

クリティカリ発生なし:2224
クリティカル発生あり:5662

となりました!

某サイトでのシミュ結果

某シミュサイトの結果と比べても誤差は1となっています。(某サイトは小数点なしで計算しているのかな?)

実際に同条件で敵を殴ってみると2224ダメージが出ました!クリティカルはこの条件だと会心率5%しかないので諦めました・・・

ということで今回はここまで。

また次回はしばらく開くかもしれませんが、次は関数を作成してより使い勝手の良いアプリを作ってみたいと思います。

今回までのコード

// 前回まで
const genshindb = require('genshin-db');
genshindb.setOptions({queryLanguages: ['Japanese'], resultLanguage'Japanese'})
const hutao = genshindb.characters('胡桃');
const goma = genshindb.weapons('護摩の杖');
const hutao_goma_90_attack = (hutao.stats(90).attack + goma.stats(90).attack) * (1 + 0) + 0 + 0 + (hutao.stats(90).hp * 1.2 * 0.008);
const hutao_skill = genshindb.talent('胡桃');
const hutao_combat3_13 = hutao_skill.combat3.attributes.parameters.param1[12];
const crit_ratio = hutao.stats(90).specialized + goma.stats(90).specialized;

// 今回
const kakashi = genshindb.enemies('遺跡守衛');
const syuei_def_ratio = (90 + 100) / (1 * 1 * (85 + 100) + 90 + 100)

この記事が気に入ったらサポートをしてみませんか?