isaacscript-common 87.9.7 → 87.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/dist/cachedEnumValues.js +29 -32
  2. package/dist/callbackClasses.js +142 -289
  3. package/dist/callbacks.js +147 -183
  4. package/dist/classes/DefaultMap.js +4 -8
  5. package/dist/classes/ModFeature.js +21 -25
  6. package/dist/classes/ModUpgraded.js +43 -47
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
  9. package/dist/classes/callbacks/InputActionFilter.js +4 -8
  10. package/dist/classes/callbacks/InputActionPlayer.js +4 -8
  11. package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
  12. package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
  13. package/dist/classes/callbacks/PostBombExploded.js +8 -12
  14. package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
  15. package/dist/classes/callbacks/PostBombInitLate.js +6 -10
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
  18. package/dist/classes/callbacks/PostBoneSwing.js +7 -11
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
  20. package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
  21. package/dist/classes/callbacks/PostCustomRevive.js +4 -8
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
  23. package/dist/classes/callbacks/PostDoorRender.js +8 -12
  24. package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
  26. package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
  31. package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
  32. package/dist/classes/callbacks/PostEsauJr.js +4 -8
  33. package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
  34. package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
  35. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
  36. package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
  37. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
  38. package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
  39. package/dist/classes/callbacks/PostFirstFlip.js +4 -8
  40. package/dist/classes/callbacks/PostFlip.js +4 -8
  41. package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
  42. package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
  43. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
  44. package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
  45. package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
  46. package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
  47. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
  48. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
  49. package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
  50. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
  51. package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
  52. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
  53. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
  54. package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
  55. package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
  56. package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
  57. package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
  58. package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
  59. package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
  60. package/dist/classes/callbacks/PostItemDischarge.js +23 -27
  61. package/dist/classes/callbacks/PostItemPickup.js +6 -10
  62. package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
  63. package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
  64. package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
  65. package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
  66. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
  67. package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
  68. package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
  69. package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
  70. package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
  71. package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
  72. package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
  73. package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
  74. package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
  75. package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
  76. package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
  77. package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
  78. package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
  79. package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
  80. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
  81. package/dist/classes/callbacks/PostPickupChanged.js +6 -10
  82. package/dist/classes/callbacks/PostPickupCollect.js +8 -12
  83. package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
  84. package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
  85. package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
  86. package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
  87. package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
  88. package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
  89. package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
  90. package/dist/classes/callbacks/PostPitRender.js +8 -12
  91. package/dist/classes/callbacks/PostPitUpdate.js +8 -12
  92. package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
  93. package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
  94. package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
  95. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
  96. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
  97. package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
  98. package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
  99. package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
  100. package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
  101. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
  102. package/dist/classes/callbacks/PostPoopRender.js +8 -12
  103. package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
  104. package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
  105. package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
  106. package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
  107. package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
  108. package/dist/classes/callbacks/PostProjectileKill.js +8 -12
  109. package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
  110. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
  111. package/dist/classes/callbacks/PostPurchase.js +21 -25
  112. package/dist/classes/callbacks/PostRockRender.js +8 -12
  113. package/dist/classes/callbacks/PostRockUpdate.js +8 -12
  114. package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
  115. package/dist/classes/callbacks/PostSacrifice.js +12 -16
  116. package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
  117. package/dist/classes/callbacks/PostSlotCollision.js +8 -12
  118. package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
  119. package/dist/classes/callbacks/PostSlotInit.js +6 -10
  120. package/dist/classes/callbacks/PostSlotRender.js +6 -10
  121. package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
  122. package/dist/classes/callbacks/PostSpikesRender.js +8 -12
  123. package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
  124. package/dist/classes/callbacks/PostTNTRender.js +8 -12
  125. package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
  126. package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
  127. package/dist/classes/callbacks/PostTearInitLate.js +6 -10
  128. package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
  129. package/dist/classes/callbacks/PostTearKill.js +8 -12
  130. package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
  131. package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
  132. package/dist/classes/callbacks/PostTransformation.js +10 -14
  133. package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
  134. package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
  135. package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
  136. package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
  137. package/dist/classes/callbacks/PreCustomRevive.js +6 -10
  138. package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
  139. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
  140. package/dist/classes/callbacks/PreGetPedestal.js +8 -12
  141. package/dist/classes/callbacks/PreItemPickup.js +6 -10
  142. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
  143. package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
  144. package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
  145. package/dist/classes/callbacks/PreNewLevel.js +10 -14
  146. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
  147. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
  148. package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
  149. package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
  150. package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
  151. package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
  152. package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
  153. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
  154. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
  155. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
  156. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
  157. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
  158. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
  159. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
  160. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
  161. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
  162. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
  163. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
  164. package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
  165. package/dist/classes/features/other/CharacterStats.js +9 -13
  166. package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
  167. package/dist/classes/features/other/CustomHotkeys.js +15 -19
  168. package/dist/classes/features/other/CustomItemPools.js +20 -24
  169. package/dist/classes/features/other/CustomPickups.js +15 -19
  170. package/dist/classes/features/other/CustomStages.js +116 -153
  171. package/dist/classes/features/other/CustomTrapdoors.js +119 -123
  172. package/dist/classes/features/other/DebugDisplay.js +77 -81
  173. package/dist/classes/features/other/DeployJSONRoom.js +65 -69
  174. package/dist/classes/features/other/DisableAllSound.js +14 -18
  175. package/dist/classes/features/other/DisableInputs.js +24 -28
  176. package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
  177. package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
  178. package/dist/classes/features/other/FadeInRemover.js +9 -13
  179. package/dist/classes/features/other/FastReset.js +18 -22
  180. package/dist/classes/features/other/FlyingDetection.js +10 -14
  181. package/dist/classes/features/other/ForgottenSwitch.js +8 -12
  182. package/dist/classes/features/other/ItemPoolDetection.js +35 -39
  183. package/dist/classes/features/other/ModdedElementDetection.js +43 -47
  184. package/dist/classes/features/other/ModdedElementSets.js +135 -139
  185. package/dist/classes/features/other/NoSirenSteal.js +7 -11
  186. package/dist/classes/features/other/Pause.js +48 -52
  187. package/dist/classes/features/other/PersistentEntities.js +16 -20
  188. package/dist/classes/features/other/PickupIndexCreation.js +31 -35
  189. package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
  190. package/dist/classes/features/other/PonyDetection.js +22 -26
  191. package/dist/classes/features/other/PressInput.js +10 -14
  192. package/dist/classes/features/other/PreventChildEntities.js +6 -10
  193. package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
  194. package/dist/classes/features/other/RerunDetection.js +11 -15
  195. package/dist/classes/features/other/RoomClearFrame.js +11 -15
  196. package/dist/classes/features/other/RoomHistory.js +30 -34
  197. package/dist/classes/features/other/RunInNFrames.js +24 -28
  198. package/dist/classes/features/other/RunNextRoom.js +8 -12
  199. package/dist/classes/features/other/RunNextRun.js +8 -12
  200. package/dist/classes/features/other/SaveDataManager.js +61 -65
  201. package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
  202. package/dist/classes/features/other/StageHistory.js +76 -80
  203. package/dist/classes/features/other/StartAmbush.js +12 -16
  204. package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
  205. package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
  206. package/dist/classes/features/other/customStages/backdrop.js +68 -71
  207. package/dist/classes/features/other/customStages/constants.js +7 -10
  208. package/dist/classes/features/other/customStages/gridEntities.js +23 -30
  209. package/dist/classes/features/other/customStages/shadows.js +27 -30
  210. package/dist/classes/features/other/customStages/streakText.js +55 -60
  211. package/dist/classes/features/other/customStages/utils.js +13 -17
  212. package/dist/classes/features/other/customStages/v.js +4 -7
  213. package/dist/classes/features/other/customStages/versusScreen.js +46 -50
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
  227. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
  229. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
  231. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
  232. package/dist/classes/features/other/debugDisplay/utils.js +6 -10
  233. package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
  234. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
  235. package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
  236. package/dist/classes/features/other/saveDataManager/constants.js +1 -4
  237. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
  238. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
  239. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
  240. package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
  241. package/dist/classes/private/CustomCallback.js +4 -8
  242. package/dist/classes/private/Feature.js +1 -5
  243. package/dist/core/cachedClasses.js +12 -15
  244. package/dist/core/constants.js +126 -130
  245. package/dist/core/constantsFirstLast.js +22 -25
  246. package/dist/core/constantsVanilla.js +25 -28
  247. package/dist/core/upgradeMod.js +7 -10
  248. package/dist/decorators.js +6 -10
  249. package/dist/enums/AmbushType.js +2 -5
  250. package/dist/enums/CornerType.js +2 -5
  251. package/dist/enums/HealthType.js +2 -5
  252. package/dist/enums/ISCFeature.js +2 -5
  253. package/dist/enums/LadderSubTypeCustom.js +2 -5
  254. package/dist/enums/ModCallbackCustom.js +2 -5
  255. package/dist/enums/MysteriousPaperEffect.js +2 -5
  256. package/dist/enums/PlayerStat.js +2 -5
  257. package/dist/enums/PocketItemType.js +2 -5
  258. package/dist/enums/RockAltType.js +2 -5
  259. package/dist/enums/SaveDataKey.js +2 -5
  260. package/dist/enums/SerializationType.js +2 -5
  261. package/dist/enums/SlotDestructionType.js +2 -5
  262. package/dist/enums/private/GridEntityTypeCustom.js +1 -4
  263. package/dist/enums/private/SerializationBrand.js +2 -5
  264. package/dist/enums/private/StageTravelState.js +2 -5
  265. package/dist/enums/private/TrapdoorAnimation.js +2 -5
  266. package/dist/enums/private/UIStreakAnimation.js +2 -5
  267. package/dist/features.js +138 -141
  268. package/dist/functions/ambush.js +9 -12
  269. package/dist/functions/array.js +45 -76
  270. package/dist/functions/arrayLua.js +7 -16
  271. package/dist/functions/benchmark.js +4 -7
  272. package/dist/functions/bitSet128.js +19 -26
  273. package/dist/functions/bitwise.js +14 -23
  274. package/dist/functions/bombs.js +1 -4
  275. package/dist/functions/bosses.js +68 -85
  276. package/dist/functions/cards.js +44 -62
  277. package/dist/functions/challenges.js +28 -39
  278. package/dist/functions/characters.js +68 -87
  279. package/dist/functions/charge.js +41 -52
  280. package/dist/functions/chargeBar.js +2 -6
  281. package/dist/functions/collectibleTag.js +9 -13
  282. package/dist/functions/collectibles.js +133 -172
  283. package/dist/functions/color.js +29 -38
  284. package/dist/functions/console.js +4 -8
  285. package/dist/functions/curses.js +6 -10
  286. package/dist/functions/debugFunctions.js +7 -14
  287. package/dist/functions/decorators.js +13 -19
  288. package/dist/functions/deepCopy.js +96 -99
  289. package/dist/functions/deepCopyTests.js +56 -59
  290. package/dist/functions/dimensions.js +10 -14
  291. package/dist/functions/direction.js +22 -30
  292. package/dist/functions/doors.js +104 -154
  293. package/dist/functions/easing.js +30 -62
  294. package/dist/functions/effects.js +6 -10
  295. package/dist/functions/emptyRoom.js +30 -34
  296. package/dist/functions/entities.js +88 -115
  297. package/dist/functions/entitiesSpecific.js +83 -125
  298. package/dist/functions/entityTypes.js +3 -6
  299. package/dist/functions/enums.js +27 -41
  300. package/dist/functions/external.js +4 -8
  301. package/dist/functions/familiars.js +17 -25
  302. package/dist/functions/flag.js +10 -19
  303. package/dist/functions/frames.js +31 -51
  304. package/dist/functions/globals.js +26 -66
  305. package/dist/functions/gridEntities.js +231 -269
  306. package/dist/functions/gridEntitiesSpecific.js +86 -126
  307. package/dist/functions/gridIndex.js +8 -11
  308. package/dist/functions/hash.js +1 -4
  309. package/dist/functions/hex.js +7 -11
  310. package/dist/functions/input.js +65 -88
  311. package/dist/functions/isaacAPIClass.js +28 -53
  312. package/dist/functions/itemPool.js +39 -48
  313. package/dist/functions/jsonHelpers.js +5 -42
  314. package/dist/functions/jsonRoom.js +39 -46
  315. package/dist/functions/kColor.js +30 -39
  316. package/dist/functions/language.js +3 -6
  317. package/dist/functions/level.js +20 -26
  318. package/dist/functions/levelGrid.js +81 -108
  319. package/dist/functions/log.js +6 -12
  320. package/dist/functions/logEntities.js +49 -59
  321. package/dist/functions/logMisc.js +183 -214
  322. package/dist/functions/map.js +10 -20
  323. package/dist/functions/math.js +16 -31
  324. package/dist/functions/merge.js +48 -51
  325. package/dist/functions/mergeTests.js +34 -37
  326. package/dist/functions/minimap.js +34 -46
  327. package/dist/functions/modFeatures.js +1 -4
  328. package/dist/functions/newArray.js +5 -8
  329. package/dist/functions/nextStage.js +63 -67
  330. package/dist/functions/npcDataStructures.js +9 -20
  331. package/dist/functions/npcs.js +37 -45
  332. package/dist/functions/pickupVariants.js +26 -39
  333. package/dist/functions/pickups.js +43 -59
  334. package/dist/functions/pickupsSpecific.js +76 -118
  335. package/dist/functions/pills.js +52 -72
  336. package/dist/functions/playerCenter.js +13 -16
  337. package/dist/functions/playerCollectibles.js +59 -79
  338. package/dist/functions/playerDataStructures.js +18 -29
  339. package/dist/functions/playerEffects.js +12 -19
  340. package/dist/functions/playerHealth.js +91 -113
  341. package/dist/functions/playerIndex.js +22 -33
  342. package/dist/functions/playerTrinkets.js +31 -43
  343. package/dist/functions/players.js +87 -126
  344. package/dist/functions/pocketItems.js +33 -43
  345. package/dist/functions/positionVelocity.js +23 -32
  346. package/dist/functions/pressurePlate.js +7 -10
  347. package/dist/functions/projectiles.js +11 -15
  348. package/dist/functions/random.js +8 -13
  349. package/dist/functions/readOnly.js +3 -8
  350. package/dist/functions/render.js +7 -12
  351. package/dist/functions/revive.js +38 -45
  352. package/dist/functions/rng.js +31 -44
  353. package/dist/functions/rockAlt.js +18 -22
  354. package/dist/functions/roomData.js +24 -40
  355. package/dist/functions/roomGrid.js +17 -25
  356. package/dist/functions/roomShape.js +39 -55
  357. package/dist/functions/roomShapeWalls.js +67 -71
  358. package/dist/functions/roomTransition.js +13 -17
  359. package/dist/functions/rooms.js +181 -244
  360. package/dist/functions/run.js +29 -39
  361. package/dist/functions/seeds.js +6 -10
  362. package/dist/functions/serialization.js +27 -34
  363. package/dist/functions/set.js +24 -40
  364. package/dist/functions/slots.js +18 -22
  365. package/dist/functions/sort.js +9 -15
  366. package/dist/functions/sound.js +12 -16
  367. package/dist/functions/spawnCollectible.js +21 -26
  368. package/dist/functions/sprites.js +16 -24
  369. package/dist/functions/stage.js +122 -164
  370. package/dist/functions/stats.js +37 -43
  371. package/dist/functions/storyBosses.js +36 -40
  372. package/dist/functions/string.js +19 -33
  373. package/dist/functions/table.js +21 -31
  374. package/dist/functions/tears.js +6 -14
  375. package/dist/functions/transformations.js +35 -42
  376. package/dist/functions/trinketGive.js +29 -36
  377. package/dist/functions/trinkets.js +45 -60
  378. package/dist/functions/tstlClass.js +11 -20
  379. package/dist/functions/types.js +22 -46
  380. package/dist/functions/ui.js +25 -40
  381. package/dist/functions/utils.js +22 -36
  382. package/dist/functions/vector.js +33 -46
  383. package/dist/functions/versusScreen.js +12 -18
  384. package/dist/functions/weighted.js +8 -12
  385. package/dist/index.js +150 -166
  386. package/dist/index.rollup.d.ts +11 -11
  387. package/dist/indexLua.js +151 -167
  388. package/dist/interfaces/ChargeBarSprites.js +1 -2
  389. package/dist/interfaces/Corner.js +1 -2
  390. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  391. package/dist/interfaces/GridEntityCustomData.js +1 -2
  392. package/dist/interfaces/JSONRoomsFile.js +1 -2
  393. package/dist/interfaces/PlayerHealth.d.ts +11 -11
  394. package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
  395. package/dist/interfaces/PlayerHealth.js +1 -2
  396. package/dist/interfaces/PlayerStats.js +2 -4
  397. package/dist/interfaces/PocketItemDescription.js +1 -2
  398. package/dist/interfaces/RoomDescription.js +1 -2
  399. package/dist/interfaces/SaveData.js +1 -2
  400. package/dist/interfaces/StageHistoryEntry.js +1 -2
  401. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  402. package/dist/interfaces/TrinketSituation.js +1 -2
  403. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  404. package/dist/interfaces/private/CustomStage.js +1 -2
  405. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  406. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  407. package/dist/isaacscript-common.lua +1 -1
  408. package/dist/maps/PHDPillConversionsMap.js +19 -22
  409. package/dist/maps/cardNameToTypeMap.js +205 -208
  410. package/dist/maps/characterNameToTypeMap.js +85 -88
  411. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  412. package/dist/maps/defaultPlayerStatMap.js +10 -13
  413. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  414. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  415. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  416. package/dist/maps/gridEntityXMLMap.js +52 -55
  417. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  418. package/dist/maps/keyboardToStringMap.js +66 -69
  419. package/dist/maps/pillNameToEffectMap.js +83 -86
  420. package/dist/maps/roomNameToTypeMap.js +38 -41
  421. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  422. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  423. package/dist/maps/trinketNameToTypeMap.js +5 -8
  424. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  425. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  426. package/dist/objects/batteryNames.js +8 -11
  427. package/dist/objects/bombNames.js +11 -14
  428. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  429. package/dist/objects/bossNamePNGFileNames.js +104 -107
  430. package/dist/objects/bossNames.js +105 -108
  431. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  432. package/dist/objects/cardDescriptions.js +101 -104
  433. package/dist/objects/cardNames.js +101 -104
  434. package/dist/objects/challengeBosses.js +49 -52
  435. package/dist/objects/challengeCharacters.js +49 -52
  436. package/dist/objects/challengeCollectibleTypes.js +160 -163
  437. package/dist/objects/challengeNames.js +49 -52
  438. package/dist/objects/challengeTrinketType.js +48 -51
  439. package/dist/objects/characterDamageMultipliers.js +44 -47
  440. package/dist/objects/characterNames.js +44 -47
  441. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  442. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  443. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  444. package/dist/objects/chestNames.js +15 -18
  445. package/dist/objects/coinNames.js +11 -14
  446. package/dist/objects/coinSubTypeToValue.js +11 -14
  447. package/dist/objects/collectibleDescriptions.js +725 -728
  448. package/dist/objects/collectibleNames.js +725 -728
  449. package/dist/objects/colors.js +1 -4
  450. package/dist/objects/directionNames.js +7 -10
  451. package/dist/objects/directionToDegrees.js +7 -10
  452. package/dist/objects/directionToMoveAction.js +7 -10
  453. package/dist/objects/directionToShootAction.js +7 -10
  454. package/dist/objects/directionToVector.js +9 -12
  455. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  456. package/dist/objects/doorSlotToDirection.js +11 -14
  457. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  458. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  459. package/dist/objects/heartNames.js +16 -19
  460. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  461. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  462. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  463. package/dist/objects/kColors.js +1 -4
  464. package/dist/objects/keyNames.js +8 -11
  465. package/dist/objects/languageNames.js +9 -12
  466. package/dist/objects/oppositeDoorSlots.js +11 -14
  467. package/dist/objects/pillEffectClasses.js +53 -56
  468. package/dist/objects/pillEffectNames.js +53 -56
  469. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  470. package/dist/objects/pillEffectTypes.js +53 -56
  471. package/dist/objects/playerNamePNGFileNames.js +44 -47
  472. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  473. package/dist/objects/roomShapeBounds.js +23 -26
  474. package/dist/objects/roomShapeCorners.js +128 -131
  475. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  476. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  477. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  478. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  479. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  480. package/dist/objects/roomShapeToGridWidth.js +14 -17
  481. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  482. package/dist/objects/roomShapeVolumes.js +21 -24
  483. package/dist/objects/roomTypeNames.js +32 -35
  484. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  485. package/dist/objects/sackNames.js +6 -9
  486. package/dist/objects/slotNames.js +21 -24
  487. package/dist/objects/stageIDNames.js +33 -36
  488. package/dist/objects/stageToMusic.js +69 -72
  489. package/dist/objects/stageToStageID.js +90 -93
  490. package/dist/objects/stageTypeSuffixes.js +8 -11
  491. package/dist/objects/transformationNames.js +16 -19
  492. package/dist/objects/trinketDescriptions.js +192 -195
  493. package/dist/objects/trinketNames.js +192 -195
  494. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  495. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  496. package/dist/patchErrorFunctions.js +4 -7
  497. package/dist/serialization.js +6 -9
  498. package/dist/sets/LRoomShapesSet.js +7 -10
  499. package/dist/sets/bigRoomShapesSet.js +10 -13
  500. package/dist/sets/bossSets.js +261 -264
  501. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  502. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  503. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  504. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  505. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  506. package/dist/sets/consoleCommandsSet.js +2 -5
  507. package/dist/sets/entitiesWithArmorSet.js +44 -47
  508. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  509. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  510. package/dist/sets/lostStyleCharactersSet.js +8 -11
  511. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  512. package/dist/sets/narrowRoomShapesSet.js +7 -10
  513. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  514. package/dist/sets/redHeartSubTypesSet.js +6 -9
  515. package/dist/sets/repentanceBossIDsSet.js +26 -29
  516. package/dist/sets/sinEntityTypesSet.js +10 -13
  517. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  518. package/dist/shaderCrashFix.js +4 -7
  519. package/dist/shouldFire.js +28 -58
  520. package/dist/types/AddSubtract.js +1 -2
  521. package/dist/types/AllButFirst.js +1 -2
  522. package/dist/types/AllButLast.js +1 -2
  523. package/dist/types/AnyClass.js +1 -2
  524. package/dist/types/AnyEntity.js +1 -2
  525. package/dist/types/AnyFunction.js +1 -2
  526. package/dist/types/AnyGridEntity.js +1 -2
  527. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  528. package/dist/types/ConversionHeartSubType.js +1 -2
  529. package/dist/types/Decrement.js +1 -2
  530. package/dist/types/ERange.js +1 -2
  531. package/dist/types/EntityID.js +1 -2
  532. package/dist/types/FunctionTuple.js +1 -2
  533. package/dist/types/GridEntityID.js +1 -2
  534. package/dist/types/HasFunction.js +1 -2
  535. package/dist/types/IRange.js +1 -2
  536. package/dist/types/Immutable.js +1 -2
  537. package/dist/types/Increment.js +1 -2
  538. package/dist/types/LowercaseKeys.js +1 -2
  539. package/dist/types/NaturalNumbersLessThan.js +1 -2
  540. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  541. package/dist/types/ObjectValues.js +1 -2
  542. package/dist/types/PickingUpItem.js +15 -22
  543. package/dist/types/PickupIndex.js +1 -2
  544. package/dist/types/PlayerIndex.js +1 -2
  545. package/dist/types/PossibleStatType.js +1 -2
  546. package/dist/types/PublicInterface.js +1 -2
  547. package/dist/types/ReadonlyMap.js +1 -4
  548. package/dist/types/ReadonlyRecord.js +1 -2
  549. package/dist/types/ReadonlySet.js +1 -4
  550. package/dist/types/StartsWithLowercase.js +1 -2
  551. package/dist/types/StartsWithUppercase.js +1 -2
  552. package/dist/types/TSTLClass.js +1 -2
  553. package/dist/types/Tuple.js +1 -2
  554. package/dist/types/TupleKeys.js +1 -2
  555. package/dist/types/TupleToIntersection.js +1 -2
  556. package/dist/types/TupleToUnion.js +1 -2
  557. package/dist/types/TupleWithLengthBetween.js +1 -2
  558. package/dist/types/TupleWithMaxLength.js +1 -2
  559. package/dist/types/UnionToIntersection.js +1 -2
  560. package/dist/types/UppercaseKeys.js +1 -2
  561. package/dist/types/WeightedArray.js +1 -2
  562. package/dist/types/WidenLiteral.js +1 -2
  563. package/dist/types/Writable.js +1 -2
  564. package/dist/types/private/CallbackTuple.js +1 -2
  565. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  566. package/package.json +3 -3
  567. package/src/interfaces/PlayerHealth.ts +12 -11
@@ -1,21 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addPlayerStat = addPlayerStat;
4
- exports.getDefaultPlayerStat = getDefaultPlayerStat;
5
- exports.getPlayerStat = getPlayerStat;
6
- exports.getPlayerStats = getPlayerStats;
7
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
8
- const PlayerStat_1 = require("../enums/PlayerStat");
9
- const defaultPlayerStatMap_1 = require("../maps/defaultPlayerStatMap");
10
- const ReadonlySet_1 = require("../types/ReadonlySet");
11
- const tears_1 = require("./tears");
12
- const STAT_CACHE_FLAGS_SET = new ReadonlySet_1.ReadonlySet([
13
- isaac_typescript_definitions_1.CacheFlag.DAMAGE, // 1 << 0
14
- isaac_typescript_definitions_1.CacheFlag.FIRE_DELAY, // 1 << 1
15
- isaac_typescript_definitions_1.CacheFlag.SHOT_SPEED, // 1 << 2
16
- isaac_typescript_definitions_1.CacheFlag.RANGE, // 1 << 3
17
- isaac_typescript_definitions_1.CacheFlag.SPEED, // 1 << 4
18
- isaac_typescript_definitions_1.CacheFlag.LUCK, // 1 << 10
1
+ import { CacheFlag } from "isaac-typescript-definitions";
2
+ import { PlayerStat } from "../enums/PlayerStat";
3
+ import { DEFAULT_PLAYER_STAT_MAP } from "../maps/defaultPlayerStatMap";
4
+ import { ReadonlySet } from "../types/ReadonlySet";
5
+ import { addTearsStat } from "./tears";
6
+ const STAT_CACHE_FLAGS_SET = new ReadonlySet([
7
+ CacheFlag.DAMAGE, // 1 << 0
8
+ CacheFlag.FIRE_DELAY, // 1 << 1
9
+ CacheFlag.SHOT_SPEED, // 1 << 2
10
+ CacheFlag.RANGE, // 1 << 3
11
+ CacheFlag.SPEED, // 1 << 4
12
+ CacheFlag.LUCK, // 1 << 10
19
13
  ]);
20
14
  /**
21
15
  * Helper function to add a stat to a player based on the `CacheFlag` provided. Call this function
@@ -32,38 +26,38 @@ const STAT_CACHE_FLAGS_SET = new ReadonlySet_1.ReadonlySet([
32
26
  * - CacheFlag.SPEED (1 << 4)
33
27
  * - CacheFlag.LUCK (1 << 10)
34
28
  */
35
- function addPlayerStat(player, cacheFlag, amount) {
29
+ export function addPlayerStat(player, cacheFlag, amount) {
36
30
  if (!STAT_CACHE_FLAGS_SET.has(cacheFlag)) {
37
31
  error(`You cannot add a stat to a player with the cache flag of: ${cacheFlag}`);
38
32
  }
39
33
  switch (cacheFlag) {
40
34
  // 1 << 0
41
- case isaac_typescript_definitions_1.CacheFlag.DAMAGE: {
35
+ case CacheFlag.DAMAGE: {
42
36
  player.Damage += amount;
43
37
  break;
44
38
  }
45
39
  // 1 << 1
46
- case isaac_typescript_definitions_1.CacheFlag.FIRE_DELAY: {
47
- (0, tears_1.addTearsStat)(player, amount);
40
+ case CacheFlag.FIRE_DELAY: {
41
+ addTearsStat(player, amount);
48
42
  break;
49
43
  }
50
44
  // 1 << 2
51
- case isaac_typescript_definitions_1.CacheFlag.SHOT_SPEED: {
45
+ case CacheFlag.SHOT_SPEED: {
52
46
  player.ShotSpeed += amount;
53
47
  break;
54
48
  }
55
49
  // 1 << 3
56
- case isaac_typescript_definitions_1.CacheFlag.RANGE: {
50
+ case CacheFlag.RANGE: {
57
51
  player.TearRange += amount;
58
52
  break;
59
53
  }
60
54
  // 1 << 4
61
- case isaac_typescript_definitions_1.CacheFlag.SPEED: {
55
+ case CacheFlag.SPEED: {
62
56
  player.MoveSpeed += amount;
63
57
  break;
64
58
  }
65
59
  // 1 << 10
66
- case isaac_typescript_definitions_1.CacheFlag.LUCK: {
60
+ case CacheFlag.LUCK: {
67
61
  player.Luck += amount;
68
62
  break;
69
63
  }
@@ -78,29 +72,29 @@ function addPlayerStat(player, cacheFlag, amount) {
78
72
  *
79
73
  * Note that the default fire delay is represented in the tear stat, not the `MaxFireDelay` value.
80
74
  */
81
- function getDefaultPlayerStat(cacheFlag) {
82
- return defaultPlayerStatMap_1.DEFAULT_PLAYER_STAT_MAP.get(cacheFlag);
75
+ export function getDefaultPlayerStat(cacheFlag) {
76
+ return DEFAULT_PLAYER_STAT_MAP.get(cacheFlag);
83
77
  }
84
78
  /** Helper function to get the stat for a player corresponding to the `StatType`. */
85
- function getPlayerStat(player, playerStat) {
79
+ export function getPlayerStat(player, playerStat) {
86
80
  const playerStats = getPlayerStats(player);
87
81
  return playerStats[playerStat];
88
82
  }
89
83
  /** Helper function to get all of the stat for a player. */
90
- function getPlayerStats(player) {
84
+ export function getPlayerStats(player) {
91
85
  return {
92
- [PlayerStat_1.PlayerStat.DAMAGE]: player.Damage, // 1 << 0
93
- [PlayerStat_1.PlayerStat.FIRE_DELAY]: player.MaxFireDelay, // 1 << 1
94
- [PlayerStat_1.PlayerStat.SHOT_SPEED]: player.ShotSpeed, // 1 << 2
95
- [PlayerStat_1.PlayerStat.TEAR_HEIGHT]: player.TearHeight, // 1 << 3
96
- [PlayerStat_1.PlayerStat.TEAR_RANGE]: player.TearRange, // 1 << 3
97
- [PlayerStat_1.PlayerStat.TEAR_FALLING_ACCELERATION]: player.TearFallingAcceleration, // 1 << 3
98
- [PlayerStat_1.PlayerStat.TEAR_FALLING_SPEED]: player.TearFallingSpeed, // 1 << 3
99
- [PlayerStat_1.PlayerStat.MOVE_SPEED]: player.MoveSpeed, // 1 << 4
100
- [PlayerStat_1.PlayerStat.TEAR_FLAG]: player.TearFlags, // 1 << 5
101
- [PlayerStat_1.PlayerStat.TEAR_COLOR]: player.TearColor, // 1 << 6
102
- [PlayerStat_1.PlayerStat.FLYING]: player.CanFly, // 1 << 7
103
- [PlayerStat_1.PlayerStat.LUCK]: player.Luck, // 1 << 10
104
- [PlayerStat_1.PlayerStat.SIZE]: player.SpriteScale, // 1 << 11
86
+ [PlayerStat.DAMAGE]: player.Damage, // 1 << 0
87
+ [PlayerStat.FIRE_DELAY]: player.MaxFireDelay, // 1 << 1
88
+ [PlayerStat.SHOT_SPEED]: player.ShotSpeed, // 1 << 2
89
+ [PlayerStat.TEAR_HEIGHT]: player.TearHeight, // 1 << 3
90
+ [PlayerStat.TEAR_RANGE]: player.TearRange, // 1 << 3
91
+ [PlayerStat.TEAR_FALLING_ACCELERATION]: player.TearFallingAcceleration, // 1 << 3
92
+ [PlayerStat.TEAR_FALLING_SPEED]: player.TearFallingSpeed, // 1 << 3
93
+ [PlayerStat.MOVE_SPEED]: player.MoveSpeed, // 1 << 4
94
+ [PlayerStat.TEAR_FLAG]: player.TearFlags, // 1 << 5
95
+ [PlayerStat.TEAR_COLOR]: player.TearColor, // 1 << 6
96
+ [PlayerStat.FLYING]: player.CanFly, // 1 << 7
97
+ [PlayerStat.LUCK]: player.Luck, // 1 << 10
98
+ [PlayerStat.SIZE]: player.SpriteScale, // 1 << 11
105
99
  };
106
100
  }
@@ -1,55 +1,51 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isStoryBoss = isStoryBoss;
4
- exports.isStoryBossID = isStoryBossID;
5
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
6
- const ReadonlySet_1 = require("../types/ReadonlySet");
1
+ import { BossID, EntityType } from "isaac-typescript-definitions";
2
+ import { ReadonlySet } from "../types/ReadonlySet";
7
3
  const STORY_BOSS_IDS = [
8
- isaac_typescript_definitions_1.BossID.MOM, // 6
9
- isaac_typescript_definitions_1.BossID.MOMS_HEART, // 8
10
- isaac_typescript_definitions_1.BossID.SATAN, // 24
11
- isaac_typescript_definitions_1.BossID.IT_LIVES, // 25
12
- isaac_typescript_definitions_1.BossID.ISAAC, // 39
13
- isaac_typescript_definitions_1.BossID.BLUE_BABY, // 40
14
- isaac_typescript_definitions_1.BossID.LAMB, // 54
15
- isaac_typescript_definitions_1.BossID.MEGA_SATAN, // 55 (Mega Satan 2 is in the same room.)
16
- isaac_typescript_definitions_1.BossID.ULTRA_GREED, // 62
17
- isaac_typescript_definitions_1.BossID.HUSH, // 63
18
- isaac_typescript_definitions_1.BossID.DELIRIUM, // 70
19
- isaac_typescript_definitions_1.BossID.ULTRA_GREEDIER, // 71
20
- isaac_typescript_definitions_1.BossID.MOTHER, // 88
21
- isaac_typescript_definitions_1.BossID.MAUSOLEUM_MOM, // 89
22
- isaac_typescript_definitions_1.BossID.MAUSOLEUM_MOMS_HEART, // 90
23
- isaac_typescript_definitions_1.BossID.DOGMA, // 99
24
- isaac_typescript_definitions_1.BossID.BEAST, // 100
4
+ BossID.MOM, // 6
5
+ BossID.MOMS_HEART, // 8
6
+ BossID.SATAN, // 24
7
+ BossID.IT_LIVES, // 25
8
+ BossID.ISAAC, // 39
9
+ BossID.BLUE_BABY, // 40
10
+ BossID.LAMB, // 54
11
+ BossID.MEGA_SATAN, // 55 (Mega Satan 2 is in the same room.)
12
+ BossID.ULTRA_GREED, // 62
13
+ BossID.HUSH, // 63
14
+ BossID.DELIRIUM, // 70
15
+ BossID.ULTRA_GREEDIER, // 71
16
+ BossID.MOTHER, // 88
17
+ BossID.MAUSOLEUM_MOM, // 89
18
+ BossID.MAUSOLEUM_MOMS_HEART, // 90
19
+ BossID.DOGMA, // 99
20
+ BossID.BEAST, // 100
25
21
  ];
26
- const STORY_BOSS_ENTITY_TYPES_SET = new ReadonlySet_1.ReadonlySet([
27
- isaac_typescript_definitions_1.EntityType.MOM, // 45
28
- isaac_typescript_definitions_1.EntityType.MOMS_HEART, // 78
29
- isaac_typescript_definitions_1.EntityType.SATAN, // 84
22
+ const STORY_BOSS_ENTITY_TYPES_SET = new ReadonlySet([
23
+ EntityType.MOM, // 45
24
+ EntityType.MOMS_HEART, // 78
25
+ EntityType.SATAN, // 84
30
26
  // - It Lives is a variant of Mom's Heart.
31
- isaac_typescript_definitions_1.EntityType.ISAAC, // 102
27
+ EntityType.ISAAC, // 102
32
28
  // - Blue Baby is a variant of Isaac.
33
- isaac_typescript_definitions_1.EntityType.LAMB, // 273
34
- isaac_typescript_definitions_1.EntityType.MEGA_SATAN, // 274
35
- isaac_typescript_definitions_1.EntityType.MEGA_SATAN_2, // 275
36
- isaac_typescript_definitions_1.EntityType.ULTRA_GREED, // 406
37
- isaac_typescript_definitions_1.EntityType.HUSH, // 407
38
- isaac_typescript_definitions_1.EntityType.DELIRIUM, // 412
29
+ EntityType.LAMB, // 273
30
+ EntityType.MEGA_SATAN, // 274
31
+ EntityType.MEGA_SATAN_2, // 275
32
+ EntityType.ULTRA_GREED, // 406
33
+ EntityType.HUSH, // 407
34
+ EntityType.DELIRIUM, // 412
39
35
  // - Ultra Greedier is a variant of Ultra Greed.
40
- isaac_typescript_definitions_1.EntityType.MOTHER, // 912
36
+ EntityType.MOTHER, // 912
41
37
  // - Mausoleum Mom is a sub-type of Mom.
42
38
  // - Mausoleum Mom's Heart is a sub-type of Mom's Heart.
43
- isaac_typescript_definitions_1.EntityType.DOGMA, // 950
44
- isaac_typescript_definitions_1.EntityType.BEAST, // 951
39
+ EntityType.DOGMA, // 950
40
+ EntityType.BEAST, // 951
45
41
  ]);
46
- const STORY_BOSS_IDS_SET = new ReadonlySet_1.ReadonlySet(STORY_BOSS_IDS);
42
+ const STORY_BOSS_IDS_SET = new ReadonlySet(STORY_BOSS_IDS);
47
43
  /**
48
44
  * Helper function to determine if the specified entity type is an end-game story boss, like Isaac,
49
45
  * Blue Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only
50
46
  * apply to non-story bosses, like Vanishing Twin.
51
47
  */
52
- function isStoryBoss(entityType) {
48
+ export function isStoryBoss(entityType) {
53
49
  return STORY_BOSS_ENTITY_TYPES_SET.has(entityType);
54
50
  }
55
51
  /**
@@ -57,6 +53,6 @@ function isStoryBoss(entityType) {
57
53
  * Baby, Mega Satan, The Beast, and so on. This is useful because certain effects should only apply
58
54
  * to non-story bosses, like Vanishing Twin.
59
55
  */
60
- function isStoryBossID(bossID) {
56
+ export function isStoryBossID(bossID) {
61
57
  return STORY_BOSS_IDS_SET.has(bossID);
62
58
  }
@@ -1,20 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.capitalizeFirstLetter = capitalizeFirstLetter;
4
- exports.getMapPartialMatch = getMapPartialMatch;
5
- exports.getObjectPartialMatch = getObjectPartialMatch;
6
- exports.getPartialMatch = getPartialMatch;
7
- exports.parseSemanticVersion = parseSemanticVersion;
8
- exports.removeAllCharacters = removeAllCharacters;
9
- exports.removeCharactersBefore = removeCharactersBefore;
10
- exports.removeNonAlphanumericCharacters = removeNonAlphanumericCharacters;
11
- exports.removeSubstring = removeSubstring;
12
- exports.trimPrefix = trimPrefix;
13
- exports.trimSuffix = trimSuffix;
14
- exports.uncapitalizeFirstLetter = uncapitalizeFirstLetter;
15
- const types_1 = require("./types");
16
- const utils_1 = require("./utils");
17
- function capitalizeFirstLetter(string) {
1
+ import { parseIntSafe } from "./types";
2
+ import { assertDefined } from "./utils";
3
+ export function capitalizeFirstLetter(string) {
18
4
  if (string === "") {
19
5
  return string;
20
6
  }
@@ -46,14 +32,14 @@ function capitalizeFirstLetter(string) {
46
32
  * @returns If a match was found, returns a tuple of the map key and value. If a match was not
47
33
  * found, returns undefined.
48
34
  */
49
- function getMapPartialMatch(searchText, map) {
35
+ export function getMapPartialMatch(searchText, map) {
50
36
  const keys = [...map.keys()];
51
37
  const matchingKey = getPartialMatch(searchText, keys);
52
38
  if (matchingKey === undefined) {
53
39
  return undefined;
54
40
  }
55
41
  const value = map.get(matchingKey);
56
- (0, utils_1.assertDefined)(value, `Failed to get the map value corresponding to the partial match of: ${matchingKey}`);
42
+ assertDefined(value, `Failed to get the map value corresponding to the partial match of: ${matchingKey}`);
57
43
  return [matchingKey, value];
58
44
  }
59
45
  /**
@@ -79,14 +65,14 @@ function getMapPartialMatch(searchText, map) {
79
65
  * @returns If a match was found, returns a tuple of the map key and value. If a match was not
80
66
  * found, returns undefined.
81
67
  */
82
- function getObjectPartialMatch(searchText, object) {
68
+ export function getObjectPartialMatch(searchText, object) {
83
69
  const keys = Object.keys(object);
84
70
  const matchingKey = getPartialMatch(searchText, keys);
85
71
  if (matchingKey === undefined) {
86
72
  return undefined;
87
73
  }
88
74
  const value = object[matchingKey];
89
- (0, utils_1.assertDefined)(value, `Failed to get the object value corresponding to the partial match of: ${matchingKey}`);
75
+ assertDefined(value, `Failed to get the object value corresponding to the partial match of: ${matchingKey}`);
90
76
  return [matchingKey, value];
91
77
  }
92
78
  /**
@@ -108,7 +94,7 @@ function getObjectPartialMatch(searchText, object) {
108
94
  * @returns If a match was found, returns the array element. If a match was not found, returns
109
95
  * undefined.
110
96
  */
111
- function getPartialMatch(searchText, array) {
97
+ export function getPartialMatch(searchText, array) {
112
98
  const sortedArray = array.toSorted();
113
99
  searchText = searchText.toLowerCase();
114
100
  searchText = searchText.replaceAll(" ", "");
@@ -122,16 +108,16 @@ function getPartialMatch(searchText, array) {
122
108
  *
123
109
  * @see https://semver.org/
124
110
  */
125
- function parseSemanticVersion(versionString) {
111
+ export function parseSemanticVersion(versionString) {
126
112
  const [majorVersionString, minorVersionString, patchVersionString] = string.match(versionString, "(%d+).(%d+).(%d+)");
127
113
  if (majorVersionString === undefined
128
114
  || minorVersionString === undefined
129
115
  || patchVersionString === undefined) {
130
116
  return undefined;
131
117
  }
132
- const majorVersion = (0, types_1.parseIntSafe)(majorVersionString);
133
- const minorVersion = (0, types_1.parseIntSafe)(minorVersionString);
134
- const patchVersion = (0, types_1.parseIntSafe)(patchVersionString);
118
+ const majorVersion = parseIntSafe(majorVersionString);
119
+ const minorVersion = parseIntSafe(minorVersionString);
120
+ const patchVersion = parseIntSafe(patchVersionString);
135
121
  if (majorVersion === undefined
136
122
  || minorVersion === undefined
137
123
  || patchVersion === undefined) {
@@ -143,19 +129,19 @@ function parseSemanticVersion(versionString) {
143
129
  patchVersion,
144
130
  };
145
131
  }
146
- function removeAllCharacters(string, character) {
132
+ export function removeAllCharacters(string, character) {
147
133
  return string.replaceAll(character, "");
148
134
  }
149
135
  /**
150
136
  * Helper function to remove all of the characters in a string before a given substring. Returns the
151
137
  * modified string.
152
138
  */
153
- function removeCharactersBefore(string, substring) {
139
+ export function removeCharactersBefore(string, substring) {
154
140
  const index = string.indexOf(substring);
155
141
  return string.slice(index);
156
142
  }
157
143
  /** Helper function to remove all characters from a string that are not letters or numbers. */
158
- function removeNonAlphanumericCharacters(str) {
144
+ export function removeNonAlphanumericCharacters(str) {
159
145
  const [returnValue, _] = string.gsub(str, "%W", "");
160
146
  return returnValue;
161
147
  }
@@ -165,28 +151,28 @@ function removeNonAlphanumericCharacters(str) {
165
151
  *
166
152
  * This function is variadic, meaning that you can pass as many substrings as you want to remove.
167
153
  */
168
- function removeSubstring(string, ...substrings) {
154
+ export function removeSubstring(string, ...substrings) {
169
155
  for (const substring of substrings) {
170
156
  string = string.replaceAll(substring, "");
171
157
  }
172
158
  return string;
173
159
  }
174
160
  /** Helper function to trim a prefix from a string, if it exists. Returns the trimmed string. */
175
- function trimPrefix(string, prefix) {
161
+ export function trimPrefix(string, prefix) {
176
162
  if (!string.startsWith(prefix)) {
177
163
  return string;
178
164
  }
179
165
  return string.slice(prefix.length);
180
166
  }
181
167
  /** Helper function to trim a suffix from a string, if it exists. Returns the trimmed string. */
182
- function trimSuffix(string, prefix) {
168
+ export function trimSuffix(string, prefix) {
183
169
  if (!string.endsWith(prefix)) {
184
170
  return string;
185
171
  }
186
172
  const endCharacter = string.length - prefix.length;
187
173
  return string.slice(0, endCharacter);
188
174
  }
189
- function uncapitalizeFirstLetter(string) {
175
+ export function uncapitalizeFirstLetter(string) {
190
176
  if (string === "") {
191
177
  return string;
192
178
  }
@@ -1,27 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearTable = clearTable;
4
- exports.copyUserdataValuesToTable = copyUserdataValuesToTable;
5
- exports.getBooleansFromTable = getBooleansFromTable;
6
- exports.getNumbersFromTable = getNumbersFromTable;
7
- exports.getStringsFromTable = getStringsFromTable;
8
- exports.isTableEmpty = isTableEmpty;
9
- exports.iterateTableInOrder = iterateTableInOrder;
10
- exports.tableHasKeys = tableHasKeys;
11
- const types_1 = require("./types");
12
- const utils_1 = require("./utils");
1
+ import { isBoolean, isNumber, isString, isUserdata } from "./types";
2
+ import { assertDefined } from "./utils";
13
3
  /**
14
4
  * In a `Map`, you can use the `clear` method to delete every element. However, in a `LuaMap`, the
15
5
  * `clear` method does not exist. Use this helper function as a drop-in replacement for this.
16
6
  */
17
- function clearTable(luaMap) {
7
+ export function clearTable(luaMap) {
18
8
  for (const [key] of luaMap) {
19
9
  luaMap.delete(key);
20
10
  }
21
11
  }
22
12
  /** Helper function to copy specific values from a userdata object (e.g. `Vector`) to a table. */
23
- function copyUserdataValuesToTable(object, keys, luaMap) {
24
- if (!(0, types_1.isUserdata)(object)) {
13
+ export function copyUserdataValuesToTable(object, keys, luaMap) {
14
+ if (!isUserdata(object)) {
25
15
  error(`Failed to copy an object values to a table, since the object was of type: ${type(object)}`);
26
16
  }
27
17
  // We can access values on userdata objects similar to a normal table.
@@ -37,12 +27,12 @@ function copyUserdataValuesToTable(object, keys, luaMap) {
37
27
  *
38
28
  * This function is variadic, meaning that you can specify N arguments to get N values.
39
29
  */
40
- function getBooleansFromTable(luaMap, objectName, ...keys) {
30
+ export function getBooleansFromTable(luaMap, objectName, ...keys) {
41
31
  const booleans = [];
42
32
  for (const key of keys) {
43
33
  const value = luaMap.get(key);
44
- (0, utils_1.assertDefined)(value, `Failed to find a value for "${key}" in a table representing a "${objectName}" object.`);
45
- if ((0, types_1.isBoolean)(value)) {
34
+ assertDefined(value, `Failed to find a value for "${key}" in a table representing a "${objectName}" object.`);
35
+ if (isBoolean(value)) {
46
36
  booleans.push(value);
47
37
  }
48
38
  else {
@@ -58,17 +48,17 @@ function getBooleansFromTable(luaMap, objectName, ...keys) {
58
48
  *
59
49
  * This function is variadic, meaning that you can specify N arguments to get N values.
60
50
  */
61
- function getNumbersFromTable(luaMap, objectName, ...keys) {
51
+ export function getNumbersFromTable(luaMap, objectName, ...keys) {
62
52
  const numbers = [];
63
53
  for (const key of keys) {
64
54
  const value = luaMap.get(key);
65
- (0, utils_1.assertDefined)(value, `Failed to find a value for "${key}" in a table representing a "${objectName}" object.`);
66
- if ((0, types_1.isNumber)(value)) {
55
+ assertDefined(value, `Failed to find a value for "${key}" in a table representing a "${objectName}" object.`);
56
+ if (isNumber(value)) {
67
57
  numbers.push(value);
68
58
  }
69
- else if ((0, types_1.isString)(value)) {
59
+ else if (isString(value)) {
70
60
  const number = tonumber(value);
71
- (0, utils_1.assertDefined)(number, `Failed to convert the "${key}" value of a table representing a "${objectName}" object to a number: ${value}`);
61
+ assertDefined(number, `Failed to convert the "${key}" value of a table representing a "${objectName}" object to a number: ${value}`);
72
62
  numbers.push(number);
73
63
  }
74
64
  else {
@@ -83,12 +73,12 @@ function getNumbersFromTable(luaMap, objectName, ...keys) {
83
73
  *
84
74
  * This function is variadic, meaning that you can specify N arguments to get N values.
85
75
  */
86
- function getStringsFromTable(luaMap, objectName, ...keys) {
76
+ export function getStringsFromTable(luaMap, objectName, ...keys) {
87
77
  const strings = [];
88
78
  for (const key of keys) {
89
79
  const value = luaMap.get(key);
90
- (0, utils_1.assertDefined)(value, `Failed to find a value for "${key}" in a table representing a "${objectName}" object.`);
91
- if ((0, types_1.isString)(value)) {
80
+ assertDefined(value, `Failed to find a value for "${key}" in a table representing a "${objectName}" object.`);
81
+ if (isString(value)) {
92
82
  strings.push(value);
93
83
  }
94
84
  else {
@@ -99,7 +89,7 @@ function getStringsFromTable(luaMap, objectName, ...keys) {
99
89
  return strings;
100
90
  }
101
91
  /** Helper function to check if a Lua table has 0 keys. */
102
- function isTableEmpty(luaMap) {
92
+ export function isTableEmpty(luaMap) {
103
93
  // Using `next` does not seem to work properly, so we use `pairs` instead.
104
94
  // eslint-disable-next-line no-unreachable-loop
105
95
  for (const [_key, _value] of luaMap) {
@@ -122,7 +112,7 @@ function isTableEmpty(luaMap) {
122
112
  * false in situations where iterating randomly would not matter and you need the
123
113
  * extra performance.
124
114
  */
125
- function iterateTableInOrder(luaMap, func, inOrder = true) {
115
+ export function iterateTableInOrder(luaMap, func, inOrder = true) {
126
116
  // First, handle the trivial case of a non-deterministic iteration.
127
117
  if (!inOrder) {
128
118
  for (const [key, value] of luaMap) {
@@ -131,8 +121,8 @@ function iterateTableInOrder(luaMap, func, inOrder = true) {
131
121
  return;
132
122
  }
133
123
  const keys = Object.keys(luaMap);
134
- const hasAllNumberKeys = keys.every((key) => (0, types_1.isNumber)(key));
135
- const hasAllStringKeys = keys.every((key) => (0, types_1.isString)(key));
124
+ const hasAllNumberKeys = keys.every((key) => isNumber(key));
125
+ const hasAllStringKeys = keys.every((key) => isString(key));
136
126
  if (!hasAllNumberKeys && !hasAllStringKeys) {
137
127
  // Since the table has non-homogenous keys, we won't be able to sort it. Revert to
138
128
  // non-deterministic iteration in this case.
@@ -156,6 +146,6 @@ function iterateTableInOrder(luaMap, func, inOrder = true) {
156
146
  * This function is variadic, meaning that you can specify as many arguments as you want to check
157
147
  * for.
158
148
  */
159
- function tableHasKeys(luaMap, ...keys) {
149
+ export function tableHasKeys(luaMap, ...keys) {
160
150
  return keys.every((key) => luaMap.has(key));
161
151
  }
@@ -1,11 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addTearsStat = addTearsStat;
4
- exports.getFireDelay = getFireDelay;
5
- exports.getTearsStat = getTearsStat;
6
- exports.isMissedTear = isMissedTear;
7
- exports.isTearFromFamiliar = isTearFromFamiliar;
8
- exports.isTearFromPlayer = isTearFromPlayer;
9
1
  /**
10
2
  * - Converts the specified amount of tears stat into the format of `EntityPlayer.MaxFireDelay` and
11
3
  * adds it to the player.
@@ -22,7 +14,7 @@ exports.isTearFromPlayer = isTearFromPlayer;
22
14
  * }
23
15
  * ```
24
16
  */
25
- function addTearsStat(player, tearsStat) {
17
+ export function addTearsStat(player, tearsStat) {
26
18
  const existingTearsStat = getTearsStat(player.MaxFireDelay);
27
19
  const newTearsStat = existingTearsStat + tearsStat;
28
20
  const newMaxFireDelay = getFireDelay(newTearsStat);
@@ -35,7 +27,7 @@ function addTearsStat(player, tearsStat) {
35
27
  * this function.
36
28
  * - In this context, the "tears stat" represents what is shown on the in-game stat UI.
37
29
  */
38
- function getFireDelay(tearsStat) {
30
+ export function getFireDelay(tearsStat) {
39
31
  return Math.max(30 / tearsStat - 1, -0.9999);
40
32
  }
41
33
  /**
@@ -44,7 +36,7 @@ function getFireDelay(tearsStat) {
44
36
  * - If you want to convert this to the "tears" stat that is shown on the in-game stat UI, then use
45
37
  * this function.
46
38
  */
47
- function getTearsStat(fireDelay) {
39
+ export function getTearsStat(fireDelay) {
48
40
  return 30 / (fireDelay + 1);
49
41
  }
50
42
  /**
@@ -58,7 +50,7 @@ function getTearsStat(fireDelay) {
58
50
  * Under the hood, this function uses the `Entity.IsDead` method. (Tears will not die if they hit an
59
51
  * enemy, but they will die if they hit a wall or object.)
60
52
  */
61
- function isMissedTear(tear) {
53
+ export function isMissedTear(tear) {
62
54
  return tear.IsDead();
63
55
  }
64
56
  /**
@@ -81,7 +73,7 @@ function isMissedTear(tear) {
81
73
  * @param subType Optional. Specify this to check if the tear came from a specific familiar
82
74
  * sub-type. Default is undefined, which checks for any familiar.
83
75
  */
84
- function isTearFromFamiliar(tear, familiarVariant, subType) {
76
+ export function isTearFromFamiliar(tear, familiarVariant, subType) {
85
77
  if (tear.FrameCount === 0) {
86
78
  error('Failed to check if the given tear was from a player since the tear\'s frame count was equal to 0. (The "isTearFromFamiliar" function must only be used in the "POST_TEAR_INIT_VERY_LATE" callback or on frame 1 and onwards.)');
87
79
  }
@@ -112,7 +104,7 @@ function isTearFromFamiliar(tear, familiarVariant, subType) {
112
104
  * Note that this function does not work properly when the tear is from a Lead Pencil barrage. In
113
105
  * this case, it will always appear as if the tear is coming from a player.
114
106
  */
115
- function isTearFromPlayer(tear) {
107
+ export function isTearFromPlayer(tear) {
116
108
  if (tear.FrameCount === 0) {
117
109
  error('Failed to check if the given tear was from a player since the tear\'s frame count was equal to 0. (The "isTearFromPlayer" function must only be used in the "POST_TEAR_INIT_VERY_LATE" callback or on frame 1 and onwards.)');
118
110
  }