Ejemplo n.º 1
0
        private async Task AnimateAllCardsBackToDeck(double duration = Double.MaxValue)
        {
            CountControl.Hide();
            if (duration == Double.MaxValue)
            {
                duration = MainPage.AnimationSpeeds.Medium;
            }

            // flip the cards and then move them for a nice affect

            List <Task <object> > list = new List <Task <object> >();

            GridPlayer.FlipAllCards(CardOrientation.FaceDown, list);
            GridPlayer.MoveAllCardsToTarget(GridDeck, list, duration);

            GridCrib.FlipAllCards(CardOrientation.FaceDown, list);
            GridCrib.MoveAllCardsToTarget(GridDeck, list, duration);

            GridPlayedCards.FlipAllCards(CardOrientation.FaceDown, list);
            GridPlayedCards.MoveAllCardsToTarget(GridDeck, list, duration);

            GridComputer.FlipAllCards(CardOrientation.FaceDown, list);
            GridComputer.MoveAllCardsToTarget(GridDeck, list, duration);

            foreach (CardView card in GridDeck.Items)
            {
                card.Reset();
            }

            GridDeck.UpdateCardLayout(list, duration, false);

            await Task.WhenAll(list);
        }
Ejemplo n.º 2
0
        private async Task AnimateCardsBackToOwner()
        {
            List <Task <object> > taskList = new List <Task <object> >();
            CardView card = null;

            for (int i = GridPlayedCards.Items.Count - 1; i >= 0; i--)
            {
                card = GridPlayedCards.Items[i];
                if (card.Owner == Owner.Player)
                {
                    GridPlayedCards.MoveCardToTarget(card, GridPlayer, taskList);
                }
                else if (card.Owner == Owner.Computer)
                {
                    GridPlayedCards.MoveCardToTarget(card, GridComputer, taskList);
                }
                if (card.Orientation == CardOrientation.FaceDown)
                {
                    card.SetOrientation(CardOrientation.FaceUp, taskList);
                }
                if (card.AnimatedOpacity != 1.0)
                {
                    card.AnimateFade(1.0, taskList);
                }
            }

            await Task.WhenAll(taskList);

            CountControl.Hide();
        }