예제 #1
0
    /// <summary>
    /// Muestra la informacion asociada a un logro
    /// </summary>
    /// <param name="_idLogroDesbloqueado"></param>
    /// <param name="_onCloseCallback"></param>
    public void ShowLogroDesbloqueado(string _idLogroDesbloqueado, btnButton.guiAction _onCloseCallback = null)
    {
        // obtener las referencias a los elementos de esta interfaz
        GetReferencias();

        // obtener la informacion del logro y del grupo al que pertenece
        GrupoLogros grupoContenedorLogroDesbloqueado = null;
        Logro       logroDesbloqueado = LogrosManager.instance.GetLogro(_idLogroDesbloqueado, ref grupoContenedorLogroDesbloqueado);

        // textura de la moneda
        m_imgCash.texture = m_textureRewardHardCash;
        ShowImagen(m_imgCash);

        // textos
        m_txtTitulo.text             = string.Format(LocalizacionManager.instance.GetTexto(287), "<color=#ddf108>" + grupoContenedorLogroDesbloqueado.nombre + "</color>").ToUpper();
        m_txtTituloSombra.text       = string.Format(LocalizacionManager.instance.GetTexto(287), grupoContenedorLogroDesbloqueado.nombre).ToUpper();
        m_txtTexto.text              = string.Format(grupoContenedorLogroDesbloqueado.descriptionConFormato, "<color=#ddf108>" + logroDesbloqueado.valorSuperarLogro + "</color>");
        m_txtCantidadCash.text       = logroDesbloqueado.recompensa.ToString();
        m_txtCantidadCashSombra.text = m_txtCantidadCash.text;

        // boton cancelar => ocultarlo
        m_btnCancelar.gameObject.SetActive(false);

        // mostrar este dialogo
        transform.gameObject.SetActive(true);
        MostrarDialogoConSuperTweener(_onCloseCallback);
    }
예제 #2
0
 /// <summary>
 /// Metodo para comparar dos grupos de logros por su porcentaje de logro superado
 /// NOTA: como se va a utilizar para ordenar grupos de logros de mayor a menor, el resultado devuelto esta invertido
 /// </summary>
 /// <param name="_grupo1"></param>
 /// <param name="_grupo2"></param>
 /// <returns></returns>
 public static int CompararPorPorcentajeSuperadoLogro(GrupoLogros _grupo1, GrupoLogros _grupo2)
 {
     if (_grupo1 == null)
     {
         if (_grupo2 == null)
         {
             return(0);
         }
         else
         {
             return(-1);
         }
     }
     else
     {
         if (_grupo2 == null)
         {
             return(1);
         }
         else
         {
             // NOTA1: multiplico por 100 los valores para convertirlos en enteros
             return((int)(_grupo2.porcentajeSuperadoLogro * 100 - _grupo1.porcentajeSuperadoLogro * 100));    // <= devuelve el resultado inverito: grupo2 - grupo1
         }
     }
 }
예제 #3
0
    /// <summary>
    /// Devuelve la informacion de un determinado logro (null si el logro solicitado no existe)
    /// </summary>
    /// <param name="_idLogro"></param>
    /// <param name="_grupoContenedor">Grupo contenedor de este logro</param>
    /// <returns></returns>
    public Logro GetLogro(string _idLogro, ref GrupoLogros _grupoContenedor)
    {
        Logro logro = null;

        // comprobar si el logro es un logro de lanzador
        if (m_logrosLanzador != null)
        {
            for (int i = 0; (i < m_logrosLanzador.Count) && (logro == null); ++i)
            {
                _grupoContenedor = m_logrosLanzador[i];
                logro            = m_logrosLanzador[i].GetLogro(_idLogro);
            }
        }

        // comprobar si el logro es un logro de portero
        if (m_logrosPortero != null)
        {
            for (int i = 0; (i < m_logrosPortero.Count) && (logro == null); ++i)
            {
                _grupoContenedor = m_logrosPortero[i];
                logro            = m_logrosPortero[i].GetLogro(_idLogro);
            }
        }

        // comprobar si el logro es un logro de duelo
        if (m_logrosDuelo != null)
        {
            for (int i = 0; (i < m_logrosDuelo.Count) && (logro == null); ++i)
            {
                _grupoContenedor = m_logrosDuelo[i];
                logro            = m_logrosDuelo[i].GetLogro(_idLogro);
            }
        }

        // si no se ha encontrado el logro => indicar que no esta contenido en ningun grupo
        if (logro == null)
        {
            _grupoContenedor = null;
        }

        return(logro);
    }
예제 #4
0
    /// <summary>
    /// Muestra en el control los valores asociados a un logro
    /// </summary>
    /// <param name="_grupoLogros"></param>
    public void ShowValues(GrupoLogros _grupoLogros)
    {
        if (_grupoLogros != null)
        {
            // obtener las referencias a los elementos de la interfaz
            GetReferencias();

            // actualizar los textos
            m_txtTitulo.text    = _grupoLogros.nombre.ToUpper();
            m_txtSubtitulo.text = _grupoLogros.descripcion;

            // progreso del logro
            m_txtProgreso.text       = _grupoLogros.progreso.ToString() + " / " + _grupoLogros.valorSuperarLogro.ToString();
            m_txtProgresoSombra.text = m_txtProgreso.text;

            // mostrar el nivel
            if (_grupoLogros.nivelAlcanzado < 0)
            {
                m_txtNivel.text = "";
            }
            else
            {
                m_txtNivel.text = (LocalizacionManager.instance.GetTexto(31) + " " + (_grupoLogros.nivelAlcanzado + 1).ToString()).ToUpper();
            }
            m_txtNivelSombra.text = m_txtNivel.text;

            // mostrar la recompensa
            if (_grupoLogros.recompensa < 0)
            {
                m_txtRecompensa.text = "";
            }
            else
            {
                m_txtRecompensa.text = _grupoLogros.recompensa.ToString() + " §";
            }

            // actualizar el valor de la barra de progreso
            Rect rectBarraProgreso = transform.FindChild("BarraProgreso/fondo").GetComponent <GUITexture>().pixelInset;
            transform.FindChild("BarraProgreso/barra").GetComponent <GUITexture>().pixelInset = new Rect(rectBarraProgreso.xMin, rectBarraProgreso.yMin, (rectBarraProgreso.width * _grupoLogros.porcentajeSuperadoLogro), rectBarraProgreso.height);

            // texturas por defecto
            m_barraProgreso.texture      = m_texturaBarraBrogresoNormal;
            m_barraProgresoFront.texture = m_texturaFrontNormal;
            m_barraProgresoBack.texture  = m_texturaBackNormal;

            // comprobar si hay que destacar el logro de alguna manera en especial -------------------

            // comprobar si se han completado todos los niveles del logro
            if (_grupoLogros.superadosTodosLosLogros)
            {
                m_txtProgreso.text       = LocalizacionManager.instance.GetTexto(288).ToUpper();
                m_txtProgresoSombra.text = m_txtProgreso.text;

                m_barraProgreso.texture      = m_texturaBarraBrogresoLogroCompletado;
                m_barraProgresoFront.texture = m_texturaFrontLogroCompletado;
            }

            // comprobar si el logro se ha obtenido recientemente (es nuevo)
            if (_grupoLogros.subidaNivelReciente)
            {
                m_barraProgreso.texture      = m_texturaBarraBrogresoLogroNuevo;
                m_barraProgresoFront.texture = m_texturaFrontLogroNuevo;
                m_barraProgresoBack.texture  = m_texturaBackNuevo;

                _grupoLogros.subidaNivelReciente = false; // <= haciendo esto ya no se vuelve a destacar la subida de nivel en este grupo de logros
            }
        }
    }
예제 #5
0
    // ------------------------------------------------------------------------------
    // ---  METODOS  ----------------------------------------------------------------
    // ----------------------------------------------------------------------------


    /// <summary>
    /// Genera toda la informacion asociada a los logros del juego
    /// </summary>
    private void InicializarListasLogros()
    {
        // F4KE: crear los grupos de logros de LANZADOR
        if (m_logrosLanzador == null)
        {
            List <Logro> logrosDianas = new List <Logro>();
            logrosDianas.Add(new Logro("ACH_KICK_DIA_01", 65, 5));
            logrosDianas.Add(new Logro("ACH_KICK_DIA_02", 225, 25));
            logrosDianas.Add(new Logro("ACH_KICK_DIA_03", 1250, 60));
            logrosDianas.Add(new Logro("ACH_KICK_DIA_04", 2750, 125));
            GrupoLogros grupoDianas = new GrupoLogros("ACH_KICK_DIA", LocalizacionManager.instance.GetTexto(166), LocalizacionManager.instance.GetTexto(167), logrosDianas, GrupoLogros.Magnitud.DIANAS_ACERTADAS);

            List <Logro> logrosPuntuacionLanzamientos = new List <Logro>();
            logrosPuntuacionLanzamientos.Add(new Logro("ACH_KICK_TPU_01", 6500, 5));
            logrosPuntuacionLanzamientos.Add(new Logro("ACH_KICK_TPU_02", 27500, 30));
            logrosPuntuacionLanzamientos.Add(new Logro("ACH_KICK_TPU_03", 95000, 75));
            logrosPuntuacionLanzamientos.Add(new Logro("ACH_KICK_TPU_04", 235000, 120));
            logrosPuntuacionLanzamientos.Add(new Logro("ACH_KICK_TPU_05", 750000, 250));
            GrupoLogros grupoPuntuacionLanzamientos = new GrupoLogros("ACH_KICK_TPU", LocalizacionManager.instance.GetTexto(168), LocalizacionManager.instance.GetTexto(169), logrosPuntuacionLanzamientos, GrupoLogros.Magnitud.PUNTUACION_TOTAL_LANZADOR);

            List <Logro> logrosDianasPerfectas = new List <Logro>();
            logrosDianasPerfectas.Add(new Logro("ACH_KICK_PER_01", 80, 10));
            logrosDianasPerfectas.Add(new Logro("ACH_KICK_PER_02", 250, 35));
            logrosDianasPerfectas.Add(new Logro("ACH_KICK_PER_03", 750, 60));
            logrosDianasPerfectas.Add(new Logro("ACH_KICK_PER_04", 1800, 125));
            logrosDianasPerfectas.Add(new Logro("ACH_KICK_PER_05", 6000, 240));
            GrupoLogros grupoDianasPerfectas = new GrupoLogros("ACH_KICK_PER", LocalizacionManager.instance.GetTexto(170), LocalizacionManager.instance.GetTexto(171), logrosDianasPerfectas, GrupoLogros.Magnitud.DIANAS_PERFECTAS);

            // crear la lista de logros de lanzador
            m_logrosLanzador = new List <GrupoLogros>();
            m_logrosLanzador.Add(grupoDianas);
            m_logrosLanzador.Add(grupoPuntuacionLanzamientos);
            m_logrosLanzador.Add(grupoDianasPerfectas);
        }

        // F4KE: crear los grupos de logros de PORTERO
        if (m_logrosPortero == null)
        {
            List <Logro> logrosPuntuacionParadas = new List <Logro>();
            logrosPuntuacionParadas.Add(new Logro("ACH_KICK_PPU_01", 5500, 5));
            logrosPuntuacionParadas.Add(new Logro("ACH_KICK_PPU_02", 28000, 30));
            logrosPuntuacionParadas.Add(new Logro("ACH_KICK_PPU_03", 85000, 80));
            logrosPuntuacionParadas.Add(new Logro("ACH_KICK_PPU_04", 245000, 150));
            logrosPuntuacionParadas.Add(new Logro("ACH_KICK_PPU_05", 650000, 250));
            GrupoLogros grupoPuntuacionParadas = new GrupoLogros("ACH_KICK_PPU", LocalizacionManager.instance.GetTexto(172), LocalizacionManager.instance.GetTexto(173), logrosPuntuacionParadas, GrupoLogros.Magnitud.PUNTUACION_TOTAL_PORTERO);

            List <Logro> logrosDespejes = new List <Logro>();
            logrosDespejes.Add(new Logro("ACH_KICK_DES_01", 70, 5));
            logrosDespejes.Add(new Logro("ACH_KICK_DES_02", 280, 25));
            logrosDespejes.Add(new Logro("ACH_KICK_DES_03", 825, 65));
            logrosDespejes.Add(new Logro("ACH_KICK_DES_04", 2250, 120));
            logrosDespejes.Add(new Logro("ACH_KICK_DES_05", 6500, 215));
            GrupoLogros grupoDespejes = new GrupoLogros("ACH_KICK_DES", LocalizacionManager.instance.GetTexto(174), LocalizacionManager.instance.GetTexto(175), logrosDespejes, GrupoLogros.Magnitud.DESPEJES);

            List <Logro> logrosParadas = new List <Logro>();
            logrosParadas.Add(new Logro("ACH_KICK_ATR_01", 20, 15));
            logrosParadas.Add(new Logro("ACH_KICK_ATR_02", 100, 50));
            logrosParadas.Add(new Logro("ACH_KICK_ATR_03", 500, 175));
            logrosParadas.Add(new Logro("ACH_KICK_ATR_04", 1500, 300));
            logrosParadas.Add(new Logro("ACH_KICK_ATR_05", 3000, 500));
            GrupoLogros grupoParadas = new GrupoLogros("ACH_KICK_ATR", LocalizacionManager.instance.GetTexto(176), LocalizacionManager.instance.GetTexto(177), logrosParadas, GrupoLogros.Magnitud.PARADAS);

            // crear la lista de logros de portero
            m_logrosPortero = new List <GrupoLogros>();
            m_logrosPortero.Add(grupoPuntuacionParadas);
            m_logrosPortero.Add(grupoDespejes);
            m_logrosPortero.Add(grupoParadas);
        }

        // F4KE: crear los grupos de logro de DUELO
        if (m_logrosDuelo == null)
        {
            List <Logro> logrosJugarDuelos = new List <Logro>();
            logrosJugarDuelos.Add(new Logro("ACH_KICK_MUL_DUEL_01", 20, 5));
            logrosJugarDuelos.Add(new Logro("ACH_KICK_MUL_DUEL_02", 125, 35));
            logrosJugarDuelos.Add(new Logro("ACH_KICK_MUL_DUEL_03", 400, 80));
            logrosJugarDuelos.Add(new Logro("ACH_KICK_MUL_DUEL_04", 700, 150));
            GrupoLogros grupoJugarDuelos = new GrupoLogros("ACH_KICK_MUL_DUEL", LocalizacionManager.instance.GetTexto(178), LocalizacionManager.instance.GetTexto(179), logrosJugarDuelos, GrupoLogros.Magnitud.DUELOS_JUGADOS);

            List <Logro> logrosVencerDuelos = new List <Logro>();
            logrosVencerDuelos.Add(new Logro("ACH_KICK_MUL_WON_01", 10, 10));
            logrosVencerDuelos.Add(new Logro("ACH_KICK_MUL_WON_02", 50, 45));
            logrosVencerDuelos.Add(new Logro("ACH_KICK_MUL_WON_03", 125, 110));
            logrosVencerDuelos.Add(new Logro("ACH_KICK_MUL_WON_04", 600, 225));
            logrosVencerDuelos.Add(new Logro("ACH_KICK_MUL_WON_05", 2000, 450));
            GrupoLogros grupoVencerDuelos = new GrupoLogros("ACH_KICK_MUL_WON", LocalizacionManager.instance.GetTexto(180), LocalizacionManager.instance.GetTexto(181), logrosVencerDuelos, GrupoLogros.Magnitud.DUELOS_GANADOS);

            List <Logro> logrosDueloPerfecto = new List <Logro>();
            logrosDueloPerfecto.Add(new Logro("ACH_KICK_MUL_PFCT_01", 1, 20));
            GrupoLogros grupoDueloPerfecto = new GrupoLogros("ACH_KICK_MUL_PFCT", LocalizacionManager.instance.GetTexto(182), LocalizacionManager.instance.GetTexto(183), logrosDueloPerfecto, GrupoLogros.Magnitud.DUELOS_PERFECTOS);

            // crear la lista de logros de portero
            m_logrosDuelo = new List <GrupoLogros>();
            m_logrosDuelo.Add(grupoJugarDuelos);
            m_logrosDuelo.Add(grupoVencerDuelos);
            m_logrosDuelo.Add(grupoDueloPerfecto);
        }
    }