Esempio n. 1
0
        public static bool CanPickupItem(this ACDItem item)
        {
            if (item.InventorySlot != InventorySlot.None)
            {
                return(false);
            }

            if (item.Stats.BoundToACD != -1)
            {
                return(item.Stats.BoundToACD == ZetaDia.Me?.ACDId);
            }

            if (item.ItemQualityLevel >= ItemQuality.Legendary || item.IsCraftingReagent)
            {
                if (item.Stats.BoundToACD == -1)
                {
                    return(true);
                }

                return(item.GetIsTradeable());
            }

            if (item.GetIsEquipment() && item.ItemQualityLevel <= ItemQuality.Rare6)
            {
                return(true);
            }

            return(false);
        }
Esempio n. 2
0
 public static bool GetIsSalvageable(this ACDItem item)
 {
     return(item.GetIsEquipment() &&
            !item.IsVendorBought &&
            item.Stats.RequiredLevel > 1 ||
            item.IsPotion);
 }
Esempio n. 3
0
        /// <summary>
        /// Get the stash page where items should ideally be placed, ignoring if it can actually be placed there.
        /// </summary>
        public static int GetIdealStashPage(ACDItem item)
        {
            if (item.GetIsEquipment() &&
                Core.Settings.Items.UseTypeStashingEquipment &&
                ItemTypeMap.ContainsKey(item.GetRawItemType()))
            {
                return(ItemTypeMap[item.GetRawItemType()]);
            }

            if (Core.Settings.Items.UseTypeStashingOther &&
                ItemTypeMap.ContainsKey(item.GetRawItemType()))
            {
                return(ItemTypeMap[item.GetRawItemType()]);
            }

            if (item.ItemBaseType >= ItemBaseType.Misc)
            {
                return(TotalStashPages - 1);
            }

            return(-1);
        }
Esempio n. 4
0
        public void RecordItemStats(ItemStats stats, ACDItem item)
        {
            if (!IsRunning)
            {
                return;
            }

            stats.Total++;

            if (item.Stats.IsAncient)
            {
                stats.Ancients++;
            }

            if (GameData.PetTable.Contains(item.GameBalanceId) || GameData.PetSnoIds.Contains(item.ActorSnoId))
            {
                stats.Pets++;
            }

            if (GameData.TransmogTable.Contains(item.GameBalanceId))
            {
                stats.Transmog++;
            }

            if (Core.Settings.Items.SpecialItems.HasFlag(SpecialItemTypes.Wings) && GameData.WingsTable.Contains(item.GameBalanceId) || GameData.CosmeticSnoIds.Contains(item.ActorSnoId))
            {
                stats.Wings++;
            }

            if (item.GetTrinityItemType() == TrinityItemType.HealthPotion)
            {
                stats.Potions++;
            }

            if (item.GetTrinityItemType() == TrinityItemType.UberReagent)
            {
                stats.Ubers++;
            }

            if (item.GetTrinityItemType() == TrinityItemType.ConsumableAddSockets)
            {
                stats.Gifts++;
            }

            if (item.IsCraftingReagent)
            {
                stats.Crafting++;
                stats.CraftingStackQuantity += item.ItemStackQuantity;
            }

            if (item.GetIsEquipment())
            {
                stats.Equipment++;

                switch (item.GetTrinityItemQuality())
                {
                case TrinityItemQuality.Set:
                    stats.Sets++;
                    break;

                case TrinityItemQuality.Legendary:
                    stats.Legendaries++;
                    break;

                case TrinityItemQuality.Rare:
                    stats.Rares++;
                    break;

                case TrinityItemQuality.Magic:
                    stats.Magics++;
                    break;

                case TrinityItemQuality.Inferior:
                case TrinityItemQuality.Common:
                    stats.Normals++;
                    break;
                }
            }
        }