summaryrefslogtreecommitdiff
path: root/src/engine/settings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/settings.rs')
-rw-r--r--src/engine/settings.rs9
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,