Tweaked positioning of adlet sites

This commit is contained in:
Sam 2022-02-28 13:02:57 -05:00
parent da3c2369e5
commit 76f4db6f70
3 changed files with 11 additions and 5 deletions

View File

@ -16,7 +16,6 @@
/// 1) Set every probability to 0.0 and left one with any other number /// 1) Set every probability to 0.0 and left one with any other number
/// and you will have map full of dungeons of same level /// and you will have map full of dungeons of same level
([ ([
(1, 0.20),
(2, 0.20), (2, 0.20),
(3, 0.15), (3, 0.15),
(4, 0.10), (4, 0.10),

View File

@ -3133,6 +3133,7 @@ fn handle_debug_column(
let river = &chunk.river; let river = &chunk.river;
let flux = chunk.flux; let flux = chunk.flux;
let path = chunk.path; let path = chunk.path;
let cliff_height = chunk.cliff_height;
Some(format!( Some(format!(
r#"wpos: {:?} r#"wpos: {:?}
@ -3149,7 +3150,8 @@ humidity {:?}
rockiness {:?} rockiness {:?}
tree_density {:?} tree_density {:?}
spawn_rate {:?} spawn_rate {:?}
path {:?} "#, path {:?}
cliff_height {:?} "#,
wpos, wpos,
alt, alt,
col.alt, col.alt,
@ -3167,6 +3169,7 @@ path {:?} "#,
tree_density, tree_density,
spawn_rate, spawn_rate,
path, path,
cliff_height,
)) ))
}; };
if let Some(s) = msg_generator(&calendar) { if let Some(s) = msg_generator(&calendar) {

View File

@ -249,7 +249,11 @@ impl Civs {
SiteKind::ChapelSite, SiteKind::ChapelSite,
), ),
44..=49 => ( 44..=49 => (
find_site_loc(&mut ctx, (&this.gnarling_enemies(), 40), SiteKind::Adlet)?, find_site_loc(
&mut ctx,
&ProximityRequirements::new().avoid_all_of(this.gnarling_enemies(), 40),
SiteKind::Adlet,
)?,
SiteKind::Adlet, SiteKind::Adlet,
), ),
_ => ( _ => (
@ -1270,7 +1274,7 @@ impl Civs {
}) })
} }
fn adlet_enemies(&self) -> Vec<Vec2<i32>> { fn adlet_enemies(&self) -> impl Iterator<Item = Vec2<i32>> + '_ {
self.sites().filter_map(|s| match s.kind { self.sites().filter_map(|s| match s.kind {
SiteKind::Tree | SiteKind::GiantTree => None, SiteKind::Tree | SiteKind::GiantTree => None,
_ => Some(s.center), _ => Some(s.center),
@ -1690,7 +1694,7 @@ impl SiteKind {
&& (-0.3..0.4).contains(&chunk.temp) && (-0.3..0.4).contains(&chunk.temp)
&& chunk.tree_density > 0.75 && chunk.tree_density > 0.75
}, },
SiteKind::Adlet => (-0.8..0.2).contains(&chunk.temp) && chunk.tree_density > 0.2, SiteKind::Adlet => chunk.temp < -0.2 && chunk.cliff_height > 25.0,
SiteKind::GiantTree | SiteKind::Tree => { SiteKind::GiantTree | SiteKind::Tree => {
on_land() on_land()
&& on_flat_terrain() && on_flat_terrain()