示例#1
0
    void UpdateCloudActions()
    {
        // TODO action time out...
        if (ActiveAction != null)
        {
            try
            {
                ActiveAction.PPIManager_Update();

                if (ActiveAction.isDone == false)
                {
                    return;
                }

                ActiveAction = null;
            }
            catch (System.Exception e)
            {
                ActiveAction = null;
                throw e;
            }
        }

        if (PendingActions.Count > 0)
        {
            ActiveAction = PendingActions.Dequeue();
        }
    }
示例#2
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);
        }
    }
示例#3
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));
        }
    }
示例#4
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);
		}
	}
示例#5
0
    // ------
    void ResetWaitResultHandler(GuiPopup inPopup, E_PopupResultCode inResult)
    {
        //Debug.Log("Waiting for buy finished. popup: " + inResult + " action status " + BuyActionStatus);
        if (inResult == E_PopupResultCode.Success)
        {
            if (m_ResetCloudAction != null && m_ResetCloudAction.isSucceeded == true)
            {
                //Debug.Log(Time.realtimeSinceStartup + " " + m_ResetCloudAction.status);
            }

            Owner.Back();
            ResearchSupport.Instance.AnyResearchItemChanged();
            SendResult(E_PopupResultCode.Success);
        }
        else
        {
            Owner.Back();
            SendResult(E_PopupResultCode.Failed);
        }

        m_Cost                  = 0;
        m_RefundedMoney         = 0;
        m_ResearchGUIDs         = null;
        m_ResetCloudAction      = null;
        m_CheckEquipCloudAction = null;
    }
示例#6
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;
    }
示例#7
0
	// ------
	GuiPopupResearchWait.E_AsyncOpStatus DeduceActionStatus(BaseCloudAction action)
	{
		if (action.isFailed == true)
			return GuiPopupResearchWait.E_AsyncOpStatus.Failed;
		if (action.isSucceeded == true)
			return GuiPopupResearchWait.E_AsyncOpStatus.Finished;
		return GuiPopupResearchWait.E_AsyncOpStatus.Waiting;
	}
示例#8
0
    void FixEquipList()
    {
        BaseCloudAction action = GuiShopUtils.ValidateEquip();

        if (action != null)
        {
            //Debug.Log("FixEquipListAfterResearch");
            GameCloudManager.AddAction(action);
        }
    }
示例#9
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());
    }
示例#10
0
 BaseCloudAction.E_Status DeduceActionStatus(BaseCloudAction action)
 {
     if (action.isDone == false)
     {
         return(BaseCloudAction.E_Status.InProggres);
     }
     if (action.isFailed == true)
     {
         return(BaseCloudAction.E_Status.Failed);
     }
     if (action.isSucceeded == true)
     {
         return(BaseCloudAction.E_Status.Success);
     }
     return(BaseCloudAction.E_Status.Pending);
 }
示例#11
0
    void BuyWaitResultHandler(GuiPopup inPopup, E_PopupResultCode inResult)
    {
        //Debug.Log("Waiting for buy finished. popup: " + inResult + " action status " + BuyActionStatus);
        if (inResult == E_PopupResultCode.Success)
        {
            CloseDialog();
            SendResult(E_PopupResultCode.Success);
        }
        else
        {
            //buy failed
            string strBuyFailed = TextDatabase.instance[02030042];
            Owner.ShowPopup("ShopMessageBox", "", strBuyFailed, FailMessageBoxHandler);
        }

        m_BuyItemId      = ShopItemId.EmptyId;
        m_BuyCloudAction = null;
    }
示例#12
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);
    }
示例#13
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));
            }
        }
    }
示例#14
0
	// ------
	void BuyWaitResultHandler(GuiPopup inPopup, E_PopupResultCode inResult)
	{
		//Debug.Log("Waiting for buy finished. popup: " + inResult + " action status " + BuyActionStatus);
		if (inResult == E_PopupResultCode.Success)
		{
			Owner.Back();
			m_ResearchItem.StateChanged();
			SendResult(E_PopupResultCode.Ok);
		}
		else
		{
			Owner.Back();
			SendResult(E_PopupResultCode.Failed);
		}

		m_ResearchItem = null;
#if !TEMPORARY_UPGRADE_HACK
		m_UpgradeCloudAction = null;
#endif
	}
示例#15
0
    void BuyWaitResultHandler(GuiPopup inPopup, E_PopupResultCode inResult)
    {
        //Debug.Log("Waiting for buy finished. popup: " + inResult + " action status " + BuyActionStatus);
        if (inResult == E_PopupResultCode.Success)
        {
            Owner.Back();
            ResearchSupport.Instance.AnyResearchItemChanged();
            m_ResearchItem.StateChanged();
            SendResult(E_PopupResultCode.Success);
        }
        else
        {
            Owner.Back();
            SendResult(E_PopupResultCode.Failed);
        }

        m_ResearchItem          = null;
        m_BuyCloudAction        = null;
        m_CheckEquipCloudAction = null;
    }
示例#16
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);
    }
示例#17
0
 void OnDestroy()
 {
     //m_sInstance = null;
     PendingActions.Clear();
     ActiveAction = null;
 }
示例#18
0
    // -------------------------------------------------------------------------------------------------------------------------
    //private PlayerPersistantInfo				m_CloudPPI;
    //private DataFileJSON						m_CloudProgress;
    //private System.DateTime					m_LastDownloadTime;
    //private const int                         SKIP_UPDATE_TIMEOUT = 1;	// one minute...

    // =========================================================================================================================
    // === public interface ====================================================================================================
    public static void AddAction(BaseCloudAction inAction)
    {
        instance.PendingActions.Enqueue(inAction);
    }