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(); } }
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); } }
// ------ 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)); } }
// ------ 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); } }
// ------ 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; }
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; }
// ------ 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; }
void FixEquipList() { BaseCloudAction action = GuiShopUtils.ValidateEquip(); if (action != null) { //Debug.Log("FixEquipListAfterResearch"); GameCloudManager.AddAction(action); } }
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()); }
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); }
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; }
// ------ 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); }
// ------ 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)); } } }
// ------ 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 }
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; }
// ------ 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); }
void OnDestroy() { //m_sInstance = null; PendingActions.Clear(); ActiveAction = null; }
// ------------------------------------------------------------------------------------------------------------------------- //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); }