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,21 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.streakTextPostRender = streakTextPostRender;
4
- exports.streakTextGetShaderParams = streakTextGetShaderParams;
5
- exports.topStreakTextStart = topStreakTextStart;
6
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
7
- const cachedEnumValues_1 = require("../../../../cachedEnumValues");
8
- const cachedClasses_1 = require("../../../../core/cachedClasses");
9
- const constants_1 = require("../../../../core/constants");
10
- const UIStreakAnimation_1 = require("../../../../enums/private/UIStreakAnimation");
11
- const frames_1 = require("../../../../functions/frames");
12
- const ui_1 = require("../../../../functions/ui");
13
- const v_1 = require("./v");
1
+ import { ButtonAction } from "isaac-typescript-definitions";
2
+ import { CONTROLLER_INDEX_VALUES } from "../../../../cachedEnumValues";
3
+ import { fonts, game } from "../../../../core/cachedClasses";
4
+ import { KColorDefault, VectorOne } from "../../../../core/constants";
5
+ import { UIStreakAnimation } from "../../../../enums/private/UIStreakAnimation";
6
+ import { getElapsedGameFramesSince, getElapsedRenderFramesSince, } from "../../../../functions/frames";
7
+ import { getScreenBottomCenterPos, getScreenTopCenterPos, } from "../../../../functions/ui";
8
+ import { v } from "./v";
14
9
  /** Corresponds to "resources/gfx/ui/ui_streak.anm2". */
15
10
  const UI_STREAK_ANIMATION_END_FRAMES = {
16
- [UIStreakAnimation_1.UIStreakAnimation.NONE]: 0,
17
- [UIStreakAnimation_1.UIStreakAnimation.TEXT]: 69,
18
- [UIStreakAnimation_1.UIStreakAnimation.TEXT_STAY]: 1,
11
+ [UIStreakAnimation.NONE]: 0,
12
+ [UIStreakAnimation.TEXT]: 69,
13
+ [UIStreakAnimation.TEXT_STAY]: 1,
19
14
  };
20
15
  /** This must match the name of the shader in "shaders.xml". */
21
16
  const EMPTY_SHADER_NAME = "IsaacScript-RenderAboveHUD";
@@ -72,7 +67,7 @@ const TEXT_OUT_SCALES = [
72
67
  Vector(3, 0.2),
73
68
  ];
74
69
  // ModCallback.POST_RENDER (2)
75
- function streakTextPostRender() {
70
+ export function streakTextPostRender() {
76
71
  // The top streak only plays when the player arrives on the floor (or continues a game from the
77
72
  // main menu.)
78
73
  checkEndTopStreakText();
@@ -82,30 +77,30 @@ function streakTextPostRender() {
82
77
  checkEndBottomStreakText();
83
78
  }
84
79
  function checkEndTopStreakText() {
85
- if (v_1.v.run.topStreakTextStartedRenderFrame === null
86
- || v_1.v.run.topStreakText.animation !== UIStreakAnimation_1.UIStreakAnimation.TEXT_STAY) {
80
+ if (v.run.topStreakTextStartedRenderFrame === null
81
+ || v.run.topStreakText.animation !== UIStreakAnimation.TEXT_STAY) {
87
82
  return;
88
83
  }
89
- const elapsedFrames = (0, frames_1.getElapsedRenderFramesSince)(v_1.v.run.topStreakTextStartedRenderFrame);
84
+ const elapsedFrames = getElapsedRenderFramesSince(v.run.topStreakTextStartedRenderFrame);
90
85
  if (elapsedFrames >= 115) {
91
- v_1.v.run.topStreakText.animation = UIStreakAnimation_1.UIStreakAnimation.TEXT;
86
+ v.run.topStreakText.animation = UIStreakAnimation.TEXT;
92
87
  // We adjust by the frame backwards by an arbitrary amount to roughly align with the speed of
93
88
  // the vanilla animation.
94
- v_1.v.run.topStreakText.frame = TEXT_OUT_FRAME - 2;
89
+ v.run.topStreakText.frame = TEXT_OUT_FRAME - 2;
95
90
  }
96
91
  }
97
92
  function trackMapInputPressed() {
98
- const gameFrameCount = cachedClasses_1.game.GetFrameCount();
99
- for (const controllerIndex of cachedEnumValues_1.CONTROLLER_INDEX_VALUES) {
100
- const oldPushedMapFrame = v_1.v.run.controllerIndexPushingMapRenderFrame.get(controllerIndex);
101
- const isPushingMap = Input.IsActionPressed(isaac_typescript_definitions_1.ButtonAction.MAP, controllerIndex);
93
+ const gameFrameCount = game.GetFrameCount();
94
+ for (const controllerIndex of CONTROLLER_INDEX_VALUES) {
95
+ const oldPushedMapFrame = v.run.controllerIndexPushingMapRenderFrame.get(controllerIndex);
96
+ const isPushingMap = Input.IsActionPressed(ButtonAction.MAP, controllerIndex);
102
97
  if (isPushingMap) {
103
98
  if (oldPushedMapFrame === undefined) {
104
- v_1.v.run.controllerIndexPushingMapRenderFrame.set(controllerIndex, gameFrameCount);
99
+ v.run.controllerIndexPushingMapRenderFrame.set(controllerIndex, gameFrameCount);
105
100
  }
106
101
  }
107
102
  else {
108
- v_1.v.run.controllerIndexPushingMapRenderFrame.delete(controllerIndex);
103
+ v.run.controllerIndexPushingMapRenderFrame.delete(controllerIndex);
109
104
  }
110
105
  }
111
106
  }
@@ -114,20 +109,20 @@ function trackMapInputPressed() {
114
109
  * slides in from the left.
115
110
  */
116
111
  function checkStartBottomStreakText() {
117
- if (v_1.v.run.bottomStreakText.animation !== UIStreakAnimation_1.UIStreakAnimation.NONE) {
112
+ if (v.run.bottomStreakText.animation !== UIStreakAnimation.NONE) {
118
113
  return;
119
114
  }
120
115
  const pushedMapFrames = [
121
- ...v_1.v.run.controllerIndexPushingMapRenderFrame.values(),
116
+ ...v.run.controllerIndexPushingMapRenderFrame.values(),
122
117
  ];
123
118
  if (pushedMapFrames.length === 0) {
124
119
  return;
125
120
  }
126
121
  const earliestFrame = Math.min(...pushedMapFrames);
127
- const elapsedFrames = (0, frames_1.getElapsedGameFramesSince)(earliestFrame);
122
+ const elapsedFrames = getElapsedGameFramesSince(earliestFrame);
128
123
  if (elapsedFrames >= NUM_RENDER_FRAMES_MAP_HELD_BEFORE_STREAK_TEXT) {
129
- v_1.v.run.bottomStreakText.animation = UIStreakAnimation_1.UIStreakAnimation.TEXT;
130
- v_1.v.run.bottomStreakText.frame = 0;
124
+ v.run.bottomStreakText.animation = UIStreakAnimation.TEXT;
125
+ v.run.bottomStreakText.frame = 0;
131
126
  }
132
127
  }
133
128
  /**
@@ -135,36 +130,36 @@ function checkStartBottomStreakText() {
135
130
  * right.
136
131
  */
137
132
  function checkEndBottomStreakText() {
138
- if (v_1.v.run.bottomStreakText.animation !== UIStreakAnimation_1.UIStreakAnimation.TEXT_STAY) {
133
+ if (v.run.bottomStreakText.animation !== UIStreakAnimation.TEXT_STAY) {
139
134
  return;
140
135
  }
141
136
  const pushedMapFrames = [
142
- ...v_1.v.run.controllerIndexPushingMapRenderFrame.values(),
137
+ ...v.run.controllerIndexPushingMapRenderFrame.values(),
143
138
  ];
144
139
  if (pushedMapFrames.length === 0) {
145
- v_1.v.run.bottomStreakText.animation = UIStreakAnimation_1.UIStreakAnimation.TEXT;
140
+ v.run.bottomStreakText.animation = UIStreakAnimation.TEXT;
146
141
  // We adjust by the frame backwards by an arbitrary amount to roughly align with the speed of
147
142
  // the vanilla animation.
148
- v_1.v.run.bottomStreakText.frame = TEXT_OUT_FRAME - 2;
143
+ v.run.bottomStreakText.frame = TEXT_OUT_FRAME - 2;
149
144
  }
150
145
  }
151
146
  // ModCallback.GET_SHADER_PARAMS (22)
152
- function streakTextGetShaderParams(customStage, shaderName) {
147
+ export function streakTextGetShaderParams(customStage, shaderName) {
153
148
  if (shaderName !== EMPTY_SHADER_NAME) {
154
149
  return;
155
150
  }
156
- const topCenterPos = (0, ui_1.getScreenTopCenterPos)();
151
+ const topCenterPos = getScreenTopCenterPos();
157
152
  const topStreakPosition = topCenterPos.add(STREAK_SPRITE_TOP_OFFSET);
158
- renderStreakText(customStage, v_1.v.run.topStreakText, topStreakPosition);
159
- const bottomCenterPos = (0, ui_1.getScreenBottomCenterPos)();
153
+ renderStreakText(customStage, v.run.topStreakText, topStreakPosition);
154
+ const bottomCenterPos = getScreenBottomCenterPos();
160
155
  const bottomStreakPosition = bottomCenterPos.add(STREAK_SPRITE_BOTTOM_OFFSET);
161
- renderStreakText(customStage, v_1.v.run.bottomStreakText, bottomStreakPosition);
156
+ renderStreakText(customStage, v.run.bottomStreakText, bottomStreakPosition);
162
157
  }
163
158
  function renderStreakText(customStage, streakText, position) {
164
- if (streakText.animation === UIStreakAnimation_1.UIStreakAnimation.NONE) {
159
+ if (streakText.animation === UIStreakAnimation.NONE) {
165
160
  return;
166
161
  }
167
- if (streakText.animation !== UIStreakAnimation_1.UIStreakAnimation.TEXT_STAY) {
162
+ if (streakText.animation !== UIStreakAnimation.TEXT_STAY) {
168
163
  const { pauseFrame } = streakText;
169
164
  streakText.pauseFrame = !streakText.pauseFrame;
170
165
  if (!pauseFrame) {
@@ -173,49 +168,49 @@ function renderStreakText(customStage, streakText, position) {
173
168
  }
174
169
  const endFrame = UI_STREAK_ANIMATION_END_FRAMES[streakText.animation];
175
170
  if (streakText.frame > endFrame) {
176
- streakText.animation = UIStreakAnimation_1.UIStreakAnimation.NONE;
171
+ streakText.animation = UIStreakAnimation.NONE;
177
172
  streakText.frame = 0;
178
173
  return;
179
174
  }
180
- if (streakText.animation === UIStreakAnimation_1.UIStreakAnimation.TEXT
175
+ if (streakText.animation === UIStreakAnimation.TEXT
181
176
  && streakText.frame === TEXT_STAY_FRAME) {
182
- streakText.animation = UIStreakAnimation_1.UIStreakAnimation.TEXT_STAY;
177
+ streakText.animation = UIStreakAnimation.TEXT_STAY;
183
178
  streakText.frame = 0;
184
179
  }
185
- const isPaused = cachedClasses_1.game.IsPaused();
180
+ const isPaused = game.IsPaused();
186
181
  if (isPaused) {
187
182
  return;
188
183
  }
189
- const font = cachedClasses_1.fonts.upheaval;
184
+ const font = fonts.upheaval;
190
185
  const { name } = customStage;
191
- const numberSuffix = v_1.v.run.firstFloor ? "I" : "II";
186
+ const numberSuffix = v.run.firstFloor ? "I" : "II";
192
187
  const nameWithNumberSuffix = `${name} ${numberSuffix}`;
193
188
  const length = font.GetStringWidthUTF8(nameWithNumberSuffix);
194
189
  const centeredX = position.X - length / 2;
195
190
  let adjustment = 0;
196
- let scale = constants_1.VectorOne;
197
- if (streakText.animation === UIStreakAnimation_1.UIStreakAnimation.TEXT) {
191
+ let scale = VectorOne;
192
+ if (streakText.animation === UIStreakAnimation.TEXT) {
198
193
  if (streakText.frame < TEXT_STAY_FRAME) {
199
194
  adjustment = TEXT_IN_ADJUSTMENTS[streakText.frame] ?? 0;
200
- scale = TEXT_IN_SCALES[streakText.frame] ?? constants_1.VectorOne;
195
+ scale = TEXT_IN_SCALES[streakText.frame] ?? VectorOne;
201
196
  }
202
197
  else {
203
198
  const adjustedFrame = streakText.frame - TEXT_OUT_FRAME;
204
199
  adjustment = TEXT_OUT_ADJUSTMENTS[adjustedFrame] ?? 0;
205
- scale = TEXT_OUT_SCALES[adjustedFrame] ?? constants_1.VectorOne;
200
+ scale = TEXT_OUT_SCALES[adjustedFrame] ?? VectorOne;
206
201
  }
207
202
  }
208
203
  const adjustedX = centeredX + adjustment;
209
204
  const adjustedY = position.Y + STREAK_TEXT_BOTTOM_Y_OFFSET;
210
- font.DrawStringScaled(nameWithNumberSuffix, adjustedX, adjustedY, scale.X, scale.Y, constants_1.KColorDefault);
205
+ font.DrawStringScaled(nameWithNumberSuffix, adjustedX, adjustedY, scale.X, scale.Y, KColorDefault);
211
206
  }
212
- function topStreakTextStart() {
213
- const level = cachedClasses_1.game.GetLevel();
207
+ export function topStreakTextStart() {
208
+ const level = game.GetLevel();
214
209
  const renderFrameCount = Isaac.GetFrameCount();
215
210
  // Show the vanilla streak text, which will have a blank name because of the -1 floor.
216
211
  level.ShowName(false);
217
212
  // Initiate the animation for the custom text.
218
- v_1.v.run.topStreakText.animation = UIStreakAnimation_1.UIStreakAnimation.TEXT;
219
- v_1.v.run.topStreakText.frame = 0;
220
- v_1.v.run.topStreakTextStartedRenderFrame = renderFrameCount;
213
+ v.run.topStreakText.animation = UIStreakAnimation.TEXT;
214
+ v.run.topStreakText.frame = 0;
215
+ v.run.topStreakTextStartedRenderFrame = renderFrameCount;
221
216
  }
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRandomCustomStageRoom = getRandomCustomStageRoom;
4
- exports.getRandomBossRoomFromPool = getRandomBossRoomFromPool;
5
- const array_1 = require("../../../../functions/array");
6
- const log_1 = require("../../../../functions/log");
7
- const random_1 = require("../../../../functions/random");
1
+ import { sumArray } from "../../../../functions/array";
2
+ import { log } from "../../../../functions/log";
3
+ import { getRandomFloat } from "../../../../functions/random";
8
4
  /**
9
5
  * Helper function to get a random custom stage room from an array of custom stage rooms.
10
6
  *
@@ -12,20 +8,20 @@ const random_1 = require("../../../../functions/random");
12
8
  * properly account for each room weight using the algorithm from:
13
9
  * https://stackoverflow.com/questions/1761626/weighted-random-numbers
14
10
  */
15
- function getRandomCustomStageRoom(roomsMetadata, seedOrRNG, verbose = false) {
11
+ export function getRandomCustomStageRoom(roomsMetadata, seedOrRNG, verbose = false) {
16
12
  const totalWeight = getTotalWeightOfCustomStageRooms(roomsMetadata);
17
13
  if (verbose) {
18
- (0, log_1.log)(`Total weight of the custom stage rooms provided: ${totalWeight}`);
14
+ log(`Total weight of the custom stage rooms provided: ${totalWeight}`);
19
15
  }
20
- const chosenWeight = (0, random_1.getRandomFloat)(0, totalWeight, seedOrRNG);
16
+ const chosenWeight = getRandomFloat(0, totalWeight, seedOrRNG);
21
17
  if (verbose) {
22
- (0, log_1.log)(`Randomly chose weight for custom stage room: ${chosenWeight}`);
18
+ log(`Randomly chose weight for custom stage room: ${chosenWeight}`);
23
19
  }
24
20
  return getCustomStageRoomWithChosenWeight(roomsMetadata, chosenWeight);
25
21
  }
26
22
  function getTotalWeightOfCustomStageRooms(roomsMetadata) {
27
23
  const weights = roomsMetadata.map((roomMetadata) => roomMetadata.weight);
28
- return (0, array_1.sumArray)(weights);
24
+ return sumArray(weights);
29
25
  }
30
26
  function getCustomStageRoomWithChosenWeight(roomsMetadata, chosenWeight) {
31
27
  for (const roomMetadata of roomsMetadata) {
@@ -36,14 +32,14 @@ function getCustomStageRoomWithChosenWeight(roomsMetadata, chosenWeight) {
36
32
  }
37
33
  error(`Failed to get a custom stage room with chosen weight: ${chosenWeight}`);
38
34
  }
39
- function getRandomBossRoomFromPool(roomsMetadata, bossPool, seedOrRNG, verbose = false) {
35
+ export function getRandomBossRoomFromPool(roomsMetadata, bossPool, seedOrRNG, verbose = false) {
40
36
  const totalWeight = getTotalWeightOfBossPool(bossPool);
41
37
  if (verbose) {
42
- (0, log_1.log)(`Total weight of the custom stage boss pool provided: ${totalWeight}`);
38
+ log(`Total weight of the custom stage boss pool provided: ${totalWeight}`);
43
39
  }
44
- const chosenWeight = (0, random_1.getRandomFloat)(0, totalWeight, seedOrRNG);
40
+ const chosenWeight = getRandomFloat(0, totalWeight, seedOrRNG);
45
41
  if (verbose) {
46
- (0, log_1.log)(`Randomly chose weight for custom stage boss pool: ${chosenWeight}`);
42
+ log(`Randomly chose weight for custom stage boss pool: ${chosenWeight}`);
47
43
  }
48
44
  const bossEntry = getBossEntryWithChosenWeight(bossPool, chosenWeight);
49
45
  const roomsMetadataForBoss = roomsMetadata.filter((roomMetadata) => roomMetadata.subType === bossEntry.subType);
@@ -51,7 +47,7 @@ function getRandomBossRoomFromPool(roomsMetadata, bossPool, seedOrRNG, verbose =
51
47
  }
52
48
  function getTotalWeightOfBossPool(bossPool) {
53
49
  const weights = bossPool.map((bossEntry) => bossEntry.weight);
54
- return (0, array_1.sumArray)(weights);
50
+ return sumArray(weights);
55
51
  }
56
52
  function getBossEntryWithChosenWeight(bossPool, chosenWeight) {
57
53
  for (const bossEntry of bossPool) {
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.v = void 0;
4
- const UIStreakAnimation_1 = require("../../../../enums/private/UIStreakAnimation");
1
+ import { UIStreakAnimation } from "../../../../enums/private/UIStreakAnimation";
5
2
  // This is registered in "CustomStages.ts".
6
3
  // eslint-disable-next-line isaacscript/require-v-registration
7
- exports.v = {
4
+ export const v = {
8
5
  run: {
9
6
  currentCustomStage: null,
10
7
  /** Whether we are on e.g. Caves 1 or Caves 2. */
@@ -14,12 +11,12 @@ exports.v = {
14
11
  controllerIndexPushingMapRenderFrame: new Map(),
15
12
  topStreakTextStartedRenderFrame: null,
16
13
  topStreakText: {
17
- animation: UIStreakAnimation_1.UIStreakAnimation.NONE,
14
+ animation: UIStreakAnimation.NONE,
18
15
  frame: 0,
19
16
  pauseFrame: false,
20
17
  },
21
18
  bottomStreakText: {
22
- animation: UIStreakAnimation_1.UIStreakAnimation.NONE,
19
+ animation: UIStreakAnimation.NONE,
23
20
  frame: 0,
24
21
  pauseFrame: false,
25
22
  },
@@ -1,22 +1,18 @@
1
- "use strict";
2
1
  // This emulates the vanilla versus screen that shows up when you enter a boss room.
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.playVersusScreenAnimation = playVersusScreenAnimation;
5
- exports.versusScreenPostRender = versusScreenPostRender;
6
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
7
- const cachedClasses_1 = require("../../../../core/cachedClasses");
8
- const array_1 = require("../../../../functions/array");
9
- const bosses_1 = require("../../../../functions/bosses");
10
- const roomData_1 = require("../../../../functions/roomData");
11
- const string_1 = require("../../../../functions/string");
12
- const ui_1 = require("../../../../functions/ui");
13
- const utils_1 = require("../../../../functions/utils");
14
- const versusScreen_1 = require("../../../../functions/versusScreen");
15
- const versusScreenBackgroundColors_1 = require("../../../../objects/versusScreenBackgroundColors");
16
- const versusScreenDirtSpotColors_1 = require("../../../../objects/versusScreenDirtSpotColors");
17
- const constants_1 = require("./constants");
18
- const v_1 = require("./v");
19
- const DEFAULT_STAGE_ID = isaac_typescript_definitions_1.StageID.BASEMENT;
2
+ import { BossID, PlayerType, RoomType, SoundEffect, StageID, } from "isaac-typescript-definitions";
3
+ import { game, sfxManager } from "../../../../core/cachedClasses";
4
+ import { arrayRemove } from "../../../../functions/array";
5
+ import { getBosses } from "../../../../functions/bosses";
6
+ import { getRoomSubType } from "../../../../functions/roomData";
7
+ import { removeCharactersBefore } from "../../../../functions/string";
8
+ import { getScreenCenterPos } from "../../../../functions/ui";
9
+ import { eRange } from "../../../../functions/utils";
10
+ import { getBossNamePNGFilePath, getBossPortraitPNGFilePath, getCharacterNamePNGFilePath, getCharacterPortraitPNGFilePath, } from "../../../../functions/versusScreen";
11
+ import { VERSUS_SCREEN_BACKGROUND_COLORS } from "../../../../objects/versusScreenBackgroundColors";
12
+ import { VERSUS_SCREEN_DIRT_SPOT_COLORS } from "../../../../objects/versusScreenDirtSpotColors";
13
+ import { CUSTOM_FLOOR_STAGE, CUSTOM_FLOOR_STAGE_TYPE, CUSTOM_STAGE_FEATURE_NAME, DEFAULT_BASE_STAGE, DEFAULT_BASE_STAGE_TYPE, ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH, } from "./constants";
14
+ import { v } from "./v";
15
+ const DEFAULT_STAGE_ID = StageID.BASEMENT;
20
16
  const VERSUS_SCREEN_ANIMATION_NAME = "Scene";
21
17
  /** The layers range from 0 to 13. */
22
18
  const NUM_VERSUS_SCREEN_ANM2_LAYERS = 14;
@@ -46,7 +42,7 @@ var VersusScreenLayer;
46
42
  VersusScreenLayer[VersusScreenLayer["BOSS_PORTRAIT_2_GROUND"] = 14] = "BOSS_PORTRAIT_2_GROUND";
47
43
  })(VersusScreenLayer || (VersusScreenLayer = {}));
48
44
  /** These are the non-special layers that we will render last. */
49
- const OTHER_ANM2_LAYERS = (0, array_1.arrayRemove)((0, utils_1.eRange)(NUM_VERSUS_SCREEN_ANM2_LAYERS), VersusScreenLayer.BACKGROUND, VersusScreenLayer.BOSS_SPOT, VersusScreenLayer.PLAYER_SPOT, VersusScreenLayer.OVERLAY, VersusScreenLayer.PLAYER_PORTRAIT_ALT);
45
+ const OTHER_ANM2_LAYERS = arrayRemove(eRange(NUM_VERSUS_SCREEN_ANM2_LAYERS), VersusScreenLayer.BACKGROUND, VersusScreenLayer.BOSS_SPOT, VersusScreenLayer.PLAYER_SPOT, VersusScreenLayer.OVERLAY, VersusScreenLayer.PLAYER_PORTRAIT_ALT);
50
46
  const VANILLA_VERSUS_PLAYBACK_SPEED = 0.5;
51
47
  /** We lazy load the sprite when first needed. */
52
48
  const versusScreenSprite = Sprite();
@@ -64,10 +60,10 @@ const versusScreenBackgroundSprite = Sprite();
64
60
  * color it with the `Color` field.
65
61
  */
66
62
  const versusScreenDirtSpotSprite = Sprite();
67
- function playVersusScreenAnimation(customStage, disableAllSound, pause, runInNFrames) {
68
- const room = cachedClasses_1.game.GetRoom();
63
+ export function playVersusScreenAnimation(customStage, disableAllSound, pause, runInNFrames) {
64
+ const room = game.GetRoom();
69
65
  const roomType = room.GetType();
70
- if (roomType !== isaac_typescript_definitions_1.RoomType.BOSS) {
66
+ if (roomType !== RoomType.BOSS) {
71
67
  return;
72
68
  }
73
69
  const roomCleared = room.IsClear();
@@ -77,25 +73,25 @@ function playVersusScreenAnimation(customStage, disableAllSound, pause, runInNFr
77
73
  if (willVanillaVersusScreenPlay()) {
78
74
  // Since we are on an invalid stage, the versus screen will have a completely black background.
79
75
  // Revert to using the background from the default stage.
80
- const level = cachedClasses_1.game.GetLevel();
81
- level.SetStage(constants_1.DEFAULT_BASE_STAGE, constants_1.DEFAULT_BASE_STAGE_TYPE);
76
+ const level = game.GetLevel();
77
+ level.SetStage(DEFAULT_BASE_STAGE, DEFAULT_BASE_STAGE_TYPE);
82
78
  runInNFrames.runNextGameFrame(() => {
83
- const futureLevel = cachedClasses_1.game.GetLevel();
84
- futureLevel.SetStage(constants_1.CUSTOM_FLOOR_STAGE, constants_1.CUSTOM_FLOOR_STAGE_TYPE);
79
+ const futureLevel = game.GetLevel();
80
+ futureLevel.SetStage(CUSTOM_FLOOR_STAGE, CUSTOM_FLOOR_STAGE_TYPE);
85
81
  });
86
82
  return;
87
83
  }
88
- const hud = cachedClasses_1.game.GetHUD();
89
- v_1.v.run.showingBossVersusScreen = true;
84
+ const hud = game.GetHUD();
85
+ v.run.showingBossVersusScreen = true;
90
86
  pause.pause();
91
87
  hud.SetVisible(false);
92
- disableAllSound.disableAllSound(constants_1.CUSTOM_STAGE_FEATURE_NAME);
88
+ disableAllSound.disableAllSound(CUSTOM_STAGE_FEATURE_NAME);
93
89
  // In vanilla, the "overlay.png" file has a white background. We must convert it to a PNG that
94
90
  // uses a transparent background in order for the background behind it to be visible. We use the
95
91
  // same "overlay.png" file as StageAPI uses for this purpose.
96
92
  if (!versusScreenSprite.IsLoaded()) {
97
93
  versusScreenSprite.Load("gfx/ui/boss/versusscreen.anm2", false);
98
- versusScreenSprite.ReplaceSpritesheet(VersusScreenLayer.OVERLAY, `${constants_1.ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH}/overlay.png`);
94
+ versusScreenSprite.ReplaceSpritesheet(VersusScreenLayer.OVERLAY, `${ISAACSCRIPT_CUSTOM_STAGE_GFX_PATH}/overlay.png`);
99
95
  }
100
96
  // Player
101
97
  {
@@ -106,16 +102,16 @@ function playVersusScreenAnimation(customStage, disableAllSound, pause, runInNFr
106
102
  // Boss
107
103
  {
108
104
  const { namePNGPath, portraitPNGPath } = getBossPNGPaths(customStage);
109
- const trimmedNamePNGPath = (0, string_1.removeCharactersBefore)(namePNGPath, "gfx/");
105
+ const trimmedNamePNGPath = removeCharactersBefore(namePNGPath, "gfx/");
110
106
  versusScreenSprite.ReplaceSpritesheet(VersusScreenLayer.BOSS_NAME, trimmedNamePNGPath);
111
- const trimmedPortraitPNGPath = (0, string_1.removeCharactersBefore)(portraitPNGPath, "gfx/");
107
+ const trimmedPortraitPNGPath = removeCharactersBefore(portraitPNGPath, "gfx/");
112
108
  versusScreenSprite.ReplaceSpritesheet(VersusScreenLayer.BOSS_PORTRAIT, trimmedPortraitPNGPath);
113
109
  }
114
110
  versusScreenSprite.LoadGraphics();
115
111
  if (!versusScreenBackgroundSprite.IsLoaded()) {
116
112
  versusScreenBackgroundSprite.Load("gfx/ui/boss/versusscreen.anm2", true);
117
113
  }
118
- let backgroundColor = versusScreenBackgroundColors_1.VERSUS_SCREEN_BACKGROUND_COLORS[DEFAULT_STAGE_ID];
114
+ let backgroundColor = VERSUS_SCREEN_BACKGROUND_COLORS[DEFAULT_STAGE_ID];
119
115
  if (customStage.versusScreen?.backgroundColor !== undefined) {
120
116
  const { r, g, b, a } = customStage.versusScreen.backgroundColor;
121
117
  backgroundColor = Color(r, g, b, a);
@@ -124,7 +120,7 @@ function playVersusScreenAnimation(customStage, disableAllSound, pause, runInNFr
124
120
  if (!versusScreenDirtSpotSprite.IsLoaded()) {
125
121
  versusScreenDirtSpotSprite.Load("gfx/ui/boss/versusscreen.anm2", true);
126
122
  }
127
- let dirtSpotColor = versusScreenDirtSpotColors_1.VERSUS_SCREEN_DIRT_SPOT_COLORS[DEFAULT_STAGE_ID];
123
+ let dirtSpotColor = VERSUS_SCREEN_DIRT_SPOT_COLORS[DEFAULT_STAGE_ID];
128
124
  if (customStage.versusScreen?.dirtSpotColor !== undefined) {
129
125
  const { r, g, b } = customStage.versusScreen.dirtSpotColor;
130
126
  dirtSpotColor = Color(r, g, b);
@@ -140,18 +136,18 @@ function playVersusScreenAnimation(customStage, disableAllSound, pause, runInNFr
140
136
  }
141
137
  }
142
138
  function willVanillaVersusScreenPlay() {
143
- const bosses = (0, bosses_1.getBosses)();
139
+ const bosses = getBosses();
144
140
  return bosses.some((boss) => boss.GetBossID() !== 0);
145
141
  }
146
142
  /** Use the character of the 0th player. */
147
143
  function getPlayerPNGPaths() {
148
144
  const player = Isaac.GetPlayer();
149
145
  const character = player.GetPlayerType();
150
- if (character === isaac_typescript_definitions_1.PlayerType.POSSESSOR) {
146
+ if (character === PlayerType.POSSESSOR) {
151
147
  error("Failed to get the player PNG paths since they are a possessor.");
152
148
  }
153
- const namePNGPath = (0, versusScreen_1.getCharacterNamePNGFilePath)(character);
154
- const portraitPNGPath = (0, versusScreen_1.getCharacterPortraitPNGFilePath)(character);
149
+ const namePNGPath = getCharacterNamePNGFilePath(character);
150
+ const portraitPNGPath = getCharacterPortraitPNGFilePath(character);
155
151
  return {
156
152
  namePNGPath,
157
153
  portraitPNGPath,
@@ -165,11 +161,11 @@ function getBossPNGPaths(customStage) {
165
161
  return paths;
166
162
  }
167
163
  // If this is not a vanilla boss, default to showing question marks.
168
- const bosses = (0, bosses_1.getBosses)();
164
+ const bosses = getBosses();
169
165
  const firstBoss = bosses[0];
170
166
  const bossID = firstBoss === undefined ? 0 : firstBoss.GetBossID();
171
167
  if (bossID === 0) {
172
- const questionMarkPath = (0, versusScreen_1.getBossNamePNGFilePath)(isaac_typescript_definitions_1.BossID.BLUE_BABY);
168
+ const questionMarkPath = getBossNamePNGFilePath(BossID.BLUE_BABY);
173
169
  const namePNGPath = questionMarkPath;
174
170
  const portraitPNGPath = questionMarkPath;
175
171
  return {
@@ -179,8 +175,8 @@ function getBossPNGPaths(customStage) {
179
175
  }
180
176
  // If this is a vanilla boss, it will have a boss ID, and we can use the corresponding vanilla
181
177
  // files.
182
- const namePNGPath = (0, versusScreen_1.getBossNamePNGFilePath)(bossID);
183
- const portraitPNGPath = (0, versusScreen_1.getBossPortraitPNGFilePath)(bossID);
178
+ const namePNGPath = getBossNamePNGFilePath(bossID);
179
+ const portraitPNGPath = getBossPortraitPNGFilePath(bossID);
184
180
  return {
185
181
  namePNGPath,
186
182
  portraitPNGPath,
@@ -190,7 +186,7 @@ function getBossPNGPathsCustom(customStage) {
190
186
  if (customStage.bossPool === undefined) {
191
187
  return undefined;
192
188
  }
193
- const roomSubType = (0, roomData_1.getRoomSubType)();
189
+ const roomSubType = getRoomSubType();
194
190
  const matchingBossEntry = customStage.bossPool.find((bossEntry) => bossEntry.subType === roomSubType);
195
191
  if (matchingBossEntry === undefined) {
196
192
  return undefined;
@@ -198,17 +194,17 @@ function getBossPNGPathsCustom(customStage) {
198
194
  return matchingBossEntry.versusScreen;
199
195
  }
200
196
  function finishVersusScreenAnimation(pause, disableAllSound) {
201
- const hud = cachedClasses_1.game.GetHUD();
202
- v_1.v.run.showingBossVersusScreen = false;
197
+ const hud = game.GetHUD();
198
+ v.run.showingBossVersusScreen = false;
203
199
  pause.unpause();
204
200
  hud.SetVisible(true);
205
- disableAllSound.enableAllSound(constants_1.CUSTOM_STAGE_FEATURE_NAME);
201
+ disableAllSound.enableAllSound(CUSTOM_STAGE_FEATURE_NAME);
206
202
  // The sound effect only plays once the versus cutscene is over.
207
- cachedClasses_1.sfxManager.Play(isaac_typescript_definitions_1.SoundEffect.CASTLE_PORTCULLIS);
203
+ sfxManager.Play(SoundEffect.CASTLE_PORTCULLIS);
208
204
  }
209
205
  // ModCallback.POST_RENDER (2)
210
- function versusScreenPostRender(pause, disableAllSound) {
211
- if (!v_1.v.run.showingBossVersusScreen) {
206
+ export function versusScreenPostRender(pause, disableAllSound) {
207
+ if (!v.run.showingBossVersusScreen) {
212
208
  return;
213
209
  }
214
210
  // We do not want to early return when the game is paused because we need to start displaying the
@@ -217,7 +213,7 @@ function versusScreenPostRender(pause, disableAllSound) {
217
213
  finishVersusScreenAnimation(pause, disableAllSound);
218
214
  return;
219
215
  }
220
- const position = (0, ui_1.getScreenCenterPos)();
216
+ const position = getScreenCenterPos();
221
217
  // First, we render the background.
222
218
  versusScreenBackgroundSprite.RenderLayer(VersusScreenLayer.BACKGROUND, position);
223
219
  versusScreenBackgroundSprite.Update();
@@ -1,23 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DebugDisplayBomb = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const render_1 = require("../../../../functions/render");
6
- const Feature_1 = require("../../../private/Feature");
7
- const utils_1 = require("./utils");
8
- class DebugDisplayBomb extends Feature_1.Feature {
1
+ import { ModCallback } from "isaac-typescript-definitions";
2
+ import { renderTextOnEntity } from "../../../../functions/render";
3
+ import { Feature } from "../../../private/Feature";
4
+ import { defaultEntityDisplayCallback } from "./utils";
5
+ export class DebugDisplayBomb extends Feature {
9
6
  // ModCallback.POST_BOMB_RENDER (59)
10
7
  postBombRender = (bomb) => {
11
8
  const text = this.textCallback(bomb);
12
- (0, render_1.renderTextOnEntity)(bomb, text);
9
+ renderTextOnEntity(bomb, text);
13
10
  };
14
- textCallback = utils_1.defaultEntityDisplayCallback;
11
+ textCallback = defaultEntityDisplayCallback;
15
12
  constructor() {
16
13
  super();
17
14
  this.callbacksUsed = [
18
15
  // 59
19
- [isaac_typescript_definitions_1.ModCallback.POST_BOMB_RENDER, this.postBombRender],
16
+ [ModCallback.POST_BOMB_RENDER, this.postBombRender],
20
17
  ];
21
18
  }
22
19
  }
23
- exports.DebugDisplayBomb = DebugDisplayBomb;
@@ -1,22 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DebugDisplayDoor = void 0;
4
- const ModCallbackCustom_1 = require("../../../../enums/ModCallbackCustom");
5
- const render_1 = require("../../../../functions/render");
6
- const Feature_1 = require("../../../private/Feature");
7
- const utils_1 = require("./utils");
8
- class DebugDisplayDoor extends Feature_1.Feature {
1
+ import { ModCallbackCustom } from "../../../../enums/ModCallbackCustom";
2
+ import { renderTextOnEntity } from "../../../../functions/render";
3
+ import { Feature } from "../../../private/Feature";
4
+ import { defaultGridEntityDisplayCallback } from "./utils";
5
+ export class DebugDisplayDoor extends Feature {
9
6
  // ModCallbackCustom.POST_DOOR_RENDER
10
7
  postDoorRender = (door) => {
11
8
  const text = this.textCallback(door);
12
- (0, render_1.renderTextOnEntity)(door, text);
9
+ renderTextOnEntity(door, text);
13
10
  };
14
- textCallback = utils_1.defaultGridEntityDisplayCallback;
11
+ textCallback = defaultGridEntityDisplayCallback;
15
12
  constructor() {
16
13
  super();
17
14
  this.customCallbacksUsed = [
18
- [ModCallbackCustom_1.ModCallbackCustom.POST_DOOR_RENDER, this.postDoorRender],
15
+ [ModCallbackCustom.POST_DOOR_RENDER, this.postDoorRender],
19
16
  ];
20
17
  }
21
18
  }
22
- exports.DebugDisplayDoor = DebugDisplayDoor;
@@ -1,23 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DebugDisplayEffect = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const render_1 = require("../../../../functions/render");
6
- const Feature_1 = require("../../../private/Feature");
7
- const utils_1 = require("./utils");
8
- class DebugDisplayEffect extends Feature_1.Feature {
1
+ import { ModCallback } from "isaac-typescript-definitions";
2
+ import { renderTextOnEntity } from "../../../../functions/render";
3
+ import { Feature } from "../../../private/Feature";
4
+ import { defaultEntityDisplayCallback } from "./utils";
5
+ export class DebugDisplayEffect extends Feature {
9
6
  // ModCallback.POST_EFFECT_RENDER (56)
10
7
  postEffectRender = (effect) => {
11
8
  const text = this.textCallback(effect);
12
- (0, render_1.renderTextOnEntity)(effect, text);
9
+ renderTextOnEntity(effect, text);
13
10
  };
14
- textCallback = utils_1.defaultEntityDisplayCallback;
11
+ textCallback = defaultEntityDisplayCallback;
15
12
  constructor() {
16
13
  super();
17
14
  this.callbacksUsed = [
18
15
  // 56
19
- [isaac_typescript_definitions_1.ModCallback.POST_EFFECT_RENDER, this.postEffectRender],
16
+ [ModCallback.POST_EFFECT_RENDER, this.postEffectRender],
20
17
  ];
21
18
  }
22
19
  }
23
- exports.DebugDisplayEffect = DebugDisplayEffect;