local propertyTable = { HeroType = 1,HeroLevelType = 2,BossDiscoveryPro = 3,FirstSafeNum = 4,NormalSafeNum = 5,BossSafeStar = 6,BossSafeStarNum = 7,LevelEnergyType = 8,BossEnergyType = 9,BossCurrency = 10,BossIntegration = 11,DisplayTime = 12,HelpCD = 13,ActivityLevelInitialEnergy = 14,ActivityLevelMaxEnergy = 15,SynergyBossInitialEnergy = 16,SynergyBossMaxEnergy = 17,SynergyBossHeroID = 18,SynergyBossHeroNum = 19,SynergyBossScreenStar = 20,LevelIcon = 21,LevelName = 22,BossIcon = 23,BossName = 24,TaskIcon = 25,TaskName = 26,StoreIcon = 27,StoreName = 28,MainPrefabMode = 29,CameraRenderId = 30,HeroSize = 31,HeroOffsetX = 32,HeroOffsetY = 33,HeroBackground = 34,MainPrefabHero = 35,ExpItemID = 36,TownIcon = 37,TownName = 38,ModePrefab = 39,IsDisplayRecord = 40,MainPrefab = 41,TransformItemID = 42,TransformProportion = 43,SynergyBossGSMode = 44,TryLevelID = 45,BossBuyLimitNum = 46,BossBuyItem = 47,BossBuyItemNum = 48,UIClickSound = 49,DailyRankEndTime = 50,TotalRankPreTime = 51,DrawCardPoolID = 52,AwakenDrawCardPoolID = 53, } local mainPropertyTable = { HeroType = 1,PageIndex = 2,LineIndex = 3, } local primaryTable = { "HeroType", } local DataPageEntry = {} local rawget = rawget local base = { __index = function(t, k) local propertyIndex = propertyTable[k] if propertyIndex then local mainPropertyIndex = mainPropertyTable[k] if mainPropertyIndex then return t[mainPropertyIndex] end local pageIndex = t[2] local pageData = DataPageEntry[pageIndex] if pageData == nil then pageData = require('Data/GoldHeroActivityModeData-page'..pageIndex) if DataSheetUtil then --skip fixedpoint process for data sheet checker DataSheetUtil.ProcessFixedPoint('GoldHeroActivityModeData', pageData) end DataPageEntry[pageIndex] = pageData end local lineIndex = t[3] local resultData = pageData[lineIndex] return resultData[propertyIndex] end end, __newindex = function() error('Attempt to modify read-only table') end } local dataTable = { setmetatable({1,1,1},base), setmetatable({2,1,2},base), setmetatable({3,1,3},base), setmetatable({4,1,4},base), setmetatable({6,1,5},base), setmetatable({7,1,6},base), setmetatable({8,1,7},base), setmetatable({9,1,8},base), setmetatable({10,1,9},base), setmetatable({11,1,10},base), setmetatable({12,1,11},base), setmetatable({13,1,12},base), } return { dataTable = dataTable, propertyTable = propertyTable, primaryTable = primaryTable, }