From 9498dfc1b9db64f72a24e42b4d82e8ac180ff8aa Mon Sep 17 00:00:00 2001 From: type-two Date: Tue, 21 Jul 2026 06:25:14 +1000 Subject: [PATCH] =?UTF-8?q?S17=20integration:=20apply=20C's=20offerBand=20?= =?UTF-8?q?hunk=20=E2=80=94=20the=20board=20stops=20lying=20about=20night?= =?UTF-8?q?=207=20(hail=20on=20every=20offer=20card)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/world/js/hud.js | 14 +++++++++++--- web/world/js/main.js | 8 +++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/web/world/js/hud.js b/web/world/js/hud.js index a99754e..3cf88ba 100644 --- a/web/world/js/hud.js +++ b/web/world/js/hud.js @@ -331,6 +331,11 @@ const CSS = ` #hud-card .offer .line { display:flex; justify-content:space-between; gap:14px; font-size:12px; color:#8ba0ad; padding:2px 0; } #hud-card .offer .line b { color:#dde5ea; font-weight:700; } +/* SPRINT17 [C]: the weather band. The hail line is lit brighter than the rest + because the soaker's whole trap is that its wind reads gentle — the one line + a player must not skim past. */ +#hud-card .offer .line.wx { color:#8ba0ad; } +#hud-card .offer .line.hail span { color:#cbd8e0; } /* The two numbers a tradie decides on. The fee is the reason to say yes and the exposure is the reason to say no, so they are weighted against each other rather than both being grey: money in, money at risk. */ @@ -816,14 +821,17 @@ export function createHud(d) { const offerHtml = (o, i) => { const n = o.night; const cons = o.constraints ?? []; - const f = o.forecast; + // SPRINT17 [C], applied by the integrator: the offer maps C's ORDERED + // band (wind · hail · rain · change · confidence) instead of picking + // two forecast fields, so an offer card can never hide a night's hail. + // The .hail line is lit brighter because it is the one a player must + // not skim past — the soaker's whole trap is a gentle-reading wind. return `