The back room: five taps on the logo, not three on the scoreboard

The weapon-test cheat sat on the SCOREBOARD, where a single tap is the miss-log
overlay — so the thing you tap to read a log was also the thing that opened a
sandbox mid-run, three taps in, by accident. That tap does one job again.

The cheats now live behind five taps on the splash logo, where nothing marks
them and nothing in play can reach them:

  WEAPON TEST  the old sandbox. It stocked only the BARREL weapons, on a screen
               called the weapon test — it stocks every weapon in the game now,
               eight of the nine slots.
  BOSS TEST    a portrait of every chapter boss, built by asking bossArt() what
               each chapter gets, so the list cannot drift from what a run
               actually spawns. Pick one and you land in a real fight at that
               chapter's game number with the full arsenal at ×99.

Neither is a special mode: both ride the transition out with laserScene's trick
(force the turn, then step the ten-second cinematic out in one frame) and hand
you the ordinary update loop, ordinary scoring, ordinary death. A test that
plays by different rules tells you nothing about the game.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-09 16:19:12 +02:00
1 parent 04ee0174ce
commit 1bb528f7e0
3 files changed
+100 -31

No files matched your search

+13 -10
View File
@@ -683,26 +683,29 @@ export function deliverTin() {
icon: WEAPONS[id].icon, color: UI.warm, t: TUNE.tinCardT };
}
// ---- TEST MODE. Triple-tap the scoreboard. A sandbox for trying the new content without playing
// twenty games to reach it: a steady medium wave and every barrel weapon on the rack, topped back up
// as you spend it. It does NOT stop the run — games, duels and bosses all still happen underneath;
// it only overrides the difficulty dials and keeps the rack stocked.
// ---- TEST MODE, the back room's WEAPON TEST (five taps on the splash logo — it used to be a
// triple-tap on the scoreboard). A sandbox for trying the new content without playing twenty games
// to reach it: a steady medium wave and EVERY weapon on the rack, topped back up as you spend it.
// It does NOT stop the run — games, duels and bosses all still happen underneath; it only overrides
// the difficulty dials and keeps the rack stocked.
export function toggleTestMode() {
G.testMode = !G.testMode;
if (!G.testMode) { G.flash = { text: 'TEST MODE OFF', t: 1.4 }; return false; }
if (G.mode === 'tennis') forceZombies(); // no zombies to test against in a tennis match
stockTestRack();
G.flash = { text: 'TEST MODE', t: 1.6 };
showModal({ title: 'TEST MODE', color: UI.pink,
body: ['A STEADY CROWD, MEDIUM SPEED', 'EVERY BARREL WEAPON, KEPT FULL',
'', 'TRIPLE-TAP THE SCOREBOARD AGAIN TO STOP'] });
showModal({ title: 'WEAPON TEST', color: UI.pink,
body: ['A STEADY CROWD, MEDIUM SPEED', 'EVERY WEAPON, KEPT FULL',
'', 'IT RUNS UNTIL THE RUN DOES'] });
return true;
}
// every barrel weapon on the rack at full stock. Called on entry and then kept topped up in update,
// so a burst you commit (which spends the whole tin) is available again a moment later.
// EVERY weapon on the rack at full stock — the four tins as well as the four barrel weapons, which
// is eight of the nine slots. It stocked only the barrel weapons before, on a screen called the
// weapon test. Called on entry and then kept topped up in update, so a burst you commit (which
// spends the whole tin) is available again a moment later.
function stockTestRack() {
for (const id of Object.keys(BARREL_WEAPONS)) {
for (const id of Object.keys(WEAPONS)) {
const have = G.rack.find(e => e.id === id);
if (have) have.n = Math.max(have.n, WEAPONS[id].tin);
else if (G.rack.length < RACK_MAX) G.rack.push({ id, n: WEAPONS[id].tin });