Exemplo n.º 1
0
        protected override void Action()
        {
            var list = new List <string>();

            var min = new string[] { "ProjRadiusMinDamage", "ProjMinDamage", "MinDamage" };
            var max = new string[] { "ProjRadiusMaxDamage", "ProjMaxDamage", "MaxDamage" };

            int number;

            foreach (var obj in GetDerived.GetDerivedFrom(FileManager.GetObjectsFromAllFilesInPath(Save.Instance.GamePath, true).ToList(), "BaseSkill"))
            {
                number = -1;

                for (var i = 0; i < min.Length; i++)
                {
                    if (obj.Dict.Any(x => x.Key.Equals(min[i])))
                    {
                        number = i;
                    }
                }

                if (number > -1)
                {
                    float AverageDmg = (float.Parse(obj.Dict[min[number]][0]) + float.Parse(obj.Dict[max[number]][0])) / 2F;

                    if (!obj.Dict["Base"][0].Contains("PerLevel"))   // if its a skill (should be)
                    {
                        float DmgMult = ConvertSpellDamageIntoWeaponDmgMultipliers(AverageDmg);

                        Dictionary <string, List <string> > Dict = new Dictionary <string, List <string> >
                        {
                            { min[number], new List <string>()
                              {
                                  "0"
                              } },
                            { max[number], new List <string>()
                              {
                                  "0"
                              } },
                            { "DamageMultAll", new List <string>()
                              {
                                  DmgMult.ToString()
                              } },
                            { "ProjectileDamage", new List <string>()
                              {
                                  "1"
                              } },
                        };

                        list.Add(obj.GetTextRepresentation(Dict, Save.Instance.ModName, Modifiers.overrides));
                    }
                    else if (obj.Dict["Base"][0].Contains("PerLevel"))   // if per level
                    {
                        float DmgMult = GetPerLevelMult(AverageDmg);

                        Dictionary <string, List <string> > Dict = new Dictionary <string, List <string> >
                        {
                            { min[number], new List <string>()
                              {
                                  "0"
                              } },
                            { max[number], new List <string>()
                              {
                                  "0"
                              } },
                            { "DamageMultAll", new List <string>()
                              {
                                  DmgMult.ToString()
                              } },
                        };

                        list.Add(obj.GetTextRepresentation(Dict, Save.Instance.ModName, Modifiers.overrides));
                    }
                }
            }

            FileManager.SaveOutputToFile(string.Join("\n", list.ToArray()));
        }