public virtual void ShowUnavailableMessage(GameUnavailableMessageType reason) { //Show client update/unvailable message... }
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); }