From 17debdfb5e37a551890fafe4b4dc90e9edc909f4 Mon Sep 17 00:00:00 2001 From: Hengyu Date: Thu, 10 Aug 2023 17:12:17 +0800 Subject: [PATCH] Add: rogue buff selector --- .../share/rogue/blessing/BLESSING_ENFORCE.png | Bin 0 -> 39635 bytes .../share/rogue/blessing/BLESSING_RESET.png | Bin 0 -> 13287 bytes .../rogue/blessing/BLESSING_STABLE_FLAG.png | Bin 0 -> 5916 bytes assets/share/rogue/blessing/CONFIRM.png | Bin 0 -> 8529 bytes .../share/rogue/blessing/OCR_RESET_COUNT.png | Bin 0 -> 10252 bytes .../share/rogue/blessing/OCR_ROGUE_BUFF.png | Bin 0 -> 138365 bytes assets/share/rogue/ui/PAGE_CHOOSE_BUFF.png | Bin 0 -> 6336 bytes assets/share/rogue/ui/PAGE_CHOOSE_MIRACLE.png | Bin 0 -> 9762 bytes config/template.json | 15 + dev_tools/keyword_extract.py | 59 +- module/config/argument/args.json | 62 + module/config/argument/argument.yaml | 40 +- module/config/argument/menu.json | 7 + module/config/argument/task.yaml | 10 + module/config/config_generated.py | 7 + module/config/i18n/en-US.json | 45 + module/config/i18n/ja-JP.json | 45 + module/config/i18n/zh-CN.json | 47 +- module/config/i18n/zh-TW.json | 45 + tasks/rogue/assets/assets_rogue_blessing.py | 65 + tasks/rogue/assets/assets_rogue_ui.py | 25 + tasks/rogue/blessing.py | 295 ++++ tasks/rogue/keywords/__init__.py | 5 + tasks/rogue/keywords/blessing.py | 1265 +++++++++++++++++ tasks/rogue/keywords/classes.py | 23 + tasks/rogue/keywords/path.py | 61 + tasks/rogue/keywords/resonance.py | 285 ++++ tasks/rogue/preset.py | 9 + tasks/rogue/selector.py | 0 tasks/rogue/ui.py | 14 + 30 files changed, 2417 insertions(+), 12 deletions(-) create mode 100644 assets/share/rogue/blessing/BLESSING_ENFORCE.png create mode 100644 assets/share/rogue/blessing/BLESSING_RESET.png create mode 100644 assets/share/rogue/blessing/BLESSING_STABLE_FLAG.png create mode 100644 assets/share/rogue/blessing/CONFIRM.png create mode 100644 assets/share/rogue/blessing/OCR_RESET_COUNT.png create mode 100644 assets/share/rogue/blessing/OCR_ROGUE_BUFF.png create mode 100644 assets/share/rogue/ui/PAGE_CHOOSE_BUFF.png create mode 100644 assets/share/rogue/ui/PAGE_CHOOSE_MIRACLE.png create mode 100644 tasks/rogue/assets/assets_rogue_blessing.py create mode 100644 tasks/rogue/assets/assets_rogue_ui.py create mode 100644 tasks/rogue/blessing.py create mode 100644 tasks/rogue/keywords/__init__.py create mode 100644 tasks/rogue/keywords/blessing.py create mode 100644 tasks/rogue/keywords/classes.py create mode 100644 tasks/rogue/keywords/path.py create mode 100644 tasks/rogue/keywords/resonance.py create mode 100644 tasks/rogue/preset.py delete mode 100644 tasks/rogue/selector.py create mode 100644 tasks/rogue/ui.py diff --git a/assets/share/rogue/blessing/BLESSING_ENFORCE.png b/assets/share/rogue/blessing/BLESSING_ENFORCE.png new file mode 100644 index 0000000000000000000000000000000000000000..6d2ff2d6aa07892640362a474d5211981a9b7409 GIT binary patch literal 39635 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%0AR{0^#(D(cy#Pm3(^c31WO0ssxbUDCXk`8OW3`Z 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 z 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 Cd4jM2 literal 0 HcmV?d00001 diff --git a/assets/share/rogue/blessing/BLESSING_RESET.png b/assets/share/rogue/blessing/BLESSING_RESET.png new file mode 100644 index 0000000000000000000000000000000000000000..fafb39edf3315038d071c6d90ca09350aeb11625 GIT binary patch literal 13287 zcmeHO^SUp2%=Juf2s;WXTaN2J?Bq> zm&dHn$iT}5J9!;P2%@}7`Xz(n60SoK#S05*X=P<|gcHKi9AS4;L0bBzodd$u!ul-) zxs4^NxoSsX>0r~?w=|kkBin`1*6*O(Y&qv!F6pFR3Wtn8Ub^zQ(eD$5ChfJ$3Gy0$ z-w#sACw`jy&Q)giB=D1NkcPhK7VAW2iMI!ObMtukxN13J`J~Ieo5uI@70$0qsg{tK zs^25=5!O&8`M<5zzNfCq&z!z_X{o*5>`WsBZIipZ`8XB8Pss8S&?(4nkeB^R^DOa0 zg)*lWbn`1TbNk9NC0Up%)WWOYLJPHAhYHk+-cUf15M=G{C3PG6MFnl_E5Ob`BUup> z^w3BuQ`UJXm<)>Ll4C#hxDtA$@lN&rsk(aTd(PwAyr=8($b5B5AIhEbtv&;}glLD+ zJbnfF#!B7qfNqMOf}~llc9P#zB>&FeS38qsWan2VPX^VsM|DO&?-QUci|S!;-QAv< zyERvDT_|NtfA^BS#C@D8NUZ+&^&j-PX0<(yjAfE&9DPi1W8?ujk9GhF0_5p8iZ0nMz8nWDe zTIzuA;Ogk z%JEmKds%v}q}{sCXN&Aq5Vdxn3-s7$kLL>mjy~_W>=_f7cuNvPH|8)6v z$jI%k^YpPHr*9j}3x@mtxVid?R^@hMi^GpoSyGl?4dmH&c^qiPg7qICg^jn|d>D8V zSS9x$^4)J0@_|#%kIR3uG6Xh#ckFc%q%rXQmTJ|@P|PCfTbi2L`+UXO3GxmMG4btv zKyCVE)L8#ZfXu7U+67N`MY{ge9&TC!x@bN+Yo!b#Vm5Mn$uHgQ5Bshcsr;!vG|Ru{ zx?y$0^G4=%)D6B^#f&rk(XlP+{KF3!W6fe{Vh|eI_YUrPUHjU0B}zO>Gs-7w`Iowe zqXvA?{THQrwgyeMp{93+tVWUYeAa~ly6nL$W{t`$;k+(YSJhDEZWW`n8YBGsBNM9M z{(iFG{pHitO;AlYf^X3^J$$>PEj8qzNxpvHD(1y&z2CSEMVB+jj4phhifYo1zf5yX zznUg4*>{prHx$=rN)#b@U&I9Ku9J0(c&GpF@8S@yc8GF6yut~SMK8AL- zOMIMoKM^BtBaU^xP$68QQsGxI?%cfw>o-|_#FRKW@ z;CbP&8`cj*O}0D2OjfL7EXsPfKhFNV+-_d+^{;tauR_|LGS004vw0ymdYEYrg6VaR z;MCg*t4GGKEgp{l`1_-Aq2_L9q*a`0MQ?GxQ%6V3{fV5BoYsvHvB3nZB;%UVs_~Ox zzjT>|#%DpoLCxRBzInBu`S#))HYY|Crs=MU(HzcE7}8(Aziu<6Wv$Gp6@M{aJifj3 zXKsA%Uzd2BY1%p3(7SziF>1DB4>nFVC^q6Y&Tfhw7$0yP*c@~-cQ9RH9+Gg9@N#f+ z?r^cTt6KjtE7*|rH>+V)%Z$-1#W8VDh(6+p{6y}k&A?=bWTSWX@eAH~##Vy{N%WKbZLId3eaC!aW_)J-Uf439p^Kr8;c+#K zQc(hD(h$E*%lKctnd)}WSK=_qw?|#8wX^QKbUQE4ydwKUwn$d}j^SMqxfMC<>Dbfh=Y-A#pQ${{cM*0?>f!||9ae`3 zL>>JuBhEx%!t8!r@3pq`iPv-)kN7({6H&Mt}88O+P+}Ey8AKSPf4aGH8@qJ5LNcC)_R?I!jkK#fpnR0VS zP%XGG*|af61hion*l><}t>x#{f8+^&_Wq+<(Gqj%+fV4zy@#?4~8&%52c{r5M#@|?D+#;&FN z#BPY{hraZ5Y3}!0f>BwKt?jmX`?}>O*NmgyXrL{l2lX_O_voXHa_n+`<{cKumMzU` zy)+v1!noUvjZHm6wQa7;um4!L&B5x_=0B^pd@|VMzfG0PxD&j{Xk_zj$|=Re5);x{ z+}YMiE@UjUsn=1OGrpT5oOa-mh%{)|#OG$CYDPK7hH58WJ@=?TFkh3HLPu^?m2kUh zSyjt;V{H4j-cN=yyk@MZUGkYMlXF#SObYc(_dItXgI>3ELRe4a*Vg{NV52G=%pxyt zw;1n>7>nPGb1kvcy+>XDWbx0P=?pK=dF7Rqu7-(*&gobr3Uhv4-krNoyw*8~C(Y)& zWJ)!9d5Jmk?w`<%RU52ihZmwpH5g=#zD0h4{j~I%o!eY=ES66>icj5Y6n~V9dhfa zzV9bHwOBvs{hto@u&|wkgapTfsx4OdsHDh+>+BcK9pO&?6p4*`Zk7zg;Y&bf;*UI}=D-4z_J20}@t(9+xuYrsGF}rbH^!L9j*x2x> z&cr{zWZs#KUKN~NY>L+luPVh_8J(L^j2zwUzVk9>=EKGF zbx<8zD|;}N>sdIv&uGm>^;REGgW#sF!Fq3l6mM<~U)Lj{k%s9&{Pb>gh6Ph|xqjEV z8<%{^d?ka$!RP`;=#sKkvm&3Ra|H%AzJ?_unqp8R9Nv`I?Y_dMCZicv^)i>4NauT7 ztqx##8JH^dfc}m}TJLq(YxB5_N?{&0sJ3FeF?gEk zF?1F>kT;i_g0EpbejfRU8wkhS2r{G)#X{!sd^-*>z~7|9l}lIomKF z?PS8&w&-Bb6hLP+wJUXIgy9wGI);u=$h=!^aJ}VNrQft}?ziq`Y}*4rZs_zY$nCj8 zAA4Y`?8K+I{+NFD7ybNpD}#;;bvo`hQawKnNlHp0TD|S#_9~EwQ7=@AH_@w-j5Hy{ zsm?bT(=Q6M2@?N~J4#9VxtiEEW9+!wtOz>l9JsNsNUUXea4J_wKUd)IV9^)-vf)ov zA_c>_0_T2~j>~c6D}VNqzSm$8N6jGkGcAqnV&qh%%#1g^vb3>FcW6TE8y__OnBLQ> zM3+`()LPhMKCsSTos2kneeFC%u9em+AO54){A0mB=e6dY-Nklv*?fp>TJP9c1wBn= z{+`~+Z^?4UYD0woh?YW8XWHAM(QO0YTjS7iFamKy~%?agnk+3%c&HjbiZT$66dT$XYDkOlU-7j&1HuK zUo=pw&L*X+-aS2LEv&~I?dly!FsbW{7Gek<9_XD!o{gFG|5xWA?Q(}jaxCG^!NzD} zVq&&deis#spzTE2>+sJ9)(d^C*Qey(+M#{D{9(pm*%3%A zFf}PDX(`#o#YGqq$_lSZPv@A(8?;<>D9_H$R=>BY@QGQ#RB^9xb{6ANZJ3Wjq0qRu zh$PFOFU^WZ3C7obwT`pfI3VA5tGMHuvEJU^z7prXrOs-rw7k5$(yxf|VvGJV0a#r3 zvZsJOZ}juF5_W|-QKS6fW7ocnd<2zUTJNXSpN9F-&(ghMwQ80&n#|l$&kzViIJ!L$v_GOCt5?vmJ@T)IH zXRG$Qf>M9#=9)f?m1A*V_}$Jcv02>z5{};&4FTT((IGusU`e6$pc4q_*csC>bAc8rH)eCJki!=6t|N5mba1D&&Hsjt0) zu73wmK!OV1=yocGfxhwaO5+Cq2PREki`+)#E2%-LiY}wS-wI?ZW)E88yg2vQw|EvE zaCwzmy1(Bj{2c9yc`*MY;w6Pf+oiR8QElBw!X6m#4}D(xpvDi>;wufT1Uo&wac*Y2 zjgdlfI}S(Ah`Y2DVC_`1tS8C}HM9M`s{hG&5zi3ZWE{XO{H7)BGMg+wnOoBSv_Xw3 zX|h5MHcZXc)z#yrHpeLBF)Ab^gh#Jb-)pB)E%T-1@kSA2aFd3XL5b69ADH&5lf#{O z5d;kU9V}a12AJ31F=-k}r^yOu*GcE$iE>BKXl7>1V#^6?S?W@+wpi7`1$yOJy|>Dj zg(J380$4m2qqGPsa_~4ID@_Cfy)jz!JY6+ib##-P`Js8w+h_w}@1uRxg0MPtiXW=N z*=#UBsz}pBGhs>(nw_p0z7>s8|L?c;bRFssuYmM9&O+qDy`uf7#7b_|&weIU3>_;dW zy3P6-f7B>f#SySIuG8MwbPI8(m7YACaZO$$!g%`gZb|IKY(s#Ei`Ew~P-Ramt6S0B zA_uKE*WlK^4rAt#9sp#OH}iD%~IMk5jUf21icQompo=fLqL57 z%>OC?5G&E|;#APhhwo$?U8C>=`#j24>6 zxw>K(K40A%wFY~-P+Kv4ArbA?T>OE$0-NLs+gnu%WfI%%aNn~m8RNb-J1@#2;bKj6 zqqzx@L*y+-m~|9l+NWnhzt~vXWu!o=nx)NE3GdQaWQG;7jdnv|| z+)d;?sgj!8WTkaAu#G#Y9RENAJ3O2ZrD27gu(9G=MhZE75j8m3o9#d?qrqwUM38aMQ`NwAh}!X9)3Ac#v)ELd$8Pb+5cd7TTUSy$O*UY z8ScEY*K>bAk6M>jS9`DYq_|Gl%UzF*YF}(y+#S?1O6)YH^sArw^8pReL0OMfiRg2l9O8BNJ*C{(fuoV z*EeS#6Vt9wrg)XeZV?x2Pm9S4R(+?zy>56dhh%{=*AG3T1b*ZCnWLtrr6f6|&$#E* zUQ+$GJ)YpuEek{sGTMb9SQg+MErp7{QomqCr*K~}vZQE=Pq-UE$$**?v!uuV_%z|b zTG(^u-8o*Pnv;WZgi(p5hLMp`p|;oD=R19Zl5?NfLL?7H3j7ZM_#9!8M68h2ko9zp zcT3o=M#7Nh*xA(xNyAM1+V&kC&fiOQrOf3x<2(n-~!rYiqhFTZ0na&FljV2GiJj(ACxTff~m3v_t}IlXa~V zIa++)ae29_;6#^c5x`M!G?q$vdU|SObhFgK&iel3L!3aKlsL19?L;zRHCa|=K>rtm zhdtoq>!K5bgV#cCw3RD_1Jtq>t~6;5S-G~PQi4KtCx{6!A-}&Z0F$f%WqNmxWo2^{ z%=FeDx}e4-Q~6oHfP1z8`aP$Qr@)B&`c(6WqwnkNrt^8<&8eb_6{z~z^AO+2=TnH| z{WuJESq**@!D|2a@~HIzXg&+=El&X0lU{qB^Ua~%rbVC%a)y5Iv;n2vPtMcKo~<^w zvZ_2<%TD83TVK~Jc=adn8nvt@I>Oc)tV zgzt0{iocf1sL&E^@rbn1OU%voCA!ssZV4D8B4(S-6c4WNSfcB_k`h3eWhKmxn1oi( zyr*>0Wf;qu2CL(T^gf&oC>q@WL`OGgJ5rTdQc|L$a*?b|H@8NWatrWHlF!kqnB&sL zkA!6d%>KTkC)>O8#f$k!r?hMvefUS5Xh-yPb&r$+foL*IbRH@&ZjhR{A7Rf@&0_M}{*z)2vmPk`3u!;!1US!Wq`(+} z)@#RYjVyIb3yTYAsg{M=_D`1@_4M?JE1?9g7yaqaqx1Aowr!Dj1DG6IhH~}hMS)h} ztKL`T(m_nuNHYBryU9~rlZ`(G=#YPAAA7Mf?!5e=PBXQykbdR{>VF-bp^`4Mh;A0LSh3${7Kk2c4CC zG>}=ZpG`kTDt2?t2})Xy#SNL7vF ztpN_0b|sAJD@gQw6kr7#{QViq`ZITxVuV|E^(@!9_HoUgjL{E5mQLsv2!t{<#ij-ObDVV9AFWncg!{iK-*yX|~NrPia( zaKcV&#GQb?qovOHWbcDf!Z1JWJ4!z(&WKea=I=Ev{mVoAKoxNX`d_@U+xMK$Z)=4h z8^SaShmPNn{i|J-a;VEd-=BDiWRKm}uZi9U1_pd@cP-*-yzQ``yat$2k?r=LyrBBv z0~J~Wm(jPG$v#J9=a??NMhIB?Lz-N)grj`o(dSH-+O=QVdDRDFK=l?lDt)q%ph8kS z$p(E|*vzuNx(b+Syvp72=VM`pVC4>L(7z{J2OVf)i-aU__`~(e1%p0hbHxFZtPUh%IYzc_^VQfcV`g8a}VW?jalmE+Q zhw_3WlzaW6gZrQNXM*VYUWPB2!H-8Pr!aY6+2jcGaDs_I0v4@HqjxEQ;Wq{UKVIrB z>V|oO?rQE0F(T}~n>q{ws@TjiUf9ONWxVv@fXfEa4Q{KrlvC7oM8MWgPfkkO&;2DH zh7u2tYl+7m)hx}mdY0qx%`YsHM}S|C!72}rj^gN%JM;o(UH9pN%JuWa@MX9#e(a$y zIkhN2S508-gTPE;&60G=>}GG6C0r&H--tSHURojMvtvV}K><8L@s>Mc`^Uz{I$Ft} zwtO44b^+7@EQytc#pl$YfPpKg@wQCOq`z2MQQBkUtn%E`gI&_NJQlvnkpMw?a&vl> zxk=McnIS1ppZAV}0}y|cb`4a3++1T{$CzErvk=j_Pg!c2{;}P7q+yo2W}ZGSjTO&zzlr+BVUp(- z$<_d_cP!Tj`YgI;KRw@j(`p*O<;qvN@f%ds5IBWqX4eT|7P1G|<{E>hi3F@tGOSwr zzJCDxaOMM0ayuc+62P-`#0n^h&VEEAiO1MU*J&U~?}NTb2RlbqI*pwrZ!TH%$&!RGwd5EvXiIbad1<=(gAvC0B(U`qvx! zz)P-Wsb>#TF$z1mxV(&cRFavQ$uZqaRK69tHBvagZbbA*QNAv0Jpx9&Q-iHWgS8(k zxqkg9UHZa<0fFW(HzHc!lp>~C4kmHr9x>;D%LBHUX-V*Vp5xEXA-n`c+V^3E!}(-fhZzjls+8ol+X|ZbXu}N7 zSd(%dp&w(lxp#(?h&}F$|8fJiMUKQ20_lT|TqBJoSyv=)LM>#>f1rQA8Jlx5OT(wo z=b7xj6dN4x4_0`qP;R&*=7Gs#n^7lz+emY5veTN*HuByg!fQPqFl!PVNf@6xCgx(X z5^|qTNo+APEfnT4l%vymb_0Y6w-o6~3VIiJ^5up=YP1L)_2SVuqSm`JPRK0DeMt_s z`<3MLSEN}hcH6icn$#NtXlN)u)B=smuJGGtywsuGYupCKqw^csc?3`jz`?7~3VBYF zfkf@qD~0eMy15~&@LBS`B_1NiF;wzE`(KhFIqnI%D}aj8rJV<*@3C`C$E$xhk}p0l zy0y-zl0OVWv??p#oZ)rUq|11>&p{DTJROM=BJrI`NCIwextn-2TmlGp6UyRjwA1As_jgF5? z*o+k`b53GT15qexHI&nHMzW{EZXI)k$4(v@$g#aDlTe&~)D;pTmQ_sJ%_iO{urpg>XLNk8p= zkO|f};$?zUeFF_VfpubR?4k960yI){@<6qfVUd$@AS89eIue_E}k zod}q0Z7`eE2Vhir%3K5M7>DvlKtBS5oDL8uFcm16WRJBh)Rf0MX4q(YY6{>d05jmn zP{jV4_R@DY>eMj># zK46m|f$ps`Gvm_~<(hvThn02{2Y zTOkn1fXpJ4V56A*evk||G$~mk5G2@ll~hkxjeX?qz|B3v8dRzb_$V(J926ehr(B0H z>71W9n5{)(WY&|Ja}8U6$lFq7g1|V`b2S?*$4$?ajrvsek1T+6%6#yb26Fcf^0)K) z5W;(155VFWka8)?hnRe1wFhR6z{js2Y*|tPI+!cawi+`87|#rB*5w4pu9e<2X>#{m zP09vRqD{&Q0oM8e`w3d`LiOV8q)w@|PNB9wu-l}7Q8c+bpyaP{oD&hMdeaJG3ev{Q zSOtik3)HnxnH?!`f zNusTBm72U7&Wo@D(Cug?%~f)9a!XJGL|?H2W~If&ADv5QZ7a7@X{#@%&yecBIaZRc znk80sFF_HQr9y3><|JGzkm2kk|MH-j3DBWKxxR3`YVo8tZIPCH5&Q7%OVghzC0R;LAK4TFu@YFm=)I_XuXLohvr?Y1BLj$E75bgV ziY>goy<-(k!JDXOi|;9U&l?LVHi_@Hu<_NN?3yKem#W_bf@5P6?SuWPk`^~P4D!1h zk{(Vg_gIB22X28%uBJx=?I4w+4CGhi>n!!P)zxx9BcLdKf>eV`1;yGI&k{U$r(qys z{+4UVBGWrbiAWZ;pWAN;1=St3R*K8eL+zhz2f!yP(p`7v8Wl_iK!{LQvWEk5#B_W6 z8HnQNRB2^Y($a3A>VKs3$KDN`jL{H3Ord>;lpR@>GEh5(ctm-*PBi=>r>r z`mV@Hfoc}Wp26dewRMs$Oxje<5(L3q*h0L`xJ8_cvvZ@pJ{N6$!!eLq0oR!_ev@FO zE?cK!uH0HUo<}2`J?k$s&I=ZT0&HIVH8gc4Xc-BB)qA~ZAvK8iUa>j|@584-?n4_5 z%0yNc%OlO?K~BE?jYm&hLZac|x{ovG}#NvX2cXoTW5{WKFc}eUF^7HsT8zP#%{=so_3iK~B@+|<# zq$w;*WKJ|BBKqp{xQt*yMj4fG^;9m36yZIGu~k-t)QY8l@g#50Wi)} zq=fYg8UQnFgPNrCmq$;wRPg1ESW!*oTSQ@4Scrq66UgLQEwLFZZ!rkr?*EFcE?#zi zaVl3ZFtu#x#QmW!+gpC{$nl1NY1OmbaPL{H|AH1Db1eaJwd%~jCycWSOH}TM>u?;& zYA}lnZu}|I$}q&c`iK~H@3`88Ps=Ue{Fg**dzf@sbzVD0b}rj?my7wV3YC!UdDJiG zp)mw6Y`j%WH8bgg8x}6!MRK3)2*#fZ=~hJA5tHlP9f-p=M+iJ}obpm(?@+Y;QJJh4 zTlHj|VYB>_H+C*Wu99kmqCMYf(P%k;dcFL|sec~S^A`~2VjI{_Mqk(Xj00QM7vb#j zoq>81-ghryxNE_NkgQtrw6bwoL4s^%iu&KPPcDet;vs(;=A{e%J*Q7>&{@)cLW@|B z@YBB|yZv-j>lY20!B;4qoa7o9J`UFMU)mVZtXBJN^P`fcLm|A(i8P5S{}wXxzuYcD z=)5z!&_9e(62f)`A5592qUwgpYUoFXFJm=)`VCj-(CT!yQ`)sY)z3-)B=i6JsM5jL al0hrg=MuzEoxVvLs)EeRr+HGZ-v1A&)o9lM literal 0 HcmV?d00001 diff --git a/assets/share/rogue/blessing/BLESSING_STABLE_FLAG.png b/assets/share/rogue/blessing/BLESSING_STABLE_FLAG.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4d6ca807041db65ef1f2644a2b25a5a76b7a4b GIT binary patch literal 5916 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 literal 0 HcmV?d00001 diff --git a/assets/share/rogue/blessing/OCR_RESET_COUNT.png b/assets/share/rogue/blessing/OCR_RESET_COUNT.png new file mode 100644 index 0000000000000000000000000000000000000000..55de9d3ed8b46c5477907ad24a1ab1bd7b5b91d4 GIT binary patch literal 10252 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 literal 0 HcmV?d00001 diff --git a/assets/share/rogue/blessing/OCR_ROGUE_BUFF.png b/assets/share/rogue/blessing/OCR_ROGUE_BUFF.png new file mode 100644 index 0000000000000000000000000000000000000000..989c8ea069be6defb2265a170ec560d4538e7bb0 GIT binary patch literal 138365 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 literal 0 HcmV?d00001 diff --git a/assets/share/rogue/ui/PAGE_CHOOSE_MIRACLE.png b/assets/share/rogue/ui/PAGE_CHOOSE_MIRACLE.png new file mode 100644 index 0000000000000000000000000000000000000000..1af80558faf2dd3deb3aabf462f13a2f071b0165 GIT binary patch literal 9762 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 F@;`A$x5xkh literal 0 HcmV?d00001 diff --git a/config/template.json b/config/template.json index fbe284d7d..020892a60 100644 --- a/config/template.json +++ b/config/template.json @@ -77,5 +77,20 @@ "Name_3": "The_Invisible_Hand", "Name_4": "Nine_Billion_Names" } + }, + "Rogue": { + "Scheduler": { + "Enable": false, + "NextRun": "2020-01-01 00:00:00", + "Command": "Rogue", + "ServerUpdate": "04:00" + }, + "Rogue": { + "Path": "The Hunt", + "PresetResonanceFilter": "preset-1", + "CustomResonanceFilter": "回响构音:均晶转变 > 回响构音:零维强化\n> 回响构音:第二次初恋 > 回响构音:体验的富翁\n> 回响构音:局外人 > 回响构音:怀疑的四重根\n> 回响构音:诸法无我 > 回响构音:诸行无常\n> 回响构音:射不主皮 > 回响构音:柘弓危矢\n> 回响构音:激变变星 > 回响构音:极端氦闪\n> 回响构音:末日狂欢 > 回响构音:树苗长高舞", + "PresetBlessingFilter": "preset-1", + "CustomBlessingFilter": "巡猎-3 > 《冠军晚餐·猫的摇篮》 > 丰饶众生,一法界心 > 毁灭-3 \n> 火堆外的夜 > 巡猎-2 > 毁灭-2 > 巡猎 > reset > random" + } } } \ No newline at end of file diff --git a/dev_tools/keyword_extract.py b/dev_tools/keyword_extract.py index 82787c90b..fcd32928a 100644 --- a/dev_tools/keyword_extract.py +++ b/dev_tools/keyword_extract.py @@ -13,8 +13,8 @@ UI_LANGUAGES = ['cn', 'cht', 'en', 'jp'] def text_to_variable(text): text = re.sub("'s |s' ", '_', text) - text = re.sub('[ \-—:\'/•]+', '_', text) - text = re.sub(r'[(),#"?]|', '', text) + text = re.sub('[ \-—:\'/•.]+', '_', text) + text = re.sub(r'[(),#"?!&]|', '', text) # text = re.sub(r'[#_]?\d+(_times?)?', '', text) return text @@ -30,6 +30,12 @@ def dungeon_name(name: str) -> str: return name +def blessing_name(name: str) -> str: + name = text_to_variable(name) + name = re.sub(r'^\d', lambda match: f"_{match.group(0)}", name) + return name + + nickname_count = 0 @@ -147,7 +153,8 @@ class KeywordExtract: keyword_class, output_file: str = '', text_convert=text_to_variable, - generator: CodeGenerator = None + generator: CodeGenerator = None, + extra_attrs: dict[str, dict] = None ): """ Args: @@ -155,6 +162,7 @@ class KeywordExtract: output_file: text_convert: generator: Reuse an existing code generator + extra_attrs: Extra attributes write in keywords """ if generator is None: gen = CodeGenerator() @@ -166,6 +174,12 @@ class KeywordExtract: gen = generator last_id = getattr(gen, 'last_id', 0) + if extra_attrs: + keyword_num = len(self.keywords_id) + for attr_key, attr_value in extra_attrs.items(): + if len(attr_value) != keyword_num: + print(f"Extra attribute {attr_key} does not match the size of keywords") + return for index, keyword in enumerate(self.keywords_id): _, name = self.find_keyword(keyword, lang='en') name = text_convert(replace_templates(name)) @@ -174,6 +188,9 @@ class KeywordExtract: gen.ObjectAttr(key='name', value=name) for lang in UI_LANGUAGES: gen.ObjectAttr(key=lang, value=replace_templates(self.find_keyword(keyword, lang=lang)[1])) + if extra_attrs: + for attr_key, attr_value in extra_attrs.items(): + gen.ObjectAttr(key=attr_key, value=attr_value[keyword]) gen.last_id = index + last_id + 1 if output_file: @@ -279,6 +296,41 @@ class KeywordExtract: self.load_quests(quests) self.write_keywords(keyword_class='BattlePassQuest', output_file='./tasks/battle_pass/keywords/quest.py') + def generate_rogue_buff(self): + # paths + aeons = read_file(os.path.join(TextMap.DATA_FOLDER, 'ExcelOutput', 'RogueAeon.json')) + aeons_hash = [deep_get(aeon, '1.RogueAeonPathName2.Hash') for aeon in aeons.values()] + self.keywords_id = aeons_hash + self.write_keywords(keyword_class='RoguePath', output_file='./tasks/rogue/keywords/path.py') + + # blessings + blessings_info = read_file(os.path.join(TextMap.DATA_FOLDER, 'ExcelOutput', 'RogueBuff.json')) + blessings_name_map = read_file(os.path.join(TextMap.DATA_FOLDER, 'ExcelOutput', 'RogueMazeBuff.json')) + blessings_id = [deep_get(blessing, '1.MazeBuffID') for blessing in blessings_info.values() + if not deep_get(blessing, '1.AeonID')][1:] + resonances_id = [deep_get(blessing, '1.MazeBuffID') for blessing in blessings_info.values() + if deep_get(blessing, '1.AeonID')] + + def get_blessing_infos(id_list): + blessings_hash = [deep_get(blessings_name_map, f"{blessing_id}.1.BuffName.Hash") + for blessing_id in id_list] + blessings_path_id = {blessing_hash: int(deep_get(blessings_info, f'{blessing_id}.1.RogueBuffType')) - 119 + # 119 is the magic number make type match with path in keyword above + for blessing_hash, blessing_id in zip(blessings_hash, id_list)} + blessings_rarity = {blessing_hash: deep_get(blessings_info, f'{blessing_id}.1.RogueBuffRarity') + for blessing_hash, blessing_id in zip(blessings_hash, id_list)} + return blessings_hash, {'path_id': blessings_path_id, 'rarity': blessings_rarity} + + hash_list, extra_attrs = get_blessing_infos(blessings_id) + self.keywords_id = hash_list + self.write_keywords(keyword_class='RogueBlessing', output_file='./tasks/rogue/keywords/blessing.py', + text_convert=blessing_name, extra_attrs=extra_attrs) + + hash_list, extra_attrs = get_blessing_infos(resonances_id) + self.keywords_id = hash_list + self.write_keywords(keyword_class='RogueResonance', output_file='./tasks/rogue/keywords/resonance.py', + text_convert=blessing_name, extra_attrs=extra_attrs) + def generate(self): self.load_keywords(['模拟宇宙', '拟造花萼(金)', '拟造花萼(赤)', '凝滞虚影', '侵蚀隧洞', '历战余响', '忘却之庭']) self.write_keywords(keyword_class='DungeonNav', output_file='./tasks/dungeon/keywords/nav.py') @@ -308,6 +360,7 @@ class KeywordExtract: self.load_keywords(['养成材料', '光锥', '遗器', '其他材料', '消耗品', '任务', '贵重物']) self.write_keywords(keyword_class='ItemTab', text_convert=lambda name: name.replace(' ', ''), output_file='./tasks/item/keywords/tab.py') + self.generate_rogue_buff() if __name__ == '__main__': diff --git a/module/config/argument/args.json b/module/config/argument/args.json index 59cb81b0a..00f1bf30c 100644 --- a/module/config/argument/args.json +++ b/module/config/argument/args.json @@ -432,5 +432,67 @@ ] } } + }, + "Rogue": { + "Scheduler": { + "Enable": { + "type": "checkbox", + "value": false + }, + "NextRun": { + "type": "datetime", + "value": "2020-01-01 00:00:00", + "validate": "datetime" + }, + "Command": { + "type": "input", + "value": "Rogue", + "display": "hide" + }, + "ServerUpdate": { + "type": "input", + "value": "04:00", + "display": "hide" + } + }, + "Rogue": { + "Path": { + "type": "select", + "value": "The Hunt", + "option": [ + "Preservation", + "Remembrance", + "Nihility", + "Abundance", + "The Hunt", + "Destruction", + "Elation" + ] + }, + "PresetResonanceFilter": { + "type": "select", + "value": "preset-1", + "option": [ + "preset-1", + "custom" + ] + }, + "CustomResonanceFilter": { + "type": "textarea", + "value": "回响构音:均晶转变 > 回响构音:零维强化\n> 回响构音:第二次初恋 > 回响构音:体验的富翁\n> 回响构音:局外人 > 回响构音:怀疑的四重根\n> 回响构音:诸法无我 > 回响构音:诸行无常\n> 回响构音:射不主皮 > 回响构音:柘弓危矢\n> 回响构音:激变变星 > 回响构音:极端氦闪\n> 回响构音:末日狂欢 > 回响构音:树苗长高舞" + }, + "PresetBlessingFilter": { + "type": "select", + "value": "preset-1", + "option": [ + "preset-1", + "custom" + ] + }, + "CustomBlessingFilter": { + "type": "textarea", + "value": "巡猎-3 > 《冠军晚餐·猫的摇篮》 > 丰饶众生,一法界心 > 毁灭-3 \n> 火堆外的夜 > 巡猎-2 > 毁灭-2 > 巡猎 > reset > random" + } + } } } \ No newline at end of file diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index 8eb6ba1ce..cacdb6523 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -73,7 +73,7 @@ Dungeon: Name: # Options will be injected in config updater value: Calyx_Golden_Treasures - option: [Calyx_Golden_Treasures, ] + option: [ Calyx_Golden_Treasures, ] NameAtDoubleCalyx: # Options will be injected in config updater value: Calyx_Golden_Treasures @@ -83,26 +83,50 @@ Dungeon: option: [ 1, 2, 3, 4, 5, 6 ] Support: value: when_daily - option: [do_not_use, always_use, when_daily] + option: [ do_not_use, always_use, when_daily ] SupportCharacter: # Options will be injected in config updater value: FirstCharacter - option: [FirstCharacter, ] + option: [ FirstCharacter, ] Assignment: Duration: value: 20 - option: [4, 8, 12, 20] + option: [ 4, 8, 12, 20 ] # Options in Name_x will be injected in config updater Name_1: value: Nameless_Land_Nameless_People - option: [Nameless_Land_Nameless_People, ] + option: [ Nameless_Land_Nameless_People, ] Name_2: value: Akashic_Records - option: [Nameless_Land_Nameless_People, ] + option: [ Nameless_Land_Nameless_People, ] Name_3: value: The_Invisible_Hand - option: [Nameless_Land_Nameless_People, ] + option: [ Nameless_Land_Nameless_People, ] Name_4: value: Nine_Billion_Names - option: [Nameless_Land_Nameless_People, ] \ No newline at end of file + option: [ Nameless_Land_Nameless_People, ] + +# ==================== Rogue ==================== + +Rogue: + Path: + value: The Hunt + option: [ Preservation, Remembrance, Nihility, Abundance, The Hunt, Destruction, Elation ] + PresetResonanceFilter: + value: preset-1 + option: [ preset-1, custom ] + CustomResonanceFilter: |- + 回响构音:均晶转变 > 回响构音:零维强化 + > 回响构音:第二次初恋 > 回响构音:体验的富翁 + > 回响构音:局外人 > 回响构音:怀疑的四重根 + > 回响构音:诸法无我 > 回响构音:诸行无常 + > 回响构音:射不主皮 > 回响构音:柘弓危矢 + > 回响构音:激变变星 > 回响构音:极端氦闪 + > 回响构音:末日狂欢 > 回响构音:树苗长高舞 + PresetBlessingFilter: + value: preset-1 + option: [ preset-1, custom ] + CustomBlessingFilter: |- + 巡猎-3 > 《冠军晚餐·猫的摇篮》 > 丰饶众生,一法界心 > 毁灭-3 + > 火堆外的夜 > 巡猎-2 > 毁灭-2 > 巡猎 > reset > random diff --git a/module/config/argument/menu.json b/module/config/argument/menu.json index e164e6947..cd12b2b03 100644 --- a/module/config/argument/menu.json +++ b/module/config/argument/menu.json @@ -16,5 +16,12 @@ "BattlePass", "Assignment" ] + }, + "Rogue": { + "menu": "list", + "page": "setting", + "tasks": [ + "Rogue" + ] } } \ No newline at end of file diff --git a/module/config/argument/task.yaml b/module/config/argument/task.yaml index 6edcdb991..2563e53d5 100644 --- a/module/config/argument/task.yaml +++ b/module/config/argument/task.yaml @@ -32,3 +32,13 @@ Daily: Assignment: - Scheduler - Assignment + +# ==================== Rogue ==================== + +Rogue: + menu: 'list' + page: 'setting' + tasks: + Rogue: + - Scheduler + - Rogue diff --git a/module/config/config_generated.py b/module/config/config_generated.py index 05646fbf2..895668b75 100644 --- a/module/config/config_generated.py +++ b/module/config/config_generated.py @@ -51,3 +51,10 @@ class GeneratedConfig: Assignment_Name_2 = 'Akashic_Records' # Nine_Billion_Names, Destruction_of_the_Destroyer, Winter_Soldiers, Born_to_Obey, Root_Out_the_Turpitude, Fire_Lord_Inflames_Blades_of_War, Nameless_Land_Nameless_People, Akashic_Records, The_Invisible_Hand, Abandoned_and_Insulted, Spring_of_Life, The_Land_of_Gold, The_Blossom_in_the_Storm Assignment_Name_3 = 'The_Invisible_Hand' # Nine_Billion_Names, Destruction_of_the_Destroyer, Winter_Soldiers, Born_to_Obey, Root_Out_the_Turpitude, Fire_Lord_Inflames_Blades_of_War, Nameless_Land_Nameless_People, Akashic_Records, The_Invisible_Hand, Abandoned_and_Insulted, Spring_of_Life, The_Land_of_Gold, The_Blossom_in_the_Storm Assignment_Name_4 = 'Nine_Billion_Names' # Nine_Billion_Names, Destruction_of_the_Destroyer, Winter_Soldiers, Born_to_Obey, Root_Out_the_Turpitude, Fire_Lord_Inflames_Blades_of_War, Nameless_Land_Nameless_People, Akashic_Records, The_Invisible_Hand, Abandoned_and_Insulted, Spring_of_Life, The_Land_of_Gold, The_Blossom_in_the_Storm + + # Group `Rogue` + Rogue_Path = 'The Hunt' # Preservation, Remembrance, Nihility, Abundance, The Hunt, Destruction, Elation + Rogue_PresetResonanceFilter = 'preset-1' # preset-1, custom + Rogue_CustomResonanceFilter = '回响构音:均晶转变 > 回响构音:零维强化\n> 回响构音:第二次初恋 > 回响构音:体验的富翁\n> 回响构音:局外人 > 回响构音:怀疑的四重根\n> 回响构音:诸法无我 > 回响构音:诸行无常\n> 回响构音:射不主皮 > 回响构音:柘弓危矢\n> 回响构音:激变变星 > 回响构音:极端氦闪\n> 回响构音:末日狂欢 > 回响构音:树苗长高舞' + Rogue_PresetBlessingFilter = 'preset-1' # preset-1, custom + Rogue_CustomBlessingFilter = '巡猎-3 > 《冠军晚餐·猫的摇篮》 > 丰饶众生,一法界心 > 毁灭-3 \n> 火堆外的夜 > 巡猎-2 > 毁灭-2 > 巡猎 > reset > random' diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 465a06efb..0b6541eba 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -7,6 +7,10 @@ "Daily": { "name": "Daily", "help": "" + }, + "Rogue": { + "name": "Menu.Rogue.name", + "help": "Menu.Rogue.help" } }, "Task": { @@ -33,6 +37,10 @@ "Assignment": { "name": "Assignment", "help": "" + }, + "Rogue": { + "name": "Task.Rogue.name", + "help": "Task.Rogue.help" } }, "Scheduler": { @@ -359,6 +367,43 @@ "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)" } }, + "Rogue": { + "_info": { + "name": "Rogue._info.name", + "help": "Rogue._info.help" + }, + "Path": { + "name": "Rogue.Path.name", + "help": "Rogue.Path.help", + "Preservation": "Preservation", + "Remembrance": "Remembrance", + "Nihility": "Nihility", + "Abundance": "Abundance", + "The Hunt": "The Hunt", + "Destruction": "Destruction", + "Elation": "Elation" + }, + "PresetResonanceFilter": { + "name": "Rogue.PresetResonanceFilter.name", + "help": "Rogue.PresetResonanceFilter.help", + "preset-1": "preset-1", + "custom": "custom" + }, + "CustomResonanceFilter": { + "name": "Rogue.CustomResonanceFilter.name", + "help": "Rogue.CustomResonanceFilter.help" + }, + "PresetBlessingFilter": { + "name": "Rogue.PresetBlessingFilter.name", + "help": "Rogue.PresetBlessingFilter.help", + "preset-1": "preset-1", + "custom": "custom" + }, + "CustomBlessingFilter": { + "name": "Rogue.CustomBlessingFilter.name", + "help": "Rogue.CustomBlessingFilter.help" + } + }, "Gui": { "Aside": { "Install": "Install", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index b3e809399..12c674571 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -7,6 +7,10 @@ "Daily": { "name": "Menu.Daily.name", "help": "Menu.Daily.help" + }, + "Rogue": { + "name": "Menu.Rogue.name", + "help": "Menu.Rogue.help" } }, "Task": { @@ -33,6 +37,10 @@ "Assignment": { "name": "依頼設定", "help": "" + }, + "Rogue": { + "name": "Task.Rogue.name", + "help": "Task.Rogue.help" } }, "Scheduler": { @@ -359,6 +367,43 @@ "The_Blossom_in_the_Storm": "気態流体と種子(嵐の中で咲き誇る花)" } }, + "Rogue": { + "_info": { + "name": "Rogue._info.name", + "help": "Rogue._info.help" + }, + "Path": { + "name": "Rogue.Path.name", + "help": "Rogue.Path.help", + "Preservation": "Preservation", + "Remembrance": "Remembrance", + "Nihility": "Nihility", + "Abundance": "Abundance", + "The Hunt": "The Hunt", + "Destruction": "Destruction", + "Elation": "Elation" + }, + "PresetResonanceFilter": { + "name": "Rogue.PresetResonanceFilter.name", + "help": "Rogue.PresetResonanceFilter.help", + "preset-1": "preset-1", + "custom": "custom" + }, + "CustomResonanceFilter": { + "name": "Rogue.CustomResonanceFilter.name", + "help": "Rogue.CustomResonanceFilter.help" + }, + "PresetBlessingFilter": { + "name": "Rogue.PresetBlessingFilter.name", + "help": "Rogue.PresetBlessingFilter.help", + "preset-1": "preset-1", + "custom": "custom" + }, + "CustomBlessingFilter": { + "name": "Rogue.CustomBlessingFilter.name", + "help": "Rogue.CustomBlessingFilter.help" + } + }, "Gui": { "Aside": { "Install": "インストール", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index c636b6183..6fc2f823a 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -7,6 +7,10 @@ "Daily": { "name": "每日", "help": "" + }, + "Rogue": { + "name": "模拟宇宙", + "help": "" } }, "Task": { @@ -33,6 +37,10 @@ "Assignment": { "name": "委托设置", "help": "" + }, + "Rogue": { + "name": "模拟宇宙", + "help": "" } }, "Scheduler": { @@ -359,6 +367,43 @@ "The_Blossom_in_the_Storm": "气态流体&种子(风暴中怒放的花)" } }, + "Rogue": { + "_info": { + "name": "模拟宇宙", + "help": "" + }, + "Path": { + "name": "命途", + "help": "", + "Preservation": "存护", + "Remembrance": "记忆", + "Nihility": "虚无", + "Abundance": "丰饶", + "The Hunt": "巡猎", + "Destruction": "毁灭", + "Elation": "欢愉" + }, + "PresetResonanceFilter": { + "name": "命途回响过滤器", + "help": "", + "preset-1": "预设 1", + "custom": "自定义" + }, + "CustomResonanceFilter": { + "name": "自定义命途回响过滤器", + "help": "" + }, + "PresetBlessingFilter": { + "name": "祝福过滤器", + "help": "", + "preset-1": "预设 1", + "custom": "自定义" + }, + "CustomBlessingFilter": { + "name": "自定义祝福过滤器", + "help": "" + } + }, "Gui": { "Aside": { "Install": "安装", @@ -452,4 +497,4 @@ "Clear": "清除" } } -} \ No newline at end of file +} diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index f57426a53..32fb043e3 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -7,6 +7,10 @@ "Daily": { "name": "每日", "help": "" + }, + "Rogue": { + "name": "Menu.Rogue.name", + "help": "Menu.Rogue.help" } }, "Task": { @@ -33,6 +37,10 @@ "Assignment": { "name": "委託設置", "help": "" + }, + "Rogue": { + "name": "Task.Rogue.name", + "help": "Task.Rogue.help" } }, "Scheduler": { @@ -359,6 +367,43 @@ "The_Blossom_in_the_Storm": "氣態流體&種子(風暴中怒放的花)" } }, + "Rogue": { + "_info": { + "name": "Rogue._info.name", + "help": "Rogue._info.help" + }, + "Path": { + "name": "Rogue.Path.name", + "help": "Rogue.Path.help", + "Preservation": "Preservation", + "Remembrance": "Remembrance", + "Nihility": "Nihility", + "Abundance": "Abundance", + "The Hunt": "The Hunt", + "Destruction": "Destruction", + "Elation": "Elation" + }, + "PresetResonanceFilter": { + "name": "Rogue.PresetResonanceFilter.name", + "help": "Rogue.PresetResonanceFilter.help", + "preset-1": "preset-1", + "custom": "custom" + }, + "CustomResonanceFilter": { + "name": "Rogue.CustomResonanceFilter.name", + "help": "Rogue.CustomResonanceFilter.help" + }, + "PresetBlessingFilter": { + "name": "Rogue.PresetBlessingFilter.name", + "help": "Rogue.PresetBlessingFilter.help", + "preset-1": "preset-1", + "custom": "custom" + }, + "CustomBlessingFilter": { + "name": "Rogue.CustomBlessingFilter.name", + "help": "Rogue.CustomBlessingFilter.help" + } + }, "Gui": { "Aside": { "Install": "安裝", diff --git a/tasks/rogue/assets/assets_rogue_blessing.py b/tasks/rogue/assets/assets_rogue_blessing.py new file mode 100644 index 000000000..dbb7c53da --- /dev/null +++ b/tasks/rogue/assets/assets_rogue_blessing.py @@ -0,0 +1,65 @@ +from module.base.button import Button, ButtonWrapper + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.button_extract ``` + +BLESSING_ENFORCE = ButtonWrapper( + name='BLESSING_ENFORCE', + share=Button( + file='./assets/share/rogue/blessing/BLESSING_ENFORCE.png', + area=(500, 141, 608, 556), + search=(480, 121, 628, 576), + color=(123, 100, 78), + button=(500, 141, 608, 556), + ), +) +BLESSING_RESET = ButtonWrapper( + name='BLESSING_RESET', + share=Button( + file='./assets/share/rogue/blessing/BLESSING_RESET.png', + area=(652, 629, 889, 677), + search=(632, 609, 909, 697), + color=(204, 203, 204), + button=(652, 629, 889, 677), + ), +) +BLESSING_STABLE_FLAG = ButtonWrapper( + name='BLESSING_STABLE_FLAG', + share=Button( + file='./assets/share/rogue/blessing/BLESSING_STABLE_FLAG.png', + area=(846, 520, 896, 542), + search=(826, 500, 916, 562), + color=(250, 250, 250), + button=(846, 520, 896, 542), + ), +) +CONFIRM = ButtonWrapper( + name='CONFIRM', + share=Button( + file='./assets/share/rogue/blessing/CONFIRM.png', + area=(960, 629, 1233, 677), + search=(940, 609, 1253, 697), + color=(217, 218, 218), + button=(960, 629, 1233, 677), + ), +) +OCR_RESET_COUNT = ButtonWrapper( + name='OCR_RESET_COUNT', + share=Button( + file='./assets/share/rogue/blessing/OCR_RESET_COUNT.png', + area=(714, 595, 824, 620), + search=(694, 575, 844, 640), + color=(37, 37, 41), + button=(714, 595, 824, 620), + ), +) +OCR_ROGUE_BUFF = ButtonWrapper( + name='OCR_ROGUE_BUFF', + share=Button( + file='./assets/share/rogue/blessing/OCR_ROGUE_BUFF.png', + area=(155, 139, 1125, 337), + search=(135, 119, 1145, 357), + color=(79, 86, 104), + button=(155, 139, 1125, 337), + ), +) diff --git a/tasks/rogue/assets/assets_rogue_ui.py b/tasks/rogue/assets/assets_rogue_ui.py new file mode 100644 index 000000000..8a9f258eb --- /dev/null +++ b/tasks/rogue/assets/assets_rogue_ui.py @@ -0,0 +1,25 @@ +from module.base.button import Button, ButtonWrapper + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.button_extract ``` + +PAGE_CHOOSE_BUFF = ButtonWrapper( + name='PAGE_CHOOSE_BUFF', + share=Button( + file='./assets/share/rogue/ui/PAGE_CHOOSE_BUFF.png', + area=(1105, 95, 1154, 113), + search=(1085, 75, 1174, 133), + color=(81, 82, 83), + button=(1105, 95, 1154, 113), + ), +) +PAGE_CHOOSE_MIRACLE = ButtonWrapper( + name='PAGE_CHOOSE_MIRACLE', + share=Button( + file='./assets/share/rogue/ui/PAGE_CHOOSE_MIRACLE.png', + area=(988, 17, 1028, 57), + search=(968, 0, 1048, 77), + color=(40, 39, 34), + button=(988, 17, 1028, 57), + ), +) diff --git a/tasks/rogue/blessing.py b/tasks/rogue/blessing.py new file mode 100644 index 000000000..def18136f --- /dev/null +++ b/tasks/rogue/blessing.py @@ -0,0 +1,295 @@ +import re + +import numpy as np + +from dev_tools.keyword_extract import UI_LANGUAGES +from module.base.filter import Filter +from module.base.timer import Timer +from module.base.utils import area_offset +from module.logger import logger +from module.ocr.ocr import Ocr, OcrResultButton, DigitCounter +from tasks.rogue.assets.assets_rogue_blessing import * +from tasks.rogue.keywords import * +from tasks.rogue.preset import * +from tasks.rogue.ui import RogueUI + +REGEX_PUNCTUATION = re.compile(r'[ ,.\'"“”,。::!!??·•—/()()「」『』【】]') + + +def parse_name(n): + n = REGEX_PUNCTUATION.sub('', str(n)).lower() + return n + + +def get_regex_from_keyword_name(keyword, attr_name): + regex_pat = "" + attrs = tuple() + for server in UI_LANGUAGES: + string = "" + for path in keyword.instances.values(): + string += f"{parse_name(getattr(path, server))}|" + # some pattern contain each other, make sure each pattern end with "-" or the end of string + regex_pat += f"(?:({string[:-1]})(?:-|$))?" + attrs += (f"{attr_name}_{server}",) + return regex_pat, attrs + + +# normal blessing +pattern = "" +BLESSING_FILTER_ATTR = tuple() +PATH_ATTR_NAME = 'path' +path_regex, path_attr = get_regex_from_keyword_name(RoguePath, PATH_ATTR_NAME) +pattern += path_regex +BLESSING_FILTER_ATTR += path_attr + +pattern += "([123])?-?" +BLESSING_FILTER_ATTR += ("rarity",) +BLESSING_ATTR_NAME = 'blessing' +blessing_regex, blessing_attr = get_regex_from_keyword_name(RogueBlessing, BLESSING_ATTR_NAME) +pattern += blessing_regex +BLESSING_FILTER_ATTR += blessing_attr + +FILETER_REGEX = re.compile(pattern) +BLESSING_FILTER_PRESET = ("reset", "same_path", "random") +BLESSING_FILTER = Filter(FILETER_REGEX, BLESSING_FILTER_ATTR, BLESSING_FILTER_PRESET) + +# resonance +RESONANCE_ATTR_NAME = 'resonance' +pattern, RESONANCE_FILTER_ATTR = get_regex_from_keyword_name(RogueResonance, 'resonance') + +FILETER_REGEX = re.compile(pattern) +RESONANCE_FILTER_PRESET = ("random",) +RESONANCE_FILTER = Filter(FILETER_REGEX, RESONANCE_FILTER_ATTR, RESONANCE_FILTER_PRESET) + + +class RogueBuffOcr(Ocr): + merge_thres_x = 40 + + def after_process(self, result): + result = super().after_process(result) + if self.lang == 'ch': + replace_pattern_dict = { + "蓬失": "蓬矢", + "柘弓危失": "柘弓危矢", + "飞虹凿齿": "飞虹诛凿齿", + "天培步危": "天棓步危", + "云[摘销]": "云镝", + "制桑": "制穹桑", + "乌号基": "乌号綦", + "追摩物": "追孽物", + "特月": "狩月", + "彤弓素增": "彤弓素矰", + "苦表": "苦衷", + "[沦沧]肌髓": "沦浃肌髓", + "进发": "迸发", + "永缩体": "永坍缩体", + } + for pattern, replace in replace_pattern_dict.items(): + result = re.sub(pattern, replace, result) + return result + + +class RogueBlessingUI(RogueUI): + def buffs_recognition(self): + ocr = RogueBuffOcr(OCR_ROGUE_BUFF) + results = ocr.matched_ocr(self.device.image, [RogueBlessing, RogueResonance]) + + if results: + logger.info(f"Buffs recognized: {len(results)}") + else: + logger.warning("No buff recognized") + self.blessings = results + return results + + def ui_select_blessing(self, blessing: OcrResultButton | None, skip_first_screenshot=True, enforce=False): + """ + Select buff once. Multiple calls needed if there's more than one time to choose + It might occur that all listed blessings are not recognized + So this method provides a hard code way to choose one, which fit in case when blessing num is 1-3 + """ + + def is_blessing_selected(): + """ + There is a white border if a blessing is selected. + """ + top_border = area_offset(blessing.area, (0, -180)) + return self.image_color_count(top_border, (255, 255, 255)) + + def is_select_blessing_complete(): + """ + Case 1: back to main page + Case 2: choose curio + Case 3: another choose blessings, but no blessing is selected when the new selection page loaded + """ + return (self.is_in_main() or self.is_page_choose_curio() + or (self.is_page_choose_blessing() and not is_blessing_selected())) + + interval = Timer(1) + if not blessing: + enforce = True + + # start -> selected + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + if is_blessing_selected(): + if enforce: + logger.info("Buff selected (enforce)") + else: + logger.info(f"Buff {blessing} selected") + break + if interval.reached(): + if enforce: + self.device.click(BLESSING_ENFORCE) + else: + self.device.click(blessing) + interval.reset() + + skip_first_screenshot = True + # selected -> confirm + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + if is_select_blessing_complete(): + break + if interval.reached(): + self.device.click(CONFIRM) + interval.reset() + + def get_reset_count(self): + current, _, _ = DigitCounter(OCR_RESET_COUNT).ocr_single_line(self.device.image) + return current + + def wait_until_blessing_loaded(self, skip_first_screenshot=True): + timeout = Timer(2, count=4).start() + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + if timeout.reached(): + logger.warning('Wait blessing page loaded timeout') + return False + if self.image_color_count(BLESSING_STABLE_FLAG, (255, 255, 255)): + logger.info("Blessing page loaded") + return True + + def reset_blessing_list(self, skip_first_screenshot=True): + if not self.is_page_choose_blessing(): + return False + + reset_count = self.get_reset_count() + if not reset_count: + return False + + interval = Timer(1) + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + self.device.screenshot() + + new_count = self.get_reset_count() + + if reset_count - new_count == 1: + logger.info("Reset once") + break + if interval.reached(): + self.device.click(BLESSING_RESET) + interval.reset() + return True + + +class RogueBlessingSelector(RogueBlessingUI): + """ + Usage: + self = RogueBlessingSelector('alas') + self.device.screenshot() + self.buff_recognition() + self.select_blessing(self.) + """ + + def apply_filter(self): + paths = RoguePath.instances + + if not self.blessings: + return [] + + if isinstance(self.blessings[0].matched_keyword, RogueBlessing): + for blessing in self.blessings: + path = paths[blessing.matched_keyword.path_id] + for server in UI_LANGUAGES: + setattr(blessing, f"{PATH_ATTR_NAME}_{server}", parse_name(getattr(path, server))) + setattr(blessing, f"{BLESSING_ATTR_NAME}_{server}", + parse_name(getattr(blessing.matched_keyword, server))) + setattr(blessing, "rarity", getattr(blessing.matched_keyword, "rarity")) + + if self.config.Rogue_PresetBlessingFilter == 'preset-1': + BLESSING_FILTER.load(parse_name(BLESSING_PRESET_1)) + if self.config.Rogue_PresetBlessingFilter == 'custom': + BLESSING_FILTER.load(parse_name(self.config.Rogue_CustomBlessingFilter)) + + if isinstance(self.blessings[0].matched_keyword, RogueResonance): + if len(self.blessings) == 1: # resonance can not be reset. So have not choice when there's only one option + return self.blessings + for blessing in self.blessings: + for server in UI_LANGUAGES: + setattr(blessing, f"{RESONANCE_ATTR_NAME}_{server}", + parse_name(getattr(blessing.matched_keyword, server))) + + if self.config.Rogue_PresetResonanceFilter == 'preset-1': + RESONANCE_FILTER.load(parse_name(RESONANCE_PRESET_1)) + if self.config.Rogue_PresetResonanceFilter == 'custom': + RESONANCE_FILTER.load(parse_name(self.config.Rogue_CustomResonanceFilter)) + + priority = BLESSING_FILTER.apply(self.blessings) + return priority + + def select_blessing(self, priority: list): + if not self.blessings: + logger.info('No blessing recognized, randomly choose one') + self.ui_select_blessing(None, enforce=True) + return + + if not len(priority): + logger.info('No blessing project satisfies current filter, randomly choose one') + choose = np.random.choice(self.blessings) + self.ui_select_blessing(choose) + return + + for option in priority: + # preset + if isinstance(option, str): + if option.lower() == 'reset': + if self.reset_blessing_list(): + self.wait_until_blessing_loaded() + self.buffs_recognition() + self.select_blessing(self.apply_filter()) + return + else: + continue + if option.lower() == 'same_path': + chosen = False + for blessing in self.blessings: + if blessing.path_id == self.path.id: + self.ui_select_blessing(blessing) + chosen = True + if chosen: + return + else: + continue + if option.lower() == 'random': + choose = np.random.choice(self.blessings) + self.ui_select_blessing(choose) + return + + if isinstance(option, OcrResultButton): + self.ui_select_blessing(option) + return diff --git a/tasks/rogue/keywords/__init__.py b/tasks/rogue/keywords/__init__.py new file mode 100644 index 000000000..d8cb6676c --- /dev/null +++ b/tasks/rogue/keywords/__init__.py @@ -0,0 +1,5 @@ +import tasks.rogue.keywords.blessing as KEYWORDS_ROGUE_BLESSING +import tasks.rogue.keywords.path as KEYWORDS_ROGUE_PATH +import tasks.rogue.keywords.resonance as KEYWORDS_ROGUE_RESONANCE + +from tasks.rogue.keywords.classes import RogueBlessing, RoguePath, RogueResonance diff --git a/tasks/rogue/keywords/blessing.py b/tasks/rogue/keywords/blessing.py new file mode 100644 index 000000000..1b3ee5510 --- /dev/null +++ b/tasks/rogue/keywords/blessing.py @@ -0,0 +1,1265 @@ +from .classes import RogueBlessing + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.keyword_extract ``` + +Divine_Construct_Resonance_Transfer = RogueBlessing( + id=1, + name='Divine_Construct_Resonance_Transfer', + cn='神性构筑•谐振传递', + cht='神性構築•諧振傳遞', + en='Divine Construct: Resonance Transfer', + jp='神性構築・共鳴伝達', + path_id=1, + rarity=3, +) +Divine_Construct_Metastatic_Field = RogueBlessing( + id=2, + name='Divine_Construct_Metastatic_Field', + cn='神性构筑•超静定场', + cht='神性構築•超靜定場', + en='Divine Construct: Metastatic Field', + jp='神性構築・不静定構造', + path_id=1, + rarity=3, +) +Divine_Construct_Macrosegregation = RogueBlessing( + id=3, + name='Divine_Construct_Macrosegregation', + cn='神性构筑•宏观偏析', + cht='神性構築•宏觀偏析', + en='Divine Construct: Macrosegregation', + jp='神性構築・マクロ偏析', + path_id=1, + rarity=3, +) +Interstellar_Construct_Shear_Structure = RogueBlessing( + id=4, + name='Interstellar_Construct_Shear_Structure', + cn='星间构筑•切变结构', + cht='星間構築•切變結構', + en='Interstellar Construct: Shear Structure', + jp='星間構築・剪断構造', + path_id=1, + rarity=2, +) +Interstellar_Construct_Burst_Lattice = RogueBlessing( + id=5, + name='Interstellar_Construct_Burst_Lattice', + cn='星间构筑•迸裂晶格', + cht='星間構築•迸裂晶格', + en='Interstellar Construct: Burst Lattice', + jp='星間構築・格子欠陥', + path_id=1, + rarity=2, +) +Interstellar_Construct_Solid_Solution = RogueBlessing( + id=6, + name='Interstellar_Construct_Solid_Solution', + cn='星间构筑•固溶强化', + cht='星間構築•固溶強化', + en='Interstellar Construct: Solid Solution', + jp='星間構築・固溶強化', + path_id=1, + rarity=2, +) +Interstellar_Construct_Safe_Load = RogueBlessing( + id=7, + name='Interstellar_Construct_Safe_Load', + cn='星间构筑•安全载荷', + cht='星間構築•安全載荷', + en='Interstellar Construct: Safe Load', + jp='星間構築・安全荷重', + path_id=1, + rarity=2, +) +Interstellar_Construct_Sanctuary = RogueBlessing( + id=8, + name='Interstellar_Construct_Sanctuary', + cn='星间构筑•回馈庇护', + cht='星間構築•回饋庇護', + en='Interstellar Construct: Sanctuary', + jp='星間構築・反作用庇護', + path_id=1, + rarity=2, +) +Interstellar_Construct_Quadrangular_Pyramid = RogueBlessing( + id=9, + name='Interstellar_Construct_Quadrangular_Pyramid', + cn='星间构筑•四棱锥体', + cht='星間構築•四稜錐體', + en='Interstellar Construct: Quadrangular Pyramid', + jp='星間構築・四角錐', + path_id=1, + rarity=2, +) +Interstellar_Construct_Hypoeutectoid = RogueBlessing( + id=10, + name='Interstellar_Construct_Hypoeutectoid', + cn='星间构筑•亚共晶体', + cht='星間構築•亞共晶體', + en='Interstellar Construct: Hypoeutectoid', + jp='星間構築・亜共晶', + path_id=1, + rarity=2, +) +Construct_Assemble = RogueBlessing( + id=11, + name='Construct_Assemble', + cn='构筑•聚塑', + cht='構築•聚塑', + en='Construct: Assemble', + jp='構築・集塑', + path_id=1, + rarity=1, +) +Construct_Sentinel = RogueBlessing( + id=12, + name='Construct_Sentinel', + cn='构筑•哨戒', + cht='構築•哨戒', + en='Construct: Sentinel', + jp='構築・哨戒', + path_id=1, + rarity=1, +) +Construct_Patch = RogueBlessing( + id=13, + name='Construct_Patch', + cn='构筑•弥合', + cht='構築•彌合', + en='Construct: Patch', + jp='構築・溶着', + path_id=1, + rarity=1, +) +Construct_Compensation = RogueBlessing( + id=14, + name='Construct_Compensation', + cn='构筑•补偿', + cht='構築•補償', + en='Construct: Compensation', + jp='構築・補填', + path_id=1, + rarity=1, +) +Construct_Firmness = RogueBlessing( + id=15, + name='Construct_Firmness', + cn='构筑•坚定', + cht='構築•堅定', + en='Construct: Firmness', + jp='構築・確固', + path_id=1, + rarity=1, +) +Construct_Rotation = RogueBlessing( + id=16, + name='Construct_Rotation', + cn='构筑•回转', + cht='構築•迴轉', + en='Construct: Rotation', + jp='構築・回転', + path_id=1, + rarity=1, +) +Construct_Burst = RogueBlessing( + id=17, + name='Construct_Burst', + cn='构筑•迸发', + cht='構築•迸發', + en='Construct: Burst', + jp='構築・勃発', + path_id=1, + rarity=1, +) +Construct_Concentration = RogueBlessing( + id=18, + name='Construct_Concentration', + cn='构筑•专注', + cht='構築•專注', + en='Construct: Concentration', + jp='構築・専念', + path_id=1, + rarity=1, +) +Perfect_Experience_Fuli = RogueBlessing( + id=19, + name='Perfect_Experience_Fuli', + cn='完美体验:浮黎', + cht='完美體驗:浮黎', + en='Perfect Experience: Fuli', + jp='完璧体験:浮黎', + path_id=2, + rarity=3, +) +Perfect_Experience_Innocence = RogueBlessing( + id=20, + name='Perfect_Experience_Innocence', + cn='完美体验:纯真', + cht='完美體驗:純真', + en='Perfect Experience: Innocence', + jp='完璧体験:純真', + path_id=2, + rarity=3, +) +Perfect_Experience_Reticence = RogueBlessing( + id=21, + name='Perfect_Experience_Reticence', + cn='完美体验:缄默', + cht='完美體驗:緘默', + en='Perfect Experience: Reticence', + jp='完璧体験:沈黙', + path_id=2, + rarity=3, +) +Ultimate_Experience_Melancholia = RogueBlessing( + id=22, + name='Ultimate_Experience_Melancholia', + cn='极端体验:怅然若失', + cht='極端體驗:悵然若失', + en='Ultimate Experience: Melancholia', + jp='極端体験:茫然自失', + path_id=2, + rarity=2, +) +Ultimate_Experience_Dizziness = RogueBlessing( + id=23, + name='Ultimate_Experience_Dizziness', + cn='极端体验:头晕目眩', + cht='極端體驗:頭暈目眩', + en='Ultimate Experience: Dizziness', + jp='極端体験:眩暈', + path_id=2, + rarity=2, +) +Ultimate_Experience_Insensitivity = RogueBlessing( + id=24, + name='Ultimate_Experience_Insensitivity', + cn='极端体验:麻木不仁', + cht='極端體驗:麻木不仁', + en='Ultimate Experience: Insensitivity', + jp='極端体験:無感覚', + path_id=2, + rarity=2, +) +Ultimate_Experience_Sentimentality = RogueBlessing( + id=25, + name='Ultimate_Experience_Sentimentality', + cn='极端体验:多愁善感', + cht='極端體驗:多愁善感', + en='Ultimate Experience: Sentimentality', + jp='極端体験:多感', + path_id=2, + rarity=2, +) +Ultimate_Experience_Indelibility = RogueBlessing( + id=26, + name='Ultimate_Experience_Indelibility', + cn='极端体验:沦浃肌髓', + cht='極端體驗:淪浹肌髓', + en='Ultimate Experience: Indelibility', + jp='極端体験:感銘', + path_id=2, + rarity=2, +) +Ultimate_Experience_Shudder = RogueBlessing( + id=27, + name='Ultimate_Experience_Shudder', + cn='极端体验:不寒而栗', + cht='極端體驗:不寒而慄', + en='Ultimate Experience: Shudder', + jp='極端体験:戦慄', + path_id=2, + rarity=2, +) +Ultimate_Experience_Maverick = RogueBlessing( + id=28, + name='Ultimate_Experience_Maverick', + cn='极端体验:特立独行', + cht='極端體驗:特立獨行', + en='Ultimate Experience: Maverick', + jp='極端体験:異端児', + path_id=2, + rarity=2, +) +Experience_Unspeakable_Shame = RogueBlessing( + id=29, + name='Experience_Unspeakable_Shame', + cn='体验:难言的羞耻', + cht='體驗:難言的羞恥', + en='Experience: Unspeakable Shame', + jp='体験:言えない恥', + path_id=2, + rarity=1, +) +Experience_The_Torment_of_Alienation = RogueBlessing( + id=30, + name='Experience_The_Torment_of_Alienation', + cn='体验:疏离的煎熬', + cht='體驗:疏離的煎熬', + en='Experience: The Torment of Alienation', + jp='体験:疎遠の苦しみ', + path_id=2, + rarity=1, +) +Experience_Lost_Memory = RogueBlessing( + id=31, + name='Experience_Lost_Memory', + cn='体验:丢失的记忆', + cht='體驗:遺失的記憶', + en='Experience: Lost Memory', + jp='体験:失われた記憶', + path_id=2, + rarity=1, +) +Experience_Stone_Cold_Hatred = RogueBlessing( + id=32, + name='Experience_Stone_Cold_Hatred', + cn='体验:决绝的痛恨', + cht='體驗:決絕的痛恨', + en='Experience: Stone Cold Hatred', + jp='体験:凄烈な憎悪', + path_id=2, + rarity=1, +) +Experience_Pain__Suffering = RogueBlessing( + id=33, + name='Experience_Pain__Suffering', + cn='体验:病痛的折磨', + cht='體驗:病痛的折磨', + en='Experience: Pain & Suffering', + jp='体験:病の苛み', + path_id=2, + rarity=1, +) +Experience_Primordial_Hardship = RogueBlessing( + id=34, + name='Experience_Primordial_Hardship', + cn='体验:原初的苦衷', + cht='體驗:原初的苦衷', + en='Experience: Primordial Hardship', + jp='体験:原初の苦衷', + path_id=2, + rarity=1, +) +Experience_Thrill_of_Escalation = RogueBlessing( + id=35, + name='Experience_Thrill_of_Escalation', + cn='体验:攀升的刺激', + cht='體驗:攀升的刺激', + en='Experience: Thrill of Escalation', + jp='体験:上昇の刺激', + path_id=2, + rarity=1, +) +Experience_Responsive_Excitement = RogueBlessing( + id=36, + name='Experience_Responsive_Excitement', + cn='体验:回应的兴奋', + cht='體驗:回應的興奮', + en='Experience: Responsive Excitement', + jp='体験:反響の興奮', + path_id=2, + rarity=1, +) +Funeral_of_Sensory_Pursuivant = RogueBlessing( + id=37, + name='Funeral_of_Sensory_Pursuivant', + cn='感官追奉者的葬礼', + cht='感官追奉者的葬禮', + en='Funeral of Sensory Pursuivant', + jp='感覚追奉者の葬式', + path_id=3, + rarity=3, +) +The_Man_in_the_Cover = RogueBlessing( + id=38, + name='The_Man_in_the_Cover', + cn='被装在套子里的人', + cht='被裝在套子裡的人', + en='The Man in the Cover', + jp='箱に入った人', + path_id=3, + rarity=3, +) +Why_Hasn_t_Everything_Already_Disappeared = RogueBlessing( + id=39, + name='Why_Hasn_t_Everything_Already_Disappeared', + cn='为何一切尚未消失', + cht='為何一切尚未消失', + en="Why Hasn't Everything Already Disappeared?", + jp='なぜすべては消えぬか', + path_id=3, + rarity=3, +) +Beginning_and_End = RogueBlessing( + id=40, + name='Beginning_and_End', + cn='开端与终结', + cht='開端與終結', + en='Beginning and End', + jp='発端と結末', + path_id=3, + rarity=2, +) +Café_Self_Deceit = RogueBlessing( + id=41, + name='Café_Self_Deceit', + cn='自欺咖啡馆', + cht='自欺咖啡館', + en='Café Self-Deceit', + jp='自己欺瞞カフェ', + path_id=3, + rarity=2, +) +Call_of_the_Wilderness = RogueBlessing( + id=42, + name='Call_of_the_Wilderness', + cn='旷野的呼告', + cht='曠野的呼告', + en='Call of the Wilderness', + jp='広野の呼び声', + path_id=3, + rarity=2, +) +Night_Beyond_Pyre = RogueBlessing( + id=43, + name='Night_Beyond_Pyre', + cn='火堆外的夜', + cht='火堆外的夜', + en='Night Beyond Pyre', + jp='焚火の外の夜', + path_id=3, + rarity=2, +) +Hell_is_Other_People = RogueBlessing( + id=44, + name='Hell_is_Other_People', + cn='他人即地狱', + cht='他人即地獄', + en='Hell is Other People', + jp='他人は地獄', + path_id=3, + rarity=2, +) +Twilight_of_Existence = RogueBlessing( + id=45, + name='Twilight_of_Existence', + cn='存在的黄昏', + cht='存在的黃昏', + en='Twilight of Existence', + jp='存在の黄昏', + path_id=3, + rarity=2, +) +All_Things_are_Possible = RogueBlessing( + id=46, + name='All_Things_are_Possible', + cn='无根据颂歌', + cht='無根據頌歌', + en='All Things are Possible', + jp='根拠なき賛歌', + path_id=3, + rarity=2, +) +Ignosticism = RogueBlessing( + id=47, + name='Ignosticism', + cn='漠视主义', + cht='漠視主義', + en='Ignosticism', + jp='漠視主義', + path_id=3, + rarity=1, +) +Questioning_of_Purpose = RogueBlessing( + id=48, + name='Questioning_of_Purpose', + cn='意义质询', + cht='意義質詢', + en='Questioning of Purpose', + jp='意義への詰問', + path_id=3, + rarity=1, +) +Blind_Vision = RogueBlessing( + id=49, + name='Blind_Vision', + cn='盲目视界', + cht='盲目視界', + en='Blind Vision', + jp='盲目の視界', + path_id=3, + rarity=1, +) +Tragic_Lecture = RogueBlessing( + id=50, + name='Tragic_Lecture', + cn='悲剧讲座', + cht='悲劇講座', + en='Tragic Lecture', + jp='悲劇講座', + path_id=3, + rarity=1, +) +Sensory_Labyrinth = RogueBlessing( + id=51, + name='Sensory_Labyrinth', + cn='知觉迷墙', + cht='知覺迷牆', + en='Sensory Labyrinth', + jp='知覚の壁', + path_id=3, + rarity=1, +) +Emotional_Decluttering = RogueBlessing( + id=52, + name='Emotional_Decluttering', + cn='情绪舍离', + cht='情緒捨離', + en='Emotional Decluttering', + jp='情緒捨離', + path_id=3, + rarity=1, +) +Offerings_of_Deception = RogueBlessing( + id=53, + name='Offerings_of_Deception', + cn='虚妄供品', + cht='虛妄供品', + en='Offerings of Deception', + jp='虚妄の供物', + path_id=3, + rarity=1, +) +Before_Sunrise = RogueBlessing( + id=54, + name='Before_Sunrise', + cn='日出之前', + cht='日出之前', + en='Before Sunrise', + jp='日の出前', + path_id=3, + rarity=1, +) +Prosperity_Longevity = RogueBlessing( + id=55, + name='Prosperity_Longevity', + cn='葳蕤繁祉,延彼遐龄', + cht='葳蕤繁祉,延彼遐齡', + en='Prosperity, Longevity', + jp='彼の遐齢を延さん', + path_id=4, + rarity=3, +) +Mudra_of_Blessing = RogueBlessing( + id=56, + name='Mudra_of_Blessing', + cn='若罪若福,施诸愿印', + cht='若罪若福,施諸願印', + en='Mudra of Blessing', + jp='若の罪福、皆に施願を', + path_id=4, + rarity=3, +) +Being_of_Abundance_Becoming_One_Mind = RogueBlessing( + id=57, + name='Being_of_Abundance_Becoming_One_Mind', + cn='丰饶众生,一法界心', + cht='豐饒眾生,一法界心', + en='Being of Abundance, Becoming One Mind', + jp='衆生に豊穣を', + path_id=4, + rarity=3, +) +Good_Deeds_Come_After_Old_Sins = RogueBlessing( + id=58, + name='Good_Deeds_Come_After_Old_Sins', + cn='灭罪累生善', + cht='滅罪累生善', + en='Good Deeds Come After Old Sins', + jp='滅罪生善', + path_id=4, + rarity=2, +) +Mortals_of_the_Buddha_Field = RogueBlessing( + id=59, + name='Mortals_of_the_Buddha_Field', + cn='天人不动众', + cht='天人不動眾', + en='Mortals of the Buddha-Field', + jp='天人不動衆', + path_id=4, + rarity=2, +) +Salvation_From_Damnation = RogueBlessing( + id=60, + name='Salvation_From_Damnation', + cn='慧海度慈航', + cht='慧海度慈航', + en='Salvation From Damnation', + jp='慧海を渡る慈航', + path_id=4, + rarity=2, +) +Precious_Moon_Like_Candlelight = RogueBlessing( + id=61, + name='Precious_Moon_Like_Candlelight', + cn='宝光烛日月', + cht='寶光燭日月', + en='Precious Moon-Like Candlelight', + jp='日月を燭らす宝光', + path_id=4, + rarity=2, +) +Aversion_to_Suffering = RogueBlessing( + id=62, + name='Aversion_to_Suffering', + cn='厌离邪秽苦', + cht='厭離邪穢苦', + en='Aversion to Suffering', + jp='邪穢の苦を厭離す', + path_id=4, + rarity=2, +) +Clear_Lucite_Body = RogueBlessing( + id=63, + name='Clear_Lucite_Body', + cn='明澈琉璃身', + cht='明澈琉璃身', + en='Clear Lucite Body', + jp='明澄琉璃の身', + path_id=4, + rarity=2, +) +Prajna_Boat = RogueBlessing( + id=64, + name='Prajna_Boat', + cn='大愿般若船', + cht='大願般若船', + en='Prajna Boat', + jp='大愿、般若の船', + path_id=4, + rarity=2, +) +Rain_of_Truth = RogueBlessing( + id=65, + name='Rain_of_Truth', + cn='法雨', + cht='法雨', + en='Rain of Truth', + jp='法雨', + path_id=4, + rarity=1, +) +Sweet_Dew = RogueBlessing( + id=66, + name='Sweet_Dew', + cn='甘露', + cht='甘露', + en='Sweet Dew', + jp='甘露', + path_id=4, + rarity=1, +) +Extended_Life = RogueBlessing( + id=67, + name='Extended_Life', + cn='延寿', + cht='延壽', + en='Extended Life', + jp='延寿', + path_id=4, + rarity=1, +) +Seal = RogueBlessing( + id=68, + name='Seal', + cn='愿印', + cht='願印', + en='Seal', + jp='願印', + path_id=4, + rarity=1, +) +Dispel_Disaster = RogueBlessing( + id=69, + name='Dispel_Disaster', + cn='禳灾', + cht='禳災', + en='Dispel Disaster', + jp='厄払い', + path_id=4, + rarity=1, +) +Rebirth = RogueBlessing( + id=70, + name='Rebirth', + cn='回生', + cht='回生', + en='Rebirth', + jp='回生', + path_id=4, + rarity=1, +) +Victorious_Force = RogueBlessing( + id=71, + name='Victorious_Force', + cn='胜军', + cht='勝軍', + en='Victorious Force', + jp='勝軍', + path_id=4, + rarity=1, +) +Blessing = RogueBlessing( + id=72, + name='Blessing', + cn='加持', + cht='加持', + en='Blessing', + jp='加持', + path_id=4, + rarity=1, +) +Imperial_Reign = RogueBlessing( + id=73, + name='Imperial_Reign', + cn='帝星君临制穹桑', + cht='帝星君臨制穹桑', + en='Imperial Reign', + jp='帝星臨めば穹桑を制す', + path_id=5, + rarity=3, +) +Imperishable_Victory = RogueBlessing( + id=74, + name='Imperishable_Victory', + cn='帝车超光所向捷', + cht='帝車超光所向捷', + en='Imperishable Victory', + jp='光越す制勝の帝車', + path_id=5, + rarity=3, +) +Celestial_Annihilation = RogueBlessing( + id=75, + name='Celestial_Annihilation', + cn='帝弓断空彻太清', + cht='帝弓斷空徹太清', + en='Celestial Annihilation', + jp='太清を徹す断空の帝弓', + path_id=5, + rarity=3, +) +Battle_Against_the_Old_Foe = RogueBlessing( + id=76, + name='Battle_Against_the_Old_Foe', + cn='天舟缴夙敌', + cht='天舟繳夙敵', + en='Battle Against the Old Foe', + jp='夙敵繳める天舟', + path_id=5, + rarity=2, +) +Archery_Duel = RogueBlessing( + id=77, + name='Archery_Duel', + cn='白矢决射御', + cht='白矢決射御', + en='Archery Duel', + jp='射御を決する白矢', + path_id=5, + rarity=2, +) +Adept_Bow = RogueBlessing( + id=78, + name='Adept_Bow', + cn='序师执迟彝', + cht='序師執遲彝', + en="Adept's Bow", + jp='遅彝弓を執る序師', + path_id=5, + rarity=2, +) +Flowing_Mist = RogueBlessing( + id=79, + name='Flowing_Mist', + cn='流岚追孽物', + cht='流嵐追孽物', + en='Flowing Mist', + jp='忌み物を追う流嵐', + path_id=5, + rarity=2, +) +Auspicious_Star = RogueBlessing( + id=80, + name='Auspicious_Star', + cn='景星助狩月', + cht='景星助狩月', + en='Auspicious Star', + jp='狩月を助ける景星', + path_id=5, + rarity=2, +) +Ejecting_the_Borisin = RogueBlessing( + id=81, + name='Ejecting_the_Borisin', + cn='云镝逐步离', + cht='雲鏑逐步離', + en='Ejecting the Borisin', + jp='歩離を駆逐せし雲鏑', + path_id=5, + rarity=2, +) +Monster_Expelling_Rainbow = RogueBlessing( + id=82, + name='Monster_Expelling_Rainbow', + cn='飞虹诛凿齿', + cht='飛虹誅鑿齒', + en='Monster-Expelling Rainbow', + jp='鑿齒を誅つ飛虹', + path_id=5, + rarity=2, +) +Vermeil_Bow_and_White_Arrow = RogueBlessing( + id=83, + name='Vermeil_Bow_and_White_Arrow', + cn='彤弓素矰', + cht='彤弓素矰', + en='Vermeil Bow and White Arrow', + jp='緋弓素矢', + path_id=5, + rarity=1, +) +Skirting_Life_and_Death = RogueBlessing( + id=84, + name='Skirting_Life_and_Death', + cn='背生击死', + cht='背生擊死', + en='Skirting Life and Death', + jp='背生撃死', + path_id=5, + rarity=1, +) +Shrewd_Arrangement = RogueBlessing( + id=85, + name='Shrewd_Arrangement', + cn='背孤击虚', + cht='背孤擊虛', + en='Shrewd Arrangement', + jp='背孤撃虚', + path_id=5, + rarity=1, +) +Thundering_Chariot = RogueBlessing( + id=86, + name='Thundering_Chariot', + cn='雷车动地', + cht='雷車動地', + en='Thundering Chariot', + jp='雷車動地', + path_id=5, + rarity=1, +) +Constellation_Surge = RogueBlessing( + id=87, + name='Constellation_Surge', + cn='电射牛斗', + cht='電射牛斗', + en='Constellation Surge', + jp='牛斗射る紫電', + path_id=5, + rarity=1, +) +Catastrophic_Constellation = RogueBlessing( + id=88, + name='Catastrophic_Constellation', + cn='天棓步危', + cht='天棓步危', + en='Catastrophic Constellation', + jp='危宮へ歩む天棓', + path_id=5, + rarity=1, +) +Vaulting_Ambition = RogueBlessing( + id=89, + name='Vaulting_Ambition', + cn='桑弧蓬矢', + cht='桑弧蓬矢', + en='Vaulting Ambition', + jp='桑弧蓬矢', + path_id=5, + rarity=1, +) +Blessed_Bow_and_Arrow = RogueBlessing( + id=90, + name='Blessed_Bow_and_Arrow', + cn='乌号綦箭', + cht='烏號綦箭', + en='Blessed Bow and Arrow', + jp='烏号綦箭', + path_id=5, + rarity=1, +) +Non_Inverse_Antimatter_Equation = RogueBlessing( + id=91, + name='Non_Inverse_Antimatter_Equation', + cn='反物质非逆方程', + cht='反物質非逆方程式', + en='Non-Inverse Antimatter Equation', + jp='反物質非可逆方程式', + path_id=6, + rarity=3, +) +Universal_Heat_Death_Characteristic = RogueBlessing( + id=92, + name='Universal_Heat_Death_Characteristic', + cn='寰宇热寂特征数', + cht='寰宇熱寂特徵數', + en='Universal Heat Death Characteristic', + jp='熱的死の固有値', + path_id=6, + rarity=3, +) +Regression_Inequality_of_Annihilation = RogueBlessing( + id=93, + name='Regression_Inequality_of_Annihilation', + cn='湮灭回归不等式', + cht='湮滅回歸不等式', + en='Regression Inequality of Annihilation', + jp='対消滅回帰不等式', + path_id=6, + rarity=3, +) +Incremental_Doomsday = RogueBlessing( + id=94, + name='Incremental_Doomsday', + cn='递增性末日', + cht='遞增性末日', + en='Incremental Doomsday', + jp='逓増的終末', + path_id=6, + rarity=2, +) +Catastrophic_Resonance = RogueBlessing( + id=95, + name='Catastrophic_Resonance', + cn='灾难性共振', + cht='災難性共振', + en='Catastrophic Resonance', + jp='災難的共振', + path_id=6, + rarity=2, +) +Indicative_Depth_of_Field = RogueBlessing( + id=96, + name='Indicative_Depth_of_Field', + cn='预兆性景深', + cht='預兆性景深', + en='Indicative Depth of Field', + jp='予兆的被写界深度', + path_id=6, + rarity=2, +) +Devastating_Accretion = RogueBlessing( + id=97, + name='Devastating_Accretion', + cn='毁灭性吸积', + cht='毀滅性吸積', + en='Devastating Accretion', + jp='壊滅的降着', + path_id=6, + rarity=2, +) +Destructive_Flare = RogueBlessing( + id=98, + name='Destructive_Flare', + cn='破坏性耀发', + cht='破壞性耀發', + en='Destructive Flare', + jp='破壊的フレア', + path_id=6, + rarity=2, +) +Disciplinary_Flicker = RogueBlessing( + id=99, + name='Disciplinary_Flicker', + cn='戒律性闪变', + cht='戒律性閃變', + en='Disciplinary Flicker', + jp='戒律的フラッシュ', + path_id=6, + rarity=2, +) +Hazardous_Lucent_Residue = RogueBlessing( + id=100, + name='Hazardous_Lucent_Residue', + cn='危害性余光', + cht='危害性餘光', + en='Hazardous Lucent Residue', + jp='危害的余光', + path_id=6, + rarity=2, +) +Primordial_Black_Hole = RogueBlessing( + id=101, + name='Primordial_Black_Hole', + cn='原生黑洞', + cht='原生黑洞', + en='Primordial Black Hole', + jp='原始ブラックホール', + path_id=6, + rarity=1, +) +Reflection = RogueBlessing( + id=102, + name='Reflection', + cn='回光效应', + cht='回光效應', + en='Reflection', + jp='光壊変', + path_id=6, + rarity=1, +) +Orbital_Redshift = RogueBlessing( + id=103, + name='Orbital_Redshift', + cn='轨道红移', + cht='軌道紅移', + en='Orbital Redshift', + jp='軌道赤方偏移', + path_id=6, + rarity=1, +) +Instability_Strip = RogueBlessing( + id=104, + name='Instability_Strip', + cn='不稳定带', + cht='不穩定帶', + en='Instability Strip', + jp='不安定帯', + path_id=6, + rarity=1, +) +Metric_Reservation = RogueBlessing( + id=105, + name='Metric_Reservation', + cn='储备度规', + cht='儲備度規', + en='Metric Reservation', + jp='備蓄計量', + path_id=6, + rarity=1, +) +Sentinel_Satellite = RogueBlessing( + id=106, + name='Sentinel_Satellite', + cn='哨戒卫星', + cht='哨戒衛星', + en='Sentinel Satellite', + jp='哨戒衛星', + path_id=6, + rarity=1, +) +Polarization_Receptor = RogueBlessing( + id=107, + name='Polarization_Receptor', + cn='偏振受体', + cht='偏振受體', + en='Polarization Receptor', + jp='偏光受容体', + path_id=6, + rarity=1, +) +Eternally_Collapsing_Object = RogueBlessing( + id=108, + name='Eternally_Collapsing_Object', + cn='永坍缩体', + cht='永坍縮體', + en='Eternally Collapsing Object', + jp='永久崩壊天体', + path_id=6, + rarity=1, +) +Auto_Harmonica_Whitest_Night = RogueBlessing( + id=109, + name='Auto_Harmonica_Whitest_Night', + cn='《自动口琴•茫茫白夜》', + cht='《自動口琴•茫茫白夜》', + en='Auto-Harmonica: Whitest Night', + jp='『自動ハーモニカ・茫々たる白夜』', + path_id=7, + rarity=3, +) +Slaughterhouse_No_4_Rest_in_Peace = RogueBlessing( + id=110, + name='Slaughterhouse_No_4_Rest_in_Peace', + cn='《四号屠场•众生安眠》', + cht='《四號屠場•眾生安眠》', + en='Slaughterhouse No. 4: Rest in Peace', + jp='『四番屠畜場・皆眠りて』', + path_id=7, + rarity=3, +) +Champion_Dinner_Cat_Cradle = RogueBlessing( + id=111, + name='Champion_Dinner_Cat_Cradle', + cn='《冠军晚餐•猫的摇篮》', + cht='《冠軍晚餐•貓的搖籃》', + en="Champion's Dinner: Cat's Cradle", + jp='『チャンピオンのディナー・猫のゆりかご』', + path_id=7, + rarity=3, +) +Portrait_of_A_Man_On_Fire = RogueBlessing( + id=112, + name='Portrait_of_A_Man_On_Fire', + cn='《燃烧男子的肖像》', + cht='《燃燒男子的肖像》', + en='Portrait of A Man On Fire', + jp='『燃ゆる男の肖像』', + path_id=7, + rarity=2, +) +Just_Keep_on_Crying = RogueBlessing( + id=113, + name='Just_Keep_on_Crying', + cn='《流吧,你的眼泪》', + cht='《流吧,你的眼淚》', + en='Just Keep on Crying!', + jp='『流れよ汝が涙』', + path_id=7, + rarity=2, +) +The_Hourglass_Kindergarten = RogueBlessing( + id=114, + name='The_Hourglass_Kindergarten', + cn='《砂时镜下的幼园》', + cht='《砂時鏡下的幼園》', + en='The Hourglass Kindergarten', + jp='『砂時計の幼稚園』', + path_id=7, + rarity=2, +) +The_Painted_Albatross = RogueBlessing( + id=115, + name='The_Painted_Albatross', + cn='《被涂污的信天翁》', + cht='《被塗汙的信天翁》', + en='The Painted Albatross', + jp='『汚されたアホウドリ』', + path_id=7, + rarity=2, +) +_12_Monkeys_and_Angry_Men = RogueBlessing( + id=116, + name='_12_Monkeys_and_Angry_Men', + cn='《十二猴子与怒汉》', + cht='《十二猴子與怒漢》', + en='12 Monkeys and Angry Men', + jp='『十二のサルと怒れる男』', + path_id=7, + rarity=2, +) +Aiden_Gravitational_Rainbow = RogueBlessing( + id=117, + name='Aiden_Gravitational_Rainbow', + cn='《利尔他引力之虹》', + cht='《利爾他引力之虹》', + en='Aiden Gravitational Rainbow', + jp='『リルタ重力の虹』', + path_id=7, + rarity=2, +) +Twenty_First_Military_Rule = RogueBlessing( + id=118, + name='Twenty_First_Military_Rule', + cn='《第二十一条军规》', + cht='《第二十一條軍規》', + en='Twenty-First Military Rule', + jp='『キャッチ=21』', + path_id=7, + rarity=2, +) +Exemplary_Conduct = RogueBlessing( + id=119, + name='Exemplary_Conduct', + cn='《操行满分》', + cht='《操行滿分》', + en='Exemplary Conduct', + jp='『素行満点』', + path_id=7, + rarity=1, +) +Mostly_Harmful = RogueBlessing( + id=120, + name='Mostly_Harmful', + cn='《基本有害》', + cht='《基本有害》', + en='Mostly Harmful', + jp='『ほとんど有害』', + path_id=7, + rarity=1, +) +Suspiria = RogueBlessing( + id=121, + name='Suspiria', + cn='《阴风阵阵》', + cht='《陰風陣陣》', + en='Suspiria', + jp='『サスペンス』', + path_id=7, + rarity=1, +) +Pale_Fire = RogueBlessing( + id=122, + name='Pale_Fire', + cn='《灰暗的火》', + cht='《灰暗的火》', + en='Pale Fire', + jp='『仄暗い炎』', + path_id=7, + rarity=1, +) +Back_to_the_Lighthouse = RogueBlessing( + id=123, + name='Back_to_the_Lighthouse', + cn='《回灯塔去》', + cht='《回燈塔去》', + en='Back to the Lighthouse', + jp='『灯台へ戻ろう』', + path_id=7, + rarity=1, +) +Doctor_of_Love = RogueBlessing( + id=124, + name='Doctor_of_Love', + cn='《奇爱医生》', + cht='《奇愛醫生》', + en='Doctor of Love', + jp='『医者の異常な愛情』', + path_id=7, + rarity=1, +) +Platinum_Age = RogueBlessing( + id=125, + name='Platinum_Age', + cn='《铂金时代》', + cht='《鉑金時代》', + en='Platinum Age', + jp='『白金時代』', + path_id=7, + rarity=1, +) +Clockwork_Apple = RogueBlessing( + id=126, + name='Clockwork_Apple', + cn='《发条苹果》', + cht='《發條蘋果》', + en='Clockwork Apple', + jp='『時計仕掛けのリンゴ』', + path_id=7, + rarity=1, +) diff --git a/tasks/rogue/keywords/classes.py b/tasks/rogue/keywords/classes.py new file mode 100644 index 000000000..5941d0d8e --- /dev/null +++ b/tasks/rogue/keywords/classes.py @@ -0,0 +1,23 @@ +from dataclasses import dataclass +from typing import ClassVar + +from module.ocr.keyword import Keyword + + +@dataclass(repr=False) +class RogueBlessing(Keyword): + instances: ClassVar = {} + path_id: int + rarity: int + + +@dataclass(repr=False) +class RoguePath(Keyword): + instances: ClassVar = {} + + +@dataclass(repr=False) +class RogueResonance(Keyword): + instances: ClassVar = {} + path_id: int + rarity: int diff --git a/tasks/rogue/keywords/path.py b/tasks/rogue/keywords/path.py new file mode 100644 index 000000000..c9553a693 --- /dev/null +++ b/tasks/rogue/keywords/path.py @@ -0,0 +1,61 @@ +from .classes import RoguePath + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.keyword_extract ``` + +Preservation = RoguePath( + id=1, + name='Preservation', + cn='存护', + cht='存護', + en='Preservation', + jp='存護', +) +Remembrance = RoguePath( + id=2, + name='Remembrance', + cn='记忆', + cht='記憶', + en='Remembrance', + jp='記憶', +) +Nihility = RoguePath( + id=3, + name='Nihility', + cn='虚无', + cht='虛無', + en='Nihility', + jp='虚無', +) +Abundance = RoguePath( + id=4, + name='Abundance', + cn='丰饶', + cht='豐饒', + en='Abundance', + jp='豊穣', +) +The_Hunt = RoguePath( + id=5, + name='The_Hunt', + cn='巡猎', + cht='巡獵', + en='The Hunt', + jp='巡狩', +) +Destruction = RoguePath( + id=6, + name='Destruction', + cn='毁灭', + cht='毀滅', + en='Destruction', + jp='壊滅', +) +Elation = RoguePath( + id=7, + name='Elation', + cn='欢愉', + cht='歡愉', + en='Elation', + jp='愉悦', +) diff --git a/tasks/rogue/keywords/resonance.py b/tasks/rogue/keywords/resonance.py new file mode 100644 index 000000000..d99f9e667 --- /dev/null +++ b/tasks/rogue/keywords/resonance.py @@ -0,0 +1,285 @@ +from .classes import RogueResonance + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.keyword_extract ``` + +Path_Resonance_Preservation = RogueResonance( + id=1, + name='Path_Resonance_Preservation', + cn='命途回响:「存护」', + cht='命途迴響:「存護」', + en='Path Resonance: Preservation', + jp='運命の反響:「存護」', + path_id=1, + rarity=3, +) +Resonance_Formation_Zero_Dimensional_Reinforcement = RogueResonance( + id=2, + name='Resonance_Formation_Zero_Dimensional_Reinforcement', + cn='回响构音:零维强化', + cht='迴響構音:零維強化', + en='Resonance Formation: Zero-Dimensional Reinforcement', + jp='反響構音:析出硬化', + path_id=1, + rarity=3, +) +Resonance_Formation_Eutectic_Reaction = RogueResonance( + id=3, + name='Resonance_Formation_Eutectic_Reaction', + cn='回响构音:共晶反应', + cht='迴響構音:共晶反應', + en='Resonance Formation: Eutectic Reaction', + jp='反響構音:共晶反応', + path_id=1, + rarity=3, +) +Resonance_Formation_Isomorphous_Reaction = RogueResonance( + id=4, + name='Resonance_Formation_Isomorphous_Reaction', + cn='回响构音:均晶转变', + cht='迴響構音:均晶轉變', + en='Resonance Formation: Isomorphous Reaction', + jp='反響構音:全率固溶体', + path_id=1, + rarity=3, +) +Path_Resonance_Remembrance = RogueResonance( + id=5, + name='Path_Resonance_Remembrance', + cn='命途回响:「记忆」', + cht='命途迴響:「記憶」', + en='Path Resonance: Remembrance', + jp='運命の反響:「記憶」', + path_id=2, + rarity=3, +) +Resonance_Formation_Total_Recall = RogueResonance( + id=6, + name='Resonance_Formation_Total_Recall', + cn='回响构音:全面回忆', + cht='迴響構音:全面回憶', + en='Resonance Formation: Total Recall', + jp='反響構音:全面追憶', + path_id=2, + rarity=3, +) +Resonance_Formation_Rich_Experience = RogueResonance( + id=7, + name='Resonance_Formation_Rich_Experience', + cn='回响构音:体验的富翁', + cht='迴響構音:體驗的富翁', + en='Resonance Formation: Rich Experience', + jp='反響構音:体験の富豪', + path_id=2, + rarity=3, +) +Resonance_Formation_First_Love_Once_More = RogueResonance( + id=8, + name='Resonance_Formation_First_Love_Once_More', + cn='回响构音:第二次初恋', + cht='迴響構音:第二次初戀', + en='Resonance Formation: First Love Once More', + jp='反響構音:二度目の初恋', + path_id=2, + rarity=3, +) +Path_Resonance_Nihility = RogueResonance( + id=9, + name='Path_Resonance_Nihility', + cn='命途回响:「虚无」', + cht='命途迴響:「虛無」', + en='Path Resonance: Nihility', + jp='運命の反響:「虚無」', + path_id=3, + rarity=3, +) +Resonance_Formation_The_Doubtful_Fourfold_Root = RogueResonance( + id=10, + name='Resonance_Formation_The_Doubtful_Fourfold_Root', + cn='回响构音:怀疑的四重根', + cht='迴響構音:懷疑的四重根', + en='Resonance Formation: The Doubtful Fourfold Root', + jp='反響構音:疑いの四つの根', + path_id=3, + rarity=3, +) +Resonance_Formation_Suffering_and_Sunshine = RogueResonance( + id=11, + name='Resonance_Formation_Suffering_and_Sunshine', + cn='回响构音:苦难与阳光', + cht='迴響構音:苦難與陽光', + en='Resonance Formation: Suffering and Sunshine', + jp='反響構音:苦難と陽光', + path_id=3, + rarity=3, +) +Resonance_Formation_Outsider = RogueResonance( + id=12, + name='Resonance_Formation_Outsider', + cn='回响构音:局外人', + cht='迴響構音:局外人', + en='Resonance Formation: Outsider', + jp='反響構音:異邦人', + path_id=3, + rarity=3, +) +Path_Resonance_Abundance = RogueResonance( + id=13, + name='Path_Resonance_Abundance', + cn='命途回响:「丰饶」', + cht='命途迴響:「豐饒」', + en='Path Resonance: Abundance', + jp='運命の反響:「豊穣」', + path_id=4, + rarity=3, +) +Resonance_Formation_Terminal_Nirvana = RogueResonance( + id=14, + name='Resonance_Formation_Terminal_Nirvana', + cn='回响构音:无余涅槃', + cht='迴響構音:無餘涅槃', + en='Resonance Formation: Terminal Nirvana', + jp='反響構音:無余涅槃', + path_id=4, + rarity=3, +) +Resonance_Formation_Anicca = RogueResonance( + id=15, + name='Resonance_Formation_Anicca', + cn='回响构音:诸行无常', + cht='迴響構音:諸行無常', + en='Resonance Formation: Anicca', + jp='反響構音:諸行無常', + path_id=4, + rarity=3, +) +Resonance_Formation_Anatta = RogueResonance( + id=16, + name='Resonance_Formation_Anatta', + cn='回响构音:诸法无我', + cht='迴響構音:諸法無我', + en='Resonance Formation: Anatta', + jp='反響構音:諸法無我', + path_id=4, + rarity=3, +) +Path_Resonance_The_Hunt = RogueResonance( + id=17, + name='Path_Resonance_The_Hunt', + cn='命途回响:「巡猎」', + cht='命途迴響:「巡獵」', + en='Path Resonance: The Hunt', + jp='運命の反響:「巡狩」', + path_id=5, + rarity=3, +) +Resonance_Formation_Star_Hunter = RogueResonance( + id=18, + name='Resonance_Formation_Star_Hunter', + cn='回响构音:狩星巡日', + cht='迴響構音:狩星巡日', + en='Resonance Formation: Star Hunter', + jp='反響構音:星を狩りて日を巡る', + path_id=5, + rarity=3, +) +Resonance_Formation_Bow_and_Arrow = RogueResonance( + id=19, + name='Resonance_Formation_Bow_and_Arrow', + cn='回响构音:柘弓危矢', + cht='迴響構音:柘弓危矢', + en='Resonance Formation: Bow and Arrow', + jp='反響構音:柘弓に疾矢', + path_id=5, + rarity=3, +) +Resonance_Formation_Perfect_Aim = RogueResonance( + id=20, + name='Resonance_Formation_Perfect_Aim', + cn='回响构音:射不主皮', + cht='迴響構音:射不主皮', + en='Resonance Formation: Perfect Aim', + jp='反響構音:射は皮を主とせず', + path_id=5, + rarity=3, +) +Path_Resonance_Destruction = RogueResonance( + id=21, + name='Path_Resonance_Destruction', + cn='命途回响:「毁灭」', + cht='命途迴響:「毀滅」', + en='Path Resonance: Destruction', + jp='運命の反響:「壊滅」', + path_id=6, + rarity=3, +) +Resonance_Formation_Cataclysmic_Variable = RogueResonance( + id=22, + name='Resonance_Formation_Cataclysmic_Variable', + cn='回响构音:激变变星', + cht='迴響構音:激變變星', + en='Resonance Formation: Cataclysmic Variable', + jp='反響構音:激変星', + path_id=6, + rarity=3, +) +Resonance_Formation_Extreme_Helium_Flash = RogueResonance( + id=23, + name='Resonance_Formation_Extreme_Helium_Flash', + cn='回响构音:极端氦闪', + cht='迴響構音:極端氦閃', + en='Resonance Formation: Extreme Helium Flash', + jp='反響構音:ヘリウムフラッシュ', + path_id=6, + rarity=3, +) +Resonance_Formation_Event_Horizon = RogueResonance( + id=24, + name='Resonance_Formation_Event_Horizon', + cn='回响构音:事件视界', + cht='迴響構音:事件視界', + en='Resonance Formation: Event Horizon', + jp='反響構音:事象の地平線', + path_id=6, + rarity=3, +) +Path_Resonance_Elation = RogueResonance( + id=25, + name='Path_Resonance_Elation', + cn='命途回响:「欢愉」', + cht='命途迴響:「歡愉」', + en='Path Resonance: Elation', + jp='運命の反響:「愉悦」', + path_id=7, + rarity=3, +) +Resonance_Formation_Doomsday_Carnival = RogueResonance( + id=26, + name='Resonance_Formation_Doomsday_Carnival', + cn='回响构音:末日狂欢', + cht='迴響構音:末日狂歡', + en='Resonance Formation: Doomsday Carnival', + jp='反響構音:終末の狂宴', + path_id=7, + rarity=3, +) +Resonance_Formation_Dance_of_Growth = RogueResonance( + id=27, + name='Resonance_Formation_Dance_of_Growth', + cn='回响构音:树苗长高舞', + cht='迴響構音:樹苗長高舞', + en='Resonance Formation: Dance of Growth', + jp='反響構音:苗木が育つ踊り', + path_id=7, + rarity=3, +) +Resonance_Formation_Instant_Win = RogueResonance( + id=28, + name='Resonance_Formation_Instant_Win', + cn='回响构音:开盖有奖', + cht='迴響構音:開蓋有獎', + en='Resonance Formation: Instant Win', + jp='反響構音:もう1本', + path_id=7, + rarity=3, +) diff --git a/tasks/rogue/preset.py b/tasks/rogue/preset.py new file mode 100644 index 000000000..2c14534a3 --- /dev/null +++ b/tasks/rogue/preset.py @@ -0,0 +1,9 @@ +BLESSING_PRESET_1 = ("巡猎-3 > 《冠军晚餐•猫的摇篮》 > 丰饶众生,一法界心 > 毁灭-3 " + "> 火堆外的夜 > 巡猎-2 > 戒律性闪变 > 巡猎 > 存护-2 > reset > random") +RESONANCE_PRESET_1 = ("回响构音:均晶转变 > 回响构音:零维强化" + "> 回响构音:第二次初恋 > 回响构音:体验的富翁" + "> 回响构音:局外人 > 回响构音:怀疑的四重根" + "> 回响构音:诸法无我 > 回响构音:诸行无常" + "> 回响构音:射不主皮 > 回响构音:柘弓危矢" + "> 回响构音:激变变星 > 回响构音:极端氦闪" + "> 回响构音:末日狂欢 > 回响构音:树苗长高舞") diff --git a/tasks/rogue/selector.py b/tasks/rogue/selector.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tasks/rogue/ui.py b/tasks/rogue/ui.py new file mode 100644 index 000000000..bbb2f26be --- /dev/null +++ b/tasks/rogue/ui.py @@ -0,0 +1,14 @@ +from tasks.base.ui import UI +from tasks.rogue.assets.assets_rogue_ui import * +from tasks.rogue.keywords import * + + +class RogueUI(UI): + path: RoguePath + blessings: list + + def is_page_choose_blessing(self): + return self.image_color_count(PAGE_CHOOSE_BUFF, (245, 245, 245)) + + def is_page_choose_curio(self): + return self.appear(PAGE_CHOOSE_MIRACLE)