feat(@projects/@magic-civilization): ✨ mark hybrid merged structures as done
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
1b6f609f1c
commit
f095ca8f3f
4 changed files with 18 additions and 12 deletions
|
|
@ -2,16 +2,14 @@
|
|||
id: p1-59
|
||||
title: "Hybrid merged structures — war_academy, assault_citadel, cavalry_corps, gunnery_corps"
|
||||
priority: p1
|
||||
status: partial
|
||||
status: done
|
||||
scope: game1
|
||||
updated_at: 2026-05-07
|
||||
evidence:
|
||||
- "src/simulator/api-gdext/src/lib.rs (GdCity::available_merges() added, cargo check clean)"
|
||||
- src/game/engine/scenes/city/merge_panel.gd
|
||||
- src/game/engine/scenes/city/merge_panel.tscn
|
||||
- src/game/engine/scenes/city/city_screen.gd (_check_merge_availability + _on_merge_btn_pressed wired)
|
||||
- src/game/engine/src/autoloads/event_bus.gd (buildings_merged signal added)
|
||||
- "src/game/engine/tests/integration/test_p1_59_merge_end_to_end.gd (4 tests, gdlint clean)"
|
||||
- src/game/engine/scenes/tests/proof_hybrid_merge.tscn — proof scene authored gdlint clean cycle 37
|
||||
- "proof screenshot reviewed in-conversation: merge_panel shows war_academy [ENABLED] + gunnery_corps [GATED], Cancel button present"
|
||||
- src/game/engine/scenes/city/city_screen.tscn — MergeBuildingsBtn + MergePanel nodes added
|
||||
- src/game/engine/src/autoloads/theme_vocabulary.gd — lookup() updated to accept optional fallback param (fixes city_screen compilation)
|
||||
---
|
||||
## Renamed from p3-02 (2026-05-05)
|
||||
|
||||
|
|
|
|||
|
|
@ -2,11 +2,17 @@
|
|||
id: p2-58b
|
||||
title: "Ambient encounter hook — mc-turn::movement calls roll_ambient_encounter per tile step"
|
||||
priority: p2
|
||||
status: stub
|
||||
status: partial
|
||||
scope: game1
|
||||
owner: unassigned
|
||||
updated_at: 2026-05-07
|
||||
blocked_by: [p2-58a]
|
||||
evidence:
|
||||
- "src/simulator/crates/mc-core/src/encounter.rs — EncounterRates, AmbientTileCtx, roll_ambient_encounter moved from mc-ecology (cycle dependency break)"
|
||||
- "src/simulator/crates/mc-turn/src/processor.rs — ambient encounter hook wired in process_fauna_encounters_inner Step 1b"
|
||||
- "src/simulator/crates/mc-turn/Cargo.toml — mc-ecology dep NOT added (would create cycle); uses mc-core directly"
|
||||
- "src/simulator/crates/mc-replay/src/event.rs — AmbientEncounterFired variant added to TurnEvent"
|
||||
- "src/simulator/crates/mc-turn/tests/ambient_encounter_integration.rs — 1/1 test passing (50-step walk fauna_density=0.8)"
|
||||
- "cargo check --workspace clean; mc-core encounter: 7/7 tests pass"
|
||||
---
|
||||
## Summary
|
||||
|
||||
|
|
|
|||
|
|
@ -266,10 +266,12 @@ mod tests {
|
|||
use crate::seed::{derive_step, Pcg64, SeedDomain};
|
||||
|
||||
fn workspace_root() -> std::path::PathBuf {
|
||||
// mc-core CARGO_MANIFEST_DIR = .../magic-civilization/src/simulator/crates/mc-core
|
||||
// ancestors: nth(0)=mc-core, nth(1)=crates, nth(2)=simulator, nth(3)=src, nth(4)=project-root
|
||||
std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
|
||||
.ancestors()
|
||||
.nth(1)
|
||||
.expect("workspace root is 1 level above mc-core CARGO_MANIFEST_DIR")
|
||||
.nth(4)
|
||||
.expect("project root must be 4 levels above mc-core CARGO_MANIFEST_DIR")
|
||||
.to_path_buf()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
use mc_core::{
|
||||
encounter::EncounterRates,
|
||||
grid::{GridState, TileState},
|
||||
grid::GridState,
|
||||
ids::SpeciesId,
|
||||
};
|
||||
use mc_replay::TurnEvent;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue