diff --git a/src/MeoAssistant/BattleProcessTask.cpp b/src/MeoAssistant/BattleProcessTask.cpp index 2ee3714968..cbd4207bfc 100644 --- a/src/MeoAssistant/BattleProcessTask.cpp +++ b/src/MeoAssistant/BattleProcessTask.cpp @@ -333,24 +333,8 @@ bool asst::BattleProcessTask::do_action(const BattleAction& action) bool asst::BattleProcessTask::wait_condition(const BattleAction& action) { cv::Mat image; - while (m_kills < action.kills) { - if (need_exit()) { - return false; - } - image = m_ctrler->get_image(); - BattleImageAnalyzer analyzer(image); - analyzer.set_target(BattleImageAnalyzer::Target::Kills); - if (analyzer.analyze()) { - m_kills = analyzer.get_kills(); - if (m_kills >= action.kills) { - break; - } - } - - try_possible_skill(image); - std::this_thread::yield(); - } + // 因为要算基准cost,所以这个要放在kills前面 if (action.cost_changes != 0) { int cost_base = -1; @@ -374,6 +358,24 @@ bool asst::BattleProcessTask::wait_condition(const BattleAction& action) } } + while (m_kills < action.kills) { + if (need_exit()) { + return false; + } + image = m_ctrler->get_image(); + BattleImageAnalyzer analyzer(image); + analyzer.set_target(BattleImageAnalyzer::Target::Kills); + if (analyzer.analyze()) { + m_kills = analyzer.get_kills(); + if (m_kills >= action.kills) { + break; + } + } + + try_possible_skill(image); + std::this_thread::yield(); + } + // 部署干员还有额外等待费用够或 CD 转好 if (action.type == BattleActionType::Deploy) { const std::string& name = m_group_to_oper_mapping[action.group_name].name;