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)); }
private void ShowAchievementBanner(AchievementDescription _description) { if (m_gameCenterUI == null) { CreateGameCenterUIInstance(); } m_gameCenterUI.ShowAchievementBanner(_description); }
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 }
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; } }
private int GetMaximumPointsFromAchievementDescription() { AchievementDescription _description = AchievementHandler.GetAchievementDescriptionWithID(Identifier); if (_description == null) { return(0); } else { #pragma warning disable return(_description.MaximumPoints); #pragma warning restore } }
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); } }
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); }
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()); }
public AchievementUnitModel(AchievementDescription description) { Description = description; }