isaacscript-common 20.18.0 → 21.0.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.
Files changed (344) hide show
  1. package/dist/index.d.ts +23 -33
  2. package/dist/isaacscript-common.lua +676 -508
  3. package/dist/src/callbacks.d.ts.map +1 -1
  4. package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -1
  5. package/dist/src/classes/callbacks/PostBoneSwing.lua +3 -2
  6. package/dist/src/classes/callbacks/PreNewLevel.d.ts.map +1 -1
  7. package/dist/src/classes/callbacks/PreNewLevel.lua +3 -2
  8. package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
  9. package/dist/src/classes/features/other/CustomTrapdoors.lua +4 -2
  10. package/dist/src/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
  11. package/dist/src/classes/features/other/DeployJSONRoom.lua +3 -2
  12. package/dist/src/classes/features/other/ModdedElementSets.d.ts.map +1 -1
  13. package/dist/src/classes/features/other/ModdedElementSets.lua +7 -4
  14. package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -1
  15. package/dist/src/classes/features/other/SaveDataManager.lua +3 -2
  16. package/dist/src/classes/features/other/customStages/backdrop.lua +3 -2
  17. package/dist/src/classes/features/other/customStages/shadows.d.ts.map +1 -1
  18. package/dist/src/classes/features/other/customStages/streakText.d.ts.map +1 -1
  19. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -1
  20. package/dist/src/classes/features/other/saveDataManager/restoreDefaults.lua +3 -2
  21. package/dist/src/core/constants.d.ts +4 -6
  22. package/dist/src/core/constants.d.ts.map +1 -1
  23. package/dist/src/core/constants.lua +17 -13
  24. package/dist/src/features.d.ts.map +1 -1
  25. package/dist/src/functions/bosses.d.ts.map +1 -1
  26. package/dist/src/functions/bosses.lua +3 -2
  27. package/dist/src/functions/cards.lua +3 -3
  28. package/dist/src/functions/characters.d.ts.map +1 -1
  29. package/dist/src/functions/characters.lua +3 -2
  30. package/dist/src/functions/doors.d.ts.map +1 -1
  31. package/dist/src/functions/doors.lua +9 -7
  32. package/dist/src/functions/emptyRoom.d.ts.map +1 -1
  33. package/dist/src/functions/emptyRoom.lua +3 -2
  34. package/dist/src/functions/entities.d.ts.map +1 -1
  35. package/dist/src/functions/entities.lua +67 -64
  36. package/dist/src/functions/globals.d.ts.map +1 -1
  37. package/dist/src/functions/globals.lua +6 -4
  38. package/dist/src/functions/gridEntities.d.ts.map +1 -1
  39. package/dist/src/functions/gridEntities.lua +5 -3
  40. package/dist/src/functions/input.d.ts.map +1 -1
  41. package/dist/src/functions/input.lua +4 -3
  42. package/dist/src/functions/logEntities.d.ts.map +1 -1
  43. package/dist/src/functions/logEntities.lua +3 -2
  44. package/dist/src/functions/npcs.d.ts.map +1 -1
  45. package/dist/src/functions/npcs.lua +4 -3
  46. package/dist/src/functions/playerIndex.d.ts.map +1 -1
  47. package/dist/src/functions/playerIndex.lua +3 -2
  48. package/dist/src/functions/readOnly.d.ts +26 -0
  49. package/dist/src/functions/readOnly.d.ts.map +1 -0
  50. package/dist/src/functions/readOnly.lua +31 -0
  51. package/dist/src/functions/roomGrid.lua +4 -1
  52. package/dist/src/functions/roomShapeWalls.d.ts.map +1 -1
  53. package/dist/src/functions/roomShapeWalls.lua +9 -10
  54. package/dist/src/functions/serialization.d.ts.map +1 -1
  55. package/dist/src/functions/serialization.lua +3 -2
  56. package/dist/src/functions/slots.d.ts.map +1 -1
  57. package/dist/src/functions/slots.lua +3 -2
  58. package/dist/src/functions/stats.d.ts.map +1 -1
  59. package/dist/src/functions/stats.lua +3 -2
  60. package/dist/src/functions/transformations.d.ts.map +1 -1
  61. package/dist/src/functions/transformations.lua +6 -3
  62. package/dist/src/functions/utils.d.ts +1 -1
  63. package/dist/src/functions/utils.lua +1 -1
  64. package/dist/src/index.d.ts +2 -1
  65. package/dist/src/index.d.ts.map +1 -1
  66. package/dist/src/index.lua +16 -0
  67. package/dist/src/maps/PHDPillConversions.d.ts.map +1 -1
  68. package/dist/src/maps/PHDPillConversions.lua +3 -2
  69. package/dist/src/maps/cardNameToTypeMap.d.ts.map +1 -1
  70. package/dist/src/maps/cardNameToTypeMap.lua +3 -2
  71. package/dist/src/maps/characterNameToTypeMap.d.ts.map +1 -1
  72. package/dist/src/maps/characterNameToTypeMap.lua +3 -2
  73. package/dist/src/maps/collectibleDescriptionMap.d.ts.map +1 -1
  74. package/dist/src/maps/collectibleDescriptionMap.lua +3 -2
  75. package/dist/src/maps/collectibleNameToTypeMap.d.ts +5 -0
  76. package/dist/src/maps/collectibleNameToTypeMap.d.ts.map +1 -1
  77. package/dist/src/maps/collectibleNameToTypeMap.lua +10 -8
  78. package/dist/src/maps/collectibleTypeToNameMap.d.ts.map +1 -1
  79. package/dist/src/maps/collectibleTypeToNameMap.lua +3 -2
  80. package/dist/src/maps/defaultPlayerStatMap.d.ts +5 -2
  81. package/dist/src/maps/defaultPlayerStatMap.d.ts.map +1 -1
  82. package/dist/src/maps/defaultPlayerStatMap.lua +3 -2
  83. package/dist/src/maps/falsePHDPillConversions.d.ts.map +1 -1
  84. package/dist/src/maps/falsePHDPillConversions.lua +3 -2
  85. package/dist/src/maps/gridEntityTypeToBrokenStateMap.d.ts +1 -1
  86. package/dist/src/maps/gridEntityTypeToBrokenStateMap.d.ts.map +1 -1
  87. package/dist/src/maps/gridEntityTypeToBrokenStateMap.lua +3 -2
  88. package/dist/src/maps/gridEntityXMLMap.d.ts +1 -4
  89. package/dist/src/maps/gridEntityXMLMap.d.ts.map +1 -1
  90. package/dist/src/maps/gridEntityXMLMap.lua +3 -2
  91. package/dist/src/maps/keyboardToString.d.ts.map +1 -1
  92. package/dist/src/maps/keyboardToString.lua +3 -2
  93. package/dist/src/maps/pillNameToEffectMap.d.ts.map +1 -1
  94. package/dist/src/maps/pillNameToEffectMap.lua +3 -2
  95. package/dist/src/maps/roomNameToTypeMap.d.ts.map +1 -1
  96. package/dist/src/maps/roomNameToTypeMap.lua +3 -2
  97. package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.d.ts +1 -1
  98. package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.d.ts.map +1 -1
  99. package/dist/src/maps/roomShapeToTopLeftWallGridIndexMap.lua +3 -2
  100. package/dist/src/maps/transformationNameToPlayerFormMap.d.ts.map +1 -1
  101. package/dist/src/maps/transformationNameToPlayerFormMap.lua +3 -2
  102. package/dist/src/maps/trinketDescriptionMap.d.ts.map +1 -1
  103. package/dist/src/maps/trinketDescriptionMap.lua +3 -2
  104. package/dist/src/maps/trinketNameToTypeMap.d.ts +5 -0
  105. package/dist/src/maps/trinketNameToTypeMap.d.ts.map +1 -1
  106. package/dist/src/maps/trinketNameToTypeMap.lua +10 -8
  107. package/dist/src/maps/trinketTypeToNameMap.d.ts.map +1 -1
  108. package/dist/src/maps/trinketTypeToNameMap.lua +3 -2
  109. package/dist/src/objects/LRoomShapeToRectangles.d.ts +8 -6
  110. package/dist/src/objects/LRoomShapeToRectangles.d.ts.map +1 -1
  111. package/dist/src/objects/LRoomShapeToRectangles.lua +19 -17
  112. package/dist/src/objects/backdropTypeToRockAltType.d.ts.map +1 -1
  113. package/dist/src/objects/bossNamePNGFileNames.d.ts.map +1 -1
  114. package/dist/src/objects/bossPortraitPNGFileNames.d.ts.map +1 -1
  115. package/dist/src/objects/cardDescriptions.d.ts.map +1 -1
  116. package/dist/src/objects/cardNames.d.ts.map +1 -1
  117. package/dist/src/objects/challengeNames.d.ts.map +1 -1
  118. package/dist/src/objects/characterDamageMultipliers.d.ts.map +1 -1
  119. package/dist/src/objects/characterNames.d.ts.map +1 -1
  120. package/dist/src/objects/coinSubTypeToValue.d.ts.map +1 -1
  121. package/dist/src/objects/directionNames.d.ts.map +1 -1
  122. package/dist/src/objects/directionToDegrees.d.ts.map +1 -1
  123. package/dist/src/objects/directionToMoveAction.d.ts.map +1 -1
  124. package/dist/src/objects/directionToShootAction.d.ts.map +1 -1
  125. package/dist/src/objects/directionToVector.d.ts +5 -2
  126. package/dist/src/objects/directionToVector.d.ts.map +1 -1
  127. package/dist/src/objects/directionToVector.lua +6 -4
  128. package/dist/src/objects/doorSlotFlagToDoorSlot.d.ts.map +1 -1
  129. package/dist/src/objects/doorSlotToDirection.d.ts.map +1 -1
  130. package/dist/src/objects/doorSlotToDoorSlotFlag.d.ts.map +1 -1
  131. package/dist/src/objects/isaacAPIClassTypeToBrand.d.ts.map +1 -1
  132. package/dist/src/objects/languageNames.d.ts.map +1 -1
  133. package/dist/src/objects/oppositeDoorSlots.d.ts.map +1 -1
  134. package/dist/src/objects/pillEffectClasses.d.ts.map +1 -1
  135. package/dist/src/objects/pillEffectNames.d.ts.map +1 -1
  136. package/dist/src/objects/pillEffectTypes.d.ts.map +1 -1
  137. package/dist/src/objects/playerNamePNGFileNames.d.ts.map +1 -1
  138. package/dist/src/objects/playerPortraitPNGFileNames.d.ts.map +1 -1
  139. package/dist/src/objects/roomShapeBounds.d.ts +12 -2
  140. package/dist/src/objects/roomShapeBounds.d.ts.map +1 -1
  141. package/dist/src/objects/roomShapeCorners.d.ts +237 -3
  142. package/dist/src/objects/roomShapeCorners.d.ts.map +1 -1
  143. package/dist/src/objects/roomShapeCorners.lua +58 -56
  144. package/dist/src/objects/roomShapeLayoutSizes.d.ts +12 -2
  145. package/dist/src/objects/roomShapeLayoutSizes.d.ts.map +1 -1
  146. package/dist/src/objects/roomShapeToBottomRightPosition.d.ts +12 -2
  147. package/dist/src/objects/roomShapeToBottomRightPosition.d.ts.map +1 -1
  148. package/dist/src/objects/roomShapeToBottomRightPosition.lua +10 -8
  149. package/dist/src/objects/roomShapeToDoorSlotCoordinates.d.ts +88 -2
  150. package/dist/src/objects/roomShapeToDoorSlotCoordinates.d.ts.map +1 -1
  151. package/dist/src/objects/roomShapeToDoorSlotCoordinates.lua +71 -74
  152. package/dist/src/objects/roomShapeToDoorSlots.d.ts +13 -2
  153. package/dist/src/objects/roomShapeToDoorSlots.d.ts.map +1 -1
  154. package/dist/src/objects/roomShapeToDoorSlots.lua +10 -9
  155. package/dist/src/objects/roomShapeToDoorSlotsToGridIndexDelta.d.ts.map +1 -1
  156. package/dist/src/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +14 -13
  157. package/dist/src/objects/roomShapeToGridWidth.d.ts.map +1 -1
  158. package/dist/src/objects/roomShapeToTopLeftPosition.d.ts +12 -2
  159. package/dist/src/objects/roomShapeToTopLeftPosition.d.ts.map +1 -1
  160. package/dist/src/objects/roomShapeToTopLeftPosition.lua +5 -3
  161. package/dist/src/objects/roomShapeVolumes.d.ts.map +1 -1
  162. package/dist/src/objects/roomTypeGotoPrefixes.d.ts.map +1 -1
  163. package/dist/src/objects/roomTypeNames.d.ts.map +1 -1
  164. package/dist/src/objects/stageToMusic.d.ts.map +1 -1
  165. package/dist/src/objects/stageTypeSuffixes.d.ts.map +1 -1
  166. package/dist/src/objects/stageTypeToLetter.d.ts.map +1 -1
  167. package/dist/src/objects/transformationNames.d.ts.map +1 -1
  168. package/dist/src/objects/versusScreenBackgroundColors.d.ts +29 -2
  169. package/dist/src/objects/versusScreenBackgroundColors.d.ts.map +1 -1
  170. package/dist/src/objects/versusScreenBackgroundColors.lua +29 -27
  171. package/dist/src/objects/versusScreenDirtSpotColors.d.ts +29 -2
  172. package/dist/src/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
  173. package/dist/src/objects/versusScreenDirtSpotColors.lua +29 -27
  174. package/dist/src/sets/LRoomShapesSet.d.ts.map +1 -1
  175. package/dist/src/sets/LRoomShapesSet.lua +3 -2
  176. package/dist/src/sets/bossSets.d.ts +2 -3
  177. package/dist/src/sets/bossSets.d.ts.map +1 -1
  178. package/dist/src/sets/bossSets.lua +52 -49
  179. package/dist/src/sets/charactersThatStartWithAnActiveItemSet.d.ts.map +1 -1
  180. package/dist/src/sets/charactersThatStartWithAnActiveItemSet.lua +3 -2
  181. package/dist/src/sets/charactersWithBlackHeartFromEternalHeartSet.d.ts.map +1 -1
  182. package/dist/src/sets/charactersWithBlackHeartFromEternalHeartSet.lua +3 -2
  183. package/dist/src/sets/charactersWithFreeDevilDealsSet.d.ts.map +1 -1
  184. package/dist/src/sets/charactersWithFreeDevilDealsSet.lua +3 -2
  185. package/dist/src/sets/charactersWithNoRedHeartsSet.d.ts.map +1 -1
  186. package/dist/src/sets/charactersWithNoRedHeartsSet.lua +3 -2
  187. package/dist/src/sets/charactersWithNoSoulHeartsSet.d.ts.map +1 -1
  188. package/dist/src/sets/charactersWithNoSoulHeartsSet.lua +3 -2
  189. package/dist/src/sets/chestPickupVariantsSet.d.ts.map +1 -1
  190. package/dist/src/sets/chestPickupVariantsSet.lua +3 -2
  191. package/dist/src/sets/consoleCommandsSet.d.ts.map +1 -1
  192. package/dist/src/sets/consoleCommandsSet.lua +3 -2
  193. package/dist/src/sets/entitiesWithArmorSet.d.ts.map +1 -1
  194. package/dist/src/sets/entitiesWithArmorSet.lua +3 -2
  195. package/dist/src/sets/familiarsThatShootPlayerTearsSet.d.ts.map +1 -1
  196. package/dist/src/sets/familiarsThatShootPlayerTearsSet.lua +3 -2
  197. package/dist/src/sets/itemConfigCardTypesForCardsSet.d.ts +4 -0
  198. package/dist/src/sets/itemConfigCardTypesForCardsSet.d.ts.map +1 -0
  199. package/dist/src/sets/itemConfigCardTypesForCardsSet.lua +10 -0
  200. package/dist/src/sets/lostStyleCharactersSet.d.ts.map +1 -1
  201. package/dist/src/sets/lostStyleCharactersSet.lua +3 -2
  202. package/dist/src/sets/mineShaftRoomSubTypesSet.d.ts.map +1 -1
  203. package/dist/src/sets/mineShaftRoomSubTypesSet.lua +3 -2
  204. package/dist/src/sets/narrowRoomShapesSet.d.ts.map +1 -1
  205. package/dist/src/sets/narrowRoomShapesSet.lua +3 -2
  206. package/dist/src/sets/redHeartSubTypesSet.d.ts.map +1 -1
  207. package/dist/src/sets/redHeartSubTypesSet.lua +3 -2
  208. package/dist/src/sets/sinEntityTypesSet.d.ts.map +1 -1
  209. package/dist/src/sets/sinEntityTypesSet.lua +3 -2
  210. package/dist/src/sets/singleUseActiveCollectibleTypesSet.d.ts.map +1 -1
  211. package/dist/src/sets/singleUseActiveCollectibleTypesSet.lua +3 -2
  212. package/dist/src/sets/storyBossesSet.d.ts.map +1 -1
  213. package/dist/src/sets/storyBossesSet.lua +3 -2
  214. package/dist/src/types/PickingUpItem.d.ts.map +1 -1
  215. package/dist/src/types/PickingUpItem.lua +3 -2
  216. package/dist/src/types/ReadonlyMap.d.ts +9 -0
  217. package/dist/src/types/ReadonlyMap.d.ts.map +1 -0
  218. package/dist/src/types/ReadonlyMap.lua +6 -0
  219. package/dist/src/types/ReadonlySet.d.ts +8 -0
  220. package/dist/src/types/ReadonlySet.d.ts.map +1 -0
  221. package/dist/src/types/ReadonlySet.lua +6 -0
  222. package/package.json +1 -1
  223. package/src/callbacks.ts +1 -2
  224. package/src/classes/callbacks/PostBoneSwing.ts +2 -1
  225. package/src/classes/callbacks/PreNewLevel.ts +2 -1
  226. package/src/classes/features/other/CustomTrapdoors.ts +2 -1
  227. package/src/classes/features/other/DeployJSONRoom.ts +5 -2
  228. package/src/classes/features/other/ModdedElementSets.ts +20 -22
  229. package/src/classes/features/other/SaveDataManager.ts +2 -1
  230. package/src/classes/features/other/customStages/backdrop.ts +3 -3
  231. package/src/classes/features/other/customStages/shadows.ts +1 -2
  232. package/src/classes/features/other/customStages/streakText.ts +1 -2
  233. package/src/classes/features/other/saveDataManager/restoreDefaults.ts +2 -1
  234. package/src/core/constants.ts +18 -17
  235. package/src/features.ts +1 -2
  236. package/src/functions/bosses.ts +2 -1
  237. package/src/functions/cards.ts +2 -2
  238. package/src/functions/characters.ts +2 -1
  239. package/src/functions/doors.ts +15 -4
  240. package/src/functions/emptyRoom.ts +2 -1
  241. package/src/functions/entities.ts +3 -2
  242. package/src/functions/globals.ts +4 -3
  243. package/src/functions/gridEntities.ts +5 -4
  244. package/src/functions/input.ts +3 -2
  245. package/src/functions/logEntities.ts +2 -1
  246. package/src/functions/npcs.ts +3 -2
  247. package/src/functions/playerIndex.ts +2 -1
  248. package/src/functions/readOnly.ts +42 -0
  249. package/src/functions/roomGrid.ts +2 -2
  250. package/src/functions/roomShapeWalls.ts +3 -5
  251. package/src/functions/serialization.ts +2 -3
  252. package/src/functions/slots.ts +2 -1
  253. package/src/functions/stats.ts +2 -1
  254. package/src/functions/transformations.ts +19 -18
  255. package/src/functions/utils.ts +1 -1
  256. package/src/index.ts +2 -1
  257. package/src/maps/PHDPillConversions.ts +19 -19
  258. package/src/maps/cardNameToTypeMap.ts +2 -1
  259. package/src/maps/characterNameToTypeMap.ts +86 -86
  260. package/src/maps/collectibleDescriptionMap.ts +726 -724
  261. package/src/maps/collectibleNameToTypeMap.ts +10 -7
  262. package/src/maps/collectibleTypeToNameMap.ts +3 -4
  263. package/src/maps/defaultPlayerStatMap.ts +2 -1
  264. package/src/maps/falsePHDPillConversions.ts +36 -33
  265. package/src/maps/gridEntityTypeToBrokenStateMap.ts +3 -2
  266. package/src/maps/gridEntityXMLMap.ts +3 -2
  267. package/src/maps/keyboardToString.ts +3 -2
  268. package/src/maps/pillNameToEffectMap.ts +85 -86
  269. package/src/maps/roomNameToTypeMap.ts +2 -1
  270. package/src/maps/roomShapeToTopLeftWallGridIndexMap.ts +3 -2
  271. package/src/maps/transformationNameToPlayerFormMap.ts +3 -2
  272. package/src/maps/trinketDescriptionMap.ts +191 -192
  273. package/src/maps/trinketNameToTypeMap.ts +10 -7
  274. package/src/maps/trinketTypeToNameMap.ts +191 -193
  275. package/src/objects/LRoomShapeToRectangles.ts +35 -28
  276. package/src/objects/backdropTypeToRockAltType.ts +1 -2
  277. package/src/objects/bossNamePNGFileNames.ts +1 -2
  278. package/src/objects/bossPortraitPNGFileNames.ts +1 -2
  279. package/src/objects/cardDescriptions.ts +1 -2
  280. package/src/objects/cardNames.ts +1 -2
  281. package/src/objects/challengeNames.ts +1 -2
  282. package/src/objects/characterDamageMultipliers.ts +1 -2
  283. package/src/objects/characterNames.ts +1 -2
  284. package/src/objects/coinSubTypeToValue.ts +1 -2
  285. package/src/objects/directionNames.ts +1 -2
  286. package/src/objects/directionToDegrees.ts +1 -2
  287. package/src/objects/directionToMoveAction.ts +1 -2
  288. package/src/objects/directionToShootAction.ts +1 -2
  289. package/src/objects/directionToVector.ts +7 -10
  290. package/src/objects/doorSlotFlagToDoorSlot.ts +1 -2
  291. package/src/objects/doorSlotToDirection.ts +1 -2
  292. package/src/objects/doorSlotToDoorSlotFlag.ts +1 -2
  293. package/src/objects/isaacAPIClassTypeToBrand.ts +1 -5
  294. package/src/objects/languageNames.ts +1 -2
  295. package/src/objects/oppositeDoorSlots.ts +1 -2
  296. package/src/objects/pillEffectClasses.ts +1 -2
  297. package/src/objects/pillEffectNames.ts +1 -2
  298. package/src/objects/pillEffectTypes.ts +1 -2
  299. package/src/objects/playerNamePNGFileNames.ts +1 -2
  300. package/src/objects/playerPortraitPNGFileNames.ts +1 -2
  301. package/src/objects/roomShapeBounds.ts +3 -7
  302. package/src/objects/roomShapeCorners.ts +59 -62
  303. package/src/objects/roomShapeLayoutSizes.ts +6 -10
  304. package/src/objects/roomShapeToBottomRightPosition.ts +11 -17
  305. package/src/objects/roomShapeToDoorSlotCoordinates.ts +93 -94
  306. package/src/objects/roomShapeToDoorSlots.ts +11 -14
  307. package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +15 -14
  308. package/src/objects/roomShapeToGridWidth.ts +1 -2
  309. package/src/objects/roomShapeToTopLeftPosition.ts +6 -9
  310. package/src/objects/roomShapeVolumes.ts +1 -2
  311. package/src/objects/roomTypeGotoPrefixes.ts +1 -2
  312. package/src/objects/roomTypeNames.ts +1 -2
  313. package/src/objects/stageToMusic.ts +10 -11
  314. package/src/objects/stageTypeSuffixes.ts +1 -2
  315. package/src/objects/stageTypeToLetter.ts +1 -2
  316. package/src/objects/transformationNames.ts +1 -2
  317. package/src/objects/versusScreenBackgroundColors.ts +30 -33
  318. package/src/objects/versusScreenDirtSpotColors.ts +30 -33
  319. package/src/sets/LRoomShapesSet.ts +2 -1
  320. package/src/sets/bossSets.ts +51 -49
  321. package/src/sets/charactersThatStartWithAnActiveItemSet.ts +3 -2
  322. package/src/sets/charactersWithBlackHeartFromEternalHeartSet.ts +3 -2
  323. package/src/sets/charactersWithFreeDevilDealsSet.ts +4 -2
  324. package/src/sets/charactersWithNoRedHeartsSet.ts +11 -11
  325. package/src/sets/charactersWithNoSoulHeartsSet.ts +8 -8
  326. package/src/sets/chestPickupVariantsSet.ts +2 -1
  327. package/src/sets/consoleCommandsSet.ts +3 -1
  328. package/src/sets/entitiesWithArmorSet.ts +2 -1
  329. package/src/sets/familiarsThatShootPlayerTearsSet.ts +3 -2
  330. package/src/sets/itemConfigCardTypesForCardsSet.ts +11 -0
  331. package/src/sets/lostStyleCharactersSet.ts +2 -1
  332. package/src/sets/mineShaftRoomSubTypesSet.ts +8 -8
  333. package/src/sets/narrowRoomShapesSet.ts +2 -1
  334. package/src/sets/redHeartSubTypesSet.ts +2 -1
  335. package/src/sets/sinEntityTypesSet.ts +2 -1
  336. package/src/sets/singleUseActiveCollectibleTypesSet.ts +3 -2
  337. package/src/sets/storyBossesSet.ts +2 -1
  338. package/src/types/PickingUpItem.ts +2 -1
  339. package/src/types/ReadonlyMap.ts +13 -0
  340. package/src/types/ReadonlySet.ts +9 -0
  341. package/dist/src/types/HasAllEnumKeys.d.ts +0 -26
  342. package/dist/src/types/HasAllEnumKeys.d.ts.map +0 -1
  343. package/dist/src/types/HasAllEnumKeys.lua +0 -2
  344. package/src/types/HasAllEnumKeys.ts +0 -25
@@ -1,10 +1,11 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local FamiliarVariant = ____isaac_2Dtypescript_2Ddefinitions.FamiliarVariant
7
- ____exports.FAMILIARS_THAT_SHOOT_PLAYER_TEARS_SET = __TS__New(Set, {
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ ____exports.FAMILIARS_THAT_SHOOT_PLAYER_TEARS_SET = __TS__New(ReadonlySet, {
8
9
  FamiliarVariant.SCISSORS,
9
10
  FamiliarVariant.INCUBUS,
10
11
  FamiliarVariant.FATES_REWARD,
@@ -0,0 +1,4 @@
1
+ import { ItemConfigCardType } from "isaac-typescript-definitions";
2
+ /** The set of all `ItemConfigCardType` values that are not a rune or special object. */
3
+ export declare const ITEM_CONFIG_CARD_TYPES_FOR_CARDS_SET: ReadonlySet<ItemConfigCardType>;
4
+ //# sourceMappingURL=itemConfigCardTypesForCardsSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemConfigCardTypesForCardsSet.d.ts","sourceRoot":"","sources":["../../../src/sets/itemConfigCardTypesForCardsSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE,wFAAwF;AACxF,eAAO,MAAM,oCAAoC,iCAM7C,CAAC"}
@@ -0,0 +1,10 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local __TS__New = ____lualib.__TS__New
3
+ local ____exports = {}
4
+ local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
5
+ local ItemConfigCardType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigCardType
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ --- The set of all `ItemConfigCardType` values that are not a rune or special object.
9
+ ____exports.ITEM_CONFIG_CARD_TYPES_FOR_CARDS_SET = __TS__New(ReadonlySet, {ItemConfigCardType.TAROT, ItemConfigCardType.SUIT, ItemConfigCardType.SPECIAL, ItemConfigCardType.TAROT_REVERSE})
10
+ return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"lostStyleCharactersSet.d.ts","sourceRoot":"","sources":["../../../src/sets/lostStyleCharactersSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,UAAU,CAM5D,CAAC"}
1
+ {"version":3,"file":"lostStyleCharactersSet.d.ts","sourceRoot":"","sources":["../../../src/sets/lostStyleCharactersSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,yBAMpC,CAAC"}
@@ -1,12 +1,13 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
7
8
  --- This is the set of characters that look like The Lost and play the "LostDeath" animation when
8
9
  -- they die.
9
- ____exports.LOST_STYLE_CHARACTERS_SET = __TS__New(Set, {
10
+ ____exports.LOST_STYLE_CHARACTERS_SET = __TS__New(ReadonlySet, {
10
11
  PlayerType.LOST,
11
12
  PlayerType.SOUL,
12
13
  PlayerType.LOST_B,
@@ -1 +1 @@
1
- {"version":3,"file":"mineShaftRoomSubTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/mineShaftRoomSubTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,gBAAgB,CAOnE,CAAC"}
1
+ {"version":3,"file":"mineShaftRoomSubTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/mineShaftRoomSubTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,eAAO,MAAM,4BAA4B,+BAMvC,CAAC"}
@@ -1,10 +1,11 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local MinesRoomSubType = ____isaac_2Dtypescript_2Ddefinitions.MinesRoomSubType
7
- ____exports.MINE_SHAFT_ROOM_SUB_TYPE_SET = __TS__New(Set, {
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ ____exports.MINE_SHAFT_ROOM_SUB_TYPE_SET = __TS__New(ReadonlySet, {
8
9
  MinesRoomSubType.MINESHAFT_ENTRANCE,
9
10
  MinesRoomSubType.MINESHAFT_LOBBY,
10
11
  MinesRoomSubType.MINESHAFT_KNIFE_PIECE,
@@ -1 +1 @@
1
- {"version":3,"file":"narrowRoomShapesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/narrowRoomShapesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,SAAS,CAKxD,CAAC"}
1
+ {"version":3,"file":"narrowRoomShapesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/narrowRoomShapesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,eAAO,MAAM,sBAAsB,wBAKjC,CAAC"}
@@ -1,8 +1,9 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local RoomShape = ____isaac_2Dtypescript_2Ddefinitions.RoomShape
7
- ____exports.NARROW_ROOM_SHAPES_SET = __TS__New(Set, {RoomShape.IH, RoomShape.IV, RoomShape.IIV, RoomShape.IIH})
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ ____exports.NARROW_ROOM_SHAPES_SET = __TS__New(ReadonlySet, {RoomShape.IH, RoomShape.IV, RoomShape.IIV, RoomShape.IIH})
8
9
  return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"redHeartSubTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/redHeartSubTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,YAAY,CAI5D,CAAC"}
1
+ {"version":3,"file":"redHeartSubTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/redHeartSubTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,eAAO,MAAM,uBAAuB,2BAIlC,CAAC"}
@@ -1,8 +1,9 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local HeartSubType = ____isaac_2Dtypescript_2Ddefinitions.HeartSubType
7
- ____exports.RED_HEART_SUB_TYPES_SET = __TS__New(Set, {HeartSubType.FULL, HeartSubType.HALF, HeartSubType.DOUBLE_PACK})
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ ____exports.RED_HEART_SUB_TYPES_SET = __TS__New(ReadonlySet, {HeartSubType.FULL, HeartSubType.HALF, HeartSubType.DOUBLE_PACK})
8
9
  return ____exports
@@ -1 +1 @@
1
- {"version":3,"file":"sinEntityTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/sinEntityTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,UAAU,CAQvD,CAAC"}
1
+ {"version":3,"file":"sinEntityTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/sinEntityTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,eAAO,MAAM,oBAAoB,yBAQ/B,CAAC"}
@@ -1,10 +1,11 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
7
- ____exports.SIN_ENTITY_TYPES_SET = __TS__New(Set, {
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ ____exports.SIN_ENTITY_TYPES_SET = __TS__New(ReadonlySet, {
8
9
  EntityType.SLOTH,
9
10
  EntityType.LUST,
10
11
  EntityType.WRATH,
@@ -1 +1 @@
1
- {"version":3,"file":"singleUseActiveCollectibleTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/singleUseActiveCollectibleTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,eAAO,MAAM,uCAAuC,EAAE,WAAW,CAAC,eAAe,CAU7E,CAAC"}
1
+ {"version":3,"file":"singleUseActiveCollectibleTypesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/singleUseActiveCollectibleTypesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,eAAO,MAAM,uCAAuC,8BAUhD,CAAC"}
@@ -1,10 +1,11 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
7
- ____exports.SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET = __TS__New(Set, {
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ ____exports.SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET = __TS__New(ReadonlySet, {
8
9
  CollectibleType.FORGET_ME_NOW,
9
10
  CollectibleType.EDENS_SOUL,
10
11
  CollectibleType.ALABASTER_BOX,
@@ -1 +1 @@
1
- {"version":3,"file":"storyBossesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/storyBossesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAcnD,CAAC"}
1
+ {"version":3,"file":"storyBossesSet.d.ts","sourceRoot":"","sources":["../../../src/sets/storyBossesSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,eAAO,MAAM,gBAAgB,yBAc3B,CAAC"}
@@ -1,10 +1,11 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local EntityType = ____isaac_2Dtypescript_2Ddefinitions.EntityType
7
- ____exports.STORY_BOSSES_SET = __TS__New(Set, {
6
+ local ____ReadonlySet = require("src.types.ReadonlySet")
7
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
+ ____exports.STORY_BOSSES_SET = __TS__New(ReadonlySet, {
8
9
  EntityType.MOM,
9
10
  EntityType.MOMS_HEART,
10
11
  EntityType.SATAN,
@@ -1 +1 @@
1
- {"version":3,"file":"PickingUpItem.d.ts","sourceRoot":"","sources":["../../../src/types/PickingUpItem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,wBAAwB,GACxB,oBAAoB,CAAC;AAEzB,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;IAExB,oEAAoE;IACpE,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,+BAA+B;AAC/B,MAAM,WAAW,wBAAwB;IACvC,wFAAwF;IACxF,QAAQ,EAAE,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAEjE,oEAAoE;IACpE,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAE3B,oEAAoE;IACpE,OAAO,EAAE,WAAW,CAAC;CACtB;AAKD,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAGrE;AAQD,6DAA6D;AAC7D,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,oBAAoB,CAEvC;AAED,6DAA6D;AAC7D,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,wBAAwB,CAE3C;AAED,6DAA6D;AAC7D,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,oBAAoB,CAEvC"}
1
+ {"version":3,"file":"PickingUpItem.d.ts","sourceRoot":"","sources":["../../../src/types/PickingUpItem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,QAAQ,EACR,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAGtC,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,wBAAwB,GACxB,oBAAoB,CAAC;AAEzB,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,wFAAwF;IACxF,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;IAExB,oEAAoE;IACpE,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,+BAA+B;AAC/B,MAAM,WAAW,wBAAwB;IACvC,wFAAwF;IACxF,QAAQ,EAAE,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAEjE,oEAAoE;IACpE,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAE3B,oEAAoE;IACpE,OAAO,EAAE,WAAW,CAAC;CACtB;AAKD,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAGrE;AAQD,6DAA6D;AAC7D,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,oBAAoB,CAEvC;AAED,6DAA6D;AAC7D,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,wBAAwB,CAE3C;AAED,6DAA6D;AAC7D,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,GAC3B,aAAa,IAAI,oBAAoB,CAEvC"}
@@ -1,10 +1,11 @@
1
1
  local ____lualib = require("lualib_bundle")
2
- local Set = ____lualib.Set
3
2
  local __TS__New = ____lualib.__TS__New
4
3
  local ____exports = {}
5
4
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
5
  local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
7
6
  local ItemType = ____isaac_2Dtypescript_2Ddefinitions.ItemType
7
+ local ____ReadonlySet = require("src.types.ReadonlySet")
8
+ local ReadonlySet = ____ReadonlySet.ReadonlySet
8
9
  local DEFAULT_ITEM_TYPE = ItemType.NULL
9
10
  local DEFAULT_SUB_TYPE = CollectibleType.NULL
10
11
  function ____exports.newPickingUpItem(self)
@@ -14,7 +15,7 @@ function ____exports.resetPickingUpItem(self, pickingUpItem)
14
15
  pickingUpItem.itemType = DEFAULT_ITEM_TYPE
15
16
  pickingUpItem.subType = DEFAULT_SUB_TYPE
16
17
  end
17
- local COLLECTIBLE_ITEM_TYPES = __TS__New(Set, {ItemType.PASSIVE, ItemType.ACTIVE, ItemType.FAMILIAR})
18
+ local COLLECTIBLE_ITEM_TYPES = __TS__New(ReadonlySet, {ItemType.PASSIVE, ItemType.ACTIVE, ItemType.FAMILIAR})
18
19
  --- Helper function to narrow the type of `PickingUpItem`.
19
20
  function ____exports.isPickingUpItemNull(self, pickingUpItem)
20
21
  return pickingUpItem.itemType == ItemType.NULL
@@ -0,0 +1,9 @@
1
+ interface ReadonlyMapConstructor {
2
+ new (): ReadonlyMap<any, any>;
3
+ new <K, V>(entries?: ReadonlyArray<readonly [K, V]> | null): ReadonlyMap<K, V>;
4
+ readonly prototype: ReadonlyMap<any, any>;
5
+ }
6
+ /** An alias for the `Map` constructor that returns a read-only map. */
7
+ export declare const ReadonlyMap: ReadonlyMapConstructor;
8
+ export {};
9
+ //# sourceMappingURL=ReadonlyMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadonlyMap.d.ts","sourceRoot":"","sources":["../../../src/types/ReadonlyMap.ts"],"names":[],"mappings":"AAEA,UAAU,sBAAsB;IAC9B,QAAQ,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,WAAW,CACtE,CAAC,EACD,CAAC,CACF,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAC3C;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,wBAAgC,CAAC"}
@@ -0,0 +1,6 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local Map = ____lualib.Map
3
+ local ____exports = {}
4
+ --- An alias for the `Map` constructor that returns a read-only map.
5
+ ____exports.ReadonlyMap = Map
6
+ return ____exports
@@ -0,0 +1,8 @@
1
+ interface ReadonlySetConstructor {
2
+ new <T = any>(values?: readonly T[] | null): ReadonlySet<T>;
3
+ readonly prototype: ReadonlySet<any>;
4
+ }
5
+ /** An alias for the `Set` constructor that returns a read-only set. */
6
+ export declare const ReadonlySet: ReadonlySetConstructor;
7
+ export {};
8
+ //# sourceMappingURL=ReadonlySet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadonlySet.d.ts","sourceRoot":"","sources":["../../../src/types/ReadonlySet.ts"],"names":[],"mappings":"AAEA,UAAU,sBAAsB;IAC9B,KAAK,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;CACtC;AAED,uEAAuE;AACvE,eAAO,MAAM,WAAW,wBAAgC,CAAC"}
@@ -0,0 +1,6 @@
1
+ local ____lualib = require("lualib_bundle")
2
+ local Set = ____lualib.Set
3
+ local ____exports = {}
4
+ --- An alias for the `Set` constructor that returns a read-only set.
5
+ ____exports.ReadonlySet = Set
6
+ return ____exports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "20.18.0",
3
+ "version": "21.0.0",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
package/src/callbacks.ts CHANGED
@@ -2,7 +2,6 @@ import * as cc from "./callbackClasses";
2
2
  import { ModCallbackCustom } from "./enums/ModCallbackCustom";
3
3
  import { getEnumValues } from "./functions/enums";
4
4
  import { AnyClass } from "./types/AnyClass";
5
- import { HasAllEnumKeys } from "./types/HasAllEnumKeys";
6
5
 
7
6
  const MOD_CALLBACK_CUSTOM_TO_CLASS = {
8
7
  [ModCallbackCustom.ENTITY_TAKE_DMG_FILTER]: cc.EntityTakeDmgFilter,
@@ -128,7 +127,7 @@ const MOD_CALLBACK_CUSTOM_TO_CLASS = {
128
127
  [ModCallbackCustom.PRE_NPC_COLLISION_FILTER]: cc.PreNPCCollisionFilter,
129
128
  [ModCallbackCustom.PRE_NPC_UPDATE_FILTER]: cc.PreNPCUpdateFilter,
130
129
  [ModCallbackCustom.PRE_ROOM_ENTITY_SPAWN_FILTER]: cc.PreRoomEntitySpawnFilter,
131
- } as const satisfies HasAllEnumKeys<ModCallbackCustom, AnyClass>;
130
+ } as const satisfies Record<ModCallbackCustom, AnyClass>;
132
131
 
133
132
  export type ModCallbackCustomToClass = {
134
133
  readonly [Key in keyof typeof MOD_CALLBACK_CUSTOM_TO_CLASS]: InstanceType<
@@ -1,8 +1,9 @@
1
1
  import { KnifeVariant, ModCallback } from "isaac-typescript-definitions";
2
2
  import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
+ import { ReadonlySet } from "../../types/ReadonlySet";
3
4
  import { CustomCallback } from "../private/CustomCallback";
4
5
 
5
- const BONE_SWING_ANIMATIONS: ReadonlySet<string> = new Set([
6
+ const BONE_SWING_ANIMATIONS = new ReadonlySet<string>([
6
7
  "Swing",
7
8
  "Swing2",
8
9
  "Spin",
@@ -2,9 +2,10 @@ import { ModCallback } from "isaac-typescript-definitions";
2
2
  import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
3
  import { getLastFrameOfAnimation } from "../../functions/sprites";
4
4
  import { getEffectiveStage } from "../../functions/stage";
5
+ import { ReadonlySet } from "../../types/ReadonlySet";
5
6
  import { CustomCallback } from "../private/CustomCallback";
6
7
 
7
- const TRAVELING_TO_NEXT_FLOOR_ANIMATIONS: ReadonlySet<string> = new Set([
8
+ const TRAVELING_TO_NEXT_FLOOR_ANIMATIONS = new ReadonlySet<string>([
8
9
  "Trapdoor",
9
10
  "LightTravel",
10
11
  ]);
@@ -39,6 +39,7 @@ import { setStage } from "../../../functions/stage";
39
39
  import { getTSTLClassName } from "../../../functions/tstlClass";
40
40
  import { isVector } from "../../../functions/vector";
41
41
  import { CustomTrapdoorDescription } from "../../../interfaces/private/CustomTrapdoorDescription";
42
+ import { ReadonlySet } from "../../../types/ReadonlySet";
42
43
  import { DefaultMap } from "../../DefaultMap";
43
44
  import { Feature } from "../../private/Feature";
44
45
  import { CustomGridEntities } from "../callbackLogic/CustomGridEntities";
@@ -60,7 +61,7 @@ const TRAPDOOR_BOSS_REACTION_FRAMES = 30;
60
61
 
61
62
  const TRAPDOOR_TOUCH_DISTANCE = 16.5;
62
63
 
63
- const ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL: ReadonlySet<string> = new Set([
64
+ const ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL = new ReadonlySet<string>([
64
65
  "Death",
65
66
  "Happy",
66
67
  "Sad",
@@ -29,12 +29,13 @@ import { gridCoordinatesToWorldPosition } from "../../../functions/roomGrid";
29
29
  import { setRoomCleared, setRoomUncleared } from "../../../functions/rooms";
30
30
  import { asCollectibleType, asNumber } from "../../../functions/types";
31
31
  import { JSONRoom } from "../../../interfaces/JSONRoomsFile";
32
+ import { ReadonlySet } from "../../../types/ReadonlySet";
32
33
  import { Feature } from "../../private/Feature";
33
34
  import { PreventGridEntityRespawn } from "./PreventGridEntityRespawn";
34
35
  import { SpawnCollectible } from "./SpawnCollectible";
35
36
 
36
37
  const gridEntityXMLTypes = getEnumValues(GridEntityXMLType);
37
- const GRID_ENTITY_XML_TYPE_SET: ReadonlySet<number> = new Set(
38
+ const GRID_ENTITY_XML_TYPE_SET = new ReadonlySet<GridEntityXMLType>(
38
39
  gridEntityXMLTypes,
39
40
  );
40
41
 
@@ -104,7 +105,9 @@ export class DeployJSONRoom extends Feature {
104
105
  error(`Failed to convert the entity sub-type to a number: ${subType}`);
105
106
  }
106
107
 
107
- const isGridEntity = GRID_ENTITY_XML_TYPE_SET.has(entityTypeNumber);
108
+ const isGridEntity = GRID_ENTITY_XML_TYPE_SET.has(
109
+ entityTypeNumber as GridEntityXMLType,
110
+ );
108
111
  if (isGridEntity) {
109
112
  const gridEntityXMLType = entityTypeNumber as GridEntityXMLType;
110
113
  if (verbose) {
@@ -8,10 +8,7 @@ import {
8
8
  TrinketType,
9
9
  } from "isaac-typescript-definitions";
10
10
  import { itemConfig } from "../../../core/cachedClasses";
11
- import {
12
- FIRST_GLITCHED_COLLECTIBLE_TYPE,
13
- ITEM_CONFIG_CARD_TYPES_FOR_CARDS,
14
- } from "../../../core/constants";
11
+ import { FIRST_GLITCHED_COLLECTIBLE_TYPE } from "../../../core/constants";
15
12
  import { Exported } from "../../../decorators";
16
13
  import { ISCFeature } from "../../../enums/ISCFeature";
17
14
  import {
@@ -40,6 +37,8 @@ import {
40
37
  trinketHasCacheFlag,
41
38
  } from "../../../functions/trinkets";
42
39
  import { repeat } from "../../../functions/utils";
40
+ import { ITEM_CONFIG_CARD_TYPES_FOR_CARDS_SET } from "../../../sets/itemConfigCardTypesForCardsSet";
41
+ import { ReadonlyMap } from "../../../types/ReadonlyMap";
43
42
  import { Feature } from "../../private/Feature";
44
43
  import { ModdedElementDetection } from "./ModdedElementDetection";
45
44
 
@@ -50,23 +49,22 @@ const CONDITIONAL_FLYING_COLLECTIBLE_TYPES = [
50
49
  CollectibleType.RECALL,
51
50
  ] as const;
52
51
 
53
- const TRANSFORMATION_TO_TAG_MAP: ReadonlyMap<PlayerForm, ItemConfigTag> =
54
- new Map([
55
- [PlayerForm.GUPPY, ItemConfigTag.GUPPY], // 0
56
- [PlayerForm.BEELZEBUB, ItemConfigTag.FLY], // 1
57
- [PlayerForm.FUN_GUY, ItemConfigTag.MUSHROOM], // 2
58
- [PlayerForm.SERAPHIM, ItemConfigTag.ANGEL], // 3
59
- [PlayerForm.BOB, ItemConfigTag.BOB], // 4
60
- [PlayerForm.SPUN, ItemConfigTag.SYRINGE], // 5
61
- [PlayerForm.YES_MOTHER, ItemConfigTag.MOM], // 6
62
- [PlayerForm.CONJOINED, ItemConfigTag.BABY], // 7
63
- [PlayerForm.LEVIATHAN, ItemConfigTag.DEVIL], // 8
64
- [PlayerForm.OH_CRAP, ItemConfigTag.POOP], // 9
65
- [PlayerForm.BOOKWORM, ItemConfigTag.BOOK], // 10
66
- // PlayerForm.ADULTHOOD (11) is based on pill usage.
67
- [PlayerForm.SPIDER_BABY, ItemConfigTag.SPIDER], // 12
68
- // PlayerForm.STOMPY (13) is based on size.
69
- ]);
52
+ const TRANSFORMATION_TO_TAG_MAP = new ReadonlyMap<PlayerForm, ItemConfigTag>([
53
+ [PlayerForm.GUPPY, ItemConfigTag.GUPPY], // 0
54
+ [PlayerForm.BEELZEBUB, ItemConfigTag.FLY], // 1
55
+ [PlayerForm.FUN_GUY, ItemConfigTag.MUSHROOM], // 2
56
+ [PlayerForm.SERAPHIM, ItemConfigTag.ANGEL], // 3
57
+ [PlayerForm.BOB, ItemConfigTag.BOB], // 4
58
+ [PlayerForm.SPUN, ItemConfigTag.SYRINGE], // 5
59
+ [PlayerForm.YES_MOTHER, ItemConfigTag.MOM], // 6
60
+ [PlayerForm.CONJOINED, ItemConfigTag.BABY], // 7
61
+ [PlayerForm.LEVIATHAN, ItemConfigTag.DEVIL], // 8
62
+ [PlayerForm.OH_CRAP, ItemConfigTag.POOP], // 9
63
+ [PlayerForm.BOOKWORM, ItemConfigTag.BOOK], // 10
64
+ // PlayerForm.ADULTHOOD (11) is based on pill usage.
65
+ [PlayerForm.SPIDER_BABY, ItemConfigTag.SPIDER], // 12
66
+ // PlayerForm.STOMPY (13) is based on size.
67
+ ]);
70
68
 
71
69
  export class ModdedElementSets extends Feature {
72
70
  private allCollectibleTypesArray: CollectibleType[] = [];
@@ -440,7 +438,7 @@ export class ModdedElementSets extends Feature {
440
438
  }
441
439
  cardTypeSet.add(cardType);
442
440
 
443
- if (ITEM_CONFIG_CARD_TYPES_FOR_CARDS.has(itemConfigCardType)) {
441
+ if (ITEM_CONFIG_CARD_TYPES_FOR_CARDS_SET.has(itemConfigCardType)) {
444
442
  this.cardSet.add(cardType);
445
443
  }
446
444
  }
@@ -15,6 +15,7 @@ import { getTSTLClassName, isTSTLClass } from "../../../functions/tstlClass";
15
15
  import { isString, isTable } from "../../../functions/types";
16
16
  import { SaveData } from "../../../interfaces/SaveData";
17
17
  import { AnyClass } from "../../../types/AnyClass";
18
+ import { ReadonlySet } from "../../../types/ReadonlySet";
18
19
  import { Feature } from "../../private/Feature";
19
20
  import {
20
21
  makeGlowingHourGlassBackup,
@@ -31,7 +32,7 @@ import { saveToDisk } from "./saveDataManager/saveToDisk";
31
32
  /** "g" stands for "globals". */
32
33
  declare let g: LuaMap<string, SaveData>; // eslint-disable-line @typescript-eslint/no-unused-vars
33
34
 
34
- const NON_USER_DEFINED_CLASS_NAMES: ReadonlySet<string> = new Set([
35
+ const NON_USER_DEFINED_CLASS_NAMES = new ReadonlySet<string>([
35
36
  "Map",
36
37
  "Set",
37
38
  "DefaultMap",
@@ -21,7 +21,7 @@ import {
21
21
  } from "../../../../functions/string";
22
22
  import { eRange, iRange } from "../../../../functions/utils";
23
23
  import { CustomStage } from "../../../../interfaces/private/CustomStage";
24
- import { HasAllEnumKeys } from "../../../../types/HasAllEnumKeys";
24
+ import { ReadonlySet } from "../../../../types/ReadonlySet";
25
25
  import { ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH } from "./constants";
26
26
 
27
27
  enum BackdropKind {
@@ -56,7 +56,7 @@ const ROOM_SHAPE_WALL_ANM2_LAYERS = {
56
56
  [RoomShape.LTR]: 63, // 10
57
57
  [RoomShape.LBL]: 63, // 11
58
58
  [RoomShape.LBR]: 63, // 12
59
- } as const satisfies HasAllEnumKeys<RoomShape, int>;
59
+ } as const satisfies Record<RoomShape, int>;
60
60
 
61
61
  const ROOM_SHAPE_WALL_EXTRA_ANM2_LAYERS: {
62
62
  readonly [Key in RoomShape]?: int;
@@ -88,7 +88,7 @@ const N_FLOOR_ANM2_LAYERS = [18, 19] as const;
88
88
  const BACKDROP_EFFECT_VARIANT = EffectVariant.LADDER;
89
89
  const BACKDROP_EFFECT_SUB_TYPE = LadderSubTypeCustom.CUSTOM_BACKDROP;
90
90
 
91
- const BACKDROP_ROOM_TYPE_SET: ReadonlySet<RoomType> = new Set([
91
+ const BACKDROP_ROOM_TYPE_SET = new ReadonlySet<RoomType>([
92
92
  RoomType.DEFAULT,
93
93
  RoomType.BOSS,
94
94
  RoomType.MINI_BOSS,
@@ -5,7 +5,6 @@ import { getRandomArrayElement } from "../../../../functions/array";
5
5
  import { spawnEffectWithSeed } from "../../../../functions/entitiesSpecific";
6
6
  import { removeCharactersBefore } from "../../../../functions/string";
7
7
  import { CustomStage } from "../../../../interfaces/private/CustomStage";
8
- import { HasAllEnumKeys } from "../../../../types/HasAllEnumKeys";
9
8
  import { ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH } from "./constants";
10
9
 
11
10
  type ShadowAnimation = "1x1" | "1x2" | "2x1" | "2x2";
@@ -35,7 +34,7 @@ const ROOM_SHAPE_TO_SHADOW_ANIMATION = {
35
34
  [RoomShape.LTR]: "2x2", // 10
36
35
  [RoomShape.LBL]: "2x2", // 11
37
36
  [RoomShape.LBR]: "2x2", // 12
38
- } as const satisfies HasAllEnumKeys<RoomShape, ShadowAnimation>;
37
+ } as const satisfies Record<RoomShape, ShadowAnimation>;
39
38
 
40
39
  const FADED_BLACK = Color(0, 0, 0, 0.25);
41
40
 
@@ -8,14 +8,13 @@ import {
8
8
  getScreenTopCenterPos,
9
9
  } from "../../../../functions/ui";
10
10
  import { CustomStage } from "../../../../interfaces/private/CustomStage";
11
- import { HasAllEnumKeys } from "../../../../types/HasAllEnumKeys";
12
11
 
13
12
  /** Corresponds to "resources/gfx/ui/ui_streak.anm2". */
14
13
  const UI_STREAK_ANIMATION_END_FRAMES = {
15
14
  [UIStreakAnimation.NONE]: 0,
16
15
  [UIStreakAnimation.TEXT]: 69,
17
16
  [UIStreakAnimation.TEXT_STAY]: 1,
18
- } as const satisfies HasAllEnumKeys<UIStreakAnimation, int>;
17
+ } as const satisfies Record<UIStreakAnimation, int>;
19
18
 
20
19
  /** This must match the name of the shader in "shaders.xml". */
21
20
  const EMPTY_SHADER_NAME = "IsaacScript-RenderAboveHUD";
@@ -7,9 +7,10 @@ import { deepCopy } from "../../../../functions/deepCopy";
7
7
  import { logError } from "../../../../functions/logMisc";
8
8
  import { clearTable, iterateTableInOrder } from "../../../../functions/table";
9
9
  import { SaveData } from "../../../../interfaces/SaveData";
10
+ import { ReadonlySet } from "../../../../types/ReadonlySet";
10
11
  import { SAVE_DATA_MANAGER_DEBUG } from "./constants";
11
12
 
12
- const RESETTABLE_SAVE_DATA_KEYS: ReadonlySet<SaveDataKey> = new Set([
13
+ const RESETTABLE_SAVE_DATA_KEYS = new ReadonlySet<SaveDataKey>([
13
14
  SaveDataKey.RUN,
14
15
  SaveDataKey.LEVEL,
15
16
  SaveDataKey.ROOM,
@@ -1,12 +1,16 @@
1
1
  import {
2
2
  Dimension,
3
3
  DisplayFlag,
4
- ItemConfigCardType,
5
4
  ItemPoolType,
6
5
  TrinketSlot,
7
6
  } from "isaac-typescript-definitions";
8
7
  import { getEnumLength } from "../functions/enums";
9
8
  import { addFlag } from "../functions/flag";
9
+ import {
10
+ newReadonlyColor,
11
+ newReadonlyKColor,
12
+ newReadonlyVector,
13
+ } from "../functions/readOnly";
10
14
  import { asCollectibleType } from "../functions/types";
11
15
  import { NUM_NORMAL_PILL_COLORS } from "./constantsFirstLast";
12
16
 
@@ -78,15 +82,6 @@ export const GAME_FRAMES_PER_SECOND = 30;
78
82
  /** Game frames are what is returned by the `Game.GetFrameCount` method. */
79
83
  export const GAME_FRAMES_PER_MINUTE = GAME_FRAMES_PER_SECOND * 60;
80
84
 
81
- /** The set of all `ItemConfigCardType` values that are not a rune or special object. */
82
- export const ITEM_CONFIG_CARD_TYPES_FOR_CARDS: ReadonlySet<ItemConfigCardType> =
83
- new Set([
84
- ItemConfigCardType.TAROT,
85
- ItemConfigCardType.SUIT,
86
- ItemConfigCardType.SPECIAL,
87
- ItemConfigCardType.TAROT_REVERSE,
88
- ]);
89
-
90
85
  /** Render frames are what is returned by the `Isaac.GetFrameCount` method. */
91
86
  export const RENDER_FRAMES_PER_SECOND = 60;
92
87
 
@@ -151,16 +146,22 @@ export const MIN_PLAYER_SPEED_STAT = 0.1;
151
146
  export const MAX_SPEED_STAT = 2.0;
152
147
 
153
148
  /** This is in the center of the room. */
154
- export const NEW_FLOOR_STARTING_POSITION_NORMAL_MODE = Vector(320, 280);
149
+ export const NEW_FLOOR_STARTING_POSITION_NORMAL_MODE = newReadonlyVector(
150
+ 320,
151
+ 280,
152
+ );
155
153
 
156
154
  /** This is near the top door. */
157
- export const NEW_FLOOR_STARTING_POSITION_GREED_MODE = Vector(320, 280);
155
+ export const NEW_FLOOR_STARTING_POSITION_GREED_MODE = newReadonlyVector(
156
+ 320,
157
+ 280,
158
+ );
158
159
 
159
160
  /**
160
161
  * This is next to the bottom door. Presumably, the player does not start in the center of the room
161
162
  * (like they do when getting to a new stage) so that the controls graphic is more visible.
162
163
  */
163
- export const NEW_RUN_PLAYER_STARTING_POSITION = Vector(320, 380);
164
+ export const NEW_RUN_PLAYER_STARTING_POSITION = newReadonlyVector(320, 380);
164
165
 
165
166
  /** Corresponds to the maximum value for `EntityPlayer.SamsonBerserkCharge`. */
166
167
  export const MAX_TAINTED_SAMSON_BERSERK_CHARGE = 100000;
@@ -196,7 +197,7 @@ export const UI_HEART_WIDTH = 12;
196
197
  * This is a safe version of the `Vector.One` constant. (Other mods can mutate `Vector.One`, so it
197
198
  * is not safe to use.)
198
199
  */
199
- export const VectorOne: Readonly<Vector> = Vector(1, 1);
200
+ export const VectorOne = newReadonlyVector(1, 1);
200
201
 
201
202
  /**
202
203
  * Equal to `Vector(0, 0)`.
@@ -204,7 +205,7 @@ export const VectorOne: Readonly<Vector> = Vector(1, 1);
204
205
  * This is a safe version of the `Vector.Zero` constant. (Other mods can mutate `Vector.Zero`, so it
205
206
  * is not safe to use.)
206
207
  */
207
- export const VectorZero: Readonly<Vector> = Vector(0, 0);
208
+ export const VectorZero = newReadonlyVector(0, 0);
208
209
 
209
210
  /**
210
211
  * Equal to `Color(1, 1, 1)`.
@@ -214,11 +215,11 @@ export const VectorZero: Readonly<Vector> = Vector(0, 0);
214
215
  *
215
216
  * If you need to mutate this, make a copy first with the `copyColor` helper function.
216
217
  */
217
- export const ColorDefault: Readonly<Color> = Color(1, 1, 1);
218
+ export const ColorDefault = newReadonlyColor(1, 1, 1);
218
219
 
219
220
  /**
220
221
  * Equal to `KColor(1, 1, 1, 1)`.
221
222
  *
222
223
  * If you need to mutate this, make a copy first with the `copyKColor` helper function.
223
224
  */
224
- export const KColorDefault: Readonly<KColor> = KColor(1, 1, 1, 1);
225
+ export const KColorDefault = newReadonlyKColor(1, 1, 1, 1);
package/src/features.ts CHANGED
@@ -58,7 +58,6 @@ import { ISCFeature } from "./enums/ISCFeature";
58
58
  import { ModCallbackCustom } from "./enums/ModCallbackCustom";
59
59
  import { validateInterfaceMatchesEnum } from "./functions/utils";
60
60
  import { ModUpgradedInterface } from "./interfaces/private/ModUpgradedInterface";
61
- import { HasAllEnumKeys } from "./types/HasAllEnumKeys";
62
61
 
63
62
  export interface ISCFeatureToClass {
64
63
  // Callback logic
@@ -294,7 +293,7 @@ export function getFeatures(
294
293
  [ISCFeature.STAGE_HISTORY]: stageHistory,
295
294
  [ISCFeature.START_AMBUSH]: new StartAmbush(runInNFrames),
296
295
  [ISCFeature.TAINTED_LAZARUS_PLAYERS]: new TaintedLazarusPlayers(),
297
- } as const satisfies HasAllEnumKeys<ISCFeature, Feature>;
296
+ } as const satisfies Record<ISCFeature, Feature>;
298
297
 
299
298
  return features;
300
299
  }