This commit is contained in:
parent
3d0621c84b
commit
c5571899d3
1 changed files with 40 additions and 12 deletions
|
@ -2,6 +2,7 @@ from mower.solvers.fight.battle_choose.battle_fill_choose import BattleFillChoos
|
|||
from mower.solvers.infra.base_mixin import BaseMixin
|
||||
from mower.utils import config
|
||||
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.solver import BaseSolver
|
||||
|
||||
|
@ -13,14 +14,25 @@ class SwitchActivityUsersSolver(BaseSolver, BaseMixin):
|
|||
|
||||
def run(self):
|
||||
self.flag = True
|
||||
self.limit = config.conf.trust_limit # 设置的信赖值阈值
|
||||
self.assistants_before = [] # 记录切换前的干员
|
||||
self.assistants_after = [] # 记录切换后的干员
|
||||
self.black_list = []
|
||||
for i in range(1, 4):
|
||||
if not self.flag:
|
||||
break
|
||||
self.num = i
|
||||
if EnterActivitySolver().run(i):
|
||||
self.switched = False
|
||||
self.need_switch = False
|
||||
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:
|
||||
return match_avatar(
|
||||
|
@ -32,15 +44,8 @@ class SwitchActivityUsersSolver(BaseSolver, BaseMixin):
|
|||
if (scene := self.scene()) == Scene.ACTIVITY_ROOM_DETAILS:
|
||||
if self.animation(ratio=0.2):
|
||||
return
|
||||
if (
|
||||
self.find("no_user")
|
||||
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
|
||||
if self.need_switch and not self.switched:
|
||||
if not self.flag:
|
||||
return True
|
||||
if self.find("user_on"):
|
||||
self.ctap((1550, 480), 3)
|
||||
|
@ -48,7 +53,30 @@ class SwitchActivityUsersSolver(BaseSolver, BaseMixin):
|
|||
return
|
||||
self.ctap("user", 3)
|
||||
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:
|
||||
name = BattleFillChooseSolver().run("信赖值", 1, self.black_list)
|
||||
self.black_list.append(name[0])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue