diff --git a/PROGRESS.md b/PROGRESS.md index 6d65982..304c3f2 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -41,6 +41,25 @@ dashboard reads — keep it in sync with the detailed sections below. GoDotTest 187 — all green. Remaining: merge (owner squash-merge after CI), live two-device rematch/pickup check, 60 fps profile with the director on the largest map (perf rule), web re-export for the arcade. - [~] Multiplayer-menu restructure 2026-07-05 (`docs/tasks/multiplayer-menu-restructure.md`, #247 prep) — title slimmed to **Solo | Multiplayer | Settings | Exit** (last label platform-aware: "Back to Arcade" on web via `title.back_to_arcade`, behaviour unchanged — `PlatformExit`); map picking moved **into the lobby browser** (new Maps button → MapSelect; desktop-only Editor button — the editor needs the local asset library the WASM build doesn't bundle); MapSelect Back stays → Title. New i18n key `browser.maps` (EN/ES/DA). GoDotTest 172✓ (red-first). Remaining: web-branch reconcile + WASM re-export + arcade redeploy. +- [~] Parallel batch 2026-07-17 (orchestrated; PRs #261 + #262 open — owner gates below): + **SFX overhaul** (#261, `feat/sfx-overhaul` @ d55195b) — the 12 silenced placeholder sounds (tank-death + explosion, wall break, generic pickup, all 9 per-powerup cues) regenerated via local Stable Audio + (assetfactory), loudness-matched to fire.ogg; every `SfxKind` now mapped in `SfxPool`; new + every-kind-decodes test; credits updated; GoDotTest 189✓ — **owner EAR-CHECK pending**. + **Net victory screen** (#262, `feat/net-victory-screen` @ 8c57885) — victory screen v2 on BOTH host and + guest at networked match end (standing / damage-taken / repairs ranked identically on every peer + from observed hp via pure-C# `NetMatchStats`; zero wire change; solo screen extracted into shared + `VictoryScreen`); Rematch/Leave intact; xUnit 695✓ + GoDotTest 190✓. + **Net teleport pads** (#262, `feat/net-teleport-pads` @ 6ef28e7, based ON the victory-screen + branch — one stacked PR carries both) — Cliffs' cross-layer pads now work online: host tanks got the + missing `teleporter:`, warps ride the existing TankState X/Y/Layer (zero wire change), guest + own-layer sync bug fixed, pad rings on both roles; GameLogic 562✓ + GoDotTest 193✓. Deferred: + pads on generated/net non-authored maps (gameplay decision). + **PowerupDirector perf check** (measurement only, no code) — headless sim of the largest map + (76×46, 8 AI + director, 3600 steps): mean ~45 µs/step, p99 ~110 µs — <1% of the 16.6 ms frame + budget, so the perf-rule question moves to on-device rendering, not the sim. Finding: ~9.7 KB/step + allocated by AI list/A* churn (not the director; `World.Step` itself stays zero-alloc) — optional + future pooling slice if WASM GC hitches appear on device. ## Current status: **M1 + S1 + M2 + local-first combat arc complete; local polish arc in progress** (2026-06-03)