7 750
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 427: | Linha 427: | ||
// Filtra as hunts com base nos critérios selecionados | // Filtra as hunts com base nos critérios selecionados | ||
function filterHunts() { | |||
const selectedMap = mapTypeSelect.value; | |||
const selectedDifficulty = difficultySelect.value; | |||
const searchTerm = searchInput.value.toLowerCase(); | |||
imageContainer.innerHTML = ""; | |||
if (!selectedMap) return; | |||
const huntList = hunts[selectedMap]; | |||
huntList.forEach(hunt => { | |||
// Verifica se a hunt tem "Todos" em classes ou huntTypes | |||
const hasAllClasses = hunt.classes.includes("Todos"); | |||
const hasAllTypes = hunt.huntTypes.includes("Todos"); | |||
// Filtra por Clãs (ignora se a hunt tiver "Todos" em classes) | |||
const matchesTags = hasAllClasses || selectedTags.length === 0 || selectedTags.some(tag => hunt.classes.includes(tag)); | |||
// Filtra por Tipos (ignora se a hunt tiver "Todos" em huntTypes) | |||
const matchesTypes = hasAllTypes || selectedTypes.length === 0 || selectedTypes.some(type => hunt.huntTypes.includes(type)); | |||
// Filtra por Dificuldade | |||
const matchesDifficulty = selectedDifficulty === "" || hunt.difficulty === selectedDifficulty; | |||
// Filtra por Hunts Neutras (se o toggle estiver ativado) | |||
const isNeutro = hunt.huntTipo === "Neutro"; | |||
// Filtra por Nome ou Nome Alternativo | |||
const matchesSearch = hunt.name.toLowerCase().includes(searchTerm) || (hunt.altName && hunt.altName.toLowerCase().includes(searchTerm)); | |||
// Exibe a hunt se passar por todos os filtros | |||
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}"> | |||
</a> | |||
<div class="image-info"> | |||
<p><b>Nome do Local:</b> ${hunt.name}</p> | |||
<p><b>Localização:</b> ${Array.isArray(hunt.local) ? hunt.local.join(", ") : hunt.local}</p> | |||
<p><b>Dificuldade:</b> ${hunt.difficulty}</p> | |||
<p><b>Dano da Hunt:</b> ${hunt.huntTypes.includes("Todos") ? "Todos" : hunt.huntTypes.join(", ")}</p> | |||
<div class="class-container"> | |||
<p><b>Clãs:</b></p> | |||
<div class="class-icons"> | |||
${hunt.classes.includes("Todos") ? "Todos" : hunt.classes.map(cls => `<img src="${classIcons[cls]}" alt="${cls}" class="class-icon">`).join("")} | |||
</div> | </div> | ||
`; | </div> | ||
</div> | |||
</div> | |||
`; | |||
imageContainer.appendChild(imageItem); | |||
} | |||
}); | |||
} | |||
// Event listeners para os dropdowns | // Event listeners para os dropdowns |