/// Updates a player's progress for an achievement. public void ReportProgress(string achievementID, double percentCompleted, Action <bool> callback) { var achievement = GetAchievement(achievementID); if (achievement == null) { // Create new achievement. achievement = new LumosAchievement(achievementID, percentCompleted, false, DateTime.Now); _achievements[achievement.id] = achievement; } else { // Update existing achievement. achievement.percentCompleted = percentCompleted; } achievement.ReportProgress(callback); }
/// Loads the player's earned achievements. public void LoadAchievements(Action <IAchievement[]> callback) { if ((achievements == null || achievements.Length == 0) && !loadingAchievements) { // Load the achievements from the server. loadingAchievements = true; var endpoint = "/users/" + localUser.id + "/achievements"; LumosRequest.Send(LumosSocial.instance, endpoint, LumosRequest.Method.GET, success => { var resp = success as IList; _achievements = new Dictionary <string, LumosAchievement>(); foreach (Dictionary <string, object> info in resp) { var achievement = new LumosAchievement(info); _achievements[achievement.id] = achievement; } loadingAchievements = false; if (callback != null) { callback(achievements); } }, error => { loadingAchievements = false; if (callback != null) { callback(null); } }); } else { // Use the cached achievements. if (callback != null) { callback(achievements); } } }
/// Creates an empty achievement object. public IAchievement CreateAchievement() { var achievement = new LumosAchievement(); return(achievement); }