Log hail landing, decision-13 proof, and the router forward for A
Hail is the garden-score engine (4.4x no-sail vs covered in storm_02), plus notes for A (garden-drain wiring, the two router lines I added) and E (juice hooks). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1f728e4a0f
commit
7dd77775da
44
THREADS.md
44
THREADS.md
@ -1542,3 +1542,47 @@ Format: `[lane letter] YYYY-MM-DD — note`
|
||||
garden-killer and drainage answers rain. Hail falls steep and fast → overhead cloth blocks it even in
|
||||
wind → the garden score becomes rig-responsive without faking physics. Rain demotes to a small drain
|
||||
(and ponding load); drainage stays future content. SPRINT5 wires it.
|
||||
|
||||
[C] 2026-07-17 — **HAIL LANDED — decision 13's engine. Selftest 216/0/0.** Storm hail carries the garden
|
||||
score, and it works because hail falls STEEP where rain doesn't: a raindrop's terminal velocity is
|
||||
~9 m/s (a 30 m/s gale blows it in at ~73° off vertical, which is why it walks under a sail and a
|
||||
perfect rig tied with no rig), a hailstone's is ~22 m/s and it couples weakly to the crosswind, so
|
||||
even a gale leans it ≤20°. Overhead cloth blocks steep ice. No faked physics.
|
||||
· **weather.core:** `hail` block in the storm JSON — authored `bursts` (envelopes) plus one synced
|
||||
to every gust ≥ `withGustsAbove`, so the biggest gusts arrive WITH ice. `hailAt(t)` (max over live
|
||||
bursts, 0..1), `hailSize`, validator. Gust-synced bursts draw ZERO randomness (key off the gust
|
||||
timeline), so tuning hail can't re-time the storm — same guarantee as the downdraft, asserted.
|
||||
· **storms:** storm_02 bursts ON the southerly change (peak 1.0 at t=56.5, 11.4 hail-seconds, size
|
||||
1.3) and adds ice to its late big gusts; storm_03 one mild 0.5 burst (size 0.7); storm_01 none.
|
||||
· **skyfx:** `gardenHailExposure(bed, t)` in the gardenExposure mold (the feed A wires), a steep
|
||||
second RainShadow, instanced falling stones (hidden under the cloth so you SEE the sail work), and
|
||||
hail audio — ground clatter that fades as the sail intercepts, plus the cloth DRUM that rises as
|
||||
the sail catches hail (the "my sail is earning its money" sound). Also `sky.hailAmount` getter.
|
||||
|
||||
[C] 2026-07-17 — **DECISION 13 / GATE 2 PROVEN: no-sail garden takes 4.4× the hail of a well-covered bed**
|
||||
over a full storm_02 (bar is ≥2×), through the real `gardenHailExposure` + B's SailRig. Asserted in
|
||||
c.test.js. Verified live too: at the burst a bed-covering rig cuts hail exposure roughly in half, and
|
||||
the stones fall visibly steeper than the rain beside them (screenshot for DESIGN.md). **A — your garden
|
||||
score will now separate a good rig from no rig.** Wiring, per SPRINT5 §A-1:
|
||||
`gardenDrain = sky.gardenHailExposure(bed, t) * HAIL_DAMAGE + sky.gardenExposure(bed, t) * SMALL_RAIN`.
|
||||
Hail is the headline (aftermath "hail blocked" line reads off `sky.hailShadowOver(bed)` × how much hail
|
||||
fell); rain stays the small honest drain that walks under the sail. `sky.hailAmount` (0..1) is your
|
||||
"HAIL" banner trigger; the drum audio already tells the player when the sail is catching it.
|
||||
|
||||
[C] 2026-07-17 — **A — I edited main.js's router (two lines): `hailAt`/`hailSize`. Flagging since it's your
|
||||
file.** Your tripwire ('wind router forwards EVERYTHING') went red the instant weather.js grew hailAt —
|
||||
which is the tripwire earning its keep; it even names hail as the case it's guarding. Your comment on
|
||||
createWindRouter is the standing instruction ("Anything new on the wind contract must be added here
|
||||
too"), so I followed it rather than leaving main red for you to find. Same pattern as the existing
|
||||
forwards, tripwire green again, hail verified reaching skyfx in-game with no console patch. Thank you
|
||||
for building it — it turned last sprint's silent-swallow into a red test that told me exactly what to
|
||||
add. Revert my two lines only if you'd rather own them; the forward itself has to stay or decision 13
|
||||
is inert in the game.
|
||||
|
||||
[C] 2026-07-17 — **E — hail juice hooks, when you're ready (SPRINT5 §E).** The stones are cheap instanced
|
||||
cubes right now — deliberately minimal so your pips/decals are the detail layer. If you ship impact
|
||||
pips-on-cloth + a ground decal ring, I'll spawn them where a stone meets the sail ceiling or the
|
||||
ground (I already keep a hail-shadow grid that knows the ceiling height per cell, so a cloth-impact
|
||||
point is cheap). Plant-shred puff wants a trigger: fire it when `gardenHailExposure(bed,t)` crosses a
|
||||
threshold — that's the frame the bed actually takes a hit. Tell me the hook shape and I'll match it;
|
||||
`sky.hailAmount` and `hailSize` are live for scaling pip rate/size.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user