fix: update recruitment average level calculation

This commit is contained in:
Horror Proton
2022-08-21 18:19:35 +08:00
parent a455d1e742
commit 9e30e2cdc6

View File

@@ -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<double>{},
std::mem_fn(&RecruitOperInfo::level)) / static_cast<double>(std::distance(sec, rc.opers.end()));
}
}
}