0
0
mirror of https://github.com/ok-oldking/ok-wuthering-waves.git synced 2025-06-07 01:15:18 +00:00

五合一ocr优化

This commit is contained in:
firedcto@gmail.com 2024-08-05 00:35:48 +08:00
parent 707bba0d6d
commit df8bed3694

View File

@ -47,6 +47,7 @@ class FiveToOneTask(BaseCombatTask):
self.main_stats = ["攻击", "防御", "生命", "共鸣效率", "冷凝伤害加成", "热熔伤害加成", "导电伤害加成", self.main_stats = ["攻击", "防御", "生命", "共鸣效率", "冷凝伤害加成", "热熔伤害加成", "导电伤害加成",
"气动伤害加成", "衍射伤害加成", "湮灭伤害加成", "治疗效果加成", "暴击", "暴击伤害"] "气动伤害加成", "衍射伤害加成", "湮灭伤害加成", "治疗效果加成", "暴击", "暴击伤害"]
self.fix_map = {'凝夜自霜': '凝夜白霜', '灭伤害加成': '湮灭伤害加成', '行射伤害加成': '衍射伤害加成'}
self.config_type = {} self.config_type = {}
for key in self.default_config.keys(): for key in self.default_config.keys():
@ -98,6 +99,11 @@ class FiveToOneTask(BaseCombatTask):
elif put[0].name == '自动放入': elif put[0].name == '自动放入':
return True return True
def fix_ocr_texts(self, texts):
for text in texts:
if fix := self.fix_map.get(text.name):
text.name = fix
def loop_merge(self): def loop_merge(self):
if self.current_cost == 0: if self.current_cost == 0:
time_out = 0 time_out = 0
@ -140,6 +146,7 @@ class FiveToOneTask(BaseCombatTask):
return False return False
texts = self.ocr(0.60, 0.40, 0.83, 0.76, name='echo_stats', target_height=720, log=True) texts = self.ocr(0.60, 0.40, 0.83, 0.76, name='echo_stats', target_height=720, log=True)
self.fix_ocr_texts(texts)
sets = find_boxes_by_name(texts, self.sets) sets = find_boxes_by_name(texts, self.sets)
if not sets: if not sets:
self.log_error(f'无法识别声骸套装, 需要打开角色声骸界面,右上角点击切换一下简述', notify=True) self.log_error(f'无法识别声骸套装, 需要打开角色声骸界面,右上角点击切换一下简述', notify=True)
@ -156,10 +163,6 @@ class FiveToOneTask(BaseCombatTask):
main_stat = "None" main_stat = "None"
if main_stat_box and len(main_stat_box) == 1: if main_stat_box and len(main_stat_box) == 1:
main_stat = main_stat_box[0].name main_stat = main_stat_box[0].name
if main_stat == "灭伤害加成":
main_stat = "湮灭伤害加成"
elif main_stat == "行射伤害加成":
main_stat = "衍射伤害加成"
if main_stat not in self.main_stats: if main_stat not in self.main_stats:
self.log_error(f'无法识别声骸主属性{main_stat_box}', notify=True) self.log_error(f'无法识别声骸主属性{main_stat_box}', notify=True)
return False return False