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); }
public ItemToGrabFromStash(int stashIndex, RectangleF rect, ItemTypes itemType, SellitItem sellItItem) { this.stashIndex = stashIndex; this.rect = rect; this.itemType = itemType; this.sellItItem = sellItItem; }
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); }
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); }
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); }