diff --git a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp index b244096260..a932821ae5 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp @@ -3,6 +3,7 @@ #include "Utils/Ranges.hpp" #include #include +#include #include "Utils/NoWarningCV.h" @@ -596,13 +597,17 @@ std::optional asst::RoguelikeBattleTaskPlugin::cal void asst::RoguelikeBattleTaskPlugin::all_melee_retreat() { + std::vector retreat_locs{}; for (const auto& loc : m_used_tiles | views::keys) { auto& tile_info = m_normal_tile_info[loc]; auto& type = tile_info.buildable; if (type == battle::LocationType::Melee || type == battle::LocationType::All) { - retreat_oper(loc); + retreat_locs.push_back(&loc); } } + for (const auto&loc: retreat_locs) { + retreat_oper(*loc); + } } void asst::RoguelikeBattleTaskPlugin::clear()