From 9db54db1a45554f85fc4c70068804d33dbc9bccb Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 12 Aug 2023 15:17:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8A=84=E4=BD=9C=E4=B8=9A=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=BC=96=E9=98=9F=E6=94=AF=E6=8C=81=E5=90=AB=E6=9C=89?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E8=81=8C=E4=B8=9A=E7=9A=84=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index 1af0ae7bf9..5cdad97c59 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -254,7 +254,7 @@ bool asst::BattleFormationTask::click_role_table(battle::Role role) static const std::unordered_map RoleNameType = { { battle::Role::Caster, "Caster" }, { battle::Role::Medic, "Medic" }, { battle::Role::Pioneer, "Pioneer" }, { battle::Role::Sniper, "Sniper" }, { battle::Role::Special, "Special" }, { battle::Role::Support, "Support" }, - { battle::Role::Tank, "Tank" }, { battle::Role::Warrior, "Warrior" }, + { battle::Role::Tank, "Tank" }, { battle::Role::Warrior, "Warrior" }, { battle::Role::Unknown, "All" }, }; m_the_right_name.clear(); @@ -284,8 +284,13 @@ bool asst::BattleFormationTask::parse_formation() } formation.array_emplace(name); + bool same_role = true; battle::Role role = BattleData.get_role(opers_vec.front().name); - m_formation[role].emplace_back(opers_vec); + for (const auto& oper : opers_vec) { + same_role &= BattleData.get_role(oper.name) == role; + } + + m_formation[same_role ? role : battle::Role::Unknown].emplace_back(opers_vec); } callback(AsstMsg::SubTaskExtraInfo, info);