Example #1
0
        public static async Task GetPower(string text, SocketCommandContext Context)
        {
            try
            {
                string[] skillText = text.Split(",");

                if (skillText.Length > 1)
                {
                }
                else
                {
                    var player = Exeptioner.ValidMe(Context) ? PersonService.persons[Context.User.Username] : null;

                    if (player == null)
                    {
                        return;
                    }

                    var power = PowerService.powers[skillText[0]];

                    player.skills.Add(power.name, power);

                    await Loging.Log(player.name + " изучил " + power.name, Context.Channel);
                }
            }
            catch
            {
                await Loging.Log("Нет такого усиления!", Context.Channel);
            }
        }
Example #2
0
        private static async Task ApplyPowerUp(Person player, Power power, SocketCommandContext Context, string target)
        {
            if (target == string.Empty)
            {
                player.p_Mana -= power.cost;

                await player.ApplyStat(0, 0, power.value, power.value, power.value);

                player.buffs.Add(new Buff(Buff.buffType.Damage, power.value));

                await LogPower(Context, power, player);
            }
            else
            {
                if (!Exeptioner.ValidPlayer(target, Context))
                {
                    return;
                }

                player.p_Mana -= power.cost;

                var tPlayer = PersonService.persons[target];

                await tPlayer.ApplyStat(0, 0, power.value, power.value, power.value);

                tPlayer.buffs.Add(new Buff(Buff.buffType.Damage, power.value));

                await LogPower(Context, power, player, tPlayer);
            }
        }
Example #3
0
        public static async Task SetRang(string text, SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            if (Context.Channel.Name != "замок")
            {
                await Loging.Log("Назначение титула проводится исключительно в замке!", Context.Channel);

                return;
            }

            string[] rang = text.Split(",");

            try
            {
                var person = persons[rang[1]];
                person.p_Titul = rang[0];

                await Loging.Log(person.name + " теперь имеет титул " + rang[0], Context.Channel);
            }
            catch
            {
                await Loging.Log("Нет такого челика!", Context.Channel);
            }
        }
Example #4
0
        public static async Task ShowMyStats(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            string text = string.Empty;

            try
            {
                var pi = persons[Context.User.Username];

                text = "Имя : " + pi.name + "\n" +
                       "Титул : " + pi.p_Titul + "\n" +
                       "Класс : " + pi.p_Class + "\n" +
                       "Здоровье : " + pi.p_Hp + "/" + pi.p_MaxHP + "\n" +
                       "Мана : " + pi.p_Mana + "/" + pi.p_MaxMana + "\n" +
                       "Уровень : " + pi.p_Level + "\n" +
                       "Опыт : " + pi.p_Exp + "/" + pi.p_Exp_Need + "\n" +
                       "Урон : " + pi.m_Attack + "\n" +
                       "Защита : " + pi.m_Defence + "\n" +
                       "Ловкость : " + pi.m_Agility + "\n" +
                       "Сила : " + pi.m_Strength + "\n" +
                       "Интелект : " + pi.m_Intelegence + "\n" +
                       "Золото : " + pi.money + "\n";

                await Loging.Log(text, Context.Channel);
            }
            catch
            {
                await Loging.Log("Вы не являетесь членом города Замарград", Context.Channel);
            }
        }
Example #5
0
        public static async Task Registration(SocketCommandContext Context)
        {
            if (Context.Channel.Name != "регистрационная-палата")
            {
                await Loging.Log("Регистрация проходит исключительно в регистрационной палате!", Context.Channel);

                return;
            }

            if (Exeptioner.ValidMe(Context, false))
            {
                await Loging.Log("Вы уже являетесть членом этого города!", Context.Channel);

                return;
            }

            Person pi = new Person(Context.User.Id.ToString(), Context.User.Username.ToString());

            pi.lastRoom = Context.Channel.Id.ToString();
            persons.Add(pi.name, pi);

            string message = Context.User.Username.ToString() + " теперь полноправный член города!";

            await Loging.Log(message, Context.Channel);
        }
Example #6
0
        //Атата игроку
        private static async Task SetEnemy(SocketCommandContext Context, int indxChanel)
        {
            Person player = Exeptioner.ValidMe(Context) ? PersonService.persons[Context.User.Username] : null;

            if (player == null)
            {
                return;
            }

            if (player.fight != false)
            {
                return;
            }

            Random rand = new Random();

            Mob mob = new Mob("Враг", rand.Next(player.p_Level - 2 < 1 ?1: player.p_Level - 2, player.p_Level + 3));

            mob.room = ulong.Parse(player.lastRoom);

            await Loging.Log("Тебе повстречался : \n" +
                             "Имя : " + mob.name + "\n" +
                             "Уровень : " + mob.level + "\n" +
                             "Здоровье : " + mob.hp + "\n" +
                             "Атака : " + mob.damage, Context.Channel);

            enemys[indxChanel] = mob;

            player.fight = true;

            await AttackEnemy(Context);
        }
Example #7
0
        //Кастуем хил
        private static async Task CastHeal(Person player, Magic magic, SocketCommandContext Context, string target)
        {
            //Если нет цели
            if (target == string.Empty)
            {
                player.p_Mana -= magic.cost;

                await player.GetHeal(magic.value, true);

                await Task.Run(() => Loging.Log(Context.User.Username + " подлечил себя способностью" + magic.name + " на " + magic.value + " и " + magic.effect, Context.Channel));
            }
            else
            {
                var pTarget = Exeptioner.ValidPlayer(target, Context) ? PersonService.persons[target] : null;

                if (pTarget == null)
                {
                    return;
                }

                player.p_Mana -= magic.cost;

                await pTarget.GetHeal(magic.value, true);

                await Task.Run(() => Loging.Log(Context.User.Username + " подлечил " + pTarget.name + " способностью " + magic.name + " на " + magic.value + " и " + magic.effect, Context.Channel));
            }
        }
Example #8
0
        public static async Task GetMagic(string text, SocketCommandContext Context)
        {
            try
            {
                string[] skillText = text.Split(",");

                if (skillText.Length > 1)
                {
                }
                else
                {
                    var player = Exeptioner.ValidMe(Context)? PersonService.persons[Context.User.Username] : null;

                    if (player == null)
                    {
                        return;
                    }

                    var magic = MagicService.magics[skillText[0]];

                    player.skills.Add(magic.name, magic);

                    await Loging.Log(player.name + " изучил " + magic.name, Context.Channel);
                }
            }
            catch
            {
                await Loging.Log("Нет такой магии!", Context.Channel);
            }
        }
Example #9
0
        public static async Task MakeShop(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            if (Context.Channel.Name != "рынок")
            {
                await Loging.Log("Товар можно купить только на рынке!", Context.Channel);

                return;
            }
            string all = string.Empty;

            for (int i = 0; i < items.Count; i++)
            {
                all += "[" + i + "] | " + "Название : " + items[i].name + " | Цена : " + items[i].cost + "\n";
            }

            if (all == string.Empty)
            {
                all = "На рынке нет товаров!";
            }

            await Loging.Log(all, Context.Channel);
        }
Example #10
0
        public static async Task CreateAction(string text, SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            string[] textArray = text.Split(",");

            //if (!Exeptioner.ValidMe(Context)) return;

            try
            {
                string name = textArray[0];
                if (name[0] == ' ')
                {
                    name = name.Substring(1);
                }

                string effect = textArray[1];
                if (effect[0] == ' ')
                {
                    effect = effect.Substring(1);
                }

                actions.Add(name, new Action(name, effect));

                await Loging.Log("Теперь ты можешь " + name, Context.Channel);
            }
            catch
            {
                await Loging.Log("Не то ты говоришь", Context.Channel);
            }
        }
Example #11
0
        //Кастуем усиление
        private static async Task CastPowerUp(Person player, Magic magic, SocketCommandContext Context, string target)
        {
            //Если нет цели
            if (target == string.Empty)
            {
                player.p_Mana -= magic.cost;

                await player.ApplyStat(0, 0, magic.value, magic.value, magic.value);

                player.buffs.Add(new Buff(Buff.buffType.PowerUp, magic.value));

                await Task.Run(() => Loging.Log(Context.User.Username + " кастанул " + magic.name + " на себя и " + magic.effect + " усилив себя на " + magic.value, Context.Channel));
            }
            else
            {
                var pTarget = Exeptioner.ValidPlayer(target, Context) ? PersonService.persons[target] : null;

                if (pTarget == null)
                {
                    return;
                }

                player.p_Mana -= magic.cost;

                await pTarget.ApplyStat(magic.value, magic.value, magic.value);

                pTarget.buffs.Add(new Buff(Buff.buffType.PowerUp, magic.value));

                await Task.Run(() => Loging.Log(Context.User.Username + " кастанул " + magic.name + " на " + pTarget.name + " и тот " + magic.effect + " усилив на " + magic.value, Context.Channel));
            }
        }
Example #12
0
        public static async Task ShowMyBaffs(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            string inv = string.Empty;

            var invent = persons[Context.User.Username].buffs;

            foreach (Buff kp in invent)
            {
                inv += "Тип : " + kp.type + "\n" +
                       "Значение : " + kp.value + "\n" +
                       "Осталось времени сек : " + kp.time + "\n";
            }

            if (inv == string.Empty)
            {
                await Loging.Log("На вас нет бафов!", Context.Channel);
            }
            else
            {
                await Loging.Log("Бафы на вас :\n" + inv, Context.Channel);
            }
        }
Example #13
0
        public static async Task GiveItem(string text, SocketCommandContext Context)
        {
            string[] textArray = text.Split(",");



            if (!Exeptioner.ValidMe(Context) || !Exeptioner.ValidPlayer(textArray[1], Context))
            {
                return;
            }


            try
            {
                if (textArray[1][0] == ' ')
                {
                    textArray[1] = textArray[1].Substring(1);
                }

                var i  = PersonService.persons[Context.User.Username].items[textArray[0]];
                var p2 = PersonService.persons[textArray[1]].items.TryAdd(text, i);

                PersonService.persons[Context.User.Username].items.Remove(textArray[0]);

                await Loging.Log(Context.User.Username + " передал " + i.name + " " + textArray[1], Context.Channel);
            }
            catch
            {
                await Loging.Log("Так ничего не получится", Context.Channel);
            }
        }
Example #14
0
        public static async Task ShowMySkills(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            string inv = string.Empty;

            var invent = persons[Context.User.Username].skills;

            foreach (KeyValuePair <string, Skill> kp in invent)
            {
                inv += "Название : " + kp.Value.name + "\n" +
                       "Стоимость маны : " + kp.Value.cost + "\n";
            }

            if (inv == string.Empty)
            {
                await Loging.Log("Вы ничего не знаете! Иди учись!", Context.Channel);
            }
            else
            {
                await Loging.Log("Ваши способности :\n" + inv, Context.Channel);
            }
        }
Example #15
0
        public static async Task ShowMyItems(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            string inv = string.Empty;

            var invent = persons[Context.User.Username].items;

            foreach (KeyValuePair <string, Item> kp in invent)
            {
                inv += kp.Key + " : " + kp.Value.count + " шт.\n";
            }

            if (inv == string.Empty)
            {
                await Loging.Log("В вашем инвентаре ничего нет", Context.Channel);
            }
            else
            {
                await Loging.Log("Ваш инвентарь :\n" + inv, Context.Channel);
            }
        }
Example #16
0
        public static async Task BackToHome(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            var player = persons[Context.User.Username];

            if (player.way == -1)
            {
                await Loging.Log("Ты уже дома!", Context.Channel);

                return;
            }

            if (player.fight)
            {
                await Loging.Log("Ты в бою!", Context.Channel);

                return;
            }

            TravelService.lockWay[player.way] = false;

            player.way = -1;

            await Loging.Log("Возвращаемся домой!", Context.Channel);
        }
Example #17
0
        //Создаем магию
        public static async Task CreateMagic(string text, SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            string[] textArray = text.Split(",");

            if (Context.Channel.Name != "школа-магических-исскуств")
            {
                await Loging.Log("Магию можно создавать только в школе магических исскуств", Context.Channel);

                return;
            }

            try
            {
                string type = textArray[0];

                string name = textArray[1];
                if (name[0] == ' ')
                {
                    name = name.Substring(1);
                }

                int value = int.Parse(textArray[2]);

                string effect = textArray[3];
                if (effect[0] == ' ')
                {
                    effect = effect.Substring(1);
                }

                switch (type)
                {
                case "лечение":
                    magics.Add(name, new Magic(Magic.magicType.Heal, name, value, effect));
                    break;

                case "урон":
                    magics.Add(name, new Magic(Magic.magicType.Damage, name, value, effect));
                    break;

                case "усиление":
                    magics.Add(name, new Magic(Magic.magicType.PowerUp, name, value, effect));
                    break;

                default:
                    break;
                }
                await Loging.Log("Заклинание " + name + " готово", Context.Channel);
            }
            catch
            {
                await Loging.Log("Не то ты говоришь", Context.Channel);
            }
        }
Example #18
0
 public static async Task Help(SocketCommandContext Context)
 {
     if (!Exeptioner.ValidMe(Context, true))
     {
         await Context.Channel.SendMessageAsync("Давай сперва зарегестрируемся !регистрация");
     }
     else
     {
         await Context.Channel.SendMessageAsync("Введите после !помощь что вас интересует \n" +
                                                " мир/ классы/ магия/ усиления/ действия/ предметы/ торговля/ путешествие/ потусторонний мир\n");
     }
 }
Example #19
0
        public static async Task GiveMoney(string text, SocketCommandContext Context)
        {
            try
            {
                string[] moneyText = text.Split(",");

                if (!Exeptioner.ValidMe(Context))
                {
                    return;
                }

                if (!Exeptioner.ValidPlayer(moneyText[1], Context))
                {
                    return;
                }

                var player = persons[Context.User.Username];

                var comrad = persons[moneyText[1]];

                int result = 1;

                if (!int.TryParse(moneyText[0], out result))
                {
                    await Loging.Log("Так ничего не получится", Context.Channel);

                    return;
                }

                if (player.money - int.Parse(moneyText[0]) < 0)
                {
                    await Loging.Log("У тебя нет столько денег", Context.Channel);

                    return;
                }
                else
                {
                    player.money -= int.Parse(moneyText[0]);
                    comrad.money += int.Parse(moneyText[0]);
                }
            }
            catch
            {
                await Loging.Log("Так ничего не получится", Context.Channel);
            }
        }
Example #20
0
        //Используем заклинание
        public static async Task UsePower(SocketCommandContext Context, string text)
        {
            string[] newText = text.Split(",");

            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            try
            {
                var player = PersonService.persons[Context.User.Username];

                var power = player.skills[newText[0]] as Power;

                if (player.p_Mana - power.cost < 0)
                {
                    await Loging.Log("Не хватает маны!", Context.Channel);

                    return;
                }

                switch (power.type)
                {
                case Power.powerType.Урон:
                    await ApplyDamage(player, power, Context, newText.Length > 1?newText[1] : string.Empty);

                    break;

                case Power.powerType.Защита:
                    await ApplyDefence(player, power, Context, newText.Length > 1?newText[1] : string.Empty);

                    break;

                case Power.powerType.Характеристики:
                    await ApplyPowerUp(player, power, Context, newText.Length > 1?newText[1] : string.Empty);

                    break;
                }
            }
            catch
            {
                await Loging.Log("Не то ты говоришь", Context.Channel);
            }
        }
Example #21
0
        //Стартуем удар
        public static async Task AttackEnemy(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            var player = PersonService.persons[Context.User.Username];

            if (player.fight == false)
            {
                await Loging.Log("Врагов нет по близости!", Context.Channel);

                return;
            }

            await SetAttack(player);
        }
Example #22
0
        public static async Task GetItem(string text, SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            try
            {
                var i = items[text];
                var p = PersonService.persons[Context.User.Username].items.TryAdd(text, i);

                await Loging.Log(Context.User.Username + " получил " + i.name, Context.Channel);
            }
            catch
            {
                await Loging.Log("Так ничего не получится", Context.Channel);
            }
        }
Example #23
0
        public static async Task Support(string text, SocketCommandContext Context)
        {
            try
            {
                if (!Exeptioner.ValidMe(Context))
                {
                    return;
                }

                if (!Exeptioner.ValidPlayer(text, Context))
                {
                    return;
                }

                var player = persons[Context.User.Username];

                var comrad = persons[text];

                if (player.lastRoom != comrad.lastRoom)
                {
                    await Loging.Log("Игрок не рядом", Context.Channel);

                    return;
                }

                string log = string.Empty;

                Mob mob = null;

                //Бъет Игрок
                mob = TravelService.enemys[comrad.way];
                await mob.GetDamage(player);

                //Бьет Моб
                int mobDamage = mob.damage;
                await player.GetDamage(mobDamage);
            }
            catch
            {
                await Loging.Log("Так ничего не получится", Context.Channel);
            }
        }
Example #24
0
        //Юзаем магию
        public static async Task UseMagic(SocketCommandContext Context, string text)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            string[] newText = text.Split(",");

            //находим игрока
            var player = PersonService.persons[Context.User.Username];


            //Находим магию
            var magic = player.skills[newText[0]] as Magic;

            //кастуем магию
            if (player.p_Mana - magic.cost > 0)
            {
                switch (magic.type)
                {
                case Magic.magicType.Heal:
                    await CastHeal(player, magic, Context, newText.Length > 1?newText[1] : string.Empty);

                    break;

                case Magic.magicType.Damage:
                    await CastDamage(player, magic, Context);

                    break;

                case Magic.magicType.PowerUp:
                    await CastPowerUp(player, magic, Context, newText.Length > 1?newText[1] : string.Empty);

                    break;
                }
            }
            else
            {
                await Loging.Log("Недостаточно Маны", Context.Channel);
            }
        }
Example #25
0
        public static async Task Buyshop(string text, SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            int i = 0;

            if (int.TryParse(text, out i))
            {
                var ply = PersonService.persons[Context.User.Username];

                if (ply.money >= items[i].cost)
                {
                    ply.money -= items[i].cost;
                    bool added = ply.items.TryAdd(items[i].name, items[i]);

                    if (!added)
                    {
                        ply.items[items[i].name].count++;
                    }
                    else
                    {
                        ply.items[items[i].name].count = 1;
                    }



                    await Loging.Log(ply.name + " приобретает " + items[i].name, Context.Channel);
                }
                else
                {
                    await Loging.Log("Не достаточно денег!", Context.Channel);
                }
            }
            else
            {
                await Loging.Log("Такой позиции нет!", Context.Channel);
            }
        }
Example #26
0
        internal static async Task Resurrection(SocketCommandContext context, string text)
        {
            if (!Exeptioner.ValidMe(context))
            {
                return;
            }

            try
            {
                var player = persons[text];

                if (!player.ghost)
                {
                    return;
                }

                await player.Resurrection();
            }
            catch
            {
                await Loging.Log("Не правильно", context.Channel);
            }
        }
Example #27
0
        public static async Task LookItem(string text, SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            try
            {
                var i = persons[Context.User.Username].items[text];

                await Loging.Log("Название : " + i.name + "\n" + i.description, Context.Channel);
            }
            catch
            {
                await Loging.Log("У тебя нет этого предмета!", Context.Channel);
            }
        }
Example #28
0
        public static async Task SellItem(string text, SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            try
            {
                if (Context.Channel.Name != "рынок")
                {
                    await Loging.Log("Продавать можно только на рынке!", Context.Channel);

                    return;
                }

                var player = Exeptioner.ValidMe(Context)? persons[Context.User.Username]:null;

                if (player == null)
                {
                    return;
                }

                var item = player.items[text];

                int price = item.description.Length;

                player.money += price;

                player.items.Remove(text);

                await Loging.Log("Вы продали " + text + " за " + price + " золотых.", Context.Channel);
            }catch
            {
                await Loging.Log("У вас нет такого предмета", Context.Channel);
            }
        }
Example #29
0
        public static async Task Timber(SocketCommandContext Context)
        {
            if (!Exeptioner.ValidMe(Context))
            {
                return;
            }

            if (Context.Channel.Name != "лес")
            {
                await Loging.Log("Добывать дерево можно только в лесу!", Context.Channel);

                return;
            }

            var ply = PersonService.persons[Context.User.Username];

            Random rand = new Random();

            int num = rand.Next(1, 10);

            Timber timber = new Timber("Дерево", 1, 30);


            bool added = ply.items.TryAdd(timber.name, timber);

            if (!added)
            {
                ply.items[timber.name].count += num;
            }
            else
            {
                ply.items[timber.name].count = num;
            }

            await Loging.Log(ply.name + " срубил " + timber.name, Context.Channel);
        }
Example #30
0
        //Начинаем путешествие
        public static async Task Travel(SocketCommandContext Context)
        {
            //получаем игрока
            Person player = Exeptioner.ValidMe(Context) ? PersonService.persons[Context.User.Username] : null;

            //если игрок не найден
            if (player == null)
            {
                return;
            }
            //если это не канал "путешествие"
            if (!Context.Channel.Name.Contains("путешествие"))
            {
                await Loging.Log("Путешествовать можно только за стенами города", Context.Channel);

                return;
            }

            string[] travelName = Context.Channel.Name.ToString().Split("путешествие");


            //получаем индекс канала
            int indx = int.Parse(travelName[1]) - 1;


            Random rand = new Random();

            int choose = rand.Next(0, 3);

            //Проверяем есть ли кто на канале
            if (lockWay[indx] == false || indx == player.way)
            {
                //если мы деремся
                if (player.fight == true)
                {
                    await Loging.Log("Ты в бою!", Context.Channel);

                    return;
                }
                //лочим канал
                if (!lockWay[indx])
                {
                    lockWay[indx] = true;
                }

                player.way = indx;
                //Смотрим что нам повстречалось
                switch (choose)
                {
                case 0:
                    await SetEnemy(Context, indx);

                    break;

                case 1:
                    await FindLoot(player, Context);

                    break;

                case 2:
                    await Nothing(player, Context);

                    break;
                }
            }
            else//Если кто-тоесть на канале
            {
                await Loging.Log("Кто-то уже пошел по этой дороге. Если не собираешься помогать, то иди другой дорогой!", Context.Channel);
            }
        }