diff --git a/src/MaaWpfGui/ViewModels/TaskSettingsViewModel.cs b/src/MaaWpfGui/ViewModels/TaskSettingsViewModel.cs
index 78c0da31a2..efac1e3367 100644
--- a/src/MaaWpfGui/ViewModels/TaskSettingsViewModel.cs
+++ b/src/MaaWpfGui/ViewModels/TaskSettingsViewModel.cs
@@ -13,16 +13,11 @@
#nullable enable
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
using System.Runtime.CompilerServices;
using MaaWpfGui.Configuration.Factory;
using MaaWpfGui.Configuration.Single.MaaTask;
using MaaWpfGui.Main;
using MaaWpfGui.Models;
-using MaaWpfGui.Services;
using MaaWpfGui.Utilities;
using Newtonsoft.Json.Linq;
using Stylet;
@@ -84,3 +79,9 @@ public abstract class TaskSettingsViewModel : PropertyChangedBase
/// null为未序列化, false失败, true成功
public abstract bool? SerializeTask(BaseTask? baseTask, int? taskId = null);
}
+
+public interface ITaskQueueModelSerialize
+{
+ ///
+ public abstract bool? Serialize(BaseTask? baseTask, int? taskId);
+}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/AwardSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/AwardSettingsUserControlModel.cs
index 0fc51625d5..accb67e19c 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/AwardSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/AwardSettingsUserControlModel.cs
@@ -12,19 +12,15 @@
//
#nullable enable
-using System;
using System.Windows;
using MaaWpfGui.Configuration.Single.MaaTask;
-using MaaWpfGui.Constants;
using MaaWpfGui.Helper;
using MaaWpfGui.Models.AsstTasks;
-using MaaWpfGui.Services;
-using Newtonsoft.Json.Linq;
using static MaaWpfGui.Main.AsstProxy;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
-public class AwardSettingsUserControlModel : TaskSettingsViewModel
+public class AwardSettingsUserControlModel : TaskSettingsViewModel, AwardSettingsUserControlModel.ISerialize
{
static AwardSettingsUserControlModel()
{
@@ -113,25 +109,30 @@ public class AwardSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
- {
- if (baseTask is not AwardTask award)
- {
- return null;
- }
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize).Serialize(baseTask, taskId);
- var task = new AsstAwardTask() {
- Award = award.Award,
- Mail = award.Mail,
- FreeGacha = award.FreeGacha,
- Orundum = award.Orundum,
- Mining = award.Mining,
- SpecialAccess = award.SpecialAccess,
- };
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Award, task),
- _ => null,
- };
+ private interface ISerialize : ITaskQueueModelSerialize
+ {
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
+ {
+ if (baseTask is not AwardTask award)
+ {
+ return null;
+ }
+
+ var task = new AsstAwardTask() {
+ Award = award.Award,
+ Mail = award.Mail,
+ FreeGacha = award.FreeGacha,
+ Orundum = award.Orundum,
+ Mining = award.Mining,
+ SpecialAccess = award.SpecialAccess,
+ };
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Award, task),
+ _ => null,
+ };
+ }
}
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/CustomSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/CustomSettingsUserControlModel.cs
index 50bc9894fc..4beb45e3ce 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/CustomSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/CustomSettingsUserControlModel.cs
@@ -13,18 +13,15 @@
#nullable enable
using System;
-using System.Collections.Generic;
using System.Linq;
using MaaWpfGui.Configuration.Single.MaaTask;
using MaaWpfGui.Helper;
using MaaWpfGui.Models.AsstTasks;
-using MaaWpfGui.Services;
-using Newtonsoft.Json.Linq;
using static MaaWpfGui.Main.AsstProxy;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
-public class CustomSettingsUserControlModel : TaskSettingsViewModel
+public class CustomSettingsUserControlModel : TaskSettingsViewModel, CustomSettingsUserControlModel.ISerialize
{
static CustomSettingsUserControlModel()
{
@@ -73,20 +70,25 @@ public class CustomSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
- {
- if (baseTask is not CustomTask custom)
- {
- return null;
- }
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize).Serialize(baseTask, taskId);
- var task = new AsstCustomTask() {
- CustomTasks = [.. custom.CustomTaskName.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(task => task.Trim())],
- };
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Custom, task),
- _ => null,
- };
+ private interface ISerialize : ITaskQueueModelSerialize
+ {
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
+ {
+ if (baseTask is not CustomTask custom)
+ {
+ return null;
+ }
+
+ var task = new AsstCustomTask() {
+ CustomTasks = [.. custom.CustomTaskName.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(task => task.Trim())],
+ };
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Custom, task),
+ _ => null,
+ };
+ }
}
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
index 13a7498830..e6e9a408a6 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs
@@ -39,7 +39,7 @@ namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
///
/// 理智作战
///
-public class FightSettingsUserControlModel : TaskSettingsViewModel
+public class FightSettingsUserControlModel : TaskSettingsViewModel, FightSettingsUserControlModel.ISerialize
{
private static readonly ILogger _logger = Log.ForContext();
private static readonly Lock _lock = new();
@@ -702,61 +702,7 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel
return null;
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
- {
- if (baseTask is not FightTask fight || taskId is int and <= 0)
- {
- return null;
- }
-
- if (fight.UseWeeklySchedule && fight.WeeklySchedule.TryGetValue(Instances.TaskQueueViewModel.CurDayOfWeek, out var isEnabled) && !isEnabled)
- {
- return null;
- }
-
- using var scope = _lock.EnterScope();
- var stage = GetFightStage(fight);
- if (stage is null)
- {
- return null;
- }
- var task = new AsstFightTask() {
- Stage = stage,
- Medicine = fight.UseMedicine != false ? fight.MedicineCount : 0,
- Stone = fight.UseStone != false ? fight.StoneCount : 0,
- Series = fight.Series,
- MaxTimes = fight.EnableTimesLimit != false ? fight.TimesLimit : int.MaxValue,
- ExpiringMedicine = fight.UseExpiringMedicine ? 9999 : 0,
- IsDrGrandet = fight.IsDrGrandet,
- ReportToPenguin = SettingsViewModel.GameSettings.EnablePenguin,
- ReportToYituliu = SettingsViewModel.GameSettings.EnableYituliu,
- PenguinId = SettingsViewModel.GameSettings.PenguinId,
- YituliuId = SettingsViewModel.GameSettings.PenguinId,
- ServerType = Instances.SettingsViewModel.ServerType,
- ClientType = SettingsViewModel.GameSettings.ClientType,
- };
-
- if (task.Stage == "Annihilation" && fight.UseCustomAnnihilation)
- {
- task.Stage = fight.AnnihilationStage;
- }
-
- if (fight.EnableTargetDrop != false && !string.IsNullOrEmpty(fight.DropId))
- {
- task.Drops.Add(fight.DropId, fight.DropCount);
- }
-
- if (fight.EnableTimesLimit is not false && fight.Series > 0 && fight.TimesLimit % fight.Series != 0)
- {
- Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetStringFormat("FightTimesMayNotExhausted", fight.TimesLimit, fight.Series), UiLogColor.Warning);
- }
-
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Fight, task),
- _ => null,
- };
- }
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize).Serialize(baseTask, taskId);
#region 关卡列表更新
@@ -962,4 +908,63 @@ public class FightSettingsUserControlModel : TaskSettingsViewModel
// 仅供 ComboBox本身 和 手写Stage的TextBlock 绑定使用
public bool IsOpen { get => field; set => SetAndNotify(ref field, value); } = Instances.TaskQueueViewModel.IsStageOpen(stage);
}
+
+ private interface ISerialize : ITaskQueueModelSerialize
+ {
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
+ {
+ if (baseTask is not FightTask fight || taskId is int and <= 0)
+ {
+ return null;
+ }
+
+ if (fight.UseWeeklySchedule && fight.WeeklySchedule.TryGetValue(Instances.TaskQueueViewModel.CurDayOfWeek, out var isEnabled) && !isEnabled)
+ {
+ return null;
+ }
+
+ using var scope = _lock.EnterScope();
+ var stage = GetFightStage(fight);
+ if (stage is null)
+ {
+ return null;
+ }
+ var task = new AsstFightTask() {
+ Stage = stage,
+ Medicine = fight.UseMedicine != false ? fight.MedicineCount : 0,
+ Stone = fight.UseStone != false ? fight.StoneCount : 0,
+ Series = fight.Series,
+ MaxTimes = fight.EnableTimesLimit != false ? fight.TimesLimit : int.MaxValue,
+ ExpiringMedicine = fight.UseExpiringMedicine ? 9999 : 0,
+ IsDrGrandet = fight.IsDrGrandet,
+ ReportToPenguin = SettingsViewModel.GameSettings.EnablePenguin,
+ ReportToYituliu = SettingsViewModel.GameSettings.EnableYituliu,
+ PenguinId = SettingsViewModel.GameSettings.PenguinId,
+ YituliuId = SettingsViewModel.GameSettings.PenguinId,
+ ServerType = Instances.SettingsViewModel.ServerType,
+ ClientType = SettingsViewModel.GameSettings.ClientType,
+ };
+
+ if (task.Stage == "Annihilation" && fight.UseCustomAnnihilation)
+ {
+ task.Stage = fight.AnnihilationStage;
+ }
+
+ if (fight.EnableTargetDrop != false && !string.IsNullOrEmpty(fight.DropId))
+ {
+ task.Drops.Add(fight.DropId, fight.DropCount);
+ }
+
+ if (fight.EnableTimesLimit is not false && fight.Series > 0 && fight.TimesLimit % fight.Series != 0)
+ {
+ Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetStringFormat("FightTimesMayNotExhausted", fight.TimesLimit, fight.Series), UiLogColor.Warning);
+ }
+
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Fight, task),
+ _ => null,
+ };
+ }
+ }
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs
index 7e0d068408..ed7e6248aa 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/InfrastSettingsUserControlModel.cs
@@ -25,13 +25,11 @@ using MaaWpfGui.Constants.Enums;
using MaaWpfGui.Helper;
using MaaWpfGui.Models;
using MaaWpfGui.Models.AsstTasks;
-using MaaWpfGui.Services;
using MaaWpfGui.States;
using MaaWpfGui.Utilities;
using MaaWpfGui.Utilities.ValueType;
using Microsoft.Win32;
using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
using Serilog;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
@@ -42,7 +40,7 @@ using Mode = InfrastMode;
///
/// 基建任务
///
-public class InfrastSettingsUserControlModel : TaskSettingsViewModel
+public class InfrastSettingsUserControlModel : TaskSettingsViewModel, InfrastSettingsUserControlModel.ISerialize
{
static InfrastSettingsUserControlModel()
{
@@ -543,59 +541,64 @@ public class InfrastSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize).Serialize(baseTask, taskId);
+
+ private interface ISerialize : ITaskQueueModelSerialize
{
- if (baseTask is not InfrastTask infrast)
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
{
- return null;
- }
-
- var task = new AsstInfrastTask {
- Mode = infrast.Mode,
- Facilitys = [.. infrast.RoomList.Where(i => i.IsEnabled).Select(i => i.Room.ToString())],
- UsesOfDrones = infrast.UsesOfDrones,
- ContinueTraining = infrast.ContinueTraining,
- DormThreshold = infrast.DormThreshold / 100.0,
- DormFilterNotStationedEnabled = infrast.DormFilterNotStationed,
- DormTrustEnabled = infrast.DormTrustEnabled,
- OriginiumShardAutoReplenishment = infrast.OriginiumShardAutoReplenishment,
- ReceptionMessageBoard = infrast.ReceptionMessageBoard,
- ReceptionClueExchange = infrast.ReceptionClueExchange,
- ReceptionSendClue = infrast.SendClue,
- Filename = infrast.Filename,
- };
-
- if (infrast.Mode != Mode.Custom)
- {
- }
- else if (infrast.PlanSelect != -1 && infrast.InfrastPlan.Count <= infrast.PlanSelect)
- {
- throw new InvalidOperationException(LocalizationHelper.GetString("CustomInfrastPlanSelectOutOfIndex"));
- }
- else if (infrast.PlanSelect >= 0)
- {
- task.PlanIndex = infrast.PlanSelect;
- }
- else
- {
- var now = TimeOnly.FromDateTime(DateTime.Now.ToLocalTime());
- if (infrast.InfrastPlan.FirstOrDefault(i => i.Period.Any(p => p[0] <= now && now <= p[1])) is { } plan)
+ if (baseTask is not InfrastTask infrast)
{
- task.PlanIndex = plan.Index;
+ return null;
+ }
+
+ var task = new AsstInfrastTask {
+ Mode = infrast.Mode,
+ Facilitys = [.. infrast.RoomList.Where(i => i.IsEnabled).Select(i => i.Room.ToString())],
+ UsesOfDrones = infrast.UsesOfDrones,
+ ContinueTraining = infrast.ContinueTraining,
+ DormThreshold = infrast.DormThreshold / 100.0,
+ DormFilterNotStationedEnabled = infrast.DormFilterNotStationed,
+ DormTrustEnabled = infrast.DormTrustEnabled,
+ OriginiumShardAutoReplenishment = infrast.OriginiumShardAutoReplenishment,
+ ReceptionMessageBoard = infrast.ReceptionMessageBoard,
+ ReceptionClueExchange = infrast.ReceptionClueExchange,
+ ReceptionSendClue = infrast.SendClue,
+ Filename = infrast.Filename,
+ };
+
+ if (infrast.Mode != Mode.Custom)
+ {
+ }
+ else if (infrast.PlanSelect != -1 && infrast.InfrastPlan.Count <= infrast.PlanSelect)
+ {
+ throw new InvalidOperationException(LocalizationHelper.GetString("CustomInfrastPlanSelectOutOfIndex"));
+ }
+ else if (infrast.PlanSelect >= 0)
+ {
+ task.PlanIndex = infrast.PlanSelect;
}
else
{
- task.PlanIndex = 0;
- _logger.Warning("No valid plan found for current time, use PlanIndex 0");
- Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("CustomInfrastFileHasPlanNoPeriod"), UiLogColor.Error);
+ var now = TimeOnly.FromDateTime(DateTime.Now.ToLocalTime());
+ if (infrast.InfrastPlan.FirstOrDefault(i => i.Period.Any(p => p[0] <= now && now <= p[1])) is { } plan)
+ {
+ task.PlanIndex = plan.Index;
+ }
+ else
+ {
+ task.PlanIndex = 0;
+ _logger.Warning("No valid plan found for current time, use PlanIndex 0");
+ Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetString("CustomInfrastFileHasPlanNoPeriod"), UiLogColor.Error);
+ }
}
- }
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Infrast, task),
- _ => null,
- };
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Infrast, task),
+ _ => null,
+ };
+ }
}
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs
index a01addf1fe..00673e9c81 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/MallSettingsUserControlModel.cs
@@ -33,7 +33,7 @@ namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
///
/// 信用购物
///
-public class MallSettingsUserControlModel : TaskSettingsViewModel
+public class MallSettingsUserControlModel : TaskSettingsViewModel, MallSettingsUserControlModel.ISerialize
{
static MallSettingsUserControlModel()
{
@@ -190,65 +190,70 @@ public class MallSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize)?.Serialize(baseTask, taskId);
+
+ private interface ISerialize : ITaskQueueModelSerialize
{
- if (baseTask is not MallTask mall)
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
{
- return null;
- }
-
- var fightStageEmpty = false;
- var tasks = ConfigFactory.CurrentConfig.TaskQueue;
- int taskIndex = -1, stageIndex = -1;
- for (int i = 0; i < tasks.Count; i++)
- {
- if (ConfigFactory.CurrentConfig.TaskQueue.ElementAt(i) is not FightTask t)
+ if (baseTask is not MallTask mall)
{
- continue;
- }
- else if (!TaskQueueViewModel.IsTaskEnable(t))
- {
- continue;
+ return null;
}
- var weekly = Enum.GetValues().Where(d => !t.UseWeeklySchedule || (t.WeeklySchedule.TryGetValue(d, out var isEnabled) && isEnabled));
- if (weekly.Any(day => GetStageForDayOfWeek(t, day) == string.Empty))
+ var fightStageEmpty = false;
+ var tasks = ConfigFactory.CurrentConfig.TaskQueue;
+ int taskIndex = -1, stageIndex = -1;
+ for (int i = 0; i < tasks.Count; i++)
{
- taskIndex = i;
- stageIndex = t.StagePlan.IndexOf(string.Empty);
- fightStageEmpty = true;
- break;
+ if (ConfigFactory.CurrentConfig.TaskQueue.ElementAt(i) is not FightTask t)
+ {
+ continue;
+ }
+ else if (!TaskQueueViewModel.IsTaskEnable(t))
+ {
+ continue;
+ }
+
+ var weekly = Enum.GetValues().Where(d => !t.UseWeeklySchedule || (t.WeeklySchedule.TryGetValue(d, out var isEnabled) && isEnabled));
+ if (weekly.Any(day => GetStageForDayOfWeek(t, day) == string.Empty))
+ {
+ taskIndex = i;
+ stageIndex = t.StagePlan.IndexOf(string.Empty);
+ fightStageEmpty = true;
+ break;
+ }
}
- }
- if (mall.IsCreditFightAvailable && fightStageEmpty)
- {
- Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetStringFormat("CreditFightWhenOF-1Warning", ConfigFactory.CurrentConfig.TaskQueue[taskIndex].Name, taskIndex + 1, stageIndex + 1), UiLogColor.Warning);
- }
+ if (mall.IsCreditFightAvailable && fightStageEmpty)
+ {
+ Instances.TaskQueueViewModel.AddLog(LocalizationHelper.GetStringFormat("CreditFightWhenOF-1Warning", ConfigFactory.CurrentConfig.TaskQueue[taskIndex].Name, taskIndex + 1, stageIndex + 1), UiLogColor.Warning);
+ }
- var task = new AsstMallTask() {
- CreditFight = mall.IsCreditFightAvailable && !fightStageEmpty,
- FormationIndex = mall.CreditFightFormation,
- VisitFriends = mall.IsVisitFriendsAvailable,
- WithShopping = mall.Shopping,
- FirstList = [.. mall.FirstList.Split(';').Select(s => s.Trim())],
- Blacklist = [.. mall.BlackList.Split(';').Select(s => s.Trim()).Union(_blackCharacterListMapping[SettingsViewModel.GameSettings.ClientType])],
- ForceShoppingIfCreditFull = mall.ShoppingIgnoreBlackListWhenFull,
- OnlyBuyDiscount = mall.OnlyBuyDiscount,
- ReserveMaxCredit = mall.ReserveMaxCredit,
- };
+ var task = new AsstMallTask() {
+ CreditFight = mall.IsCreditFightAvailable && !fightStageEmpty,
+ FormationIndex = mall.CreditFightFormation,
+ VisitFriends = mall.IsVisitFriendsAvailable,
+ WithShopping = mall.Shopping,
+ FirstList = [.. mall.FirstList.Split(';').Select(s => s.Trim())],
+ Blacklist = [.. mall.BlackList.Split(';').Select(s => s.Trim()).Union(Instance._blackCharacterListMapping[SettingsViewModel.GameSettings.ClientType])],
+ ForceShoppingIfCreditFull = mall.ShoppingIgnoreBlackListWhenFull,
+ OnlyBuyDiscount = mall.OnlyBuyDiscount,
+ ReserveMaxCredit = mall.ReserveMaxCredit,
+ };
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Mall, task),
- _ => null,
- };
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Mall, task),
+ _ => null,
+ };
- string? GetStageForDayOfWeek(FightTask fightTask, DayOfWeek day)
- {
- var result = fightTask.StagePlan.FirstOrDefault(stage => Instances.StageManager.IsStageOpen(stage, day));
- result ??= fightTask.StagePlan.FirstOrDefault();
- return result;
+ string? GetStageForDayOfWeek(FightTask fightTask, DayOfWeek day)
+ {
+ var result = fightTask.StagePlan.FirstOrDefault(stage => Instances.StageManager.IsStageOpen(stage, day));
+ result ??= fightTask.StagePlan.FirstOrDefault();
+ return result;
+ }
}
}
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs
index e8d17b3a1b..3d2be522a3 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/ReclamationSettingsUserControlModel.cs
@@ -25,7 +25,7 @@ using Theme = MaaWpfGui.Configuration.Single.MaaTask.ReclamationTheme;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
-public class ReclamationSettingsUserControlModel : TaskSettingsViewModel
+public class ReclamationSettingsUserControlModel : TaskSettingsViewModel, ReclamationSettingsUserControlModel.ISerialize
{
static ReclamationSettingsUserControlModel()
{
@@ -137,27 +137,32 @@ public class ReclamationSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize)?.Serialize(baseTask, taskId);
+
+ private interface ISerialize : ITaskQueueModelSerialize
{
- if (baseTask is not ReclamationTask reclamation)
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
{
- return null;
+ if (baseTask is not ReclamationTask reclamation)
+ {
+ return null;
+ }
+
+ var toolToCraft = !string.IsNullOrEmpty(reclamation.ToolToCraft) ? reclamation.ToolToCraft : LocalizationHelper.GetString("ReclamationToolToCraftPlaceholder", DataHelper.ClientLanguageMapper[SettingsViewModel.GameSettings.ClientType]);
+ var task = new AsstReclamationTask() {
+ Theme = reclamation.Theme,
+ Mode = reclamation.Mode,
+ IncrementMode = reclamation.IncrementMode,
+ MaxCraftCountPerRound = reclamation.MaxCraftCountPerRound,
+ ToolToCraft = [.. toolToCraft.Split(';').Select(s => s.Trim())],
+ ClearStore = reclamation.ClearStore,
+ };
+
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Reclamation, task),
+ _ => null,
+ };
}
-
- var toolToCraft = !string.IsNullOrEmpty(reclamation.ToolToCraft) ? reclamation.ToolToCraft : LocalizationHelper.GetString("ReclamationToolToCraftPlaceholder", DataHelper.ClientLanguageMapper[SettingsViewModel.GameSettings.ClientType]);
- var task = new AsstReclamationTask() {
- Theme = reclamation.Theme,
- Mode = reclamation.Mode,
- IncrementMode = reclamation.IncrementMode,
- MaxCraftCountPerRound = reclamation.MaxCraftCountPerRound,
- ToolToCraft = [.. toolToCraft.Split(';').Select(s => s.Trim())],
- ClearStore = reclamation.ClearStore,
- };
-
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Reclamation, task),
- _ => null,
- };
}
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RecruitSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RecruitSettingsUserControlModel.cs
index a6c0037f52..d5fcfe4acb 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RecruitSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RecruitSettingsUserControlModel.cs
@@ -28,7 +28,7 @@ namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
///
/// 自动公招model
///
-public class RecruitSettingsUserControlModel : TaskSettingsViewModel
+public class RecruitSettingsUserControlModel : TaskSettingsViewModel, RecruitSettingsUserControlModel.ISerialize
{
static RecruitSettingsUserControlModel()
{
@@ -254,60 +254,65 @@ public class RecruitSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize)?.Serialize(baseTask, taskId);
+
+ private interface ISerialize : ITaskQueueModelSerialize
{
- if (baseTask is not RecruitTask recruit)
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
{
- return null;
+ if (baseTask is not RecruitTask recruit)
+ {
+ return null;
+ }
+
+ var task = new AsstRecruitTask() {
+ Refresh = recruit.RefreshLevel3,
+ ForceRefresh = recruit.ForceRefresh,
+ SetRecruitTime = true,
+ RecruitTimes = recruit.MaxTimes,
+ UseExpedited = recruit.UseExpedited is not false,
+ ExpeditedTimes = recruit.MaxTimes,
+ SelectExtraTags = recruit.ExtraTagMode,
+ Level3FirstList = recruit.Level3PreferTags,
+ NotChooseLevel1 = recruit.Level1NotChoose,
+ ChooseLevel3Time = recruit.Level3Time,
+ ChooseLevel4Time = recruit.Level4Time,
+ ChooseLevel5Time = recruit.Level5Time,
+ ReportToPenguin = SettingsViewModel.GameSettings.EnablePenguin,
+ ReportToYituliu = SettingsViewModel.GameSettings.EnableYituliu,
+ PenguinId = SettingsViewModel.GameSettings.PenguinId,
+ YituliuId = SettingsViewModel.GameSettings.PenguinId,
+ ServerType = Instances.SettingsViewModel.ServerType,
+ };
+
+ if (recruit.Level1NotChoose)
+ {
+ task.ConfirmList.Add(1);
+ }
+
+ if (recruit.Level3Choose)
+ {
+ task.ConfirmList.Add(3);
+ }
+
+ if (recruit.Level4Choose)
+ {
+ task.SelectList.Add(4);
+ task.ConfirmList.Add(4);
+ }
+
+ // ReSharper disable once InvertIf
+ if (recruit.Level5Choose)
+ {
+ task.SelectList.Add(5);
+ task.ConfirmList.Add(5);
+ }
+
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Recruit, task),
+ _ => null,
+ };
}
-
- var task = new AsstRecruitTask() {
- Refresh = recruit.RefreshLevel3,
- ForceRefresh = recruit.ForceRefresh,
- SetRecruitTime = true,
- RecruitTimes = recruit.MaxTimes,
- UseExpedited = recruit.UseExpedited is not false,
- ExpeditedTimes = recruit.MaxTimes,
- SelectExtraTags = recruit.ExtraTagMode,
- Level3FirstList = recruit.Level3PreferTags,
- NotChooseLevel1 = recruit.Level1NotChoose,
- ChooseLevel3Time = recruit.Level3Time,
- ChooseLevel4Time = recruit.Level4Time,
- ChooseLevel5Time = recruit.Level5Time,
- ReportToPenguin = SettingsViewModel.GameSettings.EnablePenguin,
- ReportToYituliu = SettingsViewModel.GameSettings.EnableYituliu,
- PenguinId = SettingsViewModel.GameSettings.PenguinId,
- YituliuId = SettingsViewModel.GameSettings.PenguinId,
- ServerType = Instances.SettingsViewModel.ServerType,
- };
-
- if (recruit.Level1NotChoose)
- {
- task.ConfirmList.Add(1);
- }
-
- if (recruit.Level3Choose)
- {
- task.ConfirmList.Add(3);
- }
-
- if (recruit.Level4Choose)
- {
- task.SelectList.Add(4);
- task.ConfirmList.Add(4);
- }
-
- // ReSharper disable once InvertIf
- if (recruit.Level5Choose)
- {
- task.SelectList.Add(5);
- task.ConfirmList.Add(5);
- }
-
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Recruit, task),
- _ => null,
- };
}
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs
index 3365aa09f7..0c784c3c86 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/RoguelikeSettingsUserControlModel.cs
@@ -23,7 +23,6 @@ using MaaWpfGui.Constants.Enums;
using MaaWpfGui.Helper;
using MaaWpfGui.Main;
using MaaWpfGui.Models.AsstTasks;
-using MaaWpfGui.Services;
using MaaWpfGui.Utilities;
using MaaWpfGui.Utilities.ValueType;
using MaaWpfGui.ViewModels.UI;
@@ -36,7 +35,7 @@ using Theme = MaaWpfGui.Configuration.Single.MaaTask.RoguelikeTheme;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
-public class RoguelikeSettingsUserControlModel : TaskSettingsViewModel
+public class RoguelikeSettingsUserControlModel : TaskSettingsViewModel, RoguelikeSettingsUserControlModel.ISerialize
{
static RoguelikeSettingsUserControlModel()
{
@@ -536,10 +535,8 @@ public class RoguelikeSettingsUserControlModel : TaskSettingsViewModel
///
public string RoguelikeThemeTip
{
- get
- {
- var key = RoguelikeTheme switch
- {
+ get {
+ var key = RoguelikeTheme switch {
Theme.Phantom => "RoguelikeThemeTipPhantom",
Theme.Mizuki => "RoguelikeThemeTipMizuki",
Theme.Sami => "RoguelikeThemeTipSami",
@@ -1055,65 +1052,69 @@ public class RoguelikeSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize)?.Serialize(baseTask, taskId);
+
+ private interface ISerialize : ITaskQueueModelSerialize
{
- if (baseTask is not RoguelikeTask roguelike)
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
{
- return null;
- }
-
- bool roguelikeSquadIsProfessional = roguelike.Mode == Mode.Collectible && roguelike.Theme != Theme.Phantom && roguelike.Squad is "突击战术分队" or "堡垒战术分队" or "远程战术分队" or "破坏战术分队";
- bool roguelikeSquadIsFoldartal = roguelike.Mode == Mode.Collectible && roguelike.Theme == Theme.Sami && roguelike.Squad == "生活至上分队";
- var task = new AsstRoguelikeTask() {
- Theme = roguelike.Theme,
- Mode = roguelike.Mode,
- Starts = roguelike.StartCount,
- Difficulty = roguelike.Difficulty,
- Squad = roguelike.Squad,
- Roles = roguelike.Roles,
- CoreChar = DataHelper.GetCharacterByNameOrAlias(roguelike.CoreChar)?.Name ?? roguelike.CoreChar,
- UseSupport = roguelike.UseSupport,
- UseSupportNonFriend = roguelike.UseSupportNonFriend,
-
- InvestmentEnabled = roguelike.Investment,
- InvestmentCount = roguelike.InvestCount,
- InvestmentStopWhenFull = roguelike.StopWhenDepositFull,
- InvestmentWithMoreScore = roguelike.InvestWithMoreScore && roguelike.Mode == Mode.Investment,
- RefreshTraderWithDice = roguelike.Theme == Theme.Mizuki && roguelike.RefreshTraderWithDice,
-
- StopAtFinalBoss = roguelike.StopAtFinalBoss,
- StopAtMaxLevel = roguelike.StopWhenLevelMax,
-
- // 刷开局
- CollectibleModeSquad = roguelike.SquadCollectible,
- CollectibleModeShopping = roguelike.CollectibleShopping,
- StartWithEliteTwo = roguelike.StartWithEliteTwo && roguelikeSquadIsProfessional && roguelike.Theme is Theme.Mizuki or Theme.Sami,
- StartWithEliteTwoNonBattle = roguelike.StartWithEliteTwoOnly && roguelike.Theme is Theme.Mizuki or Theme.Sami,
-
- // 月度小队
- MonthlySquadAutoIterate = roguelike.MonthlySquadAutoIterate,
- MonthlySquadCheckComms = roguelike.MonthlySquadCheckComms,
-
- // 深入探索
- DeepExplorationAutoIterate = roguelike.DeepExplorationAutoIterate,
-
- // 刷常乐节点
- FindPlaytimeTarget = roguelike.FindPlaytimeTarget, // 等待添加到 RoguelikeTask
-
- SamiFirstFloorFoldartal = roguelike.Theme == Theme.Sami && roguelike.Mode == Mode.Collectible && roguelike.SamiFirstFloorFoldartal,
- SamiStartFloorFoldartal = roguelike.SamiFirstFloorFoldartals,
- SamiNewSquad2StartingFoldartal = roguelike.SamiNewSquad2StartingFoldartal && roguelikeSquadIsFoldartal,
- SamiNewSquad2StartingFoldartals = [.. roguelike.SamiNewSquad2StartingFoldartals.Split(';').Where(i => !string.IsNullOrEmpty(i)).Take(3)],
-
- ExpectedCollapsalParadigms = [.. roguelike.ExpectedCollapsalParadigms.Split(';').Where(i => !string.IsNullOrEmpty(i))],
-
- StartWithSeed = roguelike.StartWithSeed ? roguelike.Seed : null,
- };
-
- if (RoguelikeMode == Mode.Collectible && !RoguelikeOnlyStartWithEliteTwo)
- {
- var rewardKeys = new Dictionary
+ if (baseTask is not RoguelikeTask roguelike)
{
+ return null;
+ }
+
+ bool roguelikeSquadIsProfessional = roguelike.Mode == Mode.Collectible && roguelike.Theme != Theme.Phantom && roguelike.Squad is "突击战术分队" or "堡垒战术分队" or "远程战术分队" or "破坏战术分队";
+ bool roguelikeSquadIsFoldartal = roguelike.Mode == Mode.Collectible && roguelike.Theme == Theme.Sami && roguelike.Squad == "生活至上分队";
+ var task = new AsstRoguelikeTask() {
+ Theme = roguelike.Theme,
+ Mode = roguelike.Mode,
+ Starts = roguelike.StartCount,
+ Difficulty = roguelike.Difficulty,
+ Squad = roguelike.Squad,
+ Roles = roguelike.Roles,
+ CoreChar = DataHelper.GetCharacterByNameOrAlias(roguelike.CoreChar)?.Name ?? roguelike.CoreChar,
+ UseSupport = roguelike.UseSupport,
+ UseSupportNonFriend = roguelike.UseSupportNonFriend,
+
+ InvestmentEnabled = roguelike.Investment,
+ InvestmentCount = roguelike.InvestCount,
+ InvestmentStopWhenFull = roguelike.StopWhenDepositFull,
+ InvestmentWithMoreScore = roguelike.InvestWithMoreScore && roguelike.Mode == Mode.Investment,
+ RefreshTraderWithDice = roguelike.Theme == Theme.Mizuki && roguelike.RefreshTraderWithDice,
+
+ StopAtFinalBoss = roguelike.StopAtFinalBoss,
+ StopAtMaxLevel = roguelike.StopWhenLevelMax,
+
+ // 刷开局
+ CollectibleModeSquad = roguelike.SquadCollectible,
+ CollectibleModeShopping = roguelike.CollectibleShopping,
+ StartWithEliteTwo = roguelike.StartWithEliteTwo && roguelikeSquadIsProfessional && roguelike.Theme is Theme.Mizuki or Theme.Sami,
+ StartWithEliteTwoNonBattle = roguelike.StartWithEliteTwoOnly && roguelike.Theme is Theme.Mizuki or Theme.Sami,
+
+ // 月度小队
+ MonthlySquadAutoIterate = roguelike.MonthlySquadAutoIterate,
+ MonthlySquadCheckComms = roguelike.MonthlySquadCheckComms,
+
+ // 深入探索
+ DeepExplorationAutoIterate = roguelike.DeepExplorationAutoIterate,
+
+ // 刷常乐节点
+ FindPlaytimeTarget = roguelike.FindPlaytimeTarget, // 等待添加到 RoguelikeTask
+
+ SamiFirstFloorFoldartal = roguelike.Theme == Theme.Sami && roguelike.Mode == Mode.Collectible && roguelike.SamiFirstFloorFoldartal,
+ SamiStartFloorFoldartal = roguelike.SamiFirstFloorFoldartals,
+ SamiNewSquad2StartingFoldartal = roguelike.SamiNewSquad2StartingFoldartal && roguelikeSquadIsFoldartal,
+ SamiNewSquad2StartingFoldartals = [.. roguelike.SamiNewSquad2StartingFoldartals.Split(';').Where(i => !string.IsNullOrEmpty(i)).Take(3)],
+
+ ExpectedCollapsalParadigms = [.. roguelike.ExpectedCollapsalParadigms.Split(';').Where(i => !string.IsNullOrEmpty(i))],
+
+ StartWithSeed = roguelike.StartWithSeed ? roguelike.Seed : null,
+ };
+
+ if (Instance.RoguelikeMode == Mode.Collectible && !Instance.RoguelikeOnlyStartWithEliteTwo)
+ {
+ var rewardKeys = new Dictionary
+ {
{ RoguelikeCollectibleAward.HotWater, "hot_water" },
{ RoguelikeCollectibleAward.Shield, "shield" },
{ RoguelikeCollectibleAward.Ingot, "ingot" },
@@ -1125,20 +1126,21 @@ public class RoguelikeSettingsUserControlModel : TaskSettingsViewModel
{ RoguelikeCollectibleAward.Ticket, "ticket" },
};
- var startWithSelect = new JObject();
- foreach (var select in RoguelikeStartWithSelectList.Cast>())
- {
- if (rewardKeys.TryGetValue(select.Value, out var paramKey))
+ var startWithSelect = new JObject();
+ foreach (var select in Instance.RoguelikeStartWithSelectList.Cast>())
{
- task.CollectibleModeStartRewards[paramKey] = true;
+ if (rewardKeys.TryGetValue(select.Value, out var paramKey))
+ {
+ task.CollectibleModeStartRewards[paramKey] = true;
+ }
}
}
- }
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Roguelike, task),
- _ => null,
- };
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.Roguelike, task),
+ _ => null,
+ };
+ }
}
}
diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/StartUpSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/StartUpSettingsUserControlModel.cs
index b11663d6d1..a7f7eaf605 100644
--- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/StartUpSettingsUserControlModel.cs
+++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/StartUpSettingsUserControlModel.cs
@@ -12,7 +12,6 @@
//
#nullable enable
-using System;
using JetBrains.Annotations;
using MaaWpfGui.Configuration.Single.MaaTask;
using MaaWpfGui.Constants;
@@ -20,14 +19,13 @@ using MaaWpfGui.Constants.Enums;
using MaaWpfGui.Helper;
using MaaWpfGui.Main;
using MaaWpfGui.Models.AsstTasks;
-using MaaWpfGui.Services;
using MaaWpfGui.ViewModels.UI;
using Newtonsoft.Json.Linq;
using static MaaWpfGui.Main.AsstProxy;
namespace MaaWpfGui.ViewModels.UserControl.TaskQueue;
-public class StartUpSettingsUserControlModel : TaskSettingsViewModel
+public class StartUpSettingsUserControlModel : TaskSettingsViewModel, StartUpSettingsUserControlModel.ISerialize
{
static StartUpSettingsUserControlModel()
{
@@ -68,29 +66,34 @@ public class StartUpSettingsUserControlModel : TaskSettingsViewModel
}
}
- public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null)
+ public override bool? SerializeTask(BaseTask? baseTask, int? taskId = null) => (this as ISerialize)?.Serialize(baseTask, taskId);
+
+ private interface ISerialize : ITaskQueueModelSerialize
{
- if (baseTask is not StartUpTask startUp)
+ bool? ITaskQueueModelSerialize.Serialize(BaseTask? baseTask, int? taskId)
{
- return null;
+ if (baseTask is not StartUpTask startUp)
+ {
+ return null;
+ }
+
+ var clientType = SettingsViewModel.GameSettings.ClientType;
+ var accountName = clientType switch {
+ ClientType.Official or ClientType.Bilibili => startUp.AccountName,
+ _ => string.Empty,
+ };
+
+ var task = new AsstStartUpTask() {
+ ClientType = clientType,
+ StartGame = SettingsViewModel.GameSettings.StartGame,
+ AccountName = accountName,
+ };
+
+ return taskId switch {
+ int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
+ null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.StartUp, task),
+ _ => null,
+ };
}
-
- var clientType = SettingsViewModel.GameSettings.ClientType;
- var accountName = clientType switch {
- ClientType.Official or ClientType.Bilibili => startUp.AccountName,
- _ => string.Empty,
- };
-
- var task = new AsstStartUpTask() {
- ClientType = clientType,
- StartGame = SettingsViewModel.GameSettings.StartGame,
- AccountName = accountName,
- };
-
- return taskId switch {
- int id when id > 0 => Instances.AsstProxy.AsstSetTaskParamsEncoded(id, task),
- null => Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.StartUp, task),
- _ => null,
- };
}
}