From 245a0af95a692ca55269ac565be2c29f4ebd5ed7 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 26 Jun 2026 23:46:41 -0400 Subject: [PATCH] =?UTF-8?q?docs(@projects/@magic-civilization):=20?= =?UTF-8?q?=E2=9C=85=20p3-26=20B6=20DONE=20=E2=80=94=20equipment=20craft?= =?UTF-8?q?=E2=86=92equip=E2=86=92combat=20live;=20loot=3DB5=20parity-opti?= =?UTF-8?q?onal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit B6 complete: B6a (recipe refinement) + B6b core (MapUnit.equipped + combat-read + CraftEquipment action). Full chain — refine raw→processed → craft (consume materials) → equip → unit fights harder. Loot drop-on-death/decay (B5) is parity-optional (disabled in the live game too). Co-Authored-By: Claude Opus 4.8 (1M context) --- .project/objectives/p3-26-complete-headless-simulator.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.project/objectives/p3-26-complete-headless-simulator.md b/.project/objectives/p3-26-complete-headless-simulator.md index 00701ab5..2a69f919 100644 --- a/.project/objectives/p3-26-complete-headless-simulator.md +++ b/.project/objectives/p3-26-complete-headless-simulator.md @@ -80,10 +80,11 @@ PvP/siege/lair combat, climate physics+weather+effects, 3 event categories. directly (unit tile → owning city via CityState.owned_tiles → push pending w/ build_turns); a build-tick phase decrements + completes into city_improvements[ci]; FFI + harness boot. Full subsystem. - [ ] **B4 Government/civics per-turn** — `mc-civics`; (disabled in live too — stub). -- [ ] **B5 Loot decay** — `mc-city` items; (disabled in live too). +- [~] **B5 Loot decay** — PARITY (disabled in the live game too; not a gap). mc-items::process_loot_decay exists; revive only if live re-enables loot. - [~] **B6 Equipment/crafting — B6a DONE, B6b remaining** - [x] **B6a resource-refinement** ✅ (178a3d5b8 + 7001d68f7): mc_city::recipes wired into the turn — recipe_phase loads strategic_ledger → ResourceStockpile, tick_recipes (consume raw → produce refined) over the player's buildings, writes back; recipes_json boot + FFI + harness. Real economic transform. - - [ ] **B6b equipment+combat+loot** (combat-spanning, inert without combat reading gear) — `mc-items` HAS item logic (EquippedItem, charges, drop_all_loot, process_loot_decay) but UNWIRED; `mc-city/recipes.rs` HAS resource refinement (Recipe consumes/produces, tick_recipe(&mut ResourceStockpile), QualityTier) but UNWIRED. Bench has NO ResourceStockpile (not on City/Player) and MapUnit carries NO `equipped` items; no Craft/Equip action; combat doesn't read gear. **5-step interlocking plan:** (1) CityState += ResourceStockpile fed by deposit/economy; (2) RecipeRegistry boot + recipe-tick phase → QualityTier products; (3) MapUnit += equipped + Craft/Equip actions; (4) mc-combat reads equipped (charges/bonuses); (5) wire process_loot_decay (closes B5). No clean sub-slice — pieces interlock across mc-state/city/items/combat/player-api. + - [x] **B6b equipment combat (core) DONE** ✅ (b22e98275 equipped state · 564a7ed4a combat-read · 10923f468 item-table boot · 70415b922 CraftEquipment): MapUnit.equipped + item_combat table; equip_combat_bonus injected into BOTH combat paths (attack/defense, safe — 0 for unequipped); CraftEquipment action consumes materials (B6a's refined outputs) → equips. Full chain: refine → craft → equip → fights harder. mc-player-api 138/0, mc-turn 284/0. + - [~] **Loot drop-on-death + decay** = B5 — **disabled in the live game too**, so headless-absent is PARITY not a gap (building it would gold-plate behavior the live game doesn't run). drop_all_loot/process_loot_decay exist in mc-items if ever revived; unit-death hook is scattered across combat sites. — `mc-items` HAS item logic (EquippedItem, charges, drop_all_loot, process_loot_decay) but UNWIRED; `mc-city/recipes.rs` HAS resource refinement (Recipe consumes/produces, tick_recipe(&mut ResourceStockpile), QualityTier) but UNWIRED. Bench has NO ResourceStockpile (not on City/Player) and MapUnit carries NO `equipped` items; no Craft/Equip action; combat doesn't read gear. **5-step interlocking plan:** (1) CityState += ResourceStockpile fed by deposit/economy; (2) RecipeRegistry boot + recipe-tick phase → QualityTier products; (3) MapUnit += equipped + Craft/Equip actions; (4) mc-combat reads equipped (charges/bonuses); (5) wire process_loot_decay (closes B5). No clean sub-slice — pieces interlock across mc-state/city/items/combat/player-api. - [ ] **B7 Per-building queues** — dual-city-model unification (was gap 4). - [~] **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).