Add weapon page

This commit is contained in:
Sakura Knoll
2023-07-10 23:32:11 +09:00 Unverified
parent a1c4d16264
commit 4c875ecb8b
15 changed files with 377 additions and 37 deletions
+7
View File
@@ -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
}
+37 -26
View File
@@ -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) || []
}
})
+1 -1
View File
@@ -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