タイプ相性計算機能
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { invoke } from "@tauri-apps/api/tauri";
|
||||
import AutoComplete from "simple-svelte-autocomplete";
|
||||
import attack_types from "../const/attack_types.json"
|
||||
|
||||
export let player1Data;
|
||||
export let player2Data;
|
||||
@@ -67,6 +68,20 @@
|
||||
};
|
||||
|
||||
// 計算
|
||||
/*
|
||||
memo:計算用テストデータ
|
||||
- level: 50,
|
||||
- power: 100(じしん)
|
||||
- attac: 182(ガブリアスA252)
|
||||
- defence: 189(キョジオーンBがVで努力値176)
|
||||
- 結果
|
||||
- タイプ一致なし:37-44
|
||||
- タイプ一致あり:55-66
|
||||
- タイプ一致あり2倍:110~132
|
||||
- タイプ一致あり4倍:220~264(セキタンザン)
|
||||
- タイプ一致あり無効: 0~0
|
||||
- タイプ一致あり等倍(半減と抜群): 76~91(これはモロバレルで計算)
|
||||
*/
|
||||
let d = damage(data);
|
||||
|
||||
total_max_damage = d.maxDamage;
|
||||
@@ -107,6 +122,7 @@
|
||||
|
||||
// 相性補正
|
||||
// 相性の計算の関数をとってくる
|
||||
data = getCompatibility(data)
|
||||
|
||||
// やけど補正
|
||||
// 壁補正
|
||||
@@ -133,6 +149,21 @@
|
||||
function getMinDamage(data) {
|
||||
return Math.trunc((data.maxDamage * 85) / 100);
|
||||
}
|
||||
// 相性計算
|
||||
function getCompatibility(data){
|
||||
// 技のタイプの相性倍率とりだす
|
||||
// attack_types の json の index と move_type の数字が1つずれてる
|
||||
let compatibility = attack_types[data.move_type-1]
|
||||
|
||||
// 相手のタイプ毎に倍率計算
|
||||
for (let i = 0; i < data.def_type.length; i++){
|
||||
// 倍率
|
||||
let magnification = compatibility[data.def_type[i]-1] // ここもindexずれる
|
||||
data.maxDamage *= magnification
|
||||
data.minDamage *= magnification
|
||||
}
|
||||
return data
|
||||
}
|
||||
async function getItems(keyword) {
|
||||
try {
|
||||
let result = await invoke("autosearch_move", { keyword });
|
||||
|
||||
Reference in New Issue
Block a user