From 243a42b1fb8959e740aa21a79df78e78262e683c Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Mon, 4 Jun 2018 23:33:55 +0200 Subject: Saturating sub. Marginal speed improvement. Clearer logic. --- src/engine/mod.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src') 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); -- cgit v1.2.3