示例#1
0
        public static int GetNumberOfCrRecipeSetsInInventory()
        {
            var setList = new List <int>()
            {
                0, 0, 0, 0, 0, 0, 0, 0
            };
            var inventoryItems = GameController.Game.IngameState.IngameUi.InventoryPanel[InventoryIndex.PlayerInventory].VisibleInventoryItems;

            foreach (var item in inventoryItems)
            {
                if (IsCrItem(item) == false)
                {
                    continue;
                }
                var parsedItem = new SellitItem(item, GameController.Files);
                setList[0] = (parsedItem.IsAmulet == true) ? setList[0] + 1 : setList[0];
                setList[1] = (parsedItem.IsRing == true) ? setList[1] + 1 : setList[1];
                setList[2] = (parsedItem.IsHelmet == true) ? setList[2] + 1 : setList[2];
                setList[3] = (parsedItem.IsGloves == true) ? setList[3] + 1 : setList[3];
                setList[4] = (parsedItem.IsBelt == true) ? setList[4] + 1 : setList[4];
                setList[5] = (parsedItem.IsBoots == true) ? setList[5] + 1 : setList[5];
                setList[6] = (parsedItem.IsBodyArmor == true) ? setList[6] + 1 : setList[6];
                setList[7] = (parsedItem.IsTwoHandedWeapon == true) ? setList[7] + 1 : setList[7];
                // setList[8] = (parsedItem.IsOneHandedWeapon == true) ? setList[8] + 1 : setList[8];
            }
            setList[1] = setList[1] / 2;
            var numberOfSets = setList.Min();

            Console.WriteLine("Inventory: Found {0} chaos recipe sets", numberOfSets);
            return(numberOfSets);
        }
示例#2
0
 public ItemToGrabFromStash(int stashIndex, RectangleF rect, ItemTypes itemType, SellitItem sellItItem)
 {
     this.stashIndex = stashIndex;
     this.rect       = rect;
     this.itemType   = itemType;
     this.sellItItem = sellItItem;
 }
示例#3
0
        public static bool IsCrItem(NormalInventoryItem item)
        {
            var  parsedItem        = new SellitItem(item, GameController.Files);
            bool isCorrectILvl     = parsedItem.ItemLevel >= 60 && parsedItem.ItemLevel <= 74;
            bool isCorrectItemType = parsedItem.IsArmour || parsedItem.IsWeapon || parsedItem.IsAmulet || parsedItem.IsRing;
            bool isRare            = parsedItem.Rarity == ItemRarity.Rare;
            bool isUnidentified    = parsedItem.IsIdentified == false;

            return(isCorrectILvl && isCorrectItemType && isRare && isUnidentified);
        }
示例#4
0
        public static int GetNumberOfCrRecipeSetsInStash()
        {
            var setList = new List <int>()
            {
                0, 0, 0, 0, 0, 0, 0, 0
            };

            GetIndexesOfCrStashTabs();
            foreach (var crIndex in chaosRecipeStashTabIndexes)
            {
                var stashItems = GameController.IngameState.IngameUi.StashElement.AllInventories[crIndex]?.VisibleInventoryItems;
                if (stashItems == null)
                {
                    Console.WriteLine("stashItems is null in GetNumberOfCrRecipeSetsInStash");
                    return(0);
                }
                foreach (var item in stashItems)
                {
                    if (IsCrItem(item) == false)
                    {
                        continue;
                    }
                    var parsedItem = new SellitItem(item, GameController.Files);
                    setList[0] = (parsedItem.IsAmulet == true) ? setList[0] + 1 : setList[0];
                    setList[1] = (parsedItem.IsRing == true) ? setList[1] + 1 : setList[1];
                    setList[2] = (parsedItem.IsHelmet == true) ? setList[2] + 1 : setList[2];
                    setList[3] = (parsedItem.IsGloves == true) ? setList[3] + 1 : setList[3];
                    setList[4] = (parsedItem.IsBelt == true) ? setList[4] + 1 : setList[4];
                    setList[5] = (parsedItem.IsBoots == true) ? setList[5] + 1 : setList[5];
                    setList[6] = (parsedItem.IsBodyArmor == true) ? setList[6] + 1 : setList[6];
                    setList[7] = (parsedItem.IsTwoHandedWeapon == true) ? setList[7] + 1 : setList[7];
                    // setList[8] = (parsedItem.IsOneHandedWeapon == true) ? setList[8] + 1 : setList[8];
                }
            }
            setList[1] = setList[1] / 2;
            var numberOfSets = setList.Min();

            Console.WriteLine("Stash: Found {0} chaos recipe sets", numberOfSets);
            return(numberOfSets);
        }
示例#5
0
        public static bool MapChaosRecipeItems()
        {
            completeSetDict.Clear();
            allItemsDict.Clear();
            itemsToGrabFromStash.Clear();
            GetIndexesOfCrStashTabs();
            foreach (var crIndex in chaosRecipeStashTabIndexes)
            {
                var stashItems = GameController.IngameState.IngameUi.StashElement?.AllInventories[crIndex]?.VisibleInventoryItems;
                if (stashItems == null)
                {
                    return(false);
                }
                foreach (var item in stashItems)
                {
                    if (IsCrItem(item) == false)
                    {
                        continue;
                    }
                    var parsedItem = new SellitItem(item, GameController.Files);
                    if (parsedItem.ItemType != ItemTypes.Other && parsedItem.ItemType != ItemTypes.OneHandedWeapon)
                    {
                        Console.WriteLine("Added {0} to dictionary", parsedItem.ItemType.ToString());
                        var itemToGrab = new ItemToGrabFromStash(crIndex, item.GetClientRectCache, parsedItem.ItemType, parsedItem);
                        if (allItemsDict.ContainsKey(parsedItem.ItemType))
                        {
                            allItemsDict[parsedItem.ItemType].Add(itemToGrab);
                        }
                        else
                        {
                            allItemsDict.Add(parsedItem.ItemType, new List <ItemToGrabFromStash>());
                            allItemsDict[parsedItem.ItemType].Add(itemToGrab);
                        }

                        if (completeSetDict.ContainsKey(parsedItem.ItemType))
                        {
                            var numberOfSameItems = completeSetDict[parsedItem.ItemType].Count;
                            if (parsedItem.ItemType == ItemTypes.Ring && numberOfSameItems < 2)
                            {
                                completeSetDict[parsedItem.ItemType].Add(itemToGrab);
                            }
                            else if (numberOfSameItems < 1)
                            {
                                completeSetDict[parsedItem.ItemType].Add(itemToGrab);
                            }
                        }
                        else
                        {
                            completeSetDict.Add(parsedItem.ItemType, new List <ItemToGrabFromStash>());
                            completeSetDict[parsedItem.ItemType].Add(itemToGrab);
                        }
                    }
                }
            }


            var numberOfSets = GetNumberOfCrRecipeSetsInStash();

            if (numberOfSets > 0)
            {
                foreach (var keyValue in completeSetDict)
                {
                    itemsToGrabFromStash.AddRange(keyValue.Value);
                }
                return(true);
            }
            return(false);
        }