From 8ba85993be0867f5d7a14cfdc2b8efdc970696d3 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Mon, 28 Sep 2026 21:39:51 -0700 Subject: [PATCH] oskiewar: each keycap lights for its own button The park legend named buttons from an old layout (punch B, kick Y, jump A), so pressing either Q or E lit both punch caps and a jump lit them too. Caps now carry the buttons the hosts send: Q/E are X/Y, Shift is A, Space is B, and the bubble is Shift+Q (A+X), and a pair of caps lights one at a time. --- xbox/live/oskiewar.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/xbox/live/oskiewar.js b/xbox/live/oskiewar.js index ec8b11f029..d3e885b507 100644 --- a/xbox/live/oskiewar.js +++ b/xbox/live/oskiewar.js @@ -19526,9 +19526,12 @@ function drawKeycapRun(entries, x, y, size, held, ink, revealAction = null) { for (const [cap, action, button] of entries) { for (const [index, label] of (Array.isArray(cap) ? cap : [cap]).entries()) { if (index) cursor += 5; + // Two caps can be two buttons (Q and E each punch): each lights for + // its own press, not whenever either is down. + const down = held.includes(Array.isArray(button) ? button[index] : button); cursor += keyboard - ? drawKeycap(label, cursor, y, size, held.includes(button)) - : drawPadButton(label, cursor, y, size, held.includes(button)); + ? drawKeycap(label, cursor, y, size, down) + : drawPadButton(label, cursor, y, size, down); } cursor += 8; if (!revealAction || revealAction([cap, action, button])) { @@ -27146,9 +27149,11 @@ function drawParkControls(p,safe){ if(drop)drawKeycapRun([[c.drop,'drop '+drop,'KeyQ']],safe.left,safe.bottom-size*1.6,size,held,[255,186,126]); const vehicle=p.skateboard||p.goKart||p.onewheel,gun=p.gunAmmo>0; const rows=[ - [[c.punch,p.chalkColor&&!fighting?'draw':p.axeHeld?'swing':gun?'shoot':'punch/hold',gun?'Y':'B'], - [c.kick,vehicle?'gas':'kick',vehicle?'ArrowUp':'Y']], - [[c.jump,p.skateboard&&!fighting?'off':'jump','A'],[c.bubble,'bubble','RightShoulder']]]; + // The buttons each cap sends: Q/E are X/Y, Shift is A, Space is B, and + // the bubble is Shift+Q (A+X) — the same layout the hosts map keys to. + [[c.punch,p.chalkColor&&!fighting?'draw':p.axeHeld?'swing':gun?'shoot':'punch/hold',['X','Y']], + [c.kick,vehicle?'gas':'kick','A']], + [[c.jump,p.skateboard&&!fighting?'off':'jump','B'],[c.bubble,'bubble',['A','X']]]]; for(const [row,entries] of rows.entries()){ const y=safe.bottom-size*3.4+row*size*1.8; drawKeycapRun(entries,safe.right-keycapRunWidth(entries,size),y,size,held,ink); -- 2.51.2