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 324: Linha 324:
         });
         });


        // Filtra e exibe as hunts
            // Filtra as hunts com base nos critérios selecionados
        function filterHunts() {
            function filterHunts() {
            const selectedMap = mapTypeSelect.value;
                const selectedMap = mapTypeSelect.value;
            const selectedHuntType = huntTipoSelect.value;
                const selectedHuntType = huntTipoSelect.value;
            const selectedDifficulty = difficultySelect.value;
                const selectedDifficulty = difficultySelect.value;
            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));
                    const matchesTags = selectedTags.length === 0 || selectedTags.some(tag => hunt.classes.includes(tag));
                const matchesHuntType = !selectedHuntType || hunt.huntTipo === selectedHuntType;
                    const matchesTypes = selectedTypes.length === 0 || selectedTypes.some(type => hunt.huntTypes.includes(type));
                const matchesDifficulty = !selectedDifficulty || hunt.difficulty === selectedDifficulty;
                    const matchesHuntType = !selectedHuntType || hunt.huntTipo === selectedHuntType;
                    const matchesDifficulty = !selectedDifficulty || hunt.difficulty === selectedDifficulty;


                if (matchesTags && matchesHuntType && matchesDifficulty) {
                    if (matchesTags && matchesTypes && matchesHuntType && matchesDifficulty) {
const imageItem = document.createElement("div");
                        const imageItem = document.createElement("div");
imageItem.className = "image-item";
                        imageItem.className = "image-item";
imageItem.innerHTML = `
                        imageItem.innerHTML = `
    <div class="image-content">
                            <div class="image-content">
        <a href="${hunt.link}" target="_blank">
                                <a href="${hunt.link}" target="_blank">
            <img src="${hunt.imageUrl}" alt="${hunt.name}">
                                    <img src="${hunt.imageUrl}" alt="${hunt.name}">
        </a>
                                </a>
        <div class="image-info">
                                <div class="image-info">
            <p><b>Nome do Local:</b> ${hunt.name}</p>
                                    <p><b>Nome do Local:</b> ${hunt.name}</p>
            <p><b>Localização:</b> ${hunt.local}</p>
                                    <p><b>Localização:</b> ${hunt.local}</p>
            <p><b>Dificuldade:</b> ${hunt.difficulty}</p>
                                    <p><b>Dificuldade:</b> ${hunt.difficulty}</p>
            ${hunt.hasType ? `<p><b>Dano da Hunt:</b> ${hunt.huntTypes.join(", ")}</p>` : ""}
                                    ${hunt.hasType ? `<p><b>Dano da Hunt:</b> ${hunt.huntTypes.join(", ")}</p>` : ""}
            <div class="class-container">
                                    <div class="class-container">
                <p><b>Clãs:</b></p>
                                        <p><b>Clãs:</b></p>
                <div class="class-icons">
                                        <div class="class-icons">
                    ${hunt.classes.map(cls => `<img src="${classIcons[cls]}" alt="${cls}" class="class-icon">`).join("")}
                                            ${hunt.classes.map(cls => `<img src="${classIcons[cls]}" alt="${cls}" class="class-icon">`).join("")}
                </div>
                                        </div>
            </div>
                                    </div>
        </div>
                                </div>
    </div>
                            </div>
`;
                        `;
                    imageContainer.appendChild(imageItem);
                        imageContainer.appendChild(imageItem);
                }
                    }
            });
                });
        }
             }
 
        // Event listeners
        mapTypeSelect.addEventListener("change", function () {
             updateHuntTypeDropdown(this.value);
            filterHunts(); // Filtra as hunts ao mudar o local
        });
 
        huntTipoSelect.addEventListener("change", filterHunts);
        difficultySelect.addEventListener("change", filterHunts);


        tagButtons.forEach(button => {
            // Event listeners para os dropdowns
             button.addEventListener("click", function () {
             mapTypeSelect.addEventListener("change", function () {
                 button.classList.toggle("selected");
                 updateHuntTypeDropdown(this.value);
                const tag = button.querySelector("img").alt;
                selectedTags.includes(tag) ? selectedTags.splice(selectedTags.indexOf(tag), 1) : selectedTags.push(tag);
                 filterHunts();
                 filterHunts();
             });
             });
        });
 
            huntTipoSelect.addEventListener("change", filterHunts);
            difficultySelect.addEventListener("change", filterHunts);


         // Não exibe nada inicialmente
         // Não exibe nada inicialmente
7 894

edições

Menu de navegação