예제 #1
0
 public void Drop(Vector2 vector)
 {
     if (StartPointMouse.HasValue)
     {
         var          AvilibleSocket = listSocket.Where(X => AceptanceSocket(X));
         CardSocketUI cardSocketUI   = AvilibleSocket.GetMin(X => X != null? X.LenghtToObject(this):0);
         if (cardSocketUI != null)
         {
             BindCardToSocket(cardSocketUI, this);
         }
         StartPointMouse = null;
     }
 }
예제 #2
0
 public static void BindCardToSocket(CardSocketUI socketUI, CardUI card, bool InvokeChenge = true)
 {
     if (card.socketUI != null)
     {
         card.socketUI.InnerCard = null;
     }
     if (socketUI.InnerCard != null && !socketUI.IsStack)
     {
         throw new InvalidOperationException();
     }
     card.socketUI      = socketUI;
     socketUI.InnerCard = card;
     if (InvokeChenge)
     {
         socketUI.TookCard(card);
     }
 }
예제 #3
0
        public void AddCardSlot(CardSocketUI card, KindSlot kind)
        {
            Add(card);
            ListSocket.Add(card);
            switch (kind)
            {
            case KindSlot.Table:
                ListSocketTable.Add(card);
                break;

            case KindSlot.UserCard:
                ListSocketUser.Add(card);
                break;

            default:
                break;
            }
        }
예제 #4
0
 private bool AceptanceSocket(CardSocketUI X)
 {
     return(!X.BlockedSetCard && (X.InnerCard == null) &&//carta może być odłożona i soket nie jest pusty
            (LenghtToObject(X) < MaxDystans) &&              //nie przekracza maksymalnego dystansu
            X.AceptanceSet != null && X.AceptanceSet(this)); //soket może przyjąć tą krte
 }