pub struct EnemyExpansionMapSettings {Show 14 fields
pub building_coefficient: f64,
pub enabled: bool,
pub enemy_building_influence_radius: u32,
pub friendly_base_influence_radius: u32,
pub max_colliding_tiles_coefficient: f64,
pub max_expansion_cooldown: u32,
pub max_expansion_distance: u32,
pub min_expansion_cooldown: u32,
pub min_expansion_distance: u32,
pub neighbouring_base_chunk_coefficient: f64,
pub neighbouring_chunk_coefficient: f64,
pub other_base_coefficient: f64,
pub settler_group_max_size: u32,
pub settler_group_min_size: u32,
}Expand description
Candidate chunks are given scores to determine which one of them should be expanded into. This score takes into account various settings noted below. The iteration is over a square region centered around the chunk for which the calculation is done, and includes the central chunk as well. Distances are calculated as Euclidean distance.
The pseudocode algorithm to determine a chunk’s score is as follows:
player = 0
for neighbour in all chunks within enemy_building_influence_radius from chunk :
if neighbour has player buildings :
player += neighbouring_chunk_coefficient ^ distance(chunk, neighbour)
* building_coefficient
base = 0
for neighbour in all chunks within friendly_base_influence_radius from chunk :
if neighbour has enemy bases :
base += neighbouring_base_chunk_coefficient ^ distance(chunk, neighbour)
* other_base_coefficient
score(chunk) = 1 / (1 + player + base)
```textFields§
§building_coefficient: f64§enabled: bool§enemy_building_influence_radius: u32§friendly_base_influence_radius: u32§max_colliding_tiles_coefficient: f64§max_expansion_cooldown: u32§max_expansion_distance: u32§min_expansion_cooldown: u32§min_expansion_distance: u32§neighbouring_base_chunk_coefficient: f64§neighbouring_chunk_coefficient: f64§other_base_coefficient: f64§settler_group_max_size: u32§settler_group_min_size: u32Trait Implementations§
Source§impl Clone for EnemyExpansionMapSettings
impl Clone for EnemyExpansionMapSettings
Source§fn clone(&self) -> EnemyExpansionMapSettings
fn clone(&self) -> EnemyExpansionMapSettings
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for EnemyExpansionMapSettings
Source§impl Debug for EnemyExpansionMapSettings
impl Debug for EnemyExpansionMapSettings
Source§impl Default for EnemyExpansionMapSettings
impl Default for EnemyExpansionMapSettings
Source§fn default() -> EnemyExpansionMapSettings
fn default() -> EnemyExpansionMapSettings
Returns the “default value” for a type. Read more
impl StructuralPartialEq for EnemyExpansionMapSettings
Auto Trait Implementations§
impl Freeze for EnemyExpansionMapSettings
impl RefUnwindSafe for EnemyExpansionMapSettings
impl Send for EnemyExpansionMapSettings
impl Sync for EnemyExpansionMapSettings
impl Unpin for EnemyExpansionMapSettings
impl UnsafeUnpin for EnemyExpansionMapSettings
impl UnwindSafe for EnemyExpansionMapSettings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more