private void MovePawnTo(int coords) { _nextMove.To = coords; if (_nextMove.Equals(_game.GameHistory.PeekLastMove(_color, true).Inverse())) { _humanPlayerViewModel.Message = $"{_color.ToString().ToUpper()}'S TURN: YOU CANNOT REVERSE YOUR LAST MOVE!"; } else { _humanPlayerViewModel.EndInteraction(); _timer.Stop(); _nextMove.Time = _timer.ElapsedMilliseconds; MoveChosenEvent?.Invoke(this, _nextMove); } }
public void Move(Game game) { _nextMove = new Move(_color); // CHECK WHETHER PLAYER CAN MOVE if (game.GetPawnsInHand(_color) <= 0 && game.GameBoard.GetAvaiableMoves(_color, _game.GameHistory.PeekLastMove(_color, true), game.GameBoard.GetFieldsCount(_color) < 4).Length == 0) { MoveChosenEvent?.Invoke(this, _nextMove); } // AWAIT MOVE else { _game = game; _humanPlayerViewModel.BeginInteraction($"{_color.ToString().ToUpper()}'S TURN", FieldChosen); _timer = Stopwatch.StartNew(); } }