示例#1
0
        public static IDictionary <string, Skill> BuildDictionary(SkillsConfig config)
        {
            IDictionary <string, Skill> skills = new Dictionary <string, Skill>();

            foreach (IList <object> row in config.Query.Data)
            {
                try
                {
                    IList <string> skill = row.Select(r => r.ToString()).ToList();
                    string         name  = ParseHelper.SafeStringParse(skill, config.Name, "Name", false);
                    if (string.IsNullOrEmpty(name))
                    {
                        continue;
                    }

                    if (!skills.TryAdd(name, new Skill(config, skill)))
                    {
                        throw new NonUniqueObjectNameException("skill");
                    }
                }
                catch (Exception ex)
                {
                    throw new SkillProcessingException((row.ElementAtOrDefault(config.Name) ?? string.Empty).ToString(), ex);
                }
            }

            return(skills);
        }
示例#2
0
 public static void Copy(this SkillsConfig _cg1, SkillsConfig _cg2)
 {
     _cg1.id           = _cg2.id;
     _cg1.name         = _cg2.name;
     _cg1.description  = _cg2.description;
     _cg1.minLevel     = _cg2.minLevel;
     _cg1.type         = _cg2.type;
     _cg1.bonus        = _cg2.bonus;
     _cg1.coefLvlBonus = _cg2.coefLvlBonus;
 }
示例#3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public Skill(SkillsConfig config, IList <string> data)
        {
            this.Name       = ParseHelper.SafeStringParse(data, config.Name, "Name", true);
            this.SpriteURL  = ParseHelper.SafeURLParse(data, config.SpriteURL, "Sprite URL", false);
            this.TextFields = ParseHelper.StringListParse(data, config.TextFields);

            //Check if skill effects are configured
            if (config.Effect != null)
            {
                this.Effect = BuildSkillEffect(ParseHelper.SafeStringParse(data, config.Effect.Type, "Skill Effect Type", false),
                                               ParseHelper.StringListParse(data, config.Effect.Parameters, true));
            }
            else
            {
                this.Effect = null;
            }
        }
示例#4
0
 private void SetConfig(string _id)
 {
     config = Global.Instance.CONFIGS.skills.GetConfig(_id);
 }
示例#5
0
 private void SetConfig()
 {
     config = Global.Instance.CONFIGS.skills.GetConfig(id);
 }
示例#6
0
 public SkillsConfig(SkillsConfig _cg2)
 {
     this.Copy(_cg2);
 }