isaacscript-common 87.9.7 → 87.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) 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/index.rollup.d.ts +11 -11
  387. package/dist/indexLua.js +151 -167
  388. package/dist/interfaces/ChargeBarSprites.js +1 -2
  389. package/dist/interfaces/Corner.js +1 -2
  390. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  391. package/dist/interfaces/GridEntityCustomData.js +1 -2
  392. package/dist/interfaces/JSONRoomsFile.js +1 -2
  393. package/dist/interfaces/PlayerHealth.d.ts +11 -11
  394. package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
  395. package/dist/interfaces/PlayerHealth.js +1 -2
  396. package/dist/interfaces/PlayerStats.js +2 -4
  397. package/dist/interfaces/PocketItemDescription.js +1 -2
  398. package/dist/interfaces/RoomDescription.js +1 -2
  399. package/dist/interfaces/SaveData.js +1 -2
  400. package/dist/interfaces/StageHistoryEntry.js +1 -2
  401. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  402. package/dist/interfaces/TrinketSituation.js +1 -2
  403. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  404. package/dist/interfaces/private/CustomStage.js +1 -2
  405. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  406. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  407. package/dist/isaacscript-common.lua +1 -1
  408. package/dist/maps/PHDPillConversionsMap.js +19 -22
  409. package/dist/maps/cardNameToTypeMap.js +205 -208
  410. package/dist/maps/characterNameToTypeMap.js +85 -88
  411. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  412. package/dist/maps/defaultPlayerStatMap.js +10 -13
  413. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  414. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  415. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  416. package/dist/maps/gridEntityXMLMap.js +52 -55
  417. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  418. package/dist/maps/keyboardToStringMap.js +66 -69
  419. package/dist/maps/pillNameToEffectMap.js +83 -86
  420. package/dist/maps/roomNameToTypeMap.js +38 -41
  421. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  422. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  423. package/dist/maps/trinketNameToTypeMap.js +5 -8
  424. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  425. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  426. package/dist/objects/batteryNames.js +8 -11
  427. package/dist/objects/bombNames.js +11 -14
  428. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  429. package/dist/objects/bossNamePNGFileNames.js +104 -107
  430. package/dist/objects/bossNames.js +105 -108
  431. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  432. package/dist/objects/cardDescriptions.js +101 -104
  433. package/dist/objects/cardNames.js +101 -104
  434. package/dist/objects/challengeBosses.js +49 -52
  435. package/dist/objects/challengeCharacters.js +49 -52
  436. package/dist/objects/challengeCollectibleTypes.js +160 -163
  437. package/dist/objects/challengeNames.js +49 -52
  438. package/dist/objects/challengeTrinketType.js +48 -51
  439. package/dist/objects/characterDamageMultipliers.js +44 -47
  440. package/dist/objects/characterNames.js +44 -47
  441. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  442. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  443. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  444. package/dist/objects/chestNames.js +15 -18
  445. package/dist/objects/coinNames.js +11 -14
  446. package/dist/objects/coinSubTypeToValue.js +11 -14
  447. package/dist/objects/collectibleDescriptions.js +725 -728
  448. package/dist/objects/collectibleNames.js +725 -728
  449. package/dist/objects/colors.js +1 -4
  450. package/dist/objects/directionNames.js +7 -10
  451. package/dist/objects/directionToDegrees.js +7 -10
  452. package/dist/objects/directionToMoveAction.js +7 -10
  453. package/dist/objects/directionToShootAction.js +7 -10
  454. package/dist/objects/directionToVector.js +9 -12
  455. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  456. package/dist/objects/doorSlotToDirection.js +11 -14
  457. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  458. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  459. package/dist/objects/heartNames.js +16 -19
  460. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  461. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  462. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  463. package/dist/objects/kColors.js +1 -4
  464. package/dist/objects/keyNames.js +8 -11
  465. package/dist/objects/languageNames.js +9 -12
  466. package/dist/objects/oppositeDoorSlots.js +11 -14
  467. package/dist/objects/pillEffectClasses.js +53 -56
  468. package/dist/objects/pillEffectNames.js +53 -56
  469. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  470. package/dist/objects/pillEffectTypes.js +53 -56
  471. package/dist/objects/playerNamePNGFileNames.js +44 -47
  472. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  473. package/dist/objects/roomShapeBounds.js +23 -26
  474. package/dist/objects/roomShapeCorners.js +128 -131
  475. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  476. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  477. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  478. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  479. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  480. package/dist/objects/roomShapeToGridWidth.js +14 -17
  481. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  482. package/dist/objects/roomShapeVolumes.js +21 -24
  483. package/dist/objects/roomTypeNames.js +32 -35
  484. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  485. package/dist/objects/sackNames.js +6 -9
  486. package/dist/objects/slotNames.js +21 -24
  487. package/dist/objects/stageIDNames.js +33 -36
  488. package/dist/objects/stageToMusic.js +69 -72
  489. package/dist/objects/stageToStageID.js +90 -93
  490. package/dist/objects/stageTypeSuffixes.js +8 -11
  491. package/dist/objects/transformationNames.js +16 -19
  492. package/dist/objects/trinketDescriptions.js +192 -195
  493. package/dist/objects/trinketNames.js +192 -195
  494. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  495. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  496. package/dist/patchErrorFunctions.js +4 -7
  497. package/dist/serialization.js +6 -9
  498. package/dist/sets/LRoomShapesSet.js +7 -10
  499. package/dist/sets/bigRoomShapesSet.js +10 -13
  500. package/dist/sets/bossSets.js +261 -264
  501. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  502. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  503. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  504. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  505. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  506. package/dist/sets/consoleCommandsSet.js +2 -5
  507. package/dist/sets/entitiesWithArmorSet.js +44 -47
  508. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  509. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  510. package/dist/sets/lostStyleCharactersSet.js +8 -11
  511. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  512. package/dist/sets/narrowRoomShapesSet.js +7 -10
  513. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  514. package/dist/sets/redHeartSubTypesSet.js +6 -9
  515. package/dist/sets/repentanceBossIDsSet.js +26 -29
  516. package/dist/sets/sinEntityTypesSet.js +10 -13
  517. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  518. package/dist/shaderCrashFix.js +4 -7
  519. package/dist/shouldFire.js +28 -58
  520. package/dist/types/AddSubtract.js +1 -2
  521. package/dist/types/AllButFirst.js +1 -2
  522. package/dist/types/AllButLast.js +1 -2
  523. package/dist/types/AnyClass.js +1 -2
  524. package/dist/types/AnyEntity.js +1 -2
  525. package/dist/types/AnyFunction.js +1 -2
  526. package/dist/types/AnyGridEntity.js +1 -2
  527. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  528. package/dist/types/ConversionHeartSubType.js +1 -2
  529. package/dist/types/Decrement.js +1 -2
  530. package/dist/types/ERange.js +1 -2
  531. package/dist/types/EntityID.js +1 -2
  532. package/dist/types/FunctionTuple.js +1 -2
  533. package/dist/types/GridEntityID.js +1 -2
  534. package/dist/types/HasFunction.js +1 -2
  535. package/dist/types/IRange.js +1 -2
  536. package/dist/types/Immutable.js +1 -2
  537. package/dist/types/Increment.js +1 -2
  538. package/dist/types/LowercaseKeys.js +1 -2
  539. package/dist/types/NaturalNumbersLessThan.js +1 -2
  540. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  541. package/dist/types/ObjectValues.js +1 -2
  542. package/dist/types/PickingUpItem.js +15 -22
  543. package/dist/types/PickupIndex.js +1 -2
  544. package/dist/types/PlayerIndex.js +1 -2
  545. package/dist/types/PossibleStatType.js +1 -2
  546. package/dist/types/PublicInterface.js +1 -2
  547. package/dist/types/ReadonlyMap.js +1 -4
  548. package/dist/types/ReadonlyRecord.js +1 -2
  549. package/dist/types/ReadonlySet.js +1 -4
  550. package/dist/types/StartsWithLowercase.js +1 -2
  551. package/dist/types/StartsWithUppercase.js +1 -2
  552. package/dist/types/TSTLClass.js +1 -2
  553. package/dist/types/Tuple.js +1 -2
  554. package/dist/types/TupleKeys.js +1 -2
  555. package/dist/types/TupleToIntersection.js +1 -2
  556. package/dist/types/TupleToUnion.js +1 -2
  557. package/dist/types/TupleWithLengthBetween.js +1 -2
  558. package/dist/types/TupleWithMaxLength.js +1 -2
  559. package/dist/types/UnionToIntersection.js +1 -2
  560. package/dist/types/UppercaseKeys.js +1 -2
  561. package/dist/types/WeightedArray.js +1 -2
  562. package/dist/types/WidenLiteral.js +1 -2
  563. package/dist/types/Writable.js +1 -2
  564. package/dist/types/private/CallbackTuple.js +1 -2
  565. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  566. package/package.json +3 -3
  567. package/src/interfaces/PlayerHealth.ts +12 -11
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * These functions have to do with the room grid index for the level (i.e. the position that the
4
3
  * room is on the grid that represents the map for the level).
@@ -7,48 +6,22 @@
7
6
  *
8
7
  * @module
9
8
  */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.getAdjacentExistingRoomGridIndexes = getAdjacentExistingRoomGridIndexes;
12
- exports.getAdjacentNonExistingRoomGridIndexes = getAdjacentNonExistingRoomGridIndexes;
13
- exports.getAdjacentRoomGridIndexes = getAdjacentRoomGridIndexes;
14
- exports.getAllRoomGridIndexes = getAllRoomGridIndexes;
15
- exports.getNewRoomCandidate = getNewRoomCandidate;
16
- exports.getNewRoomCandidatesBesideRoom = getNewRoomCandidatesBesideRoom;
17
- exports.getNewRoomCandidatesForLevel = getNewRoomCandidatesForLevel;
18
- exports.getRoomAdjacentGridIndexes = getRoomAdjacentGridIndexes;
19
- exports.getRoomDescriptorsForType = getRoomDescriptorsForType;
20
- exports.getRoomGridIndexesForType = getRoomGridIndexesForType;
21
- exports.getRoomShapeAdjacentExistingGridIndexes = getRoomShapeAdjacentExistingGridIndexes;
22
- exports.getRoomShapeAdjacentGridIndexDeltas = getRoomShapeAdjacentGridIndexDeltas;
23
- exports.getRoomShapeAdjacentGridIndexes = getRoomShapeAdjacentGridIndexes;
24
- exports.getRoomShapeAdjacentNonExistingGridIndexes = getRoomShapeAdjacentNonExistingGridIndexes;
25
- exports.inGrid = inGrid;
26
- exports.inRedKeyRoom = inRedKeyRoom;
27
- exports.isDeadEnd = isDeadEnd;
28
- exports.isDoorSlotValidAtGridIndex = isDoorSlotValidAtGridIndex;
29
- exports.isDoorSlotValidAtGridIndexForRedRoom = isDoorSlotValidAtGridIndexForRedRoom;
30
- exports.isRedKeyRoom = isRedKeyRoom;
31
- exports.isRoomInsideGrid = isRoomInsideGrid;
32
- exports.newRoom = newRoom;
33
- exports.roomExists = roomExists;
34
- exports.roomGridIndexToVector = roomGridIndexToVector;
35
- exports.vectorToRoomGridIndex = vectorToRoomGridIndex;
36
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
37
- const cachedClasses_1 = require("../core/cachedClasses");
38
- const constants_1 = require("../core/constants");
39
- const roomShapeToDoorSlotsToGridIndexDelta_1 = require("../objects/roomShapeToDoorSlotsToGridIndexDelta");
40
- const array_1 = require("./array");
41
- const doors_1 = require("./doors");
42
- const flag_1 = require("./flag");
43
- const map_1 = require("./map");
44
- const rng_1 = require("./rng");
45
- const roomData_1 = require("./roomData");
46
- const roomShape_1 = require("./roomShape");
47
- const rooms_1 = require("./rooms");
9
+ import { DisplayFlag, LevelStateFlag, RoomDescriptorFlag, RoomType, } from "isaac-typescript-definitions";
10
+ import { game } from "../core/cachedClasses";
11
+ import { ALL_DISPLAY_FLAGS, LEVEL_GRID_ROW_WIDTH, MAX_LEVEL_GRID_INDEX, } from "../core/constants";
12
+ import { ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA } from "../objects/roomShapeToDoorSlotsToGridIndexDelta";
13
+ import { getRandomArrayElement } from "./array";
14
+ import { doorSlotToDoorSlotFlag } from "./doors";
15
+ import { addFlag, hasFlag, removeFlag } from "./flag";
16
+ import { copyMap } from "./map";
17
+ import { isRNG, newRNG } from "./rng";
18
+ import { getRoomAllowedDoors, getRoomData, getRoomDescriptor, getRoomGridIndex, getRoomShape, } from "./roomData";
19
+ import { getGridIndexDelta } from "./roomShape";
20
+ import { getRooms, getRoomsInsideGrid, isMineShaft, isMirrorRoom, isSecretRoomType, } from "./rooms";
48
21
  const LEFT = -1;
49
- const UP = -constants_1.LEVEL_GRID_ROW_WIDTH;
22
+ const UP = -LEVEL_GRID_ROW_WIDTH;
50
23
  const RIGHT = 1;
51
- const DOWN = constants_1.LEVEL_GRID_ROW_WIDTH;
24
+ const DOWN = LEVEL_GRID_ROW_WIDTH;
52
25
  const ADJACENT_ROOM_GRID_INDEX_DELTAS = [LEFT, UP, RIGHT, DOWN];
53
26
  /**
54
27
  * Helper function to get only the adjacent room grid indexes that exist (i.e. have room data).
@@ -58,9 +31,9 @@ const ADJACENT_ROOM_GRID_INDEX_DELTAS = [LEFT, UP, RIGHT, DOWN];
58
31
  *
59
32
  * @param roomGridIndex Optional. Default is the current room index.
60
33
  */
61
- function getAdjacentExistingRoomGridIndexes(roomGridIndex) {
34
+ export function getAdjacentExistingRoomGridIndexes(roomGridIndex) {
62
35
  const adjacentRoomGridIndexes = getAdjacentRoomGridIndexes(roomGridIndex);
63
- return adjacentRoomGridIndexes.filter((adjacentRoomGridIndex) => (0, roomData_1.getRoomData)(adjacentRoomGridIndex) !== undefined);
36
+ return adjacentRoomGridIndexes.filter((adjacentRoomGridIndex) => getRoomData(adjacentRoomGridIndex) !== undefined);
64
37
  }
65
38
  /**
66
39
  * Helper function to get only the adjacent room grid indexes that do not exist (i.e. do not have
@@ -69,9 +42,9 @@ function getAdjacentExistingRoomGridIndexes(roomGridIndex) {
69
42
  * This is just a filtering of the results of the `getAdjacentExistingRoomGridIndexes` function. See
70
43
  * that function for more information.
71
44
  */
72
- function getAdjacentNonExistingRoomGridIndexes(roomGridIndex) {
45
+ export function getAdjacentNonExistingRoomGridIndexes(roomGridIndex) {
73
46
  const adjacentRoomGridIndexes = getAdjacentRoomGridIndexes(roomGridIndex);
74
- return adjacentRoomGridIndexes.filter((adjacentRoomGridIndex) => (0, roomData_1.getRoomData)(adjacentRoomGridIndex) === undefined);
47
+ return adjacentRoomGridIndexes.filter((adjacentRoomGridIndex) => getRoomData(adjacentRoomGridIndex) === undefined);
75
48
  }
76
49
  /**
77
50
  * Helper function to get all of the room grid indexes that are adjacent to a given room grid index
@@ -88,8 +61,8 @@ function getAdjacentNonExistingRoomGridIndexes(roomGridIndex) {
88
61
  *
89
62
  * @param roomGridIndex Optional. Default is the current room index.
90
63
  */
91
- function getAdjacentRoomGridIndexes(roomGridIndex) {
92
- const roomGridIndexToUse = roomGridIndex ?? (0, roomData_1.getRoomGridIndex)();
64
+ export function getAdjacentRoomGridIndexes(roomGridIndex) {
65
+ const roomGridIndexToUse = roomGridIndex ?? getRoomGridIndex();
93
66
  if (!isRoomInsideGrid(roomGridIndexToUse)) {
94
67
  return [];
95
68
  }
@@ -102,8 +75,8 @@ function getAdjacentRoomGridIndexes(roomGridIndex) {
102
75
  *
103
76
  * Rooms without any data are assumed to be non-existent and are not included.
104
77
  */
105
- function getAllRoomGridIndexes() {
106
- const rooms = (0, rooms_1.getRooms)();
78
+ export function getAllRoomGridIndexes() {
79
+ const rooms = getRooms();
107
80
  return rooms.map((roomDescriptor) => roomDescriptor.SafeGridIndex);
108
81
  }
109
82
  /**
@@ -123,12 +96,12 @@ function getAllRoomGridIndexes() {
123
96
  * @returns Either a tuple of adjacent room grid index, `DoorSlot`, and new room grid index, or
124
97
  * undefined.
125
98
  */
126
- function getNewRoomCandidate(seedOrRNG, ensureDeadEnd = true) {
99
+ export function getNewRoomCandidate(seedOrRNG, ensureDeadEnd = true) {
127
100
  const newRoomCandidatesForLevel = getNewRoomCandidatesForLevel(ensureDeadEnd);
128
101
  if (newRoomCandidatesForLevel.length === 0) {
129
102
  return undefined;
130
103
  }
131
- return (0, array_1.getRandomArrayElement)(newRoomCandidatesForLevel, seedOrRNG);
104
+ return getRandomArrayElement(newRoomCandidatesForLevel, seedOrRNG);
132
105
  }
133
106
  /**
134
107
  * Helper function to iterate through the possible doors for a room and see if any of them would be
@@ -140,8 +113,8 @@ function getNewRoomCandidate(seedOrRNG, ensureDeadEnd = true) {
140
113
  * that would have a red door.
141
114
  * @returns A array of tuples of `DoorSlot` and room grid index.
142
115
  */
143
- function getNewRoomCandidatesBesideRoom(roomGridIndex, ensureDeadEnd = true) {
144
- const roomDescriptor = (0, roomData_1.getRoomDescriptor)(roomGridIndex);
116
+ export function getNewRoomCandidatesBesideRoom(roomGridIndex, ensureDeadEnd = true) {
117
+ const roomDescriptor = getRoomDescriptor(roomGridIndex);
145
118
  // First, handle the case of rooms outside of the grid, which obviously cannot have any possible
146
119
  // adjacent new room candidates.
147
120
  if (!isRoomInsideGrid(roomDescriptor.SafeGridIndex)) {
@@ -159,8 +132,8 @@ function getNewRoomCandidatesBesideRoom(roomGridIndex, ensureDeadEnd = true) {
159
132
  // The "getRoomShapeAdjacentNonExistingGridIndexes" returns grid indexes for every possible
160
133
  // door, but the real room we are examining will only have a subset of these doors. Thus, we
161
134
  // have to exclude adjacent grid indexes where it would not be possible to place a door.
162
- const doorSlotFlag = (0, doors_1.doorSlotToDoorSlotFlag)(doorSlot);
163
- if (!(0, flag_1.hasFlag)(roomData.Doors, doorSlotFlag)) {
135
+ const doorSlotFlag = doorSlotToDoorSlotFlag(doorSlot);
136
+ if (!hasFlag(roomData.Doors, doorSlotFlag)) {
164
137
  continue;
165
138
  }
166
139
  // Check to see if hypothetically creating a room at the given room grid index would be a dead
@@ -185,14 +158,14 @@ function getNewRoomCandidatesBesideRoom(roomGridIndex, ensureDeadEnd = true) {
185
158
  * @returns A array of tuples containing the adjacent room grid index, the `DoorSlot`, and the new
186
159
  * room grid index.
187
160
  */
188
- function getNewRoomCandidatesForLevel(ensureDeadEnd = true) {
161
+ export function getNewRoomCandidatesForLevel(ensureDeadEnd = true) {
189
162
  // We want to iterate over every room on the floor and search for potential new room spots.
190
- const roomsInsideGrid = (0, rooms_1.getRoomsInsideGrid)();
163
+ const roomsInsideGrid = getRoomsInsideGrid();
191
164
  // However, we want to filter out special rooms because they are supposed to be dead ends.
192
165
  const normalRooms = roomsInsideGrid.filter((room) => room.Data !== undefined
193
- && room.Data.Type === isaac_typescript_definitions_1.RoomType.DEFAULT
194
- && !(0, rooms_1.isMirrorRoom)(room.Data) // Mirror rooms do not count as special rooms.
195
- && !(0, rooms_1.isMineShaft)(room.Data));
166
+ && room.Data.Type === RoomType.DEFAULT
167
+ && !isMirrorRoom(room.Data) // Mirror rooms do not count as special rooms.
168
+ && !isMineShaft(room.Data));
196
169
  const roomsToLookThrough = ensureDeadEnd ? normalRooms : roomsInsideGrid;
197
170
  const newRoomCandidates = [];
198
171
  for (const room of roomsToLookThrough) {
@@ -217,8 +190,8 @@ function getNewRoomCandidatesForLevel(ensureDeadEnd = true) {
217
190
  * @param roomGridIndex Optional. Default is the current room index.
218
191
  * @returns A map of `DoorSlot` to the corresponding room grid index.
219
192
  */
220
- function getRoomAdjacentGridIndexes(roomGridIndex) {
221
- const roomDescriptor = (0, roomData_1.getRoomDescriptor)(roomGridIndex);
193
+ export function getRoomAdjacentGridIndexes(roomGridIndex) {
194
+ const roomDescriptor = getRoomDescriptor(roomGridIndex);
222
195
  if (!isRoomInsideGrid(roomDescriptor.SafeGridIndex)) {
223
196
  return new Map();
224
197
  }
@@ -237,9 +210,9 @@ function getRoomAdjacentGridIndexes(roomGridIndex) {
237
210
  * This function is variadic, meaning that you can specify N arguments to get the combined room
238
211
  * descriptors for N room types.
239
212
  */
240
- function getRoomDescriptorsForType(...roomTypes) {
213
+ export function getRoomDescriptorsForType(...roomTypes) {
241
214
  const roomTypesSet = new Set(roomTypes);
242
- const roomsInsideGrid = (0, rooms_1.getRoomsInsideGrid)();
215
+ const roomsInsideGrid = getRoomsInsideGrid();
243
216
  return roomsInsideGrid.filter((roomDescriptor) => roomDescriptor.Data !== undefined
244
217
  && roomTypesSet.has(roomDescriptor.Data.Type));
245
218
  }
@@ -252,7 +225,7 @@ function getRoomDescriptorsForType(...roomTypes) {
252
225
  * This function is variadic, meaning that you can specify N arguments to get the combined grid
253
226
  * indexes for N room types.
254
227
  */
255
- function getRoomGridIndexesForType(...roomTypes) {
228
+ export function getRoomGridIndexesForType(...roomTypes) {
256
229
  const roomDescriptors = getRoomDescriptorsForType(...roomTypes);
257
230
  return roomDescriptors.map((roomDescriptor) => roomDescriptor.SafeGridIndex);
258
231
  }
@@ -263,10 +236,10 @@ function getRoomGridIndexesForType(...roomTypes) {
263
236
  * This is just a filtering of the results of the `getRoomShapeAdjacentGridIndexes` function. See
264
237
  * that function for more information.
265
238
  */
266
- function getRoomShapeAdjacentExistingGridIndexes(safeRoomGridIndex, roomShape) {
267
- const roomShapeAdjacentGridIndexes = (0, map_1.copyMap)(getRoomShapeAdjacentGridIndexes(safeRoomGridIndex, roomShape));
239
+ export function getRoomShapeAdjacentExistingGridIndexes(safeRoomGridIndex, roomShape) {
240
+ const roomShapeAdjacentGridIndexes = copyMap(getRoomShapeAdjacentGridIndexes(safeRoomGridIndex, roomShape));
268
241
  for (const [doorSlot, roomGridIndex] of roomShapeAdjacentGridIndexes) {
269
- const roomData = (0, roomData_1.getRoomData)(roomGridIndex);
242
+ const roomData = getRoomData(roomGridIndex);
270
243
  if (roomData === undefined) {
271
244
  roomShapeAdjacentGridIndexes.delete(doorSlot);
272
245
  }
@@ -281,8 +254,8 @@ function getRoomShapeAdjacentExistingGridIndexes(safeRoomGridIndex, roomShape) {
281
254
  *
282
255
  * @returns A map of `DoorSlot` to the corresponding room grid index delta.
283
256
  */
284
- function getRoomShapeAdjacentGridIndexDeltas(roomShape) {
285
- return roomShapeToDoorSlotsToGridIndexDelta_1.ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA[roomShape];
257
+ export function getRoomShapeAdjacentGridIndexDeltas(roomShape) {
258
+ return ROOM_SHAPE_TO_DOOR_SLOTS_TO_GRID_INDEX_DELTA[roomShape];
286
259
  }
287
260
  /**
288
261
  * Helper function to get the room grid index that each hypothetical door in a given room shape
@@ -293,7 +266,7 @@ function getRoomShapeAdjacentGridIndexDeltas(roomShape) {
293
266
  * @param roomShape The shape of the hypothetical room.
294
267
  * @returns A map of `DoorSlot` to the corresponding room grid index.
295
268
  */
296
- function getRoomShapeAdjacentGridIndexes(safeRoomGridIndex, roomShape) {
269
+ export function getRoomShapeAdjacentGridIndexes(safeRoomGridIndex, roomShape) {
297
270
  const roomShapeAdjacentGridIndexDeltas = getRoomShapeAdjacentGridIndexDeltas(roomShape);
298
271
  const adjacentGridIndexes = new Map();
299
272
  for (const [doorSlot, delta] of roomShapeAdjacentGridIndexDeltas) {
@@ -311,10 +284,10 @@ function getRoomShapeAdjacentGridIndexes(safeRoomGridIndex, roomShape) {
311
284
  * This is just a filtering of the results of the `getRoomShapeAdjacentGridIndexes` function. See
312
285
  * that function for more information.
313
286
  */
314
- function getRoomShapeAdjacentNonExistingGridIndexes(safeRoomGridIndex, roomShape) {
315
- const roomShapeAdjacentGridIndexes = (0, map_1.copyMap)(getRoomShapeAdjacentGridIndexes(safeRoomGridIndex, roomShape));
287
+ export function getRoomShapeAdjacentNonExistingGridIndexes(safeRoomGridIndex, roomShape) {
288
+ const roomShapeAdjacentGridIndexes = copyMap(getRoomShapeAdjacentGridIndexes(safeRoomGridIndex, roomShape));
316
289
  for (const [doorSlot, roomGridIndex] of roomShapeAdjacentGridIndexes) {
317
- const roomData = (0, roomData_1.getRoomData)(roomGridIndex);
290
+ const roomData = getRoomData(roomGridIndex);
318
291
  if (roomData !== undefined) {
319
292
  roomShapeAdjacentGridIndexes.delete(doorSlot);
320
293
  }
@@ -327,8 +300,8 @@ function getRoomShapeAdjacentNonExistingGridIndexes(safeRoomGridIndex, roomShape
327
300
  *
328
301
  * For example, Devil Rooms and the Mega Satan room are not considered to be inside the grid.
329
302
  */
330
- function inGrid() {
331
- const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
303
+ export function inGrid() {
304
+ const roomGridIndex = getRoomGridIndex();
332
305
  return isRoomInsideGrid(roomGridIndex);
333
306
  }
334
307
  /**
@@ -336,8 +309,8 @@ function inGrid() {
336
309
  *
337
310
  * Under the hood, this checks for the `RoomDescriptorFlag.FLAG_RED_ROOM` flag.
338
311
  */
339
- function inRedKeyRoom() {
340
- const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
312
+ export function inRedKeyRoom() {
313
+ const roomGridIndex = getRoomGridIndex();
341
314
  return isRedKeyRoom(roomGridIndex);
342
315
  }
343
316
  /**
@@ -352,24 +325,24 @@ function inRedKeyRoom() {
352
325
  *
353
326
  * @param roomGridIndex Optional. Default is the current room index.
354
327
  */
355
- function isDeadEnd(roomGridIndex) {
328
+ export function isDeadEnd(roomGridIndex) {
356
329
  const adjacentExistingRoomGridIndexes = getAdjacentExistingRoomGridIndexes(roomGridIndex);
357
330
  return adjacentExistingRoomGridIndexes.length === 1;
358
331
  }
359
- function isDoorSlotValidAtGridIndex(doorSlot, roomGridIndex) {
360
- const allowedDoors = (0, roomData_1.getRoomAllowedDoors)(roomGridIndex);
332
+ export function isDoorSlotValidAtGridIndex(doorSlot, roomGridIndex) {
333
+ const allowedDoors = getRoomAllowedDoors(roomGridIndex);
361
334
  return allowedDoors.has(doorSlot);
362
335
  }
363
- function isDoorSlotValidAtGridIndexForRedRoom(doorSlot, roomGridIndex) {
336
+ export function isDoorSlotValidAtGridIndexForRedRoom(doorSlot, roomGridIndex) {
364
337
  const doorSlotValidAtGridIndex = isDoorSlotValidAtGridIndex(doorSlot, roomGridIndex);
365
338
  if (!doorSlotValidAtGridIndex) {
366
339
  return false;
367
340
  }
368
- const roomShape = (0, roomData_1.getRoomShape)(roomGridIndex);
341
+ const roomShape = getRoomShape(roomGridIndex);
369
342
  if (roomShape === undefined) {
370
343
  return false;
371
344
  }
372
- const delta = (0, roomShape_1.getGridIndexDelta)(roomShape, doorSlot);
345
+ const delta = getGridIndexDelta(roomShape, doorSlot);
373
346
  if (delta === undefined) {
374
347
  return false;
375
348
  }
@@ -383,9 +356,9 @@ function isDoorSlotValidAtGridIndexForRedRoom(doorSlot, roomGridIndex) {
383
356
  *
384
357
  * @param roomGridIndex Optional. Default is the current room index.
385
358
  */
386
- function isRedKeyRoom(roomGridIndex) {
387
- const roomDescriptor = (0, roomData_1.getRoomDescriptor)(roomGridIndex);
388
- return (0, flag_1.hasFlag)(roomDescriptor.Flags, isaac_typescript_definitions_1.RoomDescriptorFlag.RED_ROOM);
359
+ export function isRedKeyRoom(roomGridIndex) {
360
+ const roomDescriptor = getRoomDescriptor(roomGridIndex);
361
+ return hasFlag(roomDescriptor.Flags, RoomDescriptorFlag.RED_ROOM);
389
362
  }
390
363
  /**
391
364
  * Helper function to determine if a given room grid index is inside of the normal 13x13 level grid.
@@ -394,9 +367,9 @@ function isRedKeyRoom(roomGridIndex) {
394
367
  *
395
368
  * @param roomGridIndex Optional. Default is the current room index.
396
369
  */
397
- function isRoomInsideGrid(roomGridIndex) {
398
- roomGridIndex ??= (0, roomData_1.getRoomGridIndex)();
399
- return roomGridIndex >= 0 && roomGridIndex <= constants_1.MAX_LEVEL_GRID_INDEX;
370
+ export function isRoomInsideGrid(roomGridIndex) {
371
+ roomGridIndex ??= getRoomGridIndex();
372
+ return roomGridIndex >= 0 && roomGridIndex <= MAX_LEVEL_GRID_INDEX;
400
373
  }
401
374
  /**
402
375
  * Helper function to generate a new room on the floor.
@@ -420,10 +393,10 @@ function isRoomInsideGrid(roomGridIndex) {
420
393
  * @returns The room grid index of the new room or undefined if the floor had no valid dead ends to
421
394
  * place a room.
422
395
  */
423
- function newRoom(seedOrRNG, ensureDeadEnd = true, customRoomData) {
424
- const level = cachedClasses_1.game.GetLevel();
396
+ export function newRoom(seedOrRNG, ensureDeadEnd = true, customRoomData) {
397
+ const level = game.GetLevel();
425
398
  seedOrRNG ??= level.GetDungeonPlacementSeed();
426
- const rng = (0, rng_1.isRNG)(seedOrRNG) ? seedOrRNG : (0, rng_1.newRNG)(seedOrRNG);
399
+ const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
427
400
  const newRoomCandidate = getNewRoomCandidate(rng, ensureDeadEnd);
428
401
  if (newRoomCandidate === undefined) {
429
402
  return undefined;
@@ -432,8 +405,8 @@ function newRoom(seedOrRNG, ensureDeadEnd = true, customRoomData) {
432
405
  level.MakeRedRoomDoor(adjacentRoomGridIndex, doorSlot);
433
406
  // By default, the room will be a "red room" and have a red graphical tint, so we want to make it
434
407
  // a normal room.
435
- const roomDescriptor = (0, roomData_1.getRoomDescriptor)(newRoomGridIndex);
436
- roomDescriptor.Flags = (0, flag_1.removeFlag)(roomDescriptor.Flags, isaac_typescript_definitions_1.RoomDescriptorFlag.RED_ROOM);
408
+ const roomDescriptor = getRoomDescriptor(newRoomGridIndex);
409
+ roomDescriptor.Flags = removeFlag(roomDescriptor.Flags, RoomDescriptorFlag.RED_ROOM);
437
410
  if (customRoomData !== undefined) {
438
411
  roomDescriptor.Data = customRoomData;
439
412
  }
@@ -441,16 +414,16 @@ function newRoom(seedOrRNG, ensureDeadEnd = true, customRoomData) {
441
414
  // must manually alter the `DisplayFlags` of the room descriptor.
442
415
  const roomData = roomDescriptor.Data;
443
416
  if (roomData !== undefined) {
444
- const hasFullMap = level.GetStateFlag(isaac_typescript_definitions_1.LevelStateFlag.FULL_MAP_EFFECT);
445
- const hasCompass = level.GetStateFlag(isaac_typescript_definitions_1.LevelStateFlag.COMPASS_EFFECT);
446
- const hasBlueMap = level.GetStateFlag(isaac_typescript_definitions_1.LevelStateFlag.BLUE_MAP_EFFECT);
417
+ const hasFullMap = level.GetStateFlag(LevelStateFlag.FULL_MAP_EFFECT);
418
+ const hasCompass = level.GetStateFlag(LevelStateFlag.COMPASS_EFFECT);
419
+ const hasBlueMap = level.GetStateFlag(LevelStateFlag.BLUE_MAP_EFFECT);
447
420
  const roomType = roomData.Type;
448
- const isSecretRoom = (0, rooms_1.isSecretRoomType)(roomType);
421
+ const isSecretRoom = isSecretRoomType(roomType);
449
422
  if (hasFullMap) {
450
- roomDescriptor.DisplayFlags = constants_1.ALL_DISPLAY_FLAGS;
423
+ roomDescriptor.DisplayFlags = ALL_DISPLAY_FLAGS;
451
424
  }
452
425
  else if ((!isSecretRoom && hasCompass) || (isSecretRoom && hasBlueMap)) {
453
- roomDescriptor.DisplayFlags = (0, flag_1.addFlag)(isaac_typescript_definitions_1.DisplayFlag.VISIBLE, isaac_typescript_definitions_1.DisplayFlag.SHOW_ICON);
426
+ roomDescriptor.DisplayFlags = addFlag(DisplayFlag.VISIBLE, DisplayFlag.SHOW_ICON);
454
427
  }
455
428
  }
456
429
  return newRoomGridIndex;
@@ -459,8 +432,8 @@ function newRoom(seedOrRNG, ensureDeadEnd = true, customRoomData) {
459
432
  * Helper function to check if a room exists at the given room grid index. (A room will exist if it
460
433
  * has non-undefined data in the room descriptor.)
461
434
  */
462
- function roomExists(roomGridIndex) {
463
- const roomData = (0, roomData_1.getRoomData)(roomGridIndex);
435
+ export function roomExists(roomGridIndex) {
436
+ const roomData = getRoomData(roomGridIndex);
464
437
  return roomData !== undefined;
465
438
  }
466
439
  /**
@@ -474,9 +447,9 @@ function roomExists(roomGridIndex) {
474
447
  * - The bottom-left grid index of 156 is equal to coordinates of: (0, 12)
475
448
  * - The bottom-right grid index of 168 is equal to coordinates of: (12, 12)
476
449
  */
477
- function roomGridIndexToVector(roomGridIndex) {
478
- const x = roomGridIndex % constants_1.LEVEL_GRID_ROW_WIDTH;
479
- const y = Math.floor(roomGridIndex / constants_1.LEVEL_GRID_ROW_WIDTH);
450
+ export function roomGridIndexToVector(roomGridIndex) {
451
+ const x = roomGridIndex % LEVEL_GRID_ROW_WIDTH;
452
+ const y = Math.floor(roomGridIndex / LEVEL_GRID_ROW_WIDTH);
480
453
  return Vector(x, y);
481
454
  }
482
455
  /**
@@ -484,6 +457,6 @@ function roomGridIndexToVector(roomGridIndex) {
484
457
  *
485
458
  * Also see the `roomGridIndexToVector` helper function.
486
459
  */
487
- function vectorToRoomGridIndex(roomVector) {
488
- return roomVector.Y * constants_1.LEVEL_GRID_ROW_WIDTH + roomVector.X;
460
+ export function vectorToRoomGridIndex(roomVector) {
461
+ return roomVector.Y * LEVEL_GRID_ROW_WIDTH + roomVector.X;
489
462
  }
@@ -1,10 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getParentFunctionDescription = getParentFunctionDescription;
4
- exports.log = log;
5
- exports.logAndPrint = logAndPrint;
6
- exports.logError = logError;
7
- const types_1 = require("./types");
1
+ import { isNumber } from "./types";
8
2
  /**
9
3
  * Helper function to get the name and the line number of the current calling function.
10
4
  *
@@ -15,7 +9,7 @@ const types_1 = require("./types");
15
9
  * (because the first level is this function, the second level is the calling
16
10
  * function, and the third level is the parent of the calling function).
17
11
  */
18
- function getParentFunctionDescription(
12
+ export function getParentFunctionDescription(
19
13
  // We use 3 as a default because:
20
14
  // - The first level is this function.
21
15
  // - The second level is the calling function.
@@ -53,8 +47,8 @@ levels = 3) {
53
47
  * @param includeParentFunction Optional. Whether to prefix the message with the function name and
54
48
  * line number, as shown in the above example. Default is true.
55
49
  */
56
- function log(msg, includeParentFunction = true) {
57
- if ((0, types_1.isNumber)(msg)) {
50
+ export function log(msg, includeParentFunction = true) {
51
+ if (isNumber(msg)) {
58
52
  msg = msg.toString();
59
53
  }
60
54
  const parentFunctionDescription = includeParentFunction
@@ -69,7 +63,7 @@ function log(msg, includeParentFunction = true) {
69
63
  * Helper function to log a message to the "log.txt" file and to print it to the screen at the same
70
64
  * time.
71
65
  */
72
- function logAndPrint(msg) {
66
+ export function logAndPrint(msg) {
73
67
  log(msg);
74
68
  print(msg);
75
69
  }
@@ -79,7 +73,7 @@ function logAndPrint(msg) {
79
73
  * This is useful in situations where using the `error` function would be dangerous (since it
80
74
  * prevents all of the subsequent code in the callback from running).
81
75
  */
82
- function logError(msg) {
76
+ export function logError(msg) {
83
77
  const errorMsg = `Error: ${msg}`;
84
78
  logAndPrint(errorMsg);
85
79
  }