From 426d76ee5083acd3a7370b3a12e9006c69ea78c3 Mon Sep 17 00:00:00 2001
From: status102 <102887808+status102@users.noreply.github.com>
Date: Mon, 28 Apr 2025 14:49:21 +0800
Subject: [PATCH] =?UTF-8?q?rft:=20Wpf=E9=95=BF=E8=8D=89=E4=BB=BB=E5=8A=A1?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=83=A8=E5=88=86=E8=A7=A3=E8=80=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/MaaWpfGui/Main/AsstProxy.cs | 5 ++
.../RemoteControl/RemoteControlService.cs | 15 +++---
src/MaaWpfGui/ViewModels/TaskViewModel.cs | 7 +--
.../ViewModels/UI/TaskQueueViewModel.cs | 54 +++----------------
4 files changed, 24 insertions(+), 57 deletions(-)
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());
}
///