private bool IsCheckerMoved(CheckerElementViewModel newSelectedChecker, PlayerViewModel player)
        {
            var moveValidationManager = new MoveValidationManager(_selectedChecker
                                                                  , newSelectedChecker
                                                                  , NextMoveSide
                                                                  , player
                                                                  , this);
            MoveValidationResult validationResult = moveValidationManager.GetMoveValidationResult();

            if (validationResult.Status == MoveValidationStatus.NewItemSelected)
            {
                if (_selectedChecker != null)
                {
                    _selectedChecker.IsSelected = false;
                    _selectedChecker.DeSelectPossibleMovement();
                }
                _selectedChecker = newSelectedChecker;

                _selectedChecker.IsSelected = true;
                _selectedChecker.SelectPossibleMovement();
                return(false);
            }

            if (validationResult.Status == MoveValidationStatus.DeselectChecker)
            {
                _selectedChecker.IsSelected = false;
                _selectedChecker.DeSelectPossibleMovement();
                _selectedChecker = null;
                return(false);
            }

            if (validationResult.Status == MoveValidationStatus.Error)
            {
                ShowNotificationMessage(validationResult.ErrorMessage);
                return(false);
            }

            MoveCheckerToNewPlace(_selectedChecker, newSelectedChecker, player);
            _selectedChecker.IsSelected = false;
            _selectedChecker            = null;
            return(true);
        }
Exemple #2
0
        public void MoveCheckerToNewPlace(CheckerElementViewModel checker)
        {
            CheckerElementViewModel existingPlayerChecker = PlayerPositions.Single(x => x == checker);

            existingPlayerChecker.DeSelectPossibleMovement();
        }