Example #1
0
 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;
 }
Example #2
0
        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;
        }
Example #3
0
        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**");
            }
        }
Example #4
0
        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;
                });
            }
Example #6
0
        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("Готово!");
        }