diff --git a/src/MaaWpfGui/Models/AsstTasks/AsstReclamationTask.cs b/src/MaaWpfGui/Models/AsstTasks/AsstReclamationTask.cs index 43ffecfb3d..9f0b81d485 100644 --- a/src/MaaWpfGui/Models/AsstTasks/AsstReclamationTask.cs +++ b/src/MaaWpfGui/Models/AsstTasks/AsstReclamationTask.cs @@ -13,6 +13,7 @@ #nullable enable using System.Collections.Generic; +using MaaWpfGui.Configuration.Single.MaaTask; using MaaWpfGui.Services; using Newtonsoft.Json.Linq; @@ -28,7 +29,7 @@ public class AsstReclamationTask : AsstBaseTask /// /// Gets or sets 生息演算主题 /// - public string Theme { get; set; } = "Tales"; + public ReclamationTheme Theme { get; set; } = ReclamationTheme.Tales; /// /// Gets or sets 生息演算模式 @@ -43,7 +44,7 @@ public class AsstReclamationTask : AsstBaseTask /// /// /// - public int Mode { get; set; } = 0; + public ReclamationMode Mode { get; set; } = ReclamationMode.NoArchive; /// /// Gets or sets 点击类型:0 连点;1 长按 @@ -69,8 +70,8 @@ public class AsstReclamationTask : AsstBaseTask { var data = new JObject { - ["theme"] = Theme, - ["mode"] = Mode, + ["theme"] = Theme.ToString(), + ["mode"] = (int)Mode, ["increment_mode"] = IncrementMode, ["num_craft_batches"] = MaxCraftCountPerRound, ["tools_to_craft"] = new JArray(ToolToCraft), diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs index 8b9b4f7399..6efe2c95f6 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs @@ -22,7 +22,8 @@ using MaaWpfGui.Services; using MaaWpfGui.Utilities.ValueType; using MaaWpfGui.ViewModels.UI; using Newtonsoft.Json.Linq; - +using Theme = MaaWpfGui.Configuration.Single.MaaTask.ReclamationTheme; +using Mode= MaaWpfGui.Configuration.Single.MaaTask.ReclamationMode; namespace MaaWpfGui.ViewModels.UserControl.TaskQueue; public class ReclamationSettingsUserControlModel : TaskViewModel @@ -37,42 +38,42 @@ public class ReclamationSettingsUserControlModel : TaskViewModel /// /// Gets the list of reclamation themes. /// - public List ReclamationThemeList { get; } = + public List> ReclamationThemeList { get; } = [ - new() { Display = $"{LocalizationHelper.GetString("ReclamationThemeFire")} ({LocalizationHelper.GetString("ClosedStage")})", Value = "Fire" }, - new() { Display = LocalizationHelper.GetString("ReclamationThemeTales"), Value = "Tales" }, + new() { Display = $"{LocalizationHelper.GetString("ReclamationThemeFire")} ({LocalizationHelper.GetString("ClosedStage")})", Value = Theme.Fire }, + new() { Display = LocalizationHelper.GetString("ReclamationThemeTales"), Value = Theme.Tales }, ]; - private string _reclamationTheme = ConfigurationHelper.GetValue(ConfigurationKeys.ReclamationTheme, "Tales"); + private Theme _reclamationTheme = ConfigurationHelper.GetValue(ConfigurationKeys.ReclamationTheme, Theme.Tales); /// /// Gets or sets the Reclamation theme. /// - public string ReclamationTheme + public Theme ReclamationTheme { get => _reclamationTheme; set { SetAndNotify(ref _reclamationTheme, value); - ConfigurationHelper.SetValue(ConfigurationKeys.ReclamationTheme, value); + ConfigurationHelper.SetValue(ConfigurationKeys.ReclamationTheme, value.ToString()); } } /// /// Gets the list of reclamation modes. /// - public List> ReclamationModeList { get; } = + public List> ReclamationModeList { get; } = [ - new() { Display = LocalizationHelper.GetString("ReclamationModeProsperityNoSave"), Value = 0 }, - new() { Display = LocalizationHelper.GetString("ReclamationModeProsperityInSave"), Value = 1 }, + new() { Display = LocalizationHelper.GetString("ReclamationModeProsperityNoSave"), Value = Mode.NoArchive }, + new() { Display = LocalizationHelper.GetString("ReclamationModeProsperityInSave"), Value = Mode.Archive }, ]; - private int _reclamationMode = int.TryParse(ConfigurationHelper.GetValue(ConfigurationKeys.ReclamationMode, "1"), out var outMode) ? outMode : 1; + private Mode _reclamationMode = ConfigurationHelper.GetValue(ConfigurationKeys.ReclamationMode, Mode.Archive); /// /// Gets or sets 策略,无存档刷生息点数 / 有存档刷生息点数 /// - public int ReclamationMode + public Mode ReclamationMode { get => _reclamationMode; set @@ -173,7 +174,7 @@ public class ReclamationSettingsUserControlModel : TaskViewModel /// 返回(Asst任务类型, 参数) public override (AsstTaskType Type, JObject Params) Serialize() { - return new AsstReclamationTask() + return new AsstReclamationTask { Theme = ReclamationTheme, Mode = ReclamationMode, diff --git a/src/MaaWpfGui/Views/UserControl/TaskQueue/ReclamationSettingsUserControl.xaml b/src/MaaWpfGui/Views/UserControl/TaskQueue/ReclamationSettingsUserControl.xaml index 8b7fcb8128..caab56d120 100644 --- a/src/MaaWpfGui/Views/UserControl/TaskQueue/ReclamationSettingsUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/TaskQueue/ReclamationSettingsUserControl.xaml @@ -11,6 +11,7 @@ xmlns:s="https://github.com/canton7/Stylet" xmlns:setting="clr-namespace:MaaWpfGui.ViewModels.UI" xmlns:sv="clr-namespace:MaaWpfGui.Models" + xmlns:task="clr-namespace:MaaWpfGui.Configuration.Single.MaaTask" xmlns:viewModels="clr-namespace:MaaWpfGui.ViewModels.UserControl.TaskQueue" d:Background="White" d:DataContext="{d:DesignInstance {x:Type viewModels:ReclamationSettingsUserControlModel}}" @@ -22,6 +23,7 @@ + Visibility="{c:Binding 'ReclamationMode == task:ReclamationMode.NoArchive'}">