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); }
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); }