点灯笼 四次 :return:
(self)
| 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: |
no test coverage detected