added type weakness to display
added matrices for attack/defense type compatibility
This commit is contained in:
@@ -60,7 +60,7 @@
|
|||||||
"windows": [
|
"windows": [
|
||||||
{
|
{
|
||||||
"fullscreen": false,
|
"fullscreen": false,
|
||||||
"height": 800,
|
"height": 900,
|
||||||
"resizable": true,
|
"resizable": true,
|
||||||
"title": "pokemon-data-displayer",
|
"title": "pokemon-data-displayer",
|
||||||
"width": 1000,
|
"width": 1000,
|
||||||
|
|||||||
@@ -40,6 +40,6 @@
|
|||||||
.main-row {
|
.main-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
height: 700px;
|
height: 800px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
20
src/const/attack_types.json
Normal file
20
src/const/attack_types.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
[
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 0.0, 1.0, 1.0, 0.5, 1.0],
|
||||||
|
[1.0, 0.5, 0.5, 1.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 0.5, 1.0, 0.5, 1.0, 2.0, 1.0],
|
||||||
|
[1.0, 2.0, 0.5, 1.0, 0.5, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 2.0, 1.0, 0.5, 1.0, 1.0, 1.0],
|
||||||
|
[1.0, 1.0, 2.0, 0.5, 0.5, 1.0, 1.0, 1.0, 0.0, 2.0, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0, 1.0, 1.0],
|
||||||
|
[1.0, 0.5, 2.0, 1.0, 0.5, 1.0, 1.0, 0.5, 2.0, 0.5, 1.0, 0.5, 2.0, 1.0, 0.5, 1.0, 0.5, 1.0],
|
||||||
|
[1.0, 0.5, 0.5, 1.0, 2.0, 0.5, 1.0, 1.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 0.5, 1.0],
|
||||||
|
[2.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 0.5, 1.0, 0.5, 0.5, 0.5, 2.0, 0.0, 1.0, 2.0, 2.0, 0.5],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 0.5, 0.5, 1.0, 1.0, 1.0, 0.5, 0.5, 1.0, 1.0, 0.0, 2.0],
|
||||||
|
[1.0, 2.0, 1.0, 2.0, 0.5, 1.0, 1.0, 2.0, 1.0, 0.0, 1.0, 0.5, 2.0, 1.0, 1.0, 1.0, 2.0, 1.0],
|
||||||
|
[1.0, 1.0, 1.0, 0.5, 2.0, 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 2.0, 0.5, 1.0, 1.0, 1.0, 0.5, 1.0],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 1.0, 0.5, 1.0, 1.0, 1.0, 1.0, 0.0, 0.5, 1.0],
|
||||||
|
[1.0, 0.5, 1.0, 1.0, 2.0, 1.0, 0.5, 0.5, 1.0, 0.5, 2.0, 1.0, 1.0, 0.5, 1.0, 2.0, 0.5, 0.5],
|
||||||
|
[1.0, 2.0, 1.0, 1.0, 1.0, 2.0, 0.5, 1.0, 0.5, 2.0, 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0],
|
||||||
|
[0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 2.0, 1.0, 0.5, 1.0, 1.0],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 0.5, 0.0],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 2.0, 1.0, 0.5, 1.0, 0.5],
|
||||||
|
[1.0, 0.5, 0.5, 0.5, 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 0.5, 2.0],
|
||||||
|
[1.0, 0.5, 1.0, 1.0, 1.0, 1.0, 2.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 0.5, 1.0]
|
||||||
|
]
|
||||||
20
src/const/defense_types.json
Normal file
20
src/const/defense_types.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
[
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0],
|
||||||
|
[1.0, 0.5, 2.0, 1.0, 0.5, 0.5, 1.0, 1.0, 2.0, 1.0, 1.0, 0.5, 2.0, 1.0, 1.0, 1.0, 0.5, 0.5],
|
||||||
|
[1.0, 0.5, 0.5, 2.0, 2.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0],
|
||||||
|
[1.0, 1.0, 1.0, 0.5, 1.0, 1.0, 1.0, 1.0, 2.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0],
|
||||||
|
[1.0, 2.0, 0.5, 0.5, 0.5, 2.0, 1.0, 2.0, 0.5, 2.0, 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
|
||||||
|
[1.0, 2.0, 1.0, 1.0, 1.0, 0.5, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 2.0, 1.0],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 0.5, 0.5, 1.0, 1.0, 0.5, 1.0, 2.0],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 0.5, 1.0, 0.5, 0.5, 2.0, 1.0, 2.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5],
|
||||||
|
[1.0, 1.0, 2.0, 0.0, 2.0, 2.0, 1.0, 0.5, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0],
|
||||||
|
[1.0, 1.0, 1.0, 2.0, 0.5, 2.0, 0.5, 1.0, 0.0, 1.0, 1.0, 0.5, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0, 1.0, 1.0, 0.5, 2.0, 1.0, 2.0, 1.0, 2.0, 1.0, 1.0],
|
||||||
|
[1.0, 2.0, 1.0, 1.0, 0.5, 1.0, 0.5, 1.0, 0.5, 2.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0],
|
||||||
|
[0.5, 0.5, 2.0, 1.0, 2.0, 1.0, 2.0, 0.5, 2.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0],
|
||||||
|
[0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.5, 1.0, 1.0, 1.0, 0.5, 1.0, 2.0, 1.0, 2.0, 1.0, 1.0],
|
||||||
|
[1.0, 0.5, 0.5, 0.5, 0.5, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 2.0],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 1.0, 0.0, 2.0, 1.0, 0.5, 1.0, 0.5, 1.0, 2.0],
|
||||||
|
[0.5, 2.0, 1.0, 1.0, 0.5, 0.5, 2.0, 0.0, 2.0, 0.5, 0.5, 0.5, 0.5, 1.0, 0.5, 1.0, 0.5, 0.5],
|
||||||
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 2.0, 1.0, 1.0, 1.0, 0.5, 1.0, 1.0, 0.0, 0.5, 2.0, 1.0]
|
||||||
|
]
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import defense_types from "../const/defense_types.json"
|
||||||
export let pokemonData
|
export let pokemonData
|
||||||
function v_validator(v) {
|
function v_validator(v) {
|
||||||
if (typeof v !== "number") {
|
if (typeof v !== "number") {
|
||||||
@@ -81,9 +82,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function generate_type(types) {
|
function generate_type(types) {
|
||||||
let parsed_types = JSON.parse(types);
|
|
||||||
let result = []
|
let result = []
|
||||||
parsed_types.forEach(type => {
|
types.forEach(type => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 1: {
|
case 1: {
|
||||||
result.push(`<div class="normal type">ノーマル</div>`)
|
result.push(`<div class="normal type">ノーマル</div>`)
|
||||||
@@ -159,7 +159,64 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if (result.length > 0)
|
||||||
return result.join(' ')
|
return result.join(' ')
|
||||||
|
return " ";
|
||||||
|
}
|
||||||
|
function generate_weakness(types) {
|
||||||
|
let parsed_types = JSON.parse(types);
|
||||||
|
let type_compatibility = defense_types[parsed_types[0] - 1];
|
||||||
|
if (parsed_types.length > 1) {
|
||||||
|
let second_type_compatibility = defense_types[parsed_types[1] - 1];
|
||||||
|
type_compatibility = type_compatibility.map((v, i) => v * second_type_compatibility[i]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
let super_weakness = [];
|
||||||
|
let weakness = [];
|
||||||
|
let super_resist = [];
|
||||||
|
let resist = [];
|
||||||
|
let immune = [];
|
||||||
|
type_compatibility.forEach((v, i) => {
|
||||||
|
console.log(v);
|
||||||
|
switch (v) {
|
||||||
|
case 4:
|
||||||
|
super_weakness.push(i + 1);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
weakness.push(i + 1);
|
||||||
|
break;
|
||||||
|
case 0.5:
|
||||||
|
resist.push(i + 1);
|
||||||
|
break;
|
||||||
|
case 0.25:
|
||||||
|
super_resist.push(i + 1);
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
immune.push(i + 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log("super_weakness", super_weakness);
|
||||||
|
console.log("weakness", weakness);
|
||||||
|
console.log("super_resist", super_resist);
|
||||||
|
console.log("resist", resist);
|
||||||
|
console.log("immune", immune);
|
||||||
|
return [super_weakness, weakness, resist, super_resist, immune];
|
||||||
|
}
|
||||||
|
function generate_damage_value(index) {
|
||||||
|
switch (index) {
|
||||||
|
case 0:
|
||||||
|
return "x4";
|
||||||
|
case 1:
|
||||||
|
return "x2";
|
||||||
|
case 2:
|
||||||
|
return "x1/2";
|
||||||
|
case 3:
|
||||||
|
return "x1/4";
|
||||||
|
case 4:
|
||||||
|
return "x0";
|
||||||
|
default: return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 個体値 (V) 0-31
|
// 個体値 (V) 0-31
|
||||||
let hp_v = 0;
|
let hp_v = 0;
|
||||||
@@ -207,7 +264,7 @@
|
|||||||
<div class="data-container">
|
<div class="data-container">
|
||||||
{#if pokemonData && pokemonData.id && pokemonData.id > 0}
|
{#if pokemonData && pokemonData.id && pokemonData.id > 0}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<img src={`data:image/png;base64,${pokemonData.thumbnail}`} alt={pokemonData.jap_name} width="32%"/>
|
<img src={`data:image/png;base64,${pokemonData.thumbnail}`} alt={pokemonData.jap_name} width="15%"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<table>
|
<table>
|
||||||
@@ -215,10 +272,22 @@
|
|||||||
<td><b>{pokemonData.name}</b></td>
|
<td><b>{pokemonData.name}</b></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="display: flex;">{@html generate_type(pokemonData.types)}</td>
|
<td style="display: flex;">{@html generate_type(JSON.parse(pokemonData.types))}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<table class="weakness">
|
||||||
|
{#each generate_weakness(pokemonData.types) as row, i}
|
||||||
|
<tr>
|
||||||
|
<td>{generate_damage_value(i)}</td>
|
||||||
|
<td style="display: flex; flex-wrap: wrap;">
|
||||||
|
{@html generate_type(row)}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{/each}
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<table class="abilities_table">
|
<table class="abilities_table">
|
||||||
{#each abilities as ability, i}
|
{#each abilities as ability, i}
|
||||||
@@ -331,4 +400,10 @@
|
|||||||
.abilities_table > tr > td{
|
.abilities_table > tr > td{
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
}
|
}
|
||||||
|
.weakness {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
.weakness > tr > td {
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user