private void BuildList() { if (List != null) { ColUtility.Free(List); } switch (Profile.SortFilter) { default: case SortFilter.None: List = AchievementSystem.GetAchievements(Profile, Profile.FilterType, true).ToList(); break; case SortFilter.NotAchieved: List = AchievementSystem.GetAchievements(Profile, Profile.FilterType, true).Where(a => !Profile.HasAchieved(a)).ToList(); break; case SortFilter.Achieved: List = AchievementSystem.GetAchievements(Profile, Profile.FilterType, true).Where(a => Profile.HasAchieved(a)).ToList(); break; case SortFilter.Locked: List = AchievementSystem.GetAchievements(Profile, Profile.FilterType, true).Where(a => a.Locked && !Profile.HasUnlocked(a)).ToList(); break; case SortFilter.Unlocked: List = AchievementSystem.GetAchievements(Profile, Profile.FilterType, true).Where(a => a.Locked && Profile.HasUnlocked(a)).ToList(); break; case SortFilter.Ascending: List = AchievementSystem.GetAchievements(Profile, Profile.FilterType, true).OrderBy(a => a.Name.Number > 0 ? VendorSearch.StringList.GetString(a.Name.Number) : a.Name.ToString()).ToList(); break; case SortFilter.Descending: List = AchievementSystem.GetAchievements(Profile, Profile.FilterType, true).OrderByDescending(a => a.Name.Number > 0 ? VendorSearch.StringList.GetString(a.Name.Number) : a.Name.ToString()).ToList(); break; } }
private void BuildSummary() { bool ec = User.NetState != null && User.NetState.IsEnhancedClient; AddHtml(182, 64, 470, 20, ColorAndCenter(ec ? "#FFFFFF" : "yellow", "Recent Achievements"), false, false); int count = 4; int y = 80; foreach (var achievement in AchievementSystem.GetAchievements(User, AchievementType.All, true).Where(a => Profile.HasAchieved(a)).OrderByDescending(a => Profile.AchievedTime(a))) { AddBackground(190, y, 459, 60, 1579); AddHtmlLocalized(190, y + 5, 459, 20, CenterLoc, achievement.Name.ToString(), C32216(0x444444), false, false); AddImageTiled(260, y + 26, 300, 2, 96); AddHtmlLocalized(260, y + 31, 305, 40, CenterLoc, achievement.Description.ToString(), C32216(0x2A2A2A), false, false); AddHtml(527, y + 7, 100, 20, ColorAndAlignRight("#444444", Profile.AchievedTime(achievement).ToShortDateString()), false, false); AddHtml(527, y + 28, 100, 20, ColorAndAlignRight("#444444", String.Format("{0} Points", achievement.Points.ToString())), false, false); if (achievement.GumpImage > 0) { AddImage(198 + achievement.GumpImageOffset.X, y + achievement.GumpImageOffset.Y, achievement.GumpImage); } if (--count == 0) { break; } y += 60; } AddHtml(182, 328, 470, 20, ColorAndCenter("yellow", "Progress Overview"), false, false); int has = Profile.GetTotalAchieved(AchievementType.All); int total = AchievementSystem.Achievements.Count; AddImage(282, 350, 0x477); BuildProgressBar(Profile.GetTotalAchieved(AchievementType.All), AchievementSystem.Achievements.Count, 250, 293, 356, 30584, false); AddLabel(294, 353, 51, "Achievements Earned"); AddHtml(293, 353, 252, 20, ColorAndAlignRight("#FFFFFF", String.Format("{0}/{1}", has, total)), false, false); y = 390; int index = 0; foreach (var i in Enum.GetValues(typeof(AchievementType))) { var type = (AchievementType)i; int x = index % 2 == 0 ? 215 : 434; if (type == AchievementType.All) { continue; } has = Profile.GetTotalAchieved(type); total = AchievementSystem.Achievements.Values.Where(a => a.Type == type).Count(); AddImage(x, y, 2446); BuildProgressBar(Profile.GetTotalAchieved(type), AchievementSystem.Achievements.Values.Where(a => a.Type == type).Count(), 162, x + 8, y + 5, 30584, false); AddLabel(x + 10, y + 2, 51, AchievementSystem.TypeToString(type)); AddHtml(x, y + 3, 170, 20, ColorAndAlignRight("#FFFFFF", String.Format("{0}/{1}", has, total)), false, false); if (index > 0 && index % 2 != 0) { y += 40; } index++; } }
public int GetTotalAchieved(AchievementType type) { return(AchievementSystem.GetAchievements(this, type, true).Where(a => HasAchieved(a)).Count()); }