|
|
Line 43: |
Line 43: |
| } | | } |
| chip.classList.add("rgwiki-rizline-bio-chip-clicked"); | | chip.classList.add("rgwiki-rizline-bio-chip-clicked"); |
| });
| |
| });
| |
|
| |
| /* Gadvia Score Calculator */
| |
| findAndExecute(".rgwiki-gadvia-score-calculator", (root) => {
| |
| root.textContent = "";
| |
|
| |
| function createFormField(root, labelText) {
| |
| const fieldContainer = document.createElement("div");
| |
| fieldContainer.style.display = "flex";
| |
| fieldContainer.style.flexDirection = "column";
| |
|
| |
| const label = document.createElement("label");
| |
| label.textContent = labelText;
| |
| fieldContainer.appendChild(label);
| |
|
| |
| const inputElement = document.createElement("input");
| |
| inputElement.type = "number";
| |
| inputElement.size = 8;
| |
| fieldContainer.appendChild(inputElement);
| |
|
| |
| root.appendChild(fieldContainer);
| |
| return inputElement;
| |
| }
| |
|
| |
| const fields = document.createElement("div");
| |
| fields.style.display = "flex";
| |
| fields.style.gap = "1em";
| |
| fields.style.alignItems = "end";
| |
|
| |
| const inputGoldPerfect = createFormField(fields, "Gold Perfect");
| |
| const inputAnyPerfect = createFormField(fields, "Any Perfect");
| |
| const inputGreat = createFormField(fields, "Great");
| |
| const inputGood = createFormField(fields, "Good");
| |
| const inputMiss = createFormField(fields, "Miss");
| |
|
| |
| const calculateBtn = document.createElement("button");
| |
| calculateBtn.textContent = "Calculate";
| |
| fields.appendChild(calculateBtn);
| |
|
| |
| root.appendChild(fields);
| |
|
| |
| const output = document.createElement("p");
| |
| root.appendChild(output);
| |
|
| |
| calculateBtn.addEventListener("click", () => {
| |
| const goldPerfect = Number(inputGoldPerfect.value);
| |
| const anyPerfect = Number(inputAnyPerfect.value);
| |
| const great = Number(inputGreat.value);
| |
| const good = Number(inputGood.value);
| |
| const miss = Number(inputMiss.value);
| |
| const hitNotes = anyPerfect + great + good;
| |
| const totalNotes = anyPerfect + great + good + miss;
| |
| const nonGoldPerfect = anyPerfect - goldPerfect;
| |
| const score = Math.floor((anyPerfect + (great * 0.8) + (good * 0.5)) / totalNotes * 1000000) + (goldPerfect * 0.0001);
| |
| output.innerHTML = `<b>Score:</b> ${score}<br><b>Hit notes:</b> ${hitNotes}/${totalNotes}<br><b>Non-gold perfects:</b> ${nonGoldPerfect}`;
| |
| }); | | }); |
| }); | | }); |