public static IAchievementsInfo ReadInGameAchievementsProgressInfo([NotNull] HearthstoneImage image) { if (image == null) { throw new ArgumentNullException(nameof(image)); } var manager = image.GetService("Hearthstone.Progression.AchievementManager"); if (manager == null || manager["m_achievementInGameProgress"] == null) { return(null); } var progressInfo = manager["m_achievementInGameProgress"]; var count = progressInfo["count"]; var keys = progressInfo["keySlots"]; var values = progressInfo["valueSlots"]; var achievements = new List <IAchievementInfo>(); for (int i = 0; i < count; i++) { var achievementId = keys[i]; var progress = values[i]; var achievementInfo = new AchievementInfo() { AchievementId = achievementId, Progress = progress, }; achievements.Add(achievementInfo); } return(new AchievementsInfo() { Achievements = achievements, }); }
public static IAchievementsInfo ReadAchievementsInfo([NotNull] HearthstoneImage image) { if (image == null) { throw new ArgumentNullException(nameof(image)); } var manager = image.GetService("Hearthstone.Progression.AchievementManager"); if (manager == null || manager["m_playerState"] == null || manager["m_playerState"]["m_playerState"] == null) { return(null); } var playerState = manager["m_playerState"]["m_playerState"]; var count = playerState["count"]; var values = playerState["valueSlots"]; var achievements = new List <IAchievementInfo>(); for (int i = 0; i < count; i++) { var info = values[i]; var achievementInfo = new AchievementInfo() { AchievementId = info["_AchievementId"], Progress = info["_Progress"], Status = info["_Status"], }; achievements.Add(achievementInfo); } return(new AchievementsInfo() { Achievements = achievements, }); }