/// <summary> /// Agrega la informacion de la tropa a la Mision Actual Mostrada (Si existe) /// </summary> public void AgregarTropaAMision() { Mision SMision = GameObject.Find(MGM.MisionPanel.NombreMisionMapa). GetComponent <Mision>(); bool[] Tropas = SMision.EspacioTropas; int contador = 0; foreach (bool CSlotTropa in Tropas) { if (!CSlotTropa && !InfoActualSoldado.EnMision) { Tropas[contador] = true; QuitarSoldado[] IconosSoldados = GameObject.FindObjectsOfType <QuitarSoldado>(); foreach (QuitarSoldado CQS in IconosSoldados) { if (CQS.gameObject.name == "Espacio_Soldado_" + (contador + 1)) { Image IconoSoldado = CQS.GetComponent <Image>(); IconoSoldado.color = new Color(0.074f, 1, 0.348f, 1); IconoSoldado.sprite = Resources.Load <Sprite>("Iconos/Interfaz/CheckIcon"); } } //Poner Icono de En Mision encima del soldado Soldados[] todosSoldados = GameObject.FindObjectsOfType <Soldados>(); foreach (Soldados CSoldado in todosSoldados) { if (CSoldado.InfoActualSoldado == InfoActualSoldado && CSoldado.gameObject != this.gameObject) { //Poner Icono de En Mision encima del soldado CSoldado.GetComponent <Button>().interactable = false; } } //Guardar InformaciĆ³n de la Tropa SMision.infoSoldadosDisponibles[contador] = InfoActualSoldado; InfoActualSoldado.EnMision = true; this.GetComponent <Button>().interactable = false; SMision.ActualizarResultados(); break; } contador++; } }
/// <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(); }