Compare commits
5 commits
de1199169f
...
ca329fa744
Author | SHA1 | Date | |
---|---|---|---|
ca329fa744 | |||
ccfc3c187a | |||
fcdffd0cce | |||
f8f083f466 | |||
6e29fa0af0 |
16 changed files with 82 additions and 7 deletions
|
@ -275,6 +275,10 @@
|
|||
"label": "PRODUCT_SWITCHING_CONFIRM",
|
||||
"comment": "产物更改确认"
|
||||
},
|
||||
"230": {
|
||||
"label": "CLUE_MESSAGE_BOARD",
|
||||
"comment": "信息板"
|
||||
},
|
||||
"301": {
|
||||
"label": "BUSINESS_CARD",
|
||||
"comment": "个人名片"
|
||||
|
|
BIN
mower/resources/clue/interact.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/interact.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/message_board_banner.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/message_board_banner.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/message_board_collect.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/message_board_collect.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/message_board_entry.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/message_board_entry.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
mower/resources/clue/show_party_details.png
(Stored with Git LFS)
Normal file
BIN
mower/resources/clue/show_party_details.png
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -3,6 +3,7 @@ from mower.solvers.shop import CreditShop
|
|||
from .daily import DailySolver
|
||||
from .get_clue_count import GetClueCountSolver
|
||||
from .give_away import GiveAwaySolver
|
||||
from .message_board import MessageBoard
|
||||
from .party_time import PartyTimeSolver
|
||||
from .place import PlaceSolver
|
||||
from .receive import ReceiveSolver
|
||||
|
@ -12,6 +13,7 @@ class ClueManager:
|
|||
solver_name = "线索交流"
|
||||
|
||||
def run(self):
|
||||
MessageBoard().run()
|
||||
DailySolver().run()
|
||||
ReceiveSolver().run()
|
||||
PlaceSolver().run()
|
||||
|
|
|
@ -19,7 +19,7 @@ class GetClueCountSolver(SceneGraphSolver, BaseMixin):
|
|||
def transition(self) -> bool:
|
||||
if self.find("meeting_arrange_check_in"):
|
||||
self.res = self.read_screen(
|
||||
config.recog.img, limit=10, cord=((645, 977), (755, 1018))
|
||||
config.recog.img, limit=10, cord=((476, 985), (519, 1020))
|
||||
)
|
||||
logger.info(f"当前拥有线索数量为{self.res}")
|
||||
return True
|
||||
|
|
35
mower/solvers/infra/clue/message_board.py
Normal file
35
mower/solvers/infra/clue/message_board.py
Normal file
|
@ -0,0 +1,35 @@
|
|||
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)
|
|
@ -16,14 +16,18 @@ class PartyTimeSolver(SceneGraphSolver, BaseMixin):
|
|||
if (
|
||||
scene := self.scene()
|
||||
) == Scene.INFRA_DETAILS and self.detect_room() == "meeting":
|
||||
if self.find("clue/title_party", scope=((1600, 190), (1880, 260))):
|
||||
if self.animation(((1620, 200), (1910, 250))):
|
||||
return
|
||||
if self.find("clue/title_party"):
|
||||
config.party_time = self.double_read_time(((1768, 438), (1902, 480)))
|
||||
logger.info(f"线索交流结束时间:{config.party_time}")
|
||||
return True
|
||||
else:
|
||||
config.party_time = None
|
||||
logger.info("线索交流未开启")
|
||||
return True
|
||||
if pos := self.find("clue/show_party_details"):
|
||||
self.tap(pos)
|
||||
return
|
||||
config.party_time = None
|
||||
logger.info("线索交流未开启")
|
||||
return True
|
||||
elif scene == Scene.INFRA_CONFIDENTIAL:
|
||||
self.back()
|
||||
else:
|
||||
|
|
|
@ -38,6 +38,7 @@ from .utils import edge
|
|||
@edge(Scene.CLUE_DAILY, Scene.NAVIGATION_BAR)
|
||||
@edge(Scene.CLUE_RECEIVE, Scene.NAVIGATION_BAR)
|
||||
@edge(Scene.CLUE_PLACE, Scene.NAVIGATION_BAR)
|
||||
@edge(Scene.CLUE_MESSAGE_BOARD, Scene.NAVIGATION_BAR)
|
||||
@edge(Scene.ORDER_LIST, Scene.NAVIGATION_BAR)
|
||||
@edge(Scene.FACTORY_ROOMS, Scene.NAVIGATION_BAR)
|
||||
@edge(Scene.OPERATOR_ELIMINATE, Scene.NAVIGATION_BAR)
|
||||
|
|
|
@ -9,7 +9,7 @@ from .utils import edge
|
|||
|
||||
@edge(Scene.INFRA_TODOLIST, Scene.INFRA_MAIN)
|
||||
def todo_complete(solver: BaseSolver):
|
||||
solver.tap((1840, 140))
|
||||
solver.ctap((1840, 140), 3)
|
||||
|
||||
|
||||
@edge(Scene.INFRA_CONFIDENTIAL, Scene.INFRA_DETAILS)
|
||||
|
@ -21,6 +21,7 @@ def todo_complete(solver: BaseSolver):
|
|||
@edge(Scene.CLUE_GIVE_AWAY, Scene.INFRA_CONFIDENTIAL)
|
||||
@edge(Scene.CLUE_SUMMARY, Scene.INFRA_CONFIDENTIAL)
|
||||
@edge(Scene.CLUE_PLACE, Scene.INFRA_CONFIDENTIAL)
|
||||
@edge(Scene.CLUE_MESSAGE_BOARD, Scene.INFRA_CONFIDENTIAL)
|
||||
@edge(Scene.ORDER_LIST, Scene.INFRA_DETAILS)
|
||||
@edge(Scene.FACTORY_ROOMS, Scene.INFRA_DETAILS)
|
||||
@edge(Scene.CHOOSE_PRODUCT, Scene.FACTORY_ROOMS)
|
||||
|
|
|
@ -284,6 +284,8 @@ class Recognizer:
|
|||
self.scene = Scene.CLUE_SUMMARY
|
||||
elif self.find("clue/filter_all"):
|
||||
self.scene = Scene.CLUE_PLACE
|
||||
elif self.find("clue/message_board_banner"):
|
||||
self.scene = Scene.CLUE_MESSAGE_BOARD
|
||||
elif self.find("upgrade"):
|
||||
self.scene = Scene.UPGRADE
|
||||
elif self.find("restore_all_sanity"):
|
||||
|
|
|
@ -16,6 +16,8 @@ color = {
|
|||
"clue/daily": (526, 623),
|
||||
"clue/filter_all": (1297, 99),
|
||||
"clue/give_away": (25, 18),
|
||||
"clue/message_board_banner": (19, 1006),
|
||||
"clue/message_board_collect": (1657, 876),
|
||||
"clue/receive": (1295, 15),
|
||||
"clue/summary": (59, 153),
|
||||
"clue/title_party": (1621, 200),
|
||||
|
@ -242,6 +244,7 @@ template_matching = {
|
|||
"choose_product_options": (1174, 23),
|
||||
"clue": (1744, 861),
|
||||
"clue/badge_new": None,
|
||||
"clue/interact": (639, 961),
|
||||
"collection": (1005, 943),
|
||||
"collection_small": (1053, 982),
|
||||
"connecting": (1087, 978),
|
||||
|
|
|
@ -137,6 +137,8 @@ class Scene:
|
|||
"订单切换选择"
|
||||
PRODUCT_SWITCHING_CONFIRM = 229
|
||||
"产物更改确认"
|
||||
CLUE_MESSAGE_BOARD = 230
|
||||
"信息板"
|
||||
BUSINESS_CARD = 301
|
||||
"个人名片"
|
||||
FRIEND_LIST = 302
|
||||
|
@ -501,6 +503,7 @@ SceneComment = {
|
|||
227: "制造站产物选择",
|
||||
228: "订单切换选择",
|
||||
229: "产物更改确认",
|
||||
230: "信息板",
|
||||
301: "个人名片",
|
||||
302: "好友列表",
|
||||
303: "基建内访问好友",
|
||||
|
|
|
@ -60,8 +60,13 @@ Res = Literal[
|
|||
"clue/filter_all",
|
||||
"clue/give_away",
|
||||
"clue/icon_notification",
|
||||
"clue/interact",
|
||||
"clue/label_give_away",
|
||||
"clue/message_board_banner",
|
||||
"clue/message_board_collect",
|
||||
"clue/message_board_entry",
|
||||
"clue/receive",
|
||||
"clue/show_party_details",
|
||||
"clue/summary",
|
||||
"clue/title_party",
|
||||
"clue_next",
|
||||
|
|
Loading…
Add table
Reference in a new issue