Module:BlazingTwist/DragonStats/Database/BattleFireballNameDB

From DreamWorks School of Dragons Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:BlazingTwist/DragonStats/Database/BattleFireballNameDB/doc

local keyPool = {
	--[[dragons--]] {"Abomibumble", "AbomibumbleBaby", "ArmorWingBaby", "ArmorWing", "ArmorWingFS", "BoneknapperTitan", "BoneknapperBabyNPCBone", "BoneknapperBabyNPCNoBone", "BoneknapperFS", "BoneknapperBaby", "Boneknapper", "BonestormerBaby", "Bonestormer", "BuffalordTitan", "BuffalordFS", "Buffalord", "BuffalordBaby", "CavernCrasher", "CavernCrasherTitan", "CavernCrasherBaby", "ChangewingFS", "Changewing", "ChangewingBaby", "Chimeragon", "ChimeragonTitan", "ChimeragonBaby", "CrimsonGoregutterTitan", "CrimsonGoregutter", "CrimsonGoregutterBaby", "DeadlyNadderFS", "DeadlyNadder", "DeadlyNadderBaby", "DeadlyNadderTitan", "DeathGripperTitan", "DeathGripperBaby", "DeathGripper", "DeathsongTitan", "Deathsong", "DeathsongBaby", "DeathsongFS", "DevilishDervish", "DevilishDervishFS", "DevilishDervishBaby", "DramillionBaby", "Dramillion", "DramillionTitan", "Eruptodon", "EruptodonFS", "EruptodonBaby", "FireTerror", "FireTerrorBaby", "FirewormQueen", "FirewormQueenFS", "FirewormQueenBaby", "FlameWhipperBaby", "FlameWhipper", "FlameWhipperFS", "FlightmareBaby", "FlightmareTitan", "Flightmare", "FlightmareFS", "FlightStinger", "FlightStingerBaby", "FrostmareBaby", "Frostmare", "Galeslash", "GaleslashBaby", "GoldenDragon", "GoldenDragonBaby", "GoregripperBaby", "GoregripperMatriarch", "Wartooth", "Goregripper", "GrappleGrounderBaby", "GrappleGrounderFS", "GrappleGrounder", "Graveknapper", "GraveknapperBaby", "GrimGnasher", "GrimGnasherBaby", "GrimGnasherTitan", "GroncicleBaby", "Groncicle", "GroncicleFS", "GronckleBaby", "MeatlugFishlegsRider", "Gronckle", "GronckleFS", "GronckleTitan", "Hobblegrunt", "HobblegruntFS", "HobblegruntBaby", "HobgobblerBaby", "Hobgobbler", "HobgobblerTitan", "HobgobblerSpecialBaby", "HobgobblerSpecial", "HotburpleBaby", "HotburpleFS", "Hotburple", "HumbangerTitan", "Humbanger", "HumbangerBaby", "HushboggleBaby", "Hushboggle", "HushboggleTitan", "LightFury_GlowTest", "LightFury", "MoldruffleFS", "Moldruffle", "MoldruffleBaby", "MudrakerFS", "MudrakerMuddie", "MudrakerBaby", "Mudraker", "NightFury", "NightFuryFS", "NightlightBlackBlueAdult", "NightlightBlackBlue", "NightlightBlackGreenAdult", "NightlightBlackGreen", "NightlightWhiteAdult", "NightlightWhite", "NightmareBaby", "Nightmare", "NightmareTitan", "HookfangRiderSnotlout", "NightmareFS", "NightTerrorBaby", "NightTerrorFS", "NightTerror", "Prickleboggle", "PrickleboggleBaby", "PrickleboggleFS", "Quaken", "QuakenBaby", "QuakenFS", "RaincutterFS", "Raincutter", "RaincutterBaby", "RazorwhipFS", "RazorwhipTitan", "Razorwhip", "RazorwhipBaby", "Ridgesnipper", "RidgesnipperBaby", "RumbleHornFS", "RumbleHornBaby", "RumbleHorn", "RumbleHornTitan", "SandWraithBaby", "SandWraithTitan", "SandWraithFS", "SandWraith", "ScauldronBaby", "ScauldronTitan", "Scauldron", "ScauldronFS", "ScreamingDeath", "ScreamingDeathBaby", "ScreamingDeathFS", "ScreamingDeathTitan", "ScuttleclawBaby", "ScuttleclawTitan", "FireballThrower", "ScuttleclawFS", "Scuttleclaw", "Seastormer", "SeastormerBaby", "Sentinel", "SentinelBaby", "SentinelTitan", "SentinelElder", "ShivertoothBaby", "Shivertooth", "ShivertoothFS", "ShockjawFS", "ShockjawTitan", "Shockjaw", "ShockjawBaby", "ShovelhelmFS", "ShovelhelmBaby", "Shovelhelm", "SilverPhantomTitan", "SilverPhantomBaby", "SilverPhantomFS", "SilverPhantom", "SingetailBaby", "Singetail", "SingetailFS", "Skrill", "SkrillBaby", "SkrillTitan", "SkrillFS", "Skrillknapper", "SkrillknapperBaby", "SliquifierFS", "SliquifierBaby", "Sliquifier", "Slithersong", "SlithersongBaby", "SlithersongFS", "SlitherwingBaby", "SlitherwingTitan", "Slitherwing", "SmokebreathBaby", "SmokebreathFS", "Smokebreath", "SnafflefangFS", "SnafflefangBaby", "Snafflefang", "Snaptrapper", "SnaptrapperFS", "SnaptrapperBaby", "SnowWraithTitan", "SnowWraith", "SnowWraithBaby", "SnowWraithFS", "Songwing", "SongwingBaby", "SpeedStinger", "SpeedStingerFS", "SpeedStingerTitan", "SpeedStingerBaby", "Stormcutter", "StormcutterTitan", "StormcutterFS", "StormcutterBaby", "SweetDeath", "SweetDeathFS", "SweetDeathBaby", "Sprite", "TerribleTerrorBaby", "TerribleTerror", "TerribleTerrorTitan", "Thunderdrum", "Bam", "Boom", "ThunderdrumBaby", "Bing", "ThunderdrumTitan", "ThunderdrumFS", "Thunderpede", "ThunderpedeFS", "ThunderpedeBaby", "TideGlider", "TideGliderFS", "TideGliderBaby", "TimberjackBaby", "Timberjack", "TimberjackFS", "TimberjackTitan", "TripleStrykeFS", "TripleStrykeBaby", "Sluether", "TripleStryke", "TripleStrykeTitan", "Typhoomerang", "TyphoomerangBaby", "TyphoomerangFS", "WhisperingDeath", "WhisperingDeathBaby", "WhisperingDeathTitan", "WhisperingDeathFS", "Windwalker", "WindwalkerFS", "WindwalkerBaby", "WoollyHowlBaby", "WoollyHowlTitan", "WoollyHowl", "WoollyHowlFS", "ZapplejackBaby", "Zapplejack", "ZipplebackTitan", "ZipplebackBaby", "ZipplebackFS", "Zippleback", "ZipplewraithBaby", "Greenie", "Zipplewraith", "ZipplewraithTitan"},
}
local typePool = {
}
local compressedDataTable = {
	"Abomibumble",
	"Abomibumble",
	"ArmorWing",
	"ArmorWing",
	"ArmorWing",
	"Boneknapper_Titan",
	"Fireball",
	"Fireball",
	"Boneknapper",
	"Boneknapper",
	"Boneknapper",
	"Boneknapper",
	"Bonestormer",
	"Buffalord_Titan",
	"Buffalord",
	"Buffalord",
	"Buffalord",
	"CavernCrasher",
	"CavernCrasher_Titan",
	"CavernCrasher",
	"Changewing",
	"Changewing",
	"Changewing",
	"Chimeragon",
	"Chimeragon_Titan",
	"Chimeragon",
	"CrimsonGoregutter_Titan",
	"CrimsonGoregutter",
	"CrimsonGoregutter",
	"DeadlyNadder",
	"DeadlyNadder",
	"DeadlyNadder",
	"DeadlyNadder_Titan",
	"DeathGripper_Titan",
	"DeathGripper",
	"DeathGripper",
	"Deathsong_Titan",
	"Deathsong",
	"Deathsong",
	"Deathsong",
	"DevilishDervish",
	"DevilishDervish",
	"DevilishDervish",
	"Eruptodon",
	"Dramillion",
	"Dramillion_Titan",
	"Eruptodon",
	"Eruptodon",
	"Eruptodon",
	"FireTerror",
	"NightTerror",
	"FirewormQueen",
	"FirewormQueen",
	"FirewormQueen",
	"FlameWhipper",
	"FlameWhipper",
	"FlameWhipper",
	"Flightmare",
	"Flightmare_Titan",
	"Flightmare",
	"Flightmare",
	"FlightStinger",
	"FlightStinger",
	"Frostmare",
	"Frostmare",
	"Galeslash",
	"Galeslash",
	"GoldenDragon",
	"GoldenDragon",
	"Goregripper",
	"Goregripper",
	"Goregripper",
	"Goregripper",
	"GrappleGrounder",
	"GrappleGrounder",
	"GrappleGrounder",
	"Graveknapper",
	"Graveknapper",
	"GrimGnasher",
	"ElderSentinel",
	"GrimGnasher_Titan",
	"Groncicle",
	"Groncicle",
	"Groncicle",
	"Gronckle",
	"Gronckle",
	"Gronckle",
	"Gronckle",
	"Gronckle_Titan",
	"Hobblegrunt",
	"Hobblegrunt",
	"Hobblegrunt",
	"Hobgobbler",
	"Hobgobbler",
	"Hobgobbler_Titan",
	"Hobgobbler",
	"Hobgobbler",
	"Hotburple",
	"Hotburple",
	"Hotburple",
	"Humbanger_Titan",
	"Humbanger",
	"Humbanger",
	"Hushboggle",
	"Hushboggle",
	"Hushboggle_Titan",
	"LightFury",
	"LightFury",
	"MoldRuffle",
	"MoldRuffle",
	"MoldRuffle",
	"Mudraker",
	"Mudraker",
	"Mudraker",
	"Mudraker",
	"NightFury",
	"NightFury",
	"NightlightBlueAdult",
	"NightlightBlue",
	"NightlightGreenAdult",
	"NightlightGreen",
	"NightlightWhiteAdult",
	"NightlightWhite",
	"Fireball",
	"Nightmare",
	"Nightmare_Titan",
	"Fireball",
	"Nightmare",
	"NightTerror",
	"NightTerror",
	"NightTerror",
	"Prickleboggle",
	"Prickleboggle",
	"Prickleboggle",
	"Quaken",
	"Quaken",
	"Quaken",
	"Raincutter",
	"Raincutter",
	"Raincutter",
	"Razorwhip",
	"Razorwhip_Titan",
	"Razorwhip",
	"Razorwhip",
	"Ridgesnipper",
	"Ridgesnipper",
	"Rumblehorn",
	"Rumblehorn",
	"Rumblehorn",
	"Rumblehorn_Titan",
	"SandWraith",
	"SandWraith_Titan",
	"SandWraith",
	"SandWraith",
	"Scauldron",
	"Scauldron_Titan",
	"Scauldron",
	"Scauldron",
	"ScreamingDeath",
	"ScreamingDeath",
	"ScreamingDeath",
	"ScreamingDeath_Titan",
	"Scuttleclaw",
	"Scuttleclaw_Titan",
	"Fireball",
	"Scuttleclaw",
	"Scuttleclaw",
	"SeaStormer",
	"SeaStormer",
	"Sentinel",
	"Fireball",
	"Sentinel_Titan",
	"ElderSentinel",
	"Shivertooth",
	"Shivertooth",
	"Shivertooth",
	"Shockjaw",
	"Shockjaw_Titan",
	"Shockjaw",
	"Shockjaw",
	"Shovelhelm",
	"Shovelhelm",
	"Shovelhelm",
	"SilverPhantom",
	"SilverPhantom",
	"SilverPhantom",
	"SilverPhantom",
	"Singetail",
	"Singetail",
	"Singetail",
	"Skrill",
	"Skrill",
	"Skrill_Titan",
	"Skrill",
	"Skrillknapper",
	"Skrillknapper",
	"Sliquifier",
	"Sliquifier",
	"Sliquifier",
	"Slithersong",
	"Slithersong",
	"Slithersong",
	"Slitherwing",
	"Slitherwing_Titan",
	"Slitherwing",
	"Smokebreath",
	"Smokebreath",
	"Smokebreath",
	"Snafflefang",
	"Snafflefang",
	"Snafflefang",
	"SnapTrapper",
	"SnapTrapper",
	"SnapTrapper",
	"SnowWraith_Titan",
	"SnowWraith",
	"SnowWraith",
	"SnowWraith",
	"Songwing",
	"Stormcutter",
	"SpeedStinger",
	"SpeedStinger",
	"SpeedStinger_Titan",
	"SpeedStinger",
	"Stormcutter",
	"Stormcutter_Titan",
	"Stormcutter",
	"Stormcutter",
	"SweetDeath",
	"SweetDeath",
	"SweetDeath",
	"TerribleTerror",
	"TerribleTerror",
	"TerribleTerror",
	"TerribleTerror_Titan",
	"Thunderdrum",
	"Fireball",
	"Fireball",
	"Thunderdrum",
	"Fireball",
	"Thunderdrum_Titan",
	"Thunderdrum",
	"Thunderpede",
	"Thunderpede",
	"Thunderpede",
	"TideGlider",
	"TideGlider",
	"TideGlider",
	"Timberjack",
	"Timberjack",
	"Timberjack",
	"Timberjack_Titan",
	"TripleStryke",
	"TripleStryke",
	"TripleStryke",
	"TripleStryke",
	"TripleStryke_Titan",
	"Typhoomerang",
	"Typhoomerang",
	"Typhoomerang",
	"WhisperingDeath",
	"WhisperingDeath",
	"WhisperingDeath_Titan",
	"WhisperingDeath",
	"Windwalker",
	"Windwalker",
	"Windwalker",
	"WoolyHowl",
	"WoolyHowl_Titan",
	"WoolyHowl",
	"WoolyHowl",
	"Zapplejack",
	"Zapplejack",
	"Zippleback_Titan",
	"Zippleback",
	"Zippleback",
	"Zippleback",
	"Zipplewraith",
	"Zipplewraith",
	"Zipplewraith",
	"Zipplewraith_Titan",
}
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, {ki = 1}, compressedDataTable)
return resultTable