/// <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(); } }
// 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 }
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); } }
// 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); } }
/// <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(); }
// 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(); }
// 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); } }
/// <summary> /// Actualiza el texto de las monedas /// </summary> public void updateCoins() { _coinText.text = _gameManager.getCoins().ToString(); _coinText.createSprites(); }