Ejemplo n.º 1
0
        private static void AssertInputAndOutputItemTypesMatch <T>(List <T> inputItemList, List <T> outputItemList) where T : IItemEntry
        {
            int numberOfAddedEntriesFound = 0;

            for (int i = 0; i < inputItemList.Count; i++)
            {
                IItemEntry inputEntry = inputItemList[i];
                if (inputEntry.IsEntryValid())
                {
                    IItemEntry outputEntry = outputItemList[i];
                    if (outputEntry is CraftItemEntry && Constants.ItemNameNone.Equals(outputEntry.GetItemName()))
                    {
                        int replacementItemIndex = inputItemList.Count + numberOfAddedEntriesFound;
                        outputEntry = outputItemList[replacementItemIndex];
                        numberOfAddedEntriesFound++;
                        Assert.AreEqual(inputEntry.GetItemType(), outputEntry.GetItemType());
                    }
                    else if (outputEntry is DropItemEntry outputDropEntry && inputEntry is DropItemEntry inputDropEntry)
                    {
                        Assert.AreEqual(inputDropEntry.GetItemReferenceType(), outputDropEntry.GetItemReferenceType());
                    }
                    else
                    {
                        Assert.AreEqual(inputEntry.GetItemType(), outputEntry.GetItemType());
                    }
                }
            }
        private bool IsEntryRandomizableForOutput(IItemEntry entry)
        {
            string itemType = entry.GetItemType();

            return(entry.IsEntryValid() &&
                   !Constants.ItemTypeCraftingMaterials.Equals(itemType) &&
                   !Constants.ItemTypeKey.Equals(itemType) &&
                   !Constants.ItemTypeUpgrade.Equals(itemType) &&
                   !Constants.ItemTypeCoin.Equals(itemType) &&
                   !Constants.ItemTypeRecipe.Equals(itemType));
        }