142 lines
3.7 KiB
TypeScript
142 lines
3.7 KiB
TypeScript
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()
|
|
}
|