From 3182eff7186c47ec767236a8df245aebcb6df2f5 Mon Sep 17 00:00:00 2001
From: status102 <102887808+status102@users.noreply.github.com>
Date: Fri, 14 Feb 2025 21:20:08 +0800
Subject: [PATCH] =?UTF-8?q?rft:=20Wpf=E9=87=8D=E6=9E=84=E7=94=9F=E6=81=AF?=
=?UTF-8?q?=E6=BC=94=E7=AE=97=E4=BB=BB=E5=8A=A1=E5=8F=82=E6=95=B0=E5=BA=8F?=
=?UTF-8?q?=E5=88=97=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
perf: 移除不必要的分隔符
---
src/MaaWpfGui/Main/AsstProxy.cs | 49 +++++--------------
.../ViewModels/UI/TaskQueueViewModel.cs | 13 ++---
.../ReclamationSettingsUserControlModel.cs | 40 ++++++++++++++-
3 files changed, 55 insertions(+), 47 deletions(-)
diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs
index b1d57c1957..e084b0105f 100644
--- a/src/MaaWpfGui/Main/AsstProxy.cs
+++ b/src/MaaWpfGui/Main/AsstProxy.cs
@@ -2615,42 +2615,6 @@ namespace MaaWpfGui.Main
return id != 0;
}
- ///
- /// 自动生息演算。
- ///
- /// 要组装的支援道具。
- /// 生息演算主题["Tales"]
- ///
- /// 策略。可用值包括:
- ///
- /// -
- /// 0
- /// 无存档时通过进出关卡刷生息点数
- ///
- /// -
- /// 1
- /// 有存档时通过合成支援道具刷生息点数
- ///
- ///
- ///
- /// 点击类型:0 连点;1 长按
- /// 单次最大制造轮数
- /// 是否成功。
- public bool AsstAppendReclamation(string[] toolToCraft, string theme = "Tales", int mode = 1, int incrementMode = 0, int numCraftBatches = 16)
- {
- var taskParams = new JObject
- {
- ["tools_to_craft"] = new JArray(toolToCraft),
- ["theme"] = theme,
- ["mode"] = mode,
- ["increment_mode"] = incrementMode,
- ["num_craft_batches"] = numCraftBatches,
- };
- AsstTaskId id = AsstAppendTaskWithEncoding(AsstTaskType.Reclamation, taskParams);
- _taskStatus.Add(id, TaskType.Reclamation);
- return id != 0;
- }
-
///
/// 公招识别。
///
@@ -2780,6 +2744,19 @@ namespace MaaWpfGui.Main
return id != 0 && AsstStart();
}
+ public bool AsstAppendTaskWithEncoding(TaskType wpfTasktype, AsstTaskType type, JObject? taskParams = null)
+ {
+ taskParams ??= [];
+ AsstTaskId id = AsstAppendTask(_handle, type.ToString(), JsonConvert.SerializeObject(taskParams));
+ if (id == 0)
+ {
+ return false;
+ }
+
+ _taskStatus.Add(id, wpfTasktype);
+ return true;
+ }
+
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 4f7e675267..69c004ce07 100644
--- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs
@@ -1861,16 +1861,9 @@ namespace MaaWpfGui.ViewModels.UI
private static bool AppendReclamation()
{
- var toolToCraft = ReclamationTask.ReclamationToolToCraft.Split(';', ';').Select(s => s.Trim());
-
- _ = int.TryParse(ReclamationTask.ReclamationMode, out var mode);
-
- return Instances.AsstProxy.AsstAppendReclamation(
- toolToCraft.ToArray(),
- ReclamationTask.ReclamationTheme,
- mode,
- ReclamationTask.ReclamationIncrementMode,
- ReclamationTask.ReclamationMaxCraftCountPerRound);
+ // 被RemoteControlService反射调用,暂不移除
+ var (type, param) = ReclamationTask.Serialize();
+ return Instances.AsstProxy.AsstAppendTaskWithEncoding(AsstProxy.TaskType.Reclamation, type, param);
}
///
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs
index b9f6eec7bd..538ae3c9f7 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs
@@ -13,10 +13,13 @@
#nullable enable
using System;
using System.Collections.Generic;
+using System.Linq;
using MaaWpfGui.Constants;
using MaaWpfGui.Helper;
+using MaaWpfGui.Services;
using MaaWpfGui.Utilities.ValueType;
using MaaWpfGui.ViewModels.UI;
+using Newtonsoft.Json.Linq;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
@@ -77,7 +80,7 @@ public class ReclamationSettingsUserControlModel : TaskViewModel
}
}
- private string _reclamationToolToCraft = ConfigurationHelper.GetValue(ConfigurationKeys.ReclamationToolToCraft, string.Empty);
+ private string _reclamationToolToCraft = ConfigurationHelper.GetValue(ConfigurationKeys.ReclamationToolToCraft, string.Empty).Replace(';', ';');
public string ReclamationToolToCraft
{
@@ -93,6 +96,7 @@ public class ReclamationSettingsUserControlModel : TaskViewModel
set
{
+ value = value.Replace(';', ';');
SetAndNotify(ref _reclamationToolToCraft, value);
ConfigurationHelper.SetValue(ConfigurationKeys.ReclamationToolToCraft, value);
}
@@ -130,4 +134,38 @@ public class ReclamationSettingsUserControlModel : TaskViewModel
ConfigurationHelper.SetValue(ConfigurationKeys.ReclamationMaxCraftCountPerRound, value.ToString());
}
}
+
+ ///
+ /// 自动生息演算。
+ ///
+ /// 要组装的支援道具。
+ /// 生息演算主题["Tales"]
+ ///
+ /// 策略。可用值包括:
+ ///
+ /// -
+ /// 0
+ /// 无存档时通过进出关卡刷生息点数
+ ///
+ /// -
+ /// 1
+ /// 有存档时通过合成支援道具刷生息点数
+ ///
+ ///
+ ///
+ /// 点击类型:0 连点;1 长按
+ /// 单次最大制造轮数
+ /// 返回(Asst任务类型, 参数)
+ public (AsstTaskType Type, JObject Params) Serialize()
+ {
+ var data = new JObject
+ {
+ ["theme"] = ReclamationTheme,
+ ["mode"] = ReclamationMode,
+ ["increment_mode"] = ReclamationIncrementMode,
+ ["num_craft_batches"] = ReclamationMaxCraftCountPerRound,
+ ["tools_to_craft"] = new JArray(ReclamationToolToCraft.Split(';').Select(s => s.Trim())),
+ };
+ return (AsstTaskType.Reclamation, data);
+ }
}