Files
abyss-lab/src/scripts/migrations/er-signets.ts
T
2022-07-04 07:28:20 +09:00

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)