mower-ng/mower/solvers/infra/clue/message_board.py
2025-01-22 20:15:39 +08:00

35 lines
1.2 KiB
Python

from datetime import timedelta
from mower.solvers.infra.base_mixin import BaseMixin
from mower.solvers.infra.enter_room import EnterRoomSolver
from mower.utils import config
from mower.utils.graph import SceneGraphSolver
from mower.utils.scene import Scene
class MessageBoard(SceneGraphSolver, BaseMixin):
solver_name = "留言板"
solver_max_duration = timedelta(minutes=2)
def transition(self):
if (
scene := self.scene()
) == Scene.INFRA_DETAILS and self.detect_room() == "meeting":
score, scope = config.recog.match("clue/message_board_entry")
if score > 0.8:
self.tap(scope)
return
self.tap("clue/interact")
elif scene == Scene.CLUE_MESSAGE_BOARD:
if self.animation():
return
if pos := self.find("clue/message_board_collect"):
self.tap(pos)
return
return True
elif scene == Scene.INFRA_CONFIDENTIAL:
self.back()
elif scene in self.waiting_scene:
self.waiting_solver()
else:
EnterRoomSolver().run("meeting", detail=False)