Sharpen league and Climb difficulty and give Gore a front door
This commit is contained in:
1 parent
e3faeb0a3a
commit
ede1f48152
6 files changed
+151
-51
No files matched your search
+10
-18
@@ -600,13 +600,12 @@ const countUp = (write, target, dur = 700) => {
|
||||
};
|
||||
// A SHIELD CATCHES THE LIGHT (2026-08-31, Oliver: not burning — "manchmal random schimmern").
|
||||
// The first cut was a chimney of embers, which read as a fire on a trophy. This is the opposite:
|
||||
// three points ON the shield, each dark for most of a long cycle and flaring for a fraction of it,
|
||||
// on delays and durations that share no common multiple — so a glint lands somewhere on the row
|
||||
// every couple of seconds and never twice in the same rhythm. CSS keyframes, no game loop.
|
||||
const glints = won => !won ? '' : Array.from({ length: 3 }, () =>
|
||||
// Three points ON the shield: the first catches the light within a second of opening the card,
|
||||
// then the long, varied cycles keep it occasional. CSS keyframes, no game loop.
|
||||
const glints = won => !won ? '' : Array.from({ length: 3 }, (_, i) =>
|
||||
`<em style="left:${(18 + Math.random() * 60).toFixed(0)}%;` +
|
||||
`top:${(12 + Math.random() * 52).toFixed(0)}%;` +
|
||||
`animation-delay:${(Math.random() * 9).toFixed(2)}s;` +
|
||||
`animation-delay:${(0.15 + i * 0.6 + Math.random() * 0.3).toFixed(2)}s;` +
|
||||
`animation-duration:${(6 + Math.random() * 5).toFixed(2)}s"></em>`).join('');
|
||||
|
||||
function buildCard() {
|
||||
@@ -737,21 +736,11 @@ document.getElementById('prGo').addEventListener('click', () => {
|
||||
const boardFor = m => m === 'zombie' || m === 'cup' || m === 'train' ? stats.MODE_MATCH
|
||||
: m === 'classic' ? stats.MODE_CLASSIC : stats.MODE_GORE;
|
||||
|
||||
// what the setup footer says you are about to play, and what it is worth beating
|
||||
|
||||
// The splash carries ONE number, on the STATS button. A boxed BEST RUN / WORLD RANK bar across the
|
||||
// top came out of the mockup and went again: it sat on the best part of the art and said twice what
|
||||
// the two buttons underneath already say. Re-read whenever the splash comes back up, because a run
|
||||
// has just ended and the count has moved.
|
||||
// The splash keeps career progress on the plaque; detailed records live behind STATS and BOARD.
|
||||
// Re-read on each arrival because the preceding run may have moved the level or league.
|
||||
function refreshSplash() {
|
||||
// THE TEXT REDUCTION (2026-08-31): the two secondary doors carry a NUMBER each instead of a
|
||||
// description — what you have done, and your own best on the board they open. The board figure
|
||||
// is read locally on purpose: the splash does not fetch the world board.
|
||||
document.getElementById('mKills').textContent = stats.total().kills.toLocaleString('en-GB');
|
||||
document.getElementById('mBest').textContent =
|
||||
'BEST ' + stats.bestScore(boardFor(pickedMode)).toLocaleString('en-GB');
|
||||
// THE PLAQUE — the meta identity, re-read whenever the splash comes back because a run has just
|
||||
// moved it (same rule as the kill count above). One row now: crest, name and level, and the bar
|
||||
// moved it. One row now: crest, name and level, and the bar
|
||||
// under them wearing the level it fills toward. The goal LINE is gone — the fixture button below
|
||||
// says what to do, and it said it twice.
|
||||
const pr = profile.progress(), lg = leagueOf(profile.prof.lg);
|
||||
@@ -819,6 +808,9 @@ document.getElementById('mStart').addEventListener('click', () => {
|
||||
pickMode('cup'); start('cup');
|
||||
});
|
||||
document.getElementById('mOther').addEventListener('click', goMode);
|
||||
document.getElementById('mGore').addEventListener('click', () => {
|
||||
pickMode('gore'); start('gore');
|
||||
});
|
||||
document.getElementById('mStats').addEventListener('click', openStats);
|
||||
// the world board opens on the mode you last PICKED, like the stats screen does — that is the one
|
||||
// whose names you came to look at
|
||||
|
||||
Reference in new issue
Block a user