mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-03-29 05:39:51 +08:00
feat(AutoPlanDomain): 添加树脂类型配置和使用优先级功能
- 在配置文件中新增树脂类型名称数组,支持原粹树脂、浓缩树脂、须臾树脂、脆弱树脂 - 实现动态初始化物理树脂配置,从配置中读取树脂类型并生成默认配置 - 修改秘境执行逻辑,只对启用的树脂类型进行优先级排序 - 更新树脂使用优先级判断条件,启用树脂优先级配置功能 - 更新 README 文档,添加树脂使用顺序配置说明和示例 - 在计划配置语法中添加 physical 配置项说明
This commit is contained in:
@@ -42,21 +42,22 @@
|
||||
|
||||
**字段详解**
|
||||
|
||||
| 位置 | 字段 | 是否必填 | 说明 | 示例 |
|
||||
|:---:|:---:|:---:|:--------------------------------------:|:-----------------------:|
|
||||
| 1 | 队伍名称 | 可选 | BetterGI 中已保存的队伍名称(用于切换队伍) | 速刷 / 雷国 / 国家队 |
|
||||
| 2 | 秘境名称/刷取物品名称 | **必填** | 与 BetterGI 自动秘境识别的名称保持一致 | 苍白的遗荣 / 炽烈的炎之魔女 / 辰砂往生录 |
|
||||
| 3 | 刷几轮 | 可选 | 整数,执行几轮(每轮 = 1次完整秘境) | 3 / 5 / 10 |
|
||||
| 4 | 限时/周日 | 可选 | 1=周一~周六可用、2=周日可用、3=仅周日、留空=不限制 | 1 / 2 / 3 |
|
||||
| 5 | 周几执行(0-6) | 可选 | 0=周日,1=周一,...,6=周六;可多选按`/`分割,不填=每天都可执行 | 0/3,3 |
|
||||
| 6 | 执行顺序 | 可选 | 数字越大越优先执行(同时间点先跑优先级高的) | 9 / 5 / 1 |
|
||||
| 位置 | 字段 | 是否必填 | 说明 | 示例 |
|
||||
|:--:|:-----------:|:---:|:--------------------------------------------:|:-----------------------:|
|
||||
| 1 | 队伍名称 | 可选 | BetterGI 中已保存的队伍名称(用于切换队伍) | 速刷 / 雷国 / 国家队 |
|
||||
| 2 | 秘境名称/刷取物品名称 | **必填** | 与 BetterGI 自动秘境识别的名称保持一致 | 苍白的遗荣 / 炽烈的炎之魔女 / 辰砂往生录 |
|
||||
| 3 | 刷几轮 | 可选 | 整数,执行几轮(每轮 = 1次完整秘境) | 3 / 5 / 10 |
|
||||
| 4 | 限时/周日 | 可选 | 1=周一~周六可用、2=周日可用、3=仅周日、留空=不限制 | 1 / 2 / 3 |
|
||||
| 5 | 周几执行(0-6) | 可选 | 0=周日,1=周一,...,6=周六;可多选按`/`分割,不填=每天都可执行 | 0/3,3 |
|
||||
| 6 | 树脂使用顺序 | 可选 | 原粹树脂,浓缩树脂,须臾树脂,脆弱树脂`/`分割,不填=默认执行 原粹树脂 | 原粹树脂/浓缩树脂,须臾树脂 |
|
||||
| 7 | 执行顺序 | 可选 | 数字越大越优先执行(同时间点先跑优先级高的) | 9 / 5 / 1 |
|
||||
|
||||
**配置示例**
|
||||
|
||||
```
|
||||
速刷|苍白的遗荣|3|1|0/3|9, # 优先级最高,周日,周三刷3轮遗荣
|
||||
国家队|炽烈的炎之魔女|5|||5, # 优先级次之,每天刷5轮魔女
|
||||
雷国|无想之刃狭间|2|2|0|2 # 只在周日刷,优先级较低
|
||||
速刷|苍白的遗荣|3|1|0/3||9, # 优先级最高,周日,周三刷3轮遗荣
|
||||
国家队|炽烈的炎之魔女|5||||5, # 优先级次之,每天刷5轮魔女
|
||||
雷国|无想之刃狭间|2|2|0|浓缩树脂/原粹树脂|2 # 只在周日刷,优先使用浓缩树脂后使用原粹树脂,优先级较低
|
||||
```
|
||||
(注意:最后一条也可以不带逗号)
|
||||
### 计划配置语法(config/domain_config.json 配置)
|
||||
@@ -66,6 +67,12 @@
|
||||
"order": 1, // 顺序值
|
||||
"days": [0],// 执行日期
|
||||
"autoFight": {
|
||||
"physical": [
|
||||
{"order": 0, "name": "原粹树脂", "open": true},
|
||||
{"order": 1, "name": "浓缩树脂", "open": false},
|
||||
{"order": 2, "name": "须臾树脂", "open": false},
|
||||
{"order": 3, "name": "脆弱树脂", "open": false}
|
||||
],//树脂开启和使用顺序
|
||||
"domainName": undefined,//秘境名称
|
||||
"partyName": undefined,//队伍名称
|
||||
"sundaySelectedValue": undefined,//周日|限时选择的值
|
||||
|
||||
@@ -30,6 +30,7 @@ const config = {
|
||||
physical: {
|
||||
min: 20,//最小体力
|
||||
current: 0,//当前体力
|
||||
names: ["原粹树脂", "浓缩树脂", "须臾树脂", "脆弱树脂"]
|
||||
}
|
||||
},
|
||||
//
|
||||
@@ -174,8 +175,8 @@ async function initConfig() {
|
||||
// config.user.physical.min = physical.min
|
||||
// 初始化uid
|
||||
config.user.uid = await ocrUid()
|
||||
const bgi_tools_token = settings.bgi_tools_token||"Authorization= "
|
||||
const list = Array.from(bgi_tools_token.split("=")).map(item=>item.trim());
|
||||
const bgi_tools_token = settings.bgi_tools_token || "Authorization= "
|
||||
const list = Array.from(bgi_tools_token.split("=")).map(item => item.trim());
|
||||
config.bgi_tools.token.name = list[0]
|
||||
config.bgi_tools.token.value = list[1]
|
||||
config.bgi_tools.api.httpPullJsonConfig = settings.bgi_tools_http_pull_json_config
|
||||
|
||||
@@ -11,12 +11,22 @@ import {ocrPhysical} from "./utils/physical";
|
||||
*/
|
||||
async function autoDomain(autoFight) {
|
||||
//定死做预留冗余 先不实现 不能指定次数 只能指定启用
|
||||
let physical_domain = autoFight?.physical || [
|
||||
{order: 0, name: "原粹树脂", count: 1, open: true},
|
||||
{order: 1, name: "浓缩树脂", count: 0, open: false},
|
||||
{order: 2, name: "须臾树脂", count: 0, open: false},
|
||||
{order: 3, name: "脆弱树脂", count: 0, open: false},
|
||||
]
|
||||
let physical_domain = autoFight?.physical
|
||||
// || [
|
||||
// {order: 0, name: "原粹树脂", count: 1, open: true},
|
||||
// {order: 1, name: "浓缩树脂", count: 0, open: false},
|
||||
// {order: 2, name: "须臾树脂", count: 0, open: false},
|
||||
// {order: 3, name: "脆弱树脂", count: 0, open: false},
|
||||
// ]
|
||||
|
||||
if (!physical_domain) {
|
||||
const names = config.user.physical.names;
|
||||
physical_domain = []
|
||||
names.forEach((name, index) => {
|
||||
physical_domain.push({order: index, name: name, open: index === 0})
|
||||
})
|
||||
}
|
||||
|
||||
physical_domain.sort((a, b) => a.order - b.order)
|
||||
// 不包含原粹树脂的和
|
||||
const noOriginalSum = physical_domain.filter(item => item.name.trim() !== "原粹树脂")
|
||||
@@ -24,7 +34,7 @@ async function autoDomain(autoFight) {
|
||||
// 只包含原粹树脂的和
|
||||
const originalSum = physical_domain.find(item => item.name?.trim() === "原粹树脂")
|
||||
.map(item => item.open ? 1 : 0).reduce((acc, curr) => acc + curr, 0);
|
||||
const resinPriorityList = physical_domain.map(item => item.name?.trim())
|
||||
const resinPriorityList = physical_domain.filter(item => item.open).map(item => item.name?.trim())
|
||||
// /** 树脂使用优先级列表 */
|
||||
// resinPriorityList: string[];
|
||||
// /** 使用原粹树脂次数 */
|
||||
@@ -49,8 +59,8 @@ async function autoDomain(autoFight) {
|
||||
domainParam.autoArtifactSalvage = false
|
||||
//关闭榨干原粹树脂
|
||||
domainParam.specifyResinUse = true
|
||||
//配置原粹树脂使用优先级
|
||||
if (false && resinPriorityList.length > 0) {
|
||||
//配置树脂使用优先级
|
||||
if (resinPriorityList.length > 0) {
|
||||
domainParam.resinPriorityList = resinPriorityList
|
||||
}
|
||||
// log.debug(`开始执行秘境任务`)
|
||||
|
||||
Reference in New Issue
Block a user