/// <summary> /// Cierra la Mision Actual Mostrada y Limpia la informacion de los soldados de ella. /// </summary> /// <param name="DesbloquearSoldados">Si se quieren desbloquear los soldados o no</param> /// <param name="nombreMision">El nombre de la mision que se quiere eliminar</param> public void CerrarYLimpiarMisionMostrada(bool DesbloquearSoldados) { Mision ScriptMM = GameObject.Find(_MisionPanel.NombreMisionMapa).GetComponent <Mision>(); if (DesbloquearSoldados) { for (int n = 0; n < ScriptMM.EspacioTropas.Length; n++) { GameObject objSoldado = ScriptMM.infoSoldadosDisponibles[n].SoldadoEnLista; GameObject objSoldadoM = ScriptMM.infoSoldadosDisponibles[n].SoldadoEnListaMision; Soldados Soldado = objSoldado != null?objSoldado.GetComponent <Soldados>() : null; Soldados SoldadoM = objSoldadoM != null?objSoldadoM.GetComponent <Soldados>() : null; if (Soldado != null && Soldado.InfoActualSoldado.MisionCompletada) { Soldado.ActivarTropa(); SoldadoM.ActivarTropa(); SoldadoM.PosibleEnviarAMision = true; ScriptMM.infoSoldadosDisponibles[n] = new __informacionSoldados(); ScriptMM.EspacioTropas[n] = false; } } } _MisionPanel.DesplegarOcultarPanel(); }
/// <summary> /// Muestra la info de la mision en el panel correspondiente. /// </summary> /// <param name="CerrarMisionAnterior">Si se quiere cerrar una mision previamente abierta</param> public void MostrarLaInfoMision(bool CerrarMisionAnterior = false) { Transform InfoMisionPosicion = GameObject.FindGameObjectWithTag("Mision_Para_Enviar").transform; ManejadorMisionPanel InfoMision = InfoMisionPosicion.GetComponent <ManejadorMisionPanel>(); //InfoMision.resetearDatos(); GameObject.FindObjectOfType <ManejadorDetallesPanelMision>().ResetearDatos(); //Colocar Datos en el Encabezado: Transform EncabezadoPosicion = InfoMisionPosicion.Find("Encabezado_Mision").Find("Panel_Encabezado_Texto_Mision"); EncabezadoPosicion.Find("Texto_Nombre_Batalla").GetComponent <Text>().text = NombreBatalla; EncabezadoPosicion.Find("Texto_Descripcion_Batalla").GetComponent <Text>().text = '"' + DescripcionBatalla + '"'; //Colocar Datos en los Elementos de la Mision: Transform ElementosMisionPosicion = InfoMisionPosicion.Find("Detalles_Mision").Find("Panel_Informacion_Y_Enemigos").Find("Elementos_Mision"); if (EspacioTropas.Length < 3) { for (int contador = 1; contador <= (3 - EspacioTropas.Length); contador++) { ElementosMisionPosicion.Find("Espacio_Soldado_" + (EspacioTropas.Length + contador)).gameObject.SetActive(false); } } for (int contador = 0; contador < NombresEnemigos.Length; contador++) { Transform PosEnemigo = ElementosMisionPosicion.Find("Enemigo_" + (contador + 1)); PosEnemigo.Find("Level").GetComponent <Text>().text = InfoEnemigos[contador].Level.ToString(); PosEnemigo.Find("Icono").GetComponent <Image>().sprite = InfoEnemigos[contador].Icono; } //Eliminar espacios de enemigos y tropas que sobran if (NombresEnemigos.Length < 3) { for (int contador = 1; contador <= (3 - NombresEnemigos.Length); contador++) { ElementosMisionPosicion.Find("Enemigo_" + (NombresEnemigos.Length + contador)).gameObject.SetActive(false); } } //Colocar Datos en Panel de Duracion, Descripcion y Enviar: Transform PanelDDE = ElementosMisionPosicion.Find("Panel_Duracion_Descripcion_Enviar"); string textoPonerDuracion = "Finaliza en : "; Transform CEM = GameObject.FindGameObjectWithTag("Ciudad_En_Mapa").transform; Vector3 posf = transform.localPosition - CEM.localPosition; _tiempoFinal = posf.magnitude * 100 / (MGM.VelocidadMovimientoTropas); _tiempoFinal += ManejadorGeneralMundo.CambiarTiempoAFormato(FormatoTiempoPeleaBatalla, TiempoPeleaBatalla); if (_tiempoFinal > 59 && _tiempoFinal <= 3599) { float tiempoListo = Mathf.Round(_tiempoFinal / 60); textoPonerDuracion += tiempoListo + (tiempoListo != 1 ? " Minutos" : " Minuto"); } else if (_tiempoFinal > 3599) { float tiempoListo = Mathf.Round(_tiempoFinal / 3600); textoPonerDuracion += tiempoListo + (tiempoListo != 1 ? " Horas" : " Hora"); } else { float tiempoListo = Mathf.Round(_tiempoFinal); textoPonerDuracion += tiempoListo + (tiempoListo != 1 ? " Segundos" : " Segundo"); } PanelDDE.Find("Texto_Duracion").GetComponent <Text>().text = textoPonerDuracion; PanelDDE.Find("Texto_Recompensa_EXP").GetComponent <Text>().text = "+ " + EXPADarASoldados + " puntos XP"; int NivelMinimo = InfoEnemigos[0].Level; for (int contador2 = 0; contador2 < NombresEnemigos.Length; contador2++) { if (InfoEnemigos[contador2].Level < NivelMinimo) { NivelMinimo = InfoEnemigos[contador2].Level; } } NivelMinimo -= 2; List <Soldados> SoldadosMision = new List <Soldados>(); Transform PosCartas = InfoMision.transform.Find("Detalles_Mision").Find("Panel_Lista_Tropas"); for (int contador = 1; contador <= 5; contador++) { GameObject ObjetoSoldado = null; if (PosCartas.Find("Borde_Seleccion_Carta_" + contador).childCount > 0) { ObjetoSoldado = PosCartas.Find("Borde_Seleccion_Carta_" + contador).GetChild(0).gameObject; } if (ObjetoSoldado != null) { SoldadosMision.Add(ObjetoSoldado.GetComponent <Soldados>()); } } for (int contador = 0; contador < PosCartas.Find("Espacio_Ocultos").childCount; contador++) { GameObject ObjetoSoldado = PosCartas.Find("Espacio_Ocultos").GetChild(contador).gameObject; if (ObjetoSoldado != null) { SoldadosMision.Add(ObjetoSoldado.GetComponent <Soldados>()); } } foreach (Soldados CSoldado in SoldadosMision) { if (CSoldado.InfoActualSoldado.Nivel < NivelMinimo) { CSoldado.GetComponent <Image>().color = new Color(1, 0, 0, 1); CSoldado.NoEsNivelMision = true; } else { CSoldado.GetComponent <Image>().color = new Color(1, 1, 1, 1); CSoldado.NoEsNivelMision = false; } } InfoMision.NombreMisionMapa = this.name; MGM.ActivarDesactivarSeleccionablesDelMapa(false, false); InfoMision.DesplegarOcultarPanel(); }