summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Wernick <justin@worthe-it.co.za>2020-04-20 19:37:57 +0200
committerJustin Wernick <justin@worthe-it.co.za>2020-04-20 19:37:57 +0200
commit7f2d82e15459fc3d365674e3772aed6c3d443ca2 (patch)
tree7e14acc3dfb11f00fd47c6d5d7bc9782e8a4f9f8
parentad2190963e8c6ccece6259212d2143981448535d (diff)
No more tracking the finish line in the state as a collidable thing
-rw-r--r--src/global_json.rs8
-rw-r--r--src/json.rs10
-rw-r--r--src/state.rs19
3 files changed, 7 insertions, 30 deletions
diff --git a/src/global_json.rs b/src/global_json.rs
index ce440ea..af69157 100644
--- a/src/global_json.rs
+++ b/src/global_json.rs
@@ -125,13 +125,6 @@ impl JsonState {
.map(|cell| cell.position.to_position())
.collect(),
),
- finish_lines: Rc::new(
- self.blocks
- .iter()
- .filter(|cell| cell.surface_object == JsonSurfaceObject::FinishLine)
- .map(|cell| cell.position.to_position())
- .collect(),
- ),
})
}
}
@@ -154,7 +147,6 @@ impl JsonPlayer {
.filter(|powerup| **powerup == JsonPowerup::Boost)
.count()
.try_into()?,
- finished: false,
})
}
}
diff --git a/src/json.rs b/src/json.rs
index d610c0f..a7d7759 100644
--- a/src/json.rs
+++ b/src/json.rs
@@ -131,14 +131,6 @@ impl JsonState {
.map(|cell| cell.position.to_position())
.collect(),
),
- finish_lines: Rc::new(
- self.world_map
- .iter()
- .flatten()
- .filter(|cell| cell.surface_object == JsonSurfaceObject::FinishLine)
- .map(|cell| cell.position.to_position())
- .collect(),
- ),
})
}
}
@@ -161,7 +153,6 @@ impl JsonPlayer {
.filter(|powerup| **powerup == JsonPowerup::Boost)
.count()
.try_into()?,
- finished: false,
})
}
}
@@ -175,7 +166,6 @@ impl JsonOpponent {
boost_remaining: 0,
oils: 0,
boosts: 0,
- finished: false,
}
}
}
diff --git a/src/state.rs b/src/state.rs
index 9b90f89..87f73f5 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -19,7 +19,6 @@ pub struct GameState {
pub obstacles: Rc<BTreeSet<Position>>,
pub powerup_oils: Rc<BTreeSet<Position>>,
pub powerup_boosts: Rc<BTreeSet<Position>>,
- pub finish_lines: Rc<BTreeSet<Position>>,
}
#[derive(Debug, Clone, Hash, PartialEq, Eq)]
@@ -29,7 +28,6 @@ pub struct Player {
pub boost_remaining: u8,
pub oils: u16,
pub boosts: u16,
- pub finished: bool,
}
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, PartialOrd, Ord)]
@@ -51,7 +49,7 @@ impl GameState {
let next_positions = self.update_player_collisions(next_positions);
self.update_player_travel(next_positions);
- self.status = if self.players[0].finished && self.players[1].finished {
+ self.status = if self.players[0].finished() && self.players[1].finished() {
if self.players[0].speed > self.players[1].speed {
GameStatus::PlayerOneWon
} else if self.players[0].speed < self.players[1].speed {
@@ -59,9 +57,9 @@ impl GameState {
} else {
GameStatus::Draw
}
- } else if self.players[0].finished {
+ } else if self.players[0].finished() {
GameStatus::PlayerOneWon
- } else if self.players[1].finished {
+ } else if self.players[1].finished() {
GameStatus::PlayerTwoWon
} else {
GameStatus::Continue
@@ -76,7 +74,6 @@ impl GameState {
player.boost_remaining = 0;
player.oils = 0;
player.boosts = 0;
- player.finished = false;
}
}
@@ -165,7 +162,6 @@ impl GameState {
&self.obstacles,
&self.powerup_oils,
&self.powerup_boosts,
- &self.finish_lines,
);
}
}
@@ -254,7 +250,6 @@ impl Player {
obstacles: &BTreeSet<Position>,
powerup_oils: &BTreeSet<Position>,
powerup_boosts: &BTreeSet<Position>,
- finish_lines: &BTreeSet<Position>,
) {
let range = (
Included(Position {
@@ -277,10 +272,10 @@ impl Player {
.boosts
.saturating_add(powerup_boosts.range(range).count() as u16);
- if finish_lines.range(range).count() > 0 {
- self.finished = true;
- }
-
self.position = next_position;
}
+
+ fn finished(&self) -> bool {
+ self.position.x >= WIDTH
+ }
}