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,22 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addRoomDisplayFlag = addRoomDisplayFlag;
4
- exports.clearFloorDisplayFlags = clearFloorDisplayFlags;
5
- exports.clearRoomDisplayFlags = clearRoomDisplayFlags;
6
- exports.getFloorDisplayFlags = getFloorDisplayFlags;
7
- exports.getRoomDisplayFlags = getRoomDisplayFlags;
8
- exports.hideRoomOnMinimap = hideRoomOnMinimap;
9
- exports.isRoomVisible = isRoomVisible;
10
- exports.setAllDisplayFlags = setAllDisplayFlags;
11
- exports.setFloorDisplayFlags = setFloorDisplayFlags;
12
- exports.setRoomDisplayFlags = setRoomDisplayFlags;
13
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
14
- const cachedClasses_1 = require("../core/cachedClasses");
15
- const flag_1 = require("./flag");
16
- const roomData_1 = require("./roomData");
17
- const rooms_1 = require("./rooms");
18
- const types_1 = require("./types");
19
- const utils_1 = require("./utils");
1
+ import { DisplayFlagZero } from "isaac-typescript-definitions";
2
+ import { game } from "../core/cachedClasses";
3
+ import { addFlag } from "./flag";
4
+ import { getRoomDescriptor, getRoomGridIndex } from "./roomData";
5
+ import { getRoomsInsideGrid } from "./rooms";
6
+ import { isInteger } from "./types";
7
+ import { assertDefined } from "./utils";
20
8
  /**
21
9
  * Helper function to add a `DisplayFlag` to a particular room's minimap display flags (e.g. whether
22
10
  * it is visible and so on).
@@ -28,9 +16,9 @@ const utils_1 = require("./utils");
28
16
  * @param updateVisibility Optional. Whether to call the `Level.UpdateVisibility` method in order to
29
17
  * make the changes immediately visible. Default is true.
30
18
  */
31
- function addRoomDisplayFlag(roomGridIndex, displayFlag, updateVisibility = true) {
19
+ export function addRoomDisplayFlag(roomGridIndex, displayFlag, updateVisibility = true) {
32
20
  const oldDisplayFlags = getRoomDisplayFlags(roomGridIndex);
33
- const newDisplayFlags = (0, flag_1.addFlag)(oldDisplayFlags, displayFlag);
21
+ const newDisplayFlags = addFlag(oldDisplayFlags, displayFlag);
34
22
  setRoomDisplayFlags(roomGridIndex, newDisplayFlags, updateVisibility);
35
23
  }
36
24
  /**
@@ -41,8 +29,8 @@ function addRoomDisplayFlag(roomGridIndex, displayFlag, updateVisibility = true)
41
29
  * This function automatically calls the `Level.UpdateVisibility` after setting the flags so that
42
30
  * the changes will be immediately visible.
43
31
  */
44
- function clearFloorDisplayFlags() {
45
- setAllDisplayFlags(isaac_typescript_definitions_1.DisplayFlagZero);
32
+ export function clearFloorDisplayFlags() {
33
+ setAllDisplayFlags(DisplayFlagZero);
46
34
  }
47
35
  /**
48
36
  * Helper function to set the value of `DisplayFlag` for a room 0.
@@ -56,8 +44,8 @@ function clearFloorDisplayFlags() {
56
44
  * adjacent room), the room will appear on the minimap again. If you want to permanently hide the
57
45
  * room even in this circumstance, use the `hideRoomOnMinimap` helper function instead.
58
46
  */
59
- function clearRoomDisplayFlags(roomGridIndex) {
60
- setRoomDisplayFlags(roomGridIndex, isaac_typescript_definitions_1.DisplayFlagZero);
47
+ export function clearRoomDisplayFlags(roomGridIndex) {
48
+ setRoomDisplayFlags(roomGridIndex, DisplayFlagZero);
61
49
  }
62
50
  /**
63
51
  * Helper function to get the minimap `DisplayFlag` value for every room on the floor. Returns a map
@@ -67,9 +55,9 @@ function clearRoomDisplayFlags(roomGridIndex) {
67
55
  *
68
56
  * @param minimapAPI Optional. If MinimapAPI should be used, if present. Default is true.
69
57
  */
70
- function getFloorDisplayFlags(minimapAPI = true) {
58
+ export function getFloorDisplayFlags(minimapAPI = true) {
71
59
  const displayFlagsMap = new Map();
72
- for (const roomDescriptor of (0, rooms_1.getRoomsInsideGrid)()) {
60
+ for (const roomDescriptor of getRoomsInsideGrid()) {
73
61
  const roomGridIndex = roomDescriptor.SafeGridIndex;
74
62
  const displayFlags = getRoomDisplayFlags(roomGridIndex, minimapAPI);
75
63
  displayFlagsMap.set(roomGridIndex, displayFlags);
@@ -85,14 +73,14 @@ function getFloorDisplayFlags(minimapAPI = true) {
85
73
  * @param roomGridIndex Optional. Default is the current room index.
86
74
  * @param minimapAPI Optional. If MinimapAPI should be used, if present. Default is true.
87
75
  */
88
- function getRoomDisplayFlags(roomGridIndex, minimapAPI = true) {
89
- roomGridIndex ??= (0, roomData_1.getRoomGridIndex)();
76
+ export function getRoomDisplayFlags(roomGridIndex, minimapAPI = true) {
77
+ roomGridIndex ??= getRoomGridIndex();
90
78
  if (MinimapAPI === undefined || !minimapAPI) {
91
- const roomDescriptor = (0, roomData_1.getRoomDescriptor)(roomGridIndex);
79
+ const roomDescriptor = getRoomDescriptor(roomGridIndex);
92
80
  return roomDescriptor.DisplayFlags;
93
81
  }
94
82
  const minimapAPIRoomDescriptor = MinimapAPI.GetRoomByIdx(roomGridIndex);
95
- (0, utils_1.assertDefined)(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
83
+ assertDefined(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
96
84
  return minimapAPIRoomDescriptor.GetDisplayFlags();
97
85
  }
98
86
  /**
@@ -104,14 +92,14 @@ function getRoomDisplayFlags(roomGridIndex, minimapAPI = true) {
104
92
  *
105
93
  * This function automatically accounts for if MinimapAPI is being used.
106
94
  */
107
- function hideRoomOnMinimap(roomGridIndex) {
95
+ export function hideRoomOnMinimap(roomGridIndex) {
108
96
  clearRoomDisplayFlags(roomGridIndex);
109
97
  // In vanilla, the map only updates at the beginning of every room. In MinimapAPI, it constant
110
98
  // updates, so we must specifically tell MinimapAPI that the room should be hidden using the
111
99
  // `Hidden` property.
112
100
  if (MinimapAPI !== undefined) {
113
101
  const minimapAPIRoomDescriptor = MinimapAPI.GetRoomByIdx(roomGridIndex);
114
- (0, utils_1.assertDefined)(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
102
+ assertDefined(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
115
103
  minimapAPIRoomDescriptor.Hidden = true;
116
104
  }
117
105
  }
@@ -121,12 +109,12 @@ function hideRoomOnMinimap(roomGridIndex) {
121
109
  * @param roomGridIndexOrRoomDescriptor The room to check.
122
110
  * @param minimapAPI Optional. Whether MinimapAPI should be used, if present. Default is true.
123
111
  */
124
- function isRoomVisible(roomGridIndexOrRoomDescriptor, minimapAPI = true) {
125
- const roomGridIndex = (0, types_1.isInteger)(roomGridIndexOrRoomDescriptor)
112
+ export function isRoomVisible(roomGridIndexOrRoomDescriptor, minimapAPI = true) {
113
+ const roomGridIndex = isInteger(roomGridIndexOrRoomDescriptor)
126
114
  ? roomGridIndexOrRoomDescriptor
127
115
  : roomGridIndexOrRoomDescriptor.SafeGridIndex;
128
116
  const roomDisplayFlags = getRoomDisplayFlags(roomGridIndex, minimapAPI);
129
- return roomDisplayFlags !== isaac_typescript_definitions_1.DisplayFlagZero;
117
+ return roomDisplayFlags !== DisplayFlagZero;
130
118
  }
131
119
  /**
132
120
  * Helper function to set the minimap `DisplayFlag` value for every room on the floor at once.
@@ -136,14 +124,14 @@ function isRoomVisible(roomGridIndexOrRoomDescriptor, minimapAPI = true) {
136
124
  *
137
125
  * This function automatically accounts for if MinimapAPI is being used.
138
126
  */
139
- function setAllDisplayFlags(displayFlags) {
140
- for (const room of (0, rooms_1.getRoomsInsideGrid)()) {
127
+ export function setAllDisplayFlags(displayFlags) {
128
+ for (const room of getRoomsInsideGrid()) {
141
129
  // We pass false to the `updateVisibility` argument as a small optimization.
142
130
  setRoomDisplayFlags(room.SafeGridIndex, displayFlags, false);
143
131
  }
144
132
  // In vanilla, we must call the "Level.UpdateVisibility" method for the changes to be visible.
145
133
  if (MinimapAPI === undefined) {
146
- const level = cachedClasses_1.game.GetLevel();
134
+ const level = game.GetLevel();
147
135
  level.UpdateVisibility();
148
136
  }
149
137
  }
@@ -157,14 +145,14 @@ function setAllDisplayFlags(displayFlags) {
157
145
  *
158
146
  * @param displayFlagsMap A map of the display flags that is indexed by the room's safe grid index.
159
147
  */
160
- function setFloorDisplayFlags(displayFlagsMap) {
148
+ export function setFloorDisplayFlags(displayFlagsMap) {
161
149
  for (const [roomGridIndex, displayFlags] of displayFlagsMap) {
162
150
  // We pass false to the `updateVisibility` argument as a small optimization.
163
151
  setRoomDisplayFlags(roomGridIndex, displayFlags, false);
164
152
  }
165
153
  // In vanilla, we must call the "Level.UpdateVisibility" method for the changes to be visible.
166
154
  if (MinimapAPI === undefined) {
167
- const level = cachedClasses_1.game.GetLevel();
155
+ const level = game.GetLevel();
168
156
  level.UpdateVisibility();
169
157
  }
170
158
  }
@@ -181,19 +169,19 @@ function setFloorDisplayFlags(displayFlagsMap) {
181
169
  * if you are doing a bunch of display flag setting and then manually call
182
170
  * the `Level.UpdateVisibility` method after you are done.
183
171
  */
184
- function setRoomDisplayFlags(roomGridIndex, displayFlags, updateVisibility = true) {
185
- roomGridIndex ??= (0, roomData_1.getRoomGridIndex)();
172
+ export function setRoomDisplayFlags(roomGridIndex, displayFlags, updateVisibility = true) {
173
+ roomGridIndex ??= getRoomGridIndex();
186
174
  if (MinimapAPI === undefined) {
187
- const roomDescriptor = (0, roomData_1.getRoomDescriptor)(roomGridIndex);
175
+ const roomDescriptor = getRoomDescriptor(roomGridIndex);
188
176
  roomDescriptor.DisplayFlags = displayFlags;
189
177
  if (updateVisibility) {
190
- const level = cachedClasses_1.game.GetLevel();
178
+ const level = game.GetLevel();
191
179
  level.UpdateVisibility();
192
180
  }
193
181
  }
194
182
  else {
195
183
  const minimapAPIRoomDescriptor = MinimapAPI.GetRoomByIdx(roomGridIndex);
196
- (0, utils_1.assertDefined)(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
184
+ assertDefined(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
197
185
  minimapAPIRoomDescriptor.SetDisplayFlags(displayFlags);
198
186
  }
199
187
  }
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initModFeatures = initModFeatures;
4
1
  /**
5
2
  * Helper function to instantiate an array of mod features all at once. Use this function if your
6
3
  * mod uses the pattern of expressing mod features as `ModFeature` classes.
@@ -26,7 +23,7 @@ exports.initModFeatures = initModFeatures;
26
23
  * @returns An array of the instantiated features in the same order that the constructors were
27
24
  * passed in. (In most cases, you probably won't need the returned array.)
28
25
  */
29
- function initModFeatures(mod, modFeatures, init = true) {
26
+ export function initModFeatures(mod, modFeatures, init = true) {
30
27
  const instantiatedModFeatures = [];
31
28
  for (const modFeature of modFeatures) {
32
29
  // eslint-disable-next-line new-cap
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.newArray = newArray;
4
- const deepCopy_1 = require("./deepCopy");
5
- const utils_1 = require("./utils");
1
+ import { deepCopy } from "./deepCopy";
2
+ import { repeat } from "./utils";
6
3
  /**
7
4
  * Initializes an array with all of the elements containing the specified default value.
8
5
  *
@@ -19,10 +16,10 @@ const utils_1 = require("./utils");
19
16
  * ```
20
17
  */
21
18
  // eslint-disable-next-line complete/no-mutable-return
22
- function newArray(defaultValue, size) {
19
+ export function newArray(defaultValue, size) {
23
20
  const array = [];
24
- (0, utils_1.repeat)(size, () => {
25
- const copy = (0, deepCopy_1.deepCopy)(defaultValue);
21
+ repeat(size, () => {
22
+ const copy = deepCopy(defaultValue);
26
23
  array.push(copy);
27
24
  });
28
25
  return array;
@@ -1,12 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNextStage = getNextStage;
4
- exports.getNextStageType = getNextStageType;
5
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
6
- const cachedClasses_1 = require("../core/cachedClasses");
7
- const curses_1 = require("./curses");
8
- const roomData_1 = require("./roomData");
9
- const stage_1 = require("./stage");
1
+ import { GameStateFlag, GridRoom, LevelCurse, LevelStage, StageType, } from "isaac-typescript-definitions";
2
+ import { game } from "../core/cachedClasses";
3
+ import { hasCurse } from "./curses";
4
+ import { getRoomGridIndex } from "./roomData";
5
+ import { calculateStageType, calculateStageTypeRepentance, onRepentanceStage, } from "./stage";
10
6
  /**
11
7
  * Helper function to get the stage that a trapdoor or heaven door would take the player to, based
12
8
  * on the current stage, room, and game state flags.
@@ -15,41 +11,41 @@ const stage_1 = require("./stage");
15
11
  * `getNextStageUsingHistory` helper function instead (from the stage history feature). Handling
16
12
  * this requires stateful tracking as the player progresses through the run.
17
13
  */
18
- function getNextStage() {
19
- const level = cachedClasses_1.game.GetLevel();
20
- const backwardsPath = cachedClasses_1.game.GetStateFlag(isaac_typescript_definitions_1.GameStateFlag.BACKWARDS_PATH);
21
- const mausoleumHeartKilled = cachedClasses_1.game.GetStateFlag(isaac_typescript_definitions_1.GameStateFlag.MAUSOLEUM_HEART_KILLED);
14
+ export function getNextStage() {
15
+ const level = game.GetLevel();
16
+ const backwardsPath = game.GetStateFlag(GameStateFlag.BACKWARDS_PATH);
17
+ const mausoleumHeartKilled = game.GetStateFlag(GameStateFlag.MAUSOLEUM_HEART_KILLED);
22
18
  const stage = level.GetStage();
23
19
  // First, handle the special case of being on the backwards path.
24
20
  if (backwardsPath) {
25
21
  const nextStage = stage - 1;
26
- return nextStage === 0 ? isaac_typescript_definitions_1.LevelStage.HOME : nextStage;
22
+ return nextStage === 0 ? LevelStage.HOME : nextStage;
27
23
  }
28
- const repentanceStage = (0, stage_1.onRepentanceStage)();
29
- const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
24
+ const repentanceStage = onRepentanceStage();
25
+ const roomGridIndex = getRoomGridIndex();
30
26
  // Second, handle the special case of being in a specific off-grid room.
31
27
  switch (roomGridIndex) {
32
28
  // -8
33
29
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
34
- case isaac_typescript_definitions_1.GridRoom.BLUE_WOMB: {
35
- return isaac_typescript_definitions_1.LevelStage.BLUE_WOMB;
30
+ case GridRoom.BLUE_WOMB: {
31
+ return LevelStage.BLUE_WOMB;
36
32
  }
37
33
  // -9
38
34
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
39
- case isaac_typescript_definitions_1.GridRoom.VOID: {
40
- return isaac_typescript_definitions_1.LevelStage.VOID;
35
+ case GridRoom.VOID: {
36
+ return LevelStage.VOID;
41
37
  }
42
38
  // -10
43
39
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
44
- case isaac_typescript_definitions_1.GridRoom.SECRET_EXIT: {
40
+ case GridRoom.SECRET_EXIT: {
45
41
  if (repentanceStage) {
46
42
  // e.g. From Downpour 2 to Mines 1, etc.
47
43
  return stage + 1;
48
44
  }
49
- if (stage === isaac_typescript_definitions_1.LevelStage.DEPTHS_2
50
- || (stage === isaac_typescript_definitions_1.LevelStage.DEPTHS_1 && (0, curses_1.hasCurse)(isaac_typescript_definitions_1.LevelCurse.LABYRINTH))) {
45
+ if (stage === LevelStage.DEPTHS_2
46
+ || (stage === LevelStage.DEPTHS_1 && hasCurse(LevelCurse.LABYRINTH))) {
51
47
  // From Depths 2 to Mausoleum 2 through the strange door.
52
- return isaac_typescript_definitions_1.LevelStage.DEPTHS_2;
48
+ return LevelStage.DEPTHS_2;
53
49
  }
54
50
  // e.g. From Basement 1 to Downpour 1, from Basement 2 to Downpour 2, etc.
55
51
  return stage;
@@ -59,39 +55,39 @@ function getNextStage() {
59
55
  }
60
56
  }
61
57
  // 2
62
- if (repentanceStage && stage === isaac_typescript_definitions_1.LevelStage.BASEMENT_2) {
58
+ if (repentanceStage && stage === LevelStage.BASEMENT_2) {
63
59
  // From Downpour 2 to Caves 2.
64
- return isaac_typescript_definitions_1.LevelStage.CAVES_2;
60
+ return LevelStage.CAVES_2;
65
61
  }
66
62
  // 4
67
- if (repentanceStage && stage === isaac_typescript_definitions_1.LevelStage.CAVES_2) {
63
+ if (repentanceStage && stage === LevelStage.CAVES_2) {
68
64
  // From Mines 2 to Depths 2.
69
- return isaac_typescript_definitions_1.LevelStage.DEPTHS_2;
65
+ return LevelStage.DEPTHS_2;
70
66
  }
71
67
  // 6
72
- if (repentanceStage && stage === isaac_typescript_definitions_1.LevelStage.DEPTHS_2) {
68
+ if (repentanceStage && stage === LevelStage.DEPTHS_2) {
73
69
  if (mausoleumHeartKilled) {
74
70
  // From Mausoleum 2 to Corpse 1.
75
- return isaac_typescript_definitions_1.LevelStage.WOMB_1;
71
+ return LevelStage.WOMB_1;
76
72
  }
77
73
  // From Mausoleum 2 to Womb 2.
78
- return isaac_typescript_definitions_1.LevelStage.WOMB_2;
74
+ return LevelStage.WOMB_2;
79
75
  }
80
76
  // 8
81
- if (stage === isaac_typescript_definitions_1.LevelStage.WOMB_2) {
77
+ if (stage === LevelStage.WOMB_2) {
82
78
  // From Womb 2 to Sheol or Cathedral.
83
- return isaac_typescript_definitions_1.LevelStage.SHEOL_CATHEDRAL;
79
+ return LevelStage.SHEOL_CATHEDRAL;
84
80
  }
85
81
  // 11
86
- if (stage === isaac_typescript_definitions_1.LevelStage.DARK_ROOM_CHEST) {
82
+ if (stage === LevelStage.DARK_ROOM_CHEST) {
87
83
  // - The Chest goes to The Chest.
88
84
  // - The Dark Room goes to the Dark Room.
89
- return isaac_typescript_definitions_1.LevelStage.DARK_ROOM_CHEST;
85
+ return LevelStage.DARK_ROOM_CHEST;
90
86
  }
91
87
  // 12
92
- if (stage === isaac_typescript_definitions_1.LevelStage.VOID) {
88
+ if (stage === LevelStage.VOID) {
93
89
  // The Void goes to The Void.
94
- return isaac_typescript_definitions_1.LevelStage.VOID;
90
+ return LevelStage.VOID;
95
91
  }
96
92
  // By default, go to the next floor.
97
93
  return stage + 1;
@@ -107,69 +103,69 @@ function getNextStage() {
107
103
  * @param upwards Whether the player should go up to Cathedral in the case of being on Womb 2.
108
104
  * Default is false.
109
105
  */
110
- function getNextStageType(upwards = false) {
111
- const backwardsPath = cachedClasses_1.game.GetStateFlag(isaac_typescript_definitions_1.GameStateFlag.BACKWARDS_PATH);
112
- const mausoleumHeartKilled = cachedClasses_1.game.GetStateFlag(isaac_typescript_definitions_1.GameStateFlag.MAUSOLEUM_HEART_KILLED);
113
- const level = cachedClasses_1.game.GetLevel();
106
+ export function getNextStageType(upwards = false) {
107
+ const backwardsPath = game.GetStateFlag(GameStateFlag.BACKWARDS_PATH);
108
+ const mausoleumHeartKilled = game.GetStateFlag(GameStateFlag.MAUSOLEUM_HEART_KILLED);
109
+ const level = game.GetLevel();
114
110
  const stage = level.GetStage();
115
111
  const stageType = level.GetStageType();
116
- const repentanceStage = (0, stage_1.onRepentanceStage)();
117
- const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
112
+ const repentanceStage = onRepentanceStage();
113
+ const roomGridIndex = getRoomGridIndex();
118
114
  const nextStage = getNextStage();
119
115
  // First, handle the special case of being on the backwards path.
120
116
  if (backwardsPath) {
121
- return (0, stage_1.calculateStageType)(nextStage);
117
+ return calculateStageType(nextStage);
122
118
  }
123
119
  // Second, handle the special case of being in a specific off-grid room.
124
120
  // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
125
- if (roomGridIndex === isaac_typescript_definitions_1.GridRoom.SECRET_EXIT) {
126
- return (0, stage_1.calculateStageTypeRepentance)(nextStage);
121
+ if (roomGridIndex === GridRoom.SECRET_EXIT) {
122
+ return calculateStageTypeRepentance(nextStage);
127
123
  }
128
124
  if (repentanceStage
129
- && (stage === isaac_typescript_definitions_1.LevelStage.BASEMENT_1 // 1
130
- || stage === isaac_typescript_definitions_1.LevelStage.CAVES_1 // 3
131
- || stage === isaac_typescript_definitions_1.LevelStage.DEPTHS_1 // 5
132
- || stage === isaac_typescript_definitions_1.LevelStage.WOMB_1) // 7
125
+ && (stage === LevelStage.BASEMENT_1 // 1
126
+ || stage === LevelStage.CAVES_1 // 3
127
+ || stage === LevelStage.DEPTHS_1 // 5
128
+ || stage === LevelStage.WOMB_1) // 7
133
129
  ) {
134
- return (0, stage_1.calculateStageTypeRepentance)(nextStage);
130
+ return calculateStageTypeRepentance(nextStage);
135
131
  }
136
132
  if (repentanceStage
137
133
  && mausoleumHeartKilled
138
- && stage === isaac_typescript_definitions_1.LevelStage.DEPTHS_2) {
139
- return (0, stage_1.calculateStageTypeRepentance)(nextStage);
134
+ && stage === LevelStage.DEPTHS_2) {
135
+ return calculateStageTypeRepentance(nextStage);
140
136
  }
141
137
  // 9
142
- if (nextStage === isaac_typescript_definitions_1.LevelStage.BLUE_WOMB) {
138
+ if (nextStage === LevelStage.BLUE_WOMB) {
143
139
  // Blue Womb does not have any alternate floors.
144
- return isaac_typescript_definitions_1.StageType.ORIGINAL;
140
+ return StageType.ORIGINAL;
145
141
  }
146
142
  // 10
147
- if (nextStage === isaac_typescript_definitions_1.LevelStage.SHEOL_CATHEDRAL) {
143
+ if (nextStage === LevelStage.SHEOL_CATHEDRAL) {
148
144
  if (upwards) {
149
145
  // Go to Cathedral (10.1).
150
- return isaac_typescript_definitions_1.StageType.WRATH_OF_THE_LAMB;
146
+ return StageType.WRATH_OF_THE_LAMB;
151
147
  }
152
148
  // Go to Sheol (10.0).
153
- return isaac_typescript_definitions_1.StageType.ORIGINAL;
149
+ return StageType.ORIGINAL;
154
150
  }
155
151
  // 11
156
- if (nextStage === isaac_typescript_definitions_1.LevelStage.DARK_ROOM_CHEST) {
157
- if (stageType === isaac_typescript_definitions_1.StageType.ORIGINAL) {
152
+ if (nextStage === LevelStage.DARK_ROOM_CHEST) {
153
+ if (stageType === StageType.ORIGINAL) {
158
154
  // Sheol (10.0) goes to the Dark Room (11.0).
159
- return isaac_typescript_definitions_1.StageType.ORIGINAL;
155
+ return StageType.ORIGINAL;
160
156
  }
161
157
  // Cathedral (10.1) goes to The Chest (11.1).
162
- return isaac_typescript_definitions_1.StageType.WRATH_OF_THE_LAMB;
158
+ return StageType.WRATH_OF_THE_LAMB;
163
159
  }
164
160
  // 12
165
- if (nextStage === isaac_typescript_definitions_1.LevelStage.VOID) {
161
+ if (nextStage === LevelStage.VOID) {
166
162
  // The Void does not have any alternate floors.
167
- return isaac_typescript_definitions_1.StageType.ORIGINAL;
163
+ return StageType.ORIGINAL;
168
164
  }
169
165
  // 13
170
- if (nextStage === isaac_typescript_definitions_1.LevelStage.HOME) {
166
+ if (nextStage === LevelStage.HOME) {
171
167
  // Home does not have any alternate floors.
172
- return isaac_typescript_definitions_1.StageType.ORIGINAL;
168
+ return StageType.ORIGINAL;
173
169
  }
174
- return (0, stage_1.calculateStageType)(nextStage);
170
+ return calculateStageType(nextStage);
175
171
  }
@@ -1,14 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultMapGetNPC = defaultMapGetNPC;
4
- exports.defaultMapSetNPC = defaultMapSetNPC;
5
- exports.mapDeleteNPC = mapDeleteNPC;
6
- exports.mapGetNPC = mapGetNPC;
7
- exports.mapHasNPC = mapHasNPC;
8
- exports.mapSetNPC = mapSetNPC;
9
- exports.setAddNPC = setAddNPC;
10
- exports.setDeleteNPC = setDeleteNPC;
11
- exports.setHasNPC = setHasNPC;
12
1
  /**
13
2
  * Helper function to make using default maps with an index of `PtrHash` easier. Use this instead of
14
3
  * the `DefaultMap.getAndSetDefault` method if you have a default map of this type.
@@ -33,7 +22,7 @@ exports.setHasNPC = setHasNPC;
33
22
  * map like this, because the scope of `PtrHash` is per room and Dark Esau is persistent between
34
23
  * rooms.)
35
24
  */
36
- function defaultMapGetNPC(map, npc, ...extraArgs) {
25
+ export function defaultMapGetNPC(map, npc, ...extraArgs) {
37
26
  const ptrHash = GetPtrHash(npc);
38
27
  return map.getAndSetDefault(ptrHash, ...extraArgs);
39
28
  }
@@ -44,7 +33,7 @@ function defaultMapGetNPC(map, npc, ...extraArgs) {
44
33
  * Since `Map` and `DefaultMap` set values in the same way, this function is simply an alias for the
45
34
  * `mapSetNPC` helper function.
46
35
  */
47
- function defaultMapSetNPC(
36
+ export function defaultMapSetNPC(
48
37
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
49
38
  map, npc, value) {
50
39
  mapSetNPC(map, npc, value);
@@ -53,7 +42,7 @@ map, npc, value) {
53
42
  * Helper function to make using maps with an type of `PtrHash` easier. Use this instead of the
54
43
  * `Map.delete` method if you have a set of this type.
55
44
  */
56
- function mapDeleteNPC(
45
+ export function mapDeleteNPC(
57
46
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
58
47
  map, npc) {
59
48
  const ptrHash = GetPtrHash(npc);
@@ -79,7 +68,7 @@ map, npc) {
79
68
  * }
80
69
  * ```
81
70
  */
82
- function mapGetNPC(map, npc) {
71
+ export function mapGetNPC(map, npc) {
83
72
  const ptrHash = GetPtrHash(npc);
84
73
  return map.get(ptrHash);
85
74
  }
@@ -87,7 +76,7 @@ function mapGetNPC(map, npc) {
87
76
  * Helper function to make using maps with an index of `PtrHash` easier. Use this instead of the
88
77
  * `Map.has` method if you have a map of this type.
89
78
  */
90
- function mapHasNPC(map, npc) {
79
+ export function mapHasNPC(map, npc) {
91
80
  const ptrHash = GetPtrHash(npc);
92
81
  return map.has(ptrHash);
93
82
  }
@@ -111,7 +100,7 @@ function mapHasNPC(map, npc) {
111
100
  * }
112
101
  * ```
113
102
  */
114
- function mapSetNPC(
103
+ export function mapSetNPC(
115
104
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
116
105
  map, npc, value) {
117
106
  const ptrHash = GetPtrHash(npc);
@@ -122,7 +111,7 @@ map, npc, value) {
122
111
  * `Set.add` method if you have a set of this type.
123
112
  */
124
113
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
125
- function setAddNPC(set, npc) {
114
+ export function setAddNPC(set, npc) {
126
115
  const ptrHash = GetPtrHash(npc);
127
116
  set.add(ptrHash);
128
117
  }
@@ -131,7 +120,7 @@ function setAddNPC(set, npc) {
131
120
  * `Set.delete` method if you have a set of this type.
132
121
  */
133
122
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
134
- function setDeleteNPC(set, npc) {
123
+ export function setDeleteNPC(set, npc) {
135
124
  const ptrHash = GetPtrHash(npc);
136
125
  return set.delete(ptrHash);
137
126
  }
@@ -139,7 +128,7 @@ function setDeleteNPC(set, npc) {
139
128
  * Helper function to make using sets with an type of `PtrHash` easier. Use this instead of the
140
129
  * `Set.has` method if you have a set of this type.
141
130
  */
142
- function setHasNPC(set, npc) {
131
+ export function setHasNPC(set, npc) {
143
132
  const ptrHash = GetPtrHash(npc);
144
133
  return set.has(ptrHash);
145
134
  }