diff --git a/data/Achievement.json b/data/Achievement.json index 6ad0b8e144..3c9559f3a1 100644 --- a/data/Achievement.json +++ b/data/Achievement.json @@ -35,9 +35,6 @@ "ScheduleMaster2": { "Id": "ScheduleMaster2" }, - "Irreplaceable": { - "Id": "Irreplaceable" - }, "UseCopilot1": { "Id": "UseCopilot1" }, @@ -80,6 +77,9 @@ "PioneerSuperTest": { "Id": "PioneerSuperTest" }, + "Irreplaceable": { + "Id": "Irreplaceable" + }, "MapOutdated": { "Id": "MapOutdated" }, diff --git a/src/MaaWpfGui/Helper/AchievementTrackerHelper.cs b/src/MaaWpfGui/Helper/AchievementTrackerHelper.cs index 05a46cd334..9e812e8e9d 100644 --- a/src/MaaWpfGui/Helper/AchievementTrackerHelper.cs +++ b/src/MaaWpfGui/Helper/AchievementTrackerHelper.cs @@ -36,9 +36,19 @@ namespace MaaWpfGui.Helper set { SetAndNotify(ref _achievements, value); + NotifyOfPropertyChange(nameof(UnlockedCount)); + NotifyOfPropertyChange(nameof(VisibleAchievements)); } } + // 已解锁及非隐藏的未解锁成就 + public Dictionary VisibleAchievements + { + get => Achievements + .Where(kv => kv.Value.IsUnlocked || !kv.Value.IsHidden) + .ToDictionary(kv => kv.Key, kv => kv.Value); + } + public int UnlockedCount => Achievements.Count(a => a.Value.IsUnlocked); public static AchievementTrackerHelper Instance { get; } = new(); @@ -130,8 +140,6 @@ namespace MaaWpfGui.Helper achievement.IsNewUnlock = true; Save(); - NotifyOfPropertyChange(nameof(UnlockedCount)); - var growlInfo = new GrowlInfo { IsCustom = true, @@ -318,7 +326,7 @@ namespace MaaWpfGui.Helper AutoBattle(id: AchievementIds.UseCopilot3, target: 100), AutoBattle(id: AchievementIds.MapOutdated, isHidden: true), // 提示需要更新地图资源 - AutoBattle(id: AchievementIds.Irreplaceable), // 自动编队缺少至少两名干员 + AutoBattle(id: AchievementIds.Irreplaceable, isHidden: true), // 自动编队缺少至少两名干员 #endregion #region 搞笑/梗类成就 diff --git a/src/MaaWpfGui/Views/UI/AchievementListWindow.xaml b/src/MaaWpfGui/Views/UI/AchievementListWindow.xaml index 1755b4bb72..8db85f893e 100644 --- a/src/MaaWpfGui/Views/UI/AchievementListWindow.xaml +++ b/src/MaaWpfGui/Views/UI/AchievementListWindow.xaml @@ -11,13 +11,13 @@ MinWidth="250"> - +