rft: Wpf长草任务添加部分解耦

This commit is contained in:
status102
2025-04-28 14:49:21 +08:00
parent fbae62cc3a
commit a15e2c6024
4 changed files with 24 additions and 57 deletions

View File

@@ -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 ??= [];

View File

@@ -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:

View File

@@ -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任务
/// </summary>
/// <returns>返回(Asst任务类型, 参数)</returns>
public virtual (AsstTaskType Type, JObject Params) Serialize()
{
throw new NotImplementedException();
}
public abstract (AsstTaskType Type, JObject Params) Serialize();
}

View File

@@ -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());
}
/// <summary>