private string GetRandomNonCraftableItemName(RandomizableStore availableItems, string itemType) { int availableItemCount = availableItems.AvailableNonCraftableItemCountByType(itemType); int randomIndex = _randomizerService.GetRandomItemIndex(availableItemCount); string randomItemName = availableItems.TakeAllNonCraftableItem(itemType, randomIndex); return(randomItemName); }
private Dictionary <string, ICollection <string> > FindAllItemsToReplace(RandomizableStore availableItems) { var itemsToReplaceDict = new Dictionary <string, ICollection <string> >(); foreach (string itemType in availableItems.AvailableItemTypes().Where(IsItemTypeRandomizableForCraftOutput)) { List <string> alreadyAssignedCraftItems = availableItems.GetAllUnavailableCraftableItemNames(itemType); int numberOfItemsLeftToAssign = availableItems.AvailableNonCraftableItemCountByType(itemType); itemsToReplaceDict[itemType] = _randomizerService.GetRandomEntriesFromList(alreadyAssignedCraftItems, numberOfItemsLeftToAssign); } return(itemsToReplaceDict); }