isaacscript-common 3.16.1 → 4.0.1-dev.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 (417) hide show
  1. package/cachedClasses.ts +39 -0
  2. package/callbacks/customRevive.lua +2 -1
  3. package/callbacks/customRevive.ts +215 -0
  4. package/callbacks/itemPickup.ts +101 -0
  5. package/callbacks/postAmbush.ts +73 -0
  6. package/callbacks/postBombExploded.ts +26 -0
  7. package/callbacks/postBombInitLate.ts +36 -0
  8. package/callbacks/postBoneSwing.ts +64 -0
  9. package/callbacks/postCollectibleInitFirst.ts +40 -0
  10. package/callbacks/postCursedTeleport.ts +183 -0
  11. package/callbacks/postCustomDoorEnter.lua +0 -7
  12. package/callbacks/postCustomDoorEnter.ts +292 -0
  13. package/callbacks/postDiceRoomActivated.ts +60 -0
  14. package/callbacks/postDoorRender.ts +26 -0
  15. package/callbacks/postDoorUpdate.ts +26 -0
  16. package/callbacks/postEffectInitLate.ts +36 -0
  17. package/callbacks/postEffectStateChanged.ts +43 -0
  18. package/callbacks/postEsauJr.ts +107 -0
  19. package/callbacks/postFamiliarInitLate.ts +36 -0
  20. package/callbacks/postFamiliarStateChanged.ts +43 -0
  21. package/callbacks/postFlip.ts +88 -0
  22. package/callbacks/postGreedModeWave.ts +41 -0
  23. package/callbacks/postGridEntity.ts +164 -0
  24. package/callbacks/postGridEntityCollision.ts +69 -0
  25. package/callbacks/postGridEntityRender.ts +26 -0
  26. package/callbacks/postHolyMantleRemoved.ts +55 -0
  27. package/callbacks/postItemDischarged.ts +149 -0
  28. package/callbacks/postKnifeInitLate.ts +36 -0
  29. package/callbacks/postLaserInitLate.ts +36 -0
  30. package/callbacks/postNPCInitLate.ts +36 -0
  31. package/callbacks/postNPCStateChanged.ts +42 -0
  32. package/callbacks/postNewRoomEarly.ts +90 -0
  33. package/callbacks/postPickupCollect.ts +48 -0
  34. package/callbacks/postPickupInitFirst.ts +70 -0
  35. package/callbacks/postPickupInitLate.ts +36 -0
  36. package/callbacks/postPickupStateChanged.ts +43 -0
  37. package/callbacks/postPitRender.ts +26 -0
  38. package/callbacks/postPitUpdate.ts +26 -0
  39. package/callbacks/postPlayerChangeHealth.ts +62 -0
  40. package/callbacks/postPlayerChangeType.ts +56 -0
  41. package/callbacks/postPlayerCollectible.ts +113 -0
  42. package/callbacks/postPlayerFatalDamage.ts +141 -0
  43. package/callbacks/postPlayerInitLate.ts +37 -0
  44. package/callbacks/postPlayerReordered.ts +142 -0
  45. package/callbacks/postPoopRender.ts +26 -0
  46. package/callbacks/postPoopUpdate.ts +26 -0
  47. package/callbacks/postPressurePlateRender.ts +26 -0
  48. package/callbacks/postPressurePlateUpdate.ts +26 -0
  49. package/callbacks/postProjectileInitLate.ts +36 -0
  50. package/callbacks/postPurchase.ts +64 -0
  51. package/callbacks/postRockRender.ts +26 -0
  52. package/callbacks/postRockUpdate.ts +26 -0
  53. package/callbacks/postRoomClearChanged.ts +57 -0
  54. package/callbacks/postSacrifice.ts +62 -0
  55. package/callbacks/postSlotDestroyed.ts +92 -0
  56. package/callbacks/postSlotInitUpdate.ts +68 -0
  57. package/callbacks/postSlotRender.ts +69 -0
  58. package/callbacks/postSpikesRender.ts +26 -0
  59. package/callbacks/postSpikesUpdate.ts +26 -0
  60. package/callbacks/postTNTRender.ts +26 -0
  61. package/callbacks/postTNTUpdate.ts +26 -0
  62. package/callbacks/postTearInitLate.ts +36 -0
  63. package/callbacks/postTearInitVeryLate.ts +41 -0
  64. package/callbacks/postTransformation.ts +59 -0
  65. package/callbacks/postTrinketBreak.ts +110 -0
  66. package/callbacks/preBerserkDeath.ts +49 -0
  67. package/callbacks/preNewLevel.ts +55 -0
  68. package/callbacks/reorderedCallbacks.ts +166 -0
  69. package/callbacks/subscriptions/postAmbushFinished.ts +32 -0
  70. package/callbacks/subscriptions/postAmbushStarted.ts +32 -0
  71. package/callbacks/subscriptions/postBombInitLate.ts +32 -0
  72. package/callbacks/subscriptions/postBoneExploded.ts +32 -0
  73. package/callbacks/subscriptions/postBoneSwing.ts +24 -0
  74. package/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
  75. package/callbacks/subscriptions/postCursedTeleport.ts +24 -0
  76. package/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
  77. package/callbacks/subscriptions/postCustomRevive.ts +36 -0
  78. package/callbacks/subscriptions/postDiceRoomActivated.ts +38 -0
  79. package/callbacks/subscriptions/postDoorRender.ts +35 -0
  80. package/callbacks/subscriptions/postDoorUpdate.ts +35 -0
  81. package/callbacks/subscriptions/postEffectInitLate.ts +32 -0
  82. package/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
  83. package/callbacks/subscriptions/postEsauJr.ts +24 -0
  84. package/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
  85. package/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
  86. package/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
  87. package/callbacks/subscriptions/postFirstFlip.ts +24 -0
  88. package/callbacks/subscriptions/postFlip.ts +22 -0
  89. package/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
  90. package/callbacks/subscriptions/postGreedModeWave.ts +24 -0
  91. package/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
  92. package/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
  93. package/callbacks/subscriptions/postGridEntityInit.ts +51 -0
  94. package/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
  95. package/callbacks/subscriptions/postGridEntityRender.ts +51 -0
  96. package/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
  97. package/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
  98. package/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
  99. package/callbacks/subscriptions/postItemDischarged.ts +43 -0
  100. package/callbacks/subscriptions/postItemPickup.ts +64 -0
  101. package/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
  102. package/callbacks/subscriptions/postLaserInitLate.ts +32 -0
  103. package/callbacks/subscriptions/postNPCInitLate.ts +32 -0
  104. package/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
  105. package/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
  106. package/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
  107. package/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
  108. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
  109. package/callbacks/subscriptions/postPickupCollect.ts +35 -0
  110. package/callbacks/subscriptions/postPickupInitFirst.ts +32 -0
  111. package/callbacks/subscriptions/postPickupInitLate.ts +32 -0
  112. package/callbacks/subscriptions/postPickupStateChanged.ts +40 -0
  113. package/callbacks/subscriptions/postPitRender.ts +35 -0
  114. package/callbacks/subscriptions/postPitUpdate.ts +35 -0
  115. package/callbacks/subscriptions/postPlayerChangeHealth.ts +49 -0
  116. package/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
  117. package/callbacks/subscriptions/postPlayerCollectibleAdded.d.ts +2 -3
  118. package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -7
  119. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +38 -0
  120. package/callbacks/subscriptions/postPlayerCollectibleRemoved.d.ts +2 -3
  121. package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -7
  122. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +38 -0
  123. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +1 -1
  124. package/callbacks/subscriptions/postPlayerFatalDamage.ts +68 -0
  125. package/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
  126. package/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
  127. package/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
  128. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
  129. package/callbacks/subscriptions/postPoopRender.ts +35 -0
  130. package/callbacks/subscriptions/postPoopUpdate.ts +35 -0
  131. package/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
  132. package/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
  133. package/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
  134. package/callbacks/subscriptions/postPurchase.ts +31 -0
  135. package/callbacks/subscriptions/postRockRender.ts +35 -0
  136. package/callbacks/subscriptions/postRockUpdate.ts +35 -0
  137. package/callbacks/subscriptions/postRoomClearChanged.ts +30 -0
  138. package/callbacks/subscriptions/postSacrifice.ts +43 -0
  139. package/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
  140. package/callbacks/subscriptions/postSlotDestroyed.ts +55 -0
  141. package/callbacks/subscriptions/postSlotInit.ts +32 -0
  142. package/callbacks/subscriptions/postSlotRender.ts +32 -0
  143. package/callbacks/subscriptions/postSlotUpdate.ts +32 -0
  144. package/callbacks/subscriptions/postSpikesRender.ts +35 -0
  145. package/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
  146. package/callbacks/subscriptions/postTNTRender.ts +35 -0
  147. package/callbacks/subscriptions/postTNTUpdate.ts +35 -0
  148. package/callbacks/subscriptions/postTearInitLate.ts +32 -0
  149. package/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
  150. package/callbacks/subscriptions/postTransformation.ts +40 -0
  151. package/callbacks/subscriptions/postTrinketBreak.ts +38 -0
  152. package/callbacks/subscriptions/preBerserkDeath.d.ts +1 -1
  153. package/callbacks/subscriptions/preBerserkDeath.ts +42 -0
  154. package/callbacks/subscriptions/preCustomRevive.d.ts +1 -1
  155. package/callbacks/subscriptions/preCustomRevive.ts +46 -0
  156. package/callbacks/subscriptions/preItemPickup.ts +64 -0
  157. package/callbacks/subscriptions/preNewLevel.ts +24 -0
  158. package/classes/DefaultMap.ts +174 -0
  159. package/classes/ModUpgraded.d.ts +3 -3
  160. package/classes/ModUpgraded.lua +3 -6
  161. package/classes/ModUpgraded.ts +77 -0
  162. package/constants.ts +162 -0
  163. package/constantsFirstLast.ts +217 -0
  164. package/enums/AmbushType.ts +4 -0
  165. package/enums/HealthType.ts +16 -0
  166. package/enums/ModCallbackCustom.d.ts +20 -18
  167. package/enums/ModCallbackCustom.ts +1278 -0
  168. package/enums/PocketItemType.ts +8 -0
  169. package/enums/SerializationType.ts +5 -0
  170. package/enums/SlotDestructionType.ts +4 -0
  171. package/enums/private/CopyableIsaacAPIClassType.ts +7 -0
  172. package/enums/private/SaveDataKey.ts +14 -0
  173. package/enums/private/SerializationBrand.ts +42 -0
  174. package/features/characterHealthConversion.lua +2 -9
  175. package/features/characterHealthConversion.ts +111 -0
  176. package/features/characterStats.ts +61 -0
  177. package/features/debugDisplay/debugDisplay.ts +221 -0
  178. package/features/debugDisplay/exports.ts +368 -0
  179. package/features/debugDisplay/v.ts +65 -0
  180. package/features/deployJSONRoom.ts +743 -0
  181. package/features/disableInputs.ts +193 -0
  182. package/features/disableSound.ts +77 -0
  183. package/features/extraConsoleCommands/commandsDisplay.ts +290 -0
  184. package/features/extraConsoleCommands/commandsSubroutines.lua +1 -1
  185. package/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
  186. package/features/extraConsoleCommands/init.ts +334 -0
  187. package/features/extraConsoleCommands/listCommands.ts +1299 -0
  188. package/features/extraConsoleCommands/v.ts +14 -0
  189. package/features/fadeInRemover.ts +60 -0
  190. package/features/fastReset.ts +75 -0
  191. package/features/forgottenSwitch.ts +50 -0
  192. package/features/getCollectibleItemPoolType.ts +66 -0
  193. package/features/persistentEntities.ts +183 -0
  194. package/features/playerInventory.ts +133 -0
  195. package/features/ponyDetection.ts +74 -0
  196. package/features/preventCollectibleRotation.ts +115 -0
  197. package/features/runInNFrames.ts +148 -0
  198. package/features/saveDataManager/constants.ts +4 -0
  199. package/features/saveDataManager/exports.ts +229 -0
  200. package/features/saveDataManager/load.ts +99 -0
  201. package/features/saveDataManager/main.ts +195 -0
  202. package/features/saveDataManager/maps.ts +13 -0
  203. package/features/saveDataManager/merge.ts +194 -0
  204. package/features/saveDataManager/save.ts +74 -0
  205. package/features/saveDataManager/serializationBrand.ts +16 -0
  206. package/features/sirenHelpers.ts +129 -0
  207. package/features/taintedLazarusPlayers.ts +113 -0
  208. package/featuresInitialized.ts +20 -0
  209. package/functions/ambush.ts +47 -0
  210. package/functions/array.ts +410 -0
  211. package/functions/benchmark.ts +36 -0
  212. package/functions/bitwise.ts +24 -0
  213. package/functions/bombs.ts +12 -0
  214. package/functions/boss.ts +227 -0
  215. package/functions/cacheFlag.ts +12 -0
  216. package/functions/cards.lua +1 -1
  217. package/functions/cards.ts +271 -0
  218. package/functions/challenges.ts +13 -0
  219. package/functions/character.ts +126 -0
  220. package/functions/charge.ts +237 -0
  221. package/functions/chargeBar.ts +67 -0
  222. package/functions/collectibleCacheFlag.ts +90 -0
  223. package/functions/collectibleSet.ts +56 -0
  224. package/functions/collectibleTag.ts +89 -0
  225. package/functions/collectibles.ts +659 -0
  226. package/functions/color.d.ts +1 -1
  227. package/functions/color.lua +0 -7
  228. package/functions/color.ts +128 -0
  229. package/functions/debug.lua +2 -2
  230. package/functions/debug.ts +68 -0
  231. package/functions/deepCopy.lua +46 -51
  232. package/functions/deepCopy.ts +535 -0
  233. package/functions/deepCopyTests.ts +386 -0
  234. package/functions/direction.ts +49 -0
  235. package/functions/doors.lua +1 -2
  236. package/functions/doors.ts +347 -0
  237. package/functions/easing.ts +182 -0
  238. package/functions/eden.ts +47 -0
  239. package/functions/effects.ts +20 -0
  240. package/functions/entity.ts +439 -0
  241. package/functions/entitySpecific.ts +889 -0
  242. package/functions/entityTypes.ts +6 -0
  243. package/functions/enums.ts +146 -0
  244. package/functions/familiars.ts +106 -0
  245. package/functions/flag.ts +165 -0
  246. package/functions/flying.ts +117 -0
  247. package/functions/globals.d.ts +3 -3
  248. package/functions/globals.lua +8 -2
  249. package/functions/globals.ts +242 -0
  250. package/functions/gridEntity.ts +511 -0
  251. package/functions/gridEntitySpecific.ts +112 -0
  252. package/functions/input.ts +139 -0
  253. package/functions/isaacAPIClass.ts +67 -0
  254. package/functions/jsonHelpers.ts +45 -0
  255. package/functions/jsonRoom.ts +100 -0
  256. package/functions/kColor.d.ts +1 -1
  257. package/functions/kColor.lua +0 -7
  258. package/functions/kColor.ts +129 -0
  259. package/functions/language.ts +13 -0
  260. package/functions/level.ts +31 -0
  261. package/functions/log.ts +720 -0
  262. package/functions/map.ts +56 -0
  263. package/functions/math.ts +149 -0
  264. package/functions/mergeTests.ts +288 -0
  265. package/functions/npc.ts +148 -0
  266. package/functions/pickupVariants.ts +60 -0
  267. package/functions/pickups.ts +499 -0
  268. package/functions/pills.lua +1 -1
  269. package/functions/pills.ts +205 -0
  270. package/functions/player.lua +0 -6
  271. package/functions/player.ts +1060 -0
  272. package/functions/playerDataStructures.ts +150 -0
  273. package/functions/playerHealth.d.ts +2 -0
  274. package/functions/playerHealth.lua +73 -39
  275. package/functions/playerHealth.ts +382 -0
  276. package/functions/playerIndex.ts +195 -0
  277. package/functions/pocketItems.ts +149 -0
  278. package/functions/positionVelocity.ts +188 -0
  279. package/functions/random.ts +77 -0
  280. package/functions/revive.ts +201 -0
  281. package/functions/rng.d.ts +1 -1
  282. package/functions/rng.lua +0 -7
  283. package/functions/rng.ts +172 -0
  284. package/functions/roomData.ts +199 -0
  285. package/functions/roomGrid.ts +109 -0
  286. package/functions/roomShape.ts +80 -0
  287. package/functions/rooms.lua +1 -3
  288. package/functions/rooms.ts +648 -0
  289. package/functions/run.ts +36 -0
  290. package/functions/saveFile.ts +128 -0
  291. package/functions/seeds.ts +19 -0
  292. package/functions/serialization.lua +0 -3
  293. package/functions/serialization.ts +91 -0
  294. package/functions/set.ts +95 -0
  295. package/functions/sound.ts +9 -0
  296. package/functions/spawnCollectible.ts +104 -0
  297. package/functions/sprite.ts +107 -0
  298. package/functions/stage.ts +125 -0
  299. package/functions/string.ts +47 -0
  300. package/functions/table.ts +189 -0
  301. package/functions/tears.ts +32 -0
  302. package/functions/transformations.lua +1 -3
  303. package/functions/transformations.ts +131 -0
  304. package/functions/trinketCacheFlag.ts +60 -0
  305. package/functions/trinketGive.ts +157 -0
  306. package/functions/trinkets.ts +215 -0
  307. package/functions/tstlClass.ts +157 -0
  308. package/functions/types.ts +36 -0
  309. package/functions/ui.ts +138 -0
  310. package/functions/utils.d.ts +0 -37
  311. package/functions/utils.lua +0 -35
  312. package/functions/utils.ts +189 -0
  313. package/functions/vector.d.ts +1 -1
  314. package/functions/vector.lua +0 -7
  315. package/functions/vector.ts +126 -0
  316. package/index.ts +172 -0
  317. package/initCustomCallbacks.ts +132 -0
  318. package/initFeatures.ts +39 -0
  319. package/interfaces/AddCallbackParameterCustom.ts +188 -0
  320. package/interfaces/ChargeBarSprites.ts +12 -0
  321. package/interfaces/JSONDoor.d.ts +4 -4
  322. package/interfaces/JSONDoor.ts +13 -0
  323. package/interfaces/JSONEntity.d.ts +5 -5
  324. package/interfaces/JSONEntity.ts +16 -0
  325. package/interfaces/JSONRoom.d.ts +9 -9
  326. package/interfaces/JSONRoom.ts +36 -0
  327. package/interfaces/JSONRooms.ts +12 -0
  328. package/interfaces/JSONSpawn.d.ts +3 -3
  329. package/interfaces/JSONSpawn.ts +14 -0
  330. package/interfaces/PlayerHealth.ts +16 -0
  331. package/interfaces/PocketItemDescription.ts +9 -0
  332. package/interfaces/SaveData.ts +29 -0
  333. package/interfaces/TrinketSituation.ts +9 -0
  334. package/interfaces/private/TSTLClassMetatable.ts +8 -0
  335. package/maps/PHDPillConversions.ts +21 -0
  336. package/maps/cardMap.ts +209 -0
  337. package/maps/characterMap.ts +87 -0
  338. package/maps/collectibleDescriptionMap.ts +732 -0
  339. package/maps/collectibleNameMap.ts +731 -0
  340. package/maps/defaultPlayerStatMap.ts +17 -0
  341. package/maps/falsePHDPillConversions.ts +35 -0
  342. package/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
  343. package/maps/gridEntityXMLMap.ts +176 -0
  344. package/maps/pillEffectMap.ts +88 -0
  345. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
  346. package/maps/roomTypeMap.ts +40 -0
  347. package/maps/trinketDescriptionMap.ts +200 -0
  348. package/maps/trinketNameMap.ts +198 -0
  349. package/objects/LRoomShapeToRectangles.ts +44 -0
  350. package/objects/callbackRegisterFunctions.ts +187 -0
  351. package/objects/cardDescriptions.ts +105 -0
  352. package/objects/cardNames.ts +105 -0
  353. package/objects/cardTypes.ts +104 -0
  354. package/objects/challengeNames.ts +52 -0
  355. package/objects/characterNames.ts +48 -0
  356. package/objects/coinSubTypeToValue.ts +14 -0
  357. package/objects/colors.ts +16 -0
  358. package/objects/directionNames.ts +11 -0
  359. package/objects/directionToDegrees.ts +11 -0
  360. package/objects/directionToVector.ts +12 -0
  361. package/objects/doorSlotFlagToDoorSlot.ts +16 -0
  362. package/objects/doorSlotToDirection.ts +14 -0
  363. package/objects/isaacAPIClassTypeToBrand.ts +11 -0
  364. package/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
  365. package/objects/languageNames.ts +13 -0
  366. package/objects/oppositeDoorSlots.ts +15 -0
  367. package/objects/pillEffectClasses.ts +63 -0
  368. package/objects/pillEffectNames.ts +57 -0
  369. package/objects/pillEffectTypes.ts +62 -0
  370. package/objects/roomShapeBounds.ts +71 -0
  371. package/objects/roomShapeLayoutSizes.ts +45 -0
  372. package/objects/roomShapeToBottomRightPosition.ts +25 -0
  373. package/objects/roomShapeToDoorSlots.ts +83 -0
  374. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
  375. package/objects/roomShapeToGridWidth.ts +21 -0
  376. package/objects/roomShapeToTopLeftPosition.ts +26 -0
  377. package/objects/roomShapeVolumes.ts +38 -0
  378. package/objects/roomTypeNames.ts +36 -0
  379. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
  380. package/objects/stageTypeToLetter.ts +15 -0
  381. package/objects/transformationNames.d.ts +0 -1
  382. package/objects/transformationNames.lua +0 -1
  383. package/objects/transformationNames.ts +18 -0
  384. package/package.json +2 -2
  385. package/patchErrorFunctions.ts +92 -0
  386. package/sets/LRoomShapesSet.ts +8 -0
  387. package/sets/bossSets.ts +470 -0
  388. package/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
  389. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
  390. package/sets/charactersWithFreeDevilDealsSet.ts +4 -0
  391. package/sets/charactersWithNoRedHeartsSet.ts +17 -0
  392. package/sets/charactersWithNoSoulHeartsSet.ts +14 -0
  393. package/sets/chestPickupVariantsSet.ts +16 -0
  394. package/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
  395. package/sets/lostStyleCharactersSet.ts +13 -0
  396. package/sets/mineShaftRoomSubTypesSet.ts +10 -0
  397. package/sets/redHeartSubTypesSet.ts +7 -0
  398. package/sets/sinEntityTypesSet.ts +11 -0
  399. package/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
  400. package/sets/storyBossesSet.ts +17 -0
  401. package/types/AnyEntity.ts +12 -0
  402. package/types/AwaitingTextInput.d.ts +2 -0
  403. package/types/CollectibleIndex.d.ts +1 -1
  404. package/types/CollectibleIndex.ts +16 -0
  405. package/types/PickingUpItem.d.ts +3 -3
  406. package/types/PickingUpItem.ts +89 -0
  407. package/types/PlayerIndex.d.ts +1 -1
  408. package/types/PlayerIndex.ts +13 -0
  409. package/types/private/IsaacAPIClass.d.ts +1 -1
  410. package/types/private/IsaacAPIClass.ts +3 -0
  411. package/types/private/SerializedIsaacAPIClass.d.ts +1 -1
  412. package/types/private/SerializedIsaacAPIClass.ts +3 -0
  413. package/types/private/TSTLClass.d.ts +1 -1
  414. package/types/private/TSTLClass.ts +3 -0
  415. package/upgradeMod.d.ts +2 -2
  416. package/upgradeMod.lua +2 -2
  417. package/upgradeMod.ts +55 -0
@@ -0,0 +1,150 @@
1
+ import { DefaultMap } from "../classes/DefaultMap";
2
+ import { PlayerIndex } from "../types/PlayerIndex";
3
+ import { getPlayerIndex } from "./playerIndex";
4
+
5
+ /**
6
+ * Helper function to make using default maps with an index of `PlayerIndex` easier. Use this
7
+ * instead of the `DefaultMap.getAndSetDefault` method if you have a default map of this type.
8
+ *
9
+ * For example:
10
+ *
11
+ * ```ts
12
+ * const v = {
13
+ * run: {
14
+ * playersSpeedBoost: new DefaultMap<PlayerIndex, int>(0),
15
+ * },
16
+ * };
17
+ *
18
+ * function evaluateCacheSpeed(player: EntityPlayer) {
19
+ * player.MoveSpeed = defaultMapGetPlayer(v.run.playersSpeedBoost, player);
20
+ * }
21
+ * ```
22
+ */
23
+ export function defaultMapGetPlayer<V, A extends unknown[]>(
24
+ map: DefaultMap<PlayerIndex, V, A>,
25
+ player: EntityPlayer,
26
+ ...extraArgs: A
27
+ ): V {
28
+ const playerIndex = getPlayerIndex(player);
29
+ return map.getAndSetDefault(playerIndex, ...extraArgs);
30
+ }
31
+
32
+ /**
33
+ * Helper function to make using maps with an index of `PlayerIndex` easier. Use this instead of the
34
+ * `Map.set` method if you have a map of this type.
35
+ *
36
+ * Since `Map` and `DefaultMap` set values in the same way, this function is simply an alias for the
37
+ * `mapSetPlayer` helper function.
38
+ */
39
+ export function defaultMapSetPlayer<V>(
40
+ map: Map<PlayerIndex, V>,
41
+ player: EntityPlayer,
42
+ value: V,
43
+ ): void {
44
+ mapSetPlayer(map, player, value);
45
+ }
46
+
47
+ /**
48
+ * Helper function to make using maps with an index of `PlayerIndex` easier. Use this instead of the
49
+ * `Map.get` method if you have a map of this type.
50
+ *
51
+ * For example:
52
+ *
53
+ * ```ts
54
+ * const v = {
55
+ * run: {
56
+ * playersSpeedBoost: new Map<PlayerIndex, int>(),
57
+ * },
58
+ * };
59
+ *
60
+ * function incrementSpeedBoost(player: EntityPlayer) {
61
+ * const oldSpeedBoost = mapGetPlayer(v.run.playersSpeedBoost, player);
62
+ * const newSpeedBoost = oldSpeedBoost + 0.1;
63
+ * mapSetPlayer(v.run.playersSpeedBoost, player);
64
+ * }
65
+ * ```
66
+ */
67
+ export function mapGetPlayer<V>(
68
+ map: Map<PlayerIndex, V>,
69
+ player: EntityPlayer,
70
+ ): V | undefined {
71
+ const playerIndex = getPlayerIndex(player);
72
+ return map.get(playerIndex);
73
+ }
74
+
75
+ /**
76
+ * Helper function to make using maps with an index of `PlayerIndex` easier. Use this instead of the
77
+ * `Map.has` method if you have a map of this type.
78
+ */
79
+ export function mapHasPlayer<V>(
80
+ map: Map<PlayerIndex, V>,
81
+ player: EntityPlayer,
82
+ ): boolean {
83
+ const playerIndex = getPlayerIndex(player);
84
+ return map.has(playerIndex);
85
+ }
86
+
87
+ /**
88
+ * Helper function to make using maps with an index of `PlayerIndex` easier. Use this instead of the
89
+ * `Map.set` method if you have a map of this type.
90
+ *
91
+ * For example:
92
+ *
93
+ * ```ts
94
+ * const v = {
95
+ * run: {
96
+ * playersSpeedBoost: new Map<PlayerIndex, int>(),
97
+ * },
98
+ * };
99
+ *
100
+ * function incrementSpeedBoost(player: EntityPlayer) {
101
+ * const oldSpeedBoost = mapGetPlayer(v.run.playersSpeedBoost, player);
102
+ * const newSpeedBoost = oldSpeedBoost + 0.1;
103
+ * mapSetPlayer(v.run.playersSpeedBoost, player);
104
+ * }
105
+ * ```
106
+ */
107
+ export function mapSetPlayer<V>(
108
+ map: Map<PlayerIndex, V>,
109
+ player: EntityPlayer,
110
+ value: V,
111
+ ): void {
112
+ const playerIndex = getPlayerIndex(player);
113
+ map.set(playerIndex, value);
114
+ }
115
+
116
+ /**
117
+ * Helper function to make using sets with an type of `PlayerIndex` easier. Use this instead of the
118
+ * `Set.add` method if you have a set of this type.
119
+ */
120
+ export function setAddPlayer(
121
+ set: Set<PlayerIndex>,
122
+ player: EntityPlayer,
123
+ ): Set<PlayerIndex> {
124
+ const playerIndex = getPlayerIndex(player);
125
+ return set.add(playerIndex);
126
+ }
127
+
128
+ /**
129
+ * Helper function to make using sets with an type of `PlayerIndex` easier. Use this instead of the
130
+ * `Set.delete` method if you have a set of this type.
131
+ */
132
+ export function setDeletePlayer(
133
+ set: Set<PlayerIndex>,
134
+ player: EntityPlayer,
135
+ ): boolean {
136
+ const playerIndex = getPlayerIndex(player);
137
+ return set.delete(playerIndex);
138
+ }
139
+
140
+ /**
141
+ * Helper function to make using sets with an type of `PlayerIndex` easier. Use this instead of the
142
+ * `Set.has` method if you have a set of this type.
143
+ */
144
+ export function setHasPlayer(
145
+ set: Set<PlayerIndex>,
146
+ player: EntityPlayer,
147
+ ): boolean {
148
+ const playerIndex = getPlayerIndex(player);
149
+ return set.has(playerIndex);
150
+ }
@@ -12,6 +12,8 @@ export declare function addPlayerHealthType(player: EntityPlayer, healthType: He
12
12
  */
13
13
  export declare function getPlayerHealth(player: EntityPlayer): PlayerHealth;
14
14
  export declare function getPlayerHealthType(player: EntityPlayer, healthType: HealthType): int;
15
+ /** Returns a `PlayerHealth` object with all 0s. */
16
+ export declare function newPlayerHealth(): PlayerHealth;
15
17
  export declare function playerConvertBlackHeartsToSoulHearts(player: EntityPlayer): void;
16
18
  export declare function playerConvertSoulHeartsToBlackHearts(player: EntityPlayer): void;
17
19
  export declare function removeAllPlayerHealth(player: EntityPlayer): void;
@@ -3,19 +3,25 @@ local __TS__ArrayMap = ____lualib.__TS__ArrayMap
3
3
  local __TS__ArrayForEach = ____lualib.__TS__ArrayForEach
4
4
  local ____exports = {}
5
5
  local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
6
+ local ActiveSlot = ____isaac_2Dtypescript_2Ddefinitions.ActiveSlot
7
+ local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
6
8
  local HeartSubType = ____isaac_2Dtypescript_2Ddefinitions.HeartSubType
7
9
  local PlayerType = ____isaac_2Dtypescript_2Ddefinitions.PlayerType
8
10
  local ____constants = require("constants")
9
11
  local MAX_PLAYER_HEART_CONTAINERS = ____constants.MAX_PLAYER_HEART_CONTAINERS
10
12
  local ____HealthType = require("enums.HealthType")
11
13
  local HealthType = ____HealthType.HealthType
14
+ local ____charge = require("functions.charge")
15
+ local getTotalCharge = ____charge.getTotalCharge
16
+ local ____enums = require("functions.enums")
17
+ local getEnumValues = ____enums.getEnumValues
12
18
  local ____player = require("functions.player")
13
19
  local getPlayerBlackHearts = ____player.getPlayerBlackHearts
14
20
  local getPlayerHearts = ____player.getPlayerHearts
15
21
  local getPlayerSoulHearts = ____player.getPlayerSoulHearts
16
22
  local isCharacter = ____player.isCharacter
23
+ local setActiveItem = ____player.setActiveItem
17
24
  local ____utils = require("functions.utils")
18
- local ensureAllCases = ____utils.ensureAllCases
19
25
  local ____repeat = ____utils["repeat"]
20
26
  function ____exports.removeAllPlayerHealth(self, player)
21
27
  local goldenHearts = player:GetGoldenHearts()
@@ -45,6 +51,17 @@ function ____exports.setPlayerHealth(self, player, playerHealth)
45
51
  local character = player:GetPlayerType()
46
52
  local subPlayer = player:GetSubPlayer()
47
53
  ____exports.removeAllPlayerHealth(nil, player)
54
+ local alabasterBoxes = {}
55
+ if player:HasCollectible(CollectibleType.ALABASTER_BOX) then
56
+ for ____, activeSlot in ipairs(getEnumValues(nil, ActiveSlot)) do
57
+ local activeItem = player:GetActiveItem()
58
+ if activeItem == CollectibleType.ALABASTER_BOX then
59
+ local totalCharge = getTotalCharge(nil, player, activeSlot)
60
+ setActiveItem(nil, player, CollectibleType.NULL, activeSlot)
61
+ alabasterBoxes[#alabasterBoxes + 1] = {activeSlot, totalCharge}
62
+ end
63
+ end
64
+ end
48
65
  if character == PlayerType.THE_SOUL and subPlayer ~= nil then
49
66
  subPlayer:AddMaxHearts(playerHealth.maxHearts, false)
50
67
  else
@@ -89,6 +106,17 @@ function ____exports.setPlayerHealth(self, player, playerHealth)
89
106
  elseif character == PlayerType.BETHANY_B then
90
107
  player:SetBloodCharge(playerHealth.bloodCharges)
91
108
  end
109
+ for ____, ____value in ipairs(alabasterBoxes) do
110
+ local activeSlot = ____value[1]
111
+ local totalCharge = ____value[2]
112
+ setActiveItem(
113
+ nil,
114
+ player,
115
+ CollectibleType.ALABASTER_BOX,
116
+ activeSlot,
117
+ totalCharge
118
+ )
119
+ end
92
120
  end
93
121
  function ____exports.addPlayerHealthType(self, player, healthType, numHearts)
94
122
  repeat
@@ -97,68 +125,63 @@ function ____exports.addPlayerHealthType(self, player, healthType, numHearts)
97
125
  if ____cond3 then
98
126
  do
99
127
  player:AddHearts(numHearts)
100
- return
128
+ break
101
129
  end
102
130
  end
103
131
  ____cond3 = ____cond3 or ____switch3 == HealthType.SOUL
104
132
  if ____cond3 then
105
133
  do
106
134
  player:AddSoulHearts(numHearts)
107
- return
135
+ break
108
136
  end
109
137
  end
110
138
  ____cond3 = ____cond3 or ____switch3 == HealthType.ETERNAL
111
139
  if ____cond3 then
112
140
  do
113
141
  player:AddEternalHearts(numHearts)
114
- return
142
+ break
115
143
  end
116
144
  end
117
145
  ____cond3 = ____cond3 or ____switch3 == HealthType.BLACK
118
146
  if ____cond3 then
119
147
  do
120
148
  player:AddBlackHearts(numHearts)
121
- return
149
+ break
122
150
  end
123
151
  end
124
152
  ____cond3 = ____cond3 or ____switch3 == HealthType.GOLDEN
125
153
  if ____cond3 then
126
154
  do
127
155
  player:AddGoldenHearts(numHearts)
128
- return
156
+ break
129
157
  end
130
158
  end
131
159
  ____cond3 = ____cond3 or ____switch3 == HealthType.BONE
132
160
  if ____cond3 then
133
161
  do
134
162
  player:AddBoneHearts(numHearts)
135
- return
163
+ break
136
164
  end
137
165
  end
138
166
  ____cond3 = ____cond3 or ____switch3 == HealthType.ROTTEN
139
167
  if ____cond3 then
140
168
  do
141
169
  player:AddRottenHearts(numHearts)
142
- return
170
+ break
143
171
  end
144
172
  end
145
173
  ____cond3 = ____cond3 or ____switch3 == HealthType.BROKEN
146
174
  if ____cond3 then
147
175
  do
148
176
  player:AddBrokenHearts(numHearts)
149
- return
177
+ break
150
178
  end
151
179
  end
152
180
  ____cond3 = ____cond3 or ____switch3 == HealthType.MAX_HEARTS
153
181
  if ____cond3 then
154
182
  do
155
183
  player:AddMaxHearts(numHearts, false)
156
- return
157
- end
158
- end
159
- do
160
- do
161
- ensureAllCases(nil, healthType)
184
+ break
162
185
  end
163
186
  end
164
187
  until true
@@ -232,68 +255,79 @@ function ____exports.getPlayerHealth(self, player)
232
255
  end
233
256
  function ____exports.getPlayerHealthType(self, player, healthType)
234
257
  repeat
235
- local ____switch25 = healthType
236
- local ____cond25 = ____switch25 == HealthType.RED
237
- if ____cond25 then
258
+ local ____switch24 = healthType
259
+ local ____cond24 = ____switch24 == HealthType.RED
260
+ if ____cond24 then
238
261
  do
239
262
  return getPlayerHearts(nil, player)
240
263
  end
241
264
  end
242
- ____cond25 = ____cond25 or ____switch25 == HealthType.SOUL
243
- if ____cond25 then
265
+ ____cond24 = ____cond24 or ____switch24 == HealthType.SOUL
266
+ if ____cond24 then
244
267
  do
245
268
  return getPlayerSoulHearts(nil, player)
246
269
  end
247
270
  end
248
- ____cond25 = ____cond25 or ____switch25 == HealthType.ETERNAL
249
- if ____cond25 then
271
+ ____cond24 = ____cond24 or ____switch24 == HealthType.ETERNAL
272
+ if ____cond24 then
250
273
  do
251
274
  return player:GetEternalHearts()
252
275
  end
253
276
  end
254
- ____cond25 = ____cond25 or ____switch25 == HealthType.BLACK
255
- if ____cond25 then
277
+ ____cond24 = ____cond24 or ____switch24 == HealthType.BLACK
278
+ if ____cond24 then
256
279
  do
257
280
  return getPlayerBlackHearts(nil, player)
258
281
  end
259
282
  end
260
- ____cond25 = ____cond25 or ____switch25 == HealthType.GOLDEN
261
- if ____cond25 then
283
+ ____cond24 = ____cond24 or ____switch24 == HealthType.GOLDEN
284
+ if ____cond24 then
262
285
  do
263
286
  return player:GetGoldenHearts()
264
287
  end
265
288
  end
266
- ____cond25 = ____cond25 or ____switch25 == HealthType.BONE
267
- if ____cond25 then
289
+ ____cond24 = ____cond24 or ____switch24 == HealthType.BONE
290
+ if ____cond24 then
268
291
  do
269
292
  return player:GetBoneHearts()
270
293
  end
271
294
  end
272
- ____cond25 = ____cond25 or ____switch25 == HealthType.ROTTEN
273
- if ____cond25 then
295
+ ____cond24 = ____cond24 or ____switch24 == HealthType.ROTTEN
296
+ if ____cond24 then
274
297
  do
275
298
  return player:GetRottenHearts()
276
299
  end
277
300
  end
278
- ____cond25 = ____cond25 or ____switch25 == HealthType.BROKEN
279
- if ____cond25 then
301
+ ____cond24 = ____cond24 or ____switch24 == HealthType.BROKEN
302
+ if ____cond24 then
280
303
  do
281
304
  return player:GetBrokenHearts()
282
305
  end
283
306
  end
284
- ____cond25 = ____cond25 or ____switch25 == HealthType.MAX_HEARTS
285
- if ____cond25 then
307
+ ____cond24 = ____cond24 or ____switch24 == HealthType.MAX_HEARTS
308
+ if ____cond24 then
286
309
  do
287
310
  return player:GetMaxHearts()
288
311
  end
289
312
  end
290
- do
291
- do
292
- return ensureAllCases(nil, healthType)
293
- end
294
- end
295
313
  until true
296
314
  end
315
+ --- Returns a `PlayerHealth` object with all 0s.
316
+ function ____exports.newPlayerHealth(self)
317
+ return {
318
+ maxHearts = 0,
319
+ hearts = 0,
320
+ eternalHearts = 0,
321
+ soulHearts = 0,
322
+ boneHearts = 0,
323
+ goldenHearts = 0,
324
+ rottenHearts = 0,
325
+ brokenHearts = 0,
326
+ soulCharges = 0,
327
+ bloodCharges = 0,
328
+ soulHeartTypes = {}
329
+ }
330
+ end
297
331
  function ____exports.playerConvertBlackHeartsToSoulHearts(self, player)
298
332
  local playerHealth = ____exports.getPlayerHealth(nil, player)
299
333
  ____exports.removeAllPlayerHealth(nil, player)