public void ReportProgress(EditorAchievement _reportedAchievement) { string _instanceID = _reportedAchievement.GetInstanceID(); if (!VerifyUser()) { OnReportProgressFinished(_instanceID, null, Constants.kGameServicesUserAuthMissingError); return; } EGCAchievementDescription _reportedAchievementDescription = GetAchievementDescription(_reportedAchievement.Identifier); if (_reportedAchievementDescription == null) { OnReportProgressFinished(_instanceID, null, Constants.kGameServicesIdentifierInfoNotFoundError); return; } int _pointsScored = _reportedAchievement.PointsScored; int _maxPoints = _reportedAchievementDescription.MaximumPoints; bool _isAchivementCompleted = _pointsScored >= _maxPoints; string _achievementID = _reportedAchievement.Identifier; EGCAchievement _gcAchievement = GetAchievementWithID(_achievementID); if (_gcAchievement != null) { // Update values _gcAchievement.UpdateProgress(_pointsScored, _maxPoints, _isAchivementCompleted); // Invoke handler OnReportProgressFinished(_instanceID, _gcAchievement, null); return; } // Mostly its reported for first time EGCAchievementDescription _gcDescription = GetAchievementDescription(_achievementID); if (_gcDescription != null) { // Update properties of this description _gcDescription.IsHidden = false; // Create new achievement entry EGCAchievement _newAchievement = new EGCAchievement(_achievementID, _reportedAchievement.PointsScored, _maxPoints, _isAchivementCompleted); // Add it to the list m_achievementsList.Add(_newAchievement); // Action on finishing report OnReportProgressFinished(_instanceID, _newAchievement, null); return; } }
public static EditorAchievement[] ConvertAchievementsList (IList _gcAchievements) { if (_gcAchievements == null) return null; int _count = _gcAchievements.Count; EditorAchievement[] _achievementsList = new EditorAchievement[_count]; for (int _iter = 0; _iter < _count; _iter++) _achievementsList[_iter] = new EditorAchievement((EGCAchievement)_gcAchievements[_iter]); return _achievementsList; }
private void OnReportProgressFinished(EditorAchievement _achievement, Action <EditorAchievement> _onCompletion) { // Show achivement banner if required if (_achievement != null) { if (_achievement.Completed && m_canShowAchievementBanner) { ShowAchievementBanner(GetAchievementDescription(_achievement.Identifier)); } } // Send callback if (_onCompletion != null) { _onCompletion(_achievement); } }
public static EditorAchievement[] ConvertToEditorAchievementList(EGCAchievement[] _gcAchievementList) { if (_gcAchievementList == null) { return(null); } int _count = _gcAchievementList.Length; EditorAchievement[] _newAchievementList = new EditorAchievement[_count]; for (int _iter = 0; _iter < _count; _iter++) { _newAchievementList[_iter] = _gcAchievementList[_iter].GetEditorFormatData(); } return(_newAchievementList); }