From 1daa200c405d58e8fb9eb05e9ac417da05a9a8f2 Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Tue, 5 Nov 2024 17:57:24 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"feat:=20=E8=87=AA=E5=8A=A8=E7=BC=96?= =?UTF-8?q?=E9=98=9F=E5=85=81=E8=AE=B8=E6=8C=87=E5=AE=9A=E5=8A=A9=E6=88=98?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=20(#10820)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit e595aa021f9146db5ccf0ee3583a1b63a65bc06d. --- resource/tasks.json | 161 -------------- .../Caster@UseSupportUnit-RoleSelected.png | Bin 3784 -> 0 bytes .../Caster@UseSupportUnit-SelectRole.png | Bin 2623 -> 0 bytes .../Medic@UseSupportUnit-RoleSelected.png | Bin 4869 -> 0 bytes .../Medic@UseSupportUnit-SelectRole.png | Bin 3316 -> 0 bytes .../Pioneer@UseSupportUnit-RoleSelected.png | Bin 4264 -> 0 bytes .../Pioneer@UseSupportUnit-SelectRole.png | Bin 2664 -> 0 bytes .../Sniper@UseSupportUnit-RoleSelected.png | Bin 4351 -> 0 bytes .../Sniper@UseSupportUnit-SelectRole.png | Bin 2799 -> 0 bytes .../Special@UseSupportUnit-RoleSelected.png | Bin 3637 -> 0 bytes .../Special@UseSupportUnit-SelectRole.png | Bin 2984 -> 0 bytes .../Support@UseSupportUnit-RoleSelected.png | Bin 3985 -> 0 bytes .../Support@UseSupportUnit-SelectRole.png | Bin 2999 -> 0 bytes .../template/SupportListAnalyzer-Elite-1.png | Bin 4352 -> 0 bytes .../template/SupportListAnalyzer-Elite-2.png | Bin 4559 -> 0 bytes .../template/SupportListAnalyzer-Friend.png | Bin 13149 -> 0 bytes .../SupportListAnalyzer-NonFriend.png | Bin 13518 -> 0 bytes .../Tank@UseSupportUnit-RoleSelected.png | Bin 4666 -> 0 bytes .../Tank@UseSupportUnit-SelectRole.png | Bin 3700 -> 0 bytes resource/template/UseSupportUnit-Enter.png | Bin 2647 -> 0 bytes .../template/UseSupportUnit-MaxSpecLvl.png | Bin 1739 -> 0 bytes resource/template/UseSupportUnit-Refresh.png | Bin 2311 -> 0 bytes .../UseSupportUnit-RefreshCooldown.png | Bin 2227 -> 0 bytes .../template/UseSupportUnit-SelectSkill.png | Bin 747 -> 0 bytes .../Warrior@UseSupportUnit-RoleSelected.png | Bin 4061 -> 0 bytes .../Warrior@UseSupportUnit-SelectRole.png | Bin 2697 -> 0 bytes src/MaaCore/Common/AsstBattleDef.h | 32 +-- src/MaaCore/MaaCore.vcxproj | 4 - src/MaaCore/MaaCore.vcxproj.filters | 12 -- src/MaaCore/Task/Interface/CopilotTask.cpp | 7 +- .../Miscellaneous/BattleFormationTask.cpp | 83 +------- .../Task/Miscellaneous/BattleFormationTask.h | 41 +--- .../Task/Miscellaneous/CreditFightTask.cpp | 4 +- .../UseSupportUnitTaskPlugin.cpp | 196 ------------------ .../Miscellaneous/UseSupportUnitTaskPlugin.h | 81 -------- .../Vision/Battle/SupportListAnalyzer.cpp | 95 --------- .../Vision/Battle/SupportListAnalyzer.h | 45 ---- src/MaaMacGui | 2 +- src/MaaWpfGui/Main/AsstProxy.cs | 7 - src/MaaWpfGui/Res/Localizations/en-us.xaml | 1 - src/MaaWpfGui/Res/Localizations/ja-jp.xaml | 1 - src/MaaWpfGui/Res/Localizations/ko-kr.xaml | 1 - src/MaaWpfGui/Res/Localizations/zh-cn.xaml | 1 - src/MaaWpfGui/Res/Localizations/zh-tw.xaml | 1 - tools/TaskSorter/TaskSorter.py | 4 - 45 files changed, 24 insertions(+), 755 deletions(-) delete mode 100644 resource/template/Caster@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Caster@UseSupportUnit-SelectRole.png delete mode 100644 resource/template/Medic@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Medic@UseSupportUnit-SelectRole.png delete mode 100644 resource/template/Pioneer@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Pioneer@UseSupportUnit-SelectRole.png delete mode 100644 resource/template/Sniper@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Sniper@UseSupportUnit-SelectRole.png delete mode 100644 resource/template/Special@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Special@UseSupportUnit-SelectRole.png delete mode 100644 resource/template/Support@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Support@UseSupportUnit-SelectRole.png delete mode 100644 resource/template/SupportListAnalyzer-Elite-1.png delete mode 100644 resource/template/SupportListAnalyzer-Elite-2.png delete mode 100644 resource/template/SupportListAnalyzer-Friend.png delete mode 100644 resource/template/SupportListAnalyzer-NonFriend.png delete mode 100644 resource/template/Tank@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Tank@UseSupportUnit-SelectRole.png delete mode 100644 resource/template/UseSupportUnit-Enter.png delete mode 100644 resource/template/UseSupportUnit-MaxSpecLvl.png delete mode 100644 resource/template/UseSupportUnit-Refresh.png delete mode 100644 resource/template/UseSupportUnit-RefreshCooldown.png delete mode 100644 resource/template/UseSupportUnit-SelectSkill.png delete mode 100644 resource/template/Warrior@UseSupportUnit-RoleSelected.png delete mode 100644 resource/template/Warrior@UseSupportUnit-SelectRole.png delete mode 100644 src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.cpp delete mode 100644 src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.h delete mode 100644 src/MaaCore/Vision/Battle/SupportListAnalyzer.cpp delete mode 100644 src/MaaCore/Vision/Battle/SupportListAnalyzer.h diff --git a/resource/tasks.json b/resource/tasks.json index 46f02c4e8d..4c819e6734 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -3596,167 +3596,6 @@ ["^资深.+", "资深干员"] ] }, - "UseSupportUnit-Enter": { - "doc": "通过点击编队界面右上角 <助战单位> 文字左边的 Icon 进入助战列表", - "roi": [1023, 314, 46, 50], - "action": "ClickSelf", - "next": ["UseSupportUnit-Enter@NextAfterLoadingText", "UseSupportUnit-InSupportList"] - }, - "UseSupportUnit-InSupportList": { - "doc": "通过识别右上角 <更新助战列表> 文字左边的 Icon 或者 冷却倒计时左边的 Icon 判断是否已进入助战列表", - "template": ["UseSupportUnit-Refresh", "UseSupportUnit-RefreshCooldown"], - "roi": [1096, 12, 61, 52] - }, - "UseSupportUnit-RefreshSupportList": { - "doc": "更新助战列表,如果识别到冷却倒计时则等待倒计时结束后再点击 <更新助战列表> 按钮", - "algorithm": "JustReturn", - "next": ["UseSupportUnit-Refresh", "UseSupportUnit-RefreshCooldown"] - }, - "UseSupportUnit-Refresh": { - "roi": [1096, 12, 61, 52], - "preDelay": 500, - "action": "ClickSelf", - "next": ["UseSupportUnit-Refresh@NextAfterLoadingText", "Stop"] - }, - "UseSupportUnit-RefreshCooldown": { - "roi": [1096, 12, 61, 52], - "postDelay": 1000, - "next": ["UseSupportUnit-RefreshSupportList"] - }, - "UseSupportUnit-LeaveSupportList": { - "doc": "如果已经进入助战列表则点击左上角箭头图标返回编队界面", - "algorithm": "JustReturn", - "next": ["UseSupportUnit-LeaveSupportList-InSupportList", "Stop"] - }, - "UseSupportUnit-LeaveSupportList-InSupportList": { - "baseTask": "UseSupportUnit-InSupportList", - "template": ["UseSupportUnit-Refresh", "UseSupportUnit-RefreshCooldown"], - "next": ["UseSupportUnit-ReturnButton"] - }, - "UseSupportUnit-ReturnButton": { - "baseTask": "ReturnButton", - "template": ["Return.png"], - "next": ["UseSupportUnit-LeaveSupportList#next"] - }, - "UseSupportUnit-Role": { - "doc": "模版任务: 招募助战干员时选择职业,若当前职业正确则不进行额外操作", - "algorithm": "JustReturn", - "next": ["UseSupportUnit-RoleSelected", "UseSupportUnit-SelectRole"] - }, - "UseSupportUnit-RoleSelected": { - "doc": "模版任务: 招募助战干员时通过深色背景的职业图标判断当前职业是否正确,Ccoeff 应该够用,若出问题可以考虑换为 RGBCount", - "template": "empty.png", - "roi": [20, 93, 73, 608] - }, - "UseSupportUnit-SelectRole": { - "doc": "模版任务: 招募助战干员时通过点击浅色背景的职业图标切换职业", - "template": "empty.png", - "roi": [20, 93, 73, 608], - "action": "ClickSelf", - "next": ["UseSupportUnit-Role@NextAfterLoadingText"] - }, - "Pioneer@UseSupportUnit-RoleSelected": {}, - "Pioneer@UseSupportUnit-SelectRole": {}, - "Warrior@UseSupportUnit-RoleSelected": {}, - "Warrior@UseSupportUnit-SelectRole": {}, - "Tank@UseSupportUnit-RoleSelected": {}, - "Tank@UseSupportUnit-SelectRole": {}, - "Sniper@UseSupportUnit-RoleSelected": {}, - "Sniper@UseSupportUnit-SelectRole": {}, - "Caster@UseSupportUnit-RoleSelected": {}, - "Caster@UseSupportUnit-SelectRole": {}, - "Medic@UseSupportUnit-RoleSelected": {}, - "Medic@UseSupportUnit-SelectRole": {}, - "Support@UseSupportUnit-RoleSelected": {}, - "Support@UseSupportUnit-SelectRole": {}, - "Special@UseSupportUnit-RoleSelected": {}, - "Special@UseSupportUnit-SelectRole": {}, - "UseSupportUnit-SwipeToTheLeft": { - "baseTask": "SwipeToTheLeft", - "postDelay": 1000 - }, - "UseSupportUnit-SwipeToTheRight": { - "baseTask": "SwipeToTheRight", - "postDelay": 1000 - }, - "UseSupportUnit-MaxSpecLvl-1": { - "template": "UseSupportUnit-MaxSpecLvl.png", - "roi": [736, 251, 24, 22] - }, - "UseSupportUnit-MaxSpecLvl-2": { - "template": "UseSupportUnit-MaxSpecLvl.png", - "roi": [851, 251, 24, 22] - }, - "UseSupportUnit-MaxSpecLvl-3": { - "template": "UseSupportUnit-MaxSpecLvl.png", - "roi": [966, 251, 24, 22] - }, - "UseSupportUnit-SelectSkill-1": { - "template": "UseSupportUnit-SelectSkill.png", - "action": "ClickSelf", - "roi": [781, 320, 66, 38] - }, - "UseSupportUnit-SelectSkill-2": { - "template": "UseSupportUnit-SelectSkill.png", - "action": "ClickSelf", - "roi": [900, 320, 64, 38] - }, - "UseSupportUnit-SelectSkill-3": { - "template": "UseSupportUnit-SelectSkill.png", - "action": "ClickSelf", - "roi": [1010, 320, 70, 38] - }, - "UseSupportUnit-Confirm": { - "doc": "识别 <招募助战> 文字并点击", - "baseTask": "RecruitSupportConfirm" - }, - "UseSupportUnit-Cancel": { - "doc": "若识别到 <招募助战> 文字就点击屏幕下方取消选择", - "baseTask": "RecruitSupportConfirm", - "action": "ClickRect", - "specificRect": [640, 700, 0, 0], - "postDelay": 500 - }, - "SupportListAnalyzer-Flag": { - "doc": "识别每个助战干员栏位底部的 Icon,后续根据相对位置识别其他信息", - "template": ["SupportListAnalyzer-Friend.png", "SupportListAnalyzer-NonFriend.png"], - "roi": [95, 570, 1185, 90], - "method": "RGBCount", - "colorScales": [ - [ - [150, 0, 0], - [255, 255, 255] - ] - ] - }, - "SupportListAnalyzer-NameOcr": { - "doc": "若助战干员栏位底部 Icon 的 Rect 为 r, 则干员名识别用 roi 为 [r.x + roi.x, r.y - roi.y, roi.w, roi.h]", - "baseTask": "CharsNameOcrReplace", - "roi": [0, -37, 129, 37] - }, - "SupportListAnalyzer-Elite": { - "doc": "若助战干员栏位底部 Icon 的 Rect 为 r, 则干员精英化等级识别用 roi 为 [r.x + roi.x, r.y - roi,y, roi.w, roi.h]", - "template": ["SupportListAnalyzer-Elite-2", "SupportListAnalyzer-Elite-1"], - "roi": [35, -187, 60, 50], - "templThreshold": 0.7, - "method": ["RGBCount", "RGBCount"], - "colorScales": [ - [ - [250, 250, 250], - [255, 255, 255] - ] - ] - }, - "SupportListAnalyzer-LevelOcr": { - "doc": "若助战干员栏位底部 Icon 的 Rect 为 r, 则干员等级识别用 roi 为 [r.x + roi.x, r.y - roi,y, roi.w, roi.h]", - "baseTask": "NumberOcrReplace", - "roi": [76, -130, 45, 20] - }, - "SelectSupportConfirmToFormationPage": { - "baseTask": "BattleQuickFormationConfirm", - "template": "BattleQuickFormationConfirm.png", - "next": ["UseSupportUnit-Enter"] - }, "RecruitRefresh": { "action": "ClickSelf", "roi": [850, 340, 220, 170], diff --git a/resource/template/Caster@UseSupportUnit-RoleSelected.png b/resource/template/Caster@UseSupportUnit-RoleSelected.png deleted file mode 100644 index 1a34af9941be000a03cfadd6e901e5edbd20d796..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3784 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 yeElm%do diff --git a/resource/template/Caster@UseSupportUnit-SelectRole.png b/resource/template/Caster@UseSupportUnit-SelectRole.png deleted file mode 100644 index 9f046e879825e4216f0faf32ce4391ec551dcd97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2623 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 diff --git a/resource/template/Medic@UseSupportUnit-SelectRole.png b/resource/template/Medic@UseSupportUnit-SelectRole.png deleted file mode 100644 index f18b298ff07284e85b3c4ade97cb13918ce7eb89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3316 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 KMNUMnLSTaQ>NFt$ diff --git a/resource/template/Pioneer@UseSupportUnit-SelectRole.png b/resource/template/Pioneer@UseSupportUnit-SelectRole.png deleted file mode 100644 index 5c03b45ecd5d916ea4d15549bcd7d60485db7591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2664 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 diff --git a/resource/template/Sniper@UseSupportUnit-RoleSelected.png b/resource/template/Sniper@UseSupportUnit-RoleSelected.png deleted file mode 100644 index 2a88813d16344d8007732018d6d5d3887f9bca71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4351 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 diff --git a/resource/template/Sniper@UseSupportUnit-SelectRole.png b/resource/template/Sniper@UseSupportUnit-SelectRole.png deleted file mode 100644 index 7299ede5b011de8eb294876487dda4a14db06edb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2799 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 Bj-CJj diff --git a/resource/template/Special@UseSupportUnit-RoleSelected.png b/resource/template/Special@UseSupportUnit-RoleSelected.png deleted file mode 100644 index d9742b8e585771646b1cb1c2b67eb299a9469c7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3637 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 Hu0mjf{4xi2 diff --git a/resource/template/Special@UseSupportUnit-SelectRole.png b/resource/template/Special@UseSupportUnit-SelectRole.png deleted file mode 100644 index 642f9fe05b22d5359ce2c997d2fb543418fa0ca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2984 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 diff --git a/resource/template/Support@UseSupportUnit-SelectRole.png b/resource/template/Support@UseSupportUnit-SelectRole.png deleted file mode 100644 index fab16d047a2f67f2c43a86b1f57a8b42b7204cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2999 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

@*A~Cu$N-YCr;MlO!&ii)BZ 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 DBv<+L diff --git a/resource/template/SupportListAnalyzer-NonFriend.png b/resource/template/SupportListAnalyzer-NonFriend.png deleted file mode 100644 index 3d1ba82a90c658bc95e232bf406b703f584057d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13518 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 wr~}8pJz;jG>wf=X_u$}*&-dMLArJ@%f)I2- zs6qUw8=aZrAnnzE|-hWC^(>4H%b>wn1(-+ihmkQtplMl__!V+#67YN8N;O*CxvZV%5ZC%CY^4XG5XlfyIepGxdYX3o`V)^LrpH1 z!H zJcL)^N|}d;hx_~cR4PSMk*9#!kQiD8F*G3AY&IH=rqk(KOWUQ5obh_Sr>CbW3$PK7 zhz%H%C$!mQ4))^w{Cs6)Wps3OYilbI2w({r#goaNQwM7J^z?Lca^my(GMNmL?e&cn zK0iP2@9(?a?qDzodFX}lBkKU7TPPHe6a)cfP&F_x@Xo^g{QTkJVJsGtEuf4Cl3q)i z>QE@Oy}gYc#MYpUx$(faSQ{~*#o=&xZEbCCZtn8(5}Qi-WHJfa*yeaVj`-~CY++%c zx3{;iuWxmA)#LFjEiLu*^b8ITZfyu9r9`;h^Uy}iA$v9a0N*~!UCTt`Mm`uqFG$H$M4k0X%? zWTSFpV`F%DcxY${W=>B}qikwwYJGhj4uccg9vvM`OiaMu-__em%M@uA1>i*d0j|VZ zaaNo_RB&O71ByGRg`(hq=)ws_5yTl0XUkbpP|+%FhlS#%=!FxXh;~CsqfJqZ{we*? z2VR0ONwmz&w(lZ|FY=Ad_r$sP+#&LN{`|QiPrSVbuWddVR0WtTOGwHYinwm4?YnAx*u|K-018^3z??3rD@c=3WCIxu6qdGqF~RjVuj&zh-Ir-EmhDV06k zy?YnELYj~uGhgSmDz>eyp1WCKG|ip`QUU2tvEkt3$B#mecRhLXgp00Tz54$B`zWXT^u5?>wMEVpt|DmY5=i3Bwr0$j!4;P;U(Tbzpoj5H z=PBgKkt5HXIU}Md3T)n;HEWiu;IdcS|Ge|ym?3iTe>mo3n;;mo2_peHefo6ox)9DCJ9dB}mErL8 z>C?-WErW3Q@Zl5%D)z0|{$&5=nkaH&kK>6h{9uphlR^1_W?Z{=&F;}<_g=xn8!GSy z+lUb(rcIj$8wr^(VZz?Mdj;y_$B#|(C68CHUg5A;uU zCf&Pt&sSs{-QcZE)N@B+<56Isi@3{a!-fqb9ztuuf(2oQLptDN61RPC+_(`=Xc+*o z;ghb&lQ7dE@`Fhi0vv~QE8Byu^)-p?Bmj$PiG7Hl2M-=_#l?#kj~+dG*REYCLPA0g zfSEIA!b4!ho3OM7Fqrx6(4j-c7?~Ajg9i`BSdzO1uqCRy#9K&%EeD`tX~2L1_VMP; zncd9ry0to2Kb{)~{cW6DrRqWiY$}MozE?b99nV@;%t1H2wScr$f@W+>JwiE3J!3 zw9D+$Om1j5u$485H_!6Uo;}-WG?Wwyt~G1czyOt#aMJw@Tpiy>XYB-5O~6`U%!5G0RNN^2&Qaa@=Z6e zmC;T7L|dt%A3uIPt^4%plb%}4*uC4Yk_tZ*1$DL#3`qEK#(5UcB$7f-lE9nFMog-? z+?uy<-Gu%Okp zi7PHWXwV>UaZb7duv??eiDH4*C7;Y|oKpj$PodZHHJ_y5!N$i^<}Imkx{eJ(^K3nFgiYdho7BxIgPP*8f%apIMZxgKqX?rGuBWHx;>C;hO%=>= z)b*x4NdSQ)>Ox)oGdY0or7I_xd>e;)b}Pv*hv$%~@0xC-gSnfjOJ2WzEoGz5jDS31 zNfyo+OUG&Jqy>yXLKI;H6^#l=Wv60Anob1HpFf{S5+@w0o+Z!BNI0i&Y$|E(#8$1! za{!z6lxwLKZA-rc075vJ6nyK}Er1;$kR_Fa=MuXYlM)7~sX5&sEgY#7wBaoibqC$R z7ChDjC*HIjwe9~o^kmd(cN-fc4(?X7B>b@bdQ4y7jQCGfg+qOG*?#O-`>LW*v&b-=+Gf2bvklmCX*%2l;7CZT+wlx<1Ic3Ug>la@oFw5vRur~ z3>r|!$0WLi3l}0Mb(ShDxsKP#9I9kj(Hnj!rx`2pNgu_)%WyJyO2ynk-tuJ3vfvc@ zS~417)-ODWwY#o^CK&p+sEb7Bm|7%>r{)5l+yh1rt#>BFX8!EMjr3>=m@<>23;MKWnZXf;; zOLCPaIT`j?M|9G87VihZ87>Ey1f`v^(eljAThf%IY))+J03bx+Yp;Bd*a$EKA4CaG zmy=NVeR%GU&v&`hFRzfFTANe*wPZW7v6TM^R4dVLPNf;iLvZiLZ@CsZQ30cr^dU{> z0zW5IQoE3@3PMTGz$cHOyq0OCkK*JKozaWCkYHsv=@|XrNDlh7c>%>)|%lh(wKfeHQcf_iEXjx|Uoyc$X64|%PR6M7g%(cOj z_367ZSLa|U7uCcn70Q_z1Q<3ANwl}NZ)ae3xz50vAn)Mw?rfLKl_;-zOYr!!WZUEn z59mDokg|oJoJL^mH8p-s7>eA-@@IZ7kie_SNjtHXkSl}AYPrB_3|Ggs9GD)OAmFNy zP!qs>LXAd?9W=$>T&khW2&(4H|J1Ud=9bcwmCZ9)8vX|pFbK2%%B-S^ zshGTW-}2S1zulf|95jCa{SWZG=0epy(`Cgz|1kEimX>V;ACR%e=g&_4;njkG(HCpa z%nR5*e^kr%YCE)To6n7av+?fTd+`QamgyInUp#8*WB+KM{rwBe$?vi3u)1fxVn8;2 z{`vlIzxiSDXJ2Hg$%m(v2$kh#2h?*`t(1@?+<*% SR=!&R0000000B&X+uL$X=7sm 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 diff --git a/resource/template/UseSupportUnit-RefreshCooldown.png b/resource/template/UseSupportUnit-RefreshCooldown.png deleted file mode 100644 index a44d9cebce75fc281cb610cfe255e2bca7774f30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2227 zcmV;k2u$~hP)o7?66Zl`Q&UL?FKsAk*`%Tgwb8w0v+cTBHoMUVK{m5zccwd; z9cO0Kv=kqTAc$a8@JaCgR`5xP_x8mWQ5q;wfv$LFQq4fNnX^kEQvW!W-f`Fs`t94-DgZhnst z09-lX=I?CuRk$Ssp}UA16-!IuSv99hjt{Y- zG^g9Va#|@qO?(gWYQ1r+K)jRq8+{=+JP zQ^X_0CsaFA^!$Z4t)FT&N6=1{S~}L&p{*6p%)o?gmWCRG~tn2!~G7q^WId4j`z>J9&=-E;aYbt1u}p zBQf+LniN&=2St^DE&+uyI%-{fycJyYeHv_lMcE;mhgp^#VdHE95_^I@$tGEnq7&@! z_OtoU8r}6=+xB@LO>kE?N4g7?w^63+FQjO|x^*vB2AjiP{H*z$Dqnu}`o%M!@9JpR z+3K@b`Y)ad^h||?dY7)v+^+ZGU&B|!>vY`+Z*~;nAH$pU+3jSR3sURL5l2;OhiT_M~SzUk$se#plb@S`LYcFiH32?RBMVYjYXr6 zNioCFxRlZ5gCkN|({QLX+`uh6$`T6+x`1kks_V)Jm_4V}h^z-xc^78WW@$vBR@bB;M?(XjG?d|OB z?Cb06>gww0>FMa`=;!C>=H}+*<>ln$yu7=+ySlo%xw*Nwx3{*owzajjv$M0Yv9YkQu&=MLuCA`Ft*xxA ztgEZ5si~=`sHmr>r>3T+rKYB&q@<&xqoSgsp`oFmprD_hpPrtcot>SWoSd7Ro0XN7 zl$4Z{lar2)j*X3tjEszni;Ieiiid}XhK7cPg@uHKgoA^Ff`Wp8fPjC0e|vj-dU|?! zd3kelb8>QWZ*OmIZfH{%0#r#vK~#9!Mbi5}Q*j)}@z1Gd_siL6Ot}=MQYxYdUEHa38HEy&%A(7ZbfL85 zlC;^9?QG}!`JV5Y>Gm&n4wKi9-{<4|eSCj-gBnr@yy&Sa%5okkzcIQLm*9UyicB=+ zTKV*hjJ!zpDW#G&gXQdR<;5mMevvWEe6~*}K;yt$} zt?bRZYKVbmld0-S2qX}qaiGGhR$f;z&4_~0ZmaJ6rvxIz#`?W064DhKu|2w zsCBD`7=OT<@2`Q^X`A>P14Ke2P1+*WfDkdCYx9H0>Yn)}Qc9IKn^T5B>MW&Cq1xCO zkj0pw{6AE$b$?85n%I+-^AIYH?I9K#xjWE5aHmvT@P1>vwUM zmp{c#yPa(xgc?)*vi#*_dbZ2u+UGhvwRJDvot66tx~v5sen;Lu_bHA0CRZg?4XaHj zp21kAb^K49$!dv&OhJiYB#*l^3$a7mt6?PDse~9CeILEv~ucTgKFO{{hl(?IZ-;FZuug002ovPDHLkV1i>8 BbfEwM diff --git a/resource/template/UseSupportUnit-SelectSkill.png b/resource/template/UseSupportUnit-SelectSkill.png deleted file mode 100644 index b0feb8a3a77aed43447ba64b130375923c707a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmVNscOs$kKQb{3M!cfHYNgxr1 z1sWv@W@QkzF&&=!mCmHBl)`3Cw?8812-4=8_p|ql?}P6rjb-+Nak5B5lA3cGbhiF_ z#+}Yw4k#*=O0_BxQl(6T`vZ`sLMXaqS4_Cz*jq|6?pqIPh-saL=o++5dboCHE~_OE z(||@wMyG1;H9eo{8k;uomTVdlDKr3JcObRLC2PjGOt{xf_ebp7no@wM)EXeQvF^x& zXSwsgso4#-wWo@yDg#K9T5~*kw?E6hOa$ZT!#c3FL0~LCs1c$e(jZP{YotA4ZY3(n zTlA>6P-o4jqsvD# zTTj(Dh>`>m0=v3gFkEyDWxH0Xa7+ltCI61-jd1R-gnN~cSD|M~*Vo@%UCkym&#P-~ z^wc8d+h&4sE*RJPV`5-O3`ODM7F>?-t`OUBjTJ>Ip>1|)?1j@8F$QB?vi_Lh-_eJ* zaA=dA3Gi**XGDX7=ZS=N^xDQ>cY8nU=Dz{?I}H59z9{3{W&@joyk0ppe52Z|Vwe() z%OIrF?9E(r8`t7E*>dk#M_=a1)OqhOun@)ahW?d|%~vRl%Mnr_w5PQ?#0xZcxsa_X zFf|kpJh9GhXcwaBU6|?^%wc&I0Gecz|BWC9v`|7z7c5QWVJBIv?fXnoJrJ z;BWr9C8Drad9&-ZYsu_etDN$3W-AF86@Vc1<#|0hFq}XCMVj=`wp&?D!#Fav< dgb@6%{{Z?_T)-yRt{?ya002ovPDHLkV1iyDWvT!G diff --git a/resource/template/Warrior@UseSupportUnit-RoleSelected.png b/resource/template/Warrior@UseSupportUnit-RoleSelected.png deleted file mode 100644 index 84f87f18969133590172d40ee6495e3422b4a8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4061 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 P00000NkvXXu0mjfyIS9# diff --git a/resource/template/Warrior@UseSupportUnit-SelectRole.png b/resource/template/Warrior@UseSupportUnit-SelectRole.png deleted file mode 100644 index 14bbace51bbec69f0d561f29a4325323a58989e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2697 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 RoleToName { - { Role::Warrior, { "近卫", "Warrior" } }, { Role::Pioneer, { "先锋", "Pioneer" } }, - { Role::Medic, { "医疗", "Medic" } }, { Role::Tank, { "重装", "Tank" } }, - { Role::Sniper, { "狙击", "Sniper" } }, { Role::Caster, { "术师", "Caster" } }, - { Role::Support, { "辅助", "Support" } }, { Role::Special, { "特种", "Special" } }, - { Role::Drone, { "无人机", "Drone" } }, + static const std::unordered_map RoleToName = { + { Role::Warrior, "近卫" }, { Role::Pioneer, "先锋" }, { Role::Medic, "医疗" }, + { Role::Tank, "重装" }, { Role::Sniper, "狙击" }, { Role::Caster, "术师" }, + { Role::Support, "辅助" }, { Role::Special, "特种" }, { Role::Drone, "无人机" }, }; - if (auto iter = RoleToName.find(role); iter != RoleToName.end()) { - return en ? iter->second.second : iter->second.first; + return iter->second; } - return "Unknown"; } } diff --git a/src/MaaCore/MaaCore.vcxproj b/src/MaaCore/MaaCore.vcxproj index 7e3889c2ed..95c3f965bc 100644 --- a/src/MaaCore/MaaCore.vcxproj +++ b/src/MaaCore/MaaCore.vcxproj @@ -114,7 +114,6 @@ - @@ -200,7 +199,6 @@ - @@ -304,7 +302,6 @@ - @@ -387,7 +384,6 @@ - diff --git a/src/MaaCore/MaaCore.vcxproj.filters b/src/MaaCore/MaaCore.vcxproj.filters index 04ab9d9fe1..a83810b404 100644 --- a/src/MaaCore/MaaCore.vcxproj.filters +++ b/src/MaaCore/MaaCore.vcxproj.filters @@ -441,9 +441,6 @@ Source\Task\Miscellaneous - - Source\Task\Miscellaneous - Source\Task\Miscellaneous @@ -734,9 +731,6 @@ Source\Controller - - Source\Vision\Battle - @@ -964,9 +958,6 @@ Source\Task\Miscellaneous - - Source\Task\Miscellaneous - Source\Task\Miscellaneous @@ -1236,8 +1227,5 @@ Source\Controller - - Source\Vision\Battle - \ No newline at end of file diff --git a/src/MaaCore/Task/Interface/CopilotTask.cpp b/src/MaaCore/Task/Interface/CopilotTask.cpp index 7227cb4647..c90e5bc942 100644 --- a/src/MaaCore/Task/Interface/CopilotTask.cpp +++ b/src/MaaCore/Task/Interface/CopilotTask.cpp @@ -64,8 +64,6 @@ bool asst::CopilotTask::set_params(const json::value& params) { LogTraceFunction; - using SupportUnitUsage = BattleFormationTask::SupportUnitUsage; - if (m_running) { return false; } @@ -87,8 +85,6 @@ bool asst::CopilotTask::set_params(const json::value& params) int select_formation = params.get("select_formation", 0); // 选择第几个编队,0为不选择 bool add_trust = params.get("add_trust", false); // 是否自动补信赖 bool add_user_additional = params.contains("user_additional"); // 是否自动补用户自定义干员 - auto support_unit_usage = static_cast( - params.get("support_unit_usage", static_cast(SupportUnitUsage::WhenNeeded))); // 助战干员使用模式 std::string support_unit_name = params.get("support_unit_name", std::string()); if (params.contains("add_user_additional")) { @@ -149,8 +145,7 @@ bool asst::CopilotTask::set_params(const json::value& params) m_formation_task_ptr->set_enable(with_formation && navigate_name.find("TR") == std::string::npos); m_formation_task_ptr->set_select_formation(select_formation); m_formation_task_ptr->set_add_trust(add_trust); - m_formation_task_ptr->set_support_unit_usage(support_unit_usage); - m_formation_task_ptr->set_specific_support_unit(support_unit_name); + m_formation_task_ptr->set_support_unit_name(std::move(support_unit_name)); if (auto opt = params.find("user_additional"); add_user_additional && opt) { std::vector> user_additional; diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index 14c631a4c2..292c825a1c 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -9,41 +9,10 @@ #include "Config/TaskData.h" #include "Controller/Controller.h" #include "Task/ProcessTask.h" -#include "UseSupportUnitTaskPlugin.h" #include "Utils/ImageIo.hpp" #include "Utils/Logger.hpp" #include "Vision/MultiMatcher.h" -asst::BattleFormationTask::BattleFormationTask( - const AsstCallback& callback, - Assistant* inst, - std::string_view task_chain) : - AbstractTask(callback, inst, task_chain), - m_use_support_unit_task_ptr(std::make_shared(callback, inst, task_chain)) -{ -} - -bool asst::BattleFormationTask::set_specific_support_unit(const std::string& name) -{ - LogTraceFunction; - - if (m_support_unit_usage != SupportUnitUsage::Specific) { - Log.error(__FUNCTION__, "| Current support unit usage is not SupportUnitUsage::Specific"); - return false; - } - - const battle::Role role = (m_specific_support_unit.role = BattleData.get_role(name)); - if (role == battle::Role::Unknown) { - // 无法根据干员名称获取其职业 - Log.error(__FUNCTION__, "| Invalid specific support unit"); - return false; - } - m_specific_support_unit.name = name; // 此处可能需要对阿米娅进行特殊处理 - // 之后在 parse_formation 中,如果发现这名助战干员,则将其技能设定为对应的所需技能 - m_specific_support_unit.skill = 0; - return true; -}; - bool asst::BattleFormationTask::_run() { LogTraceFunction; @@ -65,40 +34,13 @@ bool asst::BattleFormationTask::_run() add_formation(role, oper_groups, missing_operators); } - // 在有且仅有一个缺失干员组时尝试寻找助战干员补齐编队 - if (use_suppprt_unit_when_needed() && missing_operators.size() == 1 && !m_used_support_unit) { - // 之后再重构数据结构,先凑合用 - std::vector required_opers; - for (const battle::OperUsage& oper : missing_operators.front().second) { - // 如果指定助战干员正好可以补齐编队,则只招募指定助战干员就好了,记得再次确认一下 skill - // 如果编队里正好有【艾雅法拉 - 2】和 【艾雅法拉 - 3】呢? - if (oper.name == m_specific_support_unit.name) { - m_specific_support_unit.skill = oper.skill; - required_opers.clear(); - required_opers.emplace_back(m_specific_support_unit); - break; - } - required_opers.emplace_back(BattleData.get_role(oper.name), oper.name, oper.skill); - } - - // 先退出去招募助战再回来,好蠢 - confirm_selection(); - Log.info(__FUNCTION__, "| Left quick formation scene"); - if (m_use_support_unit_task_ptr->try_add_support_unit(required_opers, 5, true)) { - m_used_support_unit = true; - missing_operators.clear(); - } - // 再到快速编队页面 - if (!enter_selection_page()) { - save_img(utils::path("debug") / utils::path("other")); - return false; - } - Log.info(__FUNCTION__, "| Returned to quick formation scene"); - } - - // 在尝试补齐编队后依然有缺失干员,自动编队失败 if (!missing_operators.empty()) { + if (missing_operators.size() == 1) { + // TODO: 自动借助战? + } + report_missing_operators(missing_operators); + return false; } @@ -129,11 +71,11 @@ bool asst::BattleFormationTask::_run() } confirm_selection(); - if (m_support_unit_usage == SupportUnitUsage::Specific && !m_used_support_unit) { // 使用指定助战干员 - m_used_support_unit = m_use_support_unit_task_ptr->try_add_support_unit({ m_specific_support_unit }, 5, true); - } - else if (m_support_unit_usage == SupportUnitUsage::Random && !m_used_support_unit) { // 使用随机助战干员 - m_used_support_unit = m_use_support_unit_task_ptr->try_add_support_unit({}, 5, false); + // 借一个随机助战 + if (m_support_unit_name == "_RANDOM_") { + if (!select_random_support_unit()) { + return false; + } } return true; @@ -485,11 +427,6 @@ bool asst::BattleFormationTask::parse_formation() battle::Role role = BattleData.get_role(opers_vec.front().name); for (const auto& oper : opers_vec) { same_role &= BattleData.get_role(oper.name) == role; - - // (仅一次)如果发现这名助战干员,则将其技能设定为对应的所需技能 - if (oper.name == m_specific_support_unit.name && m_specific_support_unit.skill == 0) { - m_specific_support_unit.skill = oper.skill; - } } // for unknown, will use { "BattleQuickFormationRole-All", "BattleQuickFormationRole-All-OCR" } diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.h b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.h index 5addb3e8a2..96a7c869ad 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.h +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.h @@ -7,12 +7,10 @@ namespace asst { -class UseSupportUnitTaskPlugin; - class BattleFormationTask : public AbstractTask { public: - BattleFormationTask(const AsstCallback& callback, Assistant* inst, std::string_view task_chain); + using AbstractTask::AbstractTask; virtual ~BattleFormationTask() override = default; enum class Filter @@ -31,6 +29,8 @@ public: void append_additional_formation(AdditionalFormation formation) { m_additional.emplace_back(std::move(formation)); } + void set_support_unit_name(std::string name) { m_support_unit_name = std::move(name); } + // 设置追加自定干员列表 void set_user_additional(std::vector> value) { m_user_additional = std::move(value); } @@ -53,31 +53,6 @@ public: void set_data_resource(DataResource resource) { m_data_resource = resource; } - // ———————————————————————————————— - // 助战干员选择相关 - // ———————————————————————————————— - enum class SupportUnitUsage // 助战干员使用策略 - { - None = 0, // 不使用助战干员 - WhenNeeded = 1, // 如果有且仅有一名缺失干员则尝试寻找助战干员补齐编队, 如果无缺失干员则不使用助战干员 - Specific = 2, // 如果有且仅有一名缺失干员则尝试寻找助战干员补齐编队,如果无缺失干员则使用指定助战干员 - Random = 3 // 如果有且仅有一名缺失干员则尝试寻找助战干员补齐编队,如果无缺失干员则使用随机助战干员 - }; - - void set_support_unit_usage(const SupportUnitUsage& support_unit_usgae) - { - m_support_unit_usage = support_unit_usgae; - } - - // 是否在有且仅有一名缺失干员时尝试寻找助战干员补齐编队 - bool use_suppprt_unit_when_needed() const - { - return m_support_unit_usage == SupportUnitUsage::WhenNeeded || - m_support_unit_usage == SupportUnitUsage::Specific || m_support_unit_usage == SupportUnitUsage::Random; - } - - bool set_specific_support_unit(const std::string& name = ""); // 设置指定助战干员 - protected: using OperGroup = std::pair>; @@ -108,19 +83,11 @@ protected: std::make_shared>(); // 编队中的干员名称-所属组名 bool m_add_trust = false; // 是否需要追加信赖干员 std::vector> m_user_additional; // 追加干员表,从头往后加 + std::string m_support_unit_name; DataResource m_data_resource = DataResource::Copilot; std::vector m_additional; std::string m_last_oper_name; int m_select_formation_index = 0; int m_missing_retry_times = 1; // 识别不到干员的重试次数 - - // ———————————————————————————————— - // 助战干员选择相关 - // ———————————————————————————————— - std::shared_ptr m_use_support_unit_task_ptr = nullptr; - SupportUnitUsage m_support_unit_usage = SupportUnitUsage::None; - bool m_used_support_unit = false; // 是否已经招募助战干员 - // ———————— 以下变量为指定助战干员设置,仅当 m_support_unit_usage == SupportUnitUsage::Specific 时有效 ———————— - battle::RequiredOper m_specific_support_unit; }; } // namespace asst diff --git a/src/MaaCore/Task/Miscellaneous/CreditFightTask.cpp b/src/MaaCore/Task/Miscellaneous/CreditFightTask.cpp index faaaf89ecb..c7d50774d7 100644 --- a/src/MaaCore/Task/Miscellaneous/CreditFightTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/CreditFightTask.cpp @@ -23,7 +23,7 @@ asst::CreditFightTask::CreditFightTask(const AsstCallback& callback, Assistant* json::value copilot_params = json::object { { "filename", utils::path_to_utf8_string(ResDir.get() / "copilot" / "OF-1_credit_fight.json") }, { "formation", true }, - { "support_unit_usage", 3 }, + { "support_unit_name", "_RANDOM_" }, }; m_copilot_task_ptr->set_params(copilot_params); @@ -48,7 +48,7 @@ void asst::CreditFightTask::set_select_formation(int index) json::value copilot_params = json::object { { "filename", utils::path_to_utf8_string(ResDir.get() / "copilot" / "OF-1_credit_fight.json") }, { "formation", true }, - { "support_unit_usage", 3 }, + { "support_unit_name", "_RANDOM_" }, { "select_formation", index }, }; m_copilot_task_ptr->set_params(copilot_params); diff --git a/src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.cpp b/src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.cpp deleted file mode 100644 index dcd1c4f32a..0000000000 --- a/src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.cpp +++ /dev/null @@ -1,196 +0,0 @@ -#include "UseSupportUnitTaskPlugin.h" - -#include "Config/GeneralConfig.h" -#include "Config/Miscellaneous/BattleDataConfig.h" -#include "Controller/Controller.h" -#include "Task/ProcessTask.h" -#include "Utils/Logger.hpp" -#include "Vision/Matcher.h" - -bool asst::UseSupportUnitTaskPlugin::try_add_support_unit( - const std::vector& required_opers, - const int max_refresh_times, - const bool max_spec_lvl, - const bool allow_non_friend_support_unit) -{ - LogTraceFunction; - - // 通过点击编队界面右上角 <助战单位> 文字左边的 Icon 进入助战干员选择界面 - ProcessTask(*this, { "UseSupportUnit-Enter" }).run(); - - // 随机模式 - if (required_opers.empty()) { - return try_add_support_unit_for_role( - Role::Unknown, - required_opers, - max_refresh_times, - max_spec_lvl, - allow_non_friend_support_unit); - } - - // 非随机模式 - std::vector temp_required_opers; - for (size_t i = 0; i < 3; ++i) { - if (i >= required_opers.size()) { - break; - } - temp_required_opers.emplace_back(required_opers[i]); - if (try_add_support_unit_for_role( - required_opers[i].role, - temp_required_opers, - max_refresh_times, - max_spec_lvl, - allow_non_friend_support_unit)) { - return true; - } - } - - // 未找到符合要求的助战干员,手动退出助战列表 - Log.info(__FUNCTION__, "| Fail to find any qualified support operator"); - ProcessTask(*this, { "UseSupportUnit-LeaveSupportList" }).run(); - return false; -} - -bool asst::UseSupportUnitTaskPlugin::try_add_support_unit_for_role( - const Role role, - const std::vector& required_opers, - const int max_refresh_times, - const bool max_spec_lvl, - const bool allow_non_friend_support_unit) -{ - LogTraceFunction; - - // 从 required_opers 中筛除职业不为 role 的干员 - auto filtered_view = required_opers | views::filter([&](const RequiredOper& required_oper) { - return role == Role::Unknown || required_oper.role == role; - }); - std::vector filtered_required_opers(filtered_view.begin(), filtered_view.end()); - - // 若 role != Role::Unknown 则切换到对应职业的助战干员列表,否则保留当前职业选择 - if (role != battle::Role::Unknown) { - ProcessTask(*this, { enum_to_string(role, true) + "@UseSupportUnit-Role" }).run(); - } - - // 定位到助战列表最左侧第一页 - for (int i = 0; i < MaxNumSupportListPages - 1; ++i) { - ProcessTask(*this, { "UseSupportUnit-SwipeToTheLeft" }).run(); - } - - // 初始化变量 - SupportListAnalyzer analyzer; - std::unordered_set known_oper_names; - std::vector> candidates(filtered_required_opers.size(), std::nullopt); - - for (int refresh_times = 0; refresh_times <= max_refresh_times && !need_exit(); ++refresh_times) { - for (int page = 0; page < MaxNumSupportListPages && !need_exit(); ++page) { - // Step 1: 获取助战干员列表 - analyzer.set_image(ctrler()->get_image()); - // 未识别到任何助战干员,极有可能当前不在助战列表界面,报错退出 - if (!analyzer.analyze(known_oper_names)) [[unlikely]] { - Log.error(__FUNCTION__, "| Fail to analyze support list"); - return false; - } - std::vector support_list = analyzer.get_result(); - - // Step 2: 筛选助战干员列表 - for (size_t index = 0; index < support_list.size(); ++index) { - const SupportUnit& support_unit = support_list[index]; - known_oper_names.insert(support_unit.name); - - // 若 support_unit 满足以下筛选条件: - // 1. 当 max_spec_lvl == true 时,精英化等级达到 2; - // 2. 当 allow_non_friend_support_unit == false 时,必须满足 support_unit.from_friend == true; - // 且存在 filtered_required_opers[i] 与之匹配: - // 1. filtered_required_opers[i].name == name; - // 2. support_unit.elite >= filtered_required_opers[i].skill - 1; - // 则将 candidates[i] 设置为 index。 - if (max_spec_lvl && support_unit.elite == 2) { - continue; - } - if (!allow_non_friend_support_unit && !support_unit.from_friend) { - continue; - } - - // 若 role == Role::Unknown 则选择这名干员,使用其默认技能 - if (role == Role::Unknown) { - return try_use_support_unit_with_skill(support_unit, 0); - } - - for (size_t i = 0; i < filtered_required_opers.size(); ++i) { - const RequiredOper& required_oper = filtered_required_opers[i]; - if (role == required_oper.role && support_unit.name == required_oper.name && - support_unit.elite >= required_oper.skill - 1) { - candidates[i] = index; - } - } - } - - // Step 3: 依次点选筛选出的助战干员,根据需要判断技能是否为专三,并使用 - for (size_t i = 0; i < filtered_required_opers.size(); ++i) { - if (!candidates[i].has_value()) { - continue; - } - const RequiredOper& required_oper = filtered_required_opers[i]; - const SupportUnit& support_unit = support_list[candidates[i].value()]; - if (try_use_support_unit_with_skill(support_unit, required_oper.skill, max_spec_lvl)) { - return true; - } - } - - // 重置 candidate - candidates.assign(filtered_required_opers.size(), std::nullopt); - // 未滑到尾页,滑到下一页 - if (page < MaxNumSupportListPages - 1) { - ProcessTask(*this, { "UseSupportUnit-SwipeToTheRight" }).run(); - } - } // inner for loop to iterate through support list pages - // 重新定位到助战列表最左侧第一页 - for (int i = 0; i < MaxNumSupportListPages - 1; ++i) { - ProcessTask(*this, { "UseSupportUnit-SwipeToTheLeft" }).run(); - } - // 更新助战列表 - if (refresh_times < max_refresh_times) { - ProcessTask(*this, { "UseSupportUnit-RefreshSupportList" }).run(); - } - } // outer for loop to iterate until reaching refresh_times - return false; -} - -bool asst::UseSupportUnitTaskPlugin::try_use_support_unit_with_skill( - const SupportUnit& support_unit, - int skill, - bool max_spec_lvl) -{ - LogTraceFunction; - - // 点选被选择的助战干员 - ctrler()->click(support_unit.rect); - sleep(Config.get_options().task_delay); - ProcessTask(*this, { "Stop@LoadingText", "Stop" }).run(); - - if (skill != 0) { - if (max_spec_lvl) { - // 判断所需技能是否为专三 - Matcher max_spec_lvl_analyzer(ctrler()->get_image()); - max_spec_lvl_analyzer.set_task_info("UseSupportUnit-MaxSpecLvl-" + std::to_string(skill)); - if (!max_spec_lvl_analyzer.analyze()) { // 所需技能非专三 - // 取消选择 - ProcessTask(*this, { "UseSupportUnit-Cancel" }).run(); - return false; - } - } - // 选择技能 - ProcessTask(*this, { "UseSupportUnit-SelectSkill-" + std::to_string(skill) }).run(); - } - - // 确认选择 - ProcessTask(*this, { "UseSupportUnit-Confirm" }).run(); - - // callback - json::value info = basic_info_with_what("RecruitSuppportOperator"); - info["details"]["name"] = support_unit.name; - info["details"]["skill"] = skill; - callback(AsstMsg::SubTaskExtraInfo, info); - - return true; -} diff --git a/src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.h b/src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.h deleted file mode 100644 index c4d61d1b9c..0000000000 --- a/src/MaaCore/Task/Miscellaneous/UseSupportUnitTaskPlugin.h +++ /dev/null @@ -1,81 +0,0 @@ -// 助战干员选择插件 -#pragma once - -#include "Common/AsstBattleDef.h" -#include "Task/AbstractTask.h" -#include "Vision/Battle/SupportListAnalyzer.h" - -namespace asst -{ -class UseSupportUnitTaskPlugin : public AbstractTask -{ -public: - using AbstractTask::AbstractTask; - virtual ~UseSupportUnitTaskPlugin() override = default; - - using Role = battle::Role; - using RequiredOper = battle::RequiredOper; - using SupportUnit = SupportListAnalyzer::SupportUnit; - - bool try_add_support_unit( - const std::vector& required_opers = {}, - int max_refresh_times = 0, - bool max_spec_lvl = true, - bool allow_non_friend_support_unit = false); - -protected: - virtual bool _run() override { return true; }; - -private: - /// - /// 在职业 role 的助战列表中寻找一名列于 required_opers 中的干员并使用其指定技能; - /// 若 role == Role::Unknown 则忽视 required_opers,在当前职业的助战列表中随机选择一名干员并使用其默认技能。 - /// - /// 所需助战干员的职业。 - /// - /// 所需助战干员列表,当且仅当 role != Role::Unknown 时有效,默认其中的干员都属于职业 role。 - /// - /// 最大刷新助战列表的次数。 - /// 是否要求技能专三。 - /// 是否允许使用非好友助战干员。 - /// - /// 若成功找到并使用所需的助战干员,则返回 true,反之则返回 false。 - /// - /// - /// 默认已经点开助战列表; - /// 每次只能识别一页助战列表,因此最多会识别 MaxNumSupportListPages * (max_refresh_times + 1) 次; - /// 若识别到多个满足条件的干员,则优先选择在 required_opers 中排序靠前的干员; - /// 当 role == Role::Unknown 时因没有指定技能,max_spec_lvl == true 仅会要求助战干员的专精等级达到 2。 - /// - bool try_add_support_unit_for_role( - Role role = Role::Unknown, - const std::vector& required_opers = {}, - int max_refresh_times = 0, - bool max_spec_lvl = true, - bool allow_non_friend_support_unit = false); - - /// - /// 点选助战干员,判断技能是否为专三,并使用其 skill 技能; - /// 若 int == 0 则忽视 max_spec_lvl,并使用 support_unit 的默认技能。 - /// - /// 目标助战干员。 - /// 目标技能。 - /// 是否要求技能专三。 - /// - /// 若成功使用助战干员,则返回 true,反之则返回 false。 - /// - /// - /// 默认目标技能存在且已解锁。 - /// - bool try_use_support_unit_with_skill(const SupportUnit& support_unit, int skill = 0, bool max_spec_lvl = true); - - /// - /// 助战列表的总页数。 - /// - /// - /// 助战列表共有 9 个栏位,一页即一屏,屏幕上最多只能同时完整显示 8 名助战干员,因而总页数为 2。 - /// 注意助战列表页之间的内容重叠,可以基于“助战列表中不会有重复名字的干员”的假设优化。 - /// - static constexpr int MaxNumSupportListPages = 2; -}; -} // namespace asst diff --git a/src/MaaCore/Vision/Battle/SupportListAnalyzer.cpp b/src/MaaCore/Vision/Battle/SupportListAnalyzer.cpp deleted file mode 100644 index 7fce85dd9a..0000000000 --- a/src/MaaCore/Vision/Battle/SupportListAnalyzer.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "SupportListAnalyzer.h" - -#include "Config/TaskData.h" -#include "Utils/NoWarningCV.h" -#include "Vision/Matcher.h" -#include "Vision/MultiMatcher.h" -#include "Vision/RegionOCRer.h" - -bool asst::SupportListAnalyzer::analyze(const std::unordered_set& ignored_oper_names) -{ - LogTraceFunction; - - MultiMatcher flag_analyzer(m_image); - flag_analyzer.set_task_info("SupportListAnalyzer-Flag"); - if (!flag_analyzer.analyze()) { - return false; - } - - const auto& name_task_ptr = Task.get("SupportListAnalyzer-NameOcr"); - const auto& elite_task_ptr = Task.get("SupportListAnalyzer-Elite"); - const auto& level_task_ptr = Task.get("SupportListAnalyzer-LevelOcr"); - - RegionOCRer ocr_analyzer(m_image); - Matcher elite_analyzer(m_image); - - std::vector results; - for (const auto& [rect, score, templ_name] : flag_analyzer.get_result()) { -#ifdef ASST_DEBUG - cv::rectangle(m_image_draw, make_rect(rect), cv::Scalar(0, 255, 0), 2); -#endif - - // 干员名称 - const Rect name_roi = rect.move(name_task_ptr->roi); -#ifdef ASST_DEBUG - cv::rectangle(m_image_draw, make_rect(name_roi), cv::Scalar(0, 255, 0), 2); -#endif - - ocr_analyzer.set_roi(name_roi); - ocr_analyzer.set_replace(name_task_ptr->replace_map, name_task_ptr->replace_full); - if (!ocr_analyzer.analyze()) { - continue; - } - - const auto& name = ocr_analyzer.get_result().text; - // 如果干员名称出现在 ignored_oper_names 则忽视这个干员 - if (ignored_oper_names.contains(name)) { - continue; - } - - // 干员精英化等级 - const Rect elite_roi = rect.move(elite_task_ptr->roi); -#ifdef ASST_DEBUG - cv::rectangle(m_image_draw, make_rect(elite_roi), cv::Scalar(0, 255, 0), 2); -#endif - - elite_analyzer.set_task_info(elite_task_ptr); - elite_analyzer.set_roi(elite_roi); - int elite = 0; - if (elite_analyzer.analyze()) { - elite = (elite_analyzer.get_result().templ_name == "SupportListAnalyzer-Elite-2" ? 2 : 1); - } - - // 干员等级 - const Rect level_roi = rect.move(level_task_ptr->roi); -#ifdef ASST_DEBUG - cv::rectangle(m_image_draw, make_rect(level_roi), cv::Scalar(0, 255, 0), 2); -#endif - - ocr_analyzer.set_roi(level_roi); - ocr_analyzer.set_replace(level_task_ptr->replace_map, level_task_ptr->replace_full); - if (!ocr_analyzer.analyze()) { - continue; - } - int level = 0; - if (!utils::chars_to_number(ocr_analyzer.get_result().text, level)) { - continue; - } - Log.info(ocr_analyzer.get_result().text, level); - - SupportUnit support_unit { - .rect = rect, - .name = name, - .elite = elite, - .level = level, - .from_friend = (templ_name == "SupportListAnalyzer-Friend.png"), - }; - LogInfo << __FUNCTION__ << "| Found support operator from" - << (support_unit.from_friend ? "friend:" : "non-friend:") << support_unit.name << "with elite" - << support_unit.elite << "and level" << support_unit.level; - results.emplace_back(std::move(support_unit)); - } - - m_result = std::move(results); - return !m_result.empty(); -} diff --git a/src/MaaCore/Vision/Battle/SupportListAnalyzer.h b/src/MaaCore/Vision/Battle/SupportListAnalyzer.h deleted file mode 100644 index b92bb00750..0000000000 --- a/src/MaaCore/Vision/Battle/SupportListAnalyzer.h +++ /dev/null @@ -1,45 +0,0 @@ -#pragma once - -#include "Vision/VisionHelper.h" - -namespace asst -{ -class SupportListAnalyzer final : public VisionHelper -{ -public: - using VisionHelper::VisionHelper; - virtual ~SupportListAnalyzer() noexcept override = default; - - struct SupportUnit // 备选助战干员 - { - Rect rect; - std::string name; // 干员名称/代号 - int elite = 0; // 精英化阶段 - int level = 0; // 等级 - bool from_friend = false; // 是否为好友助战 - // SomeType modules // 模组 - // ———————— 以下字段仅在集成战略中有效 ———————— - int hope = 0; // 希望消耗 - int elite_after_promotion = 0; // 进阶后精英化阶段,仅在集成战略中有效, - int level_after_promotion = 0; // 进阶后等级,仅在集成战略中有效, - }; - - /// - /// 识别 m_image 中显示的助战列表页,忽视名字出现在 ignored_oper_names 中的干员。 - /// - /// 需要被忽视的干员的名字。 - /// - /// 助战列表共有 9 个栏位,一页即一屏,屏幕上最多只能同时完整显示 8 名助战干员。 - /// 基于“助战列表中不会有重复名字的干员”的假设,ignored_oper_names 参数用于筛除助战列表页之间的内容重叠。 - /// - /// - /// 返回识别到的助战干员列表。 - /// - bool analyze(const std::unordered_set& ignored_oper_names = {}); - - [[nodiscard]] std::vector get_result() const { return m_result; }; - -private: - std::vector m_result; -}; -} diff --git a/src/MaaMacGui b/src/MaaMacGui index 88f5ed0eea..355a6f195d 160000 --- a/src/MaaMacGui +++ b/src/MaaMacGui @@ -1 +1 @@ -Subproject commit 88f5ed0eeaa01a4d74a3d79b0a493b67d84c2165 +Subproject commit 355a6f195df6e1fcb212188d46457e611548bfba diff --git a/src/MaaWpfGui/Main/AsstProxy.cs b/src/MaaWpfGui/Main/AsstProxy.cs index 89898149c3..4d23577f22 100644 --- a/src/MaaWpfGui/Main/AsstProxy.cs +++ b/src/MaaWpfGui/Main/AsstProxy.cs @@ -1372,13 +1372,6 @@ namespace MaaWpfGui.Main break; } - case "RecruitSuppportOperator": - { - var name = subTaskDetails!["name"]!.ToString(); - Instances.TaskQueueViewModel.AddLog(string.Format(LocalizationHelper.GetString("RecruitSuppportOperator"), name), UiLogColor.Info); - break; - } - case "RecruitTagsSelected": { var selected = subTaskDetails["tags"] ?? new JArray(); diff --git a/src/MaaWpfGui/Res/Localizations/en-us.xaml b/src/MaaWpfGui/Res/Localizations/en-us.xaml index a0d5b15440..f8feb36212 100644 --- a/src/MaaWpfGui/Res/Localizations/en-us.xaml +++ b/src/MaaWpfGui/Res/Localizations/en-us.xaml @@ -728,7 +728,6 @@ The video aspect ratio needs to be 16:9 without interference factors such as bla Abort upload to Penguin Statistics No bonus stage, stopped Operators of the following operator groups are missing: - Add support unit: {0} Stage Queue: Unable to use PRTS Mission started diff --git a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml index 84527fe9e5..41cbc4d9dc 100644 --- a/src/MaaWpfGui/Res/Localizations/ja-jp.xaml +++ b/src/MaaWpfGui/Res/Localizations/ja-jp.xaml @@ -731,7 +731,6 @@ C:\\leidian\\LDPlayer9 Penguin-Statsへのアップロードをあきらめました ステージ報酬がないため停止します 次のオペレーターがオペレーターグループにありません: - サポートユニットを追加:{0} ステージキュー: 自動指揮利用不可 行動開始しました diff --git a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml index ba8f5dc763..4ab90b6dab 100644 --- a/src/MaaWpfGui/Res/Localizations/ko-kr.xaml +++ b/src/MaaWpfGui/Res/Localizations/ko-kr.xaml @@ -731,7 +731,6 @@ C:\\leidian\\LDPlayer9 펭귄 물류에 업로드 불가 EX 스테이지가 없어 중단되었습니다 다음 오퍼레이터들이 누락되었습니다: - 지원 유닛 추가: {0} 스테이지 대기열: 프록시 명령을 사용할 수 없습니다 행동 개시 diff --git a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml index 71b29d2b3e..1d0fba1d03 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-cn.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-cn.xaml @@ -730,7 +730,6 @@ C:\\leidian\\LDPlayer9。\n 放弃上传企鹅物流 无奖励关卡,已停止 缺少以下干员组中的干员: - 编入助战干员:{0} 关卡队列: 无法使用代理指挥 已开始行动 diff --git a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml index cc1315a995..05282e0d4e 100644 --- a/src/MaaWpfGui/Res/Localizations/zh-tw.xaml +++ b/src/MaaWpfGui/Res/Localizations/zh-tw.xaml @@ -730,7 +730,6 @@ C:\\leidian\\LDPlayer9。\n 放棄上傳企鵝物流 無獎勵關卡,已停止 缺少以下幹員組的幹員: - 編入助戰幹員:{0} 關卡隊列: 無法使用代理指揮 已開始行動 diff --git a/tools/TaskSorter/TaskSorter.py b/tools/TaskSorter/TaskSorter.py index cd763170d8..1c8a188034 100644 --- a/tools/TaskSorter/TaskSorter.py +++ b/tools/TaskSorter/TaskSorter.py @@ -6,8 +6,6 @@ from pathlib import Path def sort_tasks(res: dict[str, any]): # 暂时只对 Roguelike 和 Reclamation 任务进行类字典序排序,其他任务保持原有相对顺序 classified_lists = { - "UseSupportUnit...": [], - "...@UseSupportUnit...": [], "Roguelike...": [], "Roguelike@...": [], "Phantom@Roguelike...": [], @@ -24,8 +22,6 @@ def sort_tasks(res: dict[str, any]): unclassified_list = [] classify_rules: list[tuple[str, list]] = [ - (r"^UseSupportUnit", classified_lists["UseSupportUnit..."]), - (r"^(\w+)@UseSupportUnit", classified_lists["...@UseSupportUnit..."]), (r"^Roguelike@", classified_lists["Roguelike@..."]), (r"^Roguelike", classified_lists["Roguelike..."]), (r"^Phantom@Roguelike", classified_lists["Phantom@Roguelike..."]),