コード例 #1
0
 public static bool TryGetRegiao(RPGJogador jogador, out RPGRegiao regiao)
 {
     regiao = ColecaoRegiao.Find(x => x.Nome == jogador.RegiaoAtual).FirstOrDefault();
     if (regiao == null)
     {
         return(false);
     }
     return(true);
 }
コード例 #2
0
 /// <summary>
 /// Tenta retornar o jogador, caso o encontre no banco de dados.
 /// </summary>
 /// <param name="id"></param>
 /// <param name="jogador"></param>
 /// <returns></returns>
 public static bool TryGetJogador(ulong id, out RPGJogador jogador)
 {
     jogador = ColecaoJogador.Find(x => x.Id == id).FirstOrDefault();
     if (jogador != null)
     {
         return(true);
     }
     return(false);
 }
コード例 #3
0
        /// <summary>
        /// Recupera o jogador no banco de dados. Caso não tenha, o cria.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static RPGJogador GetJogador(ulong id)
        {
            var jogador = ColecaoJogador.Find(x => x.Id == id).FirstOrDefault();

            if (jogador == null)
            {
                jogador = new RPGJogador(id);
                ColecaoJogador.InsertOne(jogador);
            }
            return(jogador);
        }
コード例 #4
0
ファイル: ComandoItemEquipar.cs プロジェクト: Boowk/ZaynBot
        private async Task <bool> EquiparItemAsync(CommandContext ctx, RPGJogador usuario, RPGItem item)
        {
            if (item.ProficienciaNivelRequisito != 1)
            {
                usuario.Proficiencias.TryGetValue(item.Proficiencia, out RPGProficiencia proff);
                if (proff.Pontos >= item.ProficienciaNivelRequisito)
                {
                    usuario.EquiparItem(item);
                    return(true);
                }
                else
                {
                    await ctx.RespondAsync($"Você precisa de {item.ProficienciaNivelRequisito} pontos em {item.Proficiencia.ToString()} para usar [{item.Nome}] {ctx.User.Mention}!".Bold());

                    return(false);
                }
            }
            usuario.EquiparItem(item);
            return(true);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 /// <summary>
 /// Edita um jogador que esteja salvo no banco de dados.
 /// </summary>
 /// <param name="jogador"></param>
 public static void EditJogador(RPGJogador jogador) => ColecaoJogador.ReplaceOne(x => x.Id == jogador.Id, jogador);