public void GuardarPartidaSinglePlayer()
    {
        int bitMapProgreso = 0;
        //TODO convertir esto a guardar objetivos de mision
        GameLevelMission gameLevel = MissionManager.instance.GetGameLevelMission(GameplayService.gameLevelMission.MissionName);

        GameplayService.gameLevelMission.UnFreeze();
        MissionAchievement[] retosAntes = GameplayService.gameLevelMission.GetAchievements().ToArray();
        //MissionAchievement[] retosDespues = MissionManager.instance.GetMission().Achievements.ToArray();

        if (gameLevel == null)
        {
            Debug.LogWarning(">>> No hay informacion del nivel " + GameplayService.gameLevelMission.MissionName);
        }
        else
        {
            string claveNivel = "prog" + gameLevel.MissionName;
            bitMapProgreso = EncryptedPlayerPrefs.GetInt(claveNivel, 0);

            for (int i = 0; i < retosAntes.Length; i++)
            {
                int flag = (bitMapProgreso % ((int)Mathf.Pow(10, i + 1))) / (int)Mathf.Pow(10, i);
                if (retosAntes[i].IsAchieved() && (flag == 0)) //importante el isAchieved() primero para que lo haga, evitar el lazy
                {
                    bitMapProgreso += (int)Mathf.Pow(10, retosAntes[i].Code);
                }
            }

            EncryptedPlayerPrefs.SetInt(claveNivel, bitMapProgreso);
        }

        // guardar las preferencias
        PlayerPrefs.Save();
    }
Exemple #2
0
 public GameLevel GetMissionLevel(GameLevelMission _mission)
 {
     foreach (GameLevel level in m_levels)
     {
         if (level.ListaMisiones.Contains(_mission))
         {
             return(level);
         }
     }
     return(null);
 }
    /// <summary>
    /// Muestra la informacion asociada al nivel recibido como parametro
    /// </summary>
    /// <param name="_glm"></param>
    /// <param name="_numBoton">Numero de boton asociado a esta mision</param>
    public void ShowLevelMission(GameLevelMission _glm, int _numBoton)
    {
        GetReferencias();

        // guardar la mision como seleccionada
        m_currentLevelMission = _glm;

        // mostrar la info de la mision y actualizar el estado del boton "jugar"
        bool misionDesbloqueada = _numBoton <= Interfaz.ultimaMisionDesbloqueada;

        m_levelSelectionTooltip.SetInfo(_glm, misionDesbloqueada);

        Debug.Log(">>> Nombre mision = " + _glm.MissionFileName);

        // hacer que se muestre el modelo del portero o del jugador en la interfaz
        Interfaz.instance.RefrescarModelosJugadores(_glm.MissionGameMode == GameMode.Shooter, _glm.MissionGameMode == GameMode.GoalKeeper);
    }
Exemple #4
0
    /// <summary>
    /// Devuelve un GameLevelMission por su nombre con el que lo identifican los WebServices
    /// </summary>
    /// <param name="_missionId"></param>
    /// <returns></returns>
    public GameLevelMission GetGameLevelMission(string _missionId)
    {
        if (m_levels != null)
        {
            for (int i = 0; i < m_levels.Count; ++i)
            {
                // comprobar si este nivel contiene la mision que se esta buscando
                GameLevelMission mision = m_levels[i].GetGameLevelMission(_missionId);
                if (mision != null)
                {
                    return(mision);
                }
            }
        }

        Debug.LogWarning(">>> No se ha encontrado una mision con id=" + _missionId);
        return(null);
    }
Exemple #5
0
    /// <summary>
    /// Inicializa este control
    /// </summary>
    /// <param name="_numMision">Número de misison (de 0 a 9)</param>
    /// <param name="_glm"></param>
    /// <param name="_misionDesbloqueada">Indica si esta mision ha sido desbloqueada o no</param>
    public void Init(int _numMision, GameLevelMission _glm, bool _misionDesbloqueada)
    {
        // obtener las referencias a los elementos de esta interfaz
        GetReferencias();

        m_misionDesbloqueada = _misionDesbloqueada;

        // pintar el numero de mision
        m_txtNumMision.text = (_numMision + 1).ToString();

        // asignarle el icono que corresponda en funcion del estado y tipo de mision
        if (m_misionDesbloqueada)
        {
            m_imgIcono.texture = (_glm.MissionGameMode == GameMode.Shooter) ? m_texturaLanzador : m_texturaPortero;
        }
        else
        {
            m_imgIcono.texture = (_glm.MissionGameMode == GameMode.Shooter) ? m_texturaLanzadorOff : m_texturaPorteroOff;
        }

        // pintar los objetivos conseguidos en esta mision
        List <MissionAchievement> logros = _glm.GetAchievements();

        for (int i = 0; i < logros.Count; ++i)
        {
            m_imgsObjetivos[i].gameObject.SetActive(logros[i].IsAchieved());
        }

        // boton
        m_boton.action = (_name) => {
            Debug.Log(">>> _glm=" + _glm + "   _numMision=" + _numMision);

            cntMissions.instance.ShowLevelMission(_glm, _numMision);
            cntMissions.instance.MostrarBotonSeleccionado(_numMision % 10);
            GeneralSounds_menu.instance.select();
        };

        // fondo del boton
        m_boton.m_current = (_misionDesbloqueada) ? m_texturaBotonUp : m_texturaBotonBlock;
    }
    /// <summary>
    /// Inicio de la partida
    /// </summary>
    public void Inicializar()
    {
        ResetInfo();

        // instante de inicio de la mision
        m_instanteInicio = Time.timeSinceLevelLoad;

        // calcular los objetivos que ya hay cumplidos al inicio de la mision
        GameLevelMission mision = GameplayService.gameLevelMission;

        if (mision == null)
        {
            Debug.LogWarning("No hay mision cargada");
        }
        else
        {
            List <MissionAchievement> objetivosMision = mision.GetAchievements();
            if (objetivosMision == null)
            {
                Debug.LogWarning("La mision " + GameplayService.gameLevelMission.MissionName + " no tiene objetivos definidos.");
            }
            else
            {
                for (int i = 0; i < objetivosMision.Count; ++i)
                {
                    if (objetivosMision[i].IsAchieved())
                    {
                        Debug.Log("En la mision " + GameplayService.gameLevelMission.MissionName + " el objetivo " + objetivosMision[i].Code + " SI esta conseguido.");
                        m_listaObjetivosIncioMision.Add(objetivosMision[i]);
                    }
                    else
                    {
                        Debug.Log("En la mision " + GameplayService.gameLevelMission.MissionName + " el objetivo " + objetivosMision[i].Code + " aun NO esta conseguido.");
                    }
                }
            }
        }

        //misionInfo.SetAchivementState(objetivosConseguido.ToString(), true);
    }
    private void UpdateMissionButtons()
    {
        GameLevel gameLevel = MissionManager.instance.GetGameLevel(m_numCurrentLevel);

        // actualizar la pagina de misiones
        for (int i = 0; i < m_missionButtons.Length; ++i)
        {
            GameLevelMission glm = gameLevel.GetGameLevelMission(i);

            bool misionDesbloqueada = (m_numCurrentLevel * 10 + i) <= Interfaz.ultimaMisionDesbloqueada;
            m_missionButtons[i].Init(glm.Index, glm, misionDesbloqueada);
        }

        // actualizar la pagina de misiones

        /*
         * GameLevel gameLevel = MissionManager.instance.GetGameLevel(m_numCurrentLevel);
         * for ( int i = 0; i < NUM_MISSIONS_PAGE; ++i ) {
         *  if ( i < gameLevel.numMissions && Interfaz.ultimaMisionDesbloqueada >= gameLevel.GetGameLevelMission(i).Index) {
         *      btnMissionButton bm = m_missionButtons[ i ];
         *      GameLevelMission glm = gameLevel.GetGameLevelMission(i);
         *      int numBoton = i;
         *      bm.Init( ( i + 1 ).ToString(), glm.MissionGameMode,
         *               glm.MissionUnlocked, glm.numEstrellas,
         *               (_name) => {
         *                   ShowLevelMission(glm);
         *                   MostrarBotonSeleccionado(numBoton);
         *               } );
         *      m_missionButtons[ i ].gameObject.SetActive( true );
         *  }
         *  else {
         *      m_missionButtons[ i ].gameObject.SetActive( false );
         *  }
         * }
         */
    }
Exemple #8
0
    /// <summary>
    /// Actualiza la informacion de la mision a mostrar
    /// </summary>
    /// <param name="gameLevel"></param>
    /// <param name="_misionDesbloqueada"></param>
    public void SetInfo(GameLevelMission gameLevel, bool _misionDesbloqueada)
    {
        BuscarReferencias();

        // guardar en el "ifcCarrera" si la mision es de lanzador o de portero
        ifcCarrera.instance.estoyMostrandoMisionDeLanzador = (gameLevel.MissionGameMode == GameMode.Shooter);

        // mostrar el nombre de la mision
        m_missionNameLabel.text       = LocalizacionManager.instance.GetTexto(11).ToUpper() + " " + (gameLevel.Index + 1);//int.Parse(partesNombreMision[2]);// + " (" + gameLevel.GetRoundsCount() + " " + LocalizacionManager.instance.GetTexto(145) + ")";
        m_missionNameLabelSombra.text = m_missionNameLabel.text;

        //SetMissionIcon( gameLevel.MissionGameMode );

        // mostrar los objetivos de mision
        int idx = 0;

        foreach (var achievement in gameLevel.GetAchievements())
        {
            bool objetivoConseguido = achievement.IsAchieved();

            // pintar el texto del objetivo de mision con la opacidad que corresponda
            m_missionAchievementLabels[idx].text = achievement.DescriptionID;
            Color colorTexto = m_missionAchievementLabels[idx].color;
            colorTexto.a = objetivoConseguido ? 1.0f : 0.5f;
            m_missionAchievementLabels[idx].color = colorTexto;

            // pintar la sombra del texto
            m_missionAchievementLabelsSombra[idx].text = achievement.DescriptionID;
            m_missionAchievementLabelsSombra[idx].gameObject.SetActive(objetivoConseguido);

            // pintar la estrella con la opacidad que corresponda
            Color colorEstrella = m_iconoObjetivoConseguido[idx].color;
            colorEstrella.a = achievement.IsAchieved() ? 1.0f : 0.2f;
            m_iconoObjetivoConseguido[idx].color   = colorEstrella;
            m_iconoObjetivoConseguido[idx].texture = objetivoConseguido ? m_texturasPrimasConseguidas[idx] : m_texturasPrimasNoConseguidas[idx];

            idx++;
        }

        // actualizar el estado del boton jugar
        m_playButton.gameObject.SetActive(_misionDesbloqueada);
        //m_missionModeIcon.gameObject.SetActive(_misionDesbloqueada);
        if (_misionDesbloqueada)
        {
            m_playButton.action =
                (_name) => {
                GeneralSounds_menu.instance.playOneShot(GeneralSounds_menu.instance.confirmClip);

                // almacenar el modo de juego que se ha seleccionado
                GameplayService.initialGameMode  = gameLevel.MissionGameMode;
                GameplayService.modoJuego        = InfoModosJuego.instance.GetModoJuego("SHOOTER_NORMAL_MODE");
                GameplayService.gameLevelMission = gameLevel;

                // inicializar la pantalla de vestuario
                ifcBase.activeIface = ifcVestuario.instance;
                ifcVestuario.instance.SetPantallaBack(ifcCarrera.instance);

                ifcVestuario.instance.SetVisible(true);
                ifcVestuario.instance.ShowAs(ifcCarrera.instance.estoyMostrandoMisionDeLanzador ? ifcVestuario.TipoVestuario.LANZADOR : ifcVestuario.TipoVestuario.PORTERO);

                // mostrar el vestuario
                new SuperTweener.move(ifcCarrera.instance.gameObject, 0.25f, new Vector3(-1.0f, 0.0f, 0.0f), SuperTweener.CubicOut, (_target) => { ifcCarrera.instance.SetVisible(false); });
                new SuperTweener.move(ifcVestuario.instance.gameObject, 0.25f, new Vector3(0.5f, 0.5f, 0.0f), SuperTweener.CubicOut, (_target) => { });

                //Cortinilla.instance.Play();
            };
        }
    }