static void PrintUnlocksAchievement(Achievement achievement, int depth) { for (int i = 0; i < depth; i++) Console.Write("\t"); Console.WriteLine("- " + achievement.Name); foreach (var a in achievement.Unlocks) { PrintUnlocksAchievement(a, depth + 1); } }
public static Achievement GetAchievementDto(this Type achievementType, CultureInfo culture) { var descriptionAttribute = GetDescriptionAttribute(achievementType); var assembly = achievementType.Assembly; var AchievementResourcesType = assembly.GetType("Strokes.Resources.AchievementResources"); var categoryResourcesType = assembly.GetType("Strokes.Resources.AchievementCategoryResources"); var AchievementResources = (ResourceManager)AchievementResourcesType.GetProperty("ResourceManager", BindingFlags.Static | BindingFlags.Public).GetValue(null, null); var categoryResources = (ResourceManager)categoryResourcesType.GetProperty("ResourceManager", BindingFlags.Static | BindingFlags.Public).GetValue(null, null); var category = descriptionAttribute.AchievementCategory; if (category.StartsWith("@") && category.Length > 1) category = categoryResources.GetString(category.Substring(1), culture); var title = descriptionAttribute.AchievementTitle; if (title.StartsWith("@") && title.Length > 1) title = AchievementResources.GetString(title.Substring(1), culture); var description = descriptionAttribute.AchievementDescription; if (description.StartsWith("@") && description.Length > 1) description = AchievementResources.GetString(description.Substring(1), culture); Uri hintUri; if(!Uri.TryCreate(descriptionAttribute.HintUrl, UriKind.Absolute, out hintUri)) { hintUri = null; } var descriptor = new Achievement { Guid = descriptionAttribute.Guid, AchievementType = achievementType, Category = category, Description = description, Name = title, Image = descriptionAttribute.Image, HintUri = hintUri }; return descriptor; }
public CompletedAchievement(Achievement achievementDescriptor) { Guid = achievementDescriptor.Guid; }
public void UpdateLocalization(Achievement achievement, CultureInfo culture) { AchievementRepository.UpdateLocalization(achievement, culture); }