diff options
author | Justin Worthe <justin@worthe-it.co.za> | 2018-06-03 17:22:22 +0200 |
---|---|---|
committer | Justin Worthe <justin@worthe-it.co.za> | 2018-06-03 17:22:22 +0200 |
commit | 34c87bf04a9b70809eda125ca180de1d993d410e (patch) | |
tree | 805bf7556868f4958a73dd50b0a7996f98c54177 /src/input/textmap.rs | |
parent | 9d7d406107998c87525852032495f33f37155294 (diff) |
Moved json parsing to be part of a module, with textmap equivalence
Diffstat (limited to 'src/input/textmap.rs')
-rw-r--r-- | src/input/textmap.rs | 67 |
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)) +} |