From e4a3808a19c872c5b705d155dd1d7ace95dbb2b1 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 26 Jun 2026 14:57:51 -0400 Subject: [PATCH] =?UTF-8?q?docs(@projects/@magic-civilization):=20?= =?UTF-8?q?=F0=9F=93=8A=20p3-26=20gap=202=20=E2=80=94=20honest=20remaining?= =?UTF-8?q?-category=20breakdown?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3 event categories live (wildfire/drought/volcanic) on existing grid fields. Recorded the real shape of the rest (not trivial pattern-repeats): - seismic/impact/tsunami: geological terrain ops (elevation/crater/coastal) — partially portable with the current grid. - solar/glacial: need the Rust climate physics to consume new solar_forcing/glacial_forcing fields (injecting a field without physics reading it is inert). - plague/pandemic/marine: need fauna/marine subsystem integration (fauna population death, fish_stock/reef) — overlaps the marine_harvest port (gap-1 tail). - magical: Game-3 deferred. So gap 2 = a complete, verified framework + 3 categories; finishing the rest is sequenced real work, not boilerplate. Co-Authored-By: Claude Opus 4.8 (1M context) --- .project/objectives/p3-26-complete-headless-simulator.md | 2 +- public/games/age-of-dwarves/data/objectives.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.project/objectives/p3-26-complete-headless-simulator.md b/.project/objectives/p3-26-complete-headless-simulator.md index a9df4fff..1ecb22b3 100644 --- a/.project/objectives/p3-26-complete-headless-simulator.md +++ b/.project/objectives/p3-26-complete-headless-simulator.md @@ -32,7 +32,7 @@ expansion, tech/science, fauna encounters, combat/siege, diplomacy. Verified liv `atmosphere`, `ecology`); only the per-turn ORCHESTRATION is GDScript-only. Wire it onto `state.grid` in `step()`. Effects: weather events + unit HP damage + tile climate shifts in the headless sim. -- [~] **Gap 2 — Natural / "apocalyptic" events (M3 milestone).** STARTED 2026-06-26: ported the deterministic core to `mc-climate::events` (`hash_noise`/`roll_severity`/`category_fires`), verified to match the live GDScript game bit-for-bit (`hash_noise(10,0,1000)=0.67791910066535`; the TS web guide's Math.sin diverges on large args — separate concern). NB: `.messy` is gone; the source is the live `ecological_events.gd` + `ecological_event_handlers_a/b.gd` + 12-category JSON in `public/resources/events/`. **Progress 2026-06-26:** mc-climate::events = deterministic core (GDScript-verified) + config model/loader + dispatch (process_events) + WILDFIRE & DROUGHT categories (effect + dispatch) + wired into mc-turn climate phase + GdPlayerApi.set_events_config_json FFI + headless-harness loading (DataLoader.get_ecological_events). ~10 events tests; mc-turn 338/0; dylib rebuilt (FFI present) + boot GUT 750/0. **Remaining:** the other 10 categories (volcanic/impact/seismic/tsunami/plague/pandemic/marine/solar/glacial/magical-deferred) + surfacing fired events in the turn result/view + era-based max_tier cap. ORIG: Port the `.messy` +- [~] **Gap 2 — Natural / "apocalyptic" events (M3 milestone).** STARTED 2026-06-26: ported the deterministic core to `mc-climate::events` (`hash_noise`/`roll_severity`/`category_fires`), verified to match the live GDScript game bit-for-bit (`hash_noise(10,0,1000)=0.67791910066535`; the TS web guide's Math.sin diverges on large args — separate concern). NB: `.messy` is gone; the source is the live `ecological_events.gd` + `ecological_event_handlers_a/b.gd` + 12-category JSON in `public/resources/events/`. **Progress 2026-06-26:** mc-climate::events = deterministic core (GDScript-verified) + config model/loader + dispatch (process_events) + WILDFIRE & DROUGHT categories (effect + dispatch) + wired into mc-turn climate phase + GdPlayerApi.set_events_config_json FFI + headless-harness loading (DataLoader.get_ecological_events). ~10 events tests; mc-turn 338/0; dylib rebuilt (FFI present) + boot GUT 750/0. **Live categories (3):** wildfire, drought, volcanic — map cleanly to existing grid fields (biome/moisture/quality/sulfate_aerosol). **Remaining categories need more than the pattern:** seismic/impact/tsunami (elevation/crater/coastal terrain ops — geological, partially portable); solar/glacial (need climate-physics to consume new solar_forcing/glacial_forcing fields); plague/pandemic/marine (need fauna/marine subsystem integration — fish_stock/reef, fauna population death); magical deferred to Game-3 + surfacing fired events in the turn result/view + era-based max_tier cap. ORIG: Port the `.messy` `ecological_events.gd` (992 lines) → Rust, split per the milestone plan (`.project/tasks/milestones/m3-natural-events/`): geological (volcano/impact/seismic/ tsunami), ecological (wildfire/drought/plague/pandemic), marine, weather (already in diff --git a/public/games/age-of-dwarves/data/objectives.json b/public/games/age-of-dwarves/data/objectives.json index 4f5283ba..91227a6a 100644 --- a/public/games/age-of-dwarves/data/objectives.json +++ b/public/games/age-of-dwarves/data/objectives.json @@ -1,12 +1,12 @@ { - "generated_at": "2026-06-26T15:09:24Z", + "generated_at": "2026-06-26T18:57:51Z", "totals": { "partial": 3, - "stub": 0, - "in_progress": 0, "missing": 0, - "oos": 31, "done": 296, + "in_progress": 0, + "stub": 0, + "oos": 31, "total": 330 }, "objectives": [