fixed linting
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import MainWrapper from './lib/MainWrapper.svelte'
|
import MainWrapper from "./lib/MainWrapper.svelte";
|
||||||
import DamageCalculator from './lib/DamageCalculator.svelte'
|
import DamageCalculator from "./lib/DamageCalculator.svelte";
|
||||||
let player1Data;
|
let player1Data;
|
||||||
let player2Data;
|
let player2Data;
|
||||||
</script>
|
</script>
|
||||||
@@ -8,21 +8,14 @@
|
|||||||
<main class="container">
|
<main class="container">
|
||||||
<div class="main-row">
|
<div class="main-row">
|
||||||
<div class="column-1">
|
<div class="column-1">
|
||||||
<MainWrapper
|
<MainWrapper bind:pokemonStatus={player1Data} />
|
||||||
bind:pokemonStatus={player1Data}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="column-2">
|
<div class="column-2">
|
||||||
<MainWrapper
|
<MainWrapper bind:pokemonStatus={player2Data} />
|
||||||
bind:pokemonStatus={player2Data}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<DamageCalculator
|
<DamageCalculator bind:player1Data bind:player2Data />
|
||||||
bind:player1Data={player1Data}
|
|
||||||
bind:player2Data={player2Data}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
let attackData;
|
let attackData;
|
||||||
$: {
|
$: {
|
||||||
if (myValue > 0 && myValue !== currentValue) {
|
if (myValue > 0 && myValue !== currentValue) {
|
||||||
|
|
||||||
invoke("search_move", { index: myValue }).then((r) => {
|
invoke("search_move", { index: myValue }).then((r) => {
|
||||||
currentValue = myValue;
|
currentValue = myValue;
|
||||||
attackData = r;
|
attackData = r;
|
||||||
@@ -23,7 +22,13 @@
|
|||||||
let defender;
|
let defender;
|
||||||
let atk_value;
|
let atk_value;
|
||||||
let def_value;
|
let def_value;
|
||||||
if (!player1Data || !player2Data || !attackData || (!!attackData && ![1, 2].includes(attackData.category))) {
|
if (
|
||||||
|
!player1Data ||
|
||||||
|
!player2Data ||
|
||||||
|
!attackData ||
|
||||||
|
(!!attackData && ![1, 2].includes(attackData.category))
|
||||||
|
) {
|
||||||
|
// display some message somewhere
|
||||||
console.log("skip");
|
console.log("skip");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -59,7 +64,7 @@
|
|||||||
// 技タイプ
|
// 技タイプ
|
||||||
move_type: JSON.parse(attackData.types),
|
move_type: JSON.parse(attackData.types),
|
||||||
// 範囲の計算で使用する
|
// 範囲の計算で使用する
|
||||||
}
|
};
|
||||||
|
|
||||||
// 計算
|
// 計算
|
||||||
let d = damage(data);
|
let d = damage(data);
|
||||||
@@ -69,12 +74,14 @@
|
|||||||
}
|
}
|
||||||
function damage(data) {
|
function damage(data) {
|
||||||
// 基本の計算
|
// 基本の計算
|
||||||
var step1 = Math.trunc(data.level * 2 / 5 + 2);
|
var step1 = Math.trunc((data.level * 2) / 5 + 2);
|
||||||
var step2 = Math.trunc(step1 * data.attack_power * data.atk_value / data.def_value);
|
var step2 = Math.trunc(
|
||||||
|
(step1 * data.attack_power * data.atk_value) / data.def_value
|
||||||
|
);
|
||||||
data.maxDamage = Math.trunc(step2 / 50 + 2); // この時点の計算結果は最大ダメージ
|
data.maxDamage = Math.trunc(step2 / 50 + 2); // この時点の計算結果は最大ダメージ
|
||||||
|
|
||||||
// 各種補正かけた結果を返す
|
// 各種補正かけた結果を返す
|
||||||
return modify(data)
|
return modify(data);
|
||||||
}
|
}
|
||||||
// 全部一気にやると大変なので、一旦基本計算から
|
// 全部一気にやると大変なので、一旦基本計算から
|
||||||
function modify(data) {
|
function modify(data) {
|
||||||
@@ -84,16 +91,16 @@
|
|||||||
// 天気補正
|
// 天気補正
|
||||||
// 急所補正
|
// 急所補正
|
||||||
// 乱数補正
|
// 乱数補正
|
||||||
data.minDamage = getMinDamage(data)
|
data.minDamage = getMinDamage(data);
|
||||||
// タイプ一致補正
|
// タイプ一致補正
|
||||||
let type_match = false
|
let type_match = false;
|
||||||
for (let i = 0; i < data.atk_type.length && !type_match; i++) {
|
for (let i = 0; i < data.atk_type.length && !type_match; i++) {
|
||||||
for (let j = 0; j < data.move_type.length && !type_match; j++) {
|
for (let j = 0; j < data.move_type.length && !type_match; j++) {
|
||||||
if (data.atk_type[i] === data.move_type[j]) {
|
if (data.atk_type[i] === data.move_type[j]) {
|
||||||
// タイプ一致したら判定終了
|
// タイプ一致したら判定終了
|
||||||
type_match = true;
|
type_match = true;
|
||||||
data.maxDamage = Math.trunc(data.maxDamage*1.5)
|
data.maxDamage = Math.trunc(data.maxDamage * 1.5);
|
||||||
data.minDamage = Math.trunc(data.minDamage*1.5)
|
data.minDamage = Math.trunc(data.minDamage * 1.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -101,7 +108,6 @@
|
|||||||
// 相性補正
|
// 相性補正
|
||||||
// 相性の計算の関数をとってくる
|
// 相性の計算の関数をとってくる
|
||||||
|
|
||||||
|
|
||||||
// やけど補正
|
// やけど補正
|
||||||
// 壁補正
|
// 壁補正
|
||||||
// ブレインフォース補正
|
// ブレインフォース補正
|
||||||
@@ -117,7 +123,7 @@
|
|||||||
// 半減木の実補正
|
// 半減木の実補正
|
||||||
// その他ダメージ補正(M twice)
|
// その他ダメージ補正(M twice)
|
||||||
// ダイマックス技などの軽減(M protect)
|
// ダイマックス技などの軽減(M protect)
|
||||||
return data
|
return data;
|
||||||
}
|
}
|
||||||
// 乱数補正
|
// 乱数補正
|
||||||
// ダメージは、乱数で0.85~1.00をかけた値の範囲で変動する
|
// ダメージは、乱数で0.85~1.00をかけた値の範囲で変動する
|
||||||
@@ -125,7 +131,7 @@
|
|||||||
// 0.85をかけた最小ダメージだけを計算する
|
// 0.85をかけた最小ダメージだけを計算する
|
||||||
// 少数切り捨て
|
// 少数切り捨て
|
||||||
function getMinDamage(data) {
|
function getMinDamage(data) {
|
||||||
return Math.trunc(data.maxDamage * 85/100);
|
return Math.trunc((data.maxDamage * 85) / 100);
|
||||||
}
|
}
|
||||||
async function getItems(keyword) {
|
async function getItems(keyword) {
|
||||||
try {
|
try {
|
||||||
@@ -140,34 +146,52 @@
|
|||||||
let myValue;
|
let myValue;
|
||||||
let currentValue = 0;
|
let currentValue = 0;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="calculator">
|
<div class="calculator">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<input type="radio" name="direction" value="p1p2" bind:group={attack_direction}> P1 ->> P2
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="direction"
|
||||||
|
value="p1p2"
|
||||||
|
bind:group={attack_direction}
|
||||||
|
/> P1 ->> P2
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input type="radio" name="direction" value="p2p1" bind:group={attack_direction}> P2 ->> P1
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="direction"
|
||||||
|
value="p2p1"
|
||||||
|
bind:group={attack_direction}
|
||||||
|
/> P2 ->> P1
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<AutoComplete
|
<AutoComplete
|
||||||
showClear={true}
|
showClear={true}
|
||||||
searchFunction="{getItems}"
|
searchFunction={getItems}
|
||||||
delay="200"
|
delay="200"
|
||||||
localFiltering={false}
|
localFiltering={false}
|
||||||
labelFieldName="name"
|
labelFieldName="name"
|
||||||
valueFieldName="id"
|
valueFieldName="id"
|
||||||
bind:value="{myValue}"
|
bind:value={myValue}
|
||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
<td><input type="button" value="Calculate" on:click={calculate_damage}></td>
|
<td
|
||||||
|
><input
|
||||||
|
type="button"
|
||||||
|
value="Calculate"
|
||||||
|
on:click={calculate_damage}
|
||||||
|
/></td
|
||||||
|
>
|
||||||
<td>Total Damage: {total_min_damage} ~ {total_max_damage}</td>
|
<td>Total Damage: {total_min_damage} ~ {total_max_damage}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
{JSON.stringify(player1Data)} -
|
{JSON.stringify(player1Data)} -
|
||||||
{JSON.stringify(player2Data)}<br> {attack_direction}
|
{JSON.stringify(player2Data)}<br />
|
||||||
|
{attack_direction}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -55,23 +55,23 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<AutoComplete
|
<AutoComplete
|
||||||
showClear={true}
|
showClear={true}
|
||||||
searchFunction="{getItems}"
|
searchFunction={getItems}
|
||||||
delay="200"
|
delay="200"
|
||||||
localFiltering={false}
|
localFiltering={false}
|
||||||
labelFieldName="name"
|
labelFieldName="name"
|
||||||
valueFieldName="id"
|
valueFieldName="id"
|
||||||
bind:value="{myValue}"
|
bind:value={myValue}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<DisplayData
|
<DisplayData
|
||||||
pokemonData={pokemonData}
|
{pokemonData}
|
||||||
bind:hp_final={hp_final}
|
bind:hp_final
|
||||||
bind:atk_final={atk_final}
|
bind:atk_final
|
||||||
bind:def_final={def_final}
|
bind:def_final
|
||||||
bind:spatk_final={spatk_final}
|
bind:spatk_final
|
||||||
bind:spdef_final={spdef_final}
|
bind:spdef_final
|
||||||
bind:spd_final={spd_final}
|
bind:spd_final
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user