private void CheckIfAchievementDataComplete() { if (_achievementsRefreshInfo.AchievementsUpdated && _achievementsRefreshInfo.UserAchievementsFetched) { try { if (_startPhase == SessionStartPhase.WaitingForIndiecityData) { _achievementsReady = true; if (_leaderboardsReady) { OnSessionActiveStateReached(); } } else if (_achievementsRefreshInfo.RefreshCompleteDelegate != null) { _achievementsRefreshInfo.RefreshCompleteDelegate.Invoke(); } } finally { _achievementsRefreshInfo = null; } } }
public void RequestAchievementDataRefresh(NotificationDelegate refreshCompleteDelegate) { if (SessionActive) { if (_achievementsRefreshInfo != null) { throw new Exception("Previous achievement refresh request still being processed"); } _achievementsRefreshInfo = new AchievementsRefreshInfo(this, refreshCompleteDelegate, true); } }
private void CheckIfAchievementDataComplete() { if (_achievementsRefreshInfo.AchievementsUpdated && _achievementsRefreshInfo.UserAchievementsFetched) { try { if (_startPhase == SessionStartPhase.WaitingForIndiecityData) { _achievementsReady = true; if (_leaderboardsReady) OnSessionActiveStateReached(); } else if (_achievementsRefreshInfo.RefreshCompleteDelegate != null) _achievementsRefreshInfo.RefreshCompleteDelegate.Invoke(); } finally { _achievementsRefreshInfo = null; } } }
public void RequestAchievementDataRefresh(NotificationDelegate refreshCompleteDelegate) { if (SessionActive) { if (_achievementsRefreshInfo != null) throw new Exception("Previous achievement refresh request still being processed"); _achievementsRefreshInfo = new AchievementsRefreshInfo(this, refreshCompleteDelegate, true); } }
public void HandleEvent(uint eventId, uint eventType, Array args) { if ((GameSessionEventCategory) eventType == GameSessionEventCategory.GSC_GameSession) { if ((GameSessionEvent) eventId == GameSessionEvent.GSE_SessionStarted) { var accessControl = new CoAccessControl(); accessControl.Initialise(Session); if (accessControl.LicenseState == LicenseState.LS_NOLICENSE) { _sessionEndBecauseNoLicense = true; Session.EndSession(); } else if (!_achievementsReady || !_leaderboardsReady) { _startPhase = SessionStartPhase.WaitingForIndiecityData; if (!_achievementsReady) _achievementsRefreshInfo = new AchievementsRefreshInfo(this, null, false); } else OnSessionActiveStateReached(); } else if ((GameSessionEvent) eventId == GameSessionEvent.GSE_SessionEnded) { _sessionActive = false; if (_sessionEndDelegate != null) { SessionEndReason reason; if (_sessionEndBecauseNoLicense) reason = SessionEndReason.NoLicense; else { switch ((GameSessionReasonCode) (uint) ((Object[]) args)[0]) { default: case GameSessionReasonCode.GSR_Unknown: reason = SessionEndReason.Unknown; break; case GameSessionReasonCode.GSR_UserRequest: reason = SessionEndReason.UserRequest; break; case GameSessionReasonCode.GSR_NoConnection: reason = SessionEndReason.NoConnection; break; case GameSessionReasonCode.GSR_BadCredentials: reason = SessionEndReason.BadCredentials; break; case GameSessionReasonCode.GSR_TimeOut: reason = SessionEndReason.Timeout; break; } } _sessionEndDelegate.Invoke(reason); } _sessionEndBecauseNoLicense = false; } } }
public void HandleEvent(uint eventId, uint eventType, Array args) { if ((GameSessionEventCategory)eventType == GameSessionEventCategory.GSC_GameSession) { if ((GameSessionEvent)eventId == GameSessionEvent.GSE_SessionStarted) { var accessControl = new CoAccessControl(); accessControl.Initialise(Session); if (accessControl.LicenseState == LicenseState.LS_NOLICENSE) { _sessionEndBecauseNoLicense = true; Session.EndSession(); } else if (!_achievementsReady || !_leaderboardsReady) { _startPhase = SessionStartPhase.WaitingForIndiecityData; if (!_achievementsReady) { _achievementsRefreshInfo = new AchievementsRefreshInfo(this, null, false); } } else { OnSessionActiveStateReached(); } } else if ((GameSessionEvent)eventId == GameSessionEvent.GSE_SessionEnded) { _sessionActive = false; if (_sessionEndDelegate != null) { SessionEndReason reason; if (_sessionEndBecauseNoLicense) { reason = SessionEndReason.NoLicense; } else { switch ((GameSessionReasonCode)(uint)((Object[])args)[0]) { default: case GameSessionReasonCode.GSR_Unknown: reason = SessionEndReason.Unknown; break; case GameSessionReasonCode.GSR_UserRequest: reason = SessionEndReason.UserRequest; break; case GameSessionReasonCode.GSR_NoConnection: reason = SessionEndReason.NoConnection; break; case GameSessionReasonCode.GSR_BadCredentials: reason = SessionEndReason.BadCredentials; break; case GameSessionReasonCode.GSR_TimeOut: reason = SessionEndReason.Timeout; break; } } _sessionEndDelegate.Invoke(reason); } _sessionEndBecauseNoLicense = false; } } }