From 00a349a38811a462d2504613d959545c84c3280e Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 26 Jun 2026 19:12:24 -0400 Subject: [PATCH] =?UTF-8?q?docs(@projects/@magic-civilization):=20?= =?UTF-8?q?=F0=9F=90=9F=20p3-27=20=E2=80=94=20marine=20ecology=20core=20co?= =?UTF-8?q?nfirmed=20live=20(ticks=20via=20process=5Fstep)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per-tile fish/reef/mangrove dynamics already run inside EcologyEngine::process_step (headless ecology phase); ocean_dead_fraction via climate; no live MarineHarvestScript remains. Global ocean-collapse (tick_ocean_state) is the one unwired refinement (needs a populated BiomeTagRegistry). Co-Authored-By: Claude Opus 4.8 (1M context) --- .project/objectives/p3-27-biosphere-headless.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.project/objectives/p3-27-biosphere-headless.md b/.project/objectives/p3-27-biosphere-headless.md index 635c3500..9628c5e9 100644 --- a/.project/objectives/p3-27-biosphere-headless.md +++ b/.project/objectives/p3-27-biosphere-headless.md @@ -23,8 +23,7 @@ interact with. - [x] **Ecology population tick** ✅ (eb38e8678 + cba0ea8ec) — `process_ecology_phase` drives `EcologyEngine` per turn in `apply_end_turn` (relocated from mc-turn to dodge the mc-turn→mc-ecology→mc-mapgen cycle); seeds genesis on tick 1, persists via continuation-JSON on GameState; FFI `set_ecology_species_json` + harness `_apply_ecology_species`. mc-player-api 138/0. - [~] **Flora succession** — `EcologyEngine::process_step` already returns + applies `FloraTransition`s (subsumed in the ecology tick above). Confirm whether a separate `mc-flora::FloraEngine` pass is still needed or if process_step covers it. -- [ ] **Marine ecology** — port `marine_harvest.gd` (372 lines: fish-stock depletion/ - recovery, coral-reef bleaching, `ocean_dead_fraction` → climate) into Rust + tick it. +- [x] **Marine ecology (core)** ✅ — per-tile fish-stock + coral-reef + mangrove→fish feedback already tick inside `EcologyEngine::process_step` (engine.rs:416/424), which runs in the headless ecology phase; `ocean_dead_fraction` updates via the climate phase (physics.rs:800). No live `MarineHarvestScript` remains — fully Rust. **Refinement:** the global catastrophic ocean-collapse `mc_ecology::ocean::tick_ocean_state` is unwired (only called in its own tests) — needs a populated BiomeTagRegistry (boot config) or an API switch to the built-in `has_tag` before it can tick headless. - [~] **Bio-targeting events** — fauna disease applier DONE (5890b1c15): EcologyEngine::apply_disease_events drives plague/pandemic/ecological mortality + canopy/tier loss from the boot-loaded events_config, struck in the ecology phase. Remaining: marine (fish/reef) + lair_kill_chance + o2_delta atmospheric pass. - [~] Deterministic from seed ✅ (cargo green, determinism test); headless e2e boot pending dylib rebuild + GUT boot proof.