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,19 +1,16 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
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;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.RunInNFrames = void 0;
10
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
11
- const cachedClasses_1 = require("../../../core/cachedClasses");
12
- const decorators_1 = require("../../../decorators");
13
- const ISCFeature_1 = require("../../../enums/ISCFeature");
14
- const array_1 = require("../../../functions/array");
15
- const run_1 = require("../../../functions/run");
16
- const Feature_1 = require("../../private/Feature");
7
+ import { ModCallback } from "isaac-typescript-definitions";
8
+ import { game } from "../../../core/cachedClasses";
9
+ import { Exported } from "../../../decorators";
10
+ import { ISCFeature } from "../../../enums/ISCFeature";
11
+ import { arrayRemoveInPlace } from "../../../functions/array";
12
+ import { restart } from "../../../functions/run";
13
+ import { Feature } from "../../private/Feature";
17
14
  const v = {
18
15
  run: {
19
16
  queuedGameFunctions: [],
@@ -22,11 +19,11 @@ const v = {
22
19
  intervalRenderFunctions: [],
23
20
  },
24
21
  };
25
- class RunInNFrames extends Feature_1.Feature {
22
+ export class RunInNFrames extends Feature {
26
23
  roomHistory;
27
24
  // ModCallback.POST_UPDATE (1)
28
25
  postUpdate = () => {
29
- const gameFrameCount = cachedClasses_1.game.GetFrameCount();
26
+ const gameFrameCount = game.GetFrameCount();
30
27
  const numRoomsEntered = this.roomHistory.getNumRoomsEntered();
31
28
  checkExecuteQueuedFunctions(v.run.queuedGameFunctions, gameFrameCount, numRoomsEntered);
32
29
  checkExecuteIntervalFunctions(v.run.intervalGameFunctions, gameFrameCount, numRoomsEntered);
@@ -44,12 +41,12 @@ class RunInNFrames extends Feature_1.Feature {
44
41
  /** @internal */
45
42
  constructor(roomHistory) {
46
43
  super();
47
- this.featuresUsed = [ISCFeature_1.ISCFeature.ROOM_HISTORY];
44
+ this.featuresUsed = [ISCFeature.ROOM_HISTORY];
48
45
  this.callbacksUsed = [
49
46
  // 1
50
- [isaac_typescript_definitions_1.ModCallback.POST_UPDATE, this.postUpdate],
47
+ [ModCallback.POST_UPDATE, this.postUpdate],
51
48
  // 2
52
- [isaac_typescript_definitions_1.ModCallback.POST_RENDER, this.postRender],
49
+ [ModCallback.POST_RENDER, this.postRender],
53
50
  ];
54
51
  this.roomHistory = roomHistory;
55
52
  }
@@ -65,7 +62,7 @@ class RunInNFrames extends Feature_1.Feature {
65
62
  */
66
63
  restartNextRenderFrame(character) {
67
64
  this.runNextRenderFrame(() => {
68
- (0, run_1.restart)(character);
65
+ restart(character);
69
66
  });
70
67
  }
71
68
  /**
@@ -87,7 +84,7 @@ class RunInNFrames extends Feature_1.Feature {
87
84
  * @public
88
85
  */
89
86
  runInNGameFrames(func, numGameFrames, cancelIfRoomChanges = false) {
90
- const gameFrameCount = cachedClasses_1.game.GetFrameCount();
87
+ const gameFrameCount = game.GetFrameCount();
91
88
  const numRoomsEntered = this.roomHistory.getNumRoomsEntered();
92
89
  const frameCountToFire = gameFrameCount + numGameFrames;
93
90
  const queuedFunction = {
@@ -212,7 +209,7 @@ class RunInNFrames extends Feature_1.Feature {
212
209
  return;
213
210
  }
214
211
  }
215
- const gameFrameCount = cachedClasses_1.game.GetFrameCount();
212
+ const gameFrameCount = game.GetFrameCount();
216
213
  const numRoomsEntered = this.roomHistory.getNumRoomsEntered();
217
214
  const intervalFunction = {
218
215
  func,
@@ -263,27 +260,26 @@ class RunInNFrames extends Feature_1.Feature {
263
260
  v.run.intervalRenderFunctions.push(intervalFunction);
264
261
  }
265
262
  }
266
- exports.RunInNFrames = RunInNFrames;
267
263
  __decorate([
268
- decorators_1.Exported
264
+ Exported
269
265
  ], RunInNFrames.prototype, "restartNextRenderFrame", null);
270
266
  __decorate([
271
- decorators_1.Exported
267
+ Exported
272
268
  ], RunInNFrames.prototype, "runInNGameFrames", null);
273
269
  __decorate([
274
- decorators_1.Exported
270
+ Exported
275
271
  ], RunInNFrames.prototype, "runInNRenderFrames", null);
276
272
  __decorate([
277
- decorators_1.Exported
273
+ Exported
278
274
  ], RunInNFrames.prototype, "runNextGameFrame", null);
279
275
  __decorate([
280
- decorators_1.Exported
276
+ Exported
281
277
  ], RunInNFrames.prototype, "runNextRenderFrame", null);
282
278
  __decorate([
283
- decorators_1.Exported
279
+ Exported
284
280
  ], RunInNFrames.prototype, "setIntervalGameFrames", null);
285
281
  __decorate([
286
- decorators_1.Exported
282
+ Exported
287
283
  ], RunInNFrames.prototype, "setIntervalRenderFrames", null);
288
284
  function checkExecuteQueuedFunctions(
289
285
  // eslint-disable-next-line complete/prefer-readonly-parameter-types
@@ -294,7 +290,7 @@ queuedFunctions, frameCount, newNumRoomsEntered) {
294
290
  if (!cancelIfRoomChanges || numRoomsEntered === newNumRoomsEntered) {
295
291
  func();
296
292
  }
297
- (0, array_1.arrayRemoveInPlace)(queuedFunctions, firingFunction);
293
+ arrayRemoveInPlace(queuedFunctions, firingFunction);
298
294
  }
299
295
  }
300
296
  function checkExecuteIntervalFunctions(
@@ -306,7 +302,7 @@ intervalFunctions, frameCount, newNumRoomsEntered) {
306
302
  const returnValue = !cancelIfRoomChanges || numRoomsEntered === newNumRoomsEntered
307
303
  ? func()
308
304
  : false;
309
- (0, array_1.arrayRemoveInPlace)(intervalFunctions, firingFunction);
305
+ arrayRemoveInPlace(intervalFunctions, firingFunction);
310
306
  // Queue the next interval (as long as the function did not return false).
311
307
  if (returnValue) {
312
308
  const newIntervalFunction = {
@@ -1,28 +1,25 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
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;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.RunNextRoom = void 0;
10
- const decorators_1 = require("../../../decorators");
11
- const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
12
- const array_1 = require("../../../functions/array");
13
- const Feature_1 = require("../../private/Feature");
7
+ import { Exported } from "../../../decorators";
8
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
9
+ import { emptyArray } from "../../../functions/array";
10
+ import { Feature } from "../../private/Feature";
14
11
  const v = {
15
12
  run: {
16
13
  queuedFunctions: [],
17
14
  },
18
15
  };
19
- class RunNextRoom extends Feature_1.Feature {
16
+ export class RunNextRoom extends Feature {
20
17
  // ModCallbackCustom.POST_NEW_ROOM_REORDERED
21
18
  postNewRoomReordered = () => {
22
19
  for (const func of v.run.queuedFunctions) {
23
20
  func();
24
21
  }
25
- (0, array_1.emptyArray)(v.run.queuedFunctions);
22
+ emptyArray(v.run.queuedFunctions);
26
23
  };
27
24
  /** @internal */
28
25
  v = v;
@@ -31,7 +28,7 @@ class RunNextRoom extends Feature_1.Feature {
31
28
  constructor() {
32
29
  super();
33
30
  this.customCallbacksUsed = [
34
- [ModCallbackCustom_1.ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
31
+ [ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
35
32
  ];
36
33
  }
37
34
  /**
@@ -47,7 +44,6 @@ class RunNextRoom extends Feature_1.Feature {
47
44
  v.run.queuedFunctions.push(func);
48
45
  }
49
46
  }
50
- exports.RunNextRoom = RunNextRoom;
51
47
  __decorate([
52
- decorators_1.Exported
48
+ Exported
53
49
  ], RunNextRoom.prototype, "runNextRoom", null);
@@ -1,29 +1,26 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
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;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.RunNextRun = void 0;
10
- const decorators_1 = require("../../../decorators");
11
- const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
12
- const array_1 = require("../../../functions/array");
13
- const Feature_1 = require("../../private/Feature");
7
+ import { Exported } from "../../../decorators";
8
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
9
+ import { emptyArray } from "../../../functions/array";
10
+ import { Feature } from "../../private/Feature";
14
11
  const v = {
15
12
  persistent: {
16
13
  queuedFunctions: [],
17
14
  },
18
15
  };
19
- class RunNextRun extends Feature_1.Feature {
16
+ export class RunNextRun extends Feature {
20
17
  // ModCallbackCustom.POST_GAME_STARTED_REORDERED
21
18
  // false
22
19
  postGameStartedReorderedFalse = () => {
23
20
  for (const func of v.persistent.queuedFunctions) {
24
21
  func();
25
22
  }
26
- (0, array_1.emptyArray)(v.persistent.queuedFunctions);
23
+ emptyArray(v.persistent.queuedFunctions);
27
24
  };
28
25
  /** @internal */
29
26
  v = v;
@@ -33,7 +30,7 @@ class RunNextRun extends Feature_1.Feature {
33
30
  super();
34
31
  this.customCallbacksUsed = [
35
32
  [
36
- ModCallbackCustom_1.ModCallbackCustom.POST_GAME_STARTED_REORDERED,
33
+ ModCallbackCustom.POST_GAME_STARTED_REORDERED,
37
34
  this.postGameStartedReorderedFalse,
38
35
  [false],
39
36
  ],
@@ -54,7 +51,6 @@ class RunNextRun extends Feature_1.Feature {
54
51
  v.persistent.queuedFunctions.push(func);
55
52
  }
56
53
  }
57
- exports.RunNextRun = RunNextRun;
58
54
  __decorate([
59
- decorators_1.Exported
55
+ Exported
60
56
  ], RunNextRun.prototype, "runNextRun", null);
@@ -1,36 +1,33 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
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;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.SaveDataManager = void 0;
10
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
11
- const decorators_1 = require("../../../decorators");
12
- const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
13
- const SaveDataKey_1 = require("../../../enums/SaveDataKey");
14
- const SerializationType_1 = require("../../../enums/SerializationType");
15
- const deepCopy_1 = require("../../../functions/deepCopy");
16
- const frames_1 = require("../../../functions/frames");
17
- const log_1 = require("../../../functions/log");
18
- const stage_1 = require("../../../functions/stage");
19
- const tstlClass_1 = require("../../../functions/tstlClass");
20
- const types_1 = require("../../../functions/types");
21
- const utils_1 = require("../../../functions/utils");
22
- const ReadonlySet_1 = require("../../../types/ReadonlySet");
23
- const Feature_1 = require("../../private/Feature");
24
- const glowingHourGlass_1 = require("./saveDataManager/glowingHourGlass");
25
- const loadFromDisk_1 = require("./saveDataManager/loadFromDisk");
26
- const restoreDefaults_1 = require("./saveDataManager/restoreDefaults");
27
- const saveToDisk_1 = require("./saveDataManager/saveToDisk");
28
- const NON_USER_DEFINED_CLASS_NAMES = new ReadonlySet_1.ReadonlySet([
7
+ import { CollectibleType, ModCallback } from "isaac-typescript-definitions";
8
+ import { Exported } from "../../../decorators";
9
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
10
+ import { SaveDataKey } from "../../../enums/SaveDataKey";
11
+ import { SerializationType } from "../../../enums/SerializationType";
12
+ import { deepCopy } from "../../../functions/deepCopy";
13
+ import { isAfterGameFrame } from "../../../functions/frames";
14
+ import { log } from "../../../functions/log";
15
+ import { onFirstFloor } from "../../../functions/stage";
16
+ import { getTSTLClassName, isTSTLClass } from "../../../functions/tstlClass";
17
+ import { isString, isTable } from "../../../functions/types";
18
+ import { assertDefined } from "../../../functions/utils";
19
+ import { ReadonlySet } from "../../../types/ReadonlySet";
20
+ import { Feature } from "../../private/Feature";
21
+ import { makeGlowingHourGlassBackup, restoreGlowingHourGlassBackup, } from "./saveDataManager/glowingHourGlass";
22
+ import { loadFromDisk } from "./saveDataManager/loadFromDisk";
23
+ import { restoreDefaultForFeatureKey, restoreDefaultsForAllFeaturesAndKeys, restoreDefaultsForAllFeaturesKey, } from "./saveDataManager/restoreDefaults";
24
+ import { saveToDisk } from "./saveDataManager/saveToDisk";
25
+ const NON_USER_DEFINED_CLASS_NAMES = new ReadonlySet([
29
26
  "Map",
30
27
  "Set",
31
28
  "DefaultMap",
32
29
  ]);
33
- class SaveDataManager extends Feature_1.Feature {
30
+ export class SaveDataManager extends Feature {
34
31
  /**
35
32
  * We store a local reference to the mod object so that we can access the corresponding methods
36
33
  * that read and write to the "save#.dat" file.
@@ -86,10 +83,10 @@ class SaveDataManager extends Feature_1.Feature {
86
83
  this.restoreGlowingHourGlassDataOnNextRoom = false;
87
84
  // We want to unconditionally load save data on every new run since there might be persistent
88
85
  // data that is not tied to an individual run.
89
- (0, loadFromDisk_1.loadFromDisk)(this.mod, this.saveDataMap, this.classConstructors);
90
- const isContinued = (0, frames_1.isAfterGameFrame)(0);
86
+ loadFromDisk(this.mod, this.saveDataMap, this.classConstructors);
87
+ const isContinued = isAfterGameFrame(0);
91
88
  if (!isContinued) {
92
- (0, restoreDefaults_1.restoreDefaultsForAllFeaturesAndKeys)(this.saveDataMap, this.saveDataDefaultsMap);
89
+ restoreDefaultsForAllFeaturesAndKeys(this.saveDataMap, this.saveDataDefaultsMap);
93
90
  }
94
91
  // On continued runs, the `POST_NEW_LEVEL` callback will not fire, so we do not have to worry
95
92
  // about saved data based on level getting overwritten.
@@ -98,7 +95,7 @@ class SaveDataManager extends Feature_1.Feature {
98
95
  preGameExit = () => {
99
96
  // We unconditionally save variables to disk (because regardless of a save & quit or a death,
100
97
  // persistent variables should be recorded).
101
- (0, saveToDisk_1.saveToDisk)(this.mod, this.saveDataMap, this.saveDataConditionalFuncMap);
98
+ saveToDisk(this.mod, this.saveDataMap, this.saveDataConditionalFuncMap);
102
99
  // Mark that we are going to the menu. (Technically, the `POST_ENTITY_REMOVE` callback may fire
103
100
  // before actually going to the menu, but that must be explicitly handled.)
104
101
  this.inARun = false;
@@ -109,23 +106,23 @@ class SaveDataManager extends Feature_1.Feature {
109
106
  };
110
107
  // ModCallback.POST_NEW_LEVEL (18)
111
108
  postNewLevel = () => {
112
- (0, restoreDefaults_1.restoreDefaultsForAllFeaturesKey)(this.saveDataMap, this.saveDataDefaultsMap, SaveDataKey_1.SaveDataKey.LEVEL);
109
+ restoreDefaultsForAllFeaturesKey(this.saveDataMap, this.saveDataDefaultsMap, SaveDataKey.LEVEL);
113
110
  // We save data to disk at the beginning of every floor (for the 2nd floor and beyond) to
114
111
  // emulate what the game does internally. (This mitigates data loss in the event of a crash).
115
- if (!(0, stage_1.onFirstFloor)()) {
116
- (0, saveToDisk_1.saveToDisk)(this.mod, this.saveDataMap, this.saveDataConditionalFuncMap);
112
+ if (!onFirstFloor()) {
113
+ saveToDisk(this.mod, this.saveDataMap, this.saveDataConditionalFuncMap);
117
114
  }
118
115
  };
119
116
  // ModCallbackCustom.POST_NEW_ROOM_EARLY
120
117
  postNewRoomEarly = () => {
121
- (0, restoreDefaults_1.restoreDefaultsForAllFeaturesKey)(this.saveDataMap, this.saveDataDefaultsMap, SaveDataKey_1.SaveDataKey.ROOM);
118
+ restoreDefaultsForAllFeaturesKey(this.saveDataMap, this.saveDataDefaultsMap, SaveDataKey.ROOM);
122
119
  // Handle the Glowing Hourglass.
123
120
  if (this.restoreGlowingHourGlassDataOnNextRoom) {
124
121
  this.restoreGlowingHourGlassDataOnNextRoom = false;
125
- (0, glowingHourGlass_1.restoreGlowingHourGlassBackup)(this.saveDataMap, this.saveDataConditionalFuncMap, this.saveDataGlowingHourGlassMap, this.classConstructors);
122
+ restoreGlowingHourGlassBackup(this.saveDataMap, this.saveDataConditionalFuncMap, this.saveDataGlowingHourGlassMap, this.classConstructors);
126
123
  }
127
124
  else {
128
- (0, glowingHourGlass_1.makeGlowingHourGlassBackup)(this.saveDataMap, this.saveDataConditionalFuncMap, this.saveDataGlowingHourGlassMap);
125
+ makeGlowingHourGlassBackup(this.saveDataMap, this.saveDataConditionalFuncMap, this.saveDataGlowingHourGlassMap);
129
126
  }
130
127
  };
131
128
  /** @internal */
@@ -134,21 +131,21 @@ class SaveDataManager extends Feature_1.Feature {
134
131
  this.callbacksUsed = [
135
132
  // 3
136
133
  [
137
- isaac_typescript_definitions_1.ModCallback.POST_USE_ITEM,
134
+ ModCallback.POST_USE_ITEM,
138
135
  this.postUseItemGlowingHourGlass,
139
- [isaac_typescript_definitions_1.CollectibleType.GLOWING_HOUR_GLASS],
136
+ [CollectibleType.GLOWING_HOUR_GLASS],
140
137
  ],
141
138
  // 9
142
- [isaac_typescript_definitions_1.ModCallback.POST_PLAYER_INIT, this.postPlayerInit],
139
+ [ModCallback.POST_PLAYER_INIT, this.postPlayerInit],
143
140
  // 17
144
- [isaac_typescript_definitions_1.ModCallback.PRE_GAME_EXIT, this.preGameExit],
141
+ [ModCallback.PRE_GAME_EXIT, this.preGameExit],
145
142
  // 18
146
143
  // We want to avoid a needless dependency on the `GameReorderedCallbacks` feature.
147
144
  // eslint-disable-next-line @typescript-eslint/no-deprecated
148
- [isaac_typescript_definitions_1.ModCallback.POST_NEW_LEVEL, this.postNewLevel],
145
+ [ModCallback.POST_NEW_LEVEL, this.postNewLevel],
149
146
  ];
150
147
  this.customCallbacksUsed = [
151
- [ModCallbackCustom_1.ModCallbackCustom.POST_NEW_ROOM_EARLY, this.postNewRoomEarly],
148
+ [ModCallbackCustom.POST_NEW_ROOM_EARLY, this.postNewRoomEarly],
152
149
  ];
153
150
  this.mod = mod;
154
151
  }
@@ -156,24 +153,24 @@ class SaveDataManager extends Feature_1.Feature {
156
153
  * Recursively traverses an object, collecting all of the class constructors that it encounters.
157
154
  */
158
155
  storeClassConstructorsFromObject(luaMap) {
159
- const tstlClassName = (0, tstlClass_1.getTSTLClassName)(luaMap);
156
+ const tstlClassName = getTSTLClassName(luaMap);
160
157
  if (tstlClassName !== undefined
161
158
  && !NON_USER_DEFINED_CLASS_NAMES.has(tstlClassName)) {
162
159
  this.classConstructors.set(tstlClassName, luaMap);
163
160
  }
164
161
  for (const [_key, value] of luaMap) {
165
- if ((0, types_1.isTable)(value)) {
162
+ if (isTable(value)) {
166
163
  this.storeClassConstructorsFromObject(value);
167
164
  }
168
165
  }
169
166
  }
170
167
  saveDataManager(key, v, conditionalFunc) {
171
- if ((0, tstlClass_1.isTSTLClass)(key)) {
172
- const className = (0, tstlClass_1.getTSTLClassName)(key);
173
- (0, utils_1.assertDefined)(className, 'Failed to get the class name for the submitted class (as part of the "key" parameter) when registering new data with the save data manager.');
168
+ if (isTSTLClass(key)) {
169
+ const className = getTSTLClassName(key);
170
+ assertDefined(className, 'Failed to get the class name for the submitted class (as part of the "key" parameter) when registering new data with the save data manager.');
174
171
  key = className;
175
172
  }
176
- if (!(0, types_1.isString)(key)) {
173
+ if (!isString(key)) {
177
174
  error(`The save data manager requires that keys are strings or TSTL classes. You tried to use a key of type: ${typeof key}`);
178
175
  }
179
176
  if (this.saveDataMap.has(key)) {
@@ -197,7 +194,7 @@ class SaveDataManager extends Feature_1.Feature {
197
194
  }
198
195
  // Make a copy of the initial save data so that we can use it to restore the default values
199
196
  // later on.
200
- const saveDataCopy = (0, deepCopy_1.deepCopy)(v, SerializationType_1.SerializationType.NONE, key);
197
+ const saveDataCopy = deepCopy(v, SerializationType.NONE, key);
201
198
  this.saveDataDefaultsMap.set(key, saveDataCopy);
202
199
  // Store the conditional function for later, if present.
203
200
  if (conditionalFunc !== undefined) {
@@ -217,7 +214,7 @@ class SaveDataManager extends Feature_1.Feature {
217
214
  * @public
218
215
  */
219
216
  saveDataManagerLoad() {
220
- (0, loadFromDisk_1.loadFromDisk)(this.mod, this.saveDataMap, this.classConstructors);
217
+ loadFromDisk(this.mod, this.saveDataMap, this.classConstructors);
221
218
  }
222
219
  /**
223
220
  * The save data manager will automatically save variables to disk at the appropriate times (i.e.
@@ -229,7 +226,7 @@ class SaveDataManager extends Feature_1.Feature {
229
226
  * @public
230
227
  */
231
228
  saveDataManagerSave() {
232
- (0, saveToDisk_1.saveToDisk)(this.mod, this.saveDataMap, this.saveDataConditionalFuncMap);
229
+ saveToDisk(this.mod, this.saveDataMap, this.saveDataConditionalFuncMap);
233
230
  }
234
231
  /**
235
232
  * Sets the global variable of "g" equal to all of the save data variables for this mod.
@@ -262,7 +259,7 @@ class SaveDataManager extends Feature_1.Feature {
262
259
  saveDataManagerRegisterClass(...tstlClasses) {
263
260
  for (const tstlClass of tstlClasses) {
264
261
  const { name } = tstlClass;
265
- (0, utils_1.assertDefined)(
262
+ assertDefined(
266
263
  // Since we are accepting untrusted user input, this might not be a real TSTL class.
267
264
  name, "Failed to register a class with the save data manager due to not being able to derive the name of the class.");
268
265
  this.classConstructors.set(name, tstlClass);
@@ -277,7 +274,7 @@ class SaveDataManager extends Feature_1.Feature {
277
274
  * @public
278
275
  */
279
276
  saveDataManagerRemove(key) {
280
- if (!(0, types_1.isString)(key)) {
277
+ if (!isString(key)) {
281
278
  error(`The save data manager requires that keys are strings. You tried to use a key of type: ${typeof key}`);
282
279
  }
283
280
  if (!this.saveDataMap.has(key)) {
@@ -314,12 +311,12 @@ class SaveDataManager extends Feature_1.Feature {
314
311
  * @public
315
312
  */
316
313
  saveDataManagerReset(key, childObjectKey) {
317
- if (!(0, types_1.isString)(key)) {
314
+ if (!isString(key)) {
318
315
  error(`The save data manager requires that keys are strings. You tried to use a key of type: ${typeof key}`);
319
316
  }
320
317
  const saveData = this.saveDataMap.get(key);
321
- (0, utils_1.assertDefined)(saveData, `The save data manager is not managing save data for a key of: ${key}`);
322
- (0, restoreDefaults_1.restoreDefaultForFeatureKey)(this.saveDataDefaultsMap, key, saveData, childObjectKey);
318
+ assertDefined(saveData, `The save data manager is not managing save data for a key of: ${key}`);
319
+ restoreDefaultForFeatureKey(this.saveDataDefaultsMap, key, saveData, childObjectKey);
323
320
  }
324
321
  /**
325
322
  * Helper function to check to see if the game is in the menu, as far as the save data manager is
@@ -346,39 +343,38 @@ class SaveDataManager extends Feature_1.Feature {
346
343
  * @public
347
344
  */
348
345
  saveDataManagerLogSubscribers() {
349
- (0, log_1.log)("List of save data manager subscribers:");
346
+ log("List of save data manager subscribers:");
350
347
  const keys = Object.keys(this.saveDataMap);
351
348
  keys.sort();
352
349
  for (const key of keys) {
353
- (0, log_1.log)(`- ${key}`);
350
+ log(`- ${key}`);
354
351
  }
355
352
  }
356
353
  }
357
- exports.SaveDataManager = SaveDataManager;
358
354
  __decorate([
359
- decorators_1.Exported
355
+ Exported
360
356
  ], SaveDataManager.prototype, "saveDataManager", null);
361
357
  __decorate([
362
- decorators_1.Exported
358
+ Exported
363
359
  ], SaveDataManager.prototype, "saveDataManagerLoad", null);
364
360
  __decorate([
365
- decorators_1.Exported
361
+ Exported
366
362
  ], SaveDataManager.prototype, "saveDataManagerSave", null);
367
363
  __decorate([
368
- decorators_1.Exported
364
+ Exported
369
365
  ], SaveDataManager.prototype, "saveDataManagerSetGlobal", null);
370
366
  __decorate([
371
- decorators_1.Exported
367
+ Exported
372
368
  ], SaveDataManager.prototype, "saveDataManagerRegisterClass", null);
373
369
  __decorate([
374
- decorators_1.Exported
370
+ Exported
375
371
  ], SaveDataManager.prototype, "saveDataManagerRemove", null);
376
372
  __decorate([
377
- decorators_1.Exported
373
+ Exported
378
374
  ], SaveDataManager.prototype, "saveDataManagerReset", null);
379
375
  __decorate([
380
- decorators_1.Exported
376
+ Exported
381
377
  ], SaveDataManager.prototype, "saveDataManagerInMenu", null);
382
378
  __decorate([
383
- decorators_1.Exported
379
+ Exported
384
380
  ], SaveDataManager.prototype, "saveDataManagerLogSubscribers", null);