isaacscript-common 84.0.0 → 84.1.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 (568) hide show
  1. package/dist/arrays/cachedEnumValues.js +33 -0
  2. package/dist/callbackClasses.js +289 -0
  3. package/dist/callbacks.js +181 -0
  4. package/dist/classes/DefaultMap.js +171 -0
  5. package/dist/classes/ModFeature.js +244 -0
  6. package/dist/classes/ModUpgraded.js +324 -0
  7. package/dist/classes/callbacks/EntityTakeDmgFilter.js +19 -0
  8. package/dist/classes/callbacks/EntityTakeDmgPlayer.js +29 -0
  9. package/dist/classes/callbacks/InputActionFilter.js +24 -0
  10. package/dist/classes/callbacks/InputActionPlayer.js +37 -0
  11. package/dist/classes/callbacks/PostAmbushFinished.js +40 -0
  12. package/dist/classes/callbacks/PostAmbushStarted.js +40 -0
  13. package/dist/classes/callbacks/PostBombExploded.js +24 -0
  14. package/dist/classes/callbacks/PostBombInitFilter.js +21 -0
  15. package/dist/classes/callbacks/PostBombInitLate.js +31 -0
  16. package/dist/classes/callbacks/PostBombRenderFilter.js +21 -0
  17. package/dist/classes/callbacks/PostBombUpdateFilter.js +21 -0
  18. package/dist/classes/callbacks/PostBoneSwing.js +53 -0
  19. package/dist/classes/callbacks/PostCollectibleEmpty.js +50 -0
  20. package/dist/classes/callbacks/PostCursedTeleport.js +119 -0
  21. package/dist/classes/callbacks/PostCustomRevive.js +17 -0
  22. package/dist/classes/callbacks/PostDiceRoomActivated.js +50 -0
  23. package/dist/classes/callbacks/PostDoorRender.js +24 -0
  24. package/dist/classes/callbacks/PostDoorUpdate.js +24 -0
  25. package/dist/classes/callbacks/PostEffectInitFilter.js +21 -0
  26. package/dist/classes/callbacks/PostEffectInitLate.js +31 -0
  27. package/dist/classes/callbacks/PostEffectRenderFilter.js +21 -0
  28. package/dist/classes/callbacks/PostEffectStateChanged.js +34 -0
  29. package/dist/classes/callbacks/PostEffectUpdateFilter.js +21 -0
  30. package/dist/classes/callbacks/PostEntityKillFilter.js +21 -0
  31. package/dist/classes/callbacks/PostEsauJr.js +12 -0
  32. package/dist/classes/callbacks/PostFamiliarInitFilter.js +21 -0
  33. package/dist/classes/callbacks/PostFamiliarInitLate.js +31 -0
  34. package/dist/classes/callbacks/PostFamiliarRenderFilter.js +21 -0
  35. package/dist/classes/callbacks/PostFamiliarStateChanged.js +34 -0
  36. package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +21 -0
  37. package/dist/classes/callbacks/PostFirstEsauJr.js +12 -0
  38. package/dist/classes/callbacks/PostFirstFlip.js +12 -0
  39. package/dist/classes/callbacks/PostFlip.js +12 -0
  40. package/dist/classes/callbacks/PostGameEndFilter.js +21 -0
  41. package/dist/classes/callbacks/PostGameStartedReordered.js +14 -0
  42. package/dist/classes/callbacks/PostGameStartedReorderedLast.js +14 -0
  43. package/dist/classes/callbacks/PostGreedModeWave.js +35 -0
  44. package/dist/classes/callbacks/PostGridEntityBroken.js +14 -0
  45. package/dist/classes/callbacks/PostGridEntityCollision.js +28 -0
  46. package/dist/classes/callbacks/PostGridEntityCustomBroken.js +14 -0
  47. package/dist/classes/callbacks/PostGridEntityCustomCollision.js +24 -0
  48. package/dist/classes/callbacks/PostGridEntityCustomInit.js +14 -0
  49. package/dist/classes/callbacks/PostGridEntityCustomRemove.js +18 -0
  50. package/dist/classes/callbacks/PostGridEntityCustomRender.js +14 -0
  51. package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +14 -0
  52. package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +14 -0
  53. package/dist/classes/callbacks/PostGridEntityInit.js +14 -0
  54. package/dist/classes/callbacks/PostGridEntityRemove.js +19 -0
  55. package/dist/classes/callbacks/PostGridEntityRender.js +14 -0
  56. package/dist/classes/callbacks/PostGridEntityStateChanged.js +14 -0
  57. package/dist/classes/callbacks/PostGridEntityUpdate.js +14 -0
  58. package/dist/classes/callbacks/PostHolyMantleRemoved.js +43 -0
  59. package/dist/classes/callbacks/PostItemDischarge.js +122 -0
  60. package/dist/classes/callbacks/PostItemPickup.js +14 -0
  61. package/dist/classes/callbacks/PostKeyboardChanged.js +46 -0
  62. package/dist/classes/callbacks/PostKnifeInitFilter.js +21 -0
  63. package/dist/classes/callbacks/PostKnifeInitLate.js +31 -0
  64. package/dist/classes/callbacks/PostKnifeRenderFilter.js +21 -0
  65. package/dist/classes/callbacks/PostKnifeUpdateFilter.js +21 -0
  66. package/dist/classes/callbacks/PostLaserInitFilter.js +21 -0
  67. package/dist/classes/callbacks/PostLaserInitLate.js +31 -0
  68. package/dist/classes/callbacks/PostLaserRenderFilter.js +21 -0
  69. package/dist/classes/callbacks/PostLaserUpdateFilter.js +21 -0
  70. package/dist/classes/callbacks/PostNPCDeathFilter.js +21 -0
  71. package/dist/classes/callbacks/PostNPCInitFilter.js +21 -0
  72. package/dist/classes/callbacks/PostNPCInitLate.js +31 -0
  73. package/dist/classes/callbacks/PostNPCRenderFilter.js +21 -0
  74. package/dist/classes/callbacks/PostNPCStateChanged.js +34 -0
  75. package/dist/classes/callbacks/PostNPCUpdateFilter.js +21 -0
  76. package/dist/classes/callbacks/PostNewLevelReordered.js +14 -0
  77. package/dist/classes/callbacks/PostNewRoomEarly.js +74 -0
  78. package/dist/classes/callbacks/PostNewRoomReordered.js +14 -0
  79. package/dist/classes/callbacks/PostPEffectUpdateReordered.js +14 -0
  80. package/dist/classes/callbacks/PostPickupChanged.js +14 -0
  81. package/dist/classes/callbacks/PostPickupCollect.js +38 -0
  82. package/dist/classes/callbacks/PostPickupInitFilter.js +21 -0
  83. package/dist/classes/callbacks/PostPickupInitFirst.js +33 -0
  84. package/dist/classes/callbacks/PostPickupInitLate.js +31 -0
  85. package/dist/classes/callbacks/PostPickupRenderFilter.js +21 -0
  86. package/dist/classes/callbacks/PostPickupSelectionFilter.js +29 -0
  87. package/dist/classes/callbacks/PostPickupStateChanged.js +34 -0
  88. package/dist/classes/callbacks/PostPickupUpdateFilter.js +21 -0
  89. package/dist/classes/callbacks/PostPitRender.js +24 -0
  90. package/dist/classes/callbacks/PostPitUpdate.js +24 -0
  91. package/dist/classes/callbacks/PostPlayerChangeHealth.js +47 -0
  92. package/dist/classes/callbacks/PostPlayerChangeStat.js +79 -0
  93. package/dist/classes/callbacks/PostPlayerChangeType.js +36 -0
  94. package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +14 -0
  95. package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +14 -0
  96. package/dist/classes/callbacks/PostPlayerFatalDamage.js +83 -0
  97. package/dist/classes/callbacks/PostPlayerInitFirst.js +41 -0
  98. package/dist/classes/callbacks/PostPlayerInitLate.js +33 -0
  99. package/dist/classes/callbacks/PostPlayerRenderReordered.js +14 -0
  100. package/dist/classes/callbacks/PostPlayerUpdateReordered.js +14 -0
  101. package/dist/classes/callbacks/PostPoopRender.js +24 -0
  102. package/dist/classes/callbacks/PostPoopUpdate.js +24 -0
  103. package/dist/classes/callbacks/PostPressurePlateRender.js +24 -0
  104. package/dist/classes/callbacks/PostPressurePlateUpdate.js +24 -0
  105. package/dist/classes/callbacks/PostProjectileInitFilter.js +21 -0
  106. package/dist/classes/callbacks/PostProjectileInitLate.js +31 -0
  107. package/dist/classes/callbacks/PostProjectileKill.js +52 -0
  108. package/dist/classes/callbacks/PostProjectileRenderFilter.js +21 -0
  109. package/dist/classes/callbacks/PostProjectileUpdateFilter.js +21 -0
  110. package/dist/classes/callbacks/PostPurchase.js +90 -0
  111. package/dist/classes/callbacks/PostRockRender.js +24 -0
  112. package/dist/classes/callbacks/PostRockUpdate.js +24 -0
  113. package/dist/classes/callbacks/PostRoomClearChanged.js +46 -0
  114. package/dist/classes/callbacks/PostSacrifice.js +36 -0
  115. package/dist/classes/callbacks/PostSlotAnimationChanged.js +14 -0
  116. package/dist/classes/callbacks/PostSlotCollision.js +25 -0
  117. package/dist/classes/callbacks/PostSlotDestroyed.js +14 -0
  118. package/dist/classes/callbacks/PostSlotInit.js +14 -0
  119. package/dist/classes/callbacks/PostSlotRender.js +14 -0
  120. package/dist/classes/callbacks/PostSlotUpdate.js +14 -0
  121. package/dist/classes/callbacks/PostSpikesRender.js +24 -0
  122. package/dist/classes/callbacks/PostSpikesUpdate.js +24 -0
  123. package/dist/classes/callbacks/PostTNTRender.js +24 -0
  124. package/dist/classes/callbacks/PostTNTUpdate.js +24 -0
  125. package/dist/classes/callbacks/PostTearInitFilter.js +21 -0
  126. package/dist/classes/callbacks/PostTearInitLate.js +31 -0
  127. package/dist/classes/callbacks/PostTearInitVeryLate.js +35 -0
  128. package/dist/classes/callbacks/PostTearKill.js +52 -0
  129. package/dist/classes/callbacks/PostTearRenderFilter.js +21 -0
  130. package/dist/classes/callbacks/PostTearUpdateFilter.js +21 -0
  131. package/dist/classes/callbacks/PostTransformation.js +47 -0
  132. package/dist/classes/callbacks/PostTrinketBreak.js +70 -0
  133. package/dist/classes/callbacks/PostUsePillFilter.js +76 -0
  134. package/dist/classes/callbacks/PreBerserkDeath.js +41 -0
  135. package/dist/classes/callbacks/PreBombCollisionFilter.js +19 -0
  136. package/dist/classes/callbacks/PreCustomRevive.js +14 -0
  137. package/dist/classes/callbacks/PreEntitySpawnFilter.js +24 -0
  138. package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +19 -0
  139. package/dist/classes/callbacks/PreGetPedestal.js +46 -0
  140. package/dist/classes/callbacks/PreItemPickup.js +14 -0
  141. package/dist/classes/callbacks/PreKnifeCollisionFilter.js +19 -0
  142. package/dist/classes/callbacks/PreNPCCollisionFilter.js +19 -0
  143. package/dist/classes/callbacks/PreNPCUpdateFilter.js +19 -0
  144. package/dist/classes/callbacks/PreNewLevel.js +51 -0
  145. package/dist/classes/callbacks/PreProjectileCollisionFilter.js +19 -0
  146. package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +26 -0
  147. package/dist/classes/callbacks/PreTearCollisionFilter.js +19 -0
  148. package/dist/classes/features/callbackLogic/CustomGridEntities.js +359 -0
  149. package/dist/classes/features/callbackLogic/CustomRevive.js +170 -0
  150. package/dist/classes/features/callbackLogic/EsauJrDetection.js +70 -0
  151. package/dist/classes/features/callbackLogic/FlipDetection.js +61 -0
  152. package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +220 -0
  153. package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +62 -0
  154. package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +35 -0
  155. package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +147 -0
  156. package/dist/classes/features/callbackLogic/ItemPickupDetection.js +68 -0
  157. package/dist/classes/features/callbackLogic/PickupChangeDetection.js +43 -0
  158. package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +193 -0
  159. package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +109 -0
  160. package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +95 -0
  161. package/dist/classes/features/callbackLogic/SlotRenderDetection.js +48 -0
  162. package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +52 -0
  163. package/dist/classes/features/other/CharacterHealthConversion.js +112 -0
  164. package/dist/classes/features/other/CharacterStats.js +68 -0
  165. package/dist/classes/features/other/CollectibleItemPoolType.js +75 -0
  166. package/dist/classes/features/other/CustomHotkeys.js +144 -0
  167. package/dist/classes/features/other/CustomItemPools.js +128 -0
  168. package/dist/classes/features/other/CustomPickups.js +118 -0
  169. package/dist/classes/features/other/CustomStages.js +471 -0
  170. package/dist/classes/features/other/CustomTrapdoors.js +596 -0
  171. package/dist/classes/features/other/DebugDisplay.js +699 -0
  172. package/dist/classes/features/other/DeployJSONRoom.js +301 -0
  173. package/dist/classes/features/other/DisableAllSound.js +90 -0
  174. package/dist/classes/features/other/DisableInputs.js +249 -0
  175. package/dist/classes/features/other/EdenStartingStatsHealth.js +197 -0
  176. package/dist/classes/features/other/ExtraConsoleCommands.js +292 -0
  177. package/dist/classes/features/other/FadeInRemover.js +67 -0
  178. package/dist/classes/features/other/FastReset.js +88 -0
  179. package/dist/classes/features/other/FlyingDetection.js +64 -0
  180. package/dist/classes/features/other/ForgottenSwitch.js +43 -0
  181. package/dist/classes/features/other/ItemPoolDetection.js +187 -0
  182. package/dist/classes/features/other/ModdedElementDetection.js +399 -0
  183. package/dist/classes/features/other/ModdedElementSets.js +1251 -0
  184. package/dist/classes/features/other/NoSirenSteal.js +88 -0
  185. package/dist/classes/features/other/Pause.js +197 -0
  186. package/dist/classes/features/other/PersistentEntities.js +168 -0
  187. package/dist/classes/features/other/PickupIndexCreation.js +229 -0
  188. package/dist/classes/features/other/PlayerCollectibleTracking.js +102 -0
  189. package/dist/classes/features/other/PonyDetection.js +86 -0
  190. package/dist/classes/features/other/PressInput.js +71 -0
  191. package/dist/classes/features/other/PreventChildEntities.js +60 -0
  192. package/dist/classes/features/other/PreventGridEntityRespawn.js +159 -0
  193. package/dist/classes/features/other/RerunDetection.js +69 -0
  194. package/dist/classes/features/other/RoomClearFrame.js +94 -0
  195. package/dist/classes/features/other/RoomHistory.js +196 -0
  196. package/dist/classes/features/other/RunInNFrames.js +323 -0
  197. package/dist/classes/features/other/RunNextRoom.js +53 -0
  198. package/dist/classes/features/other/RunNextRun.js +60 -0
  199. package/dist/classes/features/other/SaveDataManager.js +383 -0
  200. package/dist/classes/features/other/SpawnRockAltRewards.js +469 -0
  201. package/dist/classes/features/other/StageHistory.js +244 -0
  202. package/dist/classes/features/other/StartAmbush.js +62 -0
  203. package/dist/classes/features/other/TaintedLazarusPlayers.js +115 -0
  204. package/dist/classes/features/other/UnlockAchievementsDetection.js +60 -0
  205. package/dist/classes/features/other/customStages/backdrop.js +195 -0
  206. package/dist/classes/features/other/customStages/constants.js +19 -0
  207. package/dist/classes/features/other/customStages/gridEntities.js +177 -0
  208. package/dist/classes/features/other/customStages/shadows.js +67 -0
  209. package/dist/classes/features/other/customStages/streakText.js +222 -0
  210. package/dist/classes/features/other/customStages/utils.js +65 -0
  211. package/dist/classes/features/other/customStages/v.js +27 -0
  212. package/dist/classes/features/other/customStages/versusScreen.js +227 -0
  213. package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +23 -0
  214. package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +22 -0
  215. package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +23 -0
  216. package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +23 -0
  217. package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +23 -0
  218. package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +23 -0
  219. package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +23 -0
  220. package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +23 -0
  221. package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +22 -0
  222. package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +25 -0
  223. package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +22 -0
  224. package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +25 -0
  225. package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +23 -0
  226. package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +22 -0
  227. package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +22 -0
  228. package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +22 -0
  229. package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +22 -0
  230. package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +23 -0
  231. package/dist/classes/features/other/debugDisplay/utils.js +13 -0
  232. package/dist/classes/features/other/extraConsoleCommands/commands.js +1598 -0
  233. package/dist/classes/features/other/extraConsoleCommands/subroutines.js +135 -0
  234. package/dist/classes/features/other/extraConsoleCommands/v.js +30 -0
  235. package/dist/classes/features/other/saveDataManager/constants.js +4 -0
  236. package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +106 -0
  237. package/dist/classes/features/other/saveDataManager/loadFromDisk.js +69 -0
  238. package/dist/classes/features/other/saveDataManager/restoreDefaults.js +69 -0
  239. package/dist/classes/features/other/saveDataManager/saveToDisk.js +46 -0
  240. package/dist/classes/private/CustomCallback.js +59 -0
  241. package/dist/classes/private/Feature.js +39 -0
  242. package/dist/core/cachedClasses.js +61 -0
  243. package/dist/core/constants.js +289 -0
  244. package/dist/core/constantsFirstLast.js +98 -0
  245. package/dist/core/constantsVanilla.js +131 -0
  246. package/dist/core/upgradeMod.js +71 -0
  247. package/dist/customStageMetadata.json +1 -0
  248. package/dist/data/itempools.json +16625 -0
  249. package/dist/decorators.js +21 -0
  250. package/dist/enums/AmbushType.js +9 -0
  251. package/dist/enums/CornerType.js +11 -0
  252. package/dist/enums/HealthType.js +20 -0
  253. package/dist/enums/ISCFeature.js +65 -0
  254. package/dist/enums/LadderSubTypeCustom.js +20 -0
  255. package/dist/enums/ModCallbackCustom.js +2477 -0
  256. package/dist/enums/MysteriousPaperEffect.js +16 -0
  257. package/dist/enums/PlayerStat.js +37 -0
  258. package/dist/enums/PocketItemType.js +13 -0
  259. package/dist/enums/RockAltType.js +23 -0
  260. package/dist/enums/SaveDataKey.js +14 -0
  261. package/dist/enums/SerializationType.js +10 -0
  262. package/dist/enums/SlotDestructionType.js +22 -0
  263. package/dist/enums/private/GridEntityTypeCustom.js +10 -0
  264. package/dist/enums/private/SerializationBrand.js +42 -0
  265. package/dist/enums/private/StageTravelState.js +13 -0
  266. package/dist/enums/private/TrapdoorAnimation.js +9 -0
  267. package/dist/enums/private/UIStreakAnimation.js +10 -0
  268. package/dist/features.js +150 -0
  269. package/dist/functions/ambush.js +26 -0
  270. package/dist/functions/array.js +586 -0
  271. package/dist/functions/arrayLua.js +81 -0
  272. package/dist/functions/benchmark.js +36 -0
  273. package/dist/functions/bitSet128.js +64 -0
  274. package/dist/functions/bitwise.js +82 -0
  275. package/dist/functions/bombs.js +14 -0
  276. package/dist/functions/bosses.js +238 -0
  277. package/dist/functions/cards.js +164 -0
  278. package/dist/functions/challenges.js +117 -0
  279. package/dist/functions/characters.js +182 -0
  280. package/dist/functions/charge.js +251 -0
  281. package/dist/functions/chargeBar.js +54 -0
  282. package/dist/functions/collectibleTag.js +24 -0
  283. package/dist/functions/collectibles.js +581 -0
  284. package/dist/functions/color.js +88 -0
  285. package/dist/functions/console.js +18 -0
  286. package/dist/functions/curses.js +37 -0
  287. package/dist/functions/debugFunctions.js +108 -0
  288. package/dist/functions/decorators.js +113 -0
  289. package/dist/functions/deepCopy.js +406 -0
  290. package/dist/functions/deepCopyTests.js +361 -0
  291. package/dist/functions/dimensions.js +30 -0
  292. package/dist/functions/direction.js +78 -0
  293. package/dist/functions/doors.js +524 -0
  294. package/dist/functions/easing.js +327 -0
  295. package/dist/functions/effects.js +14 -0
  296. package/dist/functions/emptyRoom.js +79 -0
  297. package/dist/functions/entities.js +529 -0
  298. package/dist/functions/entitiesSpecific.js +582 -0
  299. package/dist/functions/entityTypes.js +9 -0
  300. package/dist/functions/enums.js +244 -0
  301. package/dist/functions/external.js +59 -0
  302. package/dist/functions/familiars.js +136 -0
  303. package/dist/functions/flag.js +146 -0
  304. package/dist/functions/frames.js +166 -0
  305. package/dist/functions/globals.js +291 -0
  306. package/dist/functions/gridEntities.js +990 -0
  307. package/dist/functions/gridEntitiesSpecific.js +456 -0
  308. package/dist/functions/gridIndex.js +35 -0
  309. package/dist/functions/hash.js +75 -0
  310. package/dist/functions/hex.js +57 -0
  311. package/dist/functions/input.js +185 -0
  312. package/dist/functions/isaacAPIClass.js +157 -0
  313. package/dist/functions/itemPool.js +118 -0
  314. package/dist/functions/jsonHelpers.js +73 -0
  315. package/dist/functions/jsonRoom.js +184 -0
  316. package/dist/functions/kColor.js +89 -0
  317. package/dist/functions/language.js +16 -0
  318. package/dist/functions/level.js +66 -0
  319. package/dist/functions/levelGrid.js +497 -0
  320. package/dist/functions/log.js +86 -0
  321. package/dist/functions/logEntities.js +308 -0
  322. package/dist/functions/logMisc.js +510 -0
  323. package/dist/functions/map.js +121 -0
  324. package/dist/functions/math.js +149 -0
  325. package/dist/functions/merge.js +159 -0
  326. package/dist/functions/mergeTests.js +313 -0
  327. package/dist/functions/minimap.js +204 -0
  328. package/dist/functions/modFeatures.js +39 -0
  329. package/dist/functions/newArray.js +30 -0
  330. package/dist/functions/nextStage.js +169 -0
  331. package/dist/functions/npcDataStructures.js +146 -0
  332. package/dist/functions/npcs.js +132 -0
  333. package/dist/functions/pickupVariants.js +63 -0
  334. package/dist/functions/pickups.js +168 -0
  335. package/dist/functions/pickupsSpecific.js +376 -0
  336. package/dist/functions/pills.js +200 -0
  337. package/dist/functions/playerCenter.js +53 -0
  338. package/dist/functions/playerCollectibles.js +300 -0
  339. package/dist/functions/playerDataStructures.js +145 -0
  340. package/dist/functions/playerEffects.js +63 -0
  341. package/dist/functions/playerHealth.js +604 -0
  342. package/dist/functions/playerIndex.js +186 -0
  343. package/dist/functions/playerTrinkets.js +149 -0
  344. package/dist/functions/players.js +471 -0
  345. package/dist/functions/pocketItems.js +165 -0
  346. package/dist/functions/positionVelocity.js +158 -0
  347. package/dist/functions/pressurePlate.js +26 -0
  348. package/dist/functions/projectiles.js +57 -0
  349. package/dist/functions/random.js +90 -0
  350. package/dist/functions/readOnly.js +33 -0
  351. package/dist/functions/render.js +36 -0
  352. package/dist/functions/revive.js +151 -0
  353. package/dist/functions/rng.js +140 -0
  354. package/dist/functions/rockAlt.js +50 -0
  355. package/dist/functions/roomData.js +155 -0
  356. package/dist/functions/roomGrid.js +97 -0
  357. package/dist/functions/roomShape.js +143 -0
  358. package/dist/functions/roomShapeWalls.js +187 -0
  359. package/dist/functions/roomTransition.js +43 -0
  360. package/dist/functions/rooms.js +782 -0
  361. package/dist/functions/run.js +121 -0
  362. package/dist/functions/seeds.js +22 -0
  363. package/dist/functions/serialization.js +98 -0
  364. package/dist/functions/set.js +215 -0
  365. package/dist/functions/slots.js +41 -0
  366. package/dist/functions/sort.js +158 -0
  367. package/dist/functions/sound.js +45 -0
  368. package/dist/functions/spawnCollectible.js +112 -0
  369. package/dist/functions/sprites.js +130 -0
  370. package/dist/functions/stage.js +540 -0
  371. package/dist/functions/stats.js +104 -0
  372. package/dist/functions/storyBosses.js +63 -0
  373. package/dist/functions/string.js +194 -0
  374. package/dist/functions/table.js +162 -0
  375. package/dist/functions/tears.js +128 -0
  376. package/dist/functions/transformations.js +89 -0
  377. package/dist/functions/trinketGive.js +145 -0
  378. package/dist/functions/trinkets.js +213 -0
  379. package/dist/functions/tstlClass.js +97 -0
  380. package/dist/functions/types.js +225 -0
  381. package/dist/functions/ui.js +148 -0
  382. package/dist/functions/utils.d.ts +4 -1
  383. package/dist/functions/utils.d.ts.map +1 -1
  384. package/dist/functions/utils.js +195 -0
  385. package/dist/functions/utils.lua +6 -2
  386. package/dist/functions/vector.js +150 -0
  387. package/dist/functions/versusScreen.js +58 -0
  388. package/dist/functions/weighted.js +57 -0
  389. package/dist/index.js +219 -0
  390. package/dist/index.rollup.d.ts +4 -1
  391. package/dist/indexLua.js +220 -0
  392. package/dist/interfaces/ChargeBarSprites.js +2 -0
  393. package/dist/interfaces/Corner.js +2 -0
  394. package/dist/interfaces/CustomStageTSConfig.js +2 -0
  395. package/dist/interfaces/GridEntityCustomData.js +2 -0
  396. package/dist/interfaces/JSONRoomsFile.js +2 -0
  397. package/dist/interfaces/PlayerHealth.js +2 -0
  398. package/dist/interfaces/PlayerStats.js +4 -0
  399. package/dist/interfaces/PocketItemDescription.js +2 -0
  400. package/dist/interfaces/RoomDescription.js +2 -0
  401. package/dist/interfaces/SaveData.js +98 -0
  402. package/dist/interfaces/StageHistoryEntry.js +2 -0
  403. package/dist/interfaces/TSTLClassMetatable.js +2 -0
  404. package/dist/interfaces/TrinketSituation.js +2 -0
  405. package/dist/interfaces/private/AddCallbackParametersCustom.js +4 -0
  406. package/dist/interfaces/private/CustomStage.js +2 -0
  407. package/dist/interfaces/private/CustomTrapdoorDescription.js +2 -0
  408. package/dist/interfaces/private/ModUpgradedInterface.js +2 -0
  409. package/dist/isaacscript-common.lua +7 -3
  410. package/dist/maps/PHDPillConversionsMap.js +23 -0
  411. package/dist/maps/cardNameToTypeMap.js +211 -0
  412. package/dist/maps/characterNameToTypeMap.js +91 -0
  413. package/dist/maps/collectibleNameToTypeMap.js +19 -0
  414. package/dist/maps/defaultPlayerStatMap.js +17 -0
  415. package/dist/maps/entityTypeVariantToBossIDMap.js +11 -0
  416. package/dist/maps/falsePHDPillConversionsMap.js +37 -0
  417. package/dist/maps/gridEntityTypeToBrokenStateMap.js +32 -0
  418. package/dist/maps/gridEntityXMLMap.js +133 -0
  419. package/dist/maps/itemPoolTypeToItemPoolName.js +38 -0
  420. package/dist/maps/keyboardToStringMap.js +71 -0
  421. package/dist/maps/pillNameToEffectMap.js +91 -0
  422. package/dist/maps/roomNameToTypeMap.js +43 -0
  423. package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +17 -0
  424. package/dist/maps/transformationNameToPlayerFormMap.js +35 -0
  425. package/dist/maps/trinketNameToTypeMap.js +19 -0
  426. package/dist/objects/LRoomShapeToRectangles.js +43 -0
  427. package/dist/objects/backdropTypeToRockAltType.js +68 -0
  428. package/dist/objects/batteryNames.js +13 -0
  429. package/dist/objects/bombNames.js +17 -0
  430. package/dist/objects/bossIDToEntityTypeVariant.js +228 -0
  431. package/dist/objects/bossNamePNGFileNames.js +120 -0
  432. package/dist/objects/bossNames.js +119 -0
  433. package/dist/objects/bossPortraitPNGFileNames.js +123 -0
  434. package/dist/objects/cardDescriptions.js +106 -0
  435. package/dist/objects/cardNames.js +106 -0
  436. package/dist/objects/challengeBosses.js +60 -0
  437. package/dist/objects/challengeCharacters.js +58 -0
  438. package/dist/objects/challengeCollectibleTypes.js +255 -0
  439. package/dist/objects/challengeNames.js +54 -0
  440. package/dist/objects/challengeTrinketType.js +58 -0
  441. package/dist/objects/characterDamageMultipliers.js +49 -0
  442. package/dist/objects/characterNames.js +48 -0
  443. package/dist/objects/characterSpritePNGFileNames.js +50 -0
  444. package/dist/objects/characterStartingCollectibleTypes.js +105 -0
  445. package/dist/objects/characterStartingTrinketTypes.js +90 -0
  446. package/dist/objects/chestNames.js +20 -0
  447. package/dist/objects/coinNames.js +16 -0
  448. package/dist/objects/coinSubTypeToValue.js +15 -0
  449. package/dist/objects/collectibleDescriptions.js +742 -0
  450. package/dist/objects/collectibleNames.js +745 -0
  451. package/dist/objects/colors.js +26 -0
  452. package/dist/objects/directionNames.js +11 -0
  453. package/dist/objects/directionToDegrees.js +11 -0
  454. package/dist/objects/directionToMoveAction.js +11 -0
  455. package/dist/objects/directionToShootAction.js +11 -0
  456. package/dist/objects/directionToVector.js +13 -0
  457. package/dist/objects/doorSlotFlagToDoorSlot.js +15 -0
  458. package/dist/objects/doorSlotToDirection.js +15 -0
  459. package/dist/objects/doorSlotToDoorSlotFlag.js +15 -0
  460. package/dist/objects/gridEntityTypeToANM2Name.js +37 -0
  461. package/dist/objects/heartNames.js +21 -0
  462. package/dist/objects/isaacAPIClassTypeToBrand.js +12 -0
  463. package/dist/objects/isaacAPIClassTypeToFunctions.js +46 -0
  464. package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +57 -0
  465. package/dist/objects/kColors.js +27 -0
  466. package/dist/objects/keyNames.js +13 -0
  467. package/dist/objects/languageNames.js +13 -0
  468. package/dist/objects/oppositeDoorSlots.js +15 -0
  469. package/dist/objects/pillEffectClasses.js +57 -0
  470. package/dist/objects/pillEffectNames.js +57 -0
  471. package/dist/objects/pillEffectTypeToPillEffects.js +23 -0
  472. package/dist/objects/pillEffectTypes.js +57 -0
  473. package/dist/objects/playerNamePNGFileNames.js +57 -0
  474. package/dist/objects/playerPortraitPNGFileNames.js +54 -0
  475. package/dist/objects/roomShapeBounds.js +48 -0
  476. package/dist/objects/roomShapeCorners.js +330 -0
  477. package/dist/objects/roomShapeLayoutSizes.js +41 -0
  478. package/dist/objects/roomShapeToBottomRightPosition.js +25 -0
  479. package/dist/objects/roomShapeToDoorSlotCoordinates.js +111 -0
  480. package/dist/objects/roomShapeToDoorSlots.js +72 -0
  481. package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +118 -0
  482. package/dist/objects/roomShapeToGridWidth.js +20 -0
  483. package/dist/objects/roomShapeToTopLeftPosition.js +26 -0
  484. package/dist/objects/roomShapeVolumes.js +32 -0
  485. package/dist/objects/roomTypeNames.js +35 -0
  486. package/dist/objects/roomTypeSpecialGotoPrefixes.js +35 -0
  487. package/dist/objects/sackNames.js +11 -0
  488. package/dist/objects/slotNames.js +26 -0
  489. package/dist/objects/stageIDNames.js +43 -0
  490. package/dist/objects/stageToMusic.js +91 -0
  491. package/dist/objects/stageToStageID.js +117 -0
  492. package/dist/objects/stageTypeSuffixes.js +14 -0
  493. package/dist/objects/transformationNames.js +20 -0
  494. package/dist/objects/trinketDescriptions.js +199 -0
  495. package/dist/objects/trinketNames.js +202 -0
  496. package/dist/objects/versusScreenBackgroundColors.js +46 -0
  497. package/dist/objects/versusScreenDirtSpotColors.js +46 -0
  498. package/dist/patchErrorFunctions.js +65 -0
  499. package/dist/serialization.js +21 -0
  500. package/dist/sets/LRoomShapesSet.js +11 -0
  501. package/dist/sets/bigRoomShapesSet.js +14 -0
  502. package/dist/sets/bossSets.js +465 -0
  503. package/dist/sets/charactersThatStartWithAnActiveItemSet.js +18 -0
  504. package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +9 -0
  505. package/dist/sets/charactersWithFreeDevilDealsSet.js +6 -0
  506. package/dist/sets/charactersWithNoRedHeartsSet.js +19 -0
  507. package/dist/sets/charactersWithNoSoulHeartsSet.js +16 -0
  508. package/dist/sets/consoleCommandsSet.js +64 -0
  509. package/dist/sets/entitiesWithArmorSet.js +59 -0
  510. package/dist/sets/familiarsThatShootPlayerTearsSet.js +15 -0
  511. package/dist/sets/itemConfigCardTypesForCards.js +14 -0
  512. package/dist/sets/lostStyleCharactersSet.js +16 -0
  513. package/dist/sets/mineShaftRoomSubTypesSet.js +12 -0
  514. package/dist/sets/narrowRoomShapesSet.js +11 -0
  515. package/dist/sets/poopGridEntityXMLTypesSet.js +16 -0
  516. package/dist/sets/redHeartSubTypesSet.js +10 -0
  517. package/dist/sets/repentanceBossIDsSet.js +30 -0
  518. package/dist/sets/sinEntityTypesSet.js +14 -0
  519. package/dist/sets/singleUseActiveCollectibleTypesSet.js +15 -0
  520. package/dist/shaderCrashFix.js +24 -0
  521. package/dist/shouldFire.js +226 -0
  522. package/dist/types/AddSubtract.js +2 -0
  523. package/dist/types/AllButFirst.js +2 -0
  524. package/dist/types/AllButLast.js +2 -0
  525. package/dist/types/AnyClass.js +2 -0
  526. package/dist/types/AnyEntity.js +2 -0
  527. package/dist/types/AnyFunction.js +2 -0
  528. package/dist/types/AnyGridEntity.js +2 -0
  529. package/dist/types/CompositionTypeSatisfiesEnum.js +11 -0
  530. package/dist/types/ConversionHeartSubType.js +2 -0
  531. package/dist/types/Decrement.js +2 -0
  532. package/dist/types/ERange.js +2 -0
  533. package/dist/types/EntityID.js +2 -0
  534. package/dist/types/FunctionTuple.js +2 -0
  535. package/dist/types/GridEntityID.js +2 -0
  536. package/dist/types/HasFunction.js +2 -0
  537. package/dist/types/IRange.js +2 -0
  538. package/dist/types/Immutable.js +2 -0
  539. package/dist/types/Increment.js +2 -0
  540. package/dist/types/LowercaseKeys.js +2 -0
  541. package/dist/types/NaturalNumbersLessThan.js +2 -0
  542. package/dist/types/NaturalNumbersLessThanOrEqualTo.js +2 -0
  543. package/dist/types/PickingUpItem.js +44 -0
  544. package/dist/types/PickupIndex.js +2 -0
  545. package/dist/types/PlayerIndex.js +2 -0
  546. package/dist/types/PossibleStatType.js +2 -0
  547. package/dist/types/PublicInterface.js +2 -0
  548. package/dist/types/ReadonlyMap.js +6 -0
  549. package/dist/types/ReadonlyRecord.js +2 -0
  550. package/dist/types/ReadonlySet.js +6 -0
  551. package/dist/types/StartsWithLowercase.js +2 -0
  552. package/dist/types/StartsWithUppercase.js +2 -0
  553. package/dist/types/TSTLClass.js +2 -0
  554. package/dist/types/Tuple.js +2 -0
  555. package/dist/types/TupleKeys.js +2 -0
  556. package/dist/types/TupleToIntersection.js +2 -0
  557. package/dist/types/TupleToUnion.js +2 -0
  558. package/dist/types/TupleWithLengthBetween.js +22 -0
  559. package/dist/types/TupleWithMaxLength.js +27 -0
  560. package/dist/types/UnionToIntersection.js +2 -0
  561. package/dist/types/UppercaseKeys.js +2 -0
  562. package/dist/types/WeightedArray.js +2 -0
  563. package/dist/types/WidenLiteral.js +2 -0
  564. package/dist/types/Writable.js +2 -0
  565. package/dist/types/private/CallbackTuple.js +2 -0
  566. package/dist/types/private/ModUpgradedWithFeatures.js +2 -0
  567. package/package.json +1 -1
  568. package/src/functions/utils.ts +6 -2
@@ -0,0 +1,582 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.spawnTearWithSeed = exports.spawnTear = exports.spawnSlotWithSeed = exports.spawnSlot = exports.spawnProjectileWithSeed = exports.spawnProjectile = exports.spawnPickupWithSeed = exports.spawnPickup = exports.spawnNPCWithSeed = exports.spawnNPC = exports.spawnLaserWithSeed = exports.spawnLaser = exports.spawnKnifeWithSeed = exports.spawnKnife = exports.spawnFamiliarWithSeed = exports.spawnFamiliar = exports.spawnEffectWithSeed = exports.spawnEffect = exports.spawnBombWithSeed = exports.spawnBomb = exports.removeAllTears = exports.removeAllSlots = exports.removeAllProjectiles = exports.removeAllPickups = exports.removeAllNPCs = exports.removeAllLasers = exports.removeAllKnives = exports.removeAllFamiliars = exports.removeAllEffects = exports.removeAllBombs = exports.getTears = exports.getSlots = exports.getProjectiles = exports.getPickups = exports.getNPCs = exports.getLasers = exports.getKnives = exports.getFamiliars = exports.getEffects = exports.getBombs = void 0;
4
+ const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
+ const constants_1 = require("../core/constants");
6
+ const entities_1 = require("./entities");
7
+ const utils_1 = require("./utils");
8
+ /**
9
+ * Helper function to get all of the bombs in the room. (Specifically, this refers to the
10
+ * `EntityBomb` class, not bomb pickups.)
11
+ *
12
+ * For example:
13
+ *
14
+ * ```ts
15
+ * // Make all of the bombs in the room invisible.
16
+ * for (const bomb of getBombs()) {
17
+ * bomb.Visible = false;
18
+ * }
19
+ * ```
20
+ *
21
+ * @param bombVariant Optional. If specified, will only get the bombs that match the variant.
22
+ * Default is -1, which matches every variant.
23
+ * @param subType Optional. If specified, will only get the bombs that match the sub-type. Default
24
+ * is -1, which matches every sub-type.
25
+ */
26
+ function getBombs(bombVariant = -1, subType = -1) {
27
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.BOMB, bombVariant, subType);
28
+ const bombs = [];
29
+ for (const entity of entities) {
30
+ const bomb = entity.ToBomb();
31
+ if (bomb !== undefined) {
32
+ bombs.push(bomb);
33
+ }
34
+ }
35
+ return bombs;
36
+ }
37
+ exports.getBombs = getBombs;
38
+ /**
39
+ * Helper function to get all of the effects in the room.
40
+ *
41
+ * For example:
42
+ *
43
+ * ```ts
44
+ * // Make all of the effects in the room invisible.
45
+ * for (const effect of getEffects()) {
46
+ * effect.Visible = false;
47
+ * }
48
+ * ```
49
+ *
50
+ * @param effectVariant Optional. If specified, will only get the effects that match the variant.
51
+ * Default is -1, which matches every variant.
52
+ * @param subType Optional. If specified, will only get the effects that match the sub-type. Default
53
+ * is -1, which matches every sub-type.
54
+ */
55
+ function getEffects(effectVariant = -1, subType = -1) {
56
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.EFFECT, effectVariant, subType);
57
+ const effects = [];
58
+ for (const entity of entities) {
59
+ const effect = entity.ToEffect();
60
+ if (effect !== undefined) {
61
+ effects.push(effect);
62
+ }
63
+ }
64
+ return effects;
65
+ }
66
+ exports.getEffects = getEffects;
67
+ /**
68
+ * Helper function to get all of the familiars in the room.
69
+ *
70
+ * For example:
71
+ *
72
+ * ```ts
73
+ * // Make all of the familiars in the room invisible.
74
+ * for (const familiar of getFamiliars()) {
75
+ * familiar.Visible = false;
76
+ * }
77
+ * ```
78
+ *
79
+ * @param familiarVariant Optional. If specified, will only get the familiars that match the
80
+ * variant. Default is -1, which matches every variant.
81
+ * @param subType Optional. If specified, will only get the familiars that match the sub-type.
82
+ * Default is -1, which matches every sub-type.
83
+ */
84
+ function getFamiliars(familiarVariant = -1, subType = -1) {
85
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.FAMILIAR, familiarVariant, subType);
86
+ const familiars = [];
87
+ for (const entity of entities) {
88
+ const familiar = entity.ToFamiliar();
89
+ if (familiar !== undefined) {
90
+ familiars.push(familiar);
91
+ }
92
+ }
93
+ return familiars;
94
+ }
95
+ exports.getFamiliars = getFamiliars;
96
+ /**
97
+ * Helper function to get all of the knives in the room.
98
+ *
99
+ * For example:
100
+ *
101
+ * ```ts
102
+ * // Make all of the knives in the room invisible.
103
+ * for (const knife of getKnives()) {
104
+ * knife.Visible = false;
105
+ * }
106
+ * ```
107
+ *
108
+ * @param knifeVariant Optional. If specified, will only get the knives that match the variant.
109
+ * Default is -1, which matches every variant.
110
+ * @param subType Optional. If specified, will only get the knives that match the sub-type. Default
111
+ * is -1, which matches every sub-type.
112
+ */
113
+ function getKnives(knifeVariant = -1, subType = -1) {
114
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.KNIFE, knifeVariant, subType);
115
+ const knives = [];
116
+ for (const entity of entities) {
117
+ const knife = entity.ToKnife();
118
+ if (knife !== undefined) {
119
+ knives.push(knife);
120
+ }
121
+ }
122
+ return knives;
123
+ }
124
+ exports.getKnives = getKnives;
125
+ /**
126
+ * Helper function to get all of the lasers in the room.
127
+ *
128
+ * For example:
129
+ *
130
+ * ```ts
131
+ * // Make all of the lasers in the room invisible.
132
+ * for (const laser of getLasers()) {
133
+ * laser.Visible = false;
134
+ * }
135
+ * ```
136
+ *
137
+ * @param laserVariant Optional. If specified, will only get the lasers that match the variant.
138
+ * Default is -1, which matches every variant.
139
+ * @param subType Optional. If specified, will only get the lasers that match the sub-type. Default
140
+ * is -1, which matches every sub-type.
141
+ */
142
+ function getLasers(laserVariant = -1, subType = -1) {
143
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.LASER, laserVariant, subType);
144
+ const lasers = [];
145
+ for (const entity of entities) {
146
+ const laser = entity.ToLaser();
147
+ if (laser !== undefined) {
148
+ lasers.push(laser);
149
+ }
150
+ }
151
+ return lasers;
152
+ }
153
+ exports.getLasers = getLasers;
154
+ /**
155
+ * Helper function to get all of the NPCs in the room.
156
+ *
157
+ * @param entityType Optional. If specified, will only get the NPCs that match the type. Default is
158
+ * -1, which matches every entity type.
159
+ * @param variant Optional. If specified, will only get the NPCs that match the variant. Default is
160
+ * -1, which matches every entity type.
161
+ * @param subType Optional. If specified, will only get the bombs that match the sub-type. Default
162
+ * is -1, which matches every sub-type.
163
+ * @param ignoreFriendly Optional. If set to true, it will exclude friendly NPCs from being
164
+ * returned. Default is false. Will only be taken into account if the
165
+ * `entityType` is specified.
166
+ */
167
+ function getNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
168
+ const entities = (0, entities_1.getEntities)(entityType, variant, subType, ignoreFriendly);
169
+ const npcs = [];
170
+ for (const entity of entities) {
171
+ const npc = entity.ToNPC();
172
+ if (npc !== undefined) {
173
+ npcs.push(npc);
174
+ }
175
+ }
176
+ return npcs;
177
+ }
178
+ exports.getNPCs = getNPCs;
179
+ /**
180
+ * Helper function to get all of the pickups in the room.
181
+ *
182
+ * For example:
183
+ *
184
+ * ```ts
185
+ * // Make all of the pickups in the room invisible.
186
+ * for (const pickup of getPickups()) {
187
+ * pickup.Visible = false;
188
+ * }
189
+ * ```
190
+ *
191
+ * @param pickupVariant Optional. If specified, will only get the pickups that match the variant.
192
+ * Default is -1, which matches every entity type.
193
+ * @param subType Optional. If specified, will only get the pickups that match the sub-type. Default
194
+ * is -1, which matches every sub-type.
195
+ */
196
+ function getPickups(pickupVariant = -1, subType = -1) {
197
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.PICKUP, pickupVariant, subType);
198
+ const pickups = [];
199
+ for (const entity of entities) {
200
+ const pickup = entity.ToPickup();
201
+ if (pickup !== undefined) {
202
+ pickups.push(pickup);
203
+ }
204
+ }
205
+ return pickups;
206
+ }
207
+ exports.getPickups = getPickups;
208
+ /**
209
+ * Helper function to get all of the projectiles in the room.
210
+ *
211
+ * For example:
212
+ *
213
+ * ```ts
214
+ * // Make all of the projectiles in the room invisible.
215
+ * for (const projectile of getProjectiles()) {
216
+ * projectile.Visible = false;
217
+ * }
218
+ * ```
219
+ *
220
+ * @param projectileVariant Optional. If specified, will only get the projectiles that match the
221
+ * variant. Default is -1, which matches every entity type.
222
+ * @param subType Optional. If specified, will only get the projectiles that match the sub-type.
223
+ * Default is -1, which matches every sub-type.
224
+ */
225
+ function getProjectiles(projectileVariant = -1, subType = -1) {
226
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.PROJECTILE, projectileVariant, subType);
227
+ const projectiles = [];
228
+ for (const entity of entities) {
229
+ const projectile = entity.ToProjectile();
230
+ if (projectile !== undefined) {
231
+ projectiles.push(projectile);
232
+ }
233
+ }
234
+ return projectiles;
235
+ }
236
+ exports.getProjectiles = getProjectiles;
237
+ /**
238
+ * Helper function to get all of the slots in the room.
239
+ *
240
+ * For example:
241
+ *
242
+ * ```ts
243
+ * // Make all of the slots in the room invisible.
244
+ * for (const slot of getSlots()) {
245
+ * slot.Visible = false;
246
+ * }
247
+ * ```
248
+ *
249
+ * @param slotVariant Optional. If specified, will only get the slots that match the variant.
250
+ * Default is -1, which matches every entity type.
251
+ * @param subType Optional. If specified, will only get the slots that match the sub-type. Default
252
+ * is -1, which matches every sub-type.
253
+ */
254
+ function getSlots(slotVariant = -1, subType = -1) {
255
+ const slots = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.SLOT, slotVariant, subType);
256
+ return slots;
257
+ }
258
+ exports.getSlots = getSlots;
259
+ /**
260
+ * Helper function to get all of the tears in the room.
261
+ *
262
+ * For example:
263
+ *
264
+ * ```ts
265
+ * // Make all of the tears in the room invisible.
266
+ * for (const tear of getTears()) {
267
+ * tear.Visible = false;
268
+ * }
269
+ * ```
270
+ *
271
+ * @param tearVariant Optional. If specified, will only get the tears that match the variant.
272
+ * Default is -1, which matches every entity type.
273
+ * @param subType Optional. If specified, will only get the tears that match the sub-type. Default
274
+ * is -1, which matches every sub-type.
275
+ */
276
+ function getTears(tearVariant = -1, subType = -1) {
277
+ const entities = (0, entities_1.getEntities)(isaac_typescript_definitions_1.EntityType.TEAR, tearVariant, subType);
278
+ const tears = [];
279
+ for (const entity of entities) {
280
+ const tear = entity.ToTear();
281
+ if (tear !== undefined) {
282
+ tears.push(tear);
283
+ }
284
+ }
285
+ return tears;
286
+ }
287
+ exports.getTears = getTears;
288
+ /**
289
+ * Helper function to remove all of the bombs in the room. (Specifically, this refers to the
290
+ * `EntityBomb` class, not bomb pickups.)
291
+ *
292
+ * @param bombVariant Optional. If specified, will only remove the bombs that match the variant.
293
+ * Default is -1, which matches every variant.
294
+ * @param subType Optional. If specified, will only remove the bombs that match the sub-type.
295
+ * Default is -1, which matches every sub-type.
296
+ * @param cap Optional. If specified, will only remove the given amount of bombs.
297
+ * @returns An array of the bombs that were removed.
298
+ */
299
+ function removeAllBombs(bombVariant = -1, subType = -1, cap) {
300
+ const bombs = getBombs(bombVariant, subType);
301
+ return (0, entities_1.removeEntities)(bombs, cap);
302
+ }
303
+ exports.removeAllBombs = removeAllBombs;
304
+ /**
305
+ * Helper function to remove all of the effects in the room.
306
+ *
307
+ * @param effectVariant Optional. If specified, will only remove the effects that match the variant.
308
+ * Default is -1, which matches every variant.
309
+ * @param subType Optional. If specified, will only remove the effects that match the sub-type.
310
+ * Default is -1, which matches every sub-type.
311
+ * @param cap Optional. If specified, will only remove the given amount of effects.
312
+ * @returns An array of the effects that were removed.
313
+ */
314
+ function removeAllEffects(effectVariant = -1, subType = -1, cap) {
315
+ const effects = getEffects(effectVariant, subType);
316
+ return (0, entities_1.removeEntities)(effects, cap);
317
+ }
318
+ exports.removeAllEffects = removeAllEffects;
319
+ /**
320
+ * Helper function to remove all of the familiars in the room.
321
+ *
322
+ * @param familiarVariant Optional. If specified, will only remove the familiars that match the
323
+ * variant. Default is -1, which matches every variant.
324
+ * @param subType Optional. If specified, will only remove the familiars that match the sub-type.
325
+ * Default is -1, which matches every sub-type.
326
+ * @param cap Optional. If specified, will only remove the given amount of familiars.
327
+ * @returns An array of the familiars that were removed.
328
+ */
329
+ function removeAllFamiliars(familiarVariant = -1, subType = -1, cap) {
330
+ const familiars = getFamiliars(familiarVariant, subType);
331
+ return (0, entities_1.removeEntities)(familiars, cap);
332
+ }
333
+ exports.removeAllFamiliars = removeAllFamiliars;
334
+ /**
335
+ * Helper function to remove all of the knives in the room.
336
+ *
337
+ * @param knifeVariant Optional. If specified, will only remove the knives that match the variant.
338
+ * Default is -1, which matches every variant.
339
+ * @param subType Optional. If specified, will only remove the knives that match the sub-type.
340
+ * Default is -1, which matches every sub-type.
341
+ * @param cap Optional. If specified, will only remove the given amount of knives.
342
+ * @returns An array of the knives that were removed.
343
+ */
344
+ function removeAllKnives(knifeVariant = -1, subType = -1, cap) {
345
+ const knives = getKnives(knifeVariant, subType);
346
+ return (0, entities_1.removeEntities)(knives, cap);
347
+ }
348
+ exports.removeAllKnives = removeAllKnives;
349
+ /**
350
+ * Helper function to remove all of the lasers in the room.
351
+ *
352
+ * @param laserVariant Optional. If specified, will only remove the lasers that match the variant.
353
+ * Default is -1, which matches every variant.
354
+ * @param subType Optional. If specified, will only remove the lasers that match the sub-type.
355
+ * Default is -1, which matches every sub-type.
356
+ * @param cap Optional. If specified, will only remove the given amount of lasers.
357
+ * @returns An array of the lasers that were removed.
358
+ */
359
+ function removeAllLasers(laserVariant = -1, subType = -1, cap) {
360
+ const lasers = getLasers(laserVariant, subType);
361
+ return (0, entities_1.removeEntities)(lasers, cap);
362
+ }
363
+ exports.removeAllLasers = removeAllLasers;
364
+ /**
365
+ * Helper function to remove all of the NPCs in the room.
366
+ *
367
+ * @param entityType Optional. If specified, will only remove the NPCs that match the type. Default
368
+ * is -1, which matches every type.
369
+ * @param variant Optional. If specified, will only remove the NPCs that match the variant. Default
370
+ * is -1, which matches every variant.
371
+ * @param subType Optional. If specified, will only remove the NPCs that match the sub-type. Default
372
+ * is -1, which matches every sub-type.
373
+ * @param cap Optional. If specified, will only remove the given amount of NPCs.
374
+ * @returns An array of the NPCs that were removed.
375
+ */
376
+ function removeAllNPCs(entityType = -1, variant = -1, subType = -1, cap) {
377
+ const npcs = getNPCs(entityType, variant, subType);
378
+ return (0, entities_1.removeEntities)(npcs, cap);
379
+ }
380
+ exports.removeAllNPCs = removeAllNPCs;
381
+ /**
382
+ * Helper function to remove all of the pickups in the room.
383
+ *
384
+ * @param pickupVariant Optional. If specified, will only remove pickups that match this variant.
385
+ * Default is -1, which matches every variant.
386
+ * @param subType Optional. If specified, will only remove pickups that match this sub-type. Default
387
+ * is -1, which matches every sub-type.
388
+ * @param cap Optional. If specified, will only remove the given amount of pickups.
389
+ * @returns An array of the pickups that were removed.
390
+ */
391
+ function removeAllPickups(pickupVariant = -1, subType = -1, cap) {
392
+ const pickups = getPickups(pickupVariant, subType);
393
+ return (0, entities_1.removeEntities)(pickups, cap);
394
+ }
395
+ exports.removeAllPickups = removeAllPickups;
396
+ /**
397
+ * Helper function to remove all of the projectiles in the room.
398
+ *
399
+ * @param projectileVariant Optional. If specified, will only remove projectiles that match this
400
+ * variant. Default is -1, which matches every variant.
401
+ * @param subType Optional. If specified, will only remove projectiles that match this sub-type.
402
+ * Default is -1, which matches every sub-type.
403
+ * @param cap Optional. If specified, will only remove the given amount of projectiles.
404
+ * @returns An array of the projectiles that were removed.
405
+ */
406
+ function removeAllProjectiles(projectileVariant = -1, subType = -1, cap) {
407
+ const projectiles = getProjectiles(projectileVariant, subType);
408
+ return (0, entities_1.removeEntities)(projectiles, cap);
409
+ }
410
+ exports.removeAllProjectiles = removeAllProjectiles;
411
+ /**
412
+ * Helper function to remove all of the slots in the room.
413
+ *
414
+ * @param slotVariant Optional. If specified, will only remove slots that match this variant.
415
+ * Default is -1, which matches every variant.
416
+ * @param subType Optional. If specified, will only remove slots that match this sub-type. Default
417
+ * is -1, which matches every sub-type.
418
+ * @param cap Optional. If specified, will only remove the given amount of slots.
419
+ * @returns An array of the slots that were removed.
420
+ */
421
+ function removeAllSlots(slotVariant = -1, subType = -1, cap) {
422
+ const slots = getSlots(slotVariant, subType);
423
+ return (0, entities_1.removeEntities)(slots, cap);
424
+ }
425
+ exports.removeAllSlots = removeAllSlots;
426
+ /**
427
+ * Helper function to remove all of the tears in the room.
428
+ *
429
+ * @param tearVariant Optional. If specified, will only remove tears that match this variant.
430
+ * Default is -1, which matches every variant.
431
+ * @param subType Optional. If specified, will only remove tears that match this sub-type. Default
432
+ * is -1, which matches every sub-type.
433
+ * @param cap Optional. If specified, will only remove the given amount of tears.
434
+ * @returns An array of the tears that were removed.
435
+ */
436
+ function removeAllTears(tearVariant = -1, subType = -1, cap) {
437
+ const tears = getTears(tearVariant, subType);
438
+ return (0, entities_1.removeEntities)(tears, cap);
439
+ }
440
+ exports.removeAllTears = removeAllTears;
441
+ /** Helper function to spawn a `EntityType.BOMB` (4). */
442
+ function spawnBomb(bombVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
443
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.BOMB, bombVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
444
+ const bomb = entity.ToBomb();
445
+ (0, utils_1.assertDefined)(bomb, "Failed to spawn a bomb.");
446
+ return bomb;
447
+ }
448
+ exports.spawnBomb = spawnBomb;
449
+ /** Helper function to spawn a `EntityType.BOMB` (4) with a specific seed. */
450
+ function spawnBombWithSeed(bombVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
451
+ return spawnBomb(bombVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
452
+ }
453
+ exports.spawnBombWithSeed = spawnBombWithSeed;
454
+ /** Helper function to spawn a `EntityType.EFFECT` (1000). */
455
+ function spawnEffect(effectVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
456
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.EFFECT, effectVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
457
+ const effect = entity.ToEffect();
458
+ (0, utils_1.assertDefined)(effect, "Failed to spawn an effect.");
459
+ return effect;
460
+ }
461
+ exports.spawnEffect = spawnEffect;
462
+ /** Helper function to spawn a `EntityType.EFFECT` (1000) with a specific seed. */
463
+ function spawnEffectWithSeed(effectVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
464
+ return spawnEffect(effectVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
465
+ }
466
+ exports.spawnEffectWithSeed = spawnEffectWithSeed;
467
+ /**
468
+ * Helper function to spawn a `EntityType.FAMILIAR` (3).
469
+ *
470
+ * If you are trying to implement a custom familiar, you probably want to use the
471
+ * `checkFamiliarFromCollectibles` helper function instead.
472
+ */
473
+ function spawnFamiliar(familiarVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
474
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.FAMILIAR, familiarVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
475
+ const familiar = entity.ToFamiliar();
476
+ (0, utils_1.assertDefined)(familiar, "Failed to spawn a familiar.");
477
+ return familiar;
478
+ }
479
+ exports.spawnFamiliar = spawnFamiliar;
480
+ /** Helper function to spawn a `EntityType.FAMILIAR` (3) with a specific seed. */
481
+ function spawnFamiliarWithSeed(familiarVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
482
+ return spawnFamiliar(familiarVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
483
+ }
484
+ exports.spawnFamiliarWithSeed = spawnFamiliarWithSeed;
485
+ /** Helper function to spawn a `EntityType.KNIFE` (8). */
486
+ function spawnKnife(knifeVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
487
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.KNIFE, knifeVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
488
+ const knife = entity.ToKnife();
489
+ (0, utils_1.assertDefined)(knife, "Failed to spawn a knife.");
490
+ return knife;
491
+ }
492
+ exports.spawnKnife = spawnKnife;
493
+ /** Helper function to spawn a `EntityType.KNIFE` (8) with a specific seed. */
494
+ function spawnKnifeWithSeed(knifeVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
495
+ return spawnKnife(knifeVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
496
+ }
497
+ exports.spawnKnifeWithSeed = spawnKnifeWithSeed;
498
+ /** Helper function to spawn a `EntityType.LASER` (7). */
499
+ function spawnLaser(laserVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
500
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.LASER, laserVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
501
+ const laser = entity.ToLaser();
502
+ (0, utils_1.assertDefined)(laser, "Failed to spawn a laser.");
503
+ return laser;
504
+ }
505
+ exports.spawnLaser = spawnLaser;
506
+ /** Helper function to spawn a `EntityType.LASER` (7) with a specific seed. */
507
+ function spawnLaserWithSeed(laserVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
508
+ return spawnLaser(laserVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
509
+ }
510
+ exports.spawnLaserWithSeed = spawnLaserWithSeed;
511
+ /**
512
+ * Helper function to spawn an NPC.
513
+ *
514
+ * Note that if you pass a non-NPC `EntityType` to this function, it will cause a run-time error,
515
+ * since the `Entity.ToNPC` method will return undefined.
516
+ */
517
+ function spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
518
+ const entity = (0, entities_1.spawn)(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
519
+ const npc = entity.ToNPC();
520
+ (0, utils_1.assertDefined)(npc, "Failed to spawn an NPC.");
521
+ return npc;
522
+ }
523
+ exports.spawnNPC = spawnNPC;
524
+ /**
525
+ * Helper function to spawn an NPC with a specific seed.
526
+ *
527
+ * Note that if you pass a non-NPC `EntityType` to this function, it will cause a run-time error,
528
+ * since the `Entity.ToNPC` method will return undefined.
529
+ */
530
+ function spawnNPCWithSeed(entityType, variant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
531
+ return spawnNPC(entityType, variant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
532
+ }
533
+ exports.spawnNPCWithSeed = spawnNPCWithSeed;
534
+ /** Helper function to spawn a `EntityType.PICKUP` (5). */
535
+ function spawnPickup(pickupVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
536
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.PICKUP, pickupVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
537
+ const pickup = entity.ToPickup();
538
+ (0, utils_1.assertDefined)(pickup, "Failed to spawn a pickup.");
539
+ return pickup;
540
+ }
541
+ exports.spawnPickup = spawnPickup;
542
+ /** Helper function to spawn a `EntityType.PICKUP` (5) with a specific seed. */
543
+ function spawnPickupWithSeed(pickupVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
544
+ return spawnPickup(pickupVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
545
+ }
546
+ exports.spawnPickupWithSeed = spawnPickupWithSeed;
547
+ /** Helper function to spawn a `EntityType.PROJECTILE` (9). */
548
+ function spawnProjectile(projectileVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
549
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.PROJECTILE, projectileVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
550
+ const projectile = entity.ToProjectile();
551
+ (0, utils_1.assertDefined)(projectile, "Failed to spawn a projectile.");
552
+ return projectile;
553
+ }
554
+ exports.spawnProjectile = spawnProjectile;
555
+ /** Helper function to spawn a `EntityType.PROJECTILE` (9) with a specific seed. */
556
+ function spawnProjectileWithSeed(projectileVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
557
+ return spawnProjectile(projectileVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
558
+ }
559
+ exports.spawnProjectileWithSeed = spawnProjectileWithSeed;
560
+ /** Helper function to spawn a `EntityType.SLOT` (6). */
561
+ function spawnSlot(slotVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
562
+ return (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.SLOT, slotVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
563
+ }
564
+ exports.spawnSlot = spawnSlot;
565
+ /** Helper function to spawn a `EntityType.SLOT` (6) with a specific seed. */
566
+ function spawnSlotWithSeed(slotVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
567
+ return spawnSlot(slotVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
568
+ }
569
+ exports.spawnSlotWithSeed = spawnSlotWithSeed;
570
+ /** Helper function to spawn a `EntityType.TEAR` (2). */
571
+ function spawnTear(tearVariant, subType, positionOrGridIndex, velocity = constants_1.VectorZero, spawner = undefined, seedOrRNG = undefined) {
572
+ const entity = (0, entities_1.spawn)(isaac_typescript_definitions_1.EntityType.TEAR, tearVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
573
+ const tear = entity.ToTear();
574
+ (0, utils_1.assertDefined)(tear, "Failed to spawn a tear.");
575
+ return tear;
576
+ }
577
+ exports.spawnTear = spawnTear;
578
+ /** Helper function to spawn a `EntityType.EntityType` (2) with a specific seed. */
579
+ function spawnTearWithSeed(tearVariant, subType, positionOrGridIndex, seedOrRNG, velocity = constants_1.VectorZero, spawner = undefined) {
580
+ return spawnTear(tearVariant, subType, positionOrGridIndex, velocity, spawner, seedOrRNG);
581
+ }
582
+ exports.spawnTearWithSeed = spawnTearWithSeed;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSlot = void 0;
4
+ const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
5
+ /** For `EntityType.SLOT` (6). */
6
+ function isSlot(entity) {
7
+ return entity.Type === isaac_typescript_definitions_1.EntityType.SLOT;
8
+ }
9
+ exports.isSlot = isSlot;