mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-27 02:27:12 +00:00
Fix: 修复
- 优化章节名OCR, 防止地图特效影响识别 - 修复等待精英移动 - 修复回到出击界面
This commit is contained in:
parent
bea05d396e
commit
604cdf4005
@ -45,6 +45,9 @@ def separate_name(name):
|
|||||||
elif name[0] in 'abcdef':
|
elif name[0] in 'abcdef':
|
||||||
return name[0], name[-1]
|
return name[0], name[-1]
|
||||||
|
|
||||||
|
logger.warning(f'Unknown stage name: {name}')
|
||||||
|
return name[0], name[1:]
|
||||||
|
|
||||||
|
|
||||||
class CampaignOcr:
|
class CampaignOcr:
|
||||||
stage = {}
|
stage = {}
|
||||||
@ -137,7 +140,7 @@ class CampaignOcr:
|
|||||||
self.stage = {}
|
self.stage = {}
|
||||||
buttons = self.extract_campaign_name_image(image)
|
buttons = self.extract_campaign_name_image(image)
|
||||||
|
|
||||||
ocr = Ocr(buttons, lang='stage')
|
ocr = Ocr(buttons, lang='stage', letter=(255, 255, 255), back=(102, 102, 102), threshold=180)
|
||||||
result = ocr.ocr(image)
|
result = ocr.ocr(image)
|
||||||
if not isinstance(result, list):
|
if not isinstance(result, list):
|
||||||
result = [result]
|
result = [result]
|
||||||
|
@ -198,7 +198,7 @@ class AzurLaneConfig:
|
|||||||
MAP_HAS_MOVABLE_ENEMY = False
|
MAP_HAS_MOVABLE_ENEMY = False
|
||||||
MAP_HAS_SIREN = False
|
MAP_HAS_SIREN = False
|
||||||
MAP_HAS_DYNAMIC_RED_BORDER = False
|
MAP_HAS_DYNAMIC_RED_BORDER = False
|
||||||
MAP_SIREN_MOVE_WAIT = 1.8 # The enemy moving takes about 1.5 ~ 1.8s.
|
MAP_SIREN_MOVE_WAIT = 1.5 # The enemy moving takes about 1.2 ~ 1.5s.
|
||||||
MAP_SIREN_COUNT = 0
|
MAP_SIREN_COUNT = 0
|
||||||
MAP_MYSTERY_HAS_CARRIER = False
|
MAP_MYSTERY_HAS_CARRIER = False
|
||||||
MAP_GRID_CENTER_TOLERANCE = 0.1
|
MAP_GRID_CENTER_TOLERANCE = 0.1
|
||||||
|
@ -9,6 +9,7 @@ from module.map.exception import CampaignEnd
|
|||||||
class EnemySearchingHandler(InfoBarHandler):
|
class EnemySearchingHandler(InfoBarHandler):
|
||||||
MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD = 0.5 # Usually (0.70, 0.80).
|
MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD = 0.5 # Usually (0.70, 0.80).
|
||||||
MAP_ENEMY_SEARCHING_TIMEOUT_SECOND = 4.5
|
MAP_ENEMY_SEARCHING_TIMEOUT_SECOND = 4.5
|
||||||
|
in_stage_timer = Timer(1)
|
||||||
|
|
||||||
def enemy_searching_color_initial(self):
|
def enemy_searching_color_initial(self):
|
||||||
MAP_ENEMY_SEARCHING.load_color(self.device.image)
|
MAP_ENEMY_SEARCHING.load_color(self.device.image)
|
||||||
@ -23,11 +24,12 @@ class EnemySearchingHandler(InfoBarHandler):
|
|||||||
|
|
||||||
def handle_in_stage(self):
|
def handle_in_stage(self):
|
||||||
if self.is_in_stage():
|
if self.is_in_stage():
|
||||||
|
if self.in_stage_timer.reached():
|
||||||
logger.info('In stage.')
|
logger.info('In stage.')
|
||||||
# self.device.sleep(0.5)
|
|
||||||
self.ensure_no_info_bar(timeout=1.2)
|
self.ensure_no_info_bar(timeout=1.2)
|
||||||
raise CampaignEnd('In stage.')
|
raise CampaignEnd('In stage.')
|
||||||
else:
|
else:
|
||||||
|
self.in_stage_timer.reset()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def is_in_stage(self):
|
def is_in_stage(self):
|
||||||
|
@ -17,15 +17,16 @@ class FastForwardHandler(ModuleBase):
|
|||||||
|
|
||||||
def handle_fast_forward(self):
|
def handle_fast_forward(self):
|
||||||
if not self.appear(MAP_STAR_1) or not self.appear(MAP_STAR_2) or not self.appear(MAP_STAR_3):
|
if not self.appear(MAP_STAR_1) or not self.appear(MAP_STAR_2) or not self.appear(MAP_STAR_3):
|
||||||
|
self.config.ENABLE_FAST_FORWARD = False
|
||||||
logger.info('Campaign is not 3-star cleared.')
|
logger.info('Campaign is not 3-star cleared.')
|
||||||
return False
|
return False
|
||||||
if not self.appear(MAP_GREEN):
|
if not self.appear(MAP_GREEN):
|
||||||
|
self.config.ENABLE_FAST_FORWARD = False
|
||||||
logger.info('Campaign is not green sea.')
|
logger.info('Campaign is not green sea.')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if not fast_forward.appear(main=self):
|
if not fast_forward.appear(main=self):
|
||||||
self.config.ENABLE_FAST_FORWARD = False
|
self.config.ENABLE_FAST_FORWARD = False
|
||||||
self.config.MAP_HAS_AMBUSH = True
|
|
||||||
logger.info('No fast forward mode.')
|
logger.info('No fast forward mode.')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ class Fleet(Camera, MapOperation, AmbushHandler):
|
|||||||
arrived = False
|
arrived = False
|
||||||
# Wait to confirm fleet arrived. It does't appear immediately if fleet in combat .
|
# Wait to confirm fleet arrived. It does't appear immediately if fleet in combat .
|
||||||
add = self.config.MAP_SIREN_MOVE_WAIT * self.config.MAP_SIREN_COUNT \
|
add = self.config.MAP_SIREN_MOVE_WAIT * self.config.MAP_SIREN_COUNT \
|
||||||
if not self.config.ENABLE_FAST_FORWARD else 0
|
if self.config.MAP_HAS_MOVABLE_ENEMY and not self.config.ENABLE_FAST_FORWARD else 0
|
||||||
arrive_timer = Timer(0.3 + add)
|
arrive_timer = Timer(0.3 + add)
|
||||||
arrive_unexpected_timer = Timer(1.5 + add)
|
arrive_unexpected_timer = Timer(1.5 + add)
|
||||||
# Wait after ambushed.
|
# Wait after ambushed.
|
||||||
|
Loading…
Reference in New Issue
Block a user