From 6e68b2fc2a8a76683951d5ca0dd1562156c21dad Mon Sep 17 00:00:00 2001 From: "Elijah C. Voigt" Date: Mon, 19 Feb 2024 20:39:04 -0800 Subject: [PATCH] Only show piece tutorials once --- src/tutorial.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/tutorial.rs b/src/tutorial.rs index d7f6195..8c242a0 100644 --- a/src/tutorial.rs +++ b/src/tutorial.rs @@ -262,22 +262,25 @@ fn step( let ownership_check = !ownership_done && transitions.iter().count() > 0; let jump_done = seen.0.contains(&TutorialState::PieceJump); let queen_selected = pieces.iter().filter(|&p| *p == game::Piece::Queen).count() > 0; + let queen_seen = seen.0.contains(&TutorialState::PieceQueen); let drone_selected = pieces.iter().filter(|&p| *p == game::Piece::Drone).count() > 0; + let drone_seen = seen.0.contains(&TutorialState::PieceDrone); let pawn_selected = pieces.iter().filter(|&p| *p == game::Piece::Pawn).count() > 0; + let pawn_seen = seen.0.contains(&TutorialState::PiecePawn); // A piece is selected, so talk about it if piece_selected { // When a queen is selected for the first time... - if queen_selected { + if queen_selected && !queen_seen { TutorialState::PieceQueen // When a drone is selected for the first time... - } else if drone_selected { + } else if drone_selected && !drone_seen { TutorialState::PieceDrone // When a pawn is selected for the first time... - } else if pawn_selected { + } else if pawn_selected && !pawn_seen { TutorialState::PiecePawn } else { - panic!("This shouldn't be possible...!") + TutorialState::Empty } // There are no pieces selected } else {