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

Method execute_boss

tasks/DemonEncounter/script_task.py:45–125  ·  view source on GitHub ↗

打boss :return:

(self)

Source from the content-addressed store, hash-verified

43
44
45 def execute_boss(self):
46 """
47 打boss
48 :return:
49 """
50 logger.hr('Start boss battle', 1)
51 while 1:
52 self.screenshot()
53 if self.appear(self.I_BOSS_FIRE):
54 current, remain, total = self.O_DE_BOSS_PEOPLE.ocr(self.device.image)
55 if total == 300 and current >= 290:
56 logger.info('Boss battle people is full')
57 if not self.appear(self.I_UI_BACK_RED):
58 logger.warning('Boss battle people is full but no red back')
59 continue
60 self.ui_click_until_disappear(self.I_UI_BACK_RED)
61 # 退出重新选一个没人慢的boss
62 logger.info('Exit and reselect')
63 continue
64 else:
65 logger.info('Boss battle people is not full')
66 break
67
68 if self.appear_then_click(self.I_BOSS_NAMAZU, interval=1):
69 continue
70 if self.appear_then_click(self.I_BOSS_SHINKIRO, interval=1):
71 continue
72 if self.appear_then_click(self.I_BOSS_ODOKURO, interval=1):
73 continue
74 if self.appear_then_click(self.I_BOSS_OBOROGURUMA, interval=1):
75 continue
76 if self.appear_then_click(self.I_BOSS_TSUCHIGUMO, interval=1):
77 continue
78 if self.appear_then_click(self.I_BOSS_SONGSTRESS, interval=1):
79 continue
80 if self.appear_then_click(self.I_DE_BOSS, interval=4):
81 continue
82 if self.click(self.C_DM_BOSS_CLICK, interval=1.7):
83 continue
84 logger.info('Boss battle start')
85 # 点击集结挑战
86 boss_fire_count = 0 # 五次没点到就意味着今天已经挑战过了
87 while 1:
88 self.screenshot()
89 if self.appear(self.I_BOSS_CONFIRM):
90 self.ui_click(self.I_BOSS_NO_SELECT, self.I_BOSS_SELECTED)
91 self.ui_click(self.I_BOSS_CONFIRM, self.I_BOSS_GATHER)
92 break
93 if self.appear(self.I_BOSS_GATHER):
94 break
95 if boss_fire_count >= 5:
96 logger.warning('Boss battle already done')
97 self.ui_click_until_disappear(self.I_UI_BACK_RED)
98 return
99 if self.appear_then_click(self.I_BOSS_FIRE, interval=1):
100 boss_fire_count += 1
101 continue
102 logger.info('Boss battle confirm and enter')

Callers 1

runMethod · 0.95

Calls 15

ui_clickMethod · 0.95
TimerClass · 0.90
appearMethod · 0.80
ocrMethod · 0.80
appear_then_clickMethod · 0.80
sleepMethod · 0.80
stuck_record_addMethod · 0.80
wait_until_disappearMethod · 0.80
stuck_record_clearMethod · 0.80
run_general_battleMethod · 0.80
wait_until_appearMethod · 0.80

Tested by

no test coverage detected