fix.修复自动战斗cost_changes和kills同时存在时,cost_changes基准计算错误的问题

This commit is contained in:
MistEO
2022-05-29 16:35:36 +08:00
parent 4ce0b7e5e4
commit e7f6fcb986

View File

@@ -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;