diff --git a/src/MaaCore/Task/Interface/RoguelikeTask.cpp b/src/MaaCore/Task/Interface/RoguelikeTask.cpp index 00bdc5dae1..c51188ea07 100644 --- a/src/MaaCore/Task/Interface/RoguelikeTask.cpp +++ b/src/MaaCore/Task/Interface/RoguelikeTask.cpp @@ -88,12 +88,7 @@ bool asst::RoguelikeTask::set_params(const json::value& params) } auto mode = static_cast(params.get("mode", 0)); - static constexpr std::array all_modes = { - RoguelikeMode::Exp, - RoguelikeMode::Investment, - RoguelikeMode::Collectible, - }; - if (ranges::find(all_modes, mode) == all_modes.end()) { + if (RoguelikeConfig::is_valid_mode(mode)) { m_roguelike_task_ptr->set_tasks({ "Stop" }); Log.error(__FUNCTION__, "| Unknown mode", static_cast(mode)); return false; diff --git a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h index a75a2a8413..39e9688337 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeConfig.h +++ b/src/MaaCore/Task/Roguelike/RoguelikeConfig.h @@ -31,6 +31,12 @@ namespace asst { return theme == RoguelikeTheme::Phantom || theme == RoguelikeTheme::Mizuki || theme == RoguelikeTheme::Sami; } + static constexpr bool is_valid_mode(RoguelikeMode mode) + { + return mode == RoguelikeMode::Exp || mode == RoguelikeMode::Investment || + mode == RoguelikeMode::Collectible; + } + public: // 清理缓存的肉鸽数据 void clear();