示例#1
0
文件: Rate.cs 项目: Arkator7/Century
 protected bool Equals(Rate rate)
 {
     return(RateOut.Equals(rate.RateOut) &&
            RateIn.Equals(rate.RateIn) &&
            Transmute.Equals(rate.Transmute) &&
            Played.Equals(rate.Played));
 }
示例#2
0
        public override async Task <bool> MainTask()
        {
            if (Items == null || !Items.Any())
            {
                Core.Logger.Error("[TransmuteTag] No items were specified. Use: <Transmute recipe=\"UpgradeRareItem\"><Items><Item id=\"0\" quantity =\"0\" /></Items></Transmute>");
                return(true);
            }

            if (!GameUI.KanaisCubeWindow.IsVisible)
            {
                Core.Logger.Error("[TransmuteTag] Kanai's Cube window must be visible");
                return(true);
            }

            if (Recipe == 0)
            {
                Core.Logger.Error("[TransmuteTag] You must specifiy a recipe to use: <Transmute recipe=\"UpgradeRareItem\"... valid values are: ConvertCraftingMaterialsFromRare, AugmentAncientItem, ConvertGems, RemoveLevelRequirement, ConvertCraftingMaterialsFromMagic, ExtractLegendaryPower, OpenPortalToCow, OpenPortalToGreed, ConvertCraftingMaterialsFromNormal, ConvertSetItem, ReforgeLegendary, UpgradeRareItem");
                return(true);
            }

            var transmuteGroup = new List <TrinityItem>();

            foreach (var item in Items)
            {
                var backpackItems = Core.Inventory.Backpack.ByActorSno(item.Id);
                if (backpackItems == null || !backpackItems.Any())
                {
                    if (item.Quality != TrinityItemQuality.Invalid)
                    {
                        backpackItems = Core.Inventory.Backpack.ByQuality(item.Quality);
                    }
                    if (backpackItems == null || !backpackItems.Any())
                    {
                        Core.Logger.Error($"[TransmuteTag] {item} was not found in backpack");
                        return(true);
                    }
                }

                var stacks = Core.Inventory.GetStacksUpToQuantity(backpackItems, item.Quantity);
                transmuteGroup.AddRange(stacks);
            }

            if (!await Transmute.Execute(transmuteGroup, Recipe))
            {
                Core.Logger.Error("[TransmuteTag] Trasmute Failed.");
                return(true);
            }

            return(true);
        }
示例#3
0
        public async Task <bool> Task()
        {
            if (Items == null || !Items.Any())
            {
                Logger.LogError("[TransmuteTag] No items were specified. Use: <Transmute><Items><Item id=\"0\" quantity =\"0\" /></Items></Transmute>");
                _isDone = true;
                return(false);
            }

            if (!GameUI.KanaisCubeWindow.IsVisible)
            {
                Logger.LogError("[TransmuteTag] Kanai's Cube window must be visible");
                _isDone = true;
                return(false);
            }

            var transmuteGroup = new List <ACDItem>();

            foreach (var item in Items)
            {
                var backpackItem = Inventory.Backpack.ByActorSNO(item.Id);
                if (backpackItem == null)
                {
                    Logger.LogError("[TransmuteTag] Item Id={0} was not found in backpack", item.Id);
                    _isDone = true;
                    return(false);
                }

                var stacks = Inventory.GetStacksUpToQuantity(backpackItem, item.Quantity);
                transmuteGroup.AddRange(stacks);
            }

            if (!await Transmute.Execute(transmuteGroup))
            {
                Logger.LogError("[TransmuteTag] Trasmute Failed.");
                _isDone = true;
                return(false);
            }

            _isDone = true;
            return(true);
        }