Esempio n. 1
0
        private bool ShouldIncludeItem(ACDItem item)
        {
            if (item == null)
            {
#if LOG_TARGETS_CACHE
                s_logger.Verbose($"[{nameof(ShouldIncludeItem)}] IGNORE: NullItem");
#endif
                return(false);
            }

            if (item.GetIsPickupNoClick() && TrinityCombat.Loot.IsBackpackFull)
            {
#if LOG_TARGETS_CACHE
                s_logger.Verbose($"[{nameof(ShouldIncludeItem)}] IGNORE: Backpack is Full - Item: \"{item?.Name}\", InternalName: \"{item?.InternalName}\", Sno: {item?.ActorSnoId}, GBId: 0x{item?.GameBalanceId:x8}, RawItemType: {item.GetRawItemType()}");
#endif
                return(false);
            }

            if (item.GetIsMyDroppedItem())
            {
#if LOG_TARGETS_CACHE
                s_logger.Verbose($"[{nameof(ShouldIncludeItem)}] IGNORE: Dropped Item - Item: \"{item?.Name}\", InternalName: \"{item?.InternalName}\", Sno: {item?.ActorSnoId}, GBId: 0x{item?.GameBalanceId:x8}, RawItemType: {item.GetRawItemType()}");
#endif
                return(false);
            }

            if (item.GetIsUntargetable())
            {
#if LOG_TARGETS_CACHE
                s_logger.Verbose($"[{nameof(ShouldIncludeItem)}] IGNORE: Untargetable - Item: \"{item?.Name}\", InternalName: \"{item?.InternalName}\", Sno: {item?.ActorSnoId}, GBId: 0x{item?.GameBalanceId:x8}, RawItemType: {item.GetRawItemType()}");
#endif
                return(false);
            }

            if (!item.GetIsCosmeticItem() &&
                item.ItemQualityLevel <= ItemQuality.Rare4 &&
                item.Distance > CharacterSettings.Instance.LootRadius)
            {
#if LOG_TARGETS_CACHE
                s_logger.Verbose($"[{nameof(ShouldIncludeItem)}] IGNORE: OutOfRange {CharacterSettings.Instance.LootRadius} - Item: \"{item?.Name}\", InternalName: \"{item?.InternalName}\", Sno: {item?.ActorSnoId}, GBId: 0x{item?.GameBalanceId:x8}, RawItemType: {item.GetRawItemType()}");
#endif
                return(false);
            }

            if (!TrinityCombat.Loot.ShouldPickup(item))
            {
#if LOG_TARGETS_CACHE
                s_logger.Verbose($"[{nameof(ShouldIncludeItem)}] IGNORE: LootProvider.ShouldPickup - Item: \"{item?.Name}\", InternalName: \"{item?.InternalName}\", Sno: {item?.ActorSnoId}, GBId: 0x{item?.GameBalanceId:x8}, RawItemType: {item.GetRawItemType()}");
#endif
                return(false);
            }

            return(true);
        }