fBaseXtensions.XML.OpenRiftPortalTag.GetKeystoneItem C# (CSharp) Method

GetKeystoneItem() private method

private GetKeystoneItem ( ) : ACDItem
return ACDItem
        private ACDItem GetKeystoneItem()
        {
            IEnumerable<ACDItem> itemEnumerableSource = ZetaDia.Me.Inventory.Backpack;
            List<CacheACDItem> items = new List<CacheACDItem>();
            foreach (var i in itemEnumerableSource)
            {
                if (i.BaseAddress != IntPtr.Zero)
                {
                    CacheACDItem cacheitem = new CacheACDItem(i);
                    items.Add(cacheitem);
                }
            }

            if (KeyType == KeystoneType.Tiered)
            {
                if (!KeyStoneHighest)
                    items = items.OrderBy(i => i.KeystoneRank).ToList();
                else
                    items = items.OrderByDescending(i => i.KeystoneRank).ToList();
            }

            foreach (var tempitem in items)
            {
                if (tempitem.ItemType == PluginItemTypes.KeyStone)
                {
                    int tieredLevel = tempitem.KeystoneRank;
                    if (KeyType == KeystoneType.Fragment)
                    {
                        if (tieredLevel == -1)
                            return tempitem.ACDItem;

                        continue;
                    }

                    if (KeyType == KeystoneType.Trial)
                    {
                        if (tieredLevel == 0)
                            return tempitem.ACDItem;

                        continue;
                    }

                    if (KeyType == KeystoneType.Tiered)
                    {
                        if (tieredLevel > 0 && tieredLevel <= FunkyBaseExtension.Settings.AdventureMode.MaximumTieredRiftKeyAllowed)
                            return tempitem.ACDItem;
                    }
                }
            }

            return null;
        }