diff --git a/src/public/script.js b/src/public/script.js index 6b1ed90..f669cb1 100644 --- a/src/public/script.js +++ b/src/public/script.js @@ -372,17 +372,55 @@ function broadcastTimerToPlayers(sec,running){ // MOD ROUND CONTROL // ══════════════════════════════════════════════════════ function toggleRound(){ - // Toggle: Open if closed, Close if open if(room.buzzerState.roundOpen){ ws_send({type:'close_round'}); + // Pause timer if toggle is ON + if(document.getElementById('timer-tog').checked){ + modTimerToggle(); + } } else { ws_send({type:'open_round'}); + // Start timer if toggle is ON + if(document.getElementById('timer-tog').checked){ + modTimerLoad(); + modTimerRunning=true; + document.getElementById('btn-timer-ss').textContent='PAUSE'; + modTimerInterval=setInterval(()=>{ + modTimerRemaining--; + renderModTimerDisplay(); + broadcastTimerToPlayers(modTimerRemaining,true); + if(modTimerRemaining<=0){ + clearInterval(modTimerInterval);modTimerRunning=false; + document.getElementById('btn-timer-ss').textContent='START'; + document.getElementById('timer-tog').checked=false; + ws_send({type:'close_round'}); + toast('TIME UP — round closed','warn'); + } + },1000); + } } } function resumeRound(){ - // Open round WITHOUT clearing existing buzzes (for accidental close recovery) ws_send({type:'resume_round'}); + // Resume timer if toggle is ON + if(document.getElementById('timer-tog').checked){ + modTimerLoad(); + modTimerRunning=true; + document.getElementById('btn-timer-ss').textContent='PAUSE'; + modTimerInterval=setInterval(()=>{ + modTimerRemaining--; + renderModTimerDisplay(); + broadcastTimerToPlayers(modTimerRemaining,true); + if(modTimerRemaining<=0){ + clearInterval(modTimerInterval);modTimerRunning=false; + document.getElementById('btn-timer-ss').textContent='START'; + document.getElementById('timer-tog').checked=false; + ws_send({type:'close_round'}); + toast('TIME UP — round closed','warn'); + } + },1000); + } } function renderRoundButtons(){ @@ -398,6 +436,10 @@ function renderRoundButtons(){ btn.className='btn btn-g btn-full'; resumeBtn.style.display='block'; } + + // Sync timer toggle state with modTimerRunning + const tog=document.getElementById('timer-tog'); + if(tog){tog.checked=modTimerRunning;} } // ══════════════════════════════════════════════════════