From 13e54e418a99d09bb8c59e7261dd64722ba12e2d Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Mon, 25 Jul 2022 11:04:36 +0800 Subject: [PATCH] fix: fix recruit min max level --- src/MeoAssistant/AutoRecruitTask.cpp | 22 ++++++++++++---------- src/MeoAssistant/RecruitConfiger.h | 15 +++++++++------ 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/MeoAssistant/AutoRecruitTask.cpp b/src/MeoAssistant/AutoRecruitTask.cpp index ef9e7fb0cf..a6771ad35a 100644 --- a/src/MeoAssistant/AutoRecruitTask.cpp +++ b/src/MeoAssistant/AutoRecruitTask.cpp @@ -21,8 +21,8 @@ namespace asst::recruit_calc { RecruitCombs result; result.tags = { t }; - result.min_level = 3; - result.max_level = 3; + result.min_level = 6; + result.max_level = 0; result.avg_level = 3; return result; }); @@ -35,7 +35,7 @@ namespace asst::recruit_calc if (op.level == 6 && rc.tags.front() != SeniorOper) continue; rc.opers.push_back(op); rc.min_level = (std::min)(rc.min_level, op.level); - rc.max_level = (std::min)(rc.max_level, op.level); + rc.max_level = (std::max)(rc.max_level, op.level); } } @@ -44,7 +44,7 @@ namespace asst::recruit_calc std::sort(rc.tags.begin(), rc.tags.end()); std::sort(rc.opers.begin(), rc.opers.end()); - rc.recompute_average_level(); + rc.update_attributes(); } } @@ -448,6 +448,14 @@ bool asst::AutoRecruitTask::recruit_calc_task(bool& out_force_skip, int& out_sel continue; } + if (need_exit()) return false; + + if (m_set_time) { + for (const Rect& rect : image_analyzer.get_set_time_rect()) { + m_ctrler->click(rect); + } + } + if (std::find(m_select_level.cbegin(), m_select_level.cend(), final_combination.min_level) == m_select_level.cend()) { // nothing to select out_force_skip = false; @@ -455,12 +463,6 @@ bool asst::AutoRecruitTask::recruit_calc_task(bool& out_force_skip, int& out_sel return true; } - if (need_exit()) return false; - - if (m_set_time){ - Log.error(__FILE__, __LINE__, "SET TIME NOT IMPLEMENTED"); // TODO: set time - } - for (const std::string& final_tag_name : final_combination.tags) { auto tag_rect_iter = std::find_if(tags.cbegin(), tags.cend(), [&](const TextRect& r) { return r.text == final_tag_name; }); diff --git a/src/MeoAssistant/RecruitConfiger.h b/src/MeoAssistant/RecruitConfiger.h index 2086897c18..1923771b81 100644 --- a/src/MeoAssistant/RecruitConfiger.h +++ b/src/MeoAssistant/RecruitConfiger.h @@ -41,9 +41,15 @@ namespace asst int min_level = 0; double avg_level = 0; - void recompute_average_level() { + void update_attributes() { double sum = 0; - for (const auto& op : opers) sum += op.level; + min_level = 6; + max_level = 0; + for (const auto& op : opers) { + sum += op.level; + min_level = (std::min)(min_level, op.level); + max_level = (std::max)(max_level, op.level); + } avg_level = sum / double(opers.size()); } @@ -67,10 +73,7 @@ namespace asst rhs.opers.cbegin(), rhs.opers.cend(), std::back_inserter(result.opers)); - result.min_level = (std::max)(lhs.min_level, rhs.min_level); // maximum of min_level - result.max_level = (std::min)(lhs.max_level, rhs.max_level); // minimum of max_level - - result.recompute_average_level(); + result.update_attributes(); return result; }