1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-22 16:23:43 +08:00

Fix: Check meowfficer level before enhancing (#2211)

This commit is contained in:
LmeSzinc
2023-02-14 00:11:36 +08:00
parent 9bf5010c48
commit 305ba80c7d
6 changed files with 32 additions and 1 deletions

View File

@@ -5,7 +5,7 @@ from module.logger import logger
from module.meowfficer.assets import *
from module.meowfficer.base import MeowfficerBase
from module.meowfficer.buy import MEOWFFICER_COINS
from module.ocr.ocr import DigitCounter
from module.ocr.ocr import Digit, DigitCounter
from module.ui.assets import MEOWFFICER_GOTO_DORMMENU
from module.ui.page import page_meowfficer
@@ -18,6 +18,19 @@ MEOWFFICER_FEED_GRID = ButtonGrid(
MEOWFFICER_FEED = DigitCounter(OCR_MEOWFFICER_FEED, letter=(131, 121, 123), threshold=64)
class MeowfficerLevelOcr(Digit):
def __init__(self, buttons, lang='azur_lane', letter=(255, 255, 255), threshold=128, alphabet='0123456789IDSLV',
name=None):
super().__init__(buttons, lang=lang, letter=letter, threshold=threshold, alphabet=alphabet, name=name)
def after_process(self, result):
result = result.replace('L', '').replace('V', '').replace('.', '')
return super().after_process(result)
OCR_MEOWFFICER_ENHANCE_LEVEL = MeowfficerLevelOcr(OCR_MEOWFFICER_ENHANCE_LEVEL, name='OCR_MEOWFFICER_ENHANCE_LEVEL')
class MeowfficerEnhance(MeowfficerBase):
def _meow_select(self, skip_first_screenshot=True):
"""
@@ -259,6 +272,19 @@ class MeowfficerEnhance(MeowfficerBase):
if self.appear_then_click(GAME_TIPS, offset=(20, 20), interval=2):
continue
def _meow_get_level(self):
"""
Returns:
int: level from 1 to 30. Returns 0 if cannot detect
Pages:
in: MEOWFFICER_ENHANCE_ENTER
"""
level = OCR_MEOWFFICER_ENHANCE_LEVEL.ocr(self.device.image)
if level > 30:
logger.warning(f'Invalid meowfficer level: {level}')
return level
def _meow_enhance(self):
"""
Perform meowfficer enhancement operations
@@ -296,6 +322,10 @@ class MeowfficerEnhance(MeowfficerBase):
# for enhancement
self._meow_select()
if self._meow_get_level() >= 30:
logger.info('Current meowfficer is already leveled max')
return
# Transition to MEOWFFICER_FEED after
# selection; broken up due to significant
# delayed behavior of meow_additional