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