アイテム補正

This commit is contained in:
2023-01-29 19:17:55 +09:00
parent 24a1cf5135
commit cf526bb11b
2 changed files with 32 additions and 3 deletions

View File

@@ -20,6 +20,7 @@
let total_min_damage = 0; let total_min_damage = 0;
let total_max_damage_percentage = 0; let total_max_damage_percentage = 0;
let total_min_damage_percentage = 0; let total_min_damage_percentage = 0;
let item_magnification = 1.0;
function calculate_damage() { function calculate_damage() {
let attacker; let attacker;
let defender; let defender;
@@ -190,6 +191,8 @@
data.minDamage = Math.trunc(data.minDamage * magnification_terastype); data.minDamage = Math.trunc(data.minDamage * magnification_terastype);
data.maxDamage = Math.trunc(data.maxDamage * magnification); data.maxDamage = Math.trunc(data.maxDamage * magnification);
data.minDamage = Math.trunc(data.minDamage * magnification); data.minDamage = Math.trunc(data.minDamage * magnification);
data.maxDamage = Math.trunc(data.maxDamage * item_magnification);
data.minDamage = Math.trunc(data.minDamage * item_magnification);
return data; return data;
} }
@@ -250,6 +253,12 @@
bind:group={attack_direction} bind:group={attack_direction}
/> P2 ->> P1 /> P2 ->> P1
</td> </td>
<td>
<input
type="text"
bind:value={item_magnification}
/>
</td>
</tr> </tr>
<tr> <tr>
<td> <td>

View File

@@ -13,6 +13,18 @@
} }
return v; return v;
} }
function level_validator(v) {
if (typeof v !== "number") {
return null;
}
if (v > 100) {
return 100;
}
if (v < 1) {
return 1;
}
return v;
}
const available_type = [ const available_type = [
{ id: 1 }, { id: 1 },
{ id: 2 }, { id: 2 },
@@ -47,6 +59,7 @@
} }
$: { $: {
// validator // validator
level = level_validator(level);
hp_v = v_validator(hp_v); hp_v = v_validator(hp_v);
atk_v = v_validator(atk_v); atk_v = v_validator(atk_v);
def_v = v_validator(def_v); def_v = v_validator(def_v);
@@ -261,7 +274,7 @@
export let spdef_final = 0; export let spdef_final = 0;
export let spd_final = 0; export let spd_final = 0;
export let terastype = [0]; export let terastype = [0];
let level = 50;
let selected_terastype = 0; let selected_terastype = 0;
let atk_plus = false; let atk_plus = false;
let def_plus = false; let def_plus = false;
@@ -275,10 +288,12 @@
let spdef_minus = false; let spdef_minus = false;
let spd_minus = false; let spd_minus = false;
function calculate_hp(stat, v, d) { function calculate_hp(stat, v, d) {
return Math.floor(((stat*2+v+(d/4))*0.5)+50+10) // floor({(種族値+個体値)×2+min(63,floor(floor(1+√努力値)÷4))}×レベル÷100)+レベル+10
return Math.floor(((stat*2+v+(d/4))*(level/100))+level+10)
} }
function other_stats(stat, v, d, p) { function other_stats(stat, v, d, p) {
return Math.floor((((stat*2+v+(d/4))*0.5)+5)*p) // floor({(種族値+個体値)×2+min(63,floor(floor(1+√努力値)÷4))}×レベル÷100)+5
return Math.floor((((stat*2+v+(d/4))*(level/100))+5)*p)
} }
let abilities = []; let abilities = [];
let abilities_description = []; let abilities_description = [];
@@ -397,6 +412,11 @@
<td class="atai-column"><b>{pokemonData.hp + pokemonData.attack + pokemonData.defense + pokemonData.special_attack + pokemonData.special_defense + pokemonData.speed}</b></td> <td class="atai-column"><b>{pokemonData.hp + pokemonData.attack + pokemonData.defense + pokemonData.special_attack + pokemonData.special_defense + pokemonData.speed}</b></td>
<td class="atai-column"></td> <td class="atai-column"></td>
</tr> </tr>
<tr>
<td class="value-column"><b>Level</b></td>
<td class="atai-column"><input class="vd-input" type=number bind:value={level} min=1 max=100></td>
<td class="atai-column"></td>
</tr>
</table> </table>
</div> </div>
{:else} {:else}