// shared/js/door-open.js // Öffnet Türen, Flügel und Openfields // und sagt den anderen Skripten Bescheid (Popup, Save) 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 flLeft = document.querySelector(`.fluegel.left[data-day="${day}"]`); const flRight = document.querySelector(`.fluegel.right[data-day="${day}"]`); // 1) normale Tür if (elem.classList.contains("door")) { if (!door.classList.contains("open")) { door.classList.add("open"); if (openfield) openfield.classList.add("open"); } notifyDayOpened(day); return; } // 2) Flügeltür if (elem.classList.contains("fluegel")) { const beideOffen = flLeft?.classList.contains("rota") && flRight?.classList.contains("rota"); if (!beideOffen) { if (flLeft) flLeft.classList.add("rota"); if (flRight) flRight.classList.add("rota"); if (openfield) openfield.classList.add("open"); } notifyDayOpened(day); return; } // 3) openfield (erneut öffnen / nur Popup) if (elem.classList.contains("openfield")) { notifyDayOpened(day); return; } }); }); /** * Sagt allen anderen Skripten: „Tag X wurde geöffnet“ * popup.js kann window.openPopup(day) bereitstellen * save-progress.js hört auf das CustomEvent */ function notifyDayOpened(day) { // fürs Speichern document.dispatchEvent(new CustomEvent("doorOpened", { detail: { day } })); // fürs Popup (deine vorhandene popup.js) if (typeof window.openPopup === "function") { window.openPopup(day); } }