Beispiel #1
0
 public bool AddCard(int cardRecordID, int positionIndex)
 {
     if (fieldCardDictionary.ContainsKey(cardRecordID))
     {
         return(false);
     }
     if (DisplayCheck(positionIndex))
     {
         FieldCardRecord record = new FieldCardRecord {
             CardRecordID = cardRecordID, PositionIndex = positionIndex
         };
         foreach (var targetCard in FieldCards)
         {
             if (targetCard.PositionIndex >= positionIndex)
             {
                 targetCard.PositionIndex++;
                 OnCardChanged?.Invoke(targetCard, DataChangeCode.Update);
             }
         }
         fieldCardDictionary.Add(cardRecordID, record);
         OnCardChanged?.Invoke(record, DataChangeCode.Add);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #2
0
 public bool AddCard(Card card)
 {
     if (card == null || TotalCardCount >= MaxCardCount)
     {
         return(false);
     }
     else if (card.Rarity == RarityCode.Legendary)
     {
         if (CardCount(card.CardID) >= 1)
         {
             return(false);
         }
         else
         {
             cards.Add(card);
             OnCardChanged?.Invoke(this, card, DataChangeCode.Add);
             return(true);
         }
     }
     else
     {
         if (CardCount(card.CardID) >= 2)
         {
             return(false);
         }
         else
         {
             cards.Add(card);
             OnCardChanged?.Invoke(this, card, DataChangeCode.Add);
             return(true);
         }
     }
 }
Beispiel #3
0
 public void LoadCard(CardRecord card)
 {
     if (cardDictionary.ContainsKey(card.CardRecordID))
     {
         cardDictionary[card.CardRecordID] = card;
         OnCardChanged?.Invoke(card, DataChangeCode.Update);
     }
     else
     {
         cardDictionary.Add(card.CardRecordID, card);
         OnCardChanged?.Invoke(card, DataChangeCode.Add);
     }
 }
Beispiel #4
0
 public bool UpdateCard(int cardRecordID, int positionIndex)
 {
     if (fieldCardDictionary.ContainsKey(cardRecordID))
     {
         FieldCardRecord record = fieldCardDictionary[cardRecordID];
         record.PositionIndex = positionIndex;
         OnCardChanged?.Invoke(record, DataChangeCode.Update);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #5
0
 public bool RemoveCard(int cardID)
 {
     if (CardCount(cardID) > 0)
     {
         int  index = cards.FindIndex(x => x.CardID == cardID);
         Card card  = cards[index];
         cards.RemoveAt(index);
         OnCardChanged?.Invoke(this, card, DataChangeCode.Remove);
         return(true);
     }
     else
     {
         return(false);
     }
 }
    // Start is called before the first frame update
    void Start()
    {
        cardScripts = new List <CardScript>();
        for (int i = 0; i < transform.childCount; i++)
        {
            CardScript cardScript = transform.GetChild(i).GetComponent <CardScript>();
            if (cardScript != null)
            {
                cardScript.collection = this;
                cardScripts.Add(cardScript);
                cardScript.index = i;
                Cards.Add(cardScript.card);
            }
        }

        OnCardChangedCallback += UpdateUI;
    }
Beispiel #7
0
 public bool RemoveCard(int cardRecordID)
 {
     if (fieldCardDictionary.ContainsKey(cardRecordID))
     {
         FieldCardRecord record = fieldCardDictionary[cardRecordID];
         fieldCardDictionary.Remove(record.CardRecordID);
         OnCardChanged?.Invoke(record, DataChangeCode.Remove);
         foreach (var targetCard in FieldCards)
         {
             if (targetCard.PositionIndex >= record.PositionIndex)
             {
                 targetCard.PositionIndex--;
                 OnCardChanged?.Invoke(targetCard, DataChangeCode.Update);
             }
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #8
0
        private void setDeckCard(int Idx, TriadCard card, bool previewOnly)
        {
            if (deck != null)
            {
                deck.SetCard(Idx, card);
            }

            CardCtrl updatedCtrl = cardCtrls[Idx];

            if (updatedCtrl.GetCard() != card)
            {
                updatedCtrl.SetCard(new TriadCardInstance(card, deckOwner));
            }

            if (OnCardChanged != null)
            {
                OnCardChanged.Invoke(cardCtrls[Idx].GetCardInst(), Idx, previewOnly);
            }

            updatedCtrl.UpdateBackColor();
            updatedCtrl.Invalidate();
        }
Beispiel #9
0
 public void ChangeCounters(int delta)
 {
     Counters += delta;
     Debug.Log("counters changed, new total = " + Counters);
     OnCardChanged?.Invoke();
 }
 private void Next()
 {
     OnCardChanged?.Invoke(this, new EventArgs());
 }
Beispiel #11
0
 public void Neutralize()
 {
     _isNeutralised = true;
     OnCardChanged?.Invoke();
 }