/// <summary> /// Actualizar informacion de la mision por una nueva /// </summary> /// <param name="infoNueva">Informacion nueva por la que sera reemplazada la anterior</param> public void ActualizarInformacion(Mision infoNueva) { EsMisionUnica = infoNueva.EsMisionUnica; DificultadMision = infoNueva.DificultadMision; _PrefabMision = infoNueva._PrefabMision; _ManejadorDeSpawn = infoNueva._ManejadorDeSpawn; EspacioTropas = new bool[infoNueva.EspacioTropas.Length]; infoSoldadosDisponibles = infoNueva.infoSoldadosDisponibles; NombresEnemigos = infoNueva.NombresEnemigos; InfoEnemigos = infoNueva.InfoEnemigos; TiempoEnMapaBatalla = infoNueva.TiempoEnMapaBatalla; FormatoTiempoEnMapaBatalla = infoNueva.FormatoTiempoEnMapaBatalla; LevelPromedio = infoNueva.LevelPromedio; NombreBatalla = infoNueva.NombreBatalla; TiempoParaRespawn = infoNueva.TiempoParaRespawn; FormatoTiempoParaRespawn = infoNueva.FormatoTiempoParaRespawn; TiempoPeleaBatalla = infoNueva.TiempoPeleaBatalla; FormatoTiempoPeleaBatalla = infoNueva.FormatoTiempoPeleaBatalla; CantidadMinimaEnergiaRestarSoldados = infoNueva.CantidadMinimaEnergiaRestarSoldados; CantidadMaximaEnergiaRestarSoldados = infoNueva.CantidadMaximaEnergiaRestarSoldados; EXPADarASoldados = infoNueva.EXPADarASoldados; IconoMision = infoNueva.IconoMision; if (this.GetComponent <SpriteRenderer>() != null) { this.transform.Find("Icono_Mision").GetComponent <SpriteRenderer>().sprite = IconoMision; } TiempoFinal = infoNueva.TiempoFinal; SoldadoEnCamino = infoNueva.SoldadoEnCamino; MisionOriginal = infoNueva.MisionOriginal; DescripcionBatalla = infoNueva.DescripcionBatalla; Start(); }
void ActualizarDificultadesDisponibles() { DificultadesDisponibles.Clear(); for (int contador = 0; contador < MisionesDisponibles.Count; contador++) { if (MisionesDisponibles[contador] != null) { MisionesDisponibles[contador].GetComponent <Mision>().ManejadorDeSpawn = this; MisionesDisponibles[contador].GetComponent <Mision>().PrefabMision = MisionesDisponibles[contador]; EDificultadMisiones Llave = MisionesDisponibles[contador].GetComponent <Mision>().DificultadMision; if (!DificultadesDisponibles.ContainsKey(Llave)) { DificultadesDisponibles.Add(Llave, MGM.DificultadesDisponibles[Llave]); } } } }
IEnumerator SeleccionarMision() { if (ContadorTiempoSpawnear > 0) { ContadorTiempoSpawnear -= 1; } else { //Seleccionar Dificultad Mision: float NumeroGenerado = Random.Range(0.0f, 100.0f); EDificultadMisiones DificultadSeleccionada = DevolverDificultadSeleccionada(NumeroGenerado); //Seleccionar Mision: if (DificultadSeleccionada != EDificultadMisiones.Nada) { List <GameObject> MisionesPreSeleccionadas = new List <GameObject>(); for (int contador = 0; contador < MisionesDisponibles.Count; contador++) { if (MisionesDisponibles[contador] != null) { Mision ScriptMision = MisionesDisponibles[contador].GetComponent <Mision>(); bool EsMisionBetada = MisionesBetadas.Find(x => x.Equals(ScriptMision)) != default(Mision); if (ScriptMision.DificultadMision == DificultadSeleccionada && !EsMisionBetada) { MisionesPreSeleccionadas.Add(ScriptMision.gameObject); } } } ContadorTiempoSpawnear = ManejadorGeneralMundo.CambiarTiempoAFormato(FormatoTiempoAntesDeSpawnear, TiempoAntesDeSpawnear); if (MisionesPreSeleccionadas.Count > 0) { int NumeroMisionSeleccionada = Random.Range(0, MisionesPreSeleccionadas.Count - 1); MisionLista = MisionesPreSeleccionadas[NumeroMisionSeleccionada]; ContadorCadaMision = ManejadorGeneralMundo.CambiarTiempoAFormato(MisionLista.GetComponent <Mision>().FormatoTiempoParaRespawn, MisionLista.GetComponent <Mision>().TiempoParaRespawn); StartCoroutine(ContarTiempoDeMision()); _GenerarMision = false; Mision InfMision = MisionLista.GetComponent <Mision>(); if (InfMision.EsMisionUnica) { SpawnMisiones[] ManejadoresSpawn = GameObject.FindObjectsOfType <SpawnMisiones>(); foreach (SpawnMisiones CSpawn in ManejadoresSpawn) { CSpawn.MisionesBetadas.Add(InfMision); } } } else { _GenerarMision = true; } } else { ContadorTiempoSpawnear = ManejadorGeneralMundo.CambiarTiempoAFormato(FormatoTiempoAntesDeSpawnear, TiempoAntesDeSpawnear); } } yield return(new WaitForSeconds(1f)); if (GenerarMision) { StartCoroutine(SeleccionarMision()); } }