isaacscript-common 87.9.7 → 87.9.8

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 (563) 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/indexLua.js +151 -167
  387. package/dist/interfaces/ChargeBarSprites.js +1 -2
  388. package/dist/interfaces/Corner.js +1 -2
  389. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  390. package/dist/interfaces/GridEntityCustomData.js +1 -2
  391. package/dist/interfaces/JSONRoomsFile.js +1 -2
  392. package/dist/interfaces/PlayerHealth.js +1 -2
  393. package/dist/interfaces/PlayerStats.js +2 -4
  394. package/dist/interfaces/PocketItemDescription.js +1 -2
  395. package/dist/interfaces/RoomDescription.js +1 -2
  396. package/dist/interfaces/SaveData.js +1 -2
  397. package/dist/interfaces/StageHistoryEntry.js +1 -2
  398. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  399. package/dist/interfaces/TrinketSituation.js +1 -2
  400. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  401. package/dist/interfaces/private/CustomStage.js +1 -2
  402. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  403. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  404. package/dist/isaacscript-common.lua +1 -1
  405. package/dist/maps/PHDPillConversionsMap.js +19 -22
  406. package/dist/maps/cardNameToTypeMap.js +205 -208
  407. package/dist/maps/characterNameToTypeMap.js +85 -88
  408. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  409. package/dist/maps/defaultPlayerStatMap.js +10 -13
  410. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  411. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  412. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  413. package/dist/maps/gridEntityXMLMap.js +52 -55
  414. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  415. package/dist/maps/keyboardToStringMap.js +66 -69
  416. package/dist/maps/pillNameToEffectMap.js +83 -86
  417. package/dist/maps/roomNameToTypeMap.js +38 -41
  418. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  419. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  420. package/dist/maps/trinketNameToTypeMap.js +5 -8
  421. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  422. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  423. package/dist/objects/batteryNames.js +8 -11
  424. package/dist/objects/bombNames.js +11 -14
  425. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  426. package/dist/objects/bossNamePNGFileNames.js +104 -107
  427. package/dist/objects/bossNames.js +105 -108
  428. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  429. package/dist/objects/cardDescriptions.js +101 -104
  430. package/dist/objects/cardNames.js +101 -104
  431. package/dist/objects/challengeBosses.js +49 -52
  432. package/dist/objects/challengeCharacters.js +49 -52
  433. package/dist/objects/challengeCollectibleTypes.js +160 -163
  434. package/dist/objects/challengeNames.js +49 -52
  435. package/dist/objects/challengeTrinketType.js +48 -51
  436. package/dist/objects/characterDamageMultipliers.js +44 -47
  437. package/dist/objects/characterNames.js +44 -47
  438. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  439. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  440. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  441. package/dist/objects/chestNames.js +15 -18
  442. package/dist/objects/coinNames.js +11 -14
  443. package/dist/objects/coinSubTypeToValue.js +11 -14
  444. package/dist/objects/collectibleDescriptions.js +725 -728
  445. package/dist/objects/collectibleNames.js +725 -728
  446. package/dist/objects/colors.js +1 -4
  447. package/dist/objects/directionNames.js +7 -10
  448. package/dist/objects/directionToDegrees.js +7 -10
  449. package/dist/objects/directionToMoveAction.js +7 -10
  450. package/dist/objects/directionToShootAction.js +7 -10
  451. package/dist/objects/directionToVector.js +9 -12
  452. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  453. package/dist/objects/doorSlotToDirection.js +11 -14
  454. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  455. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  456. package/dist/objects/heartNames.js +16 -19
  457. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  458. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  459. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  460. package/dist/objects/kColors.js +1 -4
  461. package/dist/objects/keyNames.js +8 -11
  462. package/dist/objects/languageNames.js +9 -12
  463. package/dist/objects/oppositeDoorSlots.js +11 -14
  464. package/dist/objects/pillEffectClasses.js +53 -56
  465. package/dist/objects/pillEffectNames.js +53 -56
  466. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  467. package/dist/objects/pillEffectTypes.js +53 -56
  468. package/dist/objects/playerNamePNGFileNames.js +44 -47
  469. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  470. package/dist/objects/roomShapeBounds.js +23 -26
  471. package/dist/objects/roomShapeCorners.js +128 -131
  472. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  473. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  474. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  475. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  476. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  477. package/dist/objects/roomShapeToGridWidth.js +14 -17
  478. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  479. package/dist/objects/roomShapeVolumes.js +21 -24
  480. package/dist/objects/roomTypeNames.js +32 -35
  481. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  482. package/dist/objects/sackNames.js +6 -9
  483. package/dist/objects/slotNames.js +21 -24
  484. package/dist/objects/stageIDNames.js +33 -36
  485. package/dist/objects/stageToMusic.js +69 -72
  486. package/dist/objects/stageToStageID.js +90 -93
  487. package/dist/objects/stageTypeSuffixes.js +8 -11
  488. package/dist/objects/transformationNames.js +16 -19
  489. package/dist/objects/trinketDescriptions.js +192 -195
  490. package/dist/objects/trinketNames.js +192 -195
  491. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  492. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  493. package/dist/patchErrorFunctions.js +4 -7
  494. package/dist/serialization.js +6 -9
  495. package/dist/sets/LRoomShapesSet.js +7 -10
  496. package/dist/sets/bigRoomShapesSet.js +10 -13
  497. package/dist/sets/bossSets.js +261 -264
  498. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  499. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  500. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  501. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  502. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  503. package/dist/sets/consoleCommandsSet.js +2 -5
  504. package/dist/sets/entitiesWithArmorSet.js +44 -47
  505. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  506. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  507. package/dist/sets/lostStyleCharactersSet.js +8 -11
  508. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  509. package/dist/sets/narrowRoomShapesSet.js +7 -10
  510. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  511. package/dist/sets/redHeartSubTypesSet.js +6 -9
  512. package/dist/sets/repentanceBossIDsSet.js +26 -29
  513. package/dist/sets/sinEntityTypesSet.js +10 -13
  514. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  515. package/dist/shaderCrashFix.js +4 -7
  516. package/dist/shouldFire.js +28 -58
  517. package/dist/types/AddSubtract.js +1 -2
  518. package/dist/types/AllButFirst.js +1 -2
  519. package/dist/types/AllButLast.js +1 -2
  520. package/dist/types/AnyClass.js +1 -2
  521. package/dist/types/AnyEntity.js +1 -2
  522. package/dist/types/AnyFunction.js +1 -2
  523. package/dist/types/AnyGridEntity.js +1 -2
  524. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  525. package/dist/types/ConversionHeartSubType.js +1 -2
  526. package/dist/types/Decrement.js +1 -2
  527. package/dist/types/ERange.js +1 -2
  528. package/dist/types/EntityID.js +1 -2
  529. package/dist/types/FunctionTuple.js +1 -2
  530. package/dist/types/GridEntityID.js +1 -2
  531. package/dist/types/HasFunction.js +1 -2
  532. package/dist/types/IRange.js +1 -2
  533. package/dist/types/Immutable.js +1 -2
  534. package/dist/types/Increment.js +1 -2
  535. package/dist/types/LowercaseKeys.js +1 -2
  536. package/dist/types/NaturalNumbersLessThan.js +1 -2
  537. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  538. package/dist/types/ObjectValues.js +1 -2
  539. package/dist/types/PickingUpItem.js +15 -22
  540. package/dist/types/PickupIndex.js +1 -2
  541. package/dist/types/PlayerIndex.js +1 -2
  542. package/dist/types/PossibleStatType.js +1 -2
  543. package/dist/types/PublicInterface.js +1 -2
  544. package/dist/types/ReadonlyMap.js +1 -4
  545. package/dist/types/ReadonlyRecord.js +1 -2
  546. package/dist/types/ReadonlySet.js +1 -4
  547. package/dist/types/StartsWithLowercase.js +1 -2
  548. package/dist/types/StartsWithUppercase.js +1 -2
  549. package/dist/types/TSTLClass.js +1 -2
  550. package/dist/types/Tuple.js +1 -2
  551. package/dist/types/TupleKeys.js +1 -2
  552. package/dist/types/TupleToIntersection.js +1 -2
  553. package/dist/types/TupleToUnion.js +1 -2
  554. package/dist/types/TupleWithLengthBetween.js +1 -2
  555. package/dist/types/TupleWithMaxLength.js +1 -2
  556. package/dist/types/UnionToIntersection.js +1 -2
  557. package/dist/types/UppercaseKeys.js +1 -2
  558. package/dist/types/WeightedArray.js +1 -2
  559. package/dist/types/WidenLiteral.js +1 -2
  560. package/dist/types/Writable.js +1 -2
  561. package/dist/types/private/CallbackTuple.js +1 -2
  562. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  563. package/package.json +3 -3
@@ -1,76 +1,40 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
6
  };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.CustomStages = void 0;
43
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
44
- const cachedClasses_1 = require("../../../core/cachedClasses");
45
- const metadataJSON = __importStar(require("../../../customStageMetadata.json")); // This will correspond to "customStageMetadata.lua" at run-time.
46
- const decorators_1 = require("../../../decorators");
47
- const ISCFeature_1 = require("../../../enums/ISCFeature");
48
- const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
49
- const array_1 = require("../../../functions/array");
50
- const doors_1 = require("../../../functions/doors");
51
- const flag_1 = require("../../../functions/flag");
52
- const log_1 = require("../../../functions/log");
53
- const rng_1 = require("../../../functions/rng");
54
- const rockAlt_1 = require("../../../functions/rockAlt");
55
- const rooms_1 = require("../../../functions/rooms");
56
- const sound_1 = require("../../../functions/sound");
57
- const stage_1 = require("../../../functions/stage");
58
- const utils_1 = require("../../../functions/utils");
59
- const Feature_1 = require("../../private/Feature");
60
- const backdrop_1 = require("./customStages/backdrop");
61
- const constants_1 = require("./customStages/constants");
62
- const gridEntities_1 = require("./customStages/gridEntities");
63
- const shadows_1 = require("./customStages/shadows");
64
- const streakText_1 = require("./customStages/streakText");
65
- const utils_2 = require("./customStages/utils");
66
- const v_1 = require("./customStages/v");
67
- const versusScreen_1 = require("./customStages/versusScreen");
7
+ import { CollectibleType, GridEntityType, LevelCurse, LevelStage, ModCallback, RoomShape, RoomType, StageType, } from "isaac-typescript-definitions";
8
+ import { game, musicManager } from "../../../core/cachedClasses";
9
+ import * as metadataJSON from "../../../customStageMetadata.json"; // This will correspond to "customStageMetadata.lua" at run-time.
10
+ import { Exported } from "../../../decorators";
11
+ import { ISCFeature } from "../../../enums/ISCFeature";
12
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
13
+ import { isArray } from "../../../functions/array";
14
+ import { doorSlotsToDoorSlotFlags, getDoorSlotsForRoomShape, } from "../../../functions/doors";
15
+ import { hasFlag, removeFlag } from "../../../functions/flag";
16
+ import { logError } from "../../../functions/log";
17
+ import { newRNG } from "../../../functions/rng";
18
+ import { removeUrnRewards } from "../../../functions/rockAlt";
19
+ import { getRoomDataForTypeVariant, getRoomsInsideGrid, inRoomType, } from "../../../functions/rooms";
20
+ import { getMusicForStage } from "../../../functions/sound";
21
+ import { setStage } from "../../../functions/stage";
22
+ import { assertDefined } from "../../../functions/utils";
23
+ import { Feature } from "../../private/Feature";
24
+ import { setCustomStageBackdrop } from "./customStages/backdrop";
25
+ import { CUSTOM_FLOOR_STAGE, CUSTOM_FLOOR_STAGE_TYPE, DEFAULT_BASE_STAGE, DEFAULT_BASE_STAGE_TYPE, } from "./customStages/constants";
26
+ import { convertVanillaTrapdoors, setCustomDecorationGraphics, setCustomDoorGraphics, setCustomPitGraphics, setCustomRockGraphics, } from "./customStages/gridEntities";
27
+ import { setShadows } from "./customStages/shadows";
28
+ import { streakTextGetShaderParams, streakTextPostRender, topStreakTextStart, } from "./customStages/streakText";
29
+ import { getRandomBossRoomFromPool, getRandomCustomStageRoom, } from "./customStages/utils";
30
+ import { v } from "./customStages/v";
31
+ import { playVersusScreenAnimation, versusScreenPostRender, } from "./customStages/versusScreen";
68
32
  /**
69
33
  * 60 does not work correctly (the music kicking in from stage -1 will mute it), so we use 70 to be
70
34
  * safe.
71
35
  */
72
36
  const MUSIC_DELAY_RENDER_FRAMES = 70;
73
- class CustomStages extends Feature_1.Feature {
37
+ export class CustomStages extends Feature {
74
38
  /** Indexed by custom stage name. */
75
39
  customStagesMap = new Map();
76
40
  /** Indexed by room variant. */
@@ -83,26 +47,26 @@ class CustomStages extends Feature_1.Feature {
83
47
  pause;
84
48
  runInNFrames;
85
49
  goToCustomStage = (destinationName, destinationStage, _destinationStageType) => {
86
- (0, utils_1.assertDefined)(destinationName, "Failed to go to a custom stage since the custom trapdoors feature did not pass a destination name to the logic function.");
87
- const firstFloor = destinationStage === isaac_typescript_definitions_1.LevelStage.BASEMENT_1;
50
+ assertDefined(destinationName, "Failed to go to a custom stage since the custom trapdoors feature did not pass a destination name to the logic function.");
51
+ const firstFloor = destinationStage === LevelStage.BASEMENT_1;
88
52
  this.setCustomStage(destinationName, firstFloor);
89
53
  };
90
54
  // ModCallback.POST_RENDER (2)
91
55
  postRender = () => {
92
- const customStage = v_1.v.run.currentCustomStage;
56
+ const customStage = v.run.currentCustomStage;
93
57
  if (customStage === null) {
94
58
  return;
95
59
  }
96
- (0, streakText_1.streakTextPostRender)();
97
- (0, versusScreen_1.versusScreenPostRender)(this.pause, this.disableAllSound);
60
+ streakTextPostRender();
61
+ versusScreenPostRender(this.pause, this.disableAllSound);
98
62
  // Fix the bug where the music will stop after loading a new room. (This does not work if placed
99
63
  // in the `POST_NEW_ROOM_REORDERED` callback or the `POST_UPDATE` callback.)
100
64
  if (customStage.music !== undefined) {
101
- const currentMusic = cachedClasses_1.musicManager.GetCurrentMusicID();
65
+ const currentMusic = musicManager.GetCurrentMusicID();
102
66
  const music = Isaac.GetMusicIdByName(customStage.music);
103
67
  if (currentMusic === music) {
104
- cachedClasses_1.musicManager.Resume();
105
- cachedClasses_1.musicManager.UpdateVolume();
68
+ musicManager.Resume();
69
+ musicManager.UpdateVolume();
106
70
  }
107
71
  }
108
72
  };
@@ -112,7 +76,7 @@ class CustomStages extends Feature_1.Feature {
112
76
  */
113
77
  // ModCallback.POST_USE_ITEM (3)
114
78
  postUseItemRedKey = () => {
115
- const customStage = v_1.v.run.currentCustomStage;
79
+ const customStage = v.run.currentCustomStage;
116
80
  if (customStage === null) {
117
81
  return undefined;
118
82
  }
@@ -120,29 +84,29 @@ class CustomStages extends Feature_1.Feature {
120
84
  return undefined;
121
85
  }
122
86
  this.usingRedKey = false;
123
- const level = cachedClasses_1.game.GetLevel();
124
- level.SetStage(constants_1.CUSTOM_FLOOR_STAGE, constants_1.CUSTOM_FLOOR_STAGE_TYPE);
87
+ const level = game.GetLevel();
88
+ level.SetStage(CUSTOM_FLOOR_STAGE, CUSTOM_FLOOR_STAGE_TYPE);
125
89
  return undefined;
126
90
  };
127
91
  // ModCallback.POST_CURSE_EVAL (12)
128
92
  postCurseEval = (curses) => {
129
- const customStage = v_1.v.run.currentCustomStage;
93
+ const customStage = v.run.currentCustomStage;
130
94
  if (customStage === null) {
131
95
  return undefined;
132
96
  }
133
97
  // Prevent XL floors on custom stages, since the streak text will not work properly.
134
- if ((0, flag_1.hasFlag)(curses, isaac_typescript_definitions_1.LevelCurse.LABYRINTH)) {
135
- return (0, flag_1.removeFlag)(curses, isaac_typescript_definitions_1.LevelCurse.LABYRINTH);
98
+ if (hasFlag(curses, LevelCurse.LABYRINTH)) {
99
+ return removeFlag(curses, LevelCurse.LABYRINTH);
136
100
  }
137
101
  return undefined;
138
102
  };
139
103
  // ModCallback.GET_SHADER_PARAMS (22)
140
104
  getShaderParams = (shaderName) => {
141
- const customStage = v_1.v.run.currentCustomStage;
105
+ const customStage = v.run.currentCustomStage;
142
106
  if (customStage === null) {
143
107
  return undefined;
144
108
  }
145
- (0, streakText_1.streakTextGetShaderParams)(customStage, shaderName);
109
+ streakTextGetShaderParams(customStage, shaderName);
146
110
  return undefined;
147
111
  };
148
112
  /**
@@ -151,21 +115,21 @@ class CustomStages extends Feature_1.Feature {
151
115
  */
152
116
  // ModCallback.PRE_USE_ITEM (23)
153
117
  preUseItemRedKey = () => {
154
- const customStage = v_1.v.run.currentCustomStage;
118
+ const customStage = v.run.currentCustomStage;
155
119
  if (customStage === null) {
156
120
  return undefined;
157
121
  }
158
122
  this.usingRedKey = true;
159
- const level = cachedClasses_1.game.GetLevel();
160
- const stage = customStage.baseStage ?? constants_1.DEFAULT_BASE_STAGE;
161
- const stageType = customStage.baseStageType ?? constants_1.DEFAULT_BASE_STAGE_TYPE;
123
+ const level = game.GetLevel();
124
+ const stage = customStage.baseStage ?? DEFAULT_BASE_STAGE;
125
+ const stageType = customStage.baseStageType ?? DEFAULT_BASE_STAGE_TYPE;
162
126
  level.SetStage(stage, stageType); // eslint-disable-line complete/strict-enums
163
127
  return undefined;
164
128
  };
165
129
  // ModCallbackCustom.POST_GRID_ENTITY_BROKEN
166
130
  // GridEntityType.ROCK_ALT
167
131
  postGridEntityBrokenRockAlt = (gridEntity) => {
168
- const customStage = v_1.v.run.currentCustomStage;
132
+ const customStage = v.run.currentCustomStage;
169
133
  if (customStage === null) {
170
134
  return;
171
135
  }
@@ -176,11 +140,11 @@ class CustomStages extends Feature_1.Feature {
176
140
  }
177
141
  // On the bugged stage of -1, only urns will spawn, so we do not have to handle the case of
178
142
  // mushroom rewards, skull rewards, and so on.
179
- (0, rockAlt_1.removeUrnRewards)(gridEntity);
143
+ removeUrnRewards(gridEntity);
180
144
  };
181
145
  // ModCallbackCustom.POST_GRID_ENTITY_INIT
182
146
  postGridEntityInit = (gridEntity) => {
183
- const customStage = v_1.v.run.currentCustomStage;
147
+ const customStage = v.run.currentCustomStage;
184
148
  if (customStage === null) {
185
149
  return;
186
150
  }
@@ -188,72 +152,72 @@ class CustomStages extends Feature_1.Feature {
188
152
  if (this.customGridEntities.isCustomGridEntity(gridEntity)) {
189
153
  return;
190
154
  }
191
- (0, gridEntities_1.setCustomDecorationGraphics)(customStage, gridEntity);
192
- (0, gridEntities_1.setCustomRockGraphics)(customStage, gridEntity);
193
- (0, gridEntities_1.setCustomPitGraphics)(customStage, gridEntity);
194
- (0, gridEntities_1.setCustomDoorGraphics)(customStage, gridEntity);
195
- (0, gridEntities_1.convertVanillaTrapdoors)(customStage, gridEntity, v_1.v.run.firstFloor, this.customTrapdoors);
155
+ setCustomDecorationGraphics(customStage, gridEntity);
156
+ setCustomRockGraphics(customStage, gridEntity);
157
+ setCustomPitGraphics(customStage, gridEntity);
158
+ setCustomDoorGraphics(customStage, gridEntity);
159
+ convertVanillaTrapdoors(customStage, gridEntity, v.run.firstFloor, this.customTrapdoors);
196
160
  };
197
161
  // ModCallbackCustom.POST_NEW_ROOM_REORDERED
198
162
  postNewRoomReordered = () => {
199
- const customStage = v_1.v.run.currentCustomStage;
163
+ const customStage = v.run.currentCustomStage;
200
164
  if (customStage === null) {
201
165
  return;
202
166
  }
203
- (0, backdrop_1.setCustomStageBackdrop)(customStage);
204
- (0, shadows_1.setShadows)(customStage);
205
- (0, versusScreen_1.playVersusScreenAnimation)(customStage, this.disableAllSound, this.pause, this.runInNFrames);
167
+ setCustomStageBackdrop(customStage);
168
+ setShadows(customStage);
169
+ playVersusScreenAnimation(customStage, this.disableAllSound, this.pause, this.runInNFrames);
206
170
  // Fix the bug where music from special rooms (like the "Boss Over" music) will persist for the
207
171
  // rest of the floor.
208
- if (customStage.music !== undefined && (0, rooms_1.inRoomType)(isaac_typescript_definitions_1.RoomType.DEFAULT)) {
172
+ if (customStage.music !== undefined && inRoomType(RoomType.DEFAULT)) {
209
173
  const music = Isaac.GetMusicIdByName(customStage.music);
210
- const currentMusic = cachedClasses_1.musicManager.GetCurrentMusicID();
174
+ const currentMusic = musicManager.GetCurrentMusicID();
211
175
  if (currentMusic !== music) {
212
- cachedClasses_1.musicManager.Fadein(music);
176
+ musicManager.Fadein(music);
213
177
  }
214
178
  }
215
179
  };
216
180
  /** @internal */
217
- v = v_1.v;
181
+ v = v;
218
182
  /** @internal */
219
183
  constructor(customGridEntities, customTrapdoors, disableAllSound, gameReorderedCallbacks, pause, runInNFrames) {
220
184
  super();
221
185
  this.featuresUsed = [
222
- ISCFeature_1.ISCFeature.CUSTOM_GRID_ENTITIES,
223
- ISCFeature_1.ISCFeature.CUSTOM_TRAPDOORS,
224
- ISCFeature_1.ISCFeature.DISABLE_ALL_SOUND,
225
- ISCFeature_1.ISCFeature.GAME_REORDERED_CALLBACKS,
226
- ISCFeature_1.ISCFeature.PAUSE,
227
- ISCFeature_1.ISCFeature.RUN_IN_N_FRAMES,
186
+ ISCFeature.CUSTOM_GRID_ENTITIES,
187
+ ISCFeature.CUSTOM_TRAPDOORS,
188
+ ISCFeature.DISABLE_ALL_SOUND,
189
+ ISCFeature.GAME_REORDERED_CALLBACKS,
190
+ ISCFeature.PAUSE,
191
+ ISCFeature.RUN_IN_N_FRAMES,
228
192
  ];
229
193
  this.callbacksUsed = [
230
194
  // 2
231
- [isaac_typescript_definitions_1.ModCallback.POST_RENDER, this.postRender],
195
+ [ModCallback.POST_RENDER, this.postRender],
232
196
  // 3
233
197
  [
234
- isaac_typescript_definitions_1.ModCallback.POST_USE_ITEM,
198
+ ModCallback.POST_USE_ITEM,
235
199
  this.postUseItemRedKey,
236
- [isaac_typescript_definitions_1.CollectibleType.RED_KEY],
200
+ [CollectibleType.RED_KEY],
237
201
  ],
238
202
  // 12
239
- [isaac_typescript_definitions_1.ModCallback.POST_CURSE_EVAL, this.postCurseEval],
203
+ [ModCallback.POST_CURSE_EVAL, this.postCurseEval],
240
204
  // 21
241
- [isaac_typescript_definitions_1.ModCallback.GET_SHADER_PARAMS, this.getShaderParams],
205
+ [ModCallback.GET_SHADER_PARAMS, this.getShaderParams],
242
206
  // 23
243
207
  [
244
- isaac_typescript_definitions_1.ModCallback.PRE_USE_ITEM,
208
+ ModCallback.PRE_USE_ITEM,
245
209
  this.preUseItemRedKey,
246
- [isaac_typescript_definitions_1.CollectibleType.RED_KEY],
210
+ [CollectibleType.RED_KEY],
247
211
  ],
248
212
  ];
249
213
  this.customCallbacksUsed = [
250
214
  [
251
- ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_BROKEN,
215
+ ModCallbackCustom.POST_GRID_ENTITY_BROKEN,
252
216
  this.postGridEntityBrokenRockAlt,
253
- [isaac_typescript_definitions_1.GridEntityType.ROCK_ALT],
217
+ [GridEntityType.ROCK_ALT],
254
218
  ],
255
- [ModCallbackCustom_1.ModCallbackCustom.POST_GRID_ENTITY_INIT, this.postGridEntityInit],
256
- [ModCallbackCustom_1.ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
219
+ [ModCallbackCustom.POST_GRID_ENTITY_INIT, this.postGridEntityInit],
220
+ [ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
257
221
  ];
258
222
  this.customGridEntities = customGridEntities;
259
223
  this.customTrapdoors = customTrapdoors;
@@ -264,7 +228,7 @@ class CustomStages extends Feature_1.Feature {
264
228
  this.initCustomStageMetadata();
265
229
  }
266
230
  initCustomStageMetadata() {
267
- if (!(0, array_1.isArray)(metadataJSON)) {
231
+ if (!isArray(metadataJSON)) {
268
232
  error('The IsaacScript standard library attempted to read the custom stage metadata from the "customStageMetadata.lua" file, but it was not an array.');
269
233
  }
270
234
  const customStagesLua = metadataJSON;
@@ -286,9 +250,9 @@ class CustomStages extends Feature_1.Feature {
286
250
  }
287
251
  /** Pick a custom room for each vanilla room. */
288
252
  setStageRoomsData(customStage, rng, verbose) {
289
- const level = cachedClasses_1.game.GetLevel();
253
+ const level = game.GetLevel();
290
254
  const startingRoomGridIndex = level.GetStartingRoomIndex();
291
- for (const room of (0, rooms_1.getRoomsInsideGrid)()) {
255
+ for (const room of getRoomsInsideGrid()) {
292
256
  // The starting floor of each room should stay empty.
293
257
  if (room.SafeGridIndex === startingRoomGridIndex) {
294
258
  continue;
@@ -301,15 +265,15 @@ class CustomStages extends Feature_1.Feature {
301
265
  if (roomShapeMap === undefined) {
302
266
  // Only show errors for non-default room types. (We do not require that end-users provide
303
267
  // custom rooms for shops and other special rooms inside of their XML file.)
304
- if (roomType === isaac_typescript_definitions_1.RoomType.DEFAULT) {
305
- (0, log_1.logError)(`Failed to find any custom rooms for RoomType.${isaac_typescript_definitions_1.RoomType[roomType]} (${roomType}) for custom stage: ${customStage.name}`);
268
+ if (roomType === RoomType.DEFAULT) {
269
+ logError(`Failed to find any custom rooms for RoomType.${RoomType[roomType]} (${roomType}) for custom stage: ${customStage.name}`);
306
270
  }
307
271
  continue;
308
272
  }
309
273
  const roomShape = room.Data.Shape;
310
274
  const roomDoorSlotFlagMap = roomShapeMap.get(roomShape);
311
275
  if (roomDoorSlotFlagMap === undefined) {
312
- (0, log_1.logError)(`Failed to find any custom rooms for RoomType.${isaac_typescript_definitions_1.RoomType[roomType]} (${roomType}) + RoomShape.${isaac_typescript_definitions_1.RoomShape[roomShape]} (${roomShape}) for custom stage: ${customStage.name}`);
276
+ logError(`Failed to find any custom rooms for RoomType.${RoomType[roomType]} (${roomType}) + RoomShape.${RoomShape[roomShape]} (${roomShape}) for custom stage: ${customStage.name}`);
313
277
  continue;
314
278
  }
315
279
  const doorSlotFlags = room.Data.Doors;
@@ -318,31 +282,31 @@ class CustomStages extends Feature_1.Feature {
318
282
  // The custom stage does not have any rooms for the specific room type + room shape + door
319
283
  // slot combination. As a fallback, check to see if the custom stage has one or more rooms
320
284
  // for this specific room type + room shape + all doors.
321
- const allDoorSlots = (0, doors_1.getDoorSlotsForRoomShape)(roomShape);
322
- const allDoorSlotFlags = (0, doors_1.doorSlotsToDoorSlotFlags)(allDoorSlots);
285
+ const allDoorSlots = getDoorSlotsForRoomShape(roomShape);
286
+ const allDoorSlotFlags = doorSlotsToDoorSlotFlags(allDoorSlots);
323
287
  roomsMetadata = roomDoorSlotFlagMap.get(allDoorSlotFlags);
324
288
  if (roomsMetadata === undefined) {
325
- (0, log_1.logError)(`Failed to find any custom rooms for RoomType.${isaac_typescript_definitions_1.RoomType[roomType]} (${roomType}) + RoomShape.${isaac_typescript_definitions_1.RoomShape[roomShape]} (${roomShape}) + all doors enabled for custom stage: ${customStage.name}`);
289
+ logError(`Failed to find any custom rooms for RoomType.${RoomType[roomType]} (${roomType}) + RoomShape.${RoomShape[roomShape]} (${roomShape}) + all doors enabled for custom stage: ${customStage.name}`);
326
290
  continue;
327
291
  }
328
292
  }
329
293
  let randomRoom;
330
- if (roomType === isaac_typescript_definitions_1.RoomType.BOSS) {
294
+ if (roomType === RoomType.BOSS) {
331
295
  if (customStage.bossPool === undefined) {
332
296
  continue;
333
297
  }
334
- randomRoom = (0, utils_2.getRandomBossRoomFromPool)(roomsMetadata, customStage.bossPool, rng, verbose);
298
+ randomRoom = getRandomBossRoomFromPool(roomsMetadata, customStage.bossPool, rng, verbose);
335
299
  }
336
300
  else {
337
- randomRoom = (0, utils_2.getRandomCustomStageRoom)(roomsMetadata, rng, verbose);
301
+ randomRoom = getRandomCustomStageRoom(roomsMetadata, rng, verbose);
338
302
  }
339
303
  let newRoomData = this.customStageCachedRoomData.get(randomRoom.variant);
340
304
  if (newRoomData === undefined) {
341
305
  // We do not already have the room data for this room cached.
342
- newRoomData = (0, rooms_1.getRoomDataForTypeVariant)(roomType, randomRoom.variant, false, // Since we are going to multiple rooms, we cancel the transition.
306
+ newRoomData = getRoomDataForTypeVariant(roomType, randomRoom.variant, false, // Since we are going to multiple rooms, we cancel the transition.
343
307
  true);
344
308
  if (newRoomData === undefined) {
345
- (0, log_1.logError)(`Failed to get the room data for room variant ${randomRoom.variant} for custom stage: ${customStage.name}`);
309
+ logError(`Failed to get the room data for room variant ${randomRoom.variant} for custom stage: ${customStage.name}`);
346
310
  continue;
347
311
  }
348
312
  this.customStageCachedRoomData.set(randomRoom.variant, newRoomData);
@@ -370,39 +334,39 @@ class CustomStages extends Feature_1.Feature {
370
334
  */
371
335
  setCustomStage(name, firstFloor = true, streakText = true, verbose = false) {
372
336
  const customStage = this.customStagesMap.get(name);
373
- (0, utils_1.assertDefined)(customStage, `Failed to set the custom stage of "${name}" because it was not found in the custom stages map. (Try restarting IsaacScript / recompiling the mod / restarting the game, and try again. If that does not work, you probably forgot to define it in your "tsconfig.json" file.) See the website for more details on how to set up custom stages.`);
374
- const level = cachedClasses_1.game.GetLevel();
337
+ assertDefined(customStage, `Failed to set the custom stage of "${name}" because it was not found in the custom stages map. (Try restarting IsaacScript / recompiling the mod / restarting the game, and try again. If that does not work, you probably forgot to define it in your "tsconfig.json" file.) See the website for more details on how to set up custom stages.`);
338
+ const level = game.GetLevel();
375
339
  const stage = level.GetStage();
376
- const seeds = cachedClasses_1.game.GetSeeds();
340
+ const seeds = game.GetSeeds();
377
341
  const startSeed = seeds.GetStartSeed();
378
- const rng = (0, rng_1.newRNG)(startSeed);
379
- v_1.v.run.currentCustomStage = customStage;
380
- v_1.v.run.firstFloor = firstFloor;
342
+ const rng = newRNG(startSeed);
343
+ v.run.currentCustomStage = customStage;
344
+ v.run.firstFloor = firstFloor;
381
345
  // Before changing the stage, we have to revert the bugged stage, if necessary. This prevents
382
346
  // the bug where the backdrop will not spawn.
383
- if (stage === constants_1.CUSTOM_FLOOR_STAGE) {
384
- level.SetStage(isaac_typescript_definitions_1.LevelStage.BASEMENT_1, isaac_typescript_definitions_1.StageType.ORIGINAL);
347
+ if (stage === CUSTOM_FLOOR_STAGE) {
348
+ level.SetStage(LevelStage.BASEMENT_1, StageType.ORIGINAL);
385
349
  }
386
350
  let baseStage = customStage.baseStage === undefined
387
- ? constants_1.DEFAULT_BASE_STAGE
351
+ ? DEFAULT_BASE_STAGE
388
352
  : // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
389
353
  customStage.baseStage;
390
354
  if (!firstFloor) {
391
355
  baseStage++; // eslint-disable-line complete/strict-enums
392
356
  }
393
357
  const baseStageType = customStage.baseStageType === undefined
394
- ? constants_1.DEFAULT_BASE_STAGE_TYPE
358
+ ? DEFAULT_BASE_STAGE_TYPE
395
359
  : // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
396
360
  customStage.baseStageType;
397
361
  const reseed = stage >= baseStage;
398
- (0, stage_1.setStage)(baseStage, baseStageType, reseed);
362
+ setStage(baseStage, baseStageType, reseed);
399
363
  // As soon as we warp to the base stage, the base stage music will begin to play. Thus, we
400
364
  // temporarily mute all music.
401
- cachedClasses_1.musicManager.Disable();
365
+ musicManager.Disable();
402
366
  this.setStageRoomsData(customStage, rng, verbose);
403
367
  // Set the stage to an invalid value, which will prevent the walls and floors from loading.
404
- const targetStage = constants_1.CUSTOM_FLOOR_STAGE;
405
- const targetStageType = constants_1.CUSTOM_FLOOR_STAGE_TYPE;
368
+ const targetStage = CUSTOM_FLOOR_STAGE;
369
+ const targetStageType = CUSTOM_FLOOR_STAGE_TYPE;
406
370
  level.SetStage(targetStage, targetStageType);
407
371
  this.gameReorderedCallbacks.reorderedCallbacksSetStage(targetStage, targetStageType);
408
372
  // In vanilla, the streak text appears about when the pixelation has faded and while Isaac is
@@ -411,7 +375,7 @@ class CustomStages extends Feature_1.Feature {
411
375
  // `POST_RENDER` callback. Thus, we run it on the next game frame as a workaround.
412
376
  if (streakText) {
413
377
  this.runInNFrames.runNextGameFrame(() => {
414
- (0, streakText_1.topStreakTextStart)();
378
+ topStreakTextStart();
415
379
  });
416
380
  }
417
381
  // The bugged stage will not have any music associated with it, so we must manually start to
@@ -421,16 +385,16 @@ class CustomStages extends Feature_1.Feature {
421
385
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
422
386
  customStageMusic = Isaac.GetMusicIdByName(customStage.music);
423
387
  if (customStageMusic === -1) {
424
- (0, log_1.logError)(`Failed to get the music ID associated with the name of: ${customStage.music}`);
388
+ logError(`Failed to get the music ID associated with the name of: ${customStage.music}`);
425
389
  }
426
390
  }
427
391
  const music = customStageMusic === undefined || customStageMusic === -1
428
- ? (0, sound_1.getMusicForStage)(baseStage, baseStageType)
392
+ ? getMusicForStage(baseStage, baseStageType)
429
393
  : customStageMusic;
430
394
  this.runInNFrames.runInNRenderFrames(() => {
431
- cachedClasses_1.musicManager.Enable();
432
- cachedClasses_1.musicManager.Play(music);
433
- cachedClasses_1.musicManager.UpdateVolume();
395
+ musicManager.Enable();
396
+ musicManager.Play(music);
397
+ musicManager.UpdateVolume();
434
398
  }, MUSIC_DELAY_RENDER_FRAMES);
435
399
  // We must reload the current room in order for the `Level.SetStage` method to take effect.
436
400
  // Furthermore, we need to cancel the queued warp to the `GridRoom.DEBUG` room. We can
@@ -447,15 +411,14 @@ class CustomStages extends Feature_1.Feature {
447
411
  * @public
448
412
  */
449
413
  disableCustomStage() {
450
- v_1.v.run.currentCustomStage = null;
414
+ v.run.currentCustomStage = null;
451
415
  }
452
416
  }
453
- exports.CustomStages = CustomStages;
454
417
  __decorate([
455
- decorators_1.Exported
418
+ Exported
456
419
  ], CustomStages.prototype, "setCustomStage", null);
457
420
  __decorate([
458
- decorators_1.Exported
421
+ Exported
459
422
  ], CustomStages.prototype, "disableCustomStage", null);
460
423
  function getRoomTypeMap(customStageLua) {
461
424
  const roomTypeMap = new Map();