local propertyTable = { ID = 1,UiType = 2,BreakPriority = 3,Priority = 4,Describe = 5,TurnType = 6,TurnDescribe = 7,TurnUI = 8,FunctionID = 9,Place = 10, } local mainPropertyTable = { ID = 1,PageIndex = 2,LineIndex = 3, } local primaryTable = { "ID", } 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/Broadcast-page'..pageIndex) if DataSheetUtil then --skip fixedpoint process for data sheet checker DataSheetUtil.ProcessFixedPoint('Broadcast', 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({1001,1,1},base), setmetatable({1002,1,2},base), setmetatable({1003,1,3},base), setmetatable({1004,1,4},base), setmetatable({1005,1,5},base), setmetatable({1006,1,6},base), setmetatable({1007,1,7},base), setmetatable({1101,1,8},base), setmetatable({1102,1,9},base), setmetatable({1103,1,10},base), setmetatable({2001,1,11},base), setmetatable({2101,1,12},base), setmetatable({2201,1,13},base), setmetatable({2202,1,14},base), setmetatable({2203,1,15},base), setmetatable({2301,1,16},base), setmetatable({2401,1,17},base), setmetatable({2402,1,18},base), setmetatable({2403,1,19},base), setmetatable({102401,1,20},base), setmetatable({102402,1,21},base), setmetatable({102403,1,22},base), setmetatable({2501,1,23},base), setmetatable({2601,1,24},base), setmetatable({2602,1,25},base), setmetatable({2701,1,26},base), setmetatable({2801,1,27},base), setmetatable({2802,1,28},base), setmetatable({2804,1,29},base), setmetatable({2805,1,30},base), setmetatable({2803,1,31},base), setmetatable({2901,1,32},base), setmetatable({3000,1,33},base), setmetatable({3001,1,34},base), setmetatable({3002,1,35},base), setmetatable({3003,1,36},base), setmetatable({3011,1,37},base), setmetatable({3012,1,38},base), setmetatable({3013,1,39},base), setmetatable({3015,1,40},base), setmetatable({3016,1,41},base), setmetatable({3020,1,42},base), setmetatable({3021,1,43},base), setmetatable({3101,1,44},base), setmetatable({3201,1,45},base), setmetatable({3301,1,46},base), setmetatable({3302,1,47},base), setmetatable({4001,1,48},base), setmetatable({5001,1,49},base), setmetatable({6001,1,50},base), setmetatable({6002,1,51},base), setmetatable({6003,1,52},base), setmetatable({6004,1,53},base), setmetatable({6005,1,54},base), setmetatable({6006,1,55},base), setmetatable({6007,1,56},base), setmetatable({6008,1,57},base), setmetatable({2511,1,58},base), setmetatable({2512,1,59},base), setmetatable({2513,1,60},base), setmetatable({2514,1,61},base), setmetatable({3004,1,62},base), setmetatable({3005,1,63},base), setmetatable({3006,1,64},base), setmetatable({3007,1,65},base), setmetatable({3014,1,66},base), setmetatable({100000,1,67},base), setmetatable({100001,1,68},base), setmetatable({100002,1,69},base), setmetatable({100003,1,70},base), setmetatable({1201,1,71},base), setmetatable({3017,1,72},base), setmetatable({3018,1,73},base), setmetatable({100004,1,74},base), setmetatable({8001,1,75},base), setmetatable({8002,1,76},base), setmetatable({8003,1,77},base), setmetatable({8004,1,78},base), setmetatable({8005,1,79},base), setmetatable({8006,1,80},base), setmetatable({8007,1,81},base), setmetatable({2175,1,82},base), setmetatable({2176,1,83},base), setmetatable({2177,1,84},base), setmetatable({2178,1,85},base), setmetatable({2179,1,86},base), setmetatable({2180,1,87},base), setmetatable({2181,1,88},base), setmetatable({2182,1,89},base), setmetatable({2183,1,90},base), setmetatable({2184,1,91},base), setmetatable({2185,1,92},base), setmetatable({2186,1,93},base), setmetatable({2187,1,94},base), setmetatable({101001,1,95},base), setmetatable({101002,1,96},base), setmetatable({101003,1,97},base), setmetatable({101004,1,98},base), setmetatable({101005,1,99},base), setmetatable({101006,1,100},base), setmetatable({101007,1,101},base), setmetatable({101008,1,102},base), setmetatable({101009,1,103},base), setmetatable({101010,1,104},base), setmetatable({101011,1,105},base), setmetatable({101012,1,106},base), setmetatable({101013,1,107},base), setmetatable({101014,1,108},base), setmetatable({101015,1,109},base), setmetatable({8021,1,110},base), setmetatable({8022,1,111},base), setmetatable({8023,1,112},base), setmetatable({102001,1,113},base), setmetatable({1700,1,114},base), setmetatable({3065,1,115},base), setmetatable({3066,1,116},base), setmetatable({3067,1,117},base), setmetatable({3068,1,118},base), setmetatable({3069,1,119},base), setmetatable({3070,1,120},base), setmetatable({3071,1,121},base), setmetatable({3072,1,122},base), setmetatable({3073,1,123},base), setmetatable({3074,1,124},base), setmetatable({3075,1,125},base), setmetatable({3076,1,126},base), setmetatable({3077,1,127},base), setmetatable({3078,1,128},base), setmetatable({3079,1,129},base), setmetatable({3401,1,130},base), setmetatable({3468,1,131},base), setmetatable({3469,1,132},base), setmetatable({3470,1,133},base), setmetatable({3471,1,134},base), setmetatable({3472,1,135},base), setmetatable({3473,1,136},base), setmetatable({3474,1,137},base), setmetatable({3475,1,138},base), setmetatable({3476,1,139},base), setmetatable({1800,1,140},base), setmetatable({1801,1,141},base), setmetatable({1802,1,142},base), setmetatable({1803,1,143},base), setmetatable({1600,1,144},base), setmetatable({1601,1,145},base), setmetatable({102101,1,146},base), setmetatable({102200,1,147},base), setmetatable({102201,1,148},base), setmetatable({4065,1,149},base), setmetatable({4066,1,150},base), setmetatable({4067,1,151},base), setmetatable({4068,1,152},base), setmetatable({4069,1,153},base), setmetatable({4070,1,154},base), setmetatable({4071,1,155},base), setmetatable({4072,1,156},base), setmetatable({4073,1,157},base), setmetatable({4074,1,158},base), setmetatable({4075,1,159},base), setmetatable({4076,1,160},base), setmetatable({4077,1,161},base), setmetatable({4078,1,162},base), setmetatable({4079,1,163},base), setmetatable({2850,1,164},base), setmetatable({2851,1,165},base), setmetatable({2860,1,166},base), setmetatable({2861,1,167},base), setmetatable({1735,1,168},base), setmetatable({1736,1,169},base), setmetatable({1737,1,170},base), setmetatable({1738,1,171},base), setmetatable({1739,1,172},base), setmetatable({1740,1,173},base), setmetatable({1741,1,174},base), setmetatable({1742,1,175},base), setmetatable({1743,1,176},base), setmetatable({2730,1,177},base), setmetatable({2731,1,178},base), setmetatable({44265,1,179},base), setmetatable({44266,1,180},base), setmetatable({44267,1,181},base), setmetatable({44268,1,182},base), setmetatable({44358,1,183},base), setmetatable({44359,1,184},base), setmetatable({44360,1,185},base), } return { dataTable = dataTable, propertyTable = propertyTable, primaryTable = primaryTable, }