void OnServerFound(int clientJoinRequestId, int serverJoinRequestId, string ipAddress, int port) { if (m_MessageBox == null || m_MessageBox.IsVisible == false) { return; } m_MessageBox.SetText(TextDatabase.instance[0109054]); m_MessageBox = null; System.Net.IPAddress serverAddress = null; System.Net.IPAddress.TryParse(ipAddress, out serverAddress); System.Net.IPEndPoint serverEndpoint = new System.Net.IPEndPoint(serverAddress, port); Game.Instance.StartNewMultiplayerGame(serverEndpoint, serverJoinRequestId); }
void ShowMessage(int textId, bool canClose) { if (m_MessageBox == null || m_MessageBox.IsVisible == false) { m_MessageBox = Owner.ShowPopup("MessageBox", "", "") as GuiPopupMessageBox; } if (m_MessageBox != null) { m_MessageBox.SetCaption(TextDatabase.instance[MESSAGE_CAPTION]); m_MessageBox.SetText(TextDatabase.instance[textId]); m_MessageBox.SetButtonVisible(canClose); } }
IEnumerator BuyPremiumAccount_Coroutine(int acctType) { int idx = acctType - 1; int gold = ShopDataBridge.Instance.PlayerGold; int price = m_Accounts[idx].RealPrice; string acctTypeID = m_Accounts[idx].Id; CloudUser user = CloudUser.instance; // not enough golds if (price > gold) { ShopItemId itemId = ShopDataBridge.Instance.GetPremiumAcct(acctTypeID); if (itemId == ShopItemId.EmptyId) { // ... yield break; } int fundsNeeded = price - gold; bool buySucceed = true; ShopItemId reqIAP = ShopDataBridge.Instance.FindFundsItem(fundsNeeded, true); if (reqIAP.IsEmpty()) { yield break; } GuiShopNotFundsPopup.Instance.AddFundsID = reqIAP; GuiPopup popup = Owner.ShowPopup("NotFundsPopup", "", "", (inPopup, inResult) => { switch (inResult) { case E_PopupResultCode.Cancel: buySucceed = false; break; case E_PopupResultCode.Failed: buySucceed = false; break; } }); //Debug.Log("Popup Visible:" + popup.IsVisible); while (popup.IsVisible == true) { yield return(new WaitForEndOfFrame()); } if (buySucceed == false) { yield break; } //Debug.Log("IAP success:" + buySucceed); } // store current status of premium account bool hadPremiumAccount = user.isPremiumAccountActive; // create cloud action BaseCloudAction action = new BuyPremiumAccountAndFetchPPI(user.authenticatedUserID, acctTypeID); GameCloudManager.AddAction(action); // show message box GuiPopupMessageBox msgBox = (GuiPopupMessageBox)Owner.ShowPopup("MessageBox", TextDatabase.instance[01140017], TextDatabase.instance[01140018], (popup, result) => { if (action.isSucceeded == true) { Owner.Back(); SendResult(E_PopupResultCode.Ok); } }); msgBox.SetButtonVisible(false); msgBox.SetButtonEnabled(false); // wait for async action... while (action.isDone == false) { yield return(new WaitForEndOfFrame()); } // update message box int textId = 01140021; if (action.isSucceeded == true) { textId = hadPremiumAccount == true ? 01140020 : 01140019; } msgBox.SetText(TextDatabase.instance[textId]); msgBox.SetButtonVisible(true); msgBox.SetButtonEnabled(true); }
IEnumerator UpdateProfile_Coroutine() { // show message box with some info GuiPopupMessageBox msgbox = Owner.ShowPopup("MessageBox", TextDatabase.instance[0107000], TextDatabase.instance[0107022]) as GuiPopupMessageBox; msgbox.SetButtonVisible(false); // update profile UpdateMFAccountAndFetchPPI action = CloudUser.instance.UpdateUser(m_Password1Hash, GuiBaseUtils.FixNickname(m_Nickname, CloudUser.instance.userName_TODO), null, m_ReceiveNews, m_Region); while (action.isDone == false) { yield return(new WaitForSeconds(0.2f)); } if (action.isSucceeded == true) { // update cloud user with actual informations string username = ""; string nickname = ""; string password = ""; int pwdLength = 0; bool rememberMe = true; bool autoLogin = true; CloudUser.instance.GetLoginData(ref nickname, ref username, ref password, ref pwdLength, ref rememberMe, ref autoLogin); CloudUser.instance.SetLoginData(CloudUser.instance.primaryKey, m_Nickname, username, m_Password1Hash, m_PasswordLength, rememberMe, autoLogin); CloudUser.instance.receiveNews = m_ReceiveNews; CloudUser.instance.region = m_Region; PlayerPersistantInfo ppi = PPIManager.Instance.GetLocalPPI(); if (ppi != null) { ppi.Name = m_Nickname; PPIManager.Instance.NotifyLocalPPIChanged(); } // connect to correct lobby LobbyClient.ConnectToLobby(m_Region); // inform user that we are done msgbox.SetText(TextDatabase.instance[0107020]); msgbox.SetHandler((popup, result) => { Owner.Back(); }); } else { // inform user that there were a problem with updating msgbox.SetText(TextDatabase.instance[0107021]); } // let user press 'OK' msgbox.SetButtonText(TextDatabase.instance[0107024]); msgbox.SetButtonVisible(true); }