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 {
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<Entity, With<Endgame>>, 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<Captured>, With<display3d::Display3d>)>,
events: Query<(&Side, &Piece), (Added<Captured>, With<display3d::Display3d>)>,
mut debug_info: ResMut<debug::DebugInfo>,
mut score: ResMut<Score>,
) {
events.iter().for_each(|side| {
score.increment(!*side);
score.increment(!*side, *piece);
debug_info.set("score".into(), format!("A:{}|B:{}", score.a, score.b));
});
}

Loading…
Cancel
Save