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,22 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addTrinketCostume = addTrinketCostume;
4
- exports.anyPlayerHasTrinket = anyPlayerHasTrinket;
5
- exports.getOpenTrinketSlot = getOpenTrinketSlot;
6
- exports.getPlayersWithTrinket = getPlayersWithTrinket;
7
- exports.getPlayerTrinkets = getPlayerTrinkets;
8
- exports.hasAnyTrinket = hasAnyTrinket;
9
- exports.hasOpenTrinketSlot = hasOpenTrinketSlot;
10
- exports.hasTrinket = hasTrinket;
11
- exports.removeAllPlayerTrinkets = removeAllPlayerTrinkets;
12
- exports.removeTrinketCostume = removeTrinketCostume;
13
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
14
- const cachedEnumValues_1 = require("../cachedEnumValues");
15
- const cachedClasses_1 = require("../core/cachedClasses");
16
- const playerIndex_1 = require("./playerIndex");
17
- const players_1 = require("./players");
18
- function addTrinketCostume(player, trinketType) {
19
- const itemConfigTrinket = cachedClasses_1.itemConfig.GetTrinket(trinketType);
1
+ import { PlayerType, TrinketSlot, TrinketType, } from "isaac-typescript-definitions";
2
+ import { TRINKET_SLOT_VALUES } from "../cachedEnumValues";
3
+ import { itemConfig } from "../core/cachedClasses";
4
+ import { getAllPlayers, getPlayers } from "./playerIndex";
5
+ import { isCharacter } from "./players";
6
+ export function addTrinketCostume(player, trinketType) {
7
+ const itemConfigTrinket = itemConfig.GetTrinket(trinketType);
20
8
  if (itemConfigTrinket === undefined) {
21
9
  return;
22
10
  }
@@ -29,8 +17,8 @@ function addTrinketCostume(player, trinketType) {
29
17
  * @param ignoreModifiers If set to true, only counts trinkets the player actually holds and ignores
30
18
  * effects granted by other items. Default is false.
31
19
  */
32
- function anyPlayerHasTrinket(trinketType, ignoreModifiers) {
33
- const players = (0, playerIndex_1.getAllPlayers)();
20
+ export function anyPlayerHasTrinket(trinketType, ignoreModifiers) {
21
+ const players = getAllPlayers();
34
22
  return players.some((player) => player.HasTrinket(trinketType, ignoreModifiers));
35
23
  }
36
24
  /**
@@ -47,18 +35,18 @@ function anyPlayerHasTrinket(trinketType, ignoreModifiers) {
47
35
  * }
48
36
  * ```
49
37
  */
50
- function getOpenTrinketSlot(player) {
38
+ export function getOpenTrinketSlot(player) {
51
39
  const maxTrinkets = player.GetMaxTrinkets();
52
- const trinketType1 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_1);
40
+ const trinketType1 = player.GetTrinket(TrinketSlot.SLOT_1);
53
41
  if (maxTrinkets === 1) {
54
- return trinketType1 === isaac_typescript_definitions_1.TrinketType.NULL ? 0 : undefined;
42
+ return trinketType1 === TrinketType.NULL ? 0 : undefined;
55
43
  }
56
44
  if (maxTrinkets === 2) {
57
- if (trinketType1 === isaac_typescript_definitions_1.TrinketType.NULL) {
45
+ if (trinketType1 === TrinketType.NULL) {
58
46
  return 0;
59
47
  }
60
- const trinketType2 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_2);
61
- return trinketType2 === isaac_typescript_definitions_1.TrinketType.NULL ? 1 : undefined;
48
+ const trinketType2 = player.GetTrinket(TrinketSlot.SLOT_2);
49
+ return trinketType2 === TrinketType.NULL ? 1 : undefined;
62
50
  }
63
51
  error(`The player has an unknown number of trinket slots: ${maxTrinkets}`);
64
52
  }
@@ -68,28 +56,28 @@ function getOpenTrinketSlot(player) {
68
56
  * This function is variadic, meaning that you can supply as many trinket types as you want to check
69
57
  * for. It only returns the players that have all of the trinkets.
70
58
  */
71
- function getPlayersWithTrinket(...trinketTypes) {
72
- const players = (0, playerIndex_1.getPlayers)();
59
+ export function getPlayersWithTrinket(...trinketTypes) {
60
+ const players = getPlayers();
73
61
  return players.filter((player) => trinketTypes.every((trinketType) => player.HasTrinket(trinketType)));
74
62
  }
75
63
  /**
76
64
  * Helper function to get all of the trinkets that the player is currently holding. This will not
77
65
  * include any smelted trinkets.
78
66
  */
79
- function getPlayerTrinkets(player) {
67
+ export function getPlayerTrinkets(player) {
80
68
  const trinketTypes = [];
81
- for (const trinketSlot of cachedEnumValues_1.TRINKET_SLOT_VALUES) {
69
+ for (const trinketSlot of TRINKET_SLOT_VALUES) {
82
70
  const trinketType = player.GetTrinket(trinketSlot);
83
- if (trinketType !== isaac_typescript_definitions_1.TrinketType.NULL) {
71
+ if (trinketType !== TrinketType.NULL) {
84
72
  trinketTypes.push(trinketType);
85
73
  }
86
74
  }
87
75
  return trinketTypes;
88
76
  }
89
77
  /** Helper function to check to see if the player is holding one or more trinkets. */
90
- function hasAnyTrinket(player) {
91
- const playerTrinketTypes = cachedEnumValues_1.TRINKET_SLOT_VALUES.map((trinketSlot) => player.GetTrinket(trinketSlot));
92
- return playerTrinketTypes.some((trinketType) => trinketType !== isaac_typescript_definitions_1.TrinketType.NULL);
78
+ export function hasAnyTrinket(player) {
79
+ const playerTrinketTypes = TRINKET_SLOT_VALUES.map((trinketSlot) => player.GetTrinket(trinketSlot));
80
+ return playerTrinketTypes.some((trinketType) => trinketType !== TrinketType.NULL);
93
81
  }
94
82
  /**
95
83
  * Returns whether the player can hold an additional trinket, beyond what they are currently
@@ -98,8 +86,8 @@ function hasAnyTrinket(player) {
98
86
  * If the player is the Tainted Soul, this always returns false, since that character cannot pick up
99
87
  * items. (Only Tainted Forgotten can pick up items.)
100
88
  */
101
- function hasOpenTrinketSlot(player) {
102
- if ((0, players_1.isCharacter)(player, isaac_typescript_definitions_1.PlayerType.SOUL_B)) {
89
+ export function hasOpenTrinketSlot(player) {
90
+ if (isCharacter(player, PlayerType.SOUL_B)) {
103
91
  return false;
104
92
  }
105
93
  const openTrinketSlot = getOpenTrinketSlot(player);
@@ -113,7 +101,7 @@ function hasOpenTrinketSlot(player) {
113
101
  *
114
102
  * This function always passes `false` to the `ignoreModifiers` argument.
115
103
  */
116
- function hasTrinket(player, ...trinketTypes) {
104
+ export function hasTrinket(player, ...trinketTypes) {
117
105
  return trinketTypes.some((trinketType) => player.HasTrinket(trinketType));
118
106
  }
119
107
  /**
@@ -122,10 +110,10 @@ function hasTrinket(player, ...trinketTypes) {
122
110
  * This will not remove any smelted trinkets, unless the player happens to also be holding a trinket
123
111
  * that they have smelted. (In that case, both the held and the smelted trinket will be removed.)
124
112
  */
125
- function removeAllPlayerTrinkets(player) {
126
- for (const trinketSlot of cachedEnumValues_1.TRINKET_SLOT_VALUES) {
113
+ export function removeAllPlayerTrinkets(player) {
114
+ for (const trinketSlot of TRINKET_SLOT_VALUES) {
127
115
  const trinketType = player.GetTrinket(trinketSlot);
128
- if (trinketType === isaac_typescript_definitions_1.TrinketType.NULL) {
116
+ if (trinketType === TrinketType.NULL) {
129
117
  continue;
130
118
  }
131
119
  let alreadyHasTrinket;
@@ -139,8 +127,8 @@ function removeAllPlayerTrinkets(player) {
139
127
  * Helper function to remove a trinket costume from a player. Use this helper function to avoid
140
128
  * having to request the trinket from the item config.
141
129
  */
142
- function removeTrinketCostume(player, trinketType) {
143
- const itemConfigTrinket = cachedClasses_1.itemConfig.GetTrinket(trinketType);
130
+ export function removeTrinketCostume(player, trinketType) {
131
+ const itemConfigTrinket = itemConfig.GetTrinket(trinketType);
144
132
  if (itemConfigTrinket === undefined) {
145
133
  return;
146
134
  }
@@ -1,56 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.anyPlayerHoldingItem = anyPlayerHoldingItem;
4
- exports.anyPlayerIs = anyPlayerIs;
5
- exports.canPlayerCrushRocks = canPlayerCrushRocks;
6
- exports.dequeueItem = dequeueItem;
7
- exports.getAzazelBrimstoneDistance = getAzazelBrimstoneDistance;
8
- exports.getCharacters = getCharacters;
9
- exports.getClosestPlayer = getClosestPlayer;
10
- exports.getFinalPlayer = getFinalPlayer;
11
- exports.getNewestPlayer = getNewestPlayer;
12
- exports.getPlayerCloserThan = getPlayerCloserThan;
13
- exports.getPlayerFromEntity = getPlayerFromEntity;
14
- exports.getPlayerFromPtr = getPlayerFromPtr;
15
- exports.getPlayerName = getPlayerName;
16
- exports.getPlayerNumHitsRemaining = getPlayerNumHitsRemaining;
17
- exports.getPlayersOfType = getPlayersOfType;
18
- exports.getPlayersOnKeyboard = getPlayersOnKeyboard;
19
- exports.getPlayersWithControllerIndex = getPlayersWithControllerIndex;
20
- exports.hasForm = hasForm;
21
- exports.hasHoming = hasHoming;
22
- exports.hasLostCurse = hasLostCurse;
23
- exports.hasPiercing = hasPiercing;
24
- exports.hasSpectral = hasSpectral;
25
- exports.isBethany = isBethany;
26
- exports.isCharacter = isCharacter;
27
- exports.isDamageFromPlayer = isDamageFromPlayer;
28
- exports.isEden = isEden;
29
- exports.isFirstPlayer = isFirstPlayer;
30
- exports.isJacobOrEsau = isJacobOrEsau;
31
- exports.isKeeper = isKeeper;
32
- exports.isLost = isLost;
33
- exports.isModdedPlayer = isModdedPlayer;
34
- exports.isPlayerAbleToAim = isPlayerAbleToAim;
35
- exports.isTainted = isTainted;
36
- exports.isTaintedLazarus = isTaintedLazarus;
37
- exports.isVanillaPlayer = isVanillaPlayer;
38
- exports.removeDeadEyeMultiplier = removeDeadEyeMultiplier;
39
- exports.setBlindfold = setBlindfold;
40
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
41
- const cachedClasses_1 = require("../core/cachedClasses");
42
- const ReadonlySet_1 = require("../types/ReadonlySet");
43
- const characters_1 = require("./characters");
44
- const flag_1 = require("./flag");
45
- const playerIndex_1 = require("./playerIndex");
46
- const types_1 = require("./types");
47
- const utils_1 = require("./utils");
1
+ import { Challenge, CollectibleType, ControllerIndex, NullItemID, PlayerForm, PlayerType, TearFlag, } from "isaac-typescript-definitions";
2
+ import { game } from "../core/cachedClasses";
3
+ import { ReadonlySet } from "../types/ReadonlySet";
4
+ import { getCharacterName, isVanillaCharacter } from "./characters";
5
+ import { hasFlag } from "./flag";
6
+ import { getAllPlayers, getPlayerIndexVanilla, getPlayers, } from "./playerIndex";
7
+ import { isNumber } from "./types";
8
+ import { assertDefined, repeat } from "./utils";
48
9
  /**
49
10
  * Helper function to check to see if any player is holding up an item (from e.g. an active item
50
11
  * activation, a poop from IBS, etc.).
51
12
  */
52
- function anyPlayerHoldingItem() {
53
- const players = (0, playerIndex_1.getAllPlayers)();
13
+ export function anyPlayerHoldingItem() {
14
+ const players = getAllPlayers();
54
15
  return players.some((player) => player.IsHoldingItem());
55
16
  }
56
17
  /**
@@ -59,8 +20,8 @@ function anyPlayerHoldingItem() {
59
20
  * This function is variadic, meaning that you can supply as many characters as you want to check
60
21
  * for. Returns true if any of the characters supplied are present.
61
22
  */
62
- function anyPlayerIs(...matchingCharacters) {
63
- const matchingCharacterSet = new ReadonlySet_1.ReadonlySet(matchingCharacters);
23
+ export function anyPlayerIs(...matchingCharacters) {
24
+ const matchingCharacterSet = new ReadonlySet(matchingCharacters);
64
25
  const characters = getCharacters();
65
26
  return characters.some((character) => matchingCharacterSet.has(character));
66
27
  }
@@ -73,12 +34,12 @@ function anyPlayerIs(...matchingCharacters) {
73
34
  * - the player is under the effects of Mega Mush (collectible 625)
74
35
  * - the player has Stompy (transformation 13)
75
36
  */
76
- function canPlayerCrushRocks(player) {
37
+ export function canPlayerCrushRocks(player) {
77
38
  const effects = player.GetEffects();
78
- return (player.HasCollectible(isaac_typescript_definitions_1.CollectibleType.LEO)
79
- || player.HasCollectible(isaac_typescript_definitions_1.CollectibleType.THUNDER_THIGHS)
80
- || effects.HasCollectibleEffect(isaac_typescript_definitions_1.CollectibleType.MEGA_MUSH)
81
- || player.HasPlayerForm(isaac_typescript_definitions_1.PlayerForm.STOMPY));
39
+ return (player.HasCollectible(CollectibleType.LEO)
40
+ || player.HasCollectible(CollectibleType.THUNDER_THIGHS)
41
+ || effects.HasCollectibleEffect(CollectibleType.MEGA_MUSH)
42
+ || player.HasPlayerForm(PlayerForm.STOMPY));
82
43
  }
83
44
  /**
84
45
  * Helper function to remove a collectible or trinket that is currently queued to go into a player's
@@ -93,7 +54,7 @@ function canPlayerCrushRocks(player) {
93
54
  *
94
55
  * This method was discovered by im_tem.
95
56
  */
96
- function dequeueItem(player) {
57
+ export function dequeueItem(player) {
97
58
  if (player.QueuedItem.Item === undefined) {
98
59
  return false;
99
60
  }
@@ -109,15 +70,15 @@ function dequeueItem(player) {
109
70
  *
110
71
  * The formula for calculating it is: 32 - 2.5 * tearHeight
111
72
  */
112
- function getAzazelBrimstoneDistance(playerOrTearHeight) {
113
- const tearHeight = (0, types_1.isNumber)(playerOrTearHeight)
73
+ export function getAzazelBrimstoneDistance(playerOrTearHeight) {
74
+ const tearHeight = isNumber(playerOrTearHeight)
114
75
  ? playerOrTearHeight
115
76
  : playerOrTearHeight.TearHeight;
116
77
  return 32 - 2.5 * tearHeight;
117
78
  }
118
79
  /** Helper function to get an array containing the characters of all of the current players. */
119
- function getCharacters() {
120
- const players = (0, playerIndex_1.getPlayers)();
80
+ export function getCharacters() {
81
+ const players = getPlayers();
121
82
  return players.map((player) => player.GetPlayerType());
122
83
  }
123
84
  /**
@@ -125,27 +86,27 @@ function getCharacters() {
125
86
  * include players with a non-undefined parent, since they are not real players (e.g. the Strawman
126
87
  * Keeper).
127
88
  */
128
- function getClosestPlayer(position) {
89
+ export function getClosestPlayer(position) {
129
90
  let closestPlayer;
130
91
  let closestDistance = Infinity;
131
- for (const player of (0, playerIndex_1.getPlayers)()) {
92
+ for (const player of getPlayers()) {
132
93
  const distance = position.Distance(player.Position);
133
94
  if (distance < closestDistance) {
134
95
  closestPlayer = player;
135
96
  closestDistance = distance;
136
97
  }
137
98
  }
138
- (0, utils_1.assertDefined)(closestPlayer, "Failed to find the closest player.");
99
+ assertDefined(closestPlayer, "Failed to find the closest player.");
139
100
  return closestPlayer;
140
101
  }
141
102
  /**
142
103
  * Helper function to return the player with the highest ID, according to the `Isaac.GetPlayer`
143
104
  * method.
144
105
  */
145
- function getFinalPlayer() {
146
- const players = (0, playerIndex_1.getPlayers)();
106
+ export function getFinalPlayer() {
107
+ const players = getPlayers();
147
108
  const lastPlayer = players.at(-1);
148
- (0, utils_1.assertDefined)(lastPlayer, "Failed to get the final player since there were 0 players.");
109
+ assertDefined(lastPlayer, "Failed to get the final player since there were 0 players.");
149
110
  return lastPlayer;
150
111
  }
151
112
  /**
@@ -153,17 +114,17 @@ function getFinalPlayer() {
153
114
  * spawned player after using items like Esau Jr. Don't use this function if two or more players
154
115
  * will be spawned on the same frame.
155
116
  */
156
- function getNewestPlayer() {
117
+ export function getNewestPlayer() {
157
118
  let newestPlayer;
158
119
  let lowestFrame = Infinity;
159
- for (const player of (0, playerIndex_1.getPlayers)()) {
120
+ for (const player of getPlayers()) {
160
121
  if (!(player.FrameCount < lowestFrame)) {
161
122
  continue;
162
123
  }
163
124
  newestPlayer = player;
164
125
  lowestFrame = player.FrameCount;
165
126
  }
166
- (0, utils_1.assertDefined)(newestPlayer, "Failed to find the newest player.");
127
+ assertDefined(newestPlayer, "Failed to find the newest player.");
167
128
  return newestPlayer;
168
129
  }
169
130
  /**
@@ -171,8 +132,8 @@ function getNewestPlayer() {
171
132
  *
172
133
  * @returns The first player found when iterating upwards from index 0.
173
134
  */
174
- function getPlayerCloserThan(position, distance) {
175
- const players = (0, playerIndex_1.getPlayers)();
135
+ export function getPlayerCloserThan(position, distance) {
136
+ const players = getPlayers();
176
137
  return players.find((player) => player.Position.Distance(position) <= distance);
177
138
  }
178
139
  /**
@@ -182,7 +143,7 @@ function getPlayerCloserThan(position, distance) {
182
143
  * This function works by looking at the `Parent` and the `SpawnerEntity` fields (in that order). As
183
144
  * a last resort, it will attempt to use the `Entity.ToPlayer` method on the entity itself.
184
145
  */
185
- function getPlayerFromEntity(entity) {
146
+ export function getPlayerFromEntity(entity) {
186
147
  if (entity.Parent !== undefined) {
187
148
  const player = entity.Parent.ToPlayer();
188
149
  if (player !== undefined) {
@@ -209,7 +170,7 @@ function getPlayerFromEntity(entity) {
209
170
  * Helper function to get an `EntityPlayer` object from an `EntityPtr`. Returns undefined if the
210
171
  * entity has gone out of scope or if the associated entity is not a player.
211
172
  */
212
- function getPlayerFromPtr(entityPtr) {
173
+ export function getPlayerFromPtr(entityPtr) {
213
174
  const entity = entityPtr.Ref;
214
175
  if (entity === undefined) {
215
176
  return undefined;
@@ -221,12 +182,12 @@ function getPlayerFromPtr(entityPtr) {
221
182
  * `EntityPlayer.GetName` method because it accounts for Blue Baby, Lazarus II, and Tainted
222
183
  * characters.
223
184
  */
224
- function getPlayerName(player) {
185
+ export function getPlayerName(player) {
225
186
  const character = player.GetPlayerType();
226
187
  // Account for modded characters.
227
188
  return isModdedPlayer(player)
228
189
  ? player.GetName()
229
- : (0, characters_1.getCharacterName)(character);
190
+ : getCharacterName(character);
230
191
  }
231
192
  /**
232
193
  * Returns the combined value of all of the player's red hearts, soul/black hearts, and bone hearts,
@@ -237,7 +198,7 @@ function getPlayerName(player) {
237
198
  * Womb 1, players who have 1 soul heart remaining would die in 1 hit to anything, even though this
238
199
  * function would report that they have 2 hits remaining.)
239
200
  */
240
- function getPlayerNumHitsRemaining(player) {
201
+ export function getPlayerNumHitsRemaining(player) {
241
202
  const hearts = player.GetHearts();
242
203
  const soulHearts = player.GetSoulHearts();
243
204
  const boneHearts = player.GetBoneHearts();
@@ -251,9 +212,9 @@ function getPlayerNumHitsRemaining(player) {
251
212
  * This function is variadic, meaning that you can supply as many characters as you want to check
252
213
  * for. Returns true if any of the characters supplied are present.
253
214
  */
254
- function getPlayersOfType(...characters) {
255
- const charactersSet = new ReadonlySet_1.ReadonlySet(characters);
256
- const players = (0, playerIndex_1.getPlayers)();
215
+ export function getPlayersOfType(...characters) {
216
+ const charactersSet = new ReadonlySet(characters);
217
+ const players = getPlayers();
257
218
  return players.filter((player) => {
258
219
  const character = player.GetPlayerType();
259
220
  return charactersSet.has(character);
@@ -267,9 +228,9 @@ function getPlayersOfType(...characters) {
267
228
  * Note that this function includes players with a non-undefined parent like e.g. the Strawman
268
229
  * Keeper.
269
230
  */
270
- function getPlayersOnKeyboard() {
271
- const players = (0, playerIndex_1.getAllPlayers)();
272
- return players.filter((player) => player.ControllerIndex === isaac_typescript_definitions_1.ControllerIndex.KEYBOARD);
231
+ export function getPlayersOnKeyboard() {
232
+ const players = getAllPlayers();
233
+ return players.filter((player) => player.ControllerIndex === ControllerIndex.KEYBOARD);
273
234
  }
274
235
  /**
275
236
  * Helper function to get all of the players that match the provided controller index. This function
@@ -279,8 +240,8 @@ function getPlayersOnKeyboard() {
279
240
  * Note that this function includes players with a non-undefined parent like e.g. the Strawman
280
241
  * Keeper.
281
242
  */
282
- function getPlayersWithControllerIndex(controllerIndex) {
283
- const players = (0, playerIndex_1.getAllPlayers)();
243
+ export function getPlayersWithControllerIndex(controllerIndex) {
244
+ const players = getAllPlayers();
284
245
  return players.filter((player) => player.ControllerIndex === controllerIndex);
285
246
  }
286
247
  /**
@@ -289,7 +250,7 @@ function getPlayersWithControllerIndex(controllerIndex) {
289
250
  * This function is variadic, meaning that you can supply as many transformations as you want to
290
251
  * check for. Returns true if the player has any of the supplied transformations.
291
252
  */
292
- function hasForm(player, ...playerForms) {
253
+ export function hasForm(player, ...playerForms) {
293
254
  return playerForms.some((playerForm) => player.HasPlayerForm(playerForm));
294
255
  }
295
256
  /**
@@ -297,13 +258,13 @@ function hasForm(player, ...playerForms) {
297
258
  *
298
259
  * Under the hood, this checks the `EntityPlayer.TearFlags` variable for `TearFlag.HOMING` (1 << 2).
299
260
  */
300
- function hasHoming(player) {
301
- return (0, flag_1.hasFlag)(player.TearFlags, isaac_typescript_definitions_1.TearFlag.HOMING);
261
+ export function hasHoming(player) {
262
+ return hasFlag(player.TearFlags, TearFlag.HOMING);
302
263
  }
303
264
  /** After touching a white fire, a player will turn into The Lost until they clear a room. */
304
- function hasLostCurse(player) {
265
+ export function hasLostCurse(player) {
305
266
  const effects = player.GetEffects();
306
- return effects.HasNullEffect(isaac_typescript_definitions_1.NullItemID.LOST_CURSE);
267
+ return effects.HasNullEffect(NullItemID.LOST_CURSE);
307
268
  }
308
269
  /**
309
270
  * Helper function to check if a player has piercing tears.
@@ -311,8 +272,8 @@ function hasLostCurse(player) {
311
272
  * Under the hood, this checks the `EntityPlayer.TearFlags` variable for `TearFlag.PIERCING` (1 <<
312
273
  * 1).
313
274
  */
314
- function hasPiercing(player) {
315
- return (0, flag_1.hasFlag)(player.TearFlags, isaac_typescript_definitions_1.TearFlag.PIERCING);
275
+ export function hasPiercing(player) {
276
+ return hasFlag(player.TearFlags, TearFlag.PIERCING);
316
277
  }
317
278
  /**
318
279
  * Helper function to check if a player has spectral tears.
@@ -320,17 +281,17 @@ function hasPiercing(player) {
320
281
  * Under the hood, this checks the `EntityPlayer.TearFlags` variable for `TearFlag.SPECTRAL` (1 <<
321
282
  * 0).
322
283
  */
323
- function hasSpectral(player) {
324
- return (0, flag_1.hasFlag)(player.TearFlags, isaac_typescript_definitions_1.TearFlag.SPECTRAL);
284
+ export function hasSpectral(player) {
285
+ return hasFlag(player.TearFlags, TearFlag.SPECTRAL);
325
286
  }
326
287
  /**
327
288
  * Helper function for detecting when a player is Bethany or Tainted Bethany. This is useful if you
328
289
  * need to adjust UI elements to account for Bethany's soul charges or Tainted Bethany's blood
329
290
  * charges.
330
291
  */
331
- function isBethany(player) {
292
+ export function isBethany(player) {
332
293
  const character = player.GetPlayerType();
333
- return character === isaac_typescript_definitions_1.PlayerType.BETHANY || character === isaac_typescript_definitions_1.PlayerType.BETHANY_B;
294
+ return character === PlayerType.BETHANY || character === PlayerType.BETHANY_B;
334
295
  }
335
296
  /**
336
297
  * Helper function to check if a player is a specific character (i.e. `PlayerType`).
@@ -338,8 +299,8 @@ function isBethany(player) {
338
299
  * This function is variadic, meaning that you can supply as many characters as you want to check
339
300
  * for. Returns true if the player is any of the supplied characters.
340
301
  */
341
- function isCharacter(player, ...characters) {
342
- const characterSet = new ReadonlySet_1.ReadonlySet(characters);
302
+ export function isCharacter(player, ...characters) {
303
+ const characterSet = new ReadonlySet(characters);
343
304
  const character = player.GetPlayerType();
344
305
  return characterSet.has(character);
345
306
  }
@@ -347,7 +308,7 @@ function isCharacter(player, ...characters) {
347
308
  * Helper function to see if a damage source is from a player. Use this instead of comparing to the
348
309
  * entity directly because it takes familiars into account.
349
310
  */
350
- function isDamageFromPlayer(damageSource) {
311
+ export function isDamageFromPlayer(damageSource) {
351
312
  const player = damageSource.ToPlayer();
352
313
  if (player !== undefined) {
353
314
  return true;
@@ -359,35 +320,35 @@ function isDamageFromPlayer(damageSource) {
359
320
  * Helper function for detecting when a player is Eden or Tainted Eden. Useful for situations where
360
321
  * you want to know if the starting stats were randomized, for example.
361
322
  */
362
- function isEden(player) {
323
+ export function isEden(player) {
363
324
  const character = player.GetPlayerType();
364
- return character === isaac_typescript_definitions_1.PlayerType.EDEN || character === isaac_typescript_definitions_1.PlayerType.EDEN_B;
325
+ return character === PlayerType.EDEN || character === PlayerType.EDEN_B;
365
326
  }
366
- function isFirstPlayer(player) {
367
- return (0, playerIndex_1.getPlayerIndexVanilla)(player) === 0;
327
+ export function isFirstPlayer(player) {
328
+ return getPlayerIndexVanilla(player) === 0;
368
329
  }
369
330
  /**
370
331
  * Helper function for detecting when a player is Jacob or Esau. This will only match the
371
332
  * non-tainted versions of these characters.
372
333
  */
373
- function isJacobOrEsau(player) {
334
+ export function isJacobOrEsau(player) {
374
335
  const character = player.GetPlayerType();
375
- return character === isaac_typescript_definitions_1.PlayerType.JACOB || character === isaac_typescript_definitions_1.PlayerType.ESAU;
336
+ return character === PlayerType.JACOB || character === PlayerType.ESAU;
376
337
  }
377
338
  /**
378
339
  * Helper function for detecting when a player is Keeper or Tainted Keeper. Useful for situations
379
340
  * where you want to know if the health is coin hearts, for example.
380
341
  */
381
- function isKeeper(player) {
342
+ export function isKeeper(player) {
382
343
  const character = player.GetPlayerType();
383
- return character === isaac_typescript_definitions_1.PlayerType.KEEPER || character === isaac_typescript_definitions_1.PlayerType.KEEPER_B;
344
+ return character === PlayerType.KEEPER || character === PlayerType.KEEPER_B;
384
345
  }
385
346
  /** Helper function for detecting when a player is The Lost or Tainted Lost. */
386
- function isLost(player) {
347
+ export function isLost(player) {
387
348
  const character = player.GetPlayerType();
388
- return character === isaac_typescript_definitions_1.PlayerType.LOST || character === isaac_typescript_definitions_1.PlayerType.LOST_B;
349
+ return character === PlayerType.LOST || character === PlayerType.LOST_B;
389
350
  }
390
- function isModdedPlayer(player) {
351
+ export function isModdedPlayer(player) {
391
352
  return !isVanillaPlayer(player);
392
353
  }
393
354
  /**
@@ -396,24 +357,24 @@ function isModdedPlayer(player) {
396
357
  *
397
358
  * Under the hood, this function uses the `EntityPlayer.IsExtraAnimationFinished` method.
398
359
  */
399
- function isPlayerAbleToAim(player) {
360
+ export function isPlayerAbleToAim(player) {
400
361
  return player.IsExtraAnimationFinished();
401
362
  }
402
363
  /** Helper function for detecting if a player is one of the Tainted characters. */
403
- function isTainted(player) {
364
+ export function isTainted(player) {
404
365
  const character = player.GetPlayerType();
405
366
  return isVanillaPlayer(player)
406
- ? character >= isaac_typescript_definitions_1.PlayerType.ISAAC_B
367
+ ? character >= PlayerType.ISAAC_B
407
368
  : isTaintedModded(player);
408
369
  }
409
370
  /** Helper function for detecting when a player is Tainted Lazarus or Dead Tainted Lazarus. */
410
- function isTaintedLazarus(player) {
371
+ export function isTaintedLazarus(player) {
411
372
  const character = player.GetPlayerType();
412
- return (character === isaac_typescript_definitions_1.PlayerType.LAZARUS_B || character === isaac_typescript_definitions_1.PlayerType.LAZARUS_2_B);
373
+ return (character === PlayerType.LAZARUS_B || character === PlayerType.LAZARUS_2_B);
413
374
  }
414
- function isVanillaPlayer(player) {
375
+ export function isVanillaPlayer(player) {
415
376
  const character = player.GetPlayerType();
416
- return (0, characters_1.isVanillaCharacter)(character);
377
+ return isVanillaCharacter(character);
417
378
  }
418
379
  /**
419
380
  * Helper function to remove the Dead Eye multiplier from a player.
@@ -421,8 +382,8 @@ function isVanillaPlayer(player) {
421
382
  * Note that each time the `EntityPlayer.ClearDeadEyeCharge` method is called, it only has a chance
422
383
  * of working, so this function calls it 100 times to be safe.
423
384
  */
424
- function removeDeadEyeMultiplier(player) {
425
- (0, utils_1.repeat)(100, () => {
385
+ export function removeDeadEyeMultiplier(player) {
386
+ repeat(100, () => {
426
387
  player.ClearDeadEyeCharge();
427
388
  });
428
389
  }
@@ -440,24 +401,24 @@ function removeDeadEyeMultiplier(player) {
440
401
  * @param enabled Whether to apply or remove the blindfold.
441
402
  * @param modifyCostume Optional. Whether to add or remove the blindfold costume. Default is true.
442
403
  */
443
- function setBlindfold(player, enabled, modifyCostume = true) {
404
+ export function setBlindfold(player, enabled, modifyCostume = true) {
444
405
  const character = player.GetPlayerType();
445
406
  const challenge = Isaac.GetChallenge();
446
407
  if (enabled) {
447
- cachedClasses_1.game.Challenge = isaac_typescript_definitions_1.Challenge.SOLAR_SYSTEM; // This challenge has a blindfold
408
+ game.Challenge = Challenge.SOLAR_SYSTEM; // This challenge has a blindfold
448
409
  player.ChangePlayerType(character);
449
- cachedClasses_1.game.Challenge = challenge;
410
+ game.Challenge = challenge;
450
411
  // The costume is applied automatically.
451
412
  if (!modifyCostume) {
452
- player.TryRemoveNullCostume(isaac_typescript_definitions_1.NullItemID.BLINDFOLD);
413
+ player.TryRemoveNullCostume(NullItemID.BLINDFOLD);
453
414
  }
454
415
  }
455
416
  else {
456
- cachedClasses_1.game.Challenge = isaac_typescript_definitions_1.Challenge.NULL;
417
+ game.Challenge = Challenge.NULL;
457
418
  player.ChangePlayerType(character);
458
- cachedClasses_1.game.Challenge = challenge;
419
+ game.Challenge = challenge;
459
420
  if (modifyCostume) {
460
- player.TryRemoveNullCostume(isaac_typescript_definitions_1.NullItemID.BLINDFOLD);
421
+ player.TryRemoveNullCostume(NullItemID.BLINDFOLD);
461
422
  }
462
423
  }
463
424
  }