isaacscript-common 3.17.0 → 4.0.2

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 (425) hide show
  1. package/cachedClasses.ts +39 -0
  2. package/callbacks/customRevive.lua +2 -1
  3. package/callbacks/customRevive.ts +215 -0
  4. package/callbacks/itemPickup.ts +101 -0
  5. package/callbacks/postAmbush.ts +73 -0
  6. package/callbacks/postBombExploded.ts +26 -0
  7. package/callbacks/postBombInitLate.ts +36 -0
  8. package/callbacks/postBoneSwing.ts +64 -0
  9. package/callbacks/postCollectibleInitFirst.ts +40 -0
  10. package/callbacks/postCursedTeleport.lua +2 -1
  11. package/callbacks/postCursedTeleport.ts +185 -0
  12. package/callbacks/postCustomDoorEnter.lua +0 -7
  13. package/callbacks/postCustomDoorEnter.ts +292 -0
  14. package/callbacks/postDiceRoomActivated.ts +60 -0
  15. package/callbacks/postDoorRender.ts +26 -0
  16. package/callbacks/postDoorUpdate.ts +26 -0
  17. package/callbacks/postEffectInitLate.ts +36 -0
  18. package/callbacks/postEffectStateChanged.ts +43 -0
  19. package/callbacks/postEsauJr.lua +2 -1
  20. package/callbacks/postEsauJr.ts +109 -0
  21. package/callbacks/postFamiliarInitLate.ts +36 -0
  22. package/callbacks/postFamiliarStateChanged.ts +43 -0
  23. package/callbacks/postFlip.lua +4 -3
  24. package/callbacks/postFlip.ts +90 -0
  25. package/callbacks/postGreedModeWave.ts +41 -0
  26. package/callbacks/postGridEntity.ts +164 -0
  27. package/callbacks/postGridEntityCollision.ts +69 -0
  28. package/callbacks/postGridEntityRender.ts +26 -0
  29. package/callbacks/postHolyMantleRemoved.ts +55 -0
  30. package/callbacks/postItemDischarged.lua +4 -3
  31. package/callbacks/postItemDischarged.ts +154 -0
  32. package/callbacks/postKnifeInitLate.ts +36 -0
  33. package/callbacks/postLaserInitLate.ts +36 -0
  34. package/callbacks/postNPCInitLate.ts +36 -0
  35. package/callbacks/postNPCStateChanged.ts +42 -0
  36. package/callbacks/postNewRoomEarly.lua +2 -1
  37. package/callbacks/postNewRoomEarly.ts +96 -0
  38. package/callbacks/postPickupCollect.ts +48 -0
  39. package/callbacks/postPickupInitFirst.ts +70 -0
  40. package/callbacks/postPickupInitLate.ts +36 -0
  41. package/callbacks/postPickupStateChanged.ts +43 -0
  42. package/callbacks/postPitRender.ts +26 -0
  43. package/callbacks/postPitUpdate.ts +26 -0
  44. package/callbacks/postPlayerChangeHealth.ts +62 -0
  45. package/callbacks/postPlayerChangeType.ts +56 -0
  46. package/callbacks/postPlayerCollectible.ts +113 -0
  47. package/callbacks/postPlayerFatalDamage.ts +141 -0
  48. package/callbacks/postPlayerInitLate.ts +37 -0
  49. package/callbacks/postPlayerReordered.ts +142 -0
  50. package/callbacks/postPoopRender.ts +26 -0
  51. package/callbacks/postPoopUpdate.ts +26 -0
  52. package/callbacks/postPressurePlateRender.ts +26 -0
  53. package/callbacks/postPressurePlateUpdate.ts +26 -0
  54. package/callbacks/postProjectileInitLate.ts +36 -0
  55. package/callbacks/postPurchase.ts +64 -0
  56. package/callbacks/postRockRender.ts +26 -0
  57. package/callbacks/postRockUpdate.ts +26 -0
  58. package/callbacks/postRoomClearChanged.ts +57 -0
  59. package/callbacks/postSacrifice.lua +3 -2
  60. package/callbacks/postSacrifice.ts +64 -0
  61. package/callbacks/postSlotDestroyed.ts +92 -0
  62. package/callbacks/postSlotInitUpdate.ts +68 -0
  63. package/callbacks/postSlotRender.ts +69 -0
  64. package/callbacks/postSpikesRender.ts +26 -0
  65. package/callbacks/postSpikesUpdate.ts +26 -0
  66. package/callbacks/postTNTRender.ts +26 -0
  67. package/callbacks/postTNTUpdate.ts +26 -0
  68. package/callbacks/postTearInitLate.ts +36 -0
  69. package/callbacks/postTearInitVeryLate.ts +41 -0
  70. package/callbacks/postTransformation.ts +59 -0
  71. package/callbacks/postTrinketBreak.lua +3 -2
  72. package/callbacks/postTrinketBreak.ts +112 -0
  73. package/callbacks/preBerserkDeath.ts +49 -0
  74. package/callbacks/preNewLevel.ts +55 -0
  75. package/callbacks/reorderedCallbacks.lua +1 -0
  76. package/callbacks/reorderedCallbacks.ts +168 -0
  77. package/callbacks/subscriptions/postAmbushFinished.ts +32 -0
  78. package/callbacks/subscriptions/postAmbushStarted.ts +32 -0
  79. package/callbacks/subscriptions/postBombInitLate.ts +32 -0
  80. package/callbacks/subscriptions/postBoneExploded.ts +32 -0
  81. package/callbacks/subscriptions/postBoneSwing.ts +24 -0
  82. package/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
  83. package/callbacks/subscriptions/postCursedTeleport.ts +24 -0
  84. package/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
  85. package/callbacks/subscriptions/postCustomRevive.ts +36 -0
  86. package/callbacks/subscriptions/postDiceRoomActivated.ts +38 -0
  87. package/callbacks/subscriptions/postDoorRender.ts +35 -0
  88. package/callbacks/subscriptions/postDoorUpdate.ts +35 -0
  89. package/callbacks/subscriptions/postEffectInitLate.ts +32 -0
  90. package/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
  91. package/callbacks/subscriptions/postEsauJr.ts +24 -0
  92. package/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
  93. package/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
  94. package/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
  95. package/callbacks/subscriptions/postFirstFlip.ts +24 -0
  96. package/callbacks/subscriptions/postFlip.ts +22 -0
  97. package/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
  98. package/callbacks/subscriptions/postGreedModeWave.ts +24 -0
  99. package/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
  100. package/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
  101. package/callbacks/subscriptions/postGridEntityInit.ts +51 -0
  102. package/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
  103. package/callbacks/subscriptions/postGridEntityRender.ts +51 -0
  104. package/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
  105. package/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
  106. package/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
  107. package/callbacks/subscriptions/postItemDischarged.ts +43 -0
  108. package/callbacks/subscriptions/postItemPickup.ts +64 -0
  109. package/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
  110. package/callbacks/subscriptions/postLaserInitLate.ts +32 -0
  111. package/callbacks/subscriptions/postNPCInitLate.ts +32 -0
  112. package/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
  113. package/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
  114. package/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
  115. package/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
  116. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
  117. package/callbacks/subscriptions/postPickupCollect.ts +35 -0
  118. package/callbacks/subscriptions/postPickupInitFirst.ts +32 -0
  119. package/callbacks/subscriptions/postPickupInitLate.ts +32 -0
  120. package/callbacks/subscriptions/postPickupStateChanged.ts +40 -0
  121. package/callbacks/subscriptions/postPitRender.ts +35 -0
  122. package/callbacks/subscriptions/postPitUpdate.ts +35 -0
  123. package/callbacks/subscriptions/postPlayerChangeHealth.ts +49 -0
  124. package/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
  125. package/callbacks/subscriptions/postPlayerCollectibleAdded.d.ts +2 -3
  126. package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -7
  127. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +38 -0
  128. package/callbacks/subscriptions/postPlayerCollectibleRemoved.d.ts +2 -3
  129. package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -7
  130. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +38 -0
  131. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +1 -1
  132. package/callbacks/subscriptions/postPlayerFatalDamage.ts +68 -0
  133. package/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
  134. package/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
  135. package/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
  136. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
  137. package/callbacks/subscriptions/postPoopRender.ts +35 -0
  138. package/callbacks/subscriptions/postPoopUpdate.ts +35 -0
  139. package/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
  140. package/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
  141. package/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
  142. package/callbacks/subscriptions/postPurchase.ts +31 -0
  143. package/callbacks/subscriptions/postRockRender.ts +35 -0
  144. package/callbacks/subscriptions/postRockUpdate.ts +35 -0
  145. package/callbacks/subscriptions/postRoomClearChanged.ts +30 -0
  146. package/callbacks/subscriptions/postSacrifice.ts +43 -0
  147. package/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
  148. package/callbacks/subscriptions/postSlotDestroyed.ts +55 -0
  149. package/callbacks/subscriptions/postSlotInit.ts +32 -0
  150. package/callbacks/subscriptions/postSlotRender.ts +32 -0
  151. package/callbacks/subscriptions/postSlotUpdate.ts +32 -0
  152. package/callbacks/subscriptions/postSpikesRender.ts +35 -0
  153. package/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
  154. package/callbacks/subscriptions/postTNTRender.ts +35 -0
  155. package/callbacks/subscriptions/postTNTUpdate.ts +35 -0
  156. package/callbacks/subscriptions/postTearInitLate.ts +32 -0
  157. package/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
  158. package/callbacks/subscriptions/postTransformation.ts +40 -0
  159. package/callbacks/subscriptions/postTrinketBreak.ts +38 -0
  160. package/callbacks/subscriptions/preBerserkDeath.d.ts +1 -1
  161. package/callbacks/subscriptions/preBerserkDeath.ts +42 -0
  162. package/callbacks/subscriptions/preCustomRevive.d.ts +1 -1
  163. package/callbacks/subscriptions/preCustomRevive.ts +46 -0
  164. package/callbacks/subscriptions/preItemPickup.ts +64 -0
  165. package/callbacks/subscriptions/preNewLevel.ts +24 -0
  166. package/classes/DefaultMap.ts +174 -0
  167. package/classes/ModUpgraded.d.ts +8 -4
  168. package/classes/ModUpgraded.lua +5 -8
  169. package/classes/ModUpgraded.ts +84 -0
  170. package/constants.ts +162 -0
  171. package/constantsFirstLast.ts +217 -0
  172. package/enums/AmbushType.ts +4 -0
  173. package/enums/HealthType.ts +16 -0
  174. package/enums/ModCallbackCustom.d.ts +20 -18
  175. package/enums/ModCallbackCustom.ts +1278 -0
  176. package/enums/PocketItemType.ts +8 -0
  177. package/enums/SerializationType.ts +5 -0
  178. package/enums/SlotDestructionType.ts +4 -0
  179. package/enums/private/CopyableIsaacAPIClassType.ts +7 -0
  180. package/enums/private/SaveDataKey.ts +14 -0
  181. package/enums/private/SerializationBrand.ts +42 -0
  182. package/features/characterHealthConversion.lua +2 -9
  183. package/features/characterHealthConversion.ts +111 -0
  184. package/features/characterStats.ts +61 -0
  185. package/features/debugDisplay/debugDisplay.ts +221 -0
  186. package/features/debugDisplay/exports.ts +368 -0
  187. package/features/debugDisplay/v.ts +65 -0
  188. package/features/deployJSONRoom.ts +743 -0
  189. package/features/disableInputs.ts +193 -0
  190. package/features/disableSound.ts +77 -0
  191. package/features/extraConsoleCommands/commandsDisplay.ts +290 -0
  192. package/features/extraConsoleCommands/commandsSubroutines.lua +1 -1
  193. package/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
  194. package/features/extraConsoleCommands/init.ts +334 -0
  195. package/features/extraConsoleCommands/listCommands.ts +1299 -0
  196. package/features/extraConsoleCommands/v.ts +14 -0
  197. package/features/fadeInRemover.ts +60 -0
  198. package/features/fastReset.ts +75 -0
  199. package/features/forgottenSwitch.ts +50 -0
  200. package/features/getCollectibleItemPoolType.ts +66 -0
  201. package/features/persistentEntities.ts +183 -0
  202. package/features/playerInventory.lua +1 -0
  203. package/features/playerInventory.ts +135 -0
  204. package/features/ponyDetection.ts +74 -0
  205. package/features/preventCollectibleRotation.ts +115 -0
  206. package/features/runInNFrames.ts +148 -0
  207. package/features/saveDataManager/constants.ts +4 -0
  208. package/features/saveDataManager/exports.ts +229 -0
  209. package/features/saveDataManager/load.ts +99 -0
  210. package/features/saveDataManager/main.ts +195 -0
  211. package/features/saveDataManager/maps.ts +13 -0
  212. package/features/saveDataManager/merge.ts +194 -0
  213. package/features/saveDataManager/save.ts +74 -0
  214. package/features/saveDataManager/serializationBrand.ts +16 -0
  215. package/features/sirenHelpers.ts +129 -0
  216. package/features/taintedLazarusPlayers.ts +113 -0
  217. package/featuresInitialized.ts +20 -0
  218. package/functions/ambush.ts +47 -0
  219. package/functions/array.ts +410 -0
  220. package/functions/benchmark.ts +36 -0
  221. package/functions/bitwise.ts +24 -0
  222. package/functions/bombs.ts +12 -0
  223. package/functions/boss.ts +227 -0
  224. package/functions/cacheFlag.ts +12 -0
  225. package/functions/cards.lua +1 -1
  226. package/functions/cards.ts +271 -0
  227. package/functions/challenges.ts +13 -0
  228. package/functions/character.ts +126 -0
  229. package/functions/charge.ts +237 -0
  230. package/functions/chargeBar.ts +67 -0
  231. package/functions/collectibleCacheFlag.ts +90 -0
  232. package/functions/collectibleSet.ts +56 -0
  233. package/functions/collectibleTag.ts +89 -0
  234. package/functions/collectibles.ts +659 -0
  235. package/functions/color.d.ts +1 -1
  236. package/functions/color.lua +0 -7
  237. package/functions/color.ts +128 -0
  238. package/functions/debug.lua +2 -2
  239. package/functions/debug.ts +68 -0
  240. package/functions/deepCopy.lua +46 -51
  241. package/functions/deepCopy.ts +535 -0
  242. package/functions/deepCopyTests.ts +386 -0
  243. package/functions/direction.ts +49 -0
  244. package/functions/doors.lua +1 -2
  245. package/functions/doors.ts +347 -0
  246. package/functions/easing.ts +182 -0
  247. package/functions/eden.ts +47 -0
  248. package/functions/effects.ts +20 -0
  249. package/functions/entity.ts +439 -0
  250. package/functions/entitySpecific.ts +889 -0
  251. package/functions/entityTypes.ts +6 -0
  252. package/functions/enums.ts +146 -0
  253. package/functions/familiars.ts +106 -0
  254. package/functions/flag.ts +165 -0
  255. package/functions/flying.ts +117 -0
  256. package/functions/globals.d.ts +3 -3
  257. package/functions/globals.lua +8 -2
  258. package/functions/globals.ts +242 -0
  259. package/functions/gridEntity.ts +511 -0
  260. package/functions/gridEntitySpecific.ts +112 -0
  261. package/functions/input.ts +139 -0
  262. package/functions/isaacAPIClass.ts +67 -0
  263. package/functions/jsonHelpers.ts +45 -0
  264. package/functions/jsonRoom.ts +100 -0
  265. package/functions/kColor.d.ts +1 -1
  266. package/functions/kColor.lua +0 -7
  267. package/functions/kColor.ts +129 -0
  268. package/functions/language.ts +13 -0
  269. package/functions/level.ts +31 -0
  270. package/functions/log.ts +720 -0
  271. package/functions/map.ts +56 -0
  272. package/functions/math.ts +149 -0
  273. package/functions/mergeTests.ts +288 -0
  274. package/functions/npc.ts +148 -0
  275. package/functions/pickupVariants.ts +60 -0
  276. package/functions/pickups.ts +499 -0
  277. package/functions/pills.lua +1 -1
  278. package/functions/pills.ts +205 -0
  279. package/functions/player.lua +9 -20
  280. package/functions/player.ts +1056 -0
  281. package/functions/playerDataStructures.ts +150 -0
  282. package/functions/playerHealth.lua +28 -39
  283. package/functions/playerHealth.ts +382 -0
  284. package/functions/playerIndex.ts +195 -0
  285. package/functions/pocketItems.ts +149 -0
  286. package/functions/positionVelocity.ts +188 -0
  287. package/functions/random.ts +77 -0
  288. package/functions/revive.ts +201 -0
  289. package/functions/rng.d.ts +1 -1
  290. package/functions/rng.lua +0 -7
  291. package/functions/rng.ts +172 -0
  292. package/functions/roomData.ts +199 -0
  293. package/functions/roomGrid.ts +109 -0
  294. package/functions/roomShape.ts +80 -0
  295. package/functions/rooms.lua +1 -3
  296. package/functions/rooms.ts +648 -0
  297. package/functions/run.ts +36 -0
  298. package/functions/saveFile.ts +128 -0
  299. package/functions/seeds.ts +19 -0
  300. package/functions/serialization.lua +0 -3
  301. package/functions/serialization.ts +91 -0
  302. package/functions/set.ts +95 -0
  303. package/functions/sound.ts +9 -0
  304. package/functions/spawnCollectible.ts +104 -0
  305. package/functions/sprite.ts +107 -0
  306. package/functions/stage.ts +125 -0
  307. package/functions/string.ts +47 -0
  308. package/functions/table.ts +189 -0
  309. package/functions/tears.ts +32 -0
  310. package/functions/transformations.lua +1 -3
  311. package/functions/transformations.ts +131 -0
  312. package/functions/trinketCacheFlag.ts +60 -0
  313. package/functions/trinketGive.ts +157 -0
  314. package/functions/trinkets.ts +215 -0
  315. package/functions/tstlClass.ts +157 -0
  316. package/functions/types.ts +36 -0
  317. package/functions/ui.ts +138 -0
  318. package/functions/utils.d.ts +0 -37
  319. package/functions/utils.lua +0 -35
  320. package/functions/utils.ts +189 -0
  321. package/functions/vector.d.ts +1 -1
  322. package/functions/vector.lua +0 -7
  323. package/functions/vector.ts +126 -0
  324. package/index.ts +172 -0
  325. package/initCustomCallbacks.ts +132 -0
  326. package/initFeatures.ts +39 -0
  327. package/interfaces/AddCallbackParameterCustom.ts +188 -0
  328. package/interfaces/ChargeBarSprites.ts +12 -0
  329. package/interfaces/JSONDoor.d.ts +4 -4
  330. package/interfaces/JSONDoor.ts +13 -0
  331. package/interfaces/JSONEntity.d.ts +5 -5
  332. package/interfaces/JSONEntity.ts +16 -0
  333. package/interfaces/JSONRoom.d.ts +9 -9
  334. package/interfaces/JSONRoom.ts +36 -0
  335. package/interfaces/JSONRooms.ts +12 -0
  336. package/interfaces/JSONSpawn.d.ts +3 -3
  337. package/interfaces/JSONSpawn.ts +14 -0
  338. package/interfaces/PlayerHealth.ts +16 -0
  339. package/interfaces/PocketItemDescription.ts +9 -0
  340. package/interfaces/SaveData.ts +29 -0
  341. package/interfaces/TrinketSituation.ts +9 -0
  342. package/interfaces/private/TSTLClassMetatable.ts +8 -0
  343. package/maps/PHDPillConversions.ts +21 -0
  344. package/maps/cardMap.ts +209 -0
  345. package/maps/characterMap.ts +87 -0
  346. package/maps/collectibleDescriptionMap.ts +732 -0
  347. package/maps/collectibleNameMap.ts +731 -0
  348. package/maps/defaultPlayerStatMap.ts +17 -0
  349. package/maps/falsePHDPillConversions.ts +35 -0
  350. package/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
  351. package/maps/gridEntityXMLMap.ts +176 -0
  352. package/maps/pillEffectMap.ts +88 -0
  353. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
  354. package/maps/roomTypeMap.ts +40 -0
  355. package/maps/trinketDescriptionMap.ts +200 -0
  356. package/maps/trinketNameMap.ts +198 -0
  357. package/objects/LRoomShapeToRectangles.ts +44 -0
  358. package/objects/callbackRegisterFunctions.ts +187 -0
  359. package/objects/cardDescriptions.ts +105 -0
  360. package/objects/cardNames.ts +105 -0
  361. package/objects/cardTypes.ts +104 -0
  362. package/objects/challengeNames.ts +52 -0
  363. package/objects/characterNames.ts +48 -0
  364. package/objects/coinSubTypeToValue.ts +14 -0
  365. package/objects/colors.ts +16 -0
  366. package/objects/directionNames.ts +11 -0
  367. package/objects/directionToDegrees.ts +11 -0
  368. package/objects/directionToVector.ts +12 -0
  369. package/objects/doorSlotFlagToDoorSlot.ts +16 -0
  370. package/objects/doorSlotToDirection.ts +14 -0
  371. package/objects/isaacAPIClassTypeToBrand.ts +11 -0
  372. package/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
  373. package/objects/languageNames.ts +13 -0
  374. package/objects/oppositeDoorSlots.ts +15 -0
  375. package/objects/pillEffectClasses.ts +63 -0
  376. package/objects/pillEffectNames.ts +57 -0
  377. package/objects/pillEffectTypes.ts +62 -0
  378. package/objects/roomShapeBounds.ts +71 -0
  379. package/objects/roomShapeLayoutSizes.ts +45 -0
  380. package/objects/roomShapeToBottomRightPosition.ts +25 -0
  381. package/objects/roomShapeToDoorSlots.ts +83 -0
  382. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
  383. package/objects/roomShapeToGridWidth.ts +21 -0
  384. package/objects/roomShapeToTopLeftPosition.ts +26 -0
  385. package/objects/roomShapeVolumes.ts +38 -0
  386. package/objects/roomTypeNames.ts +36 -0
  387. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
  388. package/objects/stageTypeToLetter.ts +15 -0
  389. package/objects/transformationNames.d.ts +0 -1
  390. package/objects/transformationNames.lua +0 -1
  391. package/objects/transformationNames.ts +18 -0
  392. package/package.json +2 -2
  393. package/patchErrorFunctions.ts +92 -0
  394. package/sets/LRoomShapesSet.ts +8 -0
  395. package/sets/bossSets.ts +470 -0
  396. package/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
  397. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
  398. package/sets/charactersWithFreeDevilDealsSet.ts +4 -0
  399. package/sets/charactersWithNoRedHeartsSet.ts +17 -0
  400. package/sets/charactersWithNoSoulHeartsSet.ts +14 -0
  401. package/sets/chestPickupVariantsSet.ts +16 -0
  402. package/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
  403. package/sets/lostStyleCharactersSet.ts +13 -0
  404. package/sets/mineShaftRoomSubTypesSet.ts +10 -0
  405. package/sets/redHeartSubTypesSet.ts +7 -0
  406. package/sets/sinEntityTypesSet.ts +11 -0
  407. package/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
  408. package/sets/storyBossesSet.ts +17 -0
  409. package/types/AnyEntity.ts +12 -0
  410. package/types/AwaitingTextInput.d.ts +2 -0
  411. package/types/CollectibleIndex.d.ts +1 -1
  412. package/types/CollectibleIndex.ts +16 -0
  413. package/types/PickingUpItem.d.ts +3 -3
  414. package/types/PickingUpItem.ts +89 -0
  415. package/types/PlayerIndex.d.ts +1 -1
  416. package/types/PlayerIndex.ts +13 -0
  417. package/types/private/IsaacAPIClass.d.ts +1 -1
  418. package/types/private/IsaacAPIClass.ts +3 -0
  419. package/types/private/SerializedIsaacAPIClass.d.ts +1 -1
  420. package/types/private/SerializedIsaacAPIClass.ts +3 -0
  421. package/types/private/TSTLClass.d.ts +1 -1
  422. package/types/private/TSTLClass.ts +3 -0
  423. package/upgradeMod.d.ts +2 -2
  424. package/upgradeMod.lua +2 -2
  425. package/upgradeMod.ts +55 -0
@@ -0,0 +1,470 @@
1
+ import {
2
+ BigHornVariant,
3
+ ChubVariant,
4
+ DaddyLongLegsVariant,
5
+ DingleVariant,
6
+ DukeVariant,
7
+ EntityType,
8
+ FallenVariant,
9
+ FistulaVariant,
10
+ GeminiVariant,
11
+ GurglingVariant,
12
+ HauntVariant,
13
+ IsaacVariant,
14
+ LambVariant,
15
+ LarryJrVariant,
16
+ LittleHornVariant,
17
+ LokiVariant,
18
+ MamaGurdyVariant,
19
+ MomsHeartVariant,
20
+ MomVariant,
21
+ Monstro2Variant,
22
+ PeepVariant,
23
+ PinVariant,
24
+ PolycephalusVariant,
25
+ RagManVariant,
26
+ RagMegaVariant,
27
+ SatanVariant,
28
+ StageType,
29
+ WarVariant,
30
+ WidowVariant,
31
+ } from "isaac-typescript-definitions";
32
+
33
+ // The "bosspools.xml" file does not actually correspond to the real boss pools, so these sets were
34
+ // determined through experimentation on v1.7.8a.
35
+
36
+ /** Contains just the bosses in Basement (not e.g. Burning Basement). */
37
+ const BASEMENT_BOSSES_SET: ReadonlySet<string> = new Set([
38
+ `${EntityType.LARRY_JR}.${LarryJrVariant.LARRY_JR}`, // 19.0
39
+ `${EntityType.MONSTRO}.0`, // 20.0
40
+ `${EntityType.FAMINE}.0`, // 63.0
41
+ `${EntityType.DUKE}.${DukeVariant.DUKE_OF_FLIES}`, // 67.0
42
+ `${EntityType.GEMINI}.${GeminiVariant.GEMINI}`, // 79.0
43
+ `${EntityType.GEMINI}.${GeminiVariant.STEVEN}`, // 79.1
44
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
45
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
46
+ `${EntityType.GURGLING}.${GurglingVariant.GURGLING_BOSS}`, // 237.1
47
+ `${EntityType.GURGLING}.${GurglingVariant.TURDLING}`, // 237.2
48
+ `${EntityType.DINGLE}.${DingleVariant.DINGLE}`, // 261.0
49
+ `${EntityType.DINGLE}.${DingleVariant.DANGLE}`, // 261.1
50
+ `${EntityType.LITTLE_HORN}.${LittleHornVariant.LITTLE_HORN}`, // 404.0
51
+ `${EntityType.BABY_PLUM}.0`, // 908.0
52
+ ]);
53
+
54
+ /** Contains just the bosses in Cellar (not e.g. Burning Basement). */
55
+ const CELLAR_BOSSES_SET: ReadonlySet<string> = new Set([
56
+ `${EntityType.PIN}.${PinVariant.PIN}`, // 62.0
57
+ `${EntityType.FAMINE}.0`, // 63.0
58
+ `${EntityType.DUKE}.${DukeVariant.DUKE_OF_FLIES}`, // 67.0
59
+ `${EntityType.GEMINI}.${GeminiVariant.BLIGHTED_OVUM}`, // 79.2
60
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
61
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
62
+ `${EntityType.WIDOW}.${WidowVariant.WIDOW}`, // 100.0
63
+ `${EntityType.THE_HAUNT}.${HauntVariant.HAUNT}`, // 260.0
64
+ `${EntityType.LITTLE_HORN}.0`, // 404.0
65
+ `${EntityType.RAG_MAN}.${RagManVariant.RAG_MAN}`, // 405.0
66
+ `${EntityType.BABY_PLUM}.0`, // 908.0
67
+ ]);
68
+
69
+ /** Contains just the bosses in Burning Basement (not e.g. Cellar). */
70
+ const BURNING_BASEMENT_BOSSES_SET: ReadonlySet<string> = new Set([
71
+ `${EntityType.LARRY_JR}.${LarryJrVariant.LARRY_JR}`, // 19.0
72
+ `${EntityType.MONSTRO}.0`, // 20.0
73
+ `${EntityType.FAMINE}.0`, // 63.0
74
+ `${EntityType.DUKE}.${DukeVariant.DUKE_OF_FLIES}`, // 67.0
75
+ `${EntityType.GEMINI}.${GeminiVariant.GEMINI}`, // 79.0
76
+ `${EntityType.GEMINI}.${GeminiVariant.STEVEN}`, // 79.1
77
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
78
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
79
+ `${EntityType.DINGLE}.${DingleVariant.DINGLE}`, // 261.0
80
+ `${EntityType.GURGLING}.${GurglingVariant.GURGLING_BOSS}`, // 237.1
81
+ `${EntityType.GURGLING}.${GurglingVariant.TURDLING}`, // 237.2
82
+ `${EntityType.DINGLE}.${DingleVariant.DANGLE}`, // 261.1
83
+ `${EntityType.LITTLE_HORN}.0`, // 404.0
84
+ `${EntityType.RAG_MAN}.${RagManVariant.RAG_MAN}`, // 405.0
85
+ `${EntityType.BABY_PLUM}.0`, // 908.0
86
+ ]);
87
+
88
+ /** Contains just the bosses in Downpour (not e.g. Burning Basement). */
89
+ const DOWNPOUR_BOSSES_SET: ReadonlySet<string> = new Set([
90
+ `${EntityType.PIN}.${PinVariant.WORMWOOD}`, // 62.3
91
+ `${EntityType.LIL_BLUB}.0`, // 901.0
92
+ `${EntityType.RAINMAKER}.0`, // 902.0
93
+ `${EntityType.MIN_MIN}.0`, // 913.0
94
+ ]);
95
+
96
+ /** Contains just the bosses in Dross (not e.g. Burning Basement). */
97
+ const DROSS_BOSSES_SET: ReadonlySet<string> = new Set([
98
+ `${EntityType.PIN}.${PinVariant.WORMWOOD}`, // 62.3
99
+ `${EntityType.LIL_BLUB}.0`, // 901.0
100
+ `${EntityType.CLOG}.0`, // 914.0
101
+ `${EntityType.COLOSTOMIA}.0`, // 917.0
102
+ `${EntityType.TURDLET}.0`, // 918.0
103
+ ]);
104
+
105
+ /** The set of unique bosses for Basement, Cellar, and so on. */
106
+ const ALL_BASEMENT_BOSSES_SET: ReadonlySet<string> = new Set([
107
+ ...BASEMENT_BOSSES_SET.values(),
108
+ ...CELLAR_BOSSES_SET.values(),
109
+ ...BURNING_BASEMENT_BOSSES_SET.values(),
110
+ ...DOWNPOUR_BOSSES_SET.values(),
111
+ ...DROSS_BOSSES_SET.values(),
112
+ ]);
113
+
114
+ const BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
115
+ StageType,
116
+ ReadonlySet<string>
117
+ > = new Map([
118
+ [StageType.ORIGINAL, BASEMENT_BOSSES_SET],
119
+ [StageType.WRATH_OF_THE_LAMB, CELLAR_BOSSES_SET],
120
+ [StageType.AFTERBIRTH, BURNING_BASEMENT_BOSSES_SET],
121
+ [StageType.REPENTANCE, DOWNPOUR_BOSSES_SET],
122
+ [StageType.REPENTANCE_B, DROSS_BOSSES_SET],
123
+ ]);
124
+
125
+ /** Contains just the bosses in Caves (not e.g. Flooded Caves). */
126
+ const CAVES_BOSSES_SET: ReadonlySet<string> = new Set([
127
+ `${EntityType.CHUB}.${ChubVariant.CHUB}`, // 28.0
128
+ `${EntityType.CHUB}.${ChubVariant.CHAD}`, // 28.1
129
+ `${EntityType.GURDY}.0`, // 36.0
130
+ `${EntityType.PESTILENCE}.0`, // 64.0
131
+ `${EntityType.PEEP}.0`, // 68.0
132
+ `${EntityType.FISTULA_BIG}.${FistulaVariant.FISTULA}`, // 71.0
133
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
134
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
135
+ `${EntityType.GURDY_JR}.0`, // 99.0
136
+ `${EntityType.MEGA_MAW}.0`, // 262.0
137
+ `${EntityType.MEGA_FATTY}.0`, // 264.0
138
+ `${EntityType.STAIN}.0`, // 401.0
139
+ `${EntityType.RAG_MEGA}.${RagMegaVariant.RAG_MEGA}`, // 409.0
140
+ `${EntityType.BIG_HORN}.${BigHornVariant.BIG_HORN}`, // 411.0
141
+ `${EntityType.BUMBINO}.0`, // 916.0
142
+ ]);
143
+
144
+ /** Contains just the bosses in Catacombs (not e.g. Flooded Caves). */
145
+ const CATACOMBS_BOSSES_SET: ReadonlySet<string> = new Set([
146
+ `${EntityType.LARRY_JR}.${LarryJrVariant.THE_HOLLOW}`, // 19.1
147
+ `${EntityType.CHUB}.${ChubVariant.CARRION_QUEEN}`, // 28.2
148
+ `${EntityType.PIN}.${PinVariant.FRAIL}`, // 62.2
149
+ `${EntityType.PESTILENCE}.0`, // 64.0
150
+ `${EntityType.DUKE}.${DukeVariant.THE_HUSK}`, // 67.1
151
+ `${EntityType.PEEP}.${PeepVariant.PEEP}`, // 68.0
152
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
153
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
154
+ `${EntityType.GURDY_JR}.0`, // 99.0
155
+ `${EntityType.WIDOW}.${WidowVariant.THE_WRETCHED}`, // 100.1
156
+ `${EntityType.DARK_ONE}.0`, // 267.0
157
+ `${EntityType.POLYCEPHALUS}.${PolycephalusVariant.POLYCEPHALUS}`, // 269.0
158
+ `${EntityType.FORSAKEN}.0`, // 403.0
159
+ `${EntityType.RAG_MEGA}.${RagMegaVariant.RAG_MEGA}`, // 409.0
160
+ `${EntityType.BIG_HORN}.${BigHornVariant.BIG_HORN}`, // 411.0
161
+ `${EntityType.BUMBINO}.0`, // 916.0
162
+ ]);
163
+
164
+ /** Contains just the bosses in Flooded Caves (not e.g. Catacombs). */
165
+ const FLOODED_CAVES_BOSSES_SET: ReadonlySet<string> = new Set([
166
+ `${EntityType.CHUB}.${ChubVariant.CHUB}`, // 28.0
167
+ `${EntityType.CHUB}.${ChubVariant.CHAD}`, // 28.1
168
+ `${EntityType.GURDY}.0`, // 36.0
169
+ `${EntityType.PIN}.${PinVariant.FRAIL}`, // 62.2
170
+ `${EntityType.PESTILENCE}.0`, // 64.0
171
+ `${EntityType.PEEP}.${PeepVariant.PEEP}`, // 68.0
172
+ `${EntityType.FISTULA_BIG}.${FistulaVariant.FISTULA}`, // 71.0
173
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
174
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
175
+ `${EntityType.GURDY_JR}.0`, // 99.0
176
+ `${EntityType.MEGA_MAW}.0`, // 262.0
177
+ `${EntityType.MEGA_FATTY}.0`, // 264.0
178
+ `${EntityType.STAIN}.0`, // 401.0
179
+ `${EntityType.FORSAKEN}.0`, // 403.0
180
+ `${EntityType.RAG_MEGA}.${RagMegaVariant.RAG_MEGA}`, // 409.0
181
+ `${EntityType.BIG_HORN}.${BigHornVariant.BIG_HORN}`, // 411.0
182
+ `${EntityType.BUMBINO}.0`, // 916.0
183
+ ]);
184
+
185
+ /** Contains just the bosses in Mines (not e.g. Flooded Caves). */
186
+ const MINES_BOSSES_SET: ReadonlySet<string> = new Set([
187
+ `${EntityType.LARRY_JR}.${LarryJrVariant.TUFF_TWIN}`, // 19.2
188
+ `${EntityType.REAP_CREEP}.0`, // 900.0
189
+ `${EntityType.HORNFEL}.0`, // 906.0
190
+ `${EntityType.GIDEON}.0`, // 907.0
191
+ ]);
192
+
193
+ /** Contains just the bosses in Ashpit (not e.g. Flooded Caves). */
194
+ const ASHPIT_BOSSES_SET: ReadonlySet<string> = new Set([
195
+ `${EntityType.LARRY_JR}.${LarryJrVariant.THE_SHELL}`, // 19.3
196
+ `${EntityType.POLYCEPHALUS}.${PolycephalusVariant.THE_PILE}`, // 269.1
197
+ `${EntityType.GIDEON}.0`, // 907.0
198
+ `${EntityType.SINGE}.0`, // 915.0
199
+ `${EntityType.CLUTCH}.0`, // 921.0
200
+ ]);
201
+
202
+ /** The set of unique bosses for Caves, Catacombs, and so on. */
203
+ const ALL_CAVES_BOSSES_SET: ReadonlySet<string> = new Set([
204
+ ...CAVES_BOSSES_SET.values(),
205
+ ...CATACOMBS_BOSSES_SET.values(),
206
+ ...FLOODED_CAVES_BOSSES_SET.values(),
207
+ ...MINES_BOSSES_SET.values(),
208
+ ...ASHPIT_BOSSES_SET.values(),
209
+ ]);
210
+
211
+ const CAVES_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
212
+ StageType,
213
+ ReadonlySet<string>
214
+ > = new Map([
215
+ [StageType.ORIGINAL, CAVES_BOSSES_SET],
216
+ [StageType.WRATH_OF_THE_LAMB, CATACOMBS_BOSSES_SET],
217
+ [StageType.AFTERBIRTH, FLOODED_CAVES_BOSSES_SET],
218
+ [StageType.REPENTANCE, MINES_BOSSES_SET],
219
+ [StageType.REPENTANCE_B, ASHPIT_BOSSES_SET],
220
+ ]);
221
+
222
+ /** Contains just the bosses in Depths (not e.g. Dank Depths). */
223
+ const DEPTHS_BOSSES_SET: ReadonlySet<string> = new Set([
224
+ `${EntityType.MONSTRO_2}.${Monstro2Variant.MONSTRO_2}`, // 43.0
225
+ `${EntityType.MONSTRO_2}.${Monstro2Variant.GISH}`, // 43.1
226
+ `${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
227
+ `${EntityType.WAR}.${WarVariant.WAR}`, // 65.0
228
+ `${EntityType.LOKI}.${LokiVariant.LOKI}`, // 69.0
229
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
230
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
231
+ `${EntityType.GATE}.0`, // 263.0
232
+ `${EntityType.CAGE}.0`, // 265.0
233
+ `${EntityType.BROWNIE}.0`, // 402.0
234
+ `${EntityType.SISTERS_VIS}.0`, // 410.0
235
+ `${EntityType.REAP_CREEP}.0`, // 900.0
236
+ ]);
237
+
238
+ /** Contains just the bosses in Necropolis (not e.g. Dank Depths). */
239
+ const NECROPOLIS_BOSSES_SET: ReadonlySet<string> = new Set([
240
+ `${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
241
+ `${EntityType.WAR}.${WarVariant.WAR}`, // 65.0
242
+ `${EntityType.PEEP}.${PeepVariant.BLOAT}`, // 68.1
243
+ `${EntityType.LOKI}.${LokiVariant.LOKI}`, // 69.0
244
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
245
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
246
+ `${EntityType.MASK_OF_INFAMY}.0`, // 97.0
247
+ `${EntityType.ADVERSARY}.0`, // 268.0
248
+ `${EntityType.POLYCEPHALUS}.${PolycephalusVariant.THE_PILE}`, // 269.1
249
+ `${EntityType.BROWNIE}.0`, // 402.0
250
+ `${EntityType.SISTERS_VIS}.0`, // 410.0
251
+ ]);
252
+
253
+ /** Contains just the bosses in Dank Depths (not e.g. Necropolis). */
254
+ const DANK_DEPTHS_BOSSES_SET: ReadonlySet<string> = new Set([
255
+ `${EntityType.MONSTRO_2}.${Monstro2Variant.MONSTRO_2}`, // 43.0
256
+ `${EntityType.MONSTRO_2}.${Monstro2Variant.GISH}`, // 43.1
257
+ `${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
258
+ `${EntityType.WAR}.${WarVariant.WAR}`, // 65.0
259
+ `${EntityType.LOKI}.${LokiVariant.LOKI}`, // 69.0
260
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
261
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
262
+ `${EntityType.GATE}.0`, // 263.0
263
+ `${EntityType.CAGE}.0`, // 265.0
264
+ `${EntityType.BROWNIE}.0`, // 402.0
265
+ `${EntityType.SISTERS_VIS}.0`, // 410.0
266
+ `${EntityType.REAP_CREEP}.0`, // 900.0
267
+ ]);
268
+
269
+ /** Contains just the bosses in Mausoleum (not e.g. Dank Depths). */
270
+ const MAUSOLEUM_BOSSES_SET: ReadonlySet<string> = new Set([
271
+ `${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
272
+ `${EntityType.SIREN}.0`, // 904.0
273
+ `${EntityType.HERETIC}.0`, // 905.0
274
+ ]);
275
+
276
+ /** Contains just the bosses in Gehenna (not e.g. Dank Depths). */
277
+ const GEHENNA_BOSSES_SET: ReadonlySet<string> = new Set([
278
+ `${EntityType.MOM}.${MomVariant.MOM}`, // 45.0
279
+ `${EntityType.VISAGE}.0`, // 903.0
280
+ `${EntityType.HORNY_BOYS}.0`, // 920.0
281
+ ]);
282
+
283
+ /** The set of unique bosses for Depths, Necropolis, and so on. */
284
+ const ALL_DEPTHS_BOSSES_SET: ReadonlySet<string> = new Set([
285
+ ...DEPTHS_BOSSES_SET.values(),
286
+ ...NECROPOLIS_BOSSES_SET.values(),
287
+ ...DANK_DEPTHS_BOSSES_SET.values(),
288
+ ...MAUSOLEUM_BOSSES_SET.values(),
289
+ ...GEHENNA_BOSSES_SET.values(),
290
+ ]);
291
+
292
+ const DEPTHS_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
293
+ StageType,
294
+ ReadonlySet<string>
295
+ > = new Map([
296
+ [StageType.ORIGINAL, DEPTHS_BOSSES_SET],
297
+ [StageType.WRATH_OF_THE_LAMB, NECROPOLIS_BOSSES_SET],
298
+ [StageType.AFTERBIRTH, DANK_DEPTHS_BOSSES_SET],
299
+ [StageType.REPENTANCE, MAUSOLEUM_BOSSES_SET],
300
+ [StageType.REPENTANCE_B, GEHENNA_BOSSES_SET],
301
+ ]);
302
+
303
+ /** Contains just the bosses in Womb (not e.g. Scarred Womb). */
304
+ const WOMB_BOSSES_SET: ReadonlySet<string> = new Set([
305
+ `${EntityType.PIN}.${PinVariant.SCOLEX}`, // 62.1
306
+ `${EntityType.WAR}.${WarVariant.CONQUEST}`, // 65.1
307
+ `${EntityType.DEATH}.0`, // 66.0
308
+ `${EntityType.LOKI}.${LokiVariant.LOKII}`, // 69.1
309
+ `${EntityType.BLASTOCYST_BIG}.0`, // 74.0
310
+ `${EntityType.MOMS_HEART}.${MomsHeartVariant.MOMS_HEART}`, // 78.0
311
+ `${EntityType.MOMS_HEART}.${MomsHeartVariant.IT_LIVES}`, // 78.1
312
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
313
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
314
+ `${EntityType.MAMA_GURDY}.0`, // 266.0
315
+ `${EntityType.MR_FRED}.0`, // 270.0
316
+ `${EntityType.MATRIARCH}.0`, // 413.0
317
+ ]);
318
+
319
+ /** Contains just the bosses in Utero (not e.g. Scarred Womb). */
320
+ const UTERO_BOSSES_SET: ReadonlySet<string> = new Set([
321
+ `${EntityType.WAR}.${WarVariant.CONQUEST}`, // 65.1
322
+ `${EntityType.DEATH}.0`, // 66.0
323
+ `${EntityType.DADDY_LONG_LEGS}.${DaddyLongLegsVariant.DADDY_LONG_LEGS}`, // 101.0
324
+ `${EntityType.DADDY_LONG_LEGS}.${DaddyLongLegsVariant.TRIACHNID}`, // 101.1
325
+ `${EntityType.PEEP}.${PeepVariant.BLOAT}`, // 68.1
326
+ `${EntityType.LOKI}.${LokiVariant.LOKII}`, // 69.1
327
+ `${EntityType.FISTULA_BIG}.${FistulaVariant.TERATOMA}`, // 71.1
328
+ `${EntityType.MOMS_HEART}.${MomsHeartVariant.MOMS_HEART}`, // 78.0
329
+ `${EntityType.MOMS_HEART}.${MomsHeartVariant.IT_LIVES}`, // 78.1
330
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
331
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
332
+ ]);
333
+
334
+ /** Contains just the bosses in Scarred Womb (not e.g. Utero). */
335
+ const SCARRED_WOMB_BOSSES_SET: ReadonlySet<string> = new Set([
336
+ `${EntityType.PIN}.${PinVariant.SCOLEX}`, // 62.1
337
+ `${EntityType.WAR}.${WarVariant.CONQUEST}`, // 65.1
338
+ `${EntityType.DEATH}.0`, // 66.0
339
+ `${EntityType.LOKI}.${LokiVariant.LOKII}`, // 69.1
340
+ `${EntityType.BLASTOCYST_BIG}.0`, // 74.0
341
+ `${EntityType.MOMS_HEART}.${MomsHeartVariant.MOMS_HEART}`, // 78.0
342
+ `${EntityType.MOMS_HEART}.${MomsHeartVariant.IT_LIVES}`, // 78.1
343
+ `${EntityType.FALLEN}.${FallenVariant.FALLEN}`, // 81.0
344
+ `${EntityType.HEADLESS_HORSEMAN}.0`, // 82.0
345
+ `${EntityType.DADDY_LONG_LEGS}.${DaddyLongLegsVariant.TRIACHNID}`, // 101.1
346
+ `${EntityType.MAMA_GURDY}.${MamaGurdyVariant.MAMA_GURDY}`, // 266.0
347
+ `${EntityType.MR_FRED}.0`, // 270.0
348
+ `${EntityType.MATRIARCH}.0`, // 413.0
349
+ ]);
350
+
351
+ /** Contains just the bosses in Corpse (not e.g. Scarred Womb). */
352
+ const CORPSE_BOSSES_SET: ReadonlySet<string> = new Set([
353
+ `${EntityType.SCOURGE}.0`, // 909.0
354
+ `${EntityType.CHIMERA}.0`, // 910.0
355
+ `${EntityType.ROTGUT}.0`, // 911.0
356
+ `${EntityType.MOTHER}.0`, // 912.0
357
+ ]);
358
+
359
+ /** The set of unique bosses for Depths, Necropolis, and so on. */
360
+ const ALL_WOMB_BOSSES_SET: ReadonlySet<string> = new Set([
361
+ ...WOMB_BOSSES_SET.values(),
362
+ ...UTERO_BOSSES_SET.values(),
363
+ ...SCARRED_WOMB_BOSSES_SET.values(),
364
+ ...MAUSOLEUM_BOSSES_SET.values(),
365
+ ...GEHENNA_BOSSES_SET.values(),
366
+ ]);
367
+
368
+ const WOMB_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
369
+ StageType,
370
+ ReadonlySet<string>
371
+ > = new Map([
372
+ [StageType.ORIGINAL, WOMB_BOSSES_SET],
373
+ [StageType.WRATH_OF_THE_LAMB, UTERO_BOSSES_SET],
374
+ [StageType.AFTERBIRTH, SCARRED_WOMB_BOSSES_SET],
375
+ [StageType.REPENTANCE, CORPSE_BOSSES_SET],
376
+ ]);
377
+
378
+ const BLUE_WOMB_BOSSES_SET: ReadonlySet<string> = new Set([
379
+ `${EntityType.HUSH}.0`, // 407.0
380
+ ]);
381
+
382
+ const BLUE_WOMB_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
383
+ StageType,
384
+ ReadonlySet<string>
385
+ > = new Map([[StageType.ORIGINAL, BLUE_WOMB_BOSSES_SET]]);
386
+
387
+ const SHEOL_BOSSES_SET: ReadonlySet<string> = new Set([
388
+ `${EntityType.SATAN}.${SatanVariant.SATAN}`, // 84.0
389
+ ]);
390
+ const CATHEDRAL_BOSSES_SET: ReadonlySet<string> = new Set([
391
+ `${EntityType.ISAAC}.${IsaacVariant.ISAAC}`, // 102.0
392
+ ]);
393
+
394
+ const ALL_STAGE_10_BOSSES_SET: ReadonlySet<string> = new Set([
395
+ ...SHEOL_BOSSES_SET.values(),
396
+ ...CATHEDRAL_BOSSES_SET.values(),
397
+ ]);
398
+
399
+ const STAGE_10_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
400
+ StageType,
401
+ ReadonlySet<string>
402
+ > = new Map([
403
+ [StageType.ORIGINAL, SHEOL_BOSSES_SET],
404
+ [StageType.WRATH_OF_THE_LAMB, CATHEDRAL_BOSSES_SET],
405
+ ]);
406
+
407
+ const DARK_ROOM_BOSSES_SET: ReadonlySet<string> = new Set([
408
+ `${EntityType.THE_LAMB}.${LambVariant.LAMB}`, // 273.0
409
+ ]);
410
+
411
+ const CHEST_BOSSES_SET: ReadonlySet<string> = new Set([
412
+ `${EntityType.ISAAC}.${IsaacVariant.BLUE_BABY}`, // 102.1
413
+ ]);
414
+
415
+ const ALL_STAGE_11_BOSSES_SET: ReadonlySet<string> = new Set([
416
+ ...DARK_ROOM_BOSSES_SET.values(),
417
+ ...CHEST_BOSSES_SET.values(),
418
+ ]);
419
+
420
+ const STAGE_11_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
421
+ StageType,
422
+ ReadonlySet<string>
423
+ > = new Map([
424
+ [StageType.ORIGINAL, DARK_ROOM_BOSSES_SET],
425
+ [StageType.WRATH_OF_THE_LAMB, CHEST_BOSSES_SET],
426
+ ]);
427
+
428
+ export const STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP: ReadonlyMap<
429
+ int,
430
+ ReadonlyMap<int, ReadonlySet<string>>
431
+ > = new Map([
432
+ [1, BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP],
433
+ [2, BASEMENT_STAGE_TYPE_TO_BOSS_SET_MAP],
434
+ [3, CAVES_STAGE_TYPE_TO_BOSS_SET_MAP],
435
+ [4, CAVES_STAGE_TYPE_TO_BOSS_SET_MAP],
436
+ [5, DEPTHS_STAGE_TYPE_TO_BOSS_SET_MAP],
437
+ [6, DEPTHS_STAGE_TYPE_TO_BOSS_SET_MAP],
438
+ [7, WOMB_STAGE_TYPE_TO_BOSS_SET_MAP],
439
+ [8, WOMB_STAGE_TYPE_TO_BOSS_SET_MAP],
440
+ [9, BLUE_WOMB_STAGE_TYPE_TO_BOSS_SET_MAP],
441
+ [10, STAGE_10_STAGE_TYPE_TO_BOSS_SET_MAP],
442
+ [11, STAGE_11_STAGE_TYPE_TO_BOSS_SET_MAP],
443
+ ]);
444
+
445
+ export const STAGE_TO_COMBINED_BOSS_SET_MAP: ReadonlyMap<
446
+ int,
447
+ ReadonlySet<string>
448
+ > = new Map([
449
+ [1, ALL_BASEMENT_BOSSES_SET],
450
+ [2, ALL_BASEMENT_BOSSES_SET],
451
+ [3, ALL_CAVES_BOSSES_SET],
452
+ [4, ALL_CAVES_BOSSES_SET],
453
+ [5, ALL_DEPTHS_BOSSES_SET],
454
+ [6, ALL_DEPTHS_BOSSES_SET],
455
+ [7, ALL_WOMB_BOSSES_SET],
456
+ [8, ALL_WOMB_BOSSES_SET],
457
+ [9, BLUE_WOMB_BOSSES_SET],
458
+ [10, ALL_STAGE_10_BOSSES_SET],
459
+ [11, ALL_STAGE_11_BOSSES_SET],
460
+ ]);
461
+
462
+ export const ALL_BOSSES_SET: ReadonlySet<string> = new Set([
463
+ ...ALL_BASEMENT_BOSSES_SET.values(),
464
+ ...ALL_CAVES_BOSSES_SET.values(),
465
+ ...ALL_DEPTHS_BOSSES_SET.values(),
466
+ ...ALL_WOMB_BOSSES_SET.values(),
467
+ ...BLUE_WOMB_BOSSES_SET.values(),
468
+ ...ALL_STAGE_10_BOSSES_SET.values(),
469
+ ...ALL_STAGE_11_BOSSES_SET.values(),
470
+ ]);
@@ -0,0 +1,16 @@
1
+ import { PlayerType } from "isaac-typescript-definitions";
2
+
3
+ export const CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET: ReadonlySet<PlayerType> =
4
+ new Set([
5
+ PlayerType.ISAAC, // 0
6
+ PlayerType.MAGDALENE, // 1
7
+ PlayerType.JUDAS, // 3
8
+ PlayerType.BLUE_BABY, // 4
9
+ PlayerType.EVE, // 5
10
+ PlayerType.EDEN, // 9
11
+ PlayerType.THE_LOST, // 10
12
+ PlayerType.LILITH, // 13
13
+ PlayerType.KEEPER, // 14
14
+ PlayerType.APOLLYON, // 15
15
+ PlayerType.EDEN_B, // 30
16
+ ]);
@@ -0,0 +1,7 @@
1
+ import { PlayerType } from "isaac-typescript-definitions";
2
+
3
+ export const CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET: ReadonlySet<PlayerType> =
4
+ new Set([
5
+ PlayerType.BLACK_JUDAS, // 12
6
+ PlayerType.JUDAS_B, // 24
7
+ ]);
@@ -0,0 +1,4 @@
1
+ import { PlayerType } from "isaac-typescript-definitions";
2
+
3
+ export const CHARACTERS_WITH_FREE_DEVIL_DEALS_SET: ReadonlySet<PlayerType> =
4
+ new Set([PlayerType.THE_LOST, PlayerType.THE_LOST_B, PlayerType.JACOB_2_B]);
@@ -0,0 +1,17 @@
1
+ import { PlayerType } from "isaac-typescript-definitions";
2
+
3
+ /**
4
+ * The set of characters where red heart containers will be turned into soul hearts (e.g. Blue
5
+ * Baby). This includes The Lost and Tainted Lost. This does not include Keeper or Tainted Keeper.
6
+ */
7
+ export const CHARACTERS_WITH_NO_RED_HEARTS_SET: ReadonlySet<PlayerType> =
8
+ new Set([
9
+ PlayerType.BLUE_BABY, // 4
10
+ PlayerType.THE_LOST, // 10
11
+ PlayerType.BLACK_JUDAS, // 12
12
+ PlayerType.JUDAS_B, // 24
13
+ PlayerType.BLUE_BABY_B, // 25
14
+ PlayerType.THE_LOST_B, // 31
15
+ PlayerType.THE_FORGOTTEN_B, // 35
16
+ PlayerType.BETHANY_B, // 36
17
+ ]);
@@ -0,0 +1,14 @@
1
+ import { PlayerType } from "isaac-typescript-definitions";
2
+
3
+ /**
4
+ * The set of characters where soul hearts will be automatically stripped away (e.g. Bethany). This
5
+ * includes The Lost and Tainted Lost.
6
+ */
7
+ export const CHARACTERS_WITH_NO_SOUL_HEARTS_SET: ReadonlySet<PlayerType> =
8
+ new Set([
9
+ PlayerType.THE_LOST, // 10
10
+ PlayerType.KEEPER, // 14
11
+ PlayerType.BETHANY, // 18
12
+ PlayerType.THE_LOST_B, // 31
13
+ PlayerType.KEEPER_B, // 33
14
+ ]);
@@ -0,0 +1,16 @@
1
+ import { PickupVariant } from "isaac-typescript-definitions";
2
+
3
+ export const CHEST_PICKUP_VARIANTS: ReadonlySet<PickupVariant> = new Set([
4
+ PickupVariant.CHEST, // 50
5
+ PickupVariant.BOMB_CHEST, // 51
6
+ PickupVariant.SPIKED_CHEST, // 52
7
+ PickupVariant.ETERNAL_CHEST, // 53
8
+ PickupVariant.MIMIC_CHEST, // 54
9
+ PickupVariant.OLD_CHEST, // 55
10
+ PickupVariant.WOODEN_CHEST, // 56
11
+ PickupVariant.MEGA_CHEST, // 57
12
+ PickupVariant.HAUNTED_CHEST, // 58
13
+ PickupVariant.LOCKED_CHEST, // 60
14
+ PickupVariant.RED_CHEST, // 360
15
+ PickupVariant.MOMS_CHEST, // 390
16
+ ]);
@@ -0,0 +1,13 @@
1
+ import { FamiliarVariant } from "isaac-typescript-definitions";
2
+
3
+ export const FAMILIARS_THAT_SHOOT_PLAYER_TEARS_SET: ReadonlySet<FamiliarVariant> =
4
+ new Set([
5
+ FamiliarVariant.SCISSORS,
6
+ FamiliarVariant.INCUBUS,
7
+ FamiliarVariant.FATES_REWARD,
8
+ FamiliarVariant.SPRINKLER,
9
+ FamiliarVariant.LOST_SOUL,
10
+ FamiliarVariant.TWISTED_BABY,
11
+ FamiliarVariant.BLOOD_BABY,
12
+ FamiliarVariant.DECAP_ATTACK,
13
+ ]);
@@ -0,0 +1,13 @@
1
+ import { PlayerType } from "isaac-typescript-definitions";
2
+
3
+ /**
4
+ * This is the set of characters that look like The Lost and play the "LostDeath" animation when
5
+ * they die.
6
+ */
7
+ export const LOST_STYLE_CHARACTERS_SET: ReadonlySet<PlayerType> = new Set([
8
+ PlayerType.THE_LOST, // 10
9
+ PlayerType.THE_SOUL, // 17
10
+ PlayerType.THE_LOST_B, // 31
11
+ PlayerType.JACOB_2_B, // 39
12
+ PlayerType.THE_SOUL_B, // 40
13
+ ]);
@@ -0,0 +1,10 @@
1
+ import { MinesRoomSubType } from "isaac-typescript-definitions";
2
+
3
+ export const MINE_SHAFT_ROOM_SUB_TYPE_SET: ReadonlySet<MinesRoomSubType> =
4
+ new Set([
5
+ MinesRoomSubType.MINESHAFT_ENTRANCE,
6
+ MinesRoomSubType.MINESHAFT_LOBBY,
7
+ MinesRoomSubType.MINESHAFT_KNIFE_PIECE,
8
+ MinesRoomSubType.MINESHAFT_ROOM_PRE_CHASE,
9
+ MinesRoomSubType.MINESHAFT_ROOM_POST_CHASE,
10
+ ]);
@@ -0,0 +1,7 @@
1
+ import { HeartSubType } from "isaac-typescript-definitions";
2
+
3
+ export const RED_HEART_SUB_TYPES_SET: ReadonlySet<HeartSubType> = new Set([
4
+ HeartSubType.FULL, // 1
5
+ HeartSubType.HALF, // 2
6
+ HeartSubType.DOUBLE_PACK, // 5
7
+ ]);
@@ -0,0 +1,11 @@
1
+ import { EntityType } from "isaac-typescript-definitions";
2
+
3
+ export const SIN_ENTITY_TYPES_SET: ReadonlySet<EntityType> = new Set([
4
+ EntityType.SLOTH, // 46
5
+ EntityType.LUST, // 47
6
+ EntityType.WRATH, // 48
7
+ EntityType.GLUTTONY, // 49
8
+ EntityType.GREED, // 50
9
+ EntityType.ENVY, // 51
10
+ EntityType.PRIDE, // 52
11
+ ]);
@@ -0,0 +1,13 @@
1
+ import { CollectibleType } from "isaac-typescript-definitions";
2
+
3
+ export const SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET: ReadonlySet<CollectibleType> =
4
+ new Set([
5
+ CollectibleType.FORGET_ME_NOW, // 127
6
+ CollectibleType.EDENS_SOUL, // 490
7
+ CollectibleType.ALABASTER_BOX, // 585
8
+ CollectibleType.PLAN_C, // 475
9
+ CollectibleType.MAMA_MEGA, // 483
10
+ CollectibleType.SACRIFICIAL_ALTAR, // 536
11
+ CollectibleType.DEATH_CERTIFICATE, // 628
12
+ CollectibleType.R_KEY, // 636
13
+ ]);
@@ -0,0 +1,17 @@
1
+ import { EntityType } from "isaac-typescript-definitions";
2
+
3
+ export const STORY_BOSSES_SET: ReadonlySet<EntityType> = new Set([
4
+ EntityType.MOM, // 45
5
+ EntityType.MOMS_HEART, // 78
6
+ EntityType.SATAN, // 84
7
+ EntityType.ISAAC, // 102
8
+ EntityType.THE_LAMB, // 273
9
+ EntityType.MEGA_SATAN, // 274
10
+ EntityType.MEGA_SATAN_2, // 275
11
+ EntityType.ULTRA_GREED, // 406
12
+ EntityType.HUSH, // 407
13
+ EntityType.DELIRIUM, // 412
14
+ EntityType.MOTHER, // 912
15
+ EntityType.DOGMA, // 950
16
+ EntityType.BEAST, // 951
17
+ ]);
@@ -0,0 +1,12 @@
1
+ export type AnyEntity =
2
+ | Entity
3
+ | EntityBomb
4
+ | EntityEffect
5
+ | EntityFamiliar
6
+ | EntityKnife
7
+ | EntityLaser
8
+ | EntityNPC
9
+ | EntityPickup
10
+ | EntityPlayer
11
+ | EntityProjectile
12
+ | EntityTear;
@@ -0,0 +1,2 @@
1
+ /** A global variable set by custom consoles. */
2
+ declare let AwaitingTextInput: boolean;
@@ -12,5 +12,5 @@
12
12
  * This type is branded for extra type safety.
13
13
  */
14
14
  export declare type CollectibleIndex = string & {
15
- __collectibleIndexBrand: void;
15
+ readonly __collectibleIndexBrand: unique symbol;
16
16
  };