Add weapon page
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
export function repeat<N>(count: number, rendererFn: (index: number) => N) {
|
||||
const result: Array<N> = []
|
||||
for (let i = 0; i < count; i++) {
|
||||
result.push(rendererFn(i))
|
||||
}
|
||||
return result
|
||||
}
|
||||
@@ -146,39 +146,44 @@ export interface BattlesuitSubSkill {
|
||||
export interface WeaponCatalogItem {
|
||||
id: string
|
||||
name: string
|
||||
icon: string
|
||||
type: WeaponType
|
||||
maxRarity: 1 | 2 | 3 | 4 | 5
|
||||
maxRarity: 1 | 2 | 3 | 4 | 5 | 6
|
||||
}
|
||||
|
||||
export interface RootWeaponData {
|
||||
id: string
|
||||
weapons: WeaponData[]
|
||||
}
|
||||
|
||||
export interface WeaponData {
|
||||
id: string
|
||||
weapons: {
|
||||
rarity: 1 | 2 | 3 | 4 | 5 | 6
|
||||
maxLv: number
|
||||
type: WeaponType
|
||||
name: string
|
||||
description: string
|
||||
icon: string
|
||||
hpBase: number
|
||||
hpAdd: number
|
||||
spBase: number
|
||||
spAdd: number
|
||||
attackBase: number
|
||||
attackAdd: number
|
||||
defenceBase: number
|
||||
defenceAdd: number
|
||||
criticalBase: number
|
||||
criticalAdd: number
|
||||
resistanceBase: number
|
||||
resistanceAdd: number
|
||||
skills: WeaponSkill[]
|
||||
rankUpMaterials: {
|
||||
id: string
|
||||
rarity: number
|
||||
maxLv: number
|
||||
type: WeaponType
|
||||
title: string
|
||||
description: string
|
||||
icon: string
|
||||
hpBase: number
|
||||
hpAdd: number
|
||||
spBase: number
|
||||
spAdd: number
|
||||
attackBase: number
|
||||
attackAdd: number
|
||||
defenceBase: number
|
||||
defenceAdd: number
|
||||
criticalBase: number
|
||||
criticalAdd: number
|
||||
resistanceBase: number
|
||||
resistanceAdd: number
|
||||
skills: WeaponSkill[]
|
||||
rankUpMaterials: {
|
||||
id: string
|
||||
amount: number
|
||||
}[]
|
||||
}
|
||||
amount: number
|
||||
}[]
|
||||
powerType: number
|
||||
}
|
||||
|
||||
export interface WeaponSkill {
|
||||
id: string
|
||||
name: string
|
||||
@@ -191,4 +196,10 @@ export interface WeaponSkill {
|
||||
type: TagType
|
||||
comment: string
|
||||
}[]
|
||||
param1: number
|
||||
param1Add: number
|
||||
param2: number
|
||||
param2Add: number
|
||||
param3: number
|
||||
param3Add: number
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ describe('compileWeaponData', () => {
|
||||
])
|
||||
})
|
||||
|
||||
expect(targetItem!.weapons[3]).toMatchObject({
|
||||
expect(targetItem?.weapons[3]).toMatchObject({
|
||||
skills: [
|
||||
{
|
||||
id: '1221'
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { RootWeaponData, WeaponData } from '../../data/types'
|
||||
import { getRawEquipmentSkillDataMap, RawEquipmentSkillData } from '../raw/equipmentSkillData'
|
||||
import { getRawWeaponDataMap } from '../raw/weaponData'
|
||||
import { convertTagType, convertWeaponType, getText } from './utils'
|
||||
|
||||
export function compileWeaponData() {
|
||||
export function compileWeaponData(): RootWeaponData[] {
|
||||
const rawWeaponDataMap = getRawWeaponDataMap()
|
||||
const rawEquipmentSkillDataMap = getRawEquipmentSkillDataMap()
|
||||
|
||||
@@ -20,7 +21,13 @@ export function compileWeaponData() {
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertWeaponSkill(rawSkill)
|
||||
...convertWeaponSkill(rawSkill),
|
||||
param1: rawData.Prop1Param1,
|
||||
param1Add: rawData.Prop1Param1Add,
|
||||
param2: rawData.Prop1Param2,
|
||||
param2Add: rawData.Prop1Param2Add,
|
||||
param3: rawData.Prop1Param3,
|
||||
param3Add: rawData.Prop1Param3Add
|
||||
})
|
||||
}
|
||||
if (rawData.Prop2ID !== 0) {
|
||||
@@ -28,7 +35,13 @@ export function compileWeaponData() {
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertWeaponSkill(rawSkill)
|
||||
...convertWeaponSkill(rawSkill),
|
||||
param1: rawData.Prop2Param1,
|
||||
param1Add: rawData.Prop2Param1Add,
|
||||
param2: rawData.Prop2Param2,
|
||||
param2Add: rawData.Prop2Param2Add,
|
||||
param3: rawData.Prop2Param3,
|
||||
param3Add: rawData.Prop2Param3Add
|
||||
})
|
||||
}
|
||||
if (rawData.Prop3ID !== 0) {
|
||||
@@ -36,16 +49,22 @@ export function compileWeaponData() {
|
||||
const rawSkill = rawEquipmentSkillDataMap[skillId]
|
||||
skills.push({
|
||||
id: skillId,
|
||||
...convertWeaponSkill(rawSkill)
|
||||
...convertWeaponSkill(rawSkill),
|
||||
param1: rawData.Prop3Param1,
|
||||
param1Add: rawData.Prop3Param1Add,
|
||||
param2: rawData.Prop3Param2,
|
||||
param2Add: rawData.Prop3Param2Add,
|
||||
param3: rawData.Prop3Param3,
|
||||
param3Add: rawData.Prop3Param3Add
|
||||
})
|
||||
}
|
||||
const icon = rawData.IconPath.split('/').pop()
|
||||
const icon = rawData.IconPath.split('/').pop()!
|
||||
weaponList.push({
|
||||
id,
|
||||
rarity: rawData.Rarity,
|
||||
maxLv: rawData.MaxLv,
|
||||
type: convertWeaponType(rawData.BaseType),
|
||||
title: getText(rawData.DisplayTitle),
|
||||
name: getText(rawData.DisplayTitle),
|
||||
description: getText(rawData.DisplayDescription),
|
||||
icon,
|
||||
hpBase: rawData.HPBase,
|
||||
@@ -71,14 +90,14 @@ export function compileWeaponData() {
|
||||
powerType: rawData.PowerType
|
||||
})
|
||||
return map
|
||||
}, new Map())
|
||||
}, new Map<string, WeaponData[]>())
|
||||
|
||||
const weaponIdList = [...rawWeaponMainIdWeaponDataMap.keys()]
|
||||
|
||||
return weaponIdList.map(weaponId => {
|
||||
return {
|
||||
id: weaponId,
|
||||
weapons: rawWeaponMainIdWeaponDataMap.get(weaponId)
|
||||
weapons: rawWeaponMainIdWeaponDataMap.get(weaponId) || []
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ export type RawWeaponDataMap = {
|
||||
}
|
||||
|
||||
export interface RawWeaponData {
|
||||
Rarity: number
|
||||
Rarity: 1 | 2 | 3 | 4 | 5 | 6
|
||||
MaxRarity: number
|
||||
SubRarity: number
|
||||
SubMaxRarity: number
|
||||
|
||||
Reference in New Issue
Block a user