feat(domain): 添加原神秘境自动规划功能

- 新增配置文件config.js用于管理秘境数据结构
- 实现秘境配置初始化和数据映射功能
- 添加domain.json配置文件包含所有秘境信息
- 实现秘境自动执行核心逻辑
- 添加秘境顺序列表初始化和排序功能
- 实现秘境批量执行处理机制
- 添加错误处理和配置验证机制
This commit is contained in:
yan
2026-02-08 12:42:02 +08:00
parent 1333bacc93
commit 9640715103
3 changed files with 738 additions and 501 deletions

View File

@@ -0,0 +1,305 @@
const config = {
//setting设置放在这个json
domain: {
config: ''
},
//
path: {
domain: `./config/domain.json`
},
//所有秘境信息
domainList: [],
//所有秘境名称
domainNames: new Set(),
//物品名称(只记录顶级的名称->金色物品名称)
itemNames: new Set(),
//秘境名称映射物品列表
domainMap: new Map(),
//秘境名称映射秘境列表顺序
domainOrderMap: new Map(),
//物品名称映射秘境名称
domainItemsMap: new Map(),
}
async function initConfig() {
/* const domainList = [
{
name: "无光的深都",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「月光」的哲学", "「乐园」的哲学", "「浪迹」的哲学"]
},
{
name: "蕴火的幽墟",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「角逐」的哲学", "「焚燔」的哲学", "「纷争」的哲学"]
}
,
{
name: "苍白的遗荣",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「公平」的哲学", "「正义」的哲学", "「秩序」的哲学"]
}
,
{
name: "昏识塔",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「诤言」的哲学", "「巧思」的哲学", "「笃行」的哲学"]
}
,
{
name: "董色之庭",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「浮世」的哲学", "「风雅」的哲学", "「天光」的哲学"]
}
,
{
name: "太山府",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「繁荣」的哲学", "「勤劳」的哲学", "「黄金」的哲学"]
}
,
{
name: "忘却之峡",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「自由」的哲学", "「抗争」的哲学", "「纷争」的哲学"]
}
//================================
,
{
name: "失落的月庭",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["奇巧秘器的真愿", "长夜火的烈辉", "终北遗嗣的煌熠"]
}
,
{
name: "深古瞭望所",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["神合秘烟的启示", "谚妄圣主的神面", "贡祭炽心的荣膺"]
}
,
{
name: "深潮的余响",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["悠古弦音的回响", "纯圣露滴的真粹", "无垢之海的金杯"]
}
,
{
name: "有顶塔",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["谧林涓露的金符", "绿洲花园的真谛", "烈日威权的旧日"]
}
,
{
name: "砂流之庭",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["远海夷地的金枝", "鸣神御灵的勇武", "今昔剧画之鬼人"]
}
,
{
name: "震雷连山密宫",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["孤云寒林的神体", "雾海云间的转还", "漆黑陨铁的一块"]
}
,
{
name: "塞西莉亚苗圃",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["高塔孤王的碎梦", "凛风奔狼的怀乡", "狮牙斗士的理想"]
}
//================================
,
{
name: "月童的库藏",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["风起之日", "晨星与月的晓歌"]
}
,
{
name: "霜凝的机枢",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["纺月的夜歌", "穹境示现之夜"]
}
,
{
name: "荒废砌造坞",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["深廊终曲", "长夜之誓"]
}
,
{
name: "虹灵的净土",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["黑曜秘典", "城勇者绘卷"]
}
,
{
name: "褪色的剧场",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["未竟的遐思", "谐律异想断章"]
}
,
{
name: "临瀑之城",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["回声之林夜话", "昔时之歌"]
}
,
{
name: "罪祸的终末",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["黄金剧团", "逐影猎人"]
}
,
{
name: "熔铁的孤塞",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["花海甘露之光", "水仙之梦"]
}
,
{
name: "赤金的城墟",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["乐园遗落之花", "沙上楼阁史话"]
}
,
{
name: "赤金的城墟",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["乐园遗落之花", "沙上楼阁史话"]
}
,
{
name: "缘觉塔",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["饰金之梦", "深林的记忆"]
}
,
{
name: "沉眠之庭",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["海染砗磲", "华馆梦醒形骸记"]
}
,
{
name: "花染之庭",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["绝缘之旗印", "追忆之注连"]
}
,
{
name: "岩中幽谷",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["辰砂往生录", "来歆余响"]
}
,
{
name: "华池岩柚",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["染血的骑士道", "昔日宗室之仪"]
}
,
{
name: "无妄引答密宫",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["炽烈的炎之魔女", "渡过烈火的贤人"]
}
,
{
name: "孤云凌霄之处",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["悠古的磐岩", "逆飞的流星"]
}
,
{
name: "山脊守望",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["千岩牢固", "苍白之火"]
}
,
{
name: "芬德尼尔之顶",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["冰风迷途的勇士", "沉沦之心"]
}
,
{
name: "铭记之谷",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["翠绿之影", "被怜爱的少女"]
}
,
{
name: "仲夏庭园",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["如雷的盛怒", "平息鸣雷的尊者"]
}
]*/
const domainList = JSON.parse(file.readTextSync(config.path.domain)) || []
config.domainList.push(...domainList)
config.domainList.forEach(item => {
if (!config.domainNames.has(item.name)) {
config.domainNames.add(item.name)
}
config.domainMap.set(item.name, item.list);
if (item?.hasOrder) {
let index = 1
//设置顺序
item.list.forEach(item2 => {
if (!config.itemNames.has(item2)) {
config.itemNames.add(item2)
}
config.domainOrderMap.set(item2, index)
config.domainItemsMap.set(item2, item.name)
index++
})
}
})
config.domain.config = settings.domain_config || config.domain.config
if (config.domainList.length <= 0) {
throw new Error("配置文件缺失或读取异常!")
}
}
export {
config,
initConfig
}

View File

@@ -1,241 +1,326 @@
[
{
"name":"无光的深都",
"type":"天赋",
"hasOrder": true,//存在排序(限时/周日)
"list": ["「月光」的哲学", "「乐园」的哲学", "「浪迹」的哲学"]
},
{
"name":"蕴火的幽墟",
"type":"天赋",
"hasOrder": true,//存在排序(限时/周日)
"list": ["「角逐」的哲学", "「焚燔」的哲学", "「纷争」的哲学"]
}
,
{
"name":"苍白的遗荣",
"type":"天赋",
"hasOrder": true,//存在排序(限时/周日)
"list": ["「公平」的哲学", "「正义」的哲学", "「秩序」的哲学"]
}
,
{
"name":"昏识塔",
"type":"天赋",
"hasOrder": true,//存在排序(限时/周日)
"list": ["「诤言」的哲学", "「巧思」的哲学", "「笃行」的哲学"]
}
,
{
"name":"董色之庭",
"type":"天赋",
"hasOrder": true,//存在排序(限时/周日)
"list": ["「浮世」的哲学", "「风雅」的哲学", "「天光」的哲学"]
}
,
{
"name":"太山府",
"type":"天赋",
"hasOrder": true,//存在排序(限时/周日)
"list": ["「繁荣」的哲学", "「勤劳」的哲学", "「黄金」的哲学"]
}
,
{
"name":"忘却之峡",
"type":"天赋",
"hasOrder": true,//存在排序(限时/周日)
"list": ["「自由」的哲学", "「抗争」的哲学", "「纷争」的哲学"]
}
//================================
,
{
"name":"失落的月庭",
"type":"武器",
"hasOrder": true,//存在排序(限时/周日)
"list": ["奇巧秘器的真愿", "长夜火的烈辉", "终北遗嗣的煌熠"]
}
,
{
"name":"深古瞭望所",
"type":"武器",
"hasOrder": true,//存在排序(限时/周日)
"list": ["神合秘烟的启示", "谚妄圣主的神面", "贡祭炽心的荣膺"]
}
,
{
"name":"深潮的余响",
"type":"武器",
"hasOrder": true,//存在排序(限时/周日)
"list": ["悠古弦音的回响", "纯圣露滴的真粹", "无垢之海的金杯"]
}
,
{
"name":"有顶塔",
"type":"武器",
"hasOrder": true,//存在排序(限时/周日)
"list": ["谧林涓露的金符", "绿洲花园的真谛", "烈日威权的旧日"]
}
,
{
"name":"砂流之庭",
"type":"武器",
"hasOrder": true,//存在排序(限时/周日)
"list": ["远海夷地的金枝", "鸣神御灵的勇武", "今昔剧画之鬼人"]
}
,
{
"name":"震雷连山密宫",
"type":"武器",
"hasOrder": true,//存在排序(限时/周日)
"list": ["孤云寒林的神体", "雾海云间的转还", "漆黑陨铁的一块"]
}
,
{
"name":"塞西莉亚苗圃",
"type":"武器",
"hasOrder": true,//存在排序(限时/周日)
"list": ["高塔孤王的碎梦", "凛风奔狼的怀乡", "狮牙斗士的理想"]
}
//================================
,
{
"name":"月童的库藏",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["风起之日", "晨星与月的晓歌"]
}
,
{
"name":"霜凝的机枢",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["纺月的夜歌", "穹境示现之夜"]
}
,
{
"name":"荒废砌造坞",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["深廊终曲", "长夜之誓"]
}
,
{
"name":"虹灵的净土",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["黑曜秘典", "城勇者绘卷"]
}
,
{
"name":"褪色的剧场",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["未竟的遐思", "谐律异想断章"]
}
,
{
"name":"临瀑之城",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["回声之林夜话", "昔时之歌"]
}
,
{
"name":"罪祸的终末",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["黄金剧团", "逐影猎人"]
}
,
{
"name":"熔铁的孤塞",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["花海甘露之光", "水仙之梦"]
}
,
{
"name":"赤金的城墟",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["乐园遗落之花", "沙上楼阁史话"]
}
,
{
"name":"缘觉塔",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["饰金之梦", "深林的记忆"]
}
,
{
"name":"沉眠之庭",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["海染砗磲", "华馆梦醒形骸记"]
}
,
{
"name":"花染之庭",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["绝缘之旗印", "追忆之注连"]
}
,
{
"name":"岩中幽谷",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["辰砂往生录", "来歆余响"]
}
,
{
"name":"华池岩柚",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["染血的骑士道", "昔日宗室之仪"]
}
,
{
"name":"无妄引答密宫",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["炽烈的炎之魔女", "渡过烈火的贤人"]
}
,
{
"name":"孤云凌霄之处",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["悠古的磐岩", "逆飞的流星"]
}
,
{
"name":"山脊守望",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["千岩牢固", "苍白之火"]
}
,
{
"name":"芬德尼尔之顶",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["冰风迷途的勇士", "沉沦之心"]
}
,
{
"name":"铭记之谷",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["翠绿之影", "被怜爱的少女"]
}
,
{
"name":"仲夏庭园",
"type":"圣遗物",
"hasOrder": false,//存在排序(限时/周日)
"list": ["如雷的盛怒", "平息鸣雷的尊者"]
}
{
"name": "无光的深都",
"type": "天赋",
"hasOrder": true,
"list": [
"「月光」的哲学",
"「乐园」的哲学",
"「浪迹」的哲学"
]
},
{
"name": "蕴火的幽墟",
"type": "天赋",
"hasOrder": true,
"list": [
"「角逐」的哲学",
"「焚燔」的哲学",
"「纷争」的哲学"
]
},
{
"name": "苍白的遗荣",
"type": "天赋",
"hasOrder": true,
"list": [
"「公平」的哲学",
"「正义」的哲学",
"「秩序」的哲学"
]
},
{
"name": "昏识塔",
"type": "天赋",
"hasOrder": true,
"list": [
"「诤言」的哲学",
"「巧思」的哲学",
"「笃行」的哲学"
]
},
{
"name": "董色之庭",
"type": "天赋",
"hasOrder": true,
"list": [
"「浮世」的哲学",
"「风雅」的哲学",
"「天光」的哲学"
]
},
{
"name": "太山府",
"type": "天赋",
"hasOrder": true,
"list": [
"「繁荣」的哲学",
"「勤劳」的哲学",
"「黄金」的哲学"
]
},
{
"name": "忘却之峡",
"type": "天赋",
"hasOrder": true,
"list": [
"「自由」的哲学",
"「抗争」的哲学",
"「纷争」的哲学"
]
}
//================================
,
{
"name": "失落的月庭",
"type": "武器",
"hasOrder": true,
"list": [
"奇巧秘器的真愿",
"长夜火的烈辉",
"终北遗嗣的煌熠"
]
},
{
"name": "深古瞭望所",
"type": "武器",
"hasOrder": true,
"list": [
"神合秘烟的启示",
"谚妄圣主的神面",
"贡祭炽心的荣膺"
]
},
{
"name": "深潮的余响",
"type": "武器",
"hasOrder": true,
"list": [
"悠古弦音的回响",
"纯圣露滴的真粹",
"无垢之海的金杯"
]
},
{
"name": "有顶塔",
"type": "武器",
"hasOrder": true,
"list": [
"谧林涓露的金符",
"绿洲花园的真谛",
"烈日威权的旧日"
]
},
{
"name": "砂流之庭",
"type": "武器",
"hasOrder": true,
"list": [
"远海夷地的金枝",
"鸣神御灵的勇武",
"今昔剧画之鬼人"
]
},
{
"name": "震雷连山密宫",
"type": "武器",
"hasOrder": true,
"list": [
"孤云寒林的神体",
"雾海云间的转还",
"漆黑陨铁的一块"
]
},
{
"name": "塞西莉亚苗圃",
"type": "武器",
"hasOrder": true,
"list": [
"高塔孤王的碎梦",
"凛风奔狼的怀乡",
"狮牙斗士的理想"
]
}
//================================
,
{
"name": "月童的库藏",
"type": "圣遗物",
"hasOrder": false,
"list": [
"风起之日",
"晨星与月的晓歌"
]
},
{
"name": "霜凝的机枢",
"type": "圣遗物",
"hasOrder": false,
"list": [
"纺月的夜歌",
"穹境示现之夜"
]
},
{
"name": "荒废砌造坞",
"type": "圣遗物",
"hasOrder": false,
"list": [
"深廊终曲",
"长夜之誓"
]
},
{
"name": "虹灵的净土",
"type": "圣遗物",
"hasOrder": false,
"list": [
"黑曜秘典",
"城勇者绘卷"
]
},
{
"name": "褪色的剧场",
"type": "圣遗物",
"hasOrder": false,
"list": [
"未竟的遐思",
"谐律异想断章"
]
},
{
"name": "临瀑之城",
"type": "圣遗物",
"hasOrder": false,
"list": [
"回声之林夜话",
"昔时之歌"
]
},
{
"name": "罪祸的终末",
"type": "圣遗物",
"hasOrder": false,
"list": [
"黄金剧团",
"逐影猎人"
]
},
{
"name": "熔铁的孤塞",
"type": "圣遗物",
"hasOrder": false,
"list": [
"花海甘露之光",
"水仙之梦"
]
},
{
"name": "赤金的城墟",
"type": "圣遗物",
"hasOrder": false,
"list": [
"乐园遗落之花",
"沙上楼阁史话"
]
},
{
"name": "缘觉塔",
"type": "圣遗物",
"hasOrder": false,
"list": [
"饰金之梦",
"深林的记忆"
]
},
{
"name": "沉眠之庭",
"type": "圣遗物",
"hasOrder": false,
"list": [
"海染砗磲",
"华馆梦醒形骸记"
]
},
{
"name": "花染之庭",
"type": "圣遗物",
"hasOrder": false,
"list": [
"绝缘之旗印",
"追忆之注连"
]
},
{
"name": "岩中幽谷",
"type": "圣遗物",
"hasOrder": false,
"list": [
"辰砂往生录",
"来歆余响"
]
},
{
"name": "华池岩柚",
"type": "圣遗物",
"hasOrder": false,
"list": [
"染血的骑士道",
"昔日宗室之仪"
]
},
{
"name": "无妄引答密宫",
"type": "圣遗物",
"hasOrder": false,
"list": [
"炽烈的炎之魔女",
"渡过烈火的贤人"
]
},
{
"name": "孤云凌霄之处",
"type": "圣遗物",
"hasOrder": false,
"list": [
"悠古的磐岩",
"逆飞的流星"
]
},
{
"name": "山脊守望",
"type": "圣遗物",
"hasOrder": false,
"list": [
"千岩牢固",
"苍白之火"
]
},
{
"name": "芬德尼尔之顶",
"type": "圣遗物",
"hasOrder": false,
"list": [
"冰风迷途的勇士",
"沉沦之心"
]
},
{
"name": "铭记之谷",
"type": "圣遗物",
"hasOrder": false,
"list": [
"翠绿之影",
"被怜爱的少女"
]
},
{
"name": "仲夏庭园",
"type": "圣遗物",
"hasOrder": false,
"list": [
"如雷的盛怒",
"平息鸣雷的尊者"
]
}
]

View File

@@ -1,270 +1,117 @@
async function main()
{
const domainList = [
{
name: "无光的深都",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「月光」的哲学", "「乐园」的哲学", "「浪迹」的哲学"]
},
{
name: "蕴火的幽墟",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「角逐」的哲学", "「焚燔」的哲学", "「纷争」的哲学"]
}
,
{
name: "苍白的遗荣",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「公平」的哲学", "「正义」的哲学", "「秩序」的哲学"]
}
,
{
name: "昏识塔",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「诤言」的哲学", "「巧思」的哲学", "「笃行」的哲学"]
}
,
{
name: "董色之庭",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「浮世」的哲学", "「风雅」的哲学", "「天光」的哲学"]
}
,
{
name: "太山府",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「繁荣」的哲学", "「勤劳」的哲学", "「黄金」的哲学"]
}
,
{
name: "忘却之峡",
type: "天赋",
hasOrder: true,//存在排序(限时/周日)
list: ["「自由」的哲学", "「抗争」的哲学", "「纷争」的哲学"]
}
//================================
,
{
name: "失落的月庭",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["奇巧秘器的真愿", "长夜火的烈辉", "终北遗嗣的煌熠"]
}
,
{
name: "深古瞭望所",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["神合秘烟的启示", "谚妄圣主的神面", "贡祭炽心的荣膺"]
}
,
{
name: "深潮的余响",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["悠古弦音的回响", "纯圣露滴的真粹", "无垢之海的金杯"]
}
,
{
name: "有顶塔",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["谧林涓露的金符", "绿洲花园的真谛", "烈日威权的旧日"]
}
,
{
name: "砂流之庭",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["远海夷地的金枝", "鸣神御灵的勇武", "今昔剧画之鬼人"]
}
,
{
name: "震雷连山密宫",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["孤云寒林的神体", "雾海云间的转还", "漆黑陨铁的一块"]
}
,
{
name: "塞西莉亚苗圃",
type: "武器",
hasOrder: true,//存在排序(限时/周日)
list: ["高塔孤王的碎梦", "凛风奔狼的怀乡", "狮牙斗士的理想"]
}
//================================
,
{
name: "月童的库藏",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["风起之日", "晨星与月的晓歌"]
}
,
{
name: "霜凝的机枢",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["纺月的夜歌", "穹境示现之夜"]
}
,
{
name: "荒废砌造坞",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["深廊终曲", "长夜之誓"]
}
,
{
name: "虹灵的净土",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["黑曜秘典", "城勇者绘卷"]
}
,
{
name: "褪色的剧场",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["未竟的遐思", "谐律异想断章"]
}
,
{
name: "临瀑之城",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["回声之林夜话", "昔时之歌"]
}
,
{
name: "罪祸的终末",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["黄金剧团", "逐影猎人"]
}
,
{
name: "熔铁的孤塞",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["花海甘露之光", "水仙之梦"]
}
,
{
name: "赤金的城墟",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["乐园遗落之花", "沙上楼阁史话"]
}
,
{
name: "赤金的城墟",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["乐园遗落之花", "沙上楼阁史话"]
}
,
{
name: "缘觉塔",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["饰金之梦", "深林的记忆"]
}
,
{
name: "沉眠之庭",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["海染砗磲", "华馆梦醒形骸记"]
}
,
{
name: "花染之庭",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["绝缘之旗印", "追忆之注连"]
}
,
{
name: "岩中幽谷",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["辰砂往生录", "来歆余响"]
}
,
{
name: "华池岩柚",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["染血的骑士道", "昔日宗室之仪"]
}
,
{
name: "无妄引答密宫",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["炽烈的炎之魔女", "渡过烈火的贤人"]
}
,
{
name: "孤云凌霄之处",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["悠古的磐岩", "逆飞的流星"]
}
,
{
name: "山脊守望",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["千岩牢固", "苍白之火"]
}
,
{
name: "芬德尼尔之顶",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["冰风迷途的勇士", "沉沦之心"]
}
,
{
name: "铭记之谷",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["翠绿之影", "被怜爱的少女"]
}
,
{
name: "仲夏庭园",
type: "圣遗物",
hasOrder: false,//存在排序(限时/周日)
list: ["如雷的盛怒", "平息鸣雷的尊者"]
}
]
import {config, initConfig} from './config/config';
const domainMap = new Map();
const domainOrderMap = new Map();
const domainNameMap = new Map();
/**
* 自动执行秘境任务的异步函数
* @param {Object} autoFight - 包含秘境自动配置参数的对象
* @returns {Promise<void>} - 执行完成后返回的Promise
*/
async function autoDomain(autoFight) {
// 创建秘境参数对象初始化值为0
let domainParam = new AutoDomainParam(0);
//秘境名称
domainParam.DomainName = autoFight.domainName || domainParam.DomainName;
//队伍名称
domainParam.PartyName = autoFight.partyName || domainParam.PartyName;
//周日|限时选择的值
domainParam.SundaySelectedValue = autoFight.sundaySelectedValue || domainParam.SundaySelectedValue;
//副本轮数
domainParam.DomainRoundNum = autoFight.DomainRoundNum || domainParam.DomainRoundNum;
await dispatcher.RunAutoDomainTask(domainParam);
}
domainList.forEach(item => {
domainMap.set(item.name, item.list);
if (item?.hasOrder) {
let index = 1
//设置顺序
item.list.forEach(item2 => {
domainOrderMap.set(item2, index)
index++
})
/**
* 自动执行秘境任务列表处理函数
* @param {Array} autoDomainOrderList - 包含秘境自动配置的数组
*/
async function autoDomainList(autoDomainOrderList) {
//计划执行
for (const item of autoDomainOrderList) {
await autoDomain(item.autoFight);
}
}
/**
* 初始化秘境顺序列表
* @param {string} domainConfig - 输入的字符串,包含秘境顺序信息
* @returns {Array} 返回处理后的秘境顺序列表
*/
function initDomainOrderList(domainConfig) {
const autoFightOrderList = [] // 存储秘境顺序列表的数组
// 处理输入字符串:去除首尾空格,将中文逗号替换为英文逗号,然后按逗号分割
domainConfig.trim().replaceAll('', ',').split(",").forEach(
item => {
// 将当前项按"|"分割成数组
let arr = item.split("|")
// 创建秘境信息对象
let autoFight = {
domainName: undefined,//秘境名称
partyName: undefined,//队伍名称
sundaySelectedValue: undefined,//周日|限时选择的值
DomainRoundNum: undefined,//副本轮数
}
let partyName = arr[0];
let domainName = arr[1];
let DomainRoundNum = arr[2];
let sundaySelectedValue = arr[3];
let order = parseInt(arr[4]);
if (!config.domainNames.has(domainName)) {
//秘境名称没有记录 查询是否是物品名称
if (config.itemNames.has(domainName)) {
}else {
throw new Error(`${domainName} 输入错误`);
}
}
// 设置秘境信息的各个属性
autoFight.partyName = partyName // 队伍名称
autoFight.domainName = domainName // 秘境名称
autoFight.DomainRoundNum = DomainRoundNum // 副本轮数
autoFight.sundaySelectedValue = sundaySelectedValue // 周日|限时选择的值
// 创建秘境顺序对象
let autoFightOrder = {
order: order, // 顺序值
autoFight: autoFight // 秘境信息对象
}
// 将秘境顺序对象添加到列表中
autoFightOrderList.push(autoFightOrder)
}
)
// 返回处理后的秘境顺序列表
return autoFightOrderList;
}
})
/**
* 初始化函数
* 该函数用于执行初始化操作使用async/await处理异步操作
*/
async function init() {
// 调用initConfig函数并等待其完成
// 这是一个异步初始化配置的步骤
await initConfig();
}
/**
* 主函数,用于执行秘境自动刷取任务
* @async
*/
async function main() {
// 初始化配置
await init();
// 获取秘境配置
let domainConfig = config.domain.config;
// 检查是否已配置秘境
if (!domainConfig) {
throw new Error("请先配置秘境配置");
}
//"队伍名称|秘境名称/刷取物品名称|刷几轮|限时/周日|执行顺序,..."
const autoFightOrderList = initDomainOrderList(domainConfig);
autoFightOrderList.sort((a, b) => b.order - a.order)
await autoDomainList(autoFightOrderList);
}
await main()