summaryrefslogtreecommitdiff
path: root/src/game.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.rs')
-rw-r--r--src/game.rs32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/game.rs b/src/game.rs
index 2f7e5de..f5bcfa2 100644
--- a/src/game.rs
+++ b/src/game.rs
@@ -233,9 +233,9 @@ impl GameBoard {
// don't need to handle for now.
for player in &mut self.players {
if let Some(worm) = player.active_worm_mut() {
- worm.health = worm.health.saturating_sub(damage);
+ worm.health -= damage;
}
- player.moves_score += 5;
+ player.moves_score += ATTACK_SCORE_MULTIPLIER * damage + MOVE_SCORE;
}
}
_ => {
@@ -249,7 +249,7 @@ impl GameBoard {
p.y
);
- self.players[player_index].moves_score += 5;
+ self.players[player_index].moves_score += MOVE_SCORE;
if let Some(worm) = self.players[player_index].active_worm_mut() {
debug_assert!(
@@ -296,7 +296,7 @@ impl GameBoard {
"Tried to dig too far away, ({}, {})", p.x, p.y
};
- self.players[player_index].moves_score += 7;
+ self.players[player_index].moves_score += DIG_SCORE;
self.map.clear(p);
}
@@ -326,7 +326,7 @@ impl GameBoard {
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;
+ self.players[player_index].moves_score += DIG_SCORE;
}
let target_own_worm: Option<&mut Worm> = self.players[player_index]
@@ -336,9 +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;
+ self.players[player_index].moves_score -=
+ weapon_damage * ATTACK_SCORE_MULTIPLIER;
if target_worm.health <= 0 {
- self.players[player_index].moves_score -= 40;
+ self.players[player_index].moves_score -= KILL_SCORE;
self.occupied_cells.remove(&target_worm.position);
}
}
@@ -350,9 +351,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;
+ self.players[player_index].moves_score +=
+ weapon_damage * ATTACK_SCORE_MULTIPLIER;
if target_worm.health <= 0 {
- self.players[player_index].moves_score += 40;
+ self.players[player_index].moves_score += KILL_SCORE;
self.occupied_cells.remove(&target_worm.position);
}
}
@@ -388,9 +390,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;
+ self.players[player_index].moves_score -=
+ weapon_damage * ATTACK_SCORE_MULTIPLIER;
if target_worm.health <= 0 {
- self.players[player_index].moves_score -= 40;
+ self.players[player_index].moves_score -= KILL_SCORE;
self.occupied_cells.remove(&target_worm.position);
}
continue 'players_loop;
@@ -404,9 +407,10 @@ impl GameBoard {
if let Some(target_worm) = target_opponent_worm {
target_worm.health -= weapon_damage;
- self.players[player_index].moves_score += weapon_damage * 2;
+ self.players[player_index].moves_score +=
+ weapon_damage * ATTACK_SCORE_MULTIPLIER;
if target_worm.health <= 0 {
- self.players[player_index].moves_score += 40;
+ self.players[player_index].moves_score += KILL_SCORE;
self.occupied_cells.remove(&target_worm.position);
}
@@ -418,7 +422,7 @@ impl GameBoard {
}
// You get here if the shot missed. Hits are an early return.
- self.players[player_index].moves_score += 2;
+ self.players[player_index].moves_score += MISSED_ATTACK_SCORE;
}
}
}