render_fall now offsets each COLUMN's drop START by a small bounded delay (fall_stagger_t) so a refilled/collapsed row pours in as a left-to-right cascade instead of every gem snapping down in one flat lockstep row. Column col waits FALL_STAGGER_MAX (0.30) * col/7 of the fall window, then falls over the remaining 1 - 0.30, with that local progress fed through ease_in_cubic so each column still accelerates under gravity within its own window. Bounded by construction: the last column lands EXACTLY at t=1 and every earlier column strictly before it, so no gem is ever left mid-air at the segment end — the seam to the next round / settled board stays invisible and move.final is untouched. FALL_ANIM_DUR (0.22s) and the timeline helpers (phase/total/cascade_rounds_started) are unchanged, so the per-round cascade-cue timing snapshots don't churn and live per-round audio is unaffected. Render-only — no board.sx model change. tests/easing.sx pins fall_stagger_t: f(0)=0, f(1)=1 across all columns (no gem unlanded), per-column monotonicity, and the mid-fall cascade ordering (each later column strictly behind the one before). tests/anim_plan.sx (final==model, contiguity) stays green. Golden goldens/p17_stagger.png: M3TE_FX=11 (depth-5 cascade, seed 1337) pinned at M3TE_ANIM_TIME=1.91 — round 4 refills columns 2-7 by one cell each, so the top row reads as a left-to-right staircase (vs the pre-stagger flat row in p17_fall.png).
14 lines
704 B
Plaintext
14 lines
704 B
Plaintext
== endpoints locked ==
|
|
ease_in true ease_in_out true back true spring true squash true existing true
|
|
== monotonic where required ==
|
|
ease_in true ease_in_out true ease_out_cubic true ease_in_quad true
|
|
== overshoot bounded + settles ==
|
|
back_overshoots true back_bounded true spring_overshoots true spring_bounded true spring_wobbles true
|
|
== squash envelope bounded ==
|
|
squash_moves true squash_two_sided true squash_bounded true
|
|
== illegal-swap bounce ==
|
|
bounce_ends true peak_amp true peak_loc true overshoots true overshoot_bounded true settles true
|
|
== fall stagger bounded ==
|
|
stagger_t0 true stagger_t1 true stagger_cascade true stagger_mono true
|
|
ok: easing toolkit endpoints locked + amplitudes bounded
|