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); } }
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); } }
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); } }
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); }
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); }
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); } }
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); } }
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); } }
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); } }
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); }
//Атата игроку 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); }
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); } }
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); } }
//Создаем магию 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); } }
public static async Task Help(SocketCommandContext Context) { if (!Exeptioner.ValidMe(Context, true)) { await Context.Channel.SendMessageAsync("Давай сперва зарегестрируемся !регистрация"); } else { await Context.Channel.SendMessageAsync("Введите после !помощь что вас интересует \n" + " мир/ классы/ магия/ усиления/ действия/ предметы/ торговля/ путешествие/ потусторонний мир\n"); } }
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); } }
//Используем заклинание 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); } }
//Стартуем удар 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); }
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); } }
//Юзаем магию 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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); }
//Начинаем путешествие 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); } }
//Создаем Заклинание public static async Task CreatePower(string text, SocketCommandContext Context) { if (!Exeptioner.ValidMe(Context)) { return; } string[] textArray = text.Split(","); //Чекаем зареганы ли мы //if (!Exeptioner.ValidMe(Context)) return; 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 "атака": powers.Add(name, new Power(Power.powerType.Урон, name, value, effect)); await Loging.Log("Усиленени " + name + " готово", Context.Channel); break; case "защита": powers.Add(name, new Power(Power.powerType.Защита, name, value, effect)); await Loging.Log("Усиленени " + name + " готово", Context.Channel); break; case "усиление": powers.Add(name, new Power(Power.powerType.Характеристики, name, value, effect)); await Loging.Log("Усиленени " + name + " готово", Context.Channel); break; default: await Loging.Log("Не то ты говоришь", Context.Channel); break; } } catch { await Loging.Log("Не то ты говоришь", Context.Channel); } }
public static async Task Harvest(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(0, 100); if (num < 35) { Ore ore = new Ore(Ore.Type.Меди, 1, 30); bool added = ply.items.TryAdd(ore.name, ore); if (!added) { ply.items[ore.name].count++; } else { ply.items[ore.name].count = 1; } await Loging.Log(ply.name + " выкопал " + ore.name, Context.Channel); } else if (num < 60) { Ore ore = new Ore(Ore.Type.Железа, 1, 30); bool added = ply.items.TryAdd(ore.name, ore); if (!added) { ply.items[ore.name].count++; } else { ply.items[ore.name].count = 1; } await Loging.Log(ply.name + " выкопал " + ore.name, Context.Channel); } else if (num < 85) { Ore ore = new Ore(Ore.Type.Золота, 1, 30); bool added = ply.items.TryAdd(ore.name, ore); if (!added) { ply.items[ore.name].count++; } else { ply.items[ore.name].count = 1; } await Loging.Log(ply.name + " выкопал " + ore.name, Context.Channel); } else if (num < 100) { Ore ore = new Ore(Ore.Type.Платины, 1, 30); bool added = ply.items.TryAdd(ore.name, ore); if (!added) { ply.items[ore.name].count++; } else { ply.items[ore.name].count = 1; } await Loging.Log(ply.name + " выкопал " + ore.name, Context.Channel); } }
public static async Task Hunt(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 numMeat = rand.Next(0, 6); int numSkin = rand.Next(0, 4); if (numMeat == 0 && numSkin == 0) { await Loging.Log("У " + ply.name + " не вышло поохотиться.", Context.Channel); return; } else { bool added = false; await Loging.Log(ply.name + " поймал дичь!", Context.Channel); if (numMeat > 0) { Meat meat = new Meat("Мясо", 1, 30); added = ply.items.TryAdd(meat.name, meat); if (!added) { ply.items[meat.name].count += numMeat; } else { ply.items[meat.name].count = numMeat; } await Loging.Log(ply.name + " получил " + meat.name, Context.Channel); } if (numSkin > 0) { Skin skin = new Skin("Кожа", 1, 30); added = ply.items.TryAdd(skin.name, skin); if (!added) { ply.items[skin.name].count += numSkin; } else { ply.items[skin.name].count = numSkin; } await Loging.Log(ply.name + " получил " + skin.name, Context.Channel); } } }