From 54167d1f5fd68ddc28aabfad2a6b1f58fb0ae320 Mon Sep 17 00:00:00 2001 From: "Elijah C. Voigt" Date: Sun, 4 Feb 2024 19:39:18 -0800 Subject: [PATCH] factor in piece when scoring --- src/game.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) 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)); }); }