@bettergi/types 0.1.16 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,12 @@
1
+ import type { ColorHostType } from "../types/System/Drawing/Color";
2
+
3
+ declare global {
4
+ /**
5
+ * System.Drawing 颜色 HostType
6
+ * @since 0.63.0
7
+ */
8
+ const Color: ColorHostType;
9
+ type Color = System.Drawing.Color;
10
+ }
11
+
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { PenHostType } from "../types/System/Drawing/Pen";
2
+
3
+ declare global {
4
+ /**
5
+ * System.Drawing 画笔 HostType
6
+ * @since 0.63.0
7
+ */
8
+ const Pen: PenHostType;
9
+ type Pen = System.Drawing.Pen;
10
+ }
11
+
12
+ export {};
@@ -0,0 +1,11 @@
1
+ import "../types/BetterGenshinImpact/GameTask/CharacterDevelopment/CharacterDevelopmentTask";
2
+
3
+ declare global {
4
+ /**
5
+ * 角色养成信息识别任务
6
+ * @since 0.63.0
7
+ */
8
+ const characterDevelopmentTask: BetterGenshinImpact.GameTask.CharacterDevelopment.CharacterDevelopmentTask;
9
+ }
10
+
11
+ export {};
package/index.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  import "./bindings/keyMouseScript"; // 录制回放
5
5
  import "./bindings/pathingScript"; // 地图追踪
6
6
  import "./bindings/genshin"; // 游戏相关
7
+ import "./bindings/characterDevelopmentTask"; // 角色养成信息识别
7
8
  import "./bindings/log"; // 日志
8
9
  import "./bindings/file"; // 受限文件读写
9
10
  import "./bindings/http"; // 受限 HTTP 请求
@@ -63,6 +64,8 @@ import "./bindings/DesktopRegion"; // 桌面区域
63
64
  import "./bindings/GameCaptureRegion"; // 游戏截图区域
64
65
  import "./bindings/ImageRegion"; // 图像区域
65
66
  import "./bindings/Region"; // 通用屏幕区域
67
+ import "./bindings/Pen"; // System.Drawing 画笔
68
+ import "./bindings/Color"; // System.Drawing 颜色
66
69
 
67
70
  // 战斗场景与角色宿主类型
68
71
  import "./bindings/CombatScenes";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bettergi/types",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "description": "BetterGI TypeScript 类型定义",
5
5
  "type": "module",
6
6
  "author": "Bread Grocery<https://github.com/breadgrocery>",
@@ -0,0 +1,243 @@
1
+ import type {
2
+ ClrHostValue,
3
+ DoubleHost,
4
+ HostType,
5
+ Int32Host,
6
+ ReferenceTypeTrait,
7
+ StrongNumeric
8
+ } from "../../../Microsoft/ClearScript/HostType";
9
+ import "../../../OpenCvSharp/Rect";
10
+ import "../../../System/Collections/Generic/IEnumerable";
11
+ import type { KeyCode } from "../../Helpers/User32Helper";
12
+ import type { BvFlowAction } from "./BvFlowAction";
13
+ import type { BvLocator } from "./BvLocator";
14
+ import type { BvPage } from "./BvPage";
15
+
16
+ type Int32Value = number | StrongNumeric<Int32Host>;
17
+ type DoubleValue = number | StrongNumeric<DoubleHost>;
18
+
19
+ /**
20
+ * 流程中的脚本回调,可同步完成或返回 Promise
21
+ * @since 0.63.0
22
+ */
23
+ export type BvFlowCallback = () => void | Promise<void>;
24
+
25
+ /**
26
+ * BgiVision 链式流程,按添加顺序执行等待、输入与脚本动作
27
+ * @since 0.63.0
28
+ */
29
+ declare const bvFlowBrand: unique symbol;
30
+ export interface BvFlow extends ClrHostValue {
31
+ readonly [bvFlowBrand]: true;
32
+ /**
33
+ * 设置后续等待步骤的默认超时时间;添加步骤后不可修改
34
+ * @param milliseconds 超时时间(毫秒),必须大于 0
35
+ * @returns 当前流程
36
+ * @since 0.63.0
37
+ */
38
+ withDefaultTimeout(milliseconds: Int32Value): BvFlow;
39
+ /**
40
+ * 设置后续等待步骤的默认重试间隔;添加步骤后不可修改
41
+ * @param milliseconds 重试间隔(毫秒),必须大于 0
42
+ * @returns 当前流程
43
+ * @since 0.63.0
44
+ */
45
+ withDefaultRetryInterval(milliseconds: Int32Value): BvFlow;
46
+ /**
47
+ * 添加脚本回调动作
48
+ * @param action 同步或异步脚本回调
49
+ * @returns 可附加重试条件的动作
50
+ * @since 0.63.0
51
+ */
52
+ do(action: BvFlowCallback): BvFlowAction;
53
+ /**
54
+ * 添加键盘单击动作
55
+ * @param key 虚拟键名称
56
+ * @returns 可附加重试条件的动作
57
+ * @since 0.63.0
58
+ */
59
+ keyPress(key: KeyCode): BvFlowAction;
60
+ /**
61
+ * 添加鼠标左键单击动作;省略坐标时使用上一步匹配区域中心
62
+ * @returns 可附加重试条件的动作
63
+ * @since 0.63.0
64
+ */
65
+ click(): BvFlowAction;
66
+ click(x: DoubleValue, y: DoubleValue): BvFlowAction;
67
+ /**
68
+ * 添加鼠标右键单击动作;省略坐标时使用上一步匹配区域中心
69
+ * @returns 可附加重试条件的动作
70
+ * @since 0.63.0
71
+ */
72
+ rightClick(): BvFlowAction;
73
+ rightClick(x: DoubleValue, y: DoubleValue): BvFlowAction;
74
+ /**
75
+ * 添加鼠标中键单击动作;省略坐标时使用上一步匹配区域中心
76
+ * @returns 可附加重试条件的动作
77
+ * @since 0.63.0
78
+ */
79
+ middleClick(): BvFlowAction;
80
+ middleClick(x: DoubleValue, y: DoubleValue): BvFlowAction;
81
+ /**
82
+ * 添加鼠标移动动作;省略坐标时使用上一步匹配区域中心
83
+ * @returns 可附加重试条件的动作
84
+ * @since 0.63.0
85
+ */
86
+ moveTo(): BvFlowAction;
87
+ moveTo(x: DoubleValue, y: DoubleValue): BvFlowAction;
88
+ /**
89
+ * 添加指定起止坐标的拖动动作
90
+ * @param duration 拖动时长(毫秒),省略时为 300
91
+ * @returns 可附加重试条件的动作
92
+ * @since 0.63.0
93
+ */
94
+ drag(fromX: DoubleValue, fromY: DoubleValue, toX: DoubleValue, toY: DoubleValue): BvFlowAction;
95
+ drag(
96
+ fromX: DoubleValue,
97
+ fromY: DoubleValue,
98
+ toX: DoubleValue,
99
+ toY: DoubleValue,
100
+ duration: Int32Value
101
+ ): BvFlowAction;
102
+ /**
103
+ * 从上一步匹配区域中心拖动到指定坐标
104
+ * @param duration 拖动时长(毫秒),省略时为 300
105
+ * @returns 可附加重试条件的动作
106
+ * @since 0.63.0
107
+ */
108
+ dragTo(toX: DoubleValue, toY: DoubleValue): BvFlowAction;
109
+ dragTo(toX: DoubleValue, toY: DoubleValue, duration: Int32Value): BvFlowAction;
110
+ /**
111
+ * 从指定坐标拖动到上一步匹配区域中心
112
+ * @param duration 拖动时长(毫秒),省略时为 300
113
+ * @returns 可附加重试条件的动作
114
+ * @since 0.63.0
115
+ */
116
+ dragFrom(fromX: DoubleValue, fromY: DoubleValue): BvFlowAction;
117
+ dragFrom(fromX: DoubleValue, fromY: DoubleValue, duration: Int32Value): BvFlowAction;
118
+ /**
119
+ * 等待指定文本出现
120
+ * @param rect 感兴趣区域;省略时搜索整幅画面
121
+ * @param timeout 超时时间(毫秒);null 使用流程默认值
122
+ * @param retryInterval 重试间隔(毫秒);null 使用流程默认值
123
+ * @returns 当前流程
124
+ * @since 0.63.0
125
+ */
126
+ waitUntilText(text: string): BvFlow;
127
+ waitUntilText(text: string, rect: OpenCvSharp.Rect): BvFlow;
128
+ waitUntilText(text: string, rect: OpenCvSharp.Rect, timeout: Int32Value | null): BvFlow;
129
+ waitUntilText(
130
+ text: string,
131
+ rect: OpenCvSharp.Rect,
132
+ timeout: Int32Value | null,
133
+ retryInterval: Int32Value | null
134
+ ): BvFlow;
135
+ /**
136
+ * 等待任一指定文本出现
137
+ * @param texts 字符串集合或 ClearScript JS Array
138
+ * @returns 当前流程
139
+ * @since 0.63.0
140
+ */
141
+ waitUntilAnyText(
142
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>
143
+ ): BvFlow;
144
+ waitUntilAnyText(
145
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
146
+ rect: OpenCvSharp.Rect
147
+ ): BvFlow;
148
+ waitUntilAnyText(
149
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
150
+ rect: OpenCvSharp.Rect,
151
+ timeout: Int32Value | null
152
+ ): BvFlow;
153
+ waitUntilAnyText(
154
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
155
+ rect: OpenCvSharp.Rect,
156
+ timeout: Int32Value | null,
157
+ retryInterval: Int32Value | null
158
+ ): BvFlow;
159
+ /**
160
+ * 等待定位器目标出现
161
+ * @returns 当前流程
162
+ * @since 0.63.0
163
+ */
164
+ waitUntil(target: BvLocator): BvFlow;
165
+ waitUntil(target: BvLocator, timeout: Int32Value | null): BvFlow;
166
+ waitUntil(
167
+ target: BvLocator,
168
+ timeout: Int32Value | null,
169
+ retryInterval: Int32Value | null
170
+ ): BvFlow;
171
+ /**
172
+ * 等待任一定位器目标出现
173
+ * @param targets 定位器集合或 ClearScript JS Array
174
+ * @returns 当前流程
175
+ * @since 0.63.0
176
+ */
177
+ waitUntilAny(
178
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>
179
+ ): BvFlow;
180
+ waitUntilAny(
181
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
182
+ timeout: Int32Value | null
183
+ ): BvFlow;
184
+ waitUntilAny(
185
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
186
+ timeout: Int32Value | null,
187
+ retryInterval: Int32Value | null
188
+ ): BvFlow;
189
+ /**
190
+ * 等待定位器目标消失
191
+ * @returns 当前流程
192
+ * @since 0.63.0
193
+ */
194
+ waitUntilDisappear(target: BvLocator): BvFlow;
195
+ waitUntilDisappear(target: BvLocator, timeout: Int32Value | null): BvFlow;
196
+ waitUntilDisappear(
197
+ target: BvLocator,
198
+ timeout: Int32Value | null,
199
+ retryInterval: Int32Value | null
200
+ ): BvFlow;
201
+ /**
202
+ * 等待全部定位器目标消失
203
+ * @param targets 定位器集合或 ClearScript JS Array
204
+ * @returns 当前流程
205
+ * @since 0.63.0
206
+ */
207
+ waitUntilAllDisappear(
208
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>
209
+ ): BvFlow;
210
+ waitUntilAllDisappear(
211
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
212
+ timeout: Int32Value | null
213
+ ): BvFlow;
214
+ waitUntilAllDisappear(
215
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
216
+ timeout: Int32Value | null,
217
+ retryInterval: Int32Value | null
218
+ ): BvFlow;
219
+ /**
220
+ * 添加固定等待步骤
221
+ * @param milliseconds 等待时长(毫秒),不得小于 0
222
+ * @returns 当前流程
223
+ * @since 0.63.0
224
+ */
225
+ wait(milliseconds: Int32Value): BvFlow;
226
+ /**
227
+ * 执行流程;同一流程不可并发执行,开始后不可再添加步骤
228
+ * @returns 在任务完成后兑现所属页面的 Promise
229
+ * @since 0.63.0
230
+ */
231
+ run(): Promise<BvPage>;
232
+ }
233
+
234
+ declare global {
235
+ namespace BetterGenshinImpact.Core.BgiVision {
236
+ type BvFlow = import("./BvFlow").BvFlow;
237
+ type BvFlowCallback = import("./BvFlow").BvFlowCallback;
238
+ }
239
+ }
240
+
241
+ export interface BvFlowHostType extends HostType<BvFlow, ReferenceTypeTrait> {}
242
+
243
+ export {};
@@ -0,0 +1,249 @@
1
+ import type {
2
+ ClrHostValue,
3
+ DoubleHost,
4
+ HostType,
5
+ Int32Host,
6
+ ReferenceTypeTrait,
7
+ StrongNumeric
8
+ } from "../../../Microsoft/ClearScript/HostType";
9
+ import "../../../OpenCvSharp/Rect";
10
+ import "../../../System/Collections/Generic/IEnumerable";
11
+ import type { KeyCode } from "../../Helpers/User32Helper";
12
+ import type { BvFlow, BvFlowCallback } from "./BvFlow";
13
+ import type { BvLocator } from "./BvLocator";
14
+ import type { BvPage } from "./BvPage";
15
+
16
+ type Int32Value = number | StrongNumeric<Int32Host>;
17
+ type DoubleValue = number | StrongNumeric<DoubleHost>;
18
+
19
+ /**
20
+ * 尚未提交的 BgiVision 流程动作,可配置重试条件或衔接下一动作
21
+ * @since 0.63.0
22
+ */
23
+ declare const bvFlowActionBrand: unique symbol;
24
+ export interface BvFlowAction extends ClrHostValue {
25
+ readonly [bvFlowActionBrand]: true;
26
+ /**
27
+ * 设置条件动作的超时时间
28
+ * @param milliseconds 超时时间(毫秒),必须大于 0
29
+ * @returns 当前动作
30
+ * @since 0.63.0
31
+ */
32
+ withTimeout(milliseconds: Int32Value): BvFlowAction;
33
+ /**
34
+ * 设置条件动作的重试间隔
35
+ * @param milliseconds 重试间隔(毫秒),必须大于 0
36
+ * @returns 当前动作
37
+ * @since 0.63.0
38
+ */
39
+ withRetryInterval(milliseconds: Int32Value): BvFlowAction;
40
+ /**
41
+ * 将当前动作作为一次性步骤提交,并添加脚本回调动作
42
+ * @since 0.63.0
43
+ */
44
+ do(action: BvFlowCallback): BvFlowAction;
45
+ /**
46
+ * 将当前动作作为一次性步骤提交,并添加键盘单击动作
47
+ * @since 0.63.0
48
+ */
49
+ keyPress(key: KeyCode): BvFlowAction;
50
+ /**
51
+ * 将当前动作作为一次性步骤提交,并添加鼠标左键单击动作
52
+ * @since 0.63.0
53
+ */
54
+ click(): BvFlowAction;
55
+ click(x: DoubleValue, y: DoubleValue): BvFlowAction;
56
+ /**
57
+ * 将当前动作作为一次性步骤提交,并添加鼠标右键单击动作
58
+ * @since 0.63.0
59
+ */
60
+ rightClick(): BvFlowAction;
61
+ rightClick(x: DoubleValue, y: DoubleValue): BvFlowAction;
62
+ /**
63
+ * 将当前动作作为一次性步骤提交,并添加鼠标中键单击动作
64
+ * @since 0.63.0
65
+ */
66
+ middleClick(): BvFlowAction;
67
+ middleClick(x: DoubleValue, y: DoubleValue): BvFlowAction;
68
+ /**
69
+ * 将当前动作作为一次性步骤提交,并添加鼠标移动动作
70
+ * @since 0.63.0
71
+ */
72
+ moveTo(): BvFlowAction;
73
+ moveTo(x: DoubleValue, y: DoubleValue): BvFlowAction;
74
+ /**
75
+ * 将当前动作作为一次性步骤提交,并添加指定起止坐标的拖动动作
76
+ * @since 0.63.0
77
+ */
78
+ drag(fromX: DoubleValue, fromY: DoubleValue, toX: DoubleValue, toY: DoubleValue): BvFlowAction;
79
+ drag(
80
+ fromX: DoubleValue,
81
+ fromY: DoubleValue,
82
+ toX: DoubleValue,
83
+ toY: DoubleValue,
84
+ duration: Int32Value
85
+ ): BvFlowAction;
86
+ /**
87
+ * 将当前动作作为一次性步骤提交,并从上一步匹配区域中心拖动到指定坐标
88
+ * @since 0.63.0
89
+ */
90
+ dragTo(toX: DoubleValue, toY: DoubleValue): BvFlowAction;
91
+ dragTo(toX: DoubleValue, toY: DoubleValue, duration: Int32Value): BvFlowAction;
92
+ /**
93
+ * 将当前动作作为一次性步骤提交,并从指定坐标拖动到上一步匹配区域中心
94
+ * @since 0.63.0
95
+ */
96
+ dragFrom(fromX: DoubleValue, fromY: DoubleValue): BvFlowAction;
97
+ dragFrom(fromX: DoubleValue, fromY: DoubleValue, duration: Int32Value): BvFlowAction;
98
+ /**
99
+ * 将当前动作作为一次性步骤提交,再等待指定文本出现
100
+ * @since 0.63.0
101
+ */
102
+ waitUntilText(text: string): BvFlow;
103
+ waitUntilText(text: string, rect: OpenCvSharp.Rect): BvFlow;
104
+ waitUntilText(text: string, rect: OpenCvSharp.Rect, timeout: Int32Value | null): BvFlow;
105
+ waitUntilText(
106
+ text: string,
107
+ rect: OpenCvSharp.Rect,
108
+ timeout: Int32Value | null,
109
+ retryInterval: Int32Value | null
110
+ ): BvFlow;
111
+ /**
112
+ * 将当前动作作为一次性步骤提交,再等待任一指定文本出现
113
+ * @since 0.63.0
114
+ */
115
+ waitUntilAnyText(
116
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>
117
+ ): BvFlow;
118
+ waitUntilAnyText(
119
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
120
+ rect: OpenCvSharp.Rect
121
+ ): BvFlow;
122
+ waitUntilAnyText(
123
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
124
+ rect: OpenCvSharp.Rect,
125
+ timeout: Int32Value | null
126
+ ): BvFlow;
127
+ waitUntilAnyText(
128
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
129
+ rect: OpenCvSharp.Rect,
130
+ timeout: Int32Value | null,
131
+ retryInterval: Int32Value | null
132
+ ): BvFlow;
133
+ /**
134
+ * 将当前动作作为一次性步骤提交,再等待定位器目标出现
135
+ * @since 0.63.0
136
+ */
137
+ waitUntil(target: BvLocator): BvFlow;
138
+ waitUntil(target: BvLocator, timeout: Int32Value | null): BvFlow;
139
+ waitUntil(
140
+ target: BvLocator,
141
+ timeout: Int32Value | null,
142
+ retryInterval: Int32Value | null
143
+ ): BvFlow;
144
+ /**
145
+ * 将当前动作作为一次性步骤提交,再等待任一定位器目标出现
146
+ * @since 0.63.0
147
+ */
148
+ waitUntilAny(
149
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>
150
+ ): BvFlow;
151
+ waitUntilAny(
152
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
153
+ timeout: Int32Value | null
154
+ ): BvFlow;
155
+ waitUntilAny(
156
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
157
+ timeout: Int32Value | null,
158
+ retryInterval: Int32Value | null
159
+ ): BvFlow;
160
+ /**
161
+ * 将当前动作作为一次性步骤提交,再等待定位器目标消失
162
+ * @since 0.63.0
163
+ */
164
+ waitUntilDisappear(target: BvLocator): BvFlow;
165
+ waitUntilDisappear(target: BvLocator, timeout: Int32Value | null): BvFlow;
166
+ waitUntilDisappear(
167
+ target: BvLocator,
168
+ timeout: Int32Value | null,
169
+ retryInterval: Int32Value | null
170
+ ): BvFlow;
171
+ /**
172
+ * 将当前动作作为一次性步骤提交,再等待全部定位器目标消失
173
+ * @since 0.63.0
174
+ */
175
+ waitUntilAllDisappear(
176
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>
177
+ ): BvFlow;
178
+ waitUntilAllDisappear(
179
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
180
+ timeout: Int32Value | null
181
+ ): BvFlow;
182
+ waitUntilAllDisappear(
183
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>,
184
+ timeout: Int32Value | null,
185
+ retryInterval: Int32Value | null
186
+ ): BvFlow;
187
+ /**
188
+ * 将当前动作作为一次性步骤提交,再添加固定等待步骤
189
+ * @since 0.63.0
190
+ */
191
+ wait(milliseconds: Int32Value): BvFlow;
192
+ /**
193
+ * 重复当前动作直到指定文本出现
194
+ * @since 0.63.0
195
+ */
196
+ untilText(text: string): BvFlow;
197
+ untilText(text: string, rect: OpenCvSharp.Rect): BvFlow;
198
+ /**
199
+ * 重复当前动作直到任一指定文本出现
200
+ * @since 0.63.0
201
+ */
202
+ untilAnyText(
203
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>
204
+ ): BvFlow;
205
+ untilAnyText(
206
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
207
+ rect: OpenCvSharp.Rect
208
+ ): BvFlow;
209
+ /**
210
+ * 重复当前动作直到定位器目标出现
211
+ * @since 0.63.0
212
+ */
213
+ until(target: BvLocator): BvFlow;
214
+ /**
215
+ * 重复当前动作直到任一定位器目标出现
216
+ * @since 0.63.0
217
+ */
218
+ untilAny(
219
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>
220
+ ): BvFlow;
221
+ /**
222
+ * 重复当前动作直到定位器目标消失
223
+ * @since 0.63.0
224
+ */
225
+ untilDisappear(target: BvLocator): BvFlow;
226
+ /**
227
+ * 重复当前动作直到全部定位器目标消失
228
+ * @since 0.63.0
229
+ */
230
+ untilAllDisappear(
231
+ targets: readonly BvLocator[] | System.Collections.Generic.IEnumerableInput<BvLocator>
232
+ ): BvFlow;
233
+ /**
234
+ * 将当前动作作为一次性步骤提交并执行流程
235
+ * @returns 在任务完成后兑现所属页面的 Promise
236
+ * @since 0.63.0
237
+ */
238
+ run(): Promise<BvPage>;
239
+ }
240
+
241
+ declare global {
242
+ namespace BetterGenshinImpact.Core.BgiVision {
243
+ type BvFlowAction = import("./BvFlowAction").BvFlowAction;
244
+ }
245
+ }
246
+
247
+ export interface BvFlowActionHostType extends HostType<BvFlowAction, ReferenceTypeTrait> {}
248
+
249
+ export {};
@@ -10,11 +10,13 @@ import type {
10
10
  } from "../../../Microsoft/ClearScript/HostType";
11
11
  import type { VoidResult } from "../../../Microsoft/ClearScript/VoidResult";
12
12
  import "../../../OpenCvSharp/Rect";
13
+ import "../../../System/Collections/Generic/IEnumerable";
13
14
  import "../../../System/Collections/Generic/List";
14
15
  import "../../../System/Threading/CancellationToken";
15
16
  import "../../GameTask/Model/Area/ImageRegion";
16
17
  import "../../GameTask/Model/Area/Region";
17
18
  import "../Recognition/RecognitionObject";
19
+ import "./BvFlow";
18
20
  import "./BvImage";
19
21
  import "./BvLocator";
20
22
 
@@ -45,6 +47,12 @@ export interface BvPage extends ClrHostValue {
45
47
  * @since 0.57.0
46
48
  */
47
49
  defaultRetryInterval: number;
50
+ /**
51
+ * 创建使用当前超时与重试间隔的链式流程
52
+ * @returns 新的空流程
53
+ * @since 0.63.0
54
+ */
55
+ flow(): BetterGenshinImpact.Core.BgiVision.BvFlow;
48
56
  /**
49
57
  * 截取当前游戏画面为图像区域
50
58
  * @returns 当前游戏画面的图像区域
@@ -97,6 +105,20 @@ export interface BvPage extends ClrHostValue {
97
105
  getByText(): BetterGenshinImpact.Core.BgiVision.BvLocator;
98
106
  getByText(text: string): BetterGenshinImpact.Core.BgiVision.BvLocator;
99
107
  getByText(text: string, rect: OpenCvSharp.Rect): BetterGenshinImpact.Core.BgiVision.BvLocator;
108
+ /**
109
+ * 按任一指定文本创建定位器
110
+ * @param texts 字符串集合或 ClearScript JS Array
111
+ * @param rect 感兴趣区域;省略时搜索整幅画面
112
+ * @returns 对应目标的定位器
113
+ * @since 0.63.0
114
+ */
115
+ getByAnyText(
116
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>
117
+ ): BetterGenshinImpact.Core.BgiVision.BvLocator;
118
+ getByAnyText(
119
+ texts: readonly string[] | System.Collections.Generic.IEnumerableInput<string>,
120
+ rect: OpenCvSharp.Rect
121
+ ): BetterGenshinImpact.Core.BgiVision.BvLocator;
100
122
  /**
101
123
  * 按图像创建定位器
102
124
  * @param image BgiVision 模板图像
@@ -46,17 +46,17 @@ export interface RecognitionObject extends ClrHostValue {
46
46
  name: string;
47
47
  /**
48
48
  * 模板图或识别区域所在捕获画布的尺寸,例如 1920×1080、3840×2160,对应模板截取来源图像大小
49
- * @since unreleased
49
+ * @since 0.63.0
50
50
  */
51
51
  referenceImageSize: OpenCvSharp.Size | null;
52
52
  /**
53
53
  * 模板图或识别区域在截取来源图像中的位置与大小;模板匹配时宽高通常等于模板图尺寸,语义接近 bbox
54
- * @since unreleased
54
+ * @since 0.63.0
55
55
  */
56
56
  referenceBoundingBox: OpenCvSharp.Rect | null;
57
57
  /**
58
58
  * 查找位置时的搜索选项;未指定时使用默认机制
59
- * @since unreleased
59
+ * @since 0.63.0
60
60
  */
61
61
  searchOptions: BetterGenshinImpact.Core.Recognition.SearchOptions;
62
62
  /**
@@ -67,7 +67,7 @@ export interface AutoPathingScript extends ClrHostValue {
67
67
  * 读取 AutoPathing 目录下指定文件的文本内容
68
68
  * @param subPath 相对于 User\AutoPathing 的文件路径
69
69
  * @returns 文件文本内容,读取失败时返回空字符串
70
- * @since unreleased
70
+ * @since 0.63.0
71
71
  */
72
72
  readTextSync(subPath: string): string;
73
73
  }
@@ -133,7 +133,7 @@ export interface Dispatcher extends ClrHostValue {
133
133
  * @param avatarName 指定操作的角色名,省略时操作当前角色
134
134
  * @param customCt 自定义取消令牌
135
135
  * @returns 在任务完成后兑现的 Promise
136
- * @since unreleased
136
+ * @since 0.63.0
137
137
  */
138
138
  runCombatScript(script: string): Promise<void>;
139
139
  runCombatScript(script: string, avatarName: AvatarName | null): Promise<void>;
@@ -140,7 +140,7 @@ export interface Genshin extends ClrHostValue {
140
140
  * @param y 目标 Y 坐标
141
141
  * @param forceCountry 强制先切换的大地图区域(`SwitchArea` OCR 文案),默认为 null
142
142
  * @returns 在任务完成后兑现的 Promise
143
- * @since unreleased
143
+ * @since 0.63.0
144
144
  */
145
145
  clickMapPoint(
146
146
  x: number | StrongNumeric<DoubleHost>,
@@ -288,7 +288,7 @@ export interface Genshin extends ClrHostValue {
288
288
  * @param slot3 3 号位角色名,空字符串表示跳过
289
289
  * @param slot4 4 号位角色名,空字符串表示跳过
290
290
  * @returns 在任务完成后兑现是否成功的 Promise;完成保存并返回主界面为 true,参数无效、目标角色未找到或流程失败为 false
291
- * @since unreleased
291
+ * @since 0.63.0
292
292
  */
293
293
  switchCharacter(): Promise<boolean>;
294
294
  switchCharacter(slot1: "" | AvatarName): Promise<boolean>;
@@ -357,6 +357,13 @@ export interface Genshin extends ClrHostValue {
357
357
  * @since 0.43.1
358
358
  */
359
359
  goToCraftingBench(country: CountryName): Promise<void>;
360
+ /**
361
+ * 前往合成台并合成浓缩树脂
362
+ * @param country 国家名称
363
+ * @returns 在任务完成后兑现的 Promise
364
+ * @since 0.63.0
365
+ */
366
+ goCraftResin(country: CountryName): Promise<void>;
360
367
  /**
361
368
  * 在当前已打开的合成界面中合成指定材料
362
369
  * @param materialName 目标成品材料名
@@ -82,6 +82,7 @@ export interface AutoBossConfig
82
82
  | "specifyRunCount"
83
83
  | "strategyName"
84
84
  | "teamName"
85
+ | "timeout"
85
86
  | "useFragileResin"
86
87
  | "useTransientResin"
87
88
  >,
@@ -108,6 +109,11 @@ export interface AutoBossConfig
108
109
  * @since 0.62.0
109
110
  */
110
111
  rewardRecognitionEnabled: boolean;
112
+ /**
113
+ * 战斗超时时长,单位秒,默认 240
114
+ * @since 0.63.0
115
+ */
116
+ timeout: number;
111
117
  /**
112
118
  * 指定模式下成功领取奖励的目标次数
113
119
  * @since 0.62.0
@@ -29,6 +29,7 @@ export interface AutoBossParam extends Omit<
29
29
  | "specifyRunCount"
30
30
  | "strategyName"
31
31
  | "teamName"
32
+ | "timeout"
32
33
  | "useFragileResin"
33
34
  | "useTransientResin"
34
35
  > {
@@ -88,6 +89,11 @@ export interface AutoBossParam extends Omit<
88
89
  * @since 0.62.0
89
90
  */
90
91
  rewardRecognitionEnabled: boolean;
92
+ /**
93
+ * 战斗超时时长,单位秒,默认 240
94
+ * @since 0.63.0
95
+ */
96
+ timeout: number;
91
97
  /**
92
98
  * 从当前全局自动首领讨伐配置填充默认参数
93
99
  * @returns ClearScript 宿主空结果
@@ -1,11 +1,18 @@
1
1
  import "../../../CommunityToolkit/Mvvm/ComponentModel/ObservableObject";
2
2
  import type {
3
+ ClrHostValue,
4
+ EnumTypeTrait,
3
5
  HostType,
4
6
  PublicDefaultConstructorTrait,
5
7
  ReferenceTypeTrait
6
8
  } from "../../../Microsoft/ClearScript/HostType";
7
9
  import "../../../System/ComponentModel/INotifyPropertyChanged";
8
10
  import "../../../System/ComponentModel/INotifyPropertyChanging";
11
+ import "../../../System/Enum";
12
+ import "../../../System/IComparable";
13
+ import "../../../System/IConvertible";
14
+ import "../../../System/IFormattable";
15
+ import "../../../System/ISpanFormattable";
9
16
 
10
17
  /**
11
18
  * 精英掉落拾取模式
@@ -51,6 +58,9 @@ export interface AutoFightConfig
51
58
  | "actionSchedulerByCd"
52
59
  | "battleThresholdForLoot"
53
60
  | "burstEnabled"
61
+ | "damageNumberRecognitionMode"
62
+ | "drawRecognitionResults"
63
+ | "enableCombatTargeting"
54
64
  | "expBasedPickupEnabled"
55
65
  | "fightFinishDetectEnabled"
56
66
  | "finishDetectConfig"
@@ -59,6 +69,7 @@ export interface AutoFightConfig
59
69
  | "guardianCombatSkip"
60
70
  | "kazuhaPartyName"
61
71
  | "kazuhaPickupEnabled"
72
+ | "lockLostWaitTime"
62
73
  | "onlyPickEliteDropsMode"
63
74
  | "pickDropsAfterFightEnabled"
64
75
  | "pickDropsAfterFightSeconds"
@@ -67,6 +78,7 @@ export interface AutoFightConfig
67
78
  | "strategyName"
68
79
  | "swimmingEnabled"
69
80
  | "teamNames"
81
+ | "targetingDetectionInterval"
70
82
  | "timeout"
71
83
  >,
72
84
  System.ComponentModel.INotifyPropertyChangedInput,
@@ -172,6 +184,31 @@ export interface AutoFightConfig
172
184
  * @since 0.52.0
173
185
  */
174
186
  timeout: number;
187
+ /**
188
+ * 是否在战斗中持续尝试面朝敌人
189
+ * @since 0.63.0
190
+ */
191
+ enableCombatTargeting: boolean;
192
+ /**
193
+ * 敌人不可见后开始旋转索敌前的等待时长,单位秒,默认 0.5
194
+ * @since 0.63.0
195
+ */
196
+ lockLostWaitTime: number;
197
+ /**
198
+ * 索敌识别间隔,单位毫秒,默认 50
199
+ * @since 0.63.0
200
+ */
201
+ targetingDetectionInterval: number;
202
+ /**
203
+ * 伤害数字识别模式
204
+ * @since 0.63.0
205
+ */
206
+ damageNumberRecognitionMode: DamageNumberRecognitionMode;
207
+ /**
208
+ * 是否在遮罩窗口绘制血条、伤害数字等识别结果
209
+ * @since 0.63.0
210
+ */
211
+ drawRecognitionResults: boolean;
175
212
  }
176
213
 
177
214
  /**
@@ -193,6 +230,7 @@ export interface AutoFightConfig_FightFinishDetectConfig
193
230
  | "isFirstCheck"
194
231
  | "rotaryFactor"
195
232
  | "rotateFindEnemyEnabled"
233
+ | "skipFightEndCheckWhenEnemyVisible"
196
234
  >,
197
235
  System.ComponentModel.INotifyPropertyChangedInput,
198
236
  System.ComponentModel.INotifyPropertyChangingInput {
@@ -247,6 +285,11 @@ export interface AutoFightConfig_FightFinishDetectConfig
247
285
  * @since 0.52.0
248
286
  */
249
287
  rotateFindEnemyEnabled: boolean;
288
+ /**
289
+ * 是否在敌人可见时跳过战斗结束检查;与旋转寻找敌人互斥
290
+ * @since 0.63.0
291
+ */
292
+ skipFightEndCheckWhenEnemyVisible: boolean;
250
293
  }
251
294
 
252
295
  export interface AutoFightConfig_FightFinishDetectConfigHostType extends HostType<
@@ -271,6 +314,7 @@ declare global {
271
314
  namespace BetterGenshinImpact.GameTask.AutoFight {
272
315
  type AutoFightConfig = import("./AutoFightConfig").AutoFightConfig;
273
316
  type CombatStrategyName = import("./AutoFightConfig").CombatStrategyName;
317
+ type DamageNumberRecognitionMode = import("./AutoFightConfig").DamageNumberRecognitionMode;
274
318
  type OnlyPickEliteDropsMode = import("./AutoFightConfig").OnlyPickEliteDropsMode;
275
319
  type PartySlotIndex = import("./AutoFightConfig").PartySlotIndex;
276
320
  type StrategyFileKind = import("./AutoFightConfig").StrategyFileKind;
@@ -289,4 +333,34 @@ export interface AutoFightConfigHostType extends HostType<
289
333
  readonly FightFinishDetectConfig: AutoFightConfig_FightFinishDetectConfigHostType;
290
334
  }
291
335
 
336
+ /**
337
+ * 战斗索敌使用的伤害数字识别模式
338
+ * @since 0.63.0
339
+ */
340
+ declare const damageNumberRecognitionModeBrand: unique symbol;
341
+ export interface DamageNumberRecognitionMode extends ClrHostValue {
342
+ readonly [damageNumberRecognitionModeBrand]: true;
343
+ }
344
+
345
+ export interface DamageNumberRecognitionModeHostType extends HostType<
346
+ DamageNumberRecognitionMode,
347
+ EnumTypeTrait
348
+ > {
349
+ /**
350
+ * 禁用伤害数字识别
351
+ * @since 0.63.0
352
+ */
353
+ readonly disabled: DamageNumberRecognitionMode;
354
+ /**
355
+ * 使用 OCR 识别伤害数字
356
+ * @since 0.63.0
357
+ */
358
+ readonly ocr: DamageNumberRecognitionMode;
359
+ /**
360
+ * 使用颜色识别伤害数字
361
+ * @since 0.63.0
362
+ */
363
+ readonly color: DamageNumberRecognitionMode;
364
+ }
365
+
292
366
  export {};
@@ -10,6 +10,7 @@ import "../Model/BaseTaskParam";
10
10
  import "./AutoFightConfig";
11
11
  import type {
12
12
  CombatStrategyName,
13
+ DamageNumberRecognitionMode,
13
14
  OnlyPickEliteDropsMode,
14
15
  PartySlotIndex,
15
16
  StrategyFileKind
@@ -28,6 +29,9 @@ export interface AutoFightParam extends Omit<
28
29
  | "burstEnabled"
29
30
  | "checkBeforeBurst"
30
31
  | "combatStrategyPath"
32
+ | "damageNumberRecognitionMode"
33
+ | "drawRecognitionResults"
34
+ | "enableCombatTargeting"
31
35
  | "expBasedPickupEnabled"
32
36
  | "fightFinishDetectEnabled"
33
37
  | "finishDetectConfig"
@@ -37,6 +41,7 @@ export interface AutoFightParam extends Omit<
37
41
  | "isFirstCheck"
38
42
  | "kazuhaPartyName"
39
43
  | "kazuhaPickupEnabled"
44
+ | "lockLostWaitTime"
40
45
  | "onlyPickEliteDropsMode"
41
46
  | "pickDropsAfterFightEnabled"
42
47
  | "pickDropsAfterFightSeconds"
@@ -44,6 +49,7 @@ export interface AutoFightParam extends Omit<
44
49
  | "rotaryFactor"
45
50
  | "setCombatStrategyPath"
46
51
  | "setDefault"
52
+ | "targetingDetectionInterval"
47
53
  | "timeout"
48
54
  > {
49
55
  readonly [autoFightParamBrand]: true;
@@ -142,6 +148,31 @@ export interface AutoFightParam extends Omit<
142
148
  * @since 0.52.0
143
149
  */
144
150
  qinDoublePickUp: boolean;
151
+ /**
152
+ * 是否在战斗中持续尝试面朝敌人
153
+ * @since 0.63.0
154
+ */
155
+ enableCombatTargeting: boolean;
156
+ /**
157
+ * 索敌识别间隔,单位毫秒,默认 50
158
+ * @since 0.63.0
159
+ */
160
+ targetingDetectionInterval: number;
161
+ /**
162
+ * 是否在遮罩窗口绘制血条、伤害数字等识别结果
163
+ * @since 0.63.0
164
+ */
165
+ drawRecognitionResults: boolean;
166
+ /**
167
+ * 敌人不可见后开始旋转索敌前的等待时长,单位秒,默认 0.5
168
+ * @since 0.63.0
169
+ */
170
+ lockLostWaitTime: number;
171
+ /**
172
+ * 伤害数字识别模式
173
+ * @since 0.63.0
174
+ */
175
+ damageNumberRecognitionMode: DamageNumberRecognitionMode;
145
176
  /**
146
177
  * 是否仅在检测到精英怪经验值图标时执行战后拾取
147
178
  * @since 0.61.0
@@ -205,6 +236,11 @@ export interface AutoFightParam_FightFinishDetectConfig extends ClrHostValue {
205
236
  * @since 0.52.0
206
237
  */
207
238
  rotateFindEnemyEnabled: boolean;
239
+ /**
240
+ * 是否在敌人可见时跳过战斗结束检查
241
+ * @since 0.63.0
242
+ */
243
+ skipFightEndCheckWhenEnemyVisible: boolean;
208
244
  }
209
245
 
210
246
  export interface AutoFightParam_FightFinishDetectConfigHostType extends HostType<
@@ -8,11 +8,9 @@ import type {
8
8
  } from "../../../../Microsoft/ClearScript/HostType";
9
9
  import type { VoidResult } from "../../../../Microsoft/ClearScript/VoidResult";
10
10
  import "../../../../OpenCvSharp/Rect";
11
- import "../../../../System/Collections/Generic/List";
12
11
  import "../../../../System/DateTime";
13
12
  import "../../../../System/Nullable";
14
13
  import "../../../../System/Threading/CancellationToken";
15
- import "../../../../System/ValueTuple";
16
14
  import "../../../../System/WebSocket";
17
15
  import type { KeyCode } from "../../../Helpers/User32Helper";
18
16
  import "../../Model/Area/ImageRegion";
@@ -486,28 +484,6 @@ export interface AvatarHostType extends HostType<Avatar, ReferenceTypeTrait> {
486
484
  * @since 0.50.0
487
485
  */
488
486
  parseActionSchedulerByCd(avatarName: AvatarName, input: string): number | null;
489
- /**
490
- * 识别屏幕上的血条位置列表
491
- * @param existingCapture 可选的已有截图区域,省略时重新截图
492
- * @returns 血条边界框元组列表
493
- * @since 0.50.0
494
- */
495
- findBloodBars(): System.Collections.Generic.List<
496
- System.ValueTuple<number, number, number, number>
497
- >;
498
- findBloodBars(
499
- existingCapture: BetterGenshinImpact.GameTask.Model.Area.ImageRegion | null
500
- ): System.Collections.Generic.List<System.ValueTuple<number, number, number, number>>;
501
- /**
502
- * 通过 OCR 寻找伤害数字或反应文字作为追踪目标(备用寻敌);在 450,240–1600,900 区域 OCR,过滤纯数字 ≥4 位或含反应关键词的文本,按 `h²×文本字数` 加权得到中心坐标
503
- * @param existingCapture 可选的已有截图区域,省略时重新截图
504
- * @returns 离加权中心最近的有效项坐标与文本,未找到时为 null
505
- * @since 0.50.0
506
- */
507
- findDamageNumber(): System.ValueTuple<number, number, string> | null;
508
- findDamageNumber(
509
- existingCapture: BetterGenshinImpact.GameTask.Model.Area.ImageRegion | null
510
- ): System.ValueTuple<number, number, string> | null;
511
487
  }
512
488
 
513
489
  export {};
@@ -0,0 +1,158 @@
1
+ import type {
2
+ ClrHostValue,
3
+ HostType,
4
+ PublicDefaultConstructorTrait,
5
+ ReferenceTypeTrait
6
+ } from "../../../Microsoft/ClearScript/HostType";
7
+ import "../../../System/Collections/Generic/IEnumerable";
8
+ import "../../../System/Collections/Generic/List";
9
+ import type { AvatarName } from "../AutoFight/Model/Avatar";
10
+
11
+ /**
12
+ * 角色元素类型
13
+ * 来源:上游 `Assets/Model/AvatarGridIcon/avatar.csv` 的 `element_type`
14
+ * @since 0.63.0
15
+ */
16
+ export type CharacterElementType = "火" | "水" | "雷" | "冰" | "风" | "岩" | "草" | (string & {});
17
+
18
+ /**
19
+ * 单个角色的养成信息识别结果;未请求或未识别的字段为 null
20
+ * @since 0.63.0
21
+ */
22
+ declare const characterDevelopmentResultBrand: unique symbol;
23
+ export interface CharacterDevelopmentResult extends ClrHostValue {
24
+ readonly [characterDevelopmentResultBrand]: true;
25
+ /**
26
+ * 调用方传入并规范化后的角色名称
27
+ * @since 0.63.0
28
+ */
29
+ characterName: AvatarName;
30
+ /**
31
+ * 角色元素类型;旅行者和奇偶由模型识别,其余角色来自头像原型表
32
+ * @since 0.63.0
33
+ */
34
+ elementType: CharacterElementType | null;
35
+ /**
36
+ * 角色当前等级
37
+ * @since 0.63.0
38
+ */
39
+ level: number | null;
40
+ /**
41
+ * 角色当前等级上限
42
+ * @since 0.63.0
43
+ */
44
+ levelLimit: number | null;
45
+ /**
46
+ * 经物品原型表编辑距离纠错后的标准武器名称
47
+ * @since 0.63.0
48
+ */
49
+ weaponName: string | null;
50
+ /**
51
+ * 武器当前等级
52
+ * @since 0.63.0
53
+ */
54
+ weaponLevel: number | null;
55
+ /**
56
+ * 武器当前等级上限
57
+ * @since 0.63.0
58
+ */
59
+ weaponLevelLimit: number | null;
60
+ /**
61
+ * 普通攻击的界面显示等级
62
+ * @since 0.63.0
63
+ */
64
+ attackLevel: number | null;
65
+ /**
66
+ * 普通攻击是否显示命座带来的固定等级加成
67
+ * @since 0.63.0
68
+ */
69
+ attackHasBonus: boolean | null;
70
+ /**
71
+ * 元素战技的界面显示等级
72
+ * @since 0.63.0
73
+ */
74
+ skillLevel: number | null;
75
+ /**
76
+ * 元素战技是否显示命座带来的固定等级加成
77
+ * @since 0.63.0
78
+ */
79
+ skillHasBonus: boolean | null;
80
+ /**
81
+ * 元素爆发的界面显示等级
82
+ * @since 0.63.0
83
+ */
84
+ burstLevel: number | null;
85
+ /**
86
+ * 元素爆发是否显示命座带来的固定等级加成
87
+ * @since 0.63.0
88
+ */
89
+ burstHasBonus: boolean | null;
90
+ }
91
+
92
+ /**
93
+ * 角色养成信息识别任务入口
94
+ * @since 0.63.0
95
+ */
96
+ declare const characterDevelopmentTaskBrand: unique symbol;
97
+ export interface CharacterDevelopmentTask extends ClrHostValue {
98
+ readonly [characterDevelopmentTaskBrand]: true;
99
+ /**
100
+ * 识别单个角色的养成信息
101
+ * @param characterName 目标角色名称或已有别名
102
+ * @param categories 以分号分隔的 `属性`、`武器`、`天赋` 分类,null 表示全部
103
+ * @returns 在任务完成后兑现识别结果的 Promise
104
+ * @since 0.63.0
105
+ */
106
+ getCharacter(characterName: AvatarName): Promise<CharacterDevelopmentResult>;
107
+ getCharacter(
108
+ characterName: AvatarName,
109
+ categories: string | null
110
+ ): Promise<CharacterDevelopmentResult>;
111
+ /**
112
+ * 识别多个角色的养成信息
113
+ * @param characterNames 字符串集合或 ClearScript JS Array;不得为空或传入单个字符串
114
+ * @param categories 以分号分隔的 `属性`、`武器`、`天赋` 分类,null 表示全部
115
+ * @returns 在任务完成后兑现识别结果列表的 Promise
116
+ * @since 0.63.0
117
+ */
118
+ getMultiCharacters(
119
+ characterNames: readonly AvatarName[] | System.Collections.Generic.IEnumerableInput<AvatarName>
120
+ ): Promise<System.Collections.Generic.List<CharacterDevelopmentResult>>;
121
+ getMultiCharacters(
122
+ characterNames: readonly AvatarName[] | System.Collections.Generic.IEnumerableInput<AvatarName>,
123
+ categories: string | null
124
+ ): Promise<System.Collections.Generic.List<CharacterDevelopmentResult>>;
125
+ }
126
+
127
+ declare global {
128
+ namespace BetterGenshinImpact.GameTask.CharacterDevelopment {
129
+ type CharacterElementType = import("./CharacterDevelopmentTask").CharacterElementType;
130
+ type CharacterDevelopmentResult =
131
+ import("./CharacterDevelopmentTask").CharacterDevelopmentResult;
132
+ type CharacterDevelopmentTask = import("./CharacterDevelopmentTask").CharacterDevelopmentTask;
133
+ }
134
+ }
135
+
136
+ export interface CharacterDevelopmentResultHostType extends HostType<
137
+ CharacterDevelopmentResult,
138
+ ReferenceTypeTrait & PublicDefaultConstructorTrait
139
+ > {
140
+ /**
141
+ * 构造空识别结果
142
+ * @since 0.63.0
143
+ */
144
+ new (): CharacterDevelopmentResult;
145
+ }
146
+
147
+ export interface CharacterDevelopmentTaskHostType extends HostType<
148
+ CharacterDevelopmentTask,
149
+ ReferenceTypeTrait & PublicDefaultConstructorTrait
150
+ > {
151
+ /**
152
+ * 构造角色养成信息识别任务
153
+ * @since 0.63.0
154
+ */
155
+ new (): CharacterDevelopmentTask;
156
+ }
157
+
158
+ export {};
@@ -70,6 +70,11 @@ export interface Region extends ClrHostValue, System.IDisposableInput {
70
70
  * @since 0.43.1
71
71
  */
72
72
  text: string;
73
+ /**
74
+ * 模板匹配得分,值越大表示匹配程度越高;非模板匹配结果为 null
75
+ * @since 0.63.0
76
+ */
77
+ matchScore: number | null;
73
78
  /**
74
79
  * 上一层区域节点
75
80
  * @since 0.43.1
@@ -87,7 +87,7 @@ export interface GridScreenNameHostType extends HostType<GridScreenName, EnumTyp
87
87
  readonly crafting: GridScreenName;
88
88
  /**
89
89
  * 队伍配置快速编队界面的左侧角色头像网格
90
- * @since unreleased
90
+ * @since 0.63.0
91
91
  */
92
92
  readonly partySetupCharacters: GridScreenName;
93
93
  }