isaacscript-common 20.18.1 → 21.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +48 -33
- package/dist/isaacscript-common.lua +637 -460
- package/dist/src/callbacks.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostBoneSwing.lua +3 -2
- package/dist/src/classes/callbacks/PreNewLevel.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PreNewLevel.lua +3 -2
- package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomTrapdoors.lua +4 -2
- package/dist/src/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
- package/dist/src/classes/features/other/DeployJSONRoom.lua +3 -2
- package/dist/src/classes/features/other/ModdedElementSets.d.ts.map +1 -1
- package/dist/src/classes/features/other/ModdedElementSets.lua +7 -4
- package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -1
- package/dist/src/classes/features/other/SaveDataManager.lua +3 -2
- package/dist/src/classes/features/other/customStages/backdrop.lua +3 -2
- package/dist/src/classes/features/other/customStages/shadows.d.ts.map +1 -1
- package/dist/src/classes/features/other/customStages/streakText.d.ts.map +1 -1
- package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -1
- package/dist/src/classes/features/other/saveDataManager/restoreDefaults.lua +3 -2
- package/dist/src/core/constants.d.ts +4 -6
- package/dist/src/core/constants.d.ts.map +1 -1
- package/dist/src/core/constants.lua +17 -13
- package/dist/src/features.d.ts.map +1 -1
- package/dist/src/functions/bosses.d.ts.map +1 -1
- package/dist/src/functions/bosses.lua +3 -2
- package/dist/src/functions/cards.lua +3 -3
- package/dist/src/functions/characters.d.ts.map +1 -1
- package/dist/src/functions/characters.lua +3 -2
- package/dist/src/functions/doors.d.ts.map +1 -1
- package/dist/src/functions/doors.lua +9 -7
- package/dist/src/functions/emptyRoom.d.ts.map +1 -1
- package/dist/src/functions/emptyRoom.lua +3 -2
- package/dist/src/functions/entities.d.ts.map +1 -1
- package/dist/src/functions/entities.lua +4 -1
- package/dist/src/functions/globals.d.ts.map +1 -1
- package/dist/src/functions/globals.lua +6 -4
- package/dist/src/functions/gridEntities.d.ts.map +1 -1
- package/dist/src/functions/gridEntities.lua +5 -3
- package/dist/src/functions/input.d.ts.map +1 -1
- package/dist/src/functions/input.lua +4 -3
- package/dist/src/functions/logEntities.d.ts.map +1 -1
- package/dist/src/functions/logEntities.lua +3 -2
- package/dist/src/functions/map.d.ts +23 -0
- package/dist/src/functions/map.d.ts.map +1 -1
- package/dist/src/functions/map.lua +28 -0
- package/dist/src/functions/npcs.d.ts.map +1 -1
- package/dist/src/functions/npcs.lua +4 -3
- package/dist/src/functions/playerIndex.d.ts.map +1 -1
- package/dist/src/functions/playerIndex.lua +3 -2
- package/dist/src/functions/readOnly.d.ts +26 -0
- package/dist/src/functions/readOnly.d.ts.map +1 -0
- package/dist/src/functions/readOnly.lua +31 -0
- package/dist/src/functions/roomGrid.d.ts.map +1 -1
- package/dist/src/functions/roomGrid.lua +4 -1
- package/dist/src/functions/roomShapeWalls.d.ts.map +1 -1
- package/dist/src/functions/roomShapeWalls.lua +9 -10
- package/dist/src/functions/serialization.d.ts.map +1 -1
- package/dist/src/functions/serialization.lua +3 -2
- package/dist/src/functions/slots.d.ts.map +1 -1
- package/dist/src/functions/slots.lua +3 -2
- package/dist/src/functions/stats.d.ts.map +1 -1
- package/dist/src/functions/stats.lua +3 -2
- package/dist/src/functions/transformations.d.ts.map +1 -1
- package/dist/src/functions/transformations.lua +6 -3
- package/dist/src/functions/utils.d.ts +1 -1
- package/dist/src/functions/utils.lua +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.lua +16 -0
- package/dist/src/maps/PHDPillConversions.d.ts.map +1 -1
- package/dist/src/maps/PHDPillConversions.lua +3 -2
- package/dist/src/maps/cardNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/cardNameToTypeMap.lua +3 -2
- package/dist/src/maps/characterNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/characterNameToTypeMap.lua +3 -2
- package/dist/src/maps/collectibleDescriptionMap.d.ts.map +1 -1
- package/dist/src/maps/collectibleDescriptionMap.lua +3 -2
- package/dist/src/maps/collectibleNameToTypeMap.d.ts +5 -0
- package/dist/src/maps/collectibleNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/collectibleNameToTypeMap.lua +10 -8
- package/dist/src/maps/collectibleTypeToNameMap.d.ts.map +1 -1
- package/dist/src/maps/collectibleTypeToNameMap.lua +3 -2
- package/dist/src/maps/defaultPlayerStatMap.d.ts +5 -2
- package/dist/src/maps/defaultPlayerStatMap.d.ts.map +1 -1
- package/dist/src/maps/defaultPlayerStatMap.lua +3 -2
- package/dist/src/maps/falsePHDPillConversions.d.ts.map +1 -1
- package/dist/src/maps/falsePHDPillConversions.lua +3 -2
- package/dist/src/maps/gridEntityTypeToBrokenStateMap.d.ts +1 -1
- package/dist/src/maps/gridEntityTypeToBrokenStateMap.d.ts.map +1 -1
- package/dist/src/maps/gridEntityTypeToBrokenStateMap.lua +3 -2
- package/dist/src/maps/gridEntityXMLMap.d.ts +1 -4
- package/dist/src/maps/gridEntityXMLMap.d.ts.map +1 -1
- package/dist/src/maps/gridEntityXMLMap.lua +3 -2
- package/dist/src/maps/keyboardToString.d.ts.map +1 -1
- package/dist/src/maps/keyboardToString.lua +3 -2
- package/dist/src/maps/pillNameToEffectMap.d.ts.map +1 -1
- package/dist/src/maps/pillNameToEffectMap.lua +3 -2
- package/dist/src/maps/roomNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/roomNameToTypeMap.lua +3 -2
- package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.d.ts +1 -1
- package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.d.ts.map +1 -1
- package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.lua +3 -2
- package/dist/src/maps/transformationNameToPlayerFormMap.d.ts.map +1 -1
- package/dist/src/maps/transformationNameToPlayerFormMap.lua +3 -2
- package/dist/src/maps/trinketDescriptionMap.d.ts.map +1 -1
- package/dist/src/maps/trinketDescriptionMap.lua +3 -2
- package/dist/src/maps/trinketNameToTypeMap.d.ts +5 -0
- package/dist/src/maps/trinketNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/trinketNameToTypeMap.lua +10 -8
- package/dist/src/maps/trinketTypeToNameMap.d.ts.map +1 -1
- package/dist/src/maps/trinketTypeToNameMap.lua +3 -2
- package/dist/src/objects/LRoomShapeToRectangles.d.ts +8 -6
- package/dist/src/objects/LRoomShapeToRectangles.d.ts.map +1 -1
- package/dist/src/objects/LRoomShapeToRectangles.lua +19 -17
- package/dist/src/objects/backdropTypeToRockAltType.d.ts.map +1 -1
- package/dist/src/objects/bossNamePNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/bossPortraitPNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/cardDescriptions.d.ts.map +1 -1
- package/dist/src/objects/cardNames.d.ts.map +1 -1
- package/dist/src/objects/challengeNames.d.ts.map +1 -1
- package/dist/src/objects/characterDamageMultipliers.d.ts.map +1 -1
- package/dist/src/objects/characterNames.d.ts.map +1 -1
- package/dist/src/objects/coinSubTypeToValue.d.ts.map +1 -1
- package/dist/src/objects/directionNames.d.ts.map +1 -1
- package/dist/src/objects/directionToDegrees.d.ts.map +1 -1
- package/dist/src/objects/directionToMoveAction.d.ts.map +1 -1
- package/dist/src/objects/directionToShootAction.d.ts.map +1 -1
- package/dist/src/objects/directionToVector.d.ts +5 -2
- package/dist/src/objects/directionToVector.d.ts.map +1 -1
- package/dist/src/objects/directionToVector.lua +6 -4
- package/dist/src/objects/doorSlotFlagToDoorSlot.d.ts.map +1 -1
- package/dist/src/objects/doorSlotToDirection.d.ts.map +1 -1
- package/dist/src/objects/doorSlotToDoorSlotFlag.d.ts.map +1 -1
- package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts.map +1 -1
- package/dist/src/objects/languageNames.d.ts.map +1 -1
- package/dist/src/objects/oppositeDoorSlots.d.ts.map +1 -1
- package/dist/src/objects/pillEffectClasses.d.ts.map +1 -1
- package/dist/src/objects/pillEffectNames.d.ts.map +1 -1
- package/dist/src/objects/pillEffectTypes.d.ts.map +1 -1
- package/dist/src/objects/playerNamePNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/playerPortraitPNGFileNames.d.ts.map +1 -1
- package/dist/src/objects/roomShapeBounds.d.ts +12 -2
- package/dist/src/objects/roomShapeBounds.d.ts.map +1 -1
- package/dist/src/objects/roomShapeCorners.d.ts +237 -3
- package/dist/src/objects/roomShapeCorners.d.ts.map +1 -1
- package/dist/src/objects/roomShapeCorners.lua +58 -56
- package/dist/src/objects/roomShapeLayoutSizes.d.ts +12 -2
- package/dist/src/objects/roomShapeLayoutSizes.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToBottomRightPosition.d.ts +12 -2
- package/dist/src/objects/roomShapeToBottomRightPosition.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToBottomRightPosition.lua +10 -8
- package/dist/src/objects/roomShapeToDoorSlotCoordinates.d.ts +88 -2
- package/dist/src/objects/roomShapeToDoorSlotCoordinates.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToDoorSlotCoordinates.lua +71 -74
- package/dist/src/objects/roomShapeToDoorSlots.d.ts +13 -2
- package/dist/src/objects/roomShapeToDoorSlots.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToDoorSlots.lua +10 -9
- package/dist/src/objects/roomShapeToDoorSlotsToGridIndexDelta.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +14 -13
- package/dist/src/objects/roomShapeToGridWidth.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToTopLeftPosition.d.ts +12 -2
- package/dist/src/objects/roomShapeToTopLeftPosition.d.ts.map +1 -1
- package/dist/src/objects/roomShapeToTopLeftPosition.lua +5 -3
- package/dist/src/objects/roomShapeVolumes.d.ts.map +1 -1
- package/dist/src/objects/roomTypeGotoPrefixes.d.ts.map +1 -1
- package/dist/src/objects/roomTypeNames.d.ts.map +1 -1
- package/dist/src/objects/stageToMusic.d.ts.map +1 -1
- package/dist/src/objects/stageTypeSuffixes.d.ts.map +1 -1
- package/dist/src/objects/stageTypeToLetter.d.ts.map +1 -1
- package/dist/src/objects/transformationNames.d.ts.map +1 -1
- package/dist/src/objects/versusScreenBackgroundColors.d.ts +29 -2
- package/dist/src/objects/versusScreenBackgroundColors.d.ts.map +1 -1
- package/dist/src/objects/versusScreenBackgroundColors.lua +29 -27
- package/dist/src/objects/versusScreenDirtSpotColors.d.ts +29 -2
- package/dist/src/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
- package/dist/src/objects/versusScreenDirtSpotColors.lua +29 -27
- package/dist/src/sets/LRoomShapesSet.d.ts.map +1 -1
- package/dist/src/sets/LRoomShapesSet.lua +3 -2
- package/dist/src/sets/bossSets.d.ts +2 -3
- package/dist/src/sets/bossSets.d.ts.map +1 -1
- package/dist/src/sets/bossSets.lua +52 -49
- package/dist/src/sets/charactersThatStartWithAnActiveItemSet.d.ts.map +1 -1
- package/dist/src/sets/charactersThatStartWithAnActiveItemSet.lua +3 -2
- package/dist/src/sets/charactersWithBlackHeartFromEternalHeartSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithBlackHeartFromEternalHeartSet.lua +3 -2
- package/dist/src/sets/charactersWithFreeDevilDealsSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithFreeDevilDealsSet.lua +3 -2
- package/dist/src/sets/charactersWithNoRedHeartsSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithNoRedHeartsSet.lua +3 -2
- package/dist/src/sets/charactersWithNoSoulHeartsSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithNoSoulHeartsSet.lua +3 -2
- package/dist/src/sets/chestPickupVariantsSet.d.ts.map +1 -1
- package/dist/src/sets/chestPickupVariantsSet.lua +3 -2
- package/dist/src/sets/consoleCommandsSet.d.ts.map +1 -1
- package/dist/src/sets/consoleCommandsSet.lua +3 -2
- package/dist/src/sets/entitiesWithArmorSet.d.ts.map +1 -1
- package/dist/src/sets/entitiesWithArmorSet.lua +3 -2
- package/dist/src/sets/familiarsThatShootPlayerTearsSet.d.ts.map +1 -1
- package/dist/src/sets/familiarsThatShootPlayerTearsSet.lua +3 -2
- package/dist/src/sets/itemConfigCardTypesForCardsSet.d.ts +4 -0
- package/dist/src/sets/itemConfigCardTypesForCardsSet.d.ts.map +1 -0
- package/dist/src/sets/itemConfigCardTypesForCardsSet.lua +10 -0
- package/dist/src/sets/lostStyleCharactersSet.d.ts.map +1 -1
- package/dist/src/sets/lostStyleCharactersSet.lua +3 -2
- package/dist/src/sets/mineShaftRoomSubTypesSet.d.ts.map +1 -1
- package/dist/src/sets/mineShaftRoomSubTypesSet.lua +3 -2
- package/dist/src/sets/narrowRoomShapesSet.d.ts.map +1 -1
- package/dist/src/sets/narrowRoomShapesSet.lua +3 -2
- package/dist/src/sets/redHeartSubTypesSet.d.ts.map +1 -1
- package/dist/src/sets/redHeartSubTypesSet.lua +3 -2
- package/dist/src/sets/sinEntityTypesSet.d.ts.map +1 -1
- package/dist/src/sets/sinEntityTypesSet.lua +3 -2
- package/dist/src/sets/singleUseActiveCollectibleTypesSet.d.ts.map +1 -1
- package/dist/src/sets/singleUseActiveCollectibleTypesSet.lua +3 -2
- package/dist/src/sets/storyBossesSet.d.ts.map +1 -1
- package/dist/src/sets/storyBossesSet.lua +3 -2
- package/dist/src/types/PickingUpItem.d.ts.map +1 -1
- package/dist/src/types/PickingUpItem.lua +3 -2
- package/dist/src/types/ReadonlyMap.d.ts +9 -0
- package/dist/src/types/ReadonlyMap.d.ts.map +1 -0
- package/dist/src/types/ReadonlyMap.lua +6 -0
- package/dist/src/types/ReadonlySet.d.ts +8 -0
- package/dist/src/types/ReadonlySet.d.ts.map +1 -0
- package/dist/src/types/ReadonlySet.lua +6 -0
- package/package.json +1 -1
- package/src/callbacks.ts +1 -2
- package/src/classes/callbacks/PostBoneSwing.ts +2 -1
- package/src/classes/callbacks/PreNewLevel.ts +2 -1
- package/src/classes/features/other/CustomTrapdoors.ts +2 -1
- package/src/classes/features/other/DeployJSONRoom.ts +5 -2
- package/src/classes/features/other/ModdedElementSets.ts +20 -22
- package/src/classes/features/other/SaveDataManager.ts +2 -1
- package/src/classes/features/other/customStages/backdrop.ts +3 -3
- package/src/classes/features/other/customStages/shadows.ts +1 -2
- package/src/classes/features/other/customStages/streakText.ts +1 -2
- package/src/classes/features/other/saveDataManager/restoreDefaults.ts +2 -1
- package/src/core/constants.ts +18 -17
- package/src/features.ts +1 -2
- package/src/functions/bosses.ts +2 -1
- package/src/functions/cards.ts +2 -2
- package/src/functions/characters.ts +2 -1
- package/src/functions/doors.ts +15 -4
- package/src/functions/emptyRoom.ts +2 -1
- package/src/functions/entities.ts +2 -1
- package/src/functions/globals.ts +4 -3
- package/src/functions/gridEntities.ts +5 -4
- package/src/functions/input.ts +3 -2
- package/src/functions/logEntities.ts +2 -1
- package/src/functions/map.ts +35 -0
- package/src/functions/npcs.ts +3 -2
- package/src/functions/playerIndex.ts +2 -1
- package/src/functions/readOnly.ts +42 -0
- package/src/functions/roomGrid.ts +3 -2
- package/src/functions/roomShapeWalls.ts +3 -5
- package/src/functions/serialization.ts +2 -3
- package/src/functions/slots.ts +2 -1
- package/src/functions/stats.ts +2 -1
- package/src/functions/transformations.ts +19 -18
- package/src/functions/utils.ts +1 -1
- package/src/index.ts +2 -1
- package/src/maps/PHDPillConversions.ts +19 -19
- package/src/maps/cardNameToTypeMap.ts +2 -1
- package/src/maps/characterNameToTypeMap.ts +86 -86
- package/src/maps/collectibleDescriptionMap.ts +726 -724
- package/src/maps/collectibleNameToTypeMap.ts +10 -7
- package/src/maps/collectibleTypeToNameMap.ts +3 -4
- package/src/maps/defaultPlayerStatMap.ts +2 -1
- package/src/maps/falsePHDPillConversions.ts +36 -33
- package/src/maps/gridEntityTypeToBrokenStateMap.ts +3 -2
- package/src/maps/gridEntityXMLMap.ts +3 -2
- package/src/maps/keyboardToString.ts +3 -2
- package/src/maps/pillNameToEffectMap.ts +85 -86
- package/src/maps/roomNameToTypeMap.ts +2 -1
- package/src/maps/roomShapeToTopLeftWallGridIndexMap.ts +3 -2
- package/src/maps/transformationNameToPlayerFormMap.ts +3 -2
- package/src/maps/trinketDescriptionMap.ts +191 -192
- package/src/maps/trinketNameToTypeMap.ts +10 -7
- package/src/maps/trinketTypeToNameMap.ts +191 -193
- package/src/objects/LRoomShapeToRectangles.ts +35 -28
- package/src/objects/backdropTypeToRockAltType.ts +1 -2
- package/src/objects/bossNamePNGFileNames.ts +1 -2
- package/src/objects/bossPortraitPNGFileNames.ts +1 -2
- package/src/objects/cardDescriptions.ts +1 -2
- package/src/objects/cardNames.ts +1 -2
- package/src/objects/challengeNames.ts +1 -2
- package/src/objects/characterDamageMultipliers.ts +1 -2
- package/src/objects/characterNames.ts +1 -2
- package/src/objects/coinSubTypeToValue.ts +1 -2
- package/src/objects/directionNames.ts +1 -2
- package/src/objects/directionToDegrees.ts +1 -2
- package/src/objects/directionToMoveAction.ts +1 -2
- package/src/objects/directionToShootAction.ts +1 -2
- package/src/objects/directionToVector.ts +7 -10
- package/src/objects/doorSlotFlagToDoorSlot.ts +1 -2
- package/src/objects/doorSlotToDirection.ts +1 -2
- package/src/objects/doorSlotToDoorSlotFlag.ts +1 -2
- package/src/objects/isaacAPIClassTypeToBrand.ts +1 -5
- package/src/objects/languageNames.ts +1 -2
- package/src/objects/oppositeDoorSlots.ts +1 -2
- package/src/objects/pillEffectClasses.ts +1 -2
- package/src/objects/pillEffectNames.ts +1 -2
- package/src/objects/pillEffectTypes.ts +1 -2
- package/src/objects/playerNamePNGFileNames.ts +1 -2
- package/src/objects/playerPortraitPNGFileNames.ts +1 -2
- package/src/objects/roomShapeBounds.ts +3 -7
- package/src/objects/roomShapeCorners.ts +59 -62
- package/src/objects/roomShapeLayoutSizes.ts +6 -10
- package/src/objects/roomShapeToBottomRightPosition.ts +11 -17
- package/src/objects/roomShapeToDoorSlotCoordinates.ts +93 -94
- package/src/objects/roomShapeToDoorSlots.ts +11 -14
- package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +15 -14
- package/src/objects/roomShapeToGridWidth.ts +1 -2
- package/src/objects/roomShapeToTopLeftPosition.ts +6 -9
- package/src/objects/roomShapeVolumes.ts +1 -2
- package/src/objects/roomTypeGotoPrefixes.ts +1 -2
- package/src/objects/roomTypeNames.ts +1 -2
- package/src/objects/stageToMusic.ts +10 -11
- package/src/objects/stageTypeSuffixes.ts +1 -2
- package/src/objects/stageTypeToLetter.ts +1 -2
- package/src/objects/transformationNames.ts +1 -2
- package/src/objects/versusScreenBackgroundColors.ts +30 -33
- package/src/objects/versusScreenDirtSpotColors.ts +30 -33
- package/src/sets/LRoomShapesSet.ts +2 -1
- package/src/sets/bossSets.ts +51 -49
- package/src/sets/charactersThatStartWithAnActiveItemSet.ts +3 -2
- package/src/sets/charactersWithBlackHeartFromEternalHeartSet.ts +3 -2
- package/src/sets/charactersWithFreeDevilDealsSet.ts +4 -2
- package/src/sets/charactersWithNoRedHeartsSet.ts +11 -11
- package/src/sets/charactersWithNoSoulHeartsSet.ts +8 -8
- package/src/sets/chestPickupVariantsSet.ts +2 -1
- package/src/sets/consoleCommandsSet.ts +3 -1
- package/src/sets/entitiesWithArmorSet.ts +2 -1
- package/src/sets/familiarsThatShootPlayerTearsSet.ts +3 -2
- package/src/sets/itemConfigCardTypesForCardsSet.ts +11 -0
- package/src/sets/lostStyleCharactersSet.ts +2 -1
- package/src/sets/mineShaftRoomSubTypesSet.ts +8 -8
- package/src/sets/narrowRoomShapesSet.ts +2 -1
- package/src/sets/redHeartSubTypesSet.ts +2 -1
- package/src/sets/sinEntityTypesSet.ts +2 -1
- package/src/sets/singleUseActiveCollectibleTypesSet.ts +3 -2
- package/src/sets/storyBossesSet.ts +2 -1
- package/src/types/PickingUpItem.ts +2 -1
- package/src/types/ReadonlyMap.ts +13 -0
- package/src/types/ReadonlySet.ts +9 -0
- package/dist/src/types/HasAllEnumKeys.d.ts +0 -26
- package/dist/src/types/HasAllEnumKeys.d.ts.map +0 -1
- package/dist/src/types/HasAllEnumKeys.lua +0 -2
- package/src/types/HasAllEnumKeys.ts +0 -25
|
@@ -1,41 +1,38 @@
|
|
|
1
1
|
import { StageID } from "isaac-typescript-definitions";
|
|
2
|
+
import { newReadonlyColor } from "../functions/readOnly";
|
|
2
3
|
|
|
3
4
|
/** We arbitrarily specify a default color equal to that of Basement. */
|
|
4
|
-
const DEFAULT_COLOR
|
|
5
|
+
const DEFAULT_COLOR = newReadonlyColor(26 / 255, 14 / 255, 12 / 255);
|
|
5
6
|
|
|
6
7
|
/** These values are taken from StageAPI. */
|
|
7
|
-
|
|
8
|
-
// operator.
|
|
9
|
-
export const VERSUS_SCREEN_BACKGROUND_COLORS: {
|
|
10
|
-
readonly [Key in StageID]: Readonly<Color>;
|
|
11
|
-
} = {
|
|
8
|
+
export const VERSUS_SCREEN_BACKGROUND_COLORS = {
|
|
12
9
|
[StageID.SPECIAL_ROOMS]: DEFAULT_COLOR, // 0
|
|
13
|
-
[StageID.BASEMENT]:
|
|
14
|
-
[StageID.CELLAR]:
|
|
15
|
-
[StageID.BURNING_BASEMENT]:
|
|
16
|
-
[StageID.CAVES]:
|
|
17
|
-
[StageID.CATACOMBS]:
|
|
18
|
-
[StageID.FLOODED_CAVES]:
|
|
19
|
-
[StageID.DEPTHS]:
|
|
20
|
-
[StageID.NECROPOLIS]:
|
|
21
|
-
[StageID.DANK_DEPTHS]:
|
|
22
|
-
[StageID.WOMB]:
|
|
23
|
-
[StageID.UTERO]:
|
|
24
|
-
[StageID.SCARRED_WOMB]:
|
|
25
|
-
[StageID.BLUE_WOMB]:
|
|
26
|
-
[StageID.SHEOL]:
|
|
27
|
-
[StageID.CATHEDRAL]:
|
|
28
|
-
[StageID.DARK_ROOM]:
|
|
29
|
-
[StageID.CHEST]:
|
|
30
|
-
[StageID.VOID]:
|
|
31
|
-
[StageID.DOWNPOUR]:
|
|
32
|
-
[StageID.DROSS]:
|
|
33
|
-
[StageID.MINES]:
|
|
34
|
-
[StageID.ASHPIT]:
|
|
35
|
-
[StageID.MAUSOLEUM]:
|
|
36
|
-
[StageID.GEHENNA]:
|
|
37
|
-
[StageID.CORPSE]:
|
|
38
|
-
[StageID.MORTIS]:
|
|
10
|
+
[StageID.BASEMENT]: newReadonlyColor(26 / 255, 14 / 255, 12 / 255), // 1
|
|
11
|
+
[StageID.CELLAR]: newReadonlyColor(26 / 255, 17 / 255, 13 / 255), // 2
|
|
12
|
+
[StageID.BURNING_BASEMENT]: newReadonlyColor(28 / 255, 12 / 255, 10 / 255), // 3
|
|
13
|
+
[StageID.CAVES]: newReadonlyColor(18 / 255, 13 / 255, 8 / 255), // 4
|
|
14
|
+
[StageID.CATACOMBS]: newReadonlyColor(15 / 255, 10 / 255, 8 / 255), // 5
|
|
15
|
+
[StageID.FLOODED_CAVES]: newReadonlyColor(21 / 255, 28 / 255, 35 / 255), // 6
|
|
16
|
+
[StageID.DEPTHS]: newReadonlyColor(8 / 255, 8 / 255, 8 / 255), // 7
|
|
17
|
+
[StageID.NECROPOLIS]: newReadonlyColor(10 / 255, 6 / 255, 6 / 255), // 8
|
|
18
|
+
[StageID.DANK_DEPTHS]: newReadonlyColor(8 / 255, 8 / 255, 8 / 255), // 9
|
|
19
|
+
[StageID.WOMB]: newReadonlyColor(27 / 255, 3 / 255, 3 / 255), // 10
|
|
20
|
+
[StageID.UTERO]: newReadonlyColor(22 / 255, 6 / 255, 5 / 255), // 11
|
|
21
|
+
[StageID.SCARRED_WOMB]: newReadonlyColor(42 / 255, 19 / 255, 10 / 255), // 12
|
|
22
|
+
[StageID.BLUE_WOMB]: newReadonlyColor(26 / 255, 32 / 255, 40 / 255), // 13
|
|
23
|
+
[StageID.SHEOL]: newReadonlyColor(6 / 255, 6 / 255, 6 / 255), // 14
|
|
24
|
+
[StageID.CATHEDRAL]: newReadonlyColor(6 / 255, 13 / 255, 17 / 255), // 15
|
|
25
|
+
[StageID.DARK_ROOM]: newReadonlyColor(9 / 255, 4 / 255, 3 / 255), // 16
|
|
26
|
+
[StageID.CHEST]: newReadonlyColor(15 / 255, 9 / 255, 6 / 255), // 17
|
|
27
|
+
[StageID.VOID]: newReadonlyColor(0, 0, 0), // 26
|
|
28
|
+
[StageID.DOWNPOUR]: newReadonlyColor(29 / 255, 30 / 255, 32 / 255), // 27
|
|
29
|
+
[StageID.DROSS]: newReadonlyColor(35 / 255, 35 / 255, 29 / 255), // 28
|
|
30
|
+
[StageID.MINES]: newReadonlyColor(17 / 255, 15 / 255, 12 / 255), // 29
|
|
31
|
+
[StageID.ASHPIT]: newReadonlyColor(12 / 255, 10 / 255, 10 / 255), // 30
|
|
32
|
+
[StageID.MAUSOLEUM]: newReadonlyColor(14 / 255, 10 / 255, 14 / 255), // 31
|
|
33
|
+
[StageID.GEHENNA]: newReadonlyColor(15 / 255, 4 / 255, 4 / 255), // 32
|
|
34
|
+
[StageID.CORPSE]: newReadonlyColor(13 / 255, 14 / 255, 12 / 255), // 33
|
|
35
|
+
[StageID.MORTIS]: newReadonlyColor(13 / 255, 14 / 255, 12 / 255), // 34
|
|
39
36
|
[StageID.HOME]: DEFAULT_COLOR, // 35
|
|
40
37
|
[StageID.BACKWARDS]: DEFAULT_COLOR, // 36
|
|
41
|
-
} as const
|
|
38
|
+
} as const satisfies Record<StageID, Readonly<Color>>;
|
|
@@ -1,41 +1,38 @@
|
|
|
1
1
|
import { StageID } from "isaac-typescript-definitions";
|
|
2
|
+
import { newReadonlyColor } from "../functions/readOnly";
|
|
2
3
|
|
|
3
4
|
/** We arbitrarily specify a default color equal to that of Basement. */
|
|
4
|
-
const DEFAULT_COLOR
|
|
5
|
+
const DEFAULT_COLOR = newReadonlyColor(201 / 255, 114 / 255, 96 / 255);
|
|
5
6
|
|
|
6
7
|
/** These values are taken from StageAPI. */
|
|
7
|
-
|
|
8
|
-
// operator.
|
|
9
|
-
export const VERSUS_SCREEN_DIRT_SPOT_COLORS: {
|
|
10
|
-
readonly [Key in StageID]: Readonly<Color>;
|
|
11
|
-
} = {
|
|
8
|
+
export const VERSUS_SCREEN_DIRT_SPOT_COLORS = {
|
|
12
9
|
[StageID.SPECIAL_ROOMS]: DEFAULT_COLOR, // 0
|
|
13
|
-
[StageID.BASEMENT]:
|
|
14
|
-
[StageID.CELLAR]:
|
|
15
|
-
[StageID.BURNING_BASEMENT]:
|
|
16
|
-
[StageID.CAVES]:
|
|
17
|
-
[StageID.CATACOMBS]:
|
|
18
|
-
[StageID.FLOODED_CAVES]:
|
|
19
|
-
[StageID.DEPTHS]:
|
|
20
|
-
[StageID.NECROPOLIS]:
|
|
21
|
-
[StageID.DANK_DEPTHS]:
|
|
22
|
-
[StageID.WOMB]:
|
|
23
|
-
[StageID.UTERO]:
|
|
24
|
-
[StageID.SCARRED_WOMB]:
|
|
25
|
-
[StageID.BLUE_WOMB]:
|
|
26
|
-
[StageID.SHEOL]:
|
|
27
|
-
[StageID.CATHEDRAL]:
|
|
28
|
-
[StageID.DARK_ROOM]:
|
|
29
|
-
[StageID.CHEST]:
|
|
30
|
-
[StageID.VOID]:
|
|
31
|
-
[StageID.DOWNPOUR]:
|
|
32
|
-
[StageID.DROSS]:
|
|
33
|
-
[StageID.MINES]:
|
|
34
|
-
[StageID.ASHPIT]:
|
|
35
|
-
[StageID.MAUSOLEUM]:
|
|
36
|
-
[StageID.GEHENNA]:
|
|
37
|
-
[StageID.CORPSE]:
|
|
38
|
-
[StageID.MORTIS]:
|
|
10
|
+
[StageID.BASEMENT]: newReadonlyColor(201 / 255, 114 / 255, 96 / 255), // 1
|
|
11
|
+
[StageID.CELLAR]: newReadonlyColor(229 / 255, 157 / 255, 111 / 255), // 2
|
|
12
|
+
[StageID.BURNING_BASEMENT]: newReadonlyColor(252 / 255, 108 / 255, 90 / 255), // 3
|
|
13
|
+
[StageID.CAVES]: newReadonlyColor(167 / 255, 111 / 255, 75 / 255), // 4
|
|
14
|
+
[StageID.CATACOMBS]: newReadonlyColor(135 / 255, 90 / 255, 80 / 255), // 5
|
|
15
|
+
[StageID.FLOODED_CAVES]: newReadonlyColor(111 / 255, 147 / 255, 180 / 255), // 6
|
|
16
|
+
[StageID.DEPTHS]: newReadonlyColor(70 / 255, 70 / 255, 72 / 255), // 7
|
|
17
|
+
[StageID.NECROPOLIS]: newReadonlyColor(88 / 255, 67 / 255, 54 / 255), // 8
|
|
18
|
+
[StageID.DANK_DEPTHS]: newReadonlyColor(70 / 255, 70 / 255, 72 / 255), // 9
|
|
19
|
+
[StageID.WOMB]: newReadonlyColor(241 / 255, 28 / 255, 28 / 255), // 10
|
|
20
|
+
[StageID.UTERO]: newReadonlyColor(199 / 255, 60 / 255, 48 / 255), // 11
|
|
21
|
+
[StageID.SCARRED_WOMB]: newReadonlyColor(247 / 255, 152 / 255, 88 / 255), // 12
|
|
22
|
+
[StageID.BLUE_WOMB]: newReadonlyColor(157 / 255, 209 / 255, 255 / 255), // 13
|
|
23
|
+
[StageID.SHEOL]: newReadonlyColor(60 / 255, 54 / 255, 54 / 255), // 14
|
|
24
|
+
[StageID.CATHEDRAL]: newReadonlyColor(44 / 255, 100 / 255, 111 / 255), // 15
|
|
25
|
+
[StageID.DARK_ROOM]: newReadonlyColor(80 / 255, 38 / 255, 20 / 255), // 16
|
|
26
|
+
[StageID.CHEST]: newReadonlyColor(175 / 255, 108 / 255, 72 / 255), // 17
|
|
27
|
+
[StageID.VOID]: newReadonlyColor(70 / 255, 5 / 255, 5 / 255), // 26
|
|
28
|
+
[StageID.DOWNPOUR]: newReadonlyColor(149 / 255, 157 / 255, 167 / 255), // 27
|
|
29
|
+
[StageID.DROSS]: newReadonlyColor(179 / 255, 179 / 255, 143 / 255), // 28
|
|
30
|
+
[StageID.MINES]: newReadonlyColor(93 / 255, 85 / 255, 72 / 255), // 29
|
|
31
|
+
[StageID.ASHPIT]: newReadonlyColor(106 / 255, 102 / 255, 94 / 255), // 30
|
|
32
|
+
[StageID.MAUSOLEUM]: newReadonlyColor(70 / 255, 59 / 255, 72 / 255), // 31
|
|
33
|
+
[StageID.GEHENNA]: newReadonlyColor(59 / 255, 41 / 255, 41 / 255), // 32
|
|
34
|
+
[StageID.CORPSE]: newReadonlyColor(124 / 255, 134 / 255, 111 / 255), // 33
|
|
35
|
+
[StageID.MORTIS]: newReadonlyColor(124 / 255, 134 / 255, 111 / 255), // 34
|
|
39
36
|
[StageID.HOME]: DEFAULT_COLOR, // 35
|
|
40
37
|
[StageID.BACKWARDS]: DEFAULT_COLOR, // 36
|
|
41
|
-
} as const
|
|
38
|
+
} as const satisfies Record<StageID, Readonly<Color>>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RoomShape } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
|
-
export const L_ROOM_SHAPES_SET
|
|
4
|
+
export const L_ROOM_SHAPES_SET = new ReadonlySet<RoomShape>([
|
|
4
5
|
RoomShape.LTL, // 9
|
|
5
6
|
RoomShape.LTR, // 10
|
|
6
7
|
RoomShape.LBL, // 11
|
package/src/sets/bossSets.ts
CHANGED
|
@@ -31,6 +31,8 @@ import {
|
|
|
31
31
|
} from "isaac-typescript-definitions";
|
|
32
32
|
import { parseEntityTypeVariantString } from "../functions/entities";
|
|
33
33
|
import { copySet } from "../functions/set";
|
|
34
|
+
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
35
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
34
36
|
import { STORY_BOSSES_SET } from "./storyBossesSet";
|
|
35
37
|
|
|
36
38
|
// The "bosspools.xml" file does not actually correspond to the real boss pools, so these sets were
|
|
@@ -40,7 +42,7 @@ import { STORY_BOSSES_SET } from "./storyBossesSet";
|
|
|
40
42
|
// not have real tuples. If we store bosses as tuples, then we cannot do a set lookup in O(1).
|
|
41
43
|
|
|
42
44
|
/** Contains just the bosses in Basement (not e.g. Burning Basement). */
|
|
43
|
-
const BASEMENT_BOSSES_SET
|
|
45
|
+
const BASEMENT_BOSSES_SET = new ReadonlySet<string>([
|
|
44
46
|
`${EntityType.LARRY_JR}.${LarryJrVariant.LARRY_JR}`, // 19.0
|
|
45
47
|
`${EntityType.MONSTRO}.0`, // 20.0
|
|
46
48
|
`${EntityType.FAMINE}.0`, // 63.0
|
|
@@ -58,7 +60,7 @@ const BASEMENT_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
58
60
|
]);
|
|
59
61
|
|
|
60
62
|
/** Contains just the bosses in Cellar (not e.g. Burning Basement). */
|
|
61
|
-
const CELLAR_BOSSES_SET
|
|
63
|
+
const CELLAR_BOSSES_SET = new ReadonlySet<string>([
|
|
62
64
|
`${EntityType.PIN}.${PinVariant.PIN}`, // 62.0
|
|
63
65
|
`${EntityType.FAMINE}.0`, // 63.0
|
|
64
66
|
`${EntityType.DUKE_OF_FLIES}.${DukeOfFliesVariant.DUKE_OF_FLIES}`, // 67.0
|
|
@@ -73,7 +75,7 @@ const CELLAR_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
73
75
|
]);
|
|
74
76
|
|
|
75
77
|
/** Contains just the bosses in Burning Basement (not e.g. Cellar). */
|
|
76
|
-
const BURNING_BASEMENT_BOSSES_SET
|
|
78
|
+
const BURNING_BASEMENT_BOSSES_SET = new ReadonlySet<string>([
|
|
77
79
|
`${EntityType.LARRY_JR}.${LarryJrVariant.LARRY_JR}`, // 19.0
|
|
78
80
|
`${EntityType.MONSTRO}.0`, // 20.0
|
|
79
81
|
`${EntityType.FAMINE}.0`, // 63.0
|
|
@@ -92,7 +94,7 @@ const BURNING_BASEMENT_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
92
94
|
]);
|
|
93
95
|
|
|
94
96
|
/** Contains just the bosses in Downpour (not e.g. Burning Basement). */
|
|
95
|
-
const DOWNPOUR_BOSSES_SET
|
|
97
|
+
const DOWNPOUR_BOSSES_SET = new ReadonlySet<string>([
|
|
96
98
|
`${EntityType.PIN}.${PinVariant.WORMWOOD}`, // 62.3
|
|
97
99
|
`${EntityType.LIL_BLUB}.0`, // 901.0
|
|
98
100
|
`${EntityType.RAINMAKER}.0`, // 902.0
|
|
@@ -100,7 +102,7 @@ const DOWNPOUR_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
100
102
|
]);
|
|
101
103
|
|
|
102
104
|
/** Contains just the bosses in Dross (not e.g. Burning Basement). */
|
|
103
|
-
const DROSS_BOSSES_SET
|
|
105
|
+
const DROSS_BOSSES_SET = new ReadonlySet<string>([
|
|
104
106
|
`${EntityType.PIN}.${PinVariant.WORMWOOD}`, // 62.3
|
|
105
107
|
`${EntityType.LIL_BLUB}.0`, // 901.0
|
|
106
108
|
`${EntityType.CLOG}.0`, // 914.0
|
|
@@ -109,7 +111,7 @@ const DROSS_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
109
111
|
]);
|
|
110
112
|
|
|
111
113
|
/** The set of unique bosses for Basement, Cellar, and so on. */
|
|
112
|
-
const ALL_BASEMENT_BOSSES_SET
|
|
114
|
+
const ALL_BASEMENT_BOSSES_SET = new ReadonlySet<string>([
|
|
113
115
|
...BASEMENT_BOSSES_SET.values(),
|
|
114
116
|
...CELLAR_BOSSES_SET.values(),
|
|
115
117
|
...BURNING_BASEMENT_BOSSES_SET.values(),
|
|
@@ -117,10 +119,10 @@ const ALL_BASEMENT_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
117
119
|
...DROSS_BOSSES_SET.values(),
|
|
118
120
|
]);
|
|
119
121
|
|
|
120
|
-
const BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
122
|
+
const BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
121
123
|
StageType,
|
|
122
124
|
ReadonlySet<string>
|
|
123
|
-
>
|
|
125
|
+
>([
|
|
124
126
|
[StageType.ORIGINAL, BASEMENT_BOSSES_SET],
|
|
125
127
|
[StageType.WRATH_OF_THE_LAMB, CELLAR_BOSSES_SET],
|
|
126
128
|
[StageType.AFTERBIRTH, BURNING_BASEMENT_BOSSES_SET],
|
|
@@ -129,7 +131,7 @@ const BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
|
|
|
129
131
|
]);
|
|
130
132
|
|
|
131
133
|
/** Contains just the bosses in Caves (not e.g. Flooded Caves). */
|
|
132
|
-
const CAVES_BOSSES_SET
|
|
134
|
+
const CAVES_BOSSES_SET = new ReadonlySet<string>([
|
|
133
135
|
`${EntityType.CHUB}.${ChubVariant.CHUB}`, // 28.0
|
|
134
136
|
`${EntityType.CHUB}.${ChubVariant.CHAD}`, // 28.1
|
|
135
137
|
`${EntityType.GURDY}.0`, // 36.0
|
|
@@ -148,7 +150,7 @@ const CAVES_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
148
150
|
]);
|
|
149
151
|
|
|
150
152
|
/** Contains just the bosses in Catacombs (not e.g. Flooded Caves). */
|
|
151
|
-
const CATACOMBS_BOSSES_SET
|
|
153
|
+
const CATACOMBS_BOSSES_SET = new ReadonlySet<string>([
|
|
152
154
|
`${EntityType.LARRY_JR}.${LarryJrVariant.THE_HOLLOW}`, // 19.1
|
|
153
155
|
`${EntityType.CHUB}.${ChubVariant.CARRION_QUEEN}`, // 28.2
|
|
154
156
|
`${EntityType.PIN}.${PinVariant.FRAIL}`, // 62.2
|
|
@@ -168,7 +170,7 @@ const CATACOMBS_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
168
170
|
]);
|
|
169
171
|
|
|
170
172
|
/** Contains just the bosses in Flooded Caves (not e.g. Catacombs). */
|
|
171
|
-
const FLOODED_CAVES_BOSSES_SET
|
|
173
|
+
const FLOODED_CAVES_BOSSES_SET = new ReadonlySet<string>([
|
|
172
174
|
`${EntityType.CHUB}.${ChubVariant.CHUB}`, // 28.0
|
|
173
175
|
`${EntityType.CHUB}.${ChubVariant.CHAD}`, // 28.1
|
|
174
176
|
`${EntityType.GURDY}.0`, // 36.0
|
|
@@ -189,7 +191,7 @@ const FLOODED_CAVES_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
189
191
|
]);
|
|
190
192
|
|
|
191
193
|
/** Contains just the bosses in Mines (not e.g. Flooded Caves). */
|
|
192
|
-
const MINES_BOSSES_SET
|
|
194
|
+
const MINES_BOSSES_SET = new ReadonlySet<string>([
|
|
193
195
|
`${EntityType.LARRY_JR}.${LarryJrVariant.TUFF_TWIN}`, // 19.2
|
|
194
196
|
`${EntityType.REAP_CREEP}.0`, // 900.0
|
|
195
197
|
`${EntityType.HORNFEL}.0`, // 906.0
|
|
@@ -197,7 +199,7 @@ const MINES_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
197
199
|
]);
|
|
198
200
|
|
|
199
201
|
/** Contains just the bosses in Ashpit (not e.g. Flooded Caves). */
|
|
200
|
-
const ASHPIT_BOSSES_SET
|
|
202
|
+
const ASHPIT_BOSSES_SET = new ReadonlySet<string>([
|
|
201
203
|
`${EntityType.LARRY_JR}.${LarryJrVariant.THE_SHELL}`, // 19.3
|
|
202
204
|
`${EntityType.POLYCEPHALUS}.${PolycephalusVariant.THE_PILE}`, // 269.1
|
|
203
205
|
`${EntityType.GREAT_GIDEON}.0`, // 907.0
|
|
@@ -206,7 +208,7 @@ const ASHPIT_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
206
208
|
]);
|
|
207
209
|
|
|
208
210
|
/** The set of unique bosses for Caves, Catacombs, and so on. */
|
|
209
|
-
const ALL_CAVES_BOSSES_SET
|
|
211
|
+
const ALL_CAVES_BOSSES_SET = new ReadonlySet<string>([
|
|
210
212
|
...CAVES_BOSSES_SET.values(),
|
|
211
213
|
...CATACOMBS_BOSSES_SET.values(),
|
|
212
214
|
...FLOODED_CAVES_BOSSES_SET.values(),
|
|
@@ -214,10 +216,10 @@ const ALL_CAVES_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
214
216
|
...ASHPIT_BOSSES_SET.values(),
|
|
215
217
|
]);
|
|
216
218
|
|
|
217
|
-
const CAVES_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
219
|
+
const CAVES_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
218
220
|
StageType,
|
|
219
221
|
ReadonlySet<string>
|
|
220
|
-
>
|
|
222
|
+
>([
|
|
221
223
|
[StageType.ORIGINAL, CAVES_BOSSES_SET],
|
|
222
224
|
[StageType.WRATH_OF_THE_LAMB, CATACOMBS_BOSSES_SET],
|
|
223
225
|
[StageType.AFTERBIRTH, FLOODED_CAVES_BOSSES_SET],
|
|
@@ -226,7 +228,7 @@ const CAVES_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
|
|
|
226
228
|
]);
|
|
227
229
|
|
|
228
230
|
/** Contains just the bosses in Depths (not e.g. Dank Depths). */
|
|
229
|
-
const DEPTHS_BOSSES_SET
|
|
231
|
+
const DEPTHS_BOSSES_SET = new ReadonlySet<string>([
|
|
230
232
|
`${EntityType.MONSTRO_2}.${Monstro2Variant.MONSTRO_2}`, // 43.0
|
|
231
233
|
`${EntityType.MONSTRO_2}.${Monstro2Variant.GISH}`, // 43.1
|
|
232
234
|
`${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
|
|
@@ -242,7 +244,7 @@ const DEPTHS_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
242
244
|
]);
|
|
243
245
|
|
|
244
246
|
/** Contains just the bosses in Necropolis (not e.g. Dank Depths). */
|
|
245
|
-
const NECROPOLIS_BOSSES_SET
|
|
247
|
+
const NECROPOLIS_BOSSES_SET = new ReadonlySet<string>([
|
|
246
248
|
`${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
|
|
247
249
|
`${EntityType.WAR}.${WarVariant.WAR}`, // 65.0
|
|
248
250
|
`${EntityType.PEEP}.${PeepVariant.BLOAT}`, // 68.1
|
|
@@ -257,7 +259,7 @@ const NECROPOLIS_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
257
259
|
]);
|
|
258
260
|
|
|
259
261
|
/** Contains just the bosses in Dank Depths (not e.g. Necropolis). */
|
|
260
|
-
const DANK_DEPTHS_BOSSES_SET
|
|
262
|
+
const DANK_DEPTHS_BOSSES_SET = new ReadonlySet<string>([
|
|
261
263
|
`${EntityType.MONSTRO_2}.${Monstro2Variant.MONSTRO_2}`, // 43.0
|
|
262
264
|
`${EntityType.MONSTRO_2}.${Monstro2Variant.GISH}`, // 43.1
|
|
263
265
|
`${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
|
|
@@ -273,21 +275,21 @@ const DANK_DEPTHS_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
273
275
|
]);
|
|
274
276
|
|
|
275
277
|
/** Contains just the bosses in Mausoleum (not e.g. Dank Depths). */
|
|
276
|
-
const MAUSOLEUM_BOSSES_SET
|
|
278
|
+
const MAUSOLEUM_BOSSES_SET = new ReadonlySet<string>([
|
|
277
279
|
`${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
|
|
278
280
|
`${EntityType.SIREN}.0`, // 904.0
|
|
279
281
|
`${EntityType.HERETIC}.0`, // 905.0
|
|
280
282
|
]);
|
|
281
283
|
|
|
282
284
|
/** Contains just the bosses in Gehenna (not e.g. Dank Depths). */
|
|
283
|
-
const GEHENNA_BOSSES_SET
|
|
285
|
+
const GEHENNA_BOSSES_SET = new ReadonlySet<string>([
|
|
284
286
|
`${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
|
|
285
287
|
`${EntityType.VISAGE}.0`, // 903.0
|
|
286
288
|
`${EntityType.HORNY_BOYS}.0`, // 920.0
|
|
287
289
|
]);
|
|
288
290
|
|
|
289
291
|
/** The set of unique bosses for Depths, Necropolis, and so on. */
|
|
290
|
-
const ALL_DEPTHS_BOSSES_SET
|
|
292
|
+
const ALL_DEPTHS_BOSSES_SET = new ReadonlySet<string>([
|
|
291
293
|
...DEPTHS_BOSSES_SET.values(),
|
|
292
294
|
...NECROPOLIS_BOSSES_SET.values(),
|
|
293
295
|
...DANK_DEPTHS_BOSSES_SET.values(),
|
|
@@ -295,10 +297,10 @@ const ALL_DEPTHS_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
295
297
|
...GEHENNA_BOSSES_SET.values(),
|
|
296
298
|
]);
|
|
297
299
|
|
|
298
|
-
const DEPTHS_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
300
|
+
const DEPTHS_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
299
301
|
StageType,
|
|
300
302
|
ReadonlySet<string>
|
|
301
|
-
>
|
|
303
|
+
>([
|
|
302
304
|
[StageType.ORIGINAL, DEPTHS_BOSSES_SET],
|
|
303
305
|
[StageType.WRATH_OF_THE_LAMB, NECROPOLIS_BOSSES_SET],
|
|
304
306
|
[StageType.AFTERBIRTH, DANK_DEPTHS_BOSSES_SET],
|
|
@@ -307,7 +309,7 @@ const DEPTHS_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
|
|
|
307
309
|
]);
|
|
308
310
|
|
|
309
311
|
/** Contains just the bosses in Womb (not e.g. Scarred Womb). */
|
|
310
|
-
const WOMB_BOSSES_SET
|
|
312
|
+
const WOMB_BOSSES_SET = new ReadonlySet<string>([
|
|
311
313
|
`${EntityType.PIN}.${PinVariant.SCOLEX}`, // 62.1
|
|
312
314
|
`${EntityType.WAR}.${WarVariant.CONQUEST}`, // 65.1
|
|
313
315
|
`${EntityType.DEATH}.0`, // 66.0
|
|
@@ -323,7 +325,7 @@ const WOMB_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
323
325
|
]);
|
|
324
326
|
|
|
325
327
|
/** Contains just the bosses in Utero (not e.g. Scarred Womb). */
|
|
326
|
-
const UTERO_BOSSES_SET
|
|
328
|
+
const UTERO_BOSSES_SET = new ReadonlySet<string>([
|
|
327
329
|
`${EntityType.WAR}.${WarVariant.CONQUEST}`, // 65.1
|
|
328
330
|
`${EntityType.DEATH}.0`, // 66.0
|
|
329
331
|
`${EntityType.DADDY_LONG_LEGS}.${DaddyLongLegsVariant.DADDY_LONG_LEGS}`, // 101.0
|
|
@@ -338,7 +340,7 @@ const UTERO_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
338
340
|
]);
|
|
339
341
|
|
|
340
342
|
/** Contains just the bosses in Scarred Womb (not e.g. Utero). */
|
|
341
|
-
const SCARRED_WOMB_BOSSES_SET
|
|
343
|
+
const SCARRED_WOMB_BOSSES_SET = new ReadonlySet<string>([
|
|
342
344
|
`${EntityType.PIN}.${PinVariant.SCOLEX}`, // 62.1
|
|
343
345
|
`${EntityType.WAR}.${WarVariant.CONQUEST}`, // 65.1
|
|
344
346
|
`${EntityType.DEATH}.0`, // 66.0
|
|
@@ -355,7 +357,7 @@ const SCARRED_WOMB_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
355
357
|
]);
|
|
356
358
|
|
|
357
359
|
/** Contains just the bosses in Corpse (not e.g. Scarred Womb). */
|
|
358
|
-
const CORPSE_BOSSES_SET
|
|
360
|
+
const CORPSE_BOSSES_SET = new ReadonlySet<string>([
|
|
359
361
|
`${EntityType.SCOURGE}.0`, // 909.0
|
|
360
362
|
`${EntityType.CHIMERA}.0`, // 910.0
|
|
361
363
|
`${EntityType.ROTGUT}.0`, // 911.0
|
|
@@ -363,7 +365,7 @@ const CORPSE_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
363
365
|
]);
|
|
364
366
|
|
|
365
367
|
/** The set of unique bosses for Depths, Necropolis, and so on. */
|
|
366
|
-
const ALL_WOMB_BOSSES_SET
|
|
368
|
+
const ALL_WOMB_BOSSES_SET = new ReadonlySet<string>([
|
|
367
369
|
...WOMB_BOSSES_SET.values(),
|
|
368
370
|
...UTERO_BOSSES_SET.values(),
|
|
369
371
|
...SCARRED_WOMB_BOSSES_SET.values(),
|
|
@@ -371,70 +373,70 @@ const ALL_WOMB_BOSSES_SET: ReadonlySet<string> = new Set([
|
|
|
371
373
|
...GEHENNA_BOSSES_SET.values(),
|
|
372
374
|
]);
|
|
373
375
|
|
|
374
|
-
const WOMB_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
376
|
+
const WOMB_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
375
377
|
StageType,
|
|
376
378
|
ReadonlySet<string>
|
|
377
|
-
>
|
|
379
|
+
>([
|
|
378
380
|
[StageType.ORIGINAL, WOMB_BOSSES_SET],
|
|
379
381
|
[StageType.WRATH_OF_THE_LAMB, UTERO_BOSSES_SET],
|
|
380
382
|
[StageType.AFTERBIRTH, SCARRED_WOMB_BOSSES_SET],
|
|
381
383
|
[StageType.REPENTANCE, CORPSE_BOSSES_SET],
|
|
382
384
|
]);
|
|
383
385
|
|
|
384
|
-
const BLUE_WOMB_BOSSES_SET
|
|
386
|
+
const BLUE_WOMB_BOSSES_SET = new ReadonlySet<string>([
|
|
385
387
|
`${EntityType.HUSH}.0`, // 407.0
|
|
386
388
|
]);
|
|
387
389
|
|
|
388
|
-
const BLUE_WOMB_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
390
|
+
const BLUE_WOMB_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
389
391
|
StageType,
|
|
390
392
|
ReadonlySet<string>
|
|
391
|
-
>
|
|
393
|
+
>([[StageType.ORIGINAL, BLUE_WOMB_BOSSES_SET]]);
|
|
392
394
|
|
|
393
|
-
const SHEOL_BOSSES_SET
|
|
395
|
+
const SHEOL_BOSSES_SET = new ReadonlySet<string>([
|
|
394
396
|
`${EntityType.SATAN}.${SatanVariant.SATAN}`, // 84.0
|
|
395
397
|
]);
|
|
396
|
-
const CATHEDRAL_BOSSES_SET
|
|
398
|
+
const CATHEDRAL_BOSSES_SET = new ReadonlySet<string>([
|
|
397
399
|
`${EntityType.ISAAC}.${IsaacVariant.ISAAC}`, // 102.0
|
|
398
400
|
]);
|
|
399
401
|
|
|
400
|
-
const ALL_STAGE_10_BOSSES_SET
|
|
402
|
+
const ALL_STAGE_10_BOSSES_SET = new ReadonlySet<string>([
|
|
401
403
|
...SHEOL_BOSSES_SET.values(),
|
|
402
404
|
...CATHEDRAL_BOSSES_SET.values(),
|
|
403
405
|
]);
|
|
404
406
|
|
|
405
|
-
const STAGE_10_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
407
|
+
const STAGE_10_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
406
408
|
StageType,
|
|
407
409
|
ReadonlySet<string>
|
|
408
|
-
>
|
|
410
|
+
>([
|
|
409
411
|
[StageType.ORIGINAL, SHEOL_BOSSES_SET],
|
|
410
412
|
[StageType.WRATH_OF_THE_LAMB, CATHEDRAL_BOSSES_SET],
|
|
411
413
|
]);
|
|
412
414
|
|
|
413
|
-
const DARK_ROOM_BOSSES_SET
|
|
415
|
+
const DARK_ROOM_BOSSES_SET = new ReadonlySet<string>([
|
|
414
416
|
`${EntityType.THE_LAMB}.${LambVariant.LAMB}`, // 273.0
|
|
415
417
|
]);
|
|
416
418
|
|
|
417
|
-
const CHEST_BOSSES_SET
|
|
419
|
+
const CHEST_BOSSES_SET = new ReadonlySet<string>([
|
|
418
420
|
`${EntityType.ISAAC}.${IsaacVariant.BLUE_BABY}`, // 102.1
|
|
419
421
|
]);
|
|
420
422
|
|
|
421
|
-
const ALL_STAGE_11_BOSSES_SET
|
|
423
|
+
const ALL_STAGE_11_BOSSES_SET = new ReadonlySet<string>([
|
|
422
424
|
...DARK_ROOM_BOSSES_SET.values(),
|
|
423
425
|
...CHEST_BOSSES_SET.values(),
|
|
424
426
|
]);
|
|
425
427
|
|
|
426
|
-
const STAGE_11_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
428
|
+
const STAGE_11_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
427
429
|
StageType,
|
|
428
430
|
ReadonlySet<string>
|
|
429
|
-
>
|
|
431
|
+
>([
|
|
430
432
|
[StageType.ORIGINAL, DARK_ROOM_BOSSES_SET],
|
|
431
433
|
[StageType.WRATH_OF_THE_LAMB, CHEST_BOSSES_SET],
|
|
432
434
|
]);
|
|
433
435
|
|
|
434
|
-
export const STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP
|
|
436
|
+
export const STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
435
437
|
int,
|
|
436
438
|
ReadonlyMap<int, ReadonlySet<string>>
|
|
437
|
-
>
|
|
439
|
+
>([
|
|
438
440
|
[1, BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP],
|
|
439
441
|
[2, BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP],
|
|
440
442
|
[3, CAVES_STAGE_TYPE_TO_BOSS_SET_MAP],
|
|
@@ -448,10 +450,10 @@ export const STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
|
|
|
448
450
|
[11, STAGE_11_STAGE_TYPE_TO_BOSS_SET_MAP],
|
|
449
451
|
]);
|
|
450
452
|
|
|
451
|
-
export const STAGE_TO_COMBINED_BOSS_SET_MAP
|
|
453
|
+
export const STAGE_TO_COMBINED_BOSS_SET_MAP = new ReadonlyMap<
|
|
452
454
|
int,
|
|
453
455
|
ReadonlySet<string>
|
|
454
|
-
>
|
|
456
|
+
>([
|
|
455
457
|
[1, ALL_BASEMENT_BOSSES_SET],
|
|
456
458
|
[2, ALL_BASEMENT_BOSSES_SET],
|
|
457
459
|
[3, ALL_CAVES_BOSSES_SET],
|
|
@@ -465,7 +467,7 @@ export const STAGE_TO_COMBINED_BOSS_SET_MAP: ReadonlyMap<
|
|
|
465
467
|
[11, ALL_STAGE_11_BOSSES_SET],
|
|
466
468
|
]);
|
|
467
469
|
|
|
468
|
-
export const ALL_BOSSES_SET
|
|
470
|
+
export const ALL_BOSSES_SET = new ReadonlySet<string>([
|
|
469
471
|
...ALL_BASEMENT_BOSSES_SET.values(),
|
|
470
472
|
...ALL_CAVES_BOSSES_SET.values(),
|
|
471
473
|
...ALL_DEPTHS_BOSSES_SET.values(),
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PlayerType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
|
-
export const CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET
|
|
4
|
-
new
|
|
4
|
+
export const CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET =
|
|
5
|
+
new ReadonlySet<PlayerType>([
|
|
5
6
|
PlayerType.ISAAC, // 0
|
|
6
7
|
PlayerType.MAGDALENE, // 1
|
|
7
8
|
PlayerType.JUDAS, // 3
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PlayerType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
|
-
export const CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET
|
|
4
|
-
new
|
|
4
|
+
export const CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET =
|
|
5
|
+
new ReadonlySet<PlayerType>([
|
|
5
6
|
PlayerType.DARK_JUDAS, // 12
|
|
6
7
|
PlayerType.JUDAS_B, // 24
|
|
7
8
|
]);
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { PlayerType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
|
-
export const CHARACTERS_WITH_FREE_DEVIL_DEALS_SET
|
|
4
|
-
|
|
4
|
+
export const CHARACTERS_WITH_FREE_DEVIL_DEALS_SET = new ReadonlySet<PlayerType>(
|
|
5
|
+
[PlayerType.LOST, PlayerType.LOST_B, PlayerType.JACOB_2_B],
|
|
6
|
+
);
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { PlayerType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* The set of characters where red heart containers will be turned into soul hearts (e.g. Blue
|
|
5
6
|
* Baby). This includes The Lost and Tainted Lost. This does not include Keeper or Tainted Keeper.
|
|
6
7
|
*/
|
|
7
|
-
export const CHARACTERS_WITH_NO_RED_HEARTS_SET
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
]);
|
|
8
|
+
export const CHARACTERS_WITH_NO_RED_HEARTS_SET = new ReadonlySet<PlayerType>([
|
|
9
|
+
PlayerType.BLUE_BABY, // 4
|
|
10
|
+
PlayerType.LOST, // 10
|
|
11
|
+
PlayerType.DARK_JUDAS, // 12
|
|
12
|
+
PlayerType.JUDAS_B, // 24
|
|
13
|
+
PlayerType.BLUE_BABY_B, // 25
|
|
14
|
+
PlayerType.LOST_B, // 31
|
|
15
|
+
PlayerType.FORGOTTEN_B, // 35
|
|
16
|
+
PlayerType.BETHANY_B, // 36
|
|
17
|
+
]);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { PlayerType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* The set of characters where soul hearts will be automatically stripped away (e.g. Bethany). This
|
|
5
6
|
* includes The Lost and Tainted Lost.
|
|
6
7
|
*/
|
|
7
|
-
export const CHARACTERS_WITH_NO_SOUL_HEARTS_SET
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
]);
|
|
8
|
+
export const CHARACTERS_WITH_NO_SOUL_HEARTS_SET = new ReadonlySet<PlayerType>([
|
|
9
|
+
PlayerType.LOST, // 10
|
|
10
|
+
PlayerType.KEEPER, // 14
|
|
11
|
+
PlayerType.BETHANY, // 18
|
|
12
|
+
PlayerType.LOST_B, // 31
|
|
13
|
+
PlayerType.KEEPER_B, // 33
|
|
14
|
+
]);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PickupVariant } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
3
|
|
|
3
|
-
export const CHEST_PICKUP_VARIANTS
|
|
4
|
+
export const CHEST_PICKUP_VARIANTS = new ReadonlySet<PickupVariant>([
|
|
4
5
|
PickupVariant.CHEST, // 50
|
|
5
6
|
PickupVariant.BOMB_CHEST, // 51
|
|
6
7
|
PickupVariant.SPIKED_CHEST, // 52
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The set of vanilla console commands, as documented here:
|
|
3
5
|
* https://bindingofisaacrebirth.fandom.com/wiki/Debug_Console
|
|
4
6
|
*/
|
|
5
|
-
export const CONSOLE_COMMANDS_SET
|
|
7
|
+
export const CONSOLE_COMMANDS_SET = new ReadonlySet<string>([
|
|
6
8
|
// Listed commands
|
|
7
9
|
"achievement",
|
|
8
10
|
"challenge",
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
UltraGreedVariant,
|
|
22
22
|
WallCreepVariant,
|
|
23
23
|
} from "isaac-typescript-definitions";
|
|
24
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
* "Armor" refers to the damage scaling mechanic. The following list corresponds to the entities
|
|
@@ -33,7 +34,7 @@ import {
|
|
|
33
34
|
*
|
|
34
35
|
* We use strings instead of a type + variant tuple so that we can have O(1) lookups.
|
|
35
36
|
*/
|
|
36
|
-
export const ENTITIES_WITH_ARMOR_SET
|
|
37
|
+
export const ENTITIES_WITH_ARMOR_SET = new ReadonlySet<string>([
|
|
37
38
|
`${EntityType.POOTER}.${PooterVariant.TAINTED_POOTER}`, // 14.2
|
|
38
39
|
`${EntityType.HIVE}.${HiveVariant.TAINTED_MULLIGAN}`, // 22.3
|
|
39
40
|
`${EntityType.BOOM_FLY}.${BoomFlyVariant.TAINTED_BOOM_FLY}`, // 25.6
|