From b8595f6c356ee384afffa2e1503f6150f57ff5ca Mon Sep 17 00:00:00 2001 From: Oliver Rieger Date: Fri, 14 Aug 2026 12:12:41 +0200 Subject: [PATCH] EASY grows a backbone, and the door out steps below the blood MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two phone verdicts. "easy is now way too easy" — its first cut was tuned before HARD taught us which dials bite, and with reaction 0.62 and a 0.62 quality cap it had become a training dummy. EASY is a mild step below MEDIUM now (flub 0.18, quality 0.76, reaction 0.54, speed 0.9): beatable without being able to fall asleep on it. And the quit chip sat exactly on the BLOOD panel's corner in the splatter modes — it rides 40px down now, below the pips' strip, one position with one meaning in every mode. Verified live over a zombie run: pips and door stacked, nothing touching. Co-Authored-By: Claude Fable 5 --- index.html | 6 ++++-- src/config.js | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index d04581c..c4619db 100644 --- a/index.html +++ b/index.html @@ -83,7 +83,9 @@ if (location.hostname !== 'splatter-tennis.wuwi.one') { font: 400 10px Silkscreen, monospace; color: #6b7688; } /* THE DOOR OUT (Oliver: every tennis screen lacked an exit — force-closing the app was the only way back to the menu). A quiet chip during play; tapping it freezes the world and asks. */ - #quit { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 8px); right: 8px; z-index: 5; } + /* below the BLOOD panel's strip (top ~30 logical px on the right in the splatter modes), so the + door never sits on the pips — one position, one meaning, every mode */ + #quit { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 40px); right: 8px; z-index: 5; } #quit button { width: 34px; height: 34px; background: rgba(14,23,20,0.72); border: 2px solid var(--line); color: var(--dim); font: 400 15px Silkscreen, monospace; cursor: pointer; -webkit-tap-highlight-color: transparent; } @@ -492,6 +494,6 @@ if (location.hostname !== 'splatter-tennis.wuwi.one') { - + diff --git a/src/config.js b/src/config.js index e3c5f4e..983564a 100644 --- a/src/config.js +++ b/src/config.js @@ -666,7 +666,9 @@ export const MENU = [ // Speed calibration: the zombie RUNNER covers 2.8 x 1.8 x 1.22 = 6.15 m/s with no reaction gate, // and Oliver clocked HARD as slower than him — HARD now moves 4.3 x 1.5 = 6.45. export const DIFFS = [ - { id: 'easy', name: 'EASY', flub: 0.30, quality: 0.62, qMin: 0.45, speed: 0.80, reaction: 0.62, reach: 1.45, serve: 0.75, smart: 0, recover: 0.4 }, + // EASY's first cut (flub 0.30, quality cap 0.62, reaction 0.62) was "way too easy" once HARD + // taught us which dials bite — it is a mild step below MEDIUM now, not a training dummy + { id: 'easy', name: 'EASY', flub: 0.18, quality: 0.76, qMin: 0.45, speed: 0.90, reaction: 0.54, reach: 1.52, serve: 0.9, smart: 0, recover: 0.45 }, { id: 'medium', name: 'MEDIUM', flub: 0.10, quality: 0.86, qMin: 0.45, speed: 1.0, reaction: 0.45, reach: 1.6, serve: 1.0, smart: 0, recover: 0.5 }, { id: 'hard', name: 'HARD', flub: 0.01, quality: 1.0, qMin: 0.70, speed: 1.50, reaction: 0.22, reach: 1.85, serve: 1.15, smart: 0.8, recover: 0.85 }, ];