From 9e30e2cdc62db0bffcd502bec0fd4bf65ee9d0f6 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Sun, 21 Aug 2022 18:19:35 +0800 Subject: [PATCH] fix: update recruitment average level calculation --- src/MeoAssistant/AutoRecruitTask.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/MeoAssistant/AutoRecruitTask.cpp b/src/MeoAssistant/AutoRecruitTask.cpp index f3ad15925f..f408212aa7 100644 --- a/src/MeoAssistant/AutoRecruitTask.cpp +++ b/src/MeoAssistant/AutoRecruitTask.cpp @@ -360,7 +360,13 @@ asst::AutoRecruitTask::calc_task_result_type asst::AutoRecruitTask::recruit_calc if (rc.min_level < 3) { // find another min level (assuming operator list sorted in increment order by level) auto sec = ranges::find_if(rc.opers, [](const RecruitOperInfo& op) { return op.level >= 3; }); - if (sec != rc.opers.cend()) { rc.min_level = sec->level; } + if (sec != rc.opers.end()) { + rc.min_level = sec->level; + rc.avg_level = std::transform_reduce( + sec, rc.opers.end(), 0., + std::plus{}, + std::mem_fn(&RecruitOperInfo::level)) / static_cast(std::distance(sec, rc.opers.end())); + } } }