Widget:Test4: mudanças entre as edições

Ir para navegação Ir para pesquisar
sem sumário de edição
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() {
function filterHunts() {
                const selectedMap = mapTypeSelect.value;
    const selectedMap = mapTypeSelect.value;
                const selectedDifficulty = difficultySelect.value;
    const selectedDifficulty = difficultySelect.value;
                const searchTerm = searchInput.value.toLowerCase();
    const searchTerm = searchInput.value.toLowerCase();
                imageContainer.innerHTML = "";
    imageContainer.innerHTML = "";


                if (!selectedMap) return;
    if (!selectedMap) return;


                const huntList = hunts[selectedMap];
    const huntList = hunts[selectedMap];
                huntList.forEach(hunt => {
    huntList.forEach(hunt => {
                    const matchesTags = selectedTags.length === 0 || selectedTags.some(tag => hunt.classes.includes(tag));
        // Verifica se a hunt tem "Todos" em classes ou huntTypes
                    const matchesTypes = selectedTypes.length === 0 || selectedTypes.some(type => hunt.huntTypes.includes(type));
        const hasAllClasses = hunt.classes.includes("Todos");
                    const matchesDifficulty = selectedDifficulty === "" || hunt.difficulty === selectedDifficulty;
        const hasAllTypes = hunt.huntTypes.includes("Todos");
                    const isNeutro = hunt.huntTipo === "Neutro";
                    const matchesSearch = hunt.name.toLowerCase().includes(searchTerm) || (hunt.altName && hunt.altName.toLowerCase().includes(searchTerm));


                    // Filtra as hunts com base no estado do toggle
        // Filtra por Clãs (ignora se a hunt tiver "Todos" em classes)
                    if (matchesTags && matchesTypes && matchesDifficulty && (!isNeutro || (isNeutro && showNeutro)) && matchesSearch) {
        const matchesTags = hasAllClasses || selectedTags.length === 0 || selectedTags.some(tag => hunt.classes.includes(tag));
                        const imageItem = document.createElement("div");
 
                        imageItem.className = "image-item";
        // Filtra por Tipos (ignora se a hunt tiver "Todos" em huntTypes)
                        imageItem.innerHTML = `
        const matchesTypes = hasAllTypes || selectedTypes.length === 0 || selectedTypes.some(type => hunt.huntTypes.includes(type));
                            <div class="image-content">
 
                                <a href="${hunt.link}" target="_blank">
        // Filtra por Dificuldade
                                    <img src="${hunt.imageUrl}" alt="${hunt.name}">
        const matchesDifficulty = selectedDifficulty === "" || hunt.difficulty === selectedDifficulty;
                                </a>
 
                                <div class="image-info">
        // Filtra por Hunts Neutras (se o toggle estiver ativado)
                                    <p><b>Nome do Local:</b> ${hunt.name}</p>  
        const isNeutro = hunt.huntTipo === "Neutro";
                                    <p><b>Localização:</b> ${hunt.local.join(", ")}</p>
 
                                    <p><b>Dificuldade:</b> ${hunt.difficulty}</p>
        // Filtra por Nome ou Nome Alternativo
                                    <p><b>Dano da Hunt:</b> ${hunt.huntTypes.join(", ")}</p>
        const matchesSearch = hunt.name.toLowerCase().includes(searchTerm) || (hunt.altName && hunt.altName.toLowerCase().includes(searchTerm));
                                    <div class="class-container">
 
                                        <p><b>Clãs:</b></p>
        // Exibe a hunt se passar por todos os filtros
                                        <div class="class-icons">
        if (matchesTags && matchesTypes && matchesDifficulty && (!isNeutro || (isNeutro && showNeutro)) && matchesSearch) {
                                            ${hunt.classes.map(cls => `<img src="${classIcons[cls]}" alt="${cls}" class="class-icon">`).join("")}
            const imageItem = document.createElement("div");
                                        </div>
            imageItem.className = "image-item";
                                    </div>
            imageItem.innerHTML = `
                                </div>
                <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>
                        imageContainer.appendChild(imageItem);
                    </div>
                    }
                </div>
                });
            `;
            }
            imageContainer.appendChild(imageItem);
        }
    });
}


             // Event listeners para os dropdowns
             // Event listeners para os dropdowns
7 750

edições

Menu de navegação