From 983314faac3beb8787a7124328332e4bed40b71a Mon Sep 17 00:00:00 2001 From: "Elijah C. Voigt" Date: Sat, 3 Feb 2024 23:14:40 -0800 Subject: [PATCH] Fixed "reject move" logic. Added a system for tracking a pieces last move, which is not necessary... --- src/game.rs | 59 +++++++++++++++++++++-------------------------------- 1 file changed, 23 insertions(+), 36 deletions(-) diff --git a/src/game.rs b/src/game.rs index 6b50328..9062b37 100644 --- a/src/game.rs +++ b/src/game.rs @@ -207,11 +207,6 @@ pub(crate) struct BoardIndex { pub y: usize, } -#[derive(Debug, Component, PartialEq, Clone, Default, Copy, Eq, Hash)] -pub(crate) struct Previous { - board_index: BoardIndex, -} - #[derive(Debug, Component, PartialEq, Clone, Copy)] pub(crate) enum Side { A, @@ -367,7 +362,7 @@ impl Board { } }; if valid_capture { - // You cannot move a piece from SideB->SideA when it was just moved from SideA->SideB + // You cannot move a piece from A to B and then back to A when it was just moved from SideA->SideB // Move rejection is not allowed let rejection = { if let Some(Move { @@ -378,8 +373,8 @@ impl Board { { // TODO: I think this is more logic than we need to express // the sentiment... - Board::side(*last_from) == Board::side(this_board_index) - && Board::side(*last_to) == Board::side(current_board_index) + *last_from == this_board_index + && *last_to == current_board_index && Board::side(this_board_index) != Board::side(current_board_index) } else { @@ -485,8 +480,8 @@ fn setup_board(mut commands: Commands) { inner: vec![ vec![ Some(Queen), - None, // Some(Queen), - None, // Some(Drone), + Some(Queen), + Some(Drone), None, None, None, @@ -494,24 +489,24 @@ fn setup_board(mut commands: Commands) { None, ], vec![ - None, // Some(Queen), - None, // Some(Drone), - None, // Some(Pawn), - None, // None, - None, // None, - None, // Some(Pawn), - None, // Some(Pawn), - None, // Some(Drone), + Some(Queen), + Some(Drone), + Some(Pawn), + None, + None, + Some(Pawn), + Some(Pawn), + Some(Drone), ], vec![ - None, // Some(Drone), - None, // Some(Pawn), - None, // Some(Pawn), - None, // None, - None, // None, - None, // Some(Pawn), - None, // Some(Drone), - None, // Some(Queen), + Some(Drone), + Some(Pawn), + Some(Pawn), + None, + None, + Some(Pawn), + Some(Drone), + Some(Queen), ], vec![ None, @@ -519,8 +514,8 @@ fn setup_board(mut commands: Commands) { None, None, None, - None, // Some(Drone), - None, // Some(Queen), + Some(Drone), + Some(Queen), Some(Queen), ], ], @@ -578,14 +573,6 @@ pub(crate) fn update_board( *played = false; } -// Track the last spot that a piece was at -fn track_previous_move( - events: Query<&BoardIndex, (With, Changed)>, - mut commands: Commands, -) { - todo!() -} - #[derive(Debug, Component)] struct Endgame;