35 lines
1.2 KiB
Python
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)
|