summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2019-06-26 16:42:43 +0200
committerJustin Worthe <justin@worthe-it.co.za>2019-06-26 16:42:43 +0200
commit40712a1c1b61c6e110f1bddd3e955bbfb797e5ab (patch)
tree12c698809ba240a5e62deddc9f1e2e7366fc9719 /src/game
parent1aeab6da05a0c7b7dad4d06a38b282a82d5e1a51 (diff)
Implemented select move rules
Diffstat (limited to 'src/game')
-rw-r--r--src/game/player.rs23
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();