Exemplo n.º 1
0
        private static ISkillConditionCheck GetCondition(ISkillConditionCheck leftCondition, List <SkillConditionToken> tokens, ref int i)
        {
            if (tokens[i].Type == SkillConditionTokenType.TextOrNumber && tokens[i].Value == "Skill")
            {
                return(ParseSkill(tokens, ref i));
            }
            else if (tokens[i].Type == SkillConditionTokenType.TextOrNumber && tokens[i].Value == "Level")
            {
                return(ParseLevel(tokens, ref i));
            }
            else if (tokens[i].Type == SkillConditionTokenType.And)
            {
                i++;
                return(new AndConditionCheck(leftCondition, GetCondition(null, tokens, ref i)));
            }
            else if (tokens[i].Type == SkillConditionTokenType.Or)
            {
                i++;
                return(new OrConditionCheck(leftCondition, GetCondition(null, tokens, ref i)));
            }
            else if (tokens[i].Type == SkillConditionTokenType.TextOrNumber && tokens[i].Value == "SkillForLevel")
            {
                return(ParseSkillForLevel(tokens, ref i));
            }

            UnityEngine.Debug.Log("Expected expression.");
            return(null);
        }
Exemplo n.º 2
0
 public Skill(int id, string name, ISkillConditionCheck condition, int maxLevel)
 {
     Id        = id;
     Name      = name;
     Condition = condition;
     MaxLevel  = maxLevel;
 }
Exemplo n.º 3
0
        private static ISkillConditionCheck ParseTillEndOrComma(List <SkillConditionToken> tokens, ref int i)
        {
            ISkillConditionCheck currentConditionCheck = null;

            for (; i < tokens.Count && tokens[i].Type != SkillConditionTokenType.Comma && tokens[i].Type != SkillConditionTokenType.RoundBracketClose; i++)
            {
                currentConditionCheck = GetCondition(currentConditionCheck, tokens, ref i);
            }

            return(currentConditionCheck);
        }
Exemplo n.º 4
0
 public OrConditionCheck(ISkillConditionCheck a, ISkillConditionCheck b)
 {
     A = a;
     B = b;
 }