diff options
Diffstat (limited to 'src/game/player.rs')
-rw-r--r-- | src/game/player.rs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/game/player.rs b/src/game/player.rs index 1704a27..32e45bf 100644 --- a/src/game/player.rs +++ b/src/game/player.rs @@ -5,7 +5,8 @@ use crate::geometry::*; pub struct Player { pub moves_score: i32, pub active_worm: usize, - pub worms: ArrayVec<[Worm; 3]> + pub select_moves: u8, + pub worms: ArrayVec<[Worm; 3]>, } #[derive(Debug, PartialEq, Eq, Clone)] @@ -14,10 +15,16 @@ pub struct Worm { pub health: i32, pub position: Point2d<i8>, pub weapon_damage: i32, - pub weapon_range: u8 + pub weapon_range: u8, } impl Player { + pub fn find_worm_position(&self, id: i32) -> Option<usize> { + self.worms + .iter() + .position(|w| w.id == id) + } + pub fn find_worm(&self, id: i32) -> Option<&Worm> { self.worms .iter() @@ -106,7 +113,8 @@ mod test { let mut player = Player { active_worm: 1, moves_score: 0, - worms: worms + select_moves: 0, + worms }; player.clear_dead_worms(); @@ -145,7 +153,8 @@ mod test { let mut player = Player { active_worm: 1, moves_score: 0, - worms: worms + worms, + select_moves: 0, }; player.clear_dead_worms(); @@ -184,7 +193,8 @@ mod test { let mut player = Player { active_worm: 0, moves_score: 0, - worms: worms + worms, + select_moves: 0, }; player.clear_dead_worms(); @@ -209,7 +219,8 @@ mod test { let mut player = Player { active_worm: 0, moves_score: 0, - worms: worms + worms, + select_moves: 0 }; player.clear_dead_worms(); |