diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 1db4dddce3..4e8b9fc70c 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -2118,6 +2118,11 @@ namespace MaaWpfGui.Main return id != 0 && AsstStart(); } + public bool AsstAppendTaskWithEncoding(TaskType wpfTasktype, (AsstTaskType Type, JObject? TaskParams) task) + { + return AsstAppendTaskWithEncoding(wpfTasktype, task.Type, task.TaskParams); + } + public bool AsstAppendTaskWithEncoding(TaskType wpfTasktype, AsstTaskType type, JObject? taskParams = null) { taskParams ??= []; diff --git a/src/MaaWpfGui/Services/RemoteControl/RemoteControlService.cs b/src/MaaWpfGui/Services/RemoteControl/RemoteControlService.cs index d7f4fda76e..3cf7250605 100644 --- a/src/MaaWpfGui/Services/RemoteControl/RemoteControlService.cs +++ b/src/MaaWpfGui/Services/RemoteControl/RemoteControlService.cs @@ -26,10 +26,13 @@ using MaaWpfGui.Helper; using MaaWpfGui.States; using MaaWpfGui.ViewModels.UI; using MaaWpfGui.ViewModels.UserControl.Settings; +using MaaWpfGui.ViewModels.UserControl.TaskQueue; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Serilog; using Stylet; +using Windows.ApplicationModel; +using static MaaWpfGui.Main.AsstProxy; namespace MaaWpfGui.Services.RemoteControl { @@ -648,7 +651,7 @@ namespace MaaWpfGui.Services.RemoteControl break; case "WakeUp": - taskRet &= TaskQueueViewModel.AppendStart(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.StartUp, StartUpTask.Serialize()); break; case "Combat": @@ -656,23 +659,23 @@ namespace MaaWpfGui.Services.RemoteControl break; case "Recruiting": - taskRet &= TaskQueueViewModel.AppendRecruit(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Recruit, RecruitSettingsUserControlModel.Instance.Serialize()); break; case "Mall": - taskRet &= TaskQueueViewModel.AppendMall(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Mall, MallSettingsUserControlModel.Instance.Serialize()); break; case "Mission": - taskRet &= TaskQueueViewModel.AppendAward(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Award, AwardSettingsUserControlModel.Instance.Serialize()); break; case "AutoRoguelike": - taskRet &= TaskQueueViewModel.AppendRoguelike(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Roguelike, RoguelikeSettingsUserControlModel.Instance.Serialize()); break; case "Reclamation": - taskRet &= TaskQueueViewModel.AppendReclamation(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Reclamation, ReclamationSettingsUserControlModel.Instance.Serialize()); break; default: diff --git a/src/MaaWpfGui/ViewModels/TaskViewModel.cs b/src/MaaWpfGui/ViewModels/TaskViewModel.cs index dba5cece66..6ebfc81a46 100644 --- a/src/MaaWpfGui/ViewModels/TaskViewModel.cs +++ b/src/MaaWpfGui/ViewModels/TaskViewModel.cs @@ -19,7 +19,7 @@ using Stylet; namespace MaaWpfGui.ViewModels; -public class TaskViewModel : PropertyChangedBase +public abstract class TaskViewModel : PropertyChangedBase { public virtual void ProcSubTaskMsg(AsstMsg msg, JObject details) { @@ -29,8 +29,5 @@ public class TaskViewModel : PropertyChangedBase /// 序列化MAA任务 /// /// 返回(Asst任务类型, 参数) - public virtual (AsstTaskType Type, JObject Params) Serialize() - { - throw new NotImplementedException(); - } + public abstract (AsstTaskType Type, JObject Params) Serialize(); } diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 712f16983c..f0845b6b7d 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -1348,7 +1348,7 @@ namespace MaaWpfGui.ViewModels.UI break; case "WakeUp": - taskRet &= AppendStart(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.StartUp, StartUpTask.Serialize()); break; case "Combat": @@ -1356,23 +1356,23 @@ namespace MaaWpfGui.ViewModels.UI break; case "Recruiting": - taskRet &= AppendRecruit(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Recruit, RecruitTask.Serialize()); break; case "Mall": - taskRet &= AppendMall(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Mall, MallTask.Serialize()); break; case "Mission": - taskRet &= AppendAward(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Award, AwardTask.Serialize()); break; case "AutoRoguelike": - taskRet &= AppendRoguelike(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Roguelike, RoguelikeTask.Serialize()); break; case "Reclamation": - taskRet &= AppendReclamation(); + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Reclamation, ReclamationTask.Serialize()); break; case "Custom": @@ -1560,8 +1560,7 @@ namespace MaaWpfGui.ViewModels.UI } bool taskRet = true; - taskRet &= AppendStart(); - + taskRet &= Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.StartUp, StartUpTask.Serialize()); taskRet &= Instances.AsstProxy.AsstStart(); if (taskRet) @@ -1576,12 +1575,6 @@ namespace MaaWpfGui.ViewModels.UI } } - public static bool AppendStart() - { - var (type, param) = StartUpTask.Serialize(); - return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.StartUp, type, param); - } - public bool AppendFight() { string curStage = FightTask.Stage; @@ -1701,38 +1694,7 @@ namespace MaaWpfGui.ViewModels.UI return false; } - var (type, param) = InfrastTask.Serialize(); - return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Infrast, type, param); - } - - public static bool AppendMall() - { - var (type, param) = MallTask.Serialize(); - return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Mall, type, param); - } - - public static bool AppendAward() - { - var (type, param) = AwardTask.Serialize(); - return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Award, type, param); - } - - public static bool AppendRecruit() - { - var (type, param) = RecruitTask.Serialize(); - return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Recruit, type, param); - } - - public static bool AppendRoguelike() - { - var (type, param) = RoguelikeTask.Serialize(); - return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Roguelike, type, param); - } - - public static bool AppendReclamation() - { - var (type, param) = ReclamationTask.Serialize(); - return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Reclamation, type, param); + return Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Infrast, InfrastTask.Serialize()); } ///