Пример #1
0
        public CardStack StackBy(Card point)
        {
            var s = StackBy(point.Drag.Position);

            if (s == point.CurrentStack)
                return null;

            return s;
        }
Пример #2
0
        /// <summary>
        /// animates movement
        /// </summary>
        /// <param name="c"></param>
        public void MoveSlow(Card c, Action done)
        {


            TweenDataPoint u = null;


            u = new TweenDataPoint(
                delegate
                {
                    c.MoveTo(u.Value);
                }
            );

            u.Speed = 20;
            
            u.Done += done;

            u.Value = c.Drag.Position;
            u.Value = this.LastPosition;


        }
Пример #3
0
        public bool TryToFitToAnyStack(Card c, IEnumerable<CardStack> s, Action<Predicate<CardStack, Card>> h)
        {
            var r = false;

            foreach (CardStack v in s.AsEnumerable())
            {
                if (Predicate.Invoke(v, c, h))
                {
                    v.AttachCardsAndMove(false, c.MovableCards);


                    r = true;

                    break;
                }
            }

            return r;
        }
Пример #4
0
 public void RaiseClick(Card card)
 {
     Helper.Invoke(Click, card);
 }
Пример #5
0
 public bool IsParentRankOf(Card c)
 {
     return c.ModifiedRank + 1 == ModifiedRank;
 }
Пример #6
0
        private void TryAutoMove(Card c)
        {
            System.Console.WriteLine("finding free move... ");

            // try to send to a location / multiple cards?


            if (!this.PlayStacks.Contains(c))
                return;

            if (!Predicate.Invoke(c, IsDraggableFormPlayStack))
                return;

            System.Console.WriteLine("will look for play move... ");

            if (MyDeck.TryToFitToAnyStack(c, PlayStacks, IsFitForPlayStack))
                return;

            System.Console.WriteLine("didnt find any...");

            MySounds.PlaySoundNoMoveFound();
        }
Пример #7
0
        public static bool IsStackTypeAndDoesNotFit(Card c, IEnumerable<CardStack> s, CardStack p, System.Action<Predicate<CardStack, Card>> h)
        {
            if (s.Count(i => i == p) > 0)
            {
                if (!Predicate.Invoke(p, c, h))
                    return true;
            }

            return false;
        }
Пример #8
0
        private void TryAutoMove(Card c)
        {
            System.Console.WriteLine("finding free move... ");

            // try to send to a location
            if (c.NextCard != null)
                return;

            // cannot play cards in goal pile
            if (GoalStacks.Contains(c))
                return;

            System.Console.WriteLine("will look for goal move... ");

            if (MyDeck.TryToFitToAnyStack(c, GoalStacks, IsFitForGoalStack))
                return;

            System.Console.WriteLine("will look for play move... ");

            if (MyDeck.TryToFitToAnyStack(c, PlayStacks, IsFitForPlayStack))
                return;

            // still on playground? try temp
            if (PlayStacks.Contains(c))
            {
                System.Console.WriteLine("will look for temp move... ");

                if (MyDeck.TryToFitToAnyStack(c, TempStacks, IsFitForTempStack))
                    return;
            }

            sounds.PlaySoundNoMoveFound();

            return;
        }