原神が好きなので原神でプログラミングの勉強をする その5
前回の続きです。
前回までで味方側のデータは全部出し終わったので、敵の情報を入れて最終的なダメージを出したいと思います。
敵の防御補正
防御補正は下記の計算式で出せるようです。
今回はとある場所にいるLv85の遺跡守衛のデータで試してみます。
> const syuei_def_ratio = (90 + 100) / (1 * 1 * (85 + 100) + 90 + 100)
undefined
> syuei_def_ratio
0.5066666666666667
防御補正は0.5になるようですね。
敵の元素耐性補正
元素耐性の計算式は下記のようになるようです。
遺跡守衛の炎への耐性は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)
この記事が気に入ったらサポートをしてみませんか?