From 73bf9f4e2105b6b2e40b6089e9bf757307c4b8af Mon Sep 17 00:00:00 2001 From: uye <99072975+ABA2396@users.noreply.github.com> Date: Wed, 2 Oct 2024 14:29:13 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96=E7=BC=96=E9=98=9F?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=9B=BE=E7=89=87=EF=BC=8C=E8=AF=86=E5=88=AB?= =?UTF-8?q?=E4=B8=8D=E5=88=B0=E5=AF=B9=E5=BA=94=E8=81=8C=E4=B8=9A=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E6=97=B6=E5=9C=A8=20`=E5=85=A8=E9=83=A8`=20=E4=B8=AD?= =?UTF-8?q?=E5=AF=BB=E6=89=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 4 ++- .../template/BattleQuickFormationRole-All.png | Bin 1373 -> 2328 bytes .../BattleQuickFormationRole-Caster.png | Bin 1011 -> 2705 bytes .../BattleQuickFormationRole-Medic.png | Bin 1917 -> 3165 bytes .../BattleQuickFormationRole-Pioneer.png | Bin 1851 -> 2902 bytes .../BattleQuickFormationRole-Sniper.png | Bin 1394 -> 3074 bytes .../BattleQuickFormationRole-Special.png | Bin 1339 -> 2340 bytes .../BattleQuickFormationRole-Support.png | Bin 1507 -> 2471 bytes .../BattleQuickFormationRole-Tank.png | Bin 1628 -> 3515 bytes .../BattleQuickFormationRole-Warrior.png | Bin 1628 -> 2673 bytes .../Miscellaneous/BattleFormationTask.cpp | 2 +- tools/MaskRangeTool/main.py | 34 +++++++++--------- 12 files changed, 21 insertions(+), 19 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index 6267f93202..b4f113f54e 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -4437,8 +4437,10 @@ "template": "empty.png", "action": "ClickSelf", "roi": [1155, 41, 125, 679], + "method": "RGBCount", "templThreshold": 0.7, - "maskRange": [100, 140], + "colorScales": [[90, 150]], + "colorWithClose": false, "postDelay": 500 }, "BattleQuickFormationFilter": { diff --git a/resource/template/BattleQuickFormationRole-All.png b/resource/template/BattleQuickFormationRole-All.png index 3230307a52ad4a09a3edc4e6153d8ddda1403c99..bf34914c8d1655be2d663df2f8c17c95a2fd7142 100644 GIT binary patch literal 2328 zcmbVO3se(V8lH*>>!PJVIn;8>Y-E+PB$+(OV=z+Qr0XDthzPZ7n3+Hz$%M&30thT> zYZV&>7g(*(Lq%!Vt(GH?Lh52qd;vbNR0XM`2WX8P3u^JzmhMe}9J{BxJ==R`?%cVXIJ_(s5J-l}U2UIs-sM(27X2L51g%44g@3Y4kGIgtdzWYX})@T{wnd zh8QwilUPKPDMd+2yeJo!60FFT@Cq{u2y`T)g3UUu-iVrIEGI7t#*Sq!3wA=7Tp26M zArMZ(lHnMNCgE_7h>i1v5?Czd@I*pHAPR%|2v5pIBwU_=jqp%JgocaZ*~S9WXhMxD zV&i9Jftiez%`gU(%Qcxy9Fu@U(OF!cR0=rwTt1%-5Nu7_EdgIbLhFH>w(;5S# zq4cnWQI$#MGcp#?bjAdo!9}Y#&bkRWjB8dIxI7NxFv$rda2L*yPivjR37ku6Ngb(Y zi~!4XVGY?7Lm9KF|3dBB{+R&aS`2f^_(ffGI+q9|6ITGtn03f6qK(Qz1Ibm8Mk=4i z$+!Zb=2C|>1~i5yRSZQdDM~wcQOR>E!+c;h9I{TMCn%Hg)n^Wnu_}g?vG@pIz~&)r zM5yE=C|`sMMSnshD1yvDF^bTr3tdp56UtZe1ZX&TBtL_KkReoz>Q})8j;bkIrve6R zbgC?pYtU!0V3!-w7)ndgKrqlw@a(!gCMKDt)EX_=Fe(zFVR>APh$j_^*nAGpsV;`0 za=npJ>2XpXD`NrYa5NeM6$phqiCWBK6Pct0bV4;-f=k70i8vEi;{;!j$(PKXkEQT@ zM+nTFC;rd#t7#2LL6!D5^EeXI5j$w2#t3e;a5i;P$h_H+Rs%c31y$jWG?1}y$NiH8 zYj#=ln>{c?Ysw}8>Hmm}8JLk$GbR;HMr8qS{c7BCf%05O!p_*i{ZA8}d(R~I92`^( z$Iw-(z{FMTNIj@`nHWHLdw-4p9QOdNp?p9B%USbM76M5$Pw?1(apO8lJcRh=n zJ1@L2k%qUwJ;*6&9^0$zd75^0>phRh=OR_um4ub!S3EYLeSg1wduL?8lAR4PZ97iI zvu|SVZ}?i@IbnJp8QpjL(q7rXmSS1Q#G~&E%O)O7PcKLY?eXv}Fn@FR)ydB$r;ZnA zB}IL9;KDcGpU!OdK3P1dUH0Dj`enAf>gthBt95B*V(Y0fS{i8Cx3QprL#&v`baHNC`aP7CvY4h{&k8p_8c zdUZj~Av^cTU!GsEMIaC~Ek1PQ#jasW^qyP!Yhe$y#@vdDJDrT(w&`D=Sgk4jqYn!A z!(K%t!cM=6Q&ruKgFlppw$>*GpHmCuReMrW&YwT;W!q`7^o%OHPwu~PF(E!aJN?n) zd%L;`ABYqT2E8H+^{+5Zl;-!2RqZG%eA?37T-kWmyrRCF$WCwX=vW`(XX)Sgk6jTF z>rzuk6H4!YHM#j_fz>@~V0btvDCpuC9V}P)#jR1=KWv%4e=w=Z*L*|YzVxr_GBPf| z>1F#Q?BxoXQ8Ita=LnCtCbTx=vm>|O$lw}zx3yW zUkp<>&R)doHiUUD_Od}I3>OR^H)ZAJ<>9y+`B{lKNi zleZqdva3n)(F*fq-KtJ>`6i8BGL}$R=lO>|KRn*yY_J)32^o_*HiktV;K--VnpI4BdU$&VOOP zWyG`l;Ng+4r+=glzs0HV8o9UCcFS(J_n#~~Uiu@eI=Xrx6!7jhjSU%Ms;xyR77EXP zH8OSm%aGdFq2$n7Qkeek>7G1KZ@6!K>WkeW`jJm_N>>K%`sv}(>jT=h>FLs{;D#cJ zxA*)c?~}D+{Tt)<%FyM@oBaJP?+4eAxf$EwoU+r-rn9SvNX4~vQb4* zN7Dyx+$gPl-QBG`XR4=qwXQ7{3h}#tIU+jB*=}`>2F10luhmEF{nYXAB9BXoJrccf G^S=Ro0f~J8 delta 1355 zcmV-R1+@B@65R@rBYy=XNkl7rj9fSNsyE<=y1+o zn@qN#hBOHAWI+%$6V${_Yf#h_2Gw02q#AJFgR;Mt_<^9Bd4Kt&MieCLY8C}qyjL9(&+}y0Hs%D)4hzpiiR?KFL4rI1ioKBaJ!{OAJ z3|b5&naySsl7EFEil`I}!*aCv#j z(+dlWoSsL}SRypS1Q55i zwYA^e++1E>RaRD+)M#O*?3|pvy*>E;Qxu!ct^?U@w%glVB^+j*k&*fK_TJpwLQ(_` z=*P#$BYz_!lzD;{OR`w30R6^PRb9Qcwe|k~et39TQc{wdnueFU09ssHBJ2dCv8f4k z0W>x?w!gp6Uup$6V5Q3hONd zOG%*&YiepyFciW$9OXa8;f%~om&=V9*1T*=vq_;zRlU7^gM)+6@NnptmscqH1VGT( zR3M#6ijds=C8eb#uBD|#?tFPzgU(D6N=r{ym6lHWer9TuMNUpG{^aKu{AoagG#X?< z(SJb5?e+wNK?+k*!V?pd6bgA!G|S7&lY!RP*Po(|WZ{yaA%4t8%G~ew$82Pvh+jby z2PiEqjiJZH+uhxztG~X!C??jzNS_=b8Vw-2ucD$7jgOBL2_B-;5Mb(w5s+ZtNV3{& zNMed)jfKOBx%jQDsv=Vz9UTl@Ml*93zklVFK{GKq$xB6l5d)cKWMq^M$DfjtQsa$G z(9nlAOlFdR^yV)sD}$z`wN;vpNUtF&HkFas@B~4F8ysnBYKA-hmyn=|0m{wIWtiUl zv}<&IBSt>M^g7z=>l*|RG~hmI_V)Is(F{Vv1=3a@@6!w#yB!H8J!_0RLLCZ)f`37w zC<~y#FJ))v2%6E+(eRHSj0KNJ6`RA%%nTvy?(Syf5InKlCk9GVH(Ln^$tjbjk;Sm{ zk)YvvE{l8;anPjJ5EpRE|DD(23d0}_1mOMeTG*tZd;bUB(j()VYl1Y~1AM5)$OGDf zu*TvVqyn`+s3|B+YS8GM|BRrMW`BXk?}&qTIYy}1uPp*{4TDwziN@m^fGh#j?t-=& z1k;tK0O=Xh*8`dwq#8st$GD0xh;RNpDEWBI9-xP{T7VF%X;6N}E>>vGL9D4jdkuQu z1+CJ4py}N~XH8fkc{)VHcYbcaRC7#B-AyIPDhF9Ph%^dv&E^_}G^hk*r9_QU_6t!E zG_qd;GR+vnKw*Vong+cHRPUEIXa@Z>9|MgFBySnD>GT!L8+87e{{qsBDK|@t^$u6)$vLOj1pg{Es zDpnlmK@UWj;sCa%wNRA;PAOu`oybs6D^mP9K|x`z{1p|!dK(1B_UzAeXLk47?|Z)I zdH=q5c7J$S@T>N2_5c99Di4uHGH-9|&9Y^l`F-shnb&-MNVE|E92Qw`8=$1r6#(Y- zQYy7ctq8?5w3dStbS%lSX!Q&l0K{u7dR&u8n!s2xp3?b4Lyb)kND=joo(xfM9diqDY(kTWF z8I;PHxzg&59t$*(xQRBXXgX;&QQ@;DgDB%Q=(&l~5wzL3`ne6H6gQFn5DKGwHtfqr zeN_mPG64qj{{o9J7=8v-&;%8i_8b&}*)Xa?cvdJ6{RxyQ83H%qzX>KZSR8H8;*7(T z7LO;ndR;sO&V>;Rq?2d^Bg|OGdwyOX7#MD#-m|YqnO0an_pJ2yoVg+oG21QVu7t4o*!dZQ#fntszp7e)#tOwIt zJ6H&1WU`tzb96S4$upxQ3Y;z%4A)qXfj^|N=AR^>nQ7_;5%_%`Jfk%ykPPXs)WtKH zk&ZK&aRVudXQK6+b;tcB=CE^hXx;oyoVr2a_@IpR}Su9`gOhTpzJF@2lnfU87m|&xh?k0Xs_VO zKELP@4w{pj914u0y<;EtH{1MYQ)UIIxSO3luVc*7(Q&Hh@#A!~_&j_u<;ITFJ4&kh z)5`jzi|&fTDkE#W{}FTYa8>ll%~jEUV(}DUyK|d5I=Z;D^pv(c`N+kHmw^Q>pd2j@ zO)sk+eEjXVh1zaFZ!-OmfAYE`R2=G+YcQMlLdUkf|1aX3-8OcTo)OE5jor6y4fR|* z;p~}vb%&4Qa!zoLrp6VxGC1D7>#f7>4WBG?+}q#R$B=e7|9D&(8tNpm1-#p0U1d>G zip#6y1CNKcnY(tGwsuYmflnJ68qS`*?r{Fg z$pG;iOYHE3gkx`?`1s>oTwT9~^Fdo>;{DRh!(~;}+nwWYK&q(4b`qDbq)>!c zp;zIB!NJ6dkxP6jhoKwNYiG34R~g}_somGFOPz?gxVRlV{#`rZ=jT^0;fDr$6{e@9 z)z{Zk)$xMEi|tmp9UK)ao$lPNyyPK;@+}z|?fqlg)QwS51w?ewyxnigM@L6%9rjto zF(0YyvjZldM2)M8NO^%Yf^g00{k*ZUQMp1UlRbFw0DHoUiu#khfb1$SSqtiS?wnkG zetbNongy`3?=?3|N~%`p=1L(^US0jCQ~asF`Q?q-*Z}Sx9&R~!$)AB?arwGRY~beb zDwiNCD@qV_nO{Wu=C!~JT9Zp02h$t-)tydXXv}6|ai|P(&Y8c#g>;p*?rUyt&O0M( zb6>uEksX3z7iyDW*Ru@`0}GrF%GMkLfUTV^xGW+^8j;j`>79GIUn)7($?k8qp{>a_ z?oAW7tCl@#-dX-$6;D=RpI%XU0TMC^qBMm!ybD)FVuR= zp}b!9!j`g?09Z|lJA#i!#5jfQd6aqN!Amwk{gynkEC2TGkW~Q%#QR5;tXt0Z*+14V zK`%}kk7u!fZ&Hp_1k|W6Hib3asNDQ?#rIpk$b7QlG9Lh0Jtt~UD$jLvbuDeHefaR< gkr=BYy+BNklfkne{jy($&`&Y zMoqF4l5@d1XRK$mq?8bXaakdRVA+7?`~I(a-|~H)H?v<33XViU6#bAjf?;gi$=J4S zdwzRQx+i0$kzQ5IKK-iht$NQw{DI{(d5n zD3*#XLS(a9lYiMvf_jBuVPryl{P-3GDW?MB@%Z-6_OTFqdwV@SJ!XL;lgZQqVtRUd zeSJL|jUF8xU0q#WUS3{YT=2ZBtIK3EHJePNLv@ImnHeA=kqDJ|3qeq=E|<$_G#ZGS zL2!Q`Vt#(!?RM7)f^=|Ta^Kk0h%ua30=)o1n*4r0dVf(D0&AiIu!LML$5BTs(ca$9 z%UnLcy1Gi)vLq@(5SSn;Wj$~O0-8iJiD-R39}rk4DWg19gz$Jgh_F~JVoj%~rzb)n zR04tIYXdlq=?d^0rO<_LmqF5G8R17ssg4BXo zT3WikzJDec=}h`51og-_;UGI`nDx-{gpK7!2~xQwV}L86zs|kyaQ2Kk$0JFHTlKRD$P-2zOswTf@YZgea9tn9_S7 zC`!JAxlurrb0`$1K9qsLuo>^(2|)-Z+a^wafpEJ5e@=n(e!0Oh*eoF1nRI_ZFE|i4wD$I82hgp0s;|&laK~sG}htt ztOO90D)z6}8ze$dmC_*4r^tbGz=3WPiKIjbrrB2@46j0PX#LS`7l)J4&L`SMi*2+m&Qz)a!r`TXiY{Cs<;;met9mT`$46lSOm1nSV~^|VIn zV|r$Wor^XQNR;m|x?*MQx#7?T0%`C*{#SvSQXlLz`Hlt<1W#hIG6y9>g0z7^9pAov zXFdgjDMT{})S=Vq*)GtrUxp9~U{DR>zB+zQlKPH-xnL+bLI&Lt0NKFh7hB&{;Q#;t M07*qoM6N<$f@tu`00000 diff --git a/resource/template/BattleQuickFormationRole-Medic.png b/resource/template/BattleQuickFormationRole-Medic.png index cf232025e94ae196bd5df97cd3e1415e51c670fc..c06040f278c2c644844e8ebd8bded8f804aba8cb 100644 GIT binary patch literal 3165 zcmbVP4LDTk9zV5gYL{GVnUyj-O_IzfX3Qys8O>NTzGfMAR*sot4D)5?_)bY-sY&XR zO1YF;x20{h*d&!LwS`BNMOcefTZ&2&)}E0(?S1y%eeS-`bLPC~eSiP2-~Z!zCd-$% z*>IV~G5`P!Ic%ms`nJV333&R27ryO2`Wew4I|iaSRz$8J?Cwq zU(UEl1W|z`Qha2rCW^W1f&dMQiwpDwyOCYm~8S z5zLB1-CV7UMg@APVF*#G`AVhiO`?3?xQwNuQDbd_qzbVzUbF5k0hkFPurrQIraBPF z3<8zGr=TgLfmGUhvJ*%qzlL&^VrfL;TTlv_K&J93_ByEJAE9W;h#>^}OR!i3Mkv*C z2n|>&ha@mbrI6sT3p9crN|{oP8b-adfBT%{;o+-RMo4Aog~orgJC?)ppivk!8i7ir z%(=_uf*gegffOQ`!*s@> zkq*6)XDUUpx)OLJFaAH}ebiF41tHnr)}w1oUG0EusRqqz;(Y4_z%lbXnG`!$E+8b* zwShBEq{}}n#?2o~|26}!)y7A{sM7yY7q4L&WdsrrsbMz>%GO`j9SL=wq-)sMaghEq z#JRh-n)?kLofx|9!l*(&7KRP-fKcSkr(H@+Z!M9`zTEm+~Ybg3SD zDPhYRnb(eN;yGD#5LD)GIqp?^f!Fwv#Io+inX#@Fb*+~_BAu(f`=HsT+bq8I-!uPe zzpE{MkFcyfKUgo{Eb?inxM{^Z=^=f)>qg^qIn9a9iQ9%J!C}4BGcU~-bxp8~T81a4 zI&-dzsU2sw^!4%C0ajotT_lyROF~L{{ow#<%5~`>tiZv*S{KLuPe# zwYj3$!73;iO5in)onzmp5OPY?b%ymlZKs{ znZa{zJIvf~J$~&IX{xe5wxDU{5+lofUZr+74>uic;t0wE)7>wBWSoXQ-uh!#S68n> z_}OPi3k#?1#*H!?!pH(Uvu{HT-DV34@miN6lBLlTuPY;Q4-wFBqX-jGZAHdBx6oQ2 zxWUBb){!xmmJWx!L&^iK5A4WkH3T;KwMTtR!%-X^@7%o`SjOMuxjJp@ZI0S&tO7mKV`!1%e-)~+klF4q3#GUdltEeEB2d*#FXZaoF zNyr!rOzO_7;XAPG6Bk3u=PXm`^p0J6Kv-1NGC(!`GA6r(ybkri^78VI(3KTmeFXr#LMP~~z`??h+lJGI#|zIRS>3U_j=h)e zUhK=pm$gQw7kQQXzf2r%UYR@H)pfY_M@41lwrR@fvliEpsI2~esJ4fg%PwiXUza>_ zi8wknBWW%?D*)5A)I+xh#_l7aDT_{{MQtwiUx&%y?8h6pA8)lIk)D12^G2rMIle7i z*?Iogy3jLC5vNy71Ar-OrBUV$G1Wr*07-%%H~i?}jRVJytwPHICgu3p6-P<^ey#~A zSIFfoV{vTkr(gCCjMWHFMclDe^hqDy|GZe6sBU zl45d0Y|`*`e!f|G;O>E!m6Dd47aBA$5c#6S=KThy?ad+ecfx!&-aW!tuivTSPSm<= zv>t@9VBDjEPFZtA3utPEINJ1Yd`+|hUwpoTvlz)z8Y?u=T+KkXZL;7ojV`L z3|{}osWy~S$yS$lC)aY@E{A@mX)Pk-hJKdlU>l4Ppw{Lf4`JohJGR8WYZ3yw;f%StmCguc_3`o!IZbwIY z@`JVb$is15AR@?XZc&A!yGR7mF&CR@WZ*=A{ zacg~!ov`sL4{RU{?ab1@{l+CLbGcO*%4*YP<26aLz$1aDwT%P2 z9fPib!&#-JrCP0aYT}8eDD+IwnT}I!(#M5k!J|oaHrYHL@7gb-vy+0^i9Vl>LiNJ~ z#z%48-QAxPgW9^c5QM~_prC_7V#|kp_xaPdLcRDCJ&k2X zEI&-|&FSRtj4J^EO~9kL4e^z=Xp$?`Kp`0W!vkb75Qag^F5SIo&Kb^ZfZ?s%GIFh<+J+VZ>GlolY4l#?hgQm#bZ{uho$`veykKZ literal 1917 zcmX|?i$B!)8po&W%4Nw8#+YG@Va&J>a!W4FFoR}|+qhG?OzzPb!puaJtRk0Mr!0RB zv$M0Zvd#iBAu=*DcsyQudODZOJ#*$vT3T9aYU=6Jr&Cf=l9Q8@l9Cb=6B7~=;^X7v z;^IyLI1sV1u`w|*(b3USQBfyPo;+~^2sjRi1V#cQBO)Tg!^6YE!a_rVp&=n5!NI{n z!9jq)z(6*e9S{)U?+^6%^Yiod1p<70eIQr>Zvb3hLok^@=CNbPyu7?TJv}`i1 z04E3m02e`zpa+0U503{Y2p#~JE?!qx7YD=v0XjNRK^t69>1b<%fQF;3jm3h1hJ(Rk zF<1-+4hEy81p*olT1yM9g+{~CM58q|ftn~t6bg<83Z|NnrcuC4|N4=4aq z4T)4^U+!!~Aohkbs4jjP6VbzaT8%t9gfq!p-UDSbbgEd0=Mwu z%&feLLdJ)gi=644@lwIujfR_doUBsh@+s1$mUr`(o=(D8@kR5k?)W;QjX8boo~}~^ zMr2L-(D1@?F&kIIS^741dq4@Ru2tgB$Lp%PxQ=`+mQ-o2{fAR5`c&PN&#CFC^Dg-% zRm>U2lPiK*u0M$Hc%xQ0#I6Y&PRapRv-%XnxlV3b#2cJ_6B6ES=kKo)xe}rsxVfZv zxeL>#kC&~n=6+-^XDoIm4PB+8SERQ(1#d@KxV|5ii3L)p=Z>2b&#U&$hKnQ%yf|5E z&{tPvP5XU&&;C`xcH8AwE>7;=9GZDEFO#w96j5bWyU;@C@Om8E5z+2By%8;cJ!VOW zEbKFC5r4wv4j&h%+uRk4Z^{kUgfi2@7JEina$xZReh{8 z<9}A_yrDMHxZAHW&F>{|ZFa7QOs8wU-gw2uKEt%WR~$)t#M)!ImAT@t?yyu&Ti%*? z#?^k)y)`-fj+`k~y5gAC|Jy{T;OWM9236}nb~~_O&J%TDJ7e{4VM%U#{-@qcUIe-_=ML zQF&b{-U&yq0cdeJ7jBtG3X|e)x9(<4YVZ)dL&b&BPtl7shSRzHCxz z`+<2O(H48V`19M#MXH8Kv0!_uzFXMQK8C9QH2Ts1+6~?m_TF}@f_=ZE^u5Q0x{KAT zYm;U85~HkbyPi84GQpmV zHo8q1qO9B$e||DzdOuOcr}hcCDY^G)!t=152RjRMMa<2p=S7EX6^~MNkB@s;yY0xB zFTM8Z@NM~(w;CMCr+mv@bt#!~Jdt~agj)MBoIc^g65>Yrq=%~vXGz5DW2-U`{2bDb zw(+*DY`tnPHC;07Fzp~8dHpT{Uvy)2=;bS{Xuv!6?@<-f3l~+ifO+EkVoAm5CZfK1 zY^Q0yQyoQiJ?JyftnZRA8w-!*m2v*ORyka_TT%NUGRXTth1~AUXNxpe?Wy7tQk303 zmrIH+s<=`$X99y+ERt|ls;q_Qz3{{V735VnHJJ{%gD(8WeCIm&RuK#ulX}lJGWUPj Cu>yYp diff --git a/resource/template/BattleQuickFormationRole-Pioneer.png b/resource/template/BattleQuickFormationRole-Pioneer.png index bf49b2333d4f367f6692d7a69e96a8b8cf292bbf..ea046111ae92be3fdae03f325f3994b878df4e47 100644 GIT binary patch literal 2902 zcmbVO3se(l79NzZf+%2p zVSONriinCVvMN;6vKq9D$^s3FtZM-kk(Wp#Dn9Vt2?EFVXxr1AGns$p|L%A1{qFtm znGGQe18pYSPXqwKMieBJ5O)vrMH)l=Z|gRO5w{7Npe0%Wu$pYXEP&m6KL>!nbtpn3 zbP?hOJOoqGU?~=Z(h^k~0u2CspF|CetU`5Q3>vFY3n=|(&QU;xR6q&$6hmT-KPp!Q zCFAJgei*jOeU2;P_;>F9h^v2Yrhy_5TaTHS7>w! zObwbD;TSAlC!i3KzDq%+8KqTghh-uJqbI@|I)et8QyKzFkx`r`9#;-Imm+jjiKjua|nBxI0DWDUB7E7VdPyvMrF@E?Mu2v3IL zDws%Ep@L&kx<(yK0Y_!z`D029Cma*evEF|#^7jwHF_}V1Y-lBcexPWcKZoJX;ZT`0 z#!$FoF;Aq{>R>g3ii83RAr4KUkn&;}o~Snhv#4AzFBz4~ViPMF!l5!aTm+G^VT6gu zM(l+c5^rvS5ql|NFJnL)FBl?pVnbfk7?`m4=6JKIOiwR193w@&5ZS2xB3wZnL0I{h zdCUjX+&jD=g_fvl((ut)jK&SGlnQXDU3f5JJ_Z5`Vy-_br3}ATd_aLem%%$)y&NS- zf2S|r!L*o6r-yOWH=fc9!4iOswSv$VlFRx76KCEews+=8yb;m$`vhc z4VqH3RJCMz*%q&9Wft`-&RhLN&a%V-ci6oWJ;IgFnO7yL5*~5Mu@c#oI6KSAe^^y_ zro3a8WxC3F{ylGbz}O5RJHOUpu;9?ubJ1^K7*ZuxYo_148{iY5K7D2YEUSKK>H8{$ z1e6un7G7IvSl+)VYfYI|-uc-M^xS&JzqaIT=H-twwBP+E`(n(^bWP$vz`0yRRbhsxr)NilwhosZ25DMMsn^IqI@QM9UrEM|(^i zn{L~~Z?i40sOZ#ib-WoF7%ypYm*M&!~f3eRX zI9CSsK3U1Occ`%d0s{jZ<&UqGhHr=Qm31aO&nR=K`NWS@n8@E2bfKyDai&FUeMXy) zfW<<}zrACstrc_8}+q&PV&>Ao4erSdnOcI?#IPHnGy)6 z`we<{h@EW2^;r;y1N`3#nRuhpurLEm5KX_K#*(9y;)8*qBT?00@wzJ)Wi<>Nfdry*! zB+YH~s+39>`?I%d-=wF$e4xQFdPZ5J+`-Y&bw};>sQ03W} zCuo26l3{I^;Q*}Z7#tk@-YA>w$ncoH>0*J;+m3=>!=a0Q&8C2ZpZNXvJ7tkXRLtt@ zOWTfjj53zEiJQHeKQjZUhSq|Ino2e~-B5dFkp1!&WR0~B*@?*I-=NKS z<*Tmx++@R>I~T1QE6<+gv)NK+9%=20B~J%>E@~z?-7uJopC1q0f)COfnMMXKxm|-%RJ|%K^ zvenT?#>~@jJ?v$%v92yI6_LvpZMAp$pPVfz37u1rYpwF%`~Ra$PrJCf5`9VXQ=W_9 z&zul=pz+*}{%0=*%a8jW4|khF{!dtGPJ`6$q0kwB@;Kc8d%?cE-f5-rbAJ~2lJQES z>BG3Mu)gERjc5FP#n_KD>8fadrC@Ih*9P3$>jz$!^1imX_U}m1%FQ zZmL~Hb^u87I~gf1ZYs7h-TQI%o%ZVW3w!?2C_fKvMw=s#?jkr#Dne7YJ$h|8ygxZ8Anb=7DXLaw8+_~ zBBNX_W5IxcfXB&SmxQ*o(Wg#)ZtK|KC;))@^Xn&OQtUPmvYJfPtu>`#rAhnx?K6Ul zT5jGn_6+1IX<6PAEXUYIbI*El<&!N7SCI=t+{mP;`*Xrq=hoZI{VX+2diAUF2&Gdr@y8@`AkL& V#skwVQq5n!qInC2$NW~T{RO*lZqxt( literal 1851 zcmW;Ni#rtf9>?(s$tBI5nK2DBm~k15hGbl0jN3Fb7)^v36B^_??sCf^#b(>>qA04f za)~`#Uf=iUPxze@34HW)NID1vLeI~a8wAVT zJS}yoMOZT%MmxnfREa?7VmEIa;&Lqkfl&KV#20&`(U{`m;=;nhf`Wql{QSJUyxiQ} zoSdBO?Ch+ptjx^JjEszQke;qoD$~-^Qd3h?Qc{wWlarE?5)%`T9RtS_5ICwB5Bt$G02L}fS1_cEM28w`4Bm_br6aazXfIz_K^8-LYfS;eAuP^ZR z@c}+O9?#pG$K`r+xm+*c1-v{xJ@@b5?*Tl3hr2s)cXM-db#--d0WQwY&KwTM2{-|# zePG`{M@PrKVDDZB2M2p#5A4}&z}~ZGkDVQ`W3d3s))v^>02^Rq4Xmx1fC-pZzzSGd zS^`T8U;!-5fjKZ|00v;t>40tq%z&BcCR5X`Gl4ZRHQ8iBGcl!Y4UJ|(qtU1|6DpNP zrBaQz&e)i0Y;0@nIc>3Wc&8>;}8ZfDFindKq8V1iBKXS z5{M)MlmG|@z`#IXAL!!&9^i2R2XI&%9t*|du~;Y;gT-N>7#s!z#h@`*^wyx!STq`q zLSs-+6b6NYqL3&w5{g74kx=9=Bx)CQ7gFc7dnp2;!Sv(q7iW(j__j2S?2P4Ag|TBh z9;r5;cTP+9!@=xJmoBN&?Nm+G^C8Qvs>aMet^G4rYi?{`cARk$Ja(?V`_5*7dIH;B z-fMeP=u1Vbvsib`6&)k5IbZvrR6B<%Zx7ct5kGSsE7Cl6>J}Gq$ODK|Q$^?&deA$CVrgkW%Njf)#b|dz~p*Sq7z1Bg_tE<#M zCAUv5<5TIj4Ej=qQcoG0;WjyfdeirEn^!8gGc#9*;9HQ>Pibf{=fCwYHjj1b-cg1N zQ74%Z$kq>rkk!}xWh>*-9+t7)1M=LqPlpzttoTNKELrgTgT-2zEg4u^pVN)|1}&Hx zQ&%GPx-BM1>aM;WvzdSYckcZ!LqA0tU(4o*pR!k0o-DqYHA9R}{NC-fU=Z1@`45dd za!+|zg=@j5-n@9-GdGqNKfO<`(%B(ci1{%1wFYvm$VuzB4?RdDyy8VyA!o9Gxvi?= z*gcn?HljBvFxQ6ij4!(+6Tjmn~UJqst7`XzI^?wK7E z!*|A7MiaZ&2G_E_7n1V48!imW{pw6Lv`hbecm2i1fuy)!Ctj?3&3tuxX|}>K*{?8v z?HR+qO+JEjnvaY(ov!9Q>bozAy>-ap=CuuJVkhq#qSeJD1tELA*SREV_(DrYWVjl0 zL1>&^iTt^(W@6vUT-I_~M1R@5Zp}&Q>f47!EfMW;N^9PiHM4rRm47j={8QSUm9L6k z?;AU?@N#*fQgJVLql`lpA`YC$!dmd(T-;dSbDHVeQ%_IKZ*nBCg_K4d%ZE=d852!T zNSzsMI57B%hoA#e7&hRQYPW9nLc03-1?=dllifBo@P6*9w^ zI&Zn_{HyQ<{^WYHQ79*7>}r=x+QSRF^6uWNhfh;Z7O!e$9shGk7}~oK>LH1Z z=x14a-{CBp&zjW?ou0c}{#>g@{y;+(+n||!Tc$5!oBVPosC^sH{NU#X|H`22!4l6e z{?-)ox#m)f!QR^36Si6!-c*eTXAg&53`oK!q+U)C;R2scGzW5$uO9cQEJua@B(A&3 m++~F+*Z!`dnm=eBF(aH9&8e#*c$dR(i170kaN9g(C;ktnxx=6U diff --git a/resource/template/BattleQuickFormationRole-Sniper.png b/resource/template/BattleQuickFormationRole-Sniper.png index 4c7821b085dda85e936b01f086a54b3cea097a9e..a4ca3e35d4dcdb84da9539323df0ca01923d3b4c 100644 GIT binary patch literal 3074 zcmbVO4LDTk9zRjSZW_C8sr9tucpj;1X3l(I=3Ep;8O=zV#)Ll3%$#8`A7&0lx7b@L zRyNjFBDv8dxl@U05Ff^#}2}u&c@5!1ixoKF$nO7h01TE1^_<#)OgJTa*o&nz?@DQUx*2L zTv)7>lM#thgp###6^;e~_Z3CISrTxCC(&IC;{yORoryGv%A!C_3YAWRs4(OTySNdjeju(*Es?@O>{U~` z@HY=I0>e}=g%TehPmZUPmFjQ`mBqq2XcQWagd<3r1OAibLq?Y-ffDfyP8F+;o>VRoQ_yHsjw&z> zj-}3ERS`-|sfkej3iZtK&lKRH0_>G(MGXgfiTI2E|K8f?&w+f+b>Ds#MDn z++mp<2}da^ML0;D2_x*Ij8>{~#kh6!_xCwIK7nebR2GdNXo6OI6FI&#4q5LvmlV|Tus%bbr{*23+xr@KdOm0+xQ>%@0xhAFwANRE!wijQR+AMhl7eIpkc` zyA{ph6qjGn+5U6%)sd$(?ii;EMG z519g>31B}PAj|^hTUp&{ZGCo>8*Xu;sHmQt9y>a6rE`$-y05SA7K4-mHb9#;ZF0=I zCMq2n!9txEco7O3BkpJQf3X!oYNTZrJBeA>+?R~j)Og__X&Gh9_t8V`ZEcZ@7cGj} zRQX7@*!{CB?d@SnNteRN`|CT4=P%O-lr%>0m$y_`SKqpoQQygeVgI7$y?a;df=ctz)W1~faR;}gfj;ZZ6Q%itNZU&gns*aA`!?w@|`>Mg8l=v z{J?({6=?;wX|=tcwW3m=6gsD{@piMyZnZg*om7EThLI07q`w_WSUK|YW#dSAre5&u z%%us(y9G{P7L08m)Hj^s6c!drhu5Y%*!afSx%H|!`_G5yh0ck8xl*i#^PC%kZm+1a zwVvZe+ZSHcniPse&* zd1$u3E{Jw~*H3JN;pUpzDcLu>@vm(~MTKs{1V~Fu+p(kS>-)Dk_ma16TmZBy;@9(9 z9uI1rrDbdthS_{x|==wn{9bA#)GCnM$Y z63OoF1S3X}m^5@eHe+I9N3wU1iV5#N8DAZucU&~EY;p zlEa=7ME~uq_t#y9_VKf`va%Evx!nouk#W=gpRZ6X^@H=wzNpi%gD$pSG#CtQkjh~2 zOIn;4G>nZgm5-v%hcN9D$6g@0Uawxga&&Zb`qDDlJH4~$UstZTlx#jz@%E&k#JcgZ zdQo~^29uLRsr6aRh##x6!Rlh zs*Hk@Y%tS-#Wtzl-d1Lwa{TR!o-L-cG6+Yz`{TyPN1x|=jCX1a1O&@u6M*^Ev;KZP zfB9i<-B#%7%Qt$xe(wAw<=NUW&-^n&XEPJSq36x^$E&WKi!K#j@9Xb*xh*eXVfw1) z_b)DGX{$Ep8q9zcA^DK6_fVys{qZm|g+g)L({`WNHS}7=#GEZwK6_AITkCtYdyOs# z&J&chd{Q$pJ{rpH;p&M4?UiE4)?fDt=s&svSjqOjn(L-)lV!?#)AGd%#f_~HvB3LS z#wl)Zdy24_-)k7Rvp>D%lBbJHatdg#6J-*-&8>ac(foBygL{V4?G^3cQmNEgK!H=D zpW}n7zX$6DzU#IRKB{%&wp%`WV#p0B`V=s?Pi2F)mJwj%u*_qxw$$V9={a^V{sxqh)7j)9H+eh=^_5wuOddg+hI7xoo!n z4+aBl4cnq@Q`qVt5J(%;fBe5dqtO92fdPSmfk8n*Tei6W$HT_c)6>fa0uhVFI2h=2E++3MVCJ+dMgM({pYpbiP8yg!73kyq1N;DcxLqkJTQ{XAcsnEdF@@I%LP$1Z)?%~0d|7N}uh zb_TrkI5NZfIyl8LqFj};c9DGR&Dn6ux!aXwoG*Q#?t98fkX=2tEW%tq#mv zZ{#Y^-&j)z-r)7bd!}90{c$t(rU>91dL|gGG(D?n8ocQ_1NBM&Q zt@|c&yZ3=|-L>WERqcZ<>?^|Z?Ty!$h|%;YOa2)d@}CxaFaYnI z_3R^^ADOcBI6{!CSN6&+3=DH9zcjcP^&U%}(SeSN^D<$sy=T8JO8ubai~16DC$hB1 zruvF^iN>t)LmBjR2ObF^I?+9?r2>qyby>gsGG~XR%gMZ!^Mn*{5;J!W`3QdYJ}vyvh)MDpWr_+2Jd= zHgS9(`8Cl!W{()|w84vBFy-PO_6T)kw|KAJf>}si`RP==Mfl1}Aatr8It*N1zXAz3 z2Ji+l)!&q~BKD0pdrfc;H^iK`GenxWdcxm5md)=5^XEtJ)m+~*&K>UTcTQPTeWC5# qgkBuKFn}@8EW24xtCzAi%-h}T?>vxv)6vcLRY3xtB=j^l&G0Xfsw#v4 diff --git a/resource/template/BattleQuickFormationRole-Special.png b/resource/template/BattleQuickFormationRole-Special.png index a1c990a9cad409cec6c2b1b0fc99a74fad267349..00edeee5d5985d455ba49ea906a67ab35365bd8c 100644 GIT binary patch literal 2340 zcmbVO4Nw#58D9RJz;Qzq%5VVHBWSAxH_|1f#AUVfXaG>Bxa>GlPI6!gSxVV7&~*0|2&9Y} zXuDjG=z2Wk`y9Pil8bOQNn1F7(p>afyvi{OBcjj zV~i#&PrGT!7XPJz%p7OOVA$z&N}Nd&nkj`*m5S$(!cwW2M~K-f8;85ZHg?@IgO+3o zhO%=MZ3DfGcnMv}X&~Oy#SpA^AFYjDl8F}#cHwpyl_1`b7Jx>=hqG5QmIdQR0wyh_ zm9%jzk41f0yP4)_)=d8wYTxoV4DizG^*$Tl>WkItGr@A{4nB+}LB18u8mjChoJX>B zB}0(u4&Kdm-e~Mt8bjh7%@}CfvV2gv%PxabK58&wJ7qJ{PB!s{4Wt(5NDU-Kq%tw0 z5=&JE)O%zYB7YrGVhFMb)ze1GRP_QBMZ}2IfF@ybB_>C|0p(N1h;#UNf{g@bq8TgB z2TWP(h5EEKqqE*MUD%RmDW-t#Ao z(9$&Zy%kubb(%?@^nc{VB8;U?oD*lrjitO=-y`+*u^;D{|s?q?S!;lMtq(IJ_T|L?81U=+^P1SJ!Z#ZH zZx5L}A2olmVJ_Svt{ih!fM}yx*IF00vTM5b$X}&3`+jr0e!8{{8$Z7L@rmqsVD!t| zd(K-F9j2hNn>AY^0xX{%h)JlsWLLf$ab*=0-I)0&N9?NEtcIznskJHdS+8EalbHI! z(Lzz=vu7cpyC&)F_+hziYj-yDB(KdXv^em?NCthlDu;^Jui;8)3O2ii{w z?^qO?zlSzwM@L70ESsC3w?&yc3mwJ9f|$@=qqI0X2NpIR8L#>wanCFZ?FIIh{q|v( z1UQ|Sm|oDCSPUAT3IL@4=AG^OLEx8p@8`SkPS5y(?~TlI4ZXd+cI83TQ8Y6>Jbdf& z`H3mVd%{)Co*$&o7B(1O3j(5uf%bhpQD@pHH;Erync7+SkMJ17nDH zt%g>nwu{D@&X$%nC&u-I(fxnxDi%dj$J(fBBubr<0&lGfir1nOPoDenqCL5s(A1g` zQv1f>o_o4;+X4VL8K>LP{B%0C7M0*2SF?4DN(0{t7cCF*kb$47)O#R;xWOeA_LKHJvQ z(^FJbB>p^qW}qy#z+K>OF}p{nM?d*w$1l1st*JdESdj+UozC^Izxr;(dWE98=e~LN z7PzW0^T_GRFLwwtGCYr5mq(}BXy>k78hJl*Be&sK2_c(=YZK}Y%?2Kb38}yK&r@dE z>gMKV7NR}(*PSi9dgA){lh9tSyGVa_XtMI7fg5+!@masl6Ga99o{9&vd$aY;{Wz+Ofvt@m$?`s5N2OA(2Qf zuLOQSHb$NuYE5VwpS379$W0IMN{1sdbVdA$=Z_xs?JT>|cWH3q_{o!BzkP0kzIF6y z_(q}W99GUG`^5yt)CtuZjsEoJyWtZYb~uyk9w9CH!4ZT=mpFVuKe#&Qq-DQopk1`# zousHxq`$*fG5`68Rno!(Z4+kMnaM5{an!%2CUy6PzUJaRlW%=Z%&pi}+qY+Ud+;gm P{}^3*w)TAL&f0$iAINk( literal 1339 zcmXBUk3Z9S9KiAK?AOlW z{kV=wI3!%>YA)Bg^r)OJZWXyusc7lMNq*nwYtP5)^M3yU@5kd)C<_x)Nme8Xf~b;U zQ6$)0^ubs#U6i#R5QNdmHbn>F@%WUK6pcocoSdALl$4m5s8*|0Diwkt2?+^XfOynq zloC)V6mfBJa=AP(&u`<#jlQV$fRB%lx3{;KmzSrfr$8WBhgu7GczCQq@qyJSH-LxY zx}rGCTsST$XBX#XPN-D|D*-l}?Fg(eaBy&70rr3$%GTD_2Cz1;vbHj?w6Zj?_#9}jgfb=>gJ5G6 zYz%{lFp3BhK?EX-KqMI83E+x&93E$Y9qT(D4MEry5|Mv&*3%>1f!9}wEjm6d?QLyq z%II$yJF~!foh@j}$SKu;x&B5=#$f-w6V;YoH>RVeu7>TFkJjS?+NU9$dp<3TmCS(;0iOm!)z z{ypG0h-{batfP;Zv-T=yKbf6t*}qV2@2S5#aIM2KmwtJakv^>KS3De8(pN>~25{n2 z4@(vcc!I542)rw)KYp5Ev0LNENyJWRW160(Z+<$DJU%XF9U5t2cO-mj$b5IkjIeJ~ zsc*C;9%r|?wh)3=m(IC<)waQxwfpkw~O2tt9y33wZu!V z)t&rx!Y-PZuFHyZ_pEbWdh+UaQ{}5SR{5%)?{?g3TZ5hID17nXHeE4dVsWk=v&3oWr%Rz3)`?9y{E5N&l>PuF5vP5GwK_9sMK4qh|i* z*S-Jjg)cCJM7`XsdF36RP2Odjb%>7RQ&tkWgbl3XMn1h*IA(SP@ns6ESwmO$+_`E` zs+=k9>8&+Po5H)R;&OdKeGsWD>g&o7@Co#{i|-BRB-o)7Vb&$&50V6YIZch{Ad z!eXO^ESN^?c}T*=w?`dRV}!eET)2@=Fr@wd8}WS34-iJ`KbJXM`3~8-2xXt`R)l01 RHGoeMk_3f`8Uj>@{s*$G+pPcq diff --git a/resource/template/BattleQuickFormationRole-Support.png b/resource/template/BattleQuickFormationRole-Support.png index 464a572193aad002596be405298610dd0f145158..e79a4abf56eddea38cfa38f4c7e126a827461720 100644 GIT binary patch literal 2471 zcmbVO3se(V8Xh@Bc}Nw?ilW8oh)4^0OcDZ2jS2}!I0Sh_L|BwbGQa@Iq)Cu~3u2E5 zu?Qk+d2FM&B6d-!4@?CqQms@T0_7lDM3<)^M?|fUoejgphF?usF^jlL5Qa8E$l#MP7>RBEqXq#LsV`CYV1l%&AuL70k2 zP)abbU8I?74BjXZo)SaVgi=Hh@pBgyFlREzB)tY5x8ZUrk*NCUodXyjRbyO;$zZan z40kHiT?CU?#zEL_P7F7M!I*&x2`L_x^bQneP#H`S%tBn;5GMOqP%>qts2cr4uvCIX z5lR_KI*iNEXpF9qM?>Iz7!e*3Pbf*nq;;%!_XRv&fRc#9<4J)kXtO6M@Zxb`cMgZj zq`}kX3WbP3u2Q3N2`1okAu>2L9G4>QEH@_G6=hSIY}k#8xv*WSD1#xTx=LJ7CdOe% zrLfD~c|IXYFr>iTdFlUoev1+(OAw9!(>#X4G~^EAgR96}O`0v8VC>V`RXh$(rwf8g z3}wKDB!>IPq|od({-+}_Lz@_bk);14FJ@pWB1)ZzDlv~}GFpF_cXZNtx}jia{Gk8V z#cA0)#XScnJBDF7->S%u`DTa7$quI^Tbcixk!}Dmb`|hFM4{u=|2-=)!2}i9PAsuU3vsQfxyjoMNsT>zC=wjDmJ+i*M9j zKmSeRovIVXiGyQ(v~MgXD8XIjkLt>+cGl5of*Jr=B_@5t_c-CC* zey+(3bF?ljEd24~LE)LvsVSXlJuAglhZhO*KQyP9f9>RvdwZ4Z6AS)d7I+qGW7w5? z{pS5w^!g+nw&jFl{m97qg65_sVX6HO@v%X|!}i9;Ku%}dka{_Vcj)P*{SO~#Jh`&L z($ebk9YwwO{PY;$?NrLGgh20FMm|MyEBG;ZO605#x20; ztKsXnS6z_~g&1wO86F<4ja&*~+wVkOOcz@Ma=GsraWam}X(5i*Lj}zDHaZ3;AkL=M zHXcijJvQBpRKyRBsk{Q~kD38T>aj0CXButl^^>D@!+~43hTAtXJJ2s9i>Vt=I({3v z!#mBl#0W_DtnF7eH8(FZS`fZ*SxZD@@==dm#{&%w^wXuKf;TT-FpoF8+FE>_U)?pt z@Ne9E* zPOVsXY+vl{h$?%DMAB@f<)5tU?dj=hUb4Ed>2z)Z1zuxyckd$Sq^XSO&o%2UKX0cZ8rs%F>NGcPxM z@ypL&S)?53YkzWRFKoK*mH$rfx0TnF%Y&9|c5lsizGEUWUtV|T&U-(<$?tXRd^2+E z*8Yy+wPuasI;1#arIko~@6c$NU6klD-tcmLd$(Km#MpMfw6(2ry}dv@B~Ig(WM-zd z9Km8k%R7u~&#{JtrtJ?UR+d;&W?aANmVdt;U6S&N6E!2iQ*8K^5_tLZ&wECG_8-nX B%%lJS delta 1490 zcmV;@1ugog6XOezBYy>|Nkl-7+&XcDT%F zou+=#x|+n@w<_6+q;qBE1p0aZAb$cS6_d(36!FF>8RGB9>)^LLtyvZhy1YDiw?9A>`F_X#MzI}Ukc2=)T*0VSWqF5~EvwgS#3Bh0xt*i6lwR)+TQy_ z2mEcqv`|Jc%l`fMpKLaZVZwB2&5<-m#Ow<}hY7J>dm|&m$BrGlbm{Wt%a_idKOYW- zlyEwo{_o#^g%I1eZ66&Or3-Zp2di{74e6OFjDKl`Ys+qv&u0gNp%W)h`kidR+PiV% z1_ou%o;{T3V=y9Xbz+Hx{h44NfKd~`DQuVPDCr$K_=FXe@@BsEgD2ix}DuyXnK6)w-lCnRH>AoK7W1E*WZs8SFKt#I5@;55Q4C#rY3RfQw2aztq96c zX8HkJ!^)CQBBx$&U|eyFBbIAoB1tLpg#x}iv(>^QdV)*o3B~sMD*&I2`v(TptRZm7 zo2xy_P<~Uw;c9SjK=^F*3ZAT7F4Nr?Br-tNj#mZRx@UEP{Ra-vwPJy=ntx=rmMvel zY13vLIh6o=mRCeoW-d`66{j{W(I&NZO)FZVm{OrNSy11GhHSHF6pICHFKmioRZ4&C zCUnlTzc@jhOKe~Qo8yev6G5`Po07*qoM6N<$f&}*9H~;_u diff --git a/resource/template/BattleQuickFormationRole-Tank.png b/resource/template/BattleQuickFormationRole-Tank.png index 80f91b40770512e11ed40a93417c686a0cc93e59..aeb24e564e63edf324bd5a6bfa0f6a2006fc6aa9 100644 GIT binary patch literal 3515 zcmbVP2~-o;8XhSs0ujU*9%I)*n#@87M4*C$Nfrska#pe%cAS@m%=OD8EM^>{Snr1Q)Ci z6jl-kD`0sX{1?&0)#f~ zGOjM0%?cFD6&x`a4D@lsBF-T~5RVm0ai)^VJO%-D;nN6wCXGzskQpunz6%feFnDw( zjWK!N2j(W|Q(*Eu4>`~0f(#0mMH3>)BpME;kcafK=&JBtYY8ld(=MNf|0Km-jKp)Sr z$Su$JYGCcP1?r3i?!A|bx*gcUb46M|w=LPgbRz4}t6HYTo~nAkSWR(D{`94WUIw%B zQJD4<*~u|qE75P4cb$V&xMqg=Gn^~c>mxroaK1d%cqlroV z?VsJEvRKy|qdTR*rs{!5k2p~!$2Qz~#=lE0Tt_~FGxmy05Q&_38vunD>z}Grs;yhM z0_I9}>!WGmsIk`_?(^q8F>C+UMwt3$Bu3fdxIo!+UfOptYbIb`WFHgQM5)Hb z%jGLIaq9tCzYo6BCnEqM$qRRHSg`#!izRy!q;srnSJ=<}72+ zEJGlJtV)E4doFJD8BY?T24F&$93ToTa1Gb_^CtZMq$b)H%t+ zPf)%qY}6becDivzYE$~<$0tR()esQpv8E(JXhfaYN&{(N@PS&^0&YdHhJYbxhp)jxgjaXa4GVmZ}wp@KZO z5|`8ZsQP(CUB}`AtY#X3_5x0xJJ&Iz_r_f9Sy4fyx$hjK>}{fMw)xt+j^~Mtctc=a zAwg3KAwhrnNkF+3c;wLR>zCiZUluhxHsNWvr|zqZMyK%a+p1Mhtp9WbJ^(1^{U z=;=Mwi>l~`)z5KjZqwL>l(xM#;{RO>TcUFR#FMIQPI;R9BtEb5NZVazZ(vXRUK(5F zwm?&l*Yu{8_c22qyG?T`wX2Sy^8B83X>H=a%d!1TZP(p^lr03!;^G5CHJA5RH#Rhc z*LAdVc30x+ahEBNWjX=o=$$2AdEBU8Nukua6$0Z`knp9?iXC?-j^zjiH*AhvOT%E?x4f2#Mo;zVCW% zZS5^1->RF%#j}AU9Y}IFM-!b)`fCezmQ(X}sL zh_$rW>?VGh>(H$;!Wy2TLFW6Ayrjl&%_7(82R|xNBH7k=o=1f&+fLbq*4)mY>xlN9 z<9m}_ShT!NYSYpatfhG!IemI3|0iLhTqN4fu?!F2xXiZ59Jn3d5PYzjT3Y0Rk-U8c zo$EgE#i57I8{avV0zg?cRJJNSe8nzV&QvYkVUIF3y+La_dv-)OEbv`%U(9eZ zizd#m2?w@m9y>TXvb7f^k1pM~5z?^wKxru?*M6W}zH=;MQD9eRXMn@bwRPuIsx>Rn zbsfi`u4~tf+d7BdFz81`-7Ary)f!c3_K-C7(fD}+fuN^p!%Se|!i5#v%C5(&vn*|G zTNDF3)P1^F19O4n$B$n~A7fb+U8}b--Xd#^t_eH3Yw2bT*>vTJRRY1>!NI|?jT^aK z?gFJ_>2e2){I>qK(a}-31@*imUYGX%hK%34$ z8Y@&*TC}_(#shH@4qa&uTKX;7?Uh%o4n~=oS?6pIurGJdc!=Ju zdHkfm1y^wE&YdmhBFpQHA%32dpgk;cX>hqKwA~p1_8vUg&kQm*3=a?7Qs{%t^zi6- ztx6hN@S`{mg0A)tZ*YB)m61;Ke)a0rg*4sElbLyUJ30{ka9<)d!#jNZxV`PNw9aM5 z0F9u%c~knc^^ZrUe{-mI?U;YCvLyuPx?$v5#;5&z(rcnV%n+LYRAhId)KmZWD$qB` Kr`BuT=KljaDxk*z delta 1603 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 delta 1591 zcmV-72FUsG6x{Va8)iGq{7tj@+`A%Kw-0BN%+zH73Jv$L~OsSFwrl#d@jDia_91s;aU<_hs*;W#-xJv%$CR4PQY zzP|S5%a<-#H-BEO&+gVYU1yA{Af;P&YJyv$Hmv>q1MmSH*j!p#`tjq(*K7OMdjEpg z)2B~04Ojh6(>S(+gTwRl^IEM2XH!#Cv)49*m#~S62|3C5QrRXy#6d6=jYfTEXD5@% zV5?j%yWMV&$Afp6%jF7(!<|x<MHJq=dE;`s48vGnzUJdbFq$_PDt9`va!7|~bXKv^6mKx1{r!D;q;a|3q-onN zJ2*H%ipC34to#^XrSY}ySrG* z!hgbiHk&ogI0_hHLIv5@3NtK20fY>Ot;Fl~f)98_TBOt0e4uWhJbB`9IDR>D2y^JV z8VGw_XdiyRAAJs9krog!NEzbt_U&8dxHB<5_Bo**8fxJP93CF_^mMPRtb{@#KtWtS zfBw|*I$hUsw5`*c1Dn<<8b6&wCz~xaIe(AG3q|Se?M1z~Ty7B;=opbG^P9>*F(Y;} z)6*g=5lWefJ3i4cv=}lV6 z;*0a)Lx?FVaCLPR8V?&`H;1_( zl}Z_=$v{|9Xe!QVP4RAb4jvjpp)gt<)@>buwmy6Q9BV0+%aL$c9@#Z@-kEhSC7}WE z5sSsZynMm%(9q`Q7Qo}72J&hX4kbjqGZS9@eSOGz`3W(X%X_?Dw0oJ4^?!|Z%v8C2 z9=-R5B$U(bt0lDq_<;qJFsiXus|zNY%|<4ZHH=ufT+gr(dVj5!&ljT6NIIRtaElY_^@bTYn~ipA>(+hvRH$x_w&`f= z7%aduRC%&xkOZ{WXfzg&n@C2ykB?6{9C8B_AY>f!@NYB7BLOih!ynd!+vzQq!9PHV z-%${kMkCRLwQ^^8co>p3GBTV@rUVo;7aZsSf}`PIEZSkYT(fQ1B{02-UHnh}wN<>h pPN002ovPDHLkV1h%X1ug&p diff --git a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp index e95c215dc4..ee7365f913 100644 --- a/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/BattleFormationTask.cpp @@ -431,7 +431,7 @@ bool asst::BattleFormationTask::click_role_table(battle::Role role) tasks = { "BattleQuickFormationRole-All", "BattleQuickFormationRole-All-OCR" }; } else { - tasks = { "BattleQuickFormationRole-" + role_iter->second }; + tasks = { "BattleQuickFormationRole-" + role_iter->second, "BattleQuickFormationRole-All", "BattleQuickFormationRole-All-OCR"}; } return ProcessTask(*this, tasks).set_retry_times(0).run(); } diff --git a/tools/MaskRangeTool/main.py b/tools/MaskRangeTool/main.py index 35bfcf9fbe..84cdd27010 100644 --- a/tools/MaskRangeTool/main.py +++ b/tools/MaskRangeTool/main.py @@ -16,24 +16,24 @@ if __name__ == '__main__': rgb_base_mask_range_ignore_dark = [[[20, 20, 20], [255, 255, 255]]] # 忽略暗色背景 # 自动判断图片的合适 mask_ranges - image = cv2.imread(str(maa_dir / "resource" / "template" / "Sarkaz@Roguelike@StageEmergencyTransportation.png")) - generate_mask_ranges(image, 'luv', luv_base_mask_range_ignore_light_dark) - generate_mask_ranges(image, 'hsv', hsv_base_mask_range_ignore_dark) - generate_mask_ranges(image, 'rgb', rgb_base_mask_range_ignore_dark) + # image = cv2.imread(str(maa_dir / "resource" / "template" / "BattleQuickFormationRole-Pioneer.png")) + # generate_mask_ranges(image, 'luv', luv_base_mask_range_ignore_light_dark) + # generate_mask_ranges(image, 'hsv', hsv_base_mask_range_ignore_dark) + # generate_mask_ranges(image, 'rgb', rgb_base_mask_range_ignore_dark) # 在给定的 mask_ranges 下展示一张图 - image = cv2.imread(str(maa_dir / "resource" / "template" / "Sarkaz@Roguelike@StageEmergencyTransportation.png")) - mask_ranges = [[[78, 60, 80], [93, 140, 120]]] - show_image_mask(image, calc_mask_from_ranges(image, mask_ranges, 'hsv', True), 'hsv') - mask_ranges = [[[93, 81, 130], [102, 97, 142]], [[128, 100, 164], [134, 110, 169]], [[95, 85, 145], [105, 95, 155]]] - show_image_mask(image, calc_mask_from_ranges(image, mask_ranges, 'luv', True), 'luv') + image = cv2.imread(str(maa_dir / "resource" / "template" / "BattleQuickFormationRole-Pioneer.png")) + mask_ranges = [[[90, 90, 90], [150, 150, 150]]] + show_image_mask(image, calc_mask_from_ranges(image, mask_ranges, 'rgb', True), 'rgb') + # mask_ranges = [[[93, 81, 130], [102, 97, 142]], [[128, 100, 164], [134, 110, 169]], [[95, 85, 145], [105, 95, 155]]] + # show_image_mask(image, calc_mask_from_ranges(image, mask_ranges, 'luv', True), 'luv') # 在给定的 mask_ranges 下比较两张图 - image1 = cv2.imread(str(maa_dir / "resource" / "template" / "Sarkaz@Roguelike@StageEmergencyTransportation.png")) - image2 = cv2.imread(str(maa_dir / "resource" / "template" / "Sarkaz@Roguelike@StageConfrontation.png")) - mask_ranges = [[[78, 60, 80], [93, 140, 120]], [[18, 90, 130], [23, 130, 150]], [[14, 130, 200], [16, 150, 220]]] - compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "hsv") - compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "hsv", True) - mask_ranges = [[[93, 81, 125], [102, 97, 150]], [[95, 85, 145], [105, 95, 155]]] - compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "luv") - compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "luv", True) + image1 = cv2.imread(str(maa_dir / "resource" / "template" / "BattleQuickFormationRole-Pioneer.png")) + image2 = cv2.imread(str(maa_dir / "resource" / "template" / "BattleQuickFormationRole-Tank.png")) + mask_ranges = [[[90, 90, 90], [150, 150, 150]]] + compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "rgb") + compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "rgb", True) + # mask_ranges = [[[93, 81, 125], [102, 97, 150]], [[95, 85, 145], [105, 95, 155]]] + # compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "luv") + # compare_2_image_with_mask_ranges(image1, image2, mask_ranges, "luv", True)