static public void OnAchievementSnapshotReady(AchievementsResult achievements, GetObjectAsyncOp <AchievementsResult> op) { achievsRead = false; // // We used the UI to take a snapshot, now we can do something with these achievements! if (!op.Success || achievements == null || achievements.Items == null) { DebugLog("\nAchievement snapshot failed HRESULT: 0x" + op.Result.ToString("X8")); //OnScreenLog.Add("Achievement snapshot failed HRESULT: 0x" + op.Result.ToString("X8")); if (SceneManager.GetActiveScene().buildIndex == 0) { achievsRead = true; } return; } StringBuilder sb = new StringBuilder(); sb.Append("\nAchievements\n---------------------------\n\n"); for (int i = 0; i < achievements.Items.Length; ++i) { var a = achievements.Items[i]; bool ok = a.ProgressState == AchievementProgressState.Achieved; sb.Append(string.Format("[{0}] {1} - {2}\n", (ok ? "x" : " "), a.Name.PadRight(20), (ok ? a.UnlockedDescription : a.LockedDescription))); } DebugLog("\n" + sb.ToString()); // if (SceneManager.GetActiveScene().buildIndex == 0) { achievsRead = true; } }
public static async Task <IList <AchievementData> > GetAchievementsAsync() { List <AchievementData> list = new List <AchievementData>(); AchievementsResult ar = await _context.AchievementService.GetAchievementsForTitleIdAsync(_context.User.XboxUserId, TitleId, AchievementType.All, false, AchievementOrderBy.Default, 0, 10); foreach (Achievement achievement in ar.Items) { AchievementData ad = new AchievementData { Name = achievement.Name, Description = achievement.LockedDescription, Score = achievement.Rewards[0].Data, IsAchieved = achievement.ProgressState == AchievementProgressState.Achieved, Image = await GetTexture2dFromUriAsync(new Uri(achievement.MediaAssets[0].Url)) }; list.Add(ad); } return(list); }
private async void ProcessAchievements(AchievementsResult result) { if (result != null) { #if DEBUG foreach (var achievement in result.Items) { PrintAchievement(achievement); } #endif if (result.Items.Count > 0) { GenerateItems(result.Items); } // Keep processing if there are more Achievements. if (result.HasNext) { var _result = await result.GetNextAsync(maxAchievements); ProcessAchievements(_result); } } }