- commit
- 36ce8e37799fc2f3f4a12a0279291150986f00ed
- parent
- 42fdd2f367e25e65595c0457158aa60ef328d142
- author
- Dami <dami.etoile@gmail.com>
| M | progress.md | 10 | +++++++--- |
| M | tests/ | 14 | +++++++++++--- |
@@ -600,9 +600,13 @@ layout-handed winding, boundary-port extrapolation, crease rounding, tall
600600 containment walls, cup pan above the one-sided sheet) with curvature-aware601601 braking in the shared assist. Feel: gravity −20, authority accel 6→target 3.2,602602 max 9, restitution 0.35. Live: ~507u/3min, deaths escalate past residual rough603-spots. REMAINING M11: movement set-pieces (planner-placed powerup modifiers:604-propeller-jump, shock-drop, per-tile speed/gravity tags via rail stations),605-branch respawns, bumps re-admittance, more survivability seeds.603+spots. DONE ALSO: per-tile modifier channel (EndlessSegment.pieceFamilies →604+rail-station {speed, grav} mods → assist law; helix 1.35× speed, slant/ramp605+1.2×/1.15× gravity — the future carrier for icy/boost/bouncers/powerup606+pads/island gravity rotation); survivability deepened to 7 seeds ×607+goal-at-segment-4. REMAINING M11: movement set-pieces (planner-placed powerup608+modifiers: propeller-jump, shock-drop, per-tile speed/gravity tags via rail609+stations), branch respawns, bumps re-admittance, more survivability seeds.606610 607611 **M10 — DONE (physics marble + checkpoints + respawn).** The endless marble is a608612 Box3D body by default (?phys=0 → kinematic fallback).@@ -181,15 +181,23 @@ function driveWith(
181181 182182 Deno.test("physics survivability: assisted marble clears early segments", async () => {183183 module_ = await factory();184- const SEEDS = ["cua-seed-1", "abs-1", "fuzz-0", "det-seed", "drift-seed"];184+ const SEEDS = [185+ "cua-seed-1",186+ "abs-1",187+ "fuzz-0",188+ "det-seed",189+ "drift-seed",190+ "atmo-seed",191+ "biome-3",192+ ];185193 const results: { seed: string; ok: boolean; r: RunResult; goal: number }[] =186194 [];187195 for (const seed of SEEDS) {188196 const w = new EndlessWorld(seed, catalog);189- const goal = w.get(3).startS; // past the end of segment 2197+ const goal = w.get(4).startS; // past the end of segment 3190198 // Stop at the goal — a fast marble outruns the finite test world and191199 // "falls" off the unbuilt horizon otherwise.192- const r = drive(seed, 5, 90, goal);200+ const r = drive(seed, 6, 120, goal);193201 results.push({ seed, ok: !r.fell && r.reachedS >= goal, r, goal });194202 }195203 const failures = results.filter((x) => !x.ok);