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,43 +1,36 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPlayerTransformations = getPlayerTransformations;
4
- exports.getTransformationName = getTransformationName;
5
- exports.getTransformationsForCollectibleType = getTransformationsForCollectibleType;
6
- exports.hasFlyingTransformation = hasFlyingTransformation;
7
- exports.isTransformationFlying = isTransformationFlying;
8
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
9
- const cachedEnumValues_1 = require("../cachedEnumValues");
10
- const transformationNames_1 = require("../objects/transformationNames");
11
- const ReadonlyMap_1 = require("../types/ReadonlyMap");
12
- const ReadonlySet_1 = require("../types/ReadonlySet");
13
- const collectibles_1 = require("./collectibles");
14
- const flag_1 = require("./flag");
15
- const TRANSFORMATION_TO_TAG_MAP = new ReadonlyMap_1.ReadonlyMap([
16
- [isaac_typescript_definitions_1.PlayerForm.GUPPY, isaac_typescript_definitions_1.ItemConfigTag.GUPPY], // 0
17
- [isaac_typescript_definitions_1.PlayerForm.BEELZEBUB, isaac_typescript_definitions_1.ItemConfigTag.FLY], // 1
18
- [isaac_typescript_definitions_1.PlayerForm.FUN_GUY, isaac_typescript_definitions_1.ItemConfigTag.MUSHROOM], // 2
19
- [isaac_typescript_definitions_1.PlayerForm.SERAPHIM, isaac_typescript_definitions_1.ItemConfigTag.ANGEL], // 3
20
- [isaac_typescript_definitions_1.PlayerForm.BOB, isaac_typescript_definitions_1.ItemConfigTag.BOB], // 4
21
- [isaac_typescript_definitions_1.PlayerForm.SPUN, isaac_typescript_definitions_1.ItemConfigTag.SYRINGE], // 5
22
- [isaac_typescript_definitions_1.PlayerForm.YES_MOTHER, isaac_typescript_definitions_1.ItemConfigTag.MOM], // 6
23
- [isaac_typescript_definitions_1.PlayerForm.CONJOINED, isaac_typescript_definitions_1.ItemConfigTag.BABY], // 7
24
- [isaac_typescript_definitions_1.PlayerForm.LEVIATHAN, isaac_typescript_definitions_1.ItemConfigTag.DEVIL], // 8
25
- [isaac_typescript_definitions_1.PlayerForm.OH_CRAP, isaac_typescript_definitions_1.ItemConfigTag.POOP], // 9
26
- [isaac_typescript_definitions_1.PlayerForm.BOOKWORM, isaac_typescript_definitions_1.ItemConfigTag.BOOK], // 10
1
+ import { ItemConfigTag, PlayerForm } from "isaac-typescript-definitions";
2
+ import { PLAYER_FORM_VALUES } from "../cachedEnumValues";
3
+ import { TRANSFORMATION_NAMES } from "../objects/transformationNames";
4
+ import { ReadonlyMap } from "../types/ReadonlyMap";
5
+ import { ReadonlySet } from "../types/ReadonlySet";
6
+ import { getCollectibleTags } from "./collectibles";
7
+ import { hasFlag } from "./flag";
8
+ const TRANSFORMATION_TO_TAG_MAP = new ReadonlyMap([
9
+ [PlayerForm.GUPPY, ItemConfigTag.GUPPY], // 0
10
+ [PlayerForm.BEELZEBUB, ItemConfigTag.FLY], // 1
11
+ [PlayerForm.FUN_GUY, ItemConfigTag.MUSHROOM], // 2
12
+ [PlayerForm.SERAPHIM, ItemConfigTag.ANGEL], // 3
13
+ [PlayerForm.BOB, ItemConfigTag.BOB], // 4
14
+ [PlayerForm.SPUN, ItemConfigTag.SYRINGE], // 5
15
+ [PlayerForm.YES_MOTHER, ItemConfigTag.MOM], // 6
16
+ [PlayerForm.CONJOINED, ItemConfigTag.BABY], // 7
17
+ [PlayerForm.LEVIATHAN, ItemConfigTag.DEVIL], // 8
18
+ [PlayerForm.OH_CRAP, ItemConfigTag.POOP], // 9
19
+ [PlayerForm.BOOKWORM, ItemConfigTag.BOOK], // 10
27
20
  // PlayerForm.ADULTHOOD (11) is based on pill usage.
28
- [isaac_typescript_definitions_1.PlayerForm.SPIDER_BABY, isaac_typescript_definitions_1.ItemConfigTag.SPIDER], // 12
21
+ [PlayerForm.SPIDER_BABY, ItemConfigTag.SPIDER], // 12
29
22
  // PlayerForm.STOMPY (13) is based on size.
30
23
  ]);
31
- const TRANSFORMATIONS_THAT_GRANT_FLYING = new ReadonlySet_1.ReadonlySet([
32
- isaac_typescript_definitions_1.PlayerForm.GUPPY, // 0
33
- isaac_typescript_definitions_1.PlayerForm.BEELZEBUB, // 1
34
- isaac_typescript_definitions_1.PlayerForm.SERAPHIM, // 3
35
- isaac_typescript_definitions_1.PlayerForm.LEVIATHAN, // 8
24
+ const TRANSFORMATIONS_THAT_GRANT_FLYING = new ReadonlySet([
25
+ PlayerForm.GUPPY, // 0
26
+ PlayerForm.BEELZEBUB, // 1
27
+ PlayerForm.SERAPHIM, // 3
28
+ PlayerForm.LEVIATHAN, // 8
36
29
  ]);
37
30
  /** Returns a set of the player's current transformations. */
38
- function getPlayerTransformations(player) {
31
+ export function getPlayerTransformations(player) {
39
32
  const transformations = new Set();
40
- for (const playerForm of cachedEnumValues_1.PLAYER_FORM_VALUES) {
33
+ for (const playerForm of PLAYER_FORM_VALUES) {
41
34
  if (player.HasPlayerForm(playerForm)) {
42
35
  transformations.add(playerForm);
43
36
  }
@@ -54,28 +47,28 @@ function getPlayerTransformations(player) {
54
47
  * // transformationName is "Beelzebub"
55
48
  * ```
56
49
  */
57
- function getTransformationName(playerForm) {
58
- return transformationNames_1.TRANSFORMATION_NAMES[playerForm];
50
+ export function getTransformationName(playerForm) {
51
+ return TRANSFORMATION_NAMES[playerForm];
59
52
  }
60
53
  /**
61
54
  * Returns a set containing all of the transformations that the given collectible types contribute
62
55
  * towards.
63
56
  */
64
- function getTransformationsForCollectibleType(collectibleType) {
65
- const itemConfigTags = (0, collectibles_1.getCollectibleTags)(collectibleType);
57
+ export function getTransformationsForCollectibleType(collectibleType) {
58
+ const itemConfigTags = getCollectibleTags(collectibleType);
66
59
  const transformationSet = new Set();
67
- for (const playerForm of cachedEnumValues_1.PLAYER_FORM_VALUES) {
60
+ for (const playerForm of PLAYER_FORM_VALUES) {
68
61
  const itemConfigTag = TRANSFORMATION_TO_TAG_MAP.get(playerForm);
69
62
  if (itemConfigTag === undefined) {
70
63
  continue;
71
64
  }
72
- if ((0, flag_1.hasFlag)(itemConfigTags, itemConfigTag)) {
65
+ if (hasFlag(itemConfigTags, itemConfigTag)) {
73
66
  transformationSet.add(playerForm);
74
67
  }
75
68
  }
76
69
  return transformationSet;
77
70
  }
78
- function hasFlyingTransformation(player) {
71
+ export function hasFlyingTransformation(player) {
79
72
  for (const playerForm of TRANSFORMATIONS_THAT_GRANT_FLYING) {
80
73
  if (player.HasPlayerForm(playerForm)) {
81
74
  return true;
@@ -83,6 +76,6 @@ function hasFlyingTransformation(player) {
83
76
  }
84
77
  return false;
85
78
  }
86
- function isTransformationFlying(playerForm) {
79
+ export function isTransformationFlying(playerForm) {
87
80
  return TRANSFORMATIONS_THAT_GRANT_FLYING.has(playerForm);
88
81
  }
@@ -1,44 +1,37 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.giveTrinketsBack = giveTrinketsBack;
4
- exports.smeltTrinket = smeltTrinket;
5
- exports.smeltTrinkets = smeltTrinkets;
6
- exports.temporarilyRemoveTrinket = temporarilyRemoveTrinket;
7
- exports.temporarilyRemoveTrinkets = temporarilyRemoveTrinkets;
8
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
9
- const playerCollectibles_1 = require("./playerCollectibles");
10
- const trinkets_1 = require("./trinkets");
11
- const utils_1 = require("./utils");
1
+ import { CollectibleType, TrinketSlot, TrinketType, } from "isaac-typescript-definitions";
2
+ import { useActiveItemTemp } from "./playerCollectibles";
3
+ import { getGoldenTrinketType } from "./trinkets";
4
+ import { repeat } from "./utils";
12
5
  /**
13
6
  * Helper function to restore the player's trinkets back to the way they were before the
14
7
  * `temporarilyRemoveTrinket` function was used. It will re-smelt any smelted trinkets that were
15
8
  * removed.
16
9
  */
17
- function giveTrinketsBack(player, trinketSituation) {
10
+ export function giveTrinketsBack(player, trinketSituation) {
18
11
  // A trinket situation of undefined signifies that we did not have to remove the trinket. If this
19
12
  // is the case, we do not have to give anything back.
20
13
  if (trinketSituation === undefined) {
21
14
  return;
22
15
  }
23
- const trinketType1 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_1);
24
- const trinketType2 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_2);
16
+ const trinketType1 = player.GetTrinket(TrinketSlot.SLOT_1);
17
+ const trinketType2 = player.GetTrinket(TrinketSlot.SLOT_2);
25
18
  // Remove any existing trinkets.
26
- if (trinketType1 !== isaac_typescript_definitions_1.TrinketType.NULL) {
19
+ if (trinketType1 !== TrinketType.NULL) {
27
20
  player.TryRemoveTrinket(trinketType1);
28
21
  }
29
- if (trinketType2 !== isaac_typescript_definitions_1.TrinketType.NULL) {
22
+ if (trinketType2 !== TrinketType.NULL) {
30
23
  player.TryRemoveTrinket(trinketType2);
31
24
  }
32
25
  // First, add the smelted trinkets back.
33
- (0, utils_1.repeat)(trinketSituation.numSmeltedTrinkets, () => {
26
+ repeat(trinketSituation.numSmeltedTrinkets, () => {
34
27
  player.AddTrinket(trinketSituation.trinketTypeRemoved, false);
35
- (0, playerCollectibles_1.useActiveItemTemp)(player, isaac_typescript_definitions_1.CollectibleType.SMELTER);
28
+ useActiveItemTemp(player, CollectibleType.SMELTER);
36
29
  });
37
30
  // Second, add back the stored trinkets.
38
- if (trinketSituation.trinketType1 !== isaac_typescript_definitions_1.TrinketType.NULL) {
31
+ if (trinketSituation.trinketType1 !== TrinketType.NULL) {
39
32
  player.AddTrinket(trinketSituation.trinketType1, false);
40
33
  }
41
- if (trinketSituation.trinketType2 !== isaac_typescript_definitions_1.TrinketType.NULL) {
34
+ if (trinketSituation.trinketType2 !== TrinketType.NULL) {
42
35
  player.AddTrinket(trinketSituation.trinketType2, false);
43
36
  }
44
37
  }
@@ -52,11 +45,11 @@ function giveTrinketsBack(player, trinketSituation) {
52
45
  * @param numTrinkets Optional. If specified, will smelt the given number of trinkets. Use this to
53
46
  * avoid calling this function multiple times. Default is 1.
54
47
  */
55
- function smeltTrinket(player, trinketType, numTrinkets = 1) {
48
+ export function smeltTrinket(player, trinketType, numTrinkets = 1) {
56
49
  const trinketSituation = temporarilyRemoveTrinkets(player);
57
- (0, utils_1.repeat)(numTrinkets, () => {
50
+ repeat(numTrinkets, () => {
58
51
  player.AddTrinket(trinketType);
59
- (0, playerCollectibles_1.useActiveItemTemp)(player, isaac_typescript_definitions_1.CollectibleType.SMELTER);
52
+ useActiveItemTemp(player, CollectibleType.SMELTER);
60
53
  });
61
54
  giveTrinketsBack(player, trinketSituation);
62
55
  }
@@ -72,7 +65,7 @@ function smeltTrinket(player, trinketType, numTrinkets = 1) {
72
65
  * @param player The player to smelt the trinkets to.
73
66
  * @param trinketTypes The trinket types to smelt.
74
67
  */
75
- function smeltTrinkets(player, ...trinketTypes) {
68
+ export function smeltTrinkets(player, ...trinketTypes) {
76
69
  for (const trinketType of trinketTypes) {
77
70
  smeltTrinket(player, trinketType);
78
71
  }
@@ -87,12 +80,12 @@ function smeltTrinkets(player, ...trinketTypes) {
87
80
  *
88
81
  * @returns Undefined if the player does not have the trinket, or TrinketSituation if they do.
89
82
  */
90
- function temporarilyRemoveTrinket(player, trinketType) {
83
+ export function temporarilyRemoveTrinket(player, trinketType) {
91
84
  if (!player.HasTrinket(trinketType)) {
92
85
  return undefined;
93
86
  }
94
- const trinketType1 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_1);
95
- const trinketType2 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_2);
87
+ const trinketType1 = player.GetTrinket(TrinketSlot.SLOT_1);
88
+ const trinketType2 = player.GetTrinket(TrinketSlot.SLOT_2);
96
89
  let numTrinkets = 0;
97
90
  while (player.HasTrinket(trinketType)) {
98
91
  player.TryRemoveTrinket(trinketType);
@@ -100,12 +93,12 @@ function temporarilyRemoveTrinket(player, trinketType) {
100
93
  }
101
94
  let numSmeltedTrinkets = numTrinkets;
102
95
  const trinketWasInSlot1 = trinketType1 === trinketType
103
- || trinketType1 === (0, trinkets_1.getGoldenTrinketType)(trinketType);
96
+ || trinketType1 === getGoldenTrinketType(trinketType);
104
97
  if (trinketWasInSlot1) {
105
98
  numSmeltedTrinkets--;
106
99
  }
107
100
  const trinketWasInSlot2 = trinketType2 === trinketType
108
- || trinketType2 === (0, trinkets_1.getGoldenTrinketType)(trinketType);
101
+ || trinketType2 === getGoldenTrinketType(trinketType);
109
102
  if (trinketWasInSlot2) {
110
103
  numSmeltedTrinkets--;
111
104
  }
@@ -123,20 +116,20 @@ function temporarilyRemoveTrinket(player, trinketType) {
123
116
  *
124
117
  * @returns Undefined if the player does not have any trinkets, or TrinketSituation if they do.
125
118
  */
126
- function temporarilyRemoveTrinkets(player) {
127
- const trinketType1 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_1);
128
- const trinketType2 = player.GetTrinket(isaac_typescript_definitions_1.TrinketSlot.SLOT_2);
129
- if (trinketType1 === isaac_typescript_definitions_1.TrinketType.NULL && trinketType2 === isaac_typescript_definitions_1.TrinketType.NULL) {
119
+ export function temporarilyRemoveTrinkets(player) {
120
+ const trinketType1 = player.GetTrinket(TrinketSlot.SLOT_1);
121
+ const trinketType2 = player.GetTrinket(TrinketSlot.SLOT_2);
122
+ if (trinketType1 === TrinketType.NULL && trinketType2 === TrinketType.NULL) {
130
123
  return undefined;
131
124
  }
132
- if (trinketType1 !== isaac_typescript_definitions_1.TrinketType.NULL) {
125
+ if (trinketType1 !== TrinketType.NULL) {
133
126
  player.TryRemoveTrinket(trinketType1);
134
127
  }
135
- if (trinketType2 !== isaac_typescript_definitions_1.TrinketType.NULL) {
128
+ if (trinketType2 !== TrinketType.NULL) {
136
129
  player.TryRemoveTrinket(trinketType2);
137
130
  }
138
131
  return {
139
- trinketTypeRemoved: isaac_typescript_definitions_1.TrinketType.NULL,
132
+ trinketTypeRemoved: TrinketType.NULL,
140
133
  trinketType1,
141
134
  trinketType2,
142
135
  numSmeltedTrinkets: 0,
@@ -1,31 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGoldenTrinketType = getGoldenTrinketType;
4
- exports.getMysteriousPaperEffectForFrame = getMysteriousPaperEffectForFrame;
5
- exports.getNormalTrinketType = getNormalTrinketType;
6
- exports.getTrinketDescription = getTrinketDescription;
7
- exports.getTrinketGfxFilename = getTrinketGfxFilename;
8
- exports.getTrinketName = getTrinketName;
9
- exports.isGoldenTrinketType = isGoldenTrinketType;
10
- exports.isModdedTrinketType = isModdedTrinketType;
11
- exports.isValidTrinketType = isValidTrinketType;
12
- exports.isVanillaTrinketType = isVanillaTrinketType;
13
- exports.newTrinketSprite = newTrinketSprite;
14
- exports.setTrinketSprite = setTrinketSprite;
15
- exports.trinketHasCacheFlag = trinketHasCacheFlag;
16
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
17
- const cachedClasses_1 = require("../core/cachedClasses");
18
- const constants_1 = require("../core/constants");
19
- const constantsFirstLast_1 = require("../core/constantsFirstLast");
20
- const MysteriousPaperEffect_1 = require("../enums/MysteriousPaperEffect");
21
- const trinketDescriptions_1 = require("../objects/trinketDescriptions");
22
- const trinketNames_1 = require("../objects/trinketNames");
23
- const entities_1 = require("./entities");
24
- const enums_1 = require("./enums");
25
- const flag_1 = require("./flag");
26
- const pickupVariants_1 = require("./pickupVariants");
27
- const sprites_1 = require("./sprites");
28
- const types_1 = require("./types");
1
+ import { TrinketType } from "isaac-typescript-definitions";
2
+ import { itemConfig } from "../core/cachedClasses";
3
+ import { BLIND_ITEM_PNG_PATH } from "../core/constants";
4
+ import { LAST_VANILLA_TRINKET_TYPE } from "../core/constantsFirstLast";
5
+ import { MysteriousPaperEffect } from "../enums/MysteriousPaperEffect";
6
+ import { DEFAULT_TRINKET_DESCRIPTION, TRINKET_DESCRIPTIONS, } from "../objects/trinketDescriptions";
7
+ import { DEFAULT_TRINKET_NAME, TRINKET_NAMES } from "../objects/trinketNames";
8
+ import { getEntityID } from "./entities";
9
+ import { getEnumLength } from "./enums";
10
+ import { hasFlag } from "./flag";
11
+ import { isTrinket } from "./pickupVariants";
12
+ import { clearSprite } from "./sprites";
13
+ import { asNumber, asTrinketType } from "./types";
29
14
  /**
30
15
  * Add this to a `TrinketType` to get the corresponding golden trinket type.
31
16
  *
@@ -34,7 +19,7 @@ const types_1 = require("./types");
34
19
  * 1 << 15
35
20
  */
36
21
  const GOLDEN_TRINKET_ADJUSTMENT = 32_768;
37
- const NUM_MYSTERIOUS_PAPER_EFFECTS = (0, enums_1.getEnumLength)(MysteriousPaperEffect_1.MysteriousPaperEffect);
22
+ const NUM_MYSTERIOUS_PAPER_EFFECTS = getEnumLength(MysteriousPaperEffect);
38
23
  const TRINKET_ANM2_PATH = "gfx/005.350_trinket.anm2";
39
24
  const TRINKET_SPRITE_LAYER = 0;
40
25
  /**
@@ -46,7 +31,7 @@ const TRINKET_SPRITE_LAYER = 0;
46
31
  * For example, passing `TrinketType.SWALLOWED_PENNY` would result in 32769, which is the value that
47
32
  * corresponds to the golden trinket sub-type for Swallowed Penny.
48
33
  */
49
- function getGoldenTrinketType(trinketType) {
34
+ export function getGoldenTrinketType(trinketType) {
50
35
  return isGoldenTrinketType(trinketType)
51
36
  ? trinketType
52
37
  : trinketType + GOLDEN_TRINKET_ADJUSTMENT;
@@ -71,9 +56,9 @@ function getGoldenTrinketType(trinketType) {
71
56
  * @param frameCount Optional. The frame count that corresponds to time the effect will be active.
72
57
  * Default is the current frame.
73
58
  */
74
- function getMysteriousPaperEffectForFrame(player, frameCount) {
59
+ export function getMysteriousPaperEffectForFrame(player, frameCount) {
75
60
  frameCount ??= player.FrameCount;
76
- if (!player.HasTrinket(isaac_typescript_definitions_1.TrinketType.MYSTERIOUS_PAPER)) {
61
+ if (!player.HasTrinket(TrinketType.MYSTERIOUS_PAPER)) {
77
62
  return undefined;
78
63
  }
79
64
  return frameCount % NUM_MYSTERIOUS_PAPER_EFFECTS;
@@ -84,7 +69,7 @@ function getMysteriousPaperEffectForFrame(player, frameCount) {
84
69
  * If the provided trinket type is already a normal trinket type, then the trinket type will be
85
70
  * returned unmodified.
86
71
  */
87
- function getNormalTrinketType(trinketType) {
72
+ export function getNormalTrinketType(trinketType) {
88
73
  return isGoldenTrinketType(trinketType)
89
74
  ? trinketType - GOLDEN_TRINKET_ADJUSTMENT
90
75
  : trinketType;
@@ -95,18 +80,18 @@ function getNormalTrinketType(trinketType) {
95
80
  *
96
81
  * This function works for both vanilla and modded trinkets.
97
82
  */
98
- function getTrinketDescription(trinketType) {
83
+ export function getTrinketDescription(trinketType) {
99
84
  // "ItemConfigItem.Description" is bugged with vanilla items on patch v1.7.6, so we use a
100
85
  // hard-coded object as a workaround.
101
- const trinketDescription = trinketDescriptions_1.TRINKET_DESCRIPTIONS[trinketType];
86
+ const trinketDescription = TRINKET_DESCRIPTIONS[trinketType];
102
87
  if (trinketDescription !== undefined) {
103
88
  return trinketDescription;
104
89
  }
105
- const itemConfigItem = cachedClasses_1.itemConfig.GetTrinket(trinketType);
90
+ const itemConfigItem = itemConfig.GetTrinket(trinketType);
106
91
  if (itemConfigItem !== undefined) {
107
92
  return itemConfigItem.Description;
108
93
  }
109
- return trinketDescriptions_1.DEFAULT_TRINKET_DESCRIPTION;
94
+ return DEFAULT_TRINKET_DESCRIPTION;
110
95
  }
111
96
  /**
112
97
  * Helper function to get the path to a trinket PNG file. Returns the path to the question mark
@@ -116,10 +101,10 @@ function getTrinketDescription(trinketType) {
116
101
  * function is named "GfxFilename" to correspond to the associated `ItemConfigItem.GfxFileName`
117
102
  * field.
118
103
  */
119
- function getTrinketGfxFilename(trinketType) {
120
- const itemConfigItem = cachedClasses_1.itemConfig.GetTrinket(trinketType);
104
+ export function getTrinketGfxFilename(trinketType) {
105
+ const itemConfigItem = itemConfig.GetTrinket(trinketType);
121
106
  if (itemConfigItem === undefined) {
122
- return constants_1.BLIND_ITEM_PNG_PATH;
107
+ return BLIND_ITEM_PNG_PATH;
123
108
  }
124
109
  return itemConfigItem.GfxFileName;
125
110
  }
@@ -131,38 +116,38 @@ function getTrinketGfxFilename(trinketType) {
131
116
  *
132
117
  * For example, `getTrinketName(TrinketType.SWALLOWED_PENNY)` would return "Swallowed Penny".
133
118
  */
134
- function getTrinketName(trinketType) {
119
+ export function getTrinketName(trinketType) {
135
120
  // "ItemConfigItem.Name" is bugged with vanilla items on patch v1.7.6, so we use a hard-coded
136
121
  // object as a workaround.
137
- const trinketName = trinketNames_1.TRINKET_NAMES[trinketType];
122
+ const trinketName = TRINKET_NAMES[trinketType];
138
123
  if (trinketName !== undefined) {
139
124
  return trinketName;
140
125
  }
141
- const itemConfigItem = cachedClasses_1.itemConfig.GetTrinket(trinketType);
126
+ const itemConfigItem = itemConfig.GetTrinket(trinketType);
142
127
  if (itemConfigItem !== undefined) {
143
128
  return itemConfigItem.Name;
144
129
  }
145
- return trinketNames_1.DEFAULT_TRINKET_NAME;
130
+ return DEFAULT_TRINKET_NAME;
146
131
  }
147
- function isGoldenTrinketType(trinketType) {
148
- return (0, types_1.asNumber)(trinketType) > GOLDEN_TRINKET_ADJUSTMENT;
132
+ export function isGoldenTrinketType(trinketType) {
133
+ return asNumber(trinketType) > GOLDEN_TRINKET_ADJUSTMENT;
149
134
  }
150
- function isModdedTrinketType(trinketType) {
135
+ export function isModdedTrinketType(trinketType) {
151
136
  return !isVanillaTrinketType(trinketType);
152
137
  }
153
- function isValidTrinketType(trinketType) {
154
- const potentialTrinketType = (0, types_1.asTrinketType)(trinketType);
155
- const itemConfigItem = cachedClasses_1.itemConfig.GetTrinket(potentialTrinketType);
138
+ export function isValidTrinketType(trinketType) {
139
+ const potentialTrinketType = asTrinketType(trinketType);
140
+ const itemConfigItem = itemConfig.GetTrinket(potentialTrinketType);
156
141
  return itemConfigItem !== undefined;
157
142
  }
158
- function isVanillaTrinketType(trinketType) {
159
- return trinketType <= constantsFirstLast_1.LAST_VANILLA_TRINKET_TYPE;
143
+ export function isVanillaTrinketType(trinketType) {
144
+ return trinketType <= LAST_VANILLA_TRINKET_TYPE;
160
145
  }
161
146
  /**
162
147
  * Helper function to generate a new sprite based on a collectible. If the provided collectible type
163
148
  * is invalid, a sprite with a Curse of the Blind question mark will be returned.
164
149
  */
165
- function newTrinketSprite(trinketType) {
150
+ export function newTrinketSprite(trinketType) {
166
151
  const sprite = Sprite();
167
152
  sprite.Load(TRINKET_ANM2_PATH, false);
168
153
  const gfxFileName = getTrinketGfxFilename(trinketType);
@@ -184,16 +169,16 @@ function newTrinketSprite(trinketType) {
184
169
  * the sprite will be removed, making the trinket effectively invisible (except for
185
170
  * the shadow underneath it).
186
171
  */
187
- function setTrinketSprite(trinket, pngPath) {
188
- if (!(0, pickupVariants_1.isTrinket)(trinket)) {
189
- const entityID = (0, entities_1.getEntityID)(trinket);
172
+ export function setTrinketSprite(trinket, pngPath) {
173
+ if (!isTrinket(trinket)) {
174
+ const entityID = getEntityID(trinket);
190
175
  error(`The "setTrinketSprite" function was given a non-trinket: ${entityID}`);
191
176
  }
192
177
  const sprite = trinket.GetSprite();
193
178
  if (pngPath === undefined) {
194
179
  // We use `clearSpriteLayer` instead of `Sprite.Reset` to maintain parity with the
195
180
  // `setCollectibleSprite` function.
196
- (0, sprites_1.clearSprite)(sprite);
181
+ clearSprite(sprite);
197
182
  }
198
183
  else {
199
184
  sprite.ReplaceSpritesheet(TRINKET_SPRITE_LAYER, pngPath);
@@ -201,10 +186,10 @@ function setTrinketSprite(trinket, pngPath) {
201
186
  }
202
187
  }
203
188
  /** Helper function to check in the item config if a given trinket has a given cache flag. */
204
- function trinketHasCacheFlag(trinketType, cacheFlag) {
205
- const itemConfigItem = cachedClasses_1.itemConfig.GetTrinket(trinketType);
189
+ export function trinketHasCacheFlag(trinketType, cacheFlag) {
190
+ const itemConfigItem = itemConfig.GetTrinket(trinketType);
206
191
  if (itemConfigItem === undefined) {
207
192
  return false;
208
193
  }
209
- return (0, flag_1.hasFlag)(itemConfigItem.CacheFlags, cacheFlag);
194
+ return hasFlag(itemConfigItem.CacheFlags, cacheFlag);
210
195
  }
@@ -1,22 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTSTLClassConstructor = getTSTLClassConstructor;
4
- exports.getTSTLClassName = getTSTLClassName;
5
- exports.isDefaultMap = isDefaultMap;
6
- exports.isTSTLClass = isTSTLClass;
7
- exports.isTSTLMap = isTSTLMap;
8
- exports.isTSTLSet = isTSTLSet;
9
- exports.newTSTLClass = newTSTLClass;
10
- const types_1 = require("./types");
11
- const utils_1 = require("./utils");
1
+ import { isTable } from "./types";
2
+ import { assertDefined } from "./utils";
12
3
  /**
13
4
  * Helper function to get the constructor from an instantiated TypeScriptToLua class, which is
14
5
  * located on the metatable.
15
6
  *
16
7
  * Returns undefined if passed a non-table or if the provided table does not have a metatable.
17
8
  */
18
- function getTSTLClassConstructor(object) {
19
- if (!(0, types_1.isTable)(object)) {
9
+ export function getTSTLClassConstructor(object) {
10
+ if (!isTable(object)) {
20
11
  return undefined;
21
12
  }
22
13
  const metatable = getmetatable(object);
@@ -35,7 +26,7 @@ function getTSTLClassConstructor(object) {
35
26
  *
36
27
  * Returns undefined if passed a non-table or if the provided table does not have a metatable.
37
28
  */
38
- function getTSTLClassName(object) {
29
+ export function getTSTLClassName(object) {
39
30
  const constructor = getTSTLClassConstructor(object);
40
31
  if (constructor === undefined) {
41
32
  return undefined;
@@ -48,12 +39,12 @@ function getTSTLClassName(object) {
48
39
  * It is not reliable to use the `instanceof` operator to determine this because each Lua module has
49
40
  * their own copies of the entire lualib and thus their own instantiated version of a `DefaultMap`.
50
41
  */
51
- function isDefaultMap(object) {
42
+ export function isDefaultMap(object) {
52
43
  const className = getTSTLClassName(object);
53
44
  return className === "DefaultMap";
54
45
  }
55
46
  /** Helper function to check if a given table is a class table created by TypeScriptToLua. */
56
- function isTSTLClass(object) {
47
+ export function isTSTLClass(object) {
57
48
  const tstlClassName = getTSTLClassName(object);
58
49
  return tstlClassName !== undefined;
59
50
  }
@@ -64,7 +55,7 @@ function isTSTLClass(object) {
64
55
  * might have their own copy of the entire lualib and thus their own instantiated version of a
65
56
  * `Map`.
66
57
  */
67
- function isTSTLMap(object) {
58
+ export function isTSTLMap(object) {
68
59
  const className = getTSTLClassName(object);
69
60
  return className === "Map";
70
61
  }
@@ -75,7 +66,7 @@ function isTSTLMap(object) {
75
66
  * might have their own copy of the entire lualib and thus their own instantiated version of a
76
67
  * `Set`.
77
68
  */
78
- function isTSTLSet(object) {
69
+ export function isTSTLSet(object) {
79
70
  const className = getTSTLClassName(object);
80
71
  return className === "Set";
81
72
  }
@@ -85,9 +76,9 @@ function isTSTLSet(object) {
85
76
  * use the class constructor that is present on the other object's metatable to initialize the new
86
77
  * class.
87
78
  */
88
- function newTSTLClass(oldClass) {
79
+ export function newTSTLClass(oldClass) {
89
80
  const constructor = getTSTLClassConstructor(oldClass);
90
- (0, utils_1.assertDefined)(constructor, "Failed to instantiate a new TypeScriptToLua class since the provided old class does not have a metatable/constructor.");
81
+ assertDefined(constructor, "Failed to instantiate a new TypeScriptToLua class since the provided old class does not have a metatable/constructor.");
91
82
  // We re-implement some of the logic from the transpiled "__TS__New" function.
92
83
  const newClass = new LuaMap();
93
84
  const newClassMetatable = setmetatable(newClass, constructor.prototype);