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,33 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getJSONRoomDoorSlotFlags = getJSONRoomDoorSlotFlags;
4
- exports.getJSONRoomOfVariant = getJSONRoomOfVariant;
5
- exports.getJSONRoomsOfSubType = getJSONRoomsOfSubType;
6
- exports.getRandomJSONEntity = getRandomJSONEntity;
7
- exports.getRandomJSONRoom = getRandomJSONRoom;
8
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
9
- const array_1 = require("./array");
10
- const doors_1 = require("./doors");
11
- const enums_1 = require("./enums");
12
- const flag_1 = require("./flag");
13
- const log_1 = require("./log");
14
- const random_1 = require("./random");
15
- const types_1 = require("./types");
16
- const utils_1 = require("./utils");
1
+ import { DoorSlotFlagZero, RoomShape } from "isaac-typescript-definitions";
2
+ import { sumArray } from "./array";
3
+ import { doorSlotToDoorSlotFlag, getRoomShapeDoorSlot } from "./doors";
4
+ import { isEnumValue } from "./enums";
5
+ import { addFlag } from "./flag";
6
+ import { log } from "./log";
7
+ import { getRandomFloat } from "./random";
8
+ import { parseIntSafe } from "./types";
9
+ import { assertDefined } from "./utils";
17
10
  /**
18
11
  * Helper function to calculate what the resulting `BitFlags<DoorSlotFlag>` value would be for a
19
12
  * given JSON room.
20
13
  *
21
14
  * (A JSON room is an XML file converted to JSON so that it can be directly imported into your mod.)
22
15
  */
23
- function getJSONRoomDoorSlotFlags(jsonRoom) {
16
+ export function getJSONRoomDoorSlotFlags(jsonRoom) {
24
17
  const roomShapeString = jsonRoom.$.shape;
25
- const roomShape = (0, types_1.parseIntSafe)(roomShapeString);
26
- (0, utils_1.assertDefined)(roomShape, `Failed to parse the "shape" field of a JSON room: ${roomShapeString}`);
27
- if (!(0, enums_1.isEnumValue)(roomShape, isaac_typescript_definitions_1.RoomShape)) {
18
+ const roomShape = parseIntSafe(roomShapeString);
19
+ assertDefined(roomShape, `Failed to parse the "shape" field of a JSON room: ${roomShapeString}`);
20
+ if (!isEnumValue(roomShape, RoomShape)) {
28
21
  error(`Failed to parse the "shape" field of a JSON room since it was an invalid number: ${roomShape}`);
29
22
  }
30
- let doorSlotFlags = isaac_typescript_definitions_1.DoorSlotFlagZero;
23
+ let doorSlotFlags = DoorSlotFlagZero;
31
24
  for (const door of jsonRoom.door) {
32
25
  const existsString = door.$.exists;
33
26
  if (existsString !== "True" && existsString !== "False") {
@@ -37,15 +30,15 @@ function getJSONRoomDoorSlotFlags(jsonRoom) {
37
30
  continue;
38
31
  }
39
32
  const xString = door.$.x;
40
- const x = (0, types_1.parseIntSafe)(xString);
41
- (0, utils_1.assertDefined)(x, `Failed to parse the "x" field of a JSON room door: ${xString}`);
33
+ const x = parseIntSafe(xString);
34
+ assertDefined(x, `Failed to parse the "x" field of a JSON room door: ${xString}`);
42
35
  const yString = door.$.y;
43
- const y = (0, types_1.parseIntSafe)(yString);
44
- (0, utils_1.assertDefined)(y, `Failed to parse the "y" field of a JSON room door: ${yString}`);
45
- const doorSlot = (0, doors_1.getRoomShapeDoorSlot)(roomShape, x, y);
46
- (0, utils_1.assertDefined)(doorSlot, `Failed to retrieve the door slot for a JSON room door at coordinates: [${x}, ${y}]`);
47
- const doorSlotFlag = (0, doors_1.doorSlotToDoorSlotFlag)(doorSlot);
48
- doorSlotFlags = (0, flag_1.addFlag)(doorSlotFlags, doorSlotFlag);
36
+ const y = parseIntSafe(yString);
37
+ assertDefined(y, `Failed to parse the "y" field of a JSON room door: ${yString}`);
38
+ const doorSlot = getRoomShapeDoorSlot(roomShape, x, y);
39
+ assertDefined(doorSlot, `Failed to retrieve the door slot for a JSON room door at coordinates: [${x}, ${y}]`);
40
+ const doorSlotFlag = doorSlotToDoorSlotFlag(doorSlot);
41
+ doorSlotFlags = addFlag(doorSlotFlags, doorSlotFlag);
49
42
  }
50
43
  return doorSlotFlags;
51
44
  }
@@ -58,10 +51,10 @@ function getJSONRoomDoorSlotFlags(jsonRoom) {
58
51
  * @param variant The room variant to select. (The room variant can be thought of as the ID of the
59
52
  * room.)
60
53
  */
61
- function getJSONRoomOfVariant(jsonRooms, variant) {
54
+ export function getJSONRoomOfVariant(jsonRooms, variant) {
62
55
  const jsonRoomsOfVariant = jsonRooms.filter((jsonRoom) => {
63
56
  const roomVariantString = jsonRoom.$.variant;
64
- const roomVariant = (0, types_1.parseIntSafe)(roomVariantString);
57
+ const roomVariant = parseIntSafe(roomVariantString);
65
58
  if (roomVariant === undefined) {
66
59
  error(`Failed to convert a JSON room variant to an integer: ${roomVariantString}`);
67
60
  }
@@ -85,10 +78,10 @@ function getJSONRoomOfVariant(jsonRooms, variant) {
85
78
  * @param jsonRooms The array of rooms to search through.
86
79
  * @param subType The sub-type to match.
87
80
  */
88
- function getJSONRoomsOfSubType(jsonRooms, subType) {
81
+ export function getJSONRoomsOfSubType(jsonRooms, subType) {
89
82
  return jsonRooms.filter((jsonRoom) => {
90
83
  const roomSubTypeString = jsonRoom.$.subtype;
91
- const roomSubType = (0, types_1.parseIntSafe)(roomSubTypeString);
84
+ const roomSubType = parseIntSafe(roomSubTypeString);
92
85
  if (roomSubType === undefined) {
93
86
  error(`Failed to convert a JSON room sub-type to an integer: ${roomSubTypeString}`);
94
87
  }
@@ -115,17 +108,17 @@ function getJSONRoomsOfSubType(jsonRooms, subType) {
115
108
  * @param verbose Optional. If specified, will write entries to the "log.txt" file that describe
116
109
  * what the function is doing. Default is false.
117
110
  */
118
- function getRandomJSONEntity(jsonEntities, seedOrRNG, verbose = false) {
111
+ export function getRandomJSONEntity(jsonEntities, seedOrRNG, verbose = false) {
119
112
  const totalWeight = getTotalWeightOfJSONObject(jsonEntities);
120
113
  if (verbose) {
121
- (0, log_1.log)(`Total weight of the JSON entities provided: ${totalWeight}`);
114
+ log(`Total weight of the JSON entities provided: ${totalWeight}`);
122
115
  }
123
- const chosenWeight = (0, random_1.getRandomFloat)(0, totalWeight, seedOrRNG);
116
+ const chosenWeight = getRandomFloat(0, totalWeight, seedOrRNG);
124
117
  if (verbose) {
125
- (0, log_1.log)(`Randomly chose weight for JSON entity: ${chosenWeight}`);
118
+ log(`Randomly chose weight for JSON entity: ${chosenWeight}`);
126
119
  }
127
120
  const randomJSONEntity = getJSONObjectWithChosenWeight(jsonEntities, chosenWeight);
128
- (0, utils_1.assertDefined)(randomJSONEntity, `Failed to get a JSON entity with chosen weight: ${chosenWeight}`);
121
+ assertDefined(randomJSONEntity, `Failed to get a JSON entity with chosen weight: ${chosenWeight}`);
129
122
  return randomJSONEntity;
130
123
  }
131
124
  /**
@@ -146,17 +139,17 @@ function getRandomJSONEntity(jsonEntities, seedOrRNG, verbose = false) {
146
139
  * @param verbose Optional. If specified, will write entries to the "log.txt" file that describe
147
140
  * what the function is doing. Default is false.
148
141
  */
149
- function getRandomJSONRoom(jsonRooms, seedOrRNG, verbose = false) {
142
+ export function getRandomJSONRoom(jsonRooms, seedOrRNG, verbose = false) {
150
143
  const totalWeight = getTotalWeightOfJSONObject(jsonRooms);
151
144
  if (verbose) {
152
- (0, log_1.log)(`Total weight of the JSON rooms provided: ${totalWeight}`);
145
+ log(`Total weight of the JSON rooms provided: ${totalWeight}`);
153
146
  }
154
- const chosenWeight = (0, random_1.getRandomFloat)(0, totalWeight, seedOrRNG);
147
+ const chosenWeight = getRandomFloat(0, totalWeight, seedOrRNG);
155
148
  if (verbose) {
156
- (0, log_1.log)(`Randomly chose weight for JSON room: ${chosenWeight}`);
149
+ log(`Randomly chose weight for JSON room: ${chosenWeight}`);
157
150
  }
158
151
  const randomJSONRoom = getJSONObjectWithChosenWeight(jsonRooms, chosenWeight);
159
- (0, utils_1.assertDefined)(randomJSONRoom, `Failed to get a JSON room with chosen weight: ${chosenWeight}`);
152
+ assertDefined(randomJSONRoom, `Failed to get a JSON room with chosen weight: ${chosenWeight}`);
160
153
  return randomJSONRoom;
161
154
  }
162
155
  function getJSONObjectWithChosenWeight(jsonOjectArray, chosenWeight) {
@@ -164,7 +157,7 @@ function getJSONObjectWithChosenWeight(jsonOjectArray, chosenWeight) {
164
157
  for (const jsonObject of jsonOjectArray) {
165
158
  const weightString = jsonObject.$.weight;
166
159
  const weight = tonumber(weightString);
167
- (0, utils_1.assertDefined)(weight, `Failed to parse the weight of a JSON object: ${weightString}`);
160
+ assertDefined(weight, `Failed to parse the weight of a JSON object: ${weightString}`);
168
161
  weightAccumulator += weight;
169
162
  if (weightAccumulator >= chosenWeight) {
170
163
  return jsonObject;
@@ -176,8 +169,8 @@ function getTotalWeightOfJSONObject(jsonOjectArray) {
176
169
  const weights = jsonOjectArray.map((jsonObject) => {
177
170
  const weightString = jsonObject.$.weight;
178
171
  const weight = tonumber(weightString);
179
- (0, utils_1.assertDefined)(weight, `Failed to parse the weight of a JSON object: ${weightString}.`);
172
+ assertDefined(weight, `Failed to parse the weight of a JSON object: ${weightString}.`);
180
173
  return weight;
181
174
  });
182
- return (0, array_1.sumArray)(weights);
175
+ return sumArray(weights);
183
176
  }
@@ -1,23 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.copyKColor = copyKColor;
4
- exports.deserializeKColor = deserializeKColor;
5
- exports.getRandomKColor = getRandomKColor;
6
- exports.isKColor = isKColor;
7
- exports.isSerializedKColor = isSerializedKColor;
8
- exports.kColorEquals = kColorEquals;
9
- exports.serializeKColor = serializeKColor;
10
- const SerializationBrand_1 = require("../enums/private/SerializationBrand");
11
- const isaacAPIClass_1 = require("./isaacAPIClass");
12
- const random_1 = require("./random");
13
- const rng_1 = require("./rng");
14
- const table_1 = require("./table");
15
- const types_1 = require("./types");
16
- const utils_1 = require("./utils");
1
+ import { SerializationBrand } from "../enums/private/SerializationBrand";
2
+ import { isaacAPIClassEquals, isIsaacAPIClassOfType } from "./isaacAPIClass";
3
+ import { getRandom } from "./random";
4
+ import { isRNG, newRNG } from "./rng";
5
+ import { copyUserdataValuesToTable, getNumbersFromTable, tableHasKeys, } from "./table";
6
+ import { isTable } from "./types";
7
+ import { assertDefined } from "./utils";
17
8
  const OBJECT_NAME = "KColor";
18
9
  const KEYS = ["Red", "Green", "Blue", "Alpha"];
19
10
  /** Helper function to copy a `KColor` Isaac API class. */
20
- function copyKColor(kColor) {
11
+ export function copyKColor(kColor) {
21
12
  if (!isKColor(kColor)) {
22
13
  error(`Failed to copy a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
23
14
  }
@@ -27,15 +18,15 @@ function copyKColor(kColor) {
27
18
  * Helper function to convert a `SerializedKColor` object to a normal `KColor` object. (This is used
28
19
  * by the save data manager when reading data from the "save#.dat" file.)
29
20
  */
30
- function deserializeKColor(kColor) {
31
- if (!(0, types_1.isTable)(kColor)) {
21
+ export function deserializeKColor(kColor) {
22
+ if (!isTable(kColor)) {
32
23
  error(`Failed to deserialize a ${OBJECT_NAME} object since the provided object was not a Lua table.`);
33
24
  }
34
- const [r, g, b, a] = (0, table_1.getNumbersFromTable)(kColor, OBJECT_NAME, ...KEYS);
35
- (0, utils_1.assertDefined)(r, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Red`);
36
- (0, utils_1.assertDefined)(g, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Green`);
37
- (0, utils_1.assertDefined)(b, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Blue`);
38
- (0, utils_1.assertDefined)(a, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Alpha`);
25
+ const [r, g, b, a] = getNumbersFromTable(kColor, OBJECT_NAME, ...KEYS);
26
+ assertDefined(r, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Red`);
27
+ assertDefined(g, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Green`);
28
+ assertDefined(b, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Blue`);
29
+ assertDefined(a, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: Alpha`);
39
30
  return KColor(r, g, b, a);
40
31
  }
41
32
  /**
@@ -49,40 +40,40 @@ function deserializeKColor(kColor) {
49
40
  * a random seed.
50
41
  * @param alpha Optional. The alpha value to use. Default is 1.
51
42
  */
52
- function getRandomKColor(seedOrRNG, alpha = 1) {
53
- const rng = (0, rng_1.isRNG)(seedOrRNG) ? seedOrRNG : (0, rng_1.newRNG)(seedOrRNG);
54
- const r = (0, random_1.getRandom)(rng);
55
- const g = (0, random_1.getRandom)(rng);
56
- const b = (0, random_1.getRandom)(rng);
43
+ export function getRandomKColor(seedOrRNG, alpha = 1) {
44
+ const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
45
+ const r = getRandom(rng);
46
+ const g = getRandom(rng);
47
+ const b = getRandom(rng);
57
48
  return KColor(r, g, b, alpha);
58
49
  }
59
50
  /** Helper function to check if something is an instantiated `KColor` object. */
60
- function isKColor(object) {
61
- return (0, isaacAPIClass_1.isIsaacAPIClassOfType)(object, OBJECT_NAME);
51
+ export function isKColor(object) {
52
+ return isIsaacAPIClassOfType(object, OBJECT_NAME);
62
53
  }
63
54
  /**
64
55
  * Used to determine is the given table is a serialized `KColor` object created by the `deepCopy`
65
56
  * function.
66
57
  */
67
- function isSerializedKColor(object) {
68
- if (!(0, types_1.isTable)(object)) {
58
+ export function isSerializedKColor(object) {
59
+ if (!isTable(object)) {
69
60
  return false;
70
61
  }
71
- return ((0, table_1.tableHasKeys)(object, ...KEYS) && object.has(SerializationBrand_1.SerializationBrand.K_COLOR));
62
+ return (tableHasKeys(object, ...KEYS) && object.has(SerializationBrand.K_COLOR));
72
63
  }
73
- function kColorEquals(kColor1, kColor2) {
74
- return (0, isaacAPIClass_1.isaacAPIClassEquals)(kColor1, kColor2, KEYS);
64
+ export function kColorEquals(kColor1, kColor2) {
65
+ return isaacAPIClassEquals(kColor1, kColor2, KEYS);
75
66
  }
76
67
  /**
77
68
  * Helper function to convert a `KColor` object to a `SerializedKColor` object. (This is used by the
78
69
  * save data manager when writing data from the "save#.dat" file.)
79
70
  */
80
- function serializeKColor(kColor) {
71
+ export function serializeKColor(kColor) {
81
72
  if (!isKColor(kColor)) {
82
73
  error(`Failed to serialize a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
83
74
  }
84
75
  const kColorTable = new LuaMap();
85
- (0, table_1.copyUserdataValuesToTable)(kColor, KEYS, kColorTable);
86
- kColorTable.set(SerializationBrand_1.SerializationBrand.K_COLOR, "");
76
+ copyUserdataValuesToTable(kColor, KEYS, kColorTable);
77
+ kColorTable.set(SerializationBrand.K_COLOR, "");
87
78
  return kColorTable;
88
79
  }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLanguageName = getLanguageName;
4
- const languageNames_1 = require("../objects/languageNames");
1
+ import { LANGUAGE_NAMES } from "../objects/languageNames";
5
2
  /**
6
3
  * Helper function to convert the language abbreviation from `Options.Language` to the "full"
7
4
  * language name.
@@ -9,7 +6,7 @@ const languageNames_1 = require("../objects/languageNames");
9
6
  * For example, if the current language is set to Korean, `Options.Language` will be set to "kr",
10
7
  * and this function will return "Korean".
11
8
  */
12
- function getLanguageName() {
9
+ export function getLanguageName() {
13
10
  const languageAbbreviation = Options.Language;
14
- return languageNames_1.LANGUAGE_NAMES[languageAbbreviation];
11
+ return LANGUAGE_NAMES[languageAbbreviation];
15
12
  }
@@ -1,30 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fillLevelWithRedRooms = fillLevelWithRedRooms;
4
- exports.getLevelBossIDs = getLevelBossIDs;
5
- exports.levelHasBossID = levelHasBossID;
6
- exports.levelHasRoomType = levelHasRoomType;
7
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
8
- const cachedEnumValues_1 = require("../cachedEnumValues");
9
- const cachedClasses_1 = require("../core/cachedClasses");
10
- const array_1 = require("./array");
11
- const levelGrid_1 = require("./levelGrid");
12
- const rooms_1 = require("./rooms");
1
+ import { RoomType, StageID } from "isaac-typescript-definitions";
2
+ import { DOOR_SLOT_VALUES } from "../cachedEnumValues";
3
+ import { game } from "../core/cachedClasses";
4
+ import { filterMap } from "./array";
5
+ import { getRoomDescriptorsForType, isDoorSlotValidAtGridIndexForRedRoom, } from "./levelGrid";
6
+ import { getNumRooms, getRoomsInsideGrid } from "./rooms";
13
7
  /** Helper function to fill every possible level grid square with a red room. */
14
- function fillLevelWithRedRooms() {
15
- const level = cachedClasses_1.game.GetLevel();
8
+ export function fillLevelWithRedRooms() {
9
+ const level = game.GetLevel();
16
10
  let numRoomsInGrid;
17
11
  do {
18
- const roomsInGrid = (0, rooms_1.getRoomsInsideGrid)();
12
+ const roomsInGrid = getRoomsInsideGrid();
19
13
  numRoomsInGrid = roomsInGrid.length;
20
14
  for (const roomDescriptor of roomsInGrid) {
21
- for (const doorSlot of cachedEnumValues_1.DOOR_SLOT_VALUES) {
22
- if ((0, levelGrid_1.isDoorSlotValidAtGridIndexForRedRoom)(doorSlot, roomDescriptor.GridIndex)) {
15
+ for (const doorSlot of DOOR_SLOT_VALUES) {
16
+ if (isDoorSlotValidAtGridIndexForRedRoom(doorSlot, roomDescriptor.GridIndex)) {
23
17
  level.MakeRedRoomDoor(roomDescriptor.GridIndex, doorSlot);
24
18
  }
25
19
  }
26
20
  }
27
- } while (numRoomsInGrid !== (0, rooms_1.getNumRooms)());
21
+ } while (numRoomsInGrid !== getNumRooms());
28
22
  }
29
23
  /**
30
24
  * Helper function to get the boss IDs of all of the Boss Rooms on this floor. (This is equivalent
@@ -33,11 +27,11 @@ function fillLevelWithRedRooms() {
33
27
  * Note that this will only look at Boss Rooms inside of the grid, so e.g. Reverse Emperor card
34
28
  * rooms will not count.
35
29
  */
36
- function getLevelBossIDs() {
37
- const roomsInsideGrid = (0, rooms_1.getRoomsInsideGrid)();
38
- return (0, array_1.filterMap)(roomsInsideGrid, (roomDescriptor) => roomDescriptor.Data !== undefined
39
- && roomDescriptor.Data.Type === isaac_typescript_definitions_1.RoomType.BOSS
40
- && roomDescriptor.Data.StageID === isaac_typescript_definitions_1.StageID.SPECIAL_ROOMS
30
+ export function getLevelBossIDs() {
31
+ const roomsInsideGrid = getRoomsInsideGrid();
32
+ return filterMap(roomsInsideGrid, (roomDescriptor) => roomDescriptor.Data !== undefined
33
+ && roomDescriptor.Data.Type === RoomType.BOSS
34
+ && roomDescriptor.Data.StageID === StageID.SPECIAL_ROOMS
41
35
  ? roomDescriptor.Data.Subtype
42
36
  : undefined);
43
37
  }
@@ -47,7 +41,7 @@ function getLevelBossIDs() {
47
41
  * This function is variadic, meaning that you can pass as many boss IDs as you want to check for.
48
42
  * It will return true if one or more of the boss IDs are matched.
49
43
  */
50
- function levelHasBossID(...bossIDs) {
44
+ export function levelHasBossID(...bossIDs) {
51
45
  const levelBossIDs = getLevelBossIDs();
52
46
  const levelBossIDsSet = new Set(levelBossIDs);
53
47
  return bossIDs.some((bossID) => levelBossIDsSet.has(bossID));
@@ -59,7 +53,7 @@ function levelHasBossID(...bossIDs) {
59
53
  * This function is variadic, meaning that you can pass as many room types as you want to check for.
60
54
  * This function will return true if any of the room types are found.
61
55
  */
62
- function levelHasRoomType(...roomTypes) {
63
- const roomDescriptors = (0, levelGrid_1.getRoomDescriptorsForType)(...roomTypes);
56
+ export function levelHasRoomType(...roomTypes) {
57
+ const roomDescriptors = getRoomDescriptorsForType(...roomTypes);
64
58
  return roomDescriptors.length > 0;
65
59
  }