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,23 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkFamiliar = checkFamiliar;
4
- exports.checkFamiliarFromCollectibles = checkFamiliarFromCollectibles;
5
- exports.getPlayerFamiliars = getPlayerFamiliars;
6
- exports.getSirenHelper = getSirenHelper;
7
- exports.isFamiliarStolenBySiren = isFamiliarStolenBySiren;
8
- exports.isFamiliarThatShootsPlayerTears = isFamiliarThatShootsPlayerTears;
9
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
10
- const cachedClasses_1 = require("../core/cachedClasses");
11
- const familiarsThatShootPlayerTearsSet_1 = require("../sets/familiarsThatShootPlayerTearsSet");
12
- const entities_1 = require("./entities");
13
- const entitiesSpecific_1 = require("./entitiesSpecific");
14
- const rng_1 = require("./rng");
1
+ import { EntityType } from "isaac-typescript-definitions";
2
+ import { itemConfig } from "../core/cachedClasses";
3
+ import { FAMILIARS_THAT_SHOOT_PLAYER_TEARS_SET } from "../sets/familiarsThatShootPlayerTearsSet";
4
+ import { getEntities } from "./entities";
5
+ import { getFamiliars } from "./entitiesSpecific";
6
+ import { newRNG } from "./rng";
15
7
  /**
16
8
  * Instead of generating a new RNG object every time we need to spawn a new familiar, we instead
17
9
  * re-use the same RNG object. This makes it less likely that the `InitSeed` of the familiar will
18
10
  * overlap, since we are "nexting" instead of doing a fresh reroll.
19
11
  */
20
- const familiarGenerationRNG = (0, rng_1.newRNG)();
12
+ const familiarGenerationRNG = newRNG();
21
13
  /**
22
14
  * Helper function to add and remove familiars based on a target amount that you specify.
23
15
  *
@@ -47,9 +39,9 @@ const familiarGenerationRNG = (0, rng_1.newRNG)();
47
39
  * specified, it will search for existing familiars of all sub-types, and
48
40
  * spawn new familiars with a sub-type of 0.
49
41
  */
50
- function checkFamiliar(player, collectibleType, targetCount, familiarVariant, familiarSubType) {
42
+ export function checkFamiliar(player, collectibleType, targetCount, familiarVariant, familiarSubType) {
51
43
  familiarGenerationRNG.Next();
52
- const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
44
+ const itemConfigItem = itemConfig.GetCollectible(collectibleType);
53
45
  player.CheckFamiliar(familiarVariant, targetCount, familiarGenerationRNG, itemConfigItem, familiarSubType);
54
46
  }
55
47
  /**
@@ -79,7 +71,7 @@ function checkFamiliar(player, collectibleType, targetCount, familiarVariant, fa
79
71
  * specified, it will search for existing familiars of all sub-types, and
80
72
  * spawn new familiars with a sub-type of 0.
81
73
  */
82
- function checkFamiliarFromCollectibles(player, collectibleType, familiarVariant, familiarSubType) {
74
+ export function checkFamiliarFromCollectibles(player, collectibleType, familiarVariant, familiarSubType) {
83
75
  // We need to include non-real collectibles (like Lilith's Incubus), so we omit the second
84
76
  // argument.
85
77
  const numCollectibles = player.GetCollectibleNum(collectibleType);
@@ -91,9 +83,9 @@ function checkFamiliarFromCollectibles(player, collectibleType, familiarVariant,
91
83
  checkFamiliar(player, collectibleType, targetCount, familiarVariant, familiarSubType);
92
84
  }
93
85
  /** Helper function to get only the familiars that belong to a specific player. */
94
- function getPlayerFamiliars(player) {
86
+ export function getPlayerFamiliars(player) {
95
87
  const playerPtrHash = GetPtrHash(player);
96
- const familiars = (0, entitiesSpecific_1.getFamiliars)();
88
+ const familiars = getFamiliars();
97
89
  return familiars.filter((familiar) => {
98
90
  const familiarPlayerPtrHash = GetPtrHash(familiar.Player);
99
91
  return familiarPlayerPtrHash === playerPtrHash;
@@ -110,9 +102,9 @@ function getPlayerFamiliars(player) {
110
102
  * @returns Returns the hidden "Siren Helper" entity corresponding to the given familiar, if it
111
103
  * exists. Returns undefined otherwise.
112
104
  */
113
- function getSirenHelper(familiar) {
105
+ export function getSirenHelper(familiar) {
114
106
  const familiarPtrHash = GetPtrHash(familiar);
115
- const sirenHelpers = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.SIREN_HELPER);
107
+ const sirenHelpers = getEntities(EntityType.SIREN_HELPER);
116
108
  return sirenHelpers.find((sirenHelper) => sirenHelper.Target !== undefined
117
109
  && GetPtrHash(sirenHelper.Target) === familiarPtrHash);
118
110
  }
@@ -122,7 +114,7 @@ function getSirenHelper(familiar) {
122
114
  * This function is useful because some familiars may need to behave differently when under The
123
115
  * Siren's control (e.g. if they auto-target enemies).
124
116
  */
125
- function isFamiliarStolenBySiren(familiar) {
117
+ export function isFamiliarStolenBySiren(familiar) {
126
118
  const sirenHelper = getSirenHelper(familiar);
127
119
  return sirenHelper !== undefined;
128
120
  }
@@ -130,6 +122,6 @@ function isFamiliarStolenBySiren(familiar) {
130
122
  * Helper function to check if a familiar is the type that shoots tears that mimic the players
131
123
  * tears, like Incubus, Fate's Reward, Sprinkler, and so on.
132
124
  */
133
- function isFamiliarThatShootsPlayerTears(familiar) {
134
- return familiarsThatShootPlayerTearsSet_1.FAMILIARS_THAT_SHOOT_PLAYER_TEARS_SET.has(familiar.Variant);
125
+ export function isFamiliarThatShootsPlayerTears(familiar) {
126
+ return FAMILIARS_THAT_SHOOT_PLAYER_TEARS_SET.has(familiar.Variant);
135
127
  }
@@ -1,13 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addFlag = addFlag;
4
- exports.bitFlags = bitFlags;
5
- exports.getFlagName = getFlagName;
6
- exports.hasFlag = hasFlag;
7
- exports.isEmptyFlag = isEmptyFlag;
8
- exports.isSelfDamage = isSelfDamage;
9
- exports.removeFlag = removeFlag;
10
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
1
+ import { DamageFlag } from "isaac-typescript-definitions";
11
2
  /**
12
3
  * Helper function to add a bit flag to an existing set of bit flags.
13
4
  *
@@ -33,7 +24,7 @@ const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
33
24
  * @param flagsToAdd One or more bit flags to add, each as a separate argument.
34
25
  * @returns The combined bit flags.
35
26
  */
36
- function addFlag(flags, ...flagsToAdd) {
27
+ export function addFlag(flags, ...flagsToAdd) {
37
28
  let flagsAsInt = flags;
38
29
  for (const flagToAdd of flagsToAdd) {
39
30
  flagsAsInt |= flagToAdd;
@@ -53,7 +44,7 @@ function addFlag(flags, ...flagsToAdd) {
53
44
  * player.TearFlags = bitFlags(TearFlag.SPECTRAL);
54
45
  * ```
55
46
  */
56
- function bitFlags(flag) {
47
+ export function bitFlags(flag) {
57
48
  return flag;
58
49
  }
59
50
  /**
@@ -63,7 +54,7 @@ function bitFlags(flag) {
63
54
  * use the reverse mapping to find the associated key of a given enum value. Use this helper
64
55
  * function instead of indexing the enum directly.)
65
56
  */
66
- function getFlagName(flag, flagEnum) {
57
+ export function getFlagName(flag, flagEnum) {
67
58
  for (const [key, value] of Object.entries(flagEnum)) {
68
59
  if (value === flag) {
69
60
  return key;
@@ -89,7 +80,7 @@ function getFlagName(flag, flagEnum) {
89
80
  * @param flags The existing set of bit flags.
90
81
  * @param flagsToCheck One or more bit flags to check for, each as a separate argument.
91
82
  */
92
- function hasFlag(flags, ...flagsToCheck) {
83
+ export function hasFlag(flags, ...flagsToCheck) {
93
84
  const flagsAsInt = flags;
94
85
  for (const flagToCheck of flagsToCheck) {
95
86
  if ((flagsAsInt & flagToCheck) !== flagToCheck) {
@@ -104,7 +95,7 @@ function hasFlag(flags, ...flagsToCheck) {
104
95
  * (This is equivalent to checking if the flag is equal to 0, but this is not possible without
105
96
  * casting the flag to a number.)
106
97
  */
107
- function isEmptyFlag(flag) {
98
+ export function isEmptyFlag(flag) {
108
99
  return flag === 0;
109
100
  }
110
101
  /**
@@ -112,12 +103,12 @@ function isEmptyFlag(flag) {
112
103
  * self-inflicted. For example, damage from a Curse Room door, a Razor, or a Blood Donation Machine
113
104
  * would count as self-inflicted damage.
114
105
  */
115
- function isSelfDamage(damageFlags) {
106
+ export function isSelfDamage(damageFlags) {
116
107
  return (
117
108
  // Exclude self-damage from e.g. Curse Room door spikes.
118
- hasFlag(damageFlags, isaac_typescript_definitions_1.DamageFlag.NO_PENALTIES)
109
+ hasFlag(damageFlags, DamageFlag.NO_PENALTIES)
119
110
  // Exclude self-damage from e.g. Razor.
120
- || hasFlag(damageFlags, isaac_typescript_definitions_1.DamageFlag.RED_HEARTS));
111
+ || hasFlag(damageFlags, DamageFlag.RED_HEARTS));
121
112
  }
122
113
  /**
123
114
  * Helper function to remove a bit flag from an existing set of bit flags.
@@ -136,7 +127,7 @@ function isSelfDamage(damageFlags) {
136
127
  * @param flagsToRemove One or more bit flags to remove, each as a separate argument.
137
128
  * @returns The combined bit flags.
138
129
  */
139
- function removeFlag(flags, ...flagsToRemove) {
130
+ export function removeFlag(flags, ...flagsToRemove) {
140
131
  let flagsAsInt = flags;
141
132
  for (const flagToRemove of flagsToRemove) {
142
133
  flagsAsInt &= ~flagToRemove;
@@ -1,34 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getElapsedGameFramesSince = getElapsedGameFramesSince;
4
- exports.getElapsedRenderFramesSince = getElapsedRenderFramesSince;
5
- exports.getElapsedRoomFramesSince = getElapsedRoomFramesSince;
6
- exports.isAfterGameFrame = isAfterGameFrame;
7
- exports.isAfterRenderFrame = isAfterRenderFrame;
8
- exports.isAfterRoomFrame = isAfterRoomFrame;
9
- exports.isBeforeGameFrame = isBeforeGameFrame;
10
- exports.isBeforeRenderFrame = isBeforeRenderFrame;
11
- exports.isBeforeRoomFrame = isBeforeRoomFrame;
12
- exports.onGameFrame = onGameFrame;
13
- exports.onOrAfterGameFrame = onOrAfterGameFrame;
14
- exports.onOrAfterRenderFrame = onOrAfterRenderFrame;
15
- exports.onOrAfterRoomFrame = onOrAfterRoomFrame;
16
- exports.onOrBeforeGameFrame = onOrBeforeGameFrame;
17
- exports.onOrBeforeRenderFrame = onOrBeforeRenderFrame;
18
- exports.onOrBeforeRoomFrame = onOrBeforeRoomFrame;
19
- exports.onRenderFrame = onRenderFrame;
20
- exports.onRoomFrame = onRoomFrame;
21
- const cachedClasses_1 = require("../core/cachedClasses");
22
- function getElapsedGameFramesSince(gameFrameCount) {
23
- const thisGameFrameCount = cachedClasses_1.game.GetFrameCount();
1
+ import { game } from "../core/cachedClasses";
2
+ export function getElapsedGameFramesSince(gameFrameCount) {
3
+ const thisGameFrameCount = game.GetFrameCount();
24
4
  return thisGameFrameCount - gameFrameCount;
25
5
  }
26
- function getElapsedRenderFramesSince(renderFrameCount) {
6
+ export function getElapsedRenderFramesSince(renderFrameCount) {
27
7
  const thisRenderFrameCount = Isaac.GetFrameCount();
28
8
  return thisRenderFrameCount - renderFrameCount;
29
9
  }
30
- function getElapsedRoomFramesSince(roomFrameCount) {
31
- const room = cachedClasses_1.game.GetRoom();
10
+ export function getElapsedRoomFramesSince(roomFrameCount) {
11
+ const room = game.GetRoom();
32
12
  const thisRoomFrameCount = room.GetFrameCount();
33
13
  return thisRoomFrameCount - roomFrameCount;
34
14
  }
@@ -36,15 +16,15 @@ function getElapsedRoomFramesSince(roomFrameCount) {
36
16
  * Helper function to check if the current game frame count is higher than a specific game frame
37
17
  * count.
38
18
  */
39
- function isAfterGameFrame(gameFrameCount) {
40
- const thisGameFrameCount = cachedClasses_1.game.GetFrameCount();
19
+ export function isAfterGameFrame(gameFrameCount) {
20
+ const thisGameFrameCount = game.GetFrameCount();
41
21
  return thisGameFrameCount > gameFrameCount;
42
22
  }
43
23
  /**
44
24
  * Helper function to check if the current render frame count is higher than a specific render frame
45
25
  * count.
46
26
  */
47
- function isAfterRenderFrame(renderFrameCount) {
27
+ export function isAfterRenderFrame(renderFrameCount) {
48
28
  const thisRenderFrameCount = Isaac.GetFrameCount();
49
29
  return thisRenderFrameCount > renderFrameCount;
50
30
  }
@@ -52,8 +32,8 @@ function isAfterRenderFrame(renderFrameCount) {
52
32
  * Helper function to check if the current room frame count is higher than a specific room frame
53
33
  * count.
54
34
  */
55
- function isAfterRoomFrame(roomFrameCount) {
56
- const room = cachedClasses_1.game.GetRoom();
35
+ export function isAfterRoomFrame(roomFrameCount) {
36
+ const room = game.GetRoom();
57
37
  const thisGameFrameCount = room.GetFrameCount();
58
38
  return thisGameFrameCount > roomFrameCount;
59
39
  }
@@ -61,15 +41,15 @@ function isAfterRoomFrame(roomFrameCount) {
61
41
  * Helper function to check if the current game frame count is lower than a specific game frame
62
42
  * count.
63
43
  */
64
- function isBeforeGameFrame(gameFrameCount) {
65
- const thisGameFrameCount = cachedClasses_1.game.GetFrameCount();
44
+ export function isBeforeGameFrame(gameFrameCount) {
45
+ const thisGameFrameCount = game.GetFrameCount();
66
46
  return thisGameFrameCount < gameFrameCount;
67
47
  }
68
48
  /**
69
49
  * Helper function to check if the current render frame count is lower than a specific render frame
70
50
  * count.
71
51
  */
72
- function isBeforeRenderFrame(renderFrameCount) {
52
+ export function isBeforeRenderFrame(renderFrameCount) {
73
53
  const thisRenderFrameCount = Isaac.GetFrameCount();
74
54
  return thisRenderFrameCount < renderFrameCount;
75
55
  }
@@ -77,8 +57,8 @@ function isBeforeRenderFrame(renderFrameCount) {
77
57
  * Helper function to check if the current room frame count is lower than a specific room frame
78
58
  * count.
79
59
  */
80
- function isBeforeRoomFrame(roomFrameCount) {
81
- const room = cachedClasses_1.game.GetRoom();
60
+ export function isBeforeRoomFrame(roomFrameCount) {
61
+ const room = game.GetRoom();
82
62
  const thisGameFrameCount = room.GetFrameCount();
83
63
  return thisGameFrameCount < roomFrameCount;
84
64
  }
@@ -88,23 +68,23 @@ function isBeforeRoomFrame(roomFrameCount) {
88
68
  *
89
69
  * This returns false if the submitted render frame count is null or undefined.
90
70
  */
91
- function onGameFrame(gameFrameCount) {
92
- const thisGameFrameCount = cachedClasses_1.game.GetFrameCount();
71
+ export function onGameFrame(gameFrameCount) {
72
+ const thisGameFrameCount = game.GetFrameCount();
93
73
  return thisGameFrameCount === gameFrameCount;
94
74
  }
95
75
  /**
96
76
  * Helper function to check if the current game frame count is equal to or higher than a specific
97
77
  * game frame count.
98
78
  */
99
- function onOrAfterGameFrame(gameFrameCount) {
100
- const thisGameFrameCount = cachedClasses_1.game.GetFrameCount();
79
+ export function onOrAfterGameFrame(gameFrameCount) {
80
+ const thisGameFrameCount = game.GetFrameCount();
101
81
  return thisGameFrameCount >= gameFrameCount;
102
82
  }
103
83
  /**
104
84
  * Helper function to check if the current render frame count is equal to or higher than a specific
105
85
  * render frame count.
106
86
  */
107
- function onOrAfterRenderFrame(renderFrameCount) {
87
+ export function onOrAfterRenderFrame(renderFrameCount) {
108
88
  const thisRenderFrameCount = Isaac.GetFrameCount();
109
89
  return thisRenderFrameCount >= renderFrameCount;
110
90
  }
@@ -112,8 +92,8 @@ function onOrAfterRenderFrame(renderFrameCount) {
112
92
  * Helper function to check if the current room frame count is equal to or higher than a specific
113
93
  * room frame count.
114
94
  */
115
- function onOrAfterRoomFrame(roomFrameCount) {
116
- const room = cachedClasses_1.game.GetRoom();
95
+ export function onOrAfterRoomFrame(roomFrameCount) {
96
+ const room = game.GetRoom();
117
97
  const thisGameFrameCount = room.GetFrameCount();
118
98
  return thisGameFrameCount >= roomFrameCount;
119
99
  }
@@ -121,15 +101,15 @@ function onOrAfterRoomFrame(roomFrameCount) {
121
101
  * Helper function to check if the current game frame count is equal to or lower than a specific
122
102
  * game frame count.
123
103
  */
124
- function onOrBeforeGameFrame(gameFrameCount) {
125
- const thisGameFrameCount = cachedClasses_1.game.GetFrameCount();
104
+ export function onOrBeforeGameFrame(gameFrameCount) {
105
+ const thisGameFrameCount = game.GetFrameCount();
126
106
  return thisGameFrameCount <= gameFrameCount;
127
107
  }
128
108
  /**
129
109
  * Helper function to check if the current render frame count is equal to or lower than a specific
130
110
  * render frame count.
131
111
  */
132
- function onOrBeforeRenderFrame(renderFrameCount) {
112
+ export function onOrBeforeRenderFrame(renderFrameCount) {
133
113
  const thisRenderFrameCount = Isaac.GetFrameCount();
134
114
  return thisRenderFrameCount <= renderFrameCount;
135
115
  }
@@ -137,8 +117,8 @@ function onOrBeforeRenderFrame(renderFrameCount) {
137
117
  * Helper function to check if the current room frame count is equal to or lower than a specific
138
118
  * room frame count.
139
119
  */
140
- function onOrBeforeRoomFrame(roomFrameCount) {
141
- const room = cachedClasses_1.game.GetRoom();
120
+ export function onOrBeforeRoomFrame(roomFrameCount) {
121
+ const room = game.GetRoom();
142
122
  const thisGameFrameCount = room.GetFrameCount();
143
123
  return thisGameFrameCount <= roomFrameCount;
144
124
  }
@@ -148,7 +128,7 @@ function onOrBeforeRoomFrame(roomFrameCount) {
148
128
  *
149
129
  * This returns false if the submitted render frame count is null or undefined.
150
130
  */
151
- function onRenderFrame(renderFrameCount) {
131
+ export function onRenderFrame(renderFrameCount) {
152
132
  const thisRenderFrameCount = Isaac.GetFrameCount();
153
133
  return thisRenderFrameCount === renderFrameCount;
154
134
  }
@@ -158,8 +138,8 @@ function onRenderFrame(renderFrameCount) {
158
138
  *
159
139
  * This returns false if the submitted room frame count is null or undefined.
160
140
  */
161
- function onRoomFrame(roomFrameCount) {
162
- const room = cachedClasses_1.game.GetRoom();
141
+ export function onRoomFrame(roomFrameCount) {
142
+ const room = game.GetRoom();
163
143
  const thisGameFrameCount = room.GetFrameCount();
164
144
  return thisGameFrameCount === roomFrameCount;
165
145
  }
@@ -1,52 +1,12 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.getDefaultGlobals = getDefaultGlobals;
37
- exports.getNewGlobals = getNewGlobals;
38
- exports.logNewGlobals = logNewGlobals;
39
- exports.setLogFunctionsGlobal = setLogFunctionsGlobal;
40
- exports.setTracebackFunctionsGlobal = setTracebackFunctionsGlobal;
41
- const ReadonlySet_1 = require("../types/ReadonlySet");
42
- const debugFunctions_1 = require("./debugFunctions");
43
- const logExports = __importStar(require("./log"));
44
- const log_1 = require("./log");
45
- const logEntitiesExports = __importStar(require("./logEntities"));
46
- const logMiscExports = __importStar(require("./logMisc"));
47
- const set_1 = require("./set");
48
- const sort_1 = require("./sort");
49
- const DEFAULT_GLOBALS = new ReadonlySet_1.ReadonlySet([
1
+ import { ReadonlySet } from "../types/ReadonlySet";
2
+ import { getTraceback, isLuaDebugEnabled, traceback } from "./debugFunctions";
3
+ import * as logExports from "./log";
4
+ import { log } from "./log";
5
+ import * as logEntitiesExports from "./logEntities";
6
+ import * as logMiscExports from "./logMisc";
7
+ import { addSetsToSet, copySet } from "./set";
8
+ import { sortTwoDimensionalArray } from "./sort";
9
+ const DEFAULT_GLOBALS = new ReadonlySet([
50
10
  "ActionTriggers",
51
11
  "ActiveSlot",
52
12
  "BabySubType",
@@ -210,7 +170,7 @@ const DEFAULT_GLOBALS = new ReadonlySet_1.ReadonlySet([
210
170
  "utf8",
211
171
  "xpcall",
212
172
  ]);
213
- const LUA_DEBUG_ADDED_GLOBALS = new ReadonlySet_1.ReadonlySet([
173
+ const LUA_DEBUG_ADDED_GLOBALS = new ReadonlySet([
214
174
  "debug",
215
175
  "dofile",
216
176
  "loadfile",
@@ -218,7 +178,7 @@ const LUA_DEBUG_ADDED_GLOBALS = new ReadonlySet_1.ReadonlySet([
218
178
  "os",
219
179
  "package",
220
180
  ]);
221
- const RACING_PLUS_SANDBOX_ADDED_GLOBALS = new ReadonlySet_1.ReadonlySet([
181
+ const RACING_PLUS_SANDBOX_ADDED_GLOBALS = new ReadonlySet([
222
182
  "sandboxTraceback",
223
183
  "sandboxGetTraceback",
224
184
  "getParentFunctionDescription",
@@ -229,13 +189,13 @@ const RACING_PLUS_SANDBOX_ADDED_GLOBALS = new ReadonlySet_1.ReadonlySet([
229
189
  *
230
190
  * Returns a slightly different set depending on whether the "--luadebug" flag is enabled.
231
191
  */
232
- function getDefaultGlobals() {
233
- const defaultGlobals = (0, set_1.copySet)(DEFAULT_GLOBALS);
234
- if ((0, debugFunctions_1.isLuaDebugEnabled)()) {
235
- (0, set_1.addSetsToSet)(defaultGlobals, LUA_DEBUG_ADDED_GLOBALS);
192
+ export function getDefaultGlobals() {
193
+ const defaultGlobals = copySet(DEFAULT_GLOBALS);
194
+ if (isLuaDebugEnabled()) {
195
+ addSetsToSet(defaultGlobals, LUA_DEBUG_ADDED_GLOBALS);
236
196
  }
237
197
  if (isRacingPlusSandboxEnabled()) {
238
- (0, set_1.addSetsToSet)(defaultGlobals, RACING_PLUS_SANDBOX_ADDED_GLOBALS);
198
+ addSetsToSet(defaultGlobals, RACING_PLUS_SANDBOX_ADDED_GLOBALS);
239
199
  }
240
200
  return defaultGlobals;
241
201
  }
@@ -243,7 +203,7 @@ function getDefaultGlobals() {
243
203
  * Helper function to get an array of any added global variables in the Isaac Lua environment.
244
204
  * Returns a sorted array of key/value tuples.
245
205
  */
246
- function getNewGlobals() {
206
+ export function getNewGlobals() {
247
207
  const defaultGlobals = getDefaultGlobals();
248
208
  const newGlobals = [];
249
209
  for (const [key, value] of pairs(_G)) {
@@ -253,21 +213,21 @@ function getNewGlobals() {
253
213
  const keyValueTuple = [key, value];
254
214
  newGlobals.push(keyValueTuple);
255
215
  }
256
- newGlobals.sort(sort_1.sortTwoDimensionalArray);
216
+ newGlobals.sort(sortTwoDimensionalArray);
257
217
  return newGlobals;
258
218
  }
259
219
  /** Helper function to log any added global variables in the Isaac Lua environment. */
260
- function logNewGlobals() {
220
+ export function logNewGlobals() {
261
221
  const newGlobals = getNewGlobals();
262
- (0, log_1.log)("List of added global variables in the Isaac environment:");
222
+ log("List of added global variables in the Isaac environment:");
263
223
  if (newGlobals.length === 0) {
264
- (0, log_1.log)("- n/a (no extra global variables found)");
224
+ log("- n/a (no extra global variables found)");
265
225
  }
266
226
  else {
267
227
  for (const [i, tuple] of newGlobals.entries()) {
268
228
  const [key, value] = tuple;
269
229
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
270
- (0, log_1.log)(`${i + 1}) ${key} - ${value}`);
230
+ log(`${i + 1}) ${key} - ${value}`);
271
231
  }
272
232
  }
273
233
  }
@@ -276,7 +236,7 @@ function logNewGlobals() {
276
236
  *
277
237
  * This is useful when printing out variables from the in-game debug console.
278
238
  */
279
- function setLogFunctionsGlobal() {
239
+ export function setLogFunctionsGlobal() {
280
240
  const globals = _G;
281
241
  for (const exports of [logExports, logMiscExports, logEntitiesExports]) {
282
242
  // eslint-disable-next-line complete/no-object-any
@@ -290,10 +250,10 @@ function setLogFunctionsGlobal() {
290
250
  *
291
251
  * This is useful when editing Lua files when troubleshooting.
292
252
  */
293
- function setTracebackFunctionsGlobal() {
253
+ export function setTracebackFunctionsGlobal() {
294
254
  const globals = _G;
295
- globals["getTraceback"] = debugFunctions_1.getTraceback;
296
- globals["traceback"] = debugFunctions_1.traceback;
255
+ globals["getTraceback"] = getTraceback;
256
+ globals["traceback"] = traceback;
297
257
  }
298
258
  function isRacingPlusSandboxEnabled() {
299
259
  return SandboxGetParentFunctionDescription !== undefined;