mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-15 14:37:20 +08:00
Opt: Changed the implementation of #1119
This commit is contained in:
@@ -571,7 +571,7 @@ class ResearchSelector(UI):
|
||||
|
||||
self.projects = projects
|
||||
|
||||
def research_sort_filter(self):
|
||||
def research_sort_filter(self, enforce):
|
||||
"""
|
||||
Returns:
|
||||
list: A list of ResearchProject objects and preset strings,
|
||||
@@ -596,10 +596,8 @@ class ResearchSelector(UI):
|
||||
string = string.lower().replace('hakuryuu', 'hakuryu')
|
||||
|
||||
FILTER.load(string)
|
||||
priority = FILTER.apply(self.projects, func=self._research_check)
|
||||
if not [project for project in priority
|
||||
if project != 'reset' and project != 'shortest' and project != 'cheapest']:
|
||||
priority = FILTER.apply(self.projects, func=partial(self._research_check, enforce=True))
|
||||
priority = FILTER.apply(self.projects, func=partial(self._research_check, enforce=enforce))
|
||||
|
||||
# Log
|
||||
logger.attr('Filter_sort', ' > '.join([str(project) for project in priority]))
|
||||
return priority
|
||||
@@ -661,26 +659,26 @@ class ResearchSelector(UI):
|
||||
|
||||
return True
|
||||
|
||||
def research_sort_shortest(self):
|
||||
def research_sort_shortest(self, enforce):
|
||||
"""
|
||||
Returns:
|
||||
list: A list of ResearchProject objects and preset strings,
|
||||
such as [object, object, object, 'reset']
|
||||
"""
|
||||
FILTER.load(FILTER_STRING_SHORTEST)
|
||||
priority = FILTER.apply(self.projects, func=self._research_check)
|
||||
priority = FILTER.apply(self.projects, func=partial(self._research_check, enforce=enforce))
|
||||
|
||||
logger.attr('Filter_sort', ' > '.join([str(project) for project in priority]))
|
||||
return priority
|
||||
|
||||
def research_sort_cheapest(self):
|
||||
def research_sort_cheapest(self, enforce):
|
||||
"""
|
||||
Returns:
|
||||
list: A list of ResearchProject objects and preset strings,
|
||||
such as [object, object, object, 'reset']
|
||||
"""
|
||||
FILTER.load(FILTER_STRING_CHEAPEST)
|
||||
priority = FILTER.apply(self.projects, func=self._research_check)
|
||||
priority = FILTER.apply(self.projects, func=partial(self._research_check, enforce=enforce))
|
||||
|
||||
logger.attr('Filter_sort', ' > '.join([str(project) for project in priority]))
|
||||
return priority
|
||||
|
||||
@@ -18,6 +18,7 @@ class RewardResearch(ResearchSelector):
|
||||
_research_project_offset = 0
|
||||
_research_finished_index = 2
|
||||
research_project_started = None # ResearchProject
|
||||
enforce = False
|
||||
|
||||
def ensure_research_stable(self):
|
||||
self.wait_until_stable(STABLE_CHECKER)
|
||||
@@ -115,9 +116,9 @@ class RewardResearch(ResearchSelector):
|
||||
if isinstance(project, str):
|
||||
# priority example: ['shortest']
|
||||
if project == 'shortest':
|
||||
self.research_select(self.research_sort_shortest())
|
||||
self.research_select(self.research_sort_shortest(self.enforce))
|
||||
elif project == 'cheapest':
|
||||
self.research_select(self.research_sort_cheapest())
|
||||
self.research_select(self.research_sort_cheapest(self.enforce))
|
||||
else:
|
||||
logger.warning(f'Unknown select method: {project}')
|
||||
return True
|
||||
@@ -129,6 +130,16 @@ class RewardResearch(ResearchSelector):
|
||||
continue
|
||||
|
||||
logger.info('No research project started')
|
||||
if (not self.enforce) \
|
||||
and (self.config.Research_UseCube == 'only_no_project'
|
||||
or self.config.Research_UseCube == 'only_05_hour'
|
||||
or self.config.Research_UseCoin == 'only_no_project'
|
||||
or self.config.Research_UseCoin == 'only_05_hour'
|
||||
or self.config.Research_UsePart == 'only_no_project'
|
||||
or self.config.Research_UsePart == 'only_05_hour'):
|
||||
logger.info('Enforce choosing research project')
|
||||
self.enforce = True
|
||||
self.research_select(self.research_sort_filter(self.enforce))
|
||||
return True
|
||||
|
||||
def research_project_start(self, project, skip_first_screenshot=True):
|
||||
@@ -250,7 +261,8 @@ class RewardResearch(ResearchSelector):
|
||||
self.device.sleep(1.5)
|
||||
self.device.screenshot()
|
||||
record.add(self.device.image)
|
||||
self.device.swipe_vector((0, 250), box=ITEMS_3_SWIPE.area, random_range=(-10, -10, 10, 10), padding=0)
|
||||
self.device.swipe_vector((0, 250), box=ITEMS_3_SWIPE.area, random_range=(-10, -10, 10, 10),
|
||||
padding=0)
|
||||
self.device.sleep(2)
|
||||
self.device.screenshot()
|
||||
record.add(self.device.image)
|
||||
@@ -393,4 +405,4 @@ class RewardResearch(ResearchSelector):
|
||||
self.config.task_delay(server_update=True)
|
||||
else:
|
||||
# Project requirements are not satisfied
|
||||
self.config.task_delay(success=False)
|
||||
self.config.task_delay(success=False)
|
||||
|
||||
Reference in New Issue
Block a user