public async Task ComandoLocalAb(CommandContext ctx) { await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(ctx); if (ModuloBanco.TryGetRegiao(jogador, out var localAtual)) { DiscordEmbedBuilder embed = new DiscordEmbedBuilder().Padrao("Área", ctx); StringBuilder saidas = new StringBuilder(); foreach (var reg in localAtual.Saidas) { saidas.AppendLine(reg.FirstUpper()); } embed.AddField("Conectado á".Titulo(), saidas.ToString(), true); embed.WithTitle(localAtual.Nome.FirstUpper()); embed.WithDescription(string.IsNullOrEmpty(localAtual.Descricao) == true ? "Sem descrição" : localAtual.Descricao); await ctx.RespondAsync(embed : embed.Build()); } else { await ctx.RespondAsync($"Área ainda não adicionado no banco de dados, será adicionado em breve {ctx.User.Mention}!"); } }
public async Task ViajarAbAsync(CommandContext ctx, [RemainingText] string area = "") { await ctx.TriggerTypingAsync(); if (string.IsNullOrWhiteSpace(area)) { await ctx.ExecutarComandoAsync("ajuda viajar"); return; } area = area.ToLower(); var jogador = ModuloBanco.GetJogador(ctx); if (ModuloBanco.TryGetRegiao(jogador, out var regiao)) { if (regiao.Saidas.Contains(area)) { jogador.Batalha = new RPGBatalha(); jogador.RegiaoAtual = area; jogador.Salvar(); await ctx.RespondAsync($"Você foi para [{area.FirstUpper()}] {ctx.User.Mention}!".Bold()); } else { await ctx.RespondAsync($"Área {area.FirstUpper()} não encontrada {ctx.User.Mention}!"); } } else { await ctx.RespondAsync($"Área ainda não adicionado no banco de dados, será adicionado em breve {ctx.User.Mention}!"); } }
public async Task AdicionarItem(CommandContext ctx, int quantidade = 1, [RemainingText] string itemNome = "") { await ctx.TriggerTypingAsync(); var usuario = ModuloBanco.GetJogador(ctx); usuario.Mochila.AdicionarItem(itemNome.ToLower(), quantidade); usuario.Salvar(); await ctx.RespondAsync($"Adicionado {quantidade} [{itemNome.ToLower().FirstUpper()}]!"); }
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 AdicionarXP(CommandContext ctx, int quantidade = 1, DiscordUser discordUser = null) { if (discordUser == null) { discordUser = ctx.User; } await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(discordUser); jogador.AdicionarExp(quantidade); jogador.Salvar(); await ctx.RespondAsync($"Adicionado {quantidade}XP para {discordUser.Mention}!"); }
public async Task Desbloquear(CommandContext ctx, DiscordUser user = null) { if (user == null) { return; } await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(user); jogador.Bloqueado = false; jogador.Salvar(); await ctx.RespondAsync("Desbloqueado!"); }
public async Task HabilidadeComandoAb(CommandContext ctx) { await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(ctx); DiscordEmbedBuilder embed = new DiscordEmbedBuilder().Padrao("Proficiencia", ctx); embed.WithDescription($"Pontos disponíveis: {jogador.ProficienciaPontos}".Bold()); foreach (var item in jogador.Proficiencias) { embed.AddField(item.Value.Nome.ToString().Titulo().Bold(), $"{item.Value.Pontos}".Bold(), true); } await ctx.RespondAsync(embed : embed.Build()); }
public async Task ComandoMochilaAb(CommandContext ctx, int pagina = 0) { await ctx.TriggerTypingAsync(); if (pagina < 0) { await ctx.ExecutarComandoAsync("ajuda mochila"); return; } var jogador = ModuloBanco.GetJogador(ctx); DiscordEmbedBuilder embed = new DiscordEmbedBuilder().Padrao("Mochila", ctx); embed.WithColor(DiscordColor.Purple); if (jogador.Mochila == null) { jogador.Mochila = new RPGMochila(); } if (jogador.Mochila.Count == 0) { embed.WithDescription("Nem um farelo dentro."); } else { StringBuilder str = new StringBuilder(); int index = pagina * 10; int quantidades = 0; for (int i = pagina * 10; i < jogador.Mochila.Count; i++) { var item = jogador.Mochila.Values[index]; str.AppendLine($"{item} - {jogador.Mochila.Keys[index].FirstUpper()}".Bold()); index++; quantidades++; if (quantidades == 10) { break; } } embed.WithDescription(str.ToString()); embed.WithFooter($"Página {pagina} | {jogador.Mochila.Count} Itens diferentes"); } await ctx.RespondAsync(embed : embed.Build()); }
public async Task ComandoExplorarAb(CommandContext ctx) { await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(ctx); var vidaSorteada = Sortear.Valor(3, 4); var danoSoorteado = Sortear.Valor(7, 10); var personGenerator = new PersonNameGenerator(); RPGMob mob = new RPGMob((jogador.AtaqueFisicoBase + jogador.AtaqueFisicoExtra) * vidaSorteada) { Nome = personGenerator.GenerateRandomFirstName(), AtaqueFisico = jogador.VidaMaxima / danoSoorteado, }; jogador.Batalha = new RPGBatalha(mob); jogador.Salvar(); await ctx.RespondAsync($"{ctx.User.Mention} você explorou! Encontrou: < {mob.Nome.Underline()} >!".Bold()); }
public async Task CortarAbAsync(CommandContext ctx) { await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(ctx); jogador.Proficiencias.TryGetValue(EnumProficiencia.Cortar, out var proff); ProficienciaCortar cortar = proff as ProficienciaCortar; int quantidade = cortar.CalcMadeiraExtra(); jogador.Equipamentos.TryGetValue(EnumTipo.Machado, out var machado); string madeira = ""; switch (machado) { case null: madeira = jogador.Mochila.AdicionarItem("galho", quantidade); break; } jogador.Salvar(); await ctx.RespondAsync($"Você cortou {quantidade} [{madeira.FirstUpper()}] {ctx.User.Mention}!".Bold()); }
public async Task MinerarAbAsync(CommandContext ctx) { await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(ctx); jogador.Proficiencias.TryGetValue(EnumProficiencia.Minerar, out var proff); ProficienciaMinerar minerar = proff as ProficienciaMinerar; int quantidade = minerar.CalcMinerioExtra(); jogador.Equipamentos.TryGetValue(EnumTipo.Picareta, out var picareta); string minerio = ""; switch (picareta) { case null: minerio = jogador.Mochila.AdicionarItem("pedra", quantidade); break; } jogador.Salvar(); await ctx.RespondAsync($"Você minerou {quantidade} [{minerio.FirstUpper()}] {ctx.User.Mention}!".Bold()); }
public async Task ComandoAtribuirAb(CommandContext ctx, int quantidade, [RemainingText] string proficienciaText = "") { await ctx.TriggerTypingAsync(); if (string.IsNullOrEmpty(proficienciaText)) { await ctx.ExecutarComandoAsync("ajuda atribuir"); return; } if (quantidade < 0) { await ctx.ExecutarComandoAsync("ajuda atribuir"); return; } var jogador = ModuloBanco.GetJogador(ctx.User.Id); if (jogador.ProficienciaPontos == 0 || jogador.ProficienciaPontos < quantidade) { await ctx.RespondAsync($"Você não tem {quantidade} ponto(s) para estar atribuindo {ctx.User.Mention}!".Bold()); } else { if (jogador.TryGetProficiencia(proficienciaText, out RPGProficiencia proff)) { proff.Pontos += quantidade; jogador.ProficienciaPontos -= quantidade; jogador.Salvar(); await ctx.RespondAsync($"{quantidade} ponto(s) atribuido em {proff.Nome} {ctx.User.Mention}!".Bold()); } else { await ctx.RespondAsync($"Proficiência não encontrada {ctx.User.Mention}!".Bold()); } } }
public async Task ComandoComprarAb(CommandContext ctx, int quantidade = -1, [RemainingText] string itemId = "") { await ctx.TriggerTypingAsync(); if (quantidade <= 0) { await ctx.ExecutarComandoAsync("ajuda comprar"); return; } if (string.IsNullOrEmpty(itemId)) { await ctx.ExecutarComandoAsync("ajuda comprar"); return; } var array = itemId.Split('#'); ulong.TryParse(array[0], out var userid); if (userid == ctx.User.Id) { await ctx.RespondAsync($"Não pode comprar do seu proprio anúncio {ctx.User.Mention}!".Bold()); return; } if (array.Length == 1) { await ctx.ExecutarComandoAsync("ajuda comprar"); return; } int.TryParse(array[1], out var userslot); if (ModuloBanco.TryGetVenda(userid, userslot, out var venda)) { var jogador = ModuloBanco.GetJogador(ctx); if (quantidade > venda.Quantidade) { await ctx.RespondAsync($"Não tem quantidade o suficiente a venda para comprar essa quantidade {ctx.User.Mention}!".Bold()); return; } if (jogador.Mochila.RemoverItem("zayn", quantidade * venda.Preco)) { jogador.Mochila.AdicionarItem(venda.ItemNome, quantidade); venda.Quantidade -= quantidade; venda.QuantidadeParaColetar += quantidade * venda.Preco; venda.Salvar(); jogador.Salvar(); await ctx.RespondAsync($"{ctx.User.Mention} você acabou de comprar {quantidade} [{venda.ItemNome.FirstUpper()}]!".Bold()); } else { await ctx.RespondAsync($"{ctx.User.Mention} você não tem [Zayn] o suficiente para comprar essa quantidade!".Bold()); } } else { await ctx.RespondAsync($"Venda não encontrada {ctx.User.Mention}!".Bold()); } }
public async Task ComandoAtacarAb(CommandContext ctx) { await ctx.TriggerTypingAsync(); var jogador = ModuloBanco.GetJogador(ctx); if (jogador.Batalha.Mob.VidaAtual <= 0) { await ctx.RespondAsync($"Use `z!explorar` para encontrar novas criaturas {ctx.User.Mention}!".Bold()); return; } var criatura = jogador.Batalha.Mob; StringBuilder strRelatorio = new StringBuilder(); // Vez criatura double dano = ReduzirDano(jogador.DefesaFisicaBase + jogador.DefesaFisicaExtra, criatura.AtaqueFisico); jogador.RemoverVida(dano); strRelatorio.AppendLine($"< {criatura.Nome.Underline()} > atacou causando {dano.Text()} de dano!".Bold()); // Vez jogador if (jogador.FomeAtual <= 0) { double fome = jogador.VidaMaxima / 0.02; jogador.RemoverVida(fome); strRelatorio.AppendLine($"Faminto! -{fome} vida.".Bold()); } jogador.Proficiencias.TryGetValue(EnumProficiencia.Forca, out RPGProficiencia forca); ProficienciaForca profForca = forca as ProficienciaForca; double danoNoMob = ReduzirDano(0, jogador.AtaqueFisicoBase + jogador.AtaqueFisicoExtra, profForca.CalcDanoExtra(jogador.AtaqueFisicoBase)); if (criatura.VidaAtual < danoNoMob) { danoNoMob = criatura.VidaAtual; criatura.VidaAtual = 0; } else { criatura.VidaAtual -= danoNoMob; } strRelatorio.AppendLine($"{ctx.User.Mention} atacou causando {danoNoMob.Text()} de dano!".Bold()); DiscordEmbedBuilder embed = new DiscordEmbedBuilder().Padrao("Ataque", ctx); embed.WithColor(DiscordColor.IndianRed); embed.AddField(ctx.User.Username.Titulo(), $"{DiscordEmoji.FromName(ctx.Client, ":heart:")} {jogador.VidaAtual.Text()}/{jogador.VidaMaxima.Text()}", true); if (criatura.VidaAtual <= 0) { strRelatorio.AppendLine($"{DiscordEmoji.FromName(ctx.Client, ":skull_crossbones:")} {criatura.Nome} {DiscordEmoji.FromName(ctx.Client, ":skull_crossbones:")}".Bold()); strRelatorio.AppendLine($"{DiscordEmoji.FromName(ctx.Client, ":inbox_tray:")} +12 [Zayn]!".Bold()); strRelatorio.AppendLine($"{DiscordEmoji.FromName(ctx.Client, ":inbox_tray:")} +1 [Ossos]!".Bold()); strRelatorio.AppendLine($"{DiscordEmoji.FromName(ctx.Client, ":inbox_tray:")} +1 [Frasco vermelho]!".Bold()); strRelatorio.AppendLine($"{DiscordEmoji.FromName(ctx.Client, ":inbox_tray:")} +8 XP!".Bold()); jogador.Mochila.AdicionarItem("zayn", 12); jogador.Mochila.AdicionarItem("frasco vermelho", 1); jogador.Mochila.AdicionarItem("ossos", 1); jogador.MobsMortos++; if (jogador.AdicionarExp(8)) { strRelatorio.Append($"Subiu para o nível {jogador.NivelAtual}! +2% {DiscordEmoji.FromName(ctx.Client, ":muscle:")} +1 PP!".Bold()); } } else { double porcentagem = criatura.VidaAtual / criatura.VidaMax; string porcentagemText = (porcentagem * 100).Text() + "%"; string vidaMob = ""; if (porcentagem > 0.7) { vidaMob = $"{DiscordEmoji.FromName(ctx.Client, ":green_heart:")} {porcentagemText}"; } else if (porcentagem > 0.4) { vidaMob = $"{DiscordEmoji.FromName(ctx.Client, ":yellow_heart:")} {porcentagemText}"; } else if (porcentagem > 0) { vidaMob = $"{DiscordEmoji.FromName(ctx.Client, ":heart:")} {porcentagemText}"; } embed.AddField("< " + criatura.Nome.Underline().Bold() + " >", vidaMob, true); } embed.WithDescription(strRelatorio.ToString()); jogador.Salvar(); await ctx.RespondAsync(embed : embed.Build()); }
public async Task ComandoDesequiparAb(CommandContext ctx, [RemainingText] string nome = "") { await ctx.TriggerTypingAsync(); if (string.IsNullOrWhiteSpace(nome)) { await ctx.ExecutarComandoAsync("ajuda desequipar"); return; } var usuario = ModuloBanco.GetJogador(ctx); nome = nome.ToLower(); string equipamento = ""; switch (nome) { case "arma primaria": case "arma primária": case "arma": case "arma 1": case "arma principal": equipamento = usuario.DesequiparItem(EnumTipo.ArmaPrimaria); break; case "arma secundaria": case "arma 2": equipamento = usuario.DesequiparItem(EnumTipo.ArmaPrimaria); break; case "elmo": equipamento = usuario.DesequiparItem(EnumTipo.Elmo); break; case "peitoral": equipamento = usuario.DesequiparItem(EnumTipo.Peitoral); break; case "luvas": case "luva": equipamento = usuario.DesequiparItem(EnumTipo.Luvas); break; case "botas": case "bota": equipamento = usuario.DesequiparItem(EnumTipo.Botas); break; case "pernas": case "perna": equipamento = usuario.DesequiparItem(EnumTipo.Pernas); break; case "picareta": equipamento = usuario.DesequiparItem(EnumTipo.Picareta); break; case "machado": equipamento = usuario.DesequiparItem(EnumTipo.Machado); break; default: await ctx.ExecutarComandoAsync("ajuda desequipar"); return; } if (!string.IsNullOrEmpty(equipamento)) { usuario.Salvar(); await ctx.RespondAsync($"[{equipamento}] desequipado {ctx.User.Mention}!".Bold()); } else { await ctx.RespondAsync($"Você não tem este item equipado {ctx.User.Mention}!".Bold()); } }
public DiscordEmbedBuilder GerarStatus(DiscordUser user) { var usuario = ModuloBanco.GetJogador(user); RPGJogador personagem = usuario; DiscordEmoji pv = DiscordEmoji.FromGuildEmote(ModuloCliente.Client, 631907691467636736); DiscordEmoji pp = DiscordEmoji.FromGuildEmote(ModuloCliente.Client, 631907691425562674); DiscordEmoji pf = DiscordEmoji.FromName(ModuloCliente.Client, ":fork_and_knife:"); DiscordEmbedBuilder embed = new DiscordEmbedBuilder(); embed.WithAuthor($"{user.Username} - Nível {personagem.NivelAtual}", iconUrl: user.AvatarUrl); int combate = 0, coleta = 0, total = 0; foreach (var proff in usuario.Proficiencias) { total += proff.Value.Pontos; switch (proff.Key) { case EnumProficiencia.Ataque: combate += proff.Value.Pontos; break; case EnumProficiencia.Defesa: combate += proff.Value.Pontos; break; case EnumProficiencia.Forca: combate += proff.Value.Pontos; break; case EnumProficiencia.Minerar: coleta += proff.Value.Pontos; break; case EnumProficiencia.Cortar: coleta += proff.Value.Pontos; break; } } embed.WithDescription($"Tem {personagem.ExpAtual.Text().Bold()} pontos de experiencia e precisa de {(personagem.ExpMax - personagem.ExpAtual).Text().Bold()} para avançar.\n" + $"Matou **{usuario.MobsMortos}** e foi morto **{usuario.MortoPorMobs}** vezes por criaturas.\n" + $"Matou **{usuario.JogadoresMortos}** e foi morto **{usuario.MortoPorJogadores}** vezes por jogadores.\n" + $"Está carregando **{personagem.Mochila.Count}** itens.\n"); embed.AddField("Info".Titulo(), $"{pv}**Vida:** {personagem.VidaAtual.Text()}/{personagem.VidaMaxima.Text()}\n" + $"{pp}**Magia:** {personagem.MagiaAtual.Text()}/{personagem.MagiaMaxima.Text()}\n" + $"{pf}**Fome:** {((personagem.FomeAtual / personagem.FomeMaxima) * 100).Text()}%\n", true); embed.AddField("Info".Titulo(), $"**Ataque físico:** {(personagem.AtaqueFisicoBase + personagem.AtaqueFisicoExtra).Text()}\n" + $"**Defesa física:** {(personagem.DefesaFisicaBase + personagem.DefesaFisicaExtra).Text()}\n" + $"**Defesa mágica:** {(personagem.DefesaMagicaBase + personagem.DefesaMagicaExtra).Text()}", true); embed.AddField("Proficiências distribuídas(PD)".Titulo(), $"**Combate:** {(((double)combate / (double)total) * 100.00).Text()}% |" + $" **Coleta:** {(((double)coleta / (double)total) * 100.00).Text()}%"); string armaP = "Nehuma"; if (usuario.Equipamentos.TryGetValue(EnumTipo.ArmaPrimaria, out var item)) { armaP = item.Nome.FirstUpper(); } embed.AddField("Arma primária".Titulo(), armaP, true); string armaS = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.ArmaSecundaria, out item)) { armaS = item.Nome.FirstUpper(); } embed.AddField("Arma secundária".Titulo(), armaS, true); string elmo = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.Elmo, out item)) { elmo = item.Nome.FirstUpper(); } embed.AddField("Elmo".Titulo(), elmo, true); string peitoral = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.Peitoral, out item)) { peitoral = item.Nome.FirstUpper(); } embed.AddField("Peitoral".Titulo(), peitoral, true); string pernas = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.Pernas, out item)) { pernas = item.Nome.FirstUpper(); } embed.AddField("Pernas".Titulo(), pernas, true); string luvas = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.Luvas, out item)) { luvas = item.Nome.FirstUpper(); } embed.AddField("Luvas".Titulo(), luvas, true); string botas = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.Botas, out item)) { botas = item.Nome.FirstUpper(); } embed.AddField("Botas".Titulo(), botas, true); string picareta = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.Picareta, out item)) { picareta = item.Nome.FirstUpper(); } embed.AddField("Picareta".Titulo(), picareta, true); string machado = "Nenhum"; if (usuario.Equipamentos.TryGetValue(EnumTipo.Machado, out item)) { machado = item.Nome.FirstUpper(); } embed.AddField("Machado".Titulo(), machado, true); return(embed); }
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 ComandoVenderAb(CommandContext ctx, int quantidade = -1, int preco = -1, [RemainingText] string itemNome = "") { await ctx.TriggerTypingAsync(); if (quantidade < 1) { await ctx.ExecutarComandoAsync("ajuda vender"); return; } if (preco < 1) { await ctx.ExecutarComandoAsync("ajuda vender"); return; } if (string.IsNullOrEmpty(itemNome)) { await ctx.ExecutarComandoAsync("ajuda vender"); return; } itemNome = itemNome.ToLower(); if (itemNome == "zayn") { await ctx.RespondAsync($"Não é possível vender moeda por moeda {ctx.User.Mention}!"); return; } var jogador = ModuloBanco.GetJogador(ctx); if (jogador.Mochila.TryGetValue(itemNome, out var quantidadeMochila)) { if (quantidade > quantidadeMochila) { await ctx.RespondAsync($"{ctx.User.Mention} você somente tem {quantidadeMochila} [{itemNome.FirstUpper()}] na mochila!".Bold()); return; } ModuloBanco.TryGetVenda(ctx.User.Id, out var vendas); if (vendas.Count >= jogador.SlotsVenda) { await ctx.RespondAsync($"Você já anúnciou, remova a venda anterior para anúnciar novamente {ctx.User.Mention}!"); return; } jogador.Mochila.RemoverItem(itemNome, quantidade); new RPGVenda(ctx.User.Id, preco, quantidade, itemNome); jogador.Salvar(); await ctx.RespondAsync($"{ctx.User.Mention} você anunciou no mercado {quantidade} [{itemNome.FirstUpper()}] por {preco} Zayn cada únidade! Aguarde algum jogador comprar o seu produto.".Bold()); } else { await ctx.RespondAsync($"{ctx.User.Mention} item [{itemNome.FirstUpper()}] não foi encontrado na mochila!".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()); } }