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,45 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.arrayEquals = arrayEquals;
4
- exports.arrayRemove = arrayRemove;
5
- exports.arrayRemoveAllInPlace = arrayRemoveAllInPlace;
6
- exports.arrayRemoveIndex = arrayRemoveIndex;
7
- exports.arrayRemoveIndexInPlace = arrayRemoveIndexInPlace;
8
- exports.arrayRemoveInPlace = arrayRemoveInPlace;
9
- exports.arrayToString = arrayToString;
10
- exports.combineArrays = combineArrays;
11
- exports.copyArray = copyArray;
12
- exports.emptyArray = emptyArray;
13
- exports.filterMap = filterMap;
14
- exports.getArrayCombinations = getArrayCombinations;
15
- exports.getArrayDuplicateElements = getArrayDuplicateElements;
16
- exports.getArrayIndexes = getArrayIndexes;
17
- exports.getHighestArrayElement = getHighestArrayElement;
18
- exports.getLowestArrayElement = getLowestArrayElement;
19
- exports.getRandomArrayElement = getRandomArrayElement;
20
- exports.getRandomArrayElementAndRemove = getRandomArrayElementAndRemove;
21
- exports.getRandomArrayIndex = getRandomArrayIndex;
22
- exports.includes = includes;
23
- exports.isArray = isArray;
24
- exports.isArrayContiguous = isArrayContiguous;
25
- exports.isArrayElementsUnique = isArrayElementsUnique;
26
- exports.isArrayInArray = isArrayInArray;
27
- exports.setAllArrayElements = setAllArrayElements;
28
- exports.shuffleArray = shuffleArray;
29
- exports.shuffleArrayInPlace = shuffleArrayInPlace;
30
- exports.sumArray = sumArray;
31
- exports.swapArrayElements = swapArrayElements;
32
- const ReadonlySet_1 = require("../types/ReadonlySet");
33
- const random_1 = require("./random");
34
- const rng_1 = require("./rng");
35
- const sort_1 = require("./sort");
36
- const types_1 = require("./types");
37
- const utils_1 = require("./utils");
1
+ import { ReadonlySet } from "../types/ReadonlySet";
2
+ import { getRandomInt } from "./random";
3
+ import { isRNG, newRNG } from "./rng";
4
+ import { sortNormal } from "./sort";
5
+ import { isNumber, isTable } from "./types";
6
+ import { assertDefined, eRange } from "./utils";
38
7
  /**
39
8
  * Helper function for determining if two arrays contain the exact same elements. Note that this
40
9
  * only performs a shallow comparison.
41
10
  */
42
- function arrayEquals(array1, array2) {
11
+ export function arrayEquals(array1, array2) {
43
12
  if (array1.length !== array2.length) {
44
13
  return false;
45
14
  }
@@ -57,10 +26,10 @@ function arrayEquals(array1, array2) {
57
26
  *
58
27
  * This function is variadic, meaning that you can specify N arguments to remove N elements.
59
28
  */
60
- function arrayRemove(originalArray, ...elementsToRemove
29
+ export function arrayRemove(originalArray, ...elementsToRemove
61
30
  // eslint-disable-next-line complete/no-mutable-return
62
31
  ) {
63
- const elementsToRemoveSet = new ReadonlySet_1.ReadonlySet(elementsToRemove);
32
+ const elementsToRemoveSet = new ReadonlySet(elementsToRemove);
64
33
  const array = [];
65
34
  for (const element of originalArray) {
66
35
  if (!elementsToRemoveSet.has(element)) {
@@ -81,7 +50,7 @@ function arrayRemove(originalArray, ...elementsToRemove
81
50
  *
82
51
  * @returns True if one or more elements were removed, false otherwise.
83
52
  */
84
- function arrayRemoveAllInPlace(
53
+ export function arrayRemoveAllInPlace(
85
54
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
86
55
  array, ...elementsToRemove) {
87
56
  let removedOneOrMoreElements = false;
@@ -104,10 +73,10 @@ array, ...elementsToRemove) {
104
73
  *
105
74
  * This function is variadic, meaning that you can specify N arguments to remove N elements.
106
75
  */
107
- function arrayRemoveIndex(originalArray, ...indexesToRemove
76
+ export function arrayRemoveIndex(originalArray, ...indexesToRemove
108
77
  // eslint-disable-next-line complete/no-mutable-return
109
78
  ) {
110
- const indexesToRemoveSet = new ReadonlySet_1.ReadonlySet(indexesToRemove);
79
+ const indexesToRemoveSet = new ReadonlySet(indexesToRemove);
111
80
  const array = [];
112
81
  for (const [i, element] of originalArray.entries()) {
113
82
  if (!indexesToRemoveSet.has(i)) {
@@ -124,7 +93,7 @@ function arrayRemoveIndex(originalArray, ...indexesToRemove
124
93
  *
125
94
  * @returns The removed elements. This will be an empty array if no elements were removed.
126
95
  */
127
- function arrayRemoveIndexInPlace(
96
+ export function arrayRemoveIndexInPlace(
128
97
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
129
98
  array, ...indexesToRemove
130
99
  // eslint-disable-next-line complete/no-mutable-return
@@ -133,7 +102,7 @@ array, ...indexesToRemove
133
102
  if (legalIndexes.length === 0) {
134
103
  return [];
135
104
  }
136
- const legalIndexesSet = new ReadonlySet_1.ReadonlySet(legalIndexes);
105
+ const legalIndexesSet = new ReadonlySet(legalIndexes);
137
106
  const removedElements = [];
138
107
  for (let i = array.length - 1; i >= 0; i--) {
139
108
  if (!legalIndexesSet.has(i)) {
@@ -156,7 +125,7 @@ array, ...indexesToRemove
156
125
  *
157
126
  * @returns The removed elements. This will be an empty array if no elements were removed.
158
127
  */
159
- function arrayRemoveInPlace(
128
+ export function arrayRemoveInPlace(
160
129
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
161
130
  array, ...elementsToRemove
162
131
  // eslint-disable-next-line complete/no-mutable-return
@@ -171,7 +140,7 @@ array, ...elementsToRemove
171
140
  }
172
141
  return removedElements;
173
142
  }
174
- function arrayToString(array) {
143
+ export function arrayToString(array) {
175
144
  if (array.length === 0) {
176
145
  return "[]";
177
146
  }
@@ -187,7 +156,7 @@ function arrayToString(array) {
187
156
  * that this will only perform a shallow copy of the array elements.
188
157
  */
189
158
  // eslint-disable-next-line complete/no-mutable-return
190
- function combineArrays(...arrays) {
159
+ export function combineArrays(...arrays) {
191
160
  const elements = [];
192
161
  for (const array of arrays) {
193
162
  for (const element of array) {
@@ -204,7 +173,7 @@ function combineArrays(...arrays) {
204
173
  * entire array will be copied.
205
174
  */
206
175
  // eslint-disable-next-line complete/no-mutable-return
207
- function copyArray(oldArray, numElements) {
176
+ export function copyArray(oldArray, numElements) {
208
177
  // Using the spread operator was benchmarked to be faster than manually creating an array using
209
178
  // the below algorithm.
210
179
  if (numElements === undefined) {
@@ -219,7 +188,7 @@ function copyArray(oldArray, numElements) {
219
188
  }
220
189
  /** Helper function to remove all of the elements in an array in-place. */
221
190
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
222
- function emptyArray(array) {
191
+ export function emptyArray(array) {
223
192
  array.length = 0;
224
193
  }
225
194
  /**
@@ -233,7 +202,7 @@ function emptyArray(array) {
233
202
  * This is named `filterMap` after the Rust function:
234
203
  * https://doc.rust-lang.org/std/iter/struct.FilterMap.html
235
204
  */
236
- function filterMap(array, func) {
205
+ export function filterMap(array, func) {
237
206
  const filteredArray = [];
238
207
  for (const element of array) {
239
208
  const newElement = func(element);
@@ -267,7 +236,7 @@ function filterMap(array, func) {
267
236
  * @param max Optional. The maximum number of elements to include in each combination. Default is
268
237
  * the length of the array.
269
238
  */
270
- function getArrayCombinations(array, includeEmptyArray, min, max) {
239
+ export function getArrayCombinations(array, includeEmptyArray, min, max) {
271
240
  if (min === undefined || min <= 0) {
272
241
  min = 1;
273
242
  }
@@ -292,7 +261,7 @@ function getArrayCombinations(array, includeEmptyArray, min, max) {
292
261
  * Helper function to get the duplicate elements in an array. Only one element for each value will
293
262
  * be returned. The elements will be sorted before they are returned.
294
263
  */
295
- function getArrayDuplicateElements(array) {
264
+ export function getArrayDuplicateElements(array) {
296
265
  const duplicateElements = new Set();
297
266
  const set = new Set();
298
267
  for (const element of array) {
@@ -302,7 +271,7 @@ function getArrayDuplicateElements(array) {
302
271
  set.add(element);
303
272
  }
304
273
  const values = [...duplicateElements];
305
- return values.toSorted(sort_1.sortNormal);
274
+ return values.toSorted(sortNormal);
306
275
  }
307
276
  /**
308
277
  * Helper function to get an array containing the indexes of an array.
@@ -313,14 +282,14 @@ function getArrayDuplicateElements(array) {
313
282
  * due to implementation details of TypeScriptToLua, this results in an array of 1 through N
314
283
  * (instead of an array of 0 through N -1).
315
284
  */
316
- function getArrayIndexes(array) {
317
- return (0, utils_1.eRange)(array.length);
285
+ export function getArrayIndexes(array) {
286
+ return eRange(array.length);
318
287
  }
319
288
  /**
320
289
  * Helper function to get the highest value in an array. Returns undefined if there were no elements
321
290
  * in the array.
322
291
  */
323
- function getHighestArrayElement(array) {
292
+ export function getHighestArrayElement(array) {
324
293
  if (array.length === 0) {
325
294
  return undefined;
326
295
  }
@@ -336,7 +305,7 @@ function getHighestArrayElement(array) {
336
305
  * Helper function to get the lowest value in an array. Returns undefined if there were no elements
337
306
  * in the array.
338
307
  */
339
- function getLowestArrayElement(array) {
308
+ export function getLowestArrayElement(array) {
340
309
  if (array.length === 0) {
341
310
  return undefined;
342
311
  }
@@ -360,14 +329,14 @@ function getLowestArrayElement(array) {
360
329
  * a random seed.
361
330
  * @param exceptions Optional. An array of elements to skip over if selected.
362
331
  */
363
- function getRandomArrayElement(array, seedOrRNG, exceptions = []) {
332
+ export function getRandomArrayElement(array, seedOrRNG, exceptions = []) {
364
333
  if (array.length === 0) {
365
334
  error("Failed to get a random array element since the provided array is empty.");
366
335
  }
367
336
  const arrayToUse = exceptions.length > 0 ? arrayRemove(array, ...exceptions) : array;
368
337
  const randomIndex = getRandomArrayIndex(arrayToUse, seedOrRNG);
369
338
  const randomElement = arrayToUse[randomIndex];
370
- (0, utils_1.assertDefined)(randomElement, `Failed to get a random array element since the random index of ${randomIndex} was not valid.`);
339
+ assertDefined(randomElement, `Failed to get a random array element since the random index of ${randomIndex} was not valid.`);
371
340
  return randomElement;
372
341
  }
373
342
  /**
@@ -383,7 +352,7 @@ function getRandomArrayElement(array, seedOrRNG, exceptions = []) {
383
352
  * a random seed.
384
353
  * @param exceptions Optional. An array of elements to skip over if selected.
385
354
  */
386
- function getRandomArrayElementAndRemove(
355
+ export function getRandomArrayElementAndRemove(
387
356
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
388
357
  array, seedOrRNG, exceptions = []) {
389
358
  const randomArrayElement = getRandomArrayElement(array, seedOrRNG, exceptions);
@@ -403,11 +372,11 @@ array, seedOrRNG, exceptions = []) {
403
372
  * @param exceptions Optional. An array of indexes that will be skipped over when getting the random
404
373
  * index. Default is an empty array.
405
374
  */
406
- function getRandomArrayIndex(array, seedOrRNG, exceptions = []) {
375
+ export function getRandomArrayIndex(array, seedOrRNG, exceptions = []) {
407
376
  if (array.length === 0) {
408
377
  error("Failed to get a random array index since the provided array is empty.");
409
378
  }
410
- return (0, random_1.getRandomInt)(0, array.length - 1, seedOrRNG, exceptions);
379
+ return getRandomInt(0, array.length - 1, seedOrRNG, exceptions);
411
380
  }
412
381
  /**
413
382
  * Similar to the `Array.includes` method, but works on a widened version of the array.
@@ -415,7 +384,7 @@ function getRandomArrayIndex(array, seedOrRNG, exceptions = []) {
415
384
  * This is useful when the normal `Array.includes` produces a type error from an array that uses an
416
385
  * `as const` assertion.
417
386
  */
418
- function includes(array, searchElement) {
387
+ export function includes(array, searchElement) {
419
388
  const widenedArray = array;
420
389
  return widenedArray.includes(searchElement);
421
390
  }
@@ -430,8 +399,8 @@ function includes(array, searchElement) {
430
399
  * @param ensureContiguousValues Optional. Whether the Lua table has to have all contiguous keys in
431
400
  * order to be considered an array. Default is true.
432
401
  */
433
- function isArray(object, ensureContiguousValues = true) {
434
- if (!(0, types_1.isTable)(object)) {
402
+ export function isArray(object, ensureContiguousValues = true) {
403
+ if (!isTable(object)) {
435
404
  return false;
436
405
  }
437
406
  // First, if there is a metatable, this cannot be a simple array and must be a more complex
@@ -446,7 +415,7 @@ function isArray(object, ensureContiguousValues = true) {
446
415
  return true;
447
416
  }
448
417
  // Third, handle the case of non-numerical keys.
449
- const hasAllNumberKeys = keys.every((key) => (0, types_1.isNumber)(key));
418
+ const hasAllNumberKeys = keys.every((key) => isNumber(key));
450
419
  if (!hasAllNumberKeys) {
451
420
  return false;
452
421
  }
@@ -466,7 +435,7 @@ function isArray(object, ensureContiguousValues = true) {
466
435
  *
467
436
  * For example, `[2, 3, 4]` would return true, and `[2, 3, 5]` would return false.
468
437
  */
469
- function isArrayContiguous(array) {
438
+ export function isArrayContiguous(array) {
470
439
  let lastValue;
471
440
  for (const element of array) {
472
441
  lastValue ??= element - 1;
@@ -481,17 +450,17 @@ function isArrayContiguous(array) {
481
450
  *
482
451
  * Under the hood, this is performed by converting the array to a set.
483
452
  */
484
- function isArrayElementsUnique(array) {
453
+ export function isArrayElementsUnique(array) {
485
454
  const set = new Set(array);
486
455
  return set.size === array.length;
487
456
  }
488
457
  /** Checks if an array is in the provided 2-dimensional array. */
489
- function isArrayInArray(arrayToMatch, parentArray) {
458
+ export function isArrayInArray(arrayToMatch, parentArray) {
490
459
  return parentArray.some((element) => arrayEquals(element, arrayToMatch));
491
460
  }
492
461
  /** Helper function to set every element in an array to a specific value. */
493
462
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
494
- function setAllArrayElements(array, value) {
463
+ export function setAllArrayElements(array, value) {
495
464
  for (let i = 0; i < array.length; i++) {
496
465
  array[i] = value;
497
466
  }
@@ -509,7 +478,7 @@ function setAllArrayElements(array, value) {
509
478
  * `RNG.Next` method will be called. If `undefined` is provided, it will default to
510
479
  * a random seed.
511
480
  */
512
- function shuffleArray(originalArray, seedOrRNG) {
481
+ export function shuffleArray(originalArray, seedOrRNG) {
513
482
  const array = copyArray(originalArray);
514
483
  shuffleArrayInPlace(array, seedOrRNG);
515
484
  return array;
@@ -527,11 +496,11 @@ function shuffleArray(originalArray, seedOrRNG) {
527
496
  * `RNG.Next` method will be called. If `undefined` is provided, it will default to
528
497
  * a random seed.
529
498
  */
530
- function shuffleArrayInPlace(
499
+ export function shuffleArrayInPlace(
531
500
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
532
501
  array, seedOrRNG) {
533
502
  let currentIndex = array.length;
534
- const rng = (0, rng_1.isRNG)(seedOrRNG) ? seedOrRNG : (0, rng_1.newRNG)(seedOrRNG);
503
+ const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
535
504
  while (currentIndex > 0) {
536
505
  currentIndex--;
537
506
  const randomIndex = getRandomArrayIndex(array, rng);
@@ -539,13 +508,13 @@ array, seedOrRNG) {
539
508
  }
540
509
  }
541
510
  /** Helper function to sum every value in an array together. */
542
- function sumArray(array) {
511
+ export function sumArray(array) {
543
512
  return array.reduce((accumulator, element) => accumulator + element, 0);
544
513
  }
545
514
  /**
546
515
  * Helper function to swap two different array elements. (The elements will be swapped in-place.)
547
516
  */
548
- function swapArrayElements(
517
+ export function swapArrayElements(
549
518
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
550
519
  array, i, j) {
551
520
  const value1 = array[i]; // eslint-disable-line @typescript-eslint/no-non-null-assertion
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * These are a collection of functions for non-TypeScript users so that they can access some of
4
3
  * useful methods offered on the `Array` class in the JavaScript standard library.
@@ -8,21 +7,13 @@
8
7
  *
9
8
  * @module
10
9
  */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.every = every;
13
- exports.filter = filter;
14
- exports.find = find;
15
- exports.forEach = forEach;
16
- exports.join = join;
17
- exports.map = map;
18
- exports.some = some;
19
10
  /**
20
11
  * Helper function for non-TypeScript users to check if every element in the array is equal to a
21
12
  * condition.
22
13
  *
23
14
  * Internally, this just calls `Array.every`.
24
15
  */
25
- function every(array, func) {
16
+ export function every(array, func) {
26
17
  return array.every(func);
27
18
  }
28
19
  /**
@@ -31,7 +22,7 @@ function every(array, func) {
31
22
  *
32
23
  * Internally, this just calls `Array.filter`.
33
24
  */
34
- function filter(array, func) {
25
+ export function filter(array, func) {
35
26
  return array.filter(func);
36
27
  }
37
28
  /**
@@ -39,7 +30,7 @@ function filter(array, func) {
39
30
  *
40
31
  * Internally, this just calls `Array.find`.
41
32
  */
42
- function find(array, func) {
33
+ export function find(array, func) {
43
34
  return array.find(func);
44
35
  }
45
36
  /**
@@ -47,7 +38,7 @@ function find(array, func) {
47
38
  *
48
39
  * Internally, this just calls `Array.forEach`.
49
40
  */
50
- function forEach(array, func) {
41
+ export function forEach(array, func) {
51
42
  array.forEach(func); // eslint-disable-line unicorn/no-for-each
52
43
  }
53
44
  // `includes` is not included since there is a normal array helper function of that name.
@@ -57,7 +48,7 @@ function forEach(array, func) {
57
48
  *
58
49
  * Internally, this just calls `Array.join`.
59
50
  */
60
- function join(array, separator) {
51
+ export function join(array, separator) {
61
52
  return array.join(separator);
62
53
  }
63
54
  /**
@@ -66,7 +57,7 @@ function join(array, separator) {
66
57
  *
67
58
  * Internally, this just calls `Array.map`.
68
59
  */
69
- function map(array, func) {
60
+ export function map(array, func) {
70
61
  return array.map(func);
71
62
  }
72
63
  /**
@@ -75,6 +66,6 @@ function map(array, func) {
75
66
  *
76
67
  * Internally, this just calls `Array.some`.
77
68
  */
78
- function some(array, func) {
69
+ export function some(array, func) {
79
70
  return array.some(func);
80
71
  }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.benchmark = benchmark;
4
- const log_1 = require("./log");
1
+ import { log } from "./log";
5
2
  /**
6
3
  * Helper function to benchmark the performance of a function.
7
4
  *
@@ -15,8 +12,8 @@ const log_1 = require("./log");
15
12
  * @returns An array containing the average time in milliseconds for each function. (This will also
16
13
  * be printed to the log.)
17
14
  */
18
- function benchmark(numTrials, ...functions) {
19
- (0, log_1.log)(`Benchmarking ${functions.length} function(s) with ${numTrials} trials.`);
15
+ export function benchmark(numTrials, ...functions) {
16
+ log(`Benchmarking ${functions.length} function(s) with ${numTrials} trials.`);
20
17
  const averages = [];
21
18
  for (const [i, func] of functions.entries()) {
22
19
  let totalTimeMilliseconds = 0;
@@ -28,7 +25,7 @@ function benchmark(numTrials, ...functions) {
28
25
  totalTimeMilliseconds += elapsedTimeMilliseconds;
29
26
  }
30
27
  const averageTimeMilliseconds = totalTimeMilliseconds / numTrials;
31
- (0, log_1.log)(`The average time of the function at index ${i} is: ${averageTimeMilliseconds} milliseconds`);
28
+ log(`The average time of the function at index ${i} is: ${averageTimeMilliseconds} milliseconds`);
32
29
  averages.push(averageTimeMilliseconds);
33
30
  }
34
31
  return averages;
@@ -1,19 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.copyBitSet128 = copyBitSet128;
4
- exports.deserializeBitSet128 = deserializeBitSet128;
5
- exports.isBitSet128 = isBitSet128;
6
- exports.isSerializedBitSet128 = isSerializedBitSet128;
7
- exports.serializeBitSet128 = serializeBitSet128;
8
- const SerializationBrand_1 = require("../enums/private/SerializationBrand");
9
- const isaacAPIClass_1 = require("./isaacAPIClass");
10
- const table_1 = require("./table");
11
- const types_1 = require("./types");
12
- const utils_1 = require("./utils");
1
+ import { SerializationBrand } from "../enums/private/SerializationBrand";
2
+ import { isIsaacAPIClassOfType } from "./isaacAPIClass";
3
+ import { copyUserdataValuesToTable, getNumbersFromTable, tableHasKeys, } from "./table";
4
+ import { isTable } from "./types";
5
+ import { assertDefined } from "./utils";
13
6
  const OBJECT_NAME = "BitSet128";
14
7
  const KEYS = ["l", "h"];
15
8
  /** Helper function to copy a `BitSet128` Isaac API class. */
16
- function copyBitSet128(bitSet128) {
9
+ export function copyBitSet128(bitSet128) {
17
10
  if (!isBitSet128(bitSet128)) {
18
11
  error(`Failed to copy a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
19
12
  }
@@ -25,39 +18,39 @@ function copyBitSet128(bitSet128) {
25
18
  * Helper function to convert a `SerializedBitSet128` object to a normal `BitSet128` object. (This
26
19
  * is used by the save data manager when reading data from the "save#.dat" file.)
27
20
  */
28
- function deserializeBitSet128(bitSet128) {
29
- if (!(0, types_1.isTable)(bitSet128)) {
21
+ export function deserializeBitSet128(bitSet128) {
22
+ if (!isTable(bitSet128)) {
30
23
  error(`Failed to deserialize a ${OBJECT_NAME} object since the provided object was not a Lua table.`);
31
24
  }
32
- const [l, h] = (0, table_1.getNumbersFromTable)(bitSet128, OBJECT_NAME, ...KEYS);
33
- (0, utils_1.assertDefined)(l, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: l`);
34
- (0, utils_1.assertDefined)(h, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: h`);
25
+ const [l, h] = getNumbersFromTable(bitSet128, OBJECT_NAME, ...KEYS);
26
+ assertDefined(l, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: l`);
27
+ assertDefined(h, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: h`);
35
28
  return BitSet128(l, h);
36
29
  }
37
30
  /** Helper function to check if something is an instantiated `BitSet128` object. */
38
- function isBitSet128(object) {
39
- return (0, isaacAPIClass_1.isIsaacAPIClassOfType)(object, OBJECT_NAME);
31
+ export function isBitSet128(object) {
32
+ return isIsaacAPIClassOfType(object, OBJECT_NAME);
40
33
  }
41
34
  /**
42
35
  * Used to determine is the given table is a serialized `BitSet128` object created by the `deepCopy`
43
36
  * function.
44
37
  */
45
- function isSerializedBitSet128(object) {
46
- if (!(0, types_1.isTable)(object)) {
38
+ export function isSerializedBitSet128(object) {
39
+ if (!isTable(object)) {
47
40
  return false;
48
41
  }
49
- return ((0, table_1.tableHasKeys)(object, ...KEYS) && object.has(SerializationBrand_1.SerializationBrand.BIT_SET_128));
42
+ return (tableHasKeys(object, ...KEYS) && object.has(SerializationBrand.BIT_SET_128));
50
43
  }
51
44
  /**
52
45
  * Helper function to convert a `BitSet128` object to a `SerializedBitSet128` object. (This is used
53
46
  * by the save data manager when writing data from the "save#.dat" file.)
54
47
  */
55
- function serializeBitSet128(bitSet128) {
48
+ export function serializeBitSet128(bitSet128) {
56
49
  if (!isBitSet128(bitSet128)) {
57
50
  error(`Failed to serialize a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
58
51
  }
59
52
  const bitSet128Table = new LuaMap();
60
- (0, table_1.copyUserdataValuesToTable)(bitSet128, KEYS, bitSet128Table);
61
- bitSet128Table.set(SerializationBrand_1.SerializationBrand.BIT_SET_128, "");
53
+ copyUserdataValuesToTable(bitSet128, KEYS, bitSet128Table);
54
+ bitSet128Table.set(SerializationBrand.BIT_SET_128, "");
62
55
  return bitSet128Table;
63
56
  }
@@ -1,25 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.arrayToBitFlags = arrayToBitFlags;
4
- exports.convertBinaryToDecimal = convertBinaryToDecimal;
5
- exports.convertDecimalToBinary = convertDecimalToBinary;
6
- exports.countSetBits = countSetBits;
7
- exports.getKBitOfN = getKBitOfN;
8
- exports.getNumBitsOfN = getNumBitsOfN;
9
- exports.setToBitFlags = setToBitFlags;
10
- const flag_1 = require("./flag");
11
- const types_1 = require("./types");
12
- const utils_1 = require("./utils");
1
+ import { addFlag } from "./flag";
2
+ import { parseIntSafe } from "./types";
3
+ import { assertDefined } from "./utils";
13
4
  /** Helper function to convert a set of flags to a single `BitFlags` object. */
14
- function arrayToBitFlags(array) {
5
+ export function arrayToBitFlags(array) {
15
6
  let flags = 0;
16
7
  for (const flag of array) {
17
- flags = (0, flag_1.addFlag)(flags, flag);
8
+ flags = addFlag(flags, flag);
18
9
  }
19
10
  return flags;
20
11
  }
21
12
  /** Helper function to convert an array of bits to the resulting decimal number. */
22
- function convertBinaryToDecimal(bits) {
13
+ export function convertBinaryToDecimal(bits) {
23
14
  const bitsString = bits.join("");
24
15
  return Number.parseInt(bitsString, 2);
25
16
  }
@@ -32,12 +23,12 @@ function convertBinaryToDecimal(bits) {
32
23
  * side until the minimum length is met. Default is undefined (which will not cause
33
24
  * any padding).
34
25
  */
35
- function convertDecimalToBinary(num, minLength) {
26
+ export function convertDecimalToBinary(num, minLength) {
36
27
  const bits = [];
37
28
  const bitsString = num.toString(2);
38
29
  for (const bitString of bitsString) {
39
- const bit = (0, types_1.parseIntSafe)(bitString);
40
- (0, utils_1.assertDefined)(bit, `Failed to convert the following number to binary: ${num}`);
30
+ const bit = parseIntSafe(bitString);
31
+ assertDefined(bit, `Failed to convert the following number to binary: ${num}`);
41
32
  bits.push(bit);
42
33
  }
43
34
  if (minLength !== undefined) {
@@ -52,7 +43,7 @@ function convertDecimalToBinary(num, minLength) {
52
43
  * Helper function to count the number of bits that are set to 1 in a binary representation of a
53
44
  * number.
54
45
  */
55
- function countSetBits(num) {
46
+ export function countSetBits(num) {
56
47
  let count = 0;
57
48
  while (num > 0) {
58
49
  num &= num - 1;
@@ -61,11 +52,11 @@ function countSetBits(num) {
61
52
  return count;
62
53
  }
63
54
  /** Helper function to get the value of a specific but in a binary representation of a number. */
64
- function getKBitOfN(k, n) {
55
+ export function getKBitOfN(k, n) {
65
56
  return (n >>> k) & 1;
66
57
  }
67
58
  /** Helper function to get the number of bits in a binary representation of a number. */
68
- function getNumBitsOfN(n) {
59
+ export function getNumBitsOfN(n) {
69
60
  let numBits = 0;
70
61
  while (n > 0) {
71
62
  numBits++;
@@ -74,10 +65,10 @@ function getNumBitsOfN(n) {
74
65
  return numBits;
75
66
  }
76
67
  /** Helper function to convert a set of flags to a single `BitFlags` object. */
77
- function setToBitFlags(set) {
68
+ export function setToBitFlags(set) {
78
69
  let flags = 0;
79
70
  for (const flag of set) {
80
- flags = (0, flag_1.addFlag)(flags, flag);
71
+ flags = addFlag(flags, flag);
81
72
  }
82
73
  return flags;
83
74
  }
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBombRadiusFromDamage = getBombRadiusFromDamage;
4
1
  /** Helper function to find out how large a bomb explosion is based on the damage inflicted. */
5
- function getBombRadiusFromDamage(damage) {
2
+ export function getBombRadiusFromDamage(damage) {
6
3
  if (damage > 175) {
7
4
  return 105;
8
5
  }