Skip to content

Commit 947d54c

Browse files
committed
feat: 权重为-1时跳过该训练
1 parent cd98970 commit 947d54c

File tree

6 files changed

+146
-51
lines changed

6 files changed

+146
-51
lines changed

module/umamusume/script/cultivate_task/ai.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@ def get_operation(ctx: UmamusumeContext) -> TurnOperation | None:
1818

1919
attribute_result_max = np.max(attribute_result)
2020
attribute_result_min = np.min(attribute_result)
21-
normalized_attribute_result = (attribute_result - attribute_result_min) / (
22-
attribute_result_max - attribute_result_min)
21+
if attribute_result_max != attribute_result_min:
22+
normalized_attribute_result = (attribute_result - attribute_result_min) / (
23+
attribute_result_max - attribute_result_min)
24+
else:
25+
normalized_attribute_result = [1, 1, 1, 1, 1]
2326

2427
support_card_max = np.max(support_card_result)
2528
support_card_min = np.min(support_card_result)
@@ -77,6 +80,21 @@ def get_operation(ctx: UmamusumeContext) -> TurnOperation | None:
7780
for i in range(5):
7881
training_score.append(normalized_attribute_result[i] * attr_weight + normalized_support_card_result[i] *
7982
support_card_weight + normalized_training_level_result[i] * training_level_weight)
83+
# 将权重为-1的训练得分置为0
84+
extra_weight = [0, 0, 0, 0, 0]
85+
date = ctx.cultivate_detail.turn_info.date
86+
if len(ctx.cultivate_detail.extra_weight) == 3:
87+
if 0 < date <= 24:
88+
extra_weight = ctx.cultivate_detail.extra_weight[0]
89+
elif 24 < date <= 48:
90+
extra_weight = ctx.cultivate_detail.extra_weight[1]
91+
elif 48 < date:
92+
extra_weight = ctx.cultivate_detail.extra_weight[2]
93+
if -1 in extra_weight:
94+
log.debug("将权重为-1的训练得分设置为0")
95+
for i in range(5):
96+
if extra_weight[i] <= -1:
97+
training_score[i] = 0
8098
log.debug("训练综合得分:" + str(training_score))
8199

82100
# 出道战成功才能参加比赛

module/umamusume/script/cultivate_task/cultivate.py

Lines changed: 51 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -102,41 +102,69 @@ def script_cultivate_training_select(ctx: UmamusumeContext):
102102

103103
if not ctx.cultivate_detail.turn_info.parse_train_info_finish:
104104
def _parse_training_in_thread(ctx, img, train_type):
105-
"""Helper function to run parsing in a separate thread."""
106-
parse_training_result(ctx, img, train_type)
107-
parse_training_support_card(ctx, img, train_type)
105+
"""Helper function to run parsing in a separate thread."""
106+
parse_training_result(ctx, img, train_type)
107+
parse_training_support_card(ctx, img, train_type)
108+
109+
def _clear_training(ctx: UmamusumeContext, train_type: TrainingType):
110+
ctx.cultivate_detail.turn_info.training_info_list[train_type.value - 1].speed_incr = 0
111+
ctx.cultivate_detail.turn_info.training_info_list[train_type.value - 1].stamina_incr = 0
112+
ctx.cultivate_detail.turn_info.training_info_list[train_type.value - 1].power_incr = 0
113+
ctx.cultivate_detail.turn_info.training_info_list[train_type.value - 1].will_incr = 0
114+
ctx.cultivate_detail.turn_info.training_info_list[train_type.value - 1].intelligence_incr = 0
115+
ctx.cultivate_detail.turn_info.training_info_list[train_type.value - 1].skill_point_incr = 0
116+
ctx.cultivate_detail.turn_info.training_info_list[train_type.value - 1].support_card_info_list = []
117+
108118

109119
threads :list[threading.Thread] = []
110120

121+
# 获取当年的额外权重
122+
date = ctx.cultivate_detail.turn_info.date
123+
if date == 0:
124+
extra_weight = [0, 0, 0, 0, 0]
125+
elif date <= 24:
126+
extra_weight = ctx.cultivate_detail.extra_weight[0]
127+
elif date <= 48:
128+
extra_weight = ctx.cultivate_detail.extra_weight[1]
129+
else:
130+
extra_weight = ctx.cultivate_detail.extra_weight[2]
131+
111132
img = ctx.current_screen
112133
train_type = parse_train_type(ctx, img)
113134
if train_type == TrainingType.TRAINING_TYPE_UNKNOWN:
114135
return
115136
viewed = train_type.value
116-
thread = threading.Thread(target=_parse_training_in_thread,
117-
args=(ctx, img, train_type))
118-
threads.append(thread)
119-
thread.start()
137+
# 仅当权重不为-1时, 开始parse, 否则清零
138+
if extra_weight[viewed-1] > -1:
139+
thread = threading.Thread(target=_parse_training_in_thread,
140+
args=(ctx, img, train_type))
141+
threads.append(thread)
142+
thread.start()
143+
else:
144+
_clear_training(ctx, train_type)
120145

121146
for i in range(5):
122147
if i != (viewed - 1):
123-
retry = 0
124-
max_retry = 3
125-
ctx.ctrl.click_by_point(TRAINING_POINT_LIST[i])
126-
img = ctx.ctrl.get_screen()
127-
while parse_train_type(ctx, img) != TrainingType(i + 1) and retry < max_retry:
128-
if retry > 2:
129-
ctx.ctrl.click_by_point(TRAINING_POINT_LIST[i])
130-
time.sleep(0.2)
148+
if extra_weight[i] > -1:
149+
retry = 0
150+
max_retry = 3
151+
ctx.ctrl.click_by_point(TRAINING_POINT_LIST[i])
131152
img = ctx.ctrl.get_screen()
132-
retry += 1
133-
if retry == max_retry:
134-
return
135-
136-
thread = threading.Thread(target=_parse_training_in_thread,
137-
args=(ctx, img, TrainingType(i + 1)))
138-
threads.append(thread)
139-
thread.start()
153+
while parse_train_type(ctx, img) != TrainingType(i + 1) and retry < max_retry:
154+
if retry > 2:
155+
ctx.ctrl.click_by_point(TRAINING_POINT_LIST[i])
156+
time.sleep(0.2)
157+
img = ctx.ctrl.get_screen()
158+
retry += 1
159+
if retry == max_retry:
160+
return
161+
162+
thread = threading.Thread(target=_parse_training_in_thread,
163+
args=(ctx, img, TrainingType(i + 1)))
164+
threads.append(thread)
165+
thread.start()
166+
else:
167+
_clear_training(ctx, TrainingType(i + 1))
140168

141169
for thread in threads:
142170
thread.join()

public/assets/index.5beca8ca.js renamed to public/assets/index.4c3c5b3d.js

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/assets/index.28584351.css renamed to public/assets/index.e2a87859.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
<link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
1313
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
1414
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
15-
<script type="module" crossorigin src="./assets/index.5beca8ca.js"></script>
16-
<link rel="stylesheet" href="./assets/index.28584351.css">
15+
<script type="module" crossorigin src="./assets/index.4c3c5b3d.js"></script>
16+
<link rel="stylesheet" href="./assets/index.e2a87859.css">
1717
</head>
1818
<body>
1919
<div id="app"></div>

0 commit comments

Comments
 (0)