diff options
author | Justin Worthe <justin@worthe-it.co.za> | 2018-06-04 23:21:02 +0200 |
---|---|---|
committer | Justin Worthe <justin@worthe-it.co.za> | 2018-06-04 23:21:02 +0200 |
commit | b1a7c75f9d563a3f913f44e0a5bb93269487de1f (patch) | |
tree | 63e2d7cb597a68eccc3ccbf4e0e0f6d0e2def0a5 /src/engine/mod.rs | |
parent | 5a6badb2b5c706d37732ff914838658424e15131 (diff) |
Moved to replays that have missile position fix
Diffstat (limited to 'src/engine/mod.rs')
-rw-r--r-- | src/engine/mod.rs | 19 |
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); } |