Esempio n. 1
0
            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.
            }
Esempio n. 2
0
 /// <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));
 }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
 /// <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));
 }