private static int SortByKey(Player.Skill s1, Player.Skill s2)
 {
     if (skillDictionary.TryGetValue(s1, out int s1Key) && skillDictionary.TryGetValue(s2, out int s2Key))
     {
         return(s1Key.CompareTo(s2Key));
     }
     return(0); // assume equal if one doesn't exist
 }
Example #2
0
 private void SwitchSkill(List <Player.Skill> skills, Player.Skill skill)
 {
     if (!skills.Contains(skill))
     {
         skills.Add(skill);
     }
     else
     {
         skills.Remove(skill);
     }
 }
    public static LevelConfig ReadKey(string key)
    {
        try
        {
            char[]   delimiterChars = { 'S', 'I', 'M', 'T', 'P', 'V' };
            string[] configVals     = key.Split(delimiterChars);

            int   randomSeed            = int.Parse(configVals[0]);
            float speed                 = float.Parse(configVals[1]) / 100;
            float maxIntensity          = float.Parse(configVals[2]) / 100;
            int   milestoneInterval     = int.Parse(configVals[3]);
            bool  includeTutorialChunks = int.Parse(configVals[4]) == 0 ? false : true;

            string[]            includedSkillsKeys = configVals[5].Split('s');
            List <Player.Skill> includedSkills     = new List <Player.Skill>();
            foreach (string skillKey in includedSkillsKeys)
            {
                if (int.TryParse(skillKey, out int skillKeyInt))
                {
                    Player.Skill skill = skillDictionary.FirstOrDefault(x => x.Value == skillKeyInt).Key;
                    includedSkills.Add(skill);
                }
            }
            includedSkills.Sort(SortByKey);

            int version = int.Parse(configVals[6]);

            LevelConfig levelConfig = new LevelConfig(randomSeed, speed, maxIntensity, milestoneInterval, includeTutorialChunks, includedSkills, version);
            Debug.Log("Level Config generated: " + levelConfig.ToString());
            return(levelConfig);
        }
        catch (Exception e)
        {
            Debug.Log(e.Message);
            return(null);
        }
    }
 public bool IsKnownSkill(Player.Skill skill)
 {
     return(knownSkills.Contains(skill));
 }