feat(@projects/@magic-civilization): ⚔️ p3-26 B6b (1/3) — MapUnit.equipped (unit equipment state)

MapUnit += equipped: Vec<EquippedItem> (#[serde(default)]) — items a unit has equipped, to
drive combat bonuses + charge consumption + loot-on-death. mc-state now deps mc-items
(standalone crate, no cycle). Foundation for the combat-read (B6b/2) + Craft action (B6b/3).
mc-state builds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Natalie 2026-06-26 21:04:30 -04:00
parent 95e289891e
commit 4c41ecf66e
2 changed files with 6 additions and 0 deletions

View file

@ -16,6 +16,7 @@ mc-city = { path = "../mc-city" }
mc-culture = { path = "../mc-culture" }
mc-civics = { path = "../mc-civics" }
mc-combat = { path = "../mc-combat" }
mc-items = { path = "../mc-items" }
mc-trade = { path = "../mc-trade" }
mc-tech = { path = "../mc-tech" }
mc-comms = { path = "../mc-comms" }

View file

@ -1504,6 +1504,11 @@ pub struct MapUnit {
/// into the captor's vec and clears this field.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub captive_of: Option<u8>,
/// p3-26 B6b: items this unit has equipped (weapons / armor / tools). Drives
/// combat strength bonuses + per-combat charge consumption, and is dropped as
/// ground loot when the unit dies. Empty for units that never equipped gear.
#[serde(default)]
pub equipped: Vec<mc_items::EquippedItem>,
/// p2-67 Phase 9: cached base movement points (from the
/// `UnitsCatalog::get(unit_id).base_moves` lookup at spawn). Lets
/// `refresh_units` recharge `movement_remaining` without needing a