Move v2 modules and components
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
import { EquipmentSkill, RootStigma, StigmataSet, StigmaType } from '../../data/types'
|
||||
import { getRawEquipmentSetDataMap } from '../raw/equipmentSetData'
|
||||
import { getRawEquipmentSkillDataMap } from '../raw/equipmentSkillData'
|
||||
import { getRawStigmataDataMap } from '../raw/stigmataData'
|
||||
import { convertEquipmentSkill, getText } from './utils'
|
||||
|
||||
export function compileStigmataData() {
|
||||
const rawStigmataDataMap = getRawStigmataDataMap()
|
||||
const rawStigmataDataMapEntries = Object.entries(rawStigmataDataMap)
|
||||
const rawEquipmentSkillDataMap = getRawEquipmentSkillDataMap()
|
||||
const rawEquipmentSetDataMap = getRawEquipmentSetDataMap()
|
||||
const stigmaSetIdMainIdListMap = new Map<string, string[]>()
|
||||
|
||||
const stigmataMainIdStigmataMap = rawStigmataDataMapEntries.reduce((map, [id, rawData]) => {
|
||||
// Bronya calorie has a dummy data
|
||||
if (id === '32274') {
|
||||
return map
|
||||
}
|
||||
// Mei Chrismas does not exist in the game
|
||||
if (rawData.StigmataMainID === 120443) {
|
||||
return map
|
||||
}
|
||||
const mainId = rawData.StigmataMainID.toString()
|
||||
let rootStigma = map.get(mainId)
|
||||
if (rootStigma == null) {
|
||||
rootStigma = {
|
||||
id: mainId,
|
||||
stigmata: []
|
||||
}
|
||||
map.set(mainId, rootStigma)
|
||||
|
||||
const setId = rawData.SetID.toString()
|
||||
let mainIdList = stigmaSetIdMainIdListMap.get(setId)
|
||||
if (mainIdList == null) {
|
||||
mainIdList = []
|
||||
stigmaSetIdMainIdListMap.set(setId, mainIdList)
|
||||
}
|
||||
mainIdList.push(mainId)
|
||||
}
|
||||
const [, , icon] = rawData.IconPath.split('/')
|
||||
const [, , smallIcon] = rawData.SmallIcon.split('/')
|
||||
|
||||
const skills = []
|
||||
if (rawData.Prop1ID !== 0) {
|
||||
const skillId = rawData.Prop1ID.toString()
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertEquipmentSkill(rawSkill),
|
||||
param1: rawData.Prop1Param1,
|
||||
param1Add: rawData.Prop1Param1Add,
|
||||
param2: rawData.Prop1Param2,
|
||||
param2Add: rawData.Prop1Param2Add,
|
||||
param3: rawData.Prop1Param3,
|
||||
param3Add: rawData.Prop1Param3Add
|
||||
})
|
||||
}
|
||||
if (rawData.Prop2ID !== 0) {
|
||||
const skillId = rawData.Prop2ID.toString()
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertEquipmentSkill(rawSkill),
|
||||
param1: rawData.Prop2Param1,
|
||||
param1Add: rawData.Prop2Param1Add,
|
||||
param2: rawData.Prop2Param2,
|
||||
param2Add: rawData.Prop2Param2Add,
|
||||
param3: rawData.Prop2Param3,
|
||||
param3Add: rawData.Prop2Param3Add
|
||||
})
|
||||
}
|
||||
if (rawData.Prop3ID !== 0) {
|
||||
const skillId = rawData.Prop3ID.toString()
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertEquipmentSkill(rawSkill),
|
||||
param1: rawData.Prop3Param1,
|
||||
param1Add: rawData.Prop3Param1Add,
|
||||
param2: rawData.Prop3Param2,
|
||||
param2Add: rawData.Prop3Param2Add,
|
||||
param3: rawData.Prop3Param3,
|
||||
param3Add: rawData.Prop3Param3Add
|
||||
})
|
||||
}
|
||||
|
||||
rootStigma.stigmata.push({
|
||||
id,
|
||||
rarity: rawData.Rarity,
|
||||
maxRarity: rawData.MaxRarity,
|
||||
maxLv: rawData.MaxLv,
|
||||
type: convertStigmataType(rawData.BaseType),
|
||||
hpBase: rawData.HPBase,
|
||||
hpAdd: rawData.HPAdd,
|
||||
attackBase: rawData.AttackBase,
|
||||
attackAdd: rawData.AttackAdd,
|
||||
defenceBase: rawData.DefenceBase,
|
||||
defenceAdd: rawData.DefenceAdd,
|
||||
criticalBase: rawData.CriticalBase,
|
||||
criticalAdd: rawData.CriticalAdd,
|
||||
icon,
|
||||
image: rawData.ImagePath,
|
||||
smallIcon,
|
||||
name: getText(rawData.DisplayTitle),
|
||||
description: getText(rawData.DisplayDescription),
|
||||
shortName: getText(rawData.ShortName),
|
||||
skills,
|
||||
rankUpMaterials: rawData.EvoMaterial.map(({ ID, Num }) => {
|
||||
return {
|
||||
id: ID.toString(),
|
||||
amount: Num
|
||||
}
|
||||
}),
|
||||
setId: rawData.SetID.toString(),
|
||||
mainId
|
||||
})
|
||||
|
||||
return map
|
||||
}, new Map<string, RootStigma>())
|
||||
|
||||
const stigmataSetList = Object.entries(rawEquipmentSetDataMap).map<StigmataSet>(([id, rawData]) => {
|
||||
const skills: EquipmentSkill[] = []
|
||||
|
||||
if (rawData.Prop1ID !== 0) {
|
||||
const skillId = rawData.Prop1ID.toString()
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertEquipmentSkill(rawSkill),
|
||||
param1: rawData.Prop1Param1,
|
||||
param1Add: rawData.Prop1Param1Add,
|
||||
param2: rawData.Prop1Param2,
|
||||
param2Add: rawData.Prop1Param2Add,
|
||||
param3: rawData.Prop1Param3,
|
||||
param3Add: rawData.Prop1Param3Add
|
||||
})
|
||||
}
|
||||
if (rawData.Prop2ID !== 0) {
|
||||
const skillId = rawData.Prop2ID.toString()
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertEquipmentSkill(rawSkill),
|
||||
param1: rawData.Prop2Param1,
|
||||
param1Add: rawData.Prop2Param1Add,
|
||||
param2: rawData.Prop2Param2,
|
||||
param2Add: rawData.Prop2Param2Add,
|
||||
param3: rawData.Prop2Param3,
|
||||
param3Add: rawData.Prop2Param3Add
|
||||
})
|
||||
}
|
||||
if (rawData.Prop3ID !== 0) {
|
||||
const skillId = rawData.Prop3ID.toString()
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertEquipmentSkill(rawSkill),
|
||||
param1: rawData.Prop3Param1,
|
||||
param1Add: rawData.Prop3Param1Add,
|
||||
param2: rawData.Prop3Param2,
|
||||
param2Add: rawData.Prop3Param2Add,
|
||||
param3: rawData.Prop3Param3,
|
||||
param3Add: rawData.Prop3Param3Add
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
id,
|
||||
name: getText(rawData.SetName),
|
||||
desc: getText(rawData.SetDesc),
|
||||
skills,
|
||||
stigmaIdList: stigmaSetIdMainIdListMap.get(id) || []
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
stigmataSetList,
|
||||
stigmataMainIdStigmataMap
|
||||
}
|
||||
}
|
||||
|
||||
function convertStigmataType(rawType: number): StigmaType {
|
||||
switch (rawType) {
|
||||
case 1:
|
||||
return 'top'
|
||||
case 2:
|
||||
return 'mid'
|
||||
case 3:
|
||||
return 'bot'
|
||||
default:
|
||||
throw new Error(`Unknown Raw Stigmata Base Type (${rawType})`)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user