示例#1
0
        public async Task ComandoUsarAb(CommandContext ctx, int quantidade, [RemainingText] string itemNome = "")
        {
            await ctx.TriggerTypingAsync();

            if (quantidade <= 0)
            {
                await ctx.ExecutarComandoAsync("ajuda usar");

                return;
            }

            if (string.IsNullOrEmpty(itemNome))
            {
                await ctx.ExecutarComandoAsync("ajuda usar");

                return;
            }

            var usuario = ModuloBanco.GetJogador(ctx);

            itemNome = itemNome.ToLower();

            if (usuario.Mochila.TryGetValue(itemNome, out var itemData))
            {
                if (quantidade > itemData)
                {
                    await ctx.RespondAsync($"{ctx.User.Mention} você somente tem {itemData} [{itemNome.FirstUpper()}] na mochila!".Bold());

                    return;
                }
                ModuloBanco.TryGetItem(itemNome, out var item);
                switch (item.Tipo)
                {
                case EnumTipo.Pocao:
                    usuario.Mochila.RemoverItem(itemNome, quantidade);
                    string vidaRestaura    = usuario.RecuperarVida(item.VidaRestaura * quantidade).Text();
                    string magiaRestaurada = usuario.RecuperarMagia(item.MagiaRestaura * quantidade).Text();
                    usuario.Salvar();
                    await ctx.RespondAsync($"{ctx.User.Mention} você usou {quantidade} [{item.Nome}]! Restaurado {Emojis.PontosVida} {vidaRestaura} e {Emojis.PontosPoder} {magiaRestaurada}!".Bold());

                    break;

                default:
                    await ctx.RespondAsync($"{ctx.User.Mention} [{item.Nome}] não é usável!");

                    break;
                }
            }
            else
            {
                await ctx.RespondAsync($"{ctx.User.Mention} {itemNome.FirstUpper()} não foi encontrado na mochila!".Bold());
            }
        }
示例#2
0
        public async Task ComandoExaminarAb(CommandContext ctx, [RemainingText] string nome = "")
        {
            await ctx.TriggerTypingAsync();

            if (string.IsNullOrWhiteSpace(nome))
            {
                await ctx.ExecutarComandoAsync("ajuda examinar");

                return;
            }
            var usuario = ModuloBanco.GetJogador(ctx);

            nome = nome.ToLower();
            if (usuario.Mochila.TryGetValue(nome, out var itemData))
            {
                if (ModuloBanco.TryGetItem(nome, out var item))
                {
                    DiscordEmbedBuilder embed = new DiscordEmbedBuilder().Padrao("Item", ctx);
                    embed.WithTitle($"**{item.Nome.FirstUpper()}**");
                    embed.WithDescription(item.Descricao == "" ? "Sem descrição" : item.Descricao);
                    embed.AddField("Tipo".Titulo(), item.Tipo.ToString(), true);
                    embed.AddField("Venda por".Titulo(), Convert.ToInt32(item.PrecoCompra * 0.3).ToString(), true);
                    embed.AddField("Compre por".Titulo(), (item.PrecoCompra * 10).ToString(), true);
                    StringBuilder str = new StringBuilder();
                    if (item.AtaqueFisico != 0)
                    {
                        str.AppendLine($"Ataque físico: {item.AtaqueFisico}".Bold());
                    }
                    if (item.AtaqueMagico != 0)
                    {
                        str.AppendLine($"Ataque mágico: {item.AtaqueMagico}".Bold());
                    }
                    if (item.DefesaFisica != 0)
                    {
                        str.AppendLine($"Defesa física: {item.DefesaFisica}".Bold());
                    }
                    if (item.DefesaMagica != 0)
                    {
                        str.AppendLine($"Defesa mágica: {item.DefesaMagica}".Bold());
                    }
                    if (item.FomeRestaura != 0)
                    {
                        str.AppendLine($"Restaura {item.FomeRestaura} de fome.");
                    }
                    if (item.MagiaRestaura != 0)
                    {
                        str.AppendLine($"Retaura {item.MagiaRestaura} de magia.");
                    }
                    if (item.VidaRestaura != 0)
                    {
                        str.AppendLine($"Restaura {item.VidaRestaura} de vida.");
                    }
                    if (!string.IsNullOrEmpty(str.ToString()))
                    {
                        embed.AddField("Outros".Titulo(), str.ToString());
                    }
                    embed.WithColor(DiscordColor.Green);
                    await ctx.RespondAsync(embed : embed.Build());
                }
                else
                {
                    await ctx.RespondAsync($"Item [{nome.FirstUpper()}] não adicionado no banco de dados, será adicionado em breve {ctx.User.Mention}!".Bold());
                }
            }
            else
            {
                await ctx.RespondAsync($"Item [{nome.FirstUpper()}] não encontrado na mochila examinar {ctx.User.Mention}!".Bold());
            }
        }
示例#3
0
        public async Task ComandoEquiparAb(CommandContext ctx, [RemainingText] string nome = "")
        {
            await ctx.TriggerTypingAsync();

            if (string.IsNullOrWhiteSpace(nome))
            {
                await ctx.ExecutarComandoAsync("ajuda equipar");

                return;
            }

            var usuario = ModuloBanco.GetJogador(ctx);

            nome = nome.ToLower();

            if (usuario.Mochila.TryGetValue(nome, out var itemData))
            {
                if (ModuloBanco.TryGetItem(nome, out var item))
                {
                    switch (item.Tipo)
                    {
                    case EnumTipo.ArmaPrimaria:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"A arma primária [{item.Nome}] foi equipada {ctx.User.Mention}!".Bold());
                        }
                        break;

                    case EnumTipo.ArmaSecundaria:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"A arma segundaria [{item.Nome}] foi equipada {ctx.User.Mention}!".Bold());
                        }
                        break;

                    case EnumTipo.Botas:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"As botas [{item.Nome}] foram equipadas {ctx.User.Mention}!".Bold());
                        }
                        break;

                    case EnumTipo.Peitoral:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"O peitoral [{item.Nome}] foi equipado {ctx.User.Mention}!".Bold());
                        }
                        break;

                    case EnumTipo.Elmo:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"O elmo [{item.Nome}] foi equipado {ctx.User.Mention}!".Bold());
                        }
                        break;

                    case EnumTipo.Luvas:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"As luvas [{item.Nome}] foram esquipadas {ctx.User.Mention}!".Bold());
                        }
                        break;

                    case EnumTipo.Picareta:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"A picareta [{item.Nome}] foi equipada {ctx.User.Mention}!".Bold());
                        }
                        break;

                    case EnumTipo.Machado:
                        if (await EquiparItemAsync(ctx, usuario, item))
                        {
                            await ctx.RespondAsync($"O machado [{item.Nome}] foi equipado {ctx.User.Mention}!".Bold());
                        }
                        break;

                    default:
                        await ctx.RespondAsync($"Este [item] não é equipavel {ctx.User.Mention}!".Bold());

                        return;
                    }
                    usuario.Salvar();
                }
                else
                {
                    await ctx.RespondAsync($"Item ainda não adicionado no banco de dados, será adicionado em breve {ctx.User.Mention}!".Bold());

                    return;
                }
            }
            else
            {
                await ctx.RespondAsync($"Você não tem este [item] {ctx.User.Mention}!".Bold());
            }
        }