local propertyTable = { MissileID = 1,HitType = 2,MoveDuration = 3,HorizontalDistance = 4,BasePosType = 5,DragTerminalRadius = 6,DragTerminalOffsetX = 7,DragTerminalOffsetZ = 8, } local mainPropertyTable = { MissileID = 1,PageIndex = 2,LineIndex = 3, } local primaryTable = { "MissileID", } 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/BuffMoveData-page'..pageIndex) if DataSheetUtil then --skip fixedpoint process for data sheet checker DataSheetUtil.ProcessFixedPoint('BuffMoveData', 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({102,1,1},base), setmetatable({585,1,2},base), setmetatable({609,1,3},base), setmetatable({688,1,4},base), setmetatable({699,1,5},base), setmetatable({830,1,6},base), setmetatable({1090,1,7},base), setmetatable({1308,1,8},base), setmetatable({1457,1,9},base), setmetatable({1599,1,10},base), setmetatable({1808,1,11},base), setmetatable({1946,1,12},base), setmetatable({2058,1,13},base), setmetatable({2158,1,14},base), setmetatable({2219,1,15},base), setmetatable({2353,1,16},base), setmetatable({2376,1,17},base), setmetatable({2513,1,18},base), setmetatable({2750,1,19},base), setmetatable({2786,1,20},base), setmetatable({2911,1,21},base), setmetatable({2915,1,22},base), setmetatable({52043001,1,23},base), setmetatable({52063001,1,24},base), setmetatable({62500106,1,25},base), setmetatable({52064601,1,26},base), setmetatable({6100012,1,27},base), setmetatable({130321,1,28},base), setmetatable({103863103,1,29},base), setmetatable({103863203,1,30},base), setmetatable({103863303,1,31},base), setmetatable({103864103,1,32},base), setmetatable({103864203,1,33},base), setmetatable({103864303,1,34},base), setmetatable({103865103,1,35},base), setmetatable({103865203,1,36},base), setmetatable({103865303,1,37},base), setmetatable({104141101,1,38},base), setmetatable({104141102,1,39},base), setmetatable({104141103,1,40},base), setmetatable({104141104,1,41},base), setmetatable({104141105,1,42},base), setmetatable({104141106,1,43},base), setmetatable({104141301,1,44},base), setmetatable({104141302,1,45},base), setmetatable({104141303,1,46},base), setmetatable({104141304,1,47},base), setmetatable({104141305,1,48},base), setmetatable({104141306,1,49},base), setmetatable({104142101,1,50},base), setmetatable({104142102,1,51},base), setmetatable({104142103,1,52},base), setmetatable({104142104,1,53},base), setmetatable({104142105,1,54},base), setmetatable({104142106,1,55},base), setmetatable({104142301,1,56},base), setmetatable({104142302,1,57},base), setmetatable({104142303,1,58},base), setmetatable({104142304,1,59},base), setmetatable({104142305,1,60},base), setmetatable({104142306,1,61},base), setmetatable({104143101,1,62},base), setmetatable({104143102,1,63},base), setmetatable({104143103,1,64},base), setmetatable({104143104,1,65},base), setmetatable({104143105,1,66},base), setmetatable({104143106,1,67},base), setmetatable({104143301,1,68},base), setmetatable({104143302,1,69},base), setmetatable({104143303,1,70},base), setmetatable({104143304,1,71},base), setmetatable({104143305,1,72},base), setmetatable({104143306,1,73},base), setmetatable({104144101,1,74},base), setmetatable({104144102,1,75},base), setmetatable({104144103,1,76},base), setmetatable({104144104,1,77},base), setmetatable({104144105,1,78},base), setmetatable({104144106,1,79},base), setmetatable({104144301,1,80},base), setmetatable({104144302,1,81},base), setmetatable({104144303,1,82},base), setmetatable({104144304,1,83},base), setmetatable({104144305,1,84},base), setmetatable({104144306,1,85},base), setmetatable({104145101,1,86},base), setmetatable({104145102,1,87},base), setmetatable({104145103,1,88},base), setmetatable({104145104,1,89},base), setmetatable({104145105,1,90},base), setmetatable({104145106,1,91},base), setmetatable({104145301,1,92},base), setmetatable({104145302,1,93},base), setmetatable({104145303,1,94},base), setmetatable({104145304,1,95},base), setmetatable({104145305,1,96},base), setmetatable({104145306,1,97},base), setmetatable({104031102,1,98},base), setmetatable({104022102,1,99},base), setmetatable({90000713,1,100},base), setmetatable({90000714,1,101},base), setmetatable({61048302,1,102},base), setmetatable({61052802,1,103},base), setmetatable({5027,1,104},base), setmetatable({52020602,1,105},base), setmetatable({130629,1,106},base), setmetatable({104630202,1,107},base), setmetatable({104630203,1,108},base), setmetatable({104630204,1,109},base), setmetatable({104630205,1,110},base), setmetatable({104370101,1,111},base), } return { dataTable = dataTable, propertyTable = propertyTable, primaryTable = primaryTable, }