|
|
第6行: |
第6行: |
| .appendTo('body'); | | .appendTo('body'); |
| } | | } |
| });
| |
|
| |
| document.addEventListener("DOMContentLoaded", function () {
| |
| function getNatureModifiers(nature) {
| |
| const map = {
| |
| adamant: [1.1, 1.0, 1.0, 0.9, 1.0], // +Atk -SpA
| |
| modest: [0.9, 1.0, 1.0, 1.1, 1.0], // -Atk +SpA
| |
| jolly: [1.0, 1.0, 1.0, 0.9, 1.1], // -SpA +Spe
| |
| bold: [0.9, 1.1, 1.0, 1.0, 1.0], // -Atk +Def
| |
| calm: [0.9, 1.0, 1.0, 1.0, 1.1], // -Atk +SpD
| |
| neutral: [1, 1, 1, 1, 1]
| |
| };
| |
| return map[nature] || map["neutral"];
| |
| }
| |
|
| |
| function calcStats() {
| |
| const level = parseInt(document.getElementsByName("level2")[0].value);
| |
| const iv = parseInt(document.getElementsByName("geti")[0].value);
| |
| const natureKey = document.getElementsByName("character")[0].value;
| |
| const natures = getNatureModifiers(natureKey);
| |
| const baseStats = document.querySelectorAll("._race2");
| |
| const evs = document.getElementsByName("ev");
| |
| const results = document.querySelectorAll(".result");
| |
|
| |
| let totalEV = 0;
| |
|
| |
| for (let i = 0; i < 6; i++) {
| |
| const base = parseInt(baseStats[i].textContent || "0");
| |
| const ev = parseInt(evs[i].value || "0");
| |
| totalEV += ev;
| |
|
| |
| let stat = 0;
| |
| if (i === 0) {
| |
| stat = Math.floor(((base * 2 + iv + Math.floor(ev / 4)) * level) / 100 + level + 10);
| |
| } else {
| |
| stat = Math.floor(((((base * 2 + iv + Math.floor(ev / 4)) * level) / 100) + 5) * natures[i - 1]);
| |
| }
| |
| results[i].textContent = stat;
| |
| }
| |
|
| |
| document.getElementById("ev-remaining").textContent = Math.max(510 - totalEV, 0);
| |
| }
| |
|
| |
| document.getElementById("calc-btn").addEventListener("click", calcStats);
| |
| }); | | }); |