isaacscript-common 87.9.7 → 87.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/dist/cachedEnumValues.js +29 -32
  2. package/dist/callbackClasses.js +142 -289
  3. package/dist/callbacks.js +147 -183
  4. package/dist/classes/DefaultMap.js +4 -8
  5. package/dist/classes/ModFeature.js +21 -25
  6. package/dist/classes/ModUpgraded.js +43 -47
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
  9. package/dist/classes/callbacks/InputActionFilter.js +4 -8
  10. package/dist/classes/callbacks/InputActionPlayer.js +4 -8
  11. package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
  12. package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
  13. package/dist/classes/callbacks/PostBombExploded.js +8 -12
  14. package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
  15. package/dist/classes/callbacks/PostBombInitLate.js +6 -10
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
  18. package/dist/classes/callbacks/PostBoneSwing.js +7 -11
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
  20. package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
  21. package/dist/classes/callbacks/PostCustomRevive.js +4 -8
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
  23. package/dist/classes/callbacks/PostDoorRender.js +8 -12
  24. package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
  26. package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
  31. package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
  32. package/dist/classes/callbacks/PostEsauJr.js +4 -8
  33. package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
  34. package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
  35. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
  36. package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
  37. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
  38. package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
  39. package/dist/classes/callbacks/PostFirstFlip.js +4 -8
  40. package/dist/classes/callbacks/PostFlip.js +4 -8
  41. package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
  42. package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
  43. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
  44. package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
  45. package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
  46. package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
  47. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
  48. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
  49. package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
  50. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
  51. package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
  52. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
  53. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
  54. package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
  55. package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
  56. package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
  57. package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
  58. package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
  59. package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
  60. package/dist/classes/callbacks/PostItemDischarge.js +23 -27
  61. package/dist/classes/callbacks/PostItemPickup.js +6 -10
  62. package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
  63. package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
  64. package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
  65. package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
  66. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
  67. package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
  68. package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
  69. package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
  70. package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
  71. package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
  72. package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
  73. package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
  74. package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
  75. package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
  76. package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
  77. package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
  78. package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
  79. package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
  80. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
  81. package/dist/classes/callbacks/PostPickupChanged.js +6 -10
  82. package/dist/classes/callbacks/PostPickupCollect.js +8 -12
  83. package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
  84. package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
  85. package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
  86. package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
  87. package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
  88. package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
  89. package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
  90. package/dist/classes/callbacks/PostPitRender.js +8 -12
  91. package/dist/classes/callbacks/PostPitUpdate.js +8 -12
  92. package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
  93. package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
  94. package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
  95. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
  96. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
  97. package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
  98. package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
  99. package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
  100. package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
  101. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
  102. package/dist/classes/callbacks/PostPoopRender.js +8 -12
  103. package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
  104. package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
  105. package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
  106. package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
  107. package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
  108. package/dist/classes/callbacks/PostProjectileKill.js +8 -12
  109. package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
  110. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
  111. package/dist/classes/callbacks/PostPurchase.js +21 -25
  112. package/dist/classes/callbacks/PostRockRender.js +8 -12
  113. package/dist/classes/callbacks/PostRockUpdate.js +8 -12
  114. package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
  115. package/dist/classes/callbacks/PostSacrifice.js +12 -16
  116. package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
  117. package/dist/classes/callbacks/PostSlotCollision.js +8 -12
  118. package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
  119. package/dist/classes/callbacks/PostSlotInit.js +6 -10
  120. package/dist/classes/callbacks/PostSlotRender.js +6 -10
  121. package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
  122. package/dist/classes/callbacks/PostSpikesRender.js +8 -12
  123. package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
  124. package/dist/classes/callbacks/PostTNTRender.js +8 -12
  125. package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
  126. package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
  127. package/dist/classes/callbacks/PostTearInitLate.js +6 -10
  128. package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
  129. package/dist/classes/callbacks/PostTearKill.js +8 -12
  130. package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
  131. package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
  132. package/dist/classes/callbacks/PostTransformation.js +10 -14
  133. package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
  134. package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
  135. package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
  136. package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
  137. package/dist/classes/callbacks/PreCustomRevive.js +6 -10
  138. package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
  139. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
  140. package/dist/classes/callbacks/PreGetPedestal.js +8 -12
  141. package/dist/classes/callbacks/PreItemPickup.js +6 -10
  142. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
  143. package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
  144. package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
  145. package/dist/classes/callbacks/PreNewLevel.js +10 -14
  146. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
  147. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
  148. package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
  149. package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
  150. package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
  151. package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
  152. package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
  153. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
  154. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
  155. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
  156. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
  157. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
  158. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
  159. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
  160. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
  161. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
  162. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
  163. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
  164. package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
  165. package/dist/classes/features/other/CharacterStats.js +9 -13
  166. package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
  167. package/dist/classes/features/other/CustomHotkeys.js +15 -19
  168. package/dist/classes/features/other/CustomItemPools.js +20 -24
  169. package/dist/classes/features/other/CustomPickups.js +15 -19
  170. package/dist/classes/features/other/CustomStages.js +116 -153
  171. package/dist/classes/features/other/CustomTrapdoors.js +119 -123
  172. package/dist/classes/features/other/DebugDisplay.js +77 -81
  173. package/dist/classes/features/other/DeployJSONRoom.js +65 -69
  174. package/dist/classes/features/other/DisableAllSound.js +14 -18
  175. package/dist/classes/features/other/DisableInputs.js +24 -28
  176. package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
  177. package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
  178. package/dist/classes/features/other/FadeInRemover.js +9 -13
  179. package/dist/classes/features/other/FastReset.js +18 -22
  180. package/dist/classes/features/other/FlyingDetection.js +10 -14
  181. package/dist/classes/features/other/ForgottenSwitch.js +8 -12
  182. package/dist/classes/features/other/ItemPoolDetection.js +35 -39
  183. package/dist/classes/features/other/ModdedElementDetection.js +43 -47
  184. package/dist/classes/features/other/ModdedElementSets.js +135 -139
  185. package/dist/classes/features/other/NoSirenSteal.js +7 -11
  186. package/dist/classes/features/other/Pause.js +48 -52
  187. package/dist/classes/features/other/PersistentEntities.js +16 -20
  188. package/dist/classes/features/other/PickupIndexCreation.js +31 -35
  189. package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
  190. package/dist/classes/features/other/PonyDetection.js +22 -26
  191. package/dist/classes/features/other/PressInput.js +10 -14
  192. package/dist/classes/features/other/PreventChildEntities.js +6 -10
  193. package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
  194. package/dist/classes/features/other/RerunDetection.js +11 -15
  195. package/dist/classes/features/other/RoomClearFrame.js +11 -15
  196. package/dist/classes/features/other/RoomHistory.js +30 -34
  197. package/dist/classes/features/other/RunInNFrames.js +24 -28
  198. package/dist/classes/features/other/RunNextRoom.js +8 -12
  199. package/dist/classes/features/other/RunNextRun.js +8 -12
  200. package/dist/classes/features/other/SaveDataManager.js +61 -65
  201. package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
  202. package/dist/classes/features/other/StageHistory.js +76 -80
  203. package/dist/classes/features/other/StartAmbush.js +12 -16
  204. package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
  205. package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
  206. package/dist/classes/features/other/customStages/backdrop.js +68 -71
  207. package/dist/classes/features/other/customStages/constants.js +7 -10
  208. package/dist/classes/features/other/customStages/gridEntities.js +23 -30
  209. package/dist/classes/features/other/customStages/shadows.js +27 -30
  210. package/dist/classes/features/other/customStages/streakText.js +55 -60
  211. package/dist/classes/features/other/customStages/utils.js +13 -17
  212. package/dist/classes/features/other/customStages/v.js +4 -7
  213. package/dist/classes/features/other/customStages/versusScreen.js +46 -50
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
  227. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
  229. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
  231. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
  232. package/dist/classes/features/other/debugDisplay/utils.js +6 -10
  233. package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
  234. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
  235. package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
  236. package/dist/classes/features/other/saveDataManager/constants.js +1 -4
  237. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
  238. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
  239. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
  240. package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
  241. package/dist/classes/private/CustomCallback.js +4 -8
  242. package/dist/classes/private/Feature.js +1 -5
  243. package/dist/core/cachedClasses.js +12 -15
  244. package/dist/core/constants.js +126 -130
  245. package/dist/core/constantsFirstLast.js +22 -25
  246. package/dist/core/constantsVanilla.js +25 -28
  247. package/dist/core/upgradeMod.js +7 -10
  248. package/dist/decorators.js +6 -10
  249. package/dist/enums/AmbushType.js +2 -5
  250. package/dist/enums/CornerType.js +2 -5
  251. package/dist/enums/HealthType.js +2 -5
  252. package/dist/enums/ISCFeature.js +2 -5
  253. package/dist/enums/LadderSubTypeCustom.js +2 -5
  254. package/dist/enums/ModCallbackCustom.js +2 -5
  255. package/dist/enums/MysteriousPaperEffect.js +2 -5
  256. package/dist/enums/PlayerStat.js +2 -5
  257. package/dist/enums/PocketItemType.js +2 -5
  258. package/dist/enums/RockAltType.js +2 -5
  259. package/dist/enums/SaveDataKey.js +2 -5
  260. package/dist/enums/SerializationType.js +2 -5
  261. package/dist/enums/SlotDestructionType.js +2 -5
  262. package/dist/enums/private/GridEntityTypeCustom.js +1 -4
  263. package/dist/enums/private/SerializationBrand.js +2 -5
  264. package/dist/enums/private/StageTravelState.js +2 -5
  265. package/dist/enums/private/TrapdoorAnimation.js +2 -5
  266. package/dist/enums/private/UIStreakAnimation.js +2 -5
  267. package/dist/features.js +138 -141
  268. package/dist/functions/ambush.js +9 -12
  269. package/dist/functions/array.js +45 -76
  270. package/dist/functions/arrayLua.js +7 -16
  271. package/dist/functions/benchmark.js +4 -7
  272. package/dist/functions/bitSet128.js +19 -26
  273. package/dist/functions/bitwise.js +14 -23
  274. package/dist/functions/bombs.js +1 -4
  275. package/dist/functions/bosses.js +68 -85
  276. package/dist/functions/cards.js +44 -62
  277. package/dist/functions/challenges.js +28 -39
  278. package/dist/functions/characters.js +68 -87
  279. package/dist/functions/charge.js +41 -52
  280. package/dist/functions/chargeBar.js +2 -6
  281. package/dist/functions/collectibleTag.js +9 -13
  282. package/dist/functions/collectibles.js +133 -172
  283. package/dist/functions/color.js +29 -38
  284. package/dist/functions/console.js +4 -8
  285. package/dist/functions/curses.js +6 -10
  286. package/dist/functions/debugFunctions.js +7 -14
  287. package/dist/functions/decorators.js +13 -19
  288. package/dist/functions/deepCopy.js +96 -99
  289. package/dist/functions/deepCopyTests.js +56 -59
  290. package/dist/functions/dimensions.js +10 -14
  291. package/dist/functions/direction.js +22 -30
  292. package/dist/functions/doors.js +104 -154
  293. package/dist/functions/easing.js +30 -62
  294. package/dist/functions/effects.js +6 -10
  295. package/dist/functions/emptyRoom.js +30 -34
  296. package/dist/functions/entities.js +88 -115
  297. package/dist/functions/entitiesSpecific.js +83 -125
  298. package/dist/functions/entityTypes.js +3 -6
  299. package/dist/functions/enums.js +27 -41
  300. package/dist/functions/external.js +4 -8
  301. package/dist/functions/familiars.js +17 -25
  302. package/dist/functions/flag.js +10 -19
  303. package/dist/functions/frames.js +31 -51
  304. package/dist/functions/globals.js +26 -66
  305. package/dist/functions/gridEntities.js +231 -269
  306. package/dist/functions/gridEntitiesSpecific.js +86 -126
  307. package/dist/functions/gridIndex.js +8 -11
  308. package/dist/functions/hash.js +1 -4
  309. package/dist/functions/hex.js +7 -11
  310. package/dist/functions/input.js +65 -88
  311. package/dist/functions/isaacAPIClass.js +28 -53
  312. package/dist/functions/itemPool.js +39 -48
  313. package/dist/functions/jsonHelpers.js +5 -42
  314. package/dist/functions/jsonRoom.js +39 -46
  315. package/dist/functions/kColor.js +30 -39
  316. package/dist/functions/language.js +3 -6
  317. package/dist/functions/level.js +20 -26
  318. package/dist/functions/levelGrid.js +81 -108
  319. package/dist/functions/log.js +6 -12
  320. package/dist/functions/logEntities.js +49 -59
  321. package/dist/functions/logMisc.js +183 -214
  322. package/dist/functions/map.js +10 -20
  323. package/dist/functions/math.js +16 -31
  324. package/dist/functions/merge.js +48 -51
  325. package/dist/functions/mergeTests.js +34 -37
  326. package/dist/functions/minimap.js +34 -46
  327. package/dist/functions/modFeatures.js +1 -4
  328. package/dist/functions/newArray.js +5 -8
  329. package/dist/functions/nextStage.js +63 -67
  330. package/dist/functions/npcDataStructures.js +9 -20
  331. package/dist/functions/npcs.js +37 -45
  332. package/dist/functions/pickupVariants.js +26 -39
  333. package/dist/functions/pickups.js +43 -59
  334. package/dist/functions/pickupsSpecific.js +76 -118
  335. package/dist/functions/pills.js +52 -72
  336. package/dist/functions/playerCenter.js +13 -16
  337. package/dist/functions/playerCollectibles.js +59 -79
  338. package/dist/functions/playerDataStructures.js +18 -29
  339. package/dist/functions/playerEffects.js +12 -19
  340. package/dist/functions/playerHealth.js +91 -113
  341. package/dist/functions/playerIndex.js +22 -33
  342. package/dist/functions/playerTrinkets.js +31 -43
  343. package/dist/functions/players.js +87 -126
  344. package/dist/functions/pocketItems.js +33 -43
  345. package/dist/functions/positionVelocity.js +23 -32
  346. package/dist/functions/pressurePlate.js +7 -10
  347. package/dist/functions/projectiles.js +11 -15
  348. package/dist/functions/random.js +8 -13
  349. package/dist/functions/readOnly.js +3 -8
  350. package/dist/functions/render.js +7 -12
  351. package/dist/functions/revive.js +38 -45
  352. package/dist/functions/rng.js +31 -44
  353. package/dist/functions/rockAlt.js +18 -22
  354. package/dist/functions/roomData.js +24 -40
  355. package/dist/functions/roomGrid.js +17 -25
  356. package/dist/functions/roomShape.js +39 -55
  357. package/dist/functions/roomShapeWalls.js +67 -71
  358. package/dist/functions/roomTransition.js +13 -17
  359. package/dist/functions/rooms.js +181 -244
  360. package/dist/functions/run.js +29 -39
  361. package/dist/functions/seeds.js +6 -10
  362. package/dist/functions/serialization.js +27 -34
  363. package/dist/functions/set.js +24 -40
  364. package/dist/functions/slots.js +18 -22
  365. package/dist/functions/sort.js +9 -15
  366. package/dist/functions/sound.js +12 -16
  367. package/dist/functions/spawnCollectible.js +21 -26
  368. package/dist/functions/sprites.js +16 -24
  369. package/dist/functions/stage.js +122 -164
  370. package/dist/functions/stats.js +37 -43
  371. package/dist/functions/storyBosses.js +36 -40
  372. package/dist/functions/string.js +19 -33
  373. package/dist/functions/table.js +21 -31
  374. package/dist/functions/tears.js +6 -14
  375. package/dist/functions/transformations.js +35 -42
  376. package/dist/functions/trinketGive.js +29 -36
  377. package/dist/functions/trinkets.js +45 -60
  378. package/dist/functions/tstlClass.js +11 -20
  379. package/dist/functions/types.js +22 -46
  380. package/dist/functions/ui.js +25 -40
  381. package/dist/functions/utils.js +22 -36
  382. package/dist/functions/vector.js +33 -46
  383. package/dist/functions/versusScreen.js +12 -18
  384. package/dist/functions/weighted.js +8 -12
  385. package/dist/index.js +150 -166
  386. package/dist/indexLua.js +151 -167
  387. package/dist/interfaces/ChargeBarSprites.js +1 -2
  388. package/dist/interfaces/Corner.js +1 -2
  389. package/dist/interfaces/CustomStageTSConfig.js +1 -2
  390. package/dist/interfaces/GridEntityCustomData.js +1 -2
  391. package/dist/interfaces/JSONRoomsFile.js +1 -2
  392. package/dist/interfaces/PlayerHealth.js +1 -2
  393. package/dist/interfaces/PlayerStats.js +2 -4
  394. package/dist/interfaces/PocketItemDescription.js +1 -2
  395. package/dist/interfaces/RoomDescription.js +1 -2
  396. package/dist/interfaces/SaveData.js +1 -2
  397. package/dist/interfaces/StageHistoryEntry.js +1 -2
  398. package/dist/interfaces/TSTLClassMetatable.js +1 -2
  399. package/dist/interfaces/TrinketSituation.js +1 -2
  400. package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
  401. package/dist/interfaces/private/CustomStage.js +1 -2
  402. package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
  403. package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
  404. package/dist/isaacscript-common.lua +1 -1
  405. package/dist/maps/PHDPillConversionsMap.js +19 -22
  406. package/dist/maps/cardNameToTypeMap.js +205 -208
  407. package/dist/maps/characterNameToTypeMap.js +85 -88
  408. package/dist/maps/collectibleNameToTypeMap.js +5 -8
  409. package/dist/maps/defaultPlayerStatMap.js +10 -13
  410. package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
  411. package/dist/maps/falsePHDPillConversionsMap.js +33 -36
  412. package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
  413. package/dist/maps/gridEntityXMLMap.js +52 -55
  414. package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
  415. package/dist/maps/keyboardToStringMap.js +66 -69
  416. package/dist/maps/pillNameToEffectMap.js +83 -86
  417. package/dist/maps/roomNameToTypeMap.js +38 -41
  418. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
  419. package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
  420. package/dist/maps/trinketNameToTypeMap.js +5 -8
  421. package/dist/objects/LRoomShapeToRectangles.js +22 -25
  422. package/dist/objects/backdropTypeToRockAltType.js +65 -68
  423. package/dist/objects/batteryNames.js +8 -11
  424. package/dist/objects/bombNames.js +11 -14
  425. package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
  426. package/dist/objects/bossNamePNGFileNames.js +104 -107
  427. package/dist/objects/bossNames.js +105 -108
  428. package/dist/objects/bossPortraitPNGFileNames.js +104 -107
  429. package/dist/objects/cardDescriptions.js +101 -104
  430. package/dist/objects/cardNames.js +101 -104
  431. package/dist/objects/challengeBosses.js +49 -52
  432. package/dist/objects/challengeCharacters.js +49 -52
  433. package/dist/objects/challengeCollectibleTypes.js +160 -163
  434. package/dist/objects/challengeNames.js +49 -52
  435. package/dist/objects/challengeTrinketType.js +48 -51
  436. package/dist/objects/characterDamageMultipliers.js +44 -47
  437. package/dist/objects/characterNames.js +44 -47
  438. package/dist/objects/characterSpritePNGFileNames.js +44 -47
  439. package/dist/objects/characterStartingCollectibleTypes.js +49 -52
  440. package/dist/objects/characterStartingTrinketTypes.js +44 -47
  441. package/dist/objects/chestNames.js +15 -18
  442. package/dist/objects/coinNames.js +11 -14
  443. package/dist/objects/coinSubTypeToValue.js +11 -14
  444. package/dist/objects/collectibleDescriptions.js +725 -728
  445. package/dist/objects/collectibleNames.js +725 -728
  446. package/dist/objects/colors.js +1 -4
  447. package/dist/objects/directionNames.js +7 -10
  448. package/dist/objects/directionToDegrees.js +7 -10
  449. package/dist/objects/directionToMoveAction.js +7 -10
  450. package/dist/objects/directionToShootAction.js +7 -10
  451. package/dist/objects/directionToVector.js +9 -12
  452. package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
  453. package/dist/objects/doorSlotToDirection.js +11 -14
  454. package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
  455. package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
  456. package/dist/objects/heartNames.js +16 -19
  457. package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
  458. package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
  459. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
  460. package/dist/objects/kColors.js +1 -4
  461. package/dist/objects/keyNames.js +8 -11
  462. package/dist/objects/languageNames.js +9 -12
  463. package/dist/objects/oppositeDoorSlots.js +11 -14
  464. package/dist/objects/pillEffectClasses.js +53 -56
  465. package/dist/objects/pillEffectNames.js +53 -56
  466. package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
  467. package/dist/objects/pillEffectTypes.js +53 -56
  468. package/dist/objects/playerNamePNGFileNames.js +44 -47
  469. package/dist/objects/playerPortraitPNGFileNames.js +44 -47
  470. package/dist/objects/roomShapeBounds.js +23 -26
  471. package/dist/objects/roomShapeCorners.js +128 -131
  472. package/dist/objects/roomShapeLayoutSizes.js +23 -26
  473. package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
  474. package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
  475. package/dist/objects/roomShapeToDoorSlots.js +48 -51
  476. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
  477. package/dist/objects/roomShapeToGridWidth.js +14 -17
  478. package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
  479. package/dist/objects/roomShapeVolumes.js +21 -24
  480. package/dist/objects/roomTypeNames.js +32 -35
  481. package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
  482. package/dist/objects/sackNames.js +6 -9
  483. package/dist/objects/slotNames.js +21 -24
  484. package/dist/objects/stageIDNames.js +33 -36
  485. package/dist/objects/stageToMusic.js +69 -72
  486. package/dist/objects/stageToStageID.js +90 -93
  487. package/dist/objects/stageTypeSuffixes.js +8 -11
  488. package/dist/objects/transformationNames.js +16 -19
  489. package/dist/objects/trinketDescriptions.js +192 -195
  490. package/dist/objects/trinketNames.js +192 -195
  491. package/dist/objects/versusScreenBackgroundColors.js +39 -42
  492. package/dist/objects/versusScreenDirtSpotColors.js +39 -42
  493. package/dist/patchErrorFunctions.js +4 -7
  494. package/dist/serialization.js +6 -9
  495. package/dist/sets/LRoomShapesSet.js +7 -10
  496. package/dist/sets/bigRoomShapesSet.js +10 -13
  497. package/dist/sets/bossSets.js +261 -264
  498. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
  499. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
  500. package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
  501. package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
  502. package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
  503. package/dist/sets/consoleCommandsSet.js +2 -5
  504. package/dist/sets/entitiesWithArmorSet.js +44 -47
  505. package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
  506. package/dist/sets/itemConfigCardTypesForCards.js +7 -10
  507. package/dist/sets/lostStyleCharactersSet.js +8 -11
  508. package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
  509. package/dist/sets/narrowRoomShapesSet.js +7 -10
  510. package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
  511. package/dist/sets/redHeartSubTypesSet.js +6 -9
  512. package/dist/sets/repentanceBossIDsSet.js +26 -29
  513. package/dist/sets/sinEntityTypesSet.js +10 -13
  514. package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
  515. package/dist/shaderCrashFix.js +4 -7
  516. package/dist/shouldFire.js +28 -58
  517. package/dist/types/AddSubtract.js +1 -2
  518. package/dist/types/AllButFirst.js +1 -2
  519. package/dist/types/AllButLast.js +1 -2
  520. package/dist/types/AnyClass.js +1 -2
  521. package/dist/types/AnyEntity.js +1 -2
  522. package/dist/types/AnyFunction.js +1 -2
  523. package/dist/types/AnyGridEntity.js +1 -2
  524. package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
  525. package/dist/types/ConversionHeartSubType.js +1 -2
  526. package/dist/types/Decrement.js +1 -2
  527. package/dist/types/ERange.js +1 -2
  528. package/dist/types/EntityID.js +1 -2
  529. package/dist/types/FunctionTuple.js +1 -2
  530. package/dist/types/GridEntityID.js +1 -2
  531. package/dist/types/HasFunction.js +1 -2
  532. package/dist/types/IRange.js +1 -2
  533. package/dist/types/Immutable.js +1 -2
  534. package/dist/types/Increment.js +1 -2
  535. package/dist/types/LowercaseKeys.js +1 -2
  536. package/dist/types/NaturalNumbersLessThan.js +1 -2
  537. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
  538. package/dist/types/ObjectValues.js +1 -2
  539. package/dist/types/PickingUpItem.js +15 -22
  540. package/dist/types/PickupIndex.js +1 -2
  541. package/dist/types/PlayerIndex.js +1 -2
  542. package/dist/types/PossibleStatType.js +1 -2
  543. package/dist/types/PublicInterface.js +1 -2
  544. package/dist/types/ReadonlyMap.js +1 -4
  545. package/dist/types/ReadonlyRecord.js +1 -2
  546. package/dist/types/ReadonlySet.js +1 -4
  547. package/dist/types/StartsWithLowercase.js +1 -2
  548. package/dist/types/StartsWithUppercase.js +1 -2
  549. package/dist/types/TSTLClass.js +1 -2
  550. package/dist/types/Tuple.js +1 -2
  551. package/dist/types/TupleKeys.js +1 -2
  552. package/dist/types/TupleToIntersection.js +1 -2
  553. package/dist/types/TupleToUnion.js +1 -2
  554. package/dist/types/TupleWithLengthBetween.js +1 -2
  555. package/dist/types/TupleWithMaxLength.js +1 -2
  556. package/dist/types/UnionToIntersection.js +1 -2
  557. package/dist/types/UppercaseKeys.js +1 -2
  558. package/dist/types/WeightedArray.js +1 -2
  559. package/dist/types/WidenLiteral.js +1 -2
  560. package/dist/types/Writable.js +1 -2
  561. package/dist/types/private/CallbackTuple.js +1 -2
  562. package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
  563. package/package.json +3 -3
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomRevive = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const cachedClasses_1 = require("../../../core/cachedClasses");
6
- const ISCFeature_1 = require("../../../enums/ISCFeature");
7
- const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
8
- const external_1 = require("../../../functions/external");
9
- const log_1 = require("../../../functions/log");
10
- const playerIndex_1 = require("../../../functions/playerIndex");
11
- const players_1 = require("../../../functions/players");
12
- const Feature_1 = require("../../private/Feature");
1
+ import { CollectibleType, FamiliarVariant, ModCallback, PlayerType, SoundEffect, } from "isaac-typescript-definitions";
2
+ import { sfxManager } from "../../../core/cachedClasses";
3
+ import { ISCFeature } from "../../../enums/ISCFeature";
4
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
5
+ import { rebirthItemTrackerRemoveCollectible } from "../../../functions/external";
6
+ import { log, logError } from "../../../functions/log";
7
+ import { getPlayerFromIndex, getPlayerIndex, } from "../../../functions/playerIndex";
8
+ import { isCharacter } from "../../../functions/players";
9
+ import { Feature } from "../../private/Feature";
13
10
  const DEBUG = false;
14
11
  var CustomReviveState;
15
12
  (function (CustomReviveState) {
@@ -28,7 +25,7 @@ const v = {
28
25
  dyingPlayerIndex: null,
29
26
  },
30
27
  };
31
- class CustomRevive extends Feature_1.Feature {
28
+ export class CustomRevive extends Feature {
32
29
  preCustomRevive;
33
30
  postCustomRevive;
34
31
  runInNFrames;
@@ -39,7 +36,7 @@ class CustomRevive extends Feature_1.Feature {
39
36
  }
40
37
  // The 1-up sound will fire before the item holding animation begins, so we mute it on every
41
38
  // render frame.
42
- cachedClasses_1.sfxManager.Stop(isaac_typescript_definitions_1.SoundEffect.ONE_UP);
39
+ sfxManager.Stop(SoundEffect.ONE_UP);
43
40
  };
44
41
  // ModCallback.POST_FAMILIAR_INIT (7)
45
42
  // FamiliarVariant.ONE_UP (41)
@@ -73,25 +70,25 @@ class CustomRevive extends Feature_1.Feature {
73
70
  v = v;
74
71
  constructor(preCustomRevive, postCustomRevive, runInNFrames) {
75
72
  super();
76
- this.featuresUsed = [ISCFeature_1.ISCFeature.RUN_IN_N_FRAMES];
73
+ this.featuresUsed = [ISCFeature.RUN_IN_N_FRAMES];
77
74
  this.callbacksUsed = [
78
75
  // 2
79
- [isaac_typescript_definitions_1.ModCallback.POST_RENDER, this.postRender],
76
+ [ModCallback.POST_RENDER, this.postRender],
80
77
  // 7
81
78
  [
82
- isaac_typescript_definitions_1.ModCallback.POST_FAMILIAR_INIT,
79
+ ModCallback.POST_FAMILIAR_INIT,
83
80
  this.postFamiliarInitOneUp,
84
- [isaac_typescript_definitions_1.FamiliarVariant.ONE_UP],
81
+ [FamiliarVariant.ONE_UP],
85
82
  ],
86
83
  ];
87
84
  this.customCallbacksUsed = [
88
- [ModCallbackCustom_1.ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
85
+ [ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
89
86
  [
90
- ModCallbackCustom_1.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
87
+ ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
91
88
  this.postPEffectUpdateReordered,
92
89
  ],
93
- [ModCallbackCustom_1.ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE, this.postPlayerFatalDamage],
94
- [ModCallbackCustom_1.ModCallbackCustom.PRE_BERSERK_DEATH, this.preBerserkDeath],
90
+ [ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE, this.postPlayerFatalDamage],
91
+ [ModCallbackCustom.PRE_BERSERK_DEATH, this.preBerserkDeath],
95
92
  ];
96
93
  this.preCustomRevive = preCustomRevive;
97
94
  this.postCustomRevive = postCustomRevive;
@@ -104,12 +101,12 @@ class CustomRevive extends Feature_1.Feature {
104
101
  if (v.run.dyingPlayerIndex === null) {
105
102
  return;
106
103
  }
107
- const playerIndex = (0, playerIndex_1.getPlayerIndex)(player);
104
+ const playerIndex = getPlayerIndex(player);
108
105
  if (playerIndex !== v.run.dyingPlayerIndex) {
109
106
  return;
110
107
  }
111
108
  let playerToCheckHoldingItem = player;
112
- if ((0, players_1.isCharacter)(player, isaac_typescript_definitions_1.PlayerType.SOUL_B)) {
109
+ if (isCharacter(player, PlayerType.SOUL_B)) {
113
110
  const forgottenBody = player.GetOtherTwin();
114
111
  if (forgottenBody !== undefined) {
115
112
  playerToCheckHoldingItem = forgottenBody;
@@ -141,30 +138,29 @@ class CustomRevive extends Feature_1.Feature {
141
138
  }
142
139
  v.run.state = CustomReviveState.WAITING_FOR_ROOM_TRANSITION;
143
140
  v.run.revivalType = revivalType;
144
- v.run.dyingPlayerIndex = (0, playerIndex_1.getPlayerIndex)(player);
141
+ v.run.dyingPlayerIndex = getPlayerIndex(player);
145
142
  this.logStateChanged();
146
- player.AddCollectible(isaac_typescript_definitions_1.CollectibleType.ONE_UP, 0, false);
147
- (0, external_1.rebirthItemTrackerRemoveCollectible)(isaac_typescript_definitions_1.CollectibleType.ONE_UP);
143
+ player.AddCollectible(CollectibleType.ONE_UP, 0, false);
144
+ rebirthItemTrackerRemoveCollectible(CollectibleType.ONE_UP);
148
145
  // The player should always be dead one frame from now. If they are not, then something has gone
149
146
  // wrong, probably with the `isDamageToPlayerFatal` function. Since end-user code is already
150
147
  // assuming that a custom revive is occurring, explicitly kill the player.
151
- const playerIndex = (0, playerIndex_1.getPlayerIndex)(player);
148
+ const playerIndex = getPlayerIndex(player);
152
149
  this.runInNFrames.runNextGameFrame(() => {
153
- const futurePlayer = (0, playerIndex_1.getPlayerFromIndex)(playerIndex);
150
+ const futurePlayer = getPlayerFromIndex(playerIndex);
154
151
  if (futurePlayer === undefined) {
155
152
  return;
156
153
  }
157
154
  if (futurePlayer.IsDead()) {
158
155
  return;
159
156
  }
160
- (0, log_1.logError)("The player is still alive after initializing a custom revive. Explicitly killing the player.");
157
+ logError("The player is still alive after initializing a custom revive. Explicitly killing the player.");
161
158
  futurePlayer.Kill();
162
159
  });
163
160
  }
164
161
  logStateChanged() {
165
162
  if (DEBUG) {
166
- (0, log_1.log)(`Custom revive state changed: ${CustomReviveState[v.run.state]} (${v.run.state})`);
163
+ log(`Custom revive state changed: ${CustomReviveState[v.run.state]} (${v.run.state})`);
167
164
  }
168
165
  }
169
166
  }
170
- exports.CustomRevive = CustomRevive;
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EsauJrDetection = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const cachedClasses_1 = require("../../../core/cachedClasses");
6
- const players_1 = require("../../../functions/players");
7
- const Feature_1 = require("../../private/Feature");
1
+ import { CollectibleType, ModCallback } from "isaac-typescript-definitions";
2
+ import { game } from "../../../core/cachedClasses";
3
+ import { getPlayersWithControllerIndex } from "../../../functions/players";
4
+ import { Feature } from "../../private/Feature";
8
5
  const v = {
9
6
  run: {
10
7
  usedEsauJrFrame: null,
@@ -12,12 +9,12 @@ const v = {
12
9
  usedEsauJrAtLeastOnce: false,
13
10
  },
14
11
  };
15
- class EsauJrDetection extends Feature_1.Feature {
12
+ export class EsauJrDetection extends Feature {
16
13
  postEsauJr;
17
14
  postFirstEsauJr;
18
15
  // ModCallback.POST_UPDATE (1)
19
16
  postUpdate = () => {
20
- const gameFrameCount = cachedClasses_1.game.GetFrameCount();
17
+ const gameFrameCount = game.GetFrameCount();
21
18
  // Check to see if it is the frame after the player has used Esau Jr.
22
19
  if (v.run.usedEsauJrFrame === null
23
20
  || gameFrameCount < v.run.usedEsauJrFrame + 1) {
@@ -29,7 +26,7 @@ class EsauJrDetection extends Feature_1.Feature {
29
26
  if (v.run.usedEsauJrControllerIndex === null) {
30
27
  return;
31
28
  }
32
- const players = (0, players_1.getPlayersWithControllerIndex)(v.run.usedEsauJrControllerIndex);
29
+ const players = getPlayersWithControllerIndex(v.run.usedEsauJrControllerIndex);
33
30
  v.run.usedEsauJrControllerIndex = null;
34
31
  const player = players[0];
35
32
  if (player === undefined) {
@@ -44,7 +41,7 @@ class EsauJrDetection extends Feature_1.Feature {
44
41
  // ModCallback.POST_USE_ITEM (3)
45
42
  // CollectibleType.ESAU_JR (703)
46
43
  postUseItemEsauJr = (_collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData) => {
47
- const gameFrameCount = cachedClasses_1.game.GetFrameCount();
44
+ const gameFrameCount = game.GetFrameCount();
48
45
  // The player only changes to Esau Jr. on the frame after the item is used.
49
46
  v.run.usedEsauJrFrame = gameFrameCount + 1;
50
47
  v.run.usedEsauJrControllerIndex = player.ControllerIndex;
@@ -55,16 +52,15 @@ class EsauJrDetection extends Feature_1.Feature {
55
52
  super();
56
53
  this.callbacksUsed = [
57
54
  // 1
58
- [isaac_typescript_definitions_1.ModCallback.POST_UPDATE, this.postUpdate],
55
+ [ModCallback.POST_UPDATE, this.postUpdate],
59
56
  // 3
60
57
  [
61
- isaac_typescript_definitions_1.ModCallback.POST_USE_ITEM,
58
+ ModCallback.POST_USE_ITEM,
62
59
  this.postUseItemEsauJr,
63
- [isaac_typescript_definitions_1.CollectibleType.ESAU_JR],
60
+ [CollectibleType.ESAU_JR],
64
61
  ],
65
62
  ];
66
63
  this.postEsauJr = postEsauJr;
67
64
  this.postFirstEsauJr = postFirstEsauJr;
68
65
  }
69
66
  }
70
- exports.EsauJrDetection = EsauJrDetection;
@@ -1,22 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FlipDetection = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const players_1 = require("../../../functions/players");
6
- const Feature_1 = require("../../private/Feature");
1
+ import { CollectibleType, ModCallback, PlayerType, } from "isaac-typescript-definitions";
2
+ import { getPlayersOfType, isTaintedLazarus } from "../../../functions/players";
3
+ import { Feature } from "../../private/Feature";
7
4
  const v = {
8
5
  run: {
9
6
  /** We don't consider the case of a multiplayer game with more than one Tainted Lazarus. */
10
7
  usedFlipAtLeastOnce: false,
11
8
  },
12
9
  };
13
- class FlipDetection extends Feature_1.Feature {
10
+ export class FlipDetection extends Feature {
14
11
  postFlip;
15
12
  postFirstFlip;
16
13
  // ModCallback.POST_USE_ITEM (3)
17
14
  // CollectibleType.FLIP (711)
18
15
  postUseItemFlip = (_collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData) => {
19
- if (!(0, players_1.isTaintedLazarus)(player)) {
16
+ if (!isTaintedLazarus(player)) {
20
17
  return undefined;
21
18
  }
22
19
  // The player passed as part of the callback will be the old Lazarus that used the Flip item. We
@@ -37,25 +34,24 @@ class FlipDetection extends Feature_1.Feature {
37
34
  super();
38
35
  this.callbacksUsed = [
39
36
  // 3
40
- [isaac_typescript_definitions_1.ModCallback.POST_USE_ITEM, this.postUseItemFlip, [isaac_typescript_definitions_1.CollectibleType.FLIP]],
37
+ [ModCallback.POST_USE_ITEM, this.postUseItemFlip, [CollectibleType.FLIP]],
41
38
  ];
42
39
  this.postFlip = postFlip;
43
40
  this.postFirstFlip = postFirstFlip;
44
41
  }
45
42
  }
46
- exports.FlipDetection = FlipDetection;
47
43
  function getNewLazarus(oldLazarus) {
48
44
  const oldCharacter = oldLazarus.GetPlayerType();
49
45
  let newCharacter;
50
- if (oldCharacter === isaac_typescript_definitions_1.PlayerType.LAZARUS_B) {
51
- newCharacter = isaac_typescript_definitions_1.PlayerType.LAZARUS_2_B;
46
+ if (oldCharacter === PlayerType.LAZARUS_B) {
47
+ newCharacter = PlayerType.LAZARUS_2_B;
52
48
  }
53
- else if (oldCharacter === isaac_typescript_definitions_1.PlayerType.LAZARUS_2_B) {
54
- newCharacter = isaac_typescript_definitions_1.PlayerType.LAZARUS_B;
49
+ else if (oldCharacter === PlayerType.LAZARUS_2_B) {
50
+ newCharacter = PlayerType.LAZARUS_B;
55
51
  }
56
52
  else {
57
53
  return undefined;
58
54
  }
59
- const playersOfType = (0, players_1.getPlayersOfType)(newCharacter);
55
+ const playersOfType = getPlayersOfType(newCharacter);
60
56
  return playersOfType.find((player) => player.FrameCount === oldLazarus.FrameCount);
61
57
  }
@@ -1,17 +1,14 @@
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.GameReorderedCallbacks = 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 frames_1 = require("../../../functions/frames");
14
- const Feature_1 = require("../../private/Feature");
7
+ import { CollectibleType, ModCallback } from "isaac-typescript-definitions";
8
+ import { game } from "../../../core/cachedClasses";
9
+ import { Exported } from "../../../decorators";
10
+ import { onGameFrame, onRenderFrame } from "../../../functions/frames";
11
+ import { Feature } from "../../private/Feature";
15
12
  /**
16
13
  * By default, callbacks fire in the following order:
17
14
  * - `POST_NEW_ROOM` --> `POST_NEW_LEVEL` --> `POST_GAME_STARTED`
@@ -27,7 +24,7 @@ const Feature_1 = require("../../private/Feature");
27
24
  * Additionally, there are some helper functions listed below that can deal with some edge cases
28
25
  * that you may run into with these callbacks.
29
26
  */
30
- class GameReorderedCallbacks extends Feature_1.Feature {
27
+ export class GameReorderedCallbacks extends Feature {
31
28
  /** Used to detect a player resuming a saved run. */
32
29
  renderFrameRunStarted = null;
33
30
  currentStage = null;
@@ -53,10 +50,10 @@ class GameReorderedCallbacks extends Feature_1.Feature {
53
50
  };
54
51
  // ModCallback.POST_GAME_STARTED (15)
55
52
  postGameStarted = (isContinued) => {
56
- const level = cachedClasses_1.game.GetLevel();
53
+ const level = game.GetLevel();
57
54
  const stage = level.GetStage();
58
55
  const stageType = level.GetStageType();
59
- const room = cachedClasses_1.game.GetRoom();
56
+ const room = game.GetRoom();
60
57
  const roomType = room.GetType();
61
58
  this.recordCurrentStage();
62
59
  this.postGameStartedReordered.fire(isContinued);
@@ -74,15 +71,15 @@ class GameReorderedCallbacks extends Feature_1.Feature {
74
71
  };
75
72
  // ModCallback.POST_NEW_LEVEL (18)
76
73
  postNewLevel = () => {
77
- if ((0, frames_1.onGameFrame)(0) && !this.forceNewLevel) {
74
+ if (onGameFrame(0) && !this.forceNewLevel) {
78
75
  // Wait for the `POST_GAME_STARTED` callback to fire.
79
76
  return;
80
77
  }
81
78
  this.forceNewLevel = false;
82
- const level = cachedClasses_1.game.GetLevel();
79
+ const level = game.GetLevel();
83
80
  const stage = level.GetStage();
84
81
  const stageType = level.GetStageType();
85
- const room = cachedClasses_1.game.GetRoom();
82
+ const room = game.GetRoom();
86
83
  const roomType = room.GetType();
87
84
  this.recordCurrentStage();
88
85
  this.postNewLevelReordered.fire(stage, stageType);
@@ -90,10 +87,10 @@ class GameReorderedCallbacks extends Feature_1.Feature {
90
87
  };
91
88
  // ModCallback.POST_NEW_ROOM (19)
92
89
  postNewRoom = () => {
93
- const level = cachedClasses_1.game.GetLevel();
90
+ const level = game.GetLevel();
94
91
  const stage = level.GetStage();
95
92
  const stageType = level.GetStageType();
96
- const room = cachedClasses_1.game.GetRoom();
93
+ const room = game.GetRoom();
97
94
  const roomType = room.GetType();
98
95
  if (this.usedGlowingHourGlass) {
99
96
  this.usedGlowingHourGlass = false;
@@ -107,8 +104,8 @@ class GameReorderedCallbacks extends Feature_1.Feature {
107
104
  return;
108
105
  }
109
106
  }
110
- if (((0, frames_1.onGameFrame)(0)
111
- || (0, frames_1.onRenderFrame)(this.renderFrameRunStarted)
107
+ if ((onGameFrame(0)
108
+ || onRenderFrame(this.renderFrameRunStarted)
112
109
  || this.currentStage !== stage
113
110
  || this.currentStageType !== stageType)
114
111
  && !this.forceNewRoom) {
@@ -123,23 +120,23 @@ class GameReorderedCallbacks extends Feature_1.Feature {
123
120
  this.callbacksUsed = [
124
121
  // 3
125
122
  [
126
- isaac_typescript_definitions_1.ModCallback.POST_USE_ITEM,
123
+ ModCallback.POST_USE_ITEM,
127
124
  this.postUseItemGlowingHourGlass,
128
- [isaac_typescript_definitions_1.CollectibleType.GLOWING_HOUR_GLASS],
125
+ [CollectibleType.GLOWING_HOUR_GLASS],
129
126
  ],
130
127
  // 9
131
- [isaac_typescript_definitions_1.ModCallback.POST_PLAYER_INIT, this.postPlayerInit],
128
+ [ModCallback.POST_PLAYER_INIT, this.postPlayerInit],
132
129
  // 15
133
130
  // eslint-disable-next-line @typescript-eslint/no-deprecated
134
- [isaac_typescript_definitions_1.ModCallback.POST_GAME_STARTED, this.postGameStarted],
131
+ [ModCallback.POST_GAME_STARTED, this.postGameStarted],
135
132
  // 17
136
- [isaac_typescript_definitions_1.ModCallback.PRE_GAME_EXIT, this.preGameExit],
133
+ [ModCallback.PRE_GAME_EXIT, this.preGameExit],
137
134
  // 18
138
135
  // eslint-disable-next-line @typescript-eslint/no-deprecated
139
- [isaac_typescript_definitions_1.ModCallback.POST_NEW_LEVEL, this.postNewLevel],
136
+ [ModCallback.POST_NEW_LEVEL, this.postNewLevel],
140
137
  // 19
141
138
  // eslint-disable-next-line @typescript-eslint/no-deprecated
142
- [isaac_typescript_definitions_1.ModCallback.POST_NEW_ROOM, this.postNewRoom],
139
+ [ModCallback.POST_NEW_ROOM, this.postNewRoom],
143
140
  ];
144
141
  this.postGameStartedReordered = postGameStartedReordered;
145
142
  this.postNewLevelReordered = postNewLevelReordered;
@@ -147,7 +144,7 @@ class GameReorderedCallbacks extends Feature_1.Feature {
147
144
  this.postGameStartedReorderedLast = postGameStartedReorderedLast;
148
145
  }
149
146
  recordCurrentStage() {
150
- const level = cachedClasses_1.game.GetLevel();
147
+ const level = game.GetLevel();
151
148
  const stage = level.GetStage();
152
149
  const stageType = level.GetStageType();
153
150
  this.currentStage = stage;
@@ -206,13 +203,12 @@ class GameReorderedCallbacks extends Feature_1.Feature {
206
203
  this.currentStageType = stageType;
207
204
  }
208
205
  }
209
- exports.GameReorderedCallbacks = GameReorderedCallbacks;
210
206
  __decorate([
211
- decorators_1.Exported
207
+ Exported
212
208
  ], GameReorderedCallbacks.prototype, "forceNewLevelCallback", null);
213
209
  __decorate([
214
- decorators_1.Exported
210
+ Exported
215
211
  ], GameReorderedCallbacks.prototype, "forceNewRoomCallback", null);
216
212
  __decorate([
217
- decorators_1.Exported
213
+ Exported
218
214
  ], GameReorderedCallbacks.prototype, "reorderedCallbacksSetStage", null);
@@ -1,29 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridEntityCollisionDetection = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const gridEntities_1 = require("../../../functions/gridEntities");
6
- const DefaultMap_1 = require("../../DefaultMap");
7
- const Feature_1 = require("../../private/Feature");
1
+ import { GridCollisionClass, ModCallback } from "isaac-typescript-definitions";
2
+ import { getCollidingEntitiesWithGridEntity, getGridEntities, } from "../../../functions/gridEntities";
3
+ import { DefaultMap } from "../../DefaultMap";
4
+ import { Feature } from "../../private/Feature";
8
5
  const v = {
9
6
  room: {
10
7
  /** Indexed by grid entity pointer hash. */
11
- collidingEntitiesMap: new DefaultMap_1.DefaultMap(() => new Set()),
8
+ collidingEntitiesMap: new DefaultMap(() => new Set()),
12
9
  },
13
10
  };
14
- class GridEntityCollisionDetection extends Feature_1.Feature {
11
+ export class GridEntityCollisionDetection extends Feature {
15
12
  postGridEntityCollision;
16
13
  postGridEntityCustomCollision;
17
14
  customGridEntities;
18
15
  // ModCallback.POST_UPDATE (1)
19
16
  postUpdate = () => {
20
- const gridEntities = (0, gridEntities_1.getGridEntities)();
21
- const gridEntitiesWithCollision = gridEntities.filter((gridEntity) => gridEntity.CollisionClass !== isaac_typescript_definitions_1.GridCollisionClass.NONE);
17
+ const gridEntities = getGridEntities();
18
+ const gridEntitiesWithCollision = gridEntities.filter((gridEntity) => gridEntity.CollisionClass !== GridCollisionClass.NONE);
22
19
  for (const gridEntity of gridEntitiesWithCollision) {
23
20
  const gridEntityPtrHash = GetPtrHash(gridEntity);
24
21
  const oldCollidingEntities = v.room.collidingEntitiesMap.getAndSetDefault(gridEntityPtrHash);
25
22
  // Check for new colliding entities.
26
- const collidingEntities = (0, gridEntities_1.getCollidingEntitiesWithGridEntity)(gridEntity);
23
+ const collidingEntities = getCollidingEntitiesWithGridEntity(gridEntity);
27
24
  for (const entity of collidingEntities) {
28
25
  const entityPtrHash = GetPtrHash(entity);
29
26
  if (!oldCollidingEntities.has(entityPtrHash)) {
@@ -52,11 +49,10 @@ class GridEntityCollisionDetection extends Feature_1.Feature {
52
49
  super();
53
50
  this.callbacksUsed = [
54
51
  // 1
55
- [isaac_typescript_definitions_1.ModCallback.POST_UPDATE, this.postUpdate],
52
+ [ModCallback.POST_UPDATE, this.postUpdate],
56
53
  ];
57
54
  this.postGridEntityCollision = postGridEntityCollision;
58
55
  this.postGridEntityCustomCollision = postGridEntityCustomCollision;
59
56
  this.customGridEntities = customGridEntities;
60
57
  }
61
58
  }
62
- exports.GridEntityCollisionDetection = GridEntityCollisionDetection;
@@ -1,16 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridEntityRenderDetection = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const gridEntities_1 = require("../../../functions/gridEntities");
6
- const Feature_1 = require("../../private/Feature");
7
- class GridEntityRenderDetection extends Feature_1.Feature {
1
+ import { ModCallback } from "isaac-typescript-definitions";
2
+ import { getGridEntities } from "../../../functions/gridEntities";
3
+ import { Feature } from "../../private/Feature";
4
+ export class GridEntityRenderDetection extends Feature {
8
5
  postGridEntityRender;
9
6
  postGridEntityCustomRender;
10
7
  customGridEntities;
11
8
  // ModCallback.POST_RENDER (2)
12
9
  postRender = () => {
13
- for (const gridEntity of (0, gridEntities_1.getGridEntities)()) {
10
+ for (const gridEntity of getGridEntities()) {
14
11
  const gridIndex = gridEntity.GetGridIndex();
15
12
  const gridEntityTypeCustom = this.customGridEntities.getCustomGridEntityType(gridIndex);
16
13
  if (gridEntityTypeCustom === undefined) {
@@ -25,11 +22,10 @@ class GridEntityRenderDetection extends Feature_1.Feature {
25
22
  super();
26
23
  this.callbacksUsed = [
27
24
  // 2
28
- [isaac_typescript_definitions_1.ModCallback.POST_RENDER, this.postRender],
25
+ [ModCallback.POST_RENDER, this.postRender],
29
26
  ];
30
27
  this.postGridEntityRender = postGridEntityRender;
31
28
  this.postGridEntityCustomRender = postGridEntityCustomRender;
32
29
  this.customGridEntities = customGridEntities;
33
30
  }
34
31
  }
35
- exports.GridEntityRenderDetection = GridEntityRenderDetection;
@@ -1,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridEntityUpdateDetection = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const ISCFeature_1 = require("../../../enums/ISCFeature");
6
- const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
7
- const gridEntities_1 = require("../../../functions/gridEntities");
8
- const Feature_1 = require("../../private/Feature");
1
+ import { ModCallback } from "isaac-typescript-definitions";
2
+ import { ISCFeature } from "../../../enums/ISCFeature";
3
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
4
+ import { getGridEntitiesMap, isGridEntityBroken, } from "../../../functions/gridEntities";
5
+ import { Feature } from "../../private/Feature";
9
6
  const v = {
10
7
  room: {
11
8
  /** Indexed by grid index. */
12
9
  initializedGridEntities: new Map(),
13
10
  },
14
11
  };
15
- class GridEntityUpdateDetection extends Feature_1.Feature {
12
+ export class GridEntityUpdateDetection extends Feature {
16
13
  postGridEntityInit;
17
14
  postGridEntityCustomInit;
18
15
  postGridEntityUpdate;
@@ -26,7 +23,7 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
26
23
  customGridEntities;
27
24
  // ModCallback.POST_UPDATE (1)
28
25
  postUpdate = () => {
29
- const gridEntitiesMap = (0, gridEntities_1.getGridEntitiesMap)();
26
+ const gridEntitiesMap = getGridEntitiesMap();
30
27
  // We check for removed grid entities first so that grid entities that change type will count as
31
28
  // being removed and fire the PostGridEntityRemoved callback.
32
29
  this.checkGridEntitiesRemoved(gridEntitiesMap);
@@ -44,7 +41,7 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
44
41
  };
45
42
  // ModCallbackCustom.POST_NEW_ROOM_REORDERED
46
43
  postNewRoomReordered = () => {
47
- const gridEntitiesMap = (0, gridEntities_1.getGridEntitiesMap)();
44
+ const gridEntitiesMap = getGridEntitiesMap();
48
45
  for (const [gridIndex, gridEntity] of gridEntitiesMap) {
49
46
  this.checkNewGridEntity(gridIndex, gridEntity);
50
47
  }
@@ -52,13 +49,13 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
52
49
  v = v;
53
50
  constructor(postGridEntityInit, postGridEntityCustomInit, postGridEntityUpdate, postGridEntityCustomUpdate, postGridEntityRemove, postGridEntityCustomRemove, postGridEntityStateChanged, postGridEntityCustomStateChanged, postGridEntityBroken, postGridEntityCustomBroken, customGridEntities) {
54
51
  super();
55
- this.featuresUsed = [ISCFeature_1.ISCFeature.RUN_IN_N_FRAMES];
52
+ this.featuresUsed = [ISCFeature.RUN_IN_N_FRAMES];
56
53
  this.callbacksUsed = [
57
54
  // 1
58
- [isaac_typescript_definitions_1.ModCallback.POST_UPDATE, this.postUpdate],
55
+ [ModCallback.POST_UPDATE, this.postUpdate],
59
56
  ];
60
57
  this.customCallbacksUsed = [
61
- [ModCallbackCustom_1.ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
58
+ [ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
62
59
  ];
63
60
  this.postGridEntityInit = postGridEntityInit;
64
61
  this.postGridEntityCustomInit = postGridEntityCustomInit;
@@ -107,7 +104,7 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
107
104
  else {
108
105
  this.postGridEntityCustomStateChanged.fire(gridEntity, gridEntityTypeCustom, oldState, newState);
109
106
  }
110
- if ((0, gridEntities_1.isGridEntityBroken)(gridEntity)) {
107
+ if (isGridEntityBroken(gridEntity)) {
111
108
  if (gridEntityTypeCustom === undefined) {
112
109
  this.postGridEntityBroken.fire(gridEntity);
113
110
  }
@@ -144,4 +141,3 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
144
141
  v.room.initializedGridEntities.set(gridIndex, newTuple);
145
142
  }
146
143
  }
147
- exports.GridEntityUpdateDetection = GridEntityUpdateDetection;
@@ -1,25 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ItemPickupDetection = void 0;
4
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
- const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
6
- const playerDataStructures_1 = require("../../../functions/playerDataStructures");
7
- const players_1 = require("../../../functions/players");
8
- const types_1 = require("../../../functions/types");
9
- const PickingUpItem_1 = require("../../../types/PickingUpItem");
10
- const DefaultMap_1 = require("../../DefaultMap");
11
- const Feature_1 = require("../../private/Feature");
1
+ import { ItemType } from "isaac-typescript-definitions";
2
+ import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
3
+ import { defaultMapGetPlayer } from "../../../functions/playerDataStructures";
4
+ import { dequeueItem } from "../../../functions/players";
5
+ import { asNumber } from "../../../functions/types";
6
+ import { newPickingUpItem, resetPickingUpItem, } from "../../../types/PickingUpItem";
7
+ import { DefaultMap } from "../../DefaultMap";
8
+ import { Feature } from "../../private/Feature";
12
9
  const v = {
13
10
  run: {
14
- playersPickingUpItemMap: new DefaultMap_1.DefaultMap(() => (0, PickingUpItem_1.newPickingUpItem)()),
11
+ playersPickingUpItemMap: new DefaultMap(() => newPickingUpItem()),
15
12
  },
16
13
  };
17
- class ItemPickupDetection extends Feature_1.Feature {
14
+ export class ItemPickupDetection extends Feature {
18
15
  postItemPickup;
19
16
  preItemPickup;
20
17
  // ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED
21
18
  postPEffectUpdateReordered = (player) => {
22
- const pickingUpItem = (0, playerDataStructures_1.defaultMapGetPlayer)(v.run.playersPickingUpItemMap, player);
19
+ const pickingUpItem = defaultMapGetPlayer(v.run.playersPickingUpItemMap, player);
23
20
  if (player.IsItemQueueEmpty()) {
24
21
  this.queueEmpty(player, pickingUpItem);
25
22
  // If a player enters a room with a trinket next to the entrance, the player will pick up the
@@ -36,7 +33,7 @@ class ItemPickupDetection extends Feature_1.Feature {
36
33
  super();
37
34
  this.customCallbacksUsed = [
38
35
  [
39
- ModCallbackCustom_1.ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
36
+ ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
40
37
  this.postPEffectUpdateReordered,
41
38
  ],
42
39
  ];
@@ -44,16 +41,16 @@ class ItemPickupDetection extends Feature_1.Feature {
44
41
  this.preItemPickup = preItemPickup;
45
42
  }
46
43
  queueEmpty(player, pickingUpItem) {
47
- if (pickingUpItem.itemType === isaac_typescript_definitions_1.ItemType.NULL
48
- || (0, types_1.asNumber)(pickingUpItem.subType) === 0) {
44
+ if (pickingUpItem.itemType === ItemType.NULL
45
+ || asNumber(pickingUpItem.subType) === 0) {
49
46
  return;
50
47
  }
51
48
  this.postItemPickup.fire(player, pickingUpItem);
52
- (0, PickingUpItem_1.resetPickingUpItem)(pickingUpItem);
49
+ resetPickingUpItem(pickingUpItem);
53
50
  }
54
51
  queueNotEmpty(player, pickingUpItem) {
55
52
  const queuedItem = player.QueuedItem.Item;
56
- if (queuedItem === undefined || queuedItem.Type === isaac_typescript_definitions_1.ItemType.NULL) {
53
+ if (queuedItem === undefined || queuedItem.Type === ItemType.NULL) {
57
54
  // This should never happen, since the `EntityPlayer.IsItemQueueEmpty` method returned false.
58
55
  return;
59
56
  }
@@ -64,9 +61,8 @@ class ItemPickupDetection extends Feature_1.Feature {
64
61
  pickingUpItem.subType = queuedItem.ID;
65
62
  const shouldBeGranted = this.preItemPickup.fire(player, pickingUpItem);
66
63
  if (shouldBeGranted === false) {
67
- (0, players_1.dequeueItem)(player);
64
+ dequeueItem(player);
68
65
  }
69
66
  }
70
67
  }
71
68
  }
72
- exports.ItemPickupDetection = ItemPickupDetection;