Beispiel #1
0
    /// <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++;
        }
    }
Beispiel #2
0
    /// <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();
    }