public List <LearnedSkill> GetLearnedSkillsFromSkillList(string skillList) { List <LearnedSkill> list = new List <LearnedSkill>(); char[] delimiterChars = { ',' }; string[] skills = skillList.Split(delimiterChars); foreach (string s in skills) { LearnedSkill item = new LearnedSkill(); int firstBracket = s.IndexOf("("); int secondBracket = s.IndexOf(")"); if (firstBracket > 0) { item.LevelLearned = Convert.ToInt32(s.Substring(firstBracket + 1, (secondBracket - (firstBracket + 1)))); item.Skill = GetSkillBySkillName(s.Remove(firstBracket).Trim()); } else { item.LevelLearned = 1; item.Skill = GetSkillBySkillName(s.Trim()); } list.Add(item); } return(list); }
private void btChoose_Click(object sender, RoutedEventArgs e) { TravellerChar character = SheetWindow.Character; if (tvSkillList.SelectedItem == null) { return; } ILearnable item = (ILearnable)tvSkillList.SelectedItem; if (!item.Learnable) { return; } if (item.GetType() == typeof(Skill)) { Skill skillitem = (Skill)item; var skill = new LearnedSkill() { SkillData = skillitem, Level = 0, Skillname = skillitem.Name }; character.LearnedSkills.Add(skill); } if (item.GetType() == typeof(SkillSpecialty)) { SkillSpecialty skillspecitem = (SkillSpecialty)item; LearnedSkill parentskill = character.LearnedSkills.First(x => x.SkillData.Name == skillspecitem.Skill.Name); var skillspec = new LearnedSkillSpecialty() { SkillData = parentskill, Level = 0, Name = skillspecitem.Name, SkillName = parentskill.Skillname, SpecialtyData = skillspecitem }; parentskill.LearnedSkillSpecialties.Add(skillspec); } Close(); }