タイプ相性計算機能
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { invoke } from "@tauri-apps/api/tauri";
|
import { invoke } from "@tauri-apps/api/tauri";
|
||||||
import AutoComplete from "simple-svelte-autocomplete";
|
import AutoComplete from "simple-svelte-autocomplete";
|
||||||
|
import attack_types from "../const/attack_types.json"
|
||||||
|
|
||||||
export let player1Data;
|
export let player1Data;
|
||||||
export let player2Data;
|
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);
|
let d = damage(data);
|
||||||
|
|
||||||
total_max_damage = d.maxDamage;
|
total_max_damage = d.maxDamage;
|
||||||
@@ -107,6 +122,7 @@
|
|||||||
|
|
||||||
// 相性補正
|
// 相性補正
|
||||||
// 相性の計算の関数をとってくる
|
// 相性の計算の関数をとってくる
|
||||||
|
data = getCompatibility(data)
|
||||||
|
|
||||||
// やけど補正
|
// やけど補正
|
||||||
// 壁補正
|
// 壁補正
|
||||||
@@ -133,6 +149,21 @@
|
|||||||
function getMinDamage(data) {
|
function getMinDamage(data) {
|
||||||
return Math.trunc((data.maxDamage * 85) / 100);
|
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) {
|
async function getItems(keyword) {
|
||||||
try {
|
try {
|
||||||
let result = await invoke("autosearch_move", { keyword });
|
let result = await invoke("autosearch_move", { keyword });
|
||||||
|
|||||||
Reference in New Issue
Block a user