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
@@ -203,21 +203,21 @@ function copiedObjectHasNoReferencesForArray() {
203
203
  error("The copied object does not have an equal array.");
204
204
  }
205
205
 
206
- oldObject.abc[0]++;
206
+ oldObject.abc[0]!++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
207
207
  if (arrayEquals(oldObject.abc, newObject.abc)) {
208
208
  error(
209
209
  "The copied object has an equal array after a modification to the old array.",
210
210
  );
211
211
  }
212
- oldObject.abc[0]--;
212
+ oldObject.abc[0]!--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
213
213
 
214
- newObject.abc[0]++;
214
+ newObject.abc[0]!++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
215
215
  if (arrayEquals(oldObject.abc, newObject.abc)) {
216
216
  error(
217
217
  "The copied object has an equal array after a modification to the new array.",
218
218
  );
219
219
  }
220
- newObject.abc[0]--;
220
+ newObject.abc[0]!--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
221
221
  }
222
222
 
223
223
  function copiedObjectHasChildObject() {
@@ -326,9 +326,9 @@ export function getUnusedDoorSlots(): readonly DoorSlot[] {
326
326
  return DOOR_SLOT_VALUES.filter(
327
327
  (doorSlot) =>
328
328
  // We need to filter out the -1 value to prevent crashes.
329
- doorSlot !== DoorSlot.NO_DOOR_SLOT &&
330
- room.IsDoorSlotAllowed(doorSlot) &&
331
- room.GetDoor(doorSlot) === undefined,
329
+ doorSlot !== DoorSlot.NO_DOOR_SLOT
330
+ && room.IsDoorSlotAllowed(doorSlot)
331
+ && room.GetDoor(doorSlot) === undefined,
332
332
  );
333
333
  }
334
334
 
@@ -377,6 +377,7 @@ export function isAngelRoomDoor(door: GridEntityDoor): boolean {
377
377
  * Room.)
378
378
  */
379
379
  export function isBlueWombDoor(door: GridEntityDoor): boolean {
380
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
380
381
  return door.TargetRoomIndex === GridRoom.BLUE_WOMB;
381
382
  }
382
383
 
@@ -385,6 +386,7 @@ export function isBlueWombDoor(door: GridEntityDoor): boolean {
385
386
  * vanilla, the door will only appear in the Boss Room of the sixth floor.)
386
387
  */
387
388
  export function isBossRushDoor(door: GridEntityDoor): boolean {
389
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
388
390
  return door.TargetRoomIndex === GridRoom.BOSS_RUSH;
389
391
  }
390
392
 
@@ -493,6 +495,7 @@ export function isHiddenSecretRoomDoor(door: GridEntityDoor): boolean {
493
495
  * (In vanilla, the door will only appear in the starting room of The Chest / Dark Room.)
494
496
  */
495
497
  export function isMegaSatanDoor(door: GridEntityDoor): boolean {
498
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
496
499
  return door.TargetRoomIndex === GridRoom.MEGA_SATAN;
497
500
  }
498
501
 
@@ -501,6 +504,7 @@ export function isMegaSatanDoor(door: GridEntityDoor): boolean {
501
504
  * you to the Repentance floor.
502
505
  */
503
506
  export function isRepentanceDoor(door: GridEntityDoor): boolean {
507
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
504
508
  return door.TargetRoomIndex === GridRoom.SECRET_EXIT;
505
509
  }
506
510
 
@@ -525,6 +529,7 @@ export function isSecretRoomDoor(door: GridEntityDoor): boolean {
525
529
  * contains the portal to The Void. (In vanilla, the door will only appear in the Hush Boss Room.)
526
530
  */
527
531
  export function isVoidDoor(door: GridEntityDoor): boolean {
532
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
528
533
  return door.TargetRoomIndex === GridRoom.VOID;
529
534
  }
530
535
 
@@ -158,8 +158,8 @@ export function easeInOutElastic(time: number): number {
158
158
  ? 1
159
159
  : time < 0.5
160
160
  ? -(2 ** (20 * time - 10) * Math.sin((20 * time - 11.125) * c5)) / 2
161
- : (2 ** (-20 * time + 10) * Math.sin((20 * time - 11.125) * c5)) / 2 +
162
- 1;
161
+ : (2 ** (-20 * time + 10) * Math.sin((20 * time - 11.125) * c5)) / 2
162
+ + 1;
163
163
  }
164
164
 
165
165
  /**
@@ -44,9 +44,9 @@ function emptyRoomEntities() {
44
44
  }
45
45
 
46
46
  if (
47
- entity.HasEntityFlags(EntityFlag.CHARM) ||
48
- entity.HasEntityFlags(EntityFlag.FRIENDLY) ||
49
- entity.HasEntityFlags(EntityFlag.PERSISTENT)
47
+ entity.HasEntityFlags(EntityFlag.CHARM)
48
+ || entity.HasEntityFlags(EntityFlag.FRIENDLY)
49
+ || entity.HasEntityFlags(EntityFlag.PERSISTENT)
50
50
  ) {
51
51
  continue;
52
52
  }
@@ -74,8 +74,8 @@ export function emptyRoomGridEntities(): void {
74
74
  // We cannot simply check if the grid entity type is equal to a wall because other mods use
75
75
  // walls as a base for custom grid entities.
76
76
  if (
77
- gridEntityType === GridEntityType.WALL &&
78
- isVanillaWallGridIndex(gridIndex)
77
+ gridEntityType === GridEntityType.WALL
78
+ && isVanillaWallGridIndex(gridIndex)
79
79
  ) {
80
80
  continue;
81
81
  }
@@ -149,8 +149,8 @@ export function getClosestEntityTo<T extends AnyEntity>(
149
149
  const distance = referenceEntity.Position.Distance(entity.Position);
150
150
 
151
151
  if (
152
- distance < closestDistance &&
153
- (filterFunc === undefined || filterFunc(entity))
152
+ distance < closestDistance
153
+ && (filterFunc === undefined || filterFunc(entity))
154
154
  ) {
155
155
  closestEntity = entity;
156
156
  closestDistance = distance;
@@ -425,6 +425,7 @@ export function isActiveEnemy(entity: Entity): boolean {
425
425
 
426
426
  // 912
427
427
  case EntityType.MOTHER: {
428
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
428
429
  if (entity.Variant === MotherVariant.MOTHER_1) {
429
430
  const npc = entity.ToNPC();
430
431
  if (npc !== undefined && npc.State === NPCState.SPECIAL) {
@@ -441,7 +442,7 @@ export function isActiveEnemy(entity: Entity): boolean {
441
442
  }
442
443
  }
443
444
 
444
- // eslint-disable-next-line deprecation/deprecation
445
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
445
446
  return entity.IsActiveEnemy(false);
446
447
  }
447
448
 
@@ -478,9 +479,9 @@ export function parseEntityID(
478
479
  const [entityTypeString, variantString, subTypeString] = entityIDArray;
479
480
 
480
481
  if (
481
- entityTypeString === undefined ||
482
- variantString === undefined ||
483
- subTypeString === undefined
482
+ entityTypeString === undefined
483
+ || variantString === undefined
484
+ || subTypeString === undefined
484
485
  ) {
485
486
  return undefined;
486
487
  }
@@ -490,9 +491,9 @@ export function parseEntityID(
490
491
  const subType = parseIntSafe(subTypeString);
491
492
 
492
493
  if (
493
- entityType === undefined ||
494
- variant === undefined ||
495
- subType === undefined
494
+ entityType === undefined
495
+ || variant === undefined
496
+ || subType === undefined
496
497
  ) {
497
498
  return undefined;
498
499
  }
@@ -679,9 +680,7 @@ export function spawn(
679
680
  ? positionOrGridIndex
680
681
  : room.GetGridPosition(positionOrGridIndex);
681
682
 
682
- if (seedOrRNG === undefined) {
683
- seedOrRNG = newRNG();
684
- }
683
+ seedOrRNG ??= newRNG();
685
684
 
686
685
  const seed = isRNG(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
687
686
  return game.Spawn(
@@ -230,7 +230,7 @@ export function getRandomEnumValue<T extends TranspiledEnum>(
230
230
  * `satisfies` operator with the `Record` type instead.
231
231
  */
232
232
  export function interfaceSatisfiesEnum<
233
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
233
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters
234
234
  T extends Record<Enum, unknown>,
235
235
  Enum extends string | number,
236
236
  >(): void {} // eslint-disable-line @typescript-eslint/no-empty-function
@@ -277,9 +277,9 @@ export function validateCustomEnum(
277
277
  *
278
278
  * This is useful to automate checking large enums for typos.
279
279
  */
280
- export function validateEnumContiguous<T extends TranspiledEnum>(
280
+ export function validateEnumContiguous(
281
281
  transpiledEnumName: string,
282
- transpiledEnum: T,
282
+ transpiledEnum: TranspiledEnum,
283
283
  ): void {
284
284
  const values = getEnumValues(transpiledEnum);
285
285
  const lastValue = values.at(-1);
@@ -296,7 +296,7 @@ export function validateEnumContiguous<T extends TranspiledEnum>(
296
296
 
297
297
  const valuesSet = new ReadonlySet(values);
298
298
  for (const value of iRange(lastValue)) {
299
- if (!valuesSet.has(value as unknown as T[keyof T])) {
299
+ if (!valuesSet.has(value)) {
300
300
  error(
301
301
  `Failed to find a custom enum value of ${value} for: ${transpiledEnumName}`,
302
302
  );
@@ -146,8 +146,8 @@ export function getSirenHelper(familiar: EntityFamiliar): Entity | undefined {
146
146
  const sirenHelpers = getEntities(EntityType.SIREN_HELPER);
147
147
  return sirenHelpers.find(
148
148
  (sirenHelper) =>
149
- sirenHelper.Target !== undefined &&
150
- GetPtrHash(sirenHelper.Target) === familiarPtrHash,
149
+ sirenHelper.Target !== undefined
150
+ && GetPtrHash(sirenHelper.Target) === familiarPtrHash,
151
151
  );
152
152
  }
153
153
 
@@ -115,7 +115,7 @@ export function hasFlag<T extends BitFlag | BitFlag128>(
115
115
  * (This is equivalent to checking if the flag is equal to 0, but this is not possible without
116
116
  * casting the flag to a number.)
117
117
  */
118
- export function isEmptyFlag<T extends BitFlag | BitFlag128>(flag: T): boolean {
118
+ export function isEmptyFlag(flag: BitFlag | BitFlag128): boolean {
119
119
  return flag === 0;
120
120
  }
121
121
 
@@ -129,9 +129,9 @@ export function isSelfDamage(
129
129
  ): boolean {
130
130
  return (
131
131
  // Exclude self-damage from e.g. Curse Room door spikes.
132
- hasFlag(damageFlags, DamageFlag.NO_PENALTIES) ||
132
+ hasFlag(damageFlags, DamageFlag.NO_PENALTIES)
133
133
  // Exclude self-damage from e.g. Razor.
134
- hasFlag(damageFlags, DamageFlag.RED_HEARTS)
134
+ || hasFlag(damageFlags, DamageFlag.RED_HEARTS)
135
135
  );
136
136
  }
137
137
 
@@ -220,8 +220,7 @@ export function getNewGlobals(): ReadonlyArray<[AnyNotNil, unknown]> {
220
220
  const newGlobals: Array<[AnyNotNil, unknown]> = [];
221
221
  for (const [key, value] of pairs(_G)) {
222
222
  if (!defaultGlobals.has(key)) {
223
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
224
- const keyValueTuple: [AnyNotNil, unknown] = [key, value as any];
223
+ const keyValueTuple: [AnyNotNil, unknown] = [key, value];
225
224
  newGlobals.push(keyValueTuple);
226
225
  }
227
226
  }
@@ -256,7 +255,7 @@ export function setLogFunctionsGlobal(): void {
256
255
  const globals = _G as Record<string, unknown>;
257
256
 
258
257
  for (const exports of [logExports, logMiscExports, logEntitiesExports]) {
259
- // eslint-disable-next-line isaacscript/no-object-any
258
+ // eslint-disable-next-line complete/no-object-any
260
259
  for (const [logFuncName, logFunc] of Object.entries(exports)) {
261
260
  globals[logFuncName] = logFunc;
262
261
  }
@@ -110,8 +110,8 @@ export function doesGridEntityExist(
110
110
  const thisGridEntityType = gridEntity.GetType();
111
111
  const thisVariant = gridEntity.GetVariant();
112
112
  return (
113
- gridEntityType === thisGridEntityType &&
114
- (variant === -1 || variant === thisVariant)
113
+ gridEntityType === thisGridEntityType
114
+ && (variant === -1 || variant === thisVariant)
115
115
  );
116
116
  });
117
117
  }
@@ -150,8 +150,8 @@ export function getCollidingEntitiesWithGridEntity(
150
150
 
151
151
  return closeEntities.filter(
152
152
  (entity) =>
153
- entity.CollidesWithGrid() &&
154
- isCircleIntersectingRectangle(
153
+ entity.CollidesWithGrid()
154
+ && isCircleIntersectingRectangle(
155
155
  entity.Position,
156
156
  // We arbitrarily add 0.1 to account for entities that are already pushed back by the time
157
157
  // the `POST_UPDATE` callback fires.
@@ -791,8 +791,8 @@ export function isGridEntityBreakableByExplosion(
791
791
  const gridEntityTypeVariant = `${gridEntityType}.${variant}`;
792
792
 
793
793
  return (
794
- BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS.has(gridEntityType) ||
795
- BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS.has(
794
+ BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS.has(gridEntityType)
795
+ || BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS.has(
796
796
  gridEntityTypeVariant,
797
797
  )
798
798
  );
@@ -816,7 +816,7 @@ export function isGridEntityBroken(gridEntity: GridEntity): boolean {
816
816
  * the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
817
817
  */
818
818
  export function isGridEntityXMLType(num: number): num is GridEntityXMLType {
819
- return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line isaacscript/strict-enums
819
+ return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line complete/strict-enums
820
820
  }
821
821
 
822
822
  /**
@@ -860,9 +860,10 @@ export function isPostBossVoidPortal(gridEntity: GridEntity): boolean {
860
860
  const saveState = gridEntity.GetSaveState();
861
861
 
862
862
  return (
863
- saveState.Type === GridEntityType.TRAPDOOR &&
864
- saveState.Variant === TrapdoorVariant.VOID_PORTAL &&
865
- saveState.VarData === 1
863
+ saveState.Type === GridEntityType.TRAPDOOR
864
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
865
+ && saveState.Variant === TrapdoorVariant.VOID_PORTAL
866
+ && saveState.VarData === 1
866
867
  );
867
868
  }
868
869
 
@@ -953,8 +954,8 @@ export function removeEntitiesSpawnedFromGridEntity(
953
954
  ): void {
954
955
  const entitiesFromGridEntity = entities.filter(
955
956
  (entity) =>
956
- entity.FrameCount === 0 &&
957
- vectorEquals(entity.Position, gridEntity.Position),
957
+ entity.FrameCount === 0
958
+ && vectorEquals(entity.Position, gridEntity.Position),
958
959
  );
959
960
  removeEntities(entitiesFromGridEntity);
960
961
  }
@@ -1042,6 +1043,7 @@ export function removeGridEntity(
1042
1043
  // corresponding effect.
1043
1044
  if (gridEntityType === GridEntityType.STATUE) {
1044
1045
  const effectVariant =
1046
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
1045
1047
  variant === StatueVariant.DEVIL
1046
1048
  ? EffectVariant.DEVIL
1047
1049
  : EffectVariant.ANGEL;
@@ -1145,18 +1147,22 @@ export function spawnGiantPoop(topLeftGridIndex: int): boolean {
1145
1147
  );
1146
1148
 
1147
1149
  return (
1148
- topLeft !== undefined &&
1149
- topLeft.GetType() === GridEntityType.POOP &&
1150
- topLeft.GetVariant() === PoopGridEntityVariant.GIANT_TOP_LEFT &&
1151
- topRight !== undefined &&
1152
- topRight.GetType() === GridEntityType.POOP &&
1153
- topRight.GetVariant() === PoopGridEntityVariant.GIANT_TOP_RIGHT &&
1154
- bottomLeft !== undefined &&
1155
- bottomLeft.GetType() === GridEntityType.POOP &&
1156
- bottomLeft.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_LEFT &&
1157
- bottomRight !== undefined &&
1158
- bottomRight.GetType() === GridEntityType.POOP &&
1159
- bottomRight.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_RIGHT
1150
+ topLeft !== undefined
1151
+ && topLeft.GetType() === GridEntityType.POOP
1152
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
1153
+ && topLeft.GetVariant() === PoopGridEntityVariant.GIANT_TOP_LEFT
1154
+ && topRight !== undefined
1155
+ && topRight.GetType() === GridEntityType.POOP
1156
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
1157
+ && topRight.GetVariant() === PoopGridEntityVariant.GIANT_TOP_RIGHT
1158
+ && bottomLeft !== undefined
1159
+ && bottomLeft.GetType() === GridEntityType.POOP
1160
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
1161
+ && bottomLeft.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_LEFT
1162
+ && bottomRight !== undefined
1163
+ && bottomRight.GetType() === GridEntityType.POOP
1164
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
1165
+ && bottomRight.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_RIGHT
1160
1166
  );
1161
1167
  }
1162
1168
 
@@ -97,8 +97,8 @@ export function getPressurePlates(
97
97
  if (pressurePlate !== undefined) {
98
98
  const thisPressurePlateVariant = pressurePlate.GetVariant();
99
99
  if (
100
- pressurePlateVariant === -1 ||
101
- pressurePlateVariant === thisPressurePlateVariant
100
+ pressurePlateVariant === -1
101
+ || pressurePlateVariant === thisPressurePlateVariant
102
102
  ) {
103
103
  pressurePlates.push(pressurePlate);
104
104
  }
@@ -83,8 +83,8 @@ export function isIsaacAPIClassOfType(
83
83
  ): boolean {
84
84
  const isaacAPIClassType = getIsaacAPIClassName(object);
85
85
  return (
86
- isaacAPIClassType === classType ||
87
- isaacAPIClassType === `const ${classType}`
86
+ isaacAPIClassType === classType
87
+ || isaacAPIClassType === `const ${classType}`
88
88
  );
89
89
  }
90
90
 
@@ -13,19 +13,21 @@ function tryEncode(this: void, luaTable: unknown) {
13
13
  * Converts a JSON string to a Lua table.
14
14
  *
15
15
  * In most cases, this function will be used for reading data from a "save#.dat" file. If decoding
16
- * fails, it will return a blank Lua table instead of throwing an error. (This allows execution to
17
- * continue in cases where users have no current save data or have manually removed their existing
18
- * save data.)
16
+ * fails, it will return undefined instead of throwing an error. (This allows execution to continue
17
+ * in cases where users have no current save data or have manually removed their existing save
18
+ * data.)
19
19
  *
20
20
  * Under the hood, this uses a custom JSON parser that was measured to be 11.8 times faster than the
21
21
  * vanilla JSON parser.
22
22
  */
23
- export function jsonDecode(jsonString: string): LuaMap<AnyNotNil, unknown> {
23
+ export function jsonDecode(
24
+ jsonString: string,
25
+ ): LuaMap<AnyNotNil, unknown> | undefined {
24
26
  const [ok, luaTableOrErrMsg] = pcall(tryDecode, jsonString);
25
27
  if (!ok) {
26
28
  // Instead of throwing an error, continue execution of the callback.
27
29
  logError(`Failed to convert the JSON string to a Lua table: ${jsonString}`);
28
- return new LuaMap();
30
+ return undefined;
29
31
  }
30
32
 
31
33
  return luaTableOrErrMsg;
@@ -44,9 +44,9 @@ export function getLevelBossIDs(): readonly BossID[] {
44
44
  const roomsInsideGrid = getRoomsInsideGrid();
45
45
 
46
46
  return filterMap(roomsInsideGrid, (roomDescriptor) =>
47
- roomDescriptor.Data !== undefined &&
48
- roomDescriptor.Data.Type === RoomType.BOSS &&
49
- roomDescriptor.Data.StageID === StageID.SPECIAL_ROOMS
47
+ roomDescriptor.Data !== undefined
48
+ && roomDescriptor.Data.Type === RoomType.BOSS
49
+ && roomDescriptor.Data.StageID === StageID.SPECIAL_ROOMS
50
50
  ? roomDescriptor.Data.Subtype
51
51
  : undefined,
52
52
  );
@@ -247,10 +247,10 @@ export function getNewRoomCandidatesForLevel(
247
247
  // However, we want to filter out special rooms because they are supposed to be dead ends.
248
248
  const normalRooms = roomsInsideGrid.filter(
249
249
  (room) =>
250
- room.Data !== undefined &&
251
- room.Data.Type === RoomType.DEFAULT &&
252
- !isMirrorRoom(room.Data) && // Mirror rooms do not count as special rooms.
253
- !isMineShaft(room.Data), // Mineshaft rooms do not count as special rooms.
250
+ room.Data !== undefined
251
+ && room.Data.Type === RoomType.DEFAULT
252
+ && !isMirrorRoom(room.Data) // Mirror rooms do not count as special rooms.
253
+ && !isMineShaft(room.Data), // Mineshaft rooms do not count as special rooms.
254
254
  );
255
255
 
256
256
  const roomsToLookThrough = ensureDeadEnd ? normalRooms : roomsInsideGrid;
@@ -325,8 +325,8 @@ export function getRoomDescriptorsForType(
325
325
  const roomsInsideGrid = getRoomsInsideGrid();
326
326
  return roomsInsideGrid.filter(
327
327
  (roomDescriptor) =>
328
- roomDescriptor.Data !== undefined &&
329
- roomTypesSet.has(roomDescriptor.Data.Type),
328
+ roomDescriptor.Data !== undefined
329
+ && roomTypesSet.has(roomDescriptor.Data.Type),
330
330
  );
331
331
  }
332
332
 
@@ -531,9 +531,7 @@ export function isRedKeyRoom(roomGridIndex: int): boolean {
531
531
  * @param roomGridIndex Optional. Default is the current room index.
532
532
  */
533
533
  export function isRoomInsideGrid(roomGridIndex?: int): boolean {
534
- if (roomGridIndex === undefined) {
535
- roomGridIndex = getRoomGridIndex();
536
- }
534
+ roomGridIndex ??= getRoomGridIndex();
537
535
 
538
536
  return roomGridIndex >= 0 && roomGridIndex <= MAX_LEVEL_GRID_INDEX;
539
537
  }
@@ -567,9 +565,8 @@ export function newRoom(
567
565
  ): int | undefined {
568
566
  const level = game.GetLevel();
569
567
 
570
- if (seedOrRNG === undefined) {
571
- seedOrRNG = level.GetDungeonPlacementSeed();
572
- }
568
+ seedOrRNG ??= level.GetDungeonPlacementSeed();
569
+
573
570
  const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
574
571
 
575
572
  const newRoomCandidate = getNewRoomCandidate(rng, ensureDeadEnd);
@@ -56,9 +56,9 @@ export function logAllEntities(
56
56
 
57
57
  const effect = entity.ToEffect();
58
58
  if (
59
- !includeBackgroundEffects &&
60
- effect !== undefined &&
61
- IGNORE_EFFECT_VARIANTS.has(effect.Variant)
59
+ !includeBackgroundEffects
60
+ && effect !== undefined
61
+ && IGNORE_EFFECT_VARIANTS.has(effect.Variant)
62
62
  ) {
63
63
  continue;
64
64
  }
@@ -109,16 +109,16 @@ export function logAllGridEntities(
109
109
 
110
110
  // If a filter was specified, exclude all entities outside of the filter.
111
111
  if (
112
- gridEntityTypeFilter !== undefined &&
113
- gridEntityType !== gridEntityTypeFilter
112
+ gridEntityTypeFilter !== undefined
113
+ && gridEntityType !== gridEntityTypeFilter
114
114
  ) {
115
115
  continue;
116
116
  }
117
117
 
118
118
  if (
119
- !includeWalls &&
120
- gridEntityType === GridEntityType.WALL &&
121
- gridEntityTypeFilter !== GridEntityType.WALL
119
+ !includeWalls
120
+ && gridEntityType === GridEntityType.WALL
121
+ && gridEntityTypeFilter !== GridEntityType.WALL
122
122
  ) {
123
123
  continue;
124
124
  }
@@ -222,8 +222,11 @@ function getEntityLogLine(this: void, entity: Entity, num?: int): string {
222
222
  msg += ` - Position: (${entity.Position.X}, ${entity.Position.Y})\n`;
223
223
  msg += ` - Velocity: (${entity.Velocity.X}, ${entity.Velocity.Y})\n`;
224
224
  msg += ` - HP: ${entity.HitPoints} / ${entity.MaxHitPoints}\n`;
225
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
225
226
  msg += ` - Parent: ${entity.Parent}\n`;
227
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
226
228
  msg += ` - Child: ${entity.Child}\n`;
229
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
227
230
  msg += ` - SpawnerEntity: ${entity.SpawnerEntity}\n`;
228
231
  msg += ` - SpawnerType / SpawnerVariant: ${entity.SpawnerType}.${entity.SpawnerVariant}\n`;
229
232
  msg += ` - FrameCount: ${entity.FrameCount}\n`;
@@ -51,11 +51,13 @@ import { vectorToString } from "./vector";
51
51
  * @param array The array to log.
52
52
  * @param name Optional. The name of the array, which will be logged before the elements.
53
53
  */
54
- export function logArray<T>(
54
+ export function logArray(
55
55
  this: void,
56
- array: readonly T[],
56
+ array: readonly unknown[],
57
57
  name?: string,
58
58
  ): void {
59
+ name ??= "array";
60
+
59
61
  // We do not assume the given array has contiguous values in order to be more permissive about the
60
62
  // kinds of arrays that will successfully log without a run-time error.
61
63
  if (!isArray(array, false)) {
@@ -64,9 +66,6 @@ export function logArray<T>(
64
66
  }
65
67
 
66
68
  const arrayString = arrayToString(array);
67
- if (name === undefined) {
68
- name = "array";
69
- }
70
69
  log(`Logging ${name}: ${arrayString}`);
71
70
  }
72
71
 
@@ -81,9 +80,7 @@ export function logCollectibleTypes(
81
80
  collectibleTypes: readonly CollectibleType[],
82
81
  name?: string,
83
82
  ): void {
84
- if (name === undefined) {
85
- name = "collectibles";
86
- }
83
+ name ??= "collectibles";
87
84
 
88
85
  log(`Logging ${name}:`);
89
86
 
@@ -102,9 +99,7 @@ export function logCollectibleTypes(
102
99
  * @param name Optional. The name of the object, which will be logged before the properties.
103
100
  */
104
101
  export function logColor(this: void, color: Color, name?: string): void {
105
- if (name === undefined) {
106
- name = "color";
107
- }
102
+ name ??= "color";
108
103
 
109
104
  log(
110
105
  `Logging ${name}: R${color.R}, G${color.G}, B${color.B}, A${color.A}, RO${color.RO}, BO${color.BO}, GO${color.GO}`,
@@ -199,9 +194,7 @@ export function logItemPoolTypes(
199
194
  itemPoolTypes: readonly ItemPoolType[],
200
195
  name?: string,
201
196
  ): void {
202
- if (name === undefined) {
203
- name = "item pool types";
204
- }
197
+ name ??= "item pool types";
205
198
 
206
199
  log(`Logging ${name}:`);
207
200
 
@@ -220,9 +213,7 @@ export function logItemPoolTypes(
220
213
  * @param name Optional. The name of the object, which will be logged before the properties.
221
214
  */
222
215
  export function logKColor(this: void, kColor: KColor, name?: string): void {
223
- if (name === undefined) {
224
- name = "KColor";
225
- }
216
+ name ??= "KColor";
226
217
 
227
218
  log(
228
219
  `Logging ${name}: R${kColor.Red}, G${kColor.Green}, B${kColor.Blue}, A${kColor.Alpha}`,
@@ -647,9 +638,7 @@ export function logVector(
647
638
  name?: string,
648
639
  round = false,
649
640
  ): void {
650
- if (name === undefined) {
651
- name = "vector";
652
- }
641
+ name ??= "vector";
653
642
 
654
643
  const vectorString = vectorToString(vector, round);
655
644
  log(`Logging ${name}: ${vectorString}`);
@@ -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> {
@@ -62,10 +62,10 @@ export function inRectangle(
62
62
  bottomRight: Vector,
63
63
  ): boolean {
64
64
  return (
65
- position.X >= topLeft.X &&
66
- position.X <= bottomRight.X &&
67
- position.Y >= topLeft.Y &&
68
- position.Y <= bottomRight.Y
65
+ position.X >= topLeft.X
66
+ && position.X <= bottomRight.X
67
+ && position.Y >= topLeft.Y
68
+ && position.Y <= bottomRight.Y
69
69
  );
70
70
  }
71
71