Module:Npcinfo/idSets/data

local Sets = {}

local function BoolSetFactory(IDs) local set = { ['default'] = false} for k, v in pairs(IDs) do		set[v] = true end return set end

local function SetFactory(default, IDs) local set = { ['default'] = default} local key = nil for _, v in pairs(IDs) do		if key then set[key] = v			key = nil else key = v		end end return set end

-- bool sets, v1.4.2.3 Sets.DontDoHardmodeScaling = BoolSetFactory{ 5, 13, 14, 15, 267, 113, 114, 115, 116, 117, 118, 119, 658, 659, 660, 400 } Sets.IsTownPet = BoolSetFactory{ 637, 638, 656 } Sets.CantTakeLunchMoney = BoolSetFactory{ 394, 393, 392, 492, 491, 662, 384, 478, 535, 658, 659, 660, 128, 131, 129, 130, 139, 267, 247, 248, 246, 249, 245, 409, 410, 397, 396, 401, 400, 440, 68 } Sets.IsDragonfly = BoolSetFactory{ 595, 596, 597, 598, 599, 600, 601 } Sets.BelongsToInvasionOldOnesArmy = BoolSetFactory{ 552, 553, 554, 561, 562, 563, 555, 556, 557, 558, 559, 560, 576, 577, 568, 569, 566, 567, 570, 571, 572, 573, 548, 549, 564, 565, 574, 575, 551, 578 } Sets.TeleportationImmune = BoolSetFactory{ 552, 553, 554, 561, 562, 563, 555, 556, 557, 558, 559, 560, 576, 577, 568, 569, 566, 567, 570, 571, 572, 573, 548, 549, 564, 565, 574, 575, 551, 578 } Sets.UsesNewTargetting = BoolSetFactory{ 547, 552, 553, 554, 561, 562, 563, 555, 556, 557, 558, 559, 560, 576, 577, 568, 569, 566, 567, 570, 571, 572, 573, 564, 565, 574, 575, 551, 578, 210, 211, 620 } Sets.TakesDamageFromHostilesWithoutBeingFriendly = BoolSetFactory{ 46, 55, 74, 148, 149, 230, 297, 298, 299, 303, 355, 356, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 377, 357, 374, 442, 443, 444, 445, 446, 448, 538, 539, 337, 540, 484, 485, 486, 487, 592, 593, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 611, 612, 613, 614, 615, 616, 617, 625, 626, 627, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 583, 584, 585 } Sets.HurtingBees = BoolSetFactory{ 210, 211, 222 } Sets.FighterUsesDD2PortalAppearEffect = BoolSetFactory{ 552, 553, 554, 561, 562, 563, 555, 556, 557, 576, 577, 568, 569, 570, 571, 572, 573, 564, 565 } Sets.NoEarlymodeLootWhenSpawnedFromStatue = BoolSetFactory{ 480, 82, 86, 170, 180, 171 } Sets.NeedsExpertScaling = BoolSetFactory{ 25, 30, 665, 33, 112, 666, 261, 265, 371, 516, 519, 522, 397, 396, 398, 491 } Sets.ProjectileNPC = BoolSetFactory{ 25, 30, 665, 33, 112, 666, 261, 265, 371, 516, 519, 522 } Sets.SavesAndLoads = BoolSetFactory{ 422, 507, 517, 493 } Sets.MPAllowedEnemies = BoolSetFactory{ 4, 13, 50, 126, 125, 134, 127, 128, 131, 129, 130, 222, 245, 266, 370, 657 } Sets.TownCritter = BoolSetFactory{ 46, 148, 149, 230, 299, 300, 303, 337, 361, 362, 364, 366, 367, 443, 445, 447, 538, 539, 540, 583, 584, 585, 592, 593, 602, 607, 608, 610, 616, 617, 625, 626, 627, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652 } Sets.CountsAsCritter = BoolSetFactory{ 46, 303, 337, 540, 443, 74, 297, 298, 442, 611, 377, 446, 612, 613, 356, 444, 595, 596, 597, 598, 599, 600, 601, 604, 605, 357, 448, 374, 484, 355, 358, 606, 359, 360, 485, 486, 487, 148, 149, 55, 230, 592, 593, 299, 538, 539, 300, 447, 361, 445, 362, 363, 364, 365, 367, 366, 583, 584, 585, 602, 603, 607, 608, 609, 610, 616, 617, 625, 626, 627, 615, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 661 } Sets.HasNoPartyText = BoolSetFactory{ 441, 453 } Sets.DemonEyes = BoolSetFactory{ 2, 190, 192, 193, 191, 194, 317, 318 } Sets.Zombies = BoolSetFactory{ 3, 132, 186, 187, 188, 189, 200, 223, 161, 254, 255, 52, 53, 536, 319, 320, 321, 332, 436, 431, 432, 433, 434, 435, 331, 430, 590 } Sets.Skeletons = BoolSetFactory{ 77, 449, 450, 451, 452, 481, 201, 202, 203, 21, 324, 110, 323, 293, 291, 322, 292, 197, 167, 44, 635 } Sets.PositiveNPCTypesExcludedFromDeathTally = BoolSetFactory{ 121, 384, 406, 478, 479, 410, 472, 378 } Sets.DangerThatPreventsOtherDangers = BoolSetFactory{ 517, 422, 507, 493, 399 } Sets.MustAlwaysDraw = BoolSetFactory{ 113, 114, 115, 116, 126, 125 } Sets.ShouldNotBeCountedAsBoss = BoolSetFactory{ 517, 422, 507, 493, 13 } Sets.GoldCrittersCollection = BoolSetFactory{                   443, 442,                   592,                    444,                    601,                    445,                    446,                    605,                    447,                    627,                    613,                    448,                    539} Sets.Unused = BoolSetFactory{76,146,408,547}

Sets.NoMultiplayerSmoothingByType = BoolSetFactory{113, 114, 50, 657, 120, 245, 247, 248, 246, 370, 222}; Sets.NoMultiplayerSmoothingByAI = BoolSetFactory{6, 8, 37};

Sets.NormalGoldCritterBestiaryPriority = BoolSetFactory{ 46,				540,				614,				303,				337,				443,				74,				297,				298,				442,				55,				230,				592,				593,				299,				538,				539,				300,				447,				361,				445,				377,				446,				356,				444,				357,				448,				595,				596,				597,				598,				599,				600,				601,				626,				627,				612,				613,				604,				605			}; Sets.BossBestiaryPriority = BoolSetFactory{ 664,                   4,                    5,                    50,                    535,                    13,                    14,                    15,                    266,                    267,                    35,                    36,                    222,                    113,                    114,                    117,                    115,                    116,                    657,                    658,                    659,                    660,                    125,                    126,                    134,                    135,                    136,                    139,                    127,                    128,                    131,                    129,                    130,                    262,                    263,                    264,                    636,                    245,                    246,                    249,                    247,                    248,                    370,                    372,                    373,                    439,                    438,                    379,                    380,                    440,                    521,                    454,                    507,                    517,                    422,                    493,                    398,                    396,                    397,                    400,                    401                }; Sets.TownNPCBestiaryPriority = BoolSetFactory{ 22,                   17,                    18,                    38,                    369,                    20,                    19,                    207,                    227,                    353,                    633,                    550,                    588,                    107,                    228,                    124,                    54,                    108,                    178,                    229,                    160,                    441,                    209,                    208,                    663,                    142,                    637,                    638,                    656,                    368,                    453,                    37                };

--value set Sets.TrailingMode = SetFactory(-1, { 439, 0, 440, 0, 370, 1, 372, 1, 373, 1, 396, 1, 400, 1, 401, 1, 473, 2, 474, 2, 475, 2, 476, 2, 4, 3, 471, 3, 477, 3, 479, 3, 120, 4, 137, 4, 138, 4, 94, 5, 125, 6, 126, 6, 127, 6, 128, 6, 129, 6, 130, 6, 131, 6, 139, 6, 140, 6, 407, 6, 420, 6, 425, 6, 427, 6, 426, 6, 581, 6, 516, 6, 542, 6, 543, 6, 544, 6, 545, 6, 402, 7, 417, 7, 419, 7, 418, 7, 574, 7, 575, 7, 519, 7, 521, 7, 522, 7, 546, 7, 558, 7, 559, 7, 560, 7, 551, 7, 620, 7, 657, 6, 636, 7 }) Sets.TrailCacheLength = SetFactory(10, { 402, 36, 519, 20, 522, 20, 620, 20 }) Sets.HatOffsetY = SetFactory(0, { 227, 4, 107, 2, 108, 2, 229, 4, 17, 2, 38, 8, 160, -10, 208, 2, 142, 2, 124, 2, 453, 2, 37, 4, 54, 4, 209, 4, 369, 6, 441, 6, 353, -2, 633, -2, 550, -2, 588, 2, 663, 2, 637, 0, 638, 0, 656, 4 }) Sets.FaceEmote = SetFactory(0, { 17, 101, 18, 102, 19, 103, 20, 104, 22, 105, 37, 106, 38, 107, 54, 108, 107, 109, 108, 110, 124, 111, 142, 112, 160, 113, 178, 114, 207, 115, 208, 116, 209, 117, 227, 118, 228, 119, 229, 120, 353, 121, 368, 122, 369, 123, 453, 124, 441, 125, 588, 140, 633, 141 }) Sets.ExtraFramesCount = SetFactory(0, { 17, 9, 18, 9, 19, 9, 20, 7, 22, 10, 37, 5, 38, 9, 54, 7, 107, 9, 108, 7, 124, 9, 142, 9, 160, 7, 178, 9, 207, 9, 208, 9, 209, 10, 227, 9, 228, 10, 229, 10, 353, 9, 633, 9, 368, 10, 369, 9, 453, 9, 441, 9, 550, 9, 588, 9, 637, 18, 638, 11, 656, 20 }) Sets.AttackFrameCount = SetFactory(0, { 17, 4, 18, 4, 19, 4, 20, 2, 22, 5, 37, 0, 38, 4, 54, 2, 107, 4, 108, 2, 124, 4, 142, 4, 160, 2, 178, 4, 207, 4, 208, 4, 209, 5, 227, 4, 228, 5, 229, 5, 353, 4, 633, 4, 368, 5, 369, 4, 453, 4, 441, 4, 550, 4, 588, 4, 637, 0, 638, 0, 656, 0 }) Sets.DangerDetectRange = SetFactory(-1, { 38, 300, 17, 320, 107, 300, 19, 900, 22, 700, 124, 800, 228, 800, 178, 900, 18, 300, 229, 1000, 209, 1000, 54, 700, 108, 700, 160, 700, 20, 1200, 369, 300, 453, 300, 368, 900, 207, 60, 227, 800, 208, 400, 142, 500, 441, 50, 353, 60, 633, 100, 550, 120, 588, 120, 638, 250, 637, 250, 656, 250 }) Sets.AttackTime = SetFactory(-1, { 38, 34, 17, 34, 107, 60, 19, 40, 22, 30, 124, 34, 228, 40, 178, 24, 18, 34, 229, 60, 209, 60, 54, 60, 108, 30, 160, 60, 20, 600, 369, 34, 453, 34, 368, 60, 207, 15, 227, 60, 208, 34, 142, 34, 441, 15, 353, 12, 633, 12, 550, 34, 588, 20, 638, -1, 637, -1, 656, -1 }) Sets.AttackAverageChance = SetFactory(1, { 38, 40, 17, 30, 107, 60, 19, 30, 22, 30, 124, 30, 228, 50, 178, 50, 18, 60, 229, 40, 209, 30, 54, 30, 108, 30, 160, 60, 20, 60, 369, 50, 453, 30, 368, 40, 207, 1, 227, 30, 208, 50, 142, 50, 441, 1, 353, 1, 633, 1, 550, 40, 588, 20, 638, 1, 637, 1, 656, 1 }) Sets.AttackType = SetFactory(-1, { 38, 0, 17, 0, 107, 0, 19, 1, 22, 1, 124, 0, 228, 1, 178, 1, 18, 0, 229, 1, 209, 1, 54, 2, 108, 2, 160, 2, 20, 2, 369, 0, 453, 0, 368, 1, 207, 3, 227, 1, 208, 0, 142, 0, 441, 3, 353, 3, 633, 0, 550, 0, 588, 0, 638, -1, 637, -1, 656, -1 }) Sets.PrettySafe = SetFactory(-1, { 19, 300, 22, 200, 124, 200, 228, 300, 178, 300, 229, 300, 209, 300, 54, 100, 108, 100, 160, 100, 20, 200, 368, 200, 227, 200 }) Sets.BossHeadTextures = SetFactory(-1, { 4, 0, 13, 2, 344, 3, 370, 4, 246, 5, 249, 5, 345, 6, 50, 7, 396, 8, 395, 9, 325, 10, 262, 11, 327, 13, 222, 14, 125, 15, 126, 20, 346, 17, 127, 18, 35, 19, 68, 19, 113, 22, 266, 23, 439, 24, 440, 24, 134, 25, 491, 26, 517, 27, 422, 28, 507, 29, 493, 30, 549, 35, 564, 32, 565, 32, 576, 33, 577, 33, 551, 34, 548, 36, 636, 37, 657, 38 }) Sets.ExtraTextureCount = SetFactory(0, { 38, 1, 17, 1, 107, 0, 19, 0, 22, 0, 124, 1, 228, 0, 178, 1, 18, 1, 229, 1, 209, 1, 54, 1, 108, 1, 160, 0, 20, 0, 369, 1, 453, 1, 368, 1, 207, 1, 227, 1, 208, 0, 142, 1, 441, 1, 353, 1, 633, 1, 550, 0, 588, 1, 633, 2, 638, 0, 637, 0, 656, 0 }) Sets.StatueSpawnedDropRarity = SetFactory(-1, { 480, 0.05, 82, 0.05, 86, 0.05, 48, 0.05, 490, 0.05, 489, 0.05, 170, 0.05, 180, 0.05, 171, 0.05, 167, 0.25, 73, 0.01, 24, 0.05, 481, 0.05, 42, 0.05, 6, 0.05, 2, 0.05, 49, 0.2, 3, 0.2, 58, 0.2, 21, 0.2, 65, 0.2, 449, 0.2, 482, 0.2, 103, 0.2, 64, 0.2, 63, 0.2, 85, 0 })

-- nullable ( Dictionary ) Sets.SpecialSpawningRules = SetFactory(nil, { 259, 0, 260, 0,  175, 0, 43, 0 , 56, 0 , 101, 0 }) Sets.RespawnEnemyID = SetFactory(nil, { 492, 0, 491, 0,  394, 0,  393, 0,  392, 0,  13, 0,  14, 0,  15, 0,  412, 0,  413, 0,  414, 0,  134, 0,  135, 0,  136, 0,  454, 0,  455, 0,  456, 0,  457, 0,  458, 0,  459, 0,  8, 7,  9, 7,  11, 10,  12, 10,  40, 39,  41, 39,  96, 95,  97, 95,  99, 98,  100, 98,  88, 87,  89, 87,  90, 87,  91, 87,  92, 87,  118, 117,  119, 117,  514, 513,  515, 513,  511, 510,  512, 510,  622, 621,  623, 621 })

return Sets