Esempio n. 1
0
 //Конструктор класса Skill
 public Skill(string n, bool avl, string t, int lvl, int max, SkillData bs, SkillData pl)
 {
     name = n; //Задание имени
     avalible = avl; //Имеется ли доступ к умению
     level = lvl; //Текущий уровень умения
     maxLevel = max; //Максимальный уровень
     type = t; //Тип
     currentCD = 0; //Изначально убираем перезарядку для возможности немедленного использования
     basicStats = bs; //Задание начальных параметров умения
     changePerLevel = pl; //Задание дельты параметров
     //Если умение доступно, расчитываем его текущие параметры.
     if (avalible) {
         if (level < 0) //Проверка уровня, если меньше нуля (ну вдруг) - поднимаем до нуля
             level = 0;
         if (level > maxLevel) //Проверка уровня, если больше максимального (опять же ну вдруг) - понижаем до максимального
             level = maxLevel;
         currentStats.cd = basicStats.cd + (changePerLevel.cd * level);
         currentStats.cost = basicStats.cost + (changePerLevel.cost * level);
         currentStats.duration = basicStats.duration + (changePerLevel.duration * level);
     }
     Console.WriteLine("name: " + name + " cd: " + changePerLevel.cd + " cost: " + changePerLevel.cost + " duration: " + changePerLevel.duration);
 }
Esempio n. 2
0
 public Skill(string n, bool avl, string t, int max, SkillData bs, SkillData pl)
 {
     name = n; //Задание имени
     avalible = avl; //Имеется ли доступ к умению
     maxLevel = max; //Максимальный уровень
     type = t; //Тип
     currentCD = 0; //Изначально убираем перезарядку для возможности немедленного использования
     basicStats = bs; //Задание начальных параметров умения
     changePerLevel = pl; //Задание дельты параметров
     //Если умение доступно, расчитываем его текущие параметры.
 }
Esempio n. 3
0
        public void ParseSkillsFromString(string skillSave)
        {
            match1 = first.Match(skillSave);
            int i = 1;
            while (match1.Success) {
                Console.WriteLine("Match" + (i + 1));
                if (match1.Groups[1].Value != "" && match1.Groups[1].Value != null) {
                    //Создание верменного массива и увеличение основного на одну ячеку
                    Array.Resize<Skill>(ref skillArr, i);

                    //Задание строковых переменных
                    string name = match1.Groups[1].Value;
                    string type = match1.Groups[3].Value;

                    bool avalible;

                    int maxLevel;

                    SkillData baseS = new SkillData();
                    SkillData perL = new SkillData();

                    //Первый блок try, в котором задаются такие переменные, как avalible, level и maxlevel
                    try {
                        int j = int.Parse(match1.Groups[2].Value);
                        if (j == 0)
                            avalible = false;
                        else
                            avalible = true;
                        maxLevel = int.Parse(match1.Groups[4].Value);
                    } catch (FormatException e) {
                        Console.WriteLine("Some errors while parsing data" + e.Message);
                        avalible = false;
                        maxLevel = 0;
                    }
                    //Начало второго цикла регулярных выражений
                    match2 = second.Match(match1.Groups[5].Value);
                    //Считывание значений перезарядки
                    try {
                        baseS.cd = double.Parse(match2.Groups[1].Value);
                        if (match2.Groups[2].Value == "+")
                            perL.cd = double.Parse(match2.Groups[3].Value);
                        else
                            perL.cd = double.Parse(match2.Groups[3].Value) * -1;
                    } catch (FormatException e) {
                        Console.WriteLine("Some errors while parsing data" + e.Message);
                    }
                    match2 = match2.NextMatch();
                    //Считывание значений стоимости умения
                    try {
                        baseS.cost = double.Parse(match2.Groups[1].Value);
                        if (match2.Groups[2].Value == "+")
                            perL.cost = double.Parse(match2.Groups[3].Value);
                        else
                            perL.cost = double.Parse(match2.Groups[3].Value) * -1;
                    } catch (FormatException e) {
                        Console.WriteLine("Some errors while parsing data" + e.Message);
                    }
                    match2 = match2.NextMatch();
                    //Считывание значений длительности
                    try {
                        baseS.duration = double.Parse(match2.Groups[1].Value);
                        if (match2.Groups[2].Value == "+")
                            perL.duration = double.Parse(match2.Groups[3].Value);
                        else
                            perL.duration = double.Parse(match2.Groups[3].Value) * -1;
                    } catch (FormatException e) {
                        Console.WriteLine("Some errors while parsing data" + e.Message);
                    }
                    //Конец считывания по второму регулярному выражению

                    //Задание ранее считанных параметров новому умению
                    skillArr[i - 1] = new Skill(name, avalible, type, maxLevel, baseS, perL);
                }
                i++;
                match1 = match1.NextMatch();
            }
        }