local propertyTable = { BreakType = 1,Attr_Table = 2,BreakSoulQuality = 3,BreakGeneralItem = 4,UseItemNum = 5, } local mainPropertyTable = { BreakType = 1,PageIndex = 2,LineIndex = 3, } local primaryTable = { "BreakType", } 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/HorseSoulBreakData-page'..pageIndex) if DataSheetUtil then --skip fixedpoint process for data sheet checker DataSheetUtil.ProcessFixedPoint('HorseSoulBreakData', 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({1211,1,1},base), setmetatable({1221,1,2},base), setmetatable({1231,1,3},base), setmetatable({1241,1,4},base), setmetatable({1251,1,5},base), setmetatable({1261,1,6},base), setmetatable({1311,1,7},base), setmetatable({1312,1,8},base), setmetatable({1321,1,9},base), setmetatable({1322,1,10},base), setmetatable({1331,1,11},base), setmetatable({1332,1,12},base), setmetatable({1341,1,13},base), setmetatable({1342,1,14},base), setmetatable({1351,1,15},base), setmetatable({1352,1,16},base), setmetatable({1361,1,17},base), setmetatable({1362,1,18},base), setmetatable({1411,1,19},base), setmetatable({1412,1,20},base), setmetatable({1413,1,21},base), setmetatable({1421,1,22},base), setmetatable({1422,1,23},base), setmetatable({1423,1,24},base), setmetatable({1431,1,25},base), setmetatable({1432,1,26},base), setmetatable({1433,1,27},base), setmetatable({1441,1,28},base), setmetatable({1442,1,29},base), setmetatable({1443,1,30},base), setmetatable({1451,1,31},base), setmetatable({1452,1,32},base), setmetatable({1453,1,33},base), setmetatable({1461,1,34},base), setmetatable({1462,1,35},base), setmetatable({1463,1,36},base), setmetatable({1511,1,37},base), setmetatable({1512,1,38},base), setmetatable({1513,1,39},base), setmetatable({1514,1,40},base), setmetatable({1521,1,41},base), setmetatable({1522,1,42},base), setmetatable({1523,1,43},base), setmetatable({1524,1,44},base), setmetatable({1531,1,45},base), setmetatable({1532,1,46},base), setmetatable({1533,1,47},base), setmetatable({1534,1,48},base), setmetatable({1541,1,49},base), setmetatable({1542,1,50},base), setmetatable({1543,1,51},base), setmetatable({1544,1,52},base), setmetatable({1551,1,53},base), setmetatable({1552,1,54},base), setmetatable({1553,1,55},base), setmetatable({1554,1,56},base), setmetatable({1561,1,57},base), setmetatable({1562,1,58},base), setmetatable({1563,1,59},base), setmetatable({1564,1,60},base), setmetatable({1611,1,61},base), setmetatable({1612,1,62},base), setmetatable({1613,1,63},base), setmetatable({1614,1,64},base), setmetatable({1615,1,65},base), setmetatable({1621,1,66},base), setmetatable({1622,1,67},base), setmetatable({1623,1,68},base), setmetatable({1624,1,69},base), setmetatable({1625,1,70},base), setmetatable({1631,1,71},base), setmetatable({1632,1,72},base), setmetatable({1633,1,73},base), setmetatable({1634,1,74},base), setmetatable({1635,1,75},base), setmetatable({1641,1,76},base), setmetatable({1642,1,77},base), setmetatable({1643,1,78},base), setmetatable({1644,1,79},base), setmetatable({1645,1,80},base), setmetatable({1651,1,81},base), setmetatable({1652,1,82},base), setmetatable({1653,1,83},base), setmetatable({1654,1,84},base), setmetatable({1655,1,85},base), setmetatable({1661,1,86},base), setmetatable({1662,1,87},base), setmetatable({1663,1,88},base), setmetatable({1664,1,89},base), setmetatable({1665,1,90},base), } return { dataTable = dataTable, propertyTable = propertyTable, primaryTable = primaryTable, }