diff --git a/src/game.rs b/src/game.rs index d370810..78649aa 100644 --- a/src/game.rs +++ b/src/game.rs @@ -120,10 +120,15 @@ pub(crate) struct Score { } impl Score { - fn increment(&mut self, side: Side) { + fn increment(&mut self, side: Side, piece: Piece) { + let i = match piece { + Piece::Queen => 3, + Piece::Drone => 2, + Piece::Pawn => 1, + }; match side { - Side::A => self.a += 1, - Side::B => self.b += 1, + Side::A => self.a += i, + Side::B => self.b += i, } } @@ -627,12 +632,12 @@ fn clear_endgame(query: Query>, mut commands: Commands) { /// * All captured pieces have their captured side preserved /// We can iterate over these pieces and calculate the score on the fly fn manage_score( - events: Query<&Side, (Added, With)>, + events: Query<(&Side, &Piece), (Added, With)>, mut debug_info: ResMut, mut score: ResMut, ) { events.iter().for_each(|side| { - score.increment(!*side); + score.increment(!*side, *piece); debug_info.set("score".into(), format!("A:{}|B:{}", score.a, score.b)); }); }