85 lines
2.0 KiB
TypeScript
85 lines
2.0 KiB
TypeScript
import { runScript } from '../lib/utils'
|
|
import fs from 'fs'
|
|
import path from 'path'
|
|
import yaml from 'yaml'
|
|
import sortKeys from 'sort-keys'
|
|
import {
|
|
signetGroupMap,
|
|
krSignetGroupMap,
|
|
} from '../../server/data/honkai3rd/elysianRealm'
|
|
|
|
const order = [
|
|
'id',
|
|
'name',
|
|
'krName',
|
|
'altName',
|
|
'krAltName',
|
|
'description',
|
|
'krDescription',
|
|
'sets',
|
|
'signets',
|
|
'upgrades',
|
|
]
|
|
|
|
async function migrateErSupports() {
|
|
const newDataDir = path.join(__dirname, '../../../data/honkai3rd')
|
|
|
|
const groupMap = Object.entries(signetGroupMap).reduce(
|
|
(map, [key, group]) => {
|
|
const sets = group.sets.map((set, index) => {
|
|
const signets = set.signets.map((signet, signetIndex) => {
|
|
const upgrades = signet.upgrades.map((upgrade, upgradeIndex) => {
|
|
return {
|
|
...upgrade,
|
|
krName:
|
|
krSignetGroupMap[key].sets[index].signets[signetIndex].upgrades[
|
|
upgradeIndex
|
|
].name,
|
|
krDescription:
|
|
krSignetGroupMap[key].sets[index].signets[signetIndex].upgrades[
|
|
upgradeIndex
|
|
].description,
|
|
}
|
|
})
|
|
|
|
return {
|
|
...signet,
|
|
krName: krSignetGroupMap[key].sets[index].signets[signetIndex].name,
|
|
krDescription:
|
|
krSignetGroupMap[key].sets[index].signets[signetIndex]
|
|
.description,
|
|
upgrades,
|
|
}
|
|
})
|
|
|
|
return {
|
|
...set,
|
|
krName: krSignetGroupMap[key].sets[index].name,
|
|
signets,
|
|
}
|
|
})
|
|
map[key] = {
|
|
...group,
|
|
krName: krSignetGroupMap[key].name,
|
|
krAltName: krSignetGroupMap[key].altName,
|
|
sets,
|
|
}
|
|
return map
|
|
},
|
|
{} as any
|
|
)
|
|
|
|
const sortedData = sortKeys(groupMap, {
|
|
deep: true,
|
|
compare: (a, b) => {
|
|
return order.indexOf(a) - order.indexOf(b)
|
|
},
|
|
})
|
|
fs.writeFileSync(
|
|
path.join(newDataDir, 'er-signets.yaml'),
|
|
yaml.stringify(sortedData)
|
|
)
|
|
}
|
|
|
|
runScript(migrateErSupports)
|