isaacscript-common 87.9.7 → 87.9.8

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 (563) 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/indexLua.js +151 -167
  387. package/dist/interfaces/ChargeBarSprites.js +1 -2
  388. package/dist/interfaces/Corner.js +1 -2
  389. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  390. package/dist/interfaces/GridEntityCustomData.js +1 -2
  391. package/dist/interfaces/JSONRoomsFile.js +1 -2
  392. package/dist/interfaces/PlayerHealth.js +1 -2
  393. package/dist/interfaces/PlayerStats.js +2 -4
  394. package/dist/interfaces/PocketItemDescription.js +1 -2
  395. package/dist/interfaces/RoomDescription.js +1 -2
  396. package/dist/interfaces/SaveData.js +1 -2
  397. package/dist/interfaces/StageHistoryEntry.js +1 -2
  398. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  399. package/dist/interfaces/TrinketSituation.js +1 -2
  400. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  401. package/dist/interfaces/private/CustomStage.js +1 -2
  402. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  403. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  404. package/dist/isaacscript-common.lua +1 -1
  405. package/dist/maps/PHDPillConversionsMap.js +19 -22
  406. package/dist/maps/cardNameToTypeMap.js +205 -208
  407. package/dist/maps/characterNameToTypeMap.js +85 -88
  408. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  409. package/dist/maps/defaultPlayerStatMap.js +10 -13
  410. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  411. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  412. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  413. package/dist/maps/gridEntityXMLMap.js +52 -55
  414. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  415. package/dist/maps/keyboardToStringMap.js +66 -69
  416. package/dist/maps/pillNameToEffectMap.js +83 -86
  417. package/dist/maps/roomNameToTypeMap.js +38 -41
  418. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  419. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  420. package/dist/maps/trinketNameToTypeMap.js +5 -8
  421. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  422. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  423. package/dist/objects/batteryNames.js +8 -11
  424. package/dist/objects/bombNames.js +11 -14
  425. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  426. package/dist/objects/bossNamePNGFileNames.js +104 -107
  427. package/dist/objects/bossNames.js +105 -108
  428. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  429. package/dist/objects/cardDescriptions.js +101 -104
  430. package/dist/objects/cardNames.js +101 -104
  431. package/dist/objects/challengeBosses.js +49 -52
  432. package/dist/objects/challengeCharacters.js +49 -52
  433. package/dist/objects/challengeCollectibleTypes.js +160 -163
  434. package/dist/objects/challengeNames.js +49 -52
  435. package/dist/objects/challengeTrinketType.js +48 -51
  436. package/dist/objects/characterDamageMultipliers.js +44 -47
  437. package/dist/objects/characterNames.js +44 -47
  438. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  439. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  440. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  441. package/dist/objects/chestNames.js +15 -18
  442. package/dist/objects/coinNames.js +11 -14
  443. package/dist/objects/coinSubTypeToValue.js +11 -14
  444. package/dist/objects/collectibleDescriptions.js +725 -728
  445. package/dist/objects/collectibleNames.js +725 -728
  446. package/dist/objects/colors.js +1 -4
  447. package/dist/objects/directionNames.js +7 -10
  448. package/dist/objects/directionToDegrees.js +7 -10
  449. package/dist/objects/directionToMoveAction.js +7 -10
  450. package/dist/objects/directionToShootAction.js +7 -10
  451. package/dist/objects/directionToVector.js +9 -12
  452. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  453. package/dist/objects/doorSlotToDirection.js +11 -14
  454. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  455. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  456. package/dist/objects/heartNames.js +16 -19
  457. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  458. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  459. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  460. package/dist/objects/kColors.js +1 -4
  461. package/dist/objects/keyNames.js +8 -11
  462. package/dist/objects/languageNames.js +9 -12
  463. package/dist/objects/oppositeDoorSlots.js +11 -14
  464. package/dist/objects/pillEffectClasses.js +53 -56
  465. package/dist/objects/pillEffectNames.js +53 -56
  466. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  467. package/dist/objects/pillEffectTypes.js +53 -56
  468. package/dist/objects/playerNamePNGFileNames.js +44 -47
  469. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  470. package/dist/objects/roomShapeBounds.js +23 -26
  471. package/dist/objects/roomShapeCorners.js +128 -131
  472. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  473. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  474. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  475. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  476. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  477. package/dist/objects/roomShapeToGridWidth.js +14 -17
  478. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  479. package/dist/objects/roomShapeVolumes.js +21 -24
  480. package/dist/objects/roomTypeNames.js +32 -35
  481. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  482. package/dist/objects/sackNames.js +6 -9
  483. package/dist/objects/slotNames.js +21 -24
  484. package/dist/objects/stageIDNames.js +33 -36
  485. package/dist/objects/stageToMusic.js +69 -72
  486. package/dist/objects/stageToStageID.js +90 -93
  487. package/dist/objects/stageTypeSuffixes.js +8 -11
  488. package/dist/objects/transformationNames.js +16 -19
  489. package/dist/objects/trinketDescriptions.js +192 -195
  490. package/dist/objects/trinketNames.js +192 -195
  491. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  492. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  493. package/dist/patchErrorFunctions.js +4 -7
  494. package/dist/serialization.js +6 -9
  495. package/dist/sets/LRoomShapesSet.js +7 -10
  496. package/dist/sets/bigRoomShapesSet.js +10 -13
  497. package/dist/sets/bossSets.js +261 -264
  498. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  499. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  500. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  501. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  502. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  503. package/dist/sets/consoleCommandsSet.js +2 -5
  504. package/dist/sets/entitiesWithArmorSet.js +44 -47
  505. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  506. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  507. package/dist/sets/lostStyleCharactersSet.js +8 -11
  508. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  509. package/dist/sets/narrowRoomShapesSet.js +7 -10
  510. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  511. package/dist/sets/redHeartSubTypesSet.js +6 -9
  512. package/dist/sets/repentanceBossIDsSet.js +26 -29
  513. package/dist/sets/sinEntityTypesSet.js +10 -13
  514. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  515. package/dist/shaderCrashFix.js +4 -7
  516. package/dist/shouldFire.js +28 -58
  517. package/dist/types/AddSubtract.js +1 -2
  518. package/dist/types/AllButFirst.js +1 -2
  519. package/dist/types/AllButLast.js +1 -2
  520. package/dist/types/AnyClass.js +1 -2
  521. package/dist/types/AnyEntity.js +1 -2
  522. package/dist/types/AnyFunction.js +1 -2
  523. package/dist/types/AnyGridEntity.js +1 -2
  524. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  525. package/dist/types/ConversionHeartSubType.js +1 -2
  526. package/dist/types/Decrement.js +1 -2
  527. package/dist/types/ERange.js +1 -2
  528. package/dist/types/EntityID.js +1 -2
  529. package/dist/types/FunctionTuple.js +1 -2
  530. package/dist/types/GridEntityID.js +1 -2
  531. package/dist/types/HasFunction.js +1 -2
  532. package/dist/types/IRange.js +1 -2
  533. package/dist/types/Immutable.js +1 -2
  534. package/dist/types/Increment.js +1 -2
  535. package/dist/types/LowercaseKeys.js +1 -2
  536. package/dist/types/NaturalNumbersLessThan.js +1 -2
  537. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  538. package/dist/types/ObjectValues.js +1 -2
  539. package/dist/types/PickingUpItem.js +15 -22
  540. package/dist/types/PickupIndex.js +1 -2
  541. package/dist/types/PlayerIndex.js +1 -2
  542. package/dist/types/PossibleStatType.js +1 -2
  543. package/dist/types/PublicInterface.js +1 -2
  544. package/dist/types/ReadonlyMap.js +1 -4
  545. package/dist/types/ReadonlyRecord.js +1 -2
  546. package/dist/types/ReadonlySet.js +1 -4
  547. package/dist/types/StartsWithLowercase.js +1 -2
  548. package/dist/types/StartsWithUppercase.js +1 -2
  549. package/dist/types/TSTLClass.js +1 -2
  550. package/dist/types/Tuple.js +1 -2
  551. package/dist/types/TupleKeys.js +1 -2
  552. package/dist/types/TupleToIntersection.js +1 -2
  553. package/dist/types/TupleToUnion.js +1 -2
  554. package/dist/types/TupleWithLengthBetween.js +1 -2
  555. package/dist/types/TupleWithMaxLength.js +1 -2
  556. package/dist/types/UnionToIntersection.js +1 -2
  557. package/dist/types/UppercaseKeys.js +1 -2
  558. package/dist/types/WeightedArray.js +1 -2
  559. package/dist/types/WidenLiteral.js +1 -2
  560. package/dist/types/Writable.js +1 -2
  561. package/dist/types/private/CallbackTuple.js +1 -2
  562. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  563. package/package.json +3 -3
@@ -1,42 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAliveBosses = getAliveBosses;
4
- exports.getAllBosses = getAllBosses;
5
- exports.getAllNonStoryBosses = getAllNonStoryBosses;
6
- exports.getBosses = getBosses;
7
- exports.getBossID = getBossID;
8
- exports.getBossIDFromEntityTypeVariant = getBossIDFromEntityTypeVariant;
9
- exports.getBossIDsForStage = getBossIDsForStage;
10
- exports.getBossIDsForStageID = getBossIDsForStageID;
11
- exports.getBossName = getBossName;
12
- exports.getBossStageIDs = getBossStageIDs;
13
- exports.getEntityTypeVariantFromBossID = getEntityTypeVariantFromBossID;
14
- exports.isRepentanceBoss = isRepentanceBoss;
15
- exports.isSin = isSin;
16
- exports.spawnBoss = spawnBoss;
17
- exports.spawnBossWithSeed = spawnBossWithSeed;
18
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
19
- const cachedClasses_1 = require("../core/cachedClasses");
20
- const constants_1 = require("../core/constants");
21
- const entityTypeVariantToBossIDMap_1 = require("../maps/entityTypeVariantToBossIDMap");
22
- const bossIDToEntityTypeVariant_1 = require("../objects/bossIDToEntityTypeVariant");
23
- const bossNames_1 = require("../objects/bossNames");
24
- const bossSets_1 = require("../sets/bossSets");
25
- const repentanceBossIDsSet_1 = require("../sets/repentanceBossIDsSet");
26
- const sinEntityTypesSet_1 = require("../sets/sinEntityTypesSet");
27
- const ReadonlySet_1 = require("../types/ReadonlySet");
28
- const entities_1 = require("./entities");
29
- const entitiesSpecific_1 = require("./entitiesSpecific");
30
- const npcs_1 = require("./npcs");
31
- const rng_1 = require("./rng");
32
- const rooms_1 = require("./rooms");
33
- const utils_1 = require("./utils");
34
- const BOSSES_THAT_REQUIRE_MULTIPLE_SPAWNS = new ReadonlySet_1.ReadonlySet([
35
- isaac_typescript_definitions_1.EntityType.LARRY_JR, // 19 (and The Hollow / Tuff Twins / The Shell)
36
- isaac_typescript_definitions_1.EntityType.CHUB, // 28 (and C.H.A.D. / The Carrion Queen)
37
- isaac_typescript_definitions_1.EntityType.LOKI, // 69 (only for Lokii)
38
- isaac_typescript_definitions_1.EntityType.GURGLING, // 237 (and Turdling)
39
- isaac_typescript_definitions_1.EntityType.TURDLET, // 918
1
+ import { BossID, EntityType, LokiVariant, UltraGreedVariant, } from "isaac-typescript-definitions";
2
+ import { game } from "../core/cachedClasses";
3
+ import { VectorZero } from "../core/constants";
4
+ import { ENTITY_TYPE_VARIANT_TO_BOSS_ID_MAP } from "../maps/entityTypeVariantToBossIDMap";
5
+ import { BOSS_ID_TO_ENTITY_TYPE_VARIANT } from "../objects/bossIDToEntityTypeVariant";
6
+ import { BOSS_NAMES, DEFAULT_BOSS_NAME } from "../objects/bossNames";
7
+ import { ALL_BOSSES, BOSS_ID_TO_STAGE_IDS, NON_STORY_BOSSES, STAGE_ID_TO_BOSS_IDS, STAGE_TO_COMBINED_BOSS_SET_MAP, } from "../sets/bossSets";
8
+ import { REPENTANCE_ONLY_BOSS_IDS_SET } from "../sets/repentanceBossIDsSet";
9
+ import { SIN_ENTITY_TYPES_SET } from "../sets/sinEntityTypesSet";
10
+ import { ReadonlySet } from "../types/ReadonlySet";
11
+ import { doesEntityExist } from "./entities";
12
+ import { getNPCs, spawnNPC } from "./entitiesSpecific";
13
+ import { getAliveNPCs } from "./npcs";
14
+ import { isRNG } from "./rng";
15
+ import { inBeastRoom, inDogmaRoom } from "./rooms";
16
+ import { repeat } from "./utils";
17
+ const BOSSES_THAT_REQUIRE_MULTIPLE_SPAWNS = new ReadonlySet([
18
+ EntityType.LARRY_JR, // 19 (and The Hollow / Tuff Twins / The Shell)
19
+ EntityType.CHUB, // 28 (and C.H.A.D. / The Carrion Queen)
20
+ EntityType.LOKI, // 69 (only for Lokii)
21
+ EntityType.GURGLING, // 237 (and Turdling)
22
+ EntityType.TURDLET, // 918
40
23
  ]);
41
24
  const DEFAULT_BOSS_MULTI_SEGMENTS = 4;
42
25
  /**
@@ -53,8 +36,8 @@ const DEFAULT_BOSS_MULTI_SEGMENTS = 4;
53
36
  * is -1, which matches every sub-type.
54
37
  * @param ignoreFriendly Optional. Default is false.
55
38
  */
56
- function getAliveBosses(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
57
- const aliveNPCs = (0, npcs_1.getAliveNPCs)(entityType, variant, subType, ignoreFriendly);
39
+ export function getAliveBosses(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
40
+ const aliveNPCs = getAliveNPCs(entityType, variant, subType, ignoreFriendly);
58
41
  return aliveNPCs.filter((aliveNPC) => aliveNPC.IsBoss());
59
42
  }
60
43
  /**
@@ -74,16 +57,16 @@ function getAliveBosses(entityType = -1, variant = -1, subType = -1, ignoreFrien
74
57
  *
75
58
  * Also see the `getAllNonStoryBosses` function.
76
59
  */
77
- function getAllBosses() {
78
- return bossSets_1.ALL_BOSSES;
60
+ export function getAllBosses() {
61
+ return ALL_BOSSES;
79
62
  }
80
63
  /**
81
64
  * Helper function to get an array with every boss in the game. This is derived from the `BossID`
82
65
  * enum. This is the same thing as the `getAllBosses` helper function, but with story bosses
83
66
  * filtered out.
84
67
  */
85
- function getAllNonStoryBosses() {
86
- return bossSets_1.NON_STORY_BOSSES;
68
+ export function getAllNonStoryBosses() {
69
+ return NON_STORY_BOSSES;
87
70
  }
88
71
  /**
89
72
  * Helper function to get all of the bosses in the room.
@@ -96,8 +79,8 @@ function getAllNonStoryBosses() {
96
79
  * is -1, which matches every sub-type.
97
80
  * @param ignoreFriendly Optional. Default is false.
98
81
  */
99
- function getBosses(entityType, variant, subType, ignoreFriendly = false) {
100
- const npcs = (0, entitiesSpecific_1.getNPCs)(entityType, variant, subType, ignoreFriendly);
82
+ export function getBosses(entityType, variant, subType, ignoreFriendly = false) {
83
+ const npcs = getNPCs(entityType, variant, subType, ignoreFriendly);
101
84
  return npcs.filter((npc) => npc.IsBoss());
102
85
  }
103
86
  /**
@@ -107,33 +90,33 @@ function getBosses(entityType, variant, subType, ignoreFriendly = false) {
107
90
  * Use this instead of the vanilla `Room.GetBossID` method since it has a saner return type and it
108
91
  * correctly handles Dogma, The Beast, and Ultra Greedier.
109
92
  */
110
- function getBossID() {
111
- if ((0, rooms_1.inDogmaRoom)()) {
112
- return isaac_typescript_definitions_1.BossID.DOGMA;
93
+ export function getBossID() {
94
+ if (inDogmaRoom()) {
95
+ return BossID.DOGMA;
113
96
  }
114
- if ((0, rooms_1.inBeastRoom)()) {
115
- return isaac_typescript_definitions_1.BossID.BEAST;
97
+ if (inBeastRoom()) {
98
+ return BossID.BEAST;
116
99
  }
117
- const room = cachedClasses_1.game.GetRoom();
100
+ const room = game.GetRoom();
118
101
  // eslint-disable-next-line @typescript-eslint/no-deprecated
119
102
  const bossID = room.GetBossID();
120
103
  if (bossID === 0) {
121
104
  return undefined;
122
105
  }
123
106
  // The Ultra Greed room holds both Ultra Greed and Ultra Greedier.
124
- if (bossID === isaac_typescript_definitions_1.BossID.ULTRA_GREED
125
- && (0, entities_1.doesEntityExist)(isaac_typescript_definitions_1.EntityType.ULTRA_GREED, isaac_typescript_definitions_1.UltraGreedVariant.ULTRA_GREEDIER)) {
126
- return isaac_typescript_definitions_1.BossID.ULTRA_GREEDIER;
107
+ if (bossID === BossID.ULTRA_GREED
108
+ && doesEntityExist(EntityType.ULTRA_GREED, UltraGreedVariant.ULTRA_GREEDIER)) {
109
+ return BossID.ULTRA_GREEDIER;
127
110
  }
128
111
  return bossID;
129
112
  }
130
- function getBossIDFromEntityTypeVariant(entityType, variant) {
113
+ export function getBossIDFromEntityTypeVariant(entityType, variant) {
131
114
  // First, handle some special cases.
132
- if (entityType === isaac_typescript_definitions_1.EntityType.HORSEMAN_HEAD) {
133
- return isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN;
115
+ if (entityType === EntityType.HORSEMAN_HEAD) {
116
+ return BossID.HEADLESS_HORSEMAN;
134
117
  }
135
118
  const entityTypeVariant = `${entityType}.${variant}`;
136
- return entityTypeVariantToBossIDMap_1.ENTITY_TYPE_VARIANT_TO_BOSS_ID_MAP.get(entityTypeVariant);
119
+ return ENTITY_TYPE_VARIANT_TO_BOSS_ID_MAP.get(entityTypeVariant);
137
120
  }
138
121
  /**
139
122
  * Helper function to get the set of vanilla bosses for a particular stage across all of the stage
@@ -142,8 +125,8 @@ function getBossIDFromEntityTypeVariant(entityType, variant) {
142
125
  *
143
126
  * Also see the `getAllBossesSet` and `getBossIDsForStageID` functions.
144
127
  */
145
- function getBossIDsForStage(stage) {
146
- return bossSets_1.STAGE_TO_COMBINED_BOSS_SET_MAP.get(stage);
128
+ export function getBossIDsForStage(stage) {
129
+ return STAGE_TO_COMBINED_BOSS_SET_MAP.get(stage);
147
130
  }
148
131
  /**
149
132
  * Helper function to get the set of vanilla bosses that can randomly appear on a particular stage
@@ -151,24 +134,24 @@ function getBossIDsForStage(stage) {
151
134
  *
152
135
  * Also see the `getAllBossesSet` and `getBossIDsForStage` functions.
153
136
  */
154
- function getBossIDsForStageID(stageID) {
155
- return bossSets_1.STAGE_ID_TO_BOSS_IDS.get(stageID);
137
+ export function getBossIDsForStageID(stageID) {
138
+ return STAGE_ID_TO_BOSS_IDS.get(stageID);
156
139
  }
157
140
  /**
158
141
  * Helper function to get the proper English name for a boss. For example, the name for
159
142
  * `BossID.WRETCHED` (36) is "The Wretched".
160
143
  */
161
- function getBossName(bossID) {
144
+ export function getBossName(bossID) {
162
145
  // Handle modded boss IDs.
163
146
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
164
- return bossNames_1.BOSS_NAMES[bossID] ?? bossNames_1.DEFAULT_BOSS_NAME;
147
+ return BOSS_NAMES[bossID] ?? DEFAULT_BOSS_NAME;
165
148
  }
166
149
  /** Helper function to get the set of stage IDs that a particular boss naturally appears in. */
167
- function getBossStageIDs(bossID) {
168
- return bossSets_1.BOSS_ID_TO_STAGE_IDS[bossID];
150
+ export function getBossStageIDs(bossID) {
151
+ return BOSS_ID_TO_STAGE_IDS[bossID];
169
152
  }
170
- function getEntityTypeVariantFromBossID(bossID) {
171
- return bossIDToEntityTypeVariant_1.BOSS_ID_TO_ENTITY_TYPE_VARIANT[bossID];
153
+ export function getEntityTypeVariantFromBossID(bossID) {
154
+ return BOSS_ID_TO_ENTITY_TYPE_VARIANT[bossID];
172
155
  }
173
156
  /**
174
157
  * Helper function to check if a boss is only found on a Repentance floor such as Dross, Mines, and
@@ -177,12 +160,12 @@ function getEntityTypeVariantFromBossID(bossID) {
177
160
  * For example, The Pile is a boss that was added in Repentance, but since it can appear in
178
161
  * Necropolis, it is not considered a Repentance boss for the purposes of this function.
179
162
  */
180
- function isRepentanceBoss(bossID) {
181
- return repentanceBossIDsSet_1.REPENTANCE_ONLY_BOSS_IDS_SET.has(bossID);
163
+ export function isRepentanceBoss(bossID) {
164
+ return REPENTANCE_ONLY_BOSS_IDS_SET.has(bossID);
182
165
  }
183
166
  /** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */
184
- function isSin(npc) {
185
- return sinEntityTypesSet_1.SIN_ENTITY_TYPES_SET.has(npc.Type);
167
+ export function isSin(npc) {
168
+ return SIN_ENTITY_TYPES_SET.has(npc.Type);
186
169
  }
187
170
  /**
188
171
  * Helper function to spawn a boss.
@@ -194,14 +177,14 @@ function isSin(npc) {
194
177
  * Gurglings/Turdlings with 2 copies, and other multi-segment bosses with 4 segments. You can
195
178
  * customize this via the "numSegments" argument.
196
179
  */
197
- function spawnBoss(entityType, variant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner, seedOrRNG, numSegments) {
198
- const seed = (0, rng_1.isRNG)(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
199
- const npc = (0, entitiesSpecific_1.spawnNPC)(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seed);
180
+ export function spawnBoss(entityType, variant, subType, positionOrGridIndex, velocity = VectorZero, spawner, seedOrRNG, numSegments) {
181
+ const seed = isRNG(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
182
+ const npc = spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seed);
200
183
  if (BOSSES_THAT_REQUIRE_MULTIPLE_SPAWNS.has(entityType)) {
201
184
  const numBossSegments = getNumBossSegments(entityType, variant, numSegments);
202
185
  const remainingSegmentsToSpawn = numBossSegments - 1;
203
- (0, utils_1.repeat)(remainingSegmentsToSpawn, () => {
204
- (0, entitiesSpecific_1.spawnNPC)(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seed);
186
+ repeat(remainingSegmentsToSpawn, () => {
187
+ spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seed);
205
188
  });
206
189
  }
207
190
  return npc;
@@ -211,8 +194,8 @@ function spawnBoss(entityType, variant, subType, positionOrGridIndex, velocity =
211
194
  *
212
195
  * For more information, see the documentation for the `spawnBoss` function.
213
196
  */
214
- function spawnBossWithSeed(entityType, variant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner, numSegments) {
215
- const seed = (0, rng_1.isRNG)(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
197
+ export function spawnBossWithSeed(entityType, variant, subType, positionOrGridIndex, seedOrRNG, velocity = VectorZero, spawner, numSegments) {
198
+ const seed = isRNG(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
216
199
  return spawnBoss(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seed, numSegments);
217
200
  }
218
201
  function getNumBossSegments(entityType, variant, numSegments) {
@@ -221,17 +204,17 @@ function getNumBossSegments(entityType, variant, numSegments) {
221
204
  }
222
205
  switch (entityType) {
223
206
  // 28
224
- case isaac_typescript_definitions_1.EntityType.CHUB: {
207
+ case EntityType.CHUB: {
225
208
  // Chub is always composed of 3 segments.
226
209
  return 3;
227
210
  }
228
211
  // 69
229
- case isaac_typescript_definitions_1.EntityType.LOKI: {
212
+ case EntityType.LOKI: {
230
213
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
231
- return variant === isaac_typescript_definitions_1.LokiVariant.LOKII ? 2 : 1;
214
+ return variant === LokiVariant.LOKII ? 2 : 1;
232
215
  }
233
216
  // 237
234
- case isaac_typescript_definitions_1.EntityType.GURGLING: {
217
+ case EntityType.GURGLING: {
235
218
  // Gurglings & Turdlings are always encountered in groups of 2.
236
219
  return 2;
237
220
  }
@@ -1,30 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCardDescription = getCardDescription;
4
- exports.getCardName = getCardName;
5
- exports.getItemConfigCardType = getItemConfigCardType;
6
- exports.hasCard = hasCard;
7
- exports.isCard = isCard;
8
- exports.isCardType = isCardType;
9
- exports.isModdedCardType = isModdedCardType;
10
- exports.isPocketItemObject = isPocketItemObject;
11
- exports.isReverseTarotCard = isReverseTarotCard;
12
- exports.isRune = isRune;
13
- exports.isSpecialCard = isSpecialCard;
14
- exports.isSuitCard = isSuitCard;
15
- exports.isTarotCard = isTarotCard;
16
- exports.isValidCardType = isValidCardType;
17
- exports.isVanillaCardType = isVanillaCardType;
18
- exports.useCardTemp = useCardTemp;
19
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
20
- const cachedEnumValues_1 = require("../cachedEnumValues");
21
- const cachedClasses_1 = require("../core/cachedClasses");
22
- const constantsFirstLast_1 = require("../core/constantsFirstLast");
23
- const cardDescriptions_1 = require("../objects/cardDescriptions");
24
- const cardNames_1 = require("../objects/cardNames");
25
- const itemConfigCardTypesForCards_1 = require("../sets/itemConfigCardTypesForCards");
26
- const flag_1 = require("./flag");
27
- const types_1 = require("./types");
1
+ import { ItemConfigCardType, UseFlag } from "isaac-typescript-definitions";
2
+ import { POCKET_ITEM_SLOT_VALUES } from "../cachedEnumValues";
3
+ import { itemConfig } from "../core/cachedClasses";
4
+ import { LAST_VANILLA_CARD_TYPE } from "../core/constantsFirstLast";
5
+ import { CARD_DESCRIPTIONS, DEFAULT_CARD_DESCRIPTION, } from "../objects/cardDescriptions";
6
+ import { CARD_NAMES, DEFAULT_CARD_NAME } from "../objects/cardNames";
7
+ import { ITEM_CONFIG_CARD_TYPES_FOR_CARDS } from "../sets/itemConfigCardTypesForCards";
8
+ import { addFlag } from "./flag";
9
+ import { asCardType } from "./types";
28
10
  /**
29
11
  * Helper function to get a card description from a `CardType` value. Returns "Unknown" if the
30
12
  * provided card type is not valid.
@@ -33,20 +15,20 @@ const types_1 = require("./types");
33
15
  *
34
16
  * For example, `getCardDescription(CardType.FOOL)` would return "Where journey begins".
35
17
  */
36
- function getCardDescription(cardType) {
18
+ export function getCardDescription(cardType) {
37
19
  // "ItemConfigCard.Description" is bugged with vanilla cards on patch v1.7.6, so we use a
38
20
  // hard-coded map as a workaround.
39
- const cardDescription = cardDescriptions_1.CARD_DESCRIPTIONS[cardType];
21
+ const cardDescription = CARD_DESCRIPTIONS[cardType];
40
22
  // Handle modded cards.
41
23
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
42
24
  if (cardDescription !== undefined) {
43
25
  return cardDescription;
44
26
  }
45
- const itemConfigCard = cachedClasses_1.itemConfig.GetCard(cardType);
27
+ const itemConfigCard = itemConfig.GetCard(cardType);
46
28
  if (itemConfigCard !== undefined) {
47
29
  return itemConfigCard.Description;
48
30
  }
49
- return cardDescriptions_1.DEFAULT_CARD_DESCRIPTION;
31
+ return DEFAULT_CARD_DESCRIPTION;
50
32
  }
51
33
  /**
52
34
  * Helper function to get the name of a card. Returns "Unknown" if the provided card type is not
@@ -56,20 +38,20 @@ function getCardDescription(cardType) {
56
38
  *
57
39
  * For example, `getCardName(Card.FOOL)` would return "0 - The Fool".
58
40
  */
59
- function getCardName(cardType) {
41
+ export function getCardName(cardType) {
60
42
  // "ItemConfigCard.Name" is bugged with vanilla cards on patch v1.7.6, so we use a hard-coded map
61
43
  // as a workaround.
62
- const cardName = cardNames_1.CARD_NAMES[cardType];
44
+ const cardName = CARD_NAMES[cardType];
63
45
  // Handle modded cards.
64
46
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
65
47
  if (cardName !== undefined) {
66
48
  return cardName;
67
49
  }
68
- const itemConfigCard = cachedClasses_1.itemConfig.GetCard(cardType);
50
+ const itemConfigCard = itemConfig.GetCard(cardType);
69
51
  if (itemConfigCard !== undefined) {
70
52
  return itemConfigCard.Name;
71
53
  }
72
- return cardNames_1.DEFAULT_CARD_NAME;
54
+ return DEFAULT_CARD_NAME;
73
55
  }
74
56
  /**
75
57
  * Helper function to get the item config card type of a particular card, rune, or object. For
@@ -77,8 +59,8 @@ function getCardName(cardType) {
77
59
  *
78
60
  * Returns undefined if the provided card type was not valid.
79
61
  */
80
- function getItemConfigCardType(cardType) {
81
- const itemConfigCard = cachedClasses_1.itemConfig.GetCard(cardType);
62
+ export function getItemConfigCardType(cardType) {
63
+ const itemConfigCard = itemConfig.GetCard(cardType);
82
64
  if (itemConfigCard === undefined) {
83
65
  return undefined;
84
66
  }
@@ -91,9 +73,9 @@ function getItemConfigCardType(cardType) {
91
73
  * This function is variadic, meaning that you can pass as many cards as you want to check for. The
92
74
  * function will return true if the player has any of the cards.
93
75
  */
94
- function hasCard(player, ...cardTypes) {
76
+ export function hasCard(player, ...cardTypes) {
95
77
  const cardTypesSet = new Set(cardTypes);
96
- return cachedEnumValues_1.POCKET_ITEM_SLOT_VALUES.some((pocketItemSlot) => {
78
+ return POCKET_ITEM_SLOT_VALUES.some((pocketItemSlot) => {
97
79
  const cardType = player.GetCard(pocketItemSlot);
98
80
  return cardTypesSet.has(cardType);
99
81
  });
@@ -106,58 +88,58 @@ function hasCard(player, ...cardTypes) {
106
88
  * - `ItemConfigCardType.SPECIAL` (3)
107
89
  * - `ItemConfigCardType.TAROT_REVERSE` (5)
108
90
  */
109
- function isCard(cardType) {
91
+ export function isCard(cardType) {
110
92
  const itemConfigCardType = getItemConfigCardType(cardType);
111
93
  if (itemConfigCardType === undefined) {
112
94
  return false;
113
95
  }
114
- return itemConfigCardTypesForCards_1.ITEM_CONFIG_CARD_TYPES_FOR_CARDS.has(itemConfigCardType);
96
+ return ITEM_CONFIG_CARD_TYPES_FOR_CARDS.has(itemConfigCardType);
115
97
  }
116
98
  /** Returns whether the given card type matches the specified item config card type. */
117
- function isCardType(cardType, itemConfigCardType) {
99
+ export function isCardType(cardType, itemConfigCardType) {
118
100
  return itemConfigCardType === getItemConfigCardType(cardType);
119
101
  }
120
102
  /** Returns true for any card type added by a mod. */
121
- function isModdedCardType(cardType) {
103
+ export function isModdedCardType(cardType) {
122
104
  return !isVanillaCardType(cardType);
123
105
  }
124
106
  /** Returns true for card types that have `ItemConfigCardType.SPECIAL_OBJECT`. */
125
- function isPocketItemObject(cardType) {
126
- return isCardType(cardType, isaac_typescript_definitions_1.ItemConfigCardType.SPECIAL_OBJECT);
107
+ export function isPocketItemObject(cardType) {
108
+ return isCardType(cardType, ItemConfigCardType.SPECIAL_OBJECT);
127
109
  }
128
110
  /** Returns true for card types that have `ItemConfigCardType.TAROT_REVERSE`. */
129
- function isReverseTarotCard(cardType) {
130
- return isCardType(cardType, isaac_typescript_definitions_1.ItemConfigCardType.TAROT_REVERSE);
111
+ export function isReverseTarotCard(cardType) {
112
+ return isCardType(cardType, ItemConfigCardType.TAROT_REVERSE);
131
113
  }
132
114
  /** Returns true for card types that have `ItemConfigCardType.RUNE`. */
133
- function isRune(cardType) {
134
- return isCardType(cardType, isaac_typescript_definitions_1.ItemConfigCardType.RUNE);
115
+ export function isRune(cardType) {
116
+ return isCardType(cardType, ItemConfigCardType.RUNE);
135
117
  }
136
118
  /** Returns true for card types that have `ItemConfigCardType.SPECIAL`. */
137
- function isSpecialCard(cardType) {
138
- return isCardType(cardType, isaac_typescript_definitions_1.ItemConfigCardType.SPECIAL);
119
+ export function isSpecialCard(cardType) {
120
+ return isCardType(cardType, ItemConfigCardType.SPECIAL);
139
121
  }
140
122
  /** Returns true for card types that have `ItemConfigCardType.SUIT`. */
141
- function isSuitCard(cardType) {
142
- return isCardType(cardType, isaac_typescript_definitions_1.ItemConfigCardType.SUIT);
123
+ export function isSuitCard(cardType) {
124
+ return isCardType(cardType, ItemConfigCardType.SUIT);
143
125
  }
144
126
  /** Returns true for card types that have `ItemConfigCardType.TAROT`. */
145
- function isTarotCard(cardType) {
146
- return isCardType(cardType, isaac_typescript_definitions_1.ItemConfigCardType.TAROT);
127
+ export function isTarotCard(cardType) {
128
+ return isCardType(cardType, ItemConfigCardType.TAROT);
147
129
  }
148
- function isValidCardType(cardType) {
149
- const potentialCardType = (0, types_1.asCardType)(cardType);
150
- const itemConfigCard = cachedClasses_1.itemConfig.GetCard(potentialCardType);
130
+ export function isValidCardType(cardType) {
131
+ const potentialCardType = asCardType(cardType);
132
+ const itemConfigCard = itemConfig.GetCard(potentialCardType);
151
133
  return itemConfigCard !== undefined;
152
134
  }
153
- function isVanillaCardType(cardType) {
154
- return cardType <= constantsFirstLast_1.LAST_VANILLA_CARD_TYPE;
135
+ export function isVanillaCardType(cardType) {
136
+ return cardType <= LAST_VANILLA_CARD_TYPE;
155
137
  }
156
138
  /**
157
139
  * Helper function to use a card without showing an animation and without the announcer voice
158
140
  * playing.
159
141
  */
160
- function useCardTemp(player, cardType) {
161
- const useFlags = (0, flag_1.addFlag)(isaac_typescript_definitions_1.UseFlag.NO_ANIMATION, isaac_typescript_definitions_1.UseFlag.NO_ANNOUNCER_VOICE);
142
+ export function useCardTemp(player, cardType) {
143
+ const useFlags = addFlag(UseFlag.NO_ANIMATION, UseFlag.NO_ANNOUNCER_VOICE);
162
144
  player.UseCard(cardType, useFlags);
163
145
  }
@@ -1,21 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearChallenge = clearChallenge;
4
- exports.getChallengeBoss = getChallengeBoss;
5
- exports.getChallengeCharacter = getChallengeCharacter;
6
- exports.getChallengeCollectibleTypes = getChallengeCollectibleTypes;
7
- exports.getChallengeName = getChallengeName;
8
- exports.getChallengeTrinketType = getChallengeTrinketType;
9
- exports.onAnyChallenge = onAnyChallenge;
10
- exports.onChallenge = onChallenge;
11
- exports.setChallenge = setChallenge;
12
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
13
- const challengeBosses_1 = require("../objects/challengeBosses");
14
- const challengeCharacters_1 = require("../objects/challengeCharacters");
15
- const challengeCollectibleTypes_1 = require("../objects/challengeCollectibleTypes");
16
- const challengeNames_1 = require("../objects/challengeNames");
17
- const challengeTrinketType_1 = require("../objects/challengeTrinketType");
18
- const log_1 = require("./log");
1
+ import { Challenge } from "isaac-typescript-definitions";
2
+ import { CHALLENGE_BOSSES, DEFAULT_CHALLENGE_BOSS_ID, } from "../objects/challengeBosses";
3
+ import { CHALLENGE_CHARACTERS, DEFAULT_CHALLENGE_CHARACTER, } from "../objects/challengeCharacters";
4
+ import { CHALLENGE_COLLECTIBLE_TYPES } from "../objects/challengeCollectibleTypes";
5
+ import { CHALLENGE_NAMES, DEFAULT_CHALLENGE_NAME, } from "../objects/challengeNames";
6
+ import { CHALLENGE_TRINKET_TYPE } from "../objects/challengeTrinketType";
7
+ import { log } from "./log";
19
8
  /**
20
9
  * Helper function to clear the current challenge, which will restart the run on a new random
21
10
  * non-challenge seed with the current character.
@@ -24,12 +13,12 @@ const log_1 = require("./log");
24
13
  *
25
14
  * Under the hood, this function executes the `challenge 0` console command.
26
15
  */
27
- function clearChallenge() {
16
+ export function clearChallenge() {
28
17
  if (!onAnyChallenge()) {
29
18
  return;
30
19
  }
31
- const command = `challenge ${isaac_typescript_definitions_1.Challenge.NULL}`;
32
- (0, log_1.log)(`Restarting the run to clear the current challenge with a console command of: ${command}`);
20
+ const command = `challenge ${Challenge.NULL}`;
21
+ log(`Restarting the run to clear the current challenge with a console command of: ${command}`);
33
22
  Isaac.ExecuteCommand(command);
34
23
  }
35
24
  /**
@@ -40,41 +29,41 @@ function clearChallenge() {
40
29
  * Note that for `Challenge.BACKASSWARDS` (31), this function will return `BossID.MEGA_SATAN` (55),
41
30
  * but this is not actually the final boss. (There is no final boss for this challenge.)
42
31
  */
43
- function getChallengeBoss(challenge) {
44
- const challengeBossID = challengeBosses_1.CHALLENGE_BOSSES[challenge];
32
+ export function getChallengeBoss(challenge) {
33
+ const challengeBossID = CHALLENGE_BOSSES[challenge];
45
34
  // Handle modded challenges.
46
35
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
47
- return challengeBossID ?? challengeBosses_1.DEFAULT_CHALLENGE_BOSS_ID;
36
+ return challengeBossID ?? DEFAULT_CHALLENGE_BOSS_ID;
48
37
  }
49
38
  /**
50
39
  * Get the starting character of a challenge. This will only work for vanilla challenges.
51
40
  *
52
41
  * For modded challenges, `PlayerType.ISAAC` (0) will be returned.
53
42
  */
54
- function getChallengeCharacter(challenge) {
55
- const challengeCharacter = challengeCharacters_1.CHALLENGE_CHARACTERS[challenge];
43
+ export function getChallengeCharacter(challenge) {
44
+ const challengeCharacter = CHALLENGE_CHARACTERS[challenge];
56
45
  // Handle modded challenges.
57
46
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
58
- return challengeCharacter ?? challengeCharacters_1.DEFAULT_CHALLENGE_CHARACTER;
47
+ return challengeCharacter ?? DEFAULT_CHALLENGE_CHARACTER;
59
48
  }
60
49
  /**
61
50
  * Get the extra starting collectibles for a challenge. This will only work for vanilla challenges.
62
51
  *
63
52
  * For modded challenges, an empty array will be returned.
64
53
  */
65
- function getChallengeCollectibleTypes(challenge) {
66
- return challengeCollectibleTypes_1.CHALLENGE_COLLECTIBLE_TYPES[challenge];
54
+ export function getChallengeCollectibleTypes(challenge) {
55
+ return CHALLENGE_COLLECTIBLE_TYPES[challenge];
67
56
  }
68
57
  /**
69
58
  * Get the proper name for a `Challenge` enum. This will only work for vanilla challenges.
70
59
  *
71
60
  * For modded challenges, "Unknown" will be returned.
72
61
  */
73
- function getChallengeName(challenge) {
74
- const challengeName = challengeNames_1.CHALLENGE_NAMES[challenge];
62
+ export function getChallengeName(challenge) {
63
+ const challengeName = CHALLENGE_NAMES[challenge];
75
64
  // Handle modded challenges.
76
65
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
77
- return challengeName ?? challengeNames_1.DEFAULT_CHALLENGE_NAME;
66
+ return challengeName ?? DEFAULT_CHALLENGE_NAME;
78
67
  }
79
68
  /**
80
69
  * Get the extra starting trinket for a challenge. This will only work for vanilla challenges.
@@ -83,13 +72,13 @@ function getChallengeName(challenge) {
83
72
  *
84
73
  * For modded challenges, `undefined` will be returned.
85
74
  */
86
- function getChallengeTrinketType(challenge) {
87
- return challengeTrinketType_1.CHALLENGE_TRINKET_TYPE[challenge];
75
+ export function getChallengeTrinketType(challenge) {
76
+ return CHALLENGE_TRINKET_TYPE[challenge];
88
77
  }
89
78
  /** Helper function to see if the player is playing any challenge. */
90
- function onAnyChallenge() {
79
+ export function onAnyChallenge() {
91
80
  const challenge = Isaac.GetChallenge();
92
- return challenge !== isaac_typescript_definitions_1.Challenge.NULL;
81
+ return challenge !== Challenge.NULL;
93
82
  }
94
83
  /**
95
84
  * Helper function to check to see if the player is playing a particular challenge.
@@ -97,7 +86,7 @@ function onAnyChallenge() {
97
86
  * This function is variadic, meaning that you can specify as many challenges as you want to check
98
87
  * for.
99
88
  */
100
- function onChallenge(...challenges) {
89
+ export function onChallenge(...challenges) {
101
90
  const challenge = Isaac.GetChallenge();
102
91
  return challenges.includes(challenge);
103
92
  }
@@ -108,11 +97,11 @@ function onChallenge(...challenges) {
108
97
  *
109
98
  * Under the hood, this function executes the `challenge 0` console command.
110
99
  */
111
- function setChallenge(challenge) {
100
+ export function setChallenge(challenge) {
112
101
  if (onChallenge(challenge)) {
113
102
  return;
114
103
  }
115
104
  const command = `challenge ${challenge}`;
116
- (0, log_1.log)(`Restarting the run to set a challenge with a console command of: ${command}`);
105
+ log(`Restarting the run to set a challenge with a console command of: ${command}`);
117
106
  Isaac.ExecuteCommand(command);
118
107
  }