Пример #1
0
        public void TakeCard(object sender, MouseButtonEventArgs args)
        {
            if (_isDrag)
            {
                return;
            }

            var cardBase = args.Source as Card;

            if (cardBase.CardValue == 0)
            {
                return;
            }

            if (cardBase.Path == Properties.Resources.BackCardPath)
            {
                _gameViewModel.SetFllipedCardBinding(cardBase.CurrentDeck, cardBase.CardName.Value, cardBase.CardShape.Value);
                return;
            }

            var deckContainer = _openDecks.Find(d => d.ContainerName == cardBase.CurrentDeck);

            FindCardContainer(deckContainer, cardBase);

            if (_moveableContainer != null)
            {
                var fllipedCardCount = deckContainer.ContainersSource.Count(c => c.CardPath != Properties.Resources.BackCardPath && c.CardPath != Properties.Resources.EmptyCardPath);
                if (fllipedCardCount > 1)
                {
                    SetMoveableContainer(args);
                    return;
                }
            }

            _moveableCard = new Card(cardBase);
            _moveableCard.MouseLeftButtonDown += DropMoveableCard;

            _gameViewModel.SetMoveableCardBinding(_moveableCard.CardName.Value, _moveableCard.CardShape.Value, _moveableCard.CardValue, _moveableCard.CurrentDeck, _moveableCard.Path);

            _isDrag = true;

            SetMoveableItemPosition(args);
            _mainCanvas.Children.Add(_moveableCard);

            _currentDrag = new DropData(_moveableCard.CurrentDeck, _moveableCard);
        }
Пример #2
0
        private void SetMoveableContainer(MouseEventArgs args)
        {
            _moveableContainer.MouseLeftButtonDown += DropMoveableContainer;

            _containers    = new List <ContainerViewModel>();
            _lastContainer = new ContainerViewModel();
            SetContainersList(_moveableContainer);
            _gameViewModel.SetMoveableContainerBinding(_containers);

            _isDrag = true;

            SetMoveableItemPosition(args);
            _parentContainer.Children.Remove(_moveableContainer);
            _parentContainer.SubContainer = null;

            _mainCanvas.Children.Add(_moveableContainer);

            _currentDrag = new DropData(_moveableContainer.ContainerName, _moveableContainer.Card);
        }