Fix: 修复开荒

- 修复低级图出BOSS后报错的问题
- 修复了开荒进度0%时的章节名OCR
- 修复打完BOSS有时会卡住的问题
This commit is contained in:
LmeSzinc 2020-04-27 19:32:58 +08:00
parent 57f578686e
commit fc84f5e610
7 changed files with 16 additions and 9 deletions

View File

@ -94,7 +94,7 @@ class CampaignOcr:
@staticmethod
def extract_stage_name(image):
x_skip = 7
x_skip = 10
interval = 5
x_color = np.convolve(np.mean(image, axis=0), np.ones(interval), 'valid') / interval
x_list = np.where(x_color[x_skip:] > 235)[0]

View File

@ -309,7 +309,7 @@ class Combat(HPBalancer, UrgentCommissionHandler, EnemySearchingHandler, Retirem
break
if expected_end == 'with_searching' and self.handle_in_map_with_enemy_searching():
break
if expected_end == 'no_searching' and self.handle_in_map():
if expected_end == 'no_searching' and self.handle_in_map_no_enemy_searching():
break
if expected_end == 'in_ui' and self.appear(BACK_ARROW, offset=(20, 20)):
break

View File

@ -319,7 +319,7 @@ class AzurLaneConfig:
self.SCREEN_SHOT_SAVE_FOLDER = self.SCREEN_SHOT_SAVE_FOLDER_BASE + '/' + self.CAMPAIGN_NAME
for folder in [self.SCREEN_SHOT_SAVE_FOLDER_BASE, self.ASSETS_FOLDER, self.SCREEN_SHOT_SAVE_FOLDER,
self.PERSPECTIVE_ERROR_LOG_FOLDER, self.ERROR_LOG_FOLDER]:
if not os.path.exists(folder):
if folder and not os.path.exists(folder):
os.mkdir(folder)
def merge(self, other):

View File

@ -1,11 +1,13 @@
import time
from collections import deque
from retrying import retry
from module.base.timer import Timer
from module.base.utils import *
from module.device.connection import Connection
from module.logger import logger
from module.exception import ScriptError
from module.logger import logger
class Control(Connection):
@ -62,11 +64,11 @@ class Control(Connection):
self._click_uiautomator2(x, y)
self.sleep(self.config.SLEEP_AFTER_CLICK)
# @retry()
@retry()
def _click_uiautomator2(self, x, y):
self.device.click(int(x), int(y))
# @retry()
@retry()
def _click_adb(self, x, y):
self.adb_shell(['input', 'tap', str(x), str(y)], serial=self.serial)

View File

@ -47,7 +47,7 @@ class Screenshot(Connection):
screenshot = self.adb_shell(['screencap', '-p'], serial=self.serial)
return self._process_screenshot(screenshot)
# @retry()
@retry()
# @timer
def screenshot(self):
"""

View File

@ -42,6 +42,8 @@ class EnemySearchingHandler(InfoBarHandler):
def handle_in_map_with_enemy_searching(self):
if not self.is_in_map():
return False
if self.handle_in_stage():
return True
timeout = Timer(self.MAP_ENEMY_SEARCHING_TIMEOUT_SECOND)
appeared = False
@ -67,9 +69,11 @@ class EnemySearchingHandler(InfoBarHandler):
self.device.screenshot()
return True
def handle_in_map(self):
def handle_in_map_no_enemy_searching(self):
if not self.is_in_map():
return False
if self.handle_in_stage():
return True
self.device.sleep((1, 1.2))
return True

View File

@ -267,7 +267,8 @@ class Map(Fleet):
logger.info('Brute clear BOSS')
if self.brute_fleet_meet():
return True
grids = self.brute_find_roadblocks(boss[0], fleet=self.config.FLEET_BOSS)
fleet = 2 if self.config.FLEET_BOSS == 2 and self.config.FLEET_2 else 1
grids = self.brute_find_roadblocks(boss[0], fleet=fleet)
if grids:
logger.info('Brute clear BOSS roadblocks')
grids = grids.sort(cost=True, weight=True)