diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index ba1fb55..c2b3acf 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -202,7 +202,7 @@ fn increase_attack_usage(index: i64) { fn search_learnset(index: i64) -> Vec { let connection = sqlite::open("./pokemon.db").unwrap(); let mut learnset: Vec = vec![]; - let move_query = "SELECT pl.id, pl.learnset_id, l.name, l.types, l.power, l.category FROM pokemon__learnset pl JOIN learnset l on pl.learnset_id = l.id WHERE pl.pokemon_id = ? ORDER BY usage DESC"; + let move_query = "SELECT pl.id, pl.learnset_id, l.name, l.types, l.power, l.category, pl.usage FROM pokemon__learnset pl JOIN learnset l on pl.learnset_id = l.id WHERE pl.pokemon_id = ? ORDER BY usage DESC"; for row in connection .prepare(move_query) .unwrap() @@ -218,6 +218,7 @@ fn search_learnset(index: i64) -> Vec { types: serde_json::from_str(row.read::<&str, _>("types")).unwrap_or(vec![0]), power: row.read::("power"), category: row.read::("category"), + usage: row.read::("usage"), }; learnset.push(row_result) } diff --git a/src-tauri/src/model.rs b/src-tauri/src/model.rs index d87e437..4fb634b 100644 --- a/src-tauri/src/model.rs +++ b/src-tauri/src/model.rs @@ -26,6 +26,7 @@ pub struct PokemonDataLearnset { pub types: Vec, pub power: i64, pub category: i64, + pub usage: i64, } #[derive(Serialize, Deserialize, Debug, Clone)] pub struct MoveSearchResult { diff --git a/src/lib/DisplayData.svelte b/src/lib/DisplayData.svelte index e56e055..030a2f4 100644 --- a/src/lib/DisplayData.svelte +++ b/src/lib/DisplayData.svelte @@ -68,12 +68,15 @@ } $: { if (pokemonData) { - if (pokemonData.terastype[0] !== selected_terastype) { + console.log(pokemonData) + if (init_flag) { selected_terastype = pokemonData.terastype[0]; + init_flag = false; } if (pokemonData.item !== selected_item) { selected_item = pokemonData.item; } + total_move_usage = pokemonData.learnset.map((v) => v.usage).reduce((partialSum, a) => partialSum + a, 0); // validator level = level_validator(level); pokemonData.hp_v = v_validator(pokemonData.hp_v); @@ -306,7 +309,7 @@ return ""; } } - + let total_move_usage = 0; export let hp_final = 0; export let attack_final = 0; export let defense_final = 0; @@ -316,7 +319,8 @@ let level = 50; let selected_terastype = 0; let selected_item = 0; - + let init_flag = true; + let filter_move = ''; function calculate_hp(stat, v, d) { // floor({(種族値+個体値)×2+min(63,floor(floor(1+√努力値)÷4))}×レベル÷100)+レベル+10 return Math.floor((stat * 2 + v + d / 4) * (level / 100) + level + 10); @@ -357,8 +361,11 @@ {#each pokemonData.learnset as learnset} + {#if filter_move === '' || learnset.name.includes(filter_move)} { console.log("passing" + learnset.name); @@ -949,7 +958,9 @@ + + {/if} {/each}
{@html generate_type(learnset.types)} {learnset.name} {learnset.power}{total_move_usage === 0 ? 0 : Math.round(learnset.usage/total_move_usage*10000)/100}%
diff --git a/src/model/PokemonData.ts b/src/model/PokemonData.ts index fbf0509..dd4b2c1 100644 --- a/src/model/PokemonData.ts +++ b/src/model/PokemonData.ts @@ -62,4 +62,5 @@ export interface PokemonLearnsetDBData { types: number[]; power: number; category: number; + usage: number; }