public void SetCardLimit(SortedDictionary <int, int> cardLimits) { foreach (KeyValuePair <int, int> kv in cardLimits) { int CardID = kv.Key; int CardLimitCount = kv.Value; if (AllCards.ContainsKey(CardID)) { CardBase cb = AllCards[CardID]; cb.ChangeCardSelectLimit(CardLimitCount); if (!AllShownCards.ContainsKey(CardID)) { if (CardLimitCount > 0) { AllShownCards.Add(CardID, cb); AllCardContainers[CardID].gameObject.SetActive(true); } else { AllCardContainers[CardID].gameObject.SetActive(false); } } else { if (CardLimitCount == 0) { AllCardContainers[CardID].gameObject.SetActive(false); AllShownCards.Remove(CardID); } } } } HideHigherLevelNumCardsForStoryMode(); }