Module:BlazingTwist/DragonStats/Database/DragonsDB
Jump to navigation
Jump to search
Documentation for this module may be created at Module:BlazingTwist/DragonStats/Database/DragonsDB/doc
local keyPool = {
--[[dragons--]] {"TerribleTerror", "Gronckle", "Zippleback", "NightFury", "DeadlyNadder", "Nightmare", "Timberjack", "Thunderdrum", "WhisperingDeath", "Skrill", "Scauldron", "RumbleHorn", "Flightmare", "Hobblegrunt", "Smokebreath", "Typhoomerang", "Raincutter", "Boneknapper", "Hotburple", "Stormcutter", "Snafflefang", "Changewing", "FirewormQueen", "ScreamingDeath", "TideGlider", "Scuttleclaw", "SandWraith", "SweetDeath", "WoollyHowl", "Shivertooth", "Groncicle", "SpeedStinger", "Shockjaw", "Moldruffle", "Mudraker", "Deathsong", "Razorwhip", "GrappleGrounder", "SnowWraith", "Prickleboggle", "Sliquifier", "DevilishDervish", "Snaptrapper", "Quaken", "Thunderpede", "NightTerror", "ArmorWing", "Slithersong", "Shovelhelm", "Windwalker", "Eruptodon", "Singetail", "SilverPhantom", "Buffalord", "FlameWhipper", "TripleStryke", "Sentinel", "SentinelElder", "GrimGnasher", "Dramillion", "FireTerror", "DeathGripper", "LightFury", "CrimsonGoregutter", "Hobgobbler", "HobgobblerSpecial", "Skrillknapper", "FlightStinger", "NightlightBlackBlue", "NightlightBlackGreen", "NightlightWhite", "Zapplejack", "Galeslash", "Ridgesnipper", "Abomibumble", "Bonestormer", "Chimeragon", "Slitherwing", "Seastormer", "CavernCrasher", "Humbanger", "GoldenDragon", "Hushboggle", "Zipplewraith", "Goregripper", "Graveknapper", "Frostmare", "Sandbuster", "Songwing"},
--[[metaInfo--]] {"hasTitan"},
}
local typePool = {
--[[dragonsMap--]] { key = 1, types = { {ki = 2} } },
}
local compressedDataTable = {
{true},
{true},
{true},
{false},
{true},
{true},
{true},
{true},
{true},
{true},
{true},
{true},
{true},
{false},
{false},
{false},
{false},
{true},
{false},
{true},
{false},
{false},
{false},
{true},
{false},
{true},
{true},
{false},
{true},
{false},
{false},
{true},
{true},
{false},
{false},
{true},
{true},
{false},
{true},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{true},
{true},
{false},
{true},
{true},
{false},
{true},
{true},
{false},
{true},
{false},
{true},
{true},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{false},
{true},
{true},
{false},
{true},
{true},
{false},
{true},
{true},
{false},
{false},
{false},
{false},
{false},
}
local function resolveTypeMapping(targetTable, dataType, dataTable)
if dataTable == nil then
return
end
if dataType.ki ~= nil then
local keyOrder = keyPool[dataType.ki]
for i,key in ipairs(keyOrder) do
targetTable[key] = dataTable[i]
end
else
local pooledType = typePool[dataType.ti]
local keyOrder = keyPool[pooledType.key]
local subTypes = pooledType.types
local numTypes = #subTypes
local currentSubType = 1
for i,key in ipairs(keyOrder) do
local value = {}
resolveTypeMapping(value, subTypes[currentSubType], dataTable[i])
targetTable[key] = value
currentSubType = (currentSubType % numTypes) + 1
end
end
end
local resultTable = {}
resolveTypeMapping(resultTable, {ti = 1}, compressedDataTable)
return resultTable