public bool HasCurrency(TransmuteRecipe recipe) { switch (recipe) { case TransmuteRecipe.ExtractLegendaryPower: return(HasCurrency(_currencyRecipeExtractLegendaryPower)); case TransmuteRecipe.ReforgeLegendary: return(HasCurrency(_currencyRecipeReforgeLegendary)); case TransmuteRecipe.UpgradeRareItem: return(HasCurrency(_currencyRecipeUpgradeRareItem)); case TransmuteRecipe.ConvertSetItem: return(HasCurrency(_currencyRecipeConvertSetItem)); case TransmuteRecipe.ConvertCraftingMaterialsFromNormal: return(HasCurrency(_currencyRecipeConvertFromNormal)); case TransmuteRecipe.ConvertCraftingMaterialsFromMagic: return(HasCurrency(_currencyRecipeConvertFromMagic)); case TransmuteRecipe.ConvertCraftingMaterialsFromRare: return(HasCurrency(_currencyRecipeConvertFromRare)); } return(true); // recipes that dont require currency. }
/// <summary> /// Move to Kanai's cube and transmute. /// </summary> public static async Task <bool> Execute(List <TrinityItem> transmuteGroup, TransmuteRecipe recipe) { return(await Execute(transmuteGroup.Select(i => i.AnnId).ToList(), recipe)); }
/// <summary> /// Move to Kanai's cube and transmute. /// </summary> public static async Task <bool> Execute(IEnumerable <int> transmuteGroupAnnIds, TransmuteRecipe recipe) { if (!ZetaDia.IsInGame) { return(false); } Core.Logger.Log("Transmuting..."); if (!Core.Inventory.Currency.HasCurrency(recipe)) { Core.Logger.Error($"--> Not enough currency for {recipe}"); return(false); } if (!UIElements.TransmuteItemsDialog.IsVisible) { await MoveToAndInteract.Execute(TownInfo.KanaisCube); await Coroutine.Sleep(1000); } if (!UIElements.TransmuteItemsDialog.IsVisible) { Core.Logger.Log(" --> Can't transmute without the vendor window open!"); return(false); } Core.Logger.Log("Zip Zap!"); InventoryManager.TransmuteItems(transmuteGroupAnnIds.ToArray(), recipe); await Coroutine.Sleep(Randomizer.Fudge(500)); UIElement.FromHash(TransmuteButtonHash)?.Click(); return(true); }
/// <summary> /// Move to Kanai's cube and transmute. /// </summary> public static async Task <bool> Execute(TrinityItem item, TransmuteRecipe recipe) { return(await Execute(new List <TrinityItem> { item }, recipe)); }