public Skills(Skill skill) { SkillName = skill.SkillName; SkillCode = skill.SkillCode; SkillDescription = skill.SkillDescription; SkillType = ArknightUtil.GetSkillType(skill.SkillType); SpType = ArknightUtil.GetSPType(skill.SpType); ChargeTime = skill.ChargeTime; MaxChargeTime = skill.MaxChargeTime; SpCost = skill.SpCost; MaxSpCost = skill.MaxSpCost; InitSp = skill.InitSp; MaxInitSp = skill.MaxInitSp; Increment = skill.Increment; Duration = skill.Duration; MaxDuration = skill.MaxDuration; RangeId = skill.RangeId; MasteryLevels = new List <MasteryLevel>(); if (skill.MasteryUpCosts != null) { var level = skill.MasteryUpCosts.GroupBy(m => m.Level).OrderBy(group => group.Key); foreach (var l in level) { MasteryLevels.Add(new MasteryLevel(l)); } } }