mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-16 06:25:24 +00:00
Chore: Abstract DigitCounter.is_format_matched()
This commit is contained in:
parent
21a8e276b6
commit
0028681cb4
@ -350,6 +350,10 @@ class DigitCounter(Ocr):
|
||||
def __init__(self, button: ButtonWrapper, lang='en', name=None):
|
||||
super().__init__(button, lang=lang, name=name)
|
||||
|
||||
@classmethod
|
||||
def is_format_matched(cls, result) -> bool:
|
||||
return '/' in result
|
||||
|
||||
def format_result(self, result) -> tuple[int, int, int]:
|
||||
"""
|
||||
Do OCR on a counter, such as `14/15`, and returns 14, 1, 15
|
||||
@ -360,7 +364,7 @@ class DigitCounter(Ocr):
|
||||
result = super().after_process(result)
|
||||
logger.attr(name=self.name, text=str(result))
|
||||
|
||||
res = re.search(r'(\d+)/(\d+)', result)
|
||||
res = re.search(r'(\d+)\s*/\s*(\d+)', result)
|
||||
if res:
|
||||
groups = [int(s) for s in res.groups()]
|
||||
current, total = int(groups[0]), int(groups[1])
|
||||
|
@ -84,7 +84,7 @@ class DungeonEvent(UI):
|
||||
|
||||
ocr = DoubleEventOcr(OCR_DOUBLE_EVENT_REMAIN_AT_COMBAT)
|
||||
for row in ocr.detect_and_ocr(self.device.image):
|
||||
if '/' not in row.ocr_text:
|
||||
if ocr.is_format_matched(row.ocr_text):
|
||||
continue
|
||||
remain, _, total = ocr.format_result(row.ocr_text)
|
||||
if total in [3, 12]:
|
||||
|
@ -86,7 +86,7 @@ class DungeonState(UI):
|
||||
continue
|
||||
if row.ocr_text == '+':
|
||||
continue
|
||||
if '/' not in row.ocr_text:
|
||||
if ocr.is_format_matched(row.ocr_text):
|
||||
continue
|
||||
data = ocr.format_result(row.ocr_text)
|
||||
if data[2] == self.config.stored.TrailblazePower.FIXED_TOTAL:
|
||||
|
Loading…
Reference in New Issue
Block a user