private bool CheckRequiredSkill(MasterSkillDefinition defintion, Character character) { var result = true; if (defintion.RequiredMasterSkills != null && defintion.RequiredMasterSkills.Any()) { result = defintion.RequiredMasterSkills.Any(s => character.LearnedSkills.Any(l => l.Skill == s && (l.Level >= MinimumSkillLevelOfRequiredSkill || l.Skill.MasterDefinitions == null || !l.Skill.MasterDefinitions.Any()))); } return(result); }
private bool CheckRequiredSkill(MasterSkillDefinition definition, Player player) { var result = true; if (definition.RequiredMasterSkills != null && definition.RequiredMasterSkills.Any()) { result = definition.RequiredMasterSkills.All(s => player.SelectedCharacter.LearnedSkills.Any(learned => learned.Skill == s && learned.Level >= MinimumSkillLevelOfRequiredSkill) || (s.MasterDefinition == null && player.SkillList.ContainsSkill((ushort)s.Number))); } return(result); }
private bool CheckRank(MasterSkillDefinition definition, Character character) { if (definition.Rank <= 1) { return(true); } var learnedRequiredSkill = character.LearnedSkills .Where(l => l.Skill.MasterDefinition != null) .FirstOrDefault(l => l.Skill.MasterDefinition.Root.Id == definition.Root.Id && l.Skill.MasterDefinition.Rank == definition.Rank - 1); return(learnedRequiredSkill?.Level >= MinimumSkillLevelOfRequiredSkill); }
private bool CheckRank(MasterSkillDefinition definition, Character character) { var result = true; if (definition.Rank > 0) { var lSkill = character.LearnedSkills .Where(learnedSkill => learnedSkill.Skill.MasterDefinitions != null && learnedSkill.Skill.MasterDefinitions.Any()) .FirstOrDefault(learnedSkill => { var mdefs = learnedSkill.Skill.MasterDefinitions.Where(mdef => mdef.CharacterClass == character.CharacterClass); mdefs = mdefs.Where(mdef => mdef.Root.Id == definition.Root.Id); return(mdefs.Any(mdef => mdef.Rank == definition.Rank - 1)); }); result = (lSkill != null) && lSkill.Level >= MinimumSkillLevelOfRequiredSkill; } return(result); }
private static float CalculateDisplayValue(this MasterSkillDefinition skillDefinition, int level) => skillDefinition.DisplayValueFormula.GetValue(level, skillDefinition.MaximumLevel);