isaacscript-common 84.0.0 → 84.1.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 (568) hide show
  1. package/dist/arrays/cachedEnumValues.js +33 -0
  2. package/dist/callbackClasses.js +289 -0
  3. package/dist/callbacks.js +181 -0
  4. package/dist/classes/DefaultMap.js +171 -0
  5. package/dist/classes/ModFeature.js +244 -0
  6. package/dist/classes/ModUpgraded.js +324 -0
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +19 -0
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +29 -0
  9. package/dist/classes/callbacks/InputActionFilter.js +24 -0
  10. package/dist/classes/callbacks/InputActionPlayer.js +37 -0
  11. package/dist/classes/callbacks/PostAmbushFinished.js +40 -0
  12. package/dist/classes/callbacks/PostAmbushStarted.js +40 -0
  13. package/dist/classes/callbacks/PostBombExploded.js +24 -0
  14. package/dist/classes/callbacks/PostBombInitFilter.js +21 -0
  15. package/dist/classes/callbacks/PostBombInitLate.js +31 -0
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +21 -0
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +21 -0
  18. package/dist/classes/callbacks/PostBoneSwing.js +53 -0
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +50 -0
  20. package/dist/classes/callbacks/PostCursedTeleport.js +119 -0
  21. package/dist/classes/callbacks/PostCustomRevive.js +17 -0
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +50 -0
  23. package/dist/classes/callbacks/PostDoorRender.js +24 -0
  24. package/dist/classes/callbacks/PostDoorUpdate.js +24 -0
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +21 -0
  26. package/dist/classes/callbacks/PostEffectInitLate.js +31 -0
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +21 -0
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +34 -0
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +21 -0
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +21 -0
  31. package/dist/classes/callbacks/PostEsauJr.js +12 -0
  32. package/dist/classes/callbacks/PostFamiliarInitFilter.js +21 -0
  33. package/dist/classes/callbacks/PostFamiliarInitLate.js +31 -0
  34. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +21 -0
  35. package/dist/classes/callbacks/PostFamiliarStateChanged.js +34 -0
  36. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +21 -0
  37. package/dist/classes/callbacks/PostFirstEsauJr.js +12 -0
  38. package/dist/classes/callbacks/PostFirstFlip.js +12 -0
  39. package/dist/classes/callbacks/PostFlip.js +12 -0
  40. package/dist/classes/callbacks/PostGameEndFilter.js +21 -0
  41. package/dist/classes/callbacks/PostGameStartedReordered.js +14 -0
  42. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +14 -0
  43. package/dist/classes/callbacks/PostGreedModeWave.js +35 -0
  44. package/dist/classes/callbacks/PostGridEntityBroken.js +14 -0
  45. package/dist/classes/callbacks/PostGridEntityCollision.js +28 -0
  46. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +14 -0
  47. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +24 -0
  48. package/dist/classes/callbacks/PostGridEntityCustomInit.js +14 -0
  49. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +18 -0
  50. package/dist/classes/callbacks/PostGridEntityCustomRender.js +14 -0
  51. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +14 -0
  52. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +14 -0
  53. package/dist/classes/callbacks/PostGridEntityInit.js +14 -0
  54. package/dist/classes/callbacks/PostGridEntityRemove.js +19 -0
  55. package/dist/classes/callbacks/PostGridEntityRender.js +14 -0
  56. package/dist/classes/callbacks/PostGridEntityStateChanged.js +14 -0
  57. package/dist/classes/callbacks/PostGridEntityUpdate.js +14 -0
  58. package/dist/classes/callbacks/PostHolyMantleRemoved.js +43 -0
  59. package/dist/classes/callbacks/PostItemDischarge.js +122 -0
  60. package/dist/classes/callbacks/PostItemPickup.js +14 -0
  61. package/dist/classes/callbacks/PostKeyboardChanged.js +46 -0
  62. package/dist/classes/callbacks/PostKnifeInitFilter.js +21 -0
  63. package/dist/classes/callbacks/PostKnifeInitLate.js +31 -0
  64. package/dist/classes/callbacks/PostKnifeRenderFilter.js +21 -0
  65. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +21 -0
  66. package/dist/classes/callbacks/PostLaserInitFilter.js +21 -0
  67. package/dist/classes/callbacks/PostLaserInitLate.js +31 -0
  68. package/dist/classes/callbacks/PostLaserRenderFilter.js +21 -0
  69. package/dist/classes/callbacks/PostLaserUpdateFilter.js +21 -0
  70. package/dist/classes/callbacks/PostNPCDeathFilter.js +21 -0
  71. package/dist/classes/callbacks/PostNPCInitFilter.js +21 -0
  72. package/dist/classes/callbacks/PostNPCInitLate.js +31 -0
  73. package/dist/classes/callbacks/PostNPCRenderFilter.js +21 -0
  74. package/dist/classes/callbacks/PostNPCStateChanged.js +34 -0
  75. package/dist/classes/callbacks/PostNPCUpdateFilter.js +21 -0
  76. package/dist/classes/callbacks/PostNewLevelReordered.js +14 -0
  77. package/dist/classes/callbacks/PostNewRoomEarly.js +74 -0
  78. package/dist/classes/callbacks/PostNewRoomReordered.js +14 -0
  79. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +14 -0
  80. package/dist/classes/callbacks/PostPickupChanged.js +14 -0
  81. package/dist/classes/callbacks/PostPickupCollect.js +38 -0
  82. package/dist/classes/callbacks/PostPickupInitFilter.js +21 -0
  83. package/dist/classes/callbacks/PostPickupInitFirst.js +33 -0
  84. package/dist/classes/callbacks/PostPickupInitLate.js +31 -0
  85. package/dist/classes/callbacks/PostPickupRenderFilter.js +21 -0
  86. package/dist/classes/callbacks/PostPickupSelectionFilter.js +29 -0
  87. package/dist/classes/callbacks/PostPickupStateChanged.js +34 -0
  88. package/dist/classes/callbacks/PostPickupUpdateFilter.js +21 -0
  89. package/dist/classes/callbacks/PostPitRender.js +24 -0
  90. package/dist/classes/callbacks/PostPitUpdate.js +24 -0
  91. package/dist/classes/callbacks/PostPlayerChangeHealth.js +47 -0
  92. package/dist/classes/callbacks/PostPlayerChangeStat.js +79 -0
  93. package/dist/classes/callbacks/PostPlayerChangeType.js +36 -0
  94. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +14 -0
  95. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +14 -0
  96. package/dist/classes/callbacks/PostPlayerFatalDamage.js +83 -0
  97. package/dist/classes/callbacks/PostPlayerInitFirst.js +41 -0
  98. package/dist/classes/callbacks/PostPlayerInitLate.js +33 -0
  99. package/dist/classes/callbacks/PostPlayerRenderReordered.js +14 -0
  100. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +14 -0
  101. package/dist/classes/callbacks/PostPoopRender.js +24 -0
  102. package/dist/classes/callbacks/PostPoopUpdate.js +24 -0
  103. package/dist/classes/callbacks/PostPressurePlateRender.js +24 -0
  104. package/dist/classes/callbacks/PostPressurePlateUpdate.js +24 -0
  105. package/dist/classes/callbacks/PostProjectileInitFilter.js +21 -0
  106. package/dist/classes/callbacks/PostProjectileInitLate.js +31 -0
  107. package/dist/classes/callbacks/PostProjectileKill.js +52 -0
  108. package/dist/classes/callbacks/PostProjectileRenderFilter.js +21 -0
  109. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +21 -0
  110. package/dist/classes/callbacks/PostPurchase.js +90 -0
  111. package/dist/classes/callbacks/PostRockRender.js +24 -0
  112. package/dist/classes/callbacks/PostRockUpdate.js +24 -0
  113. package/dist/classes/callbacks/PostRoomClearChanged.js +46 -0
  114. package/dist/classes/callbacks/PostSacrifice.js +36 -0
  115. package/dist/classes/callbacks/PostSlotAnimationChanged.js +14 -0
  116. package/dist/classes/callbacks/PostSlotCollision.js +25 -0
  117. package/dist/classes/callbacks/PostSlotDestroyed.js +14 -0
  118. package/dist/classes/callbacks/PostSlotInit.js +14 -0
  119. package/dist/classes/callbacks/PostSlotRender.js +14 -0
  120. package/dist/classes/callbacks/PostSlotUpdate.js +14 -0
  121. package/dist/classes/callbacks/PostSpikesRender.js +24 -0
  122. package/dist/classes/callbacks/PostSpikesUpdate.js +24 -0
  123. package/dist/classes/callbacks/PostTNTRender.js +24 -0
  124. package/dist/classes/callbacks/PostTNTUpdate.js +24 -0
  125. package/dist/classes/callbacks/PostTearInitFilter.js +21 -0
  126. package/dist/classes/callbacks/PostTearInitLate.js +31 -0
  127. package/dist/classes/callbacks/PostTearInitVeryLate.js +35 -0
  128. package/dist/classes/callbacks/PostTearKill.js +52 -0
  129. package/dist/classes/callbacks/PostTearRenderFilter.js +21 -0
  130. package/dist/classes/callbacks/PostTearUpdateFilter.js +21 -0
  131. package/dist/classes/callbacks/PostTransformation.js +47 -0
  132. package/dist/classes/callbacks/PostTrinketBreak.js +70 -0
  133. package/dist/classes/callbacks/PostUsePillFilter.js +76 -0
  134. package/dist/classes/callbacks/PreBerserkDeath.js +41 -0
  135. package/dist/classes/callbacks/PreBombCollisionFilter.js +19 -0
  136. package/dist/classes/callbacks/PreCustomRevive.js +14 -0
  137. package/dist/classes/callbacks/PreEntitySpawnFilter.js +24 -0
  138. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +19 -0
  139. package/dist/classes/callbacks/PreGetPedestal.js +46 -0
  140. package/dist/classes/callbacks/PreItemPickup.js +14 -0
  141. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +19 -0
  142. package/dist/classes/callbacks/PreNPCCollisionFilter.js +19 -0
  143. package/dist/classes/callbacks/PreNPCUpdateFilter.js +19 -0
  144. package/dist/classes/callbacks/PreNewLevel.js +51 -0
  145. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +19 -0
  146. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +26 -0
  147. package/dist/classes/callbacks/PreTearCollisionFilter.js +19 -0
  148. package/dist/classes/features/callbackLogic/CustomGridEntities.js +359 -0
  149. package/dist/classes/features/callbackLogic/CustomRevive.js +170 -0
  150. package/dist/classes/features/callbackLogic/EsauJrDetection.js +70 -0
  151. package/dist/classes/features/callbackLogic/FlipDetection.js +61 -0
  152. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +220 -0
  153. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +62 -0
  154. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +35 -0
  155. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +147 -0
  156. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +68 -0
  157. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +43 -0
  158. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +193 -0
  159. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +109 -0
  160. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +95 -0
  161. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +48 -0
  162. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +52 -0
  163. package/dist/classes/features/other/CharacterHealthConversion.js +112 -0
  164. package/dist/classes/features/other/CharacterStats.js +68 -0
  165. package/dist/classes/features/other/CollectibleItemPoolType.js +75 -0
  166. package/dist/classes/features/other/CustomHotkeys.js +144 -0
  167. package/dist/classes/features/other/CustomItemPools.js +128 -0
  168. package/dist/classes/features/other/CustomPickups.js +118 -0
  169. package/dist/classes/features/other/CustomStages.js +471 -0
  170. package/dist/classes/features/other/CustomTrapdoors.js +596 -0
  171. package/dist/classes/features/other/DebugDisplay.js +699 -0
  172. package/dist/classes/features/other/DeployJSONRoom.js +301 -0
  173. package/dist/classes/features/other/DisableAllSound.js +90 -0
  174. package/dist/classes/features/other/DisableInputs.js +249 -0
  175. package/dist/classes/features/other/EdenStartingStatsHealth.js +197 -0
  176. package/dist/classes/features/other/ExtraConsoleCommands.js +292 -0
  177. package/dist/classes/features/other/FadeInRemover.js +67 -0
  178. package/dist/classes/features/other/FastReset.js +88 -0
  179. package/dist/classes/features/other/FlyingDetection.js +64 -0
  180. package/dist/classes/features/other/ForgottenSwitch.js +43 -0
  181. package/dist/classes/features/other/ItemPoolDetection.js +187 -0
  182. package/dist/classes/features/other/ModdedElementDetection.js +399 -0
  183. package/dist/classes/features/other/ModdedElementSets.js +1251 -0
  184. package/dist/classes/features/other/NoSirenSteal.js +88 -0
  185. package/dist/classes/features/other/Pause.js +197 -0
  186. package/dist/classes/features/other/PersistentEntities.js +168 -0
  187. package/dist/classes/features/other/PickupIndexCreation.js +229 -0
  188. package/dist/classes/features/other/PlayerCollectibleTracking.js +102 -0
  189. package/dist/classes/features/other/PonyDetection.js +86 -0
  190. package/dist/classes/features/other/PressInput.js +71 -0
  191. package/dist/classes/features/other/PreventChildEntities.js +60 -0
  192. package/dist/classes/features/other/PreventGridEntityRespawn.js +159 -0
  193. package/dist/classes/features/other/RerunDetection.js +69 -0
  194. package/dist/classes/features/other/RoomClearFrame.js +94 -0
  195. package/dist/classes/features/other/RoomHistory.js +196 -0
  196. package/dist/classes/features/other/RunInNFrames.js +323 -0
  197. package/dist/classes/features/other/RunNextRoom.js +53 -0
  198. package/dist/classes/features/other/RunNextRun.js +60 -0
  199. package/dist/classes/features/other/SaveDataManager.js +383 -0
  200. package/dist/classes/features/other/SpawnRockAltRewards.js +469 -0
  201. package/dist/classes/features/other/StageHistory.js +244 -0
  202. package/dist/classes/features/other/StartAmbush.js +62 -0
  203. package/dist/classes/features/other/TaintedLazarusPlayers.js +115 -0
  204. package/dist/classes/features/other/UnlockAchievementsDetection.js +60 -0
  205. package/dist/classes/features/other/customStages/backdrop.js +195 -0
  206. package/dist/classes/features/other/customStages/constants.js +19 -0
  207. package/dist/classes/features/other/customStages/gridEntities.js +177 -0
  208. package/dist/classes/features/other/customStages/shadows.js +67 -0
  209. package/dist/classes/features/other/customStages/streakText.js +222 -0
  210. package/dist/classes/features/other/customStages/utils.js +65 -0
  211. package/dist/classes/features/other/customStages/v.js +27 -0
  212. package/dist/classes/features/other/customStages/versusScreen.js +227 -0
  213. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +23 -0
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +22 -0
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +23 -0
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +23 -0
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +23 -0
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +23 -0
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +23 -0
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +23 -0
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +22 -0
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +25 -0
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +22 -0
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +25 -0
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +23 -0
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +22 -0
  227. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +22 -0
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +22 -0
  229. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +22 -0
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +23 -0
  231. package/dist/classes/features/other/debugDisplay/utils.js +13 -0
  232. package/dist/classes/features/other/extraConsoleCommands/commands.js +1598 -0
  233. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +135 -0
  234. package/dist/classes/features/other/extraConsoleCommands/v.js +30 -0
  235. package/dist/classes/features/other/saveDataManager/constants.js +4 -0
  236. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +106 -0
  237. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +69 -0
  238. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +69 -0
  239. package/dist/classes/features/other/saveDataManager/saveToDisk.js +46 -0
  240. package/dist/classes/private/CustomCallback.js +59 -0
  241. package/dist/classes/private/Feature.js +39 -0
  242. package/dist/core/cachedClasses.js +61 -0
  243. package/dist/core/constants.js +289 -0
  244. package/dist/core/constantsFirstLast.js +98 -0
  245. package/dist/core/constantsVanilla.js +131 -0
  246. package/dist/core/upgradeMod.js +71 -0
  247. package/dist/customStageMetadata.json +1 -0
  248. package/dist/data/itempools.json +16625 -0
  249. package/dist/decorators.js +21 -0
  250. package/dist/enums/AmbushType.js +9 -0
  251. package/dist/enums/CornerType.js +11 -0
  252. package/dist/enums/HealthType.js +20 -0
  253. package/dist/enums/ISCFeature.js +65 -0
  254. package/dist/enums/LadderSubTypeCustom.js +20 -0
  255. package/dist/enums/ModCallbackCustom.js +2477 -0
  256. package/dist/enums/MysteriousPaperEffect.js +16 -0
  257. package/dist/enums/PlayerStat.js +37 -0
  258. package/dist/enums/PocketItemType.js +13 -0
  259. package/dist/enums/RockAltType.js +23 -0
  260. package/dist/enums/SaveDataKey.js +14 -0
  261. package/dist/enums/SerializationType.js +10 -0
  262. package/dist/enums/SlotDestructionType.js +22 -0
  263. package/dist/enums/private/GridEntityTypeCustom.js +10 -0
  264. package/dist/enums/private/SerializationBrand.js +42 -0
  265. package/dist/enums/private/StageTravelState.js +13 -0
  266. package/dist/enums/private/TrapdoorAnimation.js +9 -0
  267. package/dist/enums/private/UIStreakAnimation.js +10 -0
  268. package/dist/features.js +150 -0
  269. package/dist/functions/ambush.js +26 -0
  270. package/dist/functions/array.js +586 -0
  271. package/dist/functions/arrayLua.js +81 -0
  272. package/dist/functions/benchmark.js +36 -0
  273. package/dist/functions/bitSet128.js +64 -0
  274. package/dist/functions/bitwise.js +82 -0
  275. package/dist/functions/bombs.js +14 -0
  276. package/dist/functions/bosses.js +238 -0
  277. package/dist/functions/cards.js +164 -0
  278. package/dist/functions/challenges.js +117 -0
  279. package/dist/functions/characters.js +182 -0
  280. package/dist/functions/charge.js +251 -0
  281. package/dist/functions/chargeBar.js +54 -0
  282. package/dist/functions/collectibleTag.js +24 -0
  283. package/dist/functions/collectibles.js +581 -0
  284. package/dist/functions/color.js +88 -0
  285. package/dist/functions/console.js +18 -0
  286. package/dist/functions/curses.js +37 -0
  287. package/dist/functions/debugFunctions.js +108 -0
  288. package/dist/functions/decorators.js +113 -0
  289. package/dist/functions/deepCopy.js +406 -0
  290. package/dist/functions/deepCopyTests.js +361 -0
  291. package/dist/functions/dimensions.js +30 -0
  292. package/dist/functions/direction.js +78 -0
  293. package/dist/functions/doors.js +524 -0
  294. package/dist/functions/easing.js +327 -0
  295. package/dist/functions/effects.js +14 -0
  296. package/dist/functions/emptyRoom.js +79 -0
  297. package/dist/functions/entities.js +529 -0
  298. package/dist/functions/entitiesSpecific.js +582 -0
  299. package/dist/functions/entityTypes.js +9 -0
  300. package/dist/functions/enums.js +244 -0
  301. package/dist/functions/external.js +59 -0
  302. package/dist/functions/familiars.js +136 -0
  303. package/dist/functions/flag.js +146 -0
  304. package/dist/functions/frames.js +166 -0
  305. package/dist/functions/globals.js +291 -0
  306. package/dist/functions/gridEntities.js +990 -0
  307. package/dist/functions/gridEntitiesSpecific.js +456 -0
  308. package/dist/functions/gridIndex.js +35 -0
  309. package/dist/functions/hash.js +75 -0
  310. package/dist/functions/hex.js +57 -0
  311. package/dist/functions/input.js +185 -0
  312. package/dist/functions/isaacAPIClass.js +157 -0
  313. package/dist/functions/itemPool.js +118 -0
  314. package/dist/functions/jsonHelpers.js +73 -0
  315. package/dist/functions/jsonRoom.js +184 -0
  316. package/dist/functions/kColor.js +89 -0
  317. package/dist/functions/language.js +16 -0
  318. package/dist/functions/level.js +66 -0
  319. package/dist/functions/levelGrid.js +497 -0
  320. package/dist/functions/log.js +86 -0
  321. package/dist/functions/logEntities.js +308 -0
  322. package/dist/functions/logMisc.js +510 -0
  323. package/dist/functions/map.js +121 -0
  324. package/dist/functions/math.js +149 -0
  325. package/dist/functions/merge.js +159 -0
  326. package/dist/functions/mergeTests.js +313 -0
  327. package/dist/functions/minimap.js +204 -0
  328. package/dist/functions/modFeatures.js +39 -0
  329. package/dist/functions/newArray.js +30 -0
  330. package/dist/functions/nextStage.js +169 -0
  331. package/dist/functions/npcDataStructures.js +146 -0
  332. package/dist/functions/npcs.js +132 -0
  333. package/dist/functions/pickupVariants.js +63 -0
  334. package/dist/functions/pickups.js +168 -0
  335. package/dist/functions/pickupsSpecific.js +376 -0
  336. package/dist/functions/pills.js +200 -0
  337. package/dist/functions/playerCenter.js +53 -0
  338. package/dist/functions/playerCollectibles.js +300 -0
  339. package/dist/functions/playerDataStructures.js +145 -0
  340. package/dist/functions/playerEffects.js +63 -0
  341. package/dist/functions/playerHealth.js +604 -0
  342. package/dist/functions/playerIndex.js +186 -0
  343. package/dist/functions/playerTrinkets.js +149 -0
  344. package/dist/functions/players.js +471 -0
  345. package/dist/functions/pocketItems.js +165 -0
  346. package/dist/functions/positionVelocity.js +158 -0
  347. package/dist/functions/pressurePlate.js +26 -0
  348. package/dist/functions/projectiles.js +57 -0
  349. package/dist/functions/random.js +90 -0
  350. package/dist/functions/readOnly.js +33 -0
  351. package/dist/functions/render.js +36 -0
  352. package/dist/functions/revive.js +151 -0
  353. package/dist/functions/rng.js +140 -0
  354. package/dist/functions/rockAlt.js +50 -0
  355. package/dist/functions/roomData.js +155 -0
  356. package/dist/functions/roomGrid.js +97 -0
  357. package/dist/functions/roomShape.js +143 -0
  358. package/dist/functions/roomShapeWalls.js +187 -0
  359. package/dist/functions/roomTransition.js +43 -0
  360. package/dist/functions/rooms.js +782 -0
  361. package/dist/functions/run.js +121 -0
  362. package/dist/functions/seeds.js +22 -0
  363. package/dist/functions/serialization.js +98 -0
  364. package/dist/functions/set.js +215 -0
  365. package/dist/functions/slots.js +41 -0
  366. package/dist/functions/sort.js +158 -0
  367. package/dist/functions/sound.js +45 -0
  368. package/dist/functions/spawnCollectible.js +112 -0
  369. package/dist/functions/sprites.js +130 -0
  370. package/dist/functions/stage.js +540 -0
  371. package/dist/functions/stats.js +104 -0
  372. package/dist/functions/storyBosses.js +63 -0
  373. package/dist/functions/string.js +194 -0
  374. package/dist/functions/table.js +162 -0
  375. package/dist/functions/tears.js +128 -0
  376. package/dist/functions/transformations.js +89 -0
  377. package/dist/functions/trinketGive.js +145 -0
  378. package/dist/functions/trinkets.js +213 -0
  379. package/dist/functions/tstlClass.js +97 -0
  380. package/dist/functions/types.js +225 -0
  381. package/dist/functions/ui.js +148 -0
  382. package/dist/functions/utils.d.ts +4 -1
  383. package/dist/functions/utils.d.ts.map +1 -1
  384. package/dist/functions/utils.js +195 -0
  385. package/dist/functions/utils.lua +6 -2
  386. package/dist/functions/vector.js +150 -0
  387. package/dist/functions/versusScreen.js +58 -0
  388. package/dist/functions/weighted.js +57 -0
  389. package/dist/index.js +219 -0
  390. package/dist/index.rollup.d.ts +4 -1
  391. package/dist/indexLua.js +220 -0
  392. package/dist/interfaces/ChargeBarSprites.js +2 -0
  393. package/dist/interfaces/Corner.js +2 -0
  394. package/dist/interfaces/CustomStageTSConfig.js +2 -0
  395. package/dist/interfaces/GridEntityCustomData.js +2 -0
  396. package/dist/interfaces/JSONRoomsFile.js +2 -0
  397. package/dist/interfaces/PlayerHealth.js +2 -0
  398. package/dist/interfaces/PlayerStats.js +4 -0
  399. package/dist/interfaces/PocketItemDescription.js +2 -0
  400. package/dist/interfaces/RoomDescription.js +2 -0
  401. package/dist/interfaces/SaveData.js +98 -0
  402. package/dist/interfaces/StageHistoryEntry.js +2 -0
  403. package/dist/interfaces/TSTLClassMetatable.js +2 -0
  404. package/dist/interfaces/TrinketSituation.js +2 -0
  405. package/dist/interfaces/private/AddCallbackParametersCustom.js +4 -0
  406. package/dist/interfaces/private/CustomStage.js +2 -0
  407. package/dist/interfaces/private/CustomTrapdoorDescription.js +2 -0
  408. package/dist/interfaces/private/ModUpgradedInterface.js +2 -0
  409. package/dist/isaacscript-common.lua +7 -3
  410. package/dist/maps/PHDPillConversionsMap.js +23 -0
  411. package/dist/maps/cardNameToTypeMap.js +211 -0
  412. package/dist/maps/characterNameToTypeMap.js +91 -0
  413. package/dist/maps/collectibleNameToTypeMap.js +19 -0
  414. package/dist/maps/defaultPlayerStatMap.js +17 -0
  415. package/dist/maps/entityTypeVariantToBossIDMap.js +11 -0
  416. package/dist/maps/falsePHDPillConversionsMap.js +37 -0
  417. package/dist/maps/gridEntityTypeToBrokenStateMap.js +32 -0
  418. package/dist/maps/gridEntityXMLMap.js +133 -0
  419. package/dist/maps/itemPoolTypeToItemPoolName.js +38 -0
  420. package/dist/maps/keyboardToStringMap.js +71 -0
  421. package/dist/maps/pillNameToEffectMap.js +91 -0
  422. package/dist/maps/roomNameToTypeMap.js +43 -0
  423. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +17 -0
  424. package/dist/maps/transformationNameToPlayerFormMap.js +35 -0
  425. package/dist/maps/trinketNameToTypeMap.js +19 -0
  426. package/dist/objects/LRoomShapeToRectangles.js +43 -0
  427. package/dist/objects/backdropTypeToRockAltType.js +68 -0
  428. package/dist/objects/batteryNames.js +13 -0
  429. package/dist/objects/bombNames.js +17 -0
  430. package/dist/objects/bossIDToEntityTypeVariant.js +228 -0
  431. package/dist/objects/bossNamePNGFileNames.js +120 -0
  432. package/dist/objects/bossNames.js +119 -0
  433. package/dist/objects/bossPortraitPNGFileNames.js +123 -0
  434. package/dist/objects/cardDescriptions.js +106 -0
  435. package/dist/objects/cardNames.js +106 -0
  436. package/dist/objects/challengeBosses.js +60 -0
  437. package/dist/objects/challengeCharacters.js +58 -0
  438. package/dist/objects/challengeCollectibleTypes.js +255 -0
  439. package/dist/objects/challengeNames.js +54 -0
  440. package/dist/objects/challengeTrinketType.js +58 -0
  441. package/dist/objects/characterDamageMultipliers.js +49 -0
  442. package/dist/objects/characterNames.js +48 -0
  443. package/dist/objects/characterSpritePNGFileNames.js +50 -0
  444. package/dist/objects/characterStartingCollectibleTypes.js +105 -0
  445. package/dist/objects/characterStartingTrinketTypes.js +90 -0
  446. package/dist/objects/chestNames.js +20 -0
  447. package/dist/objects/coinNames.js +16 -0
  448. package/dist/objects/coinSubTypeToValue.js +15 -0
  449. package/dist/objects/collectibleDescriptions.js +742 -0
  450. package/dist/objects/collectibleNames.js +745 -0
  451. package/dist/objects/colors.js +26 -0
  452. package/dist/objects/directionNames.js +11 -0
  453. package/dist/objects/directionToDegrees.js +11 -0
  454. package/dist/objects/directionToMoveAction.js +11 -0
  455. package/dist/objects/directionToShootAction.js +11 -0
  456. package/dist/objects/directionToVector.js +13 -0
  457. package/dist/objects/doorSlotFlagToDoorSlot.js +15 -0
  458. package/dist/objects/doorSlotToDirection.js +15 -0
  459. package/dist/objects/doorSlotToDoorSlotFlag.js +15 -0
  460. package/dist/objects/gridEntityTypeToANM2Name.js +37 -0
  461. package/dist/objects/heartNames.js +21 -0
  462. package/dist/objects/isaacAPIClassTypeToBrand.js +12 -0
  463. package/dist/objects/isaacAPIClassTypeToFunctions.js +46 -0
  464. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +57 -0
  465. package/dist/objects/kColors.js +27 -0
  466. package/dist/objects/keyNames.js +13 -0
  467. package/dist/objects/languageNames.js +13 -0
  468. package/dist/objects/oppositeDoorSlots.js +15 -0
  469. package/dist/objects/pillEffectClasses.js +57 -0
  470. package/dist/objects/pillEffectNames.js +57 -0
  471. package/dist/objects/pillEffectTypeToPillEffects.js +23 -0
  472. package/dist/objects/pillEffectTypes.js +57 -0
  473. package/dist/objects/playerNamePNGFileNames.js +57 -0
  474. package/dist/objects/playerPortraitPNGFileNames.js +54 -0
  475. package/dist/objects/roomShapeBounds.js +48 -0
  476. package/dist/objects/roomShapeCorners.js +330 -0
  477. package/dist/objects/roomShapeLayoutSizes.js +41 -0
  478. package/dist/objects/roomShapeToBottomRightPosition.js +25 -0
  479. package/dist/objects/roomShapeToDoorSlotCoordinates.js +111 -0
  480. package/dist/objects/roomShapeToDoorSlots.js +72 -0
  481. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +118 -0
  482. package/dist/objects/roomShapeToGridWidth.js +20 -0
  483. package/dist/objects/roomShapeToTopLeftPosition.js +26 -0
  484. package/dist/objects/roomShapeVolumes.js +32 -0
  485. package/dist/objects/roomTypeNames.js +35 -0
  486. package/dist/objects/roomTypeSpecialGotoPrefixes.js +35 -0
  487. package/dist/objects/sackNames.js +11 -0
  488. package/dist/objects/slotNames.js +26 -0
  489. package/dist/objects/stageIDNames.js +43 -0
  490. package/dist/objects/stageToMusic.js +91 -0
  491. package/dist/objects/stageToStageID.js +117 -0
  492. package/dist/objects/stageTypeSuffixes.js +14 -0
  493. package/dist/objects/transformationNames.js +20 -0
  494. package/dist/objects/trinketDescriptions.js +199 -0
  495. package/dist/objects/trinketNames.js +202 -0
  496. package/dist/objects/versusScreenBackgroundColors.js +46 -0
  497. package/dist/objects/versusScreenDirtSpotColors.js +46 -0
  498. package/dist/patchErrorFunctions.js +65 -0
  499. package/dist/serialization.js +21 -0
  500. package/dist/sets/LRoomShapesSet.js +11 -0
  501. package/dist/sets/bigRoomShapesSet.js +14 -0
  502. package/dist/sets/bossSets.js +465 -0
  503. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +18 -0
  504. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +9 -0
  505. package/dist/sets/charactersWithFreeDevilDealsSet.js +6 -0
  506. package/dist/sets/charactersWithNoRedHeartsSet.js +19 -0
  507. package/dist/sets/charactersWithNoSoulHeartsSet.js +16 -0
  508. package/dist/sets/consoleCommandsSet.js +64 -0
  509. package/dist/sets/entitiesWithArmorSet.js +59 -0
  510. package/dist/sets/familiarsThatShootPlayerTearsSet.js +15 -0
  511. package/dist/sets/itemConfigCardTypesForCards.js +14 -0
  512. package/dist/sets/lostStyleCharactersSet.js +16 -0
  513. package/dist/sets/mineShaftRoomSubTypesSet.js +12 -0
  514. package/dist/sets/narrowRoomShapesSet.js +11 -0
  515. package/dist/sets/poopGridEntityXMLTypesSet.js +16 -0
  516. package/dist/sets/redHeartSubTypesSet.js +10 -0
  517. package/dist/sets/repentanceBossIDsSet.js +30 -0
  518. package/dist/sets/sinEntityTypesSet.js +14 -0
  519. package/dist/sets/singleUseActiveCollectibleTypesSet.js +15 -0
  520. package/dist/shaderCrashFix.js +24 -0
  521. package/dist/shouldFire.js +226 -0
  522. package/dist/types/AddSubtract.js +2 -0
  523. package/dist/types/AllButFirst.js +2 -0
  524. package/dist/types/AllButLast.js +2 -0
  525. package/dist/types/AnyClass.js +2 -0
  526. package/dist/types/AnyEntity.js +2 -0
  527. package/dist/types/AnyFunction.js +2 -0
  528. package/dist/types/AnyGridEntity.js +2 -0
  529. package/dist/types/CompositionTypeSatisfiesEnum.js +11 -0
  530. package/dist/types/ConversionHeartSubType.js +2 -0
  531. package/dist/types/Decrement.js +2 -0
  532. package/dist/types/ERange.js +2 -0
  533. package/dist/types/EntityID.js +2 -0
  534. package/dist/types/FunctionTuple.js +2 -0
  535. package/dist/types/GridEntityID.js +2 -0
  536. package/dist/types/HasFunction.js +2 -0
  537. package/dist/types/IRange.js +2 -0
  538. package/dist/types/Immutable.js +2 -0
  539. package/dist/types/Increment.js +2 -0
  540. package/dist/types/LowercaseKeys.js +2 -0
  541. package/dist/types/NaturalNumbersLessThan.js +2 -0
  542. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +2 -0
  543. package/dist/types/PickingUpItem.js +44 -0
  544. package/dist/types/PickupIndex.js +2 -0
  545. package/dist/types/PlayerIndex.js +2 -0
  546. package/dist/types/PossibleStatType.js +2 -0
  547. package/dist/types/PublicInterface.js +2 -0
  548. package/dist/types/ReadonlyMap.js +6 -0
  549. package/dist/types/ReadonlyRecord.js +2 -0
  550. package/dist/types/ReadonlySet.js +6 -0
  551. package/dist/types/StartsWithLowercase.js +2 -0
  552. package/dist/types/StartsWithUppercase.js +2 -0
  553. package/dist/types/TSTLClass.js +2 -0
  554. package/dist/types/Tuple.js +2 -0
  555. package/dist/types/TupleKeys.js +2 -0
  556. package/dist/types/TupleToIntersection.js +2 -0
  557. package/dist/types/TupleToUnion.js +2 -0
  558. package/dist/types/TupleWithLengthBetween.js +22 -0
  559. package/dist/types/TupleWithMaxLength.js +27 -0
  560. package/dist/types/UnionToIntersection.js +2 -0
  561. package/dist/types/UppercaseKeys.js +2 -0
  562. package/dist/types/WeightedArray.js +2 -0
  563. package/dist/types/WidenLiteral.js +2 -0
  564. package/dist/types/Writable.js +2 -0
  565. package/dist/types/private/CallbackTuple.js +2 -0
  566. package/dist/types/private/ModUpgradedWithFeatures.js +2 -0
  567. package/package.json +1 -1
  568. package/src/functions/utils.ts +6 -2
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MysteriousPaperEffect = void 0;
4
+ /**
5
+ * The possible effects that the Mysterious Paper trinket can grant.
6
+ *
7
+ * This enum has hard-coded values because they correspond to the specific in-game frame count of
8
+ * the player.
9
+ */
10
+ var MysteriousPaperEffect;
11
+ (function (MysteriousPaperEffect) {
12
+ MysteriousPaperEffect[MysteriousPaperEffect["POLAROID"] = 0] = "POLAROID";
13
+ MysteriousPaperEffect[MysteriousPaperEffect["NEGATIVE"] = 1] = "NEGATIVE";
14
+ MysteriousPaperEffect[MysteriousPaperEffect["MISSING_PAGE"] = 2] = "MISSING_PAGE";
15
+ MysteriousPaperEffect[MysteriousPaperEffect["MISSING_POSTER"] = 3] = "MISSING_POSTER";
16
+ })(MysteriousPaperEffect || (exports.MysteriousPaperEffect = MysteriousPaperEffect = {}));
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlayerStat = void 0;
4
+ /** This represents the kinds of stats that a player can have. */
5
+ var PlayerStat;
6
+ (function (PlayerStat) {
7
+ /** Corresponds to `CacheFlag.DAMAGE` (1 << 0) and `EntityPlayer.Damage`. */
8
+ PlayerStat[PlayerStat["DAMAGE"] = 0] = "DAMAGE";
9
+ /** Corresponds to `CacheFlag.FIRE_DELAY` (1 << 1) and `EntityPlayer.MaxFireDelay`. */
10
+ PlayerStat[PlayerStat["FIRE_DELAY"] = 1] = "FIRE_DELAY";
11
+ /** Corresponds to `CacheFlag.SHOT_SPEED` (1 << 2) and `EntityPlayer.ShotSpeed`. */
12
+ PlayerStat[PlayerStat["SHOT_SPEED"] = 2] = "SHOT_SPEED";
13
+ /** Corresponds to `CacheFlag.RANGE` (1 << 3) and `EntityPlayer.TearHeight`. */
14
+ PlayerStat[PlayerStat["TEAR_HEIGHT"] = 3] = "TEAR_HEIGHT";
15
+ /** Corresponds to `CacheFlag.RANGE` (1 << 3) and `EntityPlayer.TearRange`. */
16
+ PlayerStat[PlayerStat["TEAR_RANGE"] = 4] = "TEAR_RANGE";
17
+ /** Corresponds to `CacheFlag.RANGE` (1 << 3) and `EntityPlayer.TearFallingAcceleration`. */
18
+ PlayerStat[PlayerStat["TEAR_FALLING_ACCELERATION"] = 5] = "TEAR_FALLING_ACCELERATION";
19
+ /** Corresponds to `CacheFlag.RANGE` (1 << 3) and `EntityPlayer.TearFallingSpeed`. */
20
+ PlayerStat[PlayerStat["TEAR_FALLING_SPEED"] = 6] = "TEAR_FALLING_SPEED";
21
+ /** Corresponds to `CacheFlag.SPEED` (1 << 4) and `EntityPlayer.MoveSpeed`. */
22
+ PlayerStat[PlayerStat["MOVE_SPEED"] = 7] = "MOVE_SPEED";
23
+ /** Corresponds to `CacheFlag.TEAR_FLAG` (1 << 5) and `EntityPlayer.TearFlags`. */
24
+ PlayerStat[PlayerStat["TEAR_FLAG"] = 8] = "TEAR_FLAG";
25
+ /** Corresponds to `CacheFlag.TEAR_COLOR` (1 << 6) and `EntityPlayer.TearColor`. */
26
+ PlayerStat[PlayerStat["TEAR_COLOR"] = 9] = "TEAR_COLOR";
27
+ /** Corresponds to `CacheFlag.FLYING` (1 << 7) and `EntityPlayer.CanFly`. */
28
+ PlayerStat[PlayerStat["FLYING"] = 10] = "FLYING";
29
+ // - `CacheFlag.WEAPON` (1 << 8) does not have a corresponding `EntityPlayer` field.
30
+ // - `CacheFlag.FAMILIARS` (1 << 9) does not have a corresponding `EntityPlayer` field.
31
+ /** Corresponds to `CacheFlag.LUCK` (1 << 10) and `EntityPlayer.Luck`. */
32
+ PlayerStat[PlayerStat["LUCK"] = 11] = "LUCK";
33
+ /** Corresponds to `CacheFlag.SIZE` (1 << 11) and `EntityPlayer.SpriteScale`. */
34
+ PlayerStat[PlayerStat["SIZE"] = 12] = "SIZE";
35
+ // - `CacheFlag.COLOR` (1 << 12) does not have a corresponding `EntityPlayer` field.
36
+ // - `CacheFlag.PICKUP_VISION` (1 << 13) does not have a corresponding `EntityPlayer` field.
37
+ })(PlayerStat || (exports.PlayerStat = PlayerStat = {}));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PocketItemType = void 0;
4
+ /** This is used in the various pocket item helper functions. */
5
+ var PocketItemType;
6
+ (function (PocketItemType) {
7
+ PocketItemType[PocketItemType["EMPTY"] = 0] = "EMPTY";
8
+ PocketItemType[PocketItemType["CARD"] = 1] = "CARD";
9
+ PocketItemType[PocketItemType["PILL"] = 2] = "PILL";
10
+ PocketItemType[PocketItemType["ACTIVE_ITEM"] = 3] = "ACTIVE_ITEM";
11
+ PocketItemType[PocketItemType["DICE_BAG_DICE"] = 4] = "DICE_BAG_DICE";
12
+ PocketItemType[PocketItemType["UNDETERMINABLE"] = 5] = "UNDETERMINABLE";
13
+ })(PocketItemType || (exports.PocketItemType = PocketItemType = {}));
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RockAltType = void 0;
4
+ /** This is used in the various rock alt type helper functions. */
5
+ var RockAltType;
6
+ (function (RockAltType) {
7
+ RockAltType[RockAltType["URN"] = 0] = "URN";
8
+ RockAltType[RockAltType["MUSHROOM"] = 1] = "MUSHROOM";
9
+ RockAltType[RockAltType["SKULL"] = 2] = "SKULL";
10
+ RockAltType[RockAltType["POLYP"] = 3] = "POLYP";
11
+ /**
12
+ * Destroying buckets in Downpour give different outcomes than in Dross.
13
+ *
14
+ * See: https://bindingofisaacrebirth.fandom.com/wiki/Rocks#Buckets
15
+ */
16
+ RockAltType[RockAltType["BUCKET_DOWNPOUR"] = 4] = "BUCKET_DOWNPOUR";
17
+ /**
18
+ * Destroying buckets in Dross give different outcomes than in Downpour.
19
+ *
20
+ * See: https://bindingofisaacrebirth.fandom.com/wiki/Rocks#Buckets
21
+ */
22
+ RockAltType[RockAltType["BUCKET_DROSS"] = 5] = "BUCKET_DROSS";
23
+ })(RockAltType || (exports.RockAltType = RockAltType = {}));
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SaveDataKey = void 0;
4
+ /**
5
+ * These are the types of keys that you can put on the local variables that you feed to the save
6
+ * data manager.
7
+ */
8
+ var SaveDataKey;
9
+ (function (SaveDataKey) {
10
+ SaveDataKey["PERSISTENT"] = "persistent";
11
+ SaveDataKey["RUN"] = "run";
12
+ SaveDataKey["LEVEL"] = "level";
13
+ SaveDataKey["ROOM"] = "room";
14
+ })(SaveDataKey || (exports.SaveDataKey = SaveDataKey = {}));
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SerializationType = void 0;
4
+ /** This is used with the `deepCopy` and `merge` functions. */
5
+ var SerializationType;
6
+ (function (SerializationType) {
7
+ SerializationType[SerializationType["NONE"] = 0] = "NONE";
8
+ SerializationType[SerializationType["SERIALIZE"] = 1] = "SERIALIZE";
9
+ SerializationType[SerializationType["DESERIALIZE"] = 2] = "DESERIALIZE";
10
+ })(SerializationType || (exports.SerializationType = SerializationType = {}));
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlotDestructionType = void 0;
4
+ /** This is used in the `POST_SLOT_DESTROYED` custom callback. */
5
+ var SlotDestructionType;
6
+ (function (SlotDestructionType) {
7
+ /**
8
+ * When a machine or a beggar is blown up by a bomb or is otherwise removed without spawning a
9
+ * collectible.
10
+ *
11
+ * Note that the destruction type for a Crane Game will be `SlotDestructionType.NORMAL`, even if
12
+ * it destroyed via spawning three separate collectibles.
13
+ */
14
+ SlotDestructionType[SlotDestructionType["NORMAL"] = 0] = "NORMAL";
15
+ /**
16
+ * When a machine or a beggar is removed while spawning a collectible reward.
17
+ *
18
+ * Note that the destruction type for a Crane Game will be `SlotDestructionType.NORMAL`, even if
19
+ * it destroyed via spawning three separate collectibles.
20
+ */
21
+ SlotDestructionType[SlotDestructionType["COLLECTIBLE_PAYOUT"] = 1] = "COLLECTIBLE_PAYOUT";
22
+ })(SlotDestructionType || (exports.SlotDestructionType = SlotDestructionType = {}));
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GridEntityTypeCustom = void 0;
4
+ exports.GridEntityTypeCustom = {
5
+ /**
6
+ * We arbitrarily choose 1000 as to not conflict with end-user mods. (The expectation is that
7
+ * end-user mods will begin their enums with values of 0 and increment upwards.)
8
+ */
9
+ TRAPDOOR_CUSTOM: 1000,
10
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SerializationBrand = void 0;
4
+ /**
5
+ * During serialization, we write an arbitrary string key to the object with a value of an empty
6
+ * string. This is used during deserialization to instantiate the correct type of object.
7
+ */
8
+ var SerializationBrand;
9
+ (function (SerializationBrand) {
10
+ // Specific TSTL class brands.
11
+ SerializationBrand["DEFAULT_MAP"] = "__TSTL_DEFAULT_MAP";
12
+ SerializationBrand["MAP"] = "__TSTL_MAP";
13
+ SerializationBrand["SET"] = "__TSTL_SET";
14
+ // Specific Isaac API class brands.
15
+ SerializationBrand["BIT_SET_128"] = "__BIT_SET_128";
16
+ SerializationBrand["COLOR"] = "__COLOR";
17
+ SerializationBrand["K_COLOR"] = "__K_COLOR";
18
+ SerializationBrand["RNG"] = "__RNG";
19
+ SerializationBrand["VECTOR"] = "__VECTOR";
20
+ /**
21
+ * This is set to the value that represents the default value (instead of an empty string like the
22
+ * other brands are).
23
+ */
24
+ SerializationBrand["DEFAULT_MAP_VALUE"] = "__TSTL_DEFAULT_MAP_VALUE";
25
+ /**
26
+ * The JSON library is unable to distinguish between a maps with number keys and an array. It will
27
+ * assume that both of these are an array. Thus, in the case of a map with number keys, it will
28
+ * insert null in every empty spot, leading to crashes.
29
+ *
30
+ * For example, a map with keys of 5 and 10 would be converted to the following array: `[null,
31
+ * null, null, null, "myValueForKey5", null, null, null, null, "myValueForKey10"]`
32
+ *
33
+ * The deep copier works around this by converting number keys to strings. It inserts this brand
34
+ * to keep track of the mutation.
35
+ */
36
+ SerializationBrand["OBJECT_WITH_NUMBER_KEYS"] = "__TSTL_OBJECT_WITH_NUMBER_KEYS";
37
+ /**
38
+ * This brand represents a user-defined class other than a `DefaultMap`, `Map`, or `Set`. It will
39
+ * have a string value that corresponds to the name of the class.
40
+ */
41
+ SerializationBrand["TSTL_CLASS"] = "__TSTL_CLASS";
42
+ })(SerializationBrand || (exports.SerializationBrand = SerializationBrand = {}));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StageTravelState = void 0;
4
+ var StageTravelState;
5
+ (function (StageTravelState) {
6
+ StageTravelState[StageTravelState["NONE"] = 0] = "NONE";
7
+ StageTravelState[StageTravelState["PLAYERS_JUMPING_DOWN"] = 1] = "PLAYERS_JUMPING_DOWN";
8
+ StageTravelState[StageTravelState["PIXELATION_TO_BLACK"] = 2] = "PIXELATION_TO_BLACK";
9
+ StageTravelState[StageTravelState["WAITING_FOR_FIRST_PIXELATION_TO_END"] = 3] = "WAITING_FOR_FIRST_PIXELATION_TO_END";
10
+ StageTravelState[StageTravelState["WAITING_FOR_SECOND_PIXELATION_TO_GET_HALF_WAY"] = 4] = "WAITING_FOR_SECOND_PIXELATION_TO_GET_HALF_WAY";
11
+ StageTravelState[StageTravelState["PIXELATION_TO_ROOM"] = 5] = "PIXELATION_TO_ROOM";
12
+ StageTravelState[StageTravelState["PLAYERS_LAYING_DOWN"] = 6] = "PLAYERS_LAYING_DOWN";
13
+ })(StageTravelState || (exports.StageTravelState = StageTravelState = {}));
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrapdoorAnimation = void 0;
4
+ var TrapdoorAnimation;
5
+ (function (TrapdoorAnimation) {
6
+ TrapdoorAnimation["OPENED"] = "Opened";
7
+ TrapdoorAnimation["CLOSED"] = "Closed";
8
+ TrapdoorAnimation["OPEN_ANIMATION"] = "Open Animation";
9
+ })(TrapdoorAnimation || (exports.TrapdoorAnimation = TrapdoorAnimation = {}));
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UIStreakAnimation = void 0;
4
+ /** Corresponds to "resources/gfx/ui/ui_streak.anm2". */
5
+ var UIStreakAnimation;
6
+ (function (UIStreakAnimation) {
7
+ UIStreakAnimation[UIStreakAnimation["NONE"] = 0] = "NONE";
8
+ UIStreakAnimation[UIStreakAnimation["TEXT"] = 1] = "TEXT";
9
+ UIStreakAnimation[UIStreakAnimation["TEXT_STAY"] = 2] = "TEXT_STAY";
10
+ })(UIStreakAnimation || (exports.UIStreakAnimation = UIStreakAnimation = {}));
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFeatures = void 0;
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");
64
+ (0, enums_1.validateInterfaceMatchesEnum)();
65
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
66
+ function getFeatures(mod, callbacks) {
67
+ // Some features rely on other features; we must initialize those first.
68
+ 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]);
69
+ const disableAllSound = new DisableAllSound_1.DisableAllSound();
70
+ const disableInputs = new DisableInputs_1.DisableInputs();
71
+ const moddedElementDetection = new ModdedElementDetection_1.ModdedElementDetection();
72
+ const ponyDetection = new PonyDetection_1.PonyDetection();
73
+ const pressInput = new PressInput_1.PressInput();
74
+ const roomClearFrame = new RoomClearFrame_1.RoomClearFrame();
75
+ const roomHistory = new RoomHistory_1.RoomHistory();
76
+ const runNextRoom = new RunNextRoom_1.RunNextRoom();
77
+ const saveDataManager = new SaveDataManager_1.SaveDataManager(mod);
78
+ const stageHistory = new StageHistory_1.StageHistory();
79
+ const runInNFrames = new RunInNFrames_1.RunInNFrames(roomHistory);
80
+ const pickupIndexCreation = new PickupIndexCreation_1.PickupIndexCreation(roomHistory, saveDataManager);
81
+ const customGridEntities = new CustomGridEntities_1.CustomGridEntities(runInNFrames);
82
+ const moddedElementSets = new ModdedElementSets_1.ModdedElementSets(moddedElementDetection);
83
+ const itemPoolDetection = new ItemPoolDetection_1.ItemPoolDetection(moddedElementSets);
84
+ const pause = new Pause_1.Pause(disableInputs);
85
+ const preventGridEntityRespawn = new PreventGridEntityRespawn_1.PreventGridEntityRespawn(runInNFrames);
86
+ const customTrapdoors = new CustomTrapdoors_1.CustomTrapdoors(customGridEntities, disableInputs, ponyDetection, roomClearFrame, runInNFrames, runNextRoom, stageHistory);
87
+ const features = {
88
+ // Callback logic
89
+ [ISCFeature_1.ISCFeature.CUSTOM_REVIVE]: new CustomRevive_1.CustomRevive(callbacks[ModCallbackCustom_1.ModCallbackCustom.PRE_CUSTOM_REVIVE], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_CUSTOM_REVIVE], runInNFrames),
90
+ [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]),
91
+ [ISCFeature_1.ISCFeature.FLIP_DETECTION]: new FlipDetection_1.FlipDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_FLIP], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_FIRST_FLIP]),
92
+ [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),
93
+ [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),
94
+ [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),
95
+ [ISCFeature_1.ISCFeature.GAME_REORDERED_CALLBACKS]: gameReorderedCallbacks,
96
+ [ISCFeature_1.ISCFeature.ITEM_PICKUP_DETECTION]: new ItemPickupDetection_1.ItemPickupDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_ITEM_PICKUP], callbacks[ModCallbackCustom_1.ModCallbackCustom.PRE_ITEM_PICKUP]),
97
+ [ISCFeature_1.ISCFeature.PICKUP_CHANGE_DETECTION]: new PickupChangeDetection_1.PickupChangeDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_PICKUP_CHANGED], pickupIndexCreation),
98
+ [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),
99
+ [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]),
100
+ [ISCFeature_1.ISCFeature.SLOT_DESTROYED_DETECTION]: new SlotDestroyedDetection_1.SlotDestroyedDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_DESTROYED], roomHistory),
101
+ [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]),
102
+ [ISCFeature_1.ISCFeature.SLOT_UPDATE_DETECTION]: new SlotUpdateDetection_1.SlotUpdateDetection(callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_INIT], callbacks[ModCallbackCustom_1.ModCallbackCustom.POST_SLOT_UPDATE]),
103
+ // Extra features
104
+ [ISCFeature_1.ISCFeature.CHARACTER_HEALTH_CONVERSION]: new CharacterHealthConversion_1.CharacterHealthConversion(),
105
+ [ISCFeature_1.ISCFeature.CHARACTER_STATS]: new CharacterStats_1.CharacterStats(),
106
+ [ISCFeature_1.ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE]: new CollectibleItemPoolType_1.CollectibleItemPoolType(pickupIndexCreation),
107
+ [ISCFeature_1.ISCFeature.CUSTOM_GRID_ENTITIES]: customGridEntities,
108
+ [ISCFeature_1.ISCFeature.CUSTOM_ITEM_POOLS]: new CustomItemPools_1.CustomItemPools(),
109
+ [ISCFeature_1.ISCFeature.CUSTOM_HOTKEYS]: new CustomHotkeys_1.CustomHotkeys(),
110
+ [ISCFeature_1.ISCFeature.CUSTOM_PICKUPS]: new CustomPickups_1.CustomPickups(),
111
+ [ISCFeature_1.ISCFeature.CUSTOM_STAGES]: new CustomStages_1.CustomStages(customGridEntities, customTrapdoors, disableAllSound, gameReorderedCallbacks, pause, runInNFrames),
112
+ [ISCFeature_1.ISCFeature.CUSTOM_TRAPDOORS]: customTrapdoors,
113
+ [ISCFeature_1.ISCFeature.DEBUG_DISPLAY]: new DebugDisplay_1.DebugDisplay(mod),
114
+ [ISCFeature_1.ISCFeature.DEPLOY_JSON_ROOM]: new DeployJSONRoom_1.DeployJSONRoom(preventGridEntityRespawn),
115
+ [ISCFeature_1.ISCFeature.DISABLE_ALL_SOUND]: disableAllSound,
116
+ [ISCFeature_1.ISCFeature.DISABLE_INPUTS]: disableInputs,
117
+ [ISCFeature_1.ISCFeature.EDEN_STARTING_STATS_HEALTH]: new EdenStartingStatsHealth_1.EdenStartingStatsHealth(),
118
+ [ISCFeature_1.ISCFeature.FADE_IN_REMOVER]: new FadeInRemover_1.FadeInRemover(),
119
+ [ISCFeature_1.ISCFeature.FAST_RESET]: new FastReset_1.FastReset(),
120
+ [ISCFeature_1.ISCFeature.FLYING_DETECTION]: new FlyingDetection_1.FlyingDetection(moddedElementSets),
121
+ [ISCFeature_1.ISCFeature.FORGOTTEN_SWITCH]: new ForgottenSwitch_1.ForgottenSwitch(pressInput),
122
+ [ISCFeature_1.ISCFeature.EXTRA_CONSOLE_COMMANDS]: new ExtraConsoleCommands_1.ExtraConsoleCommands(),
123
+ [ISCFeature_1.ISCFeature.ITEM_POOL_DETECTION]: itemPoolDetection,
124
+ [ISCFeature_1.ISCFeature.MODDED_ELEMENT_DETECTION]: moddedElementDetection,
125
+ [ISCFeature_1.ISCFeature.MODDED_ELEMENT_SETS]: moddedElementSets,
126
+ [ISCFeature_1.ISCFeature.NO_SIREN_STEAL]: new NoSirenSteal_1.NoSirenSteal(),
127
+ [ISCFeature_1.ISCFeature.PAUSE]: pause,
128
+ [ISCFeature_1.ISCFeature.PERSISTENT_ENTITIES]: new PersistentEntities_1.PersistentEntities(roomHistory),
129
+ [ISCFeature_1.ISCFeature.PICKUP_INDEX_CREATION]: pickupIndexCreation,
130
+ [ISCFeature_1.ISCFeature.PLAYER_COLLECTIBLE_TRACKING]: new PlayerCollectibleTracking_1.PlayerCollectibleTracking(),
131
+ [ISCFeature_1.ISCFeature.PONY_DETECTION]: ponyDetection,
132
+ [ISCFeature_1.ISCFeature.PRESS_INPUT]: pressInput,
133
+ [ISCFeature_1.ISCFeature.PREVENT_CHILD_ENTITIES]: new PreventChildEntities_1.PreventChildEntities(),
134
+ [ISCFeature_1.ISCFeature.PREVENT_GRID_ENTITY_RESPAWN]: preventGridEntityRespawn,
135
+ [ISCFeature_1.ISCFeature.RERUN_DETECTION]: new RerunDetection_1.RerunDetection(),
136
+ [ISCFeature_1.ISCFeature.ROOM_CLEAR_FRAME]: roomClearFrame,
137
+ [ISCFeature_1.ISCFeature.ROOM_HISTORY]: roomHistory,
138
+ [ISCFeature_1.ISCFeature.RUN_IN_N_FRAMES]: runInNFrames,
139
+ [ISCFeature_1.ISCFeature.RUN_NEXT_ROOM]: runNextRoom,
140
+ [ISCFeature_1.ISCFeature.RUN_NEXT_RUN]: new RunNextRun_1.RunNextRun(),
141
+ [ISCFeature_1.ISCFeature.SAVE_DATA_MANAGER]: saveDataManager,
142
+ [ISCFeature_1.ISCFeature.SPAWN_ALT_ROCK_REWARDS]: new SpawnRockAltRewards_1.SpawnRockAltRewards(itemPoolDetection),
143
+ [ISCFeature_1.ISCFeature.STAGE_HISTORY]: stageHistory,
144
+ [ISCFeature_1.ISCFeature.START_AMBUSH]: new StartAmbush_1.StartAmbush(runInNFrames),
145
+ [ISCFeature_1.ISCFeature.TAINTED_LAZARUS_PLAYERS]: new TaintedLazarusPlayers_1.TaintedLazarusPlayers(),
146
+ [ISCFeature_1.ISCFeature.UNLOCK_ACHIEVEMENTS_DETECTION]: new UnlockAchievementsDetection_1.UnlockAchievementsDetection(),
147
+ };
148
+ return features;
149
+ }
150
+ exports.getFeatures = getFeatures;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAmbushType = void 0;
4
+ const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
+ const cachedClasses_1 = require("../core/cachedClasses");
6
+ const AmbushType_1 = require("../enums/AmbushType");
7
+ /**
8
+ * Helper function to get the corresponding ambush type for the current room. Returns undefined if
9
+ * the current room does not correspond to any particular ambush type.
10
+ */
11
+ function getAmbushType() {
12
+ const room = cachedClasses_1.game.GetRoom();
13
+ const roomType = room.GetType();
14
+ switch (roomType) {
15
+ case isaac_typescript_definitions_1.RoomType.BOSS_RUSH: {
16
+ return AmbushType_1.AmbushType.BOSS_RUSH;
17
+ }
18
+ case isaac_typescript_definitions_1.RoomType.CHALLENGE: {
19
+ return AmbushType_1.AmbushType.CHALLENGE_ROOM;
20
+ }
21
+ default: {
22
+ return undefined;
23
+ }
24
+ }
25
+ }
26
+ exports.getAmbushType = getAmbushType;