import { PropTypeKey , propTypeMap } from "../.." ; type AvatarPromoteExcelConfigData = { "AvatarPromoteId" : number ; "PromoteLevel" : number ; "PromoteAudio" : string ; "ScoinCost" : number ; "CostItems" : [ { "Id" : number ; "Count" : number ; } , { } , { "Id" : number ; "Count" : number ; } , { "Id" : number ; "Count" : number ; } ] ; "UnlockMaxLevel" : number ; "AddProps" : [ { "PropType" : PropTypeKey ; "Value" : number ; } , { "PropType" : PropTypeKey ; "Value" : number ; } , { "PropType" : PropTypeKey ; "Value" : number ; } , { "PropType" : PropTypeKey ; "Value" : number ; } ] ; "RequiredPlayerLevel" : number ; } ; const ascensionSrc = require ( '../../GenshinData/ExcelBinOutput/AvatarPromoteExcelConfigData.json' ) as AvatarPromoteExcelConfigData [ ] ; export type AscensionData = { [ AvatarPromoteId ] : { props : { [ key ] : number ; } ; } [ ] ; } ; const ascensionData = { } as AscensionData ; ascensionSrc . forEach ( asc => { const { AvatarPromoteId , PromoteLevel = 0 , AddProps } = asc ; if ( ! ascensionData [ AvatarPromoteId ] ) ascensionData [ AvatarPromoteId ] = [ ] ; ascensionData [ AvatarPromoteId ] [ PromoteLevel ] = { props : Object . fromEntries ( AddProps . map ( ( { PropType , Value = 0 } ) => [ propTypeMap [ PropType ] , Value ] ) ) } ; } ) ; export default ascensionData ;