isaacscript-common 87.5.0 → 87.5.1

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 (579) hide show
  1. package/README.md +1 -1
  2. package/dist/callbackClasses.d.ts +6 -6
  3. package/dist/callbackClasses.d.ts.map +1 -1
  4. package/dist/callbackClasses.js +14 -14
  5. package/dist/callbackClasses.lua +159 -300
  6. package/dist/callbacks.js +18 -9
  7. package/dist/classes/DefaultMap.d.ts +5 -1
  8. package/dist/classes/DefaultMap.d.ts.map +1 -1
  9. package/dist/classes/ModFeature.js +3 -3
  10. package/dist/classes/ModUpgraded.d.ts.map +1 -1
  11. package/dist/classes/ModUpgraded.js +2 -4
  12. package/dist/classes/callbacks/InputActionFilter.d.ts +2 -2
  13. package/dist/classes/callbacks/InputActionFilter.d.ts.map +1 -1
  14. package/dist/classes/callbacks/InputActionPlayer.d.ts +2 -2
  15. package/dist/classes/callbacks/InputActionPlayer.d.ts.map +1 -1
  16. package/dist/classes/callbacks/PostCollectibleEmpty.d.ts +2 -2
  17. package/dist/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -1
  18. package/dist/classes/callbacks/PostCollectibleEmpty.js +1 -3
  19. package/dist/classes/callbacks/PostCustomRevive.d.ts +2 -4
  20. package/dist/classes/callbacks/PostCustomRevive.d.ts.map +1 -1
  21. package/dist/classes/callbacks/PostDiceRoomActivated.d.ts +2 -3
  22. package/dist/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -1
  23. package/dist/classes/callbacks/PostGridEntityCollision.d.ts +2 -4
  24. package/dist/classes/callbacks/PostGridEntityCollision.d.ts.map +1 -1
  25. package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts +2 -4
  26. package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts.map +1 -1
  27. package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts +2 -3
  28. package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts.map +1 -1
  29. package/dist/classes/callbacks/PostGridEntityRemove.d.ts +2 -2
  30. package/dist/classes/callbacks/PostGridEntityRemove.d.ts.map +1 -1
  31. package/dist/classes/callbacks/PostItemDischarge.d.ts +2 -2
  32. package/dist/classes/callbacks/PostItemDischarge.d.ts.map +1 -1
  33. package/dist/classes/callbacks/PostItemDischarge.js +3 -6
  34. package/dist/classes/callbacks/PostKeyboardChanged.d.ts +2 -1
  35. package/dist/classes/callbacks/PostKeyboardChanged.d.ts.map +1 -1
  36. package/dist/classes/callbacks/PostNewRoomEarly.js +1 -1
  37. package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts +2 -2
  38. package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts.map +1 -1
  39. package/dist/classes/callbacks/PostPlayerChangeType.js +1 -1
  40. package/dist/classes/callbacks/PostPurchase.d.ts +2 -4
  41. package/dist/classes/callbacks/PostPurchase.d.ts.map +1 -1
  42. package/dist/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -1
  43. package/dist/classes/callbacks/PostTransformation.d.ts +2 -2
  44. package/dist/classes/callbacks/PostTransformation.d.ts.map +1 -1
  45. package/dist/classes/callbacks/PostTransformation.js +1 -3
  46. package/dist/classes/callbacks/PostTrinketBreak.d.ts.map +1 -1
  47. package/dist/classes/callbacks/PostTrinketBreak.js +1 -3
  48. package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts +2 -2
  49. package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts.map +1 -1
  50. package/dist/classes/callbacks/PreNewLevel.d.ts.map +1 -1
  51. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts +2 -2
  52. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts.map +1 -1
  53. package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts +1 -1
  54. package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
  55. package/dist/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
  56. package/dist/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
  57. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  58. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +4 -6
  59. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts +0 -1
  60. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
  61. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +4 -4
  62. package/dist/classes/features/other/CustomPickups.d.ts.map +1 -1
  63. package/dist/classes/features/other/CustomPickups.js +1 -0
  64. package/dist/classes/features/other/CustomStages.js +19 -9
  65. package/dist/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
  66. package/dist/classes/features/other/CustomTrapdoors.js +23 -17
  67. package/dist/classes/features/other/CustomTrapdoors.lua +14 -7
  68. package/dist/classes/features/other/DebugDisplay.d.ts +0 -18
  69. package/dist/classes/features/other/DebugDisplay.d.ts.map +1 -1
  70. package/dist/classes/features/other/DeployJSONRoom.d.ts +0 -2
  71. package/dist/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
  72. package/dist/classes/features/other/DeployJSONRoom.js +2 -0
  73. package/dist/classes/features/other/EdenStartingStatsHealth.d.ts +1 -1
  74. package/dist/classes/features/other/EdenStartingStatsHealth.d.ts.map +1 -1
  75. package/dist/classes/features/other/ExtraConsoleCommands.d.ts +14 -10
  76. package/dist/classes/features/other/ExtraConsoleCommands.d.ts.map +1 -1
  77. package/dist/classes/features/other/ExtraConsoleCommands.js +31 -17
  78. package/dist/classes/features/other/ExtraConsoleCommands.lua +2 -1
  79. package/dist/classes/features/other/FlyingDetection.d.ts +0 -1
  80. package/dist/classes/features/other/FlyingDetection.d.ts.map +1 -1
  81. package/dist/classes/features/other/ForgottenSwitch.d.ts +0 -1
  82. package/dist/classes/features/other/ForgottenSwitch.d.ts.map +1 -1
  83. package/dist/classes/features/other/ModdedElementDetection.js +4 -4
  84. package/dist/classes/features/other/ModdedElementSets.d.ts +2 -2
  85. package/dist/classes/features/other/ModdedElementSets.d.ts.map +1 -1
  86. package/dist/classes/features/other/ModdedElementSets.js +1 -1
  87. package/dist/classes/features/other/PickupIndexCreation.d.ts +0 -1
  88. package/dist/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
  89. package/dist/classes/features/other/PickupIndexCreation.js +2 -3
  90. package/dist/classes/features/other/PickupIndexCreation.lua +10 -10
  91. package/dist/classes/features/other/PonyDetection.d.ts +0 -1
  92. package/dist/classes/features/other/PonyDetection.d.ts.map +1 -1
  93. package/dist/classes/features/other/PreventChildEntities.d.ts +0 -1
  94. package/dist/classes/features/other/PreventChildEntities.d.ts.map +1 -1
  95. package/dist/classes/features/other/RoomClearFrame.d.ts +0 -1
  96. package/dist/classes/features/other/RoomClearFrame.d.ts.map +1 -1
  97. package/dist/classes/features/other/RoomHistory.d.ts +0 -1
  98. package/dist/classes/features/other/RoomHistory.d.ts.map +1 -1
  99. package/dist/classes/features/other/RunInNFrames.js +2 -2
  100. package/dist/classes/features/other/SaveDataManager.js +1 -1
  101. package/dist/classes/features/other/SpawnRockAltRewards.d.ts +0 -4
  102. package/dist/classes/features/other/SpawnRockAltRewards.d.ts.map +1 -1
  103. package/dist/classes/features/other/TaintedLazarusPlayers.d.ts +0 -1
  104. package/dist/classes/features/other/TaintedLazarusPlayers.d.ts.map +1 -1
  105. package/dist/classes/features/other/customStages/backdrop.js +2 -3
  106. package/dist/classes/features/other/customStages/constants.d.ts.map +1 -1
  107. package/dist/classes/features/other/customStages/gridEntities.d.ts +0 -1
  108. package/dist/classes/features/other/customStages/gridEntities.d.ts.map +1 -1
  109. package/dist/classes/features/other/customStages/gridEntities.js +5 -6
  110. package/dist/classes/features/other/customStages/shadows.js +1 -2
  111. package/dist/classes/features/other/customStages/streakText.js +3 -4
  112. package/dist/classes/features/other/customStages/utils.d.ts +0 -2
  113. package/dist/classes/features/other/customStages/utils.d.ts.map +1 -1
  114. package/dist/classes/features/other/customStages/utils.js +2 -3
  115. package/dist/classes/features/other/customStages/v.d.ts.map +1 -1
  116. package/dist/classes/features/other/customStages/versusScreen.js +2 -3
  117. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts +0 -1
  118. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts.map +1 -1
  119. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts +0 -1
  120. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts.map +1 -1
  121. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts +0 -1
  122. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts.map +1 -1
  123. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts +0 -1
  124. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts.map +1 -1
  125. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts +0 -1
  126. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts.map +1 -1
  127. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts +0 -1
  128. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts.map +1 -1
  129. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts +0 -1
  130. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts.map +1 -1
  131. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts +0 -1
  132. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts.map +1 -1
  133. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts +0 -1
  134. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts.map +1 -1
  135. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts +0 -1
  136. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts.map +1 -1
  137. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts +0 -1
  138. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts.map +1 -1
  139. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts +0 -1
  140. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts.map +1 -1
  141. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts +0 -1
  142. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts.map +1 -1
  143. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts +0 -1
  144. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts.map +1 -1
  145. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts +0 -1
  146. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts.map +1 -1
  147. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts +0 -1
  148. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts.map +1 -1
  149. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts +0 -1
  150. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts.map +1 -1
  151. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts +0 -1
  152. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts.map +1 -1
  153. package/dist/classes/features/other/debugDisplay/utils.d.ts +0 -2
  154. package/dist/classes/features/other/debugDisplay/utils.d.ts.map +1 -1
  155. package/dist/classes/features/other/debugDisplay/utils.js +2 -3
  156. package/dist/classes/features/other/extraConsoleCommands/commands.js +147 -150
  157. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +8 -9
  158. package/dist/classes/features/other/saveDataManager/constants.d.ts.map +1 -1
  159. package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts +0 -1
  160. package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts.map +1 -1
  161. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +2 -3
  162. package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts +0 -2
  163. package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts.map +1 -1
  164. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +5 -2
  165. package/dist/classes/features/other/saveDataManager/loadFromDisk.lua +3 -0
  166. package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts +0 -1
  167. package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -1
  168. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +3 -4
  169. package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts +0 -2
  170. package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts.map +1 -1
  171. package/dist/classes/features/other/saveDataManager/saveToDisk.js +1 -2
  172. package/dist/classes/private/CustomCallback.d.ts.map +1 -1
  173. package/dist/core/cachedClasses.d.ts +0 -5
  174. package/dist/core/cachedClasses.d.ts.map +1 -1
  175. package/dist/core/constants.js +1 -1
  176. package/dist/core/constantsVanilla.js +4 -4
  177. package/dist/core/upgradeMod.d.ts +0 -2
  178. package/dist/core/upgradeMod.d.ts.map +1 -1
  179. package/dist/core/upgradeMod.js +1 -2
  180. package/dist/decorators.js +2 -2
  181. package/dist/enums/private/GridEntityTypeCustom.d.ts.map +1 -1
  182. package/dist/features.js +1 -2
  183. package/dist/functions/ambush.js +1 -2
  184. package/dist/functions/array.d.ts +5 -8
  185. package/dist/functions/array.d.ts.map +1 -1
  186. package/dist/functions/array.js +55 -55
  187. package/dist/functions/array.lua +2 -2
  188. package/dist/functions/arrayLua.d.ts +1 -1
  189. package/dist/functions/arrayLua.d.ts.map +1 -1
  190. package/dist/functions/arrayLua.js +7 -8
  191. package/dist/functions/benchmark.d.ts +0 -1
  192. package/dist/functions/benchmark.d.ts.map +1 -1
  193. package/dist/functions/benchmark.js +1 -2
  194. package/dist/functions/bitSet128.d.ts +0 -1
  195. package/dist/functions/bitSet128.d.ts.map +1 -1
  196. package/dist/functions/bitSet128.js +5 -6
  197. package/dist/functions/bitwise.d.ts +0 -4
  198. package/dist/functions/bitwise.d.ts.map +1 -1
  199. package/dist/functions/bitwise.js +7 -8
  200. package/dist/functions/bitwise.lua +3 -3
  201. package/dist/functions/bombs.d.ts +0 -1
  202. package/dist/functions/bombs.d.ts.map +1 -1
  203. package/dist/functions/bombs.js +1 -2
  204. package/dist/functions/bosses.d.ts.map +1 -1
  205. package/dist/functions/bosses.js +17 -17
  206. package/dist/functions/cards.js +16 -17
  207. package/dist/functions/challenges.js +9 -10
  208. package/dist/functions/characters.js +17 -18
  209. package/dist/functions/charge.d.ts.map +1 -1
  210. package/dist/functions/charge.js +10 -11
  211. package/dist/functions/charge.lua +1 -1
  212. package/dist/functions/chargeBar.d.ts +0 -2
  213. package/dist/functions/chargeBar.d.ts.map +1 -1
  214. package/dist/functions/chargeBar.js +2 -3
  215. package/dist/functions/collectibleTag.js +2 -3
  216. package/dist/functions/collectibles.js +37 -38
  217. package/dist/functions/color.d.ts +0 -1
  218. package/dist/functions/color.d.ts.map +1 -1
  219. package/dist/functions/color.js +7 -8
  220. package/dist/functions/console.js +2 -3
  221. package/dist/functions/curses.js +2 -3
  222. package/dist/functions/debugFunctions.d.ts +0 -1
  223. package/dist/functions/debugFunctions.d.ts.map +1 -1
  224. package/dist/functions/debugFunctions.js +5 -6
  225. package/dist/functions/decorators.d.ts +4 -4
  226. package/dist/functions/decorators.d.ts.map +1 -1
  227. package/dist/functions/decorators.js +4 -5
  228. package/dist/functions/deepCopy.d.ts +0 -1
  229. package/dist/functions/deepCopy.d.ts.map +1 -1
  230. package/dist/functions/deepCopy.js +1 -4
  231. package/dist/functions/deepCopy.lua +0 -2
  232. package/dist/functions/deepCopyTests.js +5 -6
  233. package/dist/functions/dimensions.js +2 -3
  234. package/dist/functions/direction.js +6 -7
  235. package/dist/functions/doors.d.ts.map +1 -1
  236. package/dist/functions/doors.js +53 -49
  237. package/dist/functions/easing.js +30 -31
  238. package/dist/functions/effects.d.ts +0 -2
  239. package/dist/functions/effects.d.ts.map +1 -1
  240. package/dist/functions/effects.js +2 -2
  241. package/dist/functions/emptyRoom.js +2 -3
  242. package/dist/functions/entities.d.ts +0 -1
  243. package/dist/functions/entities.d.ts.map +1 -1
  244. package/dist/functions/entities.js +28 -30
  245. package/dist/functions/entitiesSpecific.js +40 -41
  246. package/dist/functions/entityTypes.d.ts +0 -1
  247. package/dist/functions/entityTypes.d.ts.map +1 -1
  248. package/dist/functions/entityTypes.js +1 -2
  249. package/dist/functions/enums.d.ts +1 -6
  250. package/dist/functions/enums.d.ts.map +1 -1
  251. package/dist/functions/enums.js +12 -13
  252. package/dist/functions/external.js +2 -3
  253. package/dist/functions/familiars.js +6 -7
  254. package/dist/functions/flag.d.ts +1 -1
  255. package/dist/functions/flag.d.ts.map +1 -1
  256. package/dist/functions/flag.js +7 -8
  257. package/dist/functions/frames.d.ts +0 -1
  258. package/dist/functions/frames.d.ts.map +1 -1
  259. package/dist/functions/frames.js +18 -19
  260. package/dist/functions/globals.d.ts +0 -1
  261. package/dist/functions/globals.d.ts.map +1 -1
  262. package/dist/functions/globals.js +23 -15
  263. package/dist/functions/gridEntities.d.ts.map +1 -1
  264. package/dist/functions/gridEntities.js +45 -39
  265. package/dist/functions/gridEntitiesSpecific.js +38 -39
  266. package/dist/functions/gridIndex.js +1 -2
  267. package/dist/functions/hash.js +1 -2
  268. package/dist/functions/hex.d.ts +0 -2
  269. package/dist/functions/hex.d.ts.map +1 -1
  270. package/dist/functions/hex.js +2 -3
  271. package/dist/functions/input.js +21 -21
  272. package/dist/functions/isaacAPIClass.d.ts +0 -20
  273. package/dist/functions/isaacAPIClass.d.ts.map +1 -1
  274. package/dist/functions/isaacAPIClass.js +23 -24
  275. package/dist/functions/itemPool.js +7 -8
  276. package/dist/functions/jsonHelpers.d.ts +4 -5
  277. package/dist/functions/jsonHelpers.d.ts.map +1 -1
  278. package/dist/functions/jsonHelpers.js +23 -14
  279. package/dist/functions/jsonHelpers.lua +4 -4
  280. package/dist/functions/jsonRoom.js +5 -6
  281. package/dist/functions/kColor.d.ts +0 -1
  282. package/dist/functions/kColor.d.ts.map +1 -1
  283. package/dist/functions/kColor.js +7 -8
  284. package/dist/functions/language.js +1 -2
  285. package/dist/functions/level.js +4 -5
  286. package/dist/functions/levelGrid.d.ts.map +1 -1
  287. package/dist/functions/levelGrid.js +27 -32
  288. package/dist/functions/log.js +4 -5
  289. package/dist/functions/logEntities.d.ts.map +1 -1
  290. package/dist/functions/logEntities.js +11 -9
  291. package/dist/functions/logMisc.d.ts +1 -2
  292. package/dist/functions/logMisc.d.ts.map +1 -1
  293. package/dist/functions/logMisc.js +35 -48
  294. package/dist/functions/logMisc.lua +3 -3
  295. package/dist/functions/map.d.ts +0 -2
  296. package/dist/functions/map.d.ts.map +1 -1
  297. package/dist/functions/map.js +12 -13
  298. package/dist/functions/math.js +13 -14
  299. package/dist/functions/merge.d.ts +0 -1
  300. package/dist/functions/merge.d.ts.map +1 -1
  301. package/dist/functions/merge.js +2 -3
  302. package/dist/functions/mergeTests.js +1 -2
  303. package/dist/functions/minimap.d.ts.map +1 -1
  304. package/dist/functions/minimap.js +12 -17
  305. package/dist/functions/modFeatures.js +1 -2
  306. package/dist/functions/newArray.d.ts +0 -1
  307. package/dist/functions/newArray.d.ts.map +1 -1
  308. package/dist/functions/newArray.js +2 -3
  309. package/dist/functions/nextStage.d.ts.map +1 -1
  310. package/dist/functions/nextStage.js +6 -3
  311. package/dist/functions/npcDataStructures.d.ts +0 -2
  312. package/dist/functions/npcDataStructures.d.ts.map +1 -1
  313. package/dist/functions/npcDataStructures.js +14 -15
  314. package/dist/functions/npcs.d.ts.map +1 -1
  315. package/dist/functions/npcs.js +9 -7
  316. package/dist/functions/pickupVariants.d.ts +0 -1
  317. package/dist/functions/pickupVariants.d.ts.map +1 -1
  318. package/dist/functions/pickupVariants.js +11 -12
  319. package/dist/functions/pickups.js +14 -15
  320. package/dist/functions/pickupsSpecific.js +40 -41
  321. package/dist/functions/pills.js +18 -19
  322. package/dist/functions/playerCenter.d.ts +0 -1
  323. package/dist/functions/playerCenter.d.ts.map +1 -1
  324. package/dist/functions/playerCenter.js +1 -2
  325. package/dist/functions/playerCollectibles.d.ts.map +1 -1
  326. package/dist/functions/playerCollectibles.js +19 -22
  327. package/dist/functions/playerCollectibles.lua +9 -9
  328. package/dist/functions/playerDataStructures.d.ts +0 -1
  329. package/dist/functions/playerDataStructures.d.ts.map +1 -1
  330. package/dist/functions/playerDataStructures.js +14 -15
  331. package/dist/functions/playerEffects.js +5 -6
  332. package/dist/functions/playerHealth.d.ts +0 -2
  333. package/dist/functions/playerHealth.d.ts.map +1 -1
  334. package/dist/functions/playerHealth.js +20 -21
  335. package/dist/functions/playerHealth.lua +26 -26
  336. package/dist/functions/playerIndex.d.ts +0 -3
  337. package/dist/functions/playerIndex.d.ts.map +1 -1
  338. package/dist/functions/playerIndex.js +9 -10
  339. package/dist/functions/playerTrinkets.js +10 -11
  340. package/dist/functions/players.js +37 -38
  341. package/dist/functions/pocketItems.js +8 -9
  342. package/dist/functions/positionVelocity.d.ts +0 -4
  343. package/dist/functions/positionVelocity.d.ts.map +1 -1
  344. package/dist/functions/positionVelocity.js +11 -20
  345. package/dist/functions/positionVelocity.lua +4 -4
  346. package/dist/functions/pressurePlate.js +1 -2
  347. package/dist/functions/projectiles.js +2 -3
  348. package/dist/functions/random.d.ts +0 -3
  349. package/dist/functions/random.d.ts.map +1 -1
  350. package/dist/functions/random.js +3 -4
  351. package/dist/functions/readOnly.d.ts +0 -4
  352. package/dist/functions/readOnly.d.ts.map +1 -1
  353. package/dist/functions/readOnly.js +3 -4
  354. package/dist/functions/render.d.ts +0 -3
  355. package/dist/functions/render.d.ts.map +1 -1
  356. package/dist/functions/render.js +3 -4
  357. package/dist/functions/revive.d.ts +0 -3
  358. package/dist/functions/revive.d.ts.map +1 -1
  359. package/dist/functions/revive.js +5 -6
  360. package/dist/functions/rng.d.ts +0 -1
  361. package/dist/functions/rng.d.ts.map +1 -1
  362. package/dist/functions/rng.js +15 -15
  363. package/dist/functions/rockAlt.d.ts +0 -1
  364. package/dist/functions/rockAlt.d.ts.map +1 -1
  365. package/dist/functions/rockAlt.js +2 -3
  366. package/dist/functions/roomData.d.ts.map +1 -1
  367. package/dist/functions/roomData.js +15 -18
  368. package/dist/functions/roomGrid.js +6 -7
  369. package/dist/functions/roomShape.js +14 -15
  370. package/dist/functions/roomShapeWalls.js +2 -3
  371. package/dist/functions/roomTransition.js +2 -3
  372. package/dist/functions/rooms.d.ts.map +1 -1
  373. package/dist/functions/rooms.js +77 -64
  374. package/dist/functions/rooms.lua +2 -2
  375. package/dist/functions/run.js +8 -9
  376. package/dist/functions/seeds.d.ts +0 -1
  377. package/dist/functions/seeds.d.ts.map +1 -1
  378. package/dist/functions/seeds.js +2 -3
  379. package/dist/functions/serialization.js +5 -6
  380. package/dist/functions/set.d.ts +0 -2
  381. package/dist/functions/set.d.ts.map +1 -1
  382. package/dist/functions/set.js +22 -23
  383. package/dist/functions/slots.js +2 -3
  384. package/dist/functions/sort.d.ts.map +1 -1
  385. package/dist/functions/sort.js +6 -7
  386. package/dist/functions/sound.d.ts.map +1 -1
  387. package/dist/functions/sound.js +4 -9
  388. package/dist/functions/spawnCollectible.d.ts.map +1 -1
  389. package/dist/functions/spawnCollectible.js +4 -7
  390. package/dist/functions/sprites.d.ts +0 -3
  391. package/dist/functions/sprites.d.ts.map +1 -1
  392. package/dist/functions/sprites.js +6 -7
  393. package/dist/functions/stage.d.ts.map +1 -1
  394. package/dist/functions/stage.js +44 -53
  395. package/dist/functions/stage.lua +5 -5
  396. package/dist/functions/stats.js +4 -5
  397. package/dist/functions/storyBosses.js +2 -3
  398. package/dist/functions/string.d.ts +0 -1
  399. package/dist/functions/string.d.ts.map +1 -1
  400. package/dist/functions/string.js +12 -13
  401. package/dist/functions/table.d.ts +0 -1
  402. package/dist/functions/table.d.ts.map +1 -1
  403. package/dist/functions/table.js +8 -9
  404. package/dist/functions/tears.js +6 -7
  405. package/dist/functions/transformations.js +5 -6
  406. package/dist/functions/trinketGive.js +5 -6
  407. package/dist/functions/trinkets.d.ts.map +1 -1
  408. package/dist/functions/trinkets.js +14 -17
  409. package/dist/functions/tstlClass.d.ts +2 -3
  410. package/dist/functions/tstlClass.d.ts.map +1 -1
  411. package/dist/functions/tstlClass.js +9 -10
  412. package/dist/functions/tstlClass.lua +2 -2
  413. package/dist/functions/types.d.ts +15 -17
  414. package/dist/functions/types.d.ts.map +1 -1
  415. package/dist/functions/types.js +38 -39
  416. package/dist/functions/types.lua +14 -14
  417. package/dist/functions/ui.d.ts +0 -3
  418. package/dist/functions/ui.d.ts.map +1 -1
  419. package/dist/functions/ui.js +13 -14
  420. package/dist/functions/utils.d.ts +0 -1
  421. package/dist/functions/utils.d.ts.map +1 -1
  422. package/dist/functions/utils.js +11 -12
  423. package/dist/functions/vector.d.ts +0 -1
  424. package/dist/functions/vector.d.ts.map +1 -1
  425. package/dist/functions/vector.js +11 -12
  426. package/dist/functions/versusScreen.js +4 -5
  427. package/dist/functions/weighted.d.ts +0 -3
  428. package/dist/functions/weighted.d.ts.map +1 -1
  429. package/dist/functions/weighted.js +2 -3
  430. package/dist/index.d.ts +58 -58
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +4 -58
  433. package/dist/index.lua +18 -18
  434. package/dist/index.rollup.d.ts +71 -59
  435. package/dist/indexLua.d.ts +58 -58
  436. package/dist/indexLua.d.ts.map +1 -1
  437. package/dist/indexLua.js +4 -58
  438. package/dist/indexLua.lua +18 -18
  439. package/dist/interfaces/ChargeBarSprites.d.ts +0 -2
  440. package/dist/interfaces/ChargeBarSprites.d.ts.map +1 -1
  441. package/dist/interfaces/Corner.d.ts +0 -2
  442. package/dist/interfaces/Corner.d.ts.map +1 -1
  443. package/dist/interfaces/SaveData.d.ts +0 -1
  444. package/dist/interfaces/SaveData.d.ts.map +1 -1
  445. package/dist/interfaces/TSTLClassMetatable.d.ts +0 -4
  446. package/dist/interfaces/TSTLClassMetatable.d.ts.map +1 -1
  447. package/dist/interfaces/private/ModUpgradedInterface.d.ts +0 -1
  448. package/dist/interfaces/private/ModUpgradedInterface.d.ts.map +1 -1
  449. package/dist/isaacscript-common.lua +628 -749
  450. package/dist/lib/jsonLua.js +2 -2
  451. package/dist/lualib_bundle.lua +49 -38
  452. package/dist/objects/LRoomShapeToRectangles.js +1 -1
  453. package/dist/objects/colors.d.ts +0 -1
  454. package/dist/objects/colors.d.ts.map +1 -1
  455. package/dist/objects/directionToVector.d.ts +0 -1
  456. package/dist/objects/directionToVector.d.ts.map +1 -1
  457. package/dist/objects/doorSlotFlagToDoorSlot.d.ts +9 -2
  458. package/dist/objects/doorSlotFlagToDoorSlot.d.ts.map +1 -1
  459. package/dist/objects/doorSlotToDoorSlotFlag.d.ts +0 -1
  460. package/dist/objects/doorSlotToDoorSlotFlag.d.ts.map +1 -1
  461. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +17 -7
  462. package/dist/objects/kColors.d.ts +0 -1
  463. package/dist/objects/kColors.d.ts.map +1 -1
  464. package/dist/objects/roomShapeToBottomRightPosition.d.ts +0 -1
  465. package/dist/objects/roomShapeToBottomRightPosition.d.ts.map +1 -1
  466. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +1 -1
  467. package/dist/objects/roomShapeToTopLeftPosition.d.ts +0 -1
  468. package/dist/objects/roomShapeToTopLeftPosition.d.ts.map +1 -1
  469. package/dist/objects/versusScreenBackgroundColors.d.ts +0 -1
  470. package/dist/objects/versusScreenBackgroundColors.d.ts.map +1 -1
  471. package/dist/objects/versusScreenDirtSpotColors.d.ts +0 -1
  472. package/dist/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
  473. package/dist/patchErrorFunctions.js +1 -2
  474. package/dist/serialization.js +1 -2
  475. package/dist/shaderCrashFix.d.ts +0 -1
  476. package/dist/shaderCrashFix.d.ts.map +1 -1
  477. package/dist/shaderCrashFix.js +1 -2
  478. package/dist/shouldFire.d.ts.map +1 -1
  479. package/dist/shouldFire.js +30 -30
  480. package/dist/tsdoc-metadata.json +1 -1
  481. package/dist/types/AddSubtract.d.ts +10 -2
  482. package/dist/types/AddSubtract.d.ts.map +1 -1
  483. package/dist/types/AnyEntity.d.ts +0 -11
  484. package/dist/types/AnyEntity.d.ts.map +1 -1
  485. package/dist/types/AnyGridEntity.d.ts +0 -8
  486. package/dist/types/AnyGridEntity.d.ts.map +1 -1
  487. package/dist/types/PickingUpItem.js +5 -6
  488. package/dist/types/PickupIndex.d.ts +0 -1
  489. package/dist/types/PickupIndex.d.ts.map +1 -1
  490. package/dist/types/PlayerIndex.d.ts +0 -1
  491. package/dist/types/PlayerIndex.d.ts.map +1 -1
  492. package/dist/types/ReadonlyMap.d.ts.map +1 -1
  493. package/dist/types/ReadonlySet.d.ts.map +1 -1
  494. package/dist/types/TSTLClass.d.ts +0 -1
  495. package/dist/types/TSTLClass.d.ts.map +1 -1
  496. package/dist/types/TupleWithLengthBetween.js +2 -2
  497. package/dist/types/TupleWithMaxLength.js +2 -2
  498. package/dist/types/WeightedArray.d.ts +0 -1
  499. package/dist/types/WeightedArray.d.ts.map +1 -1
  500. package/package.json +9 -2
  501. package/src/callbackClasses.ts +6 -6
  502. package/src/classes/DefaultMap.ts +5 -2
  503. package/src/classes/ModFeature.ts +3 -3
  504. package/src/classes/ModUpgraded.ts +2 -4
  505. package/src/classes/callbacks/PostCollectibleEmpty.ts +1 -3
  506. package/src/classes/callbacks/PostItemDischarge.ts +3 -6
  507. package/src/classes/callbacks/PostNPCStateChanged.ts +1 -1
  508. package/src/classes/callbacks/PostNewRoomEarly.ts +1 -1
  509. package/src/classes/callbacks/PostPlayerChangeType.ts +1 -1
  510. package/src/classes/callbacks/PostTransformation.ts +1 -3
  511. package/src/classes/callbacks/PostTrinketBreak.ts +1 -3
  512. package/src/classes/features/callbackLogic/CustomGridEntities.ts +1 -1
  513. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +4 -6
  514. package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +4 -4
  515. package/src/classes/features/other/CustomPickups.ts +1 -0
  516. package/src/classes/features/other/CustomStages.ts +2 -2
  517. package/src/classes/features/other/CustomTrapdoors.ts +23 -18
  518. package/src/classes/features/other/DeployJSONRoom.ts +2 -0
  519. package/src/classes/features/other/EdenStartingStatsHealth.ts +3 -1
  520. package/src/classes/features/other/ExtraConsoleCommands.ts +14 -10
  521. package/src/classes/features/other/ModdedElementDetection.ts +4 -4
  522. package/src/classes/features/other/ModdedElementSets.ts +3 -3
  523. package/src/classes/features/other/PickupIndexCreation.ts +2 -3
  524. package/src/classes/features/other/RunInNFrames.ts +2 -2
  525. package/src/classes/features/other/SaveDataManager.ts +1 -1
  526. package/src/classes/features/other/customStages/backdrop.ts +1 -1
  527. package/src/classes/features/other/extraConsoleCommands/commands.ts +7 -7
  528. package/src/classes/features/other/saveDataManager/loadFromDisk.ts +5 -0
  529. package/src/core/constants.ts +1 -1
  530. package/src/core/constantsVanilla.ts +4 -4
  531. package/src/functions/array.ts +33 -29
  532. package/src/functions/arrayLua.ts +1 -1
  533. package/src/functions/bosses.ts +2 -1
  534. package/src/functions/charge.ts +1 -2
  535. package/src/functions/decorators.ts +6 -9
  536. package/src/functions/deepCopy.ts +0 -4
  537. package/src/functions/deepCopyTests.ts +4 -4
  538. package/src/functions/doors.ts +5 -0
  539. package/src/functions/entities.ts +3 -4
  540. package/src/functions/enums.ts +4 -4
  541. package/src/functions/flag.ts +1 -1
  542. package/src/functions/globals.ts +2 -3
  543. package/src/functions/gridEntities.ts +7 -1
  544. package/src/functions/jsonHelpers.ts +7 -5
  545. package/src/functions/levelGrid.ts +3 -6
  546. package/src/functions/logEntities.ts +3 -0
  547. package/src/functions/logMisc.ts +9 -20
  548. package/src/functions/map.ts +4 -4
  549. package/src/functions/merge.ts +1 -1
  550. package/src/functions/minimap.ts +2 -6
  551. package/src/functions/newArray.ts +1 -1
  552. package/src/functions/nextStage.ts +4 -0
  553. package/src/functions/npcDataStructures.ts +5 -5
  554. package/src/functions/npcs.ts +3 -0
  555. package/src/functions/playerCollectibles.ts +1 -3
  556. package/src/functions/playerDataStructures.ts +5 -5
  557. package/src/functions/positionVelocity.ts +4 -12
  558. package/src/functions/rng.ts +4 -3
  559. package/src/functions/roomData.ts +1 -3
  560. package/src/functions/rooms.ts +16 -1
  561. package/src/functions/set.ts +8 -8
  562. package/src/functions/sort.ts +2 -2
  563. package/src/functions/sound.ts +2 -7
  564. package/src/functions/spawnCollectible.ts +1 -3
  565. package/src/functions/stage.ts +4 -14
  566. package/src/functions/trinkets.ts +1 -3
  567. package/src/functions/tstlClass.ts +2 -2
  568. package/src/functions/types.ts +16 -16
  569. package/src/index.ts +58 -58
  570. package/src/interfaces/SaveData.ts +2 -1
  571. package/src/lib/jsonLua.js +2 -2
  572. package/src/objects/LRoomShapeToRectangles.ts +1 -1
  573. package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +1 -1
  574. package/src/shouldFire.ts +2 -1
  575. package/src/types/AddSubtract.ts +10 -2
  576. package/src/types/HasFunction.ts +1 -1
  577. package/src/types/Immutable.ts +1 -1
  578. package/src/types/TupleWithLengthBetween.ts +2 -2
  579. package/src/types/TupleWithMaxLength.ts +2 -2
@@ -2,7 +2,7 @@ import type { DefaultMap } from "../classes/DefaultMap";
2
2
  import { sumArray } from "./array";
3
3
 
4
4
  /** Helper function to copy a map. (You can also use a Map constructor to accomplish this task.) */
5
- // eslint-disable-next-line isaacscript/no-mutable-return
5
+ // eslint-disable-next-line complete/no-mutable-return
6
6
  export function copyMap<K, V>(oldMap: ReadonlyMap<K, V>): Map<K, V> {
7
7
  const newMap = new Map<K, V>();
8
8
  for (const [key, value] of oldMap) {
@@ -33,7 +33,7 @@ export function defaultMapGetHash<V, A extends unknown[]>(
33
33
  * `mapSetHash` helper function.
34
34
  */
35
35
  export function defaultMapSetHash<V>(
36
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
36
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
37
37
  map: Map<PtrHash, V>,
38
38
  entity: Entity,
39
39
  value: V,
@@ -79,7 +79,7 @@ export function getReversedMap<K, V>(
79
79
  * the map uses `PtrHash` as an index.
80
80
  */
81
81
  export function mapSetHash<V>(
82
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
82
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
83
83
  map: Map<PtrHash, V>,
84
84
  entity: Entity,
85
85
  value: V,
@@ -101,7 +101,7 @@ export function mapSetHash<V>(
101
101
  *
102
102
  * Also see the `objectToReadonlyMap` function.
103
103
  */
104
- // eslint-disable-next-line isaacscript/no-mutable-return
104
+ // eslint-disable-next-line complete/no-mutable-return
105
105
  export function objectToMap<K extends string | number | symbol, V>(
106
106
  object: Record<K, V>,
107
107
  ): Map<K, V> {
@@ -131,7 +131,7 @@ function mergeSerializedArray(
131
131
  }
132
132
 
133
133
  function mergeSerializedTSTLObject(
134
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
134
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
135
135
  oldObject: Map<AnyNotNil, unknown> | Set<AnyNotNil>,
136
136
  newTable: LuaMap<AnyNotNil, unknown>,
137
137
  traversalDescription: string,
@@ -91,9 +91,7 @@ export function getRoomDisplayFlags(
91
91
  roomGridIndex?: int,
92
92
  minimapAPI = true,
93
93
  ): BitFlags<DisplayFlag> {
94
- if (roomGridIndex === undefined) {
95
- roomGridIndex = getRoomGridIndex();
96
- }
94
+ roomGridIndex ??= getRoomGridIndex();
97
95
 
98
96
  if (MinimapAPI === undefined || !minimapAPI) {
99
97
  const roomDescriptor = getRoomDescriptor(roomGridIndex);
@@ -217,9 +215,7 @@ export function setRoomDisplayFlags(
217
215
  displayFlags: BitFlags<DisplayFlag>,
218
216
  updateVisibility = true,
219
217
  ): void {
220
- if (roomGridIndex === undefined) {
221
- roomGridIndex = getRoomGridIndex();
222
- }
218
+ roomGridIndex ??= getRoomGridIndex();
223
219
 
224
220
  if (MinimapAPI === undefined) {
225
221
  const roomDescriptor = getRoomDescriptor(roomGridIndex);
@@ -16,7 +16,7 @@ import { repeat } from "./utils";
16
16
  * const arrayWithArrays = newArray([0], 20); // Has 20 elements of an array with a 0 in it.
17
17
  * ```
18
18
  */
19
- // eslint-disable-next-line isaacscript/no-mutable-return
19
+ // eslint-disable-next-line complete/no-mutable-return
20
20
  export function newArray<T>(defaultValue: T, size: int): T[] {
21
21
  const array: T[] = [];
22
22
  repeat(size, () => {
@@ -41,16 +41,19 @@ export function getNextStage(): LevelStage {
41
41
  // Second, handle the special case of being in a specific off-grid room.
42
42
  switch (roomGridIndex) {
43
43
  // -8
44
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
44
45
  case GridRoom.BLUE_WOMB: {
45
46
  return LevelStage.BLUE_WOMB;
46
47
  }
47
48
 
48
49
  // -9
50
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
49
51
  case GridRoom.VOID: {
50
52
  return LevelStage.VOID;
51
53
  }
52
54
 
53
55
  // -10
56
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
54
57
  case GridRoom.SECRET_EXIT: {
55
58
  if (repentanceStage) {
56
59
  // e.g. From Downpour 2 to Mines 1, etc.
@@ -149,6 +152,7 @@ export function getNextStageType(upwards = false): StageType {
149
152
  }
150
153
 
151
154
  // Second, handle the special case of being in a specific off-grid room.
155
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
152
156
  if (roomGridIndex === GridRoom.SECRET_EXIT) {
153
157
  return calculateStageTypeRepentance(nextStage);
154
158
  }
@@ -41,7 +41,7 @@ export function defaultMapGetNPC<V, Args extends unknown[]>(
41
41
  * `mapSetNPC` helper function.
42
42
  */
43
43
  export function defaultMapSetNPC<V>(
44
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
44
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
45
45
  map: Map<PtrHash, V>,
46
46
  npc: EntityNPC,
47
47
  value: V,
@@ -54,7 +54,7 @@ export function defaultMapSetNPC<V>(
54
54
  * `Map.delete` method if you have a set of this type.
55
55
  */
56
56
  export function mapDeleteNPC(
57
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
57
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
58
58
  map: Map<PtrHash, unknown>,
59
59
  npc: EntityNPC,
60
60
  ): boolean {
@@ -123,7 +123,7 @@ export function mapHasNPC<V>(
123
123
  * ```
124
124
  */
125
125
  export function mapSetNPC<V>(
126
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
126
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
127
127
  map: Map<PtrHash, V>,
128
128
  npc: EntityNPC,
129
129
  value: V,
@@ -136,7 +136,7 @@ export function mapSetNPC<V>(
136
136
  * Helper function to make using sets with an type of `PtrHash` easier. Use this instead of the
137
137
  * `Set.add` method if you have a set of this type.
138
138
  */
139
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
139
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
140
140
  export function setAddNPC(set: Set<PtrHash>, npc: EntityNPC): void {
141
141
  const ptrHash = GetPtrHash(npc);
142
142
  set.add(ptrHash);
@@ -146,7 +146,7 @@ export function setAddNPC(set: Set<PtrHash>, npc: EntityNPC): void {
146
146
  * Helper function to make using sets with an type of `PtrHash` easier. Use this instead of the
147
147
  * `Set.delete` method if you have a set of this type.
148
148
  */
149
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
149
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
150
150
  export function setDeleteNPC(set: Set<PtrHash>, npc: EntityNPC): boolean {
151
151
  const ptrHash = GetPtrHash(npc);
152
152
  return set.delete(ptrHash);
@@ -132,6 +132,7 @@ export function isDaddyLongLegsChildStompEntity(npc: EntityNPC): boolean {
132
132
  export function isDyingDump(npc: EntityNPC): boolean {
133
133
  return (
134
134
  npc.Type === EntityType.DUMP &&
135
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
135
136
  npc.Variant === DumpVariant.DUMP &&
136
137
  npc.State === NPCState.SPECIAL
137
138
  );
@@ -145,6 +146,7 @@ export function isDyingDump(npc: EntityNPC): boolean {
145
146
  export function isDyingEggyWithNoSpidersLeft(npc: EntityNPC): boolean {
146
147
  return (
147
148
  npc.Type === EntityType.HOPPER &&
149
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
148
150
  npc.Variant === HopperVariant.EGGY &&
149
151
  npc.State === NPCState.SUICIDE &&
150
152
  npc.StateFrame >= EGGY_STATE_FRAME_OF_FINAL_SPIDER
@@ -160,6 +162,7 @@ export function isDyingEggyWithNoSpidersLeft(npc: EntityNPC): boolean {
160
162
  export function isRaglingDeathPatch(npc: EntityNPC): boolean {
161
163
  return (
162
164
  npc.Type === EntityType.RAGLING &&
165
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
163
166
  npc.Variant === RaglingVariant.RAG_MANS_RAGLING &&
164
167
  // They go to `STATE_SPECIAL` when they are patches on the ground.
165
168
  npc.State === NPCState.SPECIAL
@@ -315,9 +315,7 @@ export function setActiveItem(
315
315
  const primaryCharge = player.GetActiveCharge(ActiveSlot.PRIMARY);
316
316
  const secondaryCollectibleType = player.GetActiveItem(ActiveSlot.SECONDARY);
317
317
 
318
- if (charge === undefined) {
319
- charge = getCollectibleMaxCharges(collectibleType);
320
- }
318
+ charge ??= getCollectibleMaxCharges(collectibleType);
321
319
 
322
320
  if (!keepInPools) {
323
321
  itemPool.RemoveCollectible(collectibleType);
@@ -39,7 +39,7 @@ export function defaultMapGetPlayer<V, Args extends unknown[]>(
39
39
  * `mapSetPlayer` helper function.
40
40
  */
41
41
  export function defaultMapSetPlayer<V>(
42
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
42
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
43
43
  map: Map<PlayerIndex, V>,
44
44
  player: EntityPlayer,
45
45
  value: V,
@@ -52,7 +52,7 @@ export function defaultMapSetPlayer<V>(
52
52
  * `Map.delete` method if you have a set of this type.
53
53
  */
54
54
  export function mapDeletePlayer(
55
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
55
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
56
56
  map: Map<PlayerIndex, unknown>,
57
57
  player: EntityPlayer,
58
58
  ): boolean {
@@ -121,7 +121,7 @@ export function mapHasPlayer<V>(
121
121
  * ```
122
122
  */
123
123
  export function mapSetPlayer<V>(
124
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
124
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
125
125
  map: Map<PlayerIndex, V>,
126
126
  player: EntityPlayer,
127
127
  value: V,
@@ -135,7 +135,7 @@ export function mapSetPlayer<V>(
135
135
  * `Set.add` method if you have a set of this type.
136
136
  */
137
137
  export function setAddPlayer(
138
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
138
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
139
139
  set: Set<PlayerIndex>,
140
140
  player: EntityPlayer,
141
141
  ): void {
@@ -148,7 +148,7 @@ export function setAddPlayer(
148
148
  * `Set.delete` method if you have a set of this type.
149
149
  */
150
150
  export function setDeletePlayer(
151
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
151
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
152
152
  set: Set<PlayerIndex>,
153
153
  player: EntityPlayer,
154
154
  ): boolean {
@@ -112,9 +112,7 @@ export function findFreePosition(
112
112
  export function getEntityPositions(
113
113
  entities?: readonly Entity[],
114
114
  ): ReadonlyMap<PtrHash, Vector> {
115
- if (entities === undefined) {
116
- entities = getEntities();
117
- }
115
+ entities ??= getEntities();
118
116
 
119
117
  const entityPositions = new Map<PtrHash, Vector>();
120
118
  for (const entity of entities) {
@@ -137,9 +135,7 @@ export function getEntityPositions(
137
135
  export function getEntityVelocities(
138
136
  entities?: readonly Entity[],
139
137
  ): ReadonlyMap<PtrHash, Vector> {
140
- if (entities === undefined) {
141
- entities = getEntities();
142
- }
138
+ entities ??= getEntities();
143
139
 
144
140
  const entityVelocities = new Map<PtrHash, Vector>();
145
141
  for (const entity of entities) {
@@ -167,9 +163,7 @@ export function setEntityPositions(
167
163
  entityPositions: ReadonlyMap<PtrHash, Vector>,
168
164
  entities?: readonly Entity[],
169
165
  ): void {
170
- if (entities === undefined) {
171
- entities = getEntities();
172
- }
166
+ entities ??= getEntities();
173
167
 
174
168
  for (const entity of entities) {
175
169
  const ptrHash = GetPtrHash(entity);
@@ -197,9 +191,7 @@ export function setEntityVelocities(
197
191
  entityVelocities: ReadonlyMap<PtrHash, Vector>,
198
192
  entities?: readonly Entity[],
199
193
  ): void {
200
- if (entities === undefined) {
201
- entities = getEntities();
202
- }
194
+ entities ??= getEntities();
203
195
 
204
196
  for (const entity of entities) {
205
197
  const ptrHash = GetPtrHash(entity);
@@ -17,7 +17,8 @@ export type SerializedRNG = LuaMap<string, unknown> & {
17
17
  /**
18
18
  * This is the ShiftIdx that Blade recommended after having reviewing the game's internal functions.
19
19
  * Any value between 0 and 80 should work equally well.
20
- * https://www.jstatsoft.org/article/view/v008i14/xorshift.pdf
20
+ *
21
+ * @see https://www.jstatsoft.org/article/view/v008i14/xorshift.pdf
21
22
  */
22
23
  const RECOMMENDED_SHIFT_IDX = 35;
23
24
 
@@ -63,7 +64,7 @@ export function deserializeRNG(rng: SerializedRNG): RNG {
63
64
  * the game.
64
65
  */
65
66
  export function getRandomSeed(): Seed {
66
- const randomNumber = Random(); // eslint-disable-line deprecation/deprecation
67
+ const randomNumber = Random(); // eslint-disable-line @typescript-eslint/no-deprecated
67
68
  const safeRandomNumber = randomNumber === 0 ? 1 : randomNumber;
68
69
  return safeRandomNumber as Seed;
69
70
  }
@@ -171,6 +172,6 @@ export function setSeed(rng: RNG, seed: Seed): void {
171
172
  }
172
173
 
173
174
  // The game expects seeds in the range of 1 to 4294967295 (1^32 - 1).
174
- // eslint-disable-next-line deprecation/deprecation
175
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
175
176
  rng.SetSeed(seed, RECOMMENDED_SHIFT_IDX);
176
177
  }
@@ -65,9 +65,7 @@ export function getRoomData(roomGridIndex?: int): RoomConfig | undefined {
65
65
  export function getRoomDescriptor(roomGridIndex?: int): RoomDescriptor {
66
66
  const level = game.GetLevel();
67
67
 
68
- if (roomGridIndex === undefined) {
69
- roomGridIndex = getRoomGridIndex();
70
- }
68
+ roomGridIndex ??= getRoomGridIndex();
71
69
 
72
70
  return level.GetRoomByIdx(roomGridIndex);
73
71
  }
@@ -600,6 +600,7 @@ export function isAllRoomsClear(
600
600
  export function isAngelShop(roomData: RoomConfig): boolean {
601
601
  return (
602
602
  roomData.Type === RoomType.ANGEL &&
603
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
603
604
  roomData.Subtype === AngelRoomSubType.SHOP
604
605
  );
605
606
  }
@@ -615,6 +616,7 @@ export function isAngelShop(roomData: RoomConfig): boolean {
615
616
  export function isBeastRoom(roomData: RoomConfig): boolean {
616
617
  return (
617
618
  roomData.Type === RoomType.DUNGEON &&
619
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
618
620
  roomData.Subtype === DungeonSubType.BEAST_ROOM
619
621
  );
620
622
  }
@@ -635,6 +637,7 @@ export function isBossRoomOf(roomData: RoomConfig, bossID: BossID): boolean {
635
637
  return (
636
638
  roomData.Type === RoomType.BOSS &&
637
639
  roomData.StageID === StageID.SPECIAL_ROOMS &&
640
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
638
641
  roomData.Subtype === bossID
639
642
  );
640
643
  }
@@ -647,6 +650,7 @@ export function isBossRoomOf(roomData: RoomConfig, bossID: BossID): boolean {
647
650
  export function isCrawlSpace(roomData: RoomConfig): boolean {
648
651
  return (
649
652
  roomData.Type === RoomType.DUNGEON &&
653
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
650
654
  roomData.Subtype === DungeonSubType.NORMAL
651
655
  );
652
656
  }
@@ -669,7 +673,9 @@ export function isCrawlSpaceWithBlackMarketEntrance(
669
673
  export function isDeathCertificateArea(roomData: RoomConfig): boolean {
670
674
  return (
671
675
  roomData.StageID === StageID.HOME &&
676
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
672
677
  (roomData.Subtype === HomeRoomSubType.DEATH_CERTIFICATE_ENTRANCE ||
678
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
673
679
  roomData.Subtype === HomeRoomSubType.DEATH_CERTIFICATE_ITEMS)
674
680
  );
675
681
  }
@@ -704,6 +710,7 @@ export function isDogmaRoom(roomData: RoomConfig): boolean {
704
710
  roomData.StageID === StageID.HOME &&
705
711
  roomData.Type === RoomType.DEFAULT &&
706
712
  roomData.Variant === 1000 &&
713
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
707
714
  roomData.Subtype === HomeRoomSubType.LIVING_ROOM
708
715
  );
709
716
  }
@@ -729,6 +736,7 @@ export function isDoubleTrouble(roomData: RoomConfig): boolean {
729
736
  * Helper function to determine if the index of the provided room is equal to `GridRoom.GENESIS`.
730
737
  */
731
738
  export function isGenesisRoom(roomGridIndex: int): boolean {
739
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
732
740
  return roomGridIndex === GridRoom.GENESIS;
733
741
  }
734
742
 
@@ -741,7 +749,9 @@ export function isGenesisRoom(roomGridIndex: int): boolean {
741
749
  export function isHomeCloset(roomData: RoomConfig): boolean {
742
750
  return (
743
751
  roomData.StageID === StageID.HOME &&
752
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
744
753
  (roomData.Subtype === HomeRoomSubType.CLOSET_LEFT ||
754
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
745
755
  roomData.Subtype === HomeRoomSubType.CLOSET_RIGHT)
746
756
  );
747
757
  }
@@ -755,6 +765,7 @@ export function isLRoom(roomData: RoomConfig): boolean {
755
765
  * Helper function to determine if the index of the provided room is equal to `GridRoom.MEGA_SATAN`.
756
766
  */
757
767
  export function isMegaSatanRoom(roomGridIndex: int): boolean {
768
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
758
769
  return roomGridIndex === GridRoom.MEGA_SATAN;
759
770
  }
760
771
 
@@ -766,7 +777,7 @@ export function isMineShaft(roomData: RoomConfig): boolean {
766
777
  return (
767
778
  (roomData.StageID === StageID.MINES ||
768
779
  roomData.StageID === StageID.ASHPIT) &&
769
- // eslint-disable-next-line isaacscript/strict-enums
780
+ // eslint-disable-next-line complete/strict-enums
770
781
  MINE_SHAFT_ROOM_SUB_TYPE_SET.has(roomData.Subtype)
771
782
  );
772
783
  }
@@ -782,6 +793,7 @@ export function isMinibossRoomOf(
782
793
  return (
783
794
  roomData.Type === RoomType.MINI_BOSS &&
784
795
  roomData.StageID === StageID.SPECIAL_ROOMS &&
796
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
785
797
  roomData.Subtype === minibossID
786
798
  );
787
799
  }
@@ -795,6 +807,7 @@ export function isMirrorRoom(roomData: RoomConfig): boolean {
795
807
  roomData.Type === RoomType.DEFAULT &&
796
808
  (roomData.StageID === StageID.DOWNPOUR ||
797
809
  roomData.StageID === StageID.DROSS) &&
810
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
798
811
  roomData.Subtype === DownpourRoomSubType.MIRROR
799
812
  );
800
813
  }
@@ -828,6 +841,7 @@ export function isRoomType(
828
841
  * floor.
829
842
  */
830
843
  export function isSecretExit(roomGridIndex: int): boolean {
844
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
831
845
  return roomGridIndex === GridRoom.SECRET_EXIT;
832
846
  }
833
847
 
@@ -848,6 +862,7 @@ export function isSecretRoomType(roomType: RoomType): boolean {
848
862
  * the only way to detect them is by using the grid index.
849
863
  */
850
864
  export function isSecretShop(roomGridIndex: int): boolean {
865
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
851
866
  return roomGridIndex === GridRoom.SECRET_SHOP;
852
867
  }
853
868
 
@@ -10,7 +10,7 @@ import { isPrimitive } from "./types";
10
10
  * This function is variadic, meaning that you can specify N sets to add to the first set.
11
11
  */
12
12
  export function addSetsToSet<T>(
13
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
13
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
14
14
  mainSet: Set<T>,
15
15
  ...setsToAdd: ReadonlyArray<ReadonlySet<T>>
16
16
  ): void {
@@ -26,7 +26,7 @@ export function addSetsToSet<T>(
26
26
  *
27
27
  * This function is variadic, meaning that you can specify N sets.
28
28
  */
29
- // eslint-disable-next-line isaacscript/no-mutable-return
29
+ // eslint-disable-next-line complete/no-mutable-return
30
30
  export function combineSets<T>(...sets: ReadonlyArray<ReadonlySet<T>>): Set<T> {
31
31
  const newSet = new Set<T>();
32
32
  for (const set of sets) {
@@ -39,7 +39,7 @@ export function combineSets<T>(...sets: ReadonlyArray<ReadonlySet<T>>): Set<T> {
39
39
  }
40
40
 
41
41
  /** Helper function to copy a set. (You can also use a Set constructor to accomplish this task.) */
42
- // eslint-disable-next-line isaacscript/no-mutable-return
42
+ // eslint-disable-next-line complete/no-mutable-return
43
43
  export function copySet<T>(oldSet: ReadonlySet<T>): Set<T> {
44
44
  const newSet = new Set<T>();
45
45
  for (const value of oldSet) {
@@ -56,7 +56,7 @@ export function copySet<T>(oldSet: ReadonlySet<T>): Set<T> {
56
56
  * This function is variadic, meaning that you can specify N sets to remove from the first set.
57
57
  */
58
58
  export function deleteSetsFromSet<T>(
59
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
59
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
60
60
  mainSet: Set<T>,
61
61
  ...setsToRemove: ReadonlyArray<ReadonlySet<T>>
62
62
  ): void {
@@ -123,7 +123,7 @@ export function getSetCombinations<T extends number | string>(
123
123
  * Normally, set values are returned in insertion order, so use this function when the ordering of
124
124
  * the contents is important.
125
125
  */
126
- // eslint-disable-next-line isaacscript/no-mutable-return
126
+ // eslint-disable-next-line complete/no-mutable-return
127
127
  export function getSortedSetValues<T extends number | string>(
128
128
  set: ReadonlySet<T>,
129
129
  ): T[] {
@@ -167,7 +167,7 @@ export function objectKeysToReadonlySet<K extends string | number | symbol, V>(
167
167
  *
168
168
  * Also see the `objectKeysToReadonlySet` function.
169
169
  */
170
- // eslint-disable-next-line isaacscript/no-mutable-return
170
+ // eslint-disable-next-line complete/no-mutable-return
171
171
  export function objectKeysToSet<K extends string | number | symbol, V>(
172
172
  object: Record<K, V>,
173
173
  ): Set<K> {
@@ -203,7 +203,7 @@ export function objectValuesToReadonlySet<
203
203
  *
204
204
  * Also see the `objectValuesToReadonlySet` function.
205
205
  */
206
- // eslint-disable-next-line isaacscript/no-mutable-return
206
+ // eslint-disable-next-line complete/no-mutable-return
207
207
  export function objectValuesToSet<K extends string | number | symbol, V>(
208
208
  object: Record<K, V>,
209
209
  ): Set<V> {
@@ -222,7 +222,7 @@ export function objectValuesToSet<K extends string | number | symbol, V>(
222
222
  *
223
223
  * This function is variadic, meaning that you can pass as many things as you want to add.
224
224
  */
225
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
225
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
226
226
  export function setAdd<T>(set: Set<T>, ...elements: readonly T[]): void {
227
227
  for (const element of elements) {
228
228
  set.add(element);
@@ -149,9 +149,9 @@ export function sortTwoDimensionalArray<T>(
149
149
  *
150
150
  * Under the hood, this uses the merge sort algorithm.
151
151
  */
152
- // eslint-disable-next-line isaacscript/no-mutable-return
152
+ // eslint-disable-next-line complete/no-mutable-return
153
153
  export function stableSort<T>(
154
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
154
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
155
155
  array: T[],
156
156
  sortFunc: (a: T, b: T) => -1 | 0 | 1 = sortNormal,
157
157
  ): T[] {
@@ -24,13 +24,8 @@ export function getMusicForStage(
24
24
  ): Music {
25
25
  const level = game.GetLevel();
26
26
 
27
- if (stage === undefined) {
28
- stage = level.GetStage();
29
- }
30
-
31
- if (stageType === undefined) {
32
- stageType = level.GetStageType();
33
- }
27
+ stage ??= level.GetStage();
28
+ stageType ??= level.GetStageType();
34
29
 
35
30
  const stageTypeToMusic = STAGE_TO_MUSIC[stage];
36
31
  return stageTypeToMusic[stageType];
@@ -44,9 +44,7 @@ export function spawnCollectible(
44
44
  forceFreeItem = false,
45
45
  spawner?: Entity,
46
46
  ): EntityPickupCollectible {
47
- if (seedOrRNG === undefined) {
48
- seedOrRNG = getRandomSeed();
49
- }
47
+ seedOrRNG ??= getRandomSeed();
50
48
 
51
49
  const seed = isRNG(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
52
50
  const collectible = spawnPickupWithSeed(
@@ -133,13 +133,8 @@ export function getLevelName(
133
133
  ): string {
134
134
  const level = game.GetLevel();
135
135
 
136
- if (stage === undefined) {
137
- stage = level.GetStage();
138
- }
139
-
140
- if (stageType === undefined) {
141
- stageType = level.GetStageType();
142
- }
136
+ stage ??= level.GetStage();
137
+ stageType ??= level.GetStageType();
143
138
 
144
139
  const stageID = getStageID(stage, stageType);
145
140
  const stageIDName = getStageIDName(stageID);
@@ -195,13 +190,8 @@ export function getStage(): LevelStage {
195
190
  export function getStageID(stage?: LevelStage, stageType?: StageType): StageID {
196
191
  const level = game.GetLevel();
197
192
 
198
- if (stage === undefined) {
199
- stage = level.GetStage();
200
- }
201
-
202
- if (stageType === undefined) {
203
- stageType = level.GetStageType();
204
- }
193
+ stage ??= level.GetStage();
194
+ stageType ??= level.GetStageType();
205
195
 
206
196
  if (game.IsGreedMode()) {
207
197
  const stageTypeToStageID = STAGE_TO_STAGE_ID_GREED_MODE.get(stage);
@@ -69,9 +69,7 @@ export function getMysteriousPaperEffectForFrame(
69
69
  player: EntityPlayer,
70
70
  frameCount?: int,
71
71
  ): MysteriousPaperEffect | undefined {
72
- if (frameCount === undefined) {
73
- frameCount = player.FrameCount;
74
- }
72
+ frameCount ??= player.FrameCount;
75
73
 
76
74
  if (!player.HasTrinket(TrinketType.MYSTERIOUS_PAPER)) {
77
75
  return undefined;
@@ -45,10 +45,10 @@ export function getTSTLClassName(object: unknown): string | undefined {
45
45
  }
46
46
 
47
47
  /**
48
- * Helper function to determine if a given object is a TypeScriptToLua `Map`.
48
+ * Helper function to determine if a given object is a `DefaultMap` from `isaacscript-common`.
49
49
  *
50
50
  * It is not reliable to use the `instanceof` operator to determine this because each Lua module has
51
- * their own copies of the entire lualib and thus their own instantiated version of a `Map`.
51
+ * their own copies of the entire lualib and thus their own instantiated version of a `DefaultMap`.
52
52
  */
53
53
  export function isDefaultMap(
54
54
  object: unknown,