isaacscript-common 2.0.34 → 2.3.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 (1034) hide show
  1. package/.eslintrc.js +70 -0
  2. package/README.md +1 -1
  3. package/build.sh +27 -0
  4. package/docs.sh +21 -0
  5. package/lint.sh +34 -0
  6. package/package.json +5 -4
  7. package/project.json +37 -0
  8. package/release.sh +16 -0
  9. package/scripts/.eslintrc.js +21 -0
  10. package/scripts/docsEntryPointLint.ts +135 -0
  11. package/scripts/tsconfig.json +5 -0
  12. package/src/cachedClasses.ts +39 -0
  13. package/src/callbacks/customRevive.ts +206 -0
  14. package/src/callbacks/itemPickup.ts +101 -0
  15. package/src/callbacks/postBombInitLate.ts +36 -0
  16. package/src/callbacks/postBoneSwing.ts +64 -0
  17. package/src/callbacks/postCollectibleInitFirst.ts +39 -0
  18. package/src/callbacks/postCursedTeleport.ts +183 -0
  19. package/src/callbacks/postCustomDoorEnter.ts +297 -0
  20. package/src/callbacks/postDoorRender.ts +26 -0
  21. package/src/callbacks/postDoorUpdate.ts +26 -0
  22. package/src/callbacks/postEffectInitLate.ts +36 -0
  23. package/src/callbacks/postEffectStateChanged.ts +43 -0
  24. package/src/callbacks/postEsauJr.ts +107 -0
  25. package/src/callbacks/postFamiliarInitLate.ts +36 -0
  26. package/src/callbacks/postFamiliarStateChanged.ts +43 -0
  27. package/src/callbacks/postFlip.ts +88 -0
  28. package/src/callbacks/postGreedModeWave.ts +41 -0
  29. package/src/callbacks/postGridEntity.ts +159 -0
  30. package/src/callbacks/postGridEntityCollision.ts +69 -0
  31. package/src/callbacks/postGridEntityRender.ts +26 -0
  32. package/src/callbacks/postHolyMantleRemoved.ts +55 -0
  33. package/src/callbacks/postItemDischarged.ts +149 -0
  34. package/src/callbacks/postKnifeInitLate.ts +36 -0
  35. package/src/callbacks/postLaserInitLate.ts +36 -0
  36. package/src/callbacks/postNPCInitLate.ts +36 -0
  37. package/src/callbacks/postNPCStateChanged.ts +42 -0
  38. package/src/callbacks/postNewRoomEarly.ts +90 -0
  39. package/src/callbacks/postPickupCollect.ts +48 -0
  40. package/src/callbacks/postPickupInitLate.ts +36 -0
  41. package/src/callbacks/postPickupStateChanged.ts +43 -0
  42. package/src/callbacks/postPitRender.ts +26 -0
  43. package/src/callbacks/postPitUpdate.ts +26 -0
  44. package/src/callbacks/postPlayerChangeHealth.ts +62 -0
  45. package/src/callbacks/postPlayerChangeType.ts +56 -0
  46. package/src/callbacks/postPlayerFatalDamage.ts +98 -0
  47. package/src/callbacks/postPlayerInitLate.ts +37 -0
  48. package/src/callbacks/postPlayerReordered.ts +142 -0
  49. package/src/callbacks/postPoopRender.ts +26 -0
  50. package/src/callbacks/postPoopUpdate.ts +26 -0
  51. package/src/callbacks/postPressurePlateRender.ts +26 -0
  52. package/src/callbacks/postPressurePlateUpdate.ts +26 -0
  53. package/src/callbacks/postProjectileInitLate.ts +36 -0
  54. package/src/callbacks/postPurchase.ts +64 -0
  55. package/src/callbacks/postRockRender.ts +26 -0
  56. package/src/callbacks/postRockUpdate.ts +26 -0
  57. package/src/callbacks/postRoomClearChanged.ts +52 -0
  58. package/src/callbacks/postSacrifice.ts +62 -0
  59. package/src/callbacks/postSlotInitUpdate.ts +63 -0
  60. package/src/callbacks/postSlotRender.ts +96 -0
  61. package/src/callbacks/postSpikesRender.ts +26 -0
  62. package/src/callbacks/postSpikesUpdate.ts +26 -0
  63. package/src/callbacks/postTNTRender.ts +26 -0
  64. package/src/callbacks/postTNTUpdate.ts +26 -0
  65. package/src/callbacks/postTearInitLate.ts +36 -0
  66. package/src/callbacks/postTearInitVeryLate.ts +41 -0
  67. package/src/callbacks/postTransformation.ts +59 -0
  68. package/src/callbacks/postTrinketBreak.ts +110 -0
  69. package/src/callbacks/preBerserkDeath.ts +49 -0
  70. package/src/callbacks/preNewLevel.ts +55 -0
  71. package/src/callbacks/reorderedCallbacks.ts +166 -0
  72. package/src/callbacks/subscriptions/postBombInitLate.ts +32 -0
  73. package/src/callbacks/subscriptions/postBoneSwing.ts +24 -0
  74. package/src/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
  75. package/src/callbacks/subscriptions/postCursedTeleport.ts +24 -0
  76. package/src/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
  77. package/src/callbacks/subscriptions/postCustomRevive.ts +36 -0
  78. package/src/callbacks/subscriptions/postDoorRender.ts +35 -0
  79. package/src/callbacks/subscriptions/postDoorUpdate.ts +35 -0
  80. package/src/callbacks/subscriptions/postEffectInitLate.ts +32 -0
  81. package/src/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
  82. package/src/callbacks/subscriptions/postEsauJr.ts +24 -0
  83. package/src/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
  84. package/src/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
  85. package/src/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
  86. package/src/callbacks/subscriptions/postFirstFlip.ts +24 -0
  87. package/src/callbacks/subscriptions/postFlip.ts +22 -0
  88. package/src/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
  89. package/src/callbacks/subscriptions/postGreedModeWave.ts +24 -0
  90. package/src/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
  91. package/src/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
  92. package/src/callbacks/subscriptions/postGridEntityInit.ts +51 -0
  93. package/src/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
  94. package/src/callbacks/subscriptions/postGridEntityRender.ts +51 -0
  95. package/src/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
  96. package/src/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
  97. package/src/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
  98. package/src/callbacks/subscriptions/postItemDischarged.ts +43 -0
  99. package/src/callbacks/subscriptions/postItemPickup.ts +64 -0
  100. package/src/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
  101. package/src/callbacks/subscriptions/postLaserInitLate.ts +32 -0
  102. package/src/callbacks/subscriptions/postNPCInitLate.ts +32 -0
  103. package/src/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
  104. package/src/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
  105. package/src/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
  106. package/src/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
  107. package/src/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
  108. package/src/callbacks/subscriptions/postPickupCollect.ts +34 -0
  109. package/src/callbacks/subscriptions/postPickupInitLate.ts +31 -0
  110. package/src/callbacks/subscriptions/postPickupStateChanged.ts +35 -0
  111. package/src/callbacks/subscriptions/postPitRender.ts +35 -0
  112. package/src/callbacks/subscriptions/postPitUpdate.ts +35 -0
  113. package/src/callbacks/subscriptions/postPlayerChangeHealth.ts +45 -0
  114. package/src/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
  115. package/src/callbacks/subscriptions/postPlayerFatalDamage.ts +67 -0
  116. package/src/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
  117. package/src/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
  118. package/src/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
  119. package/src/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
  120. package/src/callbacks/subscriptions/postPoopRender.ts +35 -0
  121. package/src/callbacks/subscriptions/postPoopUpdate.ts +35 -0
  122. package/src/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
  123. package/src/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
  124. package/src/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
  125. package/src/callbacks/subscriptions/postPurchase.ts +31 -0
  126. package/src/callbacks/subscriptions/postRockRender.ts +35 -0
  127. package/src/callbacks/subscriptions/postRockUpdate.ts +35 -0
  128. package/src/callbacks/subscriptions/postRoomClearChanged.ts +24 -0
  129. package/src/callbacks/subscriptions/postSacrifice.ts +43 -0
  130. package/src/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
  131. package/src/callbacks/subscriptions/postSlotDestroyed.ts +32 -0
  132. package/src/callbacks/subscriptions/postSlotInit.ts +32 -0
  133. package/src/callbacks/subscriptions/postSlotRender.ts +32 -0
  134. package/src/callbacks/subscriptions/postSlotUpdate.ts +32 -0
  135. package/src/callbacks/subscriptions/postSpikesRender.ts +35 -0
  136. package/src/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
  137. package/src/callbacks/subscriptions/postTNTRender.ts +35 -0
  138. package/src/callbacks/subscriptions/postTNTUpdate.ts +35 -0
  139. package/src/callbacks/subscriptions/postTearInitLate.ts +32 -0
  140. package/src/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
  141. package/src/callbacks/subscriptions/postTransformation.ts +40 -0
  142. package/src/callbacks/subscriptions/postTrinketBreak.ts +38 -0
  143. package/src/callbacks/subscriptions/preBerserkDeath.ts +42 -0
  144. package/src/callbacks/subscriptions/preCustomRevive.ts +45 -0
  145. package/src/callbacks/subscriptions/preItemPickup.ts +64 -0
  146. package/src/callbacks/subscriptions/preNewLevel.ts +24 -0
  147. package/src/classes/DefaultMap.ts +220 -0
  148. package/src/classes/ModUpgraded.ts +83 -0
  149. package/src/constants.ts +140 -0
  150. package/src/constantsFirstLast.ts +212 -0
  151. package/src/enums/HealthType.ts +16 -0
  152. package/src/enums/ModCallbackCustom.ts +943 -0
  153. package/src/enums/PocketItemType.ts +8 -0
  154. package/src/enums/SerializationType.ts +5 -0
  155. package/src/enums/private/CopyableIsaacAPIClassType.ts +7 -0
  156. package/src/enums/private/SaveDataKey.ts +14 -0
  157. package/src/enums/private/SerializationBrand.ts +42 -0
  158. package/src/features/characterHealthConversion.ts +116 -0
  159. package/src/features/characterStats.ts +61 -0
  160. package/src/features/debugDisplay/debugDisplay.ts +221 -0
  161. package/src/features/debugDisplay/exports.ts +368 -0
  162. package/src/features/debugDisplay/v.ts +65 -0
  163. package/src/features/deployJSONRoom.ts +672 -0
  164. package/src/features/disableInputs.ts +193 -0
  165. package/src/features/disableSound.ts +77 -0
  166. package/src/features/extraConsoleCommands/commandsDisplay.ts +290 -0
  167. package/src/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
  168. package/src/features/extraConsoleCommands/init.ts +334 -0
  169. package/src/features/extraConsoleCommands/listCommands.ts +1298 -0
  170. package/src/features/extraConsoleCommands/v.ts +14 -0
  171. package/src/features/fadeInRemover.ts +60 -0
  172. package/src/features/fastReset.ts +75 -0
  173. package/src/features/forgottenSwitch.ts +50 -0
  174. package/src/features/getCollectibleItemPoolType.ts +66 -0
  175. package/src/features/playerInventory.ts +187 -0
  176. package/src/features/ponyDetection.ts +74 -0
  177. package/src/features/preventCollectibleRotation.ts +113 -0
  178. package/src/features/runInNFrames.ts +148 -0
  179. package/src/features/saveDataManager/constants.ts +4 -0
  180. package/src/features/saveDataManager/exports.ts +230 -0
  181. package/src/features/saveDataManager/load.ts +90 -0
  182. package/src/features/saveDataManager/main.ts +187 -0
  183. package/src/features/saveDataManager/maps.ts +13 -0
  184. package/src/features/saveDataManager/merge.ts +182 -0
  185. package/src/features/saveDataManager/save.ts +66 -0
  186. package/src/features/saveDataManager/serializationBrand.ts +15 -0
  187. package/src/features/sirenHelpers.ts +129 -0
  188. package/src/features/taintedLazarusPlayers.ts +113 -0
  189. package/src/featuresInitialized.ts +20 -0
  190. package/src/functions/array.ts +412 -0
  191. package/src/functions/benchmark.ts +36 -0
  192. package/src/functions/bitwise.ts +24 -0
  193. package/src/functions/boss.ts +227 -0
  194. package/src/functions/cacheFlag.ts +12 -0
  195. package/src/functions/cards.ts +267 -0
  196. package/src/functions/challenges.ts +11 -0
  197. package/src/functions/character.ts +124 -0
  198. package/src/functions/charge.ts +237 -0
  199. package/src/functions/chargeBar.ts +67 -0
  200. package/src/functions/collectibleCacheFlag.ts +90 -0
  201. package/src/functions/collectibleSet.ts +57 -0
  202. package/src/functions/collectibleTag.ts +89 -0
  203. package/src/functions/collectibles.ts +610 -0
  204. package/src/functions/color.ts +149 -0
  205. package/src/functions/debug.ts +65 -0
  206. package/src/functions/deepCopy.ts +508 -0
  207. package/src/functions/deepCopyTests.ts +390 -0
  208. package/src/functions/direction.ts +16 -0
  209. package/src/functions/doors.ts +343 -0
  210. package/src/functions/easing.ts +182 -0
  211. package/src/functions/eden.ts +47 -0
  212. package/src/functions/entity.ts +352 -0
  213. package/src/functions/entitySpecific.ts +889 -0
  214. package/src/functions/entityTypes.ts +6 -0
  215. package/src/functions/enums.ts +145 -0
  216. package/src/functions/familiars.ts +106 -0
  217. package/src/functions/flag.ts +165 -0
  218. package/src/functions/flying.ts +117 -0
  219. package/src/functions/globals.ts +249 -0
  220. package/src/functions/gridEntity.ts +511 -0
  221. package/src/functions/gridEntitySpecific.ts +112 -0
  222. package/src/functions/input.ts +139 -0
  223. package/src/functions/isaacAPIClass.ts +65 -0
  224. package/src/functions/jsonHelpers.ts +45 -0
  225. package/src/functions/jsonRoom.ts +100 -0
  226. package/src/functions/kColor.ts +130 -0
  227. package/src/functions/language.ts +13 -0
  228. package/src/functions/level.ts +31 -0
  229. package/src/functions/log.ts +660 -0
  230. package/src/functions/map.ts +56 -0
  231. package/src/functions/math.ts +149 -0
  232. package/src/functions/mergeTests.ts +288 -0
  233. package/src/functions/npc.ts +148 -0
  234. package/src/functions/pickupVariants.ts +60 -0
  235. package/src/functions/pickups.ts +449 -0
  236. package/src/functions/pills.ts +182 -0
  237. package/src/functions/player.ts +975 -0
  238. package/src/functions/playerDataStructures.ts +150 -0
  239. package/src/functions/playerHealth.ts +318 -0
  240. package/src/functions/playerIndex.ts +195 -0
  241. package/src/functions/pocketItems.ts +149 -0
  242. package/src/functions/positionVelocity.ts +188 -0
  243. package/src/functions/random.ts +77 -0
  244. package/src/functions/revive.ts +201 -0
  245. package/src/functions/rng.ts +177 -0
  246. package/src/functions/roomData.ts +199 -0
  247. package/src/functions/roomGrid.ts +109 -0
  248. package/src/functions/roomShape.ts +80 -0
  249. package/src/functions/rooms.ts +667 -0
  250. package/src/functions/run.ts +36 -0
  251. package/src/functions/seeds.ts +19 -0
  252. package/src/functions/serialization.ts +97 -0
  253. package/src/functions/set.ts +95 -0
  254. package/src/functions/sound.ts +9 -0
  255. package/src/functions/spawnCollectible.ts +104 -0
  256. package/src/functions/sprite.ts +107 -0
  257. package/src/functions/stage.ts +125 -0
  258. package/src/functions/string.ts +47 -0
  259. package/src/functions/table.ts +139 -0
  260. package/src/functions/tears.ts +32 -0
  261. package/src/functions/transformations.ts +137 -0
  262. package/src/functions/trinketCacheFlag.ts +60 -0
  263. package/src/functions/trinketGive.ts +157 -0
  264. package/src/functions/trinkets.ts +215 -0
  265. package/src/functions/tstlClass.ts +91 -0
  266. package/src/functions/ui.ts +138 -0
  267. package/src/functions/utils.ts +200 -0
  268. package/src/functions/vector.ts +145 -0
  269. package/src/index.ts +162 -0
  270. package/src/initCustomCallbacks.ts +120 -0
  271. package/src/initFeatures.ts +37 -0
  272. package/src/interfaces/AddCallbackParameterCustom.ts +174 -0
  273. package/src/interfaces/ChargeBarSprites.ts +12 -0
  274. package/src/interfaces/JSONDoor.ts +13 -0
  275. package/src/interfaces/JSONEntity.ts +16 -0
  276. package/src/interfaces/JSONRoom.ts +36 -0
  277. package/src/interfaces/JSONRooms.ts +12 -0
  278. package/src/interfaces/JSONSpawn.ts +14 -0
  279. package/src/interfaces/PlayerHealth.ts +16 -0
  280. package/src/interfaces/PocketItemDescription.ts +9 -0
  281. package/src/interfaces/SaveData.ts +29 -0
  282. package/src/interfaces/TrinketSituation.ts +9 -0
  283. package/src/interfaces/private/TSTLClassMetatable.ts +8 -0
  284. package/src/maps/cardMap.ts +209 -0
  285. package/src/maps/characterMap.ts +87 -0
  286. package/src/maps/collectibleDescriptionMap.ts +732 -0
  287. package/src/maps/collectibleNameMap.ts +731 -0
  288. package/src/maps/defaultPlayerStatMap.ts +17 -0
  289. package/src/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
  290. package/src/maps/gridEntityXMLMap.ts +176 -0
  291. package/src/maps/pillEffectMap.ts +88 -0
  292. package/src/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
  293. package/src/maps/roomTypeMap.ts +40 -0
  294. package/src/maps/trinketDescriptionMap.ts +200 -0
  295. package/src/maps/trinketNameMap.ts +198 -0
  296. package/src/objects/LRoomShapeToRectangles.ts +44 -0
  297. package/src/objects/callbackRegisterFunctions.ts +171 -0
  298. package/src/objects/cardDescriptions.ts +105 -0
  299. package/src/objects/cardNames.ts +105 -0
  300. package/src/objects/cardTypes.ts +104 -0
  301. package/src/objects/challengeNames.ts +52 -0
  302. package/src/objects/characterNames.ts +48 -0
  303. package/src/objects/coinSubTypeToValue.ts +14 -0
  304. package/src/objects/colors.ts +16 -0
  305. package/src/objects/directionNames.ts +11 -0
  306. package/src/objects/directionToDegrees.ts +11 -0
  307. package/src/objects/directionToVector.ts +12 -0
  308. package/src/objects/doorSlotFlagToDoorSlot.ts +16 -0
  309. package/src/objects/doorSlotToDirection.ts +14 -0
  310. package/src/objects/isaacAPIClassTypeToBrand.ts +11 -0
  311. package/src/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
  312. package/src/objects/languageNames.ts +13 -0
  313. package/src/objects/pillEffectClasses.ts +63 -0
  314. package/src/objects/pillEffectNames.ts +57 -0
  315. package/src/objects/pillEffectTypes.ts +62 -0
  316. package/src/objects/roomShapeBounds.ts +71 -0
  317. package/src/objects/roomShapeLayoutSizes.ts +45 -0
  318. package/src/objects/roomShapeToBottomRightPosition.ts +25 -0
  319. package/src/objects/roomShapeToDoorSlots.ts +83 -0
  320. package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
  321. package/src/objects/roomShapeToGridWidth.ts +21 -0
  322. package/src/objects/roomShapeToTopLeftPosition.ts +26 -0
  323. package/src/objects/roomShapeVolumes.ts +38 -0
  324. package/src/objects/roomTypeNames.ts +36 -0
  325. package/src/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
  326. package/src/objects/stageTypeToLetter.ts +15 -0
  327. package/src/objects/transformationNames.ts +20 -0
  328. package/src/patchErrorFunctions.ts +92 -0
  329. package/src/sets/LRoomShapesSet.ts +8 -0
  330. package/src/sets/bossSets.ts +470 -0
  331. package/src/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
  332. package/src/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
  333. package/src/sets/charactersWithFreeDevilDealsSet.ts +4 -0
  334. package/src/sets/charactersWithNoRedHeartsSet.ts +17 -0
  335. package/src/sets/charactersWithNoSoulHeartsSet.ts +14 -0
  336. package/src/sets/chestPickupVariantsSet.ts +16 -0
  337. package/src/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
  338. package/src/sets/lostStyleCharactersSet.ts +13 -0
  339. package/src/sets/mineShaftRoomSubTypesSet.ts +10 -0
  340. package/src/sets/redHeartSubTypesSet.ts +7 -0
  341. package/src/sets/sinEntityTypesSet.ts +11 -0
  342. package/src/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
  343. package/src/sets/storyBossesSet.ts +17 -0
  344. package/src/types/AnyEntity.ts +12 -0
  345. package/src/types/AwaitingTextInput.d.ts +2 -0
  346. package/src/types/CollectibleIndex.ts +14 -0
  347. package/src/types/PickingUpItem.ts +89 -0
  348. package/src/types/PlayerIndex.ts +13 -0
  349. package/src/types/private/IsaacAPIClass.ts +3 -0
  350. package/src/types/private/SerializedIsaacAPIClass.ts +3 -0
  351. package/src/types/private/TSTLClass.ts +3 -0
  352. package/src/upgradeMod.ts +55 -0
  353. package/tsconfig.json +42 -0
  354. package/typedoc.json +158 -0
  355. package/website-root.md +11 -0
  356. package/cachedClasses.d.ts +0 -37
  357. package/cachedClasses.lua +0 -6
  358. package/callbacks/customRevive.d.ts +0 -1
  359. package/callbacks/customRevive.lua +0 -145
  360. package/callbacks/itemPickup.d.ts +0 -1
  361. package/callbacks/itemPickup.lua +0 -64
  362. package/callbacks/postBombInitLate.d.ts +0 -1
  363. package/callbacks/postBombInitLate.lua +0 -31
  364. package/callbacks/postBoneSwing.d.ts +0 -1
  365. package/callbacks/postBoneSwing.lua +0 -48
  366. package/callbacks/postCollectibleInitFirst.d.ts +0 -1
  367. package/callbacks/postCollectibleInitFirst.lua +0 -32
  368. package/callbacks/postCursedTeleport.d.ts +0 -1
  369. package/callbacks/postCursedTeleport.lua +0 -119
  370. package/callbacks/postCustomDoorEnter.d.ts +0 -50
  371. package/callbacks/postCustomDoorEnter.lua +0 -203
  372. package/callbacks/postDoorRender.d.ts +0 -1
  373. package/callbacks/postDoorRender.lua +0 -24
  374. package/callbacks/postDoorUpdate.d.ts +0 -1
  375. package/callbacks/postDoorUpdate.lua +0 -24
  376. package/callbacks/postEffectInitLate.d.ts +0 -1
  377. package/callbacks/postEffectInitLate.lua +0 -31
  378. package/callbacks/postEffectStateChanged.d.ts +0 -1
  379. package/callbacks/postEffectStateChanged.lua +0 -37
  380. package/callbacks/postEsauJr.d.ts +0 -1
  381. package/callbacks/postEsauJr.lua +0 -67
  382. package/callbacks/postFamiliarInitLate.d.ts +0 -1
  383. package/callbacks/postFamiliarInitLate.lua +0 -31
  384. package/callbacks/postFamiliarStateChanged.d.ts +0 -1
  385. package/callbacks/postFamiliarStateChanged.lua +0 -37
  386. package/callbacks/postFlip.d.ts +0 -1
  387. package/callbacks/postFlip.lua +0 -61
  388. package/callbacks/postGreedModeWave.d.ts +0 -1
  389. package/callbacks/postGreedModeWave.lua +0 -32
  390. package/callbacks/postGridEntity.d.ts +0 -1
  391. package/callbacks/postGridEntity.lua +0 -105
  392. package/callbacks/postGridEntityCollision.d.ts +0 -1
  393. package/callbacks/postGridEntityCollision.lua +0 -65
  394. package/callbacks/postGridEntityRender.d.ts +0 -1
  395. package/callbacks/postGridEntityRender.lua +0 -24
  396. package/callbacks/postHolyMantleRemoved.d.ts +0 -1
  397. package/callbacks/postHolyMantleRemoved.lua +0 -39
  398. package/callbacks/postItemDischarged.d.ts +0 -2
  399. package/callbacks/postItemDischarged.lua +0 -104
  400. package/callbacks/postKnifeInitLate.d.ts +0 -1
  401. package/callbacks/postKnifeInitLate.lua +0 -31
  402. package/callbacks/postLaserInitLate.d.ts +0 -1
  403. package/callbacks/postLaserInitLate.lua +0 -31
  404. package/callbacks/postNPCInitLate.d.ts +0 -1
  405. package/callbacks/postNPCInitLate.lua +0 -31
  406. package/callbacks/postNPCStateChanged.d.ts +0 -1
  407. package/callbacks/postNPCStateChanged.lua +0 -37
  408. package/callbacks/postNewRoomEarly.d.ts +0 -1
  409. package/callbacks/postNewRoomEarly.lua +0 -65
  410. package/callbacks/postPickupCollect.d.ts +0 -1
  411. package/callbacks/postPickupCollect.lua +0 -39
  412. package/callbacks/postPickupInitLate.d.ts +0 -1
  413. package/callbacks/postPickupInitLate.lua +0 -31
  414. package/callbacks/postPickupStateChanged.d.ts +0 -1
  415. package/callbacks/postPickupStateChanged.lua +0 -37
  416. package/callbacks/postPitRender.d.ts +0 -1
  417. package/callbacks/postPitRender.lua +0 -24
  418. package/callbacks/postPitUpdate.d.ts +0 -1
  419. package/callbacks/postPitUpdate.lua +0 -24
  420. package/callbacks/postPlayerChangeHealth.d.ts +0 -1
  421. package/callbacks/postPlayerChangeHealth.lua +0 -50
  422. package/callbacks/postPlayerChangeType.d.ts +0 -1
  423. package/callbacks/postPlayerChangeType.lua +0 -39
  424. package/callbacks/postPlayerFatalDamage.d.ts +0 -1
  425. package/callbacks/postPlayerFatalDamage.lua +0 -71
  426. package/callbacks/postPlayerInitLate.d.ts +0 -1
  427. package/callbacks/postPlayerInitLate.lua +0 -33
  428. package/callbacks/postPlayerReordered.d.ts +0 -1
  429. package/callbacks/postPlayerReordered.lua +0 -112
  430. package/callbacks/postPoopRender.d.ts +0 -1
  431. package/callbacks/postPoopRender.lua +0 -24
  432. package/callbacks/postPoopUpdate.d.ts +0 -1
  433. package/callbacks/postPoopUpdate.lua +0 -24
  434. package/callbacks/postPressurePlateRender.d.ts +0 -1
  435. package/callbacks/postPressurePlateRender.lua +0 -24
  436. package/callbacks/postPressurePlateUpdate.d.ts +0 -1
  437. package/callbacks/postPressurePlateUpdate.lua +0 -24
  438. package/callbacks/postProjectileInitLate.d.ts +0 -1
  439. package/callbacks/postProjectileInitLate.lua +0 -31
  440. package/callbacks/postPurchase.d.ts +0 -1
  441. package/callbacks/postPurchase.lua +0 -49
  442. package/callbacks/postRockRender.d.ts +0 -1
  443. package/callbacks/postRockRender.lua +0 -24
  444. package/callbacks/postRockUpdate.d.ts +0 -1
  445. package/callbacks/postRockUpdate.lua +0 -24
  446. package/callbacks/postRoomClearChanged.d.ts +0 -1
  447. package/callbacks/postRoomClearChanged.lua +0 -40
  448. package/callbacks/postSacrifice.d.ts +0 -1
  449. package/callbacks/postSacrifice.lua +0 -42
  450. package/callbacks/postSlotInitUpdate.d.ts +0 -1
  451. package/callbacks/postSlotInitUpdate.lua +0 -51
  452. package/callbacks/postSlotRender.d.ts +0 -1
  453. package/callbacks/postSlotRender.lua +0 -74
  454. package/callbacks/postSpikesRender.d.ts +0 -1
  455. package/callbacks/postSpikesRender.lua +0 -24
  456. package/callbacks/postSpikesUpdate.d.ts +0 -1
  457. package/callbacks/postSpikesUpdate.lua +0 -24
  458. package/callbacks/postTNTRender.d.ts +0 -1
  459. package/callbacks/postTNTRender.lua +0 -24
  460. package/callbacks/postTNTUpdate.d.ts +0 -1
  461. package/callbacks/postTNTUpdate.lua +0 -24
  462. package/callbacks/postTearInitLate.d.ts +0 -1
  463. package/callbacks/postTearInitLate.lua +0 -31
  464. package/callbacks/postTearInitVeryLate.d.ts +0 -1
  465. package/callbacks/postTearInitVeryLate.lua +0 -34
  466. package/callbacks/postTransformation.d.ts +0 -1
  467. package/callbacks/postTransformation.lua +0 -46
  468. package/callbacks/postTrinketBreak.d.ts +0 -1
  469. package/callbacks/postTrinketBreak.lua +0 -70
  470. package/callbacks/preBerserkDeath.d.ts +0 -1
  471. package/callbacks/preBerserkDeath.lua +0 -36
  472. package/callbacks/preNewLevel.d.ts +0 -1
  473. package/callbacks/preNewLevel.lua +0 -43
  474. package/callbacks/reorderedCallbacks.d.ts +0 -20
  475. package/callbacks/reorderedCallbacks.lua +0 -92
  476. package/callbacks/subscriptions/postBombInitLate.d.ts +0 -5
  477. package/callbacks/subscriptions/postBombInitLate.lua +0 -23
  478. package/callbacks/subscriptions/postBoneSwing.d.ts +0 -4
  479. package/callbacks/subscriptions/postBoneSwing.lua +0 -16
  480. package/callbacks/subscriptions/postCollectibleInitFirst.d.ts +0 -5
  481. package/callbacks/subscriptions/postCollectibleInitFirst.lua +0 -23
  482. package/callbacks/subscriptions/postCursedTeleport.d.ts +0 -4
  483. package/callbacks/subscriptions/postCursedTeleport.lua +0 -16
  484. package/callbacks/subscriptions/postCustomDoorEnter.d.ts +0 -5
  485. package/callbacks/subscriptions/postCustomDoorEnter.lua +0 -29
  486. package/callbacks/subscriptions/postCustomRevive.d.ts +0 -5
  487. package/callbacks/subscriptions/postCustomRevive.lua +0 -23
  488. package/callbacks/subscriptions/postDoorRender.d.ts +0 -5
  489. package/callbacks/subscriptions/postDoorRender.lua +0 -24
  490. package/callbacks/subscriptions/postDoorUpdate.d.ts +0 -5
  491. package/callbacks/subscriptions/postDoorUpdate.lua +0 -24
  492. package/callbacks/subscriptions/postEffectInitLate.d.ts +0 -5
  493. package/callbacks/subscriptions/postEffectInitLate.lua +0 -23
  494. package/callbacks/subscriptions/postEffectStateChanged.d.ts +0 -5
  495. package/callbacks/subscriptions/postEffectStateChanged.lua +0 -23
  496. package/callbacks/subscriptions/postEsauJr.d.ts +0 -4
  497. package/callbacks/subscriptions/postEsauJr.lua +0 -16
  498. package/callbacks/subscriptions/postFamiliarInitLate.d.ts +0 -5
  499. package/callbacks/subscriptions/postFamiliarInitLate.lua +0 -23
  500. package/callbacks/subscriptions/postFamiliarStateChanged.d.ts +0 -5
  501. package/callbacks/subscriptions/postFamiliarStateChanged.lua +0 -23
  502. package/callbacks/subscriptions/postFirstEsauJr.d.ts +0 -4
  503. package/callbacks/subscriptions/postFirstEsauJr.lua +0 -16
  504. package/callbacks/subscriptions/postFirstFlip.d.ts +0 -4
  505. package/callbacks/subscriptions/postFirstFlip.lua +0 -16
  506. package/callbacks/subscriptions/postFlip.d.ts +0 -4
  507. package/callbacks/subscriptions/postFlip.lua +0 -16
  508. package/callbacks/subscriptions/postGameStartedReordered.d.ts +0 -3
  509. package/callbacks/subscriptions/postGameStartedReordered.lua +0 -16
  510. package/callbacks/subscriptions/postGreedModeWave.d.ts +0 -4
  511. package/callbacks/subscriptions/postGreedModeWave.lua +0 -16
  512. package/callbacks/subscriptions/postGridEntityBroken.d.ts +0 -6
  513. package/callbacks/subscriptions/postGridEntityBroken.lua +0 -29
  514. package/callbacks/subscriptions/postGridEntityCollision.d.ts +0 -6
  515. package/callbacks/subscriptions/postGridEntityCollision.lua +0 -29
  516. package/callbacks/subscriptions/postGridEntityInit.d.ts +0 -6
  517. package/callbacks/subscriptions/postGridEntityInit.lua +0 -29
  518. package/callbacks/subscriptions/postGridEntityRemove.d.ts +0 -6
  519. package/callbacks/subscriptions/postGridEntityRemove.lua +0 -27
  520. package/callbacks/subscriptions/postGridEntityRender.d.ts +0 -6
  521. package/callbacks/subscriptions/postGridEntityRender.lua +0 -29
  522. package/callbacks/subscriptions/postGridEntityStateChanged.d.ts +0 -6
  523. package/callbacks/subscriptions/postGridEntityStateChanged.lua +0 -29
  524. package/callbacks/subscriptions/postGridEntityUpdate.d.ts +0 -6
  525. package/callbacks/subscriptions/postGridEntityUpdate.lua +0 -29
  526. package/callbacks/subscriptions/postHolyMantleRemoved.d.ts +0 -6
  527. package/callbacks/subscriptions/postHolyMantleRemoved.lua +0 -28
  528. package/callbacks/subscriptions/postItemDischarged.d.ts +0 -5
  529. package/callbacks/subscriptions/postItemDischarged.lua +0 -23
  530. package/callbacks/subscriptions/postItemPickup.d.ts +0 -11
  531. package/callbacks/subscriptions/postItemPickup.lua +0 -27
  532. package/callbacks/subscriptions/postKnifeInitLate.d.ts +0 -5
  533. package/callbacks/subscriptions/postKnifeInitLate.lua +0 -23
  534. package/callbacks/subscriptions/postLaserInitLate.d.ts +0 -5
  535. package/callbacks/subscriptions/postLaserInitLate.lua +0 -23
  536. package/callbacks/subscriptions/postNPCInitLate.d.ts +0 -5
  537. package/callbacks/subscriptions/postNPCInitLate.lua +0 -23
  538. package/callbacks/subscriptions/postNPCStateChanged.d.ts +0 -6
  539. package/callbacks/subscriptions/postNPCStateChanged.lua +0 -27
  540. package/callbacks/subscriptions/postNewLevelReordered.d.ts +0 -1
  541. package/callbacks/subscriptions/postNewLevelReordered.lua +0 -16
  542. package/callbacks/subscriptions/postNewRoomEarly.d.ts +0 -1
  543. package/callbacks/subscriptions/postNewRoomEarly.lua +0 -16
  544. package/callbacks/subscriptions/postNewRoomReordered.d.ts +0 -1
  545. package/callbacks/subscriptions/postNewRoomReordered.lua +0 -16
  546. package/callbacks/subscriptions/postPEffectUpdateReordered.d.ts +0 -6
  547. package/callbacks/subscriptions/postPEffectUpdateReordered.lua +0 -28
  548. package/callbacks/subscriptions/postPickupCollect.d.ts +0 -4
  549. package/callbacks/subscriptions/postPickupCollect.lua +0 -23
  550. package/callbacks/subscriptions/postPickupInitLate.d.ts +0 -3
  551. package/callbacks/subscriptions/postPickupInitLate.lua +0 -23
  552. package/callbacks/subscriptions/postPickupStateChanged.d.ts +0 -5
  553. package/callbacks/subscriptions/postPickupStateChanged.lua +0 -23
  554. package/callbacks/subscriptions/postPitRender.d.ts +0 -5
  555. package/callbacks/subscriptions/postPitRender.lua +0 -24
  556. package/callbacks/subscriptions/postPitUpdate.d.ts +0 -5
  557. package/callbacks/subscriptions/postPitUpdate.lua +0 -24
  558. package/callbacks/subscriptions/postPlayerChangeHealth.d.ts +0 -7
  559. package/callbacks/subscriptions/postPlayerChangeHealth.lua +0 -28
  560. package/callbacks/subscriptions/postPlayerChangeType.d.ts +0 -5
  561. package/callbacks/subscriptions/postPlayerChangeType.lua +0 -23
  562. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +0 -6
  563. package/callbacks/subscriptions/postPlayerFatalDamage.lua +0 -39
  564. package/callbacks/subscriptions/postPlayerInitLate.d.ts +0 -6
  565. package/callbacks/subscriptions/postPlayerInitLate.lua +0 -28
  566. package/callbacks/subscriptions/postPlayerInitReordered.d.ts +0 -6
  567. package/callbacks/subscriptions/postPlayerInitReordered.lua +0 -28
  568. package/callbacks/subscriptions/postPlayerRenderReordered.d.ts +0 -6
  569. package/callbacks/subscriptions/postPlayerRenderReordered.lua +0 -28
  570. package/callbacks/subscriptions/postPlayerUpdateReordered.d.ts +0 -6
  571. package/callbacks/subscriptions/postPlayerUpdateReordered.lua +0 -28
  572. package/callbacks/subscriptions/postPoopRender.d.ts +0 -5
  573. package/callbacks/subscriptions/postPoopRender.lua +0 -24
  574. package/callbacks/subscriptions/postPoopUpdate.d.ts +0 -5
  575. package/callbacks/subscriptions/postPoopUpdate.lua +0 -24
  576. package/callbacks/subscriptions/postPressurePlateRender.d.ts +0 -5
  577. package/callbacks/subscriptions/postPressurePlateRender.lua +0 -24
  578. package/callbacks/subscriptions/postPressurePlateUpdate.d.ts +0 -5
  579. package/callbacks/subscriptions/postPressurePlateUpdate.lua +0 -24
  580. package/callbacks/subscriptions/postProjectileInitLate.d.ts +0 -5
  581. package/callbacks/subscriptions/postProjectileInitLate.lua +0 -23
  582. package/callbacks/subscriptions/postPurchase.d.ts +0 -6
  583. package/callbacks/subscriptions/postPurchase.lua +0 -16
  584. package/callbacks/subscriptions/postRockRender.d.ts +0 -5
  585. package/callbacks/subscriptions/postRockRender.lua +0 -24
  586. package/callbacks/subscriptions/postRockUpdate.d.ts +0 -5
  587. package/callbacks/subscriptions/postRockUpdate.lua +0 -24
  588. package/callbacks/subscriptions/postRoomClearChanged.d.ts +0 -3
  589. package/callbacks/subscriptions/postRoomClearChanged.lua +0 -16
  590. package/callbacks/subscriptions/postSacrifice.d.ts +0 -6
  591. package/callbacks/subscriptions/postSacrifice.lua +0 -28
  592. package/callbacks/subscriptions/postSlotAnimationChanged.d.ts +0 -5
  593. package/callbacks/subscriptions/postSlotAnimationChanged.lua +0 -23
  594. package/callbacks/subscriptions/postSlotDestroyed.d.ts +0 -5
  595. package/callbacks/subscriptions/postSlotDestroyed.lua +0 -23
  596. package/callbacks/subscriptions/postSlotInit.d.ts +0 -5
  597. package/callbacks/subscriptions/postSlotInit.lua +0 -23
  598. package/callbacks/subscriptions/postSlotRender.d.ts +0 -5
  599. package/callbacks/subscriptions/postSlotRender.lua +0 -23
  600. package/callbacks/subscriptions/postSlotUpdate.d.ts +0 -5
  601. package/callbacks/subscriptions/postSlotUpdate.lua +0 -23
  602. package/callbacks/subscriptions/postSpikesRender.d.ts +0 -5
  603. package/callbacks/subscriptions/postSpikesRender.lua +0 -24
  604. package/callbacks/subscriptions/postSpikesUpdate.d.ts +0 -5
  605. package/callbacks/subscriptions/postSpikesUpdate.lua +0 -24
  606. package/callbacks/subscriptions/postTNTRender.d.ts +0 -5
  607. package/callbacks/subscriptions/postTNTRender.lua +0 -24
  608. package/callbacks/subscriptions/postTNTUpdate.d.ts +0 -5
  609. package/callbacks/subscriptions/postTNTUpdate.lua +0 -24
  610. package/callbacks/subscriptions/postTearInitLate.d.ts +0 -5
  611. package/callbacks/subscriptions/postTearInitLate.lua +0 -23
  612. package/callbacks/subscriptions/postTearInitVeryLate.d.ts +0 -5
  613. package/callbacks/subscriptions/postTearInitVeryLate.lua +0 -23
  614. package/callbacks/subscriptions/postTransformation.d.ts +0 -5
  615. package/callbacks/subscriptions/postTransformation.lua +0 -23
  616. package/callbacks/subscriptions/postTrinketBreak.d.ts +0 -5
  617. package/callbacks/subscriptions/postTrinketBreak.lua +0 -23
  618. package/callbacks/subscriptions/preBerserkDeath.d.ts +0 -6
  619. package/callbacks/subscriptions/preBerserkDeath.lua +0 -29
  620. package/callbacks/subscriptions/preCustomRevive.d.ts +0 -6
  621. package/callbacks/subscriptions/preCustomRevive.lua +0 -32
  622. package/callbacks/subscriptions/preItemPickup.d.ts +0 -11
  623. package/callbacks/subscriptions/preItemPickup.lua +0 -27
  624. package/callbacks/subscriptions/preNewLevel.d.ts +0 -4
  625. package/callbacks/subscriptions/preNewLevel.lua +0 -16
  626. package/classes/DefaultMap.d.ts +0 -75
  627. package/classes/DefaultMap.lua +0 -84
  628. package/classes/ModUpgraded.d.ts +0 -17
  629. package/classes/ModUpgraded.lua +0 -38
  630. package/constants.d.ts +0 -104
  631. package/constants.lua +0 -45
  632. package/constantsMax.d.ts +0 -130
  633. package/constantsMax.lua +0 -50
  634. package/enums/HealthType.d.ts +0 -16
  635. package/enums/HealthType.lua +0 -21
  636. package/enums/ModCallbackCustom.d.ts +0 -109
  637. package/enums/ModCallbackCustom.lua +0 -153
  638. package/enums/PocketItemType.d.ts +0 -8
  639. package/enums/PocketItemType.lua +0 -15
  640. package/enums/SerializationType.d.ts +0 -5
  641. package/enums/SerializationType.lua +0 -9
  642. package/enums/private/CopyableIsaacAPIClassType.d.ts +0 -7
  643. package/enums/private/CopyableIsaacAPIClassType.lua +0 -7
  644. package/enums/private/SaveDataKey.d.ts +0 -7
  645. package/enums/private/SaveDataKey.lua +0 -11
  646. package/enums/private/SerializationBrand.d.ts +0 -37
  647. package/enums/private/SerializationBrand.lua +0 -12
  648. package/features/characterHealthConversion.d.ts +0 -10
  649. package/features/characterHealthConversion.lua +0 -85
  650. package/features/characterStats.d.ts +0 -19
  651. package/features/characterStats.lua +0 -37
  652. package/features/debugDisplay/debugDisplay.d.ts +0 -2
  653. package/features/debugDisplay/debugDisplay.lua +0 -181
  654. package/features/debugDisplay/exports.d.ts +0 -199
  655. package/features/debugDisplay/exports.lua +0 -133
  656. package/features/debugDisplay/v.d.ts +0 -44
  657. package/features/debugDisplay/v.lua +0 -54
  658. package/features/deployJSONRoom.d.ts +0 -65
  659. package/features/deployJSONRoom.lua +0 -463
  660. package/features/disableInputs.d.ts +0 -62
  661. package/features/disableInputs.lua +0 -89
  662. package/features/disableSound.d.ts +0 -18
  663. package/features/disableSound.lua +0 -48
  664. package/features/extraConsoleCommands/commands.d.ts +0 -349
  665. package/features/extraConsoleCommands/commands.lua +0 -922
  666. package/features/extraConsoleCommands/commandsDisplay.d.ts +0 -162
  667. package/features/extraConsoleCommands/commandsDisplay.lua +0 -129
  668. package/features/extraConsoleCommands/commandsSubroutines.d.ts +0 -9
  669. package/features/extraConsoleCommands/commandsSubroutines.lua +0 -129
  670. package/features/extraConsoleCommands/init.d.ts +0 -25
  671. package/features/extraConsoleCommands/init.lua +0 -249
  672. package/features/extraConsoleCommands/v.d.ts +0 -13
  673. package/features/extraConsoleCommands/v.lua +0 -10
  674. package/features/fadeInRemover.d.ts +0 -14
  675. package/features/fadeInRemover.lua +0 -45
  676. package/features/fastReset.d.ts +0 -14
  677. package/features/fastReset.lua +0 -49
  678. package/features/forgottenSwitch.d.ts +0 -5
  679. package/features/forgottenSwitch.lua +0 -28
  680. package/features/getCollectibleItemPoolType.d.ts +0 -7
  681. package/features/getCollectibleItemPoolType.lua +0 -43
  682. package/features/isPonyActive.d.ts +0 -6
  683. package/features/isPonyActive.lua +0 -49
  684. package/features/playerInventory.d.ts +0 -23
  685. package/features/playerInventory.lua +0 -129
  686. package/features/preventCollectibleRotate.d.ts +0 -11
  687. package/features/preventCollectibleRotate.lua +0 -58
  688. package/features/runInNFrames.d.ts +0 -61
  689. package/features/runInNFrames.lua +0 -78
  690. package/features/saveDataManager/constants.d.ts +0 -3
  691. package/features/saveDataManager/constants.lua +0 -4
  692. package/features/saveDataManager/exports.d.ts +0 -128
  693. package/features/saveDataManager/exports.lua +0 -66
  694. package/features/saveDataManager/load.d.ts +0 -4
  695. package/features/saveDataManager/load.lua +0 -66
  696. package/features/saveDataManager/main.d.ts +0 -3
  697. package/features/saveDataManager/main.lua +0 -119
  698. package/features/saveDataManager/maps.d.ts +0 -10
  699. package/features/saveDataManager/maps.lua +0 -8
  700. package/features/saveDataManager/merge.d.ts +0 -24
  701. package/features/saveDataManager/merge.lua +0 -124
  702. package/features/saveDataManager/save.d.ts +0 -4
  703. package/features/saveDataManager/save.lua +0 -44
  704. package/features/saveDataManager/serializationBrand.d.ts +0 -1
  705. package/features/saveDataManager/serializationBrand.lua +0 -17
  706. package/features/sirenHelpers.d.ts +0 -18
  707. package/features/sirenHelpers.lua +0 -69
  708. package/features/taintedLazarusPlayers.d.ts +0 -13
  709. package/features/taintedLazarusPlayers.lua +0 -74
  710. package/featuresInitialized.d.ts +0 -1
  711. package/featuresInitialized.lua +0 -14
  712. package/functions/array.d.ts +0 -141
  713. package/functions/array.lua +0 -269
  714. package/functions/benchmark.d.ts +0 -10
  715. package/functions/benchmark.lua +0 -32
  716. package/functions/bitwise.d.ts +0 -4
  717. package/functions/bitwise.lua +0 -21
  718. package/functions/boss.d.ts +0 -56
  719. package/functions/boss.lua +0 -183
  720. package/functions/cacheFlag.d.ts +0 -8
  721. package/functions/cacheFlag.lua +0 -7
  722. package/functions/cards.d.ts +0 -95
  723. package/functions/cards.lua +0 -174
  724. package/functions/challenges.d.ts +0 -3
  725. package/functions/challenges.lua +0 -9
  726. package/functions/character.d.ts +0 -48
  727. package/functions/character.lua +0 -73
  728. package/functions/charge.d.ts +0 -54
  729. package/functions/charge.lua +0 -123
  730. package/functions/chargeBar.d.ts +0 -19
  731. package/functions/chargeBar.lua +0 -43
  732. package/functions/collectibleCacheFlag.d.ts +0 -23
  733. package/functions/collectibleCacheFlag.lua +0 -65
  734. package/functions/collectibleSet.d.ts +0 -9
  735. package/functions/collectibleSet.lua +0 -51
  736. package/functions/collectibleTag.d.ts +0 -16
  737. package/functions/collectibleTag.lua +0 -74
  738. package/functions/collectibles.d.ts +0 -211
  739. package/functions/collectibles.lua +0 -281
  740. package/functions/color.d.ts +0 -31
  741. package/functions/color.lua +0 -122
  742. package/functions/debug.d.ts +0 -27
  743. package/functions/debug.lua +0 -31
  744. package/functions/deepCopy.d.ts +0 -29
  745. package/functions/deepCopy.lua +0 -357
  746. package/functions/deepCopyTests.d.ts +0 -1
  747. package/functions/deepCopyTests.lua +0 -316
  748. package/functions/direction.d.ts +0 -4
  749. package/functions/direction.lua +0 -17
  750. package/functions/doors.d.ts +0 -117
  751. package/functions/doors.lua +0 -231
  752. package/functions/easing.d.ts +0 -30
  753. package/functions/easing.lua +0 -115
  754. package/functions/eden.d.ts +0 -3
  755. package/functions/eden.lua +0 -47
  756. package/functions/entity.d.ts +0 -131
  757. package/functions/entity.lua +0 -233
  758. package/functions/entitySpecific.d.ts +0 -250
  759. package/functions/entitySpecific.lua +0 -642
  760. package/functions/entityTypes.d.ts +0 -3
  761. package/functions/entityTypes.lua +0 -7
  762. package/functions/enums.d.ts +0 -80
  763. package/functions/enums.lua +0 -85
  764. package/functions/familiars.d.ts +0 -60
  765. package/functions/familiars.lua +0 -33
  766. package/functions/flag.d.ts +0 -99
  767. package/functions/flag.lua +0 -47
  768. package/functions/flying.d.ts +0 -19
  769. package/functions/flying.lua +0 -67
  770. package/functions/globals.d.ts +0 -14
  771. package/functions/globals.lua +0 -230
  772. package/functions/gridEntity.d.ts +0 -155
  773. package/functions/gridEntity.lua +0 -263
  774. package/functions/gridEntitySpecific.d.ts +0 -18
  775. package/functions/gridEntitySpecific.lua +0 -88
  776. package/functions/input.d.ts +0 -32
  777. package/functions/input.lua +0 -106
  778. package/functions/isaacAPIClass.d.ts +0 -23
  779. package/functions/isaacAPIClass.lua +0 -35
  780. package/functions/jsonHelpers.d.ts +0 -18
  781. package/functions/jsonHelpers.lua +0 -26
  782. package/functions/jsonRoom.d.ts +0 -12
  783. package/functions/jsonRoom.lua +0 -86
  784. package/functions/kColor.d.ts +0 -31
  785. package/functions/kColor.lua +0 -101
  786. package/functions/language.d.ts +0 -2
  787. package/functions/language.lua +0 -17
  788. package/functions/level.d.ts +0 -1
  789. package/functions/level.lua +0 -29
  790. package/functions/log.d.ts +0 -78
  791. package/functions/log.lua +0 -519
  792. package/functions/map.d.ts +0 -22
  793. package/functions/map.lua +0 -43
  794. package/functions/math.d.ts +0 -50
  795. package/functions/math.lua +0 -92
  796. package/functions/mergeTests.d.ts +0 -1
  797. package/functions/mergeTests.lua +0 -182
  798. package/functions/npc.d.ts +0 -40
  799. package/functions/npc.lua +0 -104
  800. package/functions/pickupVariants.d.ts +0 -23
  801. package/functions/pickupVariants.lua +0 -37
  802. package/functions/pickups.d.ts +0 -132
  803. package/functions/pickups.lua +0 -407
  804. package/functions/pills.d.ts +0 -69
  805. package/functions/pills.lua +0 -83
  806. package/functions/player.d.ts +0 -296
  807. package/functions/player.lua +0 -611
  808. package/functions/playerDataStructures.d.ts +0 -41
  809. package/functions/playerDataStructures.lua +0 -34
  810. package/functions/playerHealth.d.ts +0 -22
  811. package/functions/playerHealth.lua +0 -286
  812. package/functions/playerIndex.d.ts +0 -68
  813. package/functions/playerIndex.lua +0 -127
  814. package/functions/pocketItems.d.ts +0 -33
  815. package/functions/pocketItems.lua +0 -86
  816. package/functions/positionVelocity.d.ts +0 -64
  817. package/functions/positionVelocity.lua +0 -108
  818. package/functions/random.d.ts +0 -42
  819. package/functions/random.lua +0 -38
  820. package/functions/revive.d.ts +0 -31
  821. package/functions/revive.lua +0 -102
  822. package/functions/rng.d.ts +0 -53
  823. package/functions/rng.lua +0 -129
  824. package/functions/roomData.d.ts +0 -108
  825. package/functions/roomData.lua +0 -92
  826. package/functions/roomGrid.d.ts +0 -40
  827. package/functions/roomGrid.lua +0 -59
  828. package/functions/roomShape.d.ts +0 -43
  829. package/functions/roomShape.lua +0 -45
  830. package/functions/rooms.d.ts +0 -194
  831. package/functions/rooms.lua +0 -382
  832. package/functions/run.d.ts +0 -12
  833. package/functions/run.lua +0 -28
  834. package/functions/seeds.d.ts +0 -9
  835. package/functions/seeds.lua +0 -15
  836. package/functions/serialization.d.ts +0 -11
  837. package/functions/serialization.lua +0 -65
  838. package/functions/set.d.ts +0 -39
  839. package/functions/set.lua +0 -61
  840. package/functions/sound.d.ts +0 -1
  841. package/functions/sound.lua +0 -13
  842. package/functions/spawnCollectible.d.ts +0 -31
  843. package/functions/spawnCollectible.lua +0 -70
  844. package/functions/sprite.d.ts +0 -36
  845. package/functions/sprite.lua +0 -64
  846. package/functions/stage.d.ts +0 -35
  847. package/functions/stage.lua +0 -70
  848. package/functions/string.d.ts +0 -13
  849. package/functions/string.lua +0 -36
  850. package/functions/table.d.ts +0 -36
  851. package/functions/table.lua +0 -79
  852. package/functions/tears.d.ts +0 -22
  853. package/functions/tears.lua +0 -14
  854. package/functions/transformations.d.ts +0 -30
  855. package/functions/transformations.lua +0 -96
  856. package/functions/trinketCacheFlag.d.ts +0 -10
  857. package/functions/trinketCacheFlag.lua +0 -50
  858. package/functions/trinketGive.d.ts +0 -38
  859. package/functions/trinketGive.lua +0 -90
  860. package/functions/trinkets.d.ts +0 -73
  861. package/functions/trinkets.lua +0 -115
  862. package/functions/tstlClass.d.ts +0 -20
  863. package/functions/tstlClass.lua +0 -56
  864. package/functions/ui.d.ts +0 -34
  865. package/functions/ui.lua +0 -95
  866. package/functions/utils.d.ts +0 -112
  867. package/functions/utils.lua +0 -94
  868. package/functions/vector.d.ts +0 -32
  869. package/functions/vector.lua +0 -118
  870. package/index.d.ts +0 -127
  871. package/index.lua +0 -900
  872. package/initCustomCallbacks.d.ts +0 -2
  873. package/initCustomCallbacks.lua +0 -178
  874. package/initFeatures.d.ts +0 -3
  875. package/initFeatures.lua +0 -51
  876. package/lualib_bundle.lua +0 -2488
  877. package/maps/cardMap.d.ts +0 -3
  878. package/maps/cardMap.lua +0 -211
  879. package/maps/characterMap.d.ts +0 -3
  880. package/maps/characterMap.lua +0 -89
  881. package/maps/collectibleDescriptionMap.d.ts +0 -3
  882. package/maps/collectibleDescriptionMap.lua +0 -728
  883. package/maps/collectibleNameMap.d.ts +0 -3
  884. package/maps/collectibleNameMap.lua +0 -728
  885. package/maps/defaultPlayerStatMap.d.ts +0 -3
  886. package/maps/defaultPlayerStatMap.lua +0 -24
  887. package/maps/gridEntityTypeToBrokenStateMap.d.ts +0 -2
  888. package/maps/gridEntityTypeToBrokenStateMap.lua +0 -26
  889. package/maps/gridEntityXMLMap.d.ts +0 -9
  890. package/maps/gridEntityXMLMap.lua +0 -51
  891. package/maps/pillEffectMap.d.ts +0 -3
  892. package/maps/pillEffectMap.lua +0 -89
  893. package/maps/roomShapeToTopLeftWallGridIndexMap.d.ts +0 -7
  894. package/maps/roomShapeToTopLeftWallGridIndexMap.lua +0 -15
  895. package/maps/roomTypeMap.d.ts +0 -3
  896. package/maps/roomTypeMap.lua +0 -44
  897. package/maps/trinketDescriptionMap.d.ts +0 -3
  898. package/maps/trinketDescriptionMap.lua +0 -196
  899. package/maps/trinketNameMap.d.ts +0 -3
  900. package/maps/trinketNameMap.lua +0 -196
  901. package/objects/LRoomShapeToRectangles.d.ts +0 -13
  902. package/objects/LRoomShapeToRectangles.lua +0 -33
  903. package/objects/callbackRegisterFunctions.d.ts +0 -5
  904. package/objects/callbackRegisterFunctions.lua +0 -231
  905. package/objects/cardDescriptions.d.ts +0 -5
  906. package/objects/cardDescriptions.lua +0 -105
  907. package/objects/cardNames.d.ts +0 -5
  908. package/objects/cardNames.lua +0 -105
  909. package/objects/cardTypes.d.ts +0 -5
  910. package/objects/cardTypes.lua +0 -106
  911. package/objects/challengeNames.d.ts +0 -5
  912. package/objects/challengeNames.lua +0 -53
  913. package/objects/characterNames.d.ts +0 -5
  914. package/objects/characterNames.lua +0 -49
  915. package/objects/coinSubTypeToValue.d.ts +0 -5
  916. package/objects/coinSubTypeToValue.lua +0 -15
  917. package/objects/colors.d.ts +0 -17
  918. package/objects/colors.lua +0 -12
  919. package/objects/directionNames.d.ts +0 -4
  920. package/objects/directionNames.lua +0 -11
  921. package/objects/directionToDegrees.d.ts +0 -4
  922. package/objects/directionToDegrees.lua +0 -11
  923. package/objects/directionToVector.d.ts +0 -4
  924. package/objects/directionToVector.lua +0 -13
  925. package/objects/doorSlotFlagToDoorSlot.d.ts +0 -5
  926. package/objects/doorSlotFlagToDoorSlot.lua +0 -16
  927. package/objects/doorSlotToDirection.d.ts +0 -4
  928. package/objects/doorSlotToDirection.lua +0 -16
  929. package/objects/isaacAPIClassTypeToBrand.d.ts +0 -5
  930. package/objects/isaacAPIClassTypeToBrand.lua +0 -7
  931. package/objects/isaacAPIClassTypeToCopyFunction.d.ts +0 -5
  932. package/objects/isaacAPIClassTypeToCopyFunction.lua +0 -13
  933. package/objects/pillEffectClasses.d.ts +0 -5
  934. package/objects/pillEffectClasses.lua +0 -59
  935. package/objects/pillEffectNames.d.ts +0 -5
  936. package/objects/pillEffectNames.lua +0 -57
  937. package/objects/pillEffectTypes.d.ts +0 -5
  938. package/objects/pillEffectTypes.lua +0 -58
  939. package/objects/roomShapeBounds.d.ts +0 -8
  940. package/objects/roomShapeBounds.lua +0 -24
  941. package/objects/roomShapeLayoutSizes.d.ts +0 -10
  942. package/objects/roomShapeLayoutSizes.lua +0 -25
  943. package/objects/roomShapeToBottomRightPosition.d.ts +0 -8
  944. package/objects/roomShapeToBottomRightPosition.lua +0 -20
  945. package/objects/roomShapeToDoorSlots.d.ts +0 -4
  946. package/objects/roomShapeToDoorSlots.lua +0 -46
  947. package/objects/roomShapeToDoorSlotsToGridIndexDelta.d.ts +0 -8
  948. package/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +0 -87
  949. package/objects/roomShapeToGridWidth.d.ts +0 -4
  950. package/objects/roomShapeToGridWidth.lua +0 -20
  951. package/objects/roomShapeToTopLeftPosition.d.ts +0 -8
  952. package/objects/roomShapeToTopLeftPosition.lua +0 -22
  953. package/objects/roomShapeVolumes.d.ts +0 -13
  954. package/objects/roomShapeVolumes.lua +0 -27
  955. package/objects/roomTypeNames.d.ts +0 -5
  956. package/objects/roomTypeNames.lua +0 -37
  957. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts +0 -4
  958. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.lua +0 -13
  959. package/objects/stageTypeToLetter.d.ts +0 -4
  960. package/objects/stageTypeToLetter.lua +0 -12
  961. package/objects/transformationNames.d.ts +0 -5
  962. package/objects/transformationNames.lua +0 -21
  963. package/patchErrorFunctions.d.ts +0 -1
  964. package/patchErrorFunctions.lua +0 -50
  965. package/sets/LRoomShapesSet.d.ts +0 -2
  966. package/sets/LRoomShapesSet.lua +0 -8
  967. package/sets/bossSets.d.ts +0 -4
  968. package/sets/bossSets.lua +0 -531
  969. package/sets/charactersThatStartWithAnActiveItemSet.d.ts +0 -2
  970. package/sets/charactersThatStartWithAnActiveItemSet.lua +0 -20
  971. package/sets/charactersWithBlackHeartFromEternalHeartSet.d.ts +0 -2
  972. package/sets/charactersWithBlackHeartFromEternalHeartSet.lua +0 -8
  973. package/sets/charactersWithFreeDevilDealsSet.d.ts +0 -2
  974. package/sets/charactersWithFreeDevilDealsSet.lua +0 -8
  975. package/sets/charactersWithNoRedHeartsSet.d.ts +0 -6
  976. package/sets/charactersWithNoRedHeartsSet.lua +0 -17
  977. package/sets/charactersWithNoSoulHeartsSet.d.ts +0 -6
  978. package/sets/charactersWithNoSoulHeartsSet.lua +0 -14
  979. package/sets/chestPickupVariantsSet.d.ts +0 -2
  980. package/sets/chestPickupVariantsSet.lua +0 -21
  981. package/sets/familiarsThatShootPlayerTearsSet.d.ts +0 -2
  982. package/sets/familiarsThatShootPlayerTearsSet.lua +0 -17
  983. package/sets/lostStyleCharactersSet.d.ts +0 -6
  984. package/sets/lostStyleCharactersSet.lua +0 -14
  985. package/sets/mineShaftRoomSubTypesSet.d.ts +0 -2
  986. package/sets/mineShaftRoomSubTypesSet.lua +0 -14
  987. package/sets/redHeartSubTypesSet.d.ts +0 -2
  988. package/sets/redHeartSubTypesSet.lua +0 -8
  989. package/sets/sinEntityTypesSet.d.ts +0 -2
  990. package/sets/sinEntityTypesSet.lua +0 -16
  991. package/sets/singleUseActiveCollectibleTypesSet.d.ts +0 -2
  992. package/sets/singleUseActiveCollectibleTypesSet.lua +0 -17
  993. package/sets/storyBossesSet.d.ts +0 -2
  994. package/sets/storyBossesSet.lua +0 -22
  995. package/types/AddCallbackParameterCustom.d.ts +0 -153
  996. package/types/AddCallbackParameterCustom.lua +0 -4
  997. package/types/AnyEntity.d.ts +0 -2
  998. package/types/AnyEntity.lua +0 -2
  999. package/types/CollectibleIndex.d.ts +0 -16
  1000. package/types/CollectibleIndex.lua +0 -2
  1001. package/types/JSONDoor.d.ts +0 -10
  1002. package/types/JSONDoor.lua +0 -2
  1003. package/types/JSONEntity.d.ts +0 -12
  1004. package/types/JSONEntity.lua +0 -2
  1005. package/types/JSONRoom.d.ts +0 -30
  1006. package/types/JSONRoom.lua +0 -2
  1007. package/types/JSONRooms.d.ts +0 -11
  1008. package/types/JSONRooms.lua +0 -2
  1009. package/types/JSONSpawn.d.ts +0 -10
  1010. package/types/JSONSpawn.lua +0 -2
  1011. package/types/PickingUpItem.d.ts +0 -24
  1012. package/types/PickingUpItem.lua +0 -24
  1013. package/types/PlayerHealth.d.ts +0 -14
  1014. package/types/PlayerHealth.lua +0 -2
  1015. package/types/PlayerIndex.d.ts +0 -16
  1016. package/types/PlayerIndex.lua +0 -2
  1017. package/types/PocketItemDescription.d.ts +0 -7
  1018. package/types/PocketItemDescription.lua +0 -2
  1019. package/types/Primitive.d.ts +0 -1
  1020. package/types/Primitive.lua +0 -2
  1021. package/types/TrinketSituation.d.ts +0 -7
  1022. package/types/TrinketSituation.lua +0 -2
  1023. package/types/private/IsaacAPIClass.d.ts +0 -4
  1024. package/types/private/IsaacAPIClass.lua +0 -2
  1025. package/types/private/SaveData.d.ts +0 -22
  1026. package/types/private/SaveData.lua +0 -2
  1027. package/types/private/SerializedIsaacAPIClass.d.ts +0 -4
  1028. package/types/private/SerializedIsaacAPIClass.lua +0 -2
  1029. package/types/private/TSTLClass.d.ts +0 -4
  1030. package/types/private/TSTLClass.lua +0 -2
  1031. package/types/private/TSTLClassMetatable.d.ts +0 -10
  1032. package/types/private/TSTLClassMetatable.lua +0 -2
  1033. package/upgradeMod.d.ts +0 -22
  1034. package/upgradeMod.lua +0 -33
@@ -0,0 +1,412 @@
1
+ import { getRandomInt } from "./random";
2
+ import { getRandomSeed, isRNG, newRNG } from "./rng";
3
+ import { erange, repeat } from "./utils";
4
+
5
+ /**
6
+ * Helper function for determining if two arrays contain the exact same elements. Note that this
7
+ * only performs a shallow comparison.
8
+ */
9
+ export function arrayEquals<T>(
10
+ array1: T[] | readonly T[],
11
+ array2: T[] | readonly T[],
12
+ ): boolean {
13
+ if (array1.length !== array2.length) {
14
+ return false;
15
+ }
16
+
17
+ return array1.every((array1Element, i) => {
18
+ const array2Element = array2[i];
19
+ return array1Element === array2Element;
20
+ });
21
+ }
22
+
23
+ /**
24
+ * Shallow copies and removes the specified element(s) from the array. Returns the copied array. If
25
+ * the specified element(s) are not found in the array, it will simply return a shallow copy of the
26
+ * array.
27
+ *
28
+ * This function is variadic, meaning that you can specify N arguments to remove N elements.
29
+ */
30
+ export function arrayRemove<T>(
31
+ originalArray: T[] | readonly T[],
32
+ ...elementsToRemove: T[]
33
+ ): T[] {
34
+ const elementsToRemoveSet = new Set(elementsToRemove);
35
+
36
+ const array: T[] = [];
37
+ for (const element of originalArray) {
38
+ if (!elementsToRemoveSet.has(element)) {
39
+ array.push(element);
40
+ }
41
+ }
42
+
43
+ return array;
44
+ }
45
+
46
+ /**
47
+ * Removes the specified element(s) from the array. If the specified element(s) are not found in the
48
+ * array, this function will do nothing. Returns whether or not one or more elements were removed.
49
+ *
50
+ * This function is variadic, meaning that you can specify N arguments to remove N elements.
51
+ */
52
+ export function arrayRemoveInPlace<T>(
53
+ array: T[],
54
+ ...elementsToRemove: T[]
55
+ ): boolean {
56
+ let removedOneOrMoreElements = false;
57
+ for (const element of elementsToRemove) {
58
+ const index = array.indexOf(element);
59
+ if (index > -1) {
60
+ removedOneOrMoreElements = true;
61
+ array.splice(index, 1);
62
+ }
63
+ }
64
+
65
+ return removedOneOrMoreElements;
66
+ }
67
+
68
+ /**
69
+ * Shallow copies and removes the elements at the specified indexes from the array. Returns the
70
+ * copied array. If the specified indexes are not found in the array, it will simply return a
71
+ * shallow copy of the array.
72
+ *
73
+ * This function is variadic, meaning that you can specify N arguments to remove N elements.
74
+ */
75
+ export function arrayRemoveIndex<T>(
76
+ originalArray: T[] | readonly T[],
77
+ ...indexesToRemove: int[]
78
+ ): T[] {
79
+ const indexesToRemoveSet = new Set(indexesToRemove);
80
+
81
+ const array: T[] = [];
82
+ originalArray.forEach((element, i) => {
83
+ if (!indexesToRemoveSet.has(i)) {
84
+ array.push(element);
85
+ }
86
+ });
87
+
88
+ return array;
89
+ }
90
+
91
+ /**
92
+ * Removes the elements at the specified indexes from the array. If the specified indexes are not
93
+ * found in the array, this function will do nothing. Returns whether or not one or more elements
94
+ * were removed.
95
+ *
96
+ * This function is variadic, meaning that you can specify N arguments to remove N elements.
97
+ */
98
+ export function arrayRemoveIndexInPlace<T>(
99
+ array: T[],
100
+ ...indexesToRemove: int[]
101
+ ): boolean {
102
+ const legalIndexes = indexesToRemove.filter(
103
+ (i) => i >= 0 && i < array.length,
104
+ );
105
+ legalIndexes.sort();
106
+
107
+ if (legalIndexes.length === 0) {
108
+ return false;
109
+ }
110
+
111
+ for (let i = array.length - 1; i >= 0; i--) {
112
+ array.splice(i, 1);
113
+ }
114
+
115
+ return true;
116
+ }
117
+
118
+ export function arrayToString<T>(array: T[]): string {
119
+ if (array.length === 0) {
120
+ return "[]";
121
+ }
122
+
123
+ const strings = array.map((element) => tostring(element));
124
+ const commaSeparatedStrings = strings.join(", ");
125
+ return `[${commaSeparatedStrings}]`;
126
+ }
127
+
128
+ /**
129
+ * Helper function to combine two or more arrays. Returns a new array that is the composition of all
130
+ * of the specified arrays.
131
+ *
132
+ * This function is variadic, meaning that you can specify N arguments to combine N arrays. Note
133
+ * that this will only perform a shallow copy of the array elements.
134
+ */
135
+ export function combineArrays<T>(...arrays: Array<T[] | readonly T[]>): T[] {
136
+ const elements: T[] = [];
137
+ for (const array of arrays) {
138
+ for (const element of array) {
139
+ elements.push(element);
140
+ }
141
+ }
142
+
143
+ return elements;
144
+ }
145
+
146
+ /**
147
+ * Helper function to perform a shallow copy.
148
+ *
149
+ * @param oldArray The array to copy.
150
+ * @param numElements Optional. If specified, will only copy the first N elements. By default, the
151
+ * entire array will be copied.
152
+ */
153
+ export function copyArray<T>(
154
+ oldArray: T[] | readonly T[],
155
+ numElements?: int,
156
+ ): T[] {
157
+ if (numElements === undefined) {
158
+ numElements = oldArray.length;
159
+ }
160
+
161
+ const newArray: T[] = [];
162
+ for (let i = 0; i < numElements; i++) {
163
+ const oldElement = oldArray[i];
164
+ if (oldElement !== undefined) {
165
+ newArray.push(oldElement);
166
+ }
167
+ }
168
+
169
+ return newArray;
170
+ }
171
+
172
+ export function emptyArray<T>(array: T[]): void {
173
+ array.splice(0, array.length);
174
+ }
175
+
176
+ /**
177
+ * Helper function to get an array containing the indexes of an array.
178
+ *
179
+ * For example, an array of `["Apple", "Banana"]` would return an array of `[0, 1]`.
180
+ */
181
+ export function getArrayIndexes<T>(array: T[] | readonly T[]): int[] {
182
+ return erange(array.length);
183
+ }
184
+
185
+ /**
186
+ * Helper function to return the last element of an array.
187
+ *
188
+ * If the array is empty, this will return undefined.
189
+ */
190
+ export function getLastElement<T>(array: T[]): T | undefined {
191
+ return array[array.length - 1];
192
+ }
193
+
194
+ /**
195
+ * Helper function to get a random element from the provided array.
196
+ *
197
+ * @param array The array to get an element from.
198
+ * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
199
+ * `RNG.Next` method will be called. Default is `getRandomSeed()`.
200
+ * @param exceptions Optional. An array of elements to skip over if selected.
201
+ */
202
+ export function getRandomArrayElement<T>(
203
+ array: T[] | readonly T[],
204
+ seedOrRNG: Seed | RNG = getRandomSeed(),
205
+ exceptions: T[] | readonly T[] = [],
206
+ ): T {
207
+ if (array.length === 0) {
208
+ error(
209
+ "Failed to get a random array element since the provided array is empty.",
210
+ );
211
+ }
212
+
213
+ const arrayWithoutExceptions = arrayRemove(array, ...exceptions);
214
+ const randomIndex = getRandomArrayIndex(arrayWithoutExceptions, seedOrRNG);
215
+ const randomElement = arrayWithoutExceptions[randomIndex];
216
+ if (randomElement === undefined) {
217
+ error(
218
+ `Failed to get a random array element since the random index of ${randomIndex} was not valid.`,
219
+ );
220
+ }
221
+
222
+ return randomElement;
223
+ }
224
+
225
+ /**
226
+ * Helper function to get a random element from the provided array. Once the random element is
227
+ * decided, it is then removed from the array (in-place).
228
+ *
229
+ * @param array The array to get an element from.
230
+ * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
231
+ * `RNG.Next` method will be called. Default is `getRandomSeed()`.
232
+ * @param exceptions Optional. An array of elements to skip over if selected.
233
+ */
234
+ export function getRandomArrayElementAndRemove<T>(
235
+ array: T[],
236
+ seedOrRNG: Seed | RNG = getRandomSeed(),
237
+ exceptions: T[] | readonly T[] = [],
238
+ ): T {
239
+ const randomArrayElement = getRandomArrayElement(
240
+ array,
241
+ seedOrRNG,
242
+ exceptions,
243
+ );
244
+ arrayRemoveInPlace(array, randomArrayElement);
245
+ return randomArrayElement;
246
+ }
247
+
248
+ /**
249
+ * Helper function to get a random index from the provided array.
250
+ *
251
+ * @param array The array to get the index from.
252
+ * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
253
+ * `RNG.Next` method will be called. Default is `getRandomSeed()`.
254
+ */
255
+ export function getRandomArrayIndex<T>(
256
+ array: T[] | readonly T[],
257
+ seedOrRNG: Seed | RNG = getRandomSeed(),
258
+ ): int {
259
+ if (array.length === 0) {
260
+ error(
261
+ "Failed to get a random array index since the provided array is empty.",
262
+ );
263
+ }
264
+
265
+ return getRandomInt(0, array.length - 1, seedOrRNG);
266
+ }
267
+
268
+ /**
269
+ * Initializes an array with all elements containing the specified default value.
270
+ *
271
+ * For example:
272
+ *
273
+ * ```ts
274
+ * const playerTransformations = initArray(false, PlayerForm.NUM_PLAYER_FORMS - 1);
275
+ * ```
276
+ */
277
+ export function initArray<T>(defaultValue: T, size: int): T[] {
278
+ const array: T[] = [];
279
+ repeat(size, () => {
280
+ array.push(defaultValue);
281
+ });
282
+
283
+ return array;
284
+ }
285
+
286
+ /**
287
+ * Since Lua uses tables for every non-primitive data structure, it is non-trivial to determine if a
288
+ * particular table is being used as an array. `isArray` returns true if:
289
+ *
290
+ * - the table contains all numerical indexes that are contiguous, starting at 1
291
+ * - the table has no keys (i.e. an "empty" table)
292
+ */
293
+ export function isArray(object: unknown): object is unknown[] {
294
+ if (type(object) !== "table") {
295
+ return false;
296
+ }
297
+
298
+ const table = object as LuaTable<AnyNotNil, unknown>;
299
+
300
+ // First, if there is a metatable, this cannot be a simple array and must be a more complex
301
+ // object.
302
+ const metatable = getmetatable(table);
303
+ if (metatable !== undefined) {
304
+ return false;
305
+ }
306
+
307
+ // Second, handle the case of non-numerical keys (and count the entries in the table).
308
+ let numEntries = 0;
309
+ for (const [key] of pairs(table)) {
310
+ numEntries += 1;
311
+
312
+ if (typeof key !== "number") {
313
+ return false;
314
+ }
315
+ }
316
+
317
+ if (numEntries === 0) {
318
+ return true;
319
+ }
320
+
321
+ // Third, check for non-contiguous elements. (Lua tables start at an index of 1.)
322
+ for (let i = 1; i <= numEntries; i++) {
323
+ const element = table.get(i);
324
+ if (element === undefined) {
325
+ return false;
326
+ }
327
+ }
328
+
329
+ return true;
330
+ }
331
+
332
+ /**
333
+ * Helper function to see if every element in the array is N + 1.
334
+ *
335
+ * For example, `[2, 3, 4]` would return true, and `[2, 3, 5]` would return false.
336
+ */
337
+ export function isArrayContiguous(array: int[]): boolean {
338
+ let lastValue: int | undefined;
339
+ for (const element of array) {
340
+ if (lastValue === undefined) {
341
+ lastValue = element - 1;
342
+ }
343
+
344
+ if (element !== lastValue - 1) {
345
+ return false;
346
+ }
347
+ }
348
+
349
+ return true;
350
+ }
351
+
352
+ /** Checks if an array is in the provided 2-dimensional array. */
353
+ export function isArrayInArray<T>(
354
+ arrayToMatch: T[] | readonly T[],
355
+ parentArray: Array<T[] | readonly T[]>,
356
+ ): boolean {
357
+ return parentArray.some((element) => arrayEquals(element, arrayToMatch));
358
+ }
359
+
360
+ /**
361
+ * Shallow copies and shuffles the array using the Fisher-Yates algorithm. Returns the copied array.
362
+ *
363
+ * From: https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array
364
+ *
365
+ * @param originalArray The array to shuffle.
366
+ * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
367
+ * `RNG.Next` method will be called. Default is `getRandomSeed()`.
368
+ */
369
+ export function shuffleArray<T>(
370
+ originalArray: T[] | readonly T[],
371
+ seedOrRNG: Seed | RNG = getRandomSeed(),
372
+ ): T[] {
373
+ const array = copyArray(originalArray);
374
+ shuffleArrayInPlace(array, seedOrRNG);
375
+
376
+ return array;
377
+ }
378
+
379
+ /**
380
+ * Shuffles the provided array in-place using the Fisher-Yates algorithm.
381
+ *
382
+ * From: https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array
383
+ *
384
+ * @param array The array to shuffle.
385
+ * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
386
+ * `RNG.Next` method will be called. Default is `getRandomSeed()`.
387
+ */
388
+ export function shuffleArrayInPlace<T>(
389
+ array: T[],
390
+ seedOrRNG: Seed | RNG = getRandomSeed(),
391
+ ): void {
392
+ let currentIndex = array.length;
393
+ let randomIndex: int;
394
+
395
+ const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
396
+
397
+ while (currentIndex > 0) {
398
+ currentIndex -= 1;
399
+
400
+ randomIndex = getRandomArrayIndex(array, rng);
401
+
402
+ // @ts-expect-error The shuffle can never be undefined.
403
+ [array[currentIndex], array[randomIndex]] = [
404
+ array[randomIndex],
405
+ array[currentIndex],
406
+ ];
407
+ }
408
+ }
409
+
410
+ export function sumArray(array: number[] | readonly number[]): number {
411
+ return array.reduce((accumulator, element) => accumulator + element);
412
+ }
@@ -0,0 +1,36 @@
1
+ import { log } from "./log";
2
+
3
+ /**
4
+ * Helper function to benchmark the performance of a function.
5
+ *
6
+ * This function is variadic, which means that you can supply as many as you want to benchmark.
7
+ *
8
+ * @returns An array containing the average time in milliseconds for each function. (This will also
9
+ * be printed to the log.)
10
+ */
11
+ export function benchmark(
12
+ numTrials: int,
13
+ ...functions: Array<() => void>
14
+ ): int[] {
15
+ log(`Benchmarking ${functions.length} function(s) with ${numTrials} trials.`);
16
+
17
+ const averages: int[] = [];
18
+ functions.forEach((func, i) => {
19
+ let totalTimeMilliseconds = 0;
20
+ for (let j = 0; j < numTrials; j++) {
21
+ const startTimeMilliseconds = Isaac.GetTime();
22
+ func();
23
+ const endTimeMilliseconds = Isaac.GetTime();
24
+ const elapsedTimeMilliseconds =
25
+ endTimeMilliseconds - startTimeMilliseconds;
26
+ totalTimeMilliseconds += elapsedTimeMilliseconds;
27
+ }
28
+ const averageTimeMilliseconds = totalTimeMilliseconds / numTrials;
29
+ log(
30
+ `The average time of the function at index ${i} is: ${averageTimeMilliseconds} milliseconds`,
31
+ );
32
+ averages.push(averageTimeMilliseconds);
33
+ });
34
+
35
+ return averages;
36
+ }
@@ -0,0 +1,24 @@
1
+ export function countSetBits(n: int): int {
2
+ let count = 0;
3
+
4
+ while (n > 0) {
5
+ n &= n - 1;
6
+ count += 1;
7
+ }
8
+
9
+ return count;
10
+ }
11
+
12
+ export function getKBitOfN(k: int, n: int): int {
13
+ return (n >>> k) & 1;
14
+ }
15
+
16
+ export function getNumBitsOfN(n: int): int {
17
+ let numBits = 0;
18
+ while (n > 0) {
19
+ numBits += 1;
20
+ n >>>= 1;
21
+ }
22
+
23
+ return numBits;
24
+ }
@@ -0,0 +1,227 @@
1
+ import {
2
+ EntityType,
3
+ LokiVariant,
4
+ StageType,
5
+ } from "isaac-typescript-definitions";
6
+ import { VectorZero } from "../constants";
7
+ import {
8
+ ALL_BOSSES_SET,
9
+ STAGE_TO_COMBINED_BOSS_SET_MAP,
10
+ STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP,
11
+ } from "../sets/bossSets";
12
+ import { SIN_ENTITY_TYPES_SET } from "../sets/sinEntityTypesSet";
13
+ import { getNPCs, spawnNPC } from "./entitySpecific";
14
+ import { getAliveNPCs } from "./npc";
15
+ import { copySet } from "./set";
16
+ import { repeat } from "./utils";
17
+
18
+ const BOSSES_THAT_REQUIRE_MULTIPLE_SPAWNS: ReadonlySet<EntityType> = new Set([
19
+ EntityType.LARRY_JR, // 19 (and The Hollow / Tuff Twins / The Shell)
20
+ EntityType.CHUB, // 28 (and C.H.A.D. / The Carrion Queen)
21
+ EntityType.LOKI, // 69 (only for Lokii)
22
+ EntityType.GURGLING, // 237 (and Turdling)
23
+ EntityType.TURDLET, // 918
24
+ ]);
25
+
26
+ const DEFAULT_BOSS_MULTI_SEGMENTS = 4;
27
+
28
+ /**
29
+ * Helper function to get all of the non-dead bosses in the room.
30
+ *
31
+ * This function will not include bosses on an internal blacklist, such as Death's scythes or Big
32
+ * Horn holes.
33
+ */
34
+ export function getAliveBosses(
35
+ matchingEntityType?: EntityType,
36
+ matchingVariant?: int,
37
+ matchingSubType?: int,
38
+ ignoreFriendly = false,
39
+ ): EntityNPC[] {
40
+ const aliveNPCs = getAliveNPCs(
41
+ matchingEntityType,
42
+ matchingVariant,
43
+ matchingSubType,
44
+ ignoreFriendly,
45
+ );
46
+ return aliveNPCs.filter((aliveNPC) => aliveNPC.IsBoss());
47
+ }
48
+
49
+ /**
50
+ * Helper function to get the set of every boss in the game.
51
+ *
52
+ * The set contains strings with the entity type and variant, separated by a period.
53
+ *
54
+ * Also see the `getBossSet` and `getCombinedBossSet` functions.
55
+ */
56
+ export function getAllBossesSet(): Set<string> {
57
+ return copySet(ALL_BOSSES_SET);
58
+ }
59
+
60
+ /**
61
+ * Helper function to get the set of vanilla bosses for a particular stage and stage type
62
+ * combination.
63
+ *
64
+ * The set contains strings with the entity type and variant, separated by a period.
65
+ *
66
+ * Also see the `getAllBossesSet` and `getCombinedBossSet` functions.
67
+ */
68
+ export function getBossSet(
69
+ stage: int,
70
+ stageType: StageType,
71
+ ): ReadonlySet<string> | undefined {
72
+ const stageTypeMap = STAGE_TO_STAGE_TYPE_TO_BOSS_SET_MAP.get(stage);
73
+ if (stageTypeMap === undefined) {
74
+ return undefined;
75
+ }
76
+
77
+ const bossSet = stageTypeMap.get(stageType);
78
+ if (bossSet === undefined) {
79
+ return undefined;
80
+ }
81
+
82
+ return copySet(bossSet);
83
+ }
84
+
85
+ /** Helper function to get all of the bosses in the room. */
86
+ export function getBosses(
87
+ matchingEntityType?: EntityType,
88
+ matchingVariant?: int,
89
+ matchingSubType?: int,
90
+ ignoreFriendly = false,
91
+ ): EntityNPC[] {
92
+ const npcs = getNPCs(
93
+ matchingEntityType,
94
+ matchingVariant,
95
+ matchingSubType,
96
+ ignoreFriendly,
97
+ );
98
+ return npcs.filter((npc) => npc.IsBoss());
99
+ }
100
+
101
+ /**
102
+ * Helper function to get the set of vanilla bosses for a particular stage across all of the stage
103
+ * types. For example, specifying a stage of 2 will return a set with all of the bosses for
104
+ * Basement, Cellar, Burning Basement, Downpour, and Dross.
105
+ *
106
+ * The set contains strings with the entity type and variant, separated by a period.
107
+ *
108
+ * Also see the `getAllBossesSet` and `getBossSet` functions.
109
+ */
110
+ export function getCombinedBossSet(stage: int): Set<string> | undefined {
111
+ const bossSet = STAGE_TO_COMBINED_BOSS_SET_MAP.get(stage);
112
+ if (bossSet === undefined) {
113
+ return undefined;
114
+ }
115
+
116
+ return copySet(bossSet);
117
+ }
118
+
119
+ /** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */
120
+ export function isSin(npc: EntityNPC): boolean {
121
+ return SIN_ENTITY_TYPES_SET.has(npc.Type);
122
+ }
123
+
124
+ /**
125
+ * Helper function to spawn a boss.
126
+ *
127
+ * Use this function instead of `spawnNPC` since it handles automatically spawning multiple segments
128
+ * for multi-segment bosses.
129
+ *
130
+ * By default, this will spawn Chub (and his variants) with 3 segments, Lokii with 2 copies,
131
+ * Gurglings/Turdlings with 2 copies, and other multi-segment bosses with 4 segments. You can
132
+ * customize this via the "numSegments" argument.
133
+ */
134
+ export function spawnBoss(
135
+ entityType: EntityType,
136
+ variant: int,
137
+ subType: int,
138
+ position: Vector,
139
+ velocity = VectorZero,
140
+ spawner: Entity | undefined = undefined,
141
+ seed: Seed | undefined = undefined,
142
+ numSegments?: int,
143
+ ): EntityNPC {
144
+ const npc = spawnNPC(
145
+ entityType,
146
+ variant,
147
+ subType,
148
+ position,
149
+ velocity,
150
+ spawner,
151
+ seed,
152
+ );
153
+
154
+ if (BOSSES_THAT_REQUIRE_MULTIPLE_SPAWNS.has(entityType)) {
155
+ const numBossSegments = getNumBossSegments(
156
+ entityType,
157
+ variant,
158
+ numSegments,
159
+ );
160
+ const remainingSegmentsToSpawn = numBossSegments - 1;
161
+ repeat(remainingSegmentsToSpawn, () => {
162
+ spawnNPC(entityType, variant, subType, position, velocity, spawner, seed);
163
+ });
164
+ }
165
+
166
+ return npc;
167
+ }
168
+
169
+ function getNumBossSegments(
170
+ entityType: EntityType,
171
+ variant: int,
172
+ numSegments: int | undefined,
173
+ ) {
174
+ if (numSegments !== undefined) {
175
+ return numSegments;
176
+ }
177
+
178
+ switch (entityType) {
179
+ // 28
180
+ case EntityType.CHUB: {
181
+ // Chub is always composed of 3 segments.
182
+ return 3;
183
+ }
184
+
185
+ // 69
186
+ case EntityType.LOKI: {
187
+ return (variant as LokiVariant) === LokiVariant.LOKII ? 2 : 1;
188
+ }
189
+
190
+ // 237
191
+ case EntityType.GURGLING: {
192
+ // Gurglings & Turdlings are always encountered in groups of 2.
193
+ return 2;
194
+ }
195
+
196
+ default: {
197
+ return DEFAULT_BOSS_MULTI_SEGMENTS;
198
+ }
199
+ }
200
+ }
201
+
202
+ /**
203
+ * Helper function to spawn a boss with a specific seed.
204
+ *
205
+ * For more information, see the documentation for the `spawnBoss` function.
206
+ */
207
+ export function spawnBossWithSeed(
208
+ entityType: EntityType,
209
+ variant: int,
210
+ subType: int,
211
+ position: Vector,
212
+ seed: Seed,
213
+ velocity = VectorZero,
214
+ spawner: Entity | undefined = undefined,
215
+ numSegments?: int,
216
+ ): EntityNPC {
217
+ return spawnBoss(
218
+ entityType,
219
+ variant,
220
+ subType,
221
+ position,
222
+ velocity,
223
+ spawner,
224
+ seed,
225
+ numSegments,
226
+ );
227
+ }
@@ -0,0 +1,12 @@
1
+ import { CacheFlag } from "isaac-typescript-definitions";
2
+ import { DEFAULT_PLAYER_STAT_MAP } from "../maps/defaultPlayerStatMap";
3
+
4
+ /**
5
+ * Returns the starting stat that Isaac (the default character) starts with. For example, if you
6
+ * pass this function `CacheFlag.DAMAGE`, it will return 3.5.
7
+ *
8
+ * Note that the default fire delay is represented in the tear stat, not the `MaxFireDelay` value.
9
+ */
10
+ export function getDefaultPlayerStat(cacheFlag: CacheFlag): number | undefined {
11
+ return DEFAULT_PLAYER_STAT_MAP.get(cacheFlag);
12
+ }