added search for attack
This commit is contained in:
83
package-lock.json
generated
83
package-lock.json
generated
@@ -12,13 +12,13 @@
|
|||||||
"simple-svelte-autocomplete": "^2.5.1"
|
"simple-svelte-autocomplete": "^2.5.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/vite-plugin-svelte": "^2.0.0",
|
"@sveltejs/vite-plugin-svelte": "^2.0.2",
|
||||||
"@tauri-apps/cli": "^1.2.3",
|
"@tauri-apps/cli": "^1.2.3",
|
||||||
"@tsconfig/svelte": "^3.0.0",
|
"@tsconfig/svelte": "^3.0.0",
|
||||||
"@types/node": "^18.7.10",
|
"@types/node": "^18.7.10",
|
||||||
"svelte": "^3.54.0",
|
"svelte": "^3.55.1",
|
||||||
"svelte-check": "^3.0.0",
|
"svelte-check": "^3.0.2",
|
||||||
"svelte-preprocess": "^5.0.0",
|
"svelte-preprocess": "^5.0.1",
|
||||||
"tslib": "^2.4.1",
|
"tslib": "^2.4.1",
|
||||||
"typescript": "^4.6.4",
|
"typescript": "^4.6.4",
|
||||||
"vite": "^4.0.0"
|
"vite": "^4.0.0"
|
||||||
@@ -1395,18 +1395,18 @@
|
|||||||
"integrity": "sha512-wC0RzbmWhMMAqJ3PK+4sBSAHZl+Y/Qz7KDk1Wp5Fnxj+PJvOXWCIAOi5FLQZGrIMl82YKvFErzEtOCmfNOMUJg=="
|
"integrity": "sha512-wC0RzbmWhMMAqJ3PK+4sBSAHZl+Y/Qz7KDk1Wp5Fnxj+PJvOXWCIAOi5FLQZGrIMl82YKvFErzEtOCmfNOMUJg=="
|
||||||
},
|
},
|
||||||
"node_modules/sorcery": {
|
"node_modules/sorcery": {
|
||||||
"version": "0.10.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
|
||||||
"integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==",
|
"integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@jridgewell/sourcemap-codec": "^1.4.14",
|
||||||
"buffer-crc32": "^0.2.5",
|
"buffer-crc32": "^0.2.5",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"sander": "^0.5.0",
|
"sander": "^0.5.0"
|
||||||
"sourcemap-codec": "^1.3.0"
|
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"sorcery": "bin/index.js"
|
"sorcery": "bin/sorcery"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/source-map-js": {
|
"node_modules/source-map-js": {
|
||||||
@@ -1418,13 +1418,6 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sourcemap-codec": {
|
|
||||||
"version": "1.4.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
|
|
||||||
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
|
|
||||||
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/strip-indent": {
|
"node_modules/strip-indent": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
||||||
@@ -1450,18 +1443,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte": {
|
"node_modules/svelte": {
|
||||||
"version": "3.55.0",
|
"version": "3.55.1",
|
||||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.0.tgz",
|
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.1.tgz",
|
||||||
"integrity": "sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==",
|
"integrity": "sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte-check": {
|
"node_modules/svelte-check": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.0.2.tgz",
|
||||||
"integrity": "sha512-7YpHYWv6V2qhcvVeAlXixUPAlpLCXB1nZEQK0EItB3PtuYmENhKclbc5uKSJTodTwWR1y+4stKGcbH30k6A3Yw==",
|
"integrity": "sha512-DkhKhV0Jt0gh7q9DBB26+J2Vfb9y4/4JWxnbkXBZha7542LOhwvj3edJFjyJ+xjdaXyInZ+YRRYc3V6wytP2ew==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/trace-mapping": "^0.3.17",
|
"@jridgewell/trace-mapping": "^0.3.17",
|
||||||
@@ -1493,9 +1486,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte-preprocess": {
|
"node_modules/svelte-preprocess": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.1.tgz",
|
||||||
"integrity": "sha512-q7lpa7i2FBu8Pa+G0MmuQQWETBwCKgsGmuq1Sf6n8q4uaG9ZLcLP0Y+etC6bF4sE6EbLxfiI38zV6RfPe3RSfg==",
|
"integrity": "sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1503,7 +1496,7 @@
|
|||||||
"@types/sass": "^1.43.1",
|
"@types/sass": "^1.43.1",
|
||||||
"detect-indent": "^6.1.0",
|
"detect-indent": "^6.1.0",
|
||||||
"magic-string": "^0.27.0",
|
"magic-string": "^0.27.0",
|
||||||
"sorcery": "^0.10.0",
|
"sorcery": "^0.11.0",
|
||||||
"strip-indent": "^3.0.0"
|
"strip-indent": "^3.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -2500,15 +2493,15 @@
|
|||||||
"integrity": "sha512-wC0RzbmWhMMAqJ3PK+4sBSAHZl+Y/Qz7KDk1Wp5Fnxj+PJvOXWCIAOi5FLQZGrIMl82YKvFErzEtOCmfNOMUJg=="
|
"integrity": "sha512-wC0RzbmWhMMAqJ3PK+4sBSAHZl+Y/Qz7KDk1Wp5Fnxj+PJvOXWCIAOi5FLQZGrIMl82YKvFErzEtOCmfNOMUJg=="
|
||||||
},
|
},
|
||||||
"sorcery": {
|
"sorcery": {
|
||||||
"version": "0.10.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
|
||||||
"integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==",
|
"integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
"@jridgewell/sourcemap-codec": "^1.4.14",
|
||||||
"buffer-crc32": "^0.2.5",
|
"buffer-crc32": "^0.2.5",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"sander": "^0.5.0",
|
"sander": "^0.5.0"
|
||||||
"sourcemap-codec": "^1.3.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"source-map-js": {
|
"source-map-js": {
|
||||||
@@ -2517,12 +2510,6 @@
|
|||||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"sourcemap-codec": {
|
|
||||||
"version": "1.4.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
|
|
||||||
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"strip-indent": {
|
"strip-indent": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
||||||
@@ -2539,15 +2526,15 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"svelte": {
|
"svelte": {
|
||||||
"version": "3.55.0",
|
"version": "3.55.1",
|
||||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.0.tgz",
|
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.1.tgz",
|
||||||
"integrity": "sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==",
|
"integrity": "sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"svelte-check": {
|
"svelte-check": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.0.2.tgz",
|
||||||
"integrity": "sha512-7YpHYWv6V2qhcvVeAlXixUPAlpLCXB1nZEQK0EItB3PtuYmENhKclbc5uKSJTodTwWR1y+4stKGcbH30k6A3Yw==",
|
"integrity": "sha512-DkhKhV0Jt0gh7q9DBB26+J2Vfb9y4/4JWxnbkXBZha7542LOhwvj3edJFjyJ+xjdaXyInZ+YRRYc3V6wytP2ew==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@jridgewell/trace-mapping": "^0.3.17",
|
"@jridgewell/trace-mapping": "^0.3.17",
|
||||||
@@ -2568,16 +2555,16 @@
|
|||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"svelte-preprocess": {
|
"svelte-preprocess": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.1.tgz",
|
||||||
"integrity": "sha512-q7lpa7i2FBu8Pa+G0MmuQQWETBwCKgsGmuq1Sf6n8q4uaG9ZLcLP0Y+etC6bF4sE6EbLxfiI38zV6RfPe3RSfg==",
|
"integrity": "sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/pug": "^2.0.6",
|
"@types/pug": "^2.0.6",
|
||||||
"@types/sass": "^1.43.1",
|
"@types/sass": "^1.43.1",
|
||||||
"detect-indent": "^6.1.0",
|
"detect-indent": "^6.1.0",
|
||||||
"magic-string": "^0.27.0",
|
"magic-string": "^0.27.0",
|
||||||
"sorcery": "^0.10.0",
|
"sorcery": "^0.11.0",
|
||||||
"strip-indent": "^3.0.0"
|
"strip-indent": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,13 +15,13 @@
|
|||||||
"simple-svelte-autocomplete": "^2.5.1"
|
"simple-svelte-autocomplete": "^2.5.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/vite-plugin-svelte": "^2.0.0",
|
"@sveltejs/vite-plugin-svelte": "^2.0.2",
|
||||||
"@tauri-apps/cli": "^1.2.3",
|
"@tauri-apps/cli": "^1.2.3",
|
||||||
"@tsconfig/svelte": "^3.0.0",
|
"@tsconfig/svelte": "^3.0.0",
|
||||||
"@types/node": "^18.7.10",
|
"@types/node": "^18.7.10",
|
||||||
"svelte": "^3.54.0",
|
"svelte": "^3.55.1",
|
||||||
"svelte-check": "^3.0.0",
|
"svelte-check": "^3.0.2",
|
||||||
"svelte-preprocess": "^5.0.0",
|
"svelte-preprocess": "^5.0.1",
|
||||||
"tslib": "^2.4.1",
|
"tslib": "^2.4.1",
|
||||||
"typescript": "^4.6.4",
|
"typescript": "^4.6.4",
|
||||||
"vite": "^4.0.0"
|
"vite": "^4.0.0"
|
||||||
|
|||||||
@@ -3,9 +3,44 @@
|
|||||||
windows_subsystem = "windows"
|
windows_subsystem = "windows"
|
||||||
)]
|
)]
|
||||||
use wana_kana::to_katakana::*;
|
use wana_kana::to_katakana::*;
|
||||||
|
use wana_kana::to_hiragana::*;
|
||||||
mod model;
|
mod model;
|
||||||
use model::*;
|
use model::*;
|
||||||
|
|
||||||
|
#[tauri::command]
|
||||||
|
fn autosearch_move(keyword: &str) -> serde_json::Value {
|
||||||
|
let connection = sqlite::open("./pokemon.db").unwrap();
|
||||||
|
let query = "SELECT * FROM learnset WHERE name like ? or name like ? or name like ? LIMIT 5";
|
||||||
|
let mut result: Vec<Autosearch> = vec![];
|
||||||
|
let aste_keyword = format!("%{}%", keyword.to_lowercase());
|
||||||
|
let katakana = format!("%{}%", to_katakana(keyword));
|
||||||
|
let hiragana = format!("%{}%", to_hiragana(keyword));
|
||||||
|
println!("{} - {}", katakana, hiragana);
|
||||||
|
for row in connection
|
||||||
|
.prepare(query)
|
||||||
|
.unwrap()
|
||||||
|
.into_iter()
|
||||||
|
.bind((1, aste_keyword.as_str()))
|
||||||
|
.unwrap()
|
||||||
|
.bind((2, katakana.as_str()))
|
||||||
|
.unwrap()
|
||||||
|
.bind((3, hiragana.as_str()))
|
||||||
|
.unwrap()
|
||||||
|
.map(|row| row.unwrap())
|
||||||
|
{
|
||||||
|
let row_result = Autosearch {
|
||||||
|
id: row.read::<i64, _>("id"),
|
||||||
|
name: format!(
|
||||||
|
"{}",
|
||||||
|
row.read::<&str, _>("name").to_string()
|
||||||
|
),
|
||||||
|
};
|
||||||
|
result.push(row_result);
|
||||||
|
}
|
||||||
|
println!("{:?}", result);
|
||||||
|
serde_json::to_value(result).unwrap_or(serde_json::json!("[]"))
|
||||||
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
fn autosearch(keyword: &str) -> serde_json::Value {
|
fn autosearch(keyword: &str) -> serde_json::Value {
|
||||||
let connection = sqlite::open("./pokemon.db").unwrap();
|
let connection = sqlite::open("./pokemon.db").unwrap();
|
||||||
@@ -37,6 +72,42 @@ fn autosearch(keyword: &str) -> serde_json::Value {
|
|||||||
serde_json::to_value(result).unwrap_or(serde_json::json!("[]"))
|
serde_json::to_value(result).unwrap_or(serde_json::json!("[]"))
|
||||||
}
|
}
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
|
fn search_move(index: i64) -> MoveSearchResult {
|
||||||
|
let connection = sqlite::open("./pokemon.db").unwrap();
|
||||||
|
let query = "SELECT * FROM learnset WHERE id = ?";
|
||||||
|
for row in connection
|
||||||
|
.prepare(query)
|
||||||
|
.unwrap()
|
||||||
|
.into_iter()
|
||||||
|
.bind((1, index))
|
||||||
|
.unwrap()
|
||||||
|
.map(|row| row.unwrap())
|
||||||
|
{
|
||||||
|
let row_result = MoveSearchResult {
|
||||||
|
id: row.read::<i64, _>("id"),
|
||||||
|
name: row.read::<&str, _>("name").to_string(),
|
||||||
|
types: row.read::<&str, _>("types").to_string(),
|
||||||
|
power: row.read::<i64, _>("power"),
|
||||||
|
category: row.read::<i64, _>("category"),
|
||||||
|
priority: row.read::<i64, _>("priority"),
|
||||||
|
condition: match row.read::<Option<&str>, _>("condition") {
|
||||||
|
Some(t) => Some(t.to_string()),
|
||||||
|
_ => None,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
return row_result
|
||||||
|
}
|
||||||
|
return MoveSearchResult {
|
||||||
|
id: 0,
|
||||||
|
name: "Wrong".to_string(),
|
||||||
|
types: "[0]".to_string(),
|
||||||
|
power: 0,
|
||||||
|
category: 0,
|
||||||
|
priority: 0,
|
||||||
|
condition: None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[tauri::command]
|
||||||
fn search(index: i64) -> SearchResult {
|
fn search(index: i64) -> SearchResult {
|
||||||
let connection = sqlite::open("./pokemon.db").unwrap();
|
let connection = sqlite::open("./pokemon.db").unwrap();
|
||||||
let query = "SELECT * FROM pokemon WHERE id = ?";
|
let query = "SELECT * FROM pokemon WHERE id = ?";
|
||||||
@@ -79,7 +150,7 @@ fn search(index: i64) -> SearchResult {
|
|||||||
}
|
}
|
||||||
fn main() {
|
fn main() {
|
||||||
tauri::Builder::default()
|
tauri::Builder::default()
|
||||||
.invoke_handler(tauri::generate_handler![autosearch, search])
|
.invoke_handler(tauri::generate_handler![autosearch_move, search_move, autosearch, search])
|
||||||
.run(tauri::generate_context!())
|
.run(tauri::generate_context!())
|
||||||
.expect("error while running tauri application");
|
.expect("error while running tauri application");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,16 @@ pub struct SearchResult {
|
|||||||
pub thumbnail: String,
|
pub thumbnail: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
|
pub struct MoveSearchResult {
|
||||||
|
pub id: i64,
|
||||||
|
pub name: String,
|
||||||
|
pub types: String,
|
||||||
|
pub power: i64,
|
||||||
|
pub category: i64,
|
||||||
|
pub priority: i64,
|
||||||
|
pub condition: Option<String>,
|
||||||
|
}
|
||||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
pub struct Autosearch {
|
pub struct Autosearch {
|
||||||
pub id: i64,
|
pub id: i64,
|
||||||
|
|||||||
@@ -1,7 +1,20 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { invoke } from "@tauri-apps/api/tauri";
|
||||||
|
import AutoComplete from "simple-svelte-autocomplete";
|
||||||
|
|
||||||
export let player1Data;
|
export let player1Data;
|
||||||
export let player2Data;
|
export let player2Data;
|
||||||
|
let attackData;
|
||||||
|
$: {
|
||||||
|
if (myValue > 0 && myValue !== currentValue) {
|
||||||
|
|
||||||
|
invoke("search_move", { index: myValue }).then((r) => {
|
||||||
|
currentValue = myValue;
|
||||||
|
attackData = r;
|
||||||
|
console.log(attackData);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
let attack_direction = "p1p2";
|
let attack_direction = "p1p2";
|
||||||
let attack_type = "attack";
|
let attack_type = "attack";
|
||||||
let attack_power = 0;
|
let attack_power = 0;
|
||||||
@@ -12,6 +25,10 @@
|
|||||||
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))) {
|
||||||
|
console.log("skip");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (attack_direction === "p1p2") {
|
if (attack_direction === "p1p2") {
|
||||||
attacker = player1Data;
|
attacker = player1Data;
|
||||||
defender = player2Data;
|
defender = player2Data;
|
||||||
@@ -19,7 +36,7 @@
|
|||||||
attacker = player2Data;
|
attacker = player2Data;
|
||||||
defender = player1Data;
|
defender = player1Data;
|
||||||
}
|
}
|
||||||
if (attack_type === "attack") {
|
if (attackData.category === 1) {
|
||||||
atk_value = attacker.atk;
|
atk_value = attacker.atk;
|
||||||
def_value = defender.def;
|
def_value = defender.def;
|
||||||
} else {
|
} else {
|
||||||
@@ -29,7 +46,7 @@
|
|||||||
// 計算で使用する値をひとまとめにしてみる
|
// 計算で使用する値をひとまとめにしてみる
|
||||||
let data = {
|
let data = {
|
||||||
level: 50, // 対戦時は基本的にレベル50なのでconstでも良さそう
|
level: 50, // 対戦時は基本的にレベル50なのでconstでも良さそう
|
||||||
attack_power: attack_power,
|
attack_power: attackData.power,
|
||||||
atk_value: atk_value,
|
atk_value: atk_value,
|
||||||
def_value: def_value,
|
def_value: def_value,
|
||||||
|
|
||||||
@@ -91,6 +108,18 @@
|
|||||||
function getMinDamage(data){
|
function getMinDamage(data){
|
||||||
return Math.trunc(data.maxDamage * 85/100);
|
return Math.trunc(data.maxDamage * 85/100);
|
||||||
}
|
}
|
||||||
|
async function getItems(keyword) {
|
||||||
|
try {
|
||||||
|
let result = await invoke("autosearch_move", { keyword });
|
||||||
|
// console.log(result);
|
||||||
|
return result;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let myValue;
|
||||||
|
let currentValue = 0;
|
||||||
</script>
|
</script>
|
||||||
<div class="calculator">
|
<div class="calculator">
|
||||||
<table>
|
<table>
|
||||||
@@ -103,9 +132,17 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="radio" name="type" value="attack" bind:group={attack_type}> Attack</td>
|
<td>
|
||||||
<td><input type="radio" name="type" value="special" bind:group={attack_type}> Special</td>
|
<AutoComplete
|
||||||
<td>Attack Power: <input type="text" bind:value={attack_power}></td>
|
showClear={true}
|
||||||
|
searchFunction="{getItems}"
|
||||||
|
delay="200"
|
||||||
|
localFiltering={false}
|
||||||
|
labelFieldName="name"
|
||||||
|
valueFieldName="id"
|
||||||
|
bind:value="{myValue}"
|
||||||
|
/>
|
||||||
|
</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>
|
||||||
|
|||||||
Reference in New Issue
Block a user