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'}">