public void Deserialize_ModifiedRecipe_FullDetails(string itemName, string ingredient, string linkedItems)
        {
            string serialized = "ModifiedRecipe:" + "\r\n" +
                                "(" + "\r\n" +
                                $"    ItemID:{itemName};" + "\r\n" +
                                "    AmountCrafted:4;" + "\r\n" +
                                "    Ingredients:" + "\r\n" +
                                "        (" + "\r\n" +
                                $"            ItemID:{ingredient};" + "\r\n" +
                                "            Required:2;" + "\r\n" +
                                "        )," + "\r\n" +
                                "        (" + "\r\n" +
                                "            ItemID:Copper;" + "\r\n" +
                                "            Required:3;" + "\r\n" +
                                "        );" + "\r\n" +
                                $"    LinkedItemIDs:{linkedItems};" + "\r\n" +
                                ");" + "\r\n";

            var recipe = new ModifiedRecipe();

            recipe.FromString(serialized);

            Assert.AreEqual(TechType.Aerogel, recipe.ItemID);
            Assert.AreEqual(4, recipe.AmountCrafted);

            Assert.AreEqual(2, recipe.IngredientsCount);
            Assert.AreEqual(TechType.Titanium, recipe.GetIngredient(0).ItemID);
            Assert.AreEqual(2, recipe.GetIngredient(0).Required);
            Assert.AreEqual(TechType.Copper, recipe.GetIngredient(1).ItemID);
            Assert.AreEqual(3, recipe.GetIngredient(1).Required);

            Assert.AreEqual(2, recipe.LinkedItemsCount);
            Assert.AreEqual(TechType.Silver, recipe.GetLinkedItem(0));
            Assert.AreEqual(TechType.Gold, recipe.GetLinkedItem(1));
        }
Ejemplo n.º 2
0
        public void Deserialize_ModifiedRecipe_FullDetails(string itemName, string ingredient, string linkedItems)
        {
            string serialized = "ModifiedRecipe:" + "\r\n" +
                                "(" + "\r\n" +
                                $"    ItemID:{itemName};" + "\r\n" +
                                "    AmountCrafted:4;" + "\r\n" +
                                "    Ingredients:" + "\r\n" +
                                "        (" + "\r\n" +
                                $"            ItemID:{ingredient};" + "\r\n" +
                                "            Required:2;" + "\r\n" +
                                "        )," + "\r\n" +
                                "        (" + "\r\n" +
                                "            ItemID:Copper;" + "\r\n" +
                                "            Required:3;" + "\r\n" +
                                "        );" + "\r\n" +
                                $"    LinkedItemIDs:{linkedItems};" + "\r\n" +
                                ");" + "\r\n";

            var recipe = new ModifiedRecipe();

            recipe.FromString(serialized);

            Assert.AreEqual(TechType.Aerogel.ToString().ToLower(), recipe.ItemID.ToLower());
            Assert.AreEqual(4, recipe.AmountCrafted);

            Assert.AreEqual(2, recipe.Ingredients.Count);
            Assert.AreEqual(TechType.Titanium.ToString().ToLower(), recipe.Ingredients[0].ItemID.ToLower());
            Assert.AreEqual(2, recipe.Ingredients[0].Required);
            Assert.AreEqual(TechType.Copper.ToString().ToLower(), recipe.Ingredients[1].ItemID.ToLower());
            Assert.AreEqual(3, recipe.Ingredients[1].Required);

            Assert.AreEqual(2, recipe.LinkedItemIDs.Count);
            Assert.AreEqual(TechType.Silver.ToString().ToLower(), recipe.LinkedItemIDs[0].ToLower());
            Assert.AreEqual(TechType.Gold.ToString().ToLower(), recipe.LinkedItemIDs[1].ToLower());
        }
Ejemplo n.º 3
0
        public void CreateFromClases_ThenTest_SampleModifiedRecipes()
        {
            var curedReginaldRecipe = new ModifiedRecipe()
            {
                ItemID        = TechType.CuredReginald.ToString(),
                AmountCrafted = 1,
                Ingredients   =
                {
                    new EmIngredient(TechType.Reginald.ToString(), 1),
                    new EmIngredient(TechType.Salt.ToString(), 1)
                },
                Unlocks =
                {
                    TechType.NutrientBlock.ToString()
                }
            };

            var origRecipeList = new ModifiedRecipeList
            {
                curedReginaldRecipe
            };

            string serialized = origRecipeList.PrettyPrint();

            string samples2File = SampleFileDirectory + "ModifiedRecipes_Samples2.txt";

            File.WriteAllText(samples2File, serialized);

            var readingRecipeList = new ModifiedRecipeList();

            string reserialized = File.ReadAllText(samples2File);

            bool success = readingRecipeList.FromString(reserialized);

            Assert.IsTrue(success);

            Assert.AreEqual(origRecipeList.Count, readingRecipeList.Count);

            // nutrientBlockRecipe
            ModifiedRecipe curedReginald = origRecipeList[0];

            Assert.AreEqual(curedReginald.ItemID, curedReginaldRecipe.ItemID);
            Assert.AreEqual(curedReginald.AmountCrafted, curedReginaldRecipe.AmountCrafted);
            Assert.AreEqual(curedReginald.Ingredients.Count, curedReginaldRecipe.Ingredients.Count);
            Assert.AreEqual(curedReginald.Ingredients[0].ItemID, curedReginaldRecipe.Ingredients[0].ItemID);
            Assert.AreEqual(curedReginald.Ingredients[1].ItemID, curedReginaldRecipe.Ingredients[1].ItemID);
            Assert.AreEqual(curedReginald.Ingredients[0].Required, curedReginaldRecipe.Ingredients[0].Required);
            Assert.AreEqual(curedReginald.Ingredients[1].Required, curedReginaldRecipe.Ingredients[1].Required);
            Assert.AreEqual(curedReginald.ForceUnlockAtStart, curedReginaldRecipe.ForceUnlockAtStart);
            Assert.AreEqual(curedReginald.Unlocks.Count, curedReginaldRecipe.Unlocks.Count);
            Assert.AreEqual(curedReginald.Unlocks[0], curedReginaldRecipe.Unlocks[0]);
        }
        public void CreateFromClases_ThenTest_SampleModifiedRecipes()
        {
            var curedReginaldRecipe = new ModifiedRecipe()
            {
                ItemID        = TechType.CuredReginald,
                AmountCrafted = 1,
            };

            curedReginaldRecipe.AddUnlock(TechType.NutrientBlock);
            curedReginaldRecipe.AddIngredient(TechType.Reginald, 1);
            curedReginaldRecipe.AddIngredient(TechType.Salt, 1);

            var origRecipeList = new ModifiedRecipeList
            {
                curedReginaldRecipe
            };

            string serialized = origRecipeList.PrettyPrint();

            string samples2File = SampleFileDirectory + "ModifiedRecipes_Samples2.txt";

            File.WriteAllText(samples2File, serialized);

            var readingRecipeList = new ModifiedRecipeList();

            string reserialized = File.ReadAllText(samples2File);

            bool success = readingRecipeList.FromString(reserialized);

            Assert.IsTrue(success);

            Assert.AreEqual(origRecipeList.Count, readingRecipeList.Count);

            // nutrientBlockRecipe
            ModifiedRecipe curedReginald = origRecipeList[0];

            Assert.AreEqual(curedReginald.ItemID, curedReginaldRecipe.ItemID);
            Assert.AreEqual(curedReginald.AmountCrafted, curedReginaldRecipe.AmountCrafted);
            Assert.AreEqual(curedReginald.IngredientsCount, curedReginaldRecipe.IngredientsCount);
            Assert.AreEqual(curedReginald.GetIngredient(0).ItemID, curedReginaldRecipe.GetIngredient(0).ItemID);
            Assert.AreEqual(curedReginald.GetIngredient(1).ItemID, curedReginaldRecipe.GetIngredient(1).ItemID);
            Assert.AreEqual(curedReginald.GetIngredient(0).Required, curedReginaldRecipe.GetIngredient(0).Required);
            Assert.AreEqual(curedReginald.GetIngredient(1).Required, curedReginaldRecipe.GetIngredient(1).Required);
            Assert.AreEqual(curedReginald.ForceUnlockAtStart, curedReginaldRecipe.ForceUnlockAtStart);
            Assert.AreEqual(curedReginald.UnlocksCount, curedReginaldRecipe.UnlocksCount);
            Assert.AreEqual(curedReginald.GetUnlock(0), curedReginaldRecipe.GetUnlock(0));
        }
        public void Deserialize_ModifiedRecipesList_Unlocks()
        {
            const string serialized = "ModifiedRecipes:" + "\r\n" +
                                      "(" + "\r\n" +
                                      "    ItemID:Aerogel;" + "\r\n" +
                                      "    AmountCrafted:1;" + "\r\n" +
                                      "    Ingredients:" + "\r\n" +
                                      "        (" + "\r\n" +
                                      "            ItemID:Titanium;" + "\r\n" +
                                      "            Required:2;" + "\r\n" +
                                      "        )," + "\r\n" +
                                      "        (" + "\r\n" +
                                      "            ItemID:Copper;" + "\r\n" +
                                      "            Required:3;" + "\r\n" +
                                      "        );" + "\r\n" +
                                      "    LinkedItemIDs:Silver,Gold;" + "\r\n" +
                                      "    ForceUnlockAtStart:NO;" + "\r\n" +
                                      "    Unlocks:ComputerChip,Cyclops;" + "\r\n" +
                                      ");" + "\r\n";


            var recipeList = new ModifiedRecipeList();

            recipeList.FromString(serialized);
            ModifiedRecipe recipe = recipeList[0];


            Assert.AreEqual(TechType.Aerogel, recipe.ItemID);
            Assert.AreEqual(1, recipe.AmountCrafted);

            Assert.AreEqual(2, recipe.IngredientsCount);
            Assert.AreEqual(TechType.Titanium, recipe.GetIngredient(0).ItemID);
            Assert.AreEqual(2, recipe.GetIngredient(0).Required);
            Assert.AreEqual(TechType.Copper, recipe.GetIngredient(1).ItemID);
            Assert.AreEqual(3, recipe.GetIngredient(1).Required);

            Assert.AreEqual(2, recipe.LinkedItemsCount);
            Assert.AreEqual(TechType.Silver, recipe.GetLinkedItem(0));
            Assert.AreEqual(TechType.Gold, recipe.GetLinkedItem(1));

            Assert.AreEqual(false, recipe.ForceUnlockAtStart);

            Assert.AreEqual(2, recipe.UnlocksCount);
            Assert.AreEqual(TechType.ComputerChip, recipe.GetUnlock(0));
            Assert.AreEqual(TechType.Cyclops, recipe.GetUnlock(1));
        }
Ejemplo n.º 6
0
        public void Sample_ModifiedRecipes_Ok()
        {
            var mRecipes = new ModifiedRecipeList();

            string sample = File.ReadAllText(SampleFileDirectory + "ModifiedRecipes_Samples.txt");

            bool result = mRecipes.FromString(sample);

            Assert.IsTrue(result);

            ModifiedRecipe reactorRodChange = mRecipes[2];

            Assert.AreEqual(TechType.ReactorRod.ToString(), reactorRodChange.ItemID);
            Assert.AreEqual(false, reactorRodChange.Ingredients.Count > 0);
            Assert.AreEqual(false, reactorRodChange.LinkedItemIDs.Count > 0);

            Assert.AreEqual(1, reactorRodChange.Unlocks.Count);
            Assert.AreEqual(TechType.DepletedReactorRod.ToString(), reactorRodChange.Unlocks[0]);
        }