public OctoGameUpdateMess(UserAccounts accounts, AttackDamageActiveTree attackDamageActiveTree, SpellUserAccounts spellAccounts, Global global, MagicActiveTree magicActiveTree, DefenceActiveTree defenceActiveTree, AgilityActiveTree agilityActiveTree) { _accounts = accounts; _attackDamageActiveTree = attackDamageActiveTree; _spellAccounts = spellAccounts; _global = global; _magicActiveTree = magicActiveTree; _defenceActiveTree = defenceActiveTree; _agilityActiveTree = agilityActiveTree; }
public OctoGameCommand(UserAccounts accounts, SpellUserAccounts spellAccounts, AwaitForUserMessage awaitForUserMessage, LoggingSystem loggingSystem, GameFramework gameFramework, DiscordShardedClient client, OctoGameUpdateMess octoGameUpdateMess, Global global) { _accounts = accounts; _spellAccounts = spellAccounts; _awaitForUserMessage = awaitForUserMessage; _loggingSystem = loggingSystem; _gameFramework = gameFramework; _client = client; _octoGameUpdateMess = octoGameUpdateMess; _global = global; }
public async Task SeeSkill(ulong skillId) { try { var skill = SpellUserAccounts.GetAccount(skillId); var embed = new EmbedBuilder(); embed.WithAuthor(Context.User); embed.AddField($"{skill.SpellName}", $"ID: {skill.SpellId}\nTree: {skill.SpellTree}\nRU: {skill.SpellDescriptionRu}\nEN: {skill.SpellDescriptionEn}\nFormula: {skill.SpellFormula}\nCD: {skill.SpellCd}"); await ReplyAsync("", false, embed.Build()); } catch { // await ReplyAsync("Такого скила нету. Наши скиллы начинаються с ид **1000**"); } }
public GameFramework(UserAccounts accounts, AttackDamageActiveTree attackDamageActiveTree, SpellUserAccounts spellAccounts, AwaitForUserMessage awaitForUserMessage, AttackDamagePassiveTree attackDamagePassiveTree, AllBuffs allDebuffs, DefencePassiveTree defencePassiveTree, DefenceActiveTree defenceActiveTree, AgilityActiveTree agilityActiveTree, AgilityPassiveTree agilityPassiveTree, MagicActiveTree magicActiveTree, MagicPassiveTree magicPassiveTree, DealDmgToEnemy dealDmgToEnemy, UpdateFightPage updateFightPage) { _accounts = accounts; _attackDamageActiveTree = attackDamageActiveTree; _spellAccounts = spellAccounts; _awaitForUserMessage = awaitForUserMessage; _attackDamagePassiveTree = attackDamagePassiveTree; _allDebuffs = allDebuffs; _defencePassiveTree = defencePassiveTree; _defenceActiveTree = defenceActiveTree; _agilityActiveTree = agilityActiveTree; _agilityPassiveTree = agilityPassiveTree; _magicActiveTree = magicActiveTree; _magicPassiveTree = magicPassiveTree; _dealDmgToEnemy = dealDmgToEnemy; _updateFightPage = updateFightPage; }
public static async Task MainPage(SocketReaction reaction, RestUserMessage socketMsg) { var globalAccount = Global.Client.GetUser(reaction.UserId); var account = GameUserAccounts.GetAccount(globalAccount); string[] skills; // var tree = ""; double dmg; var skillString = "You dont have any skills here."; if (account.MoveListPage == 1 && account.CurrentOctopusFighterSkillSetAd != null) { skillString = null; skills = account.CurrentOctopusFighterSkillSetAd.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); // tree = "AD"; for (var i = 0; i < skills.Length; i++) { var ski = Convert.ToUInt64(skills[i]); var skill = SpellUserAccounts.GetAccount(ski); dmg = GameSpellHandeling.AdSkills(skill.SpellId, account); if (skill.SpellDmgType == "PASS") { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): {skill.SpellDescriptionRu} **{Math.Ceiling(dmg)}**\n"; } else { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): **{Math.Ceiling(dmg)}** \n"; } } } else if (account.MoveListPage == 2 && account.CurrentOctopusFighterSkillSetDef != null) { skillString = null; skills = account.CurrentOctopusFighterSkillSetDef.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); //tree = "DEF"; for (var i = 0; i < skills.Length; i++) { var ski = Convert.ToUInt64(skills[i]); var skill = SpellUserAccounts.GetAccount(ski); dmg = GameSpellHandeling.DefdSkills(skill.SpellId, account); if (skill.SpellDmgType == "PASS") { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): {skill.SpellDescriptionRu} **{Math.Ceiling(dmg)}**\n"; } else { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): **{Math.Ceiling(dmg)}** \n"; } } } else if (account.MoveListPage == 3 && account.CurrentOctopusFighterSkillSetAgi != null) { skillString = null; skills = account.CurrentOctopusFighterSkillSetAgi.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); // tree = "AGI"; for (var i = 0; i < skills.Length; i++) { var ski = Convert.ToUInt64(skills[i]); var skill = SpellUserAccounts.GetAccount(ski); dmg = GameSpellHandeling.AgiSkills(skill.SpellId, account); if (skill.SpellDmgType == "PASS") { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): {skill.SpellDescriptionRu} **{Math.Ceiling(dmg)}**\n"; } else { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): **{Math.Ceiling(dmg)}** \n"; } } } else if (account.MoveListPage == 4 && account.CurrentOctopusFighterSkillSetAp != null) { skillString = null; skills = account.CurrentOctopusFighterSkillSetAp.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); //tree = "AP"; for (var i = 0; i < skills.Length; i++) { var ski = Convert.ToUInt64(skills[i]); var skill = SpellUserAccounts.GetAccount(ski); dmg = GameSpellHandeling.ApSkills(skill.SpellId, account); if (skill.SpellDmgType == "PASS") { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): {skill.SpellDescriptionRu} **{Math.Ceiling(dmg)}**\n"; } else { skillString += $"{i + 1}. {skill.SpellName} ({skill.SpellDmgType}): **{Math.Ceiling(dmg)}** \n"; } } } var mainPage = new EmbedBuilder(); mainPage.WithAuthor(globalAccount); mainPage.WithFooter($"Move List Page {account.MoveListPage} from 4"); mainPage.WithColor(Color.DarkGreen); mainPage.AddField("Enemy:", $"**LVL:** {account.CurrentEnemyLvl}\n" + $"**Strength:** {account.CurrentEnemyStrength}\n" + $"**AD:** {account.CurrentEnemyAd + account.CurrentEnemyStrength} **AP:** {account.CurrentEnemyAp}\n" + $"**Health:** {account.CurrentEnemyHealth}\n" + $"**Stamina:** {account.CurrentEnemyStamina}\n" + $"**Armor:** {account.CurrentEnemyArmor} LVL **MagRes:** {account.CurrentEnemyMagicResist} LVL\n" + $"**ArmPen:** {account.CurrentEnemyArmPen} LVL **MagPen:** {account.CurrentEnemyMagPen}\n" + $"**Agility:** {account.CurrentEnemyAgility}\n" + "**________________**"); mainPage.AddField($"Your octopus:", $"**LVL:** {account.CurrentOctopusFighterLvl}\n" + $"**Strength:** {account.CurrentOctopusFighterStrength}\n" + $"**AD:** {account.CurrentOctopusFighterAd + account.CurrentOctopusFighterStrength} **AP:** {account.CurrentOctopusFighterAp}\n" + $"**Health:** {account.CurrentOctopusFighterHealth}\n" + $"**Stamina:** {account.CurrentOctopusFighterStamina}\n" + $"**Armor:** {account.CurrentOctopusFighterArmor} LVL **MagRes:** {account.CurrentOctopusFighterMagicResist} LVL\n" + $"**ArmPen:** {account.CurrentOctopusFighterArmPen} **MagPen:** {account.CurrentOctopusFighterMagPen}\n" + $"**Agility:** {account.CurrentOctopusFighterAgility}\n" + $"**________________**\n" + $"{new Emoji("⬅")} - Move List Page Left , {new Emoji("➡")} - Move List Page Right {new Emoji("📖")} - History, {new Emoji("❌")} - **END GAME**"); mainPage.AddField($"(Move List", $"{skillString}"); await socketMsg.ModifyAsync(message => { message.Embed = mainPage.Build(); // This somehow can't be empty or it won't update the // embed propperly sometimes... I don't know why // message.Content = Constants.InvisibleString; }); }
public async Task CreateSkill(ulong skillId) { var skill = SpellUserAccounts.GetAccount(skillId); if (skill.SpellName != null) { var embed1 = new EmbedBuilder(); embed1.WithAuthor(Context.User); embed1.AddField("Этот скилл иди уже существует", $"{skill.SpellName}\nID: {skill.SpellId}\nTree: {skill.SpellTree}\nRU: {skill.SpellDescriptionRu}\nEN: {skill.SpellDescriptionEn}\nFormula: {skill.SpellFormula}\nCD: {skill.SpellCd}\n" + "Если хочешь полностью его изменить, напиши **да** (1 минута)"); await ReplyAsync("", false, embed1.Build()); var res = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 60000); if (res.Content == "да") { await ReplyAsync($"Ты изхменяешь скилл {skill.SpellName}"); } else { await ReplyAsync($"никкаких апдейтов. (ты сказал {res.Content})"); return; } } await Context.Channel.SendMessageAsync("Введи Назваие скилла, у тебя 5 минута."); var response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000); skill.SpellName = response.ToString(); var embed = new EmbedBuilder(); embed.AddField("Введи Номер дерева скилла, у тебя 5 минута", "1 - AD\n2 - DEF\n3 - AGI\n4 - AP"); await CommandHandeling.ReplyAsync(Context, embed); response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000); skill.SpellTree = Convert.ToInt32(response.ToString()); await Context.Channel.SendMessageAsync( "Введи Русское описание скилла (либо просто **нету**), у тебя 5 минут."); response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000); skill.SpellDescriptionRu = response.ToString(); await Context.Channel.SendMessageAsync( "Введи Английское описание скилла (либо просто **нету**), у тебя 5 минут."); response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000); skill.SpellDescriptionEn = response.ToString(); var embedAc = new EmbedBuilder(); embedAc.AddField("Введи Активка или Пассивка, у тебя 5 минута", "0 - Пассив\n1 - Актив"); await Context.Channel.SendMessageAsync("", false, embedAc.Build()); response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000); skill.ActiveOrPassive = Convert.ToInt32(response.ToString()); /* * await Context.Channel.SendMessageAsync("Введи Формулу описание скилла, у тебя 5 минут."); * response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000 ); * skill.SpellFormula = response.ToString(); */ var embedCd = new EmbedBuilder(); embedCd.AddField("Введи КД скилла, у тебя 5 минут", "1)Если есть - в ходах\n2)Если КД = 1 раз в игру, пиши 9999\n3)Если КД нету вообще, пиши 0"); await Context.Channel.SendMessageAsync("", false, embedCd.Build()); response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000); skill.SpellCd = Convert.ToInt32(response.ToString()); await Context.Channel.SendMessageAsync("Тип урона (AD or AP), у тебя 5 минут."); response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000); skill.SpellDmgType = response.ToString(); /* * await Context.Channel.SendMessageAsync("Введи Пойзен (прокает он хит), у тебя 5 минут."); * response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000 ); * skill.Poisen = response.ToString(); * * await Context.Channel.SendMessageAsync("Введи ОнХит, у тебя 5 минут."); * response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000 ); * skill.Onhit = response.ToString(); * * await Context.Channel.SendMessageAsync("Введи Бафф, у тебя 5 минут."); * response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000 ); * skill.Buff = response.ToString(); * * await Context.Channel.SendMessageAsync("Введи ДЕбафф, у тебя 5 минут."); * response = await AwaitForUserMessage.AwaitMessage(Context.User.Id, Context.Channel.Id, 300000 ); * skill.DeBuff = response.ToString(); */ SpellUserAccounts.SaveAccounts(); await ReplyAsync("Готово!"); }