isaacscript-common 87.9.7 → 87.9.8

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 (563) hide show
  1. package/dist/cachedEnumValues.js +29 -32
  2. package/dist/callbackClasses.js +142 -289
  3. package/dist/callbacks.js +147 -183
  4. package/dist/classes/DefaultMap.js +4 -8
  5. package/dist/classes/ModFeature.js +21 -25
  6. package/dist/classes/ModUpgraded.js +43 -47
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
  9. package/dist/classes/callbacks/InputActionFilter.js +4 -8
  10. package/dist/classes/callbacks/InputActionPlayer.js +4 -8
  11. package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
  12. package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
  13. package/dist/classes/callbacks/PostBombExploded.js +8 -12
  14. package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
  15. package/dist/classes/callbacks/PostBombInitLate.js +6 -10
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
  18. package/dist/classes/callbacks/PostBoneSwing.js +7 -11
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
  20. package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
  21. package/dist/classes/callbacks/PostCustomRevive.js +4 -8
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
  23. package/dist/classes/callbacks/PostDoorRender.js +8 -12
  24. package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
  26. package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
  31. package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
  32. package/dist/classes/callbacks/PostEsauJr.js +4 -8
  33. package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
  34. package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
  35. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
  36. package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
  37. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
  38. package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
  39. package/dist/classes/callbacks/PostFirstFlip.js +4 -8
  40. package/dist/classes/callbacks/PostFlip.js +4 -8
  41. package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
  42. package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
  43. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
  44. package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
  45. package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
  46. package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
  47. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
  48. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
  49. package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
  50. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
  51. package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
  52. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
  53. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
  54. package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
  55. package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
  56. package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
  57. package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
  58. package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
  59. package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
  60. package/dist/classes/callbacks/PostItemDischarge.js +23 -27
  61. package/dist/classes/callbacks/PostItemPickup.js +6 -10
  62. package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
  63. package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
  64. package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
  65. package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
  66. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
  67. package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
  68. package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
  69. package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
  70. package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
  71. package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
  72. package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
  73. package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
  74. package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
  75. package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
  76. package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
  77. package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
  78. package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
  79. package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
  80. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
  81. package/dist/classes/callbacks/PostPickupChanged.js +6 -10
  82. package/dist/classes/callbacks/PostPickupCollect.js +8 -12
  83. package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
  84. package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
  85. package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
  86. package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
  87. package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
  88. package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
  89. package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
  90. package/dist/classes/callbacks/PostPitRender.js +8 -12
  91. package/dist/classes/callbacks/PostPitUpdate.js +8 -12
  92. package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
  93. package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
  94. package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
  95. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
  96. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
  97. package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
  98. package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
  99. package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
  100. package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
  101. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
  102. package/dist/classes/callbacks/PostPoopRender.js +8 -12
  103. package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
  104. package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
  105. package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
  106. package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
  107. package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
  108. package/dist/classes/callbacks/PostProjectileKill.js +8 -12
  109. package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
  110. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
  111. package/dist/classes/callbacks/PostPurchase.js +21 -25
  112. package/dist/classes/callbacks/PostRockRender.js +8 -12
  113. package/dist/classes/callbacks/PostRockUpdate.js +8 -12
  114. package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
  115. package/dist/classes/callbacks/PostSacrifice.js +12 -16
  116. package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
  117. package/dist/classes/callbacks/PostSlotCollision.js +8 -12
  118. package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
  119. package/dist/classes/callbacks/PostSlotInit.js +6 -10
  120. package/dist/classes/callbacks/PostSlotRender.js +6 -10
  121. package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
  122. package/dist/classes/callbacks/PostSpikesRender.js +8 -12
  123. package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
  124. package/dist/classes/callbacks/PostTNTRender.js +8 -12
  125. package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
  126. package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
  127. package/dist/classes/callbacks/PostTearInitLate.js +6 -10
  128. package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
  129. package/dist/classes/callbacks/PostTearKill.js +8 -12
  130. package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
  131. package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
  132. package/dist/classes/callbacks/PostTransformation.js +10 -14
  133. package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
  134. package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
  135. package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
  136. package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
  137. package/dist/classes/callbacks/PreCustomRevive.js +6 -10
  138. package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
  139. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
  140. package/dist/classes/callbacks/PreGetPedestal.js +8 -12
  141. package/dist/classes/callbacks/PreItemPickup.js +6 -10
  142. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
  143. package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
  144. package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
  145. package/dist/classes/callbacks/PreNewLevel.js +10 -14
  146. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
  147. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
  148. package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
  149. package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
  150. package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
  151. package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
  152. package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
  153. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
  154. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
  155. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
  156. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
  157. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
  158. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
  159. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
  160. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
  161. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
  162. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
  163. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
  164. package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
  165. package/dist/classes/features/other/CharacterStats.js +9 -13
  166. package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
  167. package/dist/classes/features/other/CustomHotkeys.js +15 -19
  168. package/dist/classes/features/other/CustomItemPools.js +20 -24
  169. package/dist/classes/features/other/CustomPickups.js +15 -19
  170. package/dist/classes/features/other/CustomStages.js +116 -153
  171. package/dist/classes/features/other/CustomTrapdoors.js +119 -123
  172. package/dist/classes/features/other/DebugDisplay.js +77 -81
  173. package/dist/classes/features/other/DeployJSONRoom.js +65 -69
  174. package/dist/classes/features/other/DisableAllSound.js +14 -18
  175. package/dist/classes/features/other/DisableInputs.js +24 -28
  176. package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
  177. package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
  178. package/dist/classes/features/other/FadeInRemover.js +9 -13
  179. package/dist/classes/features/other/FastReset.js +18 -22
  180. package/dist/classes/features/other/FlyingDetection.js +10 -14
  181. package/dist/classes/features/other/ForgottenSwitch.js +8 -12
  182. package/dist/classes/features/other/ItemPoolDetection.js +35 -39
  183. package/dist/classes/features/other/ModdedElementDetection.js +43 -47
  184. package/dist/classes/features/other/ModdedElementSets.js +135 -139
  185. package/dist/classes/features/other/NoSirenSteal.js +7 -11
  186. package/dist/classes/features/other/Pause.js +48 -52
  187. package/dist/classes/features/other/PersistentEntities.js +16 -20
  188. package/dist/classes/features/other/PickupIndexCreation.js +31 -35
  189. package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
  190. package/dist/classes/features/other/PonyDetection.js +22 -26
  191. package/dist/classes/features/other/PressInput.js +10 -14
  192. package/dist/classes/features/other/PreventChildEntities.js +6 -10
  193. package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
  194. package/dist/classes/features/other/RerunDetection.js +11 -15
  195. package/dist/classes/features/other/RoomClearFrame.js +11 -15
  196. package/dist/classes/features/other/RoomHistory.js +30 -34
  197. package/dist/classes/features/other/RunInNFrames.js +24 -28
  198. package/dist/classes/features/other/RunNextRoom.js +8 -12
  199. package/dist/classes/features/other/RunNextRun.js +8 -12
  200. package/dist/classes/features/other/SaveDataManager.js +61 -65
  201. package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
  202. package/dist/classes/features/other/StageHistory.js +76 -80
  203. package/dist/classes/features/other/StartAmbush.js +12 -16
  204. package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
  205. package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
  206. package/dist/classes/features/other/customStages/backdrop.js +68 -71
  207. package/dist/classes/features/other/customStages/constants.js +7 -10
  208. package/dist/classes/features/other/customStages/gridEntities.js +23 -30
  209. package/dist/classes/features/other/customStages/shadows.js +27 -30
  210. package/dist/classes/features/other/customStages/streakText.js +55 -60
  211. package/dist/classes/features/other/customStages/utils.js +13 -17
  212. package/dist/classes/features/other/customStages/v.js +4 -7
  213. package/dist/classes/features/other/customStages/versusScreen.js +46 -50
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
  227. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
  229. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
  231. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
  232. package/dist/classes/features/other/debugDisplay/utils.js +6 -10
  233. package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
  234. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
  235. package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
  236. package/dist/classes/features/other/saveDataManager/constants.js +1 -4
  237. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
  238. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
  239. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
  240. package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
  241. package/dist/classes/private/CustomCallback.js +4 -8
  242. package/dist/classes/private/Feature.js +1 -5
  243. package/dist/core/cachedClasses.js +12 -15
  244. package/dist/core/constants.js +126 -130
  245. package/dist/core/constantsFirstLast.js +22 -25
  246. package/dist/core/constantsVanilla.js +25 -28
  247. package/dist/core/upgradeMod.js +7 -10
  248. package/dist/decorators.js +6 -10
  249. package/dist/enums/AmbushType.js +2 -5
  250. package/dist/enums/CornerType.js +2 -5
  251. package/dist/enums/HealthType.js +2 -5
  252. package/dist/enums/ISCFeature.js +2 -5
  253. package/dist/enums/LadderSubTypeCustom.js +2 -5
  254. package/dist/enums/ModCallbackCustom.js +2 -5
  255. package/dist/enums/MysteriousPaperEffect.js +2 -5
  256. package/dist/enums/PlayerStat.js +2 -5
  257. package/dist/enums/PocketItemType.js +2 -5
  258. package/dist/enums/RockAltType.js +2 -5
  259. package/dist/enums/SaveDataKey.js +2 -5
  260. package/dist/enums/SerializationType.js +2 -5
  261. package/dist/enums/SlotDestructionType.js +2 -5
  262. package/dist/enums/private/GridEntityTypeCustom.js +1 -4
  263. package/dist/enums/private/SerializationBrand.js +2 -5
  264. package/dist/enums/private/StageTravelState.js +2 -5
  265. package/dist/enums/private/TrapdoorAnimation.js +2 -5
  266. package/dist/enums/private/UIStreakAnimation.js +2 -5
  267. package/dist/features.js +138 -141
  268. package/dist/functions/ambush.js +9 -12
  269. package/dist/functions/array.js +45 -76
  270. package/dist/functions/arrayLua.js +7 -16
  271. package/dist/functions/benchmark.js +4 -7
  272. package/dist/functions/bitSet128.js +19 -26
  273. package/dist/functions/bitwise.js +14 -23
  274. package/dist/functions/bombs.js +1 -4
  275. package/dist/functions/bosses.js +68 -85
  276. package/dist/functions/cards.js +44 -62
  277. package/dist/functions/challenges.js +28 -39
  278. package/dist/functions/characters.js +68 -87
  279. package/dist/functions/charge.js +41 -52
  280. package/dist/functions/chargeBar.js +2 -6
  281. package/dist/functions/collectibleTag.js +9 -13
  282. package/dist/functions/collectibles.js +133 -172
  283. package/dist/functions/color.js +29 -38
  284. package/dist/functions/console.js +4 -8
  285. package/dist/functions/curses.js +6 -10
  286. package/dist/functions/debugFunctions.js +7 -14
  287. package/dist/functions/decorators.js +13 -19
  288. package/dist/functions/deepCopy.js +96 -99
  289. package/dist/functions/deepCopyTests.js +56 -59
  290. package/dist/functions/dimensions.js +10 -14
  291. package/dist/functions/direction.js +22 -30
  292. package/dist/functions/doors.js +104 -154
  293. package/dist/functions/easing.js +30 -62
  294. package/dist/functions/effects.js +6 -10
  295. package/dist/functions/emptyRoom.js +30 -34
  296. package/dist/functions/entities.js +88 -115
  297. package/dist/functions/entitiesSpecific.js +83 -125
  298. package/dist/functions/entityTypes.js +3 -6
  299. package/dist/functions/enums.js +27 -41
  300. package/dist/functions/external.js +4 -8
  301. package/dist/functions/familiars.js +17 -25
  302. package/dist/functions/flag.js +10 -19
  303. package/dist/functions/frames.js +31 -51
  304. package/dist/functions/globals.js +26 -66
  305. package/dist/functions/gridEntities.js +231 -269
  306. package/dist/functions/gridEntitiesSpecific.js +86 -126
  307. package/dist/functions/gridIndex.js +8 -11
  308. package/dist/functions/hash.js +1 -4
  309. package/dist/functions/hex.js +7 -11
  310. package/dist/functions/input.js +65 -88
  311. package/dist/functions/isaacAPIClass.js +28 -53
  312. package/dist/functions/itemPool.js +39 -48
  313. package/dist/functions/jsonHelpers.js +5 -42
  314. package/dist/functions/jsonRoom.js +39 -46
  315. package/dist/functions/kColor.js +30 -39
  316. package/dist/functions/language.js +3 -6
  317. package/dist/functions/level.js +20 -26
  318. package/dist/functions/levelGrid.js +81 -108
  319. package/dist/functions/log.js +6 -12
  320. package/dist/functions/logEntities.js +49 -59
  321. package/dist/functions/logMisc.js +183 -214
  322. package/dist/functions/map.js +10 -20
  323. package/dist/functions/math.js +16 -31
  324. package/dist/functions/merge.js +48 -51
  325. package/dist/functions/mergeTests.js +34 -37
  326. package/dist/functions/minimap.js +34 -46
  327. package/dist/functions/modFeatures.js +1 -4
  328. package/dist/functions/newArray.js +5 -8
  329. package/dist/functions/nextStage.js +63 -67
  330. package/dist/functions/npcDataStructures.js +9 -20
  331. package/dist/functions/npcs.js +37 -45
  332. package/dist/functions/pickupVariants.js +26 -39
  333. package/dist/functions/pickups.js +43 -59
  334. package/dist/functions/pickupsSpecific.js +76 -118
  335. package/dist/functions/pills.js +52 -72
  336. package/dist/functions/playerCenter.js +13 -16
  337. package/dist/functions/playerCollectibles.js +59 -79
  338. package/dist/functions/playerDataStructures.js +18 -29
  339. package/dist/functions/playerEffects.js +12 -19
  340. package/dist/functions/playerHealth.js +91 -113
  341. package/dist/functions/playerIndex.js +22 -33
  342. package/dist/functions/playerTrinkets.js +31 -43
  343. package/dist/functions/players.js +87 -126
  344. package/dist/functions/pocketItems.js +33 -43
  345. package/dist/functions/positionVelocity.js +23 -32
  346. package/dist/functions/pressurePlate.js +7 -10
  347. package/dist/functions/projectiles.js +11 -15
  348. package/dist/functions/random.js +8 -13
  349. package/dist/functions/readOnly.js +3 -8
  350. package/dist/functions/render.js +7 -12
  351. package/dist/functions/revive.js +38 -45
  352. package/dist/functions/rng.js +31 -44
  353. package/dist/functions/rockAlt.js +18 -22
  354. package/dist/functions/roomData.js +24 -40
  355. package/dist/functions/roomGrid.js +17 -25
  356. package/dist/functions/roomShape.js +39 -55
  357. package/dist/functions/roomShapeWalls.js +67 -71
  358. package/dist/functions/roomTransition.js +13 -17
  359. package/dist/functions/rooms.js +181 -244
  360. package/dist/functions/run.js +29 -39
  361. package/dist/functions/seeds.js +6 -10
  362. package/dist/functions/serialization.js +27 -34
  363. package/dist/functions/set.js +24 -40
  364. package/dist/functions/slots.js +18 -22
  365. package/dist/functions/sort.js +9 -15
  366. package/dist/functions/sound.js +12 -16
  367. package/dist/functions/spawnCollectible.js +21 -26
  368. package/dist/functions/sprites.js +16 -24
  369. package/dist/functions/stage.js +122 -164
  370. package/dist/functions/stats.js +37 -43
  371. package/dist/functions/storyBosses.js +36 -40
  372. package/dist/functions/string.js +19 -33
  373. package/dist/functions/table.js +21 -31
  374. package/dist/functions/tears.js +6 -14
  375. package/dist/functions/transformations.js +35 -42
  376. package/dist/functions/trinketGive.js +29 -36
  377. package/dist/functions/trinkets.js +45 -60
  378. package/dist/functions/tstlClass.js +11 -20
  379. package/dist/functions/types.js +22 -46
  380. package/dist/functions/ui.js +25 -40
  381. package/dist/functions/utils.js +22 -36
  382. package/dist/functions/vector.js +33 -46
  383. package/dist/functions/versusScreen.js +12 -18
  384. package/dist/functions/weighted.js +8 -12
  385. package/dist/index.js +150 -166
  386. package/dist/indexLua.js +151 -167
  387. package/dist/interfaces/ChargeBarSprites.js +1 -2
  388. package/dist/interfaces/Corner.js +1 -2
  389. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  390. package/dist/interfaces/GridEntityCustomData.js +1 -2
  391. package/dist/interfaces/JSONRoomsFile.js +1 -2
  392. package/dist/interfaces/PlayerHealth.js +1 -2
  393. package/dist/interfaces/PlayerStats.js +2 -4
  394. package/dist/interfaces/PocketItemDescription.js +1 -2
  395. package/dist/interfaces/RoomDescription.js +1 -2
  396. package/dist/interfaces/SaveData.js +1 -2
  397. package/dist/interfaces/StageHistoryEntry.js +1 -2
  398. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  399. package/dist/interfaces/TrinketSituation.js +1 -2
  400. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  401. package/dist/interfaces/private/CustomStage.js +1 -2
  402. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  403. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  404. package/dist/isaacscript-common.lua +1 -1
  405. package/dist/maps/PHDPillConversionsMap.js +19 -22
  406. package/dist/maps/cardNameToTypeMap.js +205 -208
  407. package/dist/maps/characterNameToTypeMap.js +85 -88
  408. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  409. package/dist/maps/defaultPlayerStatMap.js +10 -13
  410. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  411. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  412. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  413. package/dist/maps/gridEntityXMLMap.js +52 -55
  414. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  415. package/dist/maps/keyboardToStringMap.js +66 -69
  416. package/dist/maps/pillNameToEffectMap.js +83 -86
  417. package/dist/maps/roomNameToTypeMap.js +38 -41
  418. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  419. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  420. package/dist/maps/trinketNameToTypeMap.js +5 -8
  421. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  422. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  423. package/dist/objects/batteryNames.js +8 -11
  424. package/dist/objects/bombNames.js +11 -14
  425. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  426. package/dist/objects/bossNamePNGFileNames.js +104 -107
  427. package/dist/objects/bossNames.js +105 -108
  428. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  429. package/dist/objects/cardDescriptions.js +101 -104
  430. package/dist/objects/cardNames.js +101 -104
  431. package/dist/objects/challengeBosses.js +49 -52
  432. package/dist/objects/challengeCharacters.js +49 -52
  433. package/dist/objects/challengeCollectibleTypes.js +160 -163
  434. package/dist/objects/challengeNames.js +49 -52
  435. package/dist/objects/challengeTrinketType.js +48 -51
  436. package/dist/objects/characterDamageMultipliers.js +44 -47
  437. package/dist/objects/characterNames.js +44 -47
  438. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  439. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  440. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  441. package/dist/objects/chestNames.js +15 -18
  442. package/dist/objects/coinNames.js +11 -14
  443. package/dist/objects/coinSubTypeToValue.js +11 -14
  444. package/dist/objects/collectibleDescriptions.js +725 -728
  445. package/dist/objects/collectibleNames.js +725 -728
  446. package/dist/objects/colors.js +1 -4
  447. package/dist/objects/directionNames.js +7 -10
  448. package/dist/objects/directionToDegrees.js +7 -10
  449. package/dist/objects/directionToMoveAction.js +7 -10
  450. package/dist/objects/directionToShootAction.js +7 -10
  451. package/dist/objects/directionToVector.js +9 -12
  452. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  453. package/dist/objects/doorSlotToDirection.js +11 -14
  454. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  455. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  456. package/dist/objects/heartNames.js +16 -19
  457. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  458. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  459. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  460. package/dist/objects/kColors.js +1 -4
  461. package/dist/objects/keyNames.js +8 -11
  462. package/dist/objects/languageNames.js +9 -12
  463. package/dist/objects/oppositeDoorSlots.js +11 -14
  464. package/dist/objects/pillEffectClasses.js +53 -56
  465. package/dist/objects/pillEffectNames.js +53 -56
  466. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  467. package/dist/objects/pillEffectTypes.js +53 -56
  468. package/dist/objects/playerNamePNGFileNames.js +44 -47
  469. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  470. package/dist/objects/roomShapeBounds.js +23 -26
  471. package/dist/objects/roomShapeCorners.js +128 -131
  472. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  473. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  474. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  475. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  476. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  477. package/dist/objects/roomShapeToGridWidth.js +14 -17
  478. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  479. package/dist/objects/roomShapeVolumes.js +21 -24
  480. package/dist/objects/roomTypeNames.js +32 -35
  481. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  482. package/dist/objects/sackNames.js +6 -9
  483. package/dist/objects/slotNames.js +21 -24
  484. package/dist/objects/stageIDNames.js +33 -36
  485. package/dist/objects/stageToMusic.js +69 -72
  486. package/dist/objects/stageToStageID.js +90 -93
  487. package/dist/objects/stageTypeSuffixes.js +8 -11
  488. package/dist/objects/transformationNames.js +16 -19
  489. package/dist/objects/trinketDescriptions.js +192 -195
  490. package/dist/objects/trinketNames.js +192 -195
  491. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  492. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  493. package/dist/patchErrorFunctions.js +4 -7
  494. package/dist/serialization.js +6 -9
  495. package/dist/sets/LRoomShapesSet.js +7 -10
  496. package/dist/sets/bigRoomShapesSet.js +10 -13
  497. package/dist/sets/bossSets.js +261 -264
  498. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  499. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  500. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  501. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  502. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  503. package/dist/sets/consoleCommandsSet.js +2 -5
  504. package/dist/sets/entitiesWithArmorSet.js +44 -47
  505. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  506. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  507. package/dist/sets/lostStyleCharactersSet.js +8 -11
  508. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  509. package/dist/sets/narrowRoomShapesSet.js +7 -10
  510. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  511. package/dist/sets/redHeartSubTypesSet.js +6 -9
  512. package/dist/sets/repentanceBossIDsSet.js +26 -29
  513. package/dist/sets/sinEntityTypesSet.js +10 -13
  514. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  515. package/dist/shaderCrashFix.js +4 -7
  516. package/dist/shouldFire.js +28 -58
  517. package/dist/types/AddSubtract.js +1 -2
  518. package/dist/types/AllButFirst.js +1 -2
  519. package/dist/types/AllButLast.js +1 -2
  520. package/dist/types/AnyClass.js +1 -2
  521. package/dist/types/AnyEntity.js +1 -2
  522. package/dist/types/AnyFunction.js +1 -2
  523. package/dist/types/AnyGridEntity.js +1 -2
  524. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  525. package/dist/types/ConversionHeartSubType.js +1 -2
  526. package/dist/types/Decrement.js +1 -2
  527. package/dist/types/ERange.js +1 -2
  528. package/dist/types/EntityID.js +1 -2
  529. package/dist/types/FunctionTuple.js +1 -2
  530. package/dist/types/GridEntityID.js +1 -2
  531. package/dist/types/HasFunction.js +1 -2
  532. package/dist/types/IRange.js +1 -2
  533. package/dist/types/Immutable.js +1 -2
  534. package/dist/types/Increment.js +1 -2
  535. package/dist/types/LowercaseKeys.js +1 -2
  536. package/dist/types/NaturalNumbersLessThan.js +1 -2
  537. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  538. package/dist/types/ObjectValues.js +1 -2
  539. package/dist/types/PickingUpItem.js +15 -22
  540. package/dist/types/PickupIndex.js +1 -2
  541. package/dist/types/PlayerIndex.js +1 -2
  542. package/dist/types/PossibleStatType.js +1 -2
  543. package/dist/types/PublicInterface.js +1 -2
  544. package/dist/types/ReadonlyMap.js +1 -4
  545. package/dist/types/ReadonlyRecord.js +1 -2
  546. package/dist/types/ReadonlySet.js +1 -4
  547. package/dist/types/StartsWithLowercase.js +1 -2
  548. package/dist/types/StartsWithUppercase.js +1 -2
  549. package/dist/types/TSTLClass.js +1 -2
  550. package/dist/types/Tuple.js +1 -2
  551. package/dist/types/TupleKeys.js +1 -2
  552. package/dist/types/TupleToIntersection.js +1 -2
  553. package/dist/types/TupleToUnion.js +1 -2
  554. package/dist/types/TupleWithLengthBetween.js +1 -2
  555. package/dist/types/TupleWithMaxLength.js +1 -2
  556. package/dist/types/UnionToIntersection.js +1 -2
  557. package/dist/types/UppercaseKeys.js +1 -2
  558. package/dist/types/WeightedArray.js +1 -2
  559. package/dist/types/WidenLiteral.js +1 -2
  560. package/dist/types/Writable.js +1 -2
  561. package/dist/types/private/CallbackTuple.js +1 -2
  562. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  563. package/package.json +3 -3
@@ -1,71 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.closeAllDoors = closeAllDoors;
4
- exports.closeDoorFast = closeDoorFast;
5
- exports.doorSlotFlagsToDoorSlots = doorSlotFlagsToDoorSlots;
6
- exports.doorSlotFlagToDoorSlot = doorSlotFlagToDoorSlot;
7
- exports.doorSlotsToDoorSlotFlags = doorSlotsToDoorSlotFlags;
8
- exports.doorSlotToDirection = doorSlotToDirection;
9
- exports.doorSlotToDoorSlotFlag = doorSlotToDoorSlotFlag;
10
- exports.getAngelRoomDoor = getAngelRoomDoor;
11
- exports.getBlueWombDoor = getBlueWombDoor;
12
- exports.getBossRushDoor = getBossRushDoor;
13
- exports.getDevilRoomDoor = getDevilRoomDoor;
14
- exports.getDevilRoomOrAngelRoomDoor = getDevilRoomOrAngelRoomDoor;
15
- exports.getDoorEnterPosition = getDoorEnterPosition;
16
- exports.getDoors = getDoors;
17
- exports.getDoorSlotEnterPosition = getDoorSlotEnterPosition;
18
- exports.getDoorSlotEnterPositionOffset = getDoorSlotEnterPositionOffset;
19
- exports.getDoorSlotsForRoomShape = getDoorSlotsForRoomShape;
20
- exports.getDoorsToRoomIndex = getDoorsToRoomIndex;
21
- exports.getMegaSatanDoor = getMegaSatanDoor;
22
- exports.getOppositeDoorSlot = getOppositeDoorSlot;
23
- exports.getRepentanceDoor = getRepentanceDoor;
24
- exports.getRoomShapeDoorSlot = getRoomShapeDoorSlot;
25
- exports.getRoomShapeDoorSlotCoordinates = getRoomShapeDoorSlotCoordinates;
26
- exports.getUnusedDoorSlots = getUnusedDoorSlots;
27
- exports.getVoidDoor = getVoidDoor;
28
- exports.hasDoorType = hasDoorType;
29
- exports.hasUnusedDoorSlot = hasUnusedDoorSlot;
30
- exports.isAngelRoomDoor = isAngelRoomDoor;
31
- exports.isBlueWombDoor = isBlueWombDoor;
32
- exports.isBossRushDoor = isBossRushDoor;
33
- exports.isDevilRoomDoor = isDevilRoomDoor;
34
- exports.isDoorSlotInRoomShape = isDoorSlotInRoomShape;
35
- exports.isDoorToDownpour = isDoorToDownpour;
36
- exports.isDoorToMausoleum = isDoorToMausoleum;
37
- exports.isDoorToMausoleumAscent = isDoorToMausoleumAscent;
38
- exports.isDoorToMines = isDoorToMines;
39
- exports.isDoorToMomsHeart = isDoorToMomsHeart;
40
- exports.isHiddenSecretRoomDoor = isHiddenSecretRoomDoor;
41
- exports.isMegaSatanDoor = isMegaSatanDoor;
42
- exports.isRepentanceDoor = isRepentanceDoor;
43
- exports.isSecretRoomDoor = isSecretRoomDoor;
44
- exports.isVoidDoor = isVoidDoor;
45
- exports.lockDoor = lockDoor;
46
- exports.openAllDoors = openAllDoors;
47
- exports.openDoorFast = openDoorFast;
48
- exports.removeAllDoors = removeAllDoors;
49
- exports.removeDoor = removeDoor;
50
- exports.removeDoors = removeDoors;
51
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
52
- const cachedEnumValues_1 = require("../cachedEnumValues");
53
- const cachedClasses_1 = require("../core/cachedClasses");
54
- const constants_1 = require("../core/constants");
55
- const doorSlotFlagToDoorSlot_1 = require("../objects/doorSlotFlagToDoorSlot");
56
- const doorSlotToDirection_1 = require("../objects/doorSlotToDirection");
57
- const doorSlotToDoorSlotFlag_1 = require("../objects/doorSlotToDoorSlotFlag");
58
- const oppositeDoorSlots_1 = require("../objects/oppositeDoorSlots");
59
- const roomShapeToDoorSlotCoordinates_1 = require("../objects/roomShapeToDoorSlotCoordinates");
60
- const roomShapeToDoorSlots_1 = require("../objects/roomShapeToDoorSlots");
61
- const ReadonlySet_1 = require("../types/ReadonlySet");
62
- const bitwise_1 = require("./bitwise");
63
- const direction_1 = require("./direction");
64
- const enums_1 = require("./enums");
65
- const flag_1 = require("./flag");
66
- const tstlClass_1 = require("./tstlClass");
67
- const types_1 = require("./types");
68
- function closeAllDoors() {
1
+ import { DoorSlot, DoorState, DoorVariant, GridEntityType, GridRoom, RoomType, } from "isaac-typescript-definitions";
2
+ import { DOOR_SLOT_FLAG_VALUES, DOOR_SLOT_VALUES } from "../cachedEnumValues";
3
+ import { game } from "../core/cachedClasses";
4
+ import { DISTANCE_OF_GRID_TILE } from "../core/constants";
5
+ import { DEFAULT_DOOR_SLOT, DOOR_SLOT_FLAG_TO_DOOR_SLOT, } from "../objects/doorSlotFlagToDoorSlot";
6
+ import { DOOR_SLOT_TO_DIRECTION } from "../objects/doorSlotToDirection";
7
+ import { DOOR_SLOT_TO_DOOR_SLOT_FLAG } from "../objects/doorSlotToDoorSlotFlag";
8
+ import { OPPOSITE_DOOR_SLOTS } from "../objects/oppositeDoorSlots";
9
+ import { ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES } from "../objects/roomShapeToDoorSlotCoordinates";
10
+ import { ROOM_SHAPE_TO_DOOR_SLOTS } from "../objects/roomShapeToDoorSlots";
11
+ import { ReadonlySet } from "../types/ReadonlySet";
12
+ import { arrayToBitFlags } from "./bitwise";
13
+ import { directionToVector } from "./direction";
14
+ import { isEnumValue } from "./enums";
15
+ import { hasFlag } from "./flag";
16
+ import { isTSTLSet } from "./tstlClass";
17
+ import { parseIntSafe } from "./types";
18
+ export function closeAllDoors() {
69
19
  for (const door of getDoors()) {
70
20
  door.Close(true);
71
21
  }
@@ -74,15 +24,15 @@ function closeAllDoors() {
74
24
  * Use this instead of the `GridEntityDoor.Close` method if you want the door to immediately close
75
25
  * without an animation.
76
26
  */
77
- function closeDoorFast(door) {
78
- door.State = isaac_typescript_definitions_1.DoorState.CLOSED;
27
+ export function closeDoorFast(door) {
28
+ door.State = DoorState.CLOSED;
79
29
  const sprite = door.GetSprite();
80
30
  sprite.Play("Closed", true);
81
31
  }
82
- function doorSlotFlagsToDoorSlots(doorSlotFlags) {
32
+ export function doorSlotFlagsToDoorSlots(doorSlotFlags) {
83
33
  const doorSlots = [];
84
- for (const doorSlotFlag of cachedEnumValues_1.DOOR_SLOT_FLAG_VALUES) {
85
- if (!(0, flag_1.hasFlag)(doorSlotFlags, doorSlotFlag)) {
34
+ for (const doorSlotFlag of DOOR_SLOT_FLAG_VALUES) {
35
+ if (!hasFlag(doorSlotFlags, doorSlotFlag)) {
86
36
  continue;
87
37
  }
88
38
  const doorSlot = doorSlotFlagToDoorSlot(doorSlotFlag);
@@ -90,30 +40,30 @@ function doorSlotFlagsToDoorSlots(doorSlotFlags) {
90
40
  }
91
41
  return doorSlots;
92
42
  }
93
- function doorSlotFlagToDoorSlot(doorSlotFlag) {
94
- const doorSlot = doorSlotFlagToDoorSlot_1.DOOR_SLOT_FLAG_TO_DOOR_SLOT[doorSlotFlag];
95
- return doorSlot ?? doorSlotFlagToDoorSlot_1.DEFAULT_DOOR_SLOT;
43
+ export function doorSlotFlagToDoorSlot(doorSlotFlag) {
44
+ const doorSlot = DOOR_SLOT_FLAG_TO_DOOR_SLOT[doorSlotFlag];
45
+ return doorSlot ?? DEFAULT_DOOR_SLOT;
96
46
  }
97
47
  /**
98
48
  * Helper function to convert an array of door slots or a set of door slots to the resulting bit
99
49
  * flag number.
100
50
  */
101
- function doorSlotsToDoorSlotFlags(doorSlots) {
51
+ export function doorSlotsToDoorSlotFlags(doorSlots) {
102
52
  const doorSlotsMutable = doorSlots;
103
- const doorSlotArray = (0, tstlClass_1.isTSTLSet)(doorSlotsMutable)
53
+ const doorSlotArray = isTSTLSet(doorSlotsMutable)
104
54
  ? [...doorSlotsMutable]
105
55
  : doorSlotsMutable;
106
56
  const doorSlotFlagArray = doorSlotArray.map((doorSlot) => doorSlotToDoorSlotFlag(doorSlot));
107
- return (0, bitwise_1.arrayToBitFlags)(doorSlotFlagArray);
57
+ return arrayToBitFlags(doorSlotFlagArray);
108
58
  }
109
- function doorSlotToDirection(doorSlot) {
110
- return doorSlotToDirection_1.DOOR_SLOT_TO_DIRECTION[doorSlot];
59
+ export function doorSlotToDirection(doorSlot) {
60
+ return DOOR_SLOT_TO_DIRECTION[doorSlot];
111
61
  }
112
- function doorSlotToDoorSlotFlag(doorSlot) {
113
- return doorSlotToDoorSlotFlag_1.DOOR_SLOT_TO_DOOR_SLOT_FLAG[doorSlot];
62
+ export function doorSlotToDoorSlotFlag(doorSlot) {
63
+ return DOOR_SLOT_TO_DOOR_SLOT_FLAG[doorSlot];
114
64
  }
115
- function getAngelRoomDoor() {
116
- const angelRoomDoors = getDoors(isaac_typescript_definitions_1.RoomType.ANGEL);
65
+ export function getAngelRoomDoor() {
66
+ const angelRoomDoors = getDoors(RoomType.ANGEL);
117
67
  return angelRoomDoors.length === 0 ? undefined : angelRoomDoors[0];
118
68
  }
119
69
  /**
@@ -122,7 +72,7 @@ function getAngelRoomDoor() {
122
72
  *
123
73
  * Returns undefined if the room has no Blue Womb doors.
124
74
  */
125
- function getBlueWombDoor() {
75
+ export function getBlueWombDoor() {
126
76
  const doors = getDoors();
127
77
  return doors.find((door) => isBlueWombDoor(door));
128
78
  }
@@ -132,20 +82,20 @@ function getBlueWombDoor() {
132
82
  *
133
83
  * Returns undefined if the room has no Boss Rush doors.
134
84
  */
135
- function getBossRushDoor() {
85
+ export function getBossRushDoor() {
136
86
  const doors = getDoors();
137
87
  return doors.find((door) => isBossRushDoor(door));
138
88
  }
139
- function getDevilRoomDoor() {
140
- const devilRoomDoors = getDoors(isaac_typescript_definitions_1.RoomType.DEVIL);
89
+ export function getDevilRoomDoor() {
90
+ const devilRoomDoors = getDoors(RoomType.DEVIL);
141
91
  return devilRoomDoors.length === 0 ? undefined : devilRoomDoors[0];
142
92
  }
143
93
  /**
144
94
  * If there is both a Devil Room and an Angel Room door, this function will return door with the
145
95
  * lowest slot number.
146
96
  */
147
- function getDevilRoomOrAngelRoomDoor() {
148
- const devilRoomOrAngelRoomDoors = getDoors(isaac_typescript_definitions_1.RoomType.DEVIL, isaac_typescript_definitions_1.RoomType.ANGEL);
97
+ export function getDevilRoomOrAngelRoomDoor() {
98
+ const devilRoomOrAngelRoomDoors = getDoors(RoomType.DEVIL, RoomType.ANGEL);
149
99
  return devilRoomOrAngelRoomDoors.length === 0
150
100
  ? undefined
151
101
  : devilRoomOrAngelRoomDoors[0];
@@ -157,7 +107,7 @@ function getDevilRoomOrAngelRoomDoor() {
157
107
  * they would immediately collide with the loading zone. Instead, they appear on the grid tile next
158
108
  * to the door.
159
109
  */
160
- function getDoorEnterPosition(door) {
110
+ export function getDoorEnterPosition(door) {
161
111
  const offset = getDoorSlotEnterPositionOffset(door.Slot);
162
112
  return door.Position.add(offset);
163
113
  }
@@ -169,10 +119,10 @@ function getDoorEnterPosition(door) {
169
119
  *
170
120
  * @allowEmptyVariadic
171
121
  */
172
- function getDoors(...roomTypes) {
173
- const room = cachedClasses_1.game.GetRoom();
122
+ export function getDoors(...roomTypes) {
123
+ const room = game.GetRoom();
174
124
  const roomShape = room.GetRoomShape();
175
- const roomTypesSet = new ReadonlySet_1.ReadonlySet(roomTypes);
125
+ const roomTypesSet = new ReadonlySet(roomTypes);
176
126
  // We iterate over the possible door slots for this room shape instead of all door slots in order
177
127
  // to prevent crashes from accessing invalid memory.
178
128
  const possibleDoorSlots = getDoorSlotsForRoomShape(roomShape);
@@ -184,7 +134,7 @@ function getDoors(...roomTypes) {
184
134
  }
185
135
  // In Repentance, sometimes doors won't be doors for some reason.
186
136
  const gridEntityType = door.GetType();
187
- if (gridEntityType !== isaac_typescript_definitions_1.GridEntityType.DOOR) {
137
+ if (gridEntityType !== GridEntityType.DOOR) {
188
138
  continue;
189
139
  }
190
140
  if (roomTypesSet.size === 0 || roomTypesSet.has(door.TargetRoomType)) {
@@ -201,8 +151,8 @@ function getDoors(...roomTypes) {
201
151
  * they would immediately collide with the loading zone. Instead, they appear on the grid tile next
202
152
  * to the door.
203
153
  */
204
- function getDoorSlotEnterPosition(doorSlot) {
205
- const room = cachedClasses_1.game.GetRoom();
154
+ export function getDoorSlotEnterPosition(doorSlot) {
155
+ const room = game.GetRoom();
206
156
  const position = room.GetDoorSlotPosition(doorSlot);
207
157
  const offset = getDoorSlotEnterPositionOffset(doorSlot);
208
158
  return position.add(offset);
@@ -214,16 +164,16 @@ function getDoorSlotEnterPosition(doorSlot) {
214
164
  * they would immediately collide with the loading zone. Instead, they appear on the grid tile next
215
165
  * to the door.
216
166
  */
217
- function getDoorSlotEnterPositionOffset(doorSlot) {
167
+ export function getDoorSlotEnterPositionOffset(doorSlot) {
218
168
  const direction = doorSlotToDirection(doorSlot);
219
- const vector = (0, direction_1.directionToVector)(direction);
169
+ const vector = directionToVector(direction);
220
170
  // The player appears in the opposite direction of the way that the door is oriented in the room.
221
171
  const oppositeVector = vector.mul(-1);
222
- return oppositeVector.mul(constants_1.DISTANCE_OF_GRID_TILE);
172
+ return oppositeVector.mul(DISTANCE_OF_GRID_TILE);
223
173
  }
224
174
  /** Helper function to get the possible door slots that can exist for a given room shape. */
225
- function getDoorSlotsForRoomShape(roomShape) {
226
- return roomShapeToDoorSlots_1.ROOM_SHAPE_TO_DOOR_SLOTS[roomShape];
175
+ export function getDoorSlotsForRoomShape(roomShape) {
176
+ return ROOM_SHAPE_TO_DOOR_SLOTS[roomShape];
227
177
  }
228
178
  /**
229
179
  * Helper function to get all of the doors in the room that lead to the provided room index.
@@ -231,8 +181,8 @@ function getDoorSlotsForRoomShape(roomShape) {
231
181
  * This function is variadic, meaning that you can specify N arguments to return all of the doors
232
182
  * that match any of the N room grid indexes.
233
183
  */
234
- function getDoorsToRoomIndex(...roomGridIndex) {
235
- const roomGridIndexesSet = new ReadonlySet_1.ReadonlySet(roomGridIndex);
184
+ export function getDoorsToRoomIndex(...roomGridIndex) {
185
+ const roomGridIndexesSet = new ReadonlySet(roomGridIndex);
236
186
  const doors = getDoors();
237
187
  return doors.filter((door) => roomGridIndexesSet.has(door.TargetRoomIndex));
238
188
  }
@@ -242,12 +192,12 @@ function getDoorsToRoomIndex(...roomGridIndex) {
242
192
  *
243
193
  * Returns undefined if the room has no Mega Satan doors.
244
194
  */
245
- function getMegaSatanDoor() {
195
+ export function getMegaSatanDoor() {
246
196
  const doors = getDoors();
247
197
  return doors.find((door) => isMegaSatanDoor(door));
248
198
  }
249
- function getOppositeDoorSlot(doorSlot) {
250
- return oppositeDoorSlots_1.OPPOSITE_DOOR_SLOTS[doorSlot];
199
+ export function getOppositeDoorSlot(doorSlot) {
200
+ return OPPOSITE_DOOR_SLOTS[doorSlot];
251
201
  }
252
202
  /**
253
203
  * Helper function to get the door that leads to the "secret exit" off-grid room that takes you to
@@ -255,18 +205,18 @@ function getOppositeDoorSlot(doorSlot) {
255
205
  *
256
206
  * Returns undefined if the room has no Repentance doors.
257
207
  */
258
- function getRepentanceDoor() {
208
+ export function getRepentanceDoor() {
259
209
  const doors = getDoors();
260
210
  return doors.find((door) => isRepentanceDoor(door));
261
211
  }
262
212
  /**
263
213
  * Helper function to get the corresponding door slot for a given room shape and grid coordinates.
264
214
  */
265
- function getRoomShapeDoorSlot(roomShape, x, y) {
266
- const doorSlotCoordinates = roomShapeToDoorSlotCoordinates_1.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape];
215
+ export function getRoomShapeDoorSlot(roomShape, x, y) {
216
+ const doorSlotCoordinates = ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape];
267
217
  for (const [doorSlotString, coordinates] of Object.entries(doorSlotCoordinates)) {
268
- const doorSlot = (0, types_1.parseIntSafe)(doorSlotString);
269
- if (doorSlot === undefined || !(0, enums_1.isEnumValue)(doorSlot, isaac_typescript_definitions_1.DoorSlot)) {
218
+ const doorSlot = parseIntSafe(doorSlotString);
219
+ if (doorSlot === undefined || !isEnumValue(doorSlot, DoorSlot)) {
270
220
  continue;
271
221
  }
272
222
  const [doorX, doorY] = coordinates;
@@ -280,19 +230,19 @@ function getRoomShapeDoorSlot(roomShape, x, y) {
280
230
  * Helper function to get the room grid coordinates for a specific room shape and door slot
281
231
  * combination.
282
232
  */
283
- function getRoomShapeDoorSlotCoordinates(roomShape, doorSlot) {
284
- const doorSlotCoordinates = roomShapeToDoorSlotCoordinates_1.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape];
233
+ export function getRoomShapeDoorSlotCoordinates(roomShape, doorSlot) {
234
+ const doorSlotCoordinates = ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape];
285
235
  return doorSlotCoordinates[doorSlot];
286
236
  }
287
237
  /**
288
238
  * Helper function to find unused door slots in the current room that can be used to make custom
289
239
  * doors.
290
240
  */
291
- function getUnusedDoorSlots() {
292
- const room = cachedClasses_1.game.GetRoom();
293
- return cachedEnumValues_1.DOOR_SLOT_VALUES.filter((doorSlot) =>
241
+ export function getUnusedDoorSlots() {
242
+ const room = game.GetRoom();
243
+ return DOOR_SLOT_VALUES.filter((doorSlot) =>
294
244
  // We need to filter out the -1 value to prevent crashes.
295
- doorSlot !== isaac_typescript_definitions_1.DoorSlot.NO_DOOR_SLOT
245
+ doorSlot !== DoorSlot.NO_DOOR_SLOT
296
246
  && room.IsDoorSlotAllowed(doorSlot)
297
247
  && room.GetDoor(doorSlot) === undefined);
298
248
  }
@@ -302,7 +252,7 @@ function getUnusedDoorSlots() {
302
252
  *
303
253
  * Returns undefined if the room has no Void doors.
304
254
  */
305
- function getVoidDoor() {
255
+ export function getVoidDoor() {
306
256
  const doors = getDoors();
307
257
  return doors.find((door) => isVoidDoor(door));
308
258
  }
@@ -313,7 +263,7 @@ function getVoidDoor() {
313
263
  * This function is variadic, meaning that you can supply as many door types as you want to check
314
264
  * for. This function will return true if one or more room types match.
315
265
  */
316
- function hasDoorType(...roomTypes) {
266
+ export function hasDoorType(...roomTypes) {
317
267
  const doors = getDoors();
318
268
  const doorsOfThisRoomType = doors.filter((door) => roomTypes.some((roomType) => door.IsRoomType(roomType)));
319
269
  return doorsOfThisRoomType.length > 0;
@@ -322,35 +272,35 @@ function hasDoorType(...roomTypes) {
322
272
  * Helper function to check if the current room has one or more open door slots that can be used to
323
273
  * make custom doors.
324
274
  */
325
- function hasUnusedDoorSlot() {
275
+ export function hasUnusedDoorSlot() {
326
276
  const unusedDoorSlots = getUnusedDoorSlots();
327
277
  return unusedDoorSlots.length > 0;
328
278
  }
329
- function isAngelRoomDoor(door) {
330
- return door.TargetRoomType === isaac_typescript_definitions_1.RoomType.ANGEL;
279
+ export function isAngelRoomDoor(door) {
280
+ return door.TargetRoomType === RoomType.ANGEL;
331
281
  }
332
282
  /**
333
283
  * Helper function to check if the provided door is the one that leads to the off-grid room that
334
284
  * contains the hole to the Blue Womb. (In vanilla, the door will only appear in the It Lives Boss
335
285
  * Room.)
336
286
  */
337
- function isBlueWombDoor(door) {
287
+ export function isBlueWombDoor(door) {
338
288
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
339
- return door.TargetRoomIndex === isaac_typescript_definitions_1.GridRoom.BLUE_WOMB;
289
+ return door.TargetRoomIndex === GridRoom.BLUE_WOMB;
340
290
  }
341
291
  /**
342
292
  * Helper function to check if the provided door is the one that leads to the Boss Rush room. (In
343
293
  * vanilla, the door will only appear in the Boss Room of the sixth floor.)
344
294
  */
345
- function isBossRushDoor(door) {
295
+ export function isBossRushDoor(door) {
346
296
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
347
- return door.TargetRoomIndex === isaac_typescript_definitions_1.GridRoom.BOSS_RUSH;
297
+ return door.TargetRoomIndex === GridRoom.BOSS_RUSH;
348
298
  }
349
- function isDevilRoomDoor(door) {
350
- return door.TargetRoomType === isaac_typescript_definitions_1.RoomType.DEVIL;
299
+ export function isDevilRoomDoor(door) {
300
+ return door.TargetRoomType === RoomType.DEVIL;
351
301
  }
352
302
  /** Helper function to see if a door slot could exist for a given room shape. */
353
- function isDoorSlotInRoomShape(doorSlot, roomShape) {
303
+ export function isDoorSlotInRoomShape(doorSlot, roomShape) {
354
304
  const doorSlots = getDoorSlotsForRoomShape(roomShape);
355
305
  return doorSlots.has(doorSlot);
356
306
  }
@@ -358,7 +308,7 @@ function isDoorSlotInRoomShape(doorSlot, roomShape) {
358
308
  * This refers to the Repentance door that spawns in a boss room after defeating the boss. You have
359
309
  * to spend one key to open it. It has a sprite filename of "gfx/grid/door_downpour.anm2".
360
310
  */
361
- function isDoorToDownpour(door) {
311
+ export function isDoorToDownpour(door) {
362
312
  if (!isRepentanceDoor(door)) {
363
313
  return false;
364
314
  }
@@ -371,7 +321,7 @@ function isDoorToDownpour(door) {
371
321
  * This refers to the Repentance door that spawns in a boss room after defeating the boss. You have
372
322
  * to spend two hearts to open it. It has a sprite filename of "gfx/grid/door_mausoleum.anm2".
373
323
  */
374
- function isDoorToMausoleum(door) {
324
+ export function isDoorToMausoleum(door) {
375
325
  if (!isRepentanceDoor(door)) {
376
326
  return false;
377
327
  }
@@ -384,7 +334,7 @@ function isDoorToMausoleum(door) {
384
334
  * This refers to the "strange door" located on the first room of Depths 2. You open it with either
385
335
  * a Polaroid or a Negative. It has a sprite filename of "gfx/grid/door_mausoleum_alt.anm2".
386
336
  */
387
- function isDoorToMausoleumAscent(door) {
337
+ export function isDoorToMausoleumAscent(door) {
388
338
  if (!isRepentanceDoor(door)) {
389
339
  return false;
390
340
  }
@@ -397,7 +347,7 @@ function isDoorToMausoleumAscent(door) {
397
347
  * This refers to the Repentance door that spawns in a boss room after defeating the boss. You have
398
348
  * to spend two bombs to open it. It has a sprite filename of "gfx/grid/door_mines.anm2".
399
349
  */
400
- function isDoorToMines(door) {
350
+ export function isDoorToMines(door) {
401
351
  if (!isRepentanceDoor(door)) {
402
352
  return false;
403
353
  }
@@ -410,7 +360,7 @@ function isDoorToMines(door) {
410
360
  * This refers to the Repentance door that spawns after defeating Mom. You open it with the
411
361
  * completed knife. It has a sprite filename of "gfx/grid/door_momsheart.anm2".
412
362
  */
413
- function isDoorToMomsHeart(door) {
363
+ export function isDoorToMomsHeart(door) {
414
364
  if (!isRepentanceDoor(door)) {
415
365
  return false;
416
366
  }
@@ -419,7 +369,7 @@ function isDoorToMomsHeart(door) {
419
369
  // On Windows, this is: "gfx/grid/Door_MomsHeart.anm2"
420
370
  return fileName.toLowerCase() === "gfx/grid/door_momsheart.anm2"; // cspell:ignore momsheart
421
371
  }
422
- function isHiddenSecretRoomDoor(door) {
372
+ export function isHiddenSecretRoomDoor(door) {
423
373
  const sprite = door.GetSprite();
424
374
  const animation = sprite.GetAnimation();
425
375
  return isSecretRoomDoor(door) && animation === "Hidden";
@@ -428,17 +378,17 @@ function isHiddenSecretRoomDoor(door) {
428
378
  * Helper function to check if the provided door is the one that leads to the Mega Satan Boss Room.
429
379
  * (In vanilla, the door will only appear in the starting room of The Chest / Dark Room.)
430
380
  */
431
- function isMegaSatanDoor(door) {
381
+ export function isMegaSatanDoor(door) {
432
382
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
433
- return door.TargetRoomIndex === isaac_typescript_definitions_1.GridRoom.MEGA_SATAN;
383
+ return door.TargetRoomIndex === GridRoom.MEGA_SATAN;
434
384
  }
435
385
  /**
436
386
  * Helper function to check if the provided door leads to the "secret exit" off-grid room that takes
437
387
  * you to the Repentance floor.
438
388
  */
439
- function isRepentanceDoor(door) {
389
+ export function isRepentanceDoor(door) {
440
390
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
441
- return door.TargetRoomIndex === isaac_typescript_definitions_1.GridRoom.SECRET_EXIT;
391
+ return door.TargetRoomIndex === GridRoom.SECRET_EXIT;
442
392
  }
443
393
  /**
444
394
  * This refers to the hole in the wall that appears after bombing the entrance to a secret room.
@@ -448,7 +398,7 @@ function isRepentanceDoor(door) {
448
398
  * Note that since Ultra Secret Rooms do not use holes, this function will not detect an Ultra
449
399
  * Secret Room door.
450
400
  */
451
- function isSecretRoomDoor(door) {
401
+ export function isSecretRoomDoor(door) {
452
402
  const sprite = door.GetSprite();
453
403
  const fileName = sprite.GetFilename();
454
404
  // On Windows, this is: "gfx/grid/Door_08_HoleInWall.anm2"
@@ -458,9 +408,9 @@ function isSecretRoomDoor(door) {
458
408
  * Helper function to check if the provided door is the one that leads to the off-grid room that
459
409
  * contains the portal to The Void. (In vanilla, the door will only appear in the Hush Boss Room.)
460
410
  */
461
- function isVoidDoor(door) {
411
+ export function isVoidDoor(door) {
462
412
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
463
- return door.TargetRoomIndex === isaac_typescript_definitions_1.GridRoom.VOID;
413
+ return door.TargetRoomIndex === GridRoom.VOID;
464
414
  }
465
415
  /**
466
416
  * Helper function to reset an unlocked door back to a locked state. Doing this is non-trivial
@@ -470,12 +420,12 @@ function isVoidDoor(door) {
470
420
  * - Set the variant to `DoorVariant.DOOR_LOCKED`.
471
421
  * - Close the door.
472
422
  */
473
- function lockDoor(door) {
474
- const level = cachedClasses_1.game.GetLevel();
423
+ export function lockDoor(door) {
424
+ const level = game.GetLevel();
475
425
  // We can't use the "getRoomDescriptor" function since it will cause a dependency cycle.
476
426
  const roomDescriptor = level.GetRoomByIdx(door.TargetRoomIndex);
477
427
  roomDescriptor.VisitedCount = 0;
478
- door.SetVariant(isaac_typescript_definitions_1.DoorVariant.LOCKED);
428
+ door.SetVariant(DoorVariant.LOCKED);
479
429
  door.SetLocked(true);
480
430
  door.Close(true);
481
431
  }
@@ -483,7 +433,7 @@ function lockDoor(door) {
483
433
  * For the purposes of this function, doors to Secret Rooms or Super Secret Rooms that have not been
484
434
  * discovered yet will not be opened.
485
435
  */
486
- function openAllDoors() {
436
+ export function openAllDoors() {
487
437
  for (const door of getDoors()) {
488
438
  // If we try to open a hidden Secret Room door (or Super Secret Room door), then nothing will
489
439
  // happen.
@@ -494,8 +444,8 @@ function openAllDoors() {
494
444
  * Use this instead of the `GridEntityDoor.Open` method if you want the door to immediately open
495
445
  * without an animation.
496
446
  */
497
- function openDoorFast(door) {
498
- door.State = isaac_typescript_definitions_1.DoorState.OPEN;
447
+ export function openDoorFast(door) {
448
+ door.State = DoorState.OPEN;
499
449
  const sprite = door.GetSprite();
500
450
  sprite.Play("Opened", true);
501
451
  }
@@ -507,14 +457,14 @@ function openDoorFast(door) {
507
457
  * @returns The number of doors removed.
508
458
  * @allowEmptyVariadic
509
459
  */
510
- function removeAllDoors(...roomTypes) {
460
+ export function removeAllDoors(...roomTypes) {
511
461
  const doors = getDoors(...roomTypes);
512
462
  removeDoors(...doors);
513
463
  return doors.length;
514
464
  }
515
465
  /** Helper function to remove a single door. */
516
- function removeDoor(door) {
517
- const room = cachedClasses_1.game.GetRoom();
466
+ export function removeDoor(door) {
467
+ const room = game.GetRoom();
518
468
  room.RemoveDoor(door.Slot);
519
469
  }
520
470
  /**
@@ -522,7 +472,7 @@ function removeDoor(door) {
522
472
  *
523
473
  * This function is variadic, meaning that you can specify as many doors as you want to remove.
524
474
  */
525
- function removeDoors(...doors) {
475
+ export function removeDoors(...doors) {
526
476
  for (const door of doors) {
527
477
  removeDoor(door);
528
478
  }