summaryrefslogtreecommitdiff
path: root/src/input/textmap.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/textmap.rs')
-rw-r--r--src/input/textmap.rs67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/input/textmap.rs b/src/input/textmap.rs
new file mode 100644
index 0000000..dbee60a
--- /dev/null
+++ b/src/input/textmap.rs
@@ -0,0 +1,67 @@
+use std::fs::File;
+use std::io::prelude::*;
+use std::error::Error;
+
+use ::engine::*;
+use ::engine::settings::*;
+use ::engine::geometry::*;
+
+
+pub fn read_state_from_file(filename: &str) -> Result<(GameSettings, GameState), Box<Error>> {
+ let mut file = File::open(filename)?;
+ let mut content = String::new();
+ file.read_to_string(&mut content)?;
+
+ let engine_settings = GameSettings {
+ size: Point::new(8,4),
+ energy_income: 5,
+ energy: BuildingSettings {
+ price: 20,
+ health: 5,
+ construction_time: 2-2,
+ weapon_damage: 0,
+ weapon_speed: 0,
+ weapon_cooldown_period: 0,
+ energy_generated_per_turn: 3
+ },
+ defence: BuildingSettings {
+ price: 30,
+ health: 20,
+ construction_time: 4-2,
+ weapon_damage: 0,
+ weapon_speed: 0,
+ weapon_cooldown_period: 0,
+ energy_generated_per_turn: 0
+ },
+ attack: BuildingSettings {
+ price: 30,
+ health: 5,
+ construction_time: 2-2,
+ weapon_damage: 5,
+ weapon_speed: 2,
+ weapon_cooldown_period: 3,
+ energy_generated_per_turn: 0
+ }
+ };
+ let engine_state = GameState::new(
+ Player {
+ energy: 20,
+ health: 5,
+ energy_generated: 5
+ },
+ Player {
+ energy: 20,
+ health: 5,
+ energy_generated: 5
+ },
+ Vec::new(),
+ Vec::new(),
+ Vec::new(),
+ Vec::new(),
+ Vec::new(),
+ Vec::new(),
+ &engine_settings
+ );
+
+ Ok((engine_settings, engine_state))
+}