Beispiel #1
0
    public bool AddCardFromBoard(GameObject card)
    {
        if (GetNumberOfCards() > maxCards)
        {
            return(false);
        }

        Transform closestCard      = null;
        float     smallestDistance = Mathf.Infinity;

        foreach (Transform i in transform)
        {
            float currentDistance = Mathf.Abs((i.position - card.transform.position).magnitude);
            if (i != card.transform && ghostCardHolder != i && currentDistance < smallestDistance)
            {
                closestCard      = i;
                smallestDistance = currentDistance;
            }
        }

        card.transform.SetParent(transform);
        card.transform.SetSiblingIndex(closestCard.transform.GetSiblingIndex());
        card.transform.localScale = new Vector3(cardScale * 1.5f, cardScale * 1.5f, 0);

        cardCount++;

        OnCardAdded?.Invoke();

        return(true);
    }
Beispiel #2
0
        /// <summary>
        /// Adds a card to this collection
        /// </summary>
        /// <param name="card">The card to add</param>
        public void Add(PlayingCard card)
        {
            myBackingList.Add(card);

            if (OnCardAdded != null)
            {
                OnCardAdded.Invoke(this, new CardEventArgs(card));
            }
        }
Beispiel #3
0
        public void AddCard(Card card)
        {
            _Hand.Add(card);

            card.Interactable   = true;
            card.OnInteraction += OnInteraction;

            OnCardAdded?.Invoke(this, new OnCardAddedArgs(card));
            OnHandChanged?.Invoke(this, new OnHandChangedArgs(_Hand));
        }
Beispiel #4
0
    public void AddCard(CardController card)
    {
        if (!Cards.Contains(card))
        {
            Cards.Add(card);
            card.Lock();
            card.Graphics.FaceUp();

            OnCardAdded?.Invoke(card);
        }
    }
Beispiel #5
0
        public void AddCard(Card card)
        {
            if (_Stack.Count > 0)
            {
                TopCard.Interactable = false;
            }

            _Stack.Push(card);
            card.OnInteraction += OnInteraction;

            card.Interactable = true;

            OnCardAdded?.Invoke(this, new OnCardAddedArgs(card));
        }
Beispiel #6
0
        public void AddToTheBottom(Card card)
        {
            if (!card.allowStacking)
            {
                return;
            }

            if (!IsFaceUp)
            {
                _cardList.AddFirst(card);
            }
            else
            {
                _cardList.AddLast(card);
            }
            OnCardAdded?.Invoke();
        }
Beispiel #7
0
 public void AddToTheBottom(Deck deck)
 {
     if (IsFaceUp)
     {
         foreach (Card card in deck.GetCardList())
         {
             _cardList.AddLast(card);
         }
     }
     else
     {
         foreach (Card card in deck.GetCardList().Reverse())
         {
             _cardList.AddFirst(card);
         }
     }
     OnCardAdded?.Invoke();
 }
Beispiel #8
0
        public void AddToTheTop(Card card)
        {
            if (!card.allowStacking)
            {
                return;
            }

            card.IsFaceUp = IsFaceUp;
            if (IsFaceUp)
            {
                _cardList.AddFirst(card);
            }
            else
            {
                _cardList.AddLast(card);
            }
            OnCardAdded?.Invoke();
        }
Beispiel #9
0
        private void AddCardToNewStack(TCard card)
        {
            var stack = new CardStack <TCard, TCardDefinition>(this);

            cardStacks.Add(stack);
            stack.AddCard(card);
            CardEvent cardGameEvent = new CardEvent(CardEvent.CardEventType.CardAdded);

            card.RaiseEvent(cardGameEvent);

            if (cardGameEvent.IsCancelled)
            {
                RemoveChild(stack);
                cardStacks.Remove(stack);
                return;
            }

            OnCardAdded?.Invoke();
        }
Beispiel #10
0
 public void AddCard(Card card, int pos)
 {
     _cardList.Insert(pos, card);
     OnCardAdded?.Invoke();
 }
Beispiel #11
0
 public void AddCard(Card card)
 {
     _cardList.Add(card);
     OnCardAdded?.Invoke();
 }