Skip to content

Commit 446b7f0

Browse files
committed
refactor: 重构青春杯对手选择的代码, 防止模拟器卡顿或者网络卡顿造成的选择对手失败
1 parent 2017d73 commit 446b7f0

File tree

4 files changed

+25
-26
lines changed

4 files changed

+25
-26
lines changed

module/umamusume/asset/ui.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
AOHARUHAI_RACE_INRACE = UI("AOHARUHAI_RACE_INRACE", [template.UI_AOHARUHAI_RACE_INRACE], [])
2727
AOHARUHAI_RACE_END = UI("AOHARUHAI_RACE_END", [template.UI_AOHARUHAI_RACE_END], [])
2828
AOHARUHAI_RACE_SCHEDULE = UI("AOHARUHAI_RACE_SCHEDULE", [template.UI_AOHARUHAI_RACE_SCHEDULE], [])
29+
AOHARUHAI_RACE_FINAL_START = UI("AOHARUHAI_RACE_FINAL_START", [template.UI_AOHARUHAI_RACE_FINAL_START], [])
30+
AOHARUHAI_RACE_SELECT_OPPONENT = UI("AOHARUHAI_RACE_SELECT_OPPONENT", [template.UI_AOHARUHAI_RACE_SELECT_OPPONENT], [])
2931

3032

3133
CULTIVATE_RACE_LIST = UI("CULTIVATE_RACE_LIST", [template.UI_CULTIVATE_RACE_LIST_1, template.UI_CULTIVATE_RACE_LIST_2], [])
@@ -73,7 +75,7 @@
7375
CULTIVATE_SUPPORT_CARD_SELECT, CULTIVATE_FOLLOW_SUPPORT_CARD_SELECT, CULTIVATE_FINAL_CHECK, INFO,
7476
CULTIVATE_MAIN_MENU, CULTIVATE_TRAINING_SELECT, CULTIVATE_EXTEND, CULTIVATE_CATCH_DOLL_GAME,
7577
CULTIVATE_CATCH_DOLL_GAME_RESULT, CULTIVATE_LEVEL_RESULT,
76-
AOHARUHAI_RACE, AOHARUHAI_RACE_INRACE, AOHARUHAI_RACE_END, AOHARUHAI_RACE_SCHEDULE,
78+
AOHARUHAI_RACE_FINAL_START, AOHARUHAI_RACE_SELECT_OPPONENT, AOHARUHAI_RACE, AOHARUHAI_RACE_INRACE, AOHARUHAI_RACE_END, AOHARUHAI_RACE_SCHEDULE,
7779
CULTIVATE_GOAL_RACE, CULTIVATE_RACE_LIST, CULTIVATE_RESULT, CULTIVATE_RESULT_1, CULTIVATE_RESULT_2,
7880
CULTIVATE_LEARN_SKILL, RECEIVE_CUP,
7981
CULTIVATE_URA_RACE_1, CULTIVATE_URA_RACE_2,CULTIVATE_URA_RACE_3,

module/umamusume/manifest.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
CULTIVATE_EVENT_UMAMUSUME: script_cultivate_event,
2828
CULTIVATE_EVENT_SUPPORT_CARD: script_cultivate_event,
2929
CULTIVATE_EVENT_SCENARIO: script_cultivate_event,
30+
AOHARUHAI_RACE_FINAL_START: script_aoharuhai_race_final_start,
31+
AOHARUHAI_RACE_SELECT_OPPONENT: script_aoharuhai_race_select_oponent,
3032
AOHARUHAI_RACE: script_aoharuhai_race,
3133
AOHARUHAI_RACE_INRACE: script_aoharuhai_race_inrace,
3234
AOHARUHAI_RACE_END: script_aoharuhai_race_end,

module/umamusume/script/cultivate_task/cultivate.py

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -234,17 +234,6 @@ def script_cultivate_event(ctx: UmamusumeContext):
234234
log.debug("未出现选项")
235235

236236
def script_aoharuhai_race(ctx: UmamusumeContext):
237-
def select_opponent (race_index: int):
238-
match race_index:
239-
case 1:
240-
ctx.ctrl.click(360, 290, "选择第一个对手")
241-
case 2:
242-
ctx.ctrl.click(360, 560, "选择第二个对手")
243-
case 3:
244-
ctx.ctrl.click(360, 830, "选择第三个对手")
245-
time.sleep(2)
246-
ctx.ctrl.click(360, 1080, "开始对战")
247-
248237
img = ctx.ctrl.get_screen(to_gray=True)
249238
if image_match(img, UI_AOHARUHAI_RACE_1).find_match:
250239
race_index = 0
@@ -260,22 +249,24 @@ def select_opponent (race_index: int):
260249
ctx.ctrl.click(360, 1180, "确认比赛结果")
261250
return
262251

252+
ctx.cultivate_detail.turn_info.aoharu_race_index = race_index
263253
ctx.ctrl.click(360, 1080, "开始青春杯对战")
264254

265-
if race_index == 4:
266-
while True:
267-
time.sleep(1)
268-
img = ctx.ctrl.get_screen(to_gray=True)
269-
if image_match(img, UI_AOHARUHAI_RACE_FINAL_START).find_match:
270-
break
271-
ctx.ctrl.click(360, 980, "确认决赛对手")
272-
else:
273-
while True:
274-
time.sleep(1)
275-
img = ctx.ctrl.get_screen(to_gray=True)
276-
if image_match(img, UI_AOHARUHAI_RACE_SELECT_OPPONENT).find_match:
277-
break
278-
select_opponent(ctx.task.detail.scenario_config.aoharu_config.get_opponent(race_index))
255+
def script_aoharuhai_race_final_start(ctx: UmamusumeContext):
256+
ctx.ctrl.click(360, 980, "确认决赛对手")
257+
258+
def script_aoharuhai_race_select_oponent(ctx: UmamusumeContext):
259+
def select_opponent (race_index: int):
260+
match race_index:
261+
case 1:
262+
ctx.ctrl.click(360, 290, "选择第一个对手")
263+
case 2:
264+
ctx.ctrl.click(360, 560, "选择第二个对手")
265+
case 3:
266+
ctx.ctrl.click(360, 830, "选择第三个对手")
267+
time.sleep(2)
268+
ctx.ctrl.click(360, 1080, "开始对战")
269+
select_opponent(ctx.task.detail.scenario_config.aoharu_config.get_opponent(ctx.cultivate_detail.turn_info.aoharu_race_index))
279270

280271
def script_aoharuhai_race_confirm(ctx: UmamusumeContext):
281272
ctx.ctrl.click(520, 920, "确认对战")

module/umamusume/types.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ class TurnInfo:
117117
turn_info_logged: bool
118118
turn_learn_skill_done: bool
119119

120+
# 青春杯
121+
aoharu_race_index: int
122+
120123
def __init__(self):
121124
self.date = -1
122125
self.parse_train_info_finish = False
@@ -130,6 +133,7 @@ def __init__(self):
130133
self.turn_operation = None
131134
self.turn_info_logged = False
132135
self.turn_learn_skill_done = False
136+
self.aoharu_race_index = 0
133137

134138
def log_turn_info(self, scenario_type : ScenarioType):
135139
log.info("当前回合时间 >" + str(self.date))

0 commit comments

Comments
 (0)