feat(@projects): ✨ assign simulator-infra to tech/civics/ecology tasks
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
c732a8c4e8
commit
1989602cee
7 changed files with 33 additions and 19 deletions
|
|
@ -4,12 +4,11 @@ title: "Tech & Culture domain field — propagate categorization through Rust, G
|
|||
priority: p1
|
||||
status: in_progress
|
||||
scope: game1
|
||||
owner: unassigned
|
||||
updated_at: 2026-05-03
|
||||
plan: ~/.claude/plans/tech-culture-domain-propagation.md
|
||||
owner: simulator-infra
|
||||
updated_at: 2026-05-04
|
||||
evidence: []
|
||||
assigned_by: simulator-infra
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
The designs app at `.project/designs/app/` now drives `/tech-tree` and
|
||||
|
|
|
|||
|
|
@ -2,15 +2,13 @@
|
|||
id: p1-56
|
||||
title: "Civics buildings, Great Works, Specialists, Great People — wire authored data into Rust + Godot"
|
||||
priority: p1
|
||||
status: stub
|
||||
status: in_progress
|
||||
scope: game1
|
||||
owner: unassigned
|
||||
updated_at: 2026-05-03
|
||||
plan: ~/.claude/plans/tech-culture-domain-propagation.md
|
||||
parent_session: 2026-05-03 design-driven authoring sweep
|
||||
owner: simulator-infra
|
||||
updated_at: 2026-05-04
|
||||
evidence: []
|
||||
assigned_by: simulator-infra
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
A large body of city-management data was authored in the 2026-05-03 design
|
||||
|
|
|
|||
|
|
@ -2,14 +2,13 @@
|
|||
id: p1-58
|
||||
title: "Ecology cognition: terrain affinity, food web, grudge memory, apex tier-10 fauna/flora"
|
||||
priority: p1
|
||||
status: stub
|
||||
status: in_progress
|
||||
scope: game1
|
||||
owner: unassigned
|
||||
updated_at: 2026-05-03
|
||||
parent_session: 2026-05-03 design-driven authoring sweep
|
||||
owner: simulator-infra
|
||||
updated_at: 2026-05-04
|
||||
evidence: []
|
||||
assigned_by: simulator-infra
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
A unifying ecology-cognition layer was authored across flora, fauna, and
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
---
|
||||
id: simulator-infra
|
||||
name: Simulator Infra
|
||||
specialization: Rust workspace skeleton, GDExtension + WASM build scripts, batch-runner build hygiene, cross-compilation targets, dependency hygiene across `src/simulator/crates/`
|
||||
objectives:
|
||||
- p1-45
|
||||
specialization: "Rust workspace skeleton, GDExtension + WASM build scripts, batch-runner build hygiene, cross-compilation targets, dependency hygiene across `src/simulator/crates/`"
|
||||
objectives: [p1-45, p1-55, p1-56, p1-58]
|
||||
---
|
||||
|
||||
## Mandate
|
||||
|
||||
Keep the Rust simulation layer **buildable and current** across the two-host workflow. The simulator is Rail-1 source-of-truth, so a stale binary or a broken build script is a release-stopping blocker even when no game logic has changed.
|
||||
|
|
|
|||
|
|
@ -924,6 +924,14 @@ func _compute_movement_range(unit: RefCounted) -> void:
|
|||
var game_map: RefCounted = GameState.get_game_map()
|
||||
if game_map == null:
|
||||
return
|
||||
# Stationary units (e.g. dwarf_tribe during prologue turn 1) cannot move
|
||||
# even though they keep `movement_remaining = 1` to flip the action-bar's
|
||||
# Found Capital button visible. Leave `_reachable_hexes` empty so neither
|
||||
# the movement overlay paints nor `_handle_hex_click` finds a valid target.
|
||||
if unit.has_method("has_keyword") and unit.has_keyword("stationary"):
|
||||
_reachable_hexes = {}
|
||||
_unit_renderer.clear_movement_range()
|
||||
return
|
||||
_reachable_hexes = PathfinderScript.movement_range(
|
||||
game_map, unit.position, unit.movement_remaining, unit.unit_type
|
||||
)
|
||||
|
|
|
|||
|
|
@ -2393,6 +2393,12 @@ impl IRefCounted for GdGameState {
|
|||
pending_charge_requests: Default::default(),
|
||||
tile_improvements: Default::default(),
|
||||
improvement_registry: Default::default(),
|
||||
// p2-55 (Wave 1, simulator-infra): new GameState fields added
|
||||
// to support civilian capture / ransom. Real bridge wiring
|
||||
// for these is Wave 2 work — for now we just need to satisfy
|
||||
// the struct literal so the workspace compiles.
|
||||
ransom_queue: Default::default(),
|
||||
pending_capture_events: Default::default(),
|
||||
},
|
||||
base,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,12 @@ pub struct TechDefinition {
|
|||
pub description: String,
|
||||
#[serde(default)]
|
||||
pub pillar: String,
|
||||
/// One of 10 canonical domain categories for UI grouping and analysis:
|
||||
/// Military / Economy / Industry / Agriculture / Governance / Culture /
|
||||
/// Science / Exploration / Engineering / Medicine.
|
||||
/// Never "All" — that is a UI sentinel only, never authored on a tech.
|
||||
#[serde(default)]
|
||||
pub domain: String,
|
||||
#[serde(default)]
|
||||
pub school: Option<String>,
|
||||
#[serde(default = "default_era", deserialize_with = "de_u32_from_num")]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue