示例#1
0
 /// <summary>
 /// Compra pistas si tienes suficiente dinero y no has comprado ya todas
 /// </summary>
 public void buyHint()
 {
     // Si tenemos suficiente dinero lo restamos, actualizamos el texto de monedas
     // y damos la pista
     if (_hintIndex < _solLength && _gameManager.getCoins() >= _hintsCost)
     {
         _gameManager.addCoins(-_hintsCost);
         _coinText.text = _gameManager.getCoins().ToString();
         _coinText.createSprites();
         giveHint();
     }
 }
示例#2
0
    // Gestion del tiempo en los challenges
    private void challengeTimeUpdate()
    {
        // Solo esperamos a que el anuncio acabe en android
#if UNITY_ANDROID
        if (!Advertisement.isShowing)
        {
#endif
        // Disminuimos el tiempo segun deltatime
        _challengeTime -= Time.deltaTime;
        int mins            = (int)_challengeTime / 60;
        int secs            = (int)_challengeTime % 60;
        string s            = mins.ToString().PadLeft(2, '0') + "p" + secs.ToString().PadLeft(2, '0');
        SpriteSheetText aux = _challengeBottomUI.GetComponentInChildren <SpriteSheetText>();
        // comprobamos si nos hemos quedado sin tiempo
        if (_challengeTime <= 0)
        {
            _lostChallenge = true;
            levelCompleted();
        }
        // Si el tiempo ha cambiado, actualizamos el texto
        else if (s != aux.text)
        {
            aux.text = s;
            aux.createSprites();
        }
#if UNITY_ANDROID
    }
#endif
    }
示例#3
0
    private string _diffImagePath    = "Sprites/Texts/title_0_en";    // Ruta para la imagen con el texto dificultad


    public void Start()
    {
        _gameManager = GameManager.Instance();
        // Asignamos el texto de los niveles disponibles/totales
        _levelsText.text = _gameManager.getLevelIndex(_difficulty).ToString().PadLeft(1, '0')
                           + "S" + _gameManager.getLevelsPerDifficulty(_difficulty);
        _levelsText.createSprites();

        // Cargamos el sprite del texto de la dificultad
        _diffTextImage.sprite = Resources.Load <Sprite>(_diffImagePath.Replace("0", _difficulty.ToString()));

        // Cargamos el sprite del boton en reposo
        _buttonSprite = Resources.Load <Sprite>(_buttonImagePath.Replace("0", _difficulty.ToString()));
        // Si no se encuentra se deja la de dificultad 0
        if (_buttonSprite == null)
        {
            _buttonSprite = Resources.Load <Sprite>(_buttonImagePath);
        }
        _button.image.sprite = _buttonSprite;

        // Cargamos el sprite de boton puldaso
        _pressedButtonSprite = Resources.Load <Sprite>(_pressedImagePath.Replace("0", _difficulty.ToString()));
        // Si no se encuentra se deja la de dificultad 0
        if (_pressedButtonSprite == null)
        {
            _pressedButtonSprite = Resources.Load <Sprite>(_pressedImagePath);
        }
    }
示例#4
0
 // Aqui gestionamos una victoria en uno de los niveles normales
 private void normalLevelCompleted(int level, int dif)
 {
     _clearPanel.SetActive(true);
     _clearLevelText.createSprites();
     if (level + 1 > _gameManager.getLevelIndex(dif) && level <= 100)
     {
         _gameManager.upgradeLevelIndex(dif);
     }
 }
示例#5
0
    /// <summary>
    /// Crea los botones de las distintas dificultades y asigna sus textos
    /// </summary>
    public void difficultyButtonsSetUp()
    {
        GameObject aux;

        // Creamos los botones para las dificultades
        for (int i = 0; i < _gameManager.getNDifficulties(); i++)
        {
            aux = Instantiate(_difficultyButton, _titleFather.transform);
            aux.GetComponent <MainMenuButton>()._difficulty = i;
        }
        // Obtenemos el numero de desafios completados y creamos el texto
        _challengerText.text = _gameManager.getLevelIndex(_gameManager.getNDifficulties()).ToString().PadLeft(1, '0');
        _challengerText.createSprites();
        // Ponemos el boton de challenge al final
        _challengeButton.transform.SetAsLastSibling();
    }
示例#6
0
    // Update is called once per frame
    private void Update()
    {
        // Si la opcion de challenge no esta activa
        if (!_challengeAvailable)
        {
            // Restamos el tiempo transcurrido al total del challenge
            double t = Time.deltaTime;
            _gameManager.addToChallengeTime(-t);

            _seconds = _gameManager.getChallengeTime();

            // Si no se ha acabado el tiempo
            if (_seconds > 0)
            {
                _disableChallengePanel.SetActive(true);

                // Escribimos el tiempo restante
                int    mins = (int)_seconds / 60;
                int    secs = (int)_seconds % 60;
                string s    = mins.ToString().PadLeft(2, '0') + "p" + secs.ToString().PadLeft(2, '0');

                // Si ha llegado a pasar un segundo actualizamos el texto
                if (s != _challengeTimeText.text)
                {
                    _challengeTimeText.text = s;
                    _challengeTimeText.createSprites();

                    // Guardamos el tiempo actual para poder llevar el conteo de cuanto
                    // tiempo le queda al challenge aun estando fuera de esta
                    // pantalla o con el juego cerrado
                    _gameManager.saveDate();
                }
            }

            // Si se ha acabado el tiempo desbloqueamos el challenge
            else
            {
                _disableChallengePanel.SetActive(false);
                _challengeAvailable = true;
            }
        }

        updateCoins();
    }
示例#7
0
    // Asigna el indexLevel y los textos e imagenes relativos al nivel
    // gestiona los niveles aleatorios en challenges
    private void initialSetUp()
    {
        int level;
        int difficulty = _gameManager.getDifficulty();

        // En ambos casos asignamos la imagen que muestra la dificultad y el sheet del dinero

        _coinText.text = _gameManager.getCoins().ToString();
        _coinText.createSprites();

        // Si estamos en un challenge asignamos el texto de la recompensa
        // y elegimos un nivel aleatorio dentro del rango
        if (difficulty == _gameManager.getNDifficulties())
        {
            Sprite textSprite = Resources.Load <Sprite>(_textPath.Replace("0", "challenge"));
            _difficultyImage.sprite      = textSprite;
            _clearDifficultyImage.sprite = textSprite;
            _challenge = true;
            _gameManager.setDifficulty(Random.Range(_minChallengeDif, _maxChallengeDif));
            _gameManager.setLevel(Random.Range(0, _gameManager.getLevelsPerDifficulty(_gameManager.getDifficulty())));
            _challengeRewardText.text = "+" + _challengeRewardCoins;
            _challengeBottomUI.SetActive(true);
        }
        // En niveles normales asignamos textos e imagenes relativoa al nivel
        else
        {
            Sprite textSprite = Resources.Load <Sprite>(_textPath.Replace("0", difficulty.ToString().ToLower()));
            _difficultyImage.sprite      = textSprite;
            _clearDifficultyImage.sprite = textSprite;
            level                = _gameManager.getLevel();
            _levelText.text      = level.ToString();
            _clearLevelText.text = level.ToString();
            _levelText.createSprites();
            _regularBottomUI.SetActive(true);
        }
    }
示例#8
0
 /// <summary>
 /// Actualiza el texto de las monedas
 /// </summary>
 public void updateCoins()
 {
     _coinText.text = _gameManager.getCoins().ToString();
     _coinText.createSprites();
 }