summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2018-06-04 23:33:55 +0200
committerJustin Worthe <justin@worthe-it.co.za>2018-06-04 23:33:55 +0200
commit243a42b1fb8959e740aa21a79df78e78262e683c (patch)
tree4412be44484330fa07d6cb529fdb1186c647f131 /src
parentfd65ae62fba9a14e5f7f9ba3b0f9969a1d199f0d (diff)
Saturating sub. Marginal speed improvement. Clearer logic.
Diffstat (limited to 'src')
-rw-r--r--src/engine/mod.rs7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/engine/mod.rs b/src/engine/mod.rs
index a4334f5..a649453 100644
--- a/src/engine/mod.rs
+++ b/src/engine/mod.rs
@@ -7,7 +7,6 @@ use self::geometry::Point;
use self::settings::{GameSettings, BuildingSettings};
use std::ops::FnMut;
-use std::cmp;
#[derive(Debug, Clone, PartialEq)]
pub struct GameState {
@@ -199,8 +198,7 @@ impl GameState {
'speed_loop: for _ in 0..missiles[m].speed {
wrapping_move_fn(&mut missiles[m].pos);
if missiles[m].pos.x >= settings.size.x {
- let damage = cmp::min(missiles[m].damage, opponent.health);
- opponent.health -= damage;
+ opponent.health = opponent.health.saturating_sub(missiles[m].damage);
missiles_len -= 1;
missiles.swap(m, missiles_len);
@@ -210,8 +208,7 @@ impl GameState {
else {
for b in 0..opponent_buildings.len() {
if opponent_buildings[b].pos == missiles[m].pos {
- let damage = cmp::min(missiles[m].damage, opponent_buildings[b].health);
- opponent_buildings[b].health -= damage;
+ opponent_buildings[b].health = opponent_buildings[b].health.saturating_sub(missiles[m].damage);
missiles_len -= 1;
missiles.swap(m, missiles_len);