6
6
from src .task .BaseCombatTask import BaseCombatTask
7
7
8
8
logger = Logger .get_logger (__name__ )
9
+ chinese_regex = re .compile (r'[\u4e00-\u9fff]{5,12}' )
9
10
10
11
11
12
class FiveToOneTask (BaseCombatTask ):
@@ -27,7 +28,12 @@ def __init__(self, *args, **kwargs):
27
28
"热熔伤害加成" ,
28
29
"导电伤害加成" ,
29
30
"气动伤害加成" , "衍射伤害加成" , "湮灭伤害加成" , "治疗效果加成" ]
31
+ self .all_stats = []
30
32
self .black_list = ["主属性生命值" , "主属性攻击力" , "主属性防御力" ]
33
+ for main_stat in self .main_stats :
34
+ self .all_stats .append ("主属性" + main_stat )
35
+ self .all_stats += self .black_list
36
+
31
37
self .add_text_fix (
32
38
{'凝夜自霜' : '凝夜白霜' , '主属性灭伤害加成' : '主属性湮灭伤害加成' , "灭伤害加成" : "主属性湮灭伤害加成" ,
33
39
'主属性行射伤害加成' : '主属性衍射伤害加成' })
@@ -40,6 +46,7 @@ def __init__(self, *args, **kwargs):
40
46
self .config_type [key ] = {'type' : "multi_selection" , 'options' : self .main_stats }
41
47
42
48
def run (self ):
49
+ self .log_debug (f"all_stats: { self .all_stats } " )
43
50
self .log_info ("开始任务" )
44
51
self .ensure_main ()
45
52
self .log_info ("在主页" )
@@ -77,9 +84,11 @@ def merge_set(self, name_box, set_name, step):
77
84
self .wait_feature ("merge_echo_check" , box = name_box , raise_if_not_found = True )
78
85
79
86
self .click_relative (0.895 , 0.74 , after_sleep = 0.5 ) # 滚动
80
- choices = self .ocr (box = name_box )
87
+ choices = self .ocr (box = name_box , match = chinese_regex )
81
88
if step == 1 :
82
89
for choice in choices :
90
+ if choice .name not in self .all_stats :
91
+ raise Exception (f"无法识别的属性: { choice .name } " )
83
92
in_keep = False
84
93
if choice .name in self .black_list :
85
94
continue
0 commit comments