drone与reload房间号匹配移至transition之前

This commit is contained in:
Elaina 2024-09-27 13:29:33 +08:00
parent aa67ff6bf1
commit 1000bed1fa
2 changed files with 13 additions and 7 deletions

View file

@ -40,6 +40,11 @@ class DroneSolver(SceneGraphSolver, BaseMixin):
if DigitReader().get_drone(config.recog.gray) < self.count and not self.all_in:
logger.info("无人机数量不足")
return False
if (
self.scene() in [Scene.ORDER_LIST, Scene.FACTORY_ROOMS]
and not self.detect_room_inside() == self.room
):
EnterRoomSolver().run(self.room, detail=False)
super().run()
return True
@ -79,9 +84,9 @@ class DroneSolver(SceneGraphSolver, BaseMixin):
self.start_time = datetime.now()
def transition(self) -> bool:
if (scene := self.scene()) in [Scene.ORDER_LIST, Scene.FACTORY_ROOMS]:
if not self.detect_room_inside() == self.room:
EnterRoomSolver().run(self.room, detail=False)
if (scene := self.scene()) == Scene.INFRA_DETAILS:
self.ctap((200, 1000), 1, config.screenshot_avg / 1000)
elif scene in [Scene.ORDER_LIST, Scene.FACTORY_ROOMS]:
self.wait_start()
if self.success:
return True
@ -110,8 +115,6 @@ class DroneSolver(SceneGraphSolver, BaseMixin):
elif tap_count < 0:
for _ in range(-tap_count):
self.tap((900, 500), interval=0)
elif scene == Scene.INFRA_DETAILS:
self.ctap((200, 1000), 1, config.screenshot_avg / 1000)
elif scene == self.waiting_scene:
self.waiting_solver()
else:

View file

@ -19,6 +19,11 @@ class ReloadSolver(SceneGraphSolver, BaseMixin):
logger.info(f"开始补货:{room}")
self.room = room
self.success = False
if (
self.scene() == Scene.FACTORY_ROOMS
and not self.detect_room_inside() == self.room
):
EnterRoomSolver().run(self.room, detail=False)
self.wait_start()
super().run()
@ -62,8 +67,6 @@ class ReloadSolver(SceneGraphSolver, BaseMixin):
self.wait_start()
self.ctap((200, 1000), 1, config.screenshot_avg / 1000)
elif scene == Scene.FACTORY_ROOMS:
if not self.detect_room_inside() == self.room:
EnterRoomSolver().run(self.room, detail=False)
reload_num = 99 - self.number(((1306, 462), (1391, 521)), 50, 200)
if self.find("reload_check"):
self.ctap((1400, 850), 1, config.screenshot_avg / 1000)