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;
		}
Exemplo n.º 3
0
		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;
		}
Exemplo n.º 4
0
        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);
            }