diff options
author | Justin Worthe <justin@worthe-it.co.za> | 2019-06-29 10:52:18 +0200 |
---|---|---|
committer | Justin Worthe <justin@worthe-it.co.za> | 2019-06-29 10:52:18 +0200 |
commit | 886d7f75bca7078799074f0b4e7b80c6f8081f5f (patch) | |
tree | 47e9463043bbc7118d8be494fad2340da6c6dc11 /src/game.rs | |
parent | d5070033892a531fab75ae1951deeb25c2d5f741 (diff) |
Put score allocation behind constants
Diffstat (limited to 'src/game.rs')
-rw-r--r-- | src/game.rs | 32 |
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; } } } |