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
@@ -60,18 +60,18 @@ export class GameReorderedCallbacks extends Feature {
60
60
  [ModCallback.POST_PLAYER_INIT, this.postPlayerInit],
61
61
 
62
62
  // 15
63
- // eslint-disable-next-line deprecation/deprecation
63
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
64
64
  [ModCallback.POST_GAME_STARTED, this.postGameStarted],
65
65
 
66
66
  // 17
67
67
  [ModCallback.PRE_GAME_EXIT, this.preGameExit],
68
68
 
69
69
  // 18
70
- // eslint-disable-next-line deprecation/deprecation
70
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
71
71
  [ModCallback.POST_NEW_LEVEL, this.postNewLevel],
72
72
 
73
73
  // 19
74
- // eslint-disable-next-line deprecation/deprecation
74
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
75
75
  [ModCallback.POST_NEW_ROOM, this.postNewRoom],
76
76
  ];
77
77
 
@@ -93,9 +93,7 @@ export class GameReorderedCallbacks extends Feature {
93
93
 
94
94
  // ModCallback.POST_PLAYER_INIT (9)
95
95
  private readonly postPlayerInit = (_player: EntityPlayer): void => {
96
- if (this.renderFrameRunStarted === null) {
97
- this.renderFrameRunStarted = Isaac.GetFrameCount();
98
- }
96
+ this.renderFrameRunStarted ??= Isaac.GetFrameCount();
99
97
  };
100
98
 
101
99
  // ModCallback.POST_GAME_STARTED (15)
@@ -164,11 +162,11 @@ export class GameReorderedCallbacks extends Feature {
164
162
  }
165
163
 
166
164
  if (
167
- (onGameFrame(0) ||
168
- onRenderFrame(this.renderFrameRunStarted) ||
169
- this.currentStage !== stage ||
170
- this.currentStageType !== stageType) &&
171
- !this.forceNewRoom
165
+ (onGameFrame(0)
166
+ || onRenderFrame(this.renderFrameRunStarted)
167
+ || this.currentStage !== stage
168
+ || this.currentStageType !== stageType)
169
+ && !this.forceNewRoom
172
170
  ) {
173
171
  return;
174
172
  }
@@ -115,8 +115,8 @@ export class GridEntityUpdateDetection extends Feature {
115
115
  const [storedGridEntityType, storedGridEntityVariant] = gridEntityTuple;
116
116
  const gridEntity = gridEntitiesMap.get(gridIndex);
117
117
  if (
118
- gridEntity === undefined ||
119
- gridEntity.GetType() !== storedGridEntityType
118
+ gridEntity === undefined
119
+ || gridEntity.GetType() !== storedGridEntityType
120
120
  ) {
121
121
  v.room.initializedGridEntities.delete(gridIndex);
122
122
 
@@ -182,8 +182,8 @@ export class GridEntityUpdateDetection extends Feature {
182
182
  const gridEntityTuple = v.room.initializedGridEntities.get(gridIndex);
183
183
 
184
184
  if (
185
- gridEntityTuple === undefined ||
186
- gridEntityTuple[0] !== gridEntityType
185
+ gridEntityTuple === undefined
186
+ || gridEntityTuple[0] !== gridEntityType
187
187
  ) {
188
188
  this.updateTupleInMap(gridEntity);
189
189
 
@@ -66,8 +66,8 @@ export class ItemPickupDetection extends Feature {
66
66
 
67
67
  private queueEmpty(player: EntityPlayer, pickingUpItem: PickingUpItem) {
68
68
  if (
69
- pickingUpItem.itemType === ItemType.NULL ||
70
- asNumber(pickingUpItem.subType) === 0
69
+ pickingUpItem.itemType === ItemType.NULL
70
+ || asNumber(pickingUpItem.subType) === 0
71
71
  ) {
72
72
  return;
73
73
  }
@@ -84,8 +84,8 @@ export class ItemPickupDetection extends Feature {
84
84
  }
85
85
 
86
86
  if (
87
- queuedItem.Type !== pickingUpItem.itemType ||
88
- queuedItem.ID !== pickingUpItem.subType
87
+ queuedItem.Type !== pickingUpItem.itemType
88
+ || queuedItem.ID !== pickingUpItem.subType
89
89
  ) {
90
90
  // Record which item we are picking up.
91
91
  pickingUpItem.itemType = queuedItem.Type;
@@ -200,8 +200,8 @@ export class PlayerCollectibleDetection extends Feature {
200
200
  pickingUpItem: PickingUpItem,
201
201
  ) => {
202
202
  if (
203
- pickingUpItem.itemType === ItemType.TRINKET ||
204
- pickingUpItem.itemType === ItemType.NULL
203
+ pickingUpItem.itemType === ItemType.TRINKET
204
+ || pickingUpItem.itemType === ItemType.NULL
205
205
  ) {
206
206
  return;
207
207
  }
@@ -48,15 +48,15 @@ export class PlayerReorderedCallbacks extends Feature {
48
48
 
49
49
  this.callbacksUsed = [
50
50
  // 4
51
- // eslint-disable-next-line deprecation/deprecation
51
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
52
52
  [ModCallback.POST_PEFFECT_UPDATE, this.postPEffectUpdate],
53
53
 
54
54
  // 31
55
- // eslint-disable-next-line deprecation/deprecation
55
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
56
56
  [ModCallback.POST_PLAYER_UPDATE, this.postPlayerUpdate],
57
57
 
58
58
  // 32
59
- // eslint-disable-next-line deprecation/deprecation
59
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
60
60
  [ModCallback.POST_PLAYER_RENDER, this.postPlayerRender],
61
61
  ];
62
62
 
@@ -125,7 +125,7 @@ export class PlayerReorderedCallbacks extends Feature {
125
125
  }
126
126
 
127
127
  function dequeue(
128
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
128
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
129
129
  queue: QueueElement[],
130
130
  fireFunc: (player: EntityPlayer, renderOffset: Vector) => void,
131
131
  ) {
@@ -96,6 +96,7 @@ export class CustomPickups extends Feature {
96
96
  // ModCallback.POST_EFFECT_RENDER (56)
97
97
  // PICKUP_EFFECT_VARIANT
98
98
  private readonly postEffectRenderPickupEffect = (effect: EntityEffect) => {
99
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
99
100
  if (effect.SubType !== PICKUP_EFFECT_SUB_TYPE) {
100
101
  return;
101
102
  }
@@ -300,7 +300,7 @@ export class CustomStages extends Feature {
300
300
  const level = game.GetLevel();
301
301
  const stage = customStage.baseStage ?? DEFAULT_BASE_STAGE;
302
302
  const stageType = customStage.baseStageType ?? DEFAULT_BASE_STAGE_TYPE;
303
- level.SetStage(stage, stageType); // eslint-disable-line isaacscript/strict-enums
303
+ level.SetStage(stage, stageType); // eslint-disable-line complete/strict-enums
304
304
 
305
305
  return undefined;
306
306
  };
@@ -523,7 +523,7 @@ export class CustomStages extends Feature {
523
523
  ? DEFAULT_BASE_STAGE
524
524
  : (customStage.baseStage as LevelStage);
525
525
  if (!firstFloor) {
526
- baseStage++; // eslint-disable-line isaacscript/strict-enums
526
+ baseStage++; // eslint-disable-line complete/strict-enums
527
527
  }
528
528
 
529
529
  const baseStageType: StageType =
@@ -59,7 +59,10 @@ import { CUSTOM_FLOOR_STAGE } from "./customStages/constants";
59
59
 
60
60
  const DEBUG = false as boolean;
61
61
 
62
- /** This also applies to crawl spaces. The value was determined through trial and error. */
62
+ /**
63
+ * This also applies to crawl spaces. The value was determined through trial and error to match
64
+ * vanilla behavior.
65
+ */
63
66
  const TRAPDOOR_OPEN_DISTANCE = 60;
64
67
 
65
68
  const TRAPDOOR_OPEN_DISTANCE_AFTER_BOSS = TRAPDOOR_OPEN_DISTANCE * 2.5;
@@ -217,8 +220,8 @@ export class CustomTrapdoors extends Feature {
217
220
 
218
221
  private checkPixelationToBlackComplete() {
219
222
  if (
220
- v.run.state !== StageTravelState.PIXELATION_TO_BLACK ||
221
- v.run.stateRenderFrame === null
223
+ v.run.state !== StageTravelState.PIXELATION_TO_BLACK
224
+ || v.run.stateRenderFrame === null
222
225
  ) {
223
226
  return;
224
227
  }
@@ -265,16 +268,14 @@ export class CustomTrapdoors extends Feature {
265
268
  }
266
269
 
267
270
  private goToCustomTrapdoorDestination() {
268
- if (v.run.customTrapdoorActivated === null) {
269
- // This should never happen; provide some sane default values.
270
- v.run.customTrapdoorActivated = {
271
- destinationName: undefined,
272
- destinationStage: LevelStage.BASEMENT_1,
273
- destinationStageType: StageType.ORIGINAL,
274
- open: true,
275
- firstSpawn: true,
276
- };
277
- }
271
+ // This should never be null. Regardless, we provide some sane default values.
272
+ v.run.customTrapdoorActivated ??= {
273
+ destinationName: undefined,
274
+ destinationStage: LevelStage.BASEMENT_1,
275
+ destinationStageType: StageType.ORIGINAL,
276
+ open: true,
277
+ firstSpawn: true,
278
+ };
278
279
 
279
280
  const destinationFunc = this.getDestinationFunc(
280
281
  v.run.customTrapdoorActivated,
@@ -309,9 +310,9 @@ export class CustomTrapdoors extends Feature {
309
310
 
310
311
  private checkSecondPixelationHalfWay() {
311
312
  if (
312
- v.run.state !==
313
- StageTravelState.WAITING_FOR_SECOND_PIXELATION_TO_GET_HALF_WAY ||
314
- v.run.stateRenderFrame === null
313
+ v.run.state
314
+ !== StageTravelState.WAITING_FOR_SECOND_PIXELATION_TO_GET_HALF_WAY
315
+ || v.run.stateRenderFrame === null
315
316
  ) {
316
317
  return;
317
318
  }
@@ -377,9 +378,9 @@ export class CustomTrapdoors extends Feature {
377
378
 
378
379
  private drawBlackSprite(): void {
379
380
  if (
380
- v.run.state !== StageTravelState.WAITING_FOR_FIRST_PIXELATION_TO_END &&
381
- v.run.state !==
382
- StageTravelState.WAITING_FOR_SECOND_PIXELATION_TO_GET_HALF_WAY
381
+ v.run.state !== StageTravelState.WAITING_FOR_FIRST_PIXELATION_TO_END
382
+ && v.run.state
383
+ !== StageTravelState.WAITING_FOR_SECOND_PIXELATION_TO_GET_HALF_WAY
383
384
  ) {
384
385
  return;
385
386
  }
@@ -417,6 +418,15 @@ export class CustomTrapdoors extends Feature {
417
418
  ): void {
418
419
  /** By default, trapdoors will never close if they are already open. */
419
420
  if (trapdoorDescription.open) {
421
+ // Sometimes, the `sprite.Play(TrapdoorAnimation.OPEN_ANIMATION, true)` function does not take
422
+ // effect. Check for this case.
423
+ const sprite = gridEntity.GetSprite();
424
+ const animation = sprite.GetAnimation();
425
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
426
+ if (animation === TrapdoorAnimation.CLOSED) {
427
+ // Try it again.
428
+ sprite.Play(TrapdoorAnimation.OPEN_ANIMATION, true);
429
+ }
420
430
  return;
421
431
  }
422
432
 
@@ -433,9 +443,9 @@ export class CustomTrapdoors extends Feature {
433
443
  const roomClear = room.IsClear();
434
444
 
435
445
  return (
436
- !anyPlayerCloserThan(gridEntity.Position, TRAPDOOR_OPEN_DISTANCE) &&
437
- !this.isPlayerCloseAfterBoss(gridEntity.Position) &&
438
- !shouldBeClosedFromStartingInRoomWithEnemies(firstSpawn, roomClear)
446
+ !anyPlayerCloserThan(gridEntity.Position, TRAPDOOR_OPEN_DISTANCE)
447
+ && !this.isPlayerCloseAfterBoss(gridEntity.Position)
448
+ && !shouldBeClosedFromStartingInRoomWithEnemies(firstSpawn, roomClear)
439
449
  );
440
450
  }
441
451
 
@@ -447,9 +457,11 @@ export class CustomTrapdoors extends Feature {
447
457
  // In order to prevent a player from accidentally entering a freshly-spawned trapdoor after
448
458
  // killing the boss of the floor, we use a wider open distance for a short amount of frames.
449
459
  if (
450
- roomType !== RoomType.BOSS ||
451
- roomClearGameFrame === undefined ||
452
- onOrAfterRenderFrame(roomClearGameFrame + TRAPDOOR_BOSS_REACTION_FRAMES)
460
+ roomType !== RoomType.BOSS
461
+ || roomClearGameFrame === undefined
462
+ || onOrAfterRenderFrame(
463
+ roomClearGameFrame + TRAPDOOR_BOSS_REACTION_FRAMES,
464
+ )
453
465
  ) {
454
466
  return false;
455
467
  }
@@ -482,9 +494,9 @@ export class CustomTrapdoors extends Feature {
482
494
 
483
495
  if (
484
496
  // We don't want a Pony dash to transition to a new floor or a crawl space.
485
- !this.ponyDetection.isPlayerUsingPony(player) &&
486
- !isChildPlayer(player) &&
487
- canPlayerInteractWithTrapdoor(player)
497
+ !this.ponyDetection.isPlayerUsingPony(player)
498
+ && !isChildPlayer(player)
499
+ && canPlayerInteractWithTrapdoor(player)
488
500
  ) {
489
501
  this.playerTouchedCustomTrapdoor(
490
502
  gridEntity,
@@ -744,21 +756,16 @@ export class CustomTrapdoors extends Feature {
744
756
  spawnOpen?: boolean,
745
757
  ): GridEntity {
746
758
  if (
747
- destinationName !== undefined &&
748
- !this.destinationFuncMap.has(destinationName)
759
+ destinationName !== undefined
760
+ && !this.destinationFuncMap.has(destinationName)
749
761
  ) {
750
762
  error(
751
763
  `Failed to spawn a custom trapdoor with a destination of "${destinationName}" since a destination with that name has not been registered with the "registerCustomTrapdoorDestination" function. (If you are trying to go to a custom stage, the custom stage library should automatically do this for you when your mod first boots.)`,
752
764
  );
753
765
  }
754
766
 
755
- if (destinationStage === undefined) {
756
- destinationStage = this.stageHistory.getNextStageWithHistory();
757
- }
758
-
759
- if (destinationStageType === undefined) {
760
- destinationStageType = this.stageHistory.getNextStageTypeWithHistory();
761
- }
767
+ destinationStage ??= this.stageHistory.getNextStageWithHistory();
768
+ destinationStageType ??= this.stageHistory.getNextStageTypeWithHistory();
762
769
 
763
770
  const room = game.GetRoom();
764
771
  const roomListIndex = getRoomListIndex();
@@ -826,8 +833,8 @@ function canPlayerInteractWithTrapdoor(player: EntityPlayer) {
826
833
  const sprite = player.GetSprite();
827
834
  const animation = sprite.GetAnimation();
828
835
  return (
829
- !player.IsHoldingItem() &&
830
- !ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL.has(animation)
836
+ !player.IsHoldingItem()
837
+ && !ANIMATIONS_THAT_PREVENT_STAGE_TRAVEL.has(animation)
831
838
  );
832
839
  }
833
840
 
@@ -161,8 +161,9 @@ export class DeployJSONRoom extends Feature {
161
161
 
162
162
  let entity: Entity;
163
163
  if (
164
- entityType === EntityType.PICKUP &&
165
- variant === PickupVariant.COLLECTIBLE
164
+ entityType === EntityType.PICKUP
165
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
166
+ && variant === PickupVariant.COLLECTIBLE
166
167
  ) {
167
168
  const collectibleType = asCollectibleType(subType);
168
169
  const options = roomType === RoomType.ANGEL;
@@ -173,8 +174,9 @@ export class DeployJSONRoom extends Feature {
173
174
 
174
175
  // For some reason, Pitfalls do not spawn with the correct collision classes.
175
176
  if (
176
- entityType === EntityType.PITFALL &&
177
- variant === PitfallVariant.PITFALL
177
+ entityType === EntityType.PITFALL
178
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
179
+ && variant === PitfallVariant.PITFALL
178
180
  ) {
179
181
  entity.EntityCollisionClass = EntityCollisionClass.ENEMIES;
180
182
  entity.GridCollisionClass = EntityGridCollisionClass.WALLS;
@@ -122,9 +122,9 @@ export class DisableInputs extends Feature {
122
122
  @Exported
123
123
  public areInputsEnabled(): boolean {
124
124
  return (
125
- v.run.disableInputs.size === 0 &&
126
- v.run.enableAllInputsWithBlacklistMap.size === 0 &&
127
- v.run.disableAllInputsWithWhitelistMap.size === 0
125
+ v.run.disableInputs.size === 0
126
+ && v.run.enableAllInputsWithBlacklistMap.size === 0
127
+ && v.run.disableAllInputsWithWhitelistMap.size === 0
128
128
  );
129
129
  }
130
130
 
@@ -130,7 +130,9 @@ export class EdenStartingStatsHealth extends Feature {
130
130
  * @public
131
131
  */
132
132
  @Exported
133
- public getEdenStartingCollectibles(player: EntityPlayer): CollectibleType[] {
133
+ public getEdenStartingCollectibles(
134
+ player: EntityPlayer,
135
+ ): readonly CollectibleType[] {
134
136
  const collectibleTypes: CollectibleType[] = [];
135
137
 
136
138
  const activeCollectibleType = mapGetPlayer(
@@ -24,7 +24,8 @@ declare let __ISAACSCRIPT_COMMON_EXTRA_CONSOLE_COMMANDS_FEATURE:
24
24
 
25
25
  /**
26
26
  * When you enable this feature, many custom commands will be added to the in-game console. See the
27
- * [dedicated command list](ExtraConsoleCommandsList) for more information about them.
27
+ * [dedicated command list](/isaacscript-common/features/ExtraConsoleCommandsList) for more
28
+ * information about them.
28
29
  *
29
30
  * Note that in order to avoid conflicts, if two or more mods enable this feature, then the first
30
31
  * loaded one will control all of the command logic. When this occurs, a global variable of
@@ -241,10 +242,11 @@ export class ExtraConsoleCommands extends Feature {
241
242
  /**
242
243
  * Helper function to add a custom console command.
243
244
  *
244
- * The standard library comes with [many existing console commands](ExtraConsoleCommandsList) that
245
- * are useful for debugging, but you can also add your own commands that are useful for your
246
- * particular mod. It's easier to add commands to the existing command system than to add your own
247
- * logic manually to the `EXECUTE_CMD` callback.
245
+ * The standard library comes with [many existing console
246
+ * commands](/isaacscript-common/features/ExtraConsoleCommandsList) that are useful for debugging,
247
+ * but you can also add your own commands that are useful for your particular mod. It's easier to
248
+ * add commands to the existing command system than to add your own logic manually to the
249
+ * `EXECUTE_CMD` callback.
248
250
  *
249
251
  * This function is intended to be called when your mod is first loading.
250
252
  *
@@ -290,8 +292,9 @@ export class ExtraConsoleCommands extends Feature {
290
292
  /**
291
293
  * Helper function to remove a custom console command.
292
294
  *
293
- * The standard library comes with [many existing console commands](ExtraConsoleCommandsList) that
294
- * are useful for debugging. If you want to disable one of them, use this function.
295
+ * The standard library comes with [many existing console
296
+ * commands](/isaacscript-common/features/ExtraConsoleCommandsList) that are useful for debugging.
297
+ * If you want to disable one of them, use this function.
295
298
  *
296
299
  * This function is intended to be called when your mod is first loading.
297
300
  *
@@ -325,9 +328,10 @@ export class ExtraConsoleCommands extends Feature {
325
328
  /**
326
329
  * Helper function to remove all custom console commands.
327
330
  *
328
- * The standard library comes with [many existing console commands](ExtraConsoleCommandsList) that
329
- * are useful for debugging. If you want to disable all of them after this feature has already
330
- * been initialized, use this function.
331
+ * The standard library comes with [many existing console
332
+ * commands](/isaacscript-common/features/ExtraConsoleCommandsList) that are useful for debugging.
333
+ * If you want to disable all of them after this feature has already been initialized, use this
334
+ * function.
331
335
  *
332
336
  * In order to use this function, you must upgrade your mod with
333
337
  * `ISCFeature.EXTRA_CONSOLE_COMMANDS`.
@@ -19,17 +19,17 @@ import {
19
19
  import { Exported } from "../../../decorators";
20
20
  import { Feature } from "../../private/Feature";
21
21
 
22
- // eslint-disable-next-line isaacscript/strict-enums
22
+ // eslint-disable-next-line complete/strict-enums
23
23
  const FIRST_MODDED_COLLECTIBLE_TYPE: CollectibleType =
24
24
  LAST_VANILLA_COLLECTIBLE_TYPE + 1;
25
25
 
26
- // eslint-disable-next-line isaacscript/strict-enums
26
+ // eslint-disable-next-line complete/strict-enums
27
27
  const FIRST_MODDED_TRINKET_TYPE: TrinketType = LAST_VANILLA_TRINKET_TYPE + 1;
28
28
 
29
- // eslint-disable-next-line isaacscript/strict-enums
29
+ // eslint-disable-next-line complete/strict-enums
30
30
  const FIRST_MODDED_CARD_TYPE: CardType = LAST_VANILLA_CARD_TYPE + 1;
31
31
 
32
- // eslint-disable-next-line isaacscript/strict-enums
32
+ // eslint-disable-next-line complete/strict-enums
33
33
  const FIRST_MODDED_PILL_EFFECT: PillEffect = LAST_VANILLA_PILL_EFFECT + 1;
34
34
 
35
35
  /**
@@ -411,8 +411,8 @@ export class ModdedElementSets extends Feature {
411
411
  private lazyInitEdenCollectibleTypesSet() {
412
412
  for (const collectibleType of this.getCollectibleTypes()) {
413
413
  if (
414
- isHiddenCollectible(collectibleType) ||
415
- collectibleHasTag(collectibleType, ItemConfigTag.NO_EDEN)
414
+ isHiddenCollectible(collectibleType)
415
+ || collectibleHasTag(collectibleType, ItemConfigTag.NO_EDEN)
416
416
  ) {
417
417
  continue;
418
418
  }
@@ -574,7 +574,7 @@ export class ModdedElementSets extends Feature {
574
574
  @Exported
575
575
  public getPlayerCollectibleMap(
576
576
  player: EntityPlayer,
577
- ): Map<CollectibleType, int> {
577
+ ): ReadonlyMap<CollectibleType, int> {
578
578
  const collectibleArray = this.getCollectibleTypes();
579
579
 
580
580
  const collectibleMap = new Map<CollectibleType, int>();
@@ -603,7 +603,7 @@ export class ModdedElementSets extends Feature {
603
603
  }
604
604
  }
605
605
 
606
- collectibleType--; // eslint-disable-line isaacscript/strict-enums
606
+ collectibleType--; // eslint-disable-line complete/strict-enums
607
607
  } while (itemConfigItem !== undefined);
608
608
  }
609
609
 
@@ -976,7 +976,7 @@ export class ModdedElementSets extends Feature {
976
976
  public getPlayerTrinketsWithCacheFlag(
977
977
  player: EntityPlayer,
978
978
  cacheFlag: CacheFlag,
979
- ): Map<TrinketType, int> {
979
+ ): ReadonlyMap<TrinketType, int> {
980
980
  const trinketTypesWithCacheFlag =
981
981
  this.getTrinketsTypesWithCacheFlag(cacheFlag);
982
982
 
@@ -59,16 +59,16 @@ export class NoSirenSteal extends Feature {
59
59
  const [familiarVariant, familiarSubType] = familiarTuple;
60
60
 
61
61
  if (
62
- familiarVariant === incomingFamiliarVariant &&
63
- familiarSubType === incomingFamiliarSubType
62
+ familiarVariant === incomingFamiliarVariant
63
+ && familiarSubType === incomingFamiliarSubType
64
64
  ) {
65
65
  // There is an entry that matches the variant and sub-type exactly.
66
66
  return true;
67
67
  }
68
68
 
69
69
  if (
70
- familiarVariant === incomingFamiliarVariant &&
71
- familiarSubType === undefined
70
+ familiarVariant === incomingFamiliarVariant
71
+ && familiarSubType === undefined
72
72
  ) {
73
73
  // There is an entry that matches all sub-types for this variant.
74
74
  return true;
@@ -95,9 +95,9 @@ export class PickupIndexCreation extends Feature {
95
95
  const room = game.GetRoom();
96
96
  const isFirstVisit = room.IsFirstVisit();
97
97
  if (
98
- pickupIndexFromLevelData !== undefined &&
99
- !isFirstVisit &&
100
- onOrBeforeRoomFrame(0)
98
+ pickupIndexFromLevelData !== undefined
99
+ && !isFirstVisit
100
+ && onOrBeforeRoomFrame(0)
101
101
  ) {
102
102
  v.room.pickupIndexes.set(ptrHash, pickupIndexFromLevelData);
103
103
  return;
@@ -116,9 +116,7 @@ export class PickupIndexCreation extends Feature {
116
116
  v.level.pickupData.getAndSetDefault(roomListIndex);
117
117
 
118
118
  let pickupIndex = getStoredPickupIndex(pickup, pickupDescriptions);
119
- if (pickupIndex === undefined) {
120
- pickupIndex = this.getPostAscentPickupIndex(pickup);
121
- }
119
+ pickupIndex ??= this.getPostAscentPickupIndex(pickup);
122
120
 
123
121
  return pickupIndex;
124
122
  }
@@ -186,6 +184,7 @@ export class PickupIndexCreation extends Feature {
186
184
  * pickup could re-appear during The Ascent. If this is the case, we store the metadata on a
187
185
  * separate map to reference later.
188
186
  */
187
+ // eslint-disable-next-line complete/no-mutable-return
189
188
  private getPickupDataMapForCurrentRoom():
190
189
  | Map<PickupIndex, PickupDescription>
191
190
  | undefined {
@@ -283,8 +282,8 @@ function getStoredPickupIndex(
283
282
  ): PickupIndex | undefined {
284
283
  for (const [pickupIndex, pickupDescription] of pickupDescriptions) {
285
284
  if (
286
- vectorEquals(pickupDescription.position, pickup.Position) &&
287
- pickupDescription.initSeed === pickup.InitSeed
285
+ vectorEquals(pickupDescription.position, pickup.Position)
286
+ && pickupDescription.initSeed === pickup.InitSeed
288
287
  ) {
289
288
  return pickupIndex;
290
289
  }
@@ -44,8 +44,8 @@ export class PonyDetection extends Feature {
44
44
  const effects = player.GetEffects();
45
45
  const entityFlags = player.GetEntityFlags();
46
46
  const hasPonyCollectibleEffect =
47
- effects.HasCollectibleEffect(CollectibleType.PONY) ||
48
- effects.HasCollectibleEffect(CollectibleType.WHITE_PONY);
47
+ effects.HasCollectibleEffect(CollectibleType.PONY)
48
+ || effects.HasCollectibleEffect(CollectibleType.WHITE_PONY);
49
49
  const isPonyActiveOnPreviousFrame = setHasPlayer(
50
50
  v.run.playersIsPonyActive,
51
51
  player,
@@ -55,8 +55,8 @@ export class PressInput extends Feature {
55
55
  const pair = v.run.buttonActionPairs[i]!;
56
56
 
57
57
  if (
58
- pair.playerIndex === playerIndex &&
59
- pair.buttonAction === buttonAction
58
+ pair.playerIndex === playerIndex
59
+ && pair.buttonAction === buttonAction
60
60
  ) {
61
61
  v.run.buttonActionPairs.splice(i);
62
62
  return true;
@@ -25,12 +25,12 @@ export class PreventChildEntities extends Feature {
25
25
  // ModCallback.POST_NPC_INIT (27)
26
26
  private readonly postNPCInit = (npc: EntityNPC) => {
27
27
  const spawnerEntityMatch =
28
- npc.SpawnerEntity !== undefined &&
29
- v.room.preventingEntities.has(GetPtrHash(npc.SpawnerEntity));
28
+ npc.SpawnerEntity !== undefined
29
+ && v.room.preventingEntities.has(GetPtrHash(npc.SpawnerEntity));
30
30
 
31
31
  const parentMatch =
32
- npc.Parent !== undefined &&
33
- v.room.preventingEntities.has(GetPtrHash(npc.Parent));
32
+ npc.Parent !== undefined
33
+ && v.room.preventingEntities.has(GetPtrHash(npc.Parent));
34
34
 
35
35
  if (spawnerEntityMatch || parentMatch) {
36
36
  npc.Remove();
@@ -192,11 +192,11 @@ export class RoomHistory extends Feature {
192
192
  }
193
193
 
194
194
  return (
195
- startSeedString !== latestRoomDescription.startSeedString ||
196
- stage !== latestRoomDescription.stage ||
197
- stageType !== latestRoomDescription.stageType ||
198
- roomListIndex !== latestRoomDescription.roomListIndex ||
199
- roomVisitedCount !== latestRoomDescription.roomVisitedCount
195
+ startSeedString !== latestRoomDescription.startSeedString
196
+ || stage !== latestRoomDescription.stage
197
+ || stageType !== latestRoomDescription.stageType
198
+ || roomListIndex !== latestRoomDescription.roomListIndex
199
+ || roomVisitedCount !== latestRoomDescription.roomVisitedCount
200
200
  );
201
201
  }
202
202
  }
@@ -347,7 +347,7 @@ export class RunInNFrames extends Feature {
347
347
  }
348
348
 
349
349
  function checkExecuteQueuedFunctions(
350
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
350
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
351
351
  queuedFunctions: QueuedFunction[],
352
352
  frameCount: int,
353
353
  newNumRoomsEntered: int,
@@ -368,7 +368,7 @@ function checkExecuteQueuedFunctions(
368
368
  }
369
369
 
370
370
  function checkExecuteIntervalFunctions(
371
- // eslint-disable-next-line isaacscript/prefer-readonly-parameter-types
371
+ // eslint-disable-next-line complete/prefer-readonly-parameter-types
372
372
  intervalFunctions: IntervalFunction[],
373
373
  frameCount: int,
374
374
  newNumRoomsEntered: int,