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

Method execute_lantern

tasks/DemonEncounter/script_task.py:127–179  ·  view source on GitHub ↗

点灯笼 四次 :return:

(self)

Source from the content-addressed store, hash-verified

125 # 返回到封魔主界面
126
127 def execute_lantern(self):
128 """
129 点灯笼 四次
130 :return:
131 """
132 # 先点四次
133 ocr_timer = Timer(0.8)
134 ocr_timer.start()
135 while 1:
136 self.screenshot()
137 if not ocr_timer.reached():
138 continue
139 else:
140 ocr_timer.reset()
141 cu, re, total = self.O_DE_COUNTER.ocr(self.device.image)
142 if cu + re != total:
143 logger.warning('Lantern count error')
144 continue
145 if cu == 0 and re == 4:
146 break
147
148 if self.appear_then_click(self.I_DE_FIND, interval=1):
149 continue
150 logger.info('Lantern count success')
151 # 然后领取红色达摩
152 self.screenshot()
153 if not self.appear(self.I_DE_AWARD):
154 self.ui_get_reward(self.I_DE_RED_DHARMA)
155 self.wait_until_appear(self.I_DE_AWARD)
156 # 然后到四个灯笼
157 match_click = {
158 1: self.C_DE_1,
159 2: self.C_DE_2,
160 3: self.C_DE_3,
161 4: self.C_DE_4,
162 }
163 for i in range(1, 5):
164 logger.hr(f'Check lantern {i}', 3)
165 lantern_type = self.check_lantern(i)
166 match lantern_type:
167 case LanternClass.BOX:
168 self._box()
169 case LanternClass.MAIL:
170 self._mail(match_click[i])
171 case LanternClass.REALM:
172 self._realm(match_click[i])
173 case LanternClass.EMPTY:
174 logger.warning(f'Lantern {i} is empty')
175 case LanternClass.BATTLE:
176 self._battle(match_click[i])
177 case LanternClass.MYSTERY:
178 self._mystery(match_click[i])
179 time.sleep(1)
180
181 @cached_property
182 def con(self) -> GeneralBattleConfig:

Callers 1

runMethod · 0.95

Calls 15

startMethod · 0.95
reachedMethod · 0.95
resetMethod · 0.95
check_lanternMethod · 0.95
_boxMethod · 0.95
_mailMethod · 0.95
_realmMethod · 0.95
_battleMethod · 0.95
_mysteryMethod · 0.95
TimerClass · 0.90
ocrMethod · 0.80
appear_then_clickMethod · 0.80

Tested by

no test coverage detected