/// <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(); }
public void Terminar() { CantidadEnergiaAQuitarGenerada = System.Convert.ToInt32(Random.Range(_CantidadMinimaEnergiaAQuitar, _CantidadMaximaEnergiaAQuitar)); for (int contador = 0; contador < EspacioTropas.Length; contador++) { if (EspacioTropas[contador]) { Soldados ScriptAS1 = infoSoldados[contador].SoldadoEnLista.GetComponent <Soldados>(); ScriptAS1.ActualizarResultadosDespuesBatalla(Victoria ? _ExperenciaADar : 0, CantidadEnergiaAQuitarGenerada); ScriptAS1.InfoActualSoldado.MisionCompletada = true; ScriptAS1.GetComponent <Button>().interactable = true; Soldados ScriptAS2 = infoSoldados[contador].SoldadoEnListaMision.GetComponent <Soldados>(); ScriptAS2.ActualizarResultadosDespuesBatalla(Victoria ? _ExperenciaADar : 0, CantidadEnergiaAQuitarGenerada); ScriptAS2.InfoActualSoldado.MisionCompletada = true; ScriptAS2.GetComponent <Button>().interactable = true; ScriptAS2.PosibleEnviarAMision = true; } } Text TextoCantidadMisiones = GameObject.Find("Boton_Abrir_Panel_Informacion_Misiones").transform.Find("Panel_Cantidad_Misiones").GetChild(0).GetChild(0) .GetComponent <Text>(); TextoCantidadMisiones.text = (System.Convert.ToInt32(TextoCantidadMisiones.text) - 1).ToString(); DesplazamientoListadoInformacionMisiones[] SFlechas = GameObject.FindObjectsOfType <DesplazamientoListadoInformacionMisiones>(); int contador2 = 1; int ContadorMisiones = 0; foreach (DesplazamientoListadoInformacionMisiones CS in SFlechas) { if (contador2 == 1) { CS.EliminarDeLista(GameObject.Find(_NombreMisionInformaciones)); } CS.Misiones.Remove(GameObject.Find(_NombreMisionInformaciones)); contador2++; ContadorMisiones = CS.Misiones.Count; } if (ContadorMisiones == 0) { GameObject.Find("Panel_Informacion_Misiones").transform.Find("Encabezado").GetChild(0).GetChild(0).GetComponent <Text>().text = "Sin Misiones"; } Mision InfMision = _posMision.GetComponent <Mision>(); SpawnMisiones[] ManejadoresSpawn = GameObject.FindObjectsOfType <SpawnMisiones>(); foreach (SpawnMisiones CSpawn in ManejadoresSpawn) { CSpawn.MisionesBetadas.Remove(InfMision); } MGM.MisionesEnMapa.Remove(InfMision); InfMision.ManejadorDeSpawn.GetComponent <SpawnMisiones>().GenerarMision = true; Destroy(_posMision); Destroy(GameObject.Find(_NombreMisionInformaciones)); Destroy(this.gameObject); }
/// <summary> /// Aumenta la Energia del Soldado y cambia su valor fisicamente /// </summary> /// <returns></returns> IEnumerator ModificarDatosSoldados() { _contadorIncrementoEnergia -= 0.5f; if (_contadorIncrementoEnergia <= 0) { if (InfoActualSoldado.Energia < 100 && !InfoActualSoldado.Lesion && InfoActualSoldado.Energia > 0) { InfoActualSoldado.Energia++; _contadorIncrementoEnergia = reponerContadorIncrementoEnergia; } else if (InfoActualSoldado.Energia < 100 && InfoActualSoldado.Lesion && InfoActualSoldado.Energia > 0) { InfoActualSoldado.Energia++; _contadorIncrementoEnergia = reponerContadorIncrementoEnergia * 2; } } if (InfoActualSoldado.Energia >= 26) { InfoActualSoldado.Lesion = false; ImagenBarraEnergia.sprite = BarraEnergiaImagenNormal; } else { InfoActualSoldado.Lesion = true; ImagenBarraEnergia.sprite = BarraEnergiaImagenLesion; } if (InfoActualSoldado.Energia <= 0) { DesplazamientoListadoTropasMision[] STropas = GameObject.FindObjectsOfType <DesplazamientoListadoTropasMision>(); foreach (DesplazamientoListadoTropasMision CStropas in STropas) { if (_PosibleEnviarAMision && !CStropas.EsPanelListaSoldados) { CStropas.EliminarSoldadoMision(InfoActualSoldado.SoldadoEnListaMision); CStropas._Soldados.Remove(InfoActualSoldado.SoldadoEnLista); } else if (!_PosibleEnviarAMision && CStropas.EsPanelListaSoldados) { CStropas.EliminarSoldadoLista(InfoActualSoldado.SoldadoEnLista); CStropas.SoldadosMision.Remove(InfoActualSoldado.SoldadoEnListaMision); MGM.NumeroSoldadosActuales--; } } Destroy(this.gameObject); } Soldados OtroSoldado = _PosibleEnviarAMision ? InfoActualSoldado.SoldadoEnLista.GetComponent <Soldados>() : InfoActualSoldado.SoldadoEnListaMision.GetComponent <Soldados>(); int EnergiaOtroSoldado = OtroSoldado.InfoActualSoldado.Energia; if (EnergiaOtroSoldado > InfoActualSoldado.Energia) { InfoActualSoldado.Energia = EnergiaOtroSoldado; } else if (EnergiaOtroSoldado < InfoActualSoldado.Energia) { OtroSoldado.InfoActualSoldado.Energia = InfoActualSoldado.Energia; OtroSoldado.BarraEnergia.value = OtroSoldado.InfoActualSoldado.Energia; } BarraEnergia.value = InfoActualSoldado.Energia; yield return(new WaitForSecondsRealtime(.5f)); StartCoroutine(ModificarDatosSoldados()); }