Exemplo n.º 1
0
 private void ApplyValues()
 {
     foreach (SurvivorDef survivorDef in ((SurvivorDef[])SurvivorCatalog.allSurvivorDefs))
     {
         try
         {
             CustomSurvivor cSurv = CustomSurvivors.First(s => s.SurvivorIndex == survivorDef.survivorIndex);
             cSurv.OverrideSurvivorBase(survivorDef);
         }
         catch (InvalidOperationException)
         {
             Logger.LogError("No custom survivor for " + survivorDef.survivorIndex);
         }
     }
 }
        private IEnumerator AfterLoad(On.RoR2.RoR2Application.orig_OnLoad orig, RoR2Application self)
        {
            yield return(orig(self));

            ApplyGeneralSettings();

            foreach (var survivorDef in ContentManager.survivorDefs)
            {
                var customSurvivor = new CustomSurvivor(survivorDef, Config, Logger);
                if (customSurvivor.Enabled.Value)
                {
                    customSurvivor.OverrideSurvivorBase();
                }
                _survivors.Add(customSurvivor);
            }
        }
        public void Awake()
        {
            InitConfig();
            ApplyFixes();

            CustomSurvivors = new List <CustomSurvivor>
            {
                new CustomEngineer(),
                new CustomCommando(),
                new CustomArtificer(),
                new CustomMulT(),
                new CustomHuntress(),
                new CustomMercenary(),
                new CustomBandit()
            };

            StringBuilder markdown = new StringBuilder("# Config Values\n");

            markdown.AppendLine("## General");
            markdown.AppendLine(CreateReadme.Definition.ToMarkdownString());

            markdown.AppendLine("## Fixes");
            markdown.AppendLine(FixSkillIconCooldownScaling.Definition.ToMarkdownString());

            foreach (var customSurvivor in CustomSurvivors)
            {
                customSurvivor.InitVariables(Config, Logger);

                customSurvivor.Patch();

                if (CreateReadme.Value)
                {
                    markdown.AppendLine("# " + customSurvivor.CharacterName);
                    List <string> markdownLines = new List <string>();

                    foreach (IMarkdownString markdownDef in customSurvivor.MarkdownConfigDefinitions)
                    {
                        markdownLines.Add(markdownDef.ToMarkdownString());
                    }

                    foreach (ConfigDefinition markdownDef in customSurvivor.NonMarkDownConfigDefinitions)
                    {
                        markdownLines.Add(markdownDef.ToMarkdownString());
                    }

                    markdownLines.Sort();

                    foreach (var markdownLine in markdownLines)
                    {
                        markdown.AppendLine(markdownLine);
                    }
                }
            }

            SurvivorAPI.SurvivorCatalogReady += (sender, args) =>
            {
                foreach (SurvivorDef survivorDef in SurvivorAPI.SurvivorDefinitions)
                {
                    try
                    {
                        CustomSurvivor cSurv = CustomSurvivors.First(s => s.SurvivorIndex == survivorDef.survivorIndex);
                        cSurv.OverrideSurvivorBase(survivorDef);
                    }
                    catch (InvalidOperationException)
                    {
                        Logger.LogError("No custom survivor for " + survivorDef.survivorIndex);
                    }
                }

                // SurvivorAPI.ReconstructSurvivors();
            };

            if (CreateReadme.Value)
            {
                System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"\config_values.md",
                                            markdown.ToString());
            }
        }