public Skill GetSkillByPetName(string name, RaceGenderClass rgc) { if (string.IsNullOrEmpty(name)) { return(null); } foreach (var rgc2 in rgc.Fallbacks()) { if (!_userSkilldata.ContainsKey(rgc2)) { continue; } var skill = _userSkilldata[rgc2].FirstOrDefault(x => x.Value.Name.Contains(name)).Value; if (skill == null) { skill = _userSkilldata[rgc2].FirstOrDefault(x => name.Contains(x.Value.Name)).Value; //keen hb-7 } if (skill == null) { continue; } return(skill); } return(null); }
// skillIds are reused across races and class, so we need a RaceGenderClass to disambiguate them public Skill GetOrNull(RaceGenderClass raceGenderClass, int skillId) { foreach (var rgc2 in raceGenderClass.Fallbacks()) { if (!_userSkilldata.ContainsKey(rgc2)) { continue; } UserSkill skill; if (!_userSkilldata[rgc2].TryGetValue(skillId, out skill)) { continue; } return(skill); } return(null); }