public static List <FilteredArtStack> GenerateUnion(List <CollectionFilterSet.CollectionArtFilterSet> artFilterSets)
        {
            if ((artFilterSets == null) || (artFilterSets.Count == 0))
            {
                return(new List <FilteredArtStack>());
            }
            Map <NetCache.CardDefinition, FilteredArtStack> map = new Map <NetCache.CardDefinition, FilteredArtStack>();

            foreach (CollectionFilterSet.CollectionArtFilterSet set in artFilterSets)
            {
                foreach (KeyValuePair <NetCache.CardDefinition, FilteredArtStack> pair in set.GenerateMap())
                {
                    NetCache.CardDefinition key   = pair.Key;
                    FilteredArtStack        stack = pair.Value;
                    if (!map.ContainsKey(key))
                    {
                        map.Add(key, stack);
                    }
                    else
                    {
                        FilteredArtStack stack2 = map[key];
                        if (!stack2.MergeWithArtStack(stack))
                        {
                            Debug.LogWarning(string.Format("CollectionArtFilterSet.GenerateUnion(): could not merge filtered art stack {0} with filtered art stack {1}", stack2, stack));
                        }
                    }
                }
            }
            return(new List <FilteredArtStack>(map.Values));
        }
 public bool CanCraftCard(string cardID, TAG_PREMIUM premium)
 {
     NetCache.CardDefinition item = new NetCache.CardDefinition {
         Name    = cardID,
         Premium = premium
     };
     if (!this.m_craftableCardRewards.Contains(item) && GameUtils.FixedRewardExistsForCraftingCard(cardID, premium))
     {
         return(false);
     }
     return(true);
 }
    private FixedReward GetFixedReward(int rewardID, int rewardCount)
    {
        FixedReward reward       = new FixedReward();
        DbfRecord   dbfRecReward = GameDbf.FixedReward.GetRecord(rewardID);

        if (dbfRecReward != null)
        {
            FixedRewardType type;
            if (!EnumUtils.TryGetEnum <FixedRewardType>(dbfRecReward.GetString("TYPE"), out type))
            {
                return(reward);
            }
            switch (type)
            {
            case FixedRewardType.CARD:
            {
                NetCache.CardDefinition cardDefinition = this.GetCardDefinition(dbfRecReward);
                if (cardDefinition != null)
                {
                    reward.FixedCardRewardData = new CardRewardData(cardDefinition.Name, cardDefinition.Premium, rewardCount);
                }
                return(reward);
            }

            case FixedRewardType.CARD_BACK:
            {
                int @int = dbfRecReward.GetInt("CARD_BACK_ID");
                reward.FixedCardBackRewardData = new CardBackRewardData(@int);
                return(reward);
            }

            case FixedRewardType.CRAFTABLE_CARD:
            {
                NetCache.CardDefinition definition2 = this.GetCardDefinition(dbfRecReward);
                if (definition2 != null)
                {
                    reward.FixedCraftableCardRewardData = definition2;
                }
                return(reward);
            }

            case FixedRewardType.META_ACTION_FLAGS:
            {
                int   metaActionID = dbfRecReward.GetInt("META_ACTION_ID");
                ulong uLong        = dbfRecReward.GetULong("META_ACTION_FLAGS");
                reward.FixedMetaActionRewardData = new FixedMetaActionReward(metaActionID);
                reward.FixedMetaActionRewardData.UpdateFlags(uLong, 0L);
                return(reward);
            }
            }
        }
        return(reward);
    }
 public NetCache.CardValue GetCardValue(string cardID, TAG_PREMIUM premium)
 {
     NetCache.CardValue          value2;
     NetCache.NetCacheCardValues netObject = NetCache.Get().GetNetObject <NetCache.NetCacheCardValues>();
     NetCache.CardDefinition     key       = new NetCache.CardDefinition {
         Name    = cardID,
         Premium = premium
     };
     if (!netObject.Values.TryGetValue(key, out value2))
     {
         return(null);
     }
     return(value2);
 }
    public void UpdateFavoriteHeroSkins(CollectionManagerDisplay.ViewMode mode, bool isMassDisenchanting)
    {
        bool flag = mode == CollectionManagerDisplay.ViewMode.HERO_SKINS;

        if (this.m_heroSkinsDecor != null)
        {
            this.m_heroSkinsDecor.SetActive(flag && !isMassDisenchanting);
        }
        if (flag)
        {
            bool flag2 = CollectionManager.Get().GetTaggedDeck(CollectionManager.DeckTag.Editing) == null;
            foreach (CollectionCardVisual visual in this.m_collectionCardVisuals)
            {
                if (visual.IsShown())
                {
                    Actor actor = visual.GetActor();
                    CollectionHeroSkin component = actor.GetComponent <CollectionHeroSkin>();
                    if (component != null)
                    {
                        component.ShowShadow(actor.IsShown());
                        EntityDef entityDef = actor.GetEntityDef();
                        if (entityDef != null)
                        {
                            component.SetClass(entityDef.GetClass());
                            bool show = false;
                            if (flag2)
                            {
                                NetCache.CardDefinition favoriteHero = CollectionManager.Get().GetFavoriteHero(entityDef.GetClass());
                                if (favoriteHero != null)
                                {
                                    show = ((CollectionManager.Get().GetBestHeroesIOwn(entityDef.GetClass()).Count > 1) && !string.IsNullOrEmpty(favoriteHero.Name)) && (favoriteHero.Name == entityDef.GetCardId());
                                }
                            }
                            component.ShowFavoriteBanner(show);
                        }
                    }
                }
            }
        }
    }
    private void MissingCardDisplay(Actor actor, string cardID, TAG_PREMIUM premium)
    {
        NetCache.CardValue value2;
        int buy = -1;

        NetCache.NetCacheCardValues netObject = NetCache.Get().GetNetObject <NetCache.NetCacheCardValues>();
        NetCache.CardDefinition     key       = new NetCache.CardDefinition {
            Name    = cardID,
            Premium = premium
        };
        if (netObject.Values.TryGetValue(key, out value2))
        {
            buy = value2.Buy;
        }
        long balance = NetCache.Get().GetNetObject <NetCache.NetCacheArcaneDustBalance>().Balance;

        if (((buy > 0) && (buy <= balance)) && FixedRewardsMgr.Get().CanCraftCard(cardID, premium))
        {
            if (!actor.isGhostCard())
            {
                actor.GhostCardEffect(true);
            }
        }
        else
        {
            CollectionManagerDisplay display = CollectionManagerDisplay.Get();
            if (!actor.MissingCardEffect())
            {
                if (premium == TAG_PREMIUM.GOLDEN)
                {
                    actor.OverrideAllMeshMaterials(display.GetGoldenCardNotOwnedMeshMaterial());
                }
                else
                {
                    actor.OverrideAllMeshMaterials(display.GetCardNotOwnedMeshMaterial());
                }
            }
        }
    }
 public void OnFavoriteHeroChanged(TAG_CLASS heroClass, NetCache.CardDefinition favoriteHero, object userData)
 {
     object[] objArray1 = new object[] { heroClass, favoriteHero, userData };
     base.method_8("OnFavoriteHeroChanged", objArray1);
 }
 public void UpdateCardCounts(NetCache.NetCacheCollection netCacheCards, NetCache.CardDefinition cardDef, int count, int newCount)
 {
     object[] objArray1 = new object[] { netCacheCards, cardDef, count, newCount };
     base.method_8("UpdateCardCounts", objArray1);
 }
 public void NotifyNetCacheOfRemovedCards(NetCache.CardDefinition cardDef, int count)
 {
     object[] objArray1 = new object[] { cardDef, count };
     base.method_8("NotifyNetCacheOfRemovedCards", objArray1);
 }
 public void NotifyNetCacheOfNewCards(NetCache.CardDefinition cardDef, long insertDate, int count, bool seenBefore)
 {
     object[] objArray1 = new object[] { cardDef, insertDate, count, seenBefore };
     base.method_8("NotifyNetCacheOfNewCards", objArray1);
 }