Refactor weapon data
This commit is contained in:
@@ -1,141 +0,0 @@
|
||||
import { BattlesuitSkillGroup } from '../lib/honkai3rd/battlesuits'
|
||||
import { existsSync, writeFileSync } from '../server/data/fs'
|
||||
import { listBattlesuits } from '../server/data/honkai3rd/battlesuits'
|
||||
import { listElfs } from '../server/data/honkai3rd/elfs'
|
||||
import {
|
||||
listStigmata,
|
||||
listStigmataSet,
|
||||
} from '../server/data/honkai3rd/stigmata'
|
||||
import { listWeapons } from '../server/data/honkai3rd/weapons'
|
||||
|
||||
const locale = 'ko-KR'
|
||||
|
||||
export function generateStigmataData() {
|
||||
const stigmataList = listStigmata()
|
||||
|
||||
stigmataList.forEach((stigmata) => {
|
||||
const krStigmataDataPath = `honkai3rd/${locale}/stigmata/${stigmata.id}.md`
|
||||
if (existsSync(krStigmataDataPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
writeFileSync(
|
||||
krStigmataDataPath,
|
||||
[
|
||||
`# ${stigmata.name}`,
|
||||
`## ${stigmata.skill.name}`,
|
||||
`${stigmata.skill.description}`,
|
||||
].join('\n\n')
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
export function generateStigmataSetData() {
|
||||
const stigmataSetList = listStigmataSet()
|
||||
|
||||
stigmataSetList.forEach((stigmataSet) => {
|
||||
const krStigmataSetDataPath = `honkai3rd/${locale}/stigmata-sets/${stigmataSet.id}.md`
|
||||
if (existsSync(krStigmataSetDataPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
writeFileSync(
|
||||
krStigmataSetDataPath,
|
||||
[
|
||||
`# ${stigmataSet.name}`,
|
||||
stigmataSet.altName,
|
||||
`## ${stigmataSet.twoSetSkill.name}`,
|
||||
`${stigmataSet.twoSetSkill.description}`,
|
||||
`## ${stigmataSet.threeSetSkill.name}`,
|
||||
`${stigmataSet.threeSetSkill.description}`,
|
||||
].join('\n\n')
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
export function generateWeaponData() {
|
||||
const weaponList = listWeapons()
|
||||
|
||||
weaponList.forEach((weapon) => {
|
||||
const krWeaponDataPath = `honkai3rd/${locale}/weapons/${weapon.id}.md`
|
||||
if (existsSync(krWeaponDataPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
writeFileSync(
|
||||
krWeaponDataPath,
|
||||
[
|
||||
`# ${weapon.name}`,
|
||||
...weapon.skills.map((skill) => {
|
||||
return [`## ${skill.name}`, skill.description].join('\n\n')
|
||||
}),
|
||||
].join('\n\n')
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
export function generateElfData() {
|
||||
const elfList = listElfs()
|
||||
|
||||
elfList.forEach((elf) => {
|
||||
const krElfDataPath = `honkai3rd/${locale}/elfs/${elf.id}.md`
|
||||
if (existsSync(krElfDataPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
writeFileSync(
|
||||
krElfDataPath,
|
||||
[
|
||||
`# ${elf.name}`,
|
||||
...elf.skillRows.map((skillRow) => {
|
||||
return skillRow
|
||||
.map((skill, index) => {
|
||||
return [
|
||||
`${index === 0 ? '##' : '###'} ${skill.name}`,
|
||||
skill.description,
|
||||
].join('\n\n')
|
||||
})
|
||||
.join('\n\n')
|
||||
}),
|
||||
].join('\n\n')
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
export function generateBattlesuitData() {
|
||||
const battlesuitList = listBattlesuits()
|
||||
|
||||
battlesuitList.forEach((battlesuit) => {
|
||||
const krBattlesuitDataPath = `honkai3rd/${locale}/battlesuits/${battlesuit.id}.md`
|
||||
if (existsSync(krBattlesuitDataPath)) {
|
||||
return
|
||||
}
|
||||
|
||||
writeFileSync(
|
||||
krBattlesuitDataPath,
|
||||
[
|
||||
`# ${battlesuit.name}`,
|
||||
stringifySkillGroup(battlesuit.leader),
|
||||
stringifySkillGroup(battlesuit.passive),
|
||||
stringifySkillGroup(battlesuit.evasion),
|
||||
stringifySkillGroup(battlesuit.special),
|
||||
stringifySkillGroup(battlesuit.ultimate),
|
||||
stringifySkillGroup(battlesuit.basic),
|
||||
battlesuit.sp != null ? stringifySkillGroup(battlesuit.sp) : '',
|
||||
]
|
||||
.join('\n\n')
|
||||
.trim()
|
||||
)
|
||||
})
|
||||
}
|
||||
function stringifySkillGroup(skillGroup: BattlesuitSkillGroup) {
|
||||
return [
|
||||
`## ${skillGroup.core.name}`,
|
||||
skillGroup.core.description,
|
||||
...skillGroup.subskills.map((subskill) => {
|
||||
return [`### ${subskill.name}`, subskill.description].join('\n\n')
|
||||
}),
|
||||
]
|
||||
.join('\n\n')
|
||||
.trim()
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
import { runScript } from '../lib/utils'
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import yaml from 'yaml'
|
||||
import sortKeys from 'sort-keys'
|
||||
import { listWeapons } from '../../server/data/honkai3rd/weapons'
|
||||
|
||||
const order = [
|
||||
'id',
|
||||
'version',
|
||||
'name',
|
||||
'krName',
|
||||
'category',
|
||||
'rarity',
|
||||
'atk',
|
||||
'crt',
|
||||
'battlesuits',
|
||||
'originalWeapons',
|
||||
'sources',
|
||||
'skills',
|
||||
'description',
|
||||
'krDescription',
|
||||
]
|
||||
|
||||
async function migrateWeapons() {
|
||||
const weapons = listWeapons()
|
||||
const newDataDir = path.join(__dirname, '../../../data/honkai3rd')
|
||||
|
||||
const sortedData = sortKeys(weapons, {
|
||||
deep: true,
|
||||
compare: (a, b) => {
|
||||
return order.indexOf(a) - order.indexOf(b)
|
||||
},
|
||||
})
|
||||
fs.writeFileSync(
|
||||
path.join(newDataDir, 'weapons.yaml'),
|
||||
yaml.stringify(sortedData)
|
||||
)
|
||||
}
|
||||
|
||||
runScript(migrateWeapons)
|
||||
Reference in New Issue
Block a user