Esempio n. 1
0
 void ColocarValoresNoInfografico(Criatura criatura)
 {
     GenerationText.text = criatura.Generation.ToString();
     ComidaText.text     = criatura.FoodAmount.ToString();
     GenesText.text      = criatura.Genes.Velocidade + "\n" + criatura.Genes.Visao + "\n" + criatura.Genes.VontadeDeAcasalamento + "\n" + criatura.Genes.Inteligencia + "\n" + criatura.Genes.Saude;
     StartCoroutine(KeepInfogrValuesUpdated(criatura));
 }
Esempio n. 2
0
    private bool AddCreature(Criatura criatura, Draggable draggable)
    {
        if (criatura1)
        {
            if (criatura2)
            {
                return(false);
            }
            else
            {
                img2.OnReceivingCreature(criatura);
                criatura2 = criatura;
            }
        }
        else
        {
            img1.OnReceivingCreature(criatura);
            criatura1 = criatura;
        }

        draggable.criatura.SetActive(false);         //desliga o bicho

        draggable.combinator.transform.DOScale(originalSize * sizeScaler, delay);
        draggable.combinator.transform.DOScale(originalSize, delay);

        return(true);
    }
Esempio n. 3
0
    /// <summary>
    /// Función que se llama cuando se ataca a un ente mágico.
    /// </summary>
    /// <param name="criaturaAtacante">Criatura atacante.</param>
    /// <param name="magicaObjetivo">Magica objetivo.</param>
    public void AtacarMagica(Criatura criaturaAtacante, Magica magicaObjetivo)
    {
        JugadorPartida objetivo = ObtenerDueñoEnte(magicaObjetivo);

        controladorEnte.AtacarMagica(criaturaAtacante, magicaObjetivo);
        controladorJugador.QuitarVidaJugador(objetivo, criaturaAtacante.Ataque);
    }
Esempio n. 4
0
    //Para gerar o filho
    private void TerFilho(Criatura outro)
    {
        //deduzir comida
        GastarComida(MinFoodParaAcasalar + (100 - Genes.VontadeDeAcasalamento) * CustoDeAcasalamento);
        outro.GastarComida(MinFoodParaAcasalar + (100 - outro.Genes.VontadeDeAcasalamento) * CustoDeAcasalamento);


        DNA      dnaDoFilho = new DNA(outro.Genes.ToArray(), Genes.ToArray(), manager.MutationChance, manager.MutationRate);
        Criatura filho      = Instantiate(prefabDoFilho, transform.position, transform.rotation, transform.parent).GetComponent <Criatura>();

        filho.transform.localScale = Vector3.one * 0.5f;
        filho.Genes       = dnaDoFilho;
        filho.Generation += Generation > outro.Generation ? Generation : outro.Generation;
        filho.FoodAmount  = 2 * MinFoodParaAcasalar + (100 - Genes.VontadeDeAcasalamento) * CustoDeAcasalamento + (100 - outro.Genes.VontadeDeAcasalamento) * CustoDeAcasalamento;

        //tira os pais do modo apaixonado
        Apaixonado = false;
        Passivo    = false;

        outro.Apaixonado = false;
        outro.Passivo    = false;

        //coloca o casal pra descansar
        IndisponivelParaNamoro = true;
        Invoke("VoltarAoRomance", descansoPosBebe);

        outro.IndisponivelParaNamoro = true;
        outro.Invoke("VoltarAoRomance", descansoPosBebe);
    }
Esempio n. 5
0
    /// <summary>
    /// Muestra la accion (ataque, defensa, activar) correspondiente al ente en la batalla.
    /// </summary>
    /// <param name="idEnte">Identifier ente.</param>
    public void MostrarAccion(int idEnte)
    {
        Ente ente = Recursos.EntesCreadosEnElJuego[idEnte];

        if (ente.GetType() == typeof(Magica))
        {
            //Si la magica es de tipo trampa no debe salir la opcion de activar voluntariamente
            if (EntePreparado(ente) && !EsMagicaTrampa(ente))
            {
                AccionesPopUp.Instance.MostrarAccionEfecto();
                AccionesPopUp.Instance.RegistrarCallBack(ActivarEfectoMagica, idEnte);
            }
        }
        else
        {
            Criatura criatura = (Criatura)ente;
            if (criatura.PosicionCriatura.Equals(PosicionCriatura.ATAQUE))
            {
                if (!CriaturaHaAtacado(criatura))
                {
                    AccionesPopUp.Instance.MostrarAccionDefensa();
                }
            }
            else
            {
                AccionesPopUp.Instance.MostrarAccionAtaque();
            }
            AccionesPopUp.Instance.RegistrarCallBack(CambiarPosicionCriatura, idEnte);
        }
    }
Esempio n. 6
0
    /// <summary>
    /// Permite jugar un ente para el bot.
    /// </summary>
    /// <returns><c>true</c>, if ente was jugared, <c>false</c> otherwise.</returns>
    bool JugarEnte()
    {
        bool movimientoHecho = false;

        for (int i = 0; i < NumEntesEnLaMesa() && !movimientoHecho; i++)
        {
            Ente cl = EntesEnLaMesa() [i];
            if (Controlador.Instance.EntePuedeUsarse(cl))
            {
                // attack a random target with a creature
                if (cl.GetType() == typeof(Magica))
                {
                    if (!((Magica)cl).EfectoActivado)
                    {
                        if (!Controlador.Instance.EsMagicaTrampa(cl))
                        {
                            Controlador.Instance.ActivarEfectoMagica(cl.ID);
                            movimientoHecho = true;
                        }
                    }
                }
                else
                {
                    Criatura criatura = (Criatura)cl;
                    if (criatura.PosicionCriatura.Equals(PosicionCriatura.ATAQUE))
                    {
                        if (!Controlador.Instance.CriaturaHaAtacado(criatura))
                        {
                            JugadorPartida enemigo = Controlador.Instance.OtroJugador(this);
                            if (enemigo.NumEntesEnLaMesa() > 0)
                            {
                                int  index        = Random.Range(0, enemigo.NumEntesEnLaMesa());
                                Ente enteObjetivo = enemigo.EntesEnLaMesa() [index];
                                if (enteObjetivo.GetType() == typeof(Criatura) || (enteObjetivo.GetType() == typeof(Magica) && !((Magica)enteObjetivo).EfectoActivado))
                                {
                                    Controlador.Instance.AtacarEnte(cl.ID, enteObjetivo.ID);
                                    movimientoHecho = true;
                                }
                            }
                            else
                            {
                                Controlador.Instance.AtacarJugador(cl.ID, enemigo.ID);
                                movimientoHecho = true;
                            }
                        }
                    }
                    else
                    {
                        Controlador.Instance.CambiarPosicionCriatura(criatura.ID);
                        movimientoHecho = true;
                    }
                }
            }
        }
        if (movimientoHecho)
        {
            InsertDelay(1f);
        }
        return(movimientoHecho);
    }
Esempio n. 7
0
    /// <summary>
    /// Función que permite que la criatura ataque al jugador.
    /// </summary>
    /// <param name="idCriaturaAtacante">Identifier criatura atacante.</param>
    /// <param name="idJugadorObjetivo">Identifier jugador objetivo.</param>
    public void AtacarJugador(int idCriaturaAtacante, int idJugadorObjetivo)
    {
        Criatura       atacante = (Criatura)Recursos.EntesCreadosEnElJuego[idCriaturaAtacante];
        JugadorPartida jugador  = Controlador.Instance.Local.ID == idJugadorObjetivo ? Controlador.Instance.Local : Controlador.Instance.Enemigo;

        atacante.HaAtacado = true;
        controladorJugador.AtacarJugador(atacante, jugador);
    }
Esempio n. 8
0
    /// <summary>
    /// Jugar una carta de la mano en el tablero no mágica
    /// </summary>
    /// <param name="cartaJugada"></param>
    /// <param name="tablePos"></param>
    /// <param name="posicionAtaque"></param>
    public void JugarCartaMano(JugadorPartida jugador, CartaPartida cartaJugada, int tablePos, bool posicionAtaque)
    {
        //ELIMINATE
        RestarManaCarta(jugador, cartaJugada);
        Criatura newCreature = new Criatura(jugador.Area, cartaJugada.AssetCarta, posicionAtaque == true ? PosicionCriatura.ATAQUE : PosicionCriatura.DEFENSA);

        JugarCarta(jugador, cartaJugada, newCreature, tablePos);
    }
Esempio n. 9
0
 public virtual void Comer(Criatura cliente)
 {
     if (!Comido)
     {
         StartCoroutine(ReduceToZero(transform, FadeRate));
         Comido = true;
     }
 }
Esempio n. 10
0
 public CreatureData(Criatura criatura)
 {
     ID          = criatura.ID;
     position    = new float[3];
     position[0] = criatura.transform.position.x;
     position[1] = criatura.transform.position.y;
     position[2] = criatura.transform.position.z;
 }
Esempio n. 11
0
 public override void Comer(Criatura cliente)
 {
     if (!Comido)
     {
         cliente.FoodAmount += valorNutricional;
         base.Comer(cliente);
     }
 }
Esempio n. 12
0
 private static void PrintCriatura(Criatura criatura)
 {
     Console.WriteLine($"Uma nova criatura foi construída: " +
                       $"\nNome: {criatura.nome}" +
                       $"\nAtributos: {PrintAtributos(criatura)}" +
                       $"\nRaridade: {criatura.raridade}" +
                       $"\nAfiliação: {criatura.afiliacao}");
 }
Esempio n. 13
0
    public void OnReceivingCreature(Criatura criatura)
    {
        var spriteRenderer = criatura.GetComponent <SpriteRenderer>();

        m_Image.enabled = true;
        m_Image.sprite  = spriteRenderer.sprite;
        m_Image.color   = spriteRenderer.color;
    }
Esempio n. 14
0
 /// <summary>
 /// Permite quitar vida a una criatura.
 /// </summary>
 /// <param name="objetivo">Objetivo.</param>
 /// <param name="daño">Daño.</param>
 public void QuitarVidaCriatura(Criatura objetivo, int daño)
 {
     new DealDamageCommand(objetivo.ID, daño, objetivo.Defensa).AñadirAlaCola();
     objetivo.Defensa -= daño;
     if (CriaturaMuerta(objetivo))
     {
         MuerteEnte(objetivo.ID);
     }
 }
Esempio n. 15
0
 /// <summary>
 /// Permite atacar a una criatura a partir de otro ente
 /// </summary>
 /// <param name="idAtacante"></param>
 /// <param name="idObjetivo"></param>
 public void AtacarCriatura(Criatura atacante, Criatura objetivo)
 {
     atacante.AtaquesRestantesEnTurno--;
     new CreatureAttackCommand(objetivo.ID, atacante.ID, atacante.Ataque, objetivo.Defensa).AñadirAlaCola();
     objetivo.Defensa -= atacante.Ataque;
     if (CriaturaMuerta(objetivo))
     {
         MuerteEnte(objetivo.ID);
     }
 }
Esempio n. 16
0
 /// <summary>
 /// Permite atacar de cara al jugador.
 /// </summary>
 /// <param name="atacante">Atacante.</param>
 /// <param name="jugadorObjetivo">Jugador objetivo.</param>
 public void AtacarJugador(Criatura atacante, JugadorPartida jugadorObjetivo)
 {
     atacante.AtaquesRestantesEnTurno--;
     new CreatureAttackCommand(jugadorObjetivo.ID, atacante.ID, atacante.Ataque, jugadorObjetivo.Defensa).AñadirAlaCola();
     jugadorObjetivo.Defensa -= atacante.Ataque;
     if (JugadorMuerto(jugadorObjetivo))
     {
         MuerteJugador(jugadorObjetivo);
     }
 }
Esempio n. 17
0
        private static string PrintAtributos(Criatura criatura)
        {
            var retorno = new StringBuilder();

            foreach (var atributo in criatura.atributos)
            {
                retorno.Append($"\nTipo: {atributo.Nome}");
                retorno.Append($"\nValor: {atributo.Valor}");
            }
            return(retorno.ToString());
        }
Esempio n. 18
0
    public override void Comer(Criatura cliente)
    {
        if (!Comido)
        {
            Criatura minhaCriatura = GetComponent <Criatura>();
            GetComponent <NavMeshAgent>().enabled = false;
            //cliente.FoodAmount += minhaCriatura.FoodAmount;
            cliente.FoodAmount   += valorNutricional;
            minhaCriatura.enabled = false;

            base.Comer(cliente);
        }
    }
Esempio n. 19
0
 IEnumerator KeepInfogrValuesUpdated(Criatura criatura)
 {
     while (Input.GetButton("Fire1"))
     {
         if (criatura == null)
         {
             Infografico.SetActive(false);
         }
         IdadeText.text  = (int)(Time.time - criatura.BirthTime) + "/" + criatura.Genes.Saude * criatura.TempoDeVida;
         ComidaText.text = criatura.FoodAmount.ToString();
         yield return(new WaitForEndOfFrame());
     }
 }
Esempio n. 20
0
    /// <summary>
    /// Permite dañar una criatura sin mostrar un ataque visual, en caso de que se encuentre en defensa y
    /// muera se quita vida al jugador, en ataque siempre se quita vida al jugador.
    /// </summary>
    /// <param name="criaturaObjetivo">Criatura objetivo.</param>
    /// <param name="daño">Daño.</param>
    public void DañarCriatura(Criatura criaturaObjetivo, int daño)
    {
        JugadorPartida objetivo = ObtenerDueñoEnte(criaturaObjetivo);

        controladorEnte.QuitarVidaCriatura(criaturaObjetivo, daño);
        if (criaturaObjetivo.PosicionCriatura.Equals(PosicionCriatura.ATAQUE))
        {
            controladorJugador.QuitarVidaJugador(objetivo, daño);
        }
        else if (criaturaObjetivo.PosicionCriatura.Equals(PosicionCriatura.DEFENSA) && controladorEnte.CriaturaMuerta(criaturaObjetivo))
        {
            controladorJugador.QuitarVidaJugador(objetivo, criaturaObjetivo.Defensa);
        }
    }
Esempio n. 21
0
    /// <summary>
    /// Cambia la posicion de una criatura.
    /// </summary>
    /// <param name="idCriatura">Identifier criatura.</param>
    public void CambiarPosicionCriatura(int idCriatura)
    {
        Criatura criatura = (Criatura)Recursos.EntesCreadosEnElJuego[idCriatura];

        if (criatura.PosicionCriatura.Equals(PosicionCriatura.ATAQUE))
        {
            criatura.PosicionCriatura = PosicionCriatura.DEFENSA;
            new ChangeCreaturePosition(idCriatura, PosicionCriatura.DEFENSA).AñadirAlaCola();
        }
        else
        {
            criatura.PosicionCriatura = PosicionCriatura.ATAQUE;
            new ChangeCreaturePosition(idCriatura, PosicionCriatura.ATAQUE).AñadirAlaCola();
        }
    }
Esempio n. 22
0
    /// <summary>
    /// Permite atacar a una criatura, mostrándose la animación de ataque.
    /// </summary>
    /// <param name="criaturaAtacante">Criatura atacante.</param>
    /// <param name="criaturaObjetivo">Criatura objetivo.</param>
    public void AtacarCriatura(Criatura criaturaAtacante, Criatura criaturaObjetivo)
    {
        JugadorPartida objetivo = ObtenerDueñoEnte(criaturaObjetivo);

        controladorEnte.AtacarCriatura(criaturaAtacante, criaturaObjetivo);
        if (criaturaObjetivo.PosicionCriatura.Equals(PosicionCriatura.ATAQUE))
        {
            controladorJugador.QuitarVidaJugador(objetivo, criaturaAtacante.Ataque);
            controladorEnte.QuitarVidaCriatura(criaturaAtacante, criaturaObjetivo.Ataque);
        }
        else if (criaturaObjetivo.PosicionCriatura.Equals(PosicionCriatura.DEFENSA) && controladorEnte.CriaturaMuerta(criaturaObjetivo))
        {
            controladorJugador.QuitarVidaJugador(objetivo, System.Math.Abs(criaturaObjetivo.Defensa));
        }
    }
Esempio n. 23
0
        public Criatura Buscar(int c)
        {
            using (SqlConnection conn = new SqlConnection(@"Initial Catalog=HNI;Data Source = localhost; Integrated Security=SSPI"))
            {
                string strSQL = @"SELECT * FROM Criatura where Id = '" + c + "'";

                using (SqlCommand cmd = new SqlCommand(strSQL))
                {
                    conn.Open();
                    cmd.Connection  = conn;
                    cmd.CommandText = strSQL;
                    var dataReader = cmd.ExecuteReader();
                    var dt         = new DataTable();
                    dt.Load(dataReader);
                    conn.Close();

                    foreach (DataRow row in dt.Rows)
                    {
                        var cri = new Criatura()
                        {
                            Id            = Convert.ToInt32(row["Id"]),
                            Nome          = row["Nome"].ToString(),
                            Imagem        = row["Imagem"].ToString(),
                            Descricao     = row["Desc"].ToString(),
                            Mana          = Convert.ToInt32(row["Mana"]),
                            Hp            = Convert.ToInt32(row["Hp"]),
                            AtkF          = Convert.ToInt32(row["AtkF"]),
                            AtkM          = Convert.ToInt32(row["AtkM"]),
                            Def           = Convert.ToInt32(row["Def"]),
                            Exp           = Convert.ToInt32(row["Exp"]),
                            Ouro          = Convert.ToInt32(row["Ouro"]),
                            Agressividade = row["Agressividade"].ToString(),
                            Perigo        = row["Perigo"].ToString(),
                            Bando         = row["Bando"].ToString(),
                            Classificacao = row["Classificacao"].ToString()
                        };
                        return(cri);
                    }
                }
            }
            Criatura ca = new Criatura();

            return(ca);
        }
Esempio n. 24
0
    private bool AddCreature(Criatura criatura, Draggable draggable)
    {
        if (!criatura1)
        {
            Debug.Log("chegou aqui");
            img1.OnReceivingCreature(criatura);
            criatura1 = criatura;
        }
        else
        {
            return(false);
        }

        draggable.criatura.SetActive(false);         //desliga o bicho

        draggable.analyzer.transform.DOScale(originalSize * sizeScaler, delay);
        draggable.analyzer.transform.DOScale(originalSize, delay);

        return(true);
    }
Esempio n. 25
0
    /// <summary>
    /// Función que permite atacar a un ente.
    /// </summary>
    /// <param name="idAtacante">Identifier atacante.</param>
    /// <param name="idObjetivo">Identifier objetivo.</param>
    public void AtacarEnte(int idAtacante, int idObjetivo)
    {
        Ente atacante = Recursos.EntesCreadosEnElJuego[idAtacante];
        Ente objetivo = Recursos.EntesCreadosEnElJuego[idObjetivo];

        if (atacante.GetType() == typeof(Criatura))
        {
            ((Criatura)atacante).HaAtacado = true;
        }

        if (objetivo.GetType() == typeof(Criatura))
        {
            Criatura criaturaObjetivo = (Criatura)objetivo;
            AtacarCriatura((Criatura)atacante, criaturaObjetivo);
        }
        else
        {
            ActivarEfectoMagica(idObjetivo, idAtacante);
        }
    }
Esempio n. 26
0
    /// <summary>
    /// Activa el efecto de una mágica, en función de su tipo hará una cosa u otra.
    /// </summary>
    /// <param name="idMagica">Identifier magica.</param>
    /// <param name="idAtacante">Identifier atacante.</param>
    public void ActivarEfectoMagica(int idMagica, int idAtacante)
    {
        Criatura       criaturaAtacante = null;
        JugadorPartida jugador          = null;
        Magica         magica           = (Magica)Recursos.EntesCreadosEnElJuego[idMagica];

        if (idAtacante != -1)
        {
            criaturaAtacante = (Criatura)Recursos.EntesCreadosEnElJuego [idAtacante];
            AtacarMagica(criaturaAtacante, magica);
        }

        new ActivateEffectCommand(idMagica).AñadirAlaCola();
        magica.EfectoActivado = true;
        switch (magica.AssetCarta.Efecto)
        {
        case Efecto.Destructor:
            jugador = Controlador.Instance.ObtenerDueñoEnte(magica);
            DamageAllCreatures(Controlador.Instance.OtroJugador(jugador), 100);
            break;

        case Efecto.Espejo:
            DealDamageToTarget(criaturaAtacante, criaturaAtacante.AssetCarta.Ataque);
            break;

        case Efecto.Mana:
            jugador = Controlador.Instance.ObtenerDueñoEnte(magica);
            GiveManaBonus(jugador, Random.Range(1, 3));
            break;

        case Efecto.Vida:
            jugador = Controlador.Instance.ObtenerDueñoEnte(magica);
            GiveHealth(jugador, Random.Range(60, 181));
            break;

        default:
            break;
        }

        //MuerteEnte(magica.ID);
    }
Esempio n. 27
0
    private void Update()
    {
        if (!GraphShown)
        {
            //se houver clique
            if (Input.GetButtonDown("Fire1"))
            {
                //enviar ray da posição do mouse
                var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out RaycastHit hit))
                {
                    Criatura criatura = hit.transform.GetComponent <Criatura>();
                    if (criatura)
                    {
                        //focar na criatura
                        movement.DefinirTarget(criatura.transform);

                        //colocar os valores do gene na UI
                        ColocarValoresNoInfografico(criatura);

                        //exibi-la
                        Infografico.SetActive(true);
                    }
                }
            }
            else if (Input.GetButtonUp("Fire1"))
            {
                movement.ResetTarget();
                Infografico.SetActive(false);
            }
        }
        else
        {
            Infografico.SetActive(false);
        }
    }
 public void Reset()
 {
     this.criatura = new Criatura();
 }
Esempio n. 29
0
 /// <summary>
 /// Permite atacar a una mágica.
 /// </summary>
 /// <param name="atacante">Atacante.</param>
 /// <param name="objetivo">Objetivo.</param>
 public void AtacarMagica(Criatura atacante, Magica objetivo)
 {
     atacante.AtaquesRestantesEnTurno--;
     new CreatureAttackCommand(objetivo.ID, atacante.ID, atacante.Ataque, objetivo.Defensa).AñadirAlaCola();
     //MuerteEnte(objetivo.ID);
 }
Esempio n. 30
0
    //Chamado em intervalos que dependem da sua inteligencia
    private void Pensar()
    {
        //o personagem está "ocupado", adiar
        if (Apaixonado)
        {
            Invoke("Pensar", 3f);
        }

        else
        {
            //cobrar o preço energético
            GastarComida(Genes.GetCost() * custoEnergeticoMultiplyer);
            //FoodAmount -= Genes.GetCost();

            TargetTransform = null;
            TargetType      = "";


            //se não estiver DESESPERADO por comida, procura predador
            if (FoodAmount > Genes.GetCost() * custoEnergeticoMultiplyer)
            {
                Transform inimigo = SearchFor("Inimigo", Genes.Visao * QualidadeDaVisao);
                if (inimigo != null)
                {
                    //fugir
                    TargetPos = (transform.position - inimigo.position).normalized * Genes.Visao * QualidadeDaVisao / 2;
                }
            }

            //se tiver comida o suficiente, procurar parceiro
            if (PodeReproduzir() && TargetType == "")
            {
                Transform parceiroT = SearchFor("Parceiro", Genes.Visao * QualidadeDaVisao * 2);
                if (parceiroT != null)
                {
                    Criatura parceiro = parceiroT.GetComponent <Criatura>();
                    //enviar msg para o parceiro
                    if (parceiro.QuerCasarComigo(transform))
                    {
                        //o parceiro aceitou!
                        Apaixonado = true;
                        //andar até ele
                        TargetTransform = parceiroT;
                        TargetType      = "Parceiro";
                        //emitir corações
                        LoveParticles.Play();
                    }
                }
            }

            //se não tiver comida suficiente ou não achar parceiro, procurar comida
            if (FoodAmount < MaxFoodAmount && !Apaixonado && TargetType == "")
            {
                Transform comidaT = SearchFor("Comida", Genes.Visao * QualidadeDaVisao);
                if (comidaT != null)
                {
                    //achou comida!
                    Comida comida = comidaT.GetComponent <Comida>();
                    if (comida.Comido == false)
                    {
                        TargetTransform = comidaT;
                        TargetType      = "Comida";
                    }
                }
            }

            //se não conseguir comida nem namoro, vagar
            if (TargetTransform == null)
            {
                if (TargetType == "Inimigo")
                {
                    DeterminarDestino(TargetPos);
                }
                else
                {
                    TargetType = "";
                    TargetPos  = new Vector3(
                        transform.position.x + Random.Range(-VagarDistancia, VagarDistancia),
                        transform.position.y,
                        transform.position.z + Random.Range(-VagarDistancia, VagarDistancia));
                    DeterminarDestino(TargetPos);
                }
            }
            else
            {
                DeterminarDestino(TargetTransform.position);
            }



            //pensar novamente depois
            //"2" é o tempo mínimo de descanso
            Invoke("Pensar", 2 + ((100 - Genes.Inteligencia) / 10));
        }
    }