Example #1
0
 // Start is called before the first frame update
 void Start()
 {
     spr_render         = GetComponent <SpriteRenderer>();
     controller         = GetComponent <Patrulla>();
     spr_render.enabled = false;
     controller.enabled = false;
 }
Example #2
0
        private void crearPatrullas()
        {
            for (int i = 0; i < cantidadPatrullas; i++)
            {
                Patrulla patrulla = new Patrulla(i + 1, random);
                patrullas.Add(patrulla);
                if (patrullasOrdenadas.Count == 0)
                {
                    patrullasOrdenadas.Add(patrulla);
                }
                else if (patrulla.ProxRotura < patrullasOrdenadas[0].ProxRotura)
                {
                    patrullasOrdenadas.Insert(0, patrulla);
                }
                else if (patrulla.ProxRotura >= patrullasOrdenadas[i - 1].ProxRotura)
                {
                    patrullasOrdenadas.Add(patrulla);
                }
                else
                {
                    int index = 0;
                    for (int j = 0; j < patrullasOrdenadas.Count; j++)
                    {
                        if (patrulla.ProxRotura < patrullasOrdenadas[j].ProxRotura)
                        {
                            index = j;
                            break;
                        }
                    }

                    patrullasOrdenadas.Insert(index, patrulla);
                }
            }
        }
Example #3
0
        private void eventoLlegaPatrulla()
        {
            reloj  = patrullasOrdenadas[0].ProxRotura;
            evento = "Rotura patrulla";
            Patrulla patrulla = patrullasOrdenadas[0];

            patrullasOrdenadas.RemoveAt(0);
            patrulla.DiaRotura = reloj;

            //Si hay puestos libres
            if (puestosLibres.Count > 0)
            {
                PuestoTaller puesto = puestosLibres[0];
                ocuparPuesto(puesto, patrulla);
                puestosLibres.RemoveAt(0);
            }
            //Si no hay puestos libres
            else
            {
                patrulla.Estado     = 1;
                patrulla.ProxRotura = 0;
                cola.Add(patrulla);
                if (colaMaxima == 0 || cola.Count > colaMaxima)
                {
                    colaMaxima = cola.Count;
                }
            }
        }
Example #4
0
 void Start()
 {
     anim      = GetComponent <Animator>();
     patrulla  = GetComponent <Patrulla>();
     vidaEnemy = GetComponent <ZombieLife>();
     rb        = GetComponent <Rigidbody2D>();
     miScale   = GetComponent <Transform>();
 }
Example #5
0
 //Probar enum y switch
 void Start()
 {
     parar          = true;
     patrulla       = GetComponent <Patrulla>();
     rayoEspalda    = true;
     rbSombi        = GetComponent <Rigidbody2D>();
     transformSombi = GetComponent <Transform>();
     vidaSombi      = GetComponent <ZombieLife>();
 }
Example #6
0
 void Start()
 {
     patrulla         = GetComponent <Patrulla>();
     rbSoldier        = GetComponent <Rigidbody2D>();
     transformSoldier = GetComponent <Transform>();
     if (enemigo)
     {
         enemigoIa = GetComponent <Enemigo>();
     }
 }
Example #7
0
        private void ocuparPuesto(PuestoTaller puesto, Patrulla patrulla)
        {
            patrulla.Estado     = 2;
            patrulla.ProxRotura = 0;
            patrulla.Rnd        = 0;

            int finReparacion = puesto.calcularProxFinReparacion(reloj, random);

            puesto.Estado   = 1;
            puesto.Patrulla = patrulla;
            ordenarPuestoOcupado(puesto);
        }
Example #8
0
        private void liberarPatrulla(Patrulla patrulla)
        {
            patrulla.Estado = 0;
            patrulla.calcularProxRotura(reloj, random);
            patrullasOrdenadas.Add(patrulla);
            int tiempoRota = reloj - patrulla.DiaRotura;

            if (tMaxPatrullaRota == 0 || tiempoRota > tMaxPatrullaRota)
            {
                tMaxPatrullaRota = tiempoRota;
            }
            cantidadReparaciones++;
            tAcReparaciones   += tiempoRota;
            promTReparacion    = (double)tAcReparaciones / cantidadReparaciones;
            patrulla.DiaRotura = 0;
        }
Example #9
0
        private void renderPatrullas(int iteracion)
        {
            DataGridViewRow row = (DataGridViewRow)this.dataGridView1.Rows[0].Clone();

            row.Cells[0].Value = iteracion;
            row.Cells[1].Value = evento;
            row.Cells[2].Value = reloj;

            for (int i = 3; i < patrullas.Count * 4 + 1; i += 4)
            {
                Patrulla patrulla = patrullas[i / 4];
                row.Cells[i].Value     = patrulla.getEstadoString();
                row.Cells[i + 1].Value = patrulla.Rnd != 0 ? patrulla.Rnd.ToString() : "-";
                row.Cells[i + 2].Value = patrulla.ProxRotura != 0 ? "Día " + patrulla.ProxRotura : "-";
                row.Cells[i + 3].Value = patrulla.DiaRotura != 0 ? patrulla.DiaRotura.ToString() : "-";
            }
            this.dataGridView1.Rows.Add(row);
        }
Example #10
0
        private void eventoFinReparacion()
        {
            reloj  = puestosOcupados[0].ProxFinReparacion;
            evento = "Fin reparación";
            PuestoTaller puestoDesocupado   = puestosOcupados[0];
            Patrulla     patrullaRecuperada = puestoDesocupado.Patrulla;

            liberarPatrulla(patrullaRecuperada);

            puestosOcupados.RemoveAt(0);

            //Si hay cola
            if (cola.Count > 0)
            {
                ocuparPuesto(puestoDesocupado, cola[0]);
                cola.RemoveAt(0);
            }
            //Si no hay cola
            else
            {
                liberarPuesto(puestoDesocupado);
            }
        }
Example #11
0
 // Update is called once per frame
 void Update()
 {
     //obtiene el script de patrullla
     patrol = GetComponent <Patrulla>();
     //cabio de escala al cambiar de direccion
     if (hero.transform.localScale.x < 0)
     {
         direccion = 1;
     }
     else
     {
         direccion = -1;
     }
     tiempo = tiempo + Time.deltaTime;
     //retorno al color normal pasado el tiempo del contador
     if (tiempo > 0.5f)
     {
         normal.material.color = Color.white;
         tiempo = 0;
     }
     //condicion para la muerte del enemigo
     if (HP <= 0)
     {
         AnalyticsEvent.Custom("Matar Lanzador Enemigos", null);
         Tullip.Enemigos = Tullip.Enemigos + 1;
         Muerto          = true;
         GetComponent <CircleCollider2D>().enabled = false;
         GetComponent <SpriteRenderer>().enabled   = false;
         Actuador.Invoke();
     }
     //de lo contrario continua con su estado de patrulla
     if (!Muerto)
     {
         detecta();
     }
 }
    public void LiderarPatrulla(Patrulla patrulla)
    {
        if (Time.time > patrulla.reconsiderarPatrullaCuando)
        {
            patrulla.reconsiderarPatrullaCuando = Time.time + Random.Range(reconsiderarPatrullaCada[0], reconsiderarPatrullaCada[1]);
            if (Random.value < chanceDetenerse)
            {
                patrulla.destinoPatrulla = patrulla.PosLider;
            }
            else
            {
                var pos = LayoutEnMundo.PuntoRandomEnLayoutEnMapa();

                if (NavMesh.SamplePosition(LayoutEnMundo.TransformPoint(pos.x, 0f, pos.y), out hit, samplerRange, NavMesh.AllAreas))
                {
                    patrulla.destinoPatrulla = hit.position;
                }
                else
                {
                    patrulla.destinoPatrulla = patrulla.PosLider;
                }
            }
        }
    }
Example #13
0
    public void procesarDatos(string data)
    {
        try
        {
            Debug.Log("Inicio");
            Debug.Log(data);

            string key = "";
            int    i   = 0;
            for (i = 0; i < data.Length && data[i] != ','; i++)
            {
                key += data[i];
            }
            //ERROR
            i++;
            data = data.Remove(0, i);

            //Debug.Log(key);

            int validar = 0;
            if (data[validar] != 'E')
            {
                // Guardando ruta en matriz
                List <List <float> > list2 = new List <List <float> >();
                i = 0;
                string valor_x;
                string valor_y;
                //ERROR
                while (data.Length != 1) // El msj tiene un caracter extra¿?
                {
                    // Saca el valor de x
                    i       = 0;
                    valor_x = "";
                    while (data[i] != '_')
                    {
                        valor_x += data[i];
                        i++;
                    }
                    i++;
                    data = data.Remove(0, i);

                    // Saca el valor de y
                    i       = 0;
                    valor_y = "";
                    while (data[i] != '/')
                    {
                        valor_y += data[i];
                        i++;
                    }
                    i++;
                    data = data.Remove(0, i);

                    // Push, valor_x, valor_y
                    List <float> list1 = new List <float>();
                    list1.Add(PlayerMovement.escaleToClientX(Int16.Parse(valor_x)) + 0.5f);
                    list1.Add(PlayerMovement.escaleToClientY(Int16.Parse(valor_y)) + 0.5f);
                    list2.Add(list1);
                }

                Patrulla valor = Patrulla.gameObjects[Int16.Parse(key)].GetComponent <Patrulla>();
                valor.lista_matriz   = list2;
                valor.follow         = false;
                valor.enviar_mensaje = false;
                valor.currentTarget  = 0;

                Debug.Log("Fin");
            }
        }
        catch (IndexOutOfRangeException)
        {
            Debug.Log("Index error.");
        }
    }