From 629c70c86b0bb29d2d0c281add9d0d826a11c419 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Sun, 12 Aug 2018 20:01:34 +0200 Subject: Collapsed player info into the rest of the 'buildings' object --- src/input/json.rs | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) (limited to 'src/input/json.rs') diff --git a/src/input/json.rs b/src/input/json.rs index 544e5ed..2152fc2 100644 --- a/src/input/json.rs +++ b/src/input/json.rs @@ -73,26 +73,27 @@ struct MissileState { impl State { fn to_bitwise_engine(&self) -> bitwise_engine::BitwiseGameState { let json_player = self.player(); - let player = json_player.to_bitwise_engine(); let json_opponent = self.opponent(); - let opponent = json_opponent.to_bitwise_engine(); - let mut player_buildings = bitwise_engine::PlayerBuildings::empty(); - let mut opponent_buildings = bitwise_engine::PlayerBuildings::empty(); + let mut player = bitwise_engine::Player::empty(); + let mut opponent = bitwise_engine::Player::empty(); // TODO roll the player into the playerbuildings and remove this duplication - player_buildings.iron_curtain_available = json_player.iron_curtain_available; - player_buildings.iron_curtain_remaining = if json_player.active_iron_curtain_lifetime < 0 { + player.health = json_player.health; + player.energy = json_player.energy; + player.iron_curtain_available = json_player.iron_curtain_available; + player.iron_curtain_remaining = if json_player.active_iron_curtain_lifetime < 0 { 0 } else { json_player.active_iron_curtain_lifetime as u8 }; - opponent_buildings.iron_curtain_available = json_opponent.iron_curtain_available; - opponent_buildings.iron_curtain_remaining = if json_opponent.active_iron_curtain_lifetime < 0 { + opponent.health = json_opponent.health; + opponent.energy = json_opponent.energy; + opponent.iron_curtain_available = json_opponent.iron_curtain_available; + opponent.iron_curtain_remaining = if json_opponent.active_iron_curtain_lifetime < 0 { 0 } else { json_opponent.active_iron_curtain_lifetime as u8 }; - for row in &self.game_map { for cell in row { @@ -101,9 +102,9 @@ impl State { let building_type = building.convert_building_type(); let mut bitwise_buildings = if building.player_type == 'A' { - &mut player_buildings + &mut player } else { - &mut opponent_buildings + &mut opponent }; let bitfield = point.to_either_bitfield(); @@ -138,9 +139,9 @@ impl State { for missile in &cell.missiles { let (mut left, mut right) = engine::geometry::Point::new_double_bitfield(cell.x, cell.y, missile.player_type == 'A'); let mut bitwise_buildings = if missile.player_type == 'A' { - &mut player_buildings + &mut player } else { - &mut opponent_buildings + &mut opponent }; for mut tier in bitwise_buildings.missiles.iter_mut() { @@ -156,7 +157,6 @@ impl State { bitwise_engine::BitwiseGameState::new( player, opponent, - player_buildings, opponent_buildings, self.game_details.round ) } @@ -174,15 +174,6 @@ impl State { } } -impl Player { - fn to_bitwise_engine(&self) -> engine::bitwise_engine::Player { - engine::bitwise_engine::Player { - energy: self.energy, - health: self.health - } - } -} - impl BuildingState { fn to_bitwise_engine_unconstructed(&self) -> bitwise_engine::UnconstructedBuilding { bitwise_engine::UnconstructedBuilding { -- cgit v1.2.3