public bool ReadTitleData(GetTitleDataResult obj, bool fromRoutineTaskManager = true) { ServerInfo serverInfo; if (obj != null && obj.Data.ContainsKey(MetaStateSettings._TitleDataKey_ServerInfo)) { serverInfo = JsonConvert.DeserializeObject <ServerInfo>(obj.Data[MetaStateSettings._TitleDataKey_ServerInfo]); if ((serverInfo.CacheVersion < lastServerInfoCacheVersion) && IsGameAvailable) { return(true); //ignore this manifest. } lastServerInfoCacheVersion = serverInfo.CacheVersion; if (serverInfo.ServerStatus != ServerStatus.Online) { GameUnavailableMessageType gameUnavailableMessageType = GameUnavailableMessageType.MAINTENANCE; if (!string.IsNullOrEmpty(serverInfo.MaintenanceMessage)) { try { gameUnavailableMessageType = (GameUnavailableMessageType)Enum.Parse(typeof(GameUnavailableMessageType), serverInfo.MaintenanceMessage); } catch { } } ShowUnavailableMessage(gameUnavailableMessageType); return(false); } else if (serverInfo.ServerStatus == ServerStatus.Online) { //"0.1" is wildcard for dev/staging env if (serverInfo.AppVersion == MetaStateSettings.GetMajorVersion() || serverInfo.AppVersion == "0.10" || serverInfo.AppVersion == "0.1") { IsGameAvailable = true; if (fromRoutineTaskManager && DataLayer.Instance.Connection != null) { if (obj != null && obj.Data.ContainsKey(MetaStateSettings._TitleDataKey_EventManager)) { EventManagerState eventManagerState = JsonConvert.DeserializeObject <EventManagerState>(obj.Data[MetaStateSettings._TitleDataKey_EventManager]); GameData.Current.EventManagerState = eventManagerState; GameData.Current.EventManagerState.SyncState(EventData.GetAllEvents()); } } } else { ShowUnavailableMessage(GameUnavailableMessageType.VERSION_MISMATCH); } } } else { if (CheckInternetConnection()) { ShowUnavailableMessage(GameUnavailableMessageType.HOST_UNREACHABLE); } else { ShowUnavailableMessage(GameUnavailableMessageType.INTERNET_ERROR); } return(false); } return(true); }
protected virtual void AwakeFirtsInit_ServerInfoReady(UnityWebRequest serverResponse) { Debug.Log("MetaLoopGameManager Fetching AppVersion.txt Completed."); if (serverResponse != null && serverResponse.isDone && !serverResponse.isHttpError && !serverResponse.isNetworkError) { string majorServerVersion = serverResponse.downloadHandler.text; if (majorServerVersion != MetaStateSettings.GetMajorVersion()) { int localVersion = Convert.ToInt32(MetaStateSettings.GetMajorVersion().Replace(".", "")); int serverVersion = 0; try { serverVersion = Convert.ToInt32(majorServerVersion.Replace(".", "")); } catch { ShowUnavailableMessage(GameUnavailableMessageType.INTERNET_ERROR); return; } if (localVersion > serverVersion) { UseStagingForPreProdBuild = true; } } } else if (serverResponse != null && (!serverResponse.isDone || serverResponse.isHttpError || serverResponse.isNetworkError)) { ShowUnavailableMessage(GameUnavailableMessageType.INTERNET_ERROR); return; } PlayFabManager.Instance.BackOfficeEnvironement = BackOfficeEnvironement.Staging; #if PROD PlayFabManager.Instance.BackOfficeEnvironement = BackOfficeEnvironement.Prod; if (UseStagingForPreProdBuild) { PlayFabManager.Instance.BackOfficeEnvironement = BackOfficeEnvironement.Staging; } #endif #if UNITY_EDITOR //PlayFabManager.Instance.BackOfficeEnvironement = BackOfficeEnvironement.Dev; #endif switch (PlayFabManager.Instance.BackOfficeEnvironement) { case BackOfficeEnvironement.Dev: case BackOfficeEnvironement.Staging: PlayFabSettings.TitleId = MetaStateSettings._PlayFabTitleId_Staging; break; case BackOfficeEnvironement.Prod: PlayFabSettings.TitleId = MetaStateSettings._PlayFabTitleId; break; } PlayFabSettings.RequestType = WebRequestType.UnityWebRequest; PlayFabManager.Instance.OnDataMissMatchDetected += OnDataMissMatchDetected; Debug.Log("MetaLoopGameManager Setting Environement: " + PlayFabManager.Instance.BackOfficeEnvironement.ToString()); if (IsFirtsStartInPorgress && !GameServiceManager.IsInit) { Debug.Log("MetaLoopGameManager GameData_OnGameDataReady; Starting GameServiceManager Login..."); DOVirtual.DelayedCall(0.5f, () => GameServiceManager.GameService.Init()); //DOVirtual.DelayedCall(15f, () => CancelGameServiceManager()); } else { PlayFabManager.Instance.Login(OnPlayFabLoginSuccess, OnPlayFabLoginFailed, SystemInfo.deviceUniqueIdentifier); Debug.Log("GAMEMANAGER LoginPlayFab MANUAL"); } }