From 59ac3b1d4f70ef8150cacbbbbee47f75b5324925 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Tue, 25 Jan 2022 16:31:12 +0000 Subject: [PATCH] Fixed site2 economies --- world/src/civ/mod.rs | 10 ++++++++-- world/src/sim2/mod.rs | 5 ++++- world/src/site/mod.rs | 4 +++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/world/src/civ/mod.rs b/world/src/civ/mod.rs index 18f216f8e6..da786d3e08 100644 --- a/world/src/civ/mod.rs +++ b/world/src/civ/mod.rs @@ -776,13 +776,19 @@ impl Civs { let mut nearby = self .sites .iter() - .filter(|(_, p)| matches!(p.kind, SiteKind::Settlement | SiteKind::Castle)) + .filter(|(_, p)| { + matches!( + p.kind, + SiteKind::Refactor | SiteKind::Settlement | SiteKind::Castle + ) + }) .map(|(id, p)| (id, (p.center.distance_squared(loc) as f32).sqrt())) .filter(|(_, dist)| *dist < MAX_NEIGHBOR_DISTANCE) .collect::>(); nearby.sort_by_key(|(_, dist)| *dist as i32); - if let SiteKind::Settlement | SiteKind::Castle = self.sites[site].kind { + if let SiteKind::Refactor | SiteKind::Settlement | SiteKind::Castle = self.sites[site].kind + { for (nearby, _) in nearby.into_iter().take(5) { // Find a novel path if let Some((path, cost)) = find_path(ctx, loc, self.sites.get(nearby).center) { diff --git a/world/src/sim2/mod.rs b/world/src/sim2/mod.rs index faf2561fcc..b7091d0468 100644 --- a/world/src/sim2/mod.rs +++ b/world/src/sim2/mod.rs @@ -205,7 +205,7 @@ fn simulate_return(index: &mut Index, world: &mut WorldSim) -> Result<(), std::i SiteKind::Settlement(_) => towns += site.economy.pop, SiteKind::Castle(_) => castles += site.economy.pop, SiteKind::Tree(_) => (), - SiteKind::Refactor(_) => (), + SiteKind::Refactor(_) => towns += site.economy.pop, } } if towns.valid() { @@ -1225,6 +1225,9 @@ mod tests { crate::site::SiteKind::Castle(_) => { common::terrain::site::SitesKind::Castle }, + crate::site::SiteKind::Refactor(_) => { + common::terrain::site::SitesKind::Settlement + }, _ => common::terrain::site::SitesKind::Void, }, }; diff --git a/world/src/site/mod.rs b/world/src/site/mod.rs index 8e15a8db56..d922944517 100644 --- a/world/src/site/mod.rs +++ b/world/src/site/mod.rs @@ -181,5 +181,7 @@ impl Site { } } - pub fn do_economic_simulation(&self) -> bool { matches!(self.kind, SiteKind::Settlement(_)) } + pub fn do_economic_simulation(&self) -> bool { + matches!(self.kind, SiteKind::Refactor(_) | SiteKind::Settlement(_)) + } }