From 135a0e81b9bbde6d7cc20529da8b073e38d21c5e Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 26 Jun 2026 17:50:59 -0400 Subject: [PATCH] =?UTF-8?q?docs(@projects/@magic-civilization):=20?= =?UTF-8?q?=F0=9F=93=8A=20p3-26=20B8=207/12=20(plague)=20+=20p3-27=20fauna?= =?UTF-8?q?-disease-is-unwired=20finding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - B8 events now 7/12 (plague terrain blight added). - Recorded that mc_ecology's disease system is config-only (no applier, only a validate-bin caller) — fauna plague/pandemic are a feature to write, not just wiring. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../p3-26-complete-headless-simulator.md | 2 +- .project/objectives/p3-27-biosphere-headless.md | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.project/objectives/p3-26-complete-headless-simulator.md b/.project/objectives/p3-26-complete-headless-simulator.md index aef86f39..661bf40f 100644 --- a/.project/objectives/p3-26-complete-headless-simulator.md +++ b/.project/objectives/p3-26-complete-headless-simulator.md @@ -72,7 +72,7 @@ PvP/siege/lair combat, climate physics+weather+effects, 3 event categories. - [ ] **B5 Loot decay** — `mc-city` items; (disabled in live too). - [ ] **B6 Equipment/crafting** — `mc-city/recipes.rs`; add headless Craft action + tick (was gap 3). - [ ] **B7 Per-building queues** — dual-city-model unification (was gap 4). -- [~] **B8 event categories — 6/12 live** ✅ wildfire/drought/volcanic/seismic/impact/tsunami (a18e1394b). Remaining: solar/glacial (need solar_forcing/glacial_forcing physics consumption); plague/pandemic/marine (need biosphere [[p3-27 ...]]); magical→G3. +- [~] **B8 event categories — 7/12 live** ✅ wildfire/drought/volcanic/seismic/impact/tsunami (a18e1394b) + plague terrain-blight (4be44db3a). Remaining: solar/glacial (need solar_forcing/glacial_forcing physics consumption); pandemic+marine fauna-side + the fauna disease mechanism itself (see [[p3-27-biosphere-headless]]); magical→G3. - [ ] **Biosphere cluster → see [[p3-27 ...]]** (ecology population + flora succession + marine). Sequencing: B1/B2/B3 (self-contained turn-glue) parallelizable as separate modules; B6/B7 diff --git a/.project/objectives/p3-27-biosphere-headless.md b/.project/objectives/p3-27-biosphere-headless.md index 6bd4d94b..715cc23b 100644 --- a/.project/objectives/p3-27-biosphere-headless.md +++ b/.project/objectives/p3-27-biosphere-headless.md @@ -73,3 +73,19 @@ plague/pandemic/marine events. Tests: deterministic — seed a population + minimal real config (`config::load_real_config` test helper), tick via the phase, assert populations evolve + a flora transition applies + continuation JSON round-trips. + +## Finding 2026-06-26: the fauna disease system is config-only (unwired) + +While wiring bio-targeting events, discovered `mc_ecology::events` is **scaffolding without an +applier**: it exposes `EventCategory`/`EventTierData` + `load_event_categories` (parses +plague.json/pandemic.json/ecological.json) and `from_json`, but has **no function that applies +disease mortality to `tile_populations`**. Its only caller is `mc-sim/src/bin/disease_validate.rs` +(a config validator). It is NOT invoked by `EcologyEngine::process_step`, the headless turn, or +the live game. So fauna plague/pandemic are unimplemented everywhere — a real feature to write, +not just headless wiring: +- Add `apply_disease(&mut tile_populations, &EventCategory, tier, density, rng)` to mc-ecology + (density-frequency from pandemic.json; mortality from tier data). +- Drive it from `process_ecology_phase` (mc-player-api) using boot-loaded disease configs + + the same continuation-state persistence. +The **terrain** side of plague (quality/biome blight) IS done as a mc-climate event category +(4be44db3a); pandemic's terrain/T3-city-population side remains.