From 13d8c9100df0495968cd66775389dd4d571f0c2c Mon Sep 17 00:00:00 2001 From: Zebartin <16185081+Zebartin@users.noreply.github.com> Date: Fri, 15 Nov 2024 10:15:41 +0800 Subject: [PATCH 1/3] Opt: Skip unknown state in Switch.set --- module/ui/switch.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/module/ui/switch.py b/module/ui/switch.py index 95304fe41..6d5ae8d31 100644 --- a/module/ui/switch.py +++ b/module/ui/switch.py @@ -153,9 +153,7 @@ class Switch: if counter >= 1: logger.warning(f'{self.name} switch {state} asset has evaluated to unknown too many times, ' f'asset should be re-verified') - return False counter += 1 - continue # Click if click_timer.reached(): From 8a571f79c9b623701d0a8b18abd93ede7be86344 Mon Sep 17 00:00:00 2001 From: Zebartin <16185081+Zebartin@users.noreply.github.com> Date: Fri, 15 Nov 2024 10:49:37 +0800 Subject: [PATCH 2/3] Fix: Assignment keywords extracting --- dev_tools/keyword_extract.py | 2 +- dev_tools/keywords/assignment.py | 5 +++-- dev_tools/keywords/base.py | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dev_tools/keyword_extract.py b/dev_tools/keyword_extract.py index 9da77b2d7..449b37ed9 100644 --- a/dev_tools/keyword_extract.py +++ b/dev_tools/keyword_extract.py @@ -556,7 +556,7 @@ class KeywordExtract: self.load_keywords(['本周任务', '本期任务']) self.write_keywords(keyword_class='BattlePassMissionTab', output_file='./tasks/battle_pass/keywords/mission_tab.py') - # self.generate_assignments() + self.generate_assignments() self.generate_forgotten_hall_stages() self.generate_daily_quests() self.generate_battle_pass_quests() diff --git a/dev_tools/keywords/assignment.py b/dev_tools/keywords/assignment.py index 5dac448dc..d7cdccdb3 100644 --- a/dev_tools/keywords/assignment.py +++ b/dev_tools/keywords/assignment.py @@ -59,7 +59,7 @@ def get_assignment_entry_data(): for expedition_namehash, expedition_id in expedition_namehash_to_id.items(): reward_id = expedition_id_to_reward_id[expedition_id] item_ids = reward_id_to_item_ids[reward_id] - item_names = [item_id_to_namehash[x] for x in item_ids] + item_names = [item_id_to_namehash[x] for x in item_ids if x] if len(item_names) == 1: item = GenerateKeyword.find_keyword(item_names[0], lang='cn')[1] if item in item_name_remap: @@ -128,6 +128,7 @@ class GenerateAssignmentEventGroup(GenerateKeyword): def iter_keywords(self) -> Iterable[dict]: yield dict(text_id=self.find_keyword('空间站特派', lang='cn')[0]) yield dict(text_id=self.find_keyword('关于波提欧的一切…', lang='cn')[0]) + yield dict(text_id=self.find_keyword('游侠谜影', lang='cn')[0]) class GenerateAssignmentEventEntry(GenerateKeyword): @@ -141,5 +142,5 @@ class GenerateAssignmentEventEntry(GenerateKeyword): if __name__ == "__main__": from dev_tools.keywords.base import TextMap - TextMap.DATA_FOLDER = '../StarRailData' + TextMap.DATA_FOLDER = '../DanhengServer-Resources' GenerateAssignment()() diff --git a/dev_tools/keywords/base.py b/dev_tools/keywords/base.py index 0cd904c3e..6fcd397ac 100644 --- a/dev_tools/keywords/base.py +++ b/dev_tools/keywords/base.py @@ -68,6 +68,7 @@ def text_to_variable(text): text = re.sub(r'[(),#"?!&%*]|', '', text) # text = re.sub(r'[#_]?\d+(_times?)?', '', text) text = re.sub(r'', '', text) + text = re.sub(r'^\d+', '', text) text = text.replace('é', 'e') return text.strip('_') From 3bd9262b776e164ca72179210f0ece6d3cdd496b Mon Sep 17 00:00:00 2001 From: Zebartin <16185081+Zebartin@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:44:02 +0800 Subject: [PATCH 3/3] Upd: Assignments (Shadow of the Ranger) --- .../ui/SHADOW_OF_THE_RANGER_CHECK.png | Bin 0 -> 9648 bytes .../ui/SHADOW_OF_THE_RANGER_CLICK.png | Bin 0 -> 9576 bytes .../ui/SHADOW_OF_THE_RANGER_CHECK.png | Bin 0 -> 8046 bytes .../ui/SHADOW_OF_THE_RANGER_CLICK.png | Bin 0 -> 8178 bytes .../assignment/assets/assets_assignment_ui.py | 34 ++ tasks/assignment/keywords/__init__.py | 30 +- tasks/assignment/keywords/event_entry.py | 356 +++++++++--------- tasks/assignment/keywords/event_group.py | 9 + tasks/assignment/ui.py | 19 +- 9 files changed, 231 insertions(+), 217 deletions(-) create mode 100644 assets/cn/assignment/ui/SHADOW_OF_THE_RANGER_CHECK.png create mode 100644 assets/cn/assignment/ui/SHADOW_OF_THE_RANGER_CLICK.png create mode 100644 assets/en/assignment/ui/SHADOW_OF_THE_RANGER_CHECK.png create mode 100644 assets/en/assignment/ui/SHADOW_OF_THE_RANGER_CLICK.png diff --git a/assets/cn/assignment/ui/SHADOW_OF_THE_RANGER_CHECK.png b/assets/cn/assignment/ui/SHADOW_OF_THE_RANGER_CHECK.png new file mode 100644 index 0000000000000000000000000000000000000000..85fafe0ef0a4cafbf697dcddef95c9bc18d876d2 GIT binary patch literal 9648 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 aWy(LB4tY9%&;w~Co1=$94$}6=|MFioMGAia literal 0 HcmV?d00001 diff --git a/assets/cn/assignment/ui/SHADOW_OF_THE_RANGER_CLICK.png b/assets/cn/assignment/ui/SHADOW_OF_THE_RANGER_CLICK.png new file mode 100644 index 0000000000000000000000000000000000000000..285a7861baa143710366068f9f5c8b72b48c7d61 GIT binary patch literal 9576 zcmeHMdsLIhwhvY-N-3f(s1#z$tsajD5D^eCP_=?o0R<6xgh&w(ViFXR0D%M_6fFj7 zZAIi&rGgNWh?oQtk_d>{Do`FtAR!44%+4Cwgy=i4jtT2~J@(C<4|5N#pc&U-6E}wj_S-1AH1nX~~uUmV_=JQRP7?0)1%~h_w9N5R5Gzqo3&~T+DHN7lzVw?NLsVCd_ zr60>twXT;B|MX=J+OTvSt{Bdw%}Q`7N(oz@J(*U?dO$~r&Tz9QN?P5-;7iJ$#dyLW zIXOpCW^eA|SFmv@Jr$5^N$XGC-(Oqkqi7N~U5dwvrN#yq{Ot6Txb_*TccJ? zs~$+^i@YZ8#i!`5Z=j`h7J8?SJRcdlqMfF;_Ryp4T2v3N`7%iL0w zAry)gtJRC+MGQes4p^)BExEs%SIqhFNVvQ#qv14)`(9~@&`a-rWotzPU%k865HEXf z(4+eTckvh;HCf0+!wY_fo;|qPm1S4rE~{T2>+%$2PL>ONZ1mv5`7CY&ZDH2o#xG)a zOxARQdZ;IduIERitaL1s+xOiamg_acoKjDeqWH5zjk0bZWqopg_k~H1i-RYREdMZ2 zl2j3Sj^1^{Me*JQv6XV%`sDLX5&FZ(ci@ub*Tuf0J{)ReccZlksK zFe+ApXL+E6rwJd3sDXza1)>XWihFzG4i{uu*!)8`6@yKeMmHt~X}c6r!1vT0cjo+# znH`MX6G6FnJ9RX3lIK#9RYx>0^G2sw+&W(DO#Xb&nSl?}{jxWbrS%RO=Tf~>ZMTJx zo6{!v5(rMDF0#*@eST@S0o}HtO18MAkP6e!6ssjTCC?Vw(%{URoy*GP{kg2wD&T@a zvDRd-&uhK}@S?+VL%fr}C&RcLJ~>)itu5T{UiY%lF1p88n~oTo6Jg4H(NRPP2veb# zK-2}hD(hj!%DeAQlKmQi z4~u_!t9HD|kK>Rv)w-}u^o&J0ZenS$A1G-ry0KDnGFy5uyNT;@@vKxL^9OO%{Afg$ z;;1e3G)hy^Q{q;GEsvO)AyFysUKb05G;ZnTVWLf0zqb4M9#|ceh2c>&1nehZ{E48g zgixgejBJNu)=qT!u+C5;!(ZQZg7+8rtVBaq@`l_m(1KW8koY~#XNKr0trvK3qfqQ6 ze@mZGGn3aTOYZWYc6m(Fln?yaf zb`0RVh4_ivBzd;6r|;|xqJZ^N`A)-K0C2KcBOvIdQCnl0R4w;i z&a}>u@u{TnJuu{@hUgm9yVov)yHW$4&Ylmp_fCJD*SXHZmR}c65_;$Ma8-vzE#o(w zLEWXER0!A;6H{jgLhjgU4uWjf}NuzLJ{df^L9M$sPzpLDhI`O7l zRJ{>fls4H#g0dvq3jxxvCo5qE#bwf~;va2cTek)cY86Yzi|M;xLRF=HghN4P2O1m* zx`qYaeK@7I((rZ{7&`u9OGv#Pa`CVQE~y-S#sV*HM!p?+CDDh&U@Xav(RTQEO5YG4 z`7@hOHA;~n7F%V@IyW?3y&XHr+RedfWw`x;jNi_XW5pB`HBtqd)SGWbIP1dx5E?C|Mk`SrKib0QehHhYk8FhZ zKJ1WBVczIRt&~)---na>54(y4TV50R9)hi2bAwr`R>ETl3oDootD%dp=YMMNy$KXi z{}>@+FmC6C)db6+gjfrN_!qG=h!V3DD#nN+qR!4zaOXe3812e;#jw~ryFw`a!4NXO zG46{BYc(_W*0YT4~>aoAfeG*6|kvDdnnAOd@?k;$agN4t(8zP zAto(X{sMY+$`h|^vT0+wFM6<<4fKmcp_3IjWKdbgWysvCA`(|qvSEDJz?P7IP(RWx z2sU(9o&pmwD!E3y+H#t- z`%X=EI$n4EPD=Z-8r|`01pi&J@eupzs3%(b6bF}bAT(SL2jc{w&kgww^!BlA&B*id z#jN=*PoX&z`8$;H>B!RrDV((sTU{2%R+k*#$Ms;HvguChLkT0 z3FppPa_@xrHs>gB?y9)Ze~qP$+)FqFS$ca1QO-sFIhSV(9Z=NTO?y(XWJ~T+kX_DT zrd}-&z2a=~C#JwZo$dClV6$|8iQjmfNzg zSJiNZQ!J#IjWTv{;ir&e*Kc04u1}eI5+{G(_u84t)rAnk33Ew=Go22&i%NBZ8f=*J zv1h7UR{;Uh0`KfOWquD8$hgwoY{-l(7n9zoNGz zptrEREx`vK9Br`|F$6#?gZI7tgC^5oQ7a3#VNT$(6<|WRW*8j-`7m+~t$KdNW6cws zUZZg$mHS|yjR@=m(&5XHRHGhk)cY+?P5H0KI4&?>3WyvT=3~XfXzW3qs@;jB#~Wp9 z-cI#at%rr%K^J*cJk3P8s?D$!x{fyICiF5Pa#=Z+1D|ocoI97HuFx%KuP^JkP0L=nxfefhQZ zR{TPHpOp7wU!$iV74wR@*~i7%^IeG3=R9f6(Mr|G`t>rkQ?%$+M_4d~#+l=ZL>jzG zZ|tR*_?;@*JXc3bZSAv|(TkOW8J>%vrLl)%WtDR_nt@DKq8&jjYl4#kO=vI{bA>i* z)>pwagB?vnX^8?ShD2ClT?n%4)-E_zD7pNdrJcvKPr-(oD!p$Xj%0B~JRl}f zm`uZBH;SGn)hn>@agrTeqY$h0N&@#ND;mY3QJTj7qz4`YIw#;d-|h|*PJGpKaQ=j- zixFM=MC6*$dUYMT-Z> zz5o3U>-K1s=t*3TUGHKS%8=aUEvsj$+AL%XK8nXyI4%P??Z^No2OtC)UDA(~&8~TK z3f)iiq!ahvbulJ8MLzvq{-=m|*N5;&A9H2~o-%vy5`xS&7~0h|k@AA$+JIYIBYXUe zGJ3y4>7)P9FWPAjJssCtnlGFH>ujP0OO=tU#sf8Md<|N>e+&zH;|{n zBcq&lo+dfi%GNx4MP5=UXYo(gAP7;wkaN z+-pg=tYU@#G8x9;=%wxexs7T}3>OW=zkOv*g9|9jfOClyF;HOLVID668rEs=S!ZIt z%OfMLt&I>i9Fa5M)oN?fXXUN`K7-ert)^#IvsgP!HnEzqTg^_cCUI92)~k8_)jN#U z`dR@7Cs|#8s1gnH#l@P2Fg8vgCxDl@Af{b$Wxg(NYUzrZqfk%VCr5rwY F^`G*G_Wl3> literal 0 HcmV?d00001 diff --git a/assets/en/assignment/ui/SHADOW_OF_THE_RANGER_CHECK.png b/assets/en/assignment/ui/SHADOW_OF_THE_RANGER_CHECK.png new file mode 100644 index 0000000000000000000000000000000000000000..c11838863567084b2059b8ebf3dce2f0a00ef92f GIT binary patch literal 8046 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 literal 0 HcmV?d00001 diff --git a/assets/en/assignment/ui/SHADOW_OF_THE_RANGER_CLICK.png b/assets/en/assignment/ui/SHADOW_OF_THE_RANGER_CLICK.png new file mode 100644 index 0000000000000000000000000000000000000000..d1133314bbc40f5f65fbe37fc0d6f8e71377dca9 GIT binary patch literal 8178 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