summaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2018-06-04 23:21:02 +0200
committerJustin Worthe <justin@worthe-it.co.za>2018-06-04 23:21:02 +0200
commitb1a7c75f9d563a3f913f44e0a5bb93269487de1f (patch)
tree63e2d7cb597a68eccc3ccbf4e0e0f6d0e2def0a5 /src/engine
parent5a6badb2b5c706d37732ff914838658424e15131 (diff)
Moved to replays that have missile position fix
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/mod.rs19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/engine/mod.rs b/src/engine/mod.rs
index 361744b..a4334f5 100644
--- a/src/engine/mod.rs
+++ b/src/engine/mod.rs
@@ -196,18 +196,16 @@ impl GameState {
where F: FnMut(&mut Point) {
let mut missiles_len = missiles.len();
'missile_loop: for m in (0..missiles.len()).rev() {
- let mut missile_hit = false;
'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;
- missile_hit = true;
- //missiles_len -= 1;
- //missiles.swap(m, missiles_len);
+ missiles_len -= 1;
+ missiles.swap(m, missiles_len);
- continue 'speed_loop;
+ continue 'missile_loop;
}
else {
for b in 0..opponent_buildings.len() {
@@ -215,9 +213,8 @@ impl GameState {
let damage = cmp::min(missiles[m].damage, opponent_buildings[b].health);
opponent_buildings[b].health -= damage;
- missile_hit = true;
- //missiles_len -= 1;
- //missiles.swap(m, missiles_len);
+ missiles_len -= 1;
+ missiles.swap(m, missiles_len);
if opponent_buildings[b].health == 0 {
unoccupied_cells.push(opponent_buildings[b].pos);
@@ -225,15 +222,11 @@ impl GameState {
opponent_buildings.swap_remove(b);
}
//after game engine bug fix, this should go back to missile_loop
- continue 'speed_loop;
+ continue 'missile_loop;
}
}
}
}
- if missile_hit {
- missiles_len -= 1;
- missiles.swap(m, missiles_len);
- }
}
missiles.truncate(missiles_len);
}