Ejemplo n.º 1
0
        public void OnAddResearchables()
        {
            StringBuilder sb = new StringBuilder();

            APILogger.LogToFile("-------------------Research Loaded----------------------");
            var i = 0;

            foreach (var s in LoadedAssembalies)
            {
                if (Activator.CreateInstance(s) is IPandaResearch pandaResearch &&
                    !string.IsNullOrEmpty(pandaResearch.name))
                {
                    sb.Append(pandaResearch.name + ", ");
                    pandaResearch.BeforeRegister();

                    for (var l = 1; l <= pandaResearch.NumberOfLevels; l++)
                    {
                        var research = new PandaResearchable(pandaResearch, l);
                        research.ResearchComplete += pandaResearch.ResearchComplete;

                        foreach (var item in research.Recipes)
                        {
                            if (item.UnlockType == Science.ERecipeUnlockType.Recipe)
                            {
                                if (ServerManager.RecipeStorage.TryGetRecipe(new Recipes.RecipeKey(item.Identifier), out var recipe))
                                {
                                    ServerManager.RecipeStorage.AddScienceRequirement(recipe);
                                }
                            }
                            else
                            {
                                if (ServerManager.RecipeStorage.TryGetRecipes(item.Identifier, out var recipe))
                                {
                                    for (int r = 0; r < recipe.Count; r++)
                                    {
                                        ServerManager.RecipeStorage.AddScienceRequirement(recipe[r]);
                                    }
                                }
                            }
                        }

                        research.Register();
                    }

                    pandaResearch.OnRegister();
                    i++;

                    if (i > 5)
                    {
                        i = 0;
                        sb.AppendLine();
                    }
                }
            }

            APILogger.LogToFile(sb.ToString());
            APILogger.LogToFile("---------------------------------------------------------");
        }
Ejemplo n.º 2
0
        public void OnAddResearchables()
        {
            StringBuilder sb = new StringBuilder();

            PandaLogger.Log(ChatColor.lime, "-------------------Research Loaded----------------------");
            var i = 0;

            foreach (var s in LoadedAssembalies)
            {
                if (Activator.CreateInstance(s) is IPandaResearch pandaResearch &&
                    !string.IsNullOrEmpty(pandaResearch.name))
                {
                    var research = new PandaResearchable(pandaResearch, 1);
                    research.ResearchComplete += pandaResearch.ResearchComplete;

                    if (pandaResearch.NumberOfLevels > 1)
                    {
                        for (var l = 2; l <= pandaResearch.NumberOfLevels; l++)
                        {
                            research = new PandaResearchable(pandaResearch, l);
                            research.ResearchComplete += pandaResearch.ResearchComplete;
                        }
                    }

                    sb.Append(pandaResearch.name + ", ");
                    pandaResearch.OnRegister();
                    i++;

                    if (i > 5)
                    {
                        sb.Append("</color>");
                        i = 0;
                        sb.AppendLine();
                        sb.Append("<color=lime>");
                    }
                }
            }

            PandaLogger.Log(ChatColor.lime, sb.ToString());
            PandaLogger.Log(ChatColor.lime, "---------------------------------------------------------");
        }