public void setListaTrampas(List <GeneradorObjetos.trapStruct> auxListaTemp, int idRoom) { Vector2 aux = getRoomPosbyID(idRoom); estructuraHabitacion habTemp = listaPisos[(int)aux.x].habitaciones[(int)aux.y]; habTemp.listaTrampas = auxListaTemp; listaPisos[(int)aux.x].habitaciones[(int)aux.y] = habTemp; }
public void setCantSitiosOcultos(int cantSitios, int idRoom) { Vector2 aux = getRoomPosbyID(idRoom); estructuraHabitacion habTemp = listaPisos[(int)aux.x].habitaciones[(int)aux.y]; habTemp.cantSitiosOcultos = cantSitios; listaPisos[(int)aux.x].habitaciones[(int)aux.y] = habTemp; }
public void setReward(ObjetoRecompensa.tipoRecompensa var, int idRoom) { Vector2 aux = getRoomPosbyID(idRoom); estructuraHabitacion habTemp = listaPisos[(int)aux.x].habitaciones[(int)aux.y]; habTemp.reward = var; listaPisos[(int)aux.x].habitaciones[(int)aux.y] = habTemp; }
public void setListaLaterales(RoomController.tiposParedes[] var, int idRoom) { Vector2 aux = getRoomPosbyID(idRoom); estructuraHabitacion habTemp = listaPisos[(int)aux.x].habitaciones[(int)aux.y]; habTemp.listaLaterales = var; listaPisos[(int)aux.x].habitaciones[(int)aux.y] = habTemp; }
public estructuraHabitacion getHabitacionPorID(int id) { estructuraHabitacion aux = new estructuraHabitacion(); aux.id = -1; for (int i = 0; i < listaPisos.Count; i++) { for (int j = 0; j < listaPisos[i].habitaciones.Count; i++) { if (listaPisos[i].habitaciones[j].id == id) { aux = listaPisos[i].habitaciones[j]; return(aux); } } } return(aux); }
private void MapBuilder() { float tHab = RoomController.T_HAB; float altHab = RoomController.ALT_HAB; Vector3 posicionActual = new Vector3(0, 0, 0); for (int pisoActual = 0; pisoActual < NumPisos; pisoActual++) { posicionActual.y = altHab * pisoActual; for (int habActual = 0; habActual < listaPisos[pisoActual].habitaciones.Count; habActual++) { estructuraHabitacion auxHab = listaPisos[pisoActual].habitaciones[habActual]; posicionActual.x = tHab / 2 * auxHab.coordenadas.y; GameObject habitacion = Instantiate(room, new Vector3(posicionActual.x, posicionActual.y, posicionActual.z), Quaternion.identity, this.transform); habitacion.transform.Rotate(0, 180, 0); habitacion.GetComponent <RoomController>().edificio = transform.GetComponent <Edificio>(); if (habActual < 10) { habitacion.transform.name = "Habitacion: " + pisoActual + "0" + habActual; } else { habitacion.transform.name = "Habitacion: " + pisoActual + "" + habActual; } RoomController auxRoom = habitacion.GetComponent <RoomController>(); auxRoom.tall = auxHab.tall; auxRoom.estilo = auxHab.estiloHabitacion; auxRoom.tipoHabitacion = auxHab.tipoHabitacion; auxRoom.hasTecho = auxHab.hasTecho; auxHab.habitacion = habitacion; auxRoom.id = auxHab.id; auxRoom.piso = pisoActual; if (mapLoaded) { auxRoom.listaLaterales = auxHab.listaLaterales; auxRoom.listaTrampas = auxHab.listaTrampas; auxRoom.reward = auxHab.reward; auxRoom.dificultad = auxHab.nivel; } else { auxRoom.dificultad = dificultadParaHabitacion(); auxHab.nivel = auxRoom.dificultad; } switch (auxHab.tam) { case 2: auxRoom.tamanyo = RoomController.roomSize.medium; break; case 4: auxRoom.tamanyo = RoomController.roomSize.large; break; default: auxRoom.tamanyo = RoomController.roomSize.small; break; } listaPisos[pisoActual].habitaciones[habActual] = auxHab; } } }
private estructuraPisos generateFloor(int piso) { estructuraPisos auxPiso = new estructuraPisos(); auxPiso.habitaciones = new List <estructuraHabitacion>(); auxPiso.escaleraEn = -1; int espaciosRestantes = (int)espacioLibreEnPiso(piso); int idRoom = 0; if (piso != 0) { idRoom = listaPisos[piso - 1].habitaciones[listaPisos[piso - 1].habitaciones.Count - 1].id + 1; } int HabActual, maxEspDisponible; while (espaciosRestantes > 0) { estructuraHabitacion auxHab = new estructuraHabitacion(); HabActual = (int)HabitacionMasGrandeDisponible(piso).x; maxEspDisponible = (int)HabitacionMasGrandeDisponible(piso).y; auxHab.id = idRoom; auxHab.estiloHabitacion = estilo; auxHab.tipoHabitacion = RoomController.tipo.HabitacionPrincipal; int contRandom = 0; if (idRoom == 0) { auxHab.tipoHabitacion = RoomController.tipo.Entrada; } auxHab.coordenadas = new Vector2(piso, HabActual); auxHab.tall = false; auxHab.conectaCon = new List <estructuraHabitacion>(); auxHab.hasTecho = false; auxHab.listaLaterales = new RoomController.tiposParedes[4]; for (int i = 0; i < 4; i++) { auxHab.listaLaterales[i] = RoomController.tiposParedes.nada; } if (maxEspDisponible > 3) { contRandom += 3; } else if (maxEspDisponible > 1) { contRandom += 2; } else if (maxEspDisponible == 1) { contRandom += 1; } int auxTam = Random.Range(1, (contRandom + 1)); if (auxTam == 1 && auxHab.tipoHabitacion == RoomController.tipo.HabitacionPrincipal) { auxHab.tipoHabitacion = Random.Range(0, 5) == 0 ? RoomController.tipo.Banyo : RoomController.tipo.HabitacionPrincipal; } switch (auxHab.tipoHabitacion) { case RoomController.tipo.Entrada: if (maxEspDisponible > 1) { auxTam = Random.Range(1, 3); } else { auxTam = 1; } break; case RoomController.tipo.Banyo: auxTam = 1; break; } switch (auxTam) { case 2: espaciosRestantes = espaciosRestantes - 2; auxHab.tam = 2; break; case 3: espaciosRestantes = espaciosRestantes - 4; auxHab.tam = 4; break; default: espaciosRestantes--; auxHab.tam = 1; break; } if (piso < (NumPisos - 1)) { auxHab.tall = Random.Range(0, 3) == 1 ? true : false; } if ((piso == NumPisos - 2 && auxHab.tall) || piso == (NumPisos - 1)) { auxHab.hasTecho = true; } for (int i = HabActual; i < HabActual + auxHab.tam; i++) { matrizHabitaciones[piso, i] = auxHab.id; if (auxHab.tall) { matrizHabitaciones[piso + 1, i] = auxHab.id; } } cantHabitacionesTotal++; auxPiso.habitaciones.Add(auxHab); idRoom++; }//Acabo de generar los pisos if (piso < (NumPisos - 1)) { if (areAllTall(auxPiso, true) || areAllTall(auxPiso, false)) //Compruebo que no todos sean altos, ni todos sean bajos (al menos 1 de cada) { int habCambio = Random.Range(0, auxPiso.habitaciones.Count); estructuraHabitacion habTemp = auxPiso.habitaciones[habCambio]; habTemp.tall = !habTemp.tall; if (piso == NumPisos - 2) { if (habTemp.tall) { habTemp.hasTecho = true; } else { habTemp.hasTecho = false; } } auxPiso.habitaciones[habCambio] = habTemp; for (int i = (int)habTemp.coordenadas.y; i < (int)habTemp.coordenadas.y + habTemp.tam; i++) { matrizHabitaciones[piso, i] = habTemp.id; if (habTemp.tall) { matrizHabitaciones[piso + 1, i] = habTemp.id; } else { matrizHabitaciones[piso + 1, i] = -1; } } } } return(auxPiso); }