Compare commits
3 commits
e6d2398bb9
...
c5571899d3
Author | SHA1 | Date | |
---|---|---|---|
c5571899d3 | |||
3d0621c84b | |||
b42b052e29 |
2 changed files with 50 additions and 24 deletions
|
@ -1,12 +1,10 @@
|
||||||
import cv2
|
|
||||||
|
|
||||||
from mower.solvers.fight.battle_choose.battle_fill_choose import BattleFillChooseSolver
|
from mower.solvers.fight.battle_choose.battle_fill_choose import BattleFillChooseSolver
|
||||||
from mower.solvers.infra.base_mixin import BaseMixin
|
from mower.solvers.infra.base_mixin import BaseMixin
|
||||||
from mower.utils import config
|
from mower.utils import config
|
||||||
from mower.utils.character_recognize import match_portrait
|
from mower.utils.character_recognize import match_avatar
|
||||||
|
from mower.utils.email import assistants_template, send_message
|
||||||
from mower.utils.recognize import Scene
|
from mower.utils.recognize import Scene
|
||||||
from mower.utils.solver import BaseSolver
|
from mower.utils.solver import BaseSolver
|
||||||
from mower.utils.vector import ss
|
|
||||||
|
|
||||||
from .enter_activity import EnterActivitySolver
|
from .enter_activity import EnterActivitySolver
|
||||||
|
|
||||||
|
@ -16,34 +14,38 @@ class SwitchActivityUsersSolver(BaseSolver, BaseMixin):
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.flag = True
|
self.flag = True
|
||||||
|
self.limit = config.conf.trust_limit # 设置的信赖值阈值
|
||||||
|
self.assistants_before = [] # 记录切换前的干员
|
||||||
|
self.assistants_after = [] # 记录切换后的干员
|
||||||
self.black_list = []
|
self.black_list = []
|
||||||
for i in range(1, 4):
|
for i in range(1, 4):
|
||||||
if not self.flag:
|
|
||||||
break
|
|
||||||
self.num = i
|
self.num = i
|
||||||
if EnterActivitySolver().run(i):
|
if EnterActivitySolver().run(i):
|
||||||
self.switched = False
|
self.switched = False
|
||||||
|
self.need_switch = False
|
||||||
super().run()
|
super().run()
|
||||||
|
send_message(
|
||||||
|
assistants_template.render(
|
||||||
|
assistants_before=self.assistants_before,
|
||||||
|
assistants_after=self.assistants_after,
|
||||||
|
limit=str(self.limit) + "%",
|
||||||
|
),
|
||||||
|
"活动室信赖汇总通知",
|
||||||
|
"INFO",
|
||||||
|
)
|
||||||
|
|
||||||
def detect_oper(self) -> str:
|
def detect_oper(self) -> str:
|
||||||
return match_portrait(
|
return match_avatar(
|
||||||
cv2.resize(config.recog.gray, (int(1920 / 1.5), int(1080 / 1.5))),
|
config.recog.gray,
|
||||||
segment=[ss(2 / 3, 2 / 3, ((1450, 400), (1670, 530)))],
|
segment=[((20, 935), (135, 1015))],
|
||||||
)[0][0]
|
)[0][0]
|
||||||
|
|
||||||
def transition(self) -> bool:
|
def transition(self) -> bool:
|
||||||
if (scene := self.scene()) == Scene.ACTIVITY_ROOM_DETAILS:
|
if (scene := self.scene()) == Scene.ACTIVITY_ROOM_DETAILS:
|
||||||
if self.animation(ratio=0.2):
|
if self.animation(ratio=0.2):
|
||||||
return
|
return
|
||||||
if (
|
if self.need_switch and not self.switched:
|
||||||
self.find("no_user")
|
if not self.flag:
|
||||||
or config.recog.num.number_int(
|
|
||||||
"riic_base", ((220, 920), (330, 970)), 23, 130, rect_ed=-3
|
|
||||||
)
|
|
||||||
>= config.conf.trust_limit
|
|
||||||
):
|
|
||||||
if self.switched:
|
|
||||||
self.flag = False
|
|
||||||
return True
|
return True
|
||||||
if self.find("user_on"):
|
if self.find("user_on"):
|
||||||
self.ctap((1550, 480), 3)
|
self.ctap((1550, 480), 3)
|
||||||
|
@ -51,7 +53,30 @@ class SwitchActivityUsersSolver(BaseSolver, BaseMixin):
|
||||||
return
|
return
|
||||||
self.ctap("user", 3)
|
self.ctap("user", 3)
|
||||||
return
|
return
|
||||||
return True
|
|
||||||
|
if self.find("no_user"):
|
||||||
|
self.assistants_before.append(["活动室" + str(self.num), None])
|
||||||
|
self.need_switch = True
|
||||||
|
else:
|
||||||
|
oper = self.detect_oper()
|
||||||
|
num = config.recog.num.number_int(
|
||||||
|
"riic_base", ((220, 920), (330, 970)), 23, 130, rect_ed=-3
|
||||||
|
)
|
||||||
|
if self.switched:
|
||||||
|
self.assistants_after.append(
|
||||||
|
["活动室" + str(self.num), oper, str(num) + "%"]
|
||||||
|
)
|
||||||
|
if num >= self.limit:
|
||||||
|
self.flag = False
|
||||||
|
return True
|
||||||
|
self.assistants_before.append(
|
||||||
|
["活动室" + str(self.num), oper, str(num) + "%"]
|
||||||
|
)
|
||||||
|
if num >= self.limit:
|
||||||
|
self.need_switch = True
|
||||||
|
return
|
||||||
|
return True
|
||||||
|
|
||||||
elif scene == Scene.OPERATOR_AGENT_SELECT:
|
elif scene == Scene.OPERATOR_AGENT_SELECT:
|
||||||
name = BattleFillChooseSolver().run("信赖值", 1, self.black_list)
|
name = BattleFillChooseSolver().run("信赖值", 1, self.black_list)
|
||||||
self.black_list.append(name[0])
|
self.black_list.append(name[0])
|
||||||
|
|
|
@ -67,9 +67,8 @@ class Shop(BaseSolver):
|
||||||
name = crop2content(name)
|
name = crop2content(name)
|
||||||
name = ocr_rec(name)
|
name = ocr_rec(name)
|
||||||
if name not in config.conf.activity_shop_blacklist:
|
if name not in config.conf.activity_shop_blacklist:
|
||||||
self.product = name
|
return name, va(top_left, (245, 110))
|
||||||
return va(top_left, (245, 110))
|
return None, None
|
||||||
return None
|
|
||||||
|
|
||||||
def transition(self):
|
def transition(self):
|
||||||
if (scene := self.scene()) == Scene.TERMINAL_MAIN:
|
if (scene := self.scene()) == Scene.TERMINAL_MAIN:
|
||||||
|
@ -79,8 +78,10 @@ class Shop(BaseSolver):
|
||||||
elif scene == Scene.ACTIVITY_SHOP:
|
elif scene == Scene.ACTIVITY_SHOP:
|
||||||
if self.animation():
|
if self.animation():
|
||||||
return
|
return
|
||||||
if pos := self.next_product():
|
name, pos = self.next_product()
|
||||||
self.tap(pos)
|
if pos is not None:
|
||||||
|
if self.ctap(pos):
|
||||||
|
self.product = name
|
||||||
return
|
return
|
||||||
self.swipe_ext([(1600, 340), (300, 340), (300, 150)], [0.2, 0.3], 0, 0.1)
|
self.swipe_ext([(1600, 340), (300, 340), (300, 150)], [0.2, 0.3], 0, 0.1)
|
||||||
elif scene == Scene.ACTIVITY_SHOP_BUY:
|
elif scene == Scene.ACTIVITY_SHOP_BUY:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue