Ejemplo n.º 1
0
    /// <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();
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    /// <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());
    }