예제 #1
0
        public async Task Battle(CommandContext ctx, BaseMonstersEntity monster, PlayerEntity player, string battleMessageAccepted)
        {
            string battleAccepted = battleMessageAccepted;
            var    embed          = new DiscordEmbedBuilder();

            if (ctx.Message.Author.Id == player.PlayerId && (battleAccepted.ToLower() == "sim" || battleAccepted.ToLower() == "s"))
            {
                embed.WithDescription($"Batalha iniciada entre {player.NamePlayer} e {monster.MonsterName}\n" +
                                      $"🎲🎲 rolando os dados para ver quer ira começar 🎲🎲");
                await ctx.RespondAsync(embed.Build());

                int playerDice  = new Random().Next(1, 20);
                int monsterDice = new Random().Next(1, 20);
                var ganhador    = playerDice > monsterDice ? player.NamePlayer : monster.MonsterName;

                embed = new DiscordEmbedBuilder();
                embed.WithDescription($"{player.NamePlayer} tirou: {playerDice}\n" +
                                      $"{monster.MonsterName} tirou: {monsterDice}\n" +
                                      $"O iniciante será {ganhador}");
                embed.WithFooter("Se você for quem ira começar, faça seu ataque em ate 1 minuto");
                await ctx.RespondAsync(embed.Build());

                var battleInteractivity = ctx.Client.UseInteractivity().WaitForMessageAsync(x => x.Author.Id == player.PlayerId && x.ChannelId == ctx.Channel.Id);

                if (ganhador == monster.MonsterName)
                {
                    _monsterAttacks.MonsterChoises(ctx, monster, player.MyCharacter);
                }
                else
                {
                    embed = new DiscordEmbedBuilder();
                    embed.WithDescription("Escolha seus ataques: \n" +
                                          "1: ataque básico");
                    await ctx.RespondAsync(embed.Build());

                    var playerChoise = await ctx.Client.GetInteractivity().WaitForMessageAsync(x => x.Author.Id == ctx.User.Id && x.ChannelId == ctx.Channel.Id);

                    _playerAttacks.ChoiseAttack(ctx, player.MyCharacter, monster, int.Parse(playerChoise.Result.Content));
                }
            }
        }