タイプ相性計算機能

This commit is contained in:
2023-01-29 15:50:33 +09:00
parent bccd606453
commit 81cbc0bb05

View File

@@ -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 });