Ejemplo n.º 1
0
        public Item[] FindItems(IItemValidator check)
        {
            if (check == null)
            {
                throw new ArgumentNullException("check");
            }
            ArrayList dataStore = Engine.GetDataStore();
            Queue     queue     = m_FindItems_Queue;

            if (queue == null)
            {
                queue = m_FindItems_Queue = new Queue();
            }
            else if (queue.Count > 0)
            {
                queue.Clear();
            }
            if (check.IsValid(this))
            {
                dataStore.Add(this);
            }
            if (this.m_Items.Count > 0)
            {
                queue.Enqueue(this);
                while (queue.Count > 0)
                {
                    Item      item  = (Item)queue.Dequeue();
                    ArrayList items = item.m_Items;
                    int       count = items.Count;
                    for (int i = 0; i < count; i++)
                    {
                        Item item2 = (Item)items[i];
                        if (check.IsValid(item2))
                        {
                            dataStore.Add(item2);
                        }
                        if (item2.m_Items.Count > 0)
                        {
                            queue.Enqueue(item2);
                        }
                    }
                }
            }
            Item[] itemArray = (Item[])dataStore.ToArray(typeof(Item));
            Engine.ReleaseDataStore(dataStore);
            return(itemArray);
        }
Ejemplo n.º 2
0
        public Item FindItem(IItemValidator check)
        {
            if (check == null)
            {
                throw new ArgumentNullException("check");
            }
            Queue queue = m_FindItem_Queue;

            if (queue == null)
            {
                queue = m_FindItem_Queue = new Queue();
            }
            else if (queue.Count > 0)
            {
                queue.Clear();
            }
            if (check.IsValid(this))
            {
                return(this);
            }
            if (this.m_Items.Count > 0)
            {
                queue.Enqueue(this);
                while (queue.Count > 0)
                {
                    Item      item  = (Item)queue.Dequeue();
                    ArrayList items = item.m_Items;
                    int       count = items.Count;
                    for (int i = 0; i < count; i++)
                    {
                        Item item2 = (Item)items[i];
                        if (check.IsValid(item2))
                        {
                            return(item2);
                        }
                        if (item2.m_Items.Count > 0)
                        {
                            queue.Enqueue(item2);
                        }
                    }
                }
            }
            return(null);
        }
Ejemplo n.º 3
0
        public Item Create(string itemName, int quality, int sellIn) =>
        _validator.IsValid(itemName, quality, sellIn)
                ? new Item
        {
            Name    = itemName,
            Quality = quality,
            SellIn  = sellIn
        }

                : new NullItem();
Ejemplo n.º 4
0
        public static List <T> SortDictionary <T>(Dictionary <string, T> dict, IItemValidator validator = null)
        {
            List <T> ret = new List <T>();

            foreach (KeyValuePair <string, T> valuePair in dict)
            {
                if (validator == null || validator.IsValid(valuePair.Value))
                {
                    ret.Add(valuePair.Value);
                }
            }

            return(ret);
        }
Ejemplo n.º 5
0
        public Item FindEquip(IItemValidator check)
        {
            ArrayList equip = this.m_Equip;
            int       count = equip.Count;

            for (int i = 0; i < count; i++)
            {
                EquipEntry entry = (EquipEntry)equip[i];
                if (check.IsValid(entry.m_Item))
                {
                    return(entry.m_Item);
                }
            }
            return(null);
        }
Ejemplo n.º 6
0
 public Item FindEquip(IItemValidator check)
 {
     ArrayList equip = this.m_Equip;
     int count = equip.Count;
     for (int i = 0; i < count; i++)
     {
         EquipEntry entry = (EquipEntry) equip[i];
         if (check.IsValid(entry.m_Item))
         {
             return entry.m_Item;
         }
     }
     return null;
 }
Ejemplo n.º 7
0
        public void IncreaseInQualityItemValidatorSuccessPath()
        {
            var result = _validators.IsValid("cheese", 10, 10);

            Assert.True(result);
        }
 public bool IsValid(string itemName, int quality, int sellIn)
 => _regularItemValidator.IsValid(itemName, quality, sellIn) &&
 _increaseInQualityItemNames.Contains(itemName);
Ejemplo n.º 9
0
 public Item[] FindItems(IItemValidator check)
 {
     if (check == null)
     {
         throw new ArgumentNullException("check");
     }
     ArrayList dataStore = Engine.GetDataStore();
     Queue queue = m_FindItems_Queue;
     if (queue == null)
     {
         queue = m_FindItems_Queue = new Queue();
     }
     else if (queue.Count > 0)
     {
         queue.Clear();
     }
     if (check.IsValid(this))
     {
         dataStore.Add(this);
     }
     if (this.m_Items.Count > 0)
     {
         queue.Enqueue(this);
         while (queue.Count > 0)
         {
             Item item = (Item) queue.Dequeue();
             ArrayList items = item.m_Items;
             int count = items.Count;
             for (int i = 0; i < count; i++)
             {
                 Item item2 = (Item) items[i];
                 if (check.IsValid(item2))
                 {
                     dataStore.Add(item2);
                 }
                 if (item2.m_Items.Count > 0)
                 {
                     queue.Enqueue(item2);
                 }
             }
         }
     }
     Item[] itemArray = (Item[]) dataStore.ToArray(typeof(Item));
     Engine.ReleaseDataStore(dataStore);
     return itemArray;
 }
Ejemplo n.º 10
0
 public Item FindItem(IItemValidator check)
 {
     if (check == null)
     {
         throw new ArgumentNullException("check");
     }
     Queue queue = m_FindItem_Queue;
     if (queue == null)
     {
         queue = m_FindItem_Queue = new Queue();
     }
     else if (queue.Count > 0)
     {
         queue.Clear();
     }
     if (check.IsValid(this))
     {
         return this;
     }
     if (this.m_Items.Count > 0)
     {
         queue.Enqueue(this);
         while (queue.Count > 0)
         {
             Item item = (Item) queue.Dequeue();
             ArrayList items = item.m_Items;
             int count = items.Count;
             for (int i = 0; i < count; i++)
             {
                 Item item2 = (Item) items[i];
                 if (check.IsValid(item2))
                 {
                     return item2;
                 }
                 if (item2.m_Items.Count > 0)
                 {
                     queue.Enqueue(item2);
                 }
             }
         }
     }
     return null;
 }
Ejemplo n.º 11
0
 public static Item[] FindItems(IItemValidator check)
 {
     ArrayList dataStore = Engine.GetDataStore();
     IEnumerator enumerator = m_Items.Values.GetEnumerator();
     while (enumerator.MoveNext())
     {
         Item current = (Item) enumerator.Current;
         if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
         {
             dataStore.Add(current);
         }
     }
     Item[] itemArray = (Item[]) dataStore.ToArray(typeof(Item));
     Engine.ReleaseDataStore(dataStore);
     return itemArray;
 }
Ejemplo n.º 12
0
 public static Item FindItem(IItemValidator check)
 {
     IEnumerator enumerator = m_Items.Values.GetEnumerator();
     while (enumerator.MoveNext())
     {
         Item current = (Item) enumerator.Current;
         if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
         {
             return current;
         }
     }
     return null;
 }
Ejemplo n.º 13
0
        public static Item[] FindItems(IItemValidator check)
        {
            ArrayList   dataStore  = Engine.GetDataStore();
            IEnumerator enumerator = m_Items.Values.GetEnumerator();

            while (enumerator.MoveNext())
            {
                Item current = (Item)enumerator.Current;
                if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
                {
                    dataStore.Add(current);
                }
            }
            Item[] itemArray = (Item[])dataStore.ToArray(typeof(Item));
            Engine.ReleaseDataStore(dataStore);
            return(itemArray);
        }
Ejemplo n.º 14
0
        public static Item FindItem(IItemValidator check)
        {
            IEnumerator enumerator = m_Items.Values.GetEnumerator();

            while (enumerator.MoveNext())
            {
                Item current = (Item)enumerator.Current;
                if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
                {
                    return(current);
                }
            }
            return(null);
        }