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

Class ScriptTask

tasks/ActivityShikigami/script_task.py:17–215  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15
16
17class ScriptTask(BaseActivity, ActivityShikigamiAssets):
18
19 def run(self) -> None:
20
21 config = self.config.activity_shikigami
22 self.limit_time: timedelta = config.general_climb.limit_time
23 if isinstance(self.limit_time, time):
24 self.limit_time = timedelta(hours=self.limit_time.hour, minutes=self.limit_time.minute,
25 seconds=self.limit_time.second)
26 self.limit_count = config.general_climb.limit_count
27
28 self.home_main()
29
30 # 设定是否锁定阵容
31 if config.general_battle.lock_team_enable:
32 logger.info("Lock team")
33 while 1:
34 self.screenshot()
35 if self.appear_then_click(self.I_UNLOCK, interval=1):
36 continue
37 if self.appear(self.I_LOCK):
38 break
39 else:
40 logger.info("Unlock team")
41 while 1:
42 self.screenshot()
43 if self.appear_then_click(self.I_LOCK, interval=1):
44 continue
45 if self.appear(self.I_UNLOCK):
46 break
47
48 # 选择是游戏的体力还是活动的体力
49 current_ap = config.general_climb.ap_mode
50 self.switch(current_ap)
51
52 # 流程应该是 在页面处:
53 # 1. 判定计数是否超了,时间是否超了
54 # 2. 如果是消耗活动体力,判定活动体力是否足够 如果是消耗一般的体力,判定一般体力是否足够
55 # 3. 如果开启买体力,就买体力
56 # 4. 如果开启了切换到游戏体力,就切换
57 while 1:
58 # 1
59 if self.limit_time is not None and self.limit_time + self.start_time < datetime.now():
60 logger.info("Time out")
61 break
62 if self.current_count >= self.limit_count:
63 logger.info("Count out")
64 break
65 # 2
66 self.wait_until_appear(self.I_FIRE)
67 is_remain = self.check_ap_remain(current_ap)
68 # 如果没有剩余了且这个时候是体力,就退出活动
69 if not is_remain and current_ap == ApMode.AP_GAME:
70 logger.info("Game ap out")
71 break
72 # 如果不是那就切换到体力
73 elif not is_remain and current_ap == ApMode.AP_ACTIVITY:
74 if config.general_climb.activity_toggle:

Callers 1

script_task.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected