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,65 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearCollectibleSprite = clearCollectibleSprite;
4
- exports.collectibleHasCacheFlag = collectibleHasCacheFlag;
5
- exports.collectibleSpriteEquals = collectibleSpriteEquals;
6
- exports.getCollectibleChargeType = getCollectibleChargeType;
7
- exports.getCollectibleDescription = getCollectibleDescription;
8
- exports.getCollectibleDevilCoinPrice = getCollectibleDevilCoinPrice;
9
- exports.getCollectibleDevilHeartPrice = getCollectibleDevilHeartPrice;
10
- exports.getCollectibleGfxFilename = getCollectibleGfxFilename;
11
- exports.getCollectibleInitCharge = getCollectibleInitCharge;
12
- exports.getCollectibleItemType = getCollectibleItemType;
13
- exports.getCollectibleMaxCharges = getCollectibleMaxCharges;
14
- exports.getCollectibleName = getCollectibleName;
15
- exports.getCollectiblePedestalType = getCollectiblePedestalType;
16
- exports.getCollectibleQuality = getCollectibleQuality;
17
- exports.getCollectibleTags = getCollectibleTags;
18
- exports.getVanillaCollectibleTypesOfQuality = getVanillaCollectibleTypesOfQuality;
19
- exports.isActiveCollectible = isActiveCollectible;
20
- exports.isBlindCollectible = isBlindCollectible;
21
- exports.isFamiliarCollectible = isFamiliarCollectible;
22
- exports.isGlitchedCollectible = isGlitchedCollectible;
23
- exports.isHiddenCollectible = isHiddenCollectible;
24
- exports.isModdedCollectibleType = isModdedCollectibleType;
25
- exports.isPassiveOrFamiliarCollectible = isPassiveOrFamiliarCollectible;
26
- exports.isQuality = isQuality;
27
- exports.isSingleUseCollectible = isSingleUseCollectible;
28
- exports.isValidCollectibleType = isValidCollectibleType;
29
- exports.isVanillaCollectibleType = isVanillaCollectibleType;
30
- exports.newCollectibleSprite = newCollectibleSprite;
31
- exports.preventCollectibleRotation = preventCollectibleRotation;
32
- exports.removeCollectiblePickupDelay = removeCollectiblePickupDelay;
33
- exports.setCollectibleBlind = setCollectibleBlind;
34
- exports.setCollectibleEmpty = setCollectibleEmpty;
35
- exports.setCollectibleGlitched = setCollectibleGlitched;
36
- exports.setCollectiblePedestalType = setCollectiblePedestalType;
37
- exports.setCollectibleSprite = setCollectibleSprite;
38
- exports.setCollectiblesRerolledForItemTracker = setCollectiblesRerolledForItemTracker;
39
- exports.setCollectibleSubType = setCollectibleSubType;
40
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
41
- const cachedClasses_1 = require("../core/cachedClasses");
42
- const constants_1 = require("../core/constants");
43
- const constantsFirstLast_1 = require("../core/constantsFirstLast");
44
- const constantsVanilla_1 = require("../core/constantsVanilla");
45
- const collectibleDescriptions_1 = require("../objects/collectibleDescriptions");
46
- const collectibleNames_1 = require("../objects/collectibleNames");
47
- const singleUseActiveCollectibleTypesSet_1 = require("../sets/singleUseActiveCollectibleTypesSet");
48
- const entities_1 = require("./entities");
49
- const flag_1 = require("./flag");
50
- const pickupVariants_1 = require("./pickupVariants");
51
- const sprites_1 = require("./sprites");
52
- const types_1 = require("./types");
53
- const utils_1 = require("./utils");
1
+ import { CollectibleSpriteLayer, CollectibleType, EntityType, ItemConfigChargeType, ItemConfigTagZero, ItemType, PickupPrice, PickupVariant, RenderMode, } from "isaac-typescript-definitions";
2
+ import { game, itemConfig } from "../core/cachedClasses";
3
+ import { BLIND_ITEM_PNG_PATH, DEFAULT_ITEM_POOL_TYPE, QUALITIES, } from "../core/constants";
4
+ import { LAST_VANILLA_COLLECTIBLE_TYPE } from "../core/constantsFirstLast";
5
+ import { VANILLA_COLLECTIBLE_TYPES } from "../core/constantsVanilla";
6
+ import { COLLECTIBLE_DESCRIPTIONS, DEFAULT_COLLECTIBLE_DESCRIPTION, } from "../objects/collectibleDescriptions";
7
+ import { COLLECTIBLE_NAMES, DEFAULT_COLLECTIBLE_NAME, } from "../objects/collectibleNames";
8
+ import { SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET } from "../sets/singleUseActiveCollectibleTypesSet";
9
+ import { getEntityID } from "./entities";
10
+ import { hasFlag } from "./flag";
11
+ import { isCollectible } from "./pickupVariants";
12
+ import { clearSprite, spriteEquals } from "./sprites";
13
+ import { asCollectibleType, isInteger } from "./types";
14
+ import { assertDefined } from "./utils";
54
15
  const COLLECTIBLE_ANM2_PATH = "gfx/005.100_collectible.anm2";
55
16
  const DEFAULT_COLLECTIBLE_PRICE = 15;
56
17
  /** Glitched items start at id 4294967295 (the final 32-bit integer) and increment backwards. */
57
18
  const GLITCHED_ITEM_THRESHOLD = 4_000_000_000;
58
19
  const QUALITY_TO_VANILLA_COLLECTIBLE_TYPES_MAP = (() => {
59
20
  const qualityToCollectibleTypesMap = new Map();
60
- for (const quality of constants_1.QUALITIES) {
21
+ for (const quality of QUALITIES) {
61
22
  const collectibleTypes = [];
62
- for (const collectibleType of constantsVanilla_1.VANILLA_COLLECTIBLE_TYPES) {
23
+ for (const collectibleType of VANILLA_COLLECTIBLE_TYPES) {
63
24
  const collectibleTypeQuality = getCollectibleQuality(collectibleType);
64
25
  if (collectibleTypeQuality === quality) {
65
26
  collectibleTypes.push(collectibleType);
@@ -77,24 +38,24 @@ const questionMarkSprite = (() => {
77
38
  sprite.LoadGraphics();
78
39
  return sprite;
79
40
  })();
80
- function clearCollectibleSprite(collectible) {
81
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
82
- const entityID = (0, entities_1.getEntityID)(collectible);
41
+ export function clearCollectibleSprite(collectible) {
42
+ if (!isCollectible(collectible)) {
43
+ const entityID = getEntityID(collectible);
83
44
  error(`The "clearCollectibleSprite" function was given a non-collectible: ${entityID}`);
84
45
  }
85
46
  setCollectibleSprite(collectible, undefined);
86
47
  }
87
48
  /** Helper function to check in the item config if a given collectible has a given cache flag. */
88
- function collectibleHasCacheFlag(collectibleOrCollectibleType, cacheFlag) {
49
+ export function collectibleHasCacheFlag(collectibleOrCollectibleType, cacheFlag) {
89
50
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "collectibleHasCacheFlag");
90
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
51
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
91
52
  if (itemConfigItem === undefined) {
92
53
  return false;
93
54
  }
94
- return (0, flag_1.hasFlag)(itemConfigItem.CacheFlags, cacheFlag);
55
+ return hasFlag(itemConfigItem.CacheFlags, cacheFlag);
95
56
  }
96
57
  /** Helper function to check if two collectible sprites have the same sprite sheet loaded. */
97
- function collectibleSpriteEquals(sprite1, sprite2) {
58
+ export function collectibleSpriteEquals(sprite1, sprite2) {
98
59
  // We start at negative 40 texels upwards, as by default we assume a collectible that is sitting
99
60
  // on a pedestal. We finish at positive 10 texels downwards, in order to make comparing shop items
100
61
  // more accurate.
@@ -104,17 +65,17 @@ function collectibleSpriteEquals(sprite1, sprite2) {
104
65
  const yStart = -40;
105
66
  const yFinish = 10;
106
67
  const yIncrement = 3;
107
- return (0, sprites_1.spriteEquals)(sprite1, sprite2, isaac_typescript_definitions_1.CollectibleSpriteLayer.HEAD, xStart, xFinish, xIncrement, yStart, yFinish, yIncrement);
68
+ return spriteEquals(sprite1, sprite2, CollectibleSpriteLayer.HEAD, xStart, xFinish, xIncrement, yStart, yFinish, yIncrement);
108
69
  }
109
70
  /**
110
71
  * Helper function to get the charge type that a collectible has. Returns
111
72
  * `ItemConfigChargeType.NORMAL` if the provided collectible type was not valid.
112
73
  */
113
- function getCollectibleChargeType(collectibleOrCollectibleType) {
74
+ export function getCollectibleChargeType(collectibleOrCollectibleType) {
114
75
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleChargeType");
115
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
76
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
116
77
  if (itemConfigItem === undefined) {
117
- return isaac_typescript_definitions_1.ItemConfigChargeType.NORMAL;
78
+ return ItemConfigChargeType.NORMAL;
118
79
  }
119
80
  return itemConfigItem.ChargeType;
120
81
  }
@@ -124,30 +85,30 @@ function getCollectibleChargeType(collectibleOrCollectibleType) {
124
85
  *
125
86
  * This function works for both vanilla and modded collectibles.
126
87
  */
127
- function getCollectibleDescription(collectibleOrCollectibleType) {
88
+ export function getCollectibleDescription(collectibleOrCollectibleType) {
128
89
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleDescription");
129
90
  // "ItemConfigItem.Description" is bugged with vanilla items on patch v1.7.6, so we use a
130
91
  // hard-coded map as a workaround.
131
- const collectibleDescription = collectibleDescriptions_1.COLLECTIBLE_DESCRIPTIONS[collectibleType];
92
+ const collectibleDescription = COLLECTIBLE_DESCRIPTIONS[collectibleType];
132
93
  if (collectibleDescription !== undefined) {
133
94
  return collectibleDescription;
134
95
  }
135
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
96
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
136
97
  if (itemConfigItem !== undefined) {
137
98
  return itemConfigItem.Description;
138
99
  }
139
- return collectibleDescriptions_1.DEFAULT_COLLECTIBLE_DESCRIPTION;
100
+ return DEFAULT_COLLECTIBLE_DESCRIPTION;
140
101
  }
141
102
  /**
142
103
  * Helper function to get the coin cost that a collectible item would be if it were being offered in
143
104
  * a Devil Room deal. Returns 0 if passed `CollectibleType.NULL`.
144
105
  */
145
- function getCollectibleDevilCoinPrice(collectibleOrCollectibleType) {
106
+ export function getCollectibleDevilCoinPrice(collectibleOrCollectibleType) {
146
107
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleDescription");
147
- if (collectibleType === isaac_typescript_definitions_1.CollectibleType.NULL) {
108
+ if (collectibleType === CollectibleType.NULL) {
148
109
  return 0;
149
110
  }
150
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
111
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
151
112
  if (itemConfigItem === undefined) {
152
113
  return DEFAULT_COLLECTIBLE_PRICE;
153
114
  }
@@ -157,26 +118,26 @@ function getCollectibleDevilCoinPrice(collectibleOrCollectibleType) {
157
118
  * Helper function to get the heart cost that a collectible item would be if it were being offered
158
119
  * in a Devil Room deal. Returns 0 if passed `CollectibleType.NULL`.
159
120
  */
160
- function getCollectibleDevilHeartPrice(collectibleOrCollectibleType, player) {
121
+ export function getCollectibleDevilHeartPrice(collectibleOrCollectibleType, player) {
161
122
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleDevilHeartPrice");
162
- if (collectibleType === isaac_typescript_definitions_1.CollectibleType.NULL) {
123
+ if (collectibleType === CollectibleType.NULL) {
163
124
  return 0;
164
125
  }
165
126
  const maxHearts = player.GetMaxHearts();
166
127
  if (maxHearts === 0) {
167
- return isaac_typescript_definitions_1.PickupPrice.THREE_SOUL_HEARTS;
128
+ return PickupPrice.THREE_SOUL_HEARTS;
168
129
  }
169
- const defaultCollectiblePrice = isaac_typescript_definitions_1.PickupPrice.ONE_HEART;
170
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
130
+ const defaultCollectiblePrice = PickupPrice.ONE_HEART;
131
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
171
132
  if (itemConfigItem === undefined) {
172
133
  return defaultCollectiblePrice;
173
134
  }
174
135
  const twoHeartPrice = maxHearts === 2
175
- ? isaac_typescript_definitions_1.PickupPrice.ONE_HEART_AND_TWO_SOUL_HEARTS
176
- : isaac_typescript_definitions_1.PickupPrice.TWO_HEARTS;
136
+ ? PickupPrice.ONE_HEART_AND_TWO_SOUL_HEARTS
137
+ : PickupPrice.TWO_HEARTS;
177
138
  return itemConfigItem.DevilPrice === 2
178
139
  ? twoHeartPrice
179
- : isaac_typescript_definitions_1.PickupPrice.ONE_HEART;
140
+ : PickupPrice.ONE_HEART;
180
141
  }
181
142
  /**
182
143
  * Helper function to get the path to a collectible PNG file. Returns the path to the question mark
@@ -188,14 +149,14 @@ function getCollectibleDevilHeartPrice(collectibleOrCollectibleType, player) {
188
149
  * The function is named "GfxFilename" to correspond to the associated `ItemConfigItem.GfxFileName`
189
150
  * field.
190
151
  */
191
- function getCollectibleGfxFilename(collectibleOrCollectibleType) {
152
+ export function getCollectibleGfxFilename(collectibleOrCollectibleType) {
192
153
  if (collectibleOrCollectibleType === -1) {
193
- return constants_1.BLIND_ITEM_PNG_PATH;
154
+ return BLIND_ITEM_PNG_PATH;
194
155
  }
195
156
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleGfxFilename");
196
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
157
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
197
158
  if (itemConfigItem === undefined) {
198
- return constants_1.BLIND_ITEM_PNG_PATH;
159
+ return BLIND_ITEM_PNG_PATH;
199
160
  }
200
161
  return itemConfigItem.GfxFileName;
201
162
  }
@@ -208,9 +169,9 @@ function getCollectibleGfxFilename(collectibleOrCollectibleType) {
208
169
  * This function returns 0 if the provided collectible type was not valid. This function returns -1
209
170
  * if the provided collectible type was not an active collectible.
210
171
  */
211
- function getCollectibleInitCharge(collectibleOrCollectibleType) {
172
+ export function getCollectibleInitCharge(collectibleOrCollectibleType) {
212
173
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleInitCharge");
213
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
174
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
214
175
  if (itemConfigItem === undefined) {
215
176
  return 0;
216
177
  }
@@ -220,11 +181,11 @@ function getCollectibleInitCharge(collectibleOrCollectibleType) {
220
181
  * Helper function to get the `ItemType` of a collectible. Returns `ItemType.ITEM_NULL` if the
221
182
  * provided collectible type was not valid.
222
183
  */
223
- function getCollectibleItemType(collectibleOrCollectibleType) {
184
+ export function getCollectibleItemType(collectibleOrCollectibleType) {
224
185
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleItemType");
225
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
186
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
226
187
  if (itemConfigItem === undefined) {
227
- return isaac_typescript_definitions_1.ItemType.NULL;
188
+ return ItemType.NULL;
228
189
  }
229
190
  return itemConfigItem.Type;
230
191
  }
@@ -232,9 +193,9 @@ function getCollectibleItemType(collectibleOrCollectibleType) {
232
193
  * Helper function to get the maximum amount of charges that a collectible has. Returns 0 if the
233
194
  * provided collectible type was not valid.
234
195
  */
235
- function getCollectibleMaxCharges(collectibleOrCollectibleType) {
196
+ export function getCollectibleMaxCharges(collectibleOrCollectibleType) {
236
197
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleMaxCharges");
237
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
198
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
238
199
  if (itemConfigItem === undefined) {
239
200
  return 0;
240
201
  }
@@ -248,27 +209,27 @@ function getCollectibleMaxCharges(collectibleOrCollectibleType) {
248
209
  *
249
210
  * For example, `getCollectibleName(CollectibleType.SAD_ONION)` would return "Sad Onion".
250
211
  */
251
- function getCollectibleName(collectibleOrCollectibleType) {
212
+ export function getCollectibleName(collectibleOrCollectibleType) {
252
213
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleName");
253
214
  // "ItemConfigItem.Name" is bugged with vanilla items on patch v1.7.6, so we use a hard-coded map
254
215
  // as a workaround.
255
- const collectibleName = collectibleNames_1.COLLECTIBLE_NAMES[collectibleType];
216
+ const collectibleName = COLLECTIBLE_NAMES[collectibleType];
256
217
  if (collectibleName !== undefined) {
257
218
  return collectibleName;
258
219
  }
259
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
220
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
260
221
  if (itemConfigItem !== undefined) {
261
222
  return itemConfigItem.Name;
262
223
  }
263
- return collectibleNames_1.DEFAULT_COLLECTIBLE_NAME;
224
+ return DEFAULT_COLLECTIBLE_NAME;
264
225
  }
265
226
  /**
266
227
  * Helper function to get the "pedestal type" of a collectible. For example, it might be sitting on
267
228
  * top of a broken Blood Donation Machine, or it might be sitting on top of an opened Spiked Chest.
268
229
  */
269
- function getCollectiblePedestalType(collectible) {
270
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
271
- const entityID = (0, entities_1.getEntityID)(collectible);
230
+ export function getCollectiblePedestalType(collectible) {
231
+ if (!isCollectible(collectible)) {
232
+ const entityID = getEntityID(collectible);
272
233
  error(`The "getCollectiblePedestalType" function was given a non-collectible: ${entityID}`);
273
234
  }
274
235
  const sprite = collectible.GetSprite();
@@ -279,9 +240,9 @@ function getCollectiblePedestalType(collectible) {
279
240
  * example, Mom's Knife has a quality of 4. Returns 0 if the provided collectible type was not
280
241
  * valid.
281
242
  */
282
- function getCollectibleQuality(collectibleOrCollectibleType) {
243
+ export function getCollectibleQuality(collectibleOrCollectibleType) {
283
244
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleQuality");
284
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
245
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
285
246
  if (itemConfigItem === undefined) {
286
247
  return 0;
287
248
  }
@@ -298,10 +259,10 @@ function getCollectibleQuality(collectibleOrCollectibleType) {
298
259
  * const itemConfigTags = getCollectibleTags(collectibleType); // itemConfigTags is "18350080"
299
260
  * ```
300
261
  */
301
- function getCollectibleTags(collectibleOrCollectibleType) {
262
+ export function getCollectibleTags(collectibleOrCollectibleType) {
302
263
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "getCollectibleTags");
303
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
304
- return itemConfigItem === undefined ? isaac_typescript_definitions_1.ItemConfigTagZero : itemConfigItem.Tags;
264
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
265
+ return itemConfigItem === undefined ? ItemConfigTagZero : itemConfigItem.Tags;
305
266
  }
306
267
  /**
307
268
  * Returns an array containing every vanilla collectible type with the given quality.
@@ -309,15 +270,15 @@ function getCollectibleTags(collectibleOrCollectibleType) {
309
270
  * Note that this function will only return vanilla collectible types. To handle modded collectible
310
271
  * types, use the `getCollectibleTypesOfQuality` helper function instead.
311
272
  */
312
- function getVanillaCollectibleTypesOfQuality(quality) {
273
+ export function getVanillaCollectibleTypesOfQuality(quality) {
313
274
  const collectibleTypes = QUALITY_TO_VANILLA_COLLECTIBLE_TYPES_MAP.get(quality);
314
- (0, utils_1.assertDefined)(collectibleTypes, `Failed to find the vanilla collectible types corresponding to quality: ${quality}`);
275
+ assertDefined(collectibleTypes, `Failed to find the vanilla collectible types corresponding to quality: ${quality}`);
315
276
  return collectibleTypes;
316
277
  }
317
278
  /** Returns true if the item type in the item config is equal to `ItemType.ACTIVE`. */
318
- function isActiveCollectible(collectibleType) {
279
+ export function isActiveCollectible(collectibleType) {
319
280
  const itemType = getCollectibleItemType(collectibleType);
320
- return itemType === isaac_typescript_definitions_1.ItemType.ACTIVE;
281
+ return itemType === ItemType.ACTIVE;
321
282
  }
322
283
  /**
323
284
  * Returns true if the collectible has a red question mark sprite.
@@ -325,14 +286,14 @@ function isActiveCollectible(collectibleType) {
325
286
  * Note that this function will not work properly in a render callback with the `RenderMode` set to
326
287
  * `RenderMode.WATER_REFLECT`. If this is detected, this function will throw a run-time error.
327
288
  */
328
- function isBlindCollectible(collectible) {
329
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
330
- const entityID = (0, entities_1.getEntityID)(collectible);
289
+ export function isBlindCollectible(collectible) {
290
+ if (!isCollectible(collectible)) {
291
+ const entityID = getEntityID(collectible);
331
292
  error(`The "isBlindCollectible" function was given a non-collectible: ${entityID}`);
332
293
  }
333
- const room = cachedClasses_1.game.GetRoom();
294
+ const room = game.GetRoom();
334
295
  const renderMode = room.GetRenderMode();
335
- if (renderMode === isaac_typescript_definitions_1.RenderMode.WATER_REFLECT) {
296
+ if (renderMode === RenderMode.WATER_REFLECT) {
336
297
  error('The "isBlindCollectible" function will not work properly in a render callback with the render mode equal to "RenderMode.WATER_REFLECT". Make sure that you properly account for this case if you are calling this function in a render callback.');
337
298
  }
338
299
  const sprite = collectible.GetSprite();
@@ -342,9 +303,9 @@ function isBlindCollectible(collectible) {
342
303
  return collectibleSpriteEquals(sprite, questionMarkSprite);
343
304
  }
344
305
  /** Returns true if the item type in the item config is equal to `ItemType.FAMILIAR`. */
345
- function isFamiliarCollectible(collectibleType) {
306
+ export function isFamiliarCollectible(collectibleType) {
346
307
  const itemType = getCollectibleItemType(collectibleType);
347
- return itemType === isaac_typescript_definitions_1.ItemType.FAMILIAR;
308
+ return itemType === ItemType.FAMILIAR;
348
309
  }
349
310
  /**
350
311
  * Returns whether the given collectible is a "glitched" item. All items are replaced by glitched
@@ -353,8 +314,8 @@ function isFamiliarCollectible(collectibleType) {
353
314
  *
354
315
  * Under the hood, this checks if the sub-type of the collectible is greater than 4,000,000,000.
355
316
  */
356
- function isGlitchedCollectible(collectible) {
357
- return (collectible.Variant === isaac_typescript_definitions_1.PickupVariant.COLLECTIBLE
317
+ export function isGlitchedCollectible(collectible) {
318
+ return (collectible.Variant === PickupVariant.COLLECTIBLE
358
319
  && collectible.SubType > GLITCHED_ITEM_THRESHOLD);
359
320
  }
360
321
  /**
@@ -362,25 +323,25 @@ function isGlitchedCollectible(collectible) {
362
323
  *
363
324
  * Hidden collectibles will not show up in any pools and Eden will not start with them.
364
325
  */
365
- function isHiddenCollectible(collectibleOrCollectibleType) {
326
+ export function isHiddenCollectible(collectibleOrCollectibleType) {
366
327
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "isHiddenCollectible");
367
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
328
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
368
329
  return itemConfigItem !== undefined && itemConfigItem.Hidden;
369
330
  }
370
- function isModdedCollectibleType(collectibleType) {
331
+ export function isModdedCollectibleType(collectibleType) {
371
332
  return !isVanillaCollectibleType(collectibleType);
372
333
  }
373
334
  /**
374
335
  * Returns true if the item type in the item config is equal to `ItemType.ITEM_PASSIVE` or
375
336
  * `ItemType.ITEM_FAMILIAR`.
376
337
  */
377
- function isPassiveOrFamiliarCollectible(collectibleOrCollectibleType) {
338
+ export function isPassiveOrFamiliarCollectible(collectibleOrCollectibleType) {
378
339
  const collectibleType = getCollectibleTypeFromArg(collectibleOrCollectibleType, "isPassiveCollectible");
379
340
  const itemType = getCollectibleItemType(collectibleType);
380
- return itemType === isaac_typescript_definitions_1.ItemType.PASSIVE || itemType === isaac_typescript_definitions_1.ItemType.FAMILIAR;
341
+ return itemType === ItemType.PASSIVE || itemType === ItemType.FAMILIAR;
381
342
  }
382
343
  /** Helper function to check if a collectible type is a particular quality. */
383
- function isQuality(collectibleOrCollectibleType, quality) {
344
+ export function isQuality(collectibleOrCollectibleType, quality) {
384
345
  const actualQuality = getCollectibleQuality(collectibleOrCollectibleType);
385
346
  return quality === actualQuality;
386
347
  }
@@ -389,16 +350,16 @@ function isQuality(collectibleOrCollectibleType, quality) {
389
350
  * inventory upon use. Note that this will not work will modded collectibles, as there is no way to
390
351
  * dynamically know if a modded collectible will disappear.
391
352
  */
392
- function isSingleUseCollectible(collectibleType) {
393
- return singleUseActiveCollectibleTypesSet_1.SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET.has(collectibleType);
353
+ export function isSingleUseCollectible(collectibleType) {
354
+ return SINGLE_USE_ACTIVE_COLLECTIBLE_TYPES_SET.has(collectibleType);
394
355
  }
395
- function isValidCollectibleType(collectibleType) {
396
- const potentialCollectibleType = (0, types_1.asCollectibleType)(collectibleType);
397
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(potentialCollectibleType);
356
+ export function isValidCollectibleType(collectibleType) {
357
+ const potentialCollectibleType = asCollectibleType(collectibleType);
358
+ const itemConfigItem = itemConfig.GetCollectible(potentialCollectibleType);
398
359
  return itemConfigItem !== undefined;
399
360
  }
400
- function isVanillaCollectibleType(collectibleType) {
401
- return collectibleType <= constantsFirstLast_1.LAST_VANILLA_COLLECTIBLE_TYPE;
361
+ export function isVanillaCollectibleType(collectibleType) {
362
+ return collectibleType <= LAST_VANILLA_COLLECTIBLE_TYPE;
402
363
  }
403
364
  /**
404
365
  * Helper function to generate a new sprite based on a collectible. If the provided collectible type
@@ -406,15 +367,15 @@ function isVanillaCollectibleType(collectibleType) {
406
367
  *
407
368
  * If you intentionally want a question mark sprite, pass -1 as the collectible type.
408
369
  */
409
- function newCollectibleSprite(collectibleType) {
370
+ export function newCollectibleSprite(collectibleType) {
410
371
  const sprite = Sprite();
411
372
  sprite.Load(COLLECTIBLE_ANM2_PATH, false);
412
373
  // We want to clear the pedestal layers so that the returned sprite only has the collectible
413
374
  // image. We can't use the `Sprite.Reset` method for this purpose because that would unload the
414
375
  // anm2 file.
415
- (0, sprites_1.clearSprite)(sprite);
376
+ clearSprite(sprite);
416
377
  const gfxFileName = getCollectibleGfxFilename(collectibleType);
417
- sprite.ReplaceSpritesheet(isaac_typescript_definitions_1.CollectibleSpriteLayer.HEAD, gfxFileName);
378
+ sprite.ReplaceSpritesheet(CollectibleSpriteLayer.HEAD, gfxFileName);
418
379
  sprite.LoadGraphics();
419
380
  const defaultAnimation = sprite.GetDefaultAnimation();
420
381
  sprite.Play(defaultAnimation, true);
@@ -427,9 +388,9 @@ function newCollectibleSprite(collectibleType) {
427
388
  * Under the hood, this is accomplished by morphing the collectible with the `ignoreModifiers`
428
389
  * argument set to true.
429
390
  */
430
- function preventCollectibleRotation(collectible) {
431
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
432
- const entityID = (0, entities_1.getEntityID)(collectible);
391
+ export function preventCollectibleRotation(collectible) {
392
+ if (!isCollectible(collectible)) {
393
+ const entityID = getEntityID(collectible);
433
394
  error(`The "preventCollectibleRotation" function was given a non-collectible: ${entityID}`);
434
395
  }
435
396
  collectible.Morph(collectible.Type, collectible.Variant, collectible.SubType, true, true, true);
@@ -438,9 +399,9 @@ function preventCollectibleRotation(collectible) {
438
399
  * Helper function to remove all pickup delay on a collectible. By default, collectibles have a 20
439
400
  * frame delay before they can be picked up by a player.
440
401
  */
441
- function removeCollectiblePickupDelay(collectible) {
442
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
443
- const entityID = (0, entities_1.getEntityID)(collectible);
402
+ export function removeCollectiblePickupDelay(collectible) {
403
+ if (!isCollectible(collectible)) {
404
+ const entityID = getEntityID(collectible);
444
405
  error(`The "removeCollectiblePickupDelay" function was given a non-collectible: ${entityID}`);
445
406
  }
446
407
  collectible.Wait = 0;
@@ -449,12 +410,12 @@ function removeCollectiblePickupDelay(collectible) {
449
410
  * Helper function to set a collectible sprite to a question mark (i.e. how collectibles look when
450
411
  * the player has Curse of the Blind).
451
412
  */
452
- function setCollectibleBlind(collectible) {
453
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
454
- const entityID = (0, entities_1.getEntityID)(collectible);
413
+ export function setCollectibleBlind(collectible) {
414
+ if (!isCollectible(collectible)) {
415
+ const entityID = getEntityID(collectible);
455
416
  error(`The "setCollectibleBlind" function was given a non-collectible: ${entityID}`);
456
417
  }
457
- setCollectibleSprite(collectible, constants_1.BLIND_ITEM_PNG_PATH);
418
+ setCollectibleSprite(collectible, BLIND_ITEM_PNG_PATH);
458
419
  }
459
420
  /**
460
421
  * Helper function to remove the collectible from a collectible pedestal and make it appear as if a
@@ -463,35 +424,35 @@ function setCollectibleBlind(collectible) {
463
424
  *
464
425
  * For more information, see the documentation for the "clearSprite" helper function.
465
426
  */
466
- function setCollectibleEmpty(collectible) {
467
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
468
- const entityID = (0, entities_1.getEntityID)(collectible);
427
+ export function setCollectibleEmpty(collectible) {
428
+ if (!isCollectible(collectible)) {
429
+ const entityID = getEntityID(collectible);
469
430
  error(`The "setCollectibleEmpty" function was given a non-collectible: ${entityID}`);
470
431
  }
471
- collectible.SubType = isaac_typescript_definitions_1.CollectibleType.NULL;
432
+ collectible.SubType = CollectibleType.NULL;
472
433
  clearCollectibleSprite(collectible);
473
434
  }
474
435
  /**
475
436
  * Helper function to change a collectible into a "glitched" item (like the ones that appear when
476
437
  * the player has TMTRAINER).
477
438
  */
478
- function setCollectibleGlitched(collectible) {
479
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
480
- const entityID = (0, entities_1.getEntityID)(collectible);
439
+ export function setCollectibleGlitched(collectible) {
440
+ if (!isCollectible(collectible)) {
441
+ const entityID = getEntityID(collectible);
481
442
  error(`The "setCollectibleGlitched" function was given a non-collectible: ${entityID}`);
482
443
  }
483
444
  // We need to generate a new glitched item. Thus, we temporarily give the player TMTRAINER, if
484
445
  // necessary.
485
446
  const player = Isaac.GetPlayer();
486
- const hasTMTRAINER = player.HasCollectible(isaac_typescript_definitions_1.CollectibleType.TMTRAINER);
447
+ const hasTMTRAINER = player.HasCollectible(CollectibleType.TMTRAINER);
487
448
  if (!hasTMTRAINER) {
488
- player.AddCollectible(isaac_typescript_definitions_1.CollectibleType.TMTRAINER, 0, false);
449
+ player.AddCollectible(CollectibleType.TMTRAINER, 0, false);
489
450
  }
490
- const itemPool = cachedClasses_1.game.GetItemPool();
491
- const collectibleType = itemPool.GetCollectible(constants_1.DEFAULT_ITEM_POOL_TYPE);
451
+ const itemPool = game.GetItemPool();
452
+ const collectibleType = itemPool.GetCollectible(DEFAULT_ITEM_POOL_TYPE);
492
453
  setCollectibleSubType(collectible, collectibleType);
493
454
  if (!hasTMTRAINER) {
494
- player.RemoveCollectible(isaac_typescript_definitions_1.CollectibleType.TMTRAINER);
455
+ player.RemoveCollectible(CollectibleType.TMTRAINER);
495
456
  }
496
457
  }
497
458
  /**
@@ -499,9 +460,9 @@ function setCollectibleGlitched(collectible) {
499
460
  * top of a broken Blood Donation Machine and you want to change it to be sitting on top of an
500
461
  * opened Spiked Chest.
501
462
  */
502
- function setCollectiblePedestalType(collectible, collectiblePedestalType) {
503
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
504
- const entityID = (0, entities_1.getEntityID)(collectible);
463
+ export function setCollectiblePedestalType(collectible, collectiblePedestalType) {
464
+ if (!isCollectible(collectible)) {
465
+ const entityID = getEntityID(collectible);
505
466
  error(`The "setCollectiblePedestalType" function was given a non-collectible: ${entityID}`);
506
467
  }
507
468
  const sprite = collectible.GetSprite();
@@ -520,19 +481,19 @@ function setCollectiblePedestalType(collectible, collectiblePedestalType) {
520
481
  * undefined, the sprite will be removed, making it appear like the collectible has
521
482
  * already been taken by the player.
522
483
  */
523
- function setCollectibleSprite(collectible, pngPath) {
524
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
525
- const entityID = (0, entities_1.getEntityID)(collectible);
484
+ export function setCollectibleSprite(collectible, pngPath) {
485
+ if (!isCollectible(collectible)) {
486
+ const entityID = getEntityID(collectible);
526
487
  error(`The "setCollectibleSprite" function was given a non-collectible: ${entityID}`);
527
488
  }
528
489
  const sprite = collectible.GetSprite();
529
490
  if (pngPath === undefined) {
530
491
  // We want to remove the little circle that appears on top of the pedestal, which is why we also
531
492
  // clear `CollectibleSpriteLayer.ITEM_SHADOW`.
532
- (0, sprites_1.clearSprite)(sprite, isaac_typescript_definitions_1.CollectibleSpriteLayer.HEAD, isaac_typescript_definitions_1.CollectibleSpriteLayer.ITEM_SHADOW);
493
+ clearSprite(sprite, CollectibleSpriteLayer.HEAD, CollectibleSpriteLayer.ITEM_SHADOW);
533
494
  }
534
495
  else {
535
- sprite.ReplaceSpritesheet(isaac_typescript_definitions_1.CollectibleSpriteLayer.HEAD, pngPath);
496
+ sprite.ReplaceSpritesheet(CollectibleSpriteLayer.HEAD, pngPath);
536
497
  sprite.LoadGraphics();
537
498
  }
538
499
  }
@@ -540,7 +501,7 @@ function setCollectibleSprite(collectible, pngPath) {
540
501
  * Helper function to put a message in the log.txt file to let the Rebirth Item Tracker know that
541
502
  * the build has been rerolled.
542
503
  */
543
- function setCollectiblesRerolledForItemTracker() {
504
+ export function setCollectiblesRerolledForItemTracker() {
544
505
  // This cannot use the "log" function since the prefix will prevent the Rebirth Item Tracker from
545
506
  // recognizing the message. The number here does not matter since the tracker does not check for a
546
507
  // specific number.
@@ -550,14 +511,14 @@ function setCollectiblesRerolledForItemTracker() {
550
511
  * Helper function to change the collectible on a pedestal. Simply updating the `SubType` field is
551
512
  * not sufficient because the sprite will not change.
552
513
  */
553
- function setCollectibleSubType(collectible, newCollectibleType) {
554
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
555
- const entityID = (0, entities_1.getEntityID)(collectible);
514
+ export function setCollectibleSubType(collectible, newCollectibleType) {
515
+ if (!isCollectible(collectible)) {
516
+ const entityID = getEntityID(collectible);
556
517
  error(`The "setCollectibleSubType" function was given a non-collectible: ${entityID}`);
557
518
  }
558
519
  // You cannot morph a pedestal to "CollectibleType.NULL"; it would instead create a new random
559
520
  // collectible item.
560
- if (newCollectibleType === isaac_typescript_definitions_1.CollectibleType.NULL) {
521
+ if (newCollectibleType === CollectibleType.NULL) {
561
522
  setCollectibleEmpty(collectible);
562
523
  return;
563
524
  }
@@ -565,15 +526,15 @@ function setCollectibleSubType(collectible, newCollectibleType) {
565
526
  // will not update the sprite. Manually updating the sprite works in most situations, but does not
566
527
  // work when the pedestal is empty. Instead, we can simply morph the collectible, which seems to
567
528
  // work in all situations.
568
- collectible.Morph(isaac_typescript_definitions_1.EntityType.PICKUP, isaac_typescript_definitions_1.PickupVariant.COLLECTIBLE, newCollectibleType, true, true, true);
529
+ collectible.Morph(EntityType.PICKUP, PickupVariant.COLLECTIBLE, newCollectibleType, true, true, true);
569
530
  }
570
531
  function getCollectibleTypeFromArg(collectibleOrCollectibleType, functionName) {
571
- if ((0, types_1.isInteger)(collectibleOrCollectibleType)) {
532
+ if (isInteger(collectibleOrCollectibleType)) {
572
533
  return collectibleOrCollectibleType;
573
534
  }
574
535
  const collectible = collectibleOrCollectibleType;
575
- if (!(0, pickupVariants_1.isCollectible)(collectible)) {
576
- const entityID = (0, entities_1.getEntityID)(collectible);
536
+ if (!isCollectible(collectible)) {
537
+ const entityID = getEntityID(collectible);
577
538
  error(`The "${functionName}" function was given a non-collectible: ${entityID}`);
578
539
  }
579
540
  return collectible.SubType;