summaryrefslogtreecommitdiff
path: root/src/game.rs
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2019-05-20 14:49:07 +0200
committerJustin Worthe <justin@worthe-it.co.za>2019-05-20 14:49:07 +0200
commitb93a9c643485c720a0711ddaf90872b7c6f006c8 (patch)
treeaa3504a02bd713314db260b44a84c8544e999668 /src/game.rs
parentb3d6b7cb77a660fc8a8e96645627da16c6b7c059 (diff)
Extracted functionality for clearing out dead worms
Diffstat (limited to 'src/game.rs')
-rw-r--r--src/game.rs29
1 files changed, 2 insertions, 27 deletions
diff --git a/src/game.rs b/src/game.rs
index 1d9d33b..5ddbdfd 100644
--- a/src/game.rs
+++ b/src/game.rs
@@ -111,18 +111,7 @@ impl GameBoard {
// Remove dead worms and update active worm
for player in &mut self.players {
- for worm_index in (0..player.worms.len()).rev() {
- if player.worms[worm_index].health <= 0 {
- player.worms.remove(worm_index);
- if player.active_worm >= worm_index {
- if player.active_worm > 0 {
- player.active_worm -= 1;
- } else {
- player.active_worm = player.worms.len()-1;
- }
- }
- }
- }
+ player.clear_dead_worms();
// Update the active worm
if player.worms.len() > 0 {
player.active_worm = (player.active_worm + 1).checked_rem(player.worms.len()).unwrap_or(0);
@@ -224,21 +213,7 @@ impl GameBoard {
}
for player in &mut self.players {
- // Remove dead worms
- for worm_index in (0..player.worms.len()).rev() {
- if player.worms[worm_index].health <= 0 {
- player.worms.remove(worm_index);
- if player.active_worm >= worm_index {
- player.active_worm = if player.active_worm > 0 {
- player.active_worm - 1
- } else if player.worms.len() > 0 {
- player.worms.len() - 1
- } else {
- 0
- };
- }
- }
- }
+ player.clear_dead_worms();
// Update the active worm
if player.worms.len() > 0 {
player.active_worm = (player.active_worm + 1).checked_rem(player.worms.len()).unwrap_or(0);