Beispiel #1
0
        }                                                              // TODO: fill using database

        public SkillTab(Job job)
        {
            Id          = 0x000032DF995949B9; // temporary hard coded id
            Name        = "Build";
            Order       = SkillTreeOrdered.GetListOrdered(job);
            SkillJob    = AddOnDictionary(job);
            SkillLevels = SkillJob.ToDictionary(x => x.Key, x => (int)x.Value.Learned);
        }
Beispiel #2
0
 public SkillTab(Job job)
 {
     Id          = GuidGenerator.Long();
     Name        = "";
     Order       = SkillTreeOrdered.GetListOrdered(job);
     SkillJob    = AddOnDictionary(job);
     SkillLevels = SkillJob.ToDictionary(x => x.Key, x => (int)x.Value.Learned);
 }
Beispiel #3
0
    public void AddOrUpdate(int id, short level, bool isLearned)
    {
        SkillLevels[id] = isLearned ? level : (short)0;
        if (!SkillJob.ContainsKey(id))
        {
            return;
        }

        foreach (int sub in SkillJob[id].SubSkills)
        {
            SkillLevels[sub] = isLearned ? level : (short)0;
        }
    }
Beispiel #4
0
    /// <summary>
    /// Returns all skills by type.
    /// </summary>
    /// <param name="type"><see cref="SkillType"/></param>
    /// <returns>List of skill id and skill level</returns>
    public List <(int skillId, short skillLevel)> GetSkillsByType(SkillType type)
    {
        List <(int, short)> skills = new();

        foreach ((int skillId, SkillMetadata metadata) in SkillJob.Where(x => x.Value.Type == type))
        {
            short level = SkillLevels.GetValueOrDefault(skillId);
            skills.Add((skillId, level));
            skills.AddRange(metadata.SubSkills.Select(metadataSubSkill => (metadataSubSkill, level)));
        }

        return(skills);
    }
Beispiel #5
0
 public void ResetSkillTree(Job job)
 {
     GenerateSkills(job);
     SkillLevels = SkillJob.ToDictionary(x => x.Key, x => x.Value.CurrentLevel);
 }