Sat down with it like someone who'd never seen it. Five findings, all reproduced before fixing, all verified after: 1. The kitchen panel was a cheat console. BREAD/SPREAD/TOOL/BUTTER are the order's facts, but the widgets stayed live — you could fetch a soup spoon and then quietly re-select the butter knife. Locked during play; the browning dial stays yours because it's a real control. 2. The drawer card printed the ANSWER under the silhouette. The entire "similar but not identical" puzzle, solved by a caption. The name is gone; after ten seconds of fumbling it fades in as a pity: "fine. it's the butter knife." 3. Lifting anything above the rim committed it instantly — but fishing means lifting blockers, so you could accidentally "choose" whatever you were moving aside. Commit now needs 0.45s of continuous hold above the rim, which doubles as a beat to compare what you're holding against the silhouette. Verified: a wobbly lift takes ~0.95s because dipping below the rim resets the clock, and that's correct. 4. Coverage scored 20% on a slice a player had visibly covered corner to corner. Root cause: the "covered" floor scaled with the ASKED amount, so Coverage and Amount both punished thinness — double jeopardy. Coverage now asks its own question (are there bare patches? floor = 0.06 absolute) and the same conscientious play scores 84%. 5. Nothing told you how much was on the toast until the verdict. New live readout, computed by the judge's own functions: "on the toast: thin — normal asked · 84% covered". Watching it, a played-well day 1 went 8.8 -> 9.0, and the missing 0.2 is named on the card (stripes), not hidden. Also: the drawer holds 11 pieces dropped down a tighter column (a heap you rummage in, not an exploded diagram — padded with extra teaspoons, like every real drawer), it sits on a bench instead of floating in a void, Service is sim-time rather than wall-clock, and the title mentions the drawer exists. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
import { el, Panel } from './hud';
|
|
|
|
/** The front door. One button, one piece of art, one joke. */
|
|
export class Title {
|
|
private panel: Panel;
|
|
|
|
constructor(day: number, onStart: () => void) {
|
|
this.panel = new Panel('title');
|
|
const wrap = el('div', 'title-wrap', this.panel.root);
|
|
const art = el('img', 'title-art', wrap);
|
|
art.src = '/assets/img/title_art.png';
|
|
art.alt = '';
|
|
const txt = el('div', 'title-txt', wrap);
|
|
el('h1', undefined, txt, 'TOASTSIM');
|
|
el('p', 'title-sub', txt, 'Bread goes in. You are judged.');
|
|
const btn = el('button', 'btn', txt, day > 1 ? `RESUME — DAY ${day}` : 'START DAY 1');
|
|
btn.addEventListener('click', () => {
|
|
this.panel.dispose();
|
|
onStart();
|
|
});
|
|
const keys = el('div', 'title-keys', txt);
|
|
el('div', undefined, keys, 'SPACE — lever down, then pop');
|
|
el('div', undefined, keys, 'DRAG — fish the right tool from the drawer');
|
|
el('div', undefined, keys, 'DRAG — spread · WHEEL — tilt the knife · dip when empty');
|
|
el('div', undefined, keys, 'ENTER — serve it to him');
|
|
}
|
|
}
|