diff options
Diffstat (limited to 'src/engine/settings.rs')
-rw-r--r-- | src/engine/settings.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/engine/settings.rs b/src/engine/settings.rs index 40256d9..ec62408 100644 --- a/src/engine/settings.rs +++ b/src/engine/settings.rs @@ -1,10 +1,12 @@ use super::geometry::Point; use super::command::BuildingType; +use std::cmp; #[derive(Debug)] pub struct GameSettings { pub size: Point, pub energy_income: u16, + pub max_building_price: u16, pub energy: BuildingSettings, pub defence: BuildingSettings, pub attack: BuildingSettings @@ -22,6 +24,13 @@ pub struct BuildingSettings { } impl GameSettings { + pub fn new(size: Point, energy_income: u16, energy: BuildingSettings, defence: BuildingSettings, attack: BuildingSettings) -> GameSettings { + let max_building_price = cmp::max(cmp::max(energy.price, defence.price), attack.price); + GameSettings { + size, energy_income, max_building_price, + energy, defence, attack + } + } pub fn building_settings(&self, building: BuildingType) -> &BuildingSettings { match building { BuildingType::Defence => &self.defence, |