Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/sr_od/app/assignments/assignments_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def open_menu(self) -> OperationRoundResult:
@node_from(from_name='打开菜单')
@operation_node(name='点击委托')
def _click_assignment(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot
result: MatchResult = phone_menu_utils.get_phone_menu_item_pos(self.ctx, screen, phone_menu_const.ASSIGNMENTS, alert=False)
if result is None:
return self.round_success(AssignmentsApp.STATUS_NO_ALERT)
Expand All @@ -51,15 +51,15 @@ def _click_assignment(self) -> OperationRoundResult:
@node_from(from_name='点击委托', status=STATUS_WITH_ALERT)
@operation_node(name='选择专属材料')
def choose_tab(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
area = self.ctx.screen_loader.get_area('画面-委托', 'TAB列表')
return self.round_by_ocr_and_click(screen, target_cn='专属材料', area=area,
success_wait=1, retry_wait=1)

@node_from(from_name='选择专属材料')
@operation_node(name='一键领取')
def _claim_all(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
result = self.round_by_find_area(screen, '菜单', '委托-一键领取')
if result.is_success:
return self.round_by_find_and_click_area(screen, '菜单', '委托-一键领取',
Expand All @@ -70,14 +70,14 @@ def _claim_all(self) -> OperationRoundResult:
@node_from(from_name='一键领取')
@operation_node(name='再次派遣')
def assign_again(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '菜单', '委托-再次派遣',
success_wait=1, retry_wait=1)

@node_from(from_name='点击空白')
@operation_node(name='领取')
def _claim(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot

result = self.round_by_find_area(screen, '菜单', '委托-领取')
if result.is_success:
Expand All @@ -89,7 +89,7 @@ def _claim(self) -> OperationRoundResult:
@node_from(from_name='领取')
@operation_node(name='点击空白')
def _click_empty(self):
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '菜单', '委托-点击空白区域继续',
success_wait=1, retry_wait=1)

Expand Down
4 changes: 2 additions & 2 deletions src/sr_od/app/claim_email/email_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def open_menu(self) -> OperationRoundResult:
@node_from(from_name='打开菜单')
@operation_node(name='点击邮件')
def _click_email(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot
result: MatchResult = phone_menu_utils.get_phone_menu_item_pos_at_right(self.ctx, screen, phone_menu_const.EMAILS, alert=True)
if result is None:
return self.round_success(EmailApp.STATUS_NO_ALERT)
Expand All @@ -53,7 +53,7 @@ def _click_email(self) -> OperationRoundResult:
@node_from(from_name='点击邮件', status=STATUS_WITH_ALERT)
@operation_node(name='全部领取')
def _claim(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '菜单', '邮件-全部领取',
success_wait=1, retry_wait=1)

Expand Down
2 changes: 1 addition & 1 deletion src/sr_od/app/daily_training/daily_training_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def claim_score(self) -> OperationRoundResult:
@node_from(from_name='领取点数', success=False)
@operation_node(name='领取奖励')
def claim_reward(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot

if not common_screen_state.in_secondary_ui(self.ctx, screen,'指南'):
return self.round_retry('未在指南页面', wait=1)
Expand Down
8 changes: 4 additions & 4 deletions src/sr_od/app/div_uni/operations/choose_oe_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def check_screen(self) -> OperationRoundResult:
if self.num == 0:
return self.round_success('使用默认档案')

screen = self.screenshot()
screen = self.last_screenshot

result = self.round_by_find_area(screen, '饰品提取', '左上角标题-饰品提取')
if result.is_success:
Expand All @@ -49,7 +49,7 @@ def click_switch_file(self) -> OperationRoundResult:
点击切换存档
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '饰品提取', '按钮-切换存档入口',
success_wait=1.5, retry_wait=1)

Expand All @@ -60,13 +60,13 @@ def wait_management_screen(self) -> OperationRoundResult:
等待选择存档的画面
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot

return self.round_by_find_area(screen, '饰品提取', '左上角标题-存档管理', retry_wait=1)

@node_from(from_name='识别画面', status='左上角标题-存档管理')
@node_from(from_name='等待存档管理画面')
@operation_node(name='选择存档')
@operation_node(name='选择存档', screenshot_before_round=False)
def choose_file(self) -> OperationRoundResult:
"""
选择存档
Expand Down
6 changes: 3 additions & 3 deletions src/sr_od/app/div_uni/operations/choose_oe_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def check_screen(self) -> OperationRoundResult:
if self.character_id is None:
return self.round_success('无需支援')

screen = self.screenshot()
screen = self.last_screenshot

return self.round_by_find_area(screen, '饰品提取', '左上角标题-饰品提取', retry_wait=1)

Expand All @@ -44,7 +44,7 @@ def click_support(self) -> OperationRoundResult:
点击支援按钮
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '饰品提取', '按钮-支援',
success_wait=1, retry_wait=1)

Expand All @@ -55,7 +55,7 @@ def choose_support(self) -> OperationRoundResult:
选择支援角色
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
round_result = ChooseSupport.click_avatar(self, screen, self.character_id)
if round_result.is_success:
self.found_character = True
Expand Down
8 changes: 4 additions & 4 deletions src/sr_od/app/div_uni/operations/ornamenet_extraction.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ def click_challenge(self) -> OperationRoundResult:
点击挑战
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '饰品提取', '按钮-开始挑战',
success_wait=2, retry_wait=1)

Expand All @@ -140,7 +140,7 @@ def wait_mission_loaded(self) -> OperationRoundResult:
等待副本加载
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_area(screen, '大世界', '角色图标', retry_wait=1)

@node_from(from_name='等待副本加载')
Expand Down Expand Up @@ -186,7 +186,7 @@ def after_battle_result(self) -> OperationRoundResult:
战斗结果出来后 点击再来一次或退出
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
if self.battle_fail_times >= 5 or self.battle_success_times >= self.run_times: # 失败过多或者完成指定次数了 退出
area_name = '退出关卡按钮'
else: # 还需要继续挑战
Expand All @@ -202,5 +202,5 @@ def wait_back(self) -> OperationRoundResult:
等待退出到大世界
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_area(screen, '大世界', '角色图标', retry_wait=1)
8 changes: 4 additions & 4 deletions src/sr_od/app/echo_of_war/challenge_ehco_of_war.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def after_click_challenge(self) -> OperationRoundResult:
点击挑战后 判断当前有没有对话框 需保证点击挑战1秒后再触发
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot

result = self.check_dialog(screen)
if result is not None:
Expand Down Expand Up @@ -136,7 +136,7 @@ def click_start_challenge(self) -> OperationRoundResult:
@node_from(from_name='点击开始挑战')
@operation_node(name='点击开始挑战后确认')
def after_click_start_challenge(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot

result = self.check_dialog(screen)
if result is not None:
Expand Down Expand Up @@ -174,7 +174,7 @@ def _after_battle_result(self) -> OperationRoundResult:
战斗结果出来后 点击再来一次或退出
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
if self.battle_fail_times >= 5 or self.battle_success_times >= self.plan_times: # 失败过多或者完成指定次数了 退出
return self.round_by_find_and_click_area(screen, '战斗画面', '退出关卡按钮',
success_wait=2, retry_wait=1)
Expand All @@ -189,7 +189,7 @@ def after_challenge_again(self) -> OperationRoundResult:
再来一次的确认 在有角色阵亡时候会弹出来
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot

result = self.check_dialog(screen)
if result is not None:
Expand Down
12 changes: 6 additions & 6 deletions src/sr_od/app/nameless_honor/nameless_honor_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def open_menu(self) -> OperationRoundResult:
@node_from(from_name='打开菜单')
@operation_node(name='点击无名勋礼')
def _click_honor(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot
result: MatchResult = phone_menu_utils.get_phone_menu_item_pos(self.ctx, screen, phone_menu_const.NAMELESS_HONOR, alert=True)
if result is None:
return self.round_success(NamelessHonorApp.STATUS_NO_ALERT)
Expand All @@ -56,7 +56,7 @@ def _click_honor(self) -> OperationRoundResult:
@node_from(from_name='点击无名勋礼', status=STATUS_WITH_ALERT)
@operation_node(name='点击任务')
def _click_tab_2(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot
result: MatchResult = phone_menu_utils.get_nameless_honor_tab_pos(self.ctx, screen, 2, alert=True)
if result is None:
return self.round_success(NamelessHonorApp.STATUS_NO_ALERT)
Expand All @@ -67,7 +67,7 @@ def _click_tab_2(self) -> OperationRoundResult:
@node_from(from_name='点击任务')
@operation_node(name='领取任务奖励')
def _claim_task(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot
result = self.round_by_find_and_click_area(screen, '菜单', '无名勋礼-任务-一键领取')

if result.is_success:
Expand All @@ -83,7 +83,7 @@ def _claim_task(self) -> OperationRoundResult:
@node_from(from_name='领取任务奖励', success=False) # 有新任务的时候这里会有红点 但不会有领取按钮 因此失败也继续
@operation_node(name='点击奖励')
def _click_tab_1(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot
result: MatchResult = phone_menu_utils.get_nameless_honor_tab_pos(self.ctx, screen, 1, alert=True)
if result is None:
return self.round_success(NamelessHonorApp.STATUS_NO_ALERT)
Expand All @@ -94,7 +94,7 @@ def _click_tab_1(self) -> OperationRoundResult:
@node_from(from_name='点击奖励')
@operation_node(name='领取奖励')
def _claim_reward(self) -> OperationRoundResult:
screen: MatLike = self.screenshot()
screen = self.last_screenshot

return self.round_by_find_and_click_area(screen, '菜单', '无名勋礼-奖励-一键领取',
success_wait=2, retry_wait=0.5)
Expand All @@ -107,7 +107,7 @@ def _check_screen_after_reward(self) -> OperationRoundResult:
可能出现选择奖励的框 通过判断左上角标题判断
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
if common_screen_state.in_secondary_ui(self.ctx, screen, '无名勋礼'):
return self.round_success(wait=0.2)

Expand Down
12 changes: 6 additions & 6 deletions src/sr_od/app/relic_salvage/relic_salvage_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ def goto_salvage(self) -> OperationRoundResult:
@node_from(from_name='前往分解画面')
@operation_node(name='快速选择')
def click_filter(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '背包-遗器分解', '按钮-快速选择',
success_wait=1, retry_wait=1)

@node_from(from_name='快速选择')
@operation_node(name='选择等级')
def choose_level(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(
screen, '背包-遗器分解-快速选择', self.ctx.relic_salvage_config.salvage_level,
success_wait=1, retry_wait=1
Expand All @@ -43,7 +43,7 @@ def choose_level(self) -> OperationRoundResult:
@operation_node(name='选择弃置')
def choose_abandon(self) -> OperationRoundResult:
if self.ctx.relic_salvage_config.salvage_abandon:
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '背包-遗器分解-快速选择', '全选已弃置',
success_wait=1, retry_wait=1)
else:
Expand All @@ -54,21 +54,21 @@ def choose_abandon(self) -> OperationRoundResult:
@node_from(from_name='选择弃置', success=False)
@operation_node(name='快速选择确认')
def click_filter_confirm(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '背包-遗器分解-快速选择', '按钮-确认',
success_wait=1, retry_wait=1)

@node_from(from_name='快速选择确认')
@operation_node(name='点击分解')
def click_salvage(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '背包-遗器分解', '按钮-分解',
success_wait=1, retry_wait=1)

@node_from(from_name='点击分解')
@operation_node(name='点击分解确认')
def click_salvage_confirm(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '背包-遗器分解', '按钮-分解确认',
success_wait=1, retry_wait=1)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def _temp_leave(self) -> OperationRoundResult:
暂离
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
result = self.round_by_find_and_click_area(screen, '模拟宇宙', '菜单-暂离')
if result.is_success:
return self.round_success(result.status, wait=5)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def _check_level_type(self) -> OperationRoundResult:
识别楼层类型
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot

self.level_type = sim_uni_screen_state.get_level_type(self.ctx, screen)

Expand All @@ -130,7 +130,7 @@ def _check_route(self) -> OperationRoundResult:
or self.level_type != SimUniLevelTypeEnum.COMBAT.value):
return self.round_success()

screen = self.screenshot()
screen = self.last_screenshot

another_route = False # 是否匹配到另一条路线
mm = mini_map_utils.cut_mini_map(screen, self.ctx.game_config.mini_map_pos)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def battle_fail_exit(self) -> OperationRoundResult:
战斗失败后 点击结算
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '模拟宇宙', '战斗失败-终止战斗并结算',
success_wait=1, retry_wait=1)

Expand All @@ -98,7 +98,7 @@ def battle_fail_exit_confirm(self) -> OperationRoundResult:
战斗失败后 点击结算后 确认
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '模拟宇宙', '战斗失败-确认',
success_wait=6, retry_wait=1)

Expand All @@ -109,7 +109,7 @@ def click_empty(self) -> OperationRoundResult:
结算画面点击空白
:return:
"""
screen = self.screenshot()
screen = self.last_screenshot
return self.round_by_find_and_click_area(screen, '模拟宇宙', '点击空白处继续',
success_wait=1, retry_wait=1)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def __init__(self, ctx: SrContext,

@operation_node(name='画面识别', node_max_retry_times=20, is_start_node=True)
def check_screen(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot

state = sim_uni_screen_state.get_sim_uni_screen_state(
self.ctx, screen,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def _check_enemy(self) -> OperationRoundResult:
:return:
"""
now = time.time()
screen = self.screenshot()
screen = self.last_screenshot
result = self.round_by_find_area(screen, '模拟宇宙', '怪物上方等级')

if result.is_success:
Expand All @@ -58,7 +58,7 @@ def _technique_fight(self) -> OperationRoundResult:
@node_from(from_name='秘技进入战斗', success=False)
@operation_node(name='战斗')
def _fight(self) -> OperationRoundResult:
screen = self.screenshot()
screen = self.last_screenshot
result = self.round_by_find_area(screen, '模拟宇宙', '怪物上方等级')
if result.is_success: # 还没有进入战斗 可能是使用近战角色没有攻击到
self.ctx.controller.initiate_attack()
Expand Down
Loading