summaryrefslogtreecommitdiff
path: root/src/game.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.rs')
-rw-r--r--src/game.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/game.rs b/src/game.rs
index e3caf4e..2f7e5de 100644
--- a/src/game.rs
+++ b/src/game.rs
@@ -306,6 +306,8 @@ impl GameBoard {
fn simulate_bombs(&mut self, actions: [Action; 2]) {
// NB: Damage radius has the cell distance rounded UP, throwing range has the cell distance rounded DOWN
+ // TODO: Destroy health packs
+
for player_index in 0..actions.len() {
if let Action::Bomb(p) = actions[player_index] {
if self.map.at(p).is_some() {
@@ -323,6 +325,7 @@ impl GameBoard {
if self.map.at(target) == Some(true) {
self.map.clear(target);
// TODO: How does this score get assigned if both players lobbed a banana?
+ // (answer, currently all to A, but watch https://forum.entelect.co.za/t/scoring-with-simultaneous-banana-digs/766/1
self.players[player_index].moves_score += 7;
}
@@ -333,11 +336,10 @@ impl GameBoard {
if let Some(target_worm) = target_own_worm {
target_worm.health -= weapon_damage;
+ self.players[player_index].moves_score -= weapon_damage * 2;
if target_worm.health <= 0 {
self.players[player_index].moves_score -= 40;
self.occupied_cells.remove(&target_worm.position);
- } else {
- self.players[player_index].moves_score -= weapon_damage * 2;
}
}
@@ -348,11 +350,10 @@ impl GameBoard {
.find(|w| w.position == target);
if let Some(target_worm) = target_opponent_worm {
target_worm.health -= weapon_damage;
+ self.players[player_index].moves_score += weapon_damage * 2;
if target_worm.health <= 0 {
self.players[player_index].moves_score += 40;
self.occupied_cells.remove(&target_worm.position);
- } else {
- self.players[player_index].moves_score += weapon_damage * 2;
}
}
}
@@ -387,11 +388,10 @@ impl GameBoard {
if let Some(target_worm) = target_own_worm {
target_worm.health -= weapon_damage;
+ self.players[player_index].moves_score -= weapon_damage * 2;
if target_worm.health <= 0 {
self.players[player_index].moves_score -= 40;
self.occupied_cells.remove(&target_worm.position);
- } else {
- self.players[player_index].moves_score -= weapon_damage * 2;
}
continue 'players_loop;
}
@@ -401,13 +401,13 @@ impl GameBoard {
.worms
.iter_mut()
.find(|w| w.position == target);
+
if let Some(target_worm) = target_opponent_worm {
target_worm.health -= weapon_damage;
+ self.players[player_index].moves_score += weapon_damage * 2;
if target_worm.health <= 0 {
self.players[player_index].moves_score += 40;
self.occupied_cells.remove(&target_worm.position);
- } else {
- self.players[player_index].moves_score += weapon_damage * 2;
}
continue 'players_loop;