/// <summary> /// Muestra el dialogo /// </summary> /// <param name="_showHardCoinPacks">Indica si en el dialogo hay que mostrar packs de hardcoins o de softcoins</param> public void Show(bool _showHardCoinPacks) { #if UNITY_IPHONE || UNITY_ANDROID string[] precios = PurchaseManager.GetPreciosOrdenados(); #else //string[] precios = {"0.0 €","0.0 €","0.0 €","0.0 €","0.0 €","0.0 €","0.0 €","0.0 €","0.0 €","0.0 €","0.0 €","0.0 €"}; string[] precios = { "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?" }; #endif #if !UNITY_EDITOR // verificar que se haya obtenido los precios de la tienda if (precios == null || precios[0] == "?") { ifcDialogBox.instance.ShowOneButtonDialog(ifcDialogBox.OneButtonType.POSITIVE, LocalizacionManager.instance.GetTexto(84).ToUpper(), LocalizacionManager.instance.GetTexto(290), LocalizacionManager.instance.GetTexto(45).ToUpper()); return; } #endif m_interfazAnterior = ifcBase.activeIface; // guardar la interfaz anterior para recuperarla GeneralSounds_menu.instance.playOneShot(GeneralSounds_menu.instance.popupOnClip); // inicializar los botones de compra de monedas for (int i = 0; i < PurchaseManager.HARDCASH_PACKS; ++i) { int idx = (i + 1); int index = i; int skuIndex = index + ((_showHardCoinPacks) ? 0 : PurchaseManager.HARDCASH_PACKS); // accion al pulsar el boton btnButton btn = transform.FindChild("caja/pack_" + idx).GetComponent <btnButton>(); btn.GetComponent <GUITexture>().texture = (_showHardCoinPacks) ? m_texturaHardCoins : m_texturaSoftCoins; btn.m_current = (_showHardCoinPacks) ? m_texturaHardCoins : m_texturaSoftCoins; btn.action = (_name) => { GeneralSounds_menu.instance.playOneShot(GeneralSounds_menu.instance.compraMonedaClip); Debug.Log("Comprar paquete " + skuIndex); BillingManager.instance.purchaseProduct(PurchaseManager.skus[skuIndex]); // incrementar los diferentes tipos de moneda //Interfaz.MonedasHard += cantidadMonedasHard; //Interfaz.MonedasSoft += cantidadMonedasSoft; // ocultar este control //this.gameObject.SetActive(false); //cntBarraSuperior.instance.ActualizarDinero(); }; // actualizar el texto con la cantidad de moneda del pack btn.transform.FindChild("Amount").GetComponent <GUIText>().text = ((_showHardCoinPacks) ? PurchaseManager.m_valoresPackMonedasHard[index] : PurchaseManager.m_valoresPackMonedasSoft[index]).ToString(); btn.transform.FindChild("Amount/Shadow").GetComponent <GUIText>().text = ((_showHardCoinPacks) ? PurchaseManager.m_valoresPackMonedasHard[index] : PurchaseManager.m_valoresPackMonedasSoft[index]).ToString(); // actualizar el texto con el precio del pack btn.transform.FindChild("HardCashPrice/Text").GetComponent <GUIText>().text = precios[skuIndex]; btn.transform.FindChild("HardCashPrice/TextSombra").GetComponent <GUIText>().text = precios[skuIndex]; _hardCashPackButtons.Add(btn); } this.gameObject.SetActive(true); // mostrar este control }
/// <summary> /// Muestra la pantalla recibida como parametro y la lleva (con el supertweener a la posicion "_posicionDestino") /// </summary> /// <param name="_pantallaDestino"></param> /// <param name="_posicionDestino"></param> private void ShowPantalla(ifcBase _pantallaDestino, Vector3 _posicionDestino) { // obtener la interfaz actual ifcBase interfazActual = ifcBase.activeIface; // posicion destino de la interfaz que se va a ocultar Vector3 posicionDestinoInterfaz = new Vector3(-1.0f, 0.0f, 0.0f); // si la interfaz actual no es ninguna de las que se accede desde esta barra de botones => guardarla if (interfazActual != ifcPerfil.instance && interfazActual != ifcLogros.instance) { m_ultimaPantallaVisitada = interfazActual; m_posVisibleUltimaPantallaVisitada = interfazActual.transform.localPosition; // calcular la posicion destino de la interfaz que se va a ocultar posicionDestinoInterfaz = new Vector3(-1.0f, m_posVisibleUltimaPantallaVisitada.y, m_posVisibleUltimaPantallaVisitada.z); // guardar el estado de visibilidad de los modelos de los jugadores m_modeloLanzadorVisibleUltimaPantallaVisitada = Interfaz.instance.GetModeloLanzadorEstaVisible(); m_modeloPorteroVisibleUltimaPantallaVisitada = Interfaz.instance.GetModeloPorteroEstaVisible(); } Interfaz.ClickFX(); Interfaz.instance.CleanPlayers(); // ocultar esta pantalla y pasar a la que corresponda new SuperTweener.move(interfazActual.gameObject, 0.25f, posicionDestinoInterfaz, SuperTweener.CubicOut, // on endCallback (_name) => { if (interfazActual == ifcPerfil.instance) { ifcPerfil.instance.SetVisible(false); } if (interfazActual == ifcLogros.instance) { ifcLogros.instance.SetVisible(false); } }); new SuperTweener.move(_pantallaDestino.gameObject, 0.25f, _posicionDestino, SuperTweener.CubicOut); ifcBase.activeIface = _pantallaDestino; }
/// <summary> /// Muestra un popup /// </summary> /// <param name="_title"></param> /// <param name="_text"></param> /// <param name="_fixPosition">Si es true hace que el PopUp se muestre directamente en su posicion de pantalla (sin ser desplazado por el supertweener) en los casos de mostrar un popUp se pueda solapar con la cortinilla (que hace un flush del supertweener)</param> public void Show(string _title, string _text) { m_interfazAnterior = ifcBase.activeIface; ifcBase.activeIface = this; GeneralSounds_menu.instance.playOneShot(GeneralSounds_menu.instance.popupOnClip); InputManager.instance.Blocked = true; gameObject.SetActive(true); transform.Find("Titulo").GetComponent <GUIText>().text = _title; GUIText gt = transform.Find("Texto").GetComponent <GUIText>(); int lines = 0; gt.text = ifcTooltip.warp(_text, 270.0f, gt.font, gt.fontSize, out lines); transform.Find("Texto").GetComponent <txtText>().Fix(); transform.position = new Vector3(-1, -0.2f, 0); new SuperTweener.move(gameObject, 0.33f, new Vector3(0, -0.2f, 0)); }
/// <summary> /// Inicializa y muestra las partes comunes a todos los tipos de dialogo /// </summary> /// <param name="_titulo"></param> /// <param name="_texto"></param> private void GenericShowDialog(string _titulo, string _texto, bool _mostrarCerrar = false, btnButton.guiAction _onCerrarCallback = null, bool _mute = false) { //guardar la interfaz actual para recuperarla al cerrar el dialogo m_interfazAnterior = ifcBase.activeIface; // indicar que no hay cierre de este dialogo por tiempo m_timeLimit = 0.0f; m_timeLimitCallback = null; // titulo m_titulo.text = _titulo.ToUpper(); m_tituloSombra.text = m_titulo.text; // texto del control m_texto.text = _texto; m_texto.GetComponent <txtText>().Fix(); // <= ajustar los retornos de carro m_texto.pixelOffset = new Vector2(m_texto.pixelOffset.x, m_yTextoSinCrono); // posicionar el texto a la altura que le corresponde (sin crono) // inicializar el boton "Cerrar" if (_mostrarCerrar) { m_btnCerrar.action = (_name) => { // hacer sonar el click y ocultar este dialogo GeneralSounds_menu.instance.playOneShot(GeneralSounds_menu.instance.popupOffClip); // indicar que ya no hay cierre de este dialogo por tiempo m_timeLimit = 0.0f; m_timeLimitCallback = null; // ocultar este control gameObject.SetActive(false); // ejecutar el callback correspondiente if (_onCerrarCallback != null) { _onCerrarCallback(_name); } }; m_btnVelo.action = (_name) => { // hacer sonar el click y ocultar este dialogo GeneralSounds_menu.instance.playOneShot(GeneralSounds_menu.instance.popupOffClip); // indicar que ya no hay cierre de este dialogo por tiempo m_timeLimit = 0.0f; m_timeLimitCallback = null; // ocultar este control gameObject.SetActive(false); // ejecutar el callback correspondiente if (_onCerrarCallback != null) { _onCerrarCallback(_name); } }; m_btnCerrar.gameObject.SetActive(true); } else { m_btnCerrar.gameObject.SetActive(false); m_btnVelo.action = null; } // ocultar el cronometro m_cronometro.gameObject.SetActive(false); // ocultar la caja de texto m_mostrandoTextInput = false; // mostrar este control this.gameObject.SetActive(true); if (!_mute) { GeneralSounds_menu.instance.playOneShot(GeneralSounds_menu.instance.popupOnClip); } }
/// <summary> /// Pantalla desde la que se llama a esta /// </summary> /// <param name="_pantalla"></param> public void SetPantallaBack(ifcBase _pantalla) { m_pantallaAnterior = _pantalla; }