// shared/js/door-open.js /** * Bratonien Adventskalender – Türöffnung (2025) * --------------------------------------------- * Öffnet normale Türen (.door) und Doppelflügeltüren (.fluegel) * und triggert das Event für save-progress.js */ document.querySelectorAll(".door, .fluegel, .openfield").forEach(elem => { elem.addEventListener("click", () => { const day = elem.dataset.day; if (!day) return; const openfield = document.querySelector(`.openfield[data-day="${day}"]`); const door = document.querySelector(`.door[data-day="${day}"]`); const left = document.querySelector(`.fluegel.left[data-day="${day}"]`); const right = document.querySelector(`.fluegel.right[data-day="${day}"]`); // === EINZELTÜR-LOGIK === if (elem.classList.contains("door") || (openfield && door && elem === openfield)) { if (door.classList.contains("open")) { console.log(`Tür ${day} erneut geöffnet`); document.dispatchEvent(new CustomEvent("doorOpened", { detail: { day } })); return; } door.classList.add("open"); if (openfield) openfield.classList.add("open"); document.dispatchEvent(new CustomEvent("doorOpened", { detail: { day } })); return; } // === DOPPELFLÜGEL-LOGIK === if (elem.classList.contains("fluegel") || (openfield && left && right && elem === openfield)) { const bothOpen = left?.classList.contains("rota") && right?.classList.contains("rota"); if (bothOpen) { console.log(`Flügeltür ${day} erneut geöffnet`); document.dispatchEvent(new CustomEvent("doorOpened", { detail: { day } })); return; } if (left) left.classList.add("rota"); if (right) right.classList.add("rota"); if (openfield) openfield.classList.add("open"); document.dispatchEvent(new CustomEvent("doorOpened", { detail: { day } })); } }); });