diff --git a/src/MaaCore/Task/Interface/FightTask.cpp b/src/MaaCore/Task/Interface/FightTask.cpp index 24d50614b4..789ea26f62 100644 --- a/src/MaaCore/Task/Interface/FightTask.cpp +++ b/src/MaaCore/Task/Interface/FightTask.cpp @@ -78,17 +78,29 @@ bool asst::FightTask::set_params(const json::value& params) // 重置插件状态 1000 表示自动连战,-1 表示禁用连战切换 m_fight_times_task_plugin_prt->set_enable(series != -1); m_fight_series_adjust_plugin_ptr->set_close_stone_page_next(false); - m_fight_series_adjust_plugin_ptr->set_enable(series == 1000); - if (series == 1000) { - series = 6; + if (series == 0) { + m_fight_series_adjust_plugin_ptr->set_enable(true); + m_fight_times_task_plugin_prt->set_series(6); } else if (series == -1) { - series = 1; + m_fight_times_task_plugin_prt->set_series(1); + m_fight_series_adjust_plugin_ptr->set_enable(false); + } + else if (series == 1000) { + Log.warn("================ DEPRECATED ================"); + Log.warn("series = 1000, 已弃用"); + Log.warn("================ DEPRECATED ================"); + m_fight_times_task_plugin_prt->set_series(6); + m_fight_series_adjust_plugin_ptr->set_enable(true); } else if (series < 1 || series > 6) { Log.error("Invalid series"); return false; } + else { + m_fight_times_task_plugin_prt->set_series(series); + m_fight_series_adjust_plugin_ptr->set_enable(false); + } bool enable_penguin = params.get("report_to_penguin", false); bool enable_yituliu = params.get("report_to_yituliu", false); @@ -142,7 +154,6 @@ bool asst::FightTask::set_params(const json::value& params) .set_times_limit("StoneConfirm", stone) .set_times_limit("StartButton1", times) .set_times_limit("StartButton2", times); - m_fight_times_task_plugin_prt->set_series(series); m_medicine_plugin->set_count(medicine); m_medicine_plugin->set_use_expiring(expiring_medicine != 0); m_medicine_plugin->set_dr_grandet(is_dr_grandet); diff --git a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs index ba7fcce20f..614459fb37 100644 --- a/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs +++ b/src/MaaWpfGui/ViewModels/UserControl/TaskQueue/FightSettingsUserControlModel.cs @@ -103,18 +103,6 @@ public class FightSettingsUserControlModel : TaskViewModel { "炭", "SK-5" }, }; - public Dictionary SeriesList { get; } = new() - { - { "AUTO", 1000 }, - { "6", 6 }, - { "5", 5 }, - { "4", 4 }, - { "3", 6 }, - { "2", 2 }, - { "1", 1 }, - { LocalizationHelper.GetString("NotSelected"), -1 }, - }; - public string?[] Stages => [Stage1, Stage2, Stage3]; /// Try to fix: issues#5742. 关卡选择为 null 时的一个补丁,可能是 StageList 改变后,wpf binding 延迟更新的问题。 @@ -472,7 +460,31 @@ public class FightSettingsUserControlModel : TaskViewModel } } - private int _series = ConfigurationHelper.GetValue(ConfigurationKeys.SeriesQuantity, 1000); + public Dictionary SeriesList { get; } = new() + { + { "AUTO", 0 }, + { "6", 6 }, + { "5", 5 }, + { "4", 4 }, + { "3", 3 }, + { "2", 2 }, + { "1", 1 }, + { LocalizationHelper.GetString("NotSelected"), -1 }, + }; + + private int _series = InitFightSeries(); + + private static int InitFightSeries() + { + var series = ConfigurationHelper.GetValue(ConfigurationKeys.SeriesQuantity, 0); + if (Enumerable.Range(-1, 8).Contains(series)) + { + return series; + } + + ConfigurationHelper.SetValue(ConfigurationKeys.SeriesQuantity, "0"); + return 0; + } /// /// Gets or sets the max number of times.