public CardStack StackBy(Card point) { var s = StackBy(point.Drag.Position); if (s == point.CurrentStack) return null; return s; }
/// <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; }
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; }
public void RaiseClick(Card card) { Helper.Invoke(Click, card); }
public bool IsParentRankOf(Card c) { return c.ModifiedRank + 1 == ModifiedRank; }
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(); }
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; }
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; }