Hide play/pause once someone has run out
At a flag the game is over and togglePause is inert anyway — pauseNow needs RUN, resumeNow needs PAUSE — so the button was there without being able to do anything. It joins the other two visibility rules in render(): vacant at IDLE or FLAG. Reset stays, being the way out of a finished game, and the bar comes down to Reset, score and sound. Checked the whole state machine: shown while running and while paused, vacant before a game's first tap and at a flag, and pausing and resuming still work. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -69,8 +69,8 @@ everything works except installation and the service worker.
|
|||||||
included. Opening either sheet pauses automatically. The settings sheet leaves
|
included. Opening either sheet pauses automatically. The settings sheet leaves
|
||||||
it paused — everything in there resets the clocks anyway — while the score
|
it paused — everything in there resets the clocks anyway — while the score
|
||||||
sheet picks the turn back up when you close it, so glancing at the score
|
sheet picks the turn back up when you close it, so glancing at the score
|
||||||
doesn't cost you a tap on play. It's absent before each game's first tap, with
|
doesn't cost you a tap on play. It's absent whenever there's no clock running
|
||||||
no clock running to freeze.
|
to freeze: before each game's first tap, and once someone has run out of time.
|
||||||
|
|
||||||
Both buttons keep their space in the bar while they're away, so nothing shifts
|
Both buttons keep their space in the bar while they're away, so nothing shifts
|
||||||
under your thumb — the same as the gear.
|
under your thumb — the same as the gear.
|
||||||
|
|||||||
@@ -811,7 +811,9 @@
|
|||||||
var pristine = matchPristine();
|
var pristine = matchPristine();
|
||||||
btnSettings.classList.toggle("btn--vacant", !pristine);
|
btnSettings.classList.toggle("btn--vacant", !pristine);
|
||||||
btnReset.classList.toggle("btn--vacant", pristine); // nothing played to reset
|
btnReset.classList.toggle("btn--vacant", pristine); // nothing played to reset
|
||||||
btnPlay.classList.toggle("btn--vacant", st.phase === IDLE); // nothing running to pause
|
// nothing running to pause: before a game's first tap, and after a flag,
|
||||||
|
// where togglePause is inert anyway — the game is over, Reset is the way out
|
||||||
|
btnPlay.classList.toggle("btn--vacant", st.phase === IDLE || st.phase === FLAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
function loop(){ render(); requestAnimationFrame(loop); }
|
function loop(){ render(); requestAnimationFrame(loop); }
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/* Cache-first: once installed the clock never touches the network again. */
|
/* Cache-first: once installed the clock never touches the network again. */
|
||||||
const CACHE = "bgclock-v16";
|
const CACHE = "bgclock-v17";
|
||||||
const FILES = [
|
const FILES = [
|
||||||
"./",
|
"./",
|
||||||
"./index.html",
|
"./index.html",
|
||||||
|
|||||||
Reference in New Issue
Block a user