const config = window.SeasonalsPluginConfig?.MarioDay || {}; const marioday = config.EnableMarioDay !== undefined ? config.EnableMarioDay : true; let msgPrinted = false; function toggleMarioDay() { const container = document.querySelector('.marioday-container'); if (!container) return; const videoPlayer = document.querySelector('.videoPlayerContainer'); const trailerPlayer = document.querySelector('.youtubePlayerContainer'); const isDashboard = document.body.classList.contains('dashboardDocument'); const hasUserMenu = document.querySelector('#app-user-menu'); if (videoPlayer || trailerPlayer || isDashboard || hasUserMenu) { container.style.display = 'none'; if (!msgPrinted) { console.log('MarioDay hidden'); msgPrinted = true; } } else { container.style.display = 'block'; if (msgPrinted) { console.log('MarioDay visible'); msgPrinted = false; } } } const observer = new MutationObserver(toggleMarioDay); observer.observe(document.body, { childList: true, subtree: true, attributes: true }); function createMarioDay(container) { const wrapper = document.createElement('div'); wrapper.className = 'mario-wrapper'; const mario = document.createElement('img'); mario.className = 'mario-runner'; mario.src = '../Seasonals/Resources/mario_assets/mario.gif'; wrapper.appendChild(mario); container.appendChild(wrapper); // Periodically throw out an 8-bit coin setInterval(() => { if (!document.querySelector('.marioday-container')) return; const coin = document.createElement('div'); coin.className = 'mario-coin'; // Grab Mario's current screen position to lock the coin's X coordinate const marioRect = wrapper.getBoundingClientRect(); coin.style.left = `${marioRect.left + 16}px`; coin.style.bottom = '35px'; // Adjust for wrapper's bottom offset container.appendChild(coin); setTimeout(() => coin.remove(), 2000); }, 4000); } function initializeMarioDay() { if (!marioday) return; const container = document.querySelector('.marioday-container') || document.createElement("div"); if (!document.querySelector('.marioday-container')) { container.className = "marioday-container"; container.setAttribute("aria-hidden", "true"); document.body.appendChild(container); } createMarioDay(container); toggleMarioDay(); } initializeMarioDay();