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);
        }
Exemple #5
0
 private static float CalculateDisplayValue(this MasterSkillDefinition skillDefinition, int level) => skillDefinition.DisplayValueFormula.GetValue(level, skillDefinition.MaximumLevel);