Exemplo n.º 1
0
        private int VerificarRampa1Rotacion270(int x, int z, float altura, Assets.Casilla[,] casillas)
        {
            if (Limites.Comprobar(z - 1, 2, Escenario.instancia.tamañoEscenarioZ) == true)
            {
                if (casillas[x, z - 1] != null)
                {
                    if (Escenario.instancia.CalcularIDFinal(casillas[x, z - 1].id) < 5 && casillas[x, z - 1].idDebug != 99)
                    {
                        Assets.Isla isla = casillas[x, z - 1].isla;

                        Assets.Casilla rampa = new Assets.Casilla(5, 270, new Vector3(x, altura, z));
                        rampa.isla    = isla;
                        rampa.idDebug = 99;
                        Escenario.instancia.PonerCasilla(rampa);

                        return(1);
                    }
                }
            }

            return(0);
        }
Exemplo n.º 2
0
        private int VerificarEsquina2Rotacion180(int x, int z, float altura, Assets.Casilla[,] casillas)
        {
            if (Limites.Comprobar(x + 1, 2, Escenario.instancia.tamañoEscenarioX) == true && Limites.Comprobar(z + 1, 2, Escenario.instancia.tamañoEscenarioZ) == true)
            {
                if (casillas[x + 1, z + 1] != null && ComprobarCosta(casillas[x + 1, z]) == 1 && ComprobarCosta(casillas[x, z + 1]) == 1)
                {
                    if (Escenario.instancia.CalcularIDFinal(casillas[x + 1, z + 1].id) < 5 && casillas[x + 1, z + 1].idDebug != 99)
                    {
                        Assets.Isla isla = casillas[x + 1, z + 1].isla;

                        Assets.Casilla esquina = new Assets.Casilla(6, 180, new Vector3(x, altura, z));
                        esquina.isla    = isla;
                        esquina.idDebug = 99;
                        Escenario.instancia.PonerCasilla(esquina);

                        return(1);
                    }
                }
            }

            return(0);
        }
Exemplo n.º 3
0
        public void Generar(Assets.Casilla[,] casillas, Assets.Isla islaCero, Assets.Objeto[] herramientas)
        {
            int x = ((int)islaCero.coordenadasMinimas.x + (int)islaCero.extensionMaxima.x) / 2;
            int z = ((int)islaCero.coordenadasMinimas.y + (int)islaCero.extensionMaxima.y) / 2;

            if (casillas[x, z] != null)
            {
                Vector3 posicion = casillas[x, z].prefab.gameObject.transform.position;
                casillas[x, z].recursoPosible = false;

                if (casillas[x, z].id != 0)
                {
                    posicion.y = posicion.y + 1f;
                }

                Jugador.Movimientos.instancia.transform.position = posicion;
            }

            if (herramientas != null)
            {
                if (herramientas.Length > 0)
                {
                    int i = 0;
                    while (i < herramientas.Length)
                    {
                        Jugador.Inventario.Inventario.instancia.AñadirObjeto(herramientas[i]);

                        if (i == 0)
                        {
                            Jugador.Inventario.Inventario.instancia.SeleccionarObjeto(i);
                            Jugador.Inventario.Inventario.instancia.EquiparBoton(true);
                        }

                        i += 1;
                    }
                }
            }
        }
Exemplo n.º 4
0
        //-------------------------------------

        private void VerificarHuecos(int x, int z, float altura, Assets.Casilla[,] casillas)
        {
            if (Limites.Comprobar(z + 1, 2, Escenario.instancia.tamañoEscenarioX) == true && Limites.Comprobar(z - 1, 2, Escenario.instancia.tamañoEscenarioZ) == true)
            {
                if (ComprobarCosta(casillas[x, z + 1]) == 2 && ComprobarCosta(casillas[x, z - 1]) == 2)
                {
                    Assets.Isla isla = casillas[x, z + 1].isla;

                    Assets.Casilla plano = new Assets.Casilla(0, 0, new Vector3(x, altura + 0.5f, z));
                    plano.isla = isla;
                    Escenario.instancia.PonerCasilla(plano);
                }
            }

            if (Limites.Comprobar(x + 1, 2, Escenario.instancia.tamañoEscenarioX) == true && Limites.Comprobar(x - 1, 2, Escenario.instancia.tamañoEscenarioZ) == true)
            {
                if (ComprobarCosta(casillas[x + 1, z]) == 2 && ComprobarCosta(casillas[x - 1, z]) == 2)
                {
                    Assets.Isla isla = casillas[x + 1, z].isla;

                    Assets.Casilla plano = new Assets.Casilla(0, 0, new Vector3(x, altura + 0.5f, z));
                    plano.isla = isla;
                    Escenario.instancia.PonerCasilla(plano);
                }
            }

            if (Limites.Comprobar(x + 1, 2, Escenario.instancia.tamañoEscenarioX) == true && Limites.Comprobar(x - 1, 2, Escenario.instancia.tamañoEscenarioX) == true && Limites.Comprobar(z + 1, 2, Escenario.instancia.tamañoEscenarioZ) == true && Limites.Comprobar(z - 1, 2, Escenario.instancia.tamañoEscenarioZ) == true)
            {
                if (ComprobarCosta(casillas[x + 1, z]) == 2 && ComprobarCosta(casillas[x, z + 1]) == 2 && ComprobarCosta(casillas[x - 1, z - 1]) == 2)
                {
                    Assets.Isla isla = casillas[x + 1, z].isla;

                    Assets.Casilla plano = new Assets.Casilla(0, 0, new Vector3(x, altura + 0.5f, z));
                    plano.isla = isla;
                    Escenario.instancia.PonerCasilla(plano);
                }
            }
        }
Exemplo n.º 5
0
        private void Casillas(Datos partida)
        {
            Escenario.Generar.Escenario.instancia.casillas = new Assets.Casilla[partida.escenario.tamañoEscenarioX, partida.escenario.tamañoEscenarioZ];

            int i = 0;

            while (i < partida.casillas.Length)
            {
                GameObject  prefab    = null;
                int         idCasilla = 0;
                Assets.Isla isla      = null;

                if (partida.casillas[i].idIsla != 9999)
                {
                    foreach (Assets.Isla isla2 in Gestor.instancia.islas)
                    {
                        if (partida.casillas[i].idIsla == isla2.id)
                        {
                            foreach (Assets.Casilla casilla in isla2.casillas)
                            {
                                if (partida.casillas[i].idCasilla == casilla.id)
                                {
                                    prefab    = casilla.prefab;
                                    idCasilla = casilla.id;
                                    isla      = isla2;
                                }
                            }
                        }
                    }
                }
                else
                {
                    Assets.Casilla agua = Escenario.Generar.Escenario.instancia.casillasDebug[Escenario.Generar.Escenario.instancia.casillasDebug.Length - 1];
                    prefab    = agua.prefab;
                    idCasilla = agua.id;
                }

                if (prefab != null)
                {
                    Vector3 posicionFinal = partida.casillas[i].coordenadas.ObtenerVector3();
                    int     x             = (int)posicionFinal.x;
                    int     z             = (int)posicionFinal.z;

                    if (partida.escenario.casillasEscala != 0.5f)
                    {
                        posicionFinal.x = (posicionFinal.x + posicionFinal.x * (partida.escenario.casillasEscala * 1.5f)) - (partida.escenario.tamañoEscenarioX / (partida.escenario.casillasEscala + 0.5f));
                        posicionFinal.y = posicionFinal.y + posicionFinal.y * (partida.escenario.casillasEscala * 1.5f);
                        posicionFinal.z = (posicionFinal.z + posicionFinal.z * (partida.escenario.casillasEscala * 1.5f)) - (partida.escenario.tamañoEscenarioZ / (partida.escenario.casillasEscala + 0.5f));
                    }

                    GameObject casilla2 = Instantiate(prefab, posicionFinal, Quaternion.identity);
                    casilla2.gameObject.transform.Rotate(Vector3.up, partida.casillas[i].rotacion, Space.World);
                    casilla2.gameObject.transform.localScale = new Vector3(partida.escenario.casillasEscala, partida.escenario.casillasEscala, partida.escenario.casillasEscala);

                    Assets.Casilla casilla3 = new Assets.Casilla(idCasilla, partida.casillas[i].rotacion, partida.casillas[i].coordenadas.ObtenerVector3());
                    casilla3.id     = idCasilla;
                    casilla3.prefab = casilla2;
                    casilla3.prefab.gameObject.layer = LayerMask.NameToLayer("Terreno");

                    Escenario.Generar.Escenario.instancia.casillas[x, z] = casilla3;

                    if (isla != null)
                    {
                        casilla3.isla = isla;

                        casilla3.recursoPuesto = partida.casillas[i].recursoPuesto;

                        if (partida.casillas[i].recursoPuesto == true)
                        {
                            GameObject recurso1 = Instantiate(isla.recursos[partida.casillas[i].recurso.id]);
                            recurso1.transform.SetParent(Escenario.Generar.Escenario.instancia.casillas[x, z].prefab.transform);
                            recurso1.transform.localPosition = partida.casillas[i].recurso.posicion.ObtenerVector3();
                            recurso1.gameObject.transform.Rotate(partida.casillas[i].recurso.rotacion.ObtenerVector3(), Space.World);

                            Escenario.Recurso recurso2 = recurso1.GetComponent <Escenario.Recurso>();
                            recurso2.cantidad = partida.casillas[i].recurso.cantidad;

                            if (partida.casillas[i].recurso.subrecursos.Length > 0)
                            {
                                int j = 0;
                                while (j < recurso2.subrecursos.Count)
                                {
                                    if (recurso2.subrecursos[j] != null)
                                    {
                                        recurso2.subrecursos[j].SetActive(partida.casillas[i].recurso.subrecursos[j]);
                                    }

                                    j += 1;
                                }
                            }
                        }
                    }
                }

                i += 1;
            }
        }
Exemplo n.º 6
0
        public void Generar(Assets.Casilla[,] casillas, float altura)
        {
            Assets.Isla isla  = null;
            int         rango = 3;

            for (int x = 0; x < casillas.GetLength(0); x++)
            {
                for (int z = 0; z < casillas.GetLength(1); z++)
                {
                    if (casillas[x, z] == null)
                    {
                        bool poner = false;

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x - rango, z - rango);

                            if (poner == true)
                            {
                                isla = casillas[x - rango, z - rango].isla;
                            }
                        }

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x - rango, z);

                            if (poner == true)
                            {
                                isla = casillas[x - rango, z].isla;
                            }
                        }

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x, z - rango);

                            if (poner == true)
                            {
                                isla = casillas[x, z - rango].isla;
                            }
                        }

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x + rango, z - rango);

                            if (poner == true)
                            {
                                isla = casillas[x + rango, z - rango].isla;
                            }
                        }

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x - rango, z + rango);

                            if (poner == true)
                            {
                                isla = casillas[x - rango, z + rango].isla;
                            }
                        }

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x, z + rango);

                            if (poner == true)
                            {
                                isla = casillas[x, z + rango].isla;
                            }
                        }

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x + rango, z);

                            if (poner == true)
                            {
                                isla = casillas[x + rango, z].isla;
                            }
                        }

                        if (poner == false)
                        {
                            poner = VerificarPoner(casillas, x + rango, z + rango);

                            if (poner == true)
                            {
                                isla = casillas[x + rango, z + rango].isla;
                            }
                        }

                        if (poner == true)
                        {
                            Assets.Casilla plano = new Assets.Casilla(isla.casillas[0].id, 0, new Vector3(x, altura, z));
                            plano.isla = isla;
                            Escenario.instancia.PonerCasilla(plano);
                        }
                    }
                }
            }
        }