diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 90cc381c78..9ea8b0da92 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -2036,6 +2036,8 @@ namespace MaaWpfGui.Main private readonly Dictionary _taskStatus = []; private static JObject SerializeFightTaskParams( + public IReadOnlyDictionary TaskStatus => _taskStatus; + string stage, int maxMedicine, int maxStone, @@ -2150,19 +2152,6 @@ namespace MaaWpfGui.Main return MaaService.AsstBackToHome(_handle); } - public bool AsstSetInfrastTaskParams() - { - const TaskType Type = TaskType.Infrast; - int id = _taskStatus.FirstOrDefault(i => i.Value == Type).Key; - if (id == 0) - { - return false; - } - - var taskParams = InfrastSettingsUserControlModel.Instance.Serialize().Params; - return AsstSetTaskParamsWithEncoding(id, taskParams); - } - /// /// 仓库识别。 /// @@ -2215,6 +2204,17 @@ namespace MaaWpfGui.Main return true; } + public bool AsstSetTaskParamsEncoded(AsstTaskId id, JObject? taskParams = null) + { + if (id == 0) + { + return false; + } + + taskParams ??= []; + return AsstSetTaskParams(_handle, id, JsonConvert.SerializeObject(taskParams)); + } + public bool ContainsTask(TaskType type) { return _taskStatus.ContainsValue(type); diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 469ebf9982..152ad44e53 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -27,6 +27,7 @@ using MaaWpfGui.Extensions; using MaaWpfGui.Helper; using MaaWpfGui.Main; using MaaWpfGui.Models; +using MaaWpfGui.Models.AsstTasks; using MaaWpfGui.Services; using MaaWpfGui.States; using MaaWpfGui.Utilities; @@ -36,6 +37,7 @@ using MaaWpfGui.ViewModels.UserControl.TaskQueue; using Newtonsoft.Json.Linq; using Serilog; using Stylet; +using static MaaWpfGui.Main.AsstProxy; using Application = System.Windows.Application; using IContainer = StyletIoC.IContainer; using Screen = Stylet.Screen; @@ -1691,14 +1693,17 @@ namespace MaaWpfGui.ViewModels.UI Instances.AsstProxy.AsstSetFightTaskParams(FightTask.RemainingSanityStage, 0, 0, int.MaxValue, 1, string.Empty, 0, false); } - public void SetInfrastParams() + public static void SetInfrastParams() { - if (!Instances.AsstProxy.ContainsTask(AsstProxy.TaskType.Infrast)) + const TaskType Type = TaskType.Infrast; + int id = Instances.AsstProxy.TaskStatus.FirstOrDefault(i => i.Value == Type).Key; + if (id == default) { return; } - Instances.AsstProxy.AsstSetInfrastTaskParams(); + var taskParams = InfrastSettingsUserControlModel.Instance.Serialize().Params; + Instances.AsstProxy.AsstSetTaskParamsEncoded(id, taskParams); } public bool AppendInfrast() diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs index 0903932f66..958b3d0d56 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs @@ -23,6 +23,7 @@ using MaaWpfGui.Models; using MaaWpfGui.Models.AsstTasks; using MaaWpfGui.Services; using MaaWpfGui.Utilities.ValueType; +using MaaWpfGui.ViewModels.UI; using Microsoft.Win32; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -440,7 +441,7 @@ public class InfrastSettingsUserControlModel : TaskViewModel } SetAndNotify(ref _customInfrastPlanIndex, value); - Instances.TaskQueueViewModel.SetInfrastParams(); + TaskQueueViewModel.SetInfrastParams(); ConfigurationHelper.SetValue(ConfigurationKeys.CustomInfrastPlanIndex, value.ToString()); } }