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,39 +1,31 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAliveNPCs = getAliveNPCs;
4
- exports.isAliveExceptionNPC = isAliveExceptionNPC;
5
- exports.isDaddyLongLegsChildStompEntity = isDaddyLongLegsChildStompEntity;
6
- exports.isDyingDump = isDyingDump;
7
- exports.isDyingEggyWithNoSpidersLeft = isDyingEggyWithNoSpidersLeft;
8
- exports.isRaglingDeathPatch = isRaglingDeathPatch;
9
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
10
- const constants_1 = require("../core/constants");
11
- const ReadonlySet_1 = require("../types/ReadonlySet");
12
- const entitiesSpecific_1 = require("./entitiesSpecific");
1
+ import { BegottenVariant, BigHornVariant, ChargerSubType, ChargerVariant, DarkEsauVariant, DeathVariant, DumpVariant, EntityType, HopperVariant, MamaGurdyVariant, MotherSubType, MotherVariant, NPCState, PeepVariant, RaglingVariant, VisVariant, } from "isaac-typescript-definitions";
2
+ import { EGGY_STATE_FRAME_OF_FINAL_SPIDER } from "../core/constants";
3
+ import { ReadonlySet } from "../types/ReadonlySet";
4
+ import { getNPCs } from "./entitiesSpecific";
13
5
  /**
14
6
  * Used to filter out certain NPCs when determining of an NPC is "alive" and/or should keep the
15
7
  * doors open.
16
8
  */
17
- const NON_ALIVE_NPCS_TYPE_VARIANT = new ReadonlySet_1.ReadonlySet([
18
- `${isaac_typescript_definitions_1.EntityType.VIS}.${isaac_typescript_definitions_1.VisVariant.CHUBBER_PROJECTILE}`, // 39.22
19
- `${isaac_typescript_definitions_1.EntityType.DEATH}.${isaac_typescript_definitions_1.DeathVariant.DEATH_SCYTHE}`, // 66.10
20
- `${isaac_typescript_definitions_1.EntityType.PEEP}.${isaac_typescript_definitions_1.PeepVariant.PEEP_EYE}`, // 68.10
21
- `${isaac_typescript_definitions_1.EntityType.PEEP}.${isaac_typescript_definitions_1.PeepVariant.BLOAT_EYE}`, // 68.11
22
- `${isaac_typescript_definitions_1.EntityType.BEGOTTEN}.${isaac_typescript_definitions_1.BegottenVariant.BEGOTTEN_CHAIN}`, // 251.10
23
- `${isaac_typescript_definitions_1.EntityType.MAMA_GURDY}.${isaac_typescript_definitions_1.MamaGurdyVariant.LEFT_HAND}`, // 266.1
24
- `${isaac_typescript_definitions_1.EntityType.MAMA_GURDY}.${isaac_typescript_definitions_1.MamaGurdyVariant.RIGHT_HAND}`, // 266.2
25
- `${isaac_typescript_definitions_1.EntityType.BIG_HORN}.${isaac_typescript_definitions_1.BigHornVariant.SMALL_HOLE}`, // 411.1
26
- `${isaac_typescript_definitions_1.EntityType.BIG_HORN}.${isaac_typescript_definitions_1.BigHornVariant.BIG_HOLE}`, // 411.2
27
- `${isaac_typescript_definitions_1.EntityType.DARK_ESAU}.${isaac_typescript_definitions_1.DarkEsauVariant.DARK_ESAU}`, // 866.0
28
- `${isaac_typescript_definitions_1.EntityType.DARK_ESAU}.${isaac_typescript_definitions_1.DarkEsauVariant.PIT}`, // 866.1
9
+ const NON_ALIVE_NPCS_TYPE_VARIANT = new ReadonlySet([
10
+ `${EntityType.VIS}.${VisVariant.CHUBBER_PROJECTILE}`, // 39.22
11
+ `${EntityType.DEATH}.${DeathVariant.DEATH_SCYTHE}`, // 66.10
12
+ `${EntityType.PEEP}.${PeepVariant.PEEP_EYE}`, // 68.10
13
+ `${EntityType.PEEP}.${PeepVariant.BLOAT_EYE}`, // 68.11
14
+ `${EntityType.BEGOTTEN}.${BegottenVariant.BEGOTTEN_CHAIN}`, // 251.10
15
+ `${EntityType.MAMA_GURDY}.${MamaGurdyVariant.LEFT_HAND}`, // 266.1
16
+ `${EntityType.MAMA_GURDY}.${MamaGurdyVariant.RIGHT_HAND}`, // 266.2
17
+ `${EntityType.BIG_HORN}.${BigHornVariant.SMALL_HOLE}`, // 411.1
18
+ `${EntityType.BIG_HORN}.${BigHornVariant.BIG_HOLE}`, // 411.2
19
+ `${EntityType.DARK_ESAU}.${DarkEsauVariant.DARK_ESAU}`, // 866.0
20
+ `${EntityType.DARK_ESAU}.${DarkEsauVariant.PIT}`, // 866.1
29
21
  ]);
30
22
  /**
31
23
  * Used to filter out certain NPCs when determining of an NPC is "alive" and/or should keep the
32
24
  * doors open.
33
25
  */
34
- const NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE = new ReadonlySet_1.ReadonlySet([
35
- `${isaac_typescript_definitions_1.EntityType.CHARGER}.${isaac_typescript_definitions_1.ChargerVariant.CHARGER}.${isaac_typescript_definitions_1.ChargerSubType.MY_SHADOW}`, // 23.0.1
36
- `${isaac_typescript_definitions_1.EntityType.MOTHER}.${isaac_typescript_definitions_1.MotherVariant.MOTHER_1}.${isaac_typescript_definitions_1.MotherSubType.PHASE_2}`, // 912
26
+ const NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE = new ReadonlySet([
27
+ `${EntityType.CHARGER}.${ChargerVariant.CHARGER}.${ChargerSubType.MY_SHADOW}`, // 23.0.1
28
+ `${EntityType.MOTHER}.${MotherVariant.MOTHER_1}.${MotherSubType.PHASE_2}`, // 912
37
29
  ]);
38
30
  /**
39
31
  * Helper function to get all of the non-dead NPCs in the room.
@@ -49,15 +41,15 @@ const NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE = new ReadonlySet_1.ReadonlySet([
49
41
  * -1, which matches every sub-type.
50
42
  * @param ignoreFriendly Optional. Default is false.
51
43
  */
52
- function getAliveNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
53
- const npcs = (0, entitiesSpecific_1.getNPCs)(entityType, variant, subType, ignoreFriendly);
44
+ export function getAliveNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
45
+ const npcs = getNPCs(entityType, variant, subType, ignoreFriendly);
54
46
  return npcs.filter((npc) => !npc.IsDead() && !isAliveExceptionNPC(npc));
55
47
  }
56
48
  /**
57
49
  * Checks for specific NPCs that have "CanShutDoors" set to true naturally by the game, but should
58
50
  * not actually keep the doors closed (like Death's scythes).
59
51
  */
60
- function isAliveExceptionNPC(npc) {
52
+ export function isAliveExceptionNPC(npc) {
61
53
  const entityTypeVariant = `${npc.Type}.${npc.Variant}`;
62
54
  if (NON_ALIVE_NPCS_TYPE_VARIANT.has(entityTypeVariant)) {
63
55
  return true;
@@ -93,31 +85,31 @@ function isAliveExceptionNPC(npc) {
93
85
  * entity type, variant, and sub-type. The `Entity.Parent` field will be undefined in this case, so
94
86
  * the way to tell them apart is to check for a non-undefined `Entity.SpawnerEntity` field.
95
87
  */
96
- function isDaddyLongLegsChildStompEntity(npc) {
97
- return (npc.Type === isaac_typescript_definitions_1.EntityType.DADDY_LONG_LEGS && npc.SpawnerEntity !== undefined);
88
+ export function isDaddyLongLegsChildStompEntity(npc) {
89
+ return (npc.Type === EntityType.DADDY_LONG_LEGS && npc.SpawnerEntity !== undefined);
98
90
  }
99
91
  /**
100
92
  * Helper function to detect the custom death state of a Dump. When Dumps die, they go to
101
93
  * `NPCState.SPECIAL`, spit out their head, and then slowly fade away while shooting a burst of
102
94
  * tears.
103
95
  */
104
- function isDyingDump(npc) {
105
- return (npc.Type === isaac_typescript_definitions_1.EntityType.DUMP
96
+ export function isDyingDump(npc) {
97
+ return (npc.Type === EntityType.DUMP
106
98
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
107
- && npc.Variant === isaac_typescript_definitions_1.DumpVariant.DUMP
108
- && npc.State === isaac_typescript_definitions_1.NPCState.SPECIAL);
99
+ && npc.Variant === DumpVariant.DUMP
100
+ && npc.State === NPCState.SPECIAL);
109
101
  }
110
102
  /**
111
103
  * Helper function to detect the custom death state of an Eggy. Eggies are never actually marked
112
104
  * dead by the game. Instead, when Eggies take fatal damage, they go into NPCState.STATE_SUICIDE and
113
105
  * spawn 14 Swarm Spiders while their StateFrame ticks upwards.
114
106
  */
115
- function isDyingEggyWithNoSpidersLeft(npc) {
116
- return (npc.Type === isaac_typescript_definitions_1.EntityType.HOPPER
107
+ export function isDyingEggyWithNoSpidersLeft(npc) {
108
+ return (npc.Type === EntityType.HOPPER
117
109
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
118
- && npc.Variant === isaac_typescript_definitions_1.HopperVariant.EGGY
119
- && npc.State === isaac_typescript_definitions_1.NPCState.SUICIDE
120
- && npc.StateFrame >= constants_1.EGGY_STATE_FRAME_OF_FINAL_SPIDER);
110
+ && npc.Variant === HopperVariant.EGGY
111
+ && npc.State === NPCState.SUICIDE
112
+ && npc.StateFrame >= EGGY_STATE_FRAME_OF_FINAL_SPIDER);
121
113
  }
122
114
  /**
123
115
  * Helper function to detect the custom death state of a Rag Man Ragling. When Rag Man Raglings die,
@@ -125,10 +117,10 @@ function isDyingEggyWithNoSpidersLeft(npc) {
125
117
  * them to show up as an "alive" enemy, so they should usually be filtered out of lists of alive
126
118
  * enemies.
127
119
  */
128
- function isRaglingDeathPatch(npc) {
129
- return (npc.Type === isaac_typescript_definitions_1.EntityType.RAGLING
120
+ export function isRaglingDeathPatch(npc) {
121
+ return (npc.Type === EntityType.RAGLING
130
122
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
131
- && npc.Variant === isaac_typescript_definitions_1.RaglingVariant.RAG_MANS_RAGLING
123
+ && npc.Variant === RaglingVariant.RAG_MANS_RAGLING
132
124
  // They go to `STATE_SPECIAL` when they are patches on the ground.
133
- && npc.State === isaac_typescript_definitions_1.NPCState.SPECIAL);
125
+ && npc.State === NPCState.SPECIAL);
134
126
  }
@@ -1,62 +1,49 @@
1
- "use strict";
2
1
  /* eslint-disable perfectionist/sort-modules */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.isHeart = isHeart;
5
- exports.isCoin = isCoin;
6
- exports.isKey = isKey;
7
- exports.isBombPickup = isBombPickup;
8
- exports.isPoopPickup = isPoopPickup;
9
- exports.isSack = isSack;
10
- exports.isPill = isPill;
11
- exports.isBattery = isBattery;
12
- exports.isCollectible = isCollectible;
13
- exports.isCardPickup = isCardPickup;
14
- exports.isTrinket = isTrinket;
15
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
2
+ import { EntityType, PickupVariant } from "isaac-typescript-definitions";
16
3
  /** For `PickupVariant.HEART` (10). */
17
- function isHeart(pickup) {
18
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.HEART);
4
+ export function isHeart(pickup) {
5
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.HEART);
19
6
  }
20
7
  /** For `PickupVariant.COIN` (20). */
21
- function isCoin(pickup) {
22
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.COIN);
8
+ export function isCoin(pickup) {
9
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.COIN);
23
10
  }
24
11
  /** For `PickupVariant.KEY` (30). */
25
- function isKey(pickup) {
26
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.KEY);
12
+ export function isKey(pickup) {
13
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.KEY);
27
14
  }
28
15
  /** For `PickupVariant.BOMB` (40). */
29
- function isBombPickup(pickup) {
30
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.BOMB);
16
+ export function isBombPickup(pickup) {
17
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.BOMB);
31
18
  }
32
19
  /** For `PickupVariant.POOP` (42). */
33
- function isPoopPickup(pickup) {
34
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.POOP);
20
+ export function isPoopPickup(pickup) {
21
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.POOP);
35
22
  }
36
23
  /** For `PickupVariant.SACK` (69). */
37
- function isSack(pickup) {
38
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.SACK);
24
+ export function isSack(pickup) {
25
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.SACK);
39
26
  }
40
27
  /** For `PickupVariant.PILL` (70). */
41
- function isPill(pickup) {
42
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.PILL);
28
+ export function isPill(pickup) {
29
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.PILL);
43
30
  }
44
31
  /** For `PickupVariant.LIL_BATTERY` (90). */
45
- function isBattery(pickup) {
46
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP
47
- && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.LIL_BATTERY);
32
+ export function isBattery(pickup) {
33
+ return (pickup.Type === EntityType.PICKUP
34
+ && pickup.Variant === PickupVariant.LIL_BATTERY);
48
35
  }
49
36
  /** For `PickupVariant.COLLECTIBLE` (100). */
50
- function isCollectible(pickup) {
51
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP
52
- && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.COLLECTIBLE);
37
+ export function isCollectible(pickup) {
38
+ return (pickup.Type === EntityType.PICKUP
39
+ && pickup.Variant === PickupVariant.COLLECTIBLE);
53
40
  }
54
41
  /** For `PickupVariant.CARD` (300). */
55
- function isCardPickup(pickup) {
56
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.CARD);
42
+ export function isCardPickup(pickup) {
43
+ return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.CARD);
57
44
  }
58
45
  /** For `PickupVariant.TRINKET` (350). */
59
- function isTrinket(pickup) {
60
- return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP
61
- && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.TRINKET);
46
+ export function isTrinket(pickup) {
47
+ return (pickup.Type === EntityType.PICKUP
48
+ && pickup.Variant === PickupVariant.TRINKET);
62
49
  }
@@ -1,32 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBatteryName = getBatteryName;
4
- exports.getBombName = getBombName;
5
- exports.getChestName = getChestName;
6
- exports.getCoinName = getCoinName;
7
- exports.getCoinValue = getCoinValue;
8
- exports.getHeartName = getHeartName;
9
- exports.getKeyName = getKeyName;
10
- exports.getRedHearts = getRedHearts;
11
- exports.getSackName = getSackName;
12
- exports.isChest = isChest;
13
- exports.isChestVariant = isChestVariant;
14
- exports.isRedHeart = isRedHeart;
15
- exports.isRedHeartSubType = isRedHeartSubType;
16
- exports.removeAllRedHearts = removeAllRedHearts;
17
- const constants_1 = require("../core/constants");
18
- const batteryNames_1 = require("../objects/batteryNames");
19
- const bombNames_1 = require("../objects/bombNames");
20
- const chestNames_1 = require("../objects/chestNames");
21
- const coinNames_1 = require("../objects/coinNames");
22
- const coinSubTypeToValue_1 = require("../objects/coinSubTypeToValue");
23
- const heartNames_1 = require("../objects/heartNames");
24
- const keyNames_1 = require("../objects/keyNames");
25
- const sackNames_1 = require("../objects/sackNames");
26
- const redHeartSubTypesSet_1 = require("../sets/redHeartSubTypesSet");
27
- const entities_1 = require("./entities");
28
- const pickupVariants_1 = require("./pickupVariants");
29
- const pickupsSpecific_1 = require("./pickupsSpecific");
1
+ import { CHEST_PICKUP_VARIANTS_SET } from "../core/constants";
2
+ import { BATTERY_NAMES, DEFAULT_BATTERY_NAME } from "../objects/batteryNames";
3
+ import { BOMB_NAMES, DEFAULT_BOMB_NAME } from "../objects/bombNames";
4
+ import { CHEST_NAMES, DEFAULT_CHEST_NAME } from "../objects/chestNames";
5
+ import { COIN_NAMES, DEFAULT_COIN_NAME } from "../objects/coinNames";
6
+ import { COIN_SUB_TYPE_TO_VALUE, DEFAULT_COIN_VALUE, } from "../objects/coinSubTypeToValue";
7
+ import { DEFAULT_HEART_NAME, HEART_NAMES } from "../objects/heartNames";
8
+ import { DEFAULT_KEY_NAME, KEY_NAMES } from "../objects/keyNames";
9
+ import { DEFAULT_SACK_NAME, SACK_NAMES } from "../objects/sackNames";
10
+ import { RED_HEART_SUB_TYPES_SET } from "../sets/redHeartSubTypesSet";
11
+ import { removeEntities } from "./entities";
12
+ import { isHeart } from "./pickupVariants";
13
+ import { getHearts } from "./pickupsSpecific";
30
14
  /**
31
15
  * Helper function to get the name of a battery, as listed in the "entities2.xml" file. Returns
32
16
  * "Unknown" if the provided battery sub-type is not valid.
@@ -35,10 +19,10 @@ const pickupsSpecific_1 = require("./pickupsSpecific");
35
19
  *
36
20
  * For example, `getBatteryName(BatterySubType.MICRO)` would return "Micro Battery".
37
21
  */
38
- function getBatteryName(batterySubType) {
22
+ export function getBatteryName(batterySubType) {
39
23
  // Handle modded hearts.
40
24
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
41
- return batteryNames_1.BATTERY_NAMES[batterySubType] ?? batteryNames_1.DEFAULT_BATTERY_NAME;
25
+ return BATTERY_NAMES[batterySubType] ?? DEFAULT_BATTERY_NAME;
42
26
  }
43
27
  /**
44
28
  * Helper function to get the name of a bomb, as listed in the "entities2.xml" file. Returns
@@ -48,10 +32,10 @@ function getBatteryName(batterySubType) {
48
32
  *
49
33
  * For example, `getBombName(BombSubType.DOUBLE_PACK)` would return "Double Bomb".
50
34
  */
51
- function getBombName(bombSubType) {
35
+ export function getBombName(bombSubType) {
52
36
  // Handle modded bombs.
53
37
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
54
- return bombNames_1.BOMB_NAMES[bombSubType] ?? bombNames_1.DEFAULT_BOMB_NAME;
38
+ return BOMB_NAMES[bombSubType] ?? DEFAULT_BOMB_NAME;
55
39
  }
56
40
  /**
57
41
  * Helper function to get the name of a chest, as listed in the "entities2.xml" file. Returns
@@ -61,9 +45,9 @@ function getBombName(bombSubType) {
61
45
  *
62
46
  * For example, `getChestName(PickupVariant.SPIKED_CHEST)` would return "Spiked Chest".
63
47
  */
64
- function getChestName(pickupVariant) {
65
- const chestNames = chestNames_1.CHEST_NAMES;
66
- return chestNames[pickupVariant] ?? chestNames_1.DEFAULT_CHEST_NAME;
48
+ export function getChestName(pickupVariant) {
49
+ const chestNames = CHEST_NAMES;
50
+ return chestNames[pickupVariant] ?? DEFAULT_CHEST_NAME;
67
51
  }
68
52
  /**
69
53
  * Helper function to get the name of a coin, as listed in the "entities2.xml" file. Returns
@@ -73,20 +57,20 @@ function getChestName(pickupVariant) {
73
57
  *
74
58
  * For example, `getCoinName(CoinSubType.DOUBLE_PACK)` would return "Double Penny".
75
59
  */
76
- function getCoinName(coinSubType) {
60
+ export function getCoinName(coinSubType) {
77
61
  // Handle modded coins.
78
62
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
79
- return coinNames_1.COIN_NAMES[coinSubType] ?? coinNames_1.DEFAULT_COIN_NAME;
63
+ return COIN_NAMES[coinSubType] ?? DEFAULT_COIN_NAME;
80
64
  }
81
65
  /**
82
66
  * Helper function to get the corresponding coin amount from a `CoinSubType`. Returns 1 for modded
83
67
  * sub-types.
84
68
  */
85
- function getCoinValue(coinSubType) {
86
- const value = coinSubTypeToValue_1.COIN_SUB_TYPE_TO_VALUE[coinSubType];
69
+ export function getCoinValue(coinSubType) {
70
+ const value = COIN_SUB_TYPE_TO_VALUE[coinSubType];
87
71
  // Handle modded coin sub-types.
88
72
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
89
- return value ?? coinSubTypeToValue_1.DEFAULT_COIN_VALUE;
73
+ return value ?? DEFAULT_COIN_VALUE;
90
74
  }
91
75
  /**
92
76
  * Helper function to get the name of a heart, as listed in the "entities2.xml" file. Returns
@@ -96,10 +80,10 @@ function getCoinValue(coinSubType) {
96
80
  *
97
81
  * For example, `getHeartName(HeartSubType.ETERNAL)` would return "Heart (eternal)".
98
82
  */
99
- function getHeartName(heartSubType) {
83
+ export function getHeartName(heartSubType) {
100
84
  // Handle modded hearts.
101
85
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
102
- return heartNames_1.HEART_NAMES[heartSubType] ?? heartNames_1.DEFAULT_HEART_NAME;
86
+ return HEART_NAMES[heartSubType] ?? DEFAULT_HEART_NAME;
103
87
  }
104
88
  /**
105
89
  * Helper function to get the name of a key, as listed in the "entities2.xml" file. Returns
@@ -109,15 +93,15 @@ function getHeartName(heartSubType) {
109
93
  *
110
94
  * For example, `getKeyName(KeySubType.DOUBLE_PACK)` would return "Key Ring".
111
95
  */
112
- function getKeyName(keySubType) {
96
+ export function getKeyName(keySubType) {
113
97
  // Handle modded bombs.
114
98
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
115
- return keyNames_1.KEY_NAMES[keySubType] ?? keyNames_1.DEFAULT_KEY_NAME;
99
+ return KEY_NAMES[keySubType] ?? DEFAULT_KEY_NAME;
116
100
  }
117
101
  /** Helper function to get all of the red heart pickup entities in the room. */
118
- function getRedHearts() {
119
- const hearts = (0, pickupsSpecific_1.getHearts)();
120
- return hearts.filter((heart) => redHeartSubTypesSet_1.RED_HEART_SUB_TYPES_SET.has(heart.SubType));
102
+ export function getRedHearts() {
103
+ const hearts = getHearts();
104
+ return hearts.filter((heart) => RED_HEART_SUB_TYPES_SET.has(heart.SubType));
121
105
  }
122
106
  /**
123
107
  * Helper function to get the name of a sack, as listed in the "entities2.xml" file. Returns
@@ -127,33 +111,33 @@ function getRedHearts() {
127
111
  *
128
112
  * For example, `getSackName(SackSubType.NORMAL)` would return "Grab Bag".
129
113
  */
130
- function getSackName(sackSubType) {
114
+ export function getSackName(sackSubType) {
131
115
  // Handle modded hearts.
132
116
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
133
- return sackNames_1.SACK_NAMES[sackSubType] ?? sackNames_1.DEFAULT_SACK_NAME;
117
+ return SACK_NAMES[sackSubType] ?? DEFAULT_SACK_NAME;
134
118
  }
135
119
  /** Helper function to test if the provided pickup matches one of the various chest variants. */
136
- function isChest(pickup) {
120
+ export function isChest(pickup) {
137
121
  return isChestVariant(pickup.Variant);
138
122
  }
139
123
  /**
140
124
  * Helper function to test if the provided pickup variant matches one of the various chest variants.
141
125
  */
142
- function isChestVariant(pickupVariant) {
143
- return constants_1.CHEST_PICKUP_VARIANTS_SET.has(pickupVariant);
126
+ export function isChestVariant(pickupVariant) {
127
+ return CHEST_PICKUP_VARIANTS_SET.has(pickupVariant);
144
128
  }
145
129
  /**
146
130
  * Helper function to test if the provided pickup matches one of the various red heart sub-types.
147
131
  */
148
- function isRedHeart(pickup) {
149
- return (0, pickupVariants_1.isHeart)(pickup) && redHeartSubTypesSet_1.RED_HEART_SUB_TYPES_SET.has(pickup.SubType);
132
+ export function isRedHeart(pickup) {
133
+ return isHeart(pickup) && RED_HEART_SUB_TYPES_SET.has(pickup.SubType);
150
134
  }
151
135
  /**
152
136
  * Helper function to test if the provided heart sub-type matches one of the various red heart
153
137
  * sub-types.
154
138
  */
155
- function isRedHeartSubType(heartSubType) {
156
- return redHeartSubTypesSet_1.RED_HEART_SUB_TYPES_SET.has(heartSubType);
139
+ export function isRedHeartSubType(heartSubType) {
140
+ return RED_HEART_SUB_TYPES_SET.has(heartSubType);
157
141
  }
158
142
  /**
159
143
  * Helper function to remove all of the red heart pickup entities in the room.
@@ -161,7 +145,7 @@ function isRedHeartSubType(heartSubType) {
161
145
  * @param cap Optional. If specified, will only remove the given amount of hearts.
162
146
  * @returns The red hearts that were removed.
163
147
  */
164
- function removeAllRedHearts(cap) {
148
+ export function removeAllRedHearts(cap) {
165
149
  const redHearts = getRedHearts();
166
- return (0, entities_1.removeEntities)(redHearts, cap);
150
+ return removeEntities(redHearts, cap);
167
151
  }