Пример #1
0
 public void AddCard(CardTable data)
 {
     if (ControlledDeckData.CardCount < 30)
     {
         UserCardData cardData = ControlledDeckData.DeckCards.Find((ucd) => ucd.cardIndex == data._Index);
         DeckElement  element;
         if (cardData == null)
         {
             element  = DeckElement.CreateDeckElement(Content.transform);
             cardData = new UserCardData(data._Index, 1);
             ControlledDeckData.DeckCards.Add(cardData);
             DisplayDeckElementList.Add(element);
             element.SetCardData(cardData);
             SortingElement();
         }
         else
         {
             cardData.cardCount++;
             element = DisplayDeckElementList.Find((de) => de.CardData == data);
             element.SetCardData(cardData);
         }
         ControlledDeckData.CardCount++;
         DeckCardCountText.text = ControlledDeckData.CardCount + "/30";
         //add anim
     }
 }
Пример #2
0
    void SettingUIDisplayMode()
    {
        UserCardData userCard           = UserData.Instance.OwnedCardList.Find((usd) => usd.cardIndex == Owner.CardData.Data._Index);
        UserCardData deckCard           = DeckBuildingUIInterface.Instance.DeckView.ControlledDeckData.DeckCards.Find((card) => card.cardIndex == Owner.CardData.Data._Index);
        int          alreadyInDeckCount = deckCard?.cardCount ?? 0;

        if (userCard != null)
        {
            CardCount = userCard.cardCount;
        }

        //non have card
        if (userCard == null)
        {
            Owner.GrayScaleValue = 1f;
            Owner.AlphaValue     = 0.7f;
            currentDisplayType   = CardListElementDisplayType.E_NonOwned;
        }
        //non equit more card
        else if (alreadyInDeckCount == Mathf.Min(3, CardCount))
        {
            currentDisplayType   = CardListElementDisplayType.E_NonMoreEquited;
            Owner.GrayScaleValue = 0f;
            Owner.AlphaValue     = 0.3f;
        }
        else
        {
            Owner.GrayScaleValue = 0f;
            Owner.AlphaValue     = 1f;
            currentDisplayType   = CardListElementDisplayType.E_Idle;
        }
    }
Пример #3
0
    public void RemoveCard(DeckElement element)
    {
        UserCardData cardData = ControlledDeckData.DeckCards.Find((ucd) => ucd.cardIndex == element.CardData._Index);

        if (cardData.cardCount == 1)
        {
            ControlledDeckData.DeckCards.Remove(cardData);
            DisplayDeckElementList.Remove(element);
            Destroy(element.gameObject); // temp
            SortingElement();
        }
        else
        {
            cardData.cardCount--;
            element.SetCardData(cardData);
        }
        ControlledDeckData.CardCount--;
        DeckCardCountText.text = ControlledDeckData.CardCount + "/30";
        //remove Anim

        DeckBuildingUIInterface.Instance.CardView.SettingCard();
    }
Пример #4
0
    /// <summary>
    /// 向指定卡组添加卡牌
    /// </summary>
    /// <param name="cardGroupType"></param>
    /// <param name="card"></param>
    public bool AddCardToCardGroup(CardGroupType cardGroupType, CardBase card)
    {
        if (cardGroup == null)
        {
            Debug.LogError("在向卡组中添加卡牌时没有找到卡组:" + currentCardGroupName);
            return(false);
        }
        int cardNumberLimit = DuelRuleManager.GetSameCardNumberUpperLimit();
        List <UserCardData> typrCardGroup = null;

        switch (cardGroupType)
        {
        case CardGroupType.Unknown:
            Debug.LogError("未知卡组类型!");
            return(false);

        case CardGroupType.Main:
            typrCardGroup = cardGroup.mainCardList;
            break;

        case CardGroupType.Extra:
            typrCardGroup = cardGroup.extraCardList;
            break;

        case CardGroupType.Deputy:
            typrCardGroup = cardGroup.deputyCardList;
            break;

        default:
            break;
        }
        UserCardData userCardData = null;

        foreach (var item in typrCardGroup)
        {
            if (item.cardNo == card.GetCardNo())
            {
                userCardData = item;
            }
        }
        if (userCardData == null)
        {
            userCardData        = new UserCardData();
            userCardData.cardNo = card.GetCardNo();
            userCardData.number = 1;
            typrCardGroup.Add(userCardData);
        }
        else
        {
            if (userCardData.number >= cardNumberLimit)
            {
                GameManager.ShowMessage("卡组中" + card.GetName() + "数量超过最大值!");
                return(false);
            }
            else
            {
                userCardData.number++;
            }
        }
        switch (cardGroupType)
        {
        case CardGroupType.Unknown:
            break;

        case CardGroupType.Main:
            ResetMainCardGroup();
            break;

        case CardGroupType.Extra:
            ResetExtraCardGroup();
            break;

        case CardGroupType.Deputy:
            ResetDeputyCardGroup();
            break;

        default:
            break;
        }
        return(true);
    }