MCPcopy Create free account
hub / github.com/runhey/OnmyojiAutoScript / run

Method run

tasks/Nian/script_task.py:24–109  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

22class ScriptTask(GameUi, GeneralBattle, GeneralRoom, GeneralInvite, NianAssets):
23
24 def run(self) -> None:
25 def cd_exit(cd: timedelta=False):
26 logger.warning(f'Nian in CD {cd}')
27 if cd is False:
28 self.set_next_run(task='Nian', success=False, finish=True)
29 raise TaskEnd('Nian')
30 next_run = datetime.now() + cd
31 self.set_next_run(task='Nian', success=False, finish=False, target=next_run)
32 raise TaskEnd('Nian')
33
34 self.ui_get_current_page()
35 self.ui_goto(page_team)
36 con = self.config.nian.nian_config
37
38 # 进入
39 self.ui_get_current_page()
40 self.ui_goto(page_team)
41 self.check_zones('年兽')
42 cd = self.check_cd()
43 if cd:
44 cd_exit(cd)
45 # 但是这个时候还不一定可以完全判断有没有进入cd
46 cd_count = 0
47 while 1:
48 self.screenshot()
49 if self.appear(self.I_N_WAITING):
50 break
51 if cd_count >= 4:
52 # 4 x 1.5 = 6秒没有进入说明是在冷却中
53 cd_exit()
54 if self.appear_then_click(self.I_GR_AUTO_MATCH, interval=1.5):
55 cd_count += 1
56 continue
57 # 匹配个8分钟,要是八分钟还没人拿没啥了
58 logger.info('Waiting for match')
59 click_timer = Timer(240)
60 check_timer = Timer(480)
61 click_timer.start()
62 check_timer.start()
63 self.device.stuck_record_add('LOGIN_CHECK')
64 while 1:
65 self.screenshot()
66 # 如果被秒开进入战斗, 被秒开不支持开启buff
67 if self.check_take_over_battle(False, config=self.battle_config):
68 logger.info('Nian take over battle')
69 break
70 # 如果进入房间
71 elif self.is_in_room():
72 self.device.stuck_record_clear()
73 if self.wait_battle(wait_time=time(minute=1)):
74 buff = []
75 if con.buff_gold_50_click:
76 buff.append(BuffClass.GOLD_50)
77 if con.buff_gold_100_click:
78 buff.append(BuffClass.GOLD_100)
79 if buff is []:
80 buff = None
81 self.run_general_battle(config=self.battle_config, buff=buff)

Callers 1

script_task.pyFile · 0.45

Calls 15

check_cdMethod · 0.95
startMethod · 0.95
reachedMethod · 0.95
TimerClass · 0.90
TaskEndClass · 0.90
ui_get_current_pageMethod · 0.80
ui_gotoMethod · 0.80
check_zonesMethod · 0.80
appearMethod · 0.80
appear_then_clickMethod · 0.80
stuck_record_addMethod · 0.80

Tested by

no test coverage detected