isaacscript-common 87.9.7 → 87.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/dist/cachedEnumValues.js +29 -32
  2. package/dist/callbackClasses.js +142 -289
  3. package/dist/callbacks.js +147 -183
  4. package/dist/classes/DefaultMap.js +4 -8
  5. package/dist/classes/ModFeature.js +21 -25
  6. package/dist/classes/ModUpgraded.js +43 -47
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
  9. package/dist/classes/callbacks/InputActionFilter.js +4 -8
  10. package/dist/classes/callbacks/InputActionPlayer.js +4 -8
  11. package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
  12. package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
  13. package/dist/classes/callbacks/PostBombExploded.js +8 -12
  14. package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
  15. package/dist/classes/callbacks/PostBombInitLate.js +6 -10
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
  18. package/dist/classes/callbacks/PostBoneSwing.js +7 -11
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
  20. package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
  21. package/dist/classes/callbacks/PostCustomRevive.js +4 -8
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
  23. package/dist/classes/callbacks/PostDoorRender.js +8 -12
  24. package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
  26. package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
  31. package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
  32. package/dist/classes/callbacks/PostEsauJr.js +4 -8
  33. package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
  34. package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
  35. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
  36. package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
  37. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
  38. package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
  39. package/dist/classes/callbacks/PostFirstFlip.js +4 -8
  40. package/dist/classes/callbacks/PostFlip.js +4 -8
  41. package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
  42. package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
  43. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
  44. package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
  45. package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
  46. package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
  47. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
  48. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
  49. package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
  50. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
  51. package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
  52. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
  53. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
  54. package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
  55. package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
  56. package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
  57. package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
  58. package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
  59. package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
  60. package/dist/classes/callbacks/PostItemDischarge.js +23 -27
  61. package/dist/classes/callbacks/PostItemPickup.js +6 -10
  62. package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
  63. package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
  64. package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
  65. package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
  66. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
  67. package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
  68. package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
  69. package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
  70. package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
  71. package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
  72. package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
  73. package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
  74. package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
  75. package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
  76. package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
  77. package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
  78. package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
  79. package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
  80. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
  81. package/dist/classes/callbacks/PostPickupChanged.js +6 -10
  82. package/dist/classes/callbacks/PostPickupCollect.js +8 -12
  83. package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
  84. package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
  85. package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
  86. package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
  87. package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
  88. package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
  89. package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
  90. package/dist/classes/callbacks/PostPitRender.js +8 -12
  91. package/dist/classes/callbacks/PostPitUpdate.js +8 -12
  92. package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
  93. package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
  94. package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
  95. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
  96. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
  97. package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
  98. package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
  99. package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
  100. package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
  101. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
  102. package/dist/classes/callbacks/PostPoopRender.js +8 -12
  103. package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
  104. package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
  105. package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
  106. package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
  107. package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
  108. package/dist/classes/callbacks/PostProjectileKill.js +8 -12
  109. package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
  110. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
  111. package/dist/classes/callbacks/PostPurchase.js +21 -25
  112. package/dist/classes/callbacks/PostRockRender.js +8 -12
  113. package/dist/classes/callbacks/PostRockUpdate.js +8 -12
  114. package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
  115. package/dist/classes/callbacks/PostSacrifice.js +12 -16
  116. package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
  117. package/dist/classes/callbacks/PostSlotCollision.js +8 -12
  118. package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
  119. package/dist/classes/callbacks/PostSlotInit.js +6 -10
  120. package/dist/classes/callbacks/PostSlotRender.js +6 -10
  121. package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
  122. package/dist/classes/callbacks/PostSpikesRender.js +8 -12
  123. package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
  124. package/dist/classes/callbacks/PostTNTRender.js +8 -12
  125. package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
  126. package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
  127. package/dist/classes/callbacks/PostTearInitLate.js +6 -10
  128. package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
  129. package/dist/classes/callbacks/PostTearKill.js +8 -12
  130. package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
  131. package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
  132. package/dist/classes/callbacks/PostTransformation.js +10 -14
  133. package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
  134. package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
  135. package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
  136. package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
  137. package/dist/classes/callbacks/PreCustomRevive.js +6 -10
  138. package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
  139. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
  140. package/dist/classes/callbacks/PreGetPedestal.js +8 -12
  141. package/dist/classes/callbacks/PreItemPickup.js +6 -10
  142. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
  143. package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
  144. package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
  145. package/dist/classes/callbacks/PreNewLevel.js +10 -14
  146. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
  147. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
  148. package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
  149. package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
  150. package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
  151. package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
  152. package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
  153. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
  154. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
  155. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
  156. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
  157. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
  158. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
  159. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
  160. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
  161. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
  162. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
  163. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
  164. package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
  165. package/dist/classes/features/other/CharacterStats.js +9 -13
  166. package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
  167. package/dist/classes/features/other/CustomHotkeys.js +15 -19
  168. package/dist/classes/features/other/CustomItemPools.js +20 -24
  169. package/dist/classes/features/other/CustomPickups.js +15 -19
  170. package/dist/classes/features/other/CustomStages.js +116 -153
  171. package/dist/classes/features/other/CustomTrapdoors.js +119 -123
  172. package/dist/classes/features/other/DebugDisplay.js +77 -81
  173. package/dist/classes/features/other/DeployJSONRoom.js +65 -69
  174. package/dist/classes/features/other/DisableAllSound.js +14 -18
  175. package/dist/classes/features/other/DisableInputs.js +24 -28
  176. package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
  177. package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
  178. package/dist/classes/features/other/FadeInRemover.js +9 -13
  179. package/dist/classes/features/other/FastReset.js +18 -22
  180. package/dist/classes/features/other/FlyingDetection.js +10 -14
  181. package/dist/classes/features/other/ForgottenSwitch.js +8 -12
  182. package/dist/classes/features/other/ItemPoolDetection.js +35 -39
  183. package/dist/classes/features/other/ModdedElementDetection.js +43 -47
  184. package/dist/classes/features/other/ModdedElementSets.js +135 -139
  185. package/dist/classes/features/other/NoSirenSteal.js +7 -11
  186. package/dist/classes/features/other/Pause.js +48 -52
  187. package/dist/classes/features/other/PersistentEntities.js +16 -20
  188. package/dist/classes/features/other/PickupIndexCreation.js +31 -35
  189. package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
  190. package/dist/classes/features/other/PonyDetection.js +22 -26
  191. package/dist/classes/features/other/PressInput.js +10 -14
  192. package/dist/classes/features/other/PreventChildEntities.js +6 -10
  193. package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
  194. package/dist/classes/features/other/RerunDetection.js +11 -15
  195. package/dist/classes/features/other/RoomClearFrame.js +11 -15
  196. package/dist/classes/features/other/RoomHistory.js +30 -34
  197. package/dist/classes/features/other/RunInNFrames.js +24 -28
  198. package/dist/classes/features/other/RunNextRoom.js +8 -12
  199. package/dist/classes/features/other/RunNextRun.js +8 -12
  200. package/dist/classes/features/other/SaveDataManager.js +61 -65
  201. package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
  202. package/dist/classes/features/other/StageHistory.js +76 -80
  203. package/dist/classes/features/other/StartAmbush.js +12 -16
  204. package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
  205. package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
  206. package/dist/classes/features/other/customStages/backdrop.js +68 -71
  207. package/dist/classes/features/other/customStages/constants.js +7 -10
  208. package/dist/classes/features/other/customStages/gridEntities.js +23 -30
  209. package/dist/classes/features/other/customStages/shadows.js +27 -30
  210. package/dist/classes/features/other/customStages/streakText.js +55 -60
  211. package/dist/classes/features/other/customStages/utils.js +13 -17
  212. package/dist/classes/features/other/customStages/v.js +4 -7
  213. package/dist/classes/features/other/customStages/versusScreen.js +46 -50
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
  227. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
  229. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
  231. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
  232. package/dist/classes/features/other/debugDisplay/utils.js +6 -10
  233. package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
  234. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
  235. package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
  236. package/dist/classes/features/other/saveDataManager/constants.js +1 -4
  237. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
  238. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
  239. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
  240. package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
  241. package/dist/classes/private/CustomCallback.js +4 -8
  242. package/dist/classes/private/Feature.js +1 -5
  243. package/dist/core/cachedClasses.js +12 -15
  244. package/dist/core/constants.js +126 -130
  245. package/dist/core/constantsFirstLast.js +22 -25
  246. package/dist/core/constantsVanilla.js +25 -28
  247. package/dist/core/upgradeMod.js +7 -10
  248. package/dist/decorators.js +6 -10
  249. package/dist/enums/AmbushType.js +2 -5
  250. package/dist/enums/CornerType.js +2 -5
  251. package/dist/enums/HealthType.js +2 -5
  252. package/dist/enums/ISCFeature.js +2 -5
  253. package/dist/enums/LadderSubTypeCustom.js +2 -5
  254. package/dist/enums/ModCallbackCustom.js +2 -5
  255. package/dist/enums/MysteriousPaperEffect.js +2 -5
  256. package/dist/enums/PlayerStat.js +2 -5
  257. package/dist/enums/PocketItemType.js +2 -5
  258. package/dist/enums/RockAltType.js +2 -5
  259. package/dist/enums/SaveDataKey.js +2 -5
  260. package/dist/enums/SerializationType.js +2 -5
  261. package/dist/enums/SlotDestructionType.js +2 -5
  262. package/dist/enums/private/GridEntityTypeCustom.js +1 -4
  263. package/dist/enums/private/SerializationBrand.js +2 -5
  264. package/dist/enums/private/StageTravelState.js +2 -5
  265. package/dist/enums/private/TrapdoorAnimation.js +2 -5
  266. package/dist/enums/private/UIStreakAnimation.js +2 -5
  267. package/dist/features.js +138 -141
  268. package/dist/functions/ambush.js +9 -12
  269. package/dist/functions/array.js +45 -76
  270. package/dist/functions/arrayLua.js +7 -16
  271. package/dist/functions/benchmark.js +4 -7
  272. package/dist/functions/bitSet128.js +19 -26
  273. package/dist/functions/bitwise.js +14 -23
  274. package/dist/functions/bombs.js +1 -4
  275. package/dist/functions/bosses.js +68 -85
  276. package/dist/functions/cards.js +44 -62
  277. package/dist/functions/challenges.js +28 -39
  278. package/dist/functions/characters.js +68 -87
  279. package/dist/functions/charge.js +41 -52
  280. package/dist/functions/chargeBar.js +2 -6
  281. package/dist/functions/collectibleTag.js +9 -13
  282. package/dist/functions/collectibles.js +133 -172
  283. package/dist/functions/color.js +29 -38
  284. package/dist/functions/console.js +4 -8
  285. package/dist/functions/curses.js +6 -10
  286. package/dist/functions/debugFunctions.js +7 -14
  287. package/dist/functions/decorators.js +13 -19
  288. package/dist/functions/deepCopy.js +96 -99
  289. package/dist/functions/deepCopyTests.js +56 -59
  290. package/dist/functions/dimensions.js +10 -14
  291. package/dist/functions/direction.js +22 -30
  292. package/dist/functions/doors.js +104 -154
  293. package/dist/functions/easing.js +30 -62
  294. package/dist/functions/effects.js +6 -10
  295. package/dist/functions/emptyRoom.js +30 -34
  296. package/dist/functions/entities.js +88 -115
  297. package/dist/functions/entitiesSpecific.js +83 -125
  298. package/dist/functions/entityTypes.js +3 -6
  299. package/dist/functions/enums.js +27 -41
  300. package/dist/functions/external.js +4 -8
  301. package/dist/functions/familiars.js +17 -25
  302. package/dist/functions/flag.js +10 -19
  303. package/dist/functions/frames.js +31 -51
  304. package/dist/functions/globals.js +26 -66
  305. package/dist/functions/gridEntities.js +231 -269
  306. package/dist/functions/gridEntitiesSpecific.js +86 -126
  307. package/dist/functions/gridIndex.js +8 -11
  308. package/dist/functions/hash.js +1 -4
  309. package/dist/functions/hex.js +7 -11
  310. package/dist/functions/input.js +65 -88
  311. package/dist/functions/isaacAPIClass.js +28 -53
  312. package/dist/functions/itemPool.js +39 -48
  313. package/dist/functions/jsonHelpers.js +5 -42
  314. package/dist/functions/jsonRoom.js +39 -46
  315. package/dist/functions/kColor.js +30 -39
  316. package/dist/functions/language.js +3 -6
  317. package/dist/functions/level.js +20 -26
  318. package/dist/functions/levelGrid.js +81 -108
  319. package/dist/functions/log.js +6 -12
  320. package/dist/functions/logEntities.js +49 -59
  321. package/dist/functions/logMisc.js +183 -214
  322. package/dist/functions/map.js +10 -20
  323. package/dist/functions/math.js +16 -31
  324. package/dist/functions/merge.js +48 -51
  325. package/dist/functions/mergeTests.js +34 -37
  326. package/dist/functions/minimap.js +34 -46
  327. package/dist/functions/modFeatures.js +1 -4
  328. package/dist/functions/newArray.js +5 -8
  329. package/dist/functions/nextStage.js +63 -67
  330. package/dist/functions/npcDataStructures.js +9 -20
  331. package/dist/functions/npcs.js +37 -45
  332. package/dist/functions/pickupVariants.js +26 -39
  333. package/dist/functions/pickups.js +43 -59
  334. package/dist/functions/pickupsSpecific.js +76 -118
  335. package/dist/functions/pills.js +52 -72
  336. package/dist/functions/playerCenter.js +13 -16
  337. package/dist/functions/playerCollectibles.js +59 -79
  338. package/dist/functions/playerDataStructures.js +18 -29
  339. package/dist/functions/playerEffects.js +12 -19
  340. package/dist/functions/playerHealth.js +91 -113
  341. package/dist/functions/playerIndex.js +22 -33
  342. package/dist/functions/playerTrinkets.js +31 -43
  343. package/dist/functions/players.js +87 -126
  344. package/dist/functions/pocketItems.js +33 -43
  345. package/dist/functions/positionVelocity.js +23 -32
  346. package/dist/functions/pressurePlate.js +7 -10
  347. package/dist/functions/projectiles.js +11 -15
  348. package/dist/functions/random.js +8 -13
  349. package/dist/functions/readOnly.js +3 -8
  350. package/dist/functions/render.js +7 -12
  351. package/dist/functions/revive.js +38 -45
  352. package/dist/functions/rng.js +31 -44
  353. package/dist/functions/rockAlt.js +18 -22
  354. package/dist/functions/roomData.js +24 -40
  355. package/dist/functions/roomGrid.js +17 -25
  356. package/dist/functions/roomShape.js +39 -55
  357. package/dist/functions/roomShapeWalls.js +67 -71
  358. package/dist/functions/roomTransition.js +13 -17
  359. package/dist/functions/rooms.js +181 -244
  360. package/dist/functions/run.js +29 -39
  361. package/dist/functions/seeds.js +6 -10
  362. package/dist/functions/serialization.js +27 -34
  363. package/dist/functions/set.js +24 -40
  364. package/dist/functions/slots.js +18 -22
  365. package/dist/functions/sort.js +9 -15
  366. package/dist/functions/sound.js +12 -16
  367. package/dist/functions/spawnCollectible.js +21 -26
  368. package/dist/functions/sprites.js +16 -24
  369. package/dist/functions/stage.js +122 -164
  370. package/dist/functions/stats.js +37 -43
  371. package/dist/functions/storyBosses.js +36 -40
  372. package/dist/functions/string.js +19 -33
  373. package/dist/functions/table.js +21 -31
  374. package/dist/functions/tears.js +6 -14
  375. package/dist/functions/transformations.js +35 -42
  376. package/dist/functions/trinketGive.js +29 -36
  377. package/dist/functions/trinkets.js +45 -60
  378. package/dist/functions/tstlClass.js +11 -20
  379. package/dist/functions/types.js +22 -46
  380. package/dist/functions/ui.js +25 -40
  381. package/dist/functions/utils.js +22 -36
  382. package/dist/functions/vector.js +33 -46
  383. package/dist/functions/versusScreen.js +12 -18
  384. package/dist/functions/weighted.js +8 -12
  385. package/dist/index.js +150 -166
  386. package/dist/index.rollup.d.ts +11 -11
  387. package/dist/indexLua.js +151 -167
  388. package/dist/interfaces/ChargeBarSprites.js +1 -2
  389. package/dist/interfaces/Corner.js +1 -2
  390. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  391. package/dist/interfaces/GridEntityCustomData.js +1 -2
  392. package/dist/interfaces/JSONRoomsFile.js +1 -2
  393. package/dist/interfaces/PlayerHealth.d.ts +11 -11
  394. package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
  395. package/dist/interfaces/PlayerHealth.js +1 -2
  396. package/dist/interfaces/PlayerStats.js +2 -4
  397. package/dist/interfaces/PocketItemDescription.js +1 -2
  398. package/dist/interfaces/RoomDescription.js +1 -2
  399. package/dist/interfaces/SaveData.js +1 -2
  400. package/dist/interfaces/StageHistoryEntry.js +1 -2
  401. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  402. package/dist/interfaces/TrinketSituation.js +1 -2
  403. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  404. package/dist/interfaces/private/CustomStage.js +1 -2
  405. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  406. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  407. package/dist/isaacscript-common.lua +1 -1
  408. package/dist/maps/PHDPillConversionsMap.js +19 -22
  409. package/dist/maps/cardNameToTypeMap.js +205 -208
  410. package/dist/maps/characterNameToTypeMap.js +85 -88
  411. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  412. package/dist/maps/defaultPlayerStatMap.js +10 -13
  413. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  414. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  415. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  416. package/dist/maps/gridEntityXMLMap.js +52 -55
  417. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  418. package/dist/maps/keyboardToStringMap.js +66 -69
  419. package/dist/maps/pillNameToEffectMap.js +83 -86
  420. package/dist/maps/roomNameToTypeMap.js +38 -41
  421. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  422. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  423. package/dist/maps/trinketNameToTypeMap.js +5 -8
  424. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  425. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  426. package/dist/objects/batteryNames.js +8 -11
  427. package/dist/objects/bombNames.js +11 -14
  428. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  429. package/dist/objects/bossNamePNGFileNames.js +104 -107
  430. package/dist/objects/bossNames.js +105 -108
  431. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  432. package/dist/objects/cardDescriptions.js +101 -104
  433. package/dist/objects/cardNames.js +101 -104
  434. package/dist/objects/challengeBosses.js +49 -52
  435. package/dist/objects/challengeCharacters.js +49 -52
  436. package/dist/objects/challengeCollectibleTypes.js +160 -163
  437. package/dist/objects/challengeNames.js +49 -52
  438. package/dist/objects/challengeTrinketType.js +48 -51
  439. package/dist/objects/characterDamageMultipliers.js +44 -47
  440. package/dist/objects/characterNames.js +44 -47
  441. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  442. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  443. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  444. package/dist/objects/chestNames.js +15 -18
  445. package/dist/objects/coinNames.js +11 -14
  446. package/dist/objects/coinSubTypeToValue.js +11 -14
  447. package/dist/objects/collectibleDescriptions.js +725 -728
  448. package/dist/objects/collectibleNames.js +725 -728
  449. package/dist/objects/colors.js +1 -4
  450. package/dist/objects/directionNames.js +7 -10
  451. package/dist/objects/directionToDegrees.js +7 -10
  452. package/dist/objects/directionToMoveAction.js +7 -10
  453. package/dist/objects/directionToShootAction.js +7 -10
  454. package/dist/objects/directionToVector.js +9 -12
  455. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  456. package/dist/objects/doorSlotToDirection.js +11 -14
  457. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  458. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  459. package/dist/objects/heartNames.js +16 -19
  460. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  461. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  462. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  463. package/dist/objects/kColors.js +1 -4
  464. package/dist/objects/keyNames.js +8 -11
  465. package/dist/objects/languageNames.js +9 -12
  466. package/dist/objects/oppositeDoorSlots.js +11 -14
  467. package/dist/objects/pillEffectClasses.js +53 -56
  468. package/dist/objects/pillEffectNames.js +53 -56
  469. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  470. package/dist/objects/pillEffectTypes.js +53 -56
  471. package/dist/objects/playerNamePNGFileNames.js +44 -47
  472. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  473. package/dist/objects/roomShapeBounds.js +23 -26
  474. package/dist/objects/roomShapeCorners.js +128 -131
  475. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  476. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  477. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  478. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  479. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  480. package/dist/objects/roomShapeToGridWidth.js +14 -17
  481. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  482. package/dist/objects/roomShapeVolumes.js +21 -24
  483. package/dist/objects/roomTypeNames.js +32 -35
  484. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  485. package/dist/objects/sackNames.js +6 -9
  486. package/dist/objects/slotNames.js +21 -24
  487. package/dist/objects/stageIDNames.js +33 -36
  488. package/dist/objects/stageToMusic.js +69 -72
  489. package/dist/objects/stageToStageID.js +90 -93
  490. package/dist/objects/stageTypeSuffixes.js +8 -11
  491. package/dist/objects/transformationNames.js +16 -19
  492. package/dist/objects/trinketDescriptions.js +192 -195
  493. package/dist/objects/trinketNames.js +192 -195
  494. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  495. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  496. package/dist/patchErrorFunctions.js +4 -7
  497. package/dist/serialization.js +6 -9
  498. package/dist/sets/LRoomShapesSet.js +7 -10
  499. package/dist/sets/bigRoomShapesSet.js +10 -13
  500. package/dist/sets/bossSets.js +261 -264
  501. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  502. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  503. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  504. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  505. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  506. package/dist/sets/consoleCommandsSet.js +2 -5
  507. package/dist/sets/entitiesWithArmorSet.js +44 -47
  508. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  509. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  510. package/dist/sets/lostStyleCharactersSet.js +8 -11
  511. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  512. package/dist/sets/narrowRoomShapesSet.js +7 -10
  513. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  514. package/dist/sets/redHeartSubTypesSet.js +6 -9
  515. package/dist/sets/repentanceBossIDsSet.js +26 -29
  516. package/dist/sets/sinEntityTypesSet.js +10 -13
  517. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  518. package/dist/shaderCrashFix.js +4 -7
  519. package/dist/shouldFire.js +28 -58
  520. package/dist/types/AddSubtract.js +1 -2
  521. package/dist/types/AllButFirst.js +1 -2
  522. package/dist/types/AllButLast.js +1 -2
  523. package/dist/types/AnyClass.js +1 -2
  524. package/dist/types/AnyEntity.js +1 -2
  525. package/dist/types/AnyFunction.js +1 -2
  526. package/dist/types/AnyGridEntity.js +1 -2
  527. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  528. package/dist/types/ConversionHeartSubType.js +1 -2
  529. package/dist/types/Decrement.js +1 -2
  530. package/dist/types/ERange.js +1 -2
  531. package/dist/types/EntityID.js +1 -2
  532. package/dist/types/FunctionTuple.js +1 -2
  533. package/dist/types/GridEntityID.js +1 -2
  534. package/dist/types/HasFunction.js +1 -2
  535. package/dist/types/IRange.js +1 -2
  536. package/dist/types/Immutable.js +1 -2
  537. package/dist/types/Increment.js +1 -2
  538. package/dist/types/LowercaseKeys.js +1 -2
  539. package/dist/types/NaturalNumbersLessThan.js +1 -2
  540. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  541. package/dist/types/ObjectValues.js +1 -2
  542. package/dist/types/PickingUpItem.js +15 -22
  543. package/dist/types/PickupIndex.js +1 -2
  544. package/dist/types/PlayerIndex.js +1 -2
  545. package/dist/types/PossibleStatType.js +1 -2
  546. package/dist/types/PublicInterface.js +1 -2
  547. package/dist/types/ReadonlyMap.js +1 -4
  548. package/dist/types/ReadonlyRecord.js +1 -2
  549. package/dist/types/ReadonlySet.js +1 -4
  550. package/dist/types/StartsWithLowercase.js +1 -2
  551. package/dist/types/StartsWithUppercase.js +1 -2
  552. package/dist/types/TSTLClass.js +1 -2
  553. package/dist/types/Tuple.js +1 -2
  554. package/dist/types/TupleKeys.js +1 -2
  555. package/dist/types/TupleToIntersection.js +1 -2
  556. package/dist/types/TupleToUnion.js +1 -2
  557. package/dist/types/TupleWithLengthBetween.js +1 -2
  558. package/dist/types/TupleWithMaxLength.js +1 -2
  559. package/dist/types/UnionToIntersection.js +1 -2
  560. package/dist/types/UppercaseKeys.js +1 -2
  561. package/dist/types/WeightedArray.js +1 -2
  562. package/dist/types/WidenLiteral.js +1 -2
  563. package/dist/types/Writable.js +1 -2
  564. package/dist/types/private/CallbackTuple.js +1 -2
  565. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  566. package/package.json +3 -3
  567. package/src/interfaces/PlayerHealth.ts +12 -11
package/dist/features.js CHANGED
@@ -1,150 +1,147 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFeatures = getFeatures;
4
- const CustomGridEntities_1 = require("./classes/features/callbackLogic/CustomGridEntities");
5
- const CustomRevive_1 = require("./classes/features/callbackLogic/CustomRevive");
6
- const EsauJrDetection_1 = require("./classes/features/callbackLogic/EsauJrDetection");
7
- const FlipDetection_1 = require("./classes/features/callbackLogic/FlipDetection");
8
- const GameReorderedCallbacks_1 = require("./classes/features/callbackLogic/GameReorderedCallbacks");
9
- const GridEntityCollisionDetection_1 = require("./classes/features/callbackLogic/GridEntityCollisionDetection");
10
- const GridEntityRenderDetection_1 = require("./classes/features/callbackLogic/GridEntityRenderDetection");
11
- const GridEntityUpdateDetection_1 = require("./classes/features/callbackLogic/GridEntityUpdateDetection");
12
- const ItemPickupDetection_1 = require("./classes/features/callbackLogic/ItemPickupDetection");
13
- const PickupChangeDetection_1 = require("./classes/features/callbackLogic/PickupChangeDetection");
14
- const PlayerCollectibleDetection_1 = require("./classes/features/callbackLogic/PlayerCollectibleDetection");
15
- const PlayerReorderedCallbacks_1 = require("./classes/features/callbackLogic/PlayerReorderedCallbacks");
16
- const SlotDestroyedDetection_1 = require("./classes/features/callbackLogic/SlotDestroyedDetection");
17
- const SlotRenderDetection_1 = require("./classes/features/callbackLogic/SlotRenderDetection");
18
- const SlotUpdateDetection_1 = require("./classes/features/callbackLogic/SlotUpdateDetection");
19
- const CharacterHealthConversion_1 = require("./classes/features/other/CharacterHealthConversion");
20
- const CharacterStats_1 = require("./classes/features/other/CharacterStats");
21
- const CollectibleItemPoolType_1 = require("./classes/features/other/CollectibleItemPoolType");
22
- const CustomHotkeys_1 = require("./classes/features/other/CustomHotkeys");
23
- const CustomItemPools_1 = require("./classes/features/other/CustomItemPools");
24
- const CustomPickups_1 = require("./classes/features/other/CustomPickups");
25
- const CustomStages_1 = require("./classes/features/other/CustomStages");
26
- const CustomTrapdoors_1 = require("./classes/features/other/CustomTrapdoors");
27
- const DebugDisplay_1 = require("./classes/features/other/DebugDisplay");
28
- const DeployJSONRoom_1 = require("./classes/features/other/DeployJSONRoom");
29
- const DisableAllSound_1 = require("./classes/features/other/DisableAllSound");
30
- const DisableInputs_1 = require("./classes/features/other/DisableInputs");
31
- const EdenStartingStatsHealth_1 = require("./classes/features/other/EdenStartingStatsHealth");
32
- const ExtraConsoleCommands_1 = require("./classes/features/other/ExtraConsoleCommands");
33
- const FadeInRemover_1 = require("./classes/features/other/FadeInRemover");
34
- const FastReset_1 = require("./classes/features/other/FastReset");
35
- const FlyingDetection_1 = require("./classes/features/other/FlyingDetection");
36
- const ForgottenSwitch_1 = require("./classes/features/other/ForgottenSwitch");
37
- const ItemPoolDetection_1 = require("./classes/features/other/ItemPoolDetection");
38
- const ModdedElementDetection_1 = require("./classes/features/other/ModdedElementDetection");
39
- const ModdedElementSets_1 = require("./classes/features/other/ModdedElementSets");
40
- const NoSirenSteal_1 = require("./classes/features/other/NoSirenSteal");
41
- const Pause_1 = require("./classes/features/other/Pause");
42
- const PersistentEntities_1 = require("./classes/features/other/PersistentEntities");
43
- const PickupIndexCreation_1 = require("./classes/features/other/PickupIndexCreation");
44
- const PlayerCollectibleTracking_1 = require("./classes/features/other/PlayerCollectibleTracking");
45
- const PonyDetection_1 = require("./classes/features/other/PonyDetection");
46
- const PressInput_1 = require("./classes/features/other/PressInput");
47
- const PreventChildEntities_1 = require("./classes/features/other/PreventChildEntities");
48
- const PreventGridEntityRespawn_1 = require("./classes/features/other/PreventGridEntityRespawn");
49
- const RerunDetection_1 = require("./classes/features/other/RerunDetection");
50
- const RoomClearFrame_1 = require("./classes/features/other/RoomClearFrame");
51
- const RoomHistory_1 = require("./classes/features/other/RoomHistory");
52
- const RunInNFrames_1 = require("./classes/features/other/RunInNFrames");
53
- const RunNextRoom_1 = require("./classes/features/other/RunNextRoom");
54
- const RunNextRun_1 = require("./classes/features/other/RunNextRun");
55
- const SaveDataManager_1 = require("./classes/features/other/SaveDataManager");
56
- const SpawnRockAltRewards_1 = require("./classes/features/other/SpawnRockAltRewards");
57
- const StageHistory_1 = require("./classes/features/other/StageHistory");
58
- const StartAmbush_1 = require("./classes/features/other/StartAmbush");
59
- const TaintedLazarusPlayers_1 = require("./classes/features/other/TaintedLazarusPlayers");
60
- const UnlockAchievementsDetection_1 = require("./classes/features/other/UnlockAchievementsDetection");
61
- const ISCFeature_1 = require("./enums/ISCFeature");
62
- const ModCallbackCustom_1 = require("./enums/ModCallbackCustom");
63
- const enums_1 = require("./functions/enums");
1
+ import { CustomGridEntities } from "./classes/features/callbackLogic/CustomGridEntities";
2
+ import { CustomRevive } from "./classes/features/callbackLogic/CustomRevive";
3
+ import { EsauJrDetection } from "./classes/features/callbackLogic/EsauJrDetection";
4
+ import { FlipDetection } from "./classes/features/callbackLogic/FlipDetection";
5
+ import { GameReorderedCallbacks } from "./classes/features/callbackLogic/GameReorderedCallbacks";
6
+ import { GridEntityCollisionDetection } from "./classes/features/callbackLogic/GridEntityCollisionDetection";
7
+ import { GridEntityRenderDetection } from "./classes/features/callbackLogic/GridEntityRenderDetection";
8
+ import { GridEntityUpdateDetection } from "./classes/features/callbackLogic/GridEntityUpdateDetection";
9
+ import { ItemPickupDetection } from "./classes/features/callbackLogic/ItemPickupDetection";
10
+ import { PickupChangeDetection } from "./classes/features/callbackLogic/PickupChangeDetection";
11
+ import { PlayerCollectibleDetection } from "./classes/features/callbackLogic/PlayerCollectibleDetection";
12
+ import { PlayerReorderedCallbacks } from "./classes/features/callbackLogic/PlayerReorderedCallbacks";
13
+ import { SlotDestroyedDetection } from "./classes/features/callbackLogic/SlotDestroyedDetection";
14
+ import { SlotRenderDetection } from "./classes/features/callbackLogic/SlotRenderDetection";
15
+ import { SlotUpdateDetection } from "./classes/features/callbackLogic/SlotUpdateDetection";
16
+ import { CharacterHealthConversion } from "./classes/features/other/CharacterHealthConversion";
17
+ import { CharacterStats } from "./classes/features/other/CharacterStats";
18
+ import { CollectibleItemPoolType } from "./classes/features/other/CollectibleItemPoolType";
19
+ import { CustomHotkeys } from "./classes/features/other/CustomHotkeys";
20
+ import { CustomItemPools } from "./classes/features/other/CustomItemPools";
21
+ import { CustomPickups } from "./classes/features/other/CustomPickups";
22
+ import { CustomStages } from "./classes/features/other/CustomStages";
23
+ import { CustomTrapdoors } from "./classes/features/other/CustomTrapdoors";
24
+ import { DebugDisplay } from "./classes/features/other/DebugDisplay";
25
+ import { DeployJSONRoom } from "./classes/features/other/DeployJSONRoom";
26
+ import { DisableAllSound } from "./classes/features/other/DisableAllSound";
27
+ import { DisableInputs } from "./classes/features/other/DisableInputs";
28
+ import { EdenStartingStatsHealth } from "./classes/features/other/EdenStartingStatsHealth";
29
+ import { ExtraConsoleCommands } from "./classes/features/other/ExtraConsoleCommands";
30
+ import { FadeInRemover } from "./classes/features/other/FadeInRemover";
31
+ import { FastReset } from "./classes/features/other/FastReset";
32
+ import { FlyingDetection } from "./classes/features/other/FlyingDetection";
33
+ import { ForgottenSwitch } from "./classes/features/other/ForgottenSwitch";
34
+ import { ItemPoolDetection } from "./classes/features/other/ItemPoolDetection";
35
+ import { ModdedElementDetection } from "./classes/features/other/ModdedElementDetection";
36
+ import { ModdedElementSets } from "./classes/features/other/ModdedElementSets";
37
+ import { NoSirenSteal } from "./classes/features/other/NoSirenSteal";
38
+ import { Pause } from "./classes/features/other/Pause";
39
+ import { PersistentEntities } from "./classes/features/other/PersistentEntities";
40
+ import { PickupIndexCreation } from "./classes/features/other/PickupIndexCreation";
41
+ import { PlayerCollectibleTracking } from "./classes/features/other/PlayerCollectibleTracking";
42
+ import { PonyDetection } from "./classes/features/other/PonyDetection";
43
+ import { PressInput } from "./classes/features/other/PressInput";
44
+ import { PreventChildEntities } from "./classes/features/other/PreventChildEntities";
45
+ import { PreventGridEntityRespawn } from "./classes/features/other/PreventGridEntityRespawn";
46
+ import { RerunDetection } from "./classes/features/other/RerunDetection";
47
+ import { RoomClearFrame } from "./classes/features/other/RoomClearFrame";
48
+ import { RoomHistory } from "./classes/features/other/RoomHistory";
49
+ import { RunInNFrames } from "./classes/features/other/RunInNFrames";
50
+ import { RunNextRoom } from "./classes/features/other/RunNextRoom";
51
+ import { RunNextRun } from "./classes/features/other/RunNextRun";
52
+ import { SaveDataManager } from "./classes/features/other/SaveDataManager";
53
+ import { SpawnRockAltRewards } from "./classes/features/other/SpawnRockAltRewards";
54
+ import { StageHistory } from "./classes/features/other/StageHistory";
55
+ import { StartAmbush } from "./classes/features/other/StartAmbush";
56
+ import { TaintedLazarusPlayers } from "./classes/features/other/TaintedLazarusPlayers";
57
+ import { UnlockAchievementsDetection } from "./classes/features/other/UnlockAchievementsDetection";
58
+ import { ISCFeature } from "./enums/ISCFeature";
59
+ import { ModCallbackCustom } from "./enums/ModCallbackCustom";
60
+ import { interfaceSatisfiesEnum } from "./functions/enums";
64
61
  // eslint-disable-next-line unicorn/no-top-level-side-effects
65
- (0, enums_1.interfaceSatisfiesEnum)();
62
+ interfaceSatisfiesEnum();
66
63
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
67
- function getFeatures(mod, callbacks) {
64
+ export function getFeatures(mod, callbacks) {
68
65
  // Some features rely on other features; we must initialize those first.
69
- const gameReorderedCallbacks = new GameReorderedCallbacks_1.GameReorderedCallbacks(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GAME_STARTED_REORDERED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_NEW_LEVEL_REORDERED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_NEW_ROOM_REORDERED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GAME_STARTED_REORDERED_LAST]);
70
- const disableAllSound = new DisableAllSound_1.DisableAllSound();
71
- const disableInputs = new DisableInputs_1.DisableInputs();
72
- const moddedElementDetection = new ModdedElementDetection_1.ModdedElementDetection();
73
- const ponyDetection = new PonyDetection_1.PonyDetection();
74
- const pressInput = new PressInput_1.PressInput();
75
- const roomClearFrame = new RoomClearFrame_1.RoomClearFrame();
76
- const roomHistory = new RoomHistory_1.RoomHistory();
77
- const runNextRoom = new RunNextRoom_1.RunNextRoom();
78
- const saveDataManager = new SaveDataManager_1.SaveDataManager(mod);
79
- const stageHistory = new StageHistory_1.StageHistory();
80
- const runInNFrames = new RunInNFrames_1.RunInNFrames(roomHistory);
81
- const pickupIndexCreation = new PickupIndexCreation_1.PickupIndexCreation(roomHistory, saveDataManager);
82
- const customGridEntities = new CustomGridEntities_1.CustomGridEntities(runInNFrames);
83
- const moddedElementSets = new ModdedElementSets_1.ModdedElementSets(moddedElementDetection);
84
- const itemPoolDetection = new ItemPoolDetection_1.ItemPoolDetection(moddedElementSets);
85
- const pause = new Pause_1.Pause(disableInputs);
86
- const preventGridEntityRespawn = new PreventGridEntityRespawn_1.PreventGridEntityRespawn(runInNFrames);
87
- const customTrapdoors = new CustomTrapdoors_1.CustomTrapdoors(customGridEntities, disableInputs, ponyDetection, roomClearFrame, runInNFrames, runNextRoom, stageHistory);
66
+ const gameReorderedCallbacks = new GameReorderedCallbacks(callbacks[ModCallbackCustom.POST_GAME_STARTED_REORDERED], callbacks[ModCallbackCustom.POST_NEW_LEVEL_REORDERED], callbacks[ModCallbackCustom.POST_NEW_ROOM_REORDERED], callbacks[ModCallbackCustom.POST_GAME_STARTED_REORDERED_LAST]);
67
+ const disableAllSound = new DisableAllSound();
68
+ const disableInputs = new DisableInputs();
69
+ const moddedElementDetection = new ModdedElementDetection();
70
+ const ponyDetection = new PonyDetection();
71
+ const pressInput = new PressInput();
72
+ const roomClearFrame = new RoomClearFrame();
73
+ const roomHistory = new RoomHistory();
74
+ const runNextRoom = new RunNextRoom();
75
+ const saveDataManager = new SaveDataManager(mod);
76
+ const stageHistory = new StageHistory();
77
+ const runInNFrames = new RunInNFrames(roomHistory);
78
+ const pickupIndexCreation = new PickupIndexCreation(roomHistory, saveDataManager);
79
+ const customGridEntities = new CustomGridEntities(runInNFrames);
80
+ const moddedElementSets = new ModdedElementSets(moddedElementDetection);
81
+ const itemPoolDetection = new ItemPoolDetection(moddedElementSets);
82
+ const pause = new Pause(disableInputs);
83
+ const preventGridEntityRespawn = new PreventGridEntityRespawn(runInNFrames);
84
+ const customTrapdoors = new CustomTrapdoors(customGridEntities, disableInputs, ponyDetection, roomClearFrame, runInNFrames, runNextRoom, stageHistory);
88
85
  const features = {
89
86
  // Callback logic
90
- [ISCFeature_1.ISCFeature.CUSTOM_REVIVE]: new CustomRevive_1.CustomRevive(callbacks[ModCallbackCustom_1.ModCallbackCustom.PRE_CUSTOM_REVIVE], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_CUSTOM_REVIVE], runInNFrames),
91
- [ISCFeature_1.ISCFeature.ESAU_JR_DETECTION]: new EsauJrDetection_1.EsauJrDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_ESAU_JR], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_FIRST_ESAU_JR]),
92
- [ISCFeature_1.ISCFeature.FLIP_DETECTION]: new FlipDetection_1.FlipDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_FLIP], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_FIRST_FLIP]),
93
- [ISCFeature_1.ISCFeature.GRID_ENTITY_COLLISION_DETECTION]: new GridEntityCollisionDetection_1.GridEntityCollisionDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_COLLISION], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION], customGridEntities),
94
- [ISCFeature_1.ISCFeature.GRID_ENTITY_UPDATE_DETECTION]: new GridEntityUpdateDetection_1.GridEntityUpdateDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_INIT], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_UPDATE], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_REMOVE], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_BROKEN], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN], customGridEntities),
95
- [ISCFeature_1.ISCFeature.GRID_ENTITY_RENDER_DETECTION]: new GridEntityRenderDetection_1.GridEntityRenderDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_RENDER], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER], customGridEntities),
96
- [ISCFeature_1.ISCFeature.GAME_REORDERED_CALLBACKS]: gameReorderedCallbacks,
97
- [ISCFeature_1.ISCFeature.ITEM_PICKUP_DETECTION]: new ItemPickupDetection_1.ItemPickupDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_ITEM_PICKUP], callbacks[ModCallbackCustom_1.ModCallbackCustom.PRE_ITEM_PICKUP]),
98
- [ISCFeature_1.ISCFeature.PICKUP_CHANGE_DETECTION]: new PickupChangeDetection_1.PickupChangeDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_PICKUP_CHANGED], pickupIndexCreation),
99
- [ISCFeature_1.ISCFeature.PLAYER_COLLECTIBLE_DETECTION]: new PlayerCollectibleDetection_1.PlayerCollectibleDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED], moddedElementSets, runInNFrames),
100
- [ISCFeature_1.ISCFeature.PLAYER_REORDERED_CALLBACKS]: new PlayerReorderedCallbacks_1.PlayerReorderedCallbacks(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_PLAYER_RENDER_REORDERED], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED]),
101
- [ISCFeature_1.ISCFeature.SLOT_DESTROYED_DETECTION]: new SlotDestroyedDetection_1.SlotDestroyedDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_DESTROYED], roomHistory),
102
- [ISCFeature_1.ISCFeature.SLOT_RENDER_DETECTION]: new SlotRenderDetection_1.SlotRenderDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_RENDER], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED]),
103
- [ISCFeature_1.ISCFeature.SLOT_UPDATE_DETECTION]: new SlotUpdateDetection_1.SlotUpdateDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_INIT], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_UPDATE]),
87
+ [ISCFeature.CUSTOM_REVIVE]: new CustomRevive(callbacks[ModCallbackCustom.PRE_CUSTOM_REVIVE], callbacks[ModCallbackCustom.POST_CUSTOM_REVIVE], runInNFrames),
88
+ [ISCFeature.ESAU_JR_DETECTION]: new EsauJrDetection(callbacks[ModCallbackCustom.POST_ESAU_JR], callbacks[ModCallbackCustom.POST_FIRST_ESAU_JR]),
89
+ [ISCFeature.FLIP_DETECTION]: new FlipDetection(callbacks[ModCallbackCustom.POST_FLIP], callbacks[ModCallbackCustom.POST_FIRST_FLIP]),
90
+ [ISCFeature.GRID_ENTITY_COLLISION_DETECTION]: new GridEntityCollisionDetection(callbacks[ModCallbackCustom.POST_GRID_ENTITY_COLLISION], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_COLLISION], customGridEntities),
91
+ [ISCFeature.GRID_ENTITY_UPDATE_DETECTION]: new GridEntityUpdateDetection(callbacks[ModCallbackCustom.POST_GRID_ENTITY_INIT], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_INIT], callbacks[ModCallbackCustom.POST_GRID_ENTITY_UPDATE], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_UPDATE], callbacks[ModCallbackCustom.POST_GRID_ENTITY_REMOVE], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_REMOVE], callbacks[ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED], callbacks[ModCallbackCustom.POST_GRID_ENTITY_BROKEN], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_BROKEN], customGridEntities),
92
+ [ISCFeature.GRID_ENTITY_RENDER_DETECTION]: new GridEntityRenderDetection(callbacks[ModCallbackCustom.POST_GRID_ENTITY_RENDER], callbacks[ModCallbackCustom.POST_GRID_ENTITY_CUSTOM_RENDER], customGridEntities),
93
+ [ISCFeature.GAME_REORDERED_CALLBACKS]: gameReorderedCallbacks,
94
+ [ISCFeature.ITEM_PICKUP_DETECTION]: new ItemPickupDetection(callbacks[ModCallbackCustom.POST_ITEM_PICKUP], callbacks[ModCallbackCustom.PRE_ITEM_PICKUP]),
95
+ [ISCFeature.PICKUP_CHANGE_DETECTION]: new PickupChangeDetection(callbacks[ModCallbackCustom.POST_PICKUP_CHANGED], pickupIndexCreation),
96
+ [ISCFeature.PLAYER_COLLECTIBLE_DETECTION]: new PlayerCollectibleDetection(callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED], callbacks[ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED], moddedElementSets, runInNFrames),
97
+ [ISCFeature.PLAYER_REORDERED_CALLBACKS]: new PlayerReorderedCallbacks(callbacks[ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_RENDER_REORDERED], callbacks[ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED]),
98
+ [ISCFeature.SLOT_DESTROYED_DETECTION]: new SlotDestroyedDetection(callbacks[ModCallbackCustom.POST_SLOT_DESTROYED], roomHistory),
99
+ [ISCFeature.SLOT_RENDER_DETECTION]: new SlotRenderDetection(callbacks[ModCallbackCustom.POST_SLOT_RENDER], callbacks[ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED]),
100
+ [ISCFeature.SLOT_UPDATE_DETECTION]: new SlotUpdateDetection(callbacks[ModCallbackCustom.POST_SLOT_INIT], callbacks[ModCallbackCustom.POST_SLOT_UPDATE]),
104
101
  // Extra features
105
- [ISCFeature_1.ISCFeature.CHARACTER_HEALTH_CONVERSION]: new CharacterHealthConversion_1.CharacterHealthConversion(),
106
- [ISCFeature_1.ISCFeature.CHARACTER_STATS]: new CharacterStats_1.CharacterStats(),
107
- [ISCFeature_1.ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE]: new CollectibleItemPoolType_1.CollectibleItemPoolType(pickupIndexCreation),
108
- [ISCFeature_1.ISCFeature.CUSTOM_GRID_ENTITIES]: customGridEntities,
109
- [ISCFeature_1.ISCFeature.CUSTOM_ITEM_POOLS]: new CustomItemPools_1.CustomItemPools(),
110
- [ISCFeature_1.ISCFeature.CUSTOM_HOTKEYS]: new CustomHotkeys_1.CustomHotkeys(),
111
- [ISCFeature_1.ISCFeature.CUSTOM_PICKUPS]: new CustomPickups_1.CustomPickups(),
112
- [ISCFeature_1.ISCFeature.CUSTOM_STAGES]: new CustomStages_1.CustomStages(customGridEntities, customTrapdoors, disableAllSound, gameReorderedCallbacks, pause, runInNFrames),
113
- [ISCFeature_1.ISCFeature.CUSTOM_TRAPDOORS]: customTrapdoors,
114
- [ISCFeature_1.ISCFeature.DEBUG_DISPLAY]: new DebugDisplay_1.DebugDisplay(mod),
115
- [ISCFeature_1.ISCFeature.DEPLOY_JSON_ROOM]: new DeployJSONRoom_1.DeployJSONRoom(preventGridEntityRespawn),
116
- [ISCFeature_1.ISCFeature.DISABLE_ALL_SOUND]: disableAllSound,
117
- [ISCFeature_1.ISCFeature.DISABLE_INPUTS]: disableInputs,
118
- [ISCFeature_1.ISCFeature.EDEN_STARTING_STATS_HEALTH]: new EdenStartingStatsHealth_1.EdenStartingStatsHealth(),
119
- [ISCFeature_1.ISCFeature.FADE_IN_REMOVER]: new FadeInRemover_1.FadeInRemover(),
120
- [ISCFeature_1.ISCFeature.FAST_RESET]: new FastReset_1.FastReset(),
121
- [ISCFeature_1.ISCFeature.FLYING_DETECTION]: new FlyingDetection_1.FlyingDetection(moddedElementSets),
122
- [ISCFeature_1.ISCFeature.FORGOTTEN_SWITCH]: new ForgottenSwitch_1.ForgottenSwitch(pressInput),
123
- [ISCFeature_1.ISCFeature.EXTRA_CONSOLE_COMMANDS]: new ExtraConsoleCommands_1.ExtraConsoleCommands(),
124
- [ISCFeature_1.ISCFeature.ITEM_POOL_DETECTION]: itemPoolDetection,
125
- [ISCFeature_1.ISCFeature.MODDED_ELEMENT_DETECTION]: moddedElementDetection,
126
- [ISCFeature_1.ISCFeature.MODDED_ELEMENT_SETS]: moddedElementSets,
127
- [ISCFeature_1.ISCFeature.NO_SIREN_STEAL]: new NoSirenSteal_1.NoSirenSteal(),
128
- [ISCFeature_1.ISCFeature.PAUSE]: pause,
129
- [ISCFeature_1.ISCFeature.PERSISTENT_ENTITIES]: new PersistentEntities_1.PersistentEntities(roomHistory),
130
- [ISCFeature_1.ISCFeature.PICKUP_INDEX_CREATION]: pickupIndexCreation,
131
- [ISCFeature_1.ISCFeature.PLAYER_COLLECTIBLE_TRACKING]: new PlayerCollectibleTracking_1.PlayerCollectibleTracking(),
132
- [ISCFeature_1.ISCFeature.PONY_DETECTION]: ponyDetection,
133
- [ISCFeature_1.ISCFeature.PRESS_INPUT]: pressInput,
134
- [ISCFeature_1.ISCFeature.PREVENT_CHILD_ENTITIES]: new PreventChildEntities_1.PreventChildEntities(),
135
- [ISCFeature_1.ISCFeature.PREVENT_GRID_ENTITY_RESPAWN]: preventGridEntityRespawn,
136
- [ISCFeature_1.ISCFeature.RERUN_DETECTION]: new RerunDetection_1.RerunDetection(),
137
- [ISCFeature_1.ISCFeature.ROOM_CLEAR_FRAME]: roomClearFrame,
138
- [ISCFeature_1.ISCFeature.ROOM_HISTORY]: roomHistory,
139
- [ISCFeature_1.ISCFeature.RUN_IN_N_FRAMES]: runInNFrames,
140
- [ISCFeature_1.ISCFeature.RUN_NEXT_ROOM]: runNextRoom,
141
- [ISCFeature_1.ISCFeature.RUN_NEXT_RUN]: new RunNextRun_1.RunNextRun(),
142
- [ISCFeature_1.ISCFeature.SAVE_DATA_MANAGER]: saveDataManager,
143
- [ISCFeature_1.ISCFeature.SPAWN_ALT_ROCK_REWARDS]: new SpawnRockAltRewards_1.SpawnRockAltRewards(itemPoolDetection),
144
- [ISCFeature_1.ISCFeature.STAGE_HISTORY]: stageHistory,
145
- [ISCFeature_1.ISCFeature.START_AMBUSH]: new StartAmbush_1.StartAmbush(runInNFrames),
146
- [ISCFeature_1.ISCFeature.TAINTED_LAZARUS_PLAYERS]: new TaintedLazarusPlayers_1.TaintedLazarusPlayers(),
147
- [ISCFeature_1.ISCFeature.UNLOCK_ACHIEVEMENTS_DETECTION]: new UnlockAchievementsDetection_1.UnlockAchievementsDetection(),
102
+ [ISCFeature.CHARACTER_HEALTH_CONVERSION]: new CharacterHealthConversion(),
103
+ [ISCFeature.CHARACTER_STATS]: new CharacterStats(),
104
+ [ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE]: new CollectibleItemPoolType(pickupIndexCreation),
105
+ [ISCFeature.CUSTOM_GRID_ENTITIES]: customGridEntities,
106
+ [ISCFeature.CUSTOM_ITEM_POOLS]: new CustomItemPools(),
107
+ [ISCFeature.CUSTOM_HOTKEYS]: new CustomHotkeys(),
108
+ [ISCFeature.CUSTOM_PICKUPS]: new CustomPickups(),
109
+ [ISCFeature.CUSTOM_STAGES]: new CustomStages(customGridEntities, customTrapdoors, disableAllSound, gameReorderedCallbacks, pause, runInNFrames),
110
+ [ISCFeature.CUSTOM_TRAPDOORS]: customTrapdoors,
111
+ [ISCFeature.DEBUG_DISPLAY]: new DebugDisplay(mod),
112
+ [ISCFeature.DEPLOY_JSON_ROOM]: new DeployJSONRoom(preventGridEntityRespawn),
113
+ [ISCFeature.DISABLE_ALL_SOUND]: disableAllSound,
114
+ [ISCFeature.DISABLE_INPUTS]: disableInputs,
115
+ [ISCFeature.EDEN_STARTING_STATS_HEALTH]: new EdenStartingStatsHealth(),
116
+ [ISCFeature.FADE_IN_REMOVER]: new FadeInRemover(),
117
+ [ISCFeature.FAST_RESET]: new FastReset(),
118
+ [ISCFeature.FLYING_DETECTION]: new FlyingDetection(moddedElementSets),
119
+ [ISCFeature.FORGOTTEN_SWITCH]: new ForgottenSwitch(pressInput),
120
+ [ISCFeature.EXTRA_CONSOLE_COMMANDS]: new ExtraConsoleCommands(),
121
+ [ISCFeature.ITEM_POOL_DETECTION]: itemPoolDetection,
122
+ [ISCFeature.MODDED_ELEMENT_DETECTION]: moddedElementDetection,
123
+ [ISCFeature.MODDED_ELEMENT_SETS]: moddedElementSets,
124
+ [ISCFeature.NO_SIREN_STEAL]: new NoSirenSteal(),
125
+ [ISCFeature.PAUSE]: pause,
126
+ [ISCFeature.PERSISTENT_ENTITIES]: new PersistentEntities(roomHistory),
127
+ [ISCFeature.PICKUP_INDEX_CREATION]: pickupIndexCreation,
128
+ [ISCFeature.PLAYER_COLLECTIBLE_TRACKING]: new PlayerCollectibleTracking(),
129
+ [ISCFeature.PONY_DETECTION]: ponyDetection,
130
+ [ISCFeature.PRESS_INPUT]: pressInput,
131
+ [ISCFeature.PREVENT_CHILD_ENTITIES]: new PreventChildEntities(),
132
+ [ISCFeature.PREVENT_GRID_ENTITY_RESPAWN]: preventGridEntityRespawn,
133
+ [ISCFeature.RERUN_DETECTION]: new RerunDetection(),
134
+ [ISCFeature.ROOM_CLEAR_FRAME]: roomClearFrame,
135
+ [ISCFeature.ROOM_HISTORY]: roomHistory,
136
+ [ISCFeature.RUN_IN_N_FRAMES]: runInNFrames,
137
+ [ISCFeature.RUN_NEXT_ROOM]: runNextRoom,
138
+ [ISCFeature.RUN_NEXT_RUN]: new RunNextRun(),
139
+ [ISCFeature.SAVE_DATA_MANAGER]: saveDataManager,
140
+ [ISCFeature.SPAWN_ALT_ROCK_REWARDS]: new SpawnRockAltRewards(itemPoolDetection),
141
+ [ISCFeature.STAGE_HISTORY]: stageHistory,
142
+ [ISCFeature.START_AMBUSH]: new StartAmbush(runInNFrames),
143
+ [ISCFeature.TAINTED_LAZARUS_PLAYERS]: new TaintedLazarusPlayers(),
144
+ [ISCFeature.UNLOCK_ACHIEVEMENTS_DETECTION]: new UnlockAchievementsDetection(),
148
145
  };
149
146
  return features;
150
147
  }
@@ -1,22 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAmbushType = getAmbushType;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const cachedClasses_1 = require("../core/cachedClasses");
6
- const AmbushType_1 = require("../enums/AmbushType");
1
+ import { RoomType } from "isaac-typescript-definitions";
2
+ import { game } from "../core/cachedClasses";
3
+ import { AmbushType } from "../enums/AmbushType";
7
4
  /**
8
5
  * Helper function to get the corresponding ambush type for the current room. Returns undefined if
9
6
  * the current room does not correspond to any particular ambush type.
10
7
  */
11
- function getAmbushType() {
12
- const room = cachedClasses_1.game.GetRoom();
8
+ export function getAmbushType() {
9
+ const room = game.GetRoom();
13
10
  const roomType = room.GetType();
14
11
  switch (roomType) {
15
- case isaac_typescript_definitions_1.RoomType.BOSS_RUSH: {
16
- return AmbushType_1.AmbushType.BOSS_RUSH;
12
+ case RoomType.BOSS_RUSH: {
13
+ return AmbushType.BOSS_RUSH;
17
14
  }
18
- case isaac_typescript_definitions_1.RoomType.CHALLENGE: {
19
- return AmbushType_1.AmbushType.CHALLENGE_ROOM;
15
+ case RoomType.CHALLENGE: {
16
+ return AmbushType.CHALLENGE_ROOM;
20
17
  }
21
18
  default: {
22
19
  return undefined;