Ejemplo n.º 1
0
            static public Dictionary <int, int> GenerateRandomItemList()
            {
                List <int>            storeItems = UIDrawer.GetStoreItems();
                Dictionary <int, int> itemPrices = new Dictionary <int, int>();
                List <int>            allPrices  = new List <int>()
                {
                    Data.tier1Price,
                    Data.tier2Price,
                    Data.tier3Price,
                    Data.bossPrice,
                    Data.lunarPrice,
                    Data.equipmentPrice,
                    Data.lunarEquipmentPrice,
                    Data.eliteEquipmentPrice,
                };
                List <int> equipmentPrices = new List <int>()
                {
                    Data.equipmentPrice,
                    Data.lunarEquipmentPrice,
                    Data.eliteEquipmentPrice,
                };

                foreach (int itemID in storeItems)
                {
                    int itemPrice = Data.GetItemPrice(itemID);
                    itemPrices.Add(itemID, itemPrice);
                }
                int points = GetPoints();
                Dictionary <int, int> itemsPurchased = new Dictionary <int, int>();
                bool equipmentGiven = false;

                System.Random random = new System.Random();

                ReduceItemList(points, equipmentGiven, allPrices, equipmentPrices, itemPrices);
                while (allPrices.Count > 0)
                {
                    List <int> availableItems = itemPrices.Keys.ToList();
                    int        nextItem       = availableItems[random.Next(availableItems.Count)];
                    if (!itemsPurchased.ContainsKey(nextItem))
                    {
                        itemsPurchased.Add(nextItem, 0);
                    }
                    int itemPrice  = Data.GetItemPrice(nextItem);
                    int itemsGiven = random.Next(1, Mathf.Min(Mathf.FloorToInt(points / itemPrice) + 1, GetCountRange(nextItem) + 1));
                    itemsPurchased[nextItem] += itemsGiven;
                    points -= itemPrice * itemsGiven;
                    if (Data.allEquipmentIDs.ContainsKey(nextItem))
                    {
                        equipmentGiven = true;
                    }
                    ReduceItemList(points, equipmentGiven, allPrices, equipmentPrices, itemPrices);
                }

                return(itemsPurchased);
            }