From 500ddf13dd37bc1d844f6deb654a3ff345abee85 Mon Sep 17 00:00:00 2001 From: Elaina <2901432375@qq.com> Date: Thu, 30 Jan 2025 11:36:28 +0800 Subject: [PATCH] =?UTF-8?q?enterroom=E4=B8=AD=E6=9E=A2=E5=88=86=E4=BD=8E?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E5=86=8D=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mower/solvers/infra/enter_room.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mower/solvers/infra/enter_room.py b/mower/solvers/infra/enter_room.py index 4f55dfee..661ed6af 100644 --- a/mower/solvers/infra/enter_room.py +++ b/mower/solvers/infra/enter_room.py @@ -99,6 +99,7 @@ class EnterRoomSolver(BaseSolver, BaseMixin): self.room = room self.detail = detail self.avoid_bug_start_time = None + self.animation_start_time = None super().run() def bug_timeout(self) -> bool: @@ -106,6 +107,11 @@ class EnterRoomSolver(BaseSolver, BaseMixin): self.avoid_bug_start_time = datetime.now() return datetime.now() > self.avoid_bug_start_time + timedelta(minutes=3) + def animation_timeout(self) -> bool: + if self.animation_start_time is None: + self.animation_start_time = datetime.now() + return datetime.now() > self.animation_start_time + timedelta(seconds=10) + @staticmethod def segment(central: tp.Scope) -> dict[str, tp.Rectangle]: top_left = central[0] @@ -125,7 +131,7 @@ class EnterRoomSolver(BaseSolver, BaseMixin): def transition(self) -> bool: if (scene := self.scene()) == Scene.INFRA_MAIN: - if self.animation(interval=1): + if self.animation(): return if self.bug_timeout(): # yj的bug self.back() @@ -136,8 +142,9 @@ class EnterRoomSolver(BaseSolver, BaseMixin): pos = self.segment(scope)[self.room] self.ctap(pos, 1, id="enter_room") return - else: + elif self.animation_timeout(): self.cback(3, id="infra_back") + self.animation_start_time = None elif scene in [Scene.CTRLCENTER_ASSISTANT, Scene.INFRA_DETAILS]: if self.detect_room() != self.room: