Inheritance: Object, IAchievementDescription
Ejemplo n.º 1
0
        public void ReportProgress(Achievement _reportedAchievement, Action <EditorAchievement> _onCompletion)
        {
            if (!VerifyUser())
            {
                OnReportProgressFinished(null, _onCompletion);
                return;
            }

            AchievementDescription _reportedAchievementDescription = GetAchievementDescription(_reportedAchievement.Identifier);

            if (_reportedAchievementDescription == null)
            {
                OnReportProgressFinished(null, _onCompletion);
                return;
            }

            bool     _isAchivementCompleted = _reportedAchievement.PointsScored >= _reportedAchievementDescription.MaximumPoints;
            DateTime _currentTime           = DateTime.Now;

            // Iterate and update gamecenter data copy
            foreach (EGCAchievement _curAchievement in m_achievementsList)
            {
                if (_curAchievement.Identifier.Equals(_reportedAchievement.Identifier))
                {
                    // Update gamecenter copy of achievement
                    _curAchievement.SetCompleted(_isAchivementCompleted);
                    _curAchievement.SetLastReportedDate(_currentTime);

                    // Action on finishing report
                    OnReportProgressFinished(_curAchievement.GetEditorFormatData(), _onCompletion);
                    return;
                }
            }

            // Check if new achievement was reported
            foreach (EGCAchievementDescription _curAchievementDescription in m_achievementDescriptionList)
            {
                if (_curAchievementDescription.Identifier.Equals(_reportedAchievement.Identifier))
                {
                    // Current achivement is set as visible
                    _curAchievementDescription.SetIsHidden(false);

                    // Create new achievement entry for game center
                    EGCAchievement _newAchievement = new EGCAchievement(_reportedAchievement.Identifier, _reportedAchievement.PointsScored, _isAchivementCompleted, _currentTime);

                    // Add it to the list
                    m_achievementsList.Add(_newAchievement);

                    // Action on finishing report
                    OnReportProgressFinished(_newAchievement.GetEditorFormatData(), _onCompletion);
                    return;
                }
            }

            // Failed to achievement info
            OnReportProgressFinished(null, _onCompletion);
            DebugPRO.Console.LogError(Constants.kDebugTag, string.Format("[GameServices] Failed to report achievement progress. Couldnt find achievement with ID = {0}", _reportedAchievement.Identifier));
        }
Ejemplo n.º 2
0
        private void ShowAchievementBanner(AchievementDescription _description)
        {
            if (m_gameCenterUI == null)
            {
                CreateGameCenterUIInstance();
            }

            m_gameCenterUI.ShowAchievementBanner(_description);
        }
Ejemplo n.º 3
0
        private void DoAction()
        {
#if USES_GAME_SERVICES
            try
            {
                // Find description object
                AchievementDescription _description = null;

                if (isGlobalIdentifier.Value)
                {
                    _description = AchievementHandler.GetAchievementDescriptionWithGlobalID(identifier.Value);
                }
                else
                {
                    _description = AchievementHandler.GetAchievementDescriptionWithID(identifier.Value);
                }

                // Update properties
                title.Value = _description.Title;
                achievedDescription.Value   = _description.AchievedDescription;
                unachievedDescription.Value = _description.UnachievedDescription;
                isHidden.Value = _description.IsHidden;

                // Check if image has to be download
                if (loadImage.Value)
                {
                    _description.GetImageAsync((Texture2D _image, string _error) => {
                        // Update the image property
                        image.Value = _image;

                        OnActionDidFinish();

                        return;
                    });
                }
                else
                {
                    // Update the image property
                    image.Value = null;

                    OnActionDidFinish();

                    return;
                }

                return;
            }
            catch (System.Exception _exception)
            {
                Debug.Log(_exception.Message);

                OnActionDidFail();

                return;
            }
#endif
        }
Ejemplo n.º 4
0
        internal void ShowAchievementBanner(AchievementDescription _description)
        {
            // Enable this script and set properties
            this.enabled = true;
            m_isShowingAchievementBanner = true;
            m_bannerText = _description.Title + " is completed.";

            // Start coroutine
            StartCoroutine(AnimateWindowRect());
        }
		internal static void SetAchievementDescriptionList (AchievementDescription[] _descriptionList)
		{
			if (_descriptionList == null)
			{
				cachedAchievementDescriptionList	= null;
				cachedAchievementDescriptionCount	= 0;
			}
			else
			{
				cachedAchievementDescriptionList	= _descriptionList;
				cachedAchievementDescriptionCount	= _descriptionList.Length;
			}
		}
Ejemplo n.º 6
0
        private int GetMaximumPointsFromAchievementDescription()
        {
            AchievementDescription _description = AchievementHandler.GetAchievementDescriptionWithID(Identifier);

            if (_description == null)
            {
                return(0);
            }
            else
            {
#pragma warning disable
                return(_description.MaximumPoints);

#pragma warning restore
            }
        }
Ejemplo n.º 7
0
        public void LoadAchievementDescriptions(Action <IAchievementDescription[]> callback)
        {
            bool flag = !this.VerifyAuthentication();

            if (flag)
            {
                bool flag2 = callback != null;
                if (flag2)
                {
                    IAchievementDescription[] obj = new AchievementDescription[0];
                    callback(obj);
                }
            }
            else
            {
                GameCenterPlatform.InternalLoadAchievementDescriptions(callback);
            }
        }
Ejemplo n.º 8
0
        internal static AchievementDescription GetAchievementDescription(string _achievementID)
        {
            if (cachedAchievementDescriptionList == null)
            {
                Console.LogError(Constants.kDebugTag, "[GameServices] Please fetch achievement description list before accessing achievement properties.");
                return(null);
            }

            // Iterate through each description and find description which has matching identifier
            for (int _iter = 0; _iter < cachedAchievementDescriptionCount; _iter++)
            {
                AchievementDescription _curDescription = cachedAchievementDescriptionList[_iter];
                string _curDescriptionID = _curDescription.Identifier;

                if (_curDescriptionID.Equals(_achievementID))
                {
                    return(_curDescription);
                }
            }

            Console.LogError(Constants.kDebugTag, string.Format("[GameServices] Couldnt find achievement description with  identifier={0}.", _achievementID));
            return(null);
        }
Ejemplo n.º 9
0
        public void ReportProgress(string achievementID, double progress, Action <bool> callback)
        {
            if (!localUser.authenticated)
            {
                callback.SafeInvoke(false);
                return;
            }
            Achievement achievement = m_Data.Achievements.Find(a => a.id == achievementID);

            if (achievement != null)
            {
                if (achievement.percentCompleted < progress)
                {
                    if (progress >= 100.0)
                    {
                        achievement.SetCompleted(true);
                    }
                    achievement.SetHidden(false);
                    achievement.SetLastReportedDate(DateTime.Now);
                    achievement.percentCompleted = progress;
                    SaveData();
                }
                callback.SafeInvoke(true);
                return;
            }
            AchievementDescription achievementDescription = m_AchievementDescriptions.Find(ad => ad.id == achievementID);

            if (achievementDescription != null)
            {
                m_Data.Achievements.Add(new Achievement(achievementID, progress, (progress >= 100.0), false, DateTime.Now));
                SaveData();
                callback.SafeInvoke(true);
                return;
            }
            callback.SafeInvoke(false);
        }
		internal void ShowAchievementBanner (AchievementDescription _description)
		{
			// Enable this script and set properties
			this.enabled					= true;
			m_isShowingAchievementBanner	= true;
			m_bannerText					= _description.Title + " is completed.";

			// Start coroutine
			StartCoroutine(AnimateWindowRect());
		}
Ejemplo n.º 11
0
 public AchievementUnitModel(AchievementDescription description)
 {
     Description = description;
 }