Exemplo n.º 1
0
    //..........................................................................................................................
    public void RemoveFriend(string inFriendName)
    {
        // check preconditions...
        if (CloudUser.instance.isUserAuthenticated == false)
        {
            Debug.LogError("user is not authenticated, can't fetch friends list");
            return;
        }

        int friendIndex = m_Friends.FindIndex(f => f.PrimaryKey == inFriendName);

        if (friendIndex < 0)
        {
            //Debug.Log("User with name " + inFriendName + " is not in friendlist");
            return;
        }

        // remove friend from list...
        m_Friends.RemoveAt(friendIndex);

        // send reguest into cloud and ignore result. Friend was removed...
        GameCloudManager.AddAction(new CancelFriendship(CloudUser.instance.authenticatedUserID, inFriendName));

        // notify recipient about change and save new friend list...
        OnFriendListChanged();
        Save();
    }
Exemplo n.º 2
0
	// ------
	void OnAcceptButton(bool inside)
	{
		if (!inside)
			return;

		WeaponSettings.Upgrade upgrade = m_ResearchItem.GetUpgrade(m_UpgradeIndex);
		if (upgrade.GoldCost > 0 && ResearchSupport.Instance.HasPlayerEnoughFunds(upgrade.GoldCost, true) == false)
		{
			//zobrazit not funds popup
			/*GuiShopNotFundsPopup.Instance.DesiredItem = new ShopItemId((int)upgrade.ParentID, GuiShop.E_ItemType.Weapon);
			GuiShopNotFundsPopup.Instance.UpgradeID   = m_UpgradeIndex;
			Owner.ShowPopup("NotFundsPopup", "", "");*/
			Owner.ShowPopup("ShopMessageBox", TextDatabase.instance[02030091], TextDatabase.instance[02030092], null);
		}
		else
		{
#if !TEMPORARY_UPGRADE_HACK
			int guid = upgrade.GetGUID();
			m_UpgradeCloudAction = new BuyAndFetchPPI(CloudUser.instance.authenticatedUserID, guid);
			GameCloudManager.AddAction(m_UpgradeCloudAction);
#else
				// TEMPORARY CODE
			ResearchSupport.Instance.GetPPI().InventoryList.TMP_CODE_AddWeaponUpgrade( (m_ResearchItem as ResearchItem).weaponID, m_ResearchItem.GetUpgrade(m_UpgradeIndex).ID );
#endif
			GuiPopupResearchWait popik =
							Owner.ShowPopup("ResearchWait", TextDatabase.instance[0113050], TextDatabase.instance[0113060], BuyWaitResultHandler) as
							GuiPopupResearchWait;
			popik.SetActionStatusDelegate(GetActionStatus);
		}
	}
Exemplo n.º 3
0
    void OnAcceptButton(bool inside)
    {
        if (!inside)
        {
            return;
        }

        //check if we have enough money

        //if(true) //pro test not funds
        if (!ShopDataBridge.Instance.HaveEnoughMoney(m_BuyItemId, -1))
        {
            //zobrazit not funds popup
            //GuiShopNotFundsPopup.Instance.DesiredItem = m_BuyItemId;
            //Owner.ShowPopup("NotFundsPopup", "", "", NoFundsResultHandler);
            Owner.ShowPopup("ShopMessageBox", TextDatabase.instance[02030091], TextDatabase.instance[02030092], null);
        }
        else
        {
            //TODO_DT - tady by se mohlo rozlisovat mezi asyc koupi a lokalni koupi.
            //spawn server request
            int guid = ShopDataBridge.Instance.GetShopItemGUID(m_BuyItemId);
            m_BuyCloudAction = new BuyAndFetchPPI(CloudUser.instance.authenticatedUserID, guid);
            GameCloudManager.AddAction(m_BuyCloudAction);

            //tohle se mi moc nelibi, vyvolavame wait box a result vlastne ani nepotrebujeme
            Owner.ShowPopup("ShopStatusBuy", TextDatabase.instance[02030020], TextDatabase.instance[02030096], BuyWaitResultHandler);

            //Debug.Log(" Starting buy request: time " + Time.time + " item " + m_BuyItemId);

            //pri lokalni koupi by stacilo poslat jen result success
            //CloseDialog();
            //SendResult(E_PopupResultCode.Success);
        }
    }
Exemplo n.º 4
0
    IEnumerator GetFriendListFromCloud_Corutine()
    {
        BaseCloudAction action = new GetUserData(CloudUser.instance.authenticatedUserID, CloudServices.PROP_ID_FRIENDS);

        GameCloudManager.AddAction(action);
        m_GetFriendListAction = action;

        // wait for authentication...
        while (action.isDone == false)
        {
            yield return(new WaitForSeconds(0.2f));
        }

        if (action.isFailed == true)
        {
            Debug.LogError("Can't obtain frinds list " + action.result);
        }
        else
        {
            //Debug.Log("frinds list is here " + action.result);
            RegenerateFriendList(action.result);
        }

        m_GetFriendListAction = null;
    }
Exemplo n.º 5
0
    private IEnumerator GetCloudPPI_Coroutine()
    {
        //Debug.Log(Time.timeSinceLevelLoad + " GetPPIFromCloud Begin ");
        GetPlayerPersistantInfo action = new GetPlayerPersistantInfo(CloudUser.instance.authenticatedUserID);

        GameCloudManager.AddAction(action);

        // wait for authentication...
        while (action.isDone == false)
        {
            yield return(new WaitForSeconds(0.2f));
        }

        if (action.isSucceeded == true)
        {
            //Debug.Log(Time.timeSinceLevelLoad + " GetPPIFromCloud End ");
            PlayerPersistantInfo PPIFromCloud = new PlayerPersistantInfo();

            //Debug.LogWarning("Cloud PlayerPersistantInfo = " + action.result);

            if (PPIFromCloud.InitPlayerDataFromStr(action.result))
            {
                SetPPIFromCloud(PPIFromCloud);

                yield break;
            }
        }

        // TODO Is this correct? Maybe null is better...
//		Debug.LogError("Cannot get PPI from cloud: using fake PPI");
//		PPIFromCloud = new PlayerPersistantInfo();

        Debug.LogError("Cannot get PPI from cloud" + action.status);
    }
Exemplo n.º 6
0
    // ------
    GuiPopupResearchWait.E_AsyncOpStatus GetActionStatus()
    {
        if (m_CheckEquipCloudAction == null)
        {
            if (/*(m_BuyCloudAction.isFailed == true) ||*/ (m_BuyCloudAction.isSucceeded == true))
            {
                m_CheckEquipCloudAction = GuiShopUtils.ValidateEquip();

                if (m_CheckEquipCloudAction != null)
                {
                    GameCloudManager.AddAction(m_CheckEquipCloudAction);
                    return(DeduceActionStatus(m_CheckEquipCloudAction));
                }
                else
                {
                    return(GuiPopupResearchWait.E_AsyncOpStatus.Finished);
                }
            }
            else
            {
                return(DeduceActionStatus(m_BuyCloudAction));
            }
        }
        else
        {
            return(DeduceActionStatus(m_CheckEquipCloudAction));
        }
    }
Exemplo n.º 7
0
    void Delegate_Migrate(GUIBase_Widget inInstigator)
    {
        bool invalid = false;

        if (string.IsNullOrEmpty(m_Email) == true)
        {
            invalid = true;
        }

        if (invalid == false)
        {
            Match match = new Regex(EMAIL_PATTERN).Match(m_Email ?? "");
            invalid = match.Success ? false : true;
        }

        if (invalid == false)
        {
            UserRequestMigrate action = new UserRequestMigrate(PrimaryKey, Password, m_Email);
            GameCloudManager.AddAction(action);

            PrimaryKey = string.Empty;
            Password   = string.Empty;

            IViewOwner owner = Owner;
            owner.Back();
            SendResult(E_PopupResultCode.Ok);

            owner.ShowPopup("MessageBox", TextDatabase.instance[00107032], TextDatabase.instance[m_FinalMessageID], InfoPopupConfirmation);
        }
        else
        {
            Owner.ShowPopup("MessageBox", TextDatabase.instance[00107030], TextDatabase.instance[00107040], null);
        }
    }
Exemplo n.º 8
0
    IEnumerator UpdateFriendsData_Corutine(List <string> inFriends)
    {
        string jsonStr = JsonMapper.ToJson(inFriends);

        BaseCloudAction action = new QueryFriendsInfo(CloudUser.instance.authenticatedUserID, jsonStr);

        GameCloudManager.AddAction(action);

        // wait for authentication...
        while (action.isDone == false)
        {
            yield return(new WaitForSeconds(0.2f));
        }

        if (action.isSucceeded == true)
        {
            //Debug.Log("frinds info is here " + action.result);
            ProcessFriendsDetails(action.result);
            Save();
        }
        else
        {
            Debug.LogError("Can't obtain frinds info " + action.result);
        }
    }
Exemplo n.º 9
0
    // =========================================================================================================================

    #region --- Create new user...

    public UsernameAlreadyExists CheckIfUserNameExist(string inUserName)     //TODO: PRIMARY KEY - nemelo by se tu pouzvat primaryKey?
    {
        UsernameAlreadyExists action = new UsernameAlreadyExists(inUserName);

        GameCloudManager.AddAction(action);
        return(action);
    }
Exemplo n.º 10
0
    IEnumerator FetchProductMessages_Corutine(string inMailboxName = null)
    {
        // construct special user needed for accessing global per product inbox...
        UnigueUserID product_user = new UnigueUserID("", "", PPIManager.ProductID);

        // Create action for fetching messages from global product inbox...
        BaseCloudAction action = new GetProductGlobalMessages(product_user, m_LastMessageIndexFromProductInbox, inMailboxName);

        GameCloudManager.AddAction(action);

        // wait for action finish...
        while (action.isDone == false)
        {
            yield return(new WaitForSeconds(0.2f));
        }

        // end with error if action was not succesfully...
        if (action.isFailed == true)
        {
            Debug.LogError("Can't obtain messages " + action.result);
            yield break;
        }

        // try to process returned result and save Inbox if there are new messages...
        int lastMessageIndex = ProcessMessages(action.result, true);

        if (m_LastMessageIndexFromProductInbox < lastMessageIndex)
        {
            m_LastMessageIndexFromProductInbox = lastMessageIndex;
            Save();

            OnInboxChanged();
        }
    }
Exemplo n.º 11
0
    void FixEquipList()
    {
        BaseCloudAction action = GuiShopUtils.ValidateEquip();

        if (action != null)
        {
            //Debug.Log("FixEquipListAfterResearch");
            GameCloudManager.AddAction(action);
        }
    }
Exemplo n.º 12
0
    IEnumerator FetchMessages_Corutine(bool inGlobalInbox, bool inRemoveMessagesFromServer = true)
    {
        BaseCloudAction action = new GetMessagesFromInbox(CloudUser.instance.authenticatedUserID, inGlobalInbox);

        GameCloudManager.AddAction(action);

        // wait for authentication...
        while (action.isDone == false)
        {
            yield return(new WaitForSeconds(0.2f));
        }

        int lastMessageIndex = -1;

        if (action.isFailed == true)
        {
            Debug.LogError("Can't obtain messages " + action.result);
        }
        else
        {
            //Debug.Log("messages are here " + action.result);
            lastMessageIndex = ProcessMessages(action.result, inGlobalInbox);
        }

        Save();

        if (lastMessageIndex > 0)
        {
            OnInboxChanged();
        }

        if (lastMessageIndex <= 0 || inRemoveMessagesFromServer == false)
        {
            yield break;
        }

        // --- remove processed messages from inbox..
        action = new RemoveMessagesFromInbox(CloudUser.instance.authenticatedUserID, inGlobalInbox, lastMessageIndex);
        GameCloudManager.AddAction(action);

        // wait for authentication...
        while (action.isDone == false)
        {
            yield return(new WaitForSeconds(0.2f));
        }

        if (action.isFailed == true)
        {
            Debug.LogError("messages wasn't removed correctly " + action.result);
        }
        else
        {
            //Debug.Log("messages removed " + action.result);
        }
    }
Exemplo n.º 13
0
    public void UpdateFromCloud()
    {
        if (ApplicationDZ.loadedLevelName != Game.MainMenuLevelName)         //update only in main menu
        {
            return;
        }

        FetchPlayerPersistantInfo action = new FetchPlayerPersistantInfo(CloudUser.instance.authenticatedUserID);

        GameCloudManager.AddAction(action);
    }
Exemplo n.º 14
0
    public UpdateMFAccountAndFetchPPI UpdateUser(string inPasswordHash, string inNickName, string inEmail, bool inIWantNews, GeoRegion inRegion)
    {
        UpdateMFAccountAndFetchPPI action = new UpdateMFAccountAndFetchPPI(m_AuthenticatedUserID,
                                                                           inNickName,
                                                                           inEmail,
                                                                           inIWantNews,
                                                                           NetUtils.GetRegionString(inRegion));

        GameCloudManager.AddAction(action);

        return(action);
    }
Exemplo n.º 15
0
    IEnumerator PasswordRecoveryRequest_Coroutine()
    {
        if (string.IsNullOrEmpty(m_UserName) == true)
        {
            yield break;
        }

        string     username = m_UserName;
        IViewOwner owner    = Owner;

        owner.Back();

        GuiPopupMessageBox popup =
            (GuiPopupMessageBox)owner.ShowPopup("MessageBox", TextDatabase.instance[0103044], TextDatabase.instance[0103043]);

        popup.SetButtonVisible(false);

        yield return(new WaitForSeconds(0.2f));

        string primaryKey;
        {
            UserGetPrimaryKey action = new UserGetPrimaryKey(username);
            GameCloudManager.AddAction(action);

            while (action.isDone == false)
            {
                yield return(new WaitForEndOfFrame());
            }

            primaryKey = action.primaryKey;
        }

        E_PopupResultCode result;

        {
            ForgotPassword action = new ForgotPassword(primaryKey);
            GameCloudManager.AddAction(action);

            while (action.isDone == false)
            {
                yield return(new WaitForEndOfFrame());
            }

            result = action.isSucceeded == true ? E_PopupResultCode.Ok : E_PopupResultCode.Failed;
        }

        popup.ForceClose();

        SendResult(result);
    }
Exemplo n.º 16
0
    // PRIVATE METHODS

    public IEnumerator CheckDailyRewards_Coroutine()
    {
        yield return(new WaitForSeconds(1.0f));

        while (m_UserId != null)
        {
            if (Ftue.IsActive == true)
            {
                yield return(new WaitForSeconds(0.5f));
            }
            else if (m_Menu == null || m_Menu.IsAnyPopupVisible() == true)
            {
                yield return(new WaitForSeconds(1.0f));
            }
            else
            {
                GetDailyRewards rewards = new GetDailyRewards(m_UserId);
                GameCloudManager.AddAction(rewards);

                while (rewards.isDone == false)
                {
                    yield return(new WaitForEndOfFrame());
                }

#if !FAKE_DAILY_REWARDS
                if (rewards.HasReward == true)
#endif
                {
                    FetchPlayerPersistantInfo ppi = new FetchPlayerPersistantInfo(m_UserId);
                    GameCloudManager.AddAction(ppi);

                    while (ppi.isDone == false)
                    {
                        yield return(new WaitForEndOfFrame());
                    }

#if !FAKE_DAILY_REWARDS
                    UserGuideAction_DailyRewards.HasInstant     |= rewards.HasInstant;
                    UserGuideAction_DailyRewards.HasConditional |= rewards.HasConditional;
#else
                    UserGuideAction_DailyRewards.HasInstant     |= true;
                    UserGuideAction_DailyRewards.HasConditional |= true;
#endif
                }

                yield return(new WaitForSeconds(60.0f * 60));              // wait one hour
            }
        }
    }
Exemplo n.º 17
0
    public void SendRequestForSpawn()
    {
        GameState.State = ClientGameState.WaitingForSpawn;

        //check equip before spawn:
        BaseCloudAction action = GuiShopUtils.ValidateEquip();

        if (action != null)
        {
            Debug.Log("Fixing Equip before spawn");
            GameCloudManager.AddAction(action);
        }

        StartCoroutine(WaitForCloudManagerForSpawn());
    }
Exemplo n.º 18
0
    IEnumerator UpdateJackpot_Coroutine(bool animate)
    {
        m_UpdatingJackpot = true;

        GetSlotmachineJackpot action = new GetSlotmachineJackpot(CloudUser.instance.authenticatedUserID);

        GameCloudManager.AddAction(action);

        while (action.isDone == false)
        {
            yield return(new WaitForSeconds(0.1f));
        }

        int jackpot = 0;

        if (action.isSucceeded == true)
        {
            JsonData data = JsonMapper.ToObject(action.result);
            jackpot = int.Parse(data["count"].ToString());
        }

        if (animate == false)
        {
            Jackpot = jackpot;
        }
        else if (Jackpot == 0 || jackpot <= Jackpot)
        {
            Jackpot = jackpot;

            yield return(new WaitForSeconds(JACKPOT_REFRESH_DELAY));
        }
        else
        {
            int   delta = jackpot - Jackpot;
            float delay = JACKPOT_REFRESH_DELAY / delta;
            float value = (float)Jackpot;
            while (Jackpot < jackpot)
            {
                value  += delta / JACKPOT_REFRESH_DELAY * delay;
                Jackpot = Mathf.Min(Mathf.RoundToInt(value), jackpot);

                yield return(new WaitForSeconds(delay));
            }
        }

        m_UpdatingJackpot = false;
    }
Exemplo n.º 19
0
    // ------
    void OnAcceptButton(bool inside)
    {
        if (!inside)
        {
            return;
        }

        m_GetPPICloudAction = null;
        m_ResetCloudAction  = new RefundItems(CloudUser.instance.authenticatedUserID, m_ResearchGUIDs);
        GameCloudManager.AddAction(m_ResetCloudAction);

        //tohle se mi moc nelibi, vyvolavame wait box a result vlastne ani nepotrebujeme
        GuiPopupResearchWait popik =
            Owner.ShowPopup("ResearchWait", TextDatabase.instance[0112015], TextDatabase.instance[0113040], ResetWaitResultHandler) as
            GuiPopupResearchWait;

        popik.SetActionStatusDelegate(GetActionStatus);
    }
Exemplo n.º 20
0
    // ------
    GuiPopupResearchWait.E_AsyncOpStatus GetActionStatus()
    {
        if (m_GetPPICloudAction == null)
        {
            if (m_ResetCloudAction.isDone == true)
            {
                m_GetPPICloudAction = new FetchPlayerPersistantInfo(CloudUser.instance.authenticatedUserID);
                GameCloudManager.AddAction(m_GetPPICloudAction);

                return(DeduceActionStatus(m_GetPPICloudAction));
            }
            else
            {
                return(DeduceActionStatus(m_ResetCloudAction));
            }
        }
        else
        {
            if (m_CheckEquipCloudAction == null)
            {
                if (m_GetPPICloudAction.isDone == true)
                {
                    m_CheckEquipCloudAction = GuiShopUtils.ValidateEquip();
                    if (m_CheckEquipCloudAction != null)
                    {
                        GameCloudManager.AddAction(m_CheckEquipCloudAction);
                        return(DeduceActionStatus(m_CheckEquipCloudAction));
                    }
                    else
                    {
                        return(GuiPopupResearchWait.E_AsyncOpStatus.Finished);
                    }
                }
                else
                {
                    return(DeduceActionStatus(m_GetPPICloudAction));
                }
            }
            else
            {
                return(DeduceActionStatus(m_CheckEquipCloudAction));
            }
        }
    }
Exemplo n.º 21
0
    protected override void OnMenuShowMenu()
    {
        // menu background
        {
            GuiUniverse.Instance.Show();
            GuiUniverse.Instance.Enable();
        }

#if (!UNITY_EDITOR) && (UNITY_ANDROID || UNITY_IPHONE)
        //	if (uLink.Network.isServer == false)
        //	{
        //		StartCoroutine(CheckForNewMajorRank());
        //	}
        #endif

        GameCloudManager.AddAction(new UpdateSwearWords(CloudUser.instance.authenticatedUserID));

        Game.AskForReview();
    }
Exemplo n.º 22
0
    public void SendMessage(string inRecipient, BaseMessage inMessage)
    {
        // ...................................
        // check preconditions...
        if (string.IsNullOrEmpty(inRecipient) == true)
        {
            Debug.LogError("Invalid recipient " + inRecipient);
            return;
        }

        if (inMessage == null || inMessage.isValid == false)
        {
            Debug.LogError("Invalid message " + inMessage);
            return;
        }

        // ...................................
        inMessage.m_SendTime = CloudDateTime.UtcNow;

        // ...................................
        // convert message to JSON string...
        string message = JsonMapper.ToJson(inMessage);

        // ...................................
        // create send message action and send it via GameCloudManager
        //Debug.Log("SendMessage: " + message);
        if (inMessage is FriendRequest)
        {
            SendMessage action = new SendFriendRequestMessage(CloudUser.instance.authenticatedUserID, inRecipient, message);
            GameCloudManager.AddAction(action);
        }
        else
        {
            bool        globalMailbox = (inMessage.m_Mailbox == E_Mailbox.Global);
            SendMessage action        = new SendMessage(CloudUser.instance.authenticatedUserID, inRecipient, message, globalMailbox);
            GameCloudManager.AddAction(action);
        }

        // ...................................
        // Save out going message into outbox...
        m_Outbox.Add(inMessage);
        Save();
    }
Exemplo n.º 23
0
    // PRIVATE MEMBERS

    IEnumerator Close_Coroutine()
    {
        m_CloseButton.IsDisabled = true;
        m_SpinButton.IsDisabled  = true;

        if (m_NeedsFetchPPI == true)
        {
            m_NeedsFetchPPI = false;

            FetchPlayerPersistantInfo action = new FetchPlayerPersistantInfo(CloudUser.instance.authenticatedUserID);
            GameCloudManager.AddAction(action);

            while (action.isDone == false)
            {
                yield return(new WaitForEndOfFrame());
            }
        }

        Owner.Back();
    }
Exemplo n.º 24
0
    //..........................................................................................................................
    public void AcceptFriendRequest(string inFriendName)
    {
        //Debug.Log("AcceptFriendRequest " + inFriendName);

        // check preconditions...
        if (CloudUser.instance.isUserAuthenticated == false)
        {
            Debug.LogError("user is not authenticated, can't Accept Friend Request");
            return;
        }

        PendingFriendInfo fInfo = m_PendingFriends.Find(f => (f.PrimaryKey == inFriendName && f.IsItRequest == true));

        if (fInfo == null)
        {
            Debug.LogError("Can't accept friend which is not in pending list");
            return;
        }

        GameCloudManager.AddAction(new SendAcceptFriendCommand(CloudUser.instance.authenticatedUserID, inFriendName, fInfo.CloudCommand));

        m_PendingFriends.Remove(fInfo);
        OnPendingFriendListChanged();
        Save();

        FriendInfo friend = new FriendInfo()
        {
            PrimaryKey   = fInfo.PrimaryKey,
            Username     = fInfo.Username,
            Nickname     = fInfo.Nickname,
            OnlineStatus = E_OnlineStatus.Offline
        };

        m_Friends.Add(friend);

        // force redownload friend list...
        RetriveFriendListFromCloud(true);
    }
Exemplo n.º 25
0
    void OnApplicationPause(bool pause)
    {
        if (pause == true)
        {
            InputManager.FlushInput();

            SaveSettings();
        }

        if (pause == false)
        {
            //Pro Tapjoy a SponsorPay: kdyz se vracime do applikace a je zobrazene menu, updatuj ppi (aby hrac videl pridane goldy).
            if (GuiFrontendMain.IsVisible || GuiFrontendIngame.IsVisible)
            {
                if (CloudUser.instance != null && CloudUser.instance.isUserAuthenticated)
                {
                    //Debug.Log("On application pause false, fetching ppi");
                    FetchPlayerPersistantInfo action = new FetchPlayerPersistantInfo(CloudUser.instance.authenticatedUserID);
                    GameCloudManager.AddAction(action);
                }
            }
        }
    }
Exemplo n.º 26
0
    // ------
    void OnAcceptButton(bool inside)
    {
        if (!inside)
        {
            return;
        }

        int guid = m_ResearchItem.GetGUID();

        m_BuyCloudAction = new BuyAndFetchPPI(CloudUser.instance.authenticatedUserID, guid);
        GameCloudManager.AddAction(m_BuyCloudAction);

        //tohle se mi moc nelibi, vyvolavame wait box a result vlastne ani nepotrebujeme
        GuiPopupResearchWait popik =
            Owner.ShowPopup("ResearchWait", TextDatabase.instance[0113050], TextDatabase.instance[0113060], BuyWaitResultHandler) as
            GuiPopupResearchWait;

        popik.SetActionStatusDelegate(GetActionStatus);

        //Debug.Log(" Starting buy request: time " + Time.time + " item " + m_BuyItemId);
        //pri lokalni koupi by stacilo poslat jen result success
        //SendResult(E_PopupResultCode.Success);
    }
Exemplo n.º 27
0
    IEnumerator CheckGuestAccount_Coroutine(string primaryKey, string password)
    {
        GetPublicUserData getUserAccountType =
            new GetPublicUserData(primaryKey, CloudServices.PROP_ID_ACCT_KIND);

        GameCloudManager.AddAction(getUserAccountType);

        while (!getUserAccountType.isDone)
        {
            yield return(new WaitForEndOfFrame());
        }

        E_PopupResultCode migrateResult = E_PopupResultCode.Cancel;

        if (!getUserAccountType.isFailed && !string.IsNullOrEmpty(getUserAccountType.result) &&
            getUserAccountType.result == E_UserAcctKind.Guest.ToString())
        {
            m_MigrationOffered = true;
            bool migrateFinished = false;
            GuiPopupMigrateGuest migratePopup = (GuiPopupMigrateGuest)ShowPopup("MigrateGuest", null, null, (popup, result) =>
            {
                migrateResult   = result;
                migrateFinished = true;
            });
            migratePopup.Usage      = GuiPopupMigrateGuest.E_Usage.LoginMenu;
            migratePopup.PrimaryKey = primaryKey;
            migratePopup.Password   = password;
            while (!migrateFinished)
            {
                yield return(new WaitForEndOfFrame());
            }

            migratePopup.HideView(this);
        }

        StartLogin(migrateResult == E_PopupResultCode.Cancel);
    }
Exemplo n.º 28
0
    IEnumerator AddNewFriend_Coroutine()
    {
        string     username   = Username;
        string     primaryKey = PrimaryKey;
        string     nickname   = Nickname;
        string     message    = Message;
        IViewOwner owner      = Owner;

        owner.Back();

        GuiPopupMessageBox popup =
            (GuiPopupMessageBox)owner.ShowPopup("MessageBox", TextDatabase.instance[02040204], TextDatabase.instance[00103043]);

        popup.SetButtonVisible(false);

        yield return(new WaitForSeconds(0.2f));

        if (string.IsNullOrEmpty(primaryKey) == true)
        {
            UserGetPrimaryKey action = new UserGetPrimaryKey(username);
            GameCloudManager.AddAction(action);

            while (action.isDone == false)
            {
                yield return(new WaitForEndOfFrame());
            }

            primaryKey = action.primaryKey;
        }

        GameCloudManager.friendList.AddNewFriend(primaryKey, username, nickname, message);

        popup.ForceClose();

        SendResult(E_PopupResultCode.Ok);
    }
Exemplo n.º 29
0
    protected override void OnViewUpdate()
    {
        if (IsVisible)
        {
            if (ShopDataBridge.Instance.IsIAPInProgress())
            {
                switch (ShopDataBridge.Instance.GetIAPState())
                {
                case InAppAsyncOpState.Waiting:
                    return;

                case InAppAsyncOpState.Finished:
                    //IAP success, fetch ppi with new golds
                    FetchPlayerPersistantInfo action = new FetchPlayerPersistantInfo(CloudUser.instance.authenticatedUserID);
                    GameCloudManager.AddAction(action);
                    //Debug.Log("IAP finished: " + BuyIAPItem );
                    CloseDialog(E_PopupResultCode.Success, 02030048);
                    return;

                case InAppAsyncOpState.Failed:
                    CloseDialog(E_PopupResultCode.Failed, 02030049);
                    return;

                case InAppAsyncOpState.Cancelled:
                    CloseDialog(E_PopupResultCode.Cancel, 02030050);
                    return;

                case InAppAsyncOpState.CannotVerify:
                    CloseDialog(E_PopupResultCode.Failed, 02030072);
                    return;
                }
            }
        }

        base.OnViewUpdate();
    }
Exemplo n.º 30
0
    IEnumerator Spin_Coroutine()
    {
        IsBusy = true;
        Reward = 0;

        int reward;

        E_SlotMachineSymbol[] matrix;

        // create cloud action
        SlotMachineSpin action = new SlotMachineSpin(CloudUser.instance.authenticatedUserID);

        GameCloudManager.AddAction(action);

        // spin symbols
        {
            m_WinAnim.Stop();
            m_SpinAnim.Stop();

            ShowSpinAnimation(true);

            // play spin sound
            GetComponent <AudioSource>().loop = true;
            GetComponent <AudioSource>().clip = m_SpinSound;
            GetComponent <AudioSource>().Play();

            // play start sound
            GetComponent <AudioSource>().PlayOneShot(m_StartSound, AudioListener.volume);            //Added volume, otherwise in webplayer it was always playing on max

            // start slot machine
            m_SpinAnim.Play(START_ANIM);
            while (m_SpinAnim.isPlaying == true)
            {
                yield return(new WaitForEndOfFrame());
            }

            m_SpinAnim.Play(SPIN_ANIM);
        }

        // wait for cloud action to finish
        {
            float delay = 0.5f;
            do
            {
                yield return(new WaitForSeconds(delay));

                delay = 0.1f;
            } while (action.isDone == false);

            // get result from cloud
            if (action.isSucceeded == true)
            {
                reward = action.Reward;
                matrix = action.Matrix;

                SetMachineState(action.Matrix);
            }
            else
            {
                reward = 0;
                matrix = new E_SlotMachineSymbol[9];

                // update slot machine slots
                SetMachineState(E_SlotMachineSymbol.First, false);
            }
        }

        // stop slot machine
        {
            // stop slots
            m_SpinAnim.Play(STOP_ANIM);

            float oneStopDeuration = m_SpinAnim.GetClip(STOP_ANIM).length / 3.0f;
            for (int idx = 0; idx < 3; ++idx)
            {
                GetComponent <AudioSource>().PlayOneShot(m_StopSound, AudioListener.volume);                //Added volume, otherwise in webplayer it was always playing on max

                yield return(new WaitForSeconds(oneStopDeuration));
            }

            // stop symbol spinning
            ShowSpinAnimation(false);

            // stop spin sound
            GetComponent <AudioSource>().Stop();

            // play win anim if needed
            if (reward > 0)
            {
                int[] indexes = GetWinningSymbols(matrix);

                m_WinAnim.Play();

                GetComponent <AudioSource>().loop = false;

                float step = reward * 0.1f > 4.0f ? 4.0f / reward : 0.1f;
                float temp = (float)Reward;
                do
                {
                    temp  += reward * step;
                    Reward = Mathf.Min(reward, (int)temp);

                    GetComponent <AudioSource>().clip = m_WinSound;
                    GetComponent <AudioSource>().Play();

                    if (m_WinAnim.isPlaying == false)
                    {
                        m_WinAnim.Play();
                    }

                    foreach (var index in indexes)
                    {
                        Slot slot = GetSlot(index);
                        slot.Shine = !slot.Shine;
                    }

                    yield return(new WaitForSeconds(0.075f));

                    foreach (var index in indexes)
                    {
                        Slot slot = GetSlot(index);
                        slot.Shine = !slot.Shine;
                    }

                    yield return(new WaitForSeconds(0.025f));
                } while (Reward < reward);

                m_WinAnim.Stop();

                foreach (var index in indexes)
                {
                    Slot slot = GetSlot(index);
                    slot.Shine = false;
                }

                Reward = reward;
            }
        }

        // done
        IsBusy = false;
    }