Exemple #1
0
        private void MarkItemCraftable(RandomizableEntry itemToAdd)
        {
            RandomizableEntry?existingEntry = _availableItems[itemToAdd.ItemType].Find(entry => entry.Equals(itemToAdd));

            if (existingEntry != null)
            {
                existingEntry.IsCraftable = true;
            }
        }
Exemple #2
0
        public string TakeAllNonCraftableItem(string itemType, int availableItemIndex)
        {
            RandomizableEntry uniqueItem = _availableItems[itemType]
                                           .Where(item => !item.IsCraftable)
                                           .ElementAt(availableItemIndex);

            uniqueItem.ZeroOccurrence();
            _availableItems[itemType].Remove(uniqueItem);
            AddNewItem(uniqueItem, _unavailableItems);
            return(uniqueItem.ItemName);
        }
Exemple #3
0
        private void AddNewItem(RandomizableEntry itemToAdd, Dictionary <string, List <RandomizableEntry> > targetDict)
        {
            string itemType = itemToAdd.ItemType;

            if (!targetDict.ContainsKey(itemType))
            {
                targetDict.Add(itemType, new List <RandomizableEntry>());
            }

            targetDict[itemType].Add(itemToAdd);
        }
Exemple #4
0
        public string TakeNumberOfItem(string itemType, int availableItemIndex, int numberToTake)
        {
            RandomizableEntry item = _availableItems[itemType][availableItemIndex];

            item.DecrementOccurrence(numberToTake);
            if (item.OccurrenceCount <= 0)
            {
                _availableItems[itemType].RemoveAt(availableItemIndex);
                AddNewItem(item, _unavailableItems);
            }

            return(item.ItemName);
        }
Exemple #5
0
 private void AddItem(RandomizableEntry itemToAdd)
 {
     if (!IsItemAvailable(itemToAdd.ItemName, itemToAdd.ItemType))
     {
         AddNewItem(itemToAdd, _availableItems);
     }
     else if (!itemToAdd.IsCraftable)
     {
         IncrementItemOccurrence(itemToAdd);
     }
     else
     {
         MarkItemCraftable(itemToAdd);
     }
 }
Exemple #6
0
        public void AddCraftableItem(string itemName, string itemType)
        {
            var randomizableItem = new RandomizableEntry(itemName, itemType, true);

            AddItem(randomizableItem);
        }
Exemple #7
0
        private void IncrementItemOccurrence(RandomizableEntry itemToAdd)
        {
            RandomizableEntry?existingEntry = _availableItems[itemToAdd.ItemType].Find(entry => entry.Equals(itemToAdd));

            existingEntry?.IncrementOccurrence();
        }