Exemplo n.º 1
0
        public void Deserialize_AliasRecipe_FullDetails(string itemName, string displayName, string tooltip, string ingredient, string linkedItems)
        {
            string serialized = "AliasRecipe:" + "\r\n" +
                                "(" + "\r\n" +
                                $"    ItemID:{itemName};" + "\r\n" +
                                $"    DisplayName:\"{displayName}\";" + "\r\n" +
                                $"    Tooltip:\"{tooltip}\";" + "\r\n" +
                                "    AmountCrafted:0;" + "\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" +
                                "    Path:Fabricator/Resources/BasicMaterials;" + "\r\n" +
                                ");" + "\r\n";

            var recipe = new AliasRecipe();

            recipe.FromString(serialized);

            Assert.AreEqual(itemName, recipe.ItemID);
            Assert.AreEqual(0, recipe.AmountCrafted);

            Assert.AreEqual(2, recipe.IngredientsCount);


            EmIngredient item0 = recipe.GetIngredient(0);

            Assert.AreEqual(TechType.Titanium.ToString(), item0.ItemID);
            Assert.AreEqual(2, item0.amount);

            EmIngredient item1 = recipe.GetIngredient(1);

            Assert.AreEqual(TechType.Copper.ToString(), item1.ItemID);
            Assert.AreEqual(3, item1.amount);

            Assert.AreEqual(2, recipe.LinkedItemsCount);

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

            Assert.AreEqual("Custom display name", recipe.DisplayName);
            Assert.AreEqual("Custom tooltip", recipe.Tooltip);

            Assert.AreEqual("Fabricator/Resources/BasicMaterials", recipe.Path);
        }
Exemplo n.º 2
0
        public void Deserialize_AliasRecipe_NoAmounts_DefaultTo1()
        {
            const string serialized = "AliasRecipe:" + "\r\n" +
                                      "(" + "\r\n" +
                                      "    ItemID:AliasAerogel4;" + "\r\n" +
                                      "    DisplayName:\"Craft Aerogel\";" + "\r\n" +
                                      "    Tooltip:\"Custom aerogel tooltip\";" + "\r\n" +
                                      "    Ingredients:" + "\r\n" +
                                      "        (" + "\r\n" +
                                      "            ItemID:Titanium;" + "\r\n" +
                                      "        )," + "\r\n" +
                                      "        (" + "\r\n" +
                                      "            ItemID:Copper;" + "\r\n" +
                                      "        );" + "\r\n" +
                                      "    LinkedItemIDs:Silver,Gold;" + "\r\n" +
                                      "    ForceUnlockAtStart: YES;" + "\r\n" +
                                      "    Path:Fabricator/Resources/BasicMaterials;" + "\r\n" +
                                      ");" + "\r\n";

            var recipe = new AliasRecipe();

            recipe.FromString(serialized);

            Assert.AreEqual("AliasAerogel4", recipe.ItemID);
            Assert.AreEqual(false, recipe.AmountCrafted.HasValue);

            Assert.AreEqual(2, recipe.IngredientsCount);

            var item0 = recipe.GetIngredient(0);

            Assert.AreEqual(TechType.Titanium.ToString(), item0.ItemID);
            Assert.AreEqual(1, item0.Required);

            var item1 = recipe.GetIngredient(1);

            Assert.AreEqual(TechType.Copper.ToString(), item1.ItemID);
            Assert.AreEqual(1, item1.Required);

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

            Assert.AreEqual("Craft Aerogel", recipe.DisplayName);
            Assert.AreEqual("Custom aerogel tooltip", recipe.Tooltip);

            Assert.AreEqual(true, recipe.ForceUnlockAtStart);

            Assert.AreEqual("Fabricator/Resources/BasicMaterials", recipe.Path);
        }