factor in piece when scoring

main
Elijah C. Voigt 2 years ago
parent 219621c1cc
commit 54167d1f5f

@ -120,10 +120,15 @@ pub(crate) struct Score {
} }
impl 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 { match side {
Side::A => self.a += 1, Side::A => self.a += i,
Side::B => self.b += 1, Side::B => self.b += i,
} }
} }
@ -627,12 +632,12 @@ fn clear_endgame(query: Query<Entity, With<Endgame>>, mut commands: Commands) {
/// * All captured pieces have their captured side preserved /// * All captured pieces have their captured side preserved
/// We can iterate over these pieces and calculate the score on the fly /// We can iterate over these pieces and calculate the score on the fly
fn manage_score( fn manage_score(
events: Query<&Side, (Added<Captured>, With<display3d::Display3d>)>, events: Query<(&Side, &Piece), (Added<Captured>, With<display3d::Display3d>)>,
mut debug_info: ResMut<debug::DebugInfo>, mut debug_info: ResMut<debug::DebugInfo>,
mut score: ResMut<Score>, mut score: ResMut<Score>,
) { ) {
events.iter().for_each(|side| { events.iter().for_each(|side| {
score.increment(!*side); score.increment(!*side, *piece);
debug_info.set("score".into(), format!("A:{}|B:{}", score.a, score.b)); debug_info.set("score".into(), format!("A:{}|B:{}", score.a, score.b));
}); });
} }

Loading…
Cancel
Save