mower-ng/mower/utils/graph/riic.py
2025-06-29 20:28:54 +08:00

93 lines
2.8 KiB
Python

from mower.utils import config
from mower.utils.scene import Scene
from mower.utils.solver import BaseSolver
from .utils import edge
# 基建
@edge(Scene.INFRA_TODOLIST, Scene.INFRA_MAIN)
def todo_complete(solver: BaseSolver):
solver.ctap((1840, 140), 3)
@edge(Scene.INFRA_CONFIDENTIAL, Scene.INFRA_DETAILS)
@edge(Scene.INFRA_ARRANGE, Scene.INFRA_MAIN)
@edge(Scene.INFRA_DETAILS, Scene.INFRA_MAIN)
@edge(Scene.ACTIVITY_ROOM_DETAILS, Scene.INFRA_MAIN)
@edge(Scene.CTRLCENTER_ASSISTANT, Scene.INFRA_MAIN)
@edge(Scene.CLUE_DAILY, Scene.INFRA_CONFIDENTIAL)
@edge(Scene.CLUE_RECEIVE, Scene.INFRA_DETAILS)
@edge(Scene.CLUE_GIVE_AWAY, Scene.INFRA_CONFIDENTIAL)
@edge(Scene.CLUE_SUMMARY, Scene.INFRA_CONFIDENTIAL)
@edge(Scene.CLUE_PLACE, Scene.INFRA_DETAILS)
@edge(Scene.CLUE_MESSAGE_BOARD, Scene.INFRA_CONFIDENTIAL)
@edge(Scene.CLUE_MESSAGE_BOARD_FRIEND, Scene.CLUE_MESSAGE_BOARD)
@edge(Scene.CLUE_ACCESS_RECORD, Scene.CLUE_MESSAGE_BOARD)
@edge(Scene.ORDER_LIST, Scene.INFRA_DETAILS)
@edge(Scene.FACTORY_ROOMS, Scene.INFRA_DETAILS)
@edge(Scene.CHOOSE_PRODUCT, Scene.FACTORY_ROOMS)
@edge(Scene.DRONE_ACCELERATE, Scene.ORDER_LIST)
def infra_back(solver: BaseSolver):
solver.cback(3, id="infra_back")
@edge(Scene.CLUE_RECEIVE, Scene.INFRA_CONFIDENTIAL)
@edge(Scene.CLUE_PLACE, Scene.INFRA_CONFIDENTIAL)
def clue_receive_back(solver: BaseSolver):
solver.tap((960, 1000))
@edge(Scene.RIIC_OPERATOR_SELECT, Scene.INFRA_DETAILS)
def riic_operator_select(solver: BaseSolver):
solver.ctap("confirm_blue", 3)
@edge(Scene.INFRA_ARRANGE_CONFIRM, Scene.RIIC_OPERATOR_SELECT)
def infra_arrange_confirm(solver: BaseSolver):
solver.tap((1452, 1029))
@edge(Scene.INFRA_ARRANGE_ORDER, Scene.RIIC_OPERATOR_SELECT)
def infra_arrange_order(solver: BaseSolver):
solver.tap("arrange_blue_yes", x_rate=0.66)
@edge(Scene.RIIC_REPORT, Scene.CTRLCENTER_ASSISTANT)
def riic_back(solver: BaseSolver):
solver.tap((30, 55))
@edge(Scene.CTRLCENTER_ASSISTANT, Scene.RIIC_REPORT)
def riic(solver: BaseSolver):
solver.tap("control_central_assistants")
@edge(Scene.INFRA_MAIN, Scene.CTRLCENTER_ASSISTANT)
def control_central(solver: BaseSolver):
score, scope = config.recog.match2d("control_central")
if score >= 0.7:
solver.ctap(scope, 1, id="enter_room")
else:
solver.back()
@edge(Scene.SANITY_CHARGE, Scene.INFRA_MAIN)
def sanity_charge(solver: BaseSolver):
solver.tap((1200, 15))
@edge(Scene.SANITY_CHARGE_DIALOG, Scene.SANITY_CHARGE)
def sanity_charge_dialog(solver: BaseSolver):
solver.tap((480, 925))
@edge(Scene.SWITCH_ORDER, Scene.ORDER_LIST)
def switch_order(solver: BaseSolver):
solver.tap((1900, 1000))
@edge(Scene.PRODUCT_SWITCHING_CONFIRM, Scene.FACTORY_ROOMS)
def product_switching_confirm(solver: BaseSolver):
solver.tap("double_confirm/main", x_rate=0)