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); }
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); }
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; } } } }
//------------------------------------- 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); } } }
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; } }
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); } } } } }