5 667
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
// Base de dados local | |||
const allData = [ | const allData = [ | ||
{ | { | ||
Linha 278: | Linha 212: | ||
]; | ]; | ||
const search = document.getElementById("search"); | |||
const suggest = document.getElementById("suggest"); | |||
const content = document.getElementById("content"); | |||
const clearSuggestions = () => { | |||
suggest.innerHTML = ""; | |||
}; | |||
const setItem = (id) => { | |||
const data = allData.find((data) => data.id == id); | |||
if (!data) return; | |||
clearSuggestions(); | |||
content.innerHTML = ` | |||
<div class="item-name"> | |||
<img class="item-name-icon" src="${data.icon}" /> | |||
<span>${data.name}</span> | |||
</div>`; | |||
if (data.craft) { | |||
content.innerHTML += ` | |||
<h3>Craft</h3> | |||
<div class="craft"> | |||
<p><b>Quantidade:</b> ${data.craft.quantity}</p> | |||
<p><b>Skill:</b> ${data.craft.skill} - Rank ${data.craft.rank}</p> | |||
<p><b>Tempo de Craft:</b> ${data.craft.cooldownText}</p> | |||
<p><b>Profissão:</b> ${data.craft.profession}</p> | |||
<p><b>Materiais:</b></p> | |||
<div class="materials"> | |||
${data.craft.materials.map((material) => ` | |||
<div class="item-from-craft"> | |||
<div class="material-icon-container"> | |||
<img class="item-name-icon" src="${material.icon}" /> | |||
</div> | </div> | ||
</div>`; | ${material.quantity}x ${material.name} | ||
</div>`).join("")} | |||
</div> | |||
</div>`; | |||
} | |||
const materialTo = allData.filter((item) => { | |||
if (!item.craft?.materials) return false; | |||
return item.craft.materials.some((m) => m.id == id); | |||
}); | |||
if (materialTo.length) { | |||
content.innerHTML += ` | |||
<h3>Usado para craftar</h3> | |||
<div class="materials"> | |||
${materialTo.map((material) => ` | |||
<div class="item-from-craft"> | |||
<div class="material-icon-container"> | |||
<img class="item-name-icon" src="${material.icon}" /> | |||
</div> | |||
${material.name} | |||
</div>`).join("")} | |||
</div>`; | |||
} | |||
}; | |||
document.addEventListener("click", (e) => { | |||
if (e.target.classList.contains("suggest-item")) { | |||
e.preventDefault(); | |||
setItem(e.target.dataset.itemId); | |||
} | |||
}); | |||
</ | search.addEventListener("input", () => { | ||
const value = search.value?.toLowerCase(); | |||
suggest.innerHTML = ""; | |||
allData.forEach((data) => { | |||
if (data.name.toLowerCase().includes(value)) { | |||
const div = document.createElement("div"); | |||
div.innerHTML = ` | |||
<img src="${data.icon}" class="suggest-icon" lazy /> | |||
<a class="suggest-item" href="#" data-item-id="${data.id}">${data.name}</a>`; | |||
suggest.appendChild(div); | |||
} | |||
}); | |||
}); |