fix: 当首选关卡为剿灭时,后续备选关卡和剩余理智出现问题时不会报错

This commit is contained in:
uye
2025-07-04 23:31:24 +08:00
parent a63bd7ffbf
commit f7f9d709b5
2 changed files with 4 additions and 2 deletions

View File

@@ -760,7 +760,8 @@ namespace MaaWpfGui.Main
case AsstMsg.TaskChainError:
{
// 对剿灭的特殊处理,如果刷完了剿灭还选了剿灭会因为找不到入口报错
if (taskChain == "Fight" && (TaskQueueViewModel.FightTask.Stage == "Annihilation"))
_tasksStatus.TryGetValue(taskId, out var value);
if (value is { Type: TaskType.Fight } && (TaskQueueViewModel.FightTask.Stage == "Annihilation"))
{
if (TaskQueueViewModel.FightTask.Stages.Any(stage => Instances.TaskQueueViewModel.IsStageOpen(stage) && (stage != "Annihilation")))
{
@@ -2060,6 +2061,7 @@ namespace MaaWpfGui.Main
StartUp,
CloseDown,
Fight,
FightAnnihilationAlternate,
FightRemainingSanity,
Recruit,
Infrast,

View File

@@ -1616,7 +1616,7 @@ namespace MaaWpfGui.ViewModels.UI
task.Stone = 0;
task.MaxTimes = int.MaxValue;
task.Drops = [];
mainFightRet = Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.FightRemainingSanity, type, task.Serialize().Params);
mainFightRet = Instances.AsstProxy.AsstAppendTaskWithEncoding(TaskType.FightAnnihilationAlternate, type, task.Serialize().Params);
break;
}
}