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()); } }
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()); } }
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()); } }