7 894
edições
Sem resumo de edição Etiqueta: Revertido |
Sem resumo de edição Etiqueta: Revertido |
||
Linha 209: | Linha 209: | ||
</div> | </div> | ||
<div id="clanFilter" class="input-group"> | |||
<label><b>Filtro de clãs do jogador:</b></label> | |||
<div id="tagCheckboxes"></div> | |||
</div> | |||
<div id="typeFilter" class="input-group hidden"> | |||
<label><b>Filtro de dano causado pelo Pokémon selvagem:</b></label> | |||
<div id="typeCheckboxes"></div> | |||
</div> | |||
<div id="imageContainer" class="image-container"></div> | <div id="imageContainer" class="image-container"></div> | ||
Linha 320: | Linha 321: | ||
}); | }); | ||
function clearFilters() { | |||
tagCheckboxesContainer.querySelectorAll("input[type='checkbox']").forEach(cb => cb.checked = false); | |||
typeCheckboxesContainer.querySelectorAll("input[type='checkbox']").forEach(cb => cb.checked = false); | |||
selectedTags = []; | |||
selectedTypes = []; | |||
filterHunts(); | |||
} | |||
switchClans.addEventListener("click", () => { | switchClans.addEventListener("click", () => { | ||
Linha 354: | Linha 350: | ||
}); | }); | ||
function getSelectedValues(container) { | |||
return Array.from(container.querySelectorAll("input[type='checkbox']:checked")) | |||
.map(input => input.value); | |||
} | |||
function filterHunts() { | |||
const selectedDifficulty = difficultySelect.value; | |||
const searchTerm = searchInput.value.toLowerCase(); | |||
selectedTags = getSelectedValues(tagCheckboxesContainer); | |||
selectedTypes = getSelectedValues(typeCheckboxesContainer); | |||
imageContainer.innerHTML = ""; | |||
if (!selectedDifficulty) return; | |||
const huntList = hunts["NW"]; | |||
huntList.forEach(hunt => { | |||
const hasAllClasses = hunt.classes.includes("Todos"); | |||
const hasAllTypes = hunt.huntTypes.includes("Todos"); | |||
const matchesTags = hasAllClasses || selectedTags.length === 0 || selectedTags.some(tag => hunt.classes.includes(tag)); | |||
const matchesTypes = hasAllTypes || selectedTypes.length === 0 || selectedTypes.some(type => hunt.huntTypes.includes(type)); | |||
const matchesDifficulty = hunt.difficulty === selectedDifficulty; | |||
const isNeutro = hunt.huntTipo === "Neutro"; | |||
const matchesSearch = hunt.name.toLowerCase().includes(searchTerm) || (hunt.altName && hunt.altName.toLowerCase().includes(searchTerm)); | |||
if (matchesTags && matchesTypes && matchesDifficulty && (!isNeutro || (isNeutro && showNeutro)) && matchesSearch) { | |||
const imageItem = document.createElement("div"); | |||
imageItem.className = "image-item"; | |||
imageItem.innerHTML = ` | |||
<div class="image-content"> | |||
<a href="${hunt.link}" target="_blank"> | |||
<img src="${hunt.imageUrl}" alt="${hunt.name}" title="Clique para mais informações"> | |||
</a> | |||
<div class="image-info"> | |||
<p><b>Resistência: </b> ${Array.isArray(hunt.local) ? hunt.local.join(", ") : hunt.local}</p> | |||
<p><b>Dificuldade: </b> ${hunt.difficulty}</p> | |||
<p><b>Dano: </b> ${hunt.huntTypes.join(", ")}</p> | |||
<p><b>Clãs: </b> ${hunt.classes.join(", ")}</p> | |||
</div> | |||
<div class="image-info"> | </div> | ||
`; | |||
imageContainer.appendChild(imageItem); | |||
} | |||
}); | |||
} | |||
</div> | |||
difficultySelect.addEventListener("change", filterHunts); | difficultySelect.addEventListener("change", filterHunts); |