Widget:Calculator/Combat/Level

Revision as of 11:52, 8 July 2025 by Ryan (talk | contribs)

Hitpoints:
Accuracy:
Strength:
Defense:
Magic:
Range:
Combat Level:
  • ${hints.join("
  • ")}
`; } function getStatFromDom(doc, skillName) { const nameDivs = doc.querySelectorAll('.hs_data__row__name'); for (const nameDiv of nameDivs) { if (nameDiv.textContent.toLowerCase().includes(skillName.toLowerCase())) { const levelDiv = nameDiv.parentElement.querySelector('.hs_data__row__level'); if (levelDiv) { const lvl = parseInt(levelDiv.textContent.trim()); if (!isNaN(lvl)) return lvl; } } } return 1; // fallback } function lookupStats() { const username = document.getElementById("username").value.trim(); if (!username) { alert("Please enter a username."); return; } fetch(`https://highspell.com/hiscores/player/${encodeURIComponent(username)}`) .then(response => { if (!response.ok) throw new Error("Failed to fetch hiscores"); return response.text(); }) .then(html => { const doc = new DOMParser().parseFromString(html, "text/html"); document.getElementById("stat-hp").value = getStatFromDom(doc, "Hitpoints"); document.getElementById("stat-accuracy").value = getStatFromDom(doc, "Accuracy"); document.getElementById("stat-strength").value = getStatFromDom(doc, "Strength"); document.getElementById("stat-defense").value = getStatFromDom(doc, "Defense"); document.getElementById("stat-magic").value = getStatFromDom(doc, "Magic"); document.getElementById("stat-range").value = getStatFromDom(doc, "Range"); calculateCombatLevel(); }) .catch(err => { alert("Lookup failed. Please check the username or try again later."); console.error(err); }); } document.querySelectorAll('#combat-form input').forEach(input => { input.addEventListener('input', calculateCombatLevel); }); document.addEventListener('DOMContentLoaded', calculateCombatLevel);