Example #1
0
            void Start()
            {
                if (!cursed)
                {
                    edad            = (int)Random.Range(15, 101);
                    statusdelzombie = new zomboidinfo();
                    Rigidbody Zom;
                    Zom                  = this.gameObject.AddComponent <Rigidbody>();
                    Zom.constraints      = RigidbodyConstraints.FreezeAll;
                    Zom.useGravity       = false;
                    this.gameObject.name = "Demon";
                }
                else
                {
                    edad = statusdelzombie.edad;
                    this.gameObject.name = statusdelzombie.nombre;
                }

                StartCoroutine(buscadorpremium());
                dañorecibido        = GameObject.FindGameObjectWithTag("Hero").GetComponent <Hero>();
                followSpeed         = 10 / edad;
                this.gameObject.tag = "Demon";
                BodyParts bodyparts;

                bodyparts = (BodyParts)Random.Range(0, 5);
                Partes    = bodyparts.ToString();
                statusdelzombie.antojo = Partes;
                this.gameObject.GetComponent <Renderer>().material.color = Color.cyan;
            }
Example #2
0
            /// <summary>
            /// Se le asigna la informacio al zombie en caso de que el booleano del condicional sea falso
            /// se fija la edad en un rango aleatorio
            /// se crea una nueva instancia de la estructura que contiene los datos del zombie
            /// se fija otro rango aleatorio para ser usado a la hora de asignar el color del zombie
            /// se crea un rigidbody que sera asignado al zombie
            /// se le agrega el rigidbody declarado ante al zombie
            /// se accede a las costraits del rigidbody para frezear
            /// se deshabilita la gravedad del rigidbody
            /// se cambia el nombre del objeto
            /// si el booleano es verdareo simplemente se accede a la edad y al nombre
            /// se inicia la corutina que se encarga de buscar y seguir
            /// se le da una velociadad al zombie dependiendo de la edad asignada
            /// se cre un entero con un rango aleatorio el cual servira para asignar una parte del cuerpo al azar
            /// se usa la variable de tipo string declarada en la clase para convertir el item asignado del enum partes en un operador de tipo texto
            /// se accede una de las variables de la estructura en este caso entojo que representa el gusto del zombie para hacer que sea el item del enum que le haya tocado
            /// se crean los condicionales para acceder a este mismo objeto y poder cambiar su color en base al numero asignado
            /// </summary>
            void Start()
            {
                if (!cursed)
                {
                    edad        = (int)Random.Range(15, 101);
                    zombiestats = new zomboidinfo();
                    asigna      = Random.Range(0, 3);
                    Rigidbody Zom;
                    Zom                  = this.gameObject.AddComponent <Rigidbody>();
                    Zom.constraints      = RigidbodyConstraints.FreezeAll;
                    Zom.useGravity       = false;
                    this.gameObject.name = "Zombie";
                }
                else
                {
                    edad = zombiestats.edad;
                    this.gameObject.name = zombiestats.nombre;
                }

                StartCoroutine(seekingvictims());
                Daño                = GameObject.FindGameObjectWithTag("Hero").GetComponent <Hero>();
                followSpeed         = 10 / edad;
                this.gameObject.tag = "Zombie";
                BodyParts bodyparts;

                bodyparts          = (BodyParts)Random.Range(0, 5);
                Partes             = bodyparts.ToString();
                zombiestats.antojo = Partes;
                this.gameObject.GetComponent <Renderer>().material.color = Color.magenta;
            }
Example #3
0
    /// <summary>
    /// se crea la corutina encargada de medir las distancias entre el heroe y los npcs para y entregar la informacion al usuario
    /// dentro de la corutina se pregunta primero si los objetos poseen el el tag de zombie o villager
    /// se define la distanciaA y la distciaB
    /// las cuales pertenecen a las instacias de citizen y zombie estas son llevadas a cabo cada que finaliza el frame
    /// luego en los dos condicionales siguientes se calcula la distancia y en base a si esta mas cerca
    /// o lejos se entrega un texto sin embargo en esta parte solo se de escribe el mensaje pero no se entrega
    /// esta corutina se ejecuta cada 0.1 segundos
    /// </summary>
    /// <returns></returns>
    IEnumerator BuscaEntidades()
    {
        zombies  = GameObject.FindGameObjectsWithTag("Zombie");
        citizens = GameObject.FindGameObjectsWithTag("Villager");

        // Informacion sobre el villager
        foreach (GameObject item in citizens)
        {
            yield return(new WaitForEndOfFrame());

            civbody.Citizen componenteAldeano = item.GetComponent <civbody.Citizen>();
            if (componenteAldeano != null)
            {
                distanciaA = Mathf.Sqrt(Mathf.Pow((item.transform.position.x - transform.position.x), 2) + Mathf.Pow((item.transform.position.y - transform.position.y), 2) + Mathf.Pow((item.transform.position.z - transform.position.z), 2));
                if (distanciaA < 5f)
                {
                    tempus            = 0;
                    civinfo           = item.GetComponent <civbody.Citizen>().citizenstats;
                    TextVillager.text = "Hola, soy " + civinfo.nombre + " y tengo " + civinfo.edad.ToString() + " años";
                }
                if (tempus > 3)
                {
                    TextVillager.text = " ";
                }
            }
        }

        // Informacion sobre el zombie
        foreach (GameObject itemZ in zombies)
        {
            yield return(new WaitForEndOfFrame());

            zom.Zombie componenteZombie = itemZ.GetComponent <zom.Zombie>();
            if (componenteZombie != null)
            {
                distanciaB = Mathf.Sqrt(Mathf.Pow((itemZ.transform.position.x - transform.position.x), 2) + Mathf.Pow((itemZ.transform.position.y - transform.position.y), 2) + Mathf.Pow((itemZ.transform.position.z - transform.position.z), 2));
                if (distanciaB < 5f)
                {
                    tempus          = 0;
                    zombieinfo      = itemZ.GetComponent <zom.Zombie>().zombiestats;
                    TextZombie.text = "Waaaarrrr quiero comer " + zombieinfo.antojo;
                }
                if (tempus > 3)
                {
                    TextZombie.text = " ";
                }
            }
        }
        yield return(new WaitForSeconds(0.1f));

        StartCoroutine(BuscaEntidades());
    }