From 8acf9ececb2951fefb7598936740dd24db5bc3f9 Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Sat, 12 Jul 2025 10:09:08 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=94=9F=E6=81=AF=E6=BC=94?= =?UTF-8?q?=E7=AE=97=E4=BB=BB=E5=8A=A1=E5=8F=82=E6=95=B0=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Models/AsstTasks/AsstReclamationTask.cs | 9 ++++--- .../ReclamationSettingsUserControlModel.cs | 27 ++++++++++--------- .../ReclamationSettingsUserControl.xaml | 10 ++++--- 3 files changed, 25 insertions(+), 21 deletions(-) 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'}">