isaacscript-common 87.5.0 → 87.6.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 (684) hide show
  1. package/README.md +1 -1
  2. package/dist/callbackClasses.d.ts +7 -6
  3. package/dist/callbackClasses.d.ts.map +1 -1
  4. package/dist/callbackClasses.js +17 -15
  5. package/dist/callbackClasses.lua +163 -300
  6. package/dist/callbacks.d.ts +118 -117
  7. package/dist/callbacks.d.ts.map +1 -1
  8. package/dist/callbacks.js +19 -9
  9. package/dist/callbacks.lua +1 -0
  10. package/dist/classes/DefaultMap.d.ts +5 -1
  11. package/dist/classes/DefaultMap.d.ts.map +1 -1
  12. package/dist/classes/ModFeature.js +3 -3
  13. package/dist/classes/ModUpgraded.d.ts.map +1 -1
  14. package/dist/classes/ModUpgraded.js +4 -6
  15. package/dist/classes/callbacks/InputActionFilter.d.ts +2 -2
  16. package/dist/classes/callbacks/InputActionFilter.d.ts.map +1 -1
  17. package/dist/classes/callbacks/InputActionFilter.js +3 -3
  18. package/dist/classes/callbacks/InputActionPlayer.d.ts +2 -2
  19. package/dist/classes/callbacks/InputActionPlayer.d.ts.map +1 -1
  20. package/dist/classes/callbacks/InputActionPlayer.js +6 -6
  21. package/dist/classes/callbacks/PostBoneSwing.js +2 -2
  22. package/dist/classes/callbacks/PostCollectibleEmpty.d.ts +2 -2
  23. package/dist/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -1
  24. package/dist/classes/callbacks/PostCollectibleEmpty.js +3 -5
  25. package/dist/classes/callbacks/PostCursedTeleport.js +5 -5
  26. package/dist/classes/callbacks/PostCustomRevive.d.ts +2 -4
  27. package/dist/classes/callbacks/PostCustomRevive.d.ts.map +1 -1
  28. package/dist/classes/callbacks/PostDiceRoomActivated.d.ts +2 -3
  29. package/dist/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -1
  30. package/dist/classes/callbacks/PostDiceRoomActivated.js +2 -2
  31. package/dist/classes/callbacks/PostEntityRemoveFilter.d.ts +9 -0
  32. package/dist/classes/callbacks/PostEntityRemoveFilter.d.ts.map +1 -0
  33. package/dist/classes/callbacks/PostEntityRemoveFilter.js +21 -0
  34. package/dist/classes/callbacks/PostEntityRemoveFilter.lua +23 -0
  35. package/dist/classes/callbacks/PostGridEntityCollision.d.ts +2 -4
  36. package/dist/classes/callbacks/PostGridEntityCollision.d.ts.map +1 -1
  37. package/dist/classes/callbacks/PostGridEntityCollision.js +10 -10
  38. package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts +2 -4
  39. package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts.map +1 -1
  40. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +8 -8
  41. package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts +2 -3
  42. package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts.map +1 -1
  43. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +2 -2
  44. package/dist/classes/callbacks/PostGridEntityRemove.d.ts +2 -2
  45. package/dist/classes/callbacks/PostGridEntityRemove.d.ts.map +1 -1
  46. package/dist/classes/callbacks/PostGridEntityRemove.js +3 -3
  47. package/dist/classes/callbacks/PostItemDischarge.d.ts +2 -2
  48. package/dist/classes/callbacks/PostItemDischarge.d.ts.map +1 -1
  49. package/dist/classes/callbacks/PostItemDischarge.js +5 -8
  50. package/dist/classes/callbacks/PostKeyboardChanged.d.ts +2 -1
  51. package/dist/classes/callbacks/PostKeyboardChanged.d.ts.map +1 -1
  52. package/dist/classes/callbacks/PostKeyboardChanged.js +2 -2
  53. package/dist/classes/callbacks/PostNewRoomEarly.js +3 -3
  54. package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts +2 -2
  55. package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts.map +1 -1
  56. package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -3
  57. package/dist/classes/callbacks/PostPlayerChangeHealth.js +2 -2
  58. package/dist/classes/callbacks/PostPlayerChangeType.js +1 -1
  59. package/dist/classes/callbacks/PostPurchase.d.ts +2 -4
  60. package/dist/classes/callbacks/PostPurchase.d.ts.map +1 -1
  61. package/dist/classes/callbacks/PostPurchase.js +9 -9
  62. package/dist/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -1
  63. package/dist/classes/callbacks/PostTransformation.d.ts +2 -2
  64. package/dist/classes/callbacks/PostTransformation.d.ts.map +1 -1
  65. package/dist/classes/callbacks/PostTransformation.js +1 -3
  66. package/dist/classes/callbacks/PostTrinketBreak.d.ts.map +1 -1
  67. package/dist/classes/callbacks/PostTrinketBreak.js +1 -3
  68. package/dist/classes/callbacks/PostUsePillFilter.js +2 -2
  69. package/dist/classes/callbacks/PreBerserkDeath.js +4 -4
  70. package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts +2 -2
  71. package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts.map +1 -1
  72. package/dist/classes/callbacks/PreEntitySpawnFilter.js +3 -3
  73. package/dist/classes/callbacks/PreNewLevel.d.ts.map +1 -1
  74. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts +2 -2
  75. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts.map +1 -1
  76. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +5 -5
  77. package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts +1 -1
  78. package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
  79. package/dist/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
  80. package/dist/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
  81. package/dist/classes/features/callbackLogic/EsauJrDetection.js +2 -2
  82. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  83. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +9 -11
  84. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +4 -4
  85. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +4 -4
  86. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +2 -2
  87. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts +0 -1
  88. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
  89. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +4 -4
  90. package/dist/classes/features/other/CustomPickups.d.ts.map +1 -1
  91. package/dist/classes/features/other/CustomPickups.js +1 -0
  92. package/dist/classes/features/other/CustomStages.js +19 -9
  93. package/dist/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
  94. package/dist/classes/features/other/CustomTrapdoors.js +44 -38
  95. package/dist/classes/features/other/CustomTrapdoors.lua +14 -7
  96. package/dist/classes/features/other/DebugDisplay.d.ts +0 -18
  97. package/dist/classes/features/other/DebugDisplay.d.ts.map +1 -1
  98. package/dist/classes/features/other/DeployJSONRoom.d.ts +0 -2
  99. package/dist/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
  100. package/dist/classes/features/other/DeployJSONRoom.js +6 -4
  101. package/dist/classes/features/other/DisableInputs.js +3 -3
  102. package/dist/classes/features/other/EdenStartingStatsHealth.d.ts +1 -1
  103. package/dist/classes/features/other/EdenStartingStatsHealth.d.ts.map +1 -1
  104. package/dist/classes/features/other/ExtraConsoleCommands.d.ts +14 -10
  105. package/dist/classes/features/other/ExtraConsoleCommands.d.ts.map +1 -1
  106. package/dist/classes/features/other/ExtraConsoleCommands.js +31 -17
  107. package/dist/classes/features/other/ExtraConsoleCommands.lua +2 -1
  108. package/dist/classes/features/other/FlyingDetection.d.ts +0 -1
  109. package/dist/classes/features/other/FlyingDetection.d.ts.map +1 -1
  110. package/dist/classes/features/other/ForgottenSwitch.d.ts +0 -1
  111. package/dist/classes/features/other/ForgottenSwitch.d.ts.map +1 -1
  112. package/dist/classes/features/other/ModdedElementDetection.js +4 -4
  113. package/dist/classes/features/other/ModdedElementSets.d.ts +2 -2
  114. package/dist/classes/features/other/ModdedElementSets.d.ts.map +1 -1
  115. package/dist/classes/features/other/ModdedElementSets.js +3 -3
  116. package/dist/classes/features/other/NoSirenSteal.js +4 -4
  117. package/dist/classes/features/other/PickupIndexCreation.d.ts +0 -1
  118. package/dist/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
  119. package/dist/classes/features/other/PickupIndexCreation.js +7 -8
  120. package/dist/classes/features/other/PickupIndexCreation.lua +10 -10
  121. package/dist/classes/features/other/PonyDetection.d.ts +0 -1
  122. package/dist/classes/features/other/PonyDetection.d.ts.map +1 -1
  123. package/dist/classes/features/other/PonyDetection.js +2 -2
  124. package/dist/classes/features/other/PressInput.js +2 -2
  125. package/dist/classes/features/other/PreventChildEntities.d.ts +0 -1
  126. package/dist/classes/features/other/PreventChildEntities.d.ts.map +1 -1
  127. package/dist/classes/features/other/PreventChildEntities.js +4 -4
  128. package/dist/classes/features/other/RoomClearFrame.d.ts +0 -1
  129. package/dist/classes/features/other/RoomClearFrame.d.ts.map +1 -1
  130. package/dist/classes/features/other/RoomHistory.d.ts +0 -1
  131. package/dist/classes/features/other/RoomHistory.d.ts.map +1 -1
  132. package/dist/classes/features/other/RoomHistory.js +5 -5
  133. package/dist/classes/features/other/RunInNFrames.js +2 -2
  134. package/dist/classes/features/other/SaveDataManager.js +3 -3
  135. package/dist/classes/features/other/SpawnRockAltRewards.d.ts +0 -4
  136. package/dist/classes/features/other/SpawnRockAltRewards.d.ts.map +1 -1
  137. package/dist/classes/features/other/StageHistory.js +2 -2
  138. package/dist/classes/features/other/StartAmbush.js +2 -2
  139. package/dist/classes/features/other/TaintedLazarusPlayers.d.ts +0 -1
  140. package/dist/classes/features/other/TaintedLazarusPlayers.d.ts.map +1 -1
  141. package/dist/classes/features/other/TaintedLazarusPlayers.js +2 -2
  142. package/dist/classes/features/other/customStages/backdrop.js +2 -3
  143. package/dist/classes/features/other/customStages/constants.d.ts.map +1 -1
  144. package/dist/classes/features/other/customStages/gridEntities.d.ts +0 -1
  145. package/dist/classes/features/other/customStages/gridEntities.d.ts.map +1 -1
  146. package/dist/classes/features/other/customStages/gridEntities.js +9 -10
  147. package/dist/classes/features/other/customStages/shadows.js +1 -2
  148. package/dist/classes/features/other/customStages/streakText.js +7 -8
  149. package/dist/classes/features/other/customStages/utils.d.ts +0 -2
  150. package/dist/classes/features/other/customStages/utils.d.ts.map +1 -1
  151. package/dist/classes/features/other/customStages/utils.js +2 -3
  152. package/dist/classes/features/other/customStages/v.d.ts.map +1 -1
  153. package/dist/classes/features/other/customStages/versusScreen.js +2 -3
  154. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts +0 -1
  155. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts.map +1 -1
  156. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts +0 -1
  157. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts.map +1 -1
  158. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts +0 -1
  159. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts.map +1 -1
  160. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts +0 -1
  161. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts.map +1 -1
  162. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts +0 -1
  163. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts.map +1 -1
  164. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts +0 -1
  165. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts.map +1 -1
  166. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts +0 -1
  167. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts.map +1 -1
  168. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts +0 -1
  169. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts.map +1 -1
  170. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts +0 -1
  171. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts.map +1 -1
  172. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts +0 -1
  173. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts.map +1 -1
  174. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts +0 -1
  175. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts.map +1 -1
  176. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts +0 -1
  177. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts.map +1 -1
  178. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts +0 -1
  179. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts.map +1 -1
  180. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts +0 -1
  181. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts.map +1 -1
  182. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts +0 -1
  183. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts.map +1 -1
  184. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts +0 -1
  185. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts.map +1 -1
  186. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts +0 -1
  187. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts.map +1 -1
  188. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts +0 -1
  189. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts.map +1 -1
  190. package/dist/classes/features/other/debugDisplay/utils.d.ts +0 -2
  191. package/dist/classes/features/other/debugDisplay/utils.d.ts.map +1 -1
  192. package/dist/classes/features/other/debugDisplay/utils.js +2 -3
  193. package/dist/classes/features/other/extraConsoleCommands/commands.js +155 -158
  194. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +8 -9
  195. package/dist/classes/features/other/saveDataManager/constants.d.ts.map +1 -1
  196. package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts +0 -1
  197. package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts.map +1 -1
  198. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +4 -5
  199. package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts +0 -2
  200. package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts.map +1 -1
  201. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +5 -2
  202. package/dist/classes/features/other/saveDataManager/loadFromDisk.lua +3 -0
  203. package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts +0 -1
  204. package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -1
  205. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +3 -4
  206. package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts +0 -2
  207. package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts.map +1 -1
  208. package/dist/classes/features/other/saveDataManager/saveToDisk.js +1 -2
  209. package/dist/classes/private/CustomCallback.d.ts.map +1 -1
  210. package/dist/core/cachedClasses.d.ts +0 -5
  211. package/dist/core/cachedClasses.d.ts.map +1 -1
  212. package/dist/core/constants.js +1 -1
  213. package/dist/core/constantsVanilla.js +4 -4
  214. package/dist/core/upgradeMod.d.ts +0 -2
  215. package/dist/core/upgradeMod.d.ts.map +1 -1
  216. package/dist/core/upgradeMod.js +1 -2
  217. package/dist/decorators.js +2 -2
  218. package/dist/enums/ModCallbackCustom.d.ts +134 -117
  219. package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
  220. package/dist/enums/ModCallbackCustom.js +134 -117
  221. package/dist/enums/ModCallbackCustom.lua +119 -117
  222. package/dist/enums/private/GridEntityTypeCustom.d.ts.map +1 -1
  223. package/dist/features.js +1 -2
  224. package/dist/functions/ambush.js +1 -2
  225. package/dist/functions/array.d.ts +5 -8
  226. package/dist/functions/array.d.ts.map +1 -1
  227. package/dist/functions/array.js +55 -55
  228. package/dist/functions/array.lua +2 -2
  229. package/dist/functions/arrayLua.d.ts +1 -1
  230. package/dist/functions/arrayLua.d.ts.map +1 -1
  231. package/dist/functions/arrayLua.js +7 -8
  232. package/dist/functions/benchmark.d.ts +0 -1
  233. package/dist/functions/benchmark.d.ts.map +1 -1
  234. package/dist/functions/benchmark.js +1 -2
  235. package/dist/functions/bitSet128.d.ts +0 -1
  236. package/dist/functions/bitSet128.d.ts.map +1 -1
  237. package/dist/functions/bitSet128.js +5 -6
  238. package/dist/functions/bitwise.d.ts +0 -4
  239. package/dist/functions/bitwise.d.ts.map +1 -1
  240. package/dist/functions/bitwise.js +7 -8
  241. package/dist/functions/bitwise.lua +3 -3
  242. package/dist/functions/bombs.d.ts +0 -1
  243. package/dist/functions/bombs.d.ts.map +1 -1
  244. package/dist/functions/bombs.js +1 -2
  245. package/dist/functions/bosses.d.ts.map +1 -1
  246. package/dist/functions/bosses.js +19 -19
  247. package/dist/functions/cards.js +16 -17
  248. package/dist/functions/challenges.js +9 -10
  249. package/dist/functions/characters.js +17 -18
  250. package/dist/functions/charge.d.ts.map +1 -1
  251. package/dist/functions/charge.js +12 -13
  252. package/dist/functions/charge.lua +1 -1
  253. package/dist/functions/chargeBar.d.ts +0 -2
  254. package/dist/functions/chargeBar.d.ts.map +1 -1
  255. package/dist/functions/chargeBar.js +2 -3
  256. package/dist/functions/collectibleTag.js +2 -3
  257. package/dist/functions/collectibles.js +39 -40
  258. package/dist/functions/color.d.ts +0 -1
  259. package/dist/functions/color.d.ts.map +1 -1
  260. package/dist/functions/color.js +7 -8
  261. package/dist/functions/console.js +2 -3
  262. package/dist/functions/curses.js +2 -3
  263. package/dist/functions/debugFunctions.d.ts +0 -1
  264. package/dist/functions/debugFunctions.d.ts.map +1 -1
  265. package/dist/functions/debugFunctions.js +5 -6
  266. package/dist/functions/decorators.d.ts +4 -4
  267. package/dist/functions/decorators.d.ts.map +1 -1
  268. package/dist/functions/decorators.js +4 -5
  269. package/dist/functions/deepCopy.d.ts +0 -1
  270. package/dist/functions/deepCopy.d.ts.map +1 -1
  271. package/dist/functions/deepCopy.js +7 -10
  272. package/dist/functions/deepCopy.lua +0 -2
  273. package/dist/functions/deepCopyTests.js +5 -6
  274. package/dist/functions/dimensions.js +2 -3
  275. package/dist/functions/direction.js +6 -7
  276. package/dist/functions/doors.d.ts.map +1 -1
  277. package/dist/functions/doors.js +56 -52
  278. package/dist/functions/easing.js +32 -33
  279. package/dist/functions/effects.d.ts +0 -2
  280. package/dist/functions/effects.d.ts.map +1 -1
  281. package/dist/functions/effects.js +2 -2
  282. package/dist/functions/emptyRoom.js +7 -8
  283. package/dist/functions/entities.d.ts +0 -1
  284. package/dist/functions/entities.d.ts.map +1 -1
  285. package/dist/functions/entities.js +36 -38
  286. package/dist/functions/entitiesSpecific.js +40 -41
  287. package/dist/functions/entityTypes.d.ts +0 -1
  288. package/dist/functions/entityTypes.d.ts.map +1 -1
  289. package/dist/functions/entityTypes.js +1 -2
  290. package/dist/functions/enums.d.ts +1 -6
  291. package/dist/functions/enums.d.ts.map +1 -1
  292. package/dist/functions/enums.js +12 -13
  293. package/dist/functions/external.js +2 -3
  294. package/dist/functions/familiars.js +8 -9
  295. package/dist/functions/flag.d.ts +1 -1
  296. package/dist/functions/flag.d.ts.map +1 -1
  297. package/dist/functions/flag.js +9 -10
  298. package/dist/functions/frames.d.ts +0 -1
  299. package/dist/functions/frames.d.ts.map +1 -1
  300. package/dist/functions/frames.js +18 -19
  301. package/dist/functions/globals.d.ts +0 -1
  302. package/dist/functions/globals.d.ts.map +1 -1
  303. package/dist/functions/globals.js +23 -15
  304. package/dist/functions/gridEntities.d.ts.map +1 -1
  305. package/dist/functions/gridEntities.js +68 -62
  306. package/dist/functions/gridEntitiesSpecific.js +40 -41
  307. package/dist/functions/gridIndex.js +1 -2
  308. package/dist/functions/hash.js +1 -2
  309. package/dist/functions/hex.d.ts +0 -2
  310. package/dist/functions/hex.d.ts.map +1 -1
  311. package/dist/functions/hex.js +2 -3
  312. package/dist/functions/input.js +21 -21
  313. package/dist/functions/isaacAPIClass.d.ts +0 -20
  314. package/dist/functions/isaacAPIClass.d.ts.map +1 -1
  315. package/dist/functions/isaacAPIClass.js +25 -26
  316. package/dist/functions/itemPool.js +7 -8
  317. package/dist/functions/jsonHelpers.d.ts +4 -5
  318. package/dist/functions/jsonHelpers.d.ts.map +1 -1
  319. package/dist/functions/jsonHelpers.js +23 -14
  320. package/dist/functions/jsonHelpers.lua +4 -4
  321. package/dist/functions/jsonRoom.js +5 -6
  322. package/dist/functions/kColor.d.ts +0 -1
  323. package/dist/functions/kColor.d.ts.map +1 -1
  324. package/dist/functions/kColor.js +7 -8
  325. package/dist/functions/language.js +1 -2
  326. package/dist/functions/level.js +7 -8
  327. package/dist/functions/levelGrid.d.ts.map +1 -1
  328. package/dist/functions/levelGrid.js +33 -38
  329. package/dist/functions/log.js +4 -5
  330. package/dist/functions/logEntities.d.ts.map +1 -1
  331. package/dist/functions/logEntities.js +19 -17
  332. package/dist/functions/logMisc.d.ts +1 -2
  333. package/dist/functions/logMisc.d.ts.map +1 -1
  334. package/dist/functions/logMisc.js +35 -48
  335. package/dist/functions/logMisc.lua +3 -3
  336. package/dist/functions/map.d.ts +0 -2
  337. package/dist/functions/map.d.ts.map +1 -1
  338. package/dist/functions/map.js +12 -13
  339. package/dist/functions/math.js +17 -18
  340. package/dist/functions/merge.d.ts +0 -1
  341. package/dist/functions/merge.d.ts.map +1 -1
  342. package/dist/functions/merge.js +2 -3
  343. package/dist/functions/mergeTests.js +1 -2
  344. package/dist/functions/minimap.d.ts.map +1 -1
  345. package/dist/functions/minimap.js +12 -17
  346. package/dist/functions/modFeatures.js +1 -2
  347. package/dist/functions/newArray.d.ts +0 -1
  348. package/dist/functions/newArray.d.ts.map +1 -1
  349. package/dist/functions/newArray.js +2 -3
  350. package/dist/functions/nextStage.d.ts.map +1 -1
  351. package/dist/functions/nextStage.js +16 -13
  352. package/dist/functions/npcDataStructures.d.ts +0 -2
  353. package/dist/functions/npcDataStructures.d.ts.map +1 -1
  354. package/dist/functions/npcDataStructures.js +14 -15
  355. package/dist/functions/npcs.d.ts.map +1 -1
  356. package/dist/functions/npcs.js +19 -17
  357. package/dist/functions/pickupVariants.d.ts +0 -1
  358. package/dist/functions/pickupVariants.d.ts.map +1 -1
  359. package/dist/functions/pickupVariants.js +17 -18
  360. package/dist/functions/pickups.js +14 -15
  361. package/dist/functions/pickupsSpecific.js +40 -41
  362. package/dist/functions/pills.js +18 -19
  363. package/dist/functions/playerCenter.d.ts +0 -1
  364. package/dist/functions/playerCenter.d.ts.map +1 -1
  365. package/dist/functions/playerCenter.js +1 -2
  366. package/dist/functions/playerCollectibles.d.ts.map +1 -1
  367. package/dist/functions/playerCollectibles.js +21 -24
  368. package/dist/functions/playerCollectibles.lua +9 -9
  369. package/dist/functions/playerDataStructures.d.ts +0 -1
  370. package/dist/functions/playerDataStructures.d.ts.map +1 -1
  371. package/dist/functions/playerDataStructures.js +14 -15
  372. package/dist/functions/playerEffects.js +5 -6
  373. package/dist/functions/playerHealth.d.ts +0 -2
  374. package/dist/functions/playerHealth.d.ts.map +1 -1
  375. package/dist/functions/playerHealth.js +28 -29
  376. package/dist/functions/playerHealth.lua +26 -26
  377. package/dist/functions/playerIndex.d.ts +0 -3
  378. package/dist/functions/playerIndex.d.ts.map +1 -1
  379. package/dist/functions/playerIndex.js +12 -13
  380. package/dist/functions/playerTrinkets.js +10 -11
  381. package/dist/functions/players.js +41 -42
  382. package/dist/functions/pocketItems.js +10 -11
  383. package/dist/functions/positionVelocity.d.ts +0 -4
  384. package/dist/functions/positionVelocity.d.ts.map +1 -1
  385. package/dist/functions/positionVelocity.js +11 -20
  386. package/dist/functions/positionVelocity.lua +4 -4
  387. package/dist/functions/pressurePlate.js +1 -2
  388. package/dist/functions/projectiles.js +2 -3
  389. package/dist/functions/random.d.ts +0 -3
  390. package/dist/functions/random.d.ts.map +1 -1
  391. package/dist/functions/random.js +3 -4
  392. package/dist/functions/readOnly.d.ts +0 -4
  393. package/dist/functions/readOnly.d.ts.map +1 -1
  394. package/dist/functions/readOnly.js +3 -4
  395. package/dist/functions/render.d.ts +0 -3
  396. package/dist/functions/render.d.ts.map +1 -1
  397. package/dist/functions/render.js +3 -4
  398. package/dist/functions/revive.d.ts +0 -3
  399. package/dist/functions/revive.d.ts.map +1 -1
  400. package/dist/functions/revive.js +20 -21
  401. package/dist/functions/rng.d.ts +0 -1
  402. package/dist/functions/rng.d.ts.map +1 -1
  403. package/dist/functions/rng.js +15 -15
  404. package/dist/functions/rockAlt.d.ts +0 -1
  405. package/dist/functions/rockAlt.d.ts.map +1 -1
  406. package/dist/functions/rockAlt.js +2 -3
  407. package/dist/functions/roomData.d.ts.map +1 -1
  408. package/dist/functions/roomData.js +15 -18
  409. package/dist/functions/roomGrid.js +8 -9
  410. package/dist/functions/roomShape.js +14 -15
  411. package/dist/functions/roomShapeWalls.js +2 -3
  412. package/dist/functions/roomTransition.js +2 -3
  413. package/dist/functions/rooms.d.ts +1 -2
  414. package/dist/functions/rooms.d.ts.map +1 -1
  415. package/dist/functions/rooms.js +116 -105
  416. package/dist/functions/rooms.lua +3 -4
  417. package/dist/functions/run.js +8 -9
  418. package/dist/functions/seeds.d.ts +0 -1
  419. package/dist/functions/seeds.d.ts.map +1 -1
  420. package/dist/functions/seeds.js +2 -3
  421. package/dist/functions/serialization.js +5 -6
  422. package/dist/functions/set.d.ts +0 -2
  423. package/dist/functions/set.d.ts.map +1 -1
  424. package/dist/functions/set.js +22 -23
  425. package/dist/functions/slots.js +2 -3
  426. package/dist/functions/sort.d.ts.map +1 -1
  427. package/dist/functions/sort.js +8 -9
  428. package/dist/functions/sound.d.ts.map +1 -1
  429. package/dist/functions/sound.js +4 -9
  430. package/dist/functions/spawnCollectible.d.ts.map +1 -1
  431. package/dist/functions/spawnCollectible.js +7 -10
  432. package/dist/functions/sprites.d.ts +0 -3
  433. package/dist/functions/sprites.d.ts.map +1 -1
  434. package/dist/functions/sprites.js +6 -7
  435. package/dist/functions/stage.d.ts.map +1 -1
  436. package/dist/functions/stage.js +60 -69
  437. package/dist/functions/stage.lua +5 -5
  438. package/dist/functions/stats.js +4 -5
  439. package/dist/functions/storyBosses.js +2 -3
  440. package/dist/functions/string.d.ts +0 -1
  441. package/dist/functions/string.d.ts.map +1 -1
  442. package/dist/functions/string.js +18 -19
  443. package/dist/functions/table.d.ts +0 -1
  444. package/dist/functions/table.d.ts.map +1 -1
  445. package/dist/functions/table.js +8 -9
  446. package/dist/functions/tears.js +8 -9
  447. package/dist/functions/transformations.js +5 -6
  448. package/dist/functions/trinketGive.js +9 -10
  449. package/dist/functions/trinkets.d.ts.map +1 -1
  450. package/dist/functions/trinkets.js +14 -17
  451. package/dist/functions/tstlClass.d.ts +2 -3
  452. package/dist/functions/tstlClass.d.ts.map +1 -1
  453. package/dist/functions/tstlClass.js +9 -10
  454. package/dist/functions/tstlClass.lua +2 -2
  455. package/dist/functions/types.d.ts +15 -17
  456. package/dist/functions/types.d.ts.map +1 -1
  457. package/dist/functions/types.js +41 -42
  458. package/dist/functions/types.lua +14 -14
  459. package/dist/functions/ui.d.ts +0 -3
  460. package/dist/functions/ui.d.ts.map +1 -1
  461. package/dist/functions/ui.js +13 -14
  462. package/dist/functions/utils.d.ts +0 -1
  463. package/dist/functions/utils.d.ts.map +1 -1
  464. package/dist/functions/utils.js +11 -12
  465. package/dist/functions/vector.d.ts +0 -1
  466. package/dist/functions/vector.d.ts.map +1 -1
  467. package/dist/functions/vector.js +11 -12
  468. package/dist/functions/versusScreen.js +4 -5
  469. package/dist/functions/weighted.d.ts +0 -3
  470. package/dist/functions/weighted.d.ts.map +1 -1
  471. package/dist/functions/weighted.js +2 -3
  472. package/dist/index.d.ts +58 -58
  473. package/dist/index.d.ts.map +1 -1
  474. package/dist/index.js +4 -58
  475. package/dist/index.lua +18 -18
  476. package/dist/index.rollup.d.ts +222 -181
  477. package/dist/indexLua.d.ts +58 -58
  478. package/dist/indexLua.d.ts.map +1 -1
  479. package/dist/indexLua.js +4 -58
  480. package/dist/indexLua.lua +18 -18
  481. package/dist/interfaces/ChargeBarSprites.d.ts +0 -2
  482. package/dist/interfaces/ChargeBarSprites.d.ts.map +1 -1
  483. package/dist/interfaces/Corner.d.ts +0 -2
  484. package/dist/interfaces/Corner.d.ts.map +1 -1
  485. package/dist/interfaces/SaveData.d.ts +0 -1
  486. package/dist/interfaces/SaveData.d.ts.map +1 -1
  487. package/dist/interfaces/TSTLClassMetatable.d.ts +0 -4
  488. package/dist/interfaces/TSTLClassMetatable.d.ts.map +1 -1
  489. package/dist/interfaces/private/AddCallbackParametersCustom.d.ts +6 -0
  490. package/dist/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -1
  491. package/dist/interfaces/private/ModUpgradedInterface.d.ts +0 -1
  492. package/dist/interfaces/private/ModUpgradedInterface.d.ts.map +1 -1
  493. package/dist/isaacscript-common.lua +786 -871
  494. package/dist/lib/jsonLua.js +34 -34
  495. package/dist/lualib_bundle.lua +49 -38
  496. package/dist/objects/LRoomShapeToRectangles.js +1 -1
  497. package/dist/objects/colors.d.ts +0 -1
  498. package/dist/objects/colors.d.ts.map +1 -1
  499. package/dist/objects/directionToVector.d.ts +0 -1
  500. package/dist/objects/directionToVector.d.ts.map +1 -1
  501. package/dist/objects/doorSlotFlagToDoorSlot.d.ts +9 -2
  502. package/dist/objects/doorSlotFlagToDoorSlot.d.ts.map +1 -1
  503. package/dist/objects/doorSlotToDoorSlotFlag.d.ts +0 -1
  504. package/dist/objects/doorSlotToDoorSlotFlag.d.ts.map +1 -1
  505. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +17 -7
  506. package/dist/objects/kColors.d.ts +0 -1
  507. package/dist/objects/kColors.d.ts.map +1 -1
  508. package/dist/objects/roomShapeToBottomRightPosition.d.ts +0 -1
  509. package/dist/objects/roomShapeToBottomRightPosition.d.ts.map +1 -1
  510. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +1 -1
  511. package/dist/objects/roomShapeToTopLeftPosition.d.ts +0 -1
  512. package/dist/objects/roomShapeToTopLeftPosition.d.ts.map +1 -1
  513. package/dist/objects/versusScreenBackgroundColors.d.ts +0 -1
  514. package/dist/objects/versusScreenBackgroundColors.d.ts.map +1 -1
  515. package/dist/objects/versusScreenDirtSpotColors.d.ts +0 -1
  516. package/dist/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
  517. package/dist/patchErrorFunctions.js +1 -2
  518. package/dist/serialization.js +1 -2
  519. package/dist/shaderCrashFix.d.ts +0 -1
  520. package/dist/shaderCrashFix.d.ts.map +1 -1
  521. package/dist/shaderCrashFix.js +1 -2
  522. package/dist/shouldFire.d.ts.map +1 -1
  523. package/dist/shouldFire.js +83 -86
  524. package/dist/tsdoc-metadata.json +1 -1
  525. package/dist/types/AddSubtract.d.ts +10 -2
  526. package/dist/types/AddSubtract.d.ts.map +1 -1
  527. package/dist/types/AnyEntity.d.ts +0 -11
  528. package/dist/types/AnyEntity.d.ts.map +1 -1
  529. package/dist/types/AnyGridEntity.d.ts +0 -8
  530. package/dist/types/AnyGridEntity.d.ts.map +1 -1
  531. package/dist/types/Increment.d.ts.map +1 -1
  532. package/dist/types/PickingUpItem.d.ts +10 -3
  533. package/dist/types/PickingUpItem.d.ts.map +1 -1
  534. package/dist/types/PickingUpItem.js +15 -9
  535. package/dist/types/PickingUpItem.lua +8 -3
  536. package/dist/types/PickupIndex.d.ts +0 -1
  537. package/dist/types/PickupIndex.d.ts.map +1 -1
  538. package/dist/types/PlayerIndex.d.ts +0 -1
  539. package/dist/types/PlayerIndex.d.ts.map +1 -1
  540. package/dist/types/ReadonlyMap.d.ts.map +1 -1
  541. package/dist/types/ReadonlySet.d.ts.map +1 -1
  542. package/dist/types/TSTLClass.d.ts +0 -1
  543. package/dist/types/TSTLClass.d.ts.map +1 -1
  544. package/dist/types/TupleWithLengthBetween.js +2 -2
  545. package/dist/types/TupleWithMaxLength.js +2 -2
  546. package/dist/types/WeightedArray.d.ts +0 -1
  547. package/dist/types/WeightedArray.d.ts.map +1 -1
  548. package/package.json +9 -2
  549. package/src/callbackClasses.ts +7 -6
  550. package/src/callbacks.ts +1 -0
  551. package/src/classes/DefaultMap.ts +5 -2
  552. package/src/classes/ModFeature.ts +3 -3
  553. package/src/classes/ModUpgraded.ts +4 -6
  554. package/src/classes/callbacks/InputActionFilter.ts +3 -3
  555. package/src/classes/callbacks/InputActionPlayer.ts +6 -6
  556. package/src/classes/callbacks/PostBoneSwing.ts +2 -2
  557. package/src/classes/callbacks/PostCollectibleEmpty.ts +3 -5
  558. package/src/classes/callbacks/PostCursedTeleport.ts +5 -5
  559. package/src/classes/callbacks/PostDiceRoomActivated.ts +2 -2
  560. package/src/classes/callbacks/PostEntityRemoveFilter.ts +22 -0
  561. package/src/classes/callbacks/PostGridEntityCollision.ts +10 -10
  562. package/src/classes/callbacks/PostGridEntityCustomCollision.ts +8 -8
  563. package/src/classes/callbacks/PostGridEntityCustomRemove.ts +2 -2
  564. package/src/classes/callbacks/PostGridEntityRemove.ts +3 -3
  565. package/src/classes/callbacks/PostItemDischarge.ts +5 -8
  566. package/src/classes/callbacks/PostKeyboardChanged.ts +2 -2
  567. package/src/classes/callbacks/PostNPCStateChanged.ts +1 -1
  568. package/src/classes/callbacks/PostNewRoomEarly.ts +3 -3
  569. package/src/classes/callbacks/PostPickupSelectionFilter.ts +4 -3
  570. package/src/classes/callbacks/PostPlayerChangeHealth.ts +2 -2
  571. package/src/classes/callbacks/PostPlayerChangeType.ts +1 -1
  572. package/src/classes/callbacks/PostPurchase.ts +9 -9
  573. package/src/classes/callbacks/PostTransformation.ts +1 -3
  574. package/src/classes/callbacks/PostTrinketBreak.ts +1 -3
  575. package/src/classes/callbacks/PostUsePillFilter.ts +2 -2
  576. package/src/classes/callbacks/PreBerserkDeath.ts +4 -4
  577. package/src/classes/callbacks/PreEntitySpawnFilter.ts +3 -3
  578. package/src/classes/callbacks/PreRoomEntitySpawnFilter.ts +5 -5
  579. package/src/classes/features/callbackLogic/CustomGridEntities.ts +1 -1
  580. package/src/classes/features/callbackLogic/EsauJrDetection.ts +2 -2
  581. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +9 -11
  582. package/src/classes/features/callbackLogic/GridEntityUpdateDetection.ts +4 -4
  583. package/src/classes/features/callbackLogic/ItemPickupDetection.ts +4 -4
  584. package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +2 -2
  585. package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +4 -4
  586. package/src/classes/features/other/CustomPickups.ts +1 -0
  587. package/src/classes/features/other/CustomStages.ts +2 -2
  588. package/src/classes/features/other/CustomTrapdoors.ts +46 -39
  589. package/src/classes/features/other/DeployJSONRoom.ts +6 -4
  590. package/src/classes/features/other/DisableInputs.ts +3 -3
  591. package/src/classes/features/other/EdenStartingStatsHealth.ts +3 -1
  592. package/src/classes/features/other/ExtraConsoleCommands.ts +14 -10
  593. package/src/classes/features/other/ModdedElementDetection.ts +4 -4
  594. package/src/classes/features/other/ModdedElementSets.ts +5 -5
  595. package/src/classes/features/other/NoSirenSteal.ts +4 -4
  596. package/src/classes/features/other/PickupIndexCreation.ts +7 -8
  597. package/src/classes/features/other/PonyDetection.ts +2 -2
  598. package/src/classes/features/other/PressInput.ts +2 -2
  599. package/src/classes/features/other/PreventChildEntities.ts +4 -4
  600. package/src/classes/features/other/RoomHistory.ts +5 -5
  601. package/src/classes/features/other/RunInNFrames.ts +2 -2
  602. package/src/classes/features/other/SaveDataManager.ts +3 -3
  603. package/src/classes/features/other/StageHistory.ts +2 -2
  604. package/src/classes/features/other/StartAmbush.ts +2 -2
  605. package/src/classes/features/other/TaintedLazarusPlayers.ts +2 -2
  606. package/src/classes/features/other/customStages/backdrop.ts +1 -1
  607. package/src/classes/features/other/customStages/gridEntities.ts +4 -4
  608. package/src/classes/features/other/customStages/streakText.ts +4 -4
  609. package/src/classes/features/other/extraConsoleCommands/commands.ts +15 -15
  610. package/src/classes/features/other/saveDataManager/glowingHourGlass.ts +4 -2
  611. package/src/classes/features/other/saveDataManager/loadFromDisk.ts +5 -0
  612. package/src/core/constants.ts +1 -1
  613. package/src/core/constantsVanilla.ts +4 -4
  614. package/src/enums/ModCallbackCustom.ts +18 -0
  615. package/src/functions/array.ts +33 -29
  616. package/src/functions/arrayLua.ts +1 -1
  617. package/src/functions/bosses.ts +4 -3
  618. package/src/functions/charge.ts +3 -4
  619. package/src/functions/collectibles.ts +2 -2
  620. package/src/functions/decorators.ts +6 -9
  621. package/src/functions/deepCopy.ts +6 -10
  622. package/src/functions/deepCopyTests.ts +4 -4
  623. package/src/functions/doors.ts +8 -3
  624. package/src/functions/easing.ts +2 -2
  625. package/src/functions/emptyRoom.ts +5 -5
  626. package/src/functions/entities.ts +11 -12
  627. package/src/functions/enums.ts +4 -4
  628. package/src/functions/familiars.ts +2 -2
  629. package/src/functions/flag.ts +3 -3
  630. package/src/functions/globals.ts +2 -3
  631. package/src/functions/gridEntities.ts +30 -24
  632. package/src/functions/gridEntitiesSpecific.ts +2 -2
  633. package/src/functions/isaacAPIClass.ts +2 -2
  634. package/src/functions/jsonHelpers.ts +7 -5
  635. package/src/functions/level.ts +3 -3
  636. package/src/functions/levelGrid.ts +9 -12
  637. package/src/functions/logEntities.ts +11 -8
  638. package/src/functions/logMisc.ts +9 -20
  639. package/src/functions/map.ts +4 -4
  640. package/src/functions/math.ts +4 -4
  641. package/src/functions/merge.ts +1 -1
  642. package/src/functions/minimap.ts +2 -6
  643. package/src/functions/newArray.ts +1 -1
  644. package/src/functions/nextStage.ts +14 -10
  645. package/src/functions/npcDataStructures.ts +5 -5
  646. package/src/functions/npcs.ts +13 -10
  647. package/src/functions/pickupVariants.ts +6 -6
  648. package/src/functions/playerCollectibles.ts +3 -5
  649. package/src/functions/playerDataStructures.ts +5 -5
  650. package/src/functions/playerHealth.ts +8 -8
  651. package/src/functions/playerIndex.ts +3 -3
  652. package/src/functions/players.ts +4 -4
  653. package/src/functions/pocketItems.ts +2 -2
  654. package/src/functions/positionVelocity.ts +4 -12
  655. package/src/functions/revive.ts +15 -15
  656. package/src/functions/rng.ts +4 -3
  657. package/src/functions/roomData.ts +1 -3
  658. package/src/functions/roomGrid.ts +2 -2
  659. package/src/functions/rooms.ts +55 -42
  660. package/src/functions/set.ts +8 -8
  661. package/src/functions/sort.ts +4 -4
  662. package/src/functions/sound.ts +2 -7
  663. package/src/functions/spawnCollectible.ts +4 -6
  664. package/src/functions/stage.ts +20 -30
  665. package/src/functions/string.ts +6 -6
  666. package/src/functions/tears.ts +2 -2
  667. package/src/functions/trinketGive.ts +4 -4
  668. package/src/functions/trinkets.ts +1 -3
  669. package/src/functions/tstlClass.ts +2 -2
  670. package/src/functions/types.ts +19 -19
  671. package/src/index.ts +58 -58
  672. package/src/interfaces/SaveData.ts +2 -1
  673. package/src/interfaces/private/AddCallbackParametersCustom.ts +7 -0
  674. package/src/lib/jsonLua.js +34 -34
  675. package/src/objects/LRoomShapeToRectangles.ts +1 -1
  676. package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +1 -1
  677. package/src/shouldFire.ts +55 -57
  678. package/src/types/AddSubtract.ts +10 -2
  679. package/src/types/HasFunction.ts +1 -1
  680. package/src/types/Immutable.ts +1 -1
  681. package/src/types/Increment.ts +2 -2
  682. package/src/types/PickingUpItem.ts +10 -3
  683. package/src/types/TupleWithLengthBetween.ts +2 -2
  684. package/src/types/TupleWithMaxLength.ts +2 -2
@@ -1,7 +1,66 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isMineShaft = exports.isMegaSatanRoom = exports.isLRoom = exports.isHomeCloset = exports.isGenesisRoom = exports.isDoubleTrouble = exports.isDogmaRoom = exports.isDevilsCrownTreasureRoom = exports.isDeathCertificateArea = exports.isCrawlSpaceWithBlackMarketEntrance = exports.isCrawlSpace = exports.isBossRoomOf = exports.isBigRoom = exports.isBeastRoom = exports.isAngelShop = exports.isAllRoomsClear = exports.is2x1Room = exports.inStartingRoom = exports.inSecretShop = exports.inSecretExit = exports.inRoomType = exports.inRoomShape = exports.inMirrorRoom = exports.inMinibossRoomOf = exports.inMineShaft = exports.inMegaSatanRoom = exports.inLRoom = exports.inHomeCloset = exports.inGenesisRoom = exports.inDoubleTrouble = exports.inDogmaRoom = exports.inDevilsCrownTreasureRoom = exports.inDeathCertificateArea = exports.inCrawlSpaceWithBlackMarketEntrance = exports.inCrawlSpace = exports.inBossRoomOf = exports.inBigRoom = exports.inBeastRoom = exports.inAngelShop = exports.in2x1Room = exports.getRoomsOutsideGrid = exports.getRoomsOfDimension = exports.getRoomsInsideGrid = exports.getRooms = exports.getRoomTypeName = exports.getRoomItemPoolType = exports.getRoomDataForTypeVariant = exports.getReadOnlyRooms = exports.getNumRooms = exports.changeRoom = void 0;
4
- exports.setRoomUncleared = exports.setRoomCleared = exports.setBackdrop = exports.roomUpdateSafe = exports.isSecretShop = exports.isSecretRoomType = exports.isSecretExit = exports.isRoomType = exports.isRoomShape = exports.isMirrorRoom = exports.isMinibossRoomOf = void 0;
3
+ exports.changeRoom = changeRoom;
4
+ exports.getNumRooms = getNumRooms;
5
+ exports.getReadOnlyRooms = getReadOnlyRooms;
6
+ exports.getRoomDataForTypeVariant = getRoomDataForTypeVariant;
7
+ exports.getRoomItemPoolType = getRoomItemPoolType;
8
+ exports.getRoomTypeName = getRoomTypeName;
9
+ exports.getRooms = getRooms;
10
+ exports.getRoomsInsideGrid = getRoomsInsideGrid;
11
+ exports.getRoomsOfDimension = getRoomsOfDimension;
12
+ exports.getRoomsOutsideGrid = getRoomsOutsideGrid;
13
+ exports.in2x1Room = in2x1Room;
14
+ exports.inAngelShop = inAngelShop;
15
+ exports.inBeastRoom = inBeastRoom;
16
+ exports.inBigRoom = inBigRoom;
17
+ exports.inBossRoomOf = inBossRoomOf;
18
+ exports.inCrawlSpace = inCrawlSpace;
19
+ exports.inCrawlSpaceWithBlackMarketEntrance = inCrawlSpaceWithBlackMarketEntrance;
20
+ exports.inDeathCertificateArea = inDeathCertificateArea;
21
+ exports.inDevilsCrownTreasureRoom = inDevilsCrownTreasureRoom;
22
+ exports.inDogmaRoom = inDogmaRoom;
23
+ exports.inDoubleTrouble = inDoubleTrouble;
24
+ exports.inGenesisRoom = inGenesisRoom;
25
+ exports.inHomeCloset = inHomeCloset;
26
+ exports.inLRoom = inLRoom;
27
+ exports.inMegaSatanRoom = inMegaSatanRoom;
28
+ exports.inMineShaft = inMineShaft;
29
+ exports.inMinibossRoomOf = inMinibossRoomOf;
30
+ exports.inMirrorRoom = inMirrorRoom;
31
+ exports.inRoomShape = inRoomShape;
32
+ exports.inRoomType = inRoomType;
33
+ exports.inSecretExit = inSecretExit;
34
+ exports.inSecretShop = inSecretShop;
35
+ exports.inStartingRoom = inStartingRoom;
36
+ exports.is2x1Room = is2x1Room;
37
+ exports.isAllRoomsClear = isAllRoomsClear;
38
+ exports.isAngelShop = isAngelShop;
39
+ exports.isBeastRoom = isBeastRoom;
40
+ exports.isBigRoom = isBigRoom;
41
+ exports.isBossRoomOf = isBossRoomOf;
42
+ exports.isCrawlSpace = isCrawlSpace;
43
+ exports.isCrawlSpaceWithBlackMarketEntrance = isCrawlSpaceWithBlackMarketEntrance;
44
+ exports.isDeathCertificateArea = isDeathCertificateArea;
45
+ exports.isDevilsCrownTreasureRoom = isDevilsCrownTreasureRoom;
46
+ exports.isDogmaRoom = isDogmaRoom;
47
+ exports.isDoubleTrouble = isDoubleTrouble;
48
+ exports.isGenesisRoom = isGenesisRoom;
49
+ exports.isHomeCloset = isHomeCloset;
50
+ exports.isLRoom = isLRoom;
51
+ exports.isMegaSatanRoom = isMegaSatanRoom;
52
+ exports.isMineShaft = isMineShaft;
53
+ exports.isMinibossRoomOf = isMinibossRoomOf;
54
+ exports.isMirrorRoom = isMirrorRoom;
55
+ exports.isRoomShape = isRoomShape;
56
+ exports.isRoomType = isRoomType;
57
+ exports.isSecretExit = isSecretExit;
58
+ exports.isSecretRoomType = isSecretRoomType;
59
+ exports.isSecretShop = isSecretShop;
60
+ exports.roomUpdateSafe = roomUpdateSafe;
61
+ exports.setBackdrop = setBackdrop;
62
+ exports.setRoomCleared = setRoomCleared;
63
+ exports.setRoomUncleared = setRoomUncleared;
5
64
  const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
6
65
  const cachedClasses_1 = require("../core/cachedClasses");
7
66
  const constants_1 = require("../core/constants");
@@ -37,7 +96,6 @@ function changeRoom(roomGridIndex) {
37
96
  level.LeaveDoor = isaac_typescript_definitions_1.DoorSlot.NO_DOOR_SLOT;
38
97
  cachedClasses_1.game.ChangeRoom(roomGridIndex);
39
98
  }
40
- exports.changeRoom = changeRoom;
41
99
  /**
42
100
  * Helper function to get the number of rooms that are currently on the floor layout. This does not
43
101
  * include off-grid rooms, like the Devil Room.
@@ -46,7 +104,6 @@ function getNumRooms() {
46
104
  const roomsInsideGrid = getRoomsInsideGrid();
47
105
  return roomsInsideGrid.length;
48
106
  }
49
- exports.getNumRooms = getNumRooms;
50
107
  /**
51
108
  * Helper function to get a read-only copy of the room descriptor for every room on the level. This
52
109
  * includes off-grid rooms, such as the Devil Room, and extra-dimensional rooms, if they are
@@ -64,14 +121,13 @@ function getReadOnlyRooms() {
64
121
  const readOnlyRoomDescriptors = [];
65
122
  for (let i = 0; i < roomList.Size; i++) {
66
123
  const readOnlyRoomDescriptor = roomList.Get(i);
67
- if (readOnlyRoomDescriptor !== undefined &&
68
- readOnlyRoomDescriptor.Data !== undefined) {
124
+ if (readOnlyRoomDescriptor !== undefined
125
+ && readOnlyRoomDescriptor.Data !== undefined) {
69
126
  readOnlyRoomDescriptors.push(readOnlyRoomDescriptor);
70
127
  }
71
128
  }
72
129
  return readOnlyRoomDescriptors;
73
130
  }
74
- exports.getReadOnlyRooms = getReadOnlyRooms;
75
131
  /**
76
132
  * Helper function to get the room data for a specific room type and variant combination. This is
77
133
  * accomplished by using the "goto" console command to load the specified room into the
@@ -107,7 +163,6 @@ function getRoomDataForTypeVariant(roomType, roomVariant, cancelRoomTransition =
107
163
  }
108
164
  return newRoomData;
109
165
  }
110
- exports.getRoomDataForTypeVariant = getRoomDataForTypeVariant;
111
166
  /**
112
167
  * Helper function to get the item pool type for the current room. For example, this returns
113
168
  * `ItemPoolType.ItemPoolType.POOL_ANGEL` if you are in an Angel Room.
@@ -119,7 +174,6 @@ function getRoomItemPoolType() {
119
174
  const roomSeed = room.GetSpawnSeed();
120
175
  return itemPool.GetPoolForRoom(roomType, roomSeed);
121
176
  }
122
- exports.getRoomItemPoolType = getRoomItemPoolType;
123
177
  /**
124
178
  * Helper function to get the proper name of a room type.
125
179
  *
@@ -128,7 +182,6 @@ exports.getRoomItemPoolType = getRoomItemPoolType;
128
182
  function getRoomTypeName(roomType) {
129
183
  return roomTypeNames_1.ROOM_TYPE_NAMES[roomType];
130
184
  }
131
- exports.getRoomTypeName = getRoomTypeName;
132
185
  /**
133
186
  * Helper function to get the room descriptor for every room on the level. This includes off-grid
134
187
  * rooms, such as the Devil Room.
@@ -150,7 +203,6 @@ function getRooms(includeExtraDimensionalRooms = false) {
150
203
  const roomsOutsideGrid = getRoomsOutsideGrid();
151
204
  return [...roomsInGrid, ...roomsOutsideGrid];
152
205
  }
153
- exports.getRooms = getRooms;
154
206
  /**
155
207
  * Helper function to get the room descriptor for every room on the level that is on the grid. (For
156
208
  * example, Devil Rooms are excluded.)
@@ -158,8 +210,7 @@ exports.getRooms = getRooms;
158
210
  * Room descriptors without any data are assumed to be non-existent and are not included.
159
211
  *
160
212
  * @param includeExtraDimensionalRooms Optional. On some floors (e.g. Downpour 2, Mines 2),
161
- * extra-dimensional rooms are automatically be generated. Default
162
- * is false.
213
+ * extra-dimensional rooms will be generated. Default is false.
163
214
  */
164
215
  function getRoomsInsideGrid(includeExtraDimensionalRooms = false) {
165
216
  const level = cachedClasses_1.game.GetLevel();
@@ -179,7 +230,6 @@ function getRoomsInsideGrid(includeExtraDimensionalRooms = false) {
179
230
  }
180
231
  return [...roomDescriptorMap.values()];
181
232
  }
182
- exports.getRoomsInsideGrid = getRoomsInsideGrid;
183
233
  /**
184
234
  * Helper function to get the room descriptor for every room on the level in a specific dimension.
185
235
  * This will not include any off-grid rooms, such as the Devil Room.
@@ -199,7 +249,6 @@ function getRoomsOfDimension(dimension) {
199
249
  }
200
250
  return [...roomsMap.values()];
201
251
  }
202
- exports.getRoomsOfDimension = getRoomsOfDimension;
203
252
  /**
204
253
  * Helper function to get the room descriptor for every room on the level that is outside of the
205
254
  * grid (like a Devil Room).
@@ -213,7 +262,6 @@ function getRoomsOutsideGrid() {
213
262
  const readOnlyRoomsOffGrid = readOnlyRooms.filter((readOnlyRoomDescriptor) => readOnlyRoomDescriptor.SafeGridIndex < 0);
214
263
  return readOnlyRoomsOffGrid.map((readOnlyRoomDescriptor) => (0, roomData_1.getRoomDescriptor)(readOnlyRoomDescriptor.SafeGridIndex));
215
264
  }
216
- exports.getRoomsOutsideGrid = getRoomsOutsideGrid;
217
265
  /**
218
266
  * Helper function to determine if the current room shape is equal to `RoomShape.1x2` or
219
267
  * `RoomShape.2x1`.
@@ -222,7 +270,6 @@ function in2x1Room() {
222
270
  const roomData = (0, roomData_1.getRoomData)();
223
271
  return is2x1Room(roomData);
224
272
  }
225
- exports.in2x1Room = in2x1Room;
226
273
  /**
227
274
  * Helper function to check to see if the current room is an angel shop.
228
275
  *
@@ -233,7 +280,6 @@ function inAngelShop() {
233
280
  const roomData = (0, roomData_1.getRoomData)();
234
281
  return isAngelShop(roomData);
235
282
  }
236
- exports.inAngelShop = inAngelShop;
237
283
  /**
238
284
  * Helper function to check to see if the current room is the Boss Room for The Beast.
239
285
  *
@@ -246,7 +292,6 @@ function inBeastRoom() {
246
292
  const roomData = (0, roomData_1.getRoomData)();
247
293
  return isBeastRoom(roomData);
248
294
  }
249
- exports.inBeastRoom = inBeastRoom;
250
295
  /**
251
296
  * Helper function to detect if the current room is big. Specifically, this is all 1x2 rooms, 2x2
252
297
  * rooms, and L rooms.
@@ -255,7 +300,6 @@ function inBigRoom() {
255
300
  const roomData = (0, roomData_1.getRoomData)();
256
301
  return isBigRoom(roomData);
257
302
  }
258
- exports.inBigRoom = inBigRoom;
259
303
  /**
260
304
  * Helper function to check if the current room is the Boss Room for a particular boss. This will
261
305
  * only work for bosses that have dedicated boss rooms in the "00.special rooms.stb" file.
@@ -264,7 +308,6 @@ function inBossRoomOf(bossID) {
264
308
  const roomData = (0, roomData_1.getRoomData)();
265
309
  return isBossRoomOf(roomData, bossID);
266
310
  }
267
- exports.inBossRoomOf = inBossRoomOf;
268
311
  /**
269
312
  * Helper function for determining whether the current room is a crawl space. Use this function over
270
313
  * comparing to `RoomType.DUNGEON` or `GridRoom.DUNGEON_IDX` since there is a special case of the
@@ -274,7 +317,6 @@ function inCrawlSpace() {
274
317
  const roomData = (0, roomData_1.getRoomData)();
275
318
  return isCrawlSpace(roomData);
276
319
  }
277
- exports.inCrawlSpace = inCrawlSpace;
278
320
  /**
279
321
  * Helper function for checking whether the current room is a crawl space with a door corresponding
280
322
  * to `DoorSlotFlag.RIGHT_0` (1 << 2).
@@ -283,7 +325,6 @@ function inCrawlSpaceWithBlackMarketEntrance() {
283
325
  const roomData = (0, roomData_1.getRoomData)();
284
326
  return isCrawlSpaceWithBlackMarketEntrance(roomData);
285
327
  }
286
- exports.inCrawlSpaceWithBlackMarketEntrance = inCrawlSpaceWithBlackMarketEntrance;
287
328
  /**
288
329
  * Helper function to detect if the current room is one of the rooms in the Death Certificate area.
289
330
  */
@@ -291,7 +332,6 @@ function inDeathCertificateArea() {
291
332
  const roomData = (0, roomData_1.getRoomData)();
292
333
  return isDeathCertificateArea(roomData);
293
334
  }
294
- exports.inDeathCertificateArea = inDeathCertificateArea;
295
335
  /**
296
336
  * Helper function to detect if the current room is a Treasure Room created when entering with a
297
337
  * Devil's Crown trinket.
@@ -302,7 +342,6 @@ function inDevilsCrownTreasureRoom() {
302
342
  const roomDescriptor = (0, roomData_1.getRoomDescriptorReadOnly)();
303
343
  return isDevilsCrownTreasureRoom(roomDescriptor);
304
344
  }
305
- exports.inDevilsCrownTreasureRoom = inDevilsCrownTreasureRoom;
306
345
  /**
307
346
  * Helper function to check to see if the current room is the Boss Room for Dogma.
308
347
  *
@@ -320,7 +359,6 @@ function inDogmaRoom() {
320
359
  const roomData = (0, roomData_1.getRoomData)();
321
360
  return isDogmaRoom(roomData);
322
361
  }
323
- exports.inDogmaRoom = inDogmaRoom;
324
362
  /**
325
363
  * Helper function to detect if the current room is a Double Trouble Boss Room.
326
364
  *
@@ -336,13 +374,11 @@ function inDoubleTrouble() {
336
374
  const roomData = (0, roomData_1.getRoomData)();
337
375
  return isDoubleTrouble(roomData);
338
376
  }
339
- exports.inDoubleTrouble = inDoubleTrouble;
340
377
  /** Helper function to determine if the current room index is equal to `GridRoom.GENESIS`. */
341
378
  function inGenesisRoom() {
342
379
  const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
343
380
  return isGenesisRoom(roomGridIndex);
344
381
  }
345
- exports.inGenesisRoom = inGenesisRoom;
346
382
  /**
347
383
  * Helper function to check if the current room is either the left Home closet (behind the red door)
348
384
  * or the right Home closet (with one random pickup).
@@ -353,19 +389,16 @@ function inHomeCloset() {
353
389
  const roomData = (0, roomData_1.getRoomData)();
354
390
  return isHomeCloset(roomData);
355
391
  }
356
- exports.inHomeCloset = inHomeCloset;
357
392
  /** Helper function to determine if the current room shape is one of the four L room shapes. */
358
393
  function inLRoom() {
359
394
  const roomData = (0, roomData_1.getRoomData)();
360
395
  return isLRoom(roomData);
361
396
  }
362
- exports.inLRoom = inLRoom;
363
397
  /** Helper function to determine if the current room index is equal to `GridRoom.MEGA_SATAN`. */
364
398
  function inMegaSatanRoom() {
365
399
  const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
366
400
  return isMegaSatanRoom(roomGridIndex);
367
401
  }
368
- exports.inMegaSatanRoom = inMegaSatanRoom;
369
402
  /**
370
403
  * Helper function to determine if the current room is part of the Repentance "escape sequence" in
371
404
  * the Mines/Ashpit.
@@ -374,7 +407,6 @@ function inMineShaft() {
374
407
  const roomData = (0, roomData_1.getRoomData)();
375
408
  return isMineShaft(roomData);
376
409
  }
377
- exports.inMineShaft = inMineShaft;
378
410
  /**
379
411
  * Helper function to check if the current room is a miniboss room for a particular miniboss. This
380
412
  * will only work for mini-bosses that have dedicated boss rooms in the "00.special rooms.stb" file.
@@ -383,7 +415,6 @@ function inMinibossRoomOf(minibossID) {
383
415
  const roomData = (0, roomData_1.getRoomData)();
384
416
  return isMinibossRoomOf(roomData, minibossID);
385
417
  }
386
- exports.inMinibossRoomOf = inMinibossRoomOf;
387
418
  /**
388
419
  * Helper function to check if the current room is a "mirror room" in Downpour or Dross. (These
389
420
  * rooms are marked with a specific sub-type.)
@@ -392,7 +423,6 @@ function inMirrorRoom() {
392
423
  const roomData = (0, roomData_1.getRoomData)();
393
424
  return isMirrorRoom(roomData);
394
425
  }
395
- exports.inMirrorRoom = inMirrorRoom;
396
426
  /**
397
427
  * Helper function to check if the current room shape matches one of the given room shapes.
398
428
  *
@@ -402,7 +432,6 @@ function inRoomShape(...roomShapes) {
402
432
  const roomData = (0, roomData_1.getRoomData)();
403
433
  return isRoomShape(roomData, ...roomShapes);
404
434
  }
405
- exports.inRoomShape = inRoomShape;
406
435
  /**
407
436
  * Helper function to check if the current room matches one of the given room types.
408
437
  *
@@ -412,7 +441,6 @@ function inRoomType(...roomTypes) {
412
441
  const roomData = (0, roomData_1.getRoomData)();
413
442
  return isRoomType(roomData, ...roomTypes);
414
443
  }
415
- exports.inRoomType = inRoomType;
416
444
  /**
417
445
  * Helper function for checking if the current room is a secret exit that leads to a Repentance
418
446
  * floor.
@@ -421,7 +449,6 @@ function inSecretExit() {
421
449
  const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
422
450
  return isSecretExit(roomGridIndex);
423
451
  }
424
- exports.inSecretExit = inSecretExit;
425
452
  /**
426
453
  * Helper function for checking if the current room is a secret shop (from the Member Card
427
454
  * collectible).
@@ -434,7 +461,6 @@ function inSecretShop() {
434
461
  const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
435
462
  return isSecretShop(roomGridIndex);
436
463
  }
437
- exports.inSecretShop = inSecretShop;
438
464
  /**
439
465
  * Helper function to determine whether the current room is the starting room of a floor. It only
440
466
  * returns true for the starting room of the primary dimension (meaning that being in the starting
@@ -446,14 +472,12 @@ function inStartingRoom() {
446
472
  const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
447
473
  return roomGridIndex === startingRoomGridIndex && (0, dimensions_1.inDimension)(isaac_typescript_definitions_1.Dimension.MAIN);
448
474
  }
449
- exports.inStartingRoom = inStartingRoom;
450
475
  /**
451
476
  * Helper function to determine if the provided room is equal to `RoomShape.1x2` or `RoomShape.2x1`.
452
477
  */
453
478
  function is2x1Room(roomData) {
454
479
  return (0, roomShape_1.is2x1RoomShape)(roomData.Shape);
455
480
  }
456
- exports.is2x1Room = is2x1Room;
457
481
  /**
458
482
  * Helper function to loop through every room on the floor and see if it has been cleared.
459
483
  *
@@ -477,24 +501,23 @@ function isAllRoomsClear(onlyCheckRoomTypes, includeSecretRoom = false, includeS
477
501
  }
478
502
  else {
479
503
  const roomTypeWhitelist = new ReadonlySet_1.ReadonlySet(onlyCheckRoomTypes);
480
- matchingRooms = roomsInsideGrid.filter((roomDescriptor) => roomDescriptor.Data !== undefined &&
481
- roomTypeWhitelist.has(roomDescriptor.Data.Type));
504
+ matchingRooms = roomsInsideGrid.filter((roomDescriptor) => roomDescriptor.Data !== undefined
505
+ && roomTypeWhitelist.has(roomDescriptor.Data.Type));
482
506
  }
483
507
  if (!includeSecretRoom) {
484
- matchingRooms = matchingRooms.filter((roomDescriptor) => roomDescriptor.Data !== undefined &&
485
- roomDescriptor.Data.Type !== isaac_typescript_definitions_1.RoomType.SECRET);
508
+ matchingRooms = matchingRooms.filter((roomDescriptor) => roomDescriptor.Data !== undefined
509
+ && roomDescriptor.Data.Type !== isaac_typescript_definitions_1.RoomType.SECRET);
486
510
  }
487
511
  if (!includeSuperSecretRoom) {
488
- matchingRooms = matchingRooms.filter((roomDescriptor) => roomDescriptor.Data !== undefined &&
489
- roomDescriptor.Data.Type !== isaac_typescript_definitions_1.RoomType.SUPER_SECRET);
512
+ matchingRooms = matchingRooms.filter((roomDescriptor) => roomDescriptor.Data !== undefined
513
+ && roomDescriptor.Data.Type !== isaac_typescript_definitions_1.RoomType.SUPER_SECRET);
490
514
  }
491
515
  if (!includeUltraSecretRoom) {
492
- matchingRooms = matchingRooms.filter((roomDescriptor) => roomDescriptor.Data !== undefined &&
493
- roomDescriptor.Data.Type !== isaac_typescript_definitions_1.RoomType.ULTRA_SECRET);
516
+ matchingRooms = matchingRooms.filter((roomDescriptor) => roomDescriptor.Data !== undefined
517
+ && roomDescriptor.Data.Type !== isaac_typescript_definitions_1.RoomType.ULTRA_SECRET);
494
518
  }
495
519
  return matchingRooms.every((roomDescriptor) => roomDescriptor.Clear);
496
520
  }
497
- exports.isAllRoomsClear = isAllRoomsClear;
498
521
  /**
499
522
  * Helper function to check to see if the current room is an angel shop.
500
523
  *
@@ -502,10 +525,10 @@ exports.isAllRoomsClear = isAllRoomsClear;
502
525
  * being equal to `AngelRoomSubType.SHOP` (1).
503
526
  */
504
527
  function isAngelShop(roomData) {
505
- return (roomData.Type === isaac_typescript_definitions_1.RoomType.ANGEL &&
506
- roomData.Subtype === isaac_typescript_definitions_1.AngelRoomSubType.SHOP);
528
+ return (roomData.Type === isaac_typescript_definitions_1.RoomType.ANGEL
529
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
530
+ && roomData.Subtype === isaac_typescript_definitions_1.AngelRoomSubType.SHOP);
507
531
  }
508
- exports.isAngelShop = isAngelShop;
509
532
  /**
510
533
  * Helper function to check to see if the provided room is the Boss Room for The Beast.
511
534
  *
@@ -515,10 +538,10 @@ exports.isAngelShop = isAngelShop;
515
538
  * being equal to `DungeonSubType.BEAST_ROOM` (4).
516
539
  */
517
540
  function isBeastRoom(roomData) {
518
- return (roomData.Type === isaac_typescript_definitions_1.RoomType.DUNGEON &&
519
- roomData.Subtype === isaac_typescript_definitions_1.DungeonSubType.BEAST_ROOM);
541
+ return (roomData.Type === isaac_typescript_definitions_1.RoomType.DUNGEON
542
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
543
+ && roomData.Subtype === isaac_typescript_definitions_1.DungeonSubType.BEAST_ROOM);
520
544
  }
521
- exports.isBeastRoom = isBeastRoom;
522
545
  /**
523
546
  * Helper function to detect if the provided room is big. Specifically, this is all 1x2 rooms, 2x2
524
547
  * rooms, and L rooms.
@@ -526,27 +549,26 @@ exports.isBeastRoom = isBeastRoom;
526
549
  function isBigRoom(roomData) {
527
550
  return (0, roomShape_1.isBigRoomShape)(roomData.Shape);
528
551
  }
529
- exports.isBigRoom = isBigRoom;
530
552
  /**
531
553
  * Helper function to check if the provided room is the Boss Room for a particular boss. This will
532
554
  * only work for bosses that have dedicated boss rooms in the "00.special rooms.stb" file.
533
555
  */
534
556
  function isBossRoomOf(roomData, bossID) {
535
- return (roomData.Type === isaac_typescript_definitions_1.RoomType.BOSS &&
536
- roomData.StageID === isaac_typescript_definitions_1.StageID.SPECIAL_ROOMS &&
537
- roomData.Subtype === bossID);
557
+ return (roomData.Type === isaac_typescript_definitions_1.RoomType.BOSS
558
+ && roomData.StageID === isaac_typescript_definitions_1.StageID.SPECIAL_ROOMS
559
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
560
+ && roomData.Subtype === bossID);
538
561
  }
539
- exports.isBossRoomOf = isBossRoomOf;
540
562
  /**
541
563
  * Helper function for determining whether the provided room is a crawl space. Use this function
542
564
  * over comparing to `RoomType.DUNGEON` or `GridRoom.DUNGEON_IDX` since there is a special case of
543
565
  * the player being in a boss fight that takes place in a dungeon.
544
566
  */
545
567
  function isCrawlSpace(roomData) {
546
- return (roomData.Type === isaac_typescript_definitions_1.RoomType.DUNGEON &&
547
- roomData.Subtype === isaac_typescript_definitions_1.DungeonSubType.NORMAL);
568
+ return (roomData.Type === isaac_typescript_definitions_1.RoomType.DUNGEON
569
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
570
+ && roomData.Subtype === isaac_typescript_definitions_1.DungeonSubType.NORMAL);
548
571
  }
549
- exports.isCrawlSpace = isCrawlSpace;
550
572
  /**
551
573
  * Helper function for checking whether the provided room is a crawl space with a door corresponding
552
574
  * to `DoorSlotFlag.RIGHT_0` (1 << 2).
@@ -554,16 +576,16 @@ exports.isCrawlSpace = isCrawlSpace;
554
576
  function isCrawlSpaceWithBlackMarketEntrance(roomData) {
555
577
  return (isCrawlSpace(roomData) && (0, flag_1.hasFlag)(roomData.Doors, isaac_typescript_definitions_1.DoorSlotFlag.RIGHT_0));
556
578
  }
557
- exports.isCrawlSpaceWithBlackMarketEntrance = isCrawlSpaceWithBlackMarketEntrance;
558
579
  /**
559
580
  * Helper function to detect if the provided room is one of the rooms in the Death Certificate area.
560
581
  */
561
582
  function isDeathCertificateArea(roomData) {
562
- return (roomData.StageID === isaac_typescript_definitions_1.StageID.HOME &&
563
- (roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.DEATH_CERTIFICATE_ENTRANCE ||
564
- roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.DEATH_CERTIFICATE_ITEMS));
583
+ return (roomData.StageID === isaac_typescript_definitions_1.StageID.HOME
584
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
585
+ && (roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.DEATH_CERTIFICATE_ENTRANCE
586
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
587
+ || roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.DEATH_CERTIFICATE_ITEMS));
565
588
  }
566
- exports.isDeathCertificateArea = isDeathCertificateArea;
567
589
  /**
568
590
  * Helper function to detect if the provided room is a Treasure Room created when entering with a
569
591
  * Devil's Crown trinket.
@@ -573,7 +595,6 @@ exports.isDeathCertificateArea = isDeathCertificateArea;
573
595
  function isDevilsCrownTreasureRoom(roomDescriptor) {
574
596
  return (0, flag_1.hasFlag)(roomDescriptor.Flags, isaac_typescript_definitions_1.RoomDescriptorFlag.DEVIL_TREASURE);
575
597
  }
576
- exports.isDevilsCrownTreasureRoom = isDevilsCrownTreasureRoom;
577
598
  /**
578
599
  * Helper function to check to see if the provided room is the Boss Room for Dogma.
579
600
  *
@@ -588,12 +609,12 @@ exports.isDevilsCrownTreasureRoom = isDevilsCrownTreasureRoom;
588
609
  * `HomeRoomSubType.LIVING_ROOM` (3).
589
610
  */
590
611
  function isDogmaRoom(roomData) {
591
- return (roomData.StageID === isaac_typescript_definitions_1.StageID.HOME &&
592
- roomData.Type === isaac_typescript_definitions_1.RoomType.DEFAULT &&
593
- roomData.Variant === 1000 &&
594
- roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.LIVING_ROOM);
612
+ return (roomData.StageID === isaac_typescript_definitions_1.StageID.HOME
613
+ && roomData.Type === isaac_typescript_definitions_1.RoomType.DEFAULT
614
+ && roomData.Variant === 1000
615
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
616
+ && roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.LIVING_ROOM);
595
617
  }
596
- exports.isDogmaRoom = isDogmaRoom;
597
618
  /**
598
619
  * Helper function to detect if the provided room is a Double Trouble Boss Room.
599
620
  *
@@ -608,14 +629,13 @@ exports.isDogmaRoom = isDogmaRoom;
608
629
  function isDoubleTrouble(roomData) {
609
630
  return (roomData.Type === isaac_typescript_definitions_1.RoomType.BOSS && roomData.Name.includes("Double Trouble"));
610
631
  }
611
- exports.isDoubleTrouble = isDoubleTrouble;
612
632
  /**
613
633
  * Helper function to determine if the index of the provided room is equal to `GridRoom.GENESIS`.
614
634
  */
615
635
  function isGenesisRoom(roomGridIndex) {
636
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
616
637
  return roomGridIndex === isaac_typescript_definitions_1.GridRoom.GENESIS;
617
638
  }
618
- exports.isGenesisRoom = isGenesisRoom;
619
639
  /**
620
640
  * Helper function to check if the provided room is either the left Home closet (behind the red
621
641
  * door) or the right Home closet (with one random pickup).
@@ -623,55 +643,53 @@ exports.isGenesisRoom = isGenesisRoom;
623
643
  * Home closets have a unique shape that is different from any other room in the game.
624
644
  */
625
645
  function isHomeCloset(roomData) {
626
- return (roomData.StageID === isaac_typescript_definitions_1.StageID.HOME &&
627
- (roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.CLOSET_LEFT ||
628
- roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.CLOSET_RIGHT));
646
+ return (roomData.StageID === isaac_typescript_definitions_1.StageID.HOME
647
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
648
+ && (roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.CLOSET_LEFT
649
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
650
+ || roomData.Subtype === isaac_typescript_definitions_1.HomeRoomSubType.CLOSET_RIGHT));
629
651
  }
630
- exports.isHomeCloset = isHomeCloset;
631
652
  /** Helper function to determine if the provided room is one of the four L room shapes. */
632
653
  function isLRoom(roomData) {
633
654
  return (0, roomShape_1.isLRoomShape)(roomData.Shape);
634
655
  }
635
- exports.isLRoom = isLRoom;
636
656
  /**
637
657
  * Helper function to determine if the index of the provided room is equal to `GridRoom.MEGA_SATAN`.
638
658
  */
639
659
  function isMegaSatanRoom(roomGridIndex) {
660
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
640
661
  return roomGridIndex === isaac_typescript_definitions_1.GridRoom.MEGA_SATAN;
641
662
  }
642
- exports.isMegaSatanRoom = isMegaSatanRoom;
643
663
  /**
644
664
  * Helper function to determine if the provided room is part of the Repentance "escape sequence" in
645
665
  * the Mines/Ashpit.
646
666
  */
647
667
  function isMineShaft(roomData) {
648
- return ((roomData.StageID === isaac_typescript_definitions_1.StageID.MINES ||
649
- roomData.StageID === isaac_typescript_definitions_1.StageID.ASHPIT) &&
650
- // eslint-disable-next-line isaacscript/strict-enums
651
- mineShaftRoomSubTypesSet_1.MINE_SHAFT_ROOM_SUB_TYPE_SET.has(roomData.Subtype));
668
+ return ((roomData.StageID === isaac_typescript_definitions_1.StageID.MINES || roomData.StageID === isaac_typescript_definitions_1.StageID.ASHPIT)
669
+ // eslint-disable-next-line complete/strict-enums
670
+ && mineShaftRoomSubTypesSet_1.MINE_SHAFT_ROOM_SUB_TYPE_SET.has(roomData.Subtype));
652
671
  }
653
- exports.isMineShaft = isMineShaft;
654
672
  /**
655
673
  * Helper function to check if the provided room is a miniboss room for a particular miniboss. This
656
674
  * will only work for mini-bosses that have dedicated boss rooms in the "00.special rooms.stb" file.
657
675
  */
658
676
  function isMinibossRoomOf(roomData, minibossID) {
659
- return (roomData.Type === isaac_typescript_definitions_1.RoomType.MINI_BOSS &&
660
- roomData.StageID === isaac_typescript_definitions_1.StageID.SPECIAL_ROOMS &&
661
- roomData.Subtype === minibossID);
677
+ return (roomData.Type === isaac_typescript_definitions_1.RoomType.MINI_BOSS
678
+ && roomData.StageID === isaac_typescript_definitions_1.StageID.SPECIAL_ROOMS
679
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
680
+ && roomData.Subtype === minibossID);
662
681
  }
663
- exports.isMinibossRoomOf = isMinibossRoomOf;
664
682
  /**
665
683
  * Helper function to check if the provided room is a "mirror room" in Downpour or Dross. (These
666
684
  * rooms are marked with a specific sub-type.)
667
685
  */
668
686
  function isMirrorRoom(roomData) {
669
- return (roomData.Type === isaac_typescript_definitions_1.RoomType.DEFAULT &&
670
- (roomData.StageID === isaac_typescript_definitions_1.StageID.DOWNPOUR ||
671
- roomData.StageID === isaac_typescript_definitions_1.StageID.DROSS) &&
672
- roomData.Subtype === isaac_typescript_definitions_1.DownpourRoomSubType.MIRROR);
687
+ return (roomData.Type === isaac_typescript_definitions_1.RoomType.DEFAULT
688
+ && (roomData.StageID === isaac_typescript_definitions_1.StageID.DOWNPOUR
689
+ || roomData.StageID === isaac_typescript_definitions_1.StageID.DROSS)
690
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
691
+ && roomData.Subtype === isaac_typescript_definitions_1.DownpourRoomSubType.MIRROR);
673
692
  }
674
- exports.isMirrorRoom = isMirrorRoom;
675
693
  /**
676
694
  * Helper function to check if the provided room matches one of the given room shapes.
677
695
  *
@@ -680,7 +698,6 @@ exports.isMirrorRoom = isMirrorRoom;
680
698
  function isRoomShape(roomData, ...roomShapes) {
681
699
  return roomShapes.includes(roomData.Shape);
682
700
  }
683
- exports.isRoomShape = isRoomShape;
684
701
  /**
685
702
  * Helper function to check if the provided room matches one of the given room types.
686
703
  *
@@ -689,15 +706,14 @@ exports.isRoomShape = isRoomShape;
689
706
  function isRoomType(roomData, ...roomTypes) {
690
707
  return roomTypes.includes(roomData.Type);
691
708
  }
692
- exports.isRoomType = isRoomType;
693
709
  /**
694
710
  * Helper function for checking if the provided room is a secret exit that leads to a Repentance
695
711
  * floor.
696
712
  */
697
713
  function isSecretExit(roomGridIndex) {
714
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
698
715
  return roomGridIndex === isaac_typescript_definitions_1.GridRoom.SECRET_EXIT;
699
716
  }
700
- exports.isSecretExit = isSecretExit;
701
717
  /**
702
718
  * Helper function to detect if a room type is a Secret Room, a Super Secret Room, or an Ultra
703
719
  * Secret Room.
@@ -705,7 +721,6 @@ exports.isSecretExit = isSecretExit;
705
721
  function isSecretRoomType(roomType) {
706
722
  return SECRET_ROOM_TYPES.has(roomType);
707
723
  }
708
- exports.isSecretRoomType = isSecretRoomType;
709
724
  /**
710
725
  * Helper function for checking if the provided room is a secret shop (from the Member Card
711
726
  * collectible).
@@ -715,9 +730,9 @@ exports.isSecretRoomType = isSecretRoomType;
715
730
  * the only way to detect them is by using the grid index.
716
731
  */
717
732
  function isSecretShop(roomGridIndex) {
733
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
718
734
  return roomGridIndex === isaac_typescript_definitions_1.GridRoom.SECRET_SHOP;
719
735
  }
720
- exports.isSecretShop = isSecretShop;
721
736
  /**
722
737
  * If the `Room.Update` method is called in a `POST_NEW_ROOM` callback, then some entities will
723
738
  * slide around (such as the player). Since those entity velocities are already at zero, setting
@@ -733,13 +748,11 @@ function roomUpdateSafe() {
733
748
  (0, positionVelocity_1.setEntityPositions)(entityPositions, entities);
734
749
  (0, positionVelocity_1.setEntityVelocities)(entityVelocities, entities);
735
750
  }
736
- exports.roomUpdateSafe = roomUpdateSafe;
737
751
  /** Helper function to set the backdrop (i.e. background) of the current room. */
738
752
  function setBackdrop(backdropType) {
739
753
  cachedClasses_1.game.ShowHallucination(0, backdropType);
740
754
  cachedClasses_1.sfxManager.Stop(isaac_typescript_definitions_1.SoundEffect.DEATH_CARD);
741
755
  }
742
- exports.setBackdrop = setBackdrop;
743
756
  /**
744
757
  * Helper function to convert an uncleared room to a cleared room in the `POST_NEW_ROOM` callback.
745
758
  * This is useful because if enemies are removed in this callback, a room drop will be awarded and
@@ -769,7 +782,6 @@ function setRoomCleared() {
769
782
  // frame shake.
770
783
  cachedClasses_1.game.ShakeScreen(0);
771
784
  }
772
- exports.setRoomCleared = setRoomCleared;
773
785
  /**
774
786
  * Helper function to emulate what happens when you bomb an Angel Statue or push a Reward Plate that
775
787
  * spawns an NPC.
@@ -779,4 +791,3 @@ function setRoomUncleared() {
779
791
  room.SetClear(false);
780
792
  (0, doors_1.closeAllDoors)();
781
793
  }
782
- exports.setRoomUncleared = setRoomUncleared;
@@ -99,8 +99,7 @@ end
99
99
  -- Room descriptors without any data are assumed to be non-existent and are not included.
100
100
  --
101
101
  -- @param includeExtraDimensionalRooms Optional. On some floors (e.g. Downpour 2, Mines 2),
102
- -- extra-dimensional rooms are automatically be generated. Default
103
- -- is false.
102
+ -- extra-dimensional rooms will be generated. Default is false.
104
103
  function ____exports.getRoomsInsideGrid(self, includeExtraDimensionalRooms)
105
104
  if includeExtraDimensionalRooms == nil then
106
105
  includeExtraDimensionalRooms = false
@@ -652,12 +651,12 @@ function ____exports.setRoomCleared(self)
652
651
  for ____, door in ipairs(getDoors(nil)) do
653
652
  do
654
653
  if isHiddenSecretRoomDoor(nil, door) then
655
- goto __continue86
654
+ goto __continue87
656
655
  end
657
656
  openDoorFast(nil, door)
658
657
  door.ExtraVisible = false
659
658
  end
660
- ::__continue86::
659
+ ::__continue87::
661
660
  end
662
661
  sfxManager:Stop(SoundEffect.DOOR_HEAVY_OPEN)
663
662
  game:ShakeScreen(0)