Exemplo n.º 1
0
        public void RemoveMeleeOrbs(GameSave saveFile, object inventory)
        {
            var reflected = inventory.AsDynamic();

            var orbs         = ((IEnumerable <InventoryItem>)reflected._items).Cast <InventoryOrb>();
            var orbsToRemove = orbs
                               .Where(o => !saveFile.HasMeleeOrb(o.OrbType))
                               .Select(o => o.Name)
                               .ToList();

            var entries      = (IList)reflected.Entries;
            var entryMapping = (IList <int>)reflected.KeyToItemLookup;

            for (var i = entries.Count - 1; i >= 0; i--)
            {
                var entry = entries[i];
                if (orbsToRemove.Contains(entry.AsDynamic().Text))
                {
                    entries.RemoveAt(i);
                    entryMapping.RemoveAt(i);
                }
            }
        }