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,20 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runDeepCopyTests = runDeepCopyTests;
4
- const DefaultMap_1 = require("../classes/DefaultMap");
5
- const SerializationBrand_1 = require("../enums/private/SerializationBrand");
6
- const SerializationType_1 = require("../enums/SerializationType");
7
- const array_1 = require("./array");
8
- const deepCopy_1 = require("./deepCopy");
9
- const log_1 = require("./log");
10
- const tstlClass_1 = require("./tstlClass");
11
- const types_1 = require("./types");
1
+ import { DefaultMap } from "../classes/DefaultMap";
2
+ import { SerializationBrand } from "../enums/private/SerializationBrand";
3
+ import { SerializationType } from "../enums/SerializationType";
4
+ import { arrayEquals } from "./array";
5
+ import { deepCopy } from "./deepCopy";
6
+ import { log } from "./log";
7
+ import { isDefaultMap, isTSTLMap, isTSTLSet } from "./tstlClass";
8
+ import { isNumber, isString, isTable } from "./types";
12
9
  /**
13
10
  * Run the suite of tests that prove that the "deepCopy" helper function works properly.
14
11
  *
15
12
  * This function is only useful if you are troubleshooting the "deepCopy" function.
16
13
  */
17
- function runDeepCopyTests() {
14
+ export function runDeepCopyTests() {
18
15
  copiedObjectIsTable();
19
16
  copiedObjectHasKeyAndValueString();
20
17
  copiedTableHasKeyAndValueNumber();
@@ -35,18 +32,18 @@ function runDeepCopyTests() {
35
32
  copiedSerializedDefaultMapHasStringKey();
36
33
  copiedSerializedDefaultMapHasNumberKey();
37
34
  const successText = "All deep copy tests passed!";
38
- (0, log_1.log)(successText);
35
+ log(successText);
39
36
  print(successText);
40
37
  }
41
38
  function copiedDefaultMapHasBrand() {
42
39
  const oldDefaultValue = "foo";
43
- const oldDefaultMap = new DefaultMap_1.DefaultMap(oldDefaultValue);
44
- const newTable = (0, deepCopy_1.deepCopy)(oldDefaultMap, SerializationType_1.SerializationType.SERIALIZE, "copiedDefaultMapHasBrand");
45
- if (!(0, types_1.isTable)(newTable)) {
40
+ const oldDefaultMap = new DefaultMap(oldDefaultValue);
41
+ const newTable = deepCopy(oldDefaultMap, SerializationType.SERIALIZE, "copiedDefaultMapHasBrand");
42
+ if (!isTable(newTable)) {
46
43
  error(`The copied DefaultMap was not a table and had a type of: ${typeof newTable}`);
47
44
  }
48
- if (!newTable.has(SerializationBrand_1.SerializationBrand.DEFAULT_MAP)) {
49
- error(`The copied DefaultMap does not have the brand: ${SerializationBrand_1.SerializationBrand.DEFAULT_MAP}`);
45
+ if (!newTable.has(SerializationBrand.DEFAULT_MAP)) {
46
+ error(`The copied DefaultMap does not have the brand: ${SerializationBrand.DEFAULT_MAP}`);
50
47
  }
51
48
  }
52
49
  function copiedDefaultMapHasChildDefaultMap() {
@@ -55,19 +52,19 @@ function copiedDefaultMapHasChildDefaultMap() {
55
52
  const childMapKey2 = 456;
56
53
  const childMapDefaultValue = 1;
57
54
  const childMapCustomValue = 2;
58
- const oldParentMap = new DefaultMap_1.DefaultMap(() => new DefaultMap_1.DefaultMap(childMapDefaultValue));
55
+ const oldParentMap = new DefaultMap(() => new DefaultMap(childMapDefaultValue));
59
56
  const oldChildMap = oldParentMap.getAndSetDefault(parentMapKey);
60
57
  oldChildMap.getAndSetDefault(childMapKey1);
61
58
  oldChildMap.set(childMapKey2, childMapCustomValue);
62
- const newParentMap = (0, deepCopy_1.deepCopy)(oldParentMap, SerializationType_1.SerializationType.NONE, "copiedDefaultMapHasChildDefaultMap");
63
- if (!(0, tstlClass_1.isDefaultMap)(newParentMap)) {
59
+ const newParentMap = deepCopy(oldParentMap, SerializationType.NONE, "copiedDefaultMapHasChildDefaultMap");
60
+ if (!isDefaultMap(newParentMap)) {
64
61
  error(`The copied parent DefaultMap was not a DefaultMap and had a type of: ${typeof newParentMap}`);
65
62
  }
66
63
  const newChildMap = newParentMap.get(parentMapKey);
67
64
  if (newChildMap === undefined) {
68
65
  error(`The copied DefaultMap did not have a child map at key: ${parentMapKey}`);
69
66
  }
70
- if (!(0, tstlClass_1.isDefaultMap)(newChildMap)) {
67
+ if (!isDefaultMap(newChildMap)) {
71
68
  error(`The copied child DefaultMap was not a DefaultMap and had a type of: ${typeof newChildMap}`);
72
69
  }
73
70
  const newChildMapValue1 = newChildMap.get(childMapKey1);
@@ -93,15 +90,15 @@ function copiedMapHasChildMap() {
93
90
  const oldMap = new Map([
94
91
  [keyToLookFor, oldChildMap],
95
92
  ]);
96
- const newMap = (0, deepCopy_1.deepCopy)(oldMap, SerializationType_1.SerializationType.NONE, "copiedMapHasChildMap");
97
- if (!(0, tstlClass_1.isTSTLMap)(newMap)) {
93
+ const newMap = deepCopy(oldMap, SerializationType.NONE, "copiedMapHasChildMap");
94
+ if (!isTSTLMap(newMap)) {
98
95
  error(`The copied Map was not a Map and had a type of: ${typeof newMap}`);
99
96
  }
100
97
  const newChildMap = newMap.get(keyToLookFor);
101
98
  if (newChildMap === undefined) {
102
99
  error(`The copied Map did not have a child map at key: ${keyToLookFor}`);
103
100
  }
104
- if (!(0, tstlClass_1.isTSTLMap)(newChildMap)) {
101
+ if (!isTSTLMap(newChildMap)) {
105
102
  error(`The copied child Map was not a Map and had a type of: ${typeof newChildMap}`);
106
103
  }
107
104
  const value = newChildMap.get(childMapKey);
@@ -116,8 +113,8 @@ function copiedMapHasValue() {
116
113
  const keyToLookFor = "abc";
117
114
  const valueToLookFor = "def";
118
115
  const oldMap = new Map([[keyToLookFor, valueToLookFor]]);
119
- const newMap = (0, deepCopy_1.deepCopy)(oldMap, SerializationType_1.SerializationType.NONE, "copiedMapHasValue");
120
- if (!(0, tstlClass_1.isTSTLMap)(newMap)) {
116
+ const newMap = deepCopy(oldMap, SerializationType.NONE, "copiedMapHasValue");
117
+ if (!isTSTLMap(newMap)) {
121
118
  error(`The copied Map was not a Map and has a type of: ${typeof newMap}`);
122
119
  }
123
120
  const value = newMap.get(keyToLookFor);
@@ -132,8 +129,8 @@ function copiedMapIsMap() {
132
129
  const keyToLookFor = "abc";
133
130
  const valueToLookFor = "def";
134
131
  const oldMap = new Map([[keyToLookFor, valueToLookFor]]);
135
- const newMap = (0, deepCopy_1.deepCopy)(oldMap, SerializationType_1.SerializationType.NONE, "copiedMapIsMap");
136
- if (!(0, tstlClass_1.isTSTLMap)(newMap)) {
132
+ const newMap = deepCopy(oldMap, SerializationType.NONE, "copiedMapIsMap");
133
+ if (!isTSTLMap(newMap)) {
137
134
  error(`The copied Map was not a Map and has a type of: ${typeof newMap}`);
138
135
  }
139
136
  }
@@ -146,19 +143,19 @@ function copiedObjectHasChildObject() {
146
143
  def: valueToLookFor,
147
144
  },
148
145
  };
149
- const newObject = (0, deepCopy_1.deepCopy)(oldObject, SerializationType_1.SerializationType.NONE, "copiedObjectHasChildObject");
146
+ const newObject = deepCopy(oldObject, SerializationType.NONE, "copiedObjectHasChildObject");
150
147
  const childObject = newObject[childObjectIndex];
151
148
  if (childObject === undefined) {
152
149
  error(`Failed to find the child object at index: ${childObjectIndex}`);
153
150
  }
154
- if (!(0, types_1.isTable)(childObject)) {
151
+ if (!isTable(childObject)) {
155
152
  error(`The copied child object had a type of: ${typeof childObject}`);
156
153
  }
157
154
  const value = childObject[keyToLookFor];
158
155
  if (value === undefined) {
159
156
  error(`The child object did not have a key of: ${keyToLookFor}`);
160
157
  }
161
- if (!(0, types_1.isString)(value)) {
158
+ if (!isString(value)) {
162
159
  error(`The child object value had a type of: ${typeof value}`);
163
160
  }
164
161
  if (value !== valueToLookFor) {
@@ -169,12 +166,12 @@ function copiedObjectHasKeyAndValueString() {
169
166
  const keyToLookFor = "abc";
170
167
  const valueToLookFor = "def";
171
168
  const oldObject = { abc: valueToLookFor };
172
- const newObject = (0, deepCopy_1.deepCopy)(oldObject, SerializationType_1.SerializationType.NONE, "copiedObjectHasKeyAndValueString");
169
+ const newObject = deepCopy(oldObject, SerializationType.NONE, "copiedObjectHasKeyAndValueString");
173
170
  const value = newObject[keyToLookFor];
174
171
  if (value === undefined) {
175
172
  error(`The copied object did not have a key of: ${keyToLookFor}`);
176
173
  }
177
- if (!(0, types_1.isString)(value)) {
174
+ if (!isString(value)) {
178
175
  error(`The copied object had a value type of: ${typeof value}`);
179
176
  }
180
177
  if (value !== valueToLookFor) {
@@ -184,20 +181,20 @@ function copiedObjectHasKeyAndValueString() {
184
181
  /** In this context, a reference is a pointer. */
185
182
  function copiedObjectHasNoReferencesForArray() {
186
183
  const oldObject = { abc: [1, 2, 3] };
187
- const newObject = (0, deepCopy_1.deepCopy)(oldObject, SerializationType_1.SerializationType.NONE, "copiedObjectHasNoReferencesForArray");
184
+ const newObject = deepCopy(oldObject, SerializationType.NONE, "copiedObjectHasNoReferencesForArray");
188
185
  if (oldObject.abc === newObject.abc) {
189
186
  error("The copied object has the same point to the child array.");
190
187
  }
191
- if (!(0, array_1.arrayEquals)(oldObject.abc, newObject.abc)) {
188
+ if (!arrayEquals(oldObject.abc, newObject.abc)) {
192
189
  error("The copied object does not have an equal array.");
193
190
  }
194
191
  oldObject.abc[0]++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
195
- if ((0, array_1.arrayEquals)(oldObject.abc, newObject.abc)) {
192
+ if (arrayEquals(oldObject.abc, newObject.abc)) {
196
193
  error("The copied object has an equal array after a modification to the old array.");
197
194
  }
198
195
  oldObject.abc[0]--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
199
196
  newObject.abc[0]++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
200
- if ((0, array_1.arrayEquals)(oldObject.abc, newObject.abc)) {
197
+ if (arrayEquals(oldObject.abc, newObject.abc)) {
201
198
  error("The copied object has an equal array after a modification to the new array.");
202
199
  }
203
200
  newObject.abc[0]--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
@@ -209,7 +206,7 @@ function copiedObjectHasNoReferencesForPrimitivesBackward() {
209
206
  abc: originalStringValue,
210
207
  def: originalNumberValue,
211
208
  };
212
- const newObject = (0, deepCopy_1.deepCopy)(oldObject, SerializationType_1.SerializationType.NONE, "copiedObjectHasNoReferencesForPrimitivesBackward");
209
+ const newObject = deepCopy(oldObject, SerializationType.NONE, "copiedObjectHasNoReferencesForPrimitivesBackward");
213
210
  newObject.abc = "newValue";
214
211
  if (newObject.abc === oldObject.abc) {
215
212
  error("The copied object has a string reference going backward.");
@@ -227,7 +224,7 @@ function copiedObjectHasNoReferencesForPrimitivesForward() {
227
224
  abc: originalStringValue,
228
225
  def: originalNumberValue,
229
226
  };
230
- const newObject = (0, deepCopy_1.deepCopy)(oldObject, SerializationType_1.SerializationType.NONE, "copiedObjectHasNoReferencesForPrimitivesForward");
227
+ const newObject = deepCopy(oldObject, SerializationType.NONE, "copiedObjectHasNoReferencesForPrimitivesForward");
231
228
  oldObject.abc = "newValue";
232
229
  if (oldObject.abc === newObject.abc) {
233
230
  error("The copied object has a string reference going forward.");
@@ -239,17 +236,17 @@ function copiedObjectHasNoReferencesForPrimitivesForward() {
239
236
  }
240
237
  function copiedObjectIsTable() {
241
238
  const oldObject = { abc: "def" };
242
- const newObject = (0, deepCopy_1.deepCopy)(oldObject, SerializationType_1.SerializationType.NONE, "copiedObjectIsTable");
243
- if (!(0, types_1.isTable)(newObject)) {
239
+ const newObject = deepCopy(oldObject, SerializationType.NONE, "copiedObjectIsTable");
240
+ if (!isTable(newObject)) {
244
241
  error(`The copied object had a type of: ${typeof newObject}`);
245
242
  }
246
243
  }
247
244
  function copiedSerializedDefaultMapHasNumberKey() {
248
245
  const mapKey = 123;
249
- const oldDefaultMap = new DefaultMap_1.DefaultMap(456);
246
+ const oldDefaultMap = new DefaultMap(456);
250
247
  oldDefaultMap.getAndSetDefault(mapKey);
251
- const serializedOldDefaultMap = (0, deepCopy_1.deepCopy)(oldDefaultMap, SerializationType_1.SerializationType.SERIALIZE, "copiedSerializedDefaultMapHasNumberKey-serialize");
252
- const newTable = (0, deepCopy_1.deepCopy)(serializedOldDefaultMap, SerializationType_1.SerializationType.DESERIALIZE, "copiedSerializedDefaultMapHasNumberKey-deserialize");
248
+ const serializedOldDefaultMap = deepCopy(oldDefaultMap, SerializationType.SERIALIZE, "copiedSerializedDefaultMapHasNumberKey-serialize");
249
+ const newTable = deepCopy(serializedOldDefaultMap, SerializationType.DESERIALIZE, "copiedSerializedDefaultMapHasNumberKey-deserialize");
253
250
  const newDefaultMap = newTable;
254
251
  if (!newDefaultMap.has(mapKey)) {
255
252
  const keyType = type(mapKey);
@@ -258,10 +255,10 @@ function copiedSerializedDefaultMapHasNumberKey() {
258
255
  }
259
256
  function copiedSerializedDefaultMapHasStringKey() {
260
257
  const mapKey = "123";
261
- const oldDefaultMap = new DefaultMap_1.DefaultMap(456);
258
+ const oldDefaultMap = new DefaultMap(456);
262
259
  oldDefaultMap.getAndSetDefault(mapKey);
263
- const serializedOldDefaultMap = (0, deepCopy_1.deepCopy)(oldDefaultMap, SerializationType_1.SerializationType.SERIALIZE, "copiedSerializedDefaultMapHasStringKey-serialize");
264
- const newTable = (0, deepCopy_1.deepCopy)(serializedOldDefaultMap, SerializationType_1.SerializationType.DESERIALIZE, "copiedSerializedDefaultMapHasStringKey-deserialize");
260
+ const serializedOldDefaultMap = deepCopy(oldDefaultMap, SerializationType.SERIALIZE, "copiedSerializedDefaultMapHasStringKey-serialize");
261
+ const newTable = deepCopy(serializedOldDefaultMap, SerializationType.DESERIALIZE, "copiedSerializedDefaultMapHasStringKey-deserialize");
265
262
  const newDefaultMap = newTable;
266
263
  if (!newDefaultMap.has(mapKey)) {
267
264
  const keyType = type(mapKey);
@@ -272,8 +269,8 @@ function copiedSerializedMapHasNumberKey() {
272
269
  const mapKey = 123;
273
270
  const mapValue = 456;
274
271
  const oldMap = new Map([[mapKey, mapValue]]);
275
- const serializedOldMap = (0, deepCopy_1.deepCopy)(oldMap, SerializationType_1.SerializationType.SERIALIZE, "copiedSerializedMapHasNumberKey-serialize");
276
- const newTable = (0, deepCopy_1.deepCopy)(serializedOldMap, SerializationType_1.SerializationType.DESERIALIZE, "copiedSerializedMapHasNumberKey-deserialize");
272
+ const serializedOldMap = deepCopy(oldMap, SerializationType.SERIALIZE, "copiedSerializedMapHasNumberKey-serialize");
273
+ const newTable = deepCopy(serializedOldMap, SerializationType.DESERIALIZE, "copiedSerializedMapHasNumberKey-deserialize");
277
274
  const newMap = newTable;
278
275
  if (!newMap.has(mapKey)) {
279
276
  const keyType = type(mapKey);
@@ -284,8 +281,8 @@ function copiedSerializedMapHasStringKey() {
284
281
  const mapKey = "123";
285
282
  const mapValue = 456;
286
283
  const oldMap = new Map([[mapKey, mapValue]]);
287
- const serializedOldMap = (0, deepCopy_1.deepCopy)(oldMap, SerializationType_1.SerializationType.SERIALIZE, "copiedSerializedMapHasStringKey-serialize");
288
- const newTable = (0, deepCopy_1.deepCopy)(serializedOldMap, SerializationType_1.SerializationType.DESERIALIZE, "copiedSerializedMapHasStringKey-deserialize");
284
+ const serializedOldMap = deepCopy(oldMap, SerializationType.SERIALIZE, "copiedSerializedMapHasStringKey-serialize");
285
+ const newTable = deepCopy(serializedOldMap, SerializationType.DESERIALIZE, "copiedSerializedMapHasStringKey-deserialize");
289
286
  const newMap = newTable;
290
287
  if (!newMap.has(mapKey)) {
291
288
  const keyType = type(mapKey);
@@ -295,8 +292,8 @@ function copiedSerializedMapHasStringKey() {
295
292
  function copiedSetHasValue() {
296
293
  const valueToLookFor = "abc";
297
294
  const oldSet = new Set([valueToLookFor]);
298
- const newSet = (0, deepCopy_1.deepCopy)(oldSet, SerializationType_1.SerializationType.NONE, "copiedSetHasValue");
299
- if (!(0, tstlClass_1.isTSTLSet)(newSet)) {
295
+ const newSet = deepCopy(oldSet, SerializationType.NONE, "copiedSetHasValue");
296
+ if (!isTSTLSet(newSet)) {
300
297
  error(`The copied Set was not a Set and has a type of: ${typeof newSet}`);
301
298
  }
302
299
  const hasValue = newSet.has(valueToLookFor);
@@ -307,8 +304,8 @@ function copiedSetHasValue() {
307
304
  function copiedSetIsSet() {
308
305
  const valueToLookFor = "abc";
309
306
  const oldSet = new Set([valueToLookFor]);
310
- const newSet = (0, deepCopy_1.deepCopy)(oldSet, SerializationType_1.SerializationType.NONE, "copiedSetIsSet");
311
- if (!(0, tstlClass_1.isTSTLSet)(newSet)) {
307
+ const newSet = deepCopy(oldSet, SerializationType.NONE, "copiedSetIsSet");
308
+ if (!isTSTLSet(newSet)) {
312
309
  error(`The copied Set was not a Set and has a type of: ${typeof newSet}`);
313
310
  }
314
311
  }
@@ -317,7 +314,7 @@ function copiedTableDoesNotCoerceTypes() {
317
314
  const valueToLookFor = 456;
318
315
  const oldTable = new LuaMap();
319
316
  oldTable.set(keyToLookFor, valueToLookFor);
320
- const newTable = (0, deepCopy_1.deepCopy)(oldTable, SerializationType_1.SerializationType.NONE, "copiedTableDoesNotCoerceTypes");
317
+ const newTable = deepCopy(oldTable, SerializationType.NONE, "copiedTableDoesNotCoerceTypes");
321
318
  const keyString = tostring(keyToLookFor);
322
319
  const valueString = tostring(valueToLookFor);
323
320
  const valueFromString = newTable.get(keyString);
@@ -334,12 +331,12 @@ function copiedTableHasKeyAndValueNumber() {
334
331
  const valueToLookFor = 456;
335
332
  const oldTable = new LuaMap();
336
333
  oldTable.set(keyToLookFor, valueToLookFor);
337
- const newTable = (0, deepCopy_1.deepCopy)(oldTable, SerializationType_1.SerializationType.NONE, "copiedTableHasKeyAndValueNumber");
334
+ const newTable = deepCopy(oldTable, SerializationType.NONE, "copiedTableHasKeyAndValueNumber");
338
335
  const value = newTable.get(keyToLookFor);
339
336
  if (value === undefined) {
340
337
  error(`The copied object did not have a key of: ${keyToLookFor}`);
341
338
  }
342
- if (!(0, types_1.isNumber)(value)) {
339
+ if (!isNumber(value)) {
343
340
  error(`The copied object had a value type of: ${typeof value}`);
344
341
  }
345
342
  if (value !== valueToLookFor) {
@@ -1,21 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDimension = getDimension;
4
- exports.inDimension = inDimension;
5
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
6
- const cachedClasses_1 = require("../core/cachedClasses");
7
- const constants_1 = require("../core/constants");
8
- const roomData_1 = require("./roomData");
1
+ import { Dimension } from "isaac-typescript-definitions";
2
+ import { game } from "../core/cachedClasses";
3
+ import { DIMENSIONS } from "../core/constants";
4
+ import { getRoomGridIndex } from "./roomData";
9
5
  /**
10
6
  * Helper function to get the current dimension. Most of the time, this will be `Dimension.MAIN`,
11
7
  * but it can change if e.g. the player is in the mirror world of Downpour/Dross.
12
8
  */
13
- function getDimension() {
14
- const level = cachedClasses_1.game.GetLevel();
15
- const roomGridIndex = (0, roomData_1.getRoomGridIndex)();
16
- const roomDescription = level.GetRoomByIdx(roomGridIndex, isaac_typescript_definitions_1.Dimension.CURRENT);
9
+ export function getDimension() {
10
+ const level = game.GetLevel();
11
+ const roomGridIndex = getRoomGridIndex();
12
+ const roomDescription = level.GetRoomByIdx(roomGridIndex, Dimension.CURRENT);
17
13
  const currentRoomHash = GetPtrHash(roomDescription);
18
- for (const dimension of constants_1.DIMENSIONS) {
14
+ for (const dimension of DIMENSIONS) {
19
15
  const dimensionRoomDescription = level.GetRoomByIdx(roomGridIndex, dimension);
20
16
  const dimensionRoomHash = GetPtrHash(dimensionRoomDescription);
21
17
  if (dimensionRoomHash === currentRoomHash) {
@@ -24,6 +20,6 @@ function getDimension() {
24
20
  }
25
21
  error("Failed to get the current dimension.");
26
22
  }
27
- function inDimension(dimension) {
23
+ export function inDimension(dimension) {
28
24
  return dimension === getDimension();
29
25
  }
@@ -1,17 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.angleToDirection = angleToDirection;
4
- exports.directionToDegrees = directionToDegrees;
5
- exports.directionToMoveAction = directionToMoveAction;
6
- exports.directionToShootAction = directionToShootAction;
7
- exports.directionToVector = directionToVector;
8
- exports.getDirectionName = getDirectionName;
9
- const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
10
- const directionNames_1 = require("../objects/directionNames");
11
- const directionToDegrees_1 = require("../objects/directionToDegrees");
12
- const directionToMoveAction_1 = require("../objects/directionToMoveAction");
13
- const directionToShootAction_1 = require("../objects/directionToShootAction");
14
- const directionToVector_1 = require("../objects/directionToVector");
1
+ import { Direction } from "isaac-typescript-definitions";
2
+ import { DIRECTION_NAMES } from "../objects/directionNames";
3
+ import { DIRECTION_TO_DEGREES } from "../objects/directionToDegrees";
4
+ import { DIRECTION_TO_MOVE_ACTION } from "../objects/directionToMoveAction";
5
+ import { DIRECTION_TO_SHOOT_ACTION } from "../objects/directionToShootAction";
6
+ import { DIRECTION_TO_VECTOR } from "../objects/directionToVector";
15
7
  /**
16
8
  * Helper function to convert the degrees of an angle to the `Direction` enum.
17
9
  *
@@ -19,59 +11,59 @@ const directionToVector_1 = require("../objects/directionToVector");
19
11
  * 0 normally corresponds to up. (This corresponds to how the `Vector.GetAngleDegrees` method
20
12
  * works.)
21
13
  */
22
- function angleToDirection(angleDegrees) {
14
+ export function angleToDirection(angleDegrees) {
23
15
  let positiveDegrees = angleDegrees;
24
16
  while (positiveDegrees < 0) {
25
17
  positiveDegrees += 360;
26
18
  }
27
19
  const normalizedDegrees = positiveDegrees % 360;
28
20
  if (normalizedDegrees < 45) {
29
- return isaac_typescript_definitions_1.Direction.RIGHT;
21
+ return Direction.RIGHT;
30
22
  }
31
23
  if (normalizedDegrees < 135) {
32
- return isaac_typescript_definitions_1.Direction.DOWN;
24
+ return Direction.DOWN;
33
25
  }
34
26
  if (normalizedDegrees < 225) {
35
- return isaac_typescript_definitions_1.Direction.LEFT;
27
+ return Direction.LEFT;
36
28
  }
37
29
  if (normalizedDegrees < 315) {
38
- return isaac_typescript_definitions_1.Direction.UP;
30
+ return Direction.UP;
39
31
  }
40
- return isaac_typescript_definitions_1.Direction.RIGHT;
32
+ return Direction.RIGHT;
41
33
  }
42
34
  /**
43
35
  * Helper function to convert a direction to degrees. For example, `Direction.LEFT` (0) would return
44
36
  * 180 and `Direction.RIGHT` (2) would return 0. (This corresponds to how the
45
37
  * `Vector.GetAngleDegrees` method works.)
46
38
  */
47
- function directionToDegrees(direction) {
48
- return directionToDegrees_1.DIRECTION_TO_DEGREES[direction];
39
+ export function directionToDegrees(direction) {
40
+ return DIRECTION_TO_DEGREES[direction];
49
41
  }
50
42
  /**
51
43
  * Helper function to convert a direction to a shoot `ButtonAction`. For example, `Direction.LEFT`
52
44
  * (0) would return `ButtonAction.LEFT` (0).
53
45
  */
54
- function directionToMoveAction(direction) {
55
- return directionToMoveAction_1.DIRECTION_TO_MOVE_ACTION[direction];
46
+ export function directionToMoveAction(direction) {
47
+ return DIRECTION_TO_MOVE_ACTION[direction];
56
48
  }
57
49
  /**
58
50
  * Helper function to convert a direction to a shoot `ButtonAction`. For example, `Direction.LEFT`
59
51
  * (0) would return `ButtonAction.SHOOT_LEFT` (4).
60
52
  */
61
- function directionToShootAction(direction) {
62
- return directionToShootAction_1.DIRECTION_TO_SHOOT_ACTION[direction];
53
+ export function directionToShootAction(direction) {
54
+ return DIRECTION_TO_SHOOT_ACTION[direction];
63
55
  }
64
56
  /**
65
57
  * Helper function to convert a direction to a `Vector`. For example, `Direction.LEFT` (0) would
66
58
  * convert to `Vector(-1, 0).
67
59
  */
68
- function directionToVector(direction) {
69
- return directionToVector_1.DIRECTION_TO_VECTOR[direction];
60
+ export function directionToVector(direction) {
61
+ return DIRECTION_TO_VECTOR[direction];
70
62
  }
71
63
  /**
72
64
  * Helper function to get the lowercase name of a direction. For example, `Direction.LEFT` (0) would
73
65
  * return "left".
74
66
  */
75
- function getDirectionName(direction) {
76
- return directionNames_1.DIRECTION_NAMES[direction];
67
+ export function getDirectionName(direction) {
68
+ return DIRECTION_NAMES[direction];
77
69
  }