private static GameObject CreateCard(int generation, Pack pack, Transform normalCardsHolder, string rarity)
        {
            string           cardResourceName = ("gen" + generation + "-" + rarity).Replace(" ", "").ToLower();
            PossibleCardList pcl    = cardSets[cardResourceName];
            int          index      = UnityEngine.Random.Range(0, pcl.possibleCard.Length);
            PossibleCard chosenCard = pcl.possibleCard[index];

            pack.cardInThisPack.Add(chosenCard);
            GameObject cardInstance = GameObject.Instantiate(cardPrefab);
            Card       card         = cardInstance.GetComponent <Card>();

            card.CreatedFrom = chosenCard; // this will start downloading the image maybe set unknown rounded/square to front before starting the download
                                           //cardInstance.SetActive(false);
            cardInstance.transform.SetParent(normalCardsHolder);
            cardInstance.transform.localScale = new Vector3(1f, 1f, 1f);
            Match matcher = Regex.Match(chosenCard.setCode, SQUARE_SETS, RegexOptions.IgnoreCase);

            if (matcher.Success)
            {
                card.back = squareBack;
            }
            else
            {
                card.back = roundedBack;
            }

            return(cardInstance);
        }
        public static void AddCardsFromFile(string cardResourceName, int generation)
        {
            TextAsset        jsonTextFile = Resources.Load <TextAsset>("Factories/Config/" + cardResourceName);
            PossibleCardList pcl          = JsonUtility.FromJson <PossibleCardList>(jsonTextFile.text);

            foreach (PossibleCard pc in pcl.possibleCard)
            {
                if (!availableNPNs[generation].ContainsKey(pc.nationalPokedexNumber))
                {
                    availableNPNs[generation].Add(pc.nationalPokedexNumber, 0);
                }
                availableNPNs[generation][pc.nationalPokedexNumber] += 1;
            }
            cardSets.Add(cardResourceName, pcl);
        }