isaacscript-common 3.17.0 → 4.0.2

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 (425) 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.lua +2 -1
  11. package/callbacks/postCursedTeleport.ts +185 -0
  12. package/callbacks/postCustomDoorEnter.lua +0 -7
  13. package/callbacks/postCustomDoorEnter.ts +292 -0
  14. package/callbacks/postDiceRoomActivated.ts +60 -0
  15. package/callbacks/postDoorRender.ts +26 -0
  16. package/callbacks/postDoorUpdate.ts +26 -0
  17. package/callbacks/postEffectInitLate.ts +36 -0
  18. package/callbacks/postEffectStateChanged.ts +43 -0
  19. package/callbacks/postEsauJr.lua +2 -1
  20. package/callbacks/postEsauJr.ts +109 -0
  21. package/callbacks/postFamiliarInitLate.ts +36 -0
  22. package/callbacks/postFamiliarStateChanged.ts +43 -0
  23. package/callbacks/postFlip.lua +4 -3
  24. package/callbacks/postFlip.ts +90 -0
  25. package/callbacks/postGreedModeWave.ts +41 -0
  26. package/callbacks/postGridEntity.ts +164 -0
  27. package/callbacks/postGridEntityCollision.ts +69 -0
  28. package/callbacks/postGridEntityRender.ts +26 -0
  29. package/callbacks/postHolyMantleRemoved.ts +55 -0
  30. package/callbacks/postItemDischarged.lua +4 -3
  31. package/callbacks/postItemDischarged.ts +154 -0
  32. package/callbacks/postKnifeInitLate.ts +36 -0
  33. package/callbacks/postLaserInitLate.ts +36 -0
  34. package/callbacks/postNPCInitLate.ts +36 -0
  35. package/callbacks/postNPCStateChanged.ts +42 -0
  36. package/callbacks/postNewRoomEarly.lua +2 -1
  37. package/callbacks/postNewRoomEarly.ts +96 -0
  38. package/callbacks/postPickupCollect.ts +48 -0
  39. package/callbacks/postPickupInitFirst.ts +70 -0
  40. package/callbacks/postPickupInitLate.ts +36 -0
  41. package/callbacks/postPickupStateChanged.ts +43 -0
  42. package/callbacks/postPitRender.ts +26 -0
  43. package/callbacks/postPitUpdate.ts +26 -0
  44. package/callbacks/postPlayerChangeHealth.ts +62 -0
  45. package/callbacks/postPlayerChangeType.ts +56 -0
  46. package/callbacks/postPlayerCollectible.ts +113 -0
  47. package/callbacks/postPlayerFatalDamage.ts +141 -0
  48. package/callbacks/postPlayerInitLate.ts +37 -0
  49. package/callbacks/postPlayerReordered.ts +142 -0
  50. package/callbacks/postPoopRender.ts +26 -0
  51. package/callbacks/postPoopUpdate.ts +26 -0
  52. package/callbacks/postPressurePlateRender.ts +26 -0
  53. package/callbacks/postPressurePlateUpdate.ts +26 -0
  54. package/callbacks/postProjectileInitLate.ts +36 -0
  55. package/callbacks/postPurchase.ts +64 -0
  56. package/callbacks/postRockRender.ts +26 -0
  57. package/callbacks/postRockUpdate.ts +26 -0
  58. package/callbacks/postRoomClearChanged.ts +57 -0
  59. package/callbacks/postSacrifice.lua +3 -2
  60. package/callbacks/postSacrifice.ts +64 -0
  61. package/callbacks/postSlotDestroyed.ts +92 -0
  62. package/callbacks/postSlotInitUpdate.ts +68 -0
  63. package/callbacks/postSlotRender.ts +69 -0
  64. package/callbacks/postSpikesRender.ts +26 -0
  65. package/callbacks/postSpikesUpdate.ts +26 -0
  66. package/callbacks/postTNTRender.ts +26 -0
  67. package/callbacks/postTNTUpdate.ts +26 -0
  68. package/callbacks/postTearInitLate.ts +36 -0
  69. package/callbacks/postTearInitVeryLate.ts +41 -0
  70. package/callbacks/postTransformation.ts +59 -0
  71. package/callbacks/postTrinketBreak.lua +3 -2
  72. package/callbacks/postTrinketBreak.ts +112 -0
  73. package/callbacks/preBerserkDeath.ts +49 -0
  74. package/callbacks/preNewLevel.ts +55 -0
  75. package/callbacks/reorderedCallbacks.lua +1 -0
  76. package/callbacks/reorderedCallbacks.ts +168 -0
  77. package/callbacks/subscriptions/postAmbushFinished.ts +32 -0
  78. package/callbacks/subscriptions/postAmbushStarted.ts +32 -0
  79. package/callbacks/subscriptions/postBombInitLate.ts +32 -0
  80. package/callbacks/subscriptions/postBoneExploded.ts +32 -0
  81. package/callbacks/subscriptions/postBoneSwing.ts +24 -0
  82. package/callbacks/subscriptions/postCollectibleInitFirst.ts +37 -0
  83. package/callbacks/subscriptions/postCursedTeleport.ts +24 -0
  84. package/callbacks/subscriptions/postCustomDoorEnter.ts +45 -0
  85. package/callbacks/subscriptions/postCustomRevive.ts +36 -0
  86. package/callbacks/subscriptions/postDiceRoomActivated.ts +38 -0
  87. package/callbacks/subscriptions/postDoorRender.ts +35 -0
  88. package/callbacks/subscriptions/postDoorUpdate.ts +35 -0
  89. package/callbacks/subscriptions/postEffectInitLate.ts +32 -0
  90. package/callbacks/subscriptions/postEffectStateChanged.ts +40 -0
  91. package/callbacks/subscriptions/postEsauJr.ts +24 -0
  92. package/callbacks/subscriptions/postFamiliarInitLate.ts +32 -0
  93. package/callbacks/subscriptions/postFamiliarStateChanged.ts +40 -0
  94. package/callbacks/subscriptions/postFirstEsauJr.ts +24 -0
  95. package/callbacks/subscriptions/postFirstFlip.ts +24 -0
  96. package/callbacks/subscriptions/postFlip.ts +22 -0
  97. package/callbacks/subscriptions/postGameStartedReordered.ts +24 -0
  98. package/callbacks/subscriptions/postGreedModeWave.ts +24 -0
  99. package/callbacks/subscriptions/postGridEntityBroken.ts +51 -0
  100. package/callbacks/subscriptions/postGridEntityCollision.ts +54 -0
  101. package/callbacks/subscriptions/postGridEntityInit.ts +51 -0
  102. package/callbacks/subscriptions/postGridEntityRemove.ts +52 -0
  103. package/callbacks/subscriptions/postGridEntityRender.ts +51 -0
  104. package/callbacks/subscriptions/postGridEntityStateChanged.ts +55 -0
  105. package/callbacks/subscriptions/postGridEntityUpdate.ts +51 -0
  106. package/callbacks/subscriptions/postHolyMantleRemoved.ts +48 -0
  107. package/callbacks/subscriptions/postItemDischarged.ts +43 -0
  108. package/callbacks/subscriptions/postItemPickup.ts +64 -0
  109. package/callbacks/subscriptions/postKnifeInitLate.ts +32 -0
  110. package/callbacks/subscriptions/postLaserInitLate.ts +32 -0
  111. package/callbacks/subscriptions/postNPCInitLate.ts +32 -0
  112. package/callbacks/subscriptions/postNPCStateChanged.ts +42 -0
  113. package/callbacks/subscriptions/postNewLevelReordered.ts +22 -0
  114. package/callbacks/subscriptions/postNewRoomEarly.ts +22 -0
  115. package/callbacks/subscriptions/postNewRoomReordered.ts +22 -0
  116. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +40 -0
  117. package/callbacks/subscriptions/postPickupCollect.ts +35 -0
  118. package/callbacks/subscriptions/postPickupInitFirst.ts +32 -0
  119. package/callbacks/subscriptions/postPickupInitLate.ts +32 -0
  120. package/callbacks/subscriptions/postPickupStateChanged.ts +40 -0
  121. package/callbacks/subscriptions/postPitRender.ts +35 -0
  122. package/callbacks/subscriptions/postPitUpdate.ts +35 -0
  123. package/callbacks/subscriptions/postPlayerChangeHealth.ts +49 -0
  124. package/callbacks/subscriptions/postPlayerChangeType.ts +40 -0
  125. package/callbacks/subscriptions/postPlayerCollectibleAdded.d.ts +2 -3
  126. package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -7
  127. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +38 -0
  128. package/callbacks/subscriptions/postPlayerCollectibleRemoved.d.ts +2 -3
  129. package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -7
  130. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +38 -0
  131. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +1 -1
  132. package/callbacks/subscriptions/postPlayerFatalDamage.ts +68 -0
  133. package/callbacks/subscriptions/postPlayerInitLate.ts +40 -0
  134. package/callbacks/subscriptions/postPlayerInitReordered.ts +40 -0
  135. package/callbacks/subscriptions/postPlayerRenderReordered.ts +40 -0
  136. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +40 -0
  137. package/callbacks/subscriptions/postPoopRender.ts +35 -0
  138. package/callbacks/subscriptions/postPoopUpdate.ts +35 -0
  139. package/callbacks/subscriptions/postPressurePlateRender.ts +37 -0
  140. package/callbacks/subscriptions/postPressurePlateUpdate.ts +37 -0
  141. package/callbacks/subscriptions/postProjectileInitLate.ts +35 -0
  142. package/callbacks/subscriptions/postPurchase.ts +31 -0
  143. package/callbacks/subscriptions/postRockRender.ts +35 -0
  144. package/callbacks/subscriptions/postRockUpdate.ts +35 -0
  145. package/callbacks/subscriptions/postRoomClearChanged.ts +30 -0
  146. package/callbacks/subscriptions/postSacrifice.ts +43 -0
  147. package/callbacks/subscriptions/postSlotAnimationChanged.ts +40 -0
  148. package/callbacks/subscriptions/postSlotDestroyed.ts +55 -0
  149. package/callbacks/subscriptions/postSlotInit.ts +32 -0
  150. package/callbacks/subscriptions/postSlotRender.ts +32 -0
  151. package/callbacks/subscriptions/postSlotUpdate.ts +32 -0
  152. package/callbacks/subscriptions/postSpikesRender.ts +35 -0
  153. package/callbacks/subscriptions/postSpikesUpdate.ts +35 -0
  154. package/callbacks/subscriptions/postTNTRender.ts +35 -0
  155. package/callbacks/subscriptions/postTNTUpdate.ts +35 -0
  156. package/callbacks/subscriptions/postTearInitLate.ts +32 -0
  157. package/callbacks/subscriptions/postTearInitVeryLate.ts +32 -0
  158. package/callbacks/subscriptions/postTransformation.ts +40 -0
  159. package/callbacks/subscriptions/postTrinketBreak.ts +38 -0
  160. package/callbacks/subscriptions/preBerserkDeath.d.ts +1 -1
  161. package/callbacks/subscriptions/preBerserkDeath.ts +42 -0
  162. package/callbacks/subscriptions/preCustomRevive.d.ts +1 -1
  163. package/callbacks/subscriptions/preCustomRevive.ts +46 -0
  164. package/callbacks/subscriptions/preItemPickup.ts +64 -0
  165. package/callbacks/subscriptions/preNewLevel.ts +24 -0
  166. package/classes/DefaultMap.ts +174 -0
  167. package/classes/ModUpgraded.d.ts +8 -4
  168. package/classes/ModUpgraded.lua +5 -8
  169. package/classes/ModUpgraded.ts +84 -0
  170. package/constants.ts +162 -0
  171. package/constantsFirstLast.ts +217 -0
  172. package/enums/AmbushType.ts +4 -0
  173. package/enums/HealthType.ts +16 -0
  174. package/enums/ModCallbackCustom.d.ts +20 -18
  175. package/enums/ModCallbackCustom.ts +1278 -0
  176. package/enums/PocketItemType.ts +8 -0
  177. package/enums/SerializationType.ts +5 -0
  178. package/enums/SlotDestructionType.ts +4 -0
  179. package/enums/private/CopyableIsaacAPIClassType.ts +7 -0
  180. package/enums/private/SaveDataKey.ts +14 -0
  181. package/enums/private/SerializationBrand.ts +42 -0
  182. package/features/characterHealthConversion.lua +2 -9
  183. package/features/characterHealthConversion.ts +111 -0
  184. package/features/characterStats.ts +61 -0
  185. package/features/debugDisplay/debugDisplay.ts +221 -0
  186. package/features/debugDisplay/exports.ts +368 -0
  187. package/features/debugDisplay/v.ts +65 -0
  188. package/features/deployJSONRoom.ts +743 -0
  189. package/features/disableInputs.ts +193 -0
  190. package/features/disableSound.ts +77 -0
  191. package/features/extraConsoleCommands/commandsDisplay.ts +290 -0
  192. package/features/extraConsoleCommands/commandsSubroutines.lua +1 -1
  193. package/features/extraConsoleCommands/commandsSubroutines.ts +139 -0
  194. package/features/extraConsoleCommands/init.ts +334 -0
  195. package/features/extraConsoleCommands/listCommands.ts +1299 -0
  196. package/features/extraConsoleCommands/v.ts +14 -0
  197. package/features/fadeInRemover.ts +60 -0
  198. package/features/fastReset.ts +75 -0
  199. package/features/forgottenSwitch.ts +50 -0
  200. package/features/getCollectibleItemPoolType.ts +66 -0
  201. package/features/persistentEntities.ts +183 -0
  202. package/features/playerInventory.lua +1 -0
  203. package/features/playerInventory.ts +135 -0
  204. package/features/ponyDetection.ts +74 -0
  205. package/features/preventCollectibleRotation.ts +115 -0
  206. package/features/runInNFrames.ts +148 -0
  207. package/features/saveDataManager/constants.ts +4 -0
  208. package/features/saveDataManager/exports.ts +229 -0
  209. package/features/saveDataManager/load.ts +99 -0
  210. package/features/saveDataManager/main.ts +195 -0
  211. package/features/saveDataManager/maps.ts +13 -0
  212. package/features/saveDataManager/merge.ts +194 -0
  213. package/features/saveDataManager/save.ts +74 -0
  214. package/features/saveDataManager/serializationBrand.ts +16 -0
  215. package/features/sirenHelpers.ts +129 -0
  216. package/features/taintedLazarusPlayers.ts +113 -0
  217. package/featuresInitialized.ts +20 -0
  218. package/functions/ambush.ts +47 -0
  219. package/functions/array.ts +410 -0
  220. package/functions/benchmark.ts +36 -0
  221. package/functions/bitwise.ts +24 -0
  222. package/functions/bombs.ts +12 -0
  223. package/functions/boss.ts +227 -0
  224. package/functions/cacheFlag.ts +12 -0
  225. package/functions/cards.lua +1 -1
  226. package/functions/cards.ts +271 -0
  227. package/functions/challenges.ts +13 -0
  228. package/functions/character.ts +126 -0
  229. package/functions/charge.ts +237 -0
  230. package/functions/chargeBar.ts +67 -0
  231. package/functions/collectibleCacheFlag.ts +90 -0
  232. package/functions/collectibleSet.ts +56 -0
  233. package/functions/collectibleTag.ts +89 -0
  234. package/functions/collectibles.ts +659 -0
  235. package/functions/color.d.ts +1 -1
  236. package/functions/color.lua +0 -7
  237. package/functions/color.ts +128 -0
  238. package/functions/debug.lua +2 -2
  239. package/functions/debug.ts +68 -0
  240. package/functions/deepCopy.lua +46 -51
  241. package/functions/deepCopy.ts +535 -0
  242. package/functions/deepCopyTests.ts +386 -0
  243. package/functions/direction.ts +49 -0
  244. package/functions/doors.lua +1 -2
  245. package/functions/doors.ts +347 -0
  246. package/functions/easing.ts +182 -0
  247. package/functions/eden.ts +47 -0
  248. package/functions/effects.ts +20 -0
  249. package/functions/entity.ts +439 -0
  250. package/functions/entitySpecific.ts +889 -0
  251. package/functions/entityTypes.ts +6 -0
  252. package/functions/enums.ts +146 -0
  253. package/functions/familiars.ts +106 -0
  254. package/functions/flag.ts +165 -0
  255. package/functions/flying.ts +117 -0
  256. package/functions/globals.d.ts +3 -3
  257. package/functions/globals.lua +8 -2
  258. package/functions/globals.ts +242 -0
  259. package/functions/gridEntity.ts +511 -0
  260. package/functions/gridEntitySpecific.ts +112 -0
  261. package/functions/input.ts +139 -0
  262. package/functions/isaacAPIClass.ts +67 -0
  263. package/functions/jsonHelpers.ts +45 -0
  264. package/functions/jsonRoom.ts +100 -0
  265. package/functions/kColor.d.ts +1 -1
  266. package/functions/kColor.lua +0 -7
  267. package/functions/kColor.ts +129 -0
  268. package/functions/language.ts +13 -0
  269. package/functions/level.ts +31 -0
  270. package/functions/log.ts +720 -0
  271. package/functions/map.ts +56 -0
  272. package/functions/math.ts +149 -0
  273. package/functions/mergeTests.ts +288 -0
  274. package/functions/npc.ts +148 -0
  275. package/functions/pickupVariants.ts +60 -0
  276. package/functions/pickups.ts +499 -0
  277. package/functions/pills.lua +1 -1
  278. package/functions/pills.ts +205 -0
  279. package/functions/player.lua +9 -20
  280. package/functions/player.ts +1056 -0
  281. package/functions/playerDataStructures.ts +150 -0
  282. package/functions/playerHealth.lua +28 -39
  283. package/functions/playerHealth.ts +382 -0
  284. package/functions/playerIndex.ts +195 -0
  285. package/functions/pocketItems.ts +149 -0
  286. package/functions/positionVelocity.ts +188 -0
  287. package/functions/random.ts +77 -0
  288. package/functions/revive.ts +201 -0
  289. package/functions/rng.d.ts +1 -1
  290. package/functions/rng.lua +0 -7
  291. package/functions/rng.ts +172 -0
  292. package/functions/roomData.ts +199 -0
  293. package/functions/roomGrid.ts +109 -0
  294. package/functions/roomShape.ts +80 -0
  295. package/functions/rooms.lua +1 -3
  296. package/functions/rooms.ts +648 -0
  297. package/functions/run.ts +36 -0
  298. package/functions/saveFile.ts +128 -0
  299. package/functions/seeds.ts +19 -0
  300. package/functions/serialization.lua +0 -3
  301. package/functions/serialization.ts +91 -0
  302. package/functions/set.ts +95 -0
  303. package/functions/sound.ts +9 -0
  304. package/functions/spawnCollectible.ts +104 -0
  305. package/functions/sprite.ts +107 -0
  306. package/functions/stage.ts +125 -0
  307. package/functions/string.ts +47 -0
  308. package/functions/table.ts +189 -0
  309. package/functions/tears.ts +32 -0
  310. package/functions/transformations.lua +1 -3
  311. package/functions/transformations.ts +131 -0
  312. package/functions/trinketCacheFlag.ts +60 -0
  313. package/functions/trinketGive.ts +157 -0
  314. package/functions/trinkets.ts +215 -0
  315. package/functions/tstlClass.ts +157 -0
  316. package/functions/types.ts +36 -0
  317. package/functions/ui.ts +138 -0
  318. package/functions/utils.d.ts +0 -37
  319. package/functions/utils.lua +0 -35
  320. package/functions/utils.ts +189 -0
  321. package/functions/vector.d.ts +1 -1
  322. package/functions/vector.lua +0 -7
  323. package/functions/vector.ts +126 -0
  324. package/index.ts +172 -0
  325. package/initCustomCallbacks.ts +132 -0
  326. package/initFeatures.ts +39 -0
  327. package/interfaces/AddCallbackParameterCustom.ts +188 -0
  328. package/interfaces/ChargeBarSprites.ts +12 -0
  329. package/interfaces/JSONDoor.d.ts +4 -4
  330. package/interfaces/JSONDoor.ts +13 -0
  331. package/interfaces/JSONEntity.d.ts +5 -5
  332. package/interfaces/JSONEntity.ts +16 -0
  333. package/interfaces/JSONRoom.d.ts +9 -9
  334. package/interfaces/JSONRoom.ts +36 -0
  335. package/interfaces/JSONRooms.ts +12 -0
  336. package/interfaces/JSONSpawn.d.ts +3 -3
  337. package/interfaces/JSONSpawn.ts +14 -0
  338. package/interfaces/PlayerHealth.ts +16 -0
  339. package/interfaces/PocketItemDescription.ts +9 -0
  340. package/interfaces/SaveData.ts +29 -0
  341. package/interfaces/TrinketSituation.ts +9 -0
  342. package/interfaces/private/TSTLClassMetatable.ts +8 -0
  343. package/maps/PHDPillConversions.ts +21 -0
  344. package/maps/cardMap.ts +209 -0
  345. package/maps/characterMap.ts +87 -0
  346. package/maps/collectibleDescriptionMap.ts +732 -0
  347. package/maps/collectibleNameMap.ts +731 -0
  348. package/maps/defaultPlayerStatMap.ts +17 -0
  349. package/maps/falsePHDPillConversions.ts +35 -0
  350. package/maps/gridEntityTypeToBrokenStateMap.ts +50 -0
  351. package/maps/gridEntityXMLMap.ts +176 -0
  352. package/maps/pillEffectMap.ts +88 -0
  353. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +18 -0
  354. package/maps/roomTypeMap.ts +40 -0
  355. package/maps/trinketDescriptionMap.ts +200 -0
  356. package/maps/trinketNameMap.ts +198 -0
  357. package/objects/LRoomShapeToRectangles.ts +44 -0
  358. package/objects/callbackRegisterFunctions.ts +187 -0
  359. package/objects/cardDescriptions.ts +105 -0
  360. package/objects/cardNames.ts +105 -0
  361. package/objects/cardTypes.ts +104 -0
  362. package/objects/challengeNames.ts +52 -0
  363. package/objects/characterNames.ts +48 -0
  364. package/objects/coinSubTypeToValue.ts +14 -0
  365. package/objects/colors.ts +16 -0
  366. package/objects/directionNames.ts +11 -0
  367. package/objects/directionToDegrees.ts +11 -0
  368. package/objects/directionToVector.ts +12 -0
  369. package/objects/doorSlotFlagToDoorSlot.ts +16 -0
  370. package/objects/doorSlotToDirection.ts +14 -0
  371. package/objects/isaacAPIClassTypeToBrand.ts +11 -0
  372. package/objects/isaacAPIClassTypeToCopyFunction.ts +18 -0
  373. package/objects/languageNames.ts +13 -0
  374. package/objects/oppositeDoorSlots.ts +15 -0
  375. package/objects/pillEffectClasses.ts +63 -0
  376. package/objects/pillEffectNames.ts +57 -0
  377. package/objects/pillEffectTypes.ts +62 -0
  378. package/objects/roomShapeBounds.ts +71 -0
  379. package/objects/roomShapeLayoutSizes.ts +45 -0
  380. package/objects/roomShapeToBottomRightPosition.ts +25 -0
  381. package/objects/roomShapeToDoorSlots.ts +83 -0
  382. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +127 -0
  383. package/objects/roomShapeToGridWidth.ts +21 -0
  384. package/objects/roomShapeToTopLeftPosition.ts +26 -0
  385. package/objects/roomShapeVolumes.ts +38 -0
  386. package/objects/roomTypeNames.ts +36 -0
  387. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +14 -0
  388. package/objects/stageTypeToLetter.ts +15 -0
  389. package/objects/transformationNames.d.ts +0 -1
  390. package/objects/transformationNames.lua +0 -1
  391. package/objects/transformationNames.ts +18 -0
  392. package/package.json +2 -2
  393. package/patchErrorFunctions.ts +92 -0
  394. package/sets/LRoomShapesSet.ts +8 -0
  395. package/sets/bossSets.ts +470 -0
  396. package/sets/charactersThatStartWithAnActiveItemSet.ts +16 -0
  397. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +7 -0
  398. package/sets/charactersWithFreeDevilDealsSet.ts +4 -0
  399. package/sets/charactersWithNoRedHeartsSet.ts +17 -0
  400. package/sets/charactersWithNoSoulHeartsSet.ts +14 -0
  401. package/sets/chestPickupVariantsSet.ts +16 -0
  402. package/sets/familiarsThatShootPlayerTearsSet.ts +13 -0
  403. package/sets/lostStyleCharactersSet.ts +13 -0
  404. package/sets/mineShaftRoomSubTypesSet.ts +10 -0
  405. package/sets/redHeartSubTypesSet.ts +7 -0
  406. package/sets/sinEntityTypesSet.ts +11 -0
  407. package/sets/singleUseActiveCollectibleTypesSet.ts +13 -0
  408. package/sets/storyBossesSet.ts +17 -0
  409. package/types/AnyEntity.ts +12 -0
  410. package/types/AwaitingTextInput.d.ts +2 -0
  411. package/types/CollectibleIndex.d.ts +1 -1
  412. package/types/CollectibleIndex.ts +16 -0
  413. package/types/PickingUpItem.d.ts +3 -3
  414. package/types/PickingUpItem.ts +89 -0
  415. package/types/PlayerIndex.d.ts +1 -1
  416. package/types/PlayerIndex.ts +13 -0
  417. package/types/private/IsaacAPIClass.d.ts +1 -1
  418. package/types/private/IsaacAPIClass.ts +3 -0
  419. package/types/private/SerializedIsaacAPIClass.d.ts +1 -1
  420. package/types/private/SerializedIsaacAPIClass.ts +3 -0
  421. package/types/private/TSTLClass.d.ts +1 -1
  422. package/types/private/TSTLClass.ts +3 -0
  423. package/upgradeMod.d.ts +2 -2
  424. package/upgradeMod.lua +2 -2
  425. package/upgradeMod.ts +55 -0
@@ -0,0 +1,39 @@
1
+ import { ModUpgraded } from "./classes/ModUpgraded";
2
+ import { characterHealthConversionInit } from "./features/characterHealthConversion";
3
+ import { characterStatsInit } from "./features/characterStats";
4
+ import { deployJSONRoomInit } from "./features/deployJSONRoom";
5
+ import { disableInputsInit } from "./features/disableInputs";
6
+ import { disableSoundsInit } from "./features/disableSound";
7
+ import { fadeInRemoverInit } from "./features/fadeInRemover";
8
+ import { fastResetInit } from "./features/fastReset";
9
+ import { forgottenSwitchInit } from "./features/forgottenSwitch";
10
+ import { getCollectibleItemPoolTypeInit } from "./features/getCollectibleItemPoolType";
11
+ import { persistentEntitiesInit } from "./features/persistentEntities";
12
+ import { playerInventoryInit } from "./features/playerInventory";
13
+ import { ponyDetectionInit } from "./features/ponyDetection";
14
+ import { preventCollectibleRotationInit } from "./features/preventCollectibleRotation";
15
+ import { runInNFramesInit } from "./features/runInNFrames";
16
+ import { sirenHelpersInit } from "./features/sirenHelpers";
17
+ import { taintedLazarusPlayersInit } from "./features/taintedLazarusPlayers";
18
+
19
+ export function initFeaturesMajor(mod: ModUpgraded): void {
20
+ deployJSONRoomInit(mod);
21
+ runInNFramesInit(mod);
22
+ characterStatsInit(mod);
23
+ characterHealthConversionInit(mod);
24
+ }
25
+
26
+ export function initFeaturesMinor(mod: ModUpgraded): void {
27
+ disableInputsInit(mod);
28
+ disableSoundsInit(mod);
29
+ fadeInRemoverInit(mod);
30
+ fastResetInit(mod);
31
+ forgottenSwitchInit(mod);
32
+ getCollectibleItemPoolTypeInit(mod);
33
+ persistentEntitiesInit(mod);
34
+ playerInventoryInit(mod);
35
+ ponyDetectionInit(mod);
36
+ preventCollectibleRotationInit(mod);
37
+ sirenHelpersInit(mod);
38
+ taintedLazarusPlayersInit(mod);
39
+ }
@@ -0,0 +1,188 @@
1
+ import { PostAmbushFinishedRegisterParameters } from "../callbacks/subscriptions/postAmbushFinished";
2
+ import { PostAmbushStartedRegisterParameters } from "../callbacks/subscriptions/postAmbushStarted";
3
+ import { PostBombInitRegisterParameters } from "../callbacks/subscriptions/postBombInitLate";
4
+ import { PostBombExplodedRegisterParameters } from "../callbacks/subscriptions/postBoneExploded";
5
+ import { PostBoneSwingRegisterParameters } from "../callbacks/subscriptions/postBoneSwing";
6
+ import { PostCollectibleInitFirstRegisterParameters } from "../callbacks/subscriptions/postCollectibleInitFirst";
7
+ import { PostCursedTeleportRegisterParameters } from "../callbacks/subscriptions/postCursedTeleport";
8
+ import { PostCustomDoorEnterRegisterParameters } from "../callbacks/subscriptions/postCustomDoorEnter";
9
+ import { PostCustomReviveRegisterParameters } from "../callbacks/subscriptions/postCustomRevive";
10
+ import { PostDiceRoomActivatedRegisterParameters } from "../callbacks/subscriptions/postDiceRoomActivated";
11
+ import { PostDoorRenderRegisterParameters } from "../callbacks/subscriptions/postDoorRender";
12
+ import { PostDoorUpdateRegisterParameters } from "../callbacks/subscriptions/postDoorUpdate";
13
+ import { PostEffectInitLateRegisterParameters } from "../callbacks/subscriptions/postEffectInitLate";
14
+ import { PostEffectStateChangedRegisterParameters } from "../callbacks/subscriptions/postEffectStateChanged";
15
+ import { PostEsauJrRegisterParameters } from "../callbacks/subscriptions/postEsauJr";
16
+ import { PostFamiliarInitLateRegisterParameters } from "../callbacks/subscriptions/postFamiliarInitLate";
17
+ import { PostFamiliarStateChangedRegisterParameters } from "../callbacks/subscriptions/postFamiliarStateChanged";
18
+ import { PostFirstEsauJrRegisterParameters } from "../callbacks/subscriptions/postFirstEsauJr";
19
+ import { PostFirstFlipRegisterParameters } from "../callbacks/subscriptions/postFirstFlip";
20
+ import { PostFlipRegisterParameters } from "../callbacks/subscriptions/postFlip";
21
+ import { PostGameStartedReorderedRegisterParameters } from "../callbacks/subscriptions/postGameStartedReordered";
22
+ import { PostGreedModeWaveRegisterParameters } from "../callbacks/subscriptions/postGreedModeWave";
23
+ import { PostGridEntityBrokenRegisterParameters } from "../callbacks/subscriptions/postGridEntityBroken";
24
+ import { PostGridEntityCollisionRegisterParameters } from "../callbacks/subscriptions/postGridEntityCollision";
25
+ import { PostGridEntityInitRegisterParameters } from "../callbacks/subscriptions/postGridEntityInit";
26
+ import { PostGridEntityRemoveRegisterParameters } from "../callbacks/subscriptions/postGridEntityRemove";
27
+ import { PostGridEntityRenderRegisterParameters } from "../callbacks/subscriptions/postGridEntityRender";
28
+ import { PostGridEntityStateChangedRegisterParameters } from "../callbacks/subscriptions/postGridEntityStateChanged";
29
+ import { PostGridEntityUpdateRegisterParameters } from "../callbacks/subscriptions/postGridEntityUpdate";
30
+ import { PostHolyMantleRemovedRegisterParameters } from "../callbacks/subscriptions/postHolyMantleRemoved";
31
+ import { PostItemDischargedRegisterParameters } from "../callbacks/subscriptions/postItemDischarged";
32
+ import { PostItemPickupRegisterParameters } from "../callbacks/subscriptions/postItemPickup";
33
+ import { PostKnifeInitLateRegisterParameters } from "../callbacks/subscriptions/postKnifeInitLate";
34
+ import { PostLaserInitLateRegisterParameters } from "../callbacks/subscriptions/postLaserInitLate";
35
+ import { PostNewLevelReorderedRegisterParameters } from "../callbacks/subscriptions/postNewLevelReordered";
36
+ import { PostNewRoomEarlyRegisterParameters } from "../callbacks/subscriptions/postNewRoomEarly";
37
+ import { PostNewRoomReorderedRegisterParameters } from "../callbacks/subscriptions/postNewRoomReordered";
38
+ import { PostNPCInitLateRegisterParameters } from "../callbacks/subscriptions/postNPCInitLate";
39
+ import { PostNPCStateChangedRegisterParameters } from "../callbacks/subscriptions/postNPCStateChanged";
40
+ import { PostPEffectUpdateReorderedRegisterParameters } from "../callbacks/subscriptions/postPEffectUpdateReordered";
41
+ import { PostPickupCollectRegisterParameters } from "../callbacks/subscriptions/postPickupCollect";
42
+ import { PostPickupInitFirstRegisterParameters } from "../callbacks/subscriptions/postPickupInitFirst";
43
+ import { PostPickupInitLateRegisterParameters } from "../callbacks/subscriptions/postPickupInitLate";
44
+ import { PostPickupStateChangedRegisterParameters } from "../callbacks/subscriptions/postPickupStateChanged";
45
+ import { PostPitRenderRegisterParameters } from "../callbacks/subscriptions/postPitRender";
46
+ import { PostPitUpdateRegisterParameters } from "../callbacks/subscriptions/postPitUpdate";
47
+ import { PostPlayerChangeHealthRegisterParameters } from "../callbacks/subscriptions/postPlayerChangeHealth";
48
+ import { PostPlayerChangeTypeRegisterParameters } from "../callbacks/subscriptions/postPlayerChangeType";
49
+ import { PostPlayerCollectibleAddedRegisterParameters } from "../callbacks/subscriptions/postPlayerCollectibleAdded";
50
+ import { PostPlayerCollectibleRemovedRegisterParameters } from "../callbacks/subscriptions/postPlayerCollectibleRemoved";
51
+ import { PostPlayerFatalDamageRegisterParameters } from "../callbacks/subscriptions/postPlayerFatalDamage";
52
+ import { PostPlayerInitLateRegisterParameters } from "../callbacks/subscriptions/postPlayerInitLate";
53
+ import { PostPlayerInitReorderedRegisterParameters } from "../callbacks/subscriptions/postPlayerInitReordered";
54
+ import { PostPlayerRenderReorderedRegisterParameters } from "../callbacks/subscriptions/postPlayerRenderReordered";
55
+ import { PostPlayerUpdateReorderedRegisterParameters } from "../callbacks/subscriptions/postPlayerUpdateReordered";
56
+ import { PostPoopRenderRegisterParameters } from "../callbacks/subscriptions/postPoopRender";
57
+ import { PostPoopUpdateRegisterParameters } from "../callbacks/subscriptions/postPoopUpdate";
58
+ import { PostPressurePlateRenderRegisterParameters } from "../callbacks/subscriptions/postPressurePlateRender";
59
+ import { PostPressurePlateUpdateRegisterParameters } from "../callbacks/subscriptions/postPressurePlateUpdate";
60
+ import { PostProjectileInitLateRegisterParameters } from "../callbacks/subscriptions/postProjectileInitLate";
61
+ import { PostPurchaseRegisterParameters } from "../callbacks/subscriptions/postPurchase";
62
+ import { PostRockRenderRegisterParameters } from "../callbacks/subscriptions/postRockRender";
63
+ import { PostRockUpdateRegisterParameters } from "../callbacks/subscriptions/postRockUpdate";
64
+ import { PostRoomClearChangedRegisterParameters } from "../callbacks/subscriptions/postRoomClearChanged";
65
+ import { PostSacrificeRegisterParameters } from "../callbacks/subscriptions/postSacrifice";
66
+ import { PostSlotAnimationChangedRegisterParameters } from "../callbacks/subscriptions/postSlotAnimationChanged";
67
+ import { PostSlotDestroyedRegisterParameters } from "../callbacks/subscriptions/postSlotDestroyed";
68
+ import { PostSlotInitRegisterParameters } from "../callbacks/subscriptions/postSlotInit";
69
+ import { PostSlotRenderRegisterParameters } from "../callbacks/subscriptions/postSlotRender";
70
+ import { PostSlotUpdateRegisterParameters } from "../callbacks/subscriptions/postSlotUpdate";
71
+ import { PostSpikesRenderRegisterParameters } from "../callbacks/subscriptions/postSpikesRender";
72
+ import { PostSpikesUpdateRegisterParameters } from "../callbacks/subscriptions/postSpikesUpdate";
73
+ import { PostTearInitLateRegisterParameters } from "../callbacks/subscriptions/postTearInitLate";
74
+ import { PostTearInitVeryLateRegisterParameters } from "../callbacks/subscriptions/postTearInitVeryLate";
75
+ import { PostTNTRenderRegisterParameters } from "../callbacks/subscriptions/postTNTRender";
76
+ import { PostTNTUpdateRegisterParameters } from "../callbacks/subscriptions/postTNTUpdate";
77
+ import { PostTransformationRegisterParameters } from "../callbacks/subscriptions/postTransformation";
78
+ import { PostTrinketBreakRegisterParameters } from "../callbacks/subscriptions/postTrinketBreak";
79
+ import { PreBerserkDeathRegisterParameters } from "../callbacks/subscriptions/preBerserkDeath";
80
+ import { PreCustomReviveRegisterParameters } from "../callbacks/subscriptions/preCustomRevive";
81
+ import { PreItemPickupRegisterParameters } from "../callbacks/subscriptions/preItemPickup";
82
+ import { PreNewLevelRegisterParameters } from "../callbacks/subscriptions/preNewLevel";
83
+ import { ModCallbackCustom } from "../enums/ModCallbackCustom";
84
+
85
+ export interface AddCallbackParameterCustom {
86
+ [ModCallbackCustom.POST_AMBUSH_FINISHED]: PostAmbushFinishedRegisterParameters;
87
+ [ModCallbackCustom.POST_AMBUSH_STARTED]: PostAmbushStartedRegisterParameters;
88
+ [ModCallbackCustom.POST_BOMB_EXPLODED]: PostBombExplodedRegisterParameters;
89
+ [ModCallbackCustom.POST_BOMB_INIT_LATE]: PostBombInitRegisterParameters;
90
+ [ModCallbackCustom.POST_BONE_SWING]: PostBoneSwingRegisterParameters;
91
+ [ModCallbackCustom.POST_COLLECTIBLE_INIT_FIRST]: PostCollectibleInitFirstRegisterParameters;
92
+ [ModCallbackCustom.POST_CURSED_TELEPORT]: PostCursedTeleportRegisterParameters;
93
+ [ModCallbackCustom.POST_CUSTOM_DOOR_ENTER]: PostCustomDoorEnterRegisterParameters;
94
+ [ModCallbackCustom.POST_CUSTOM_REVIVE]: PostCustomReviveRegisterParameters;
95
+ [ModCallbackCustom.POST_DICE_ROOM_ACTIVATED]: PostDiceRoomActivatedRegisterParameters;
96
+ [ModCallbackCustom.POST_DOOR_RENDER]: PostDoorRenderRegisterParameters;
97
+ [ModCallbackCustom.POST_DOOR_UPDATE]: PostDoorUpdateRegisterParameters;
98
+ [ModCallbackCustom.POST_EFFECT_INIT_LATE]: PostEffectInitLateRegisterParameters;
99
+ [ModCallbackCustom.POST_EFFECT_STATE_CHANGED]: PostEffectStateChangedRegisterParameters;
100
+ [ModCallbackCustom.POST_ESAU_JR]: PostEsauJrRegisterParameters;
101
+ [ModCallbackCustom.POST_FAMILIAR_INIT_LATE]: PostFamiliarInitLateRegisterParameters;
102
+ [ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED]: PostFamiliarStateChangedRegisterParameters;
103
+ [ModCallbackCustom.POST_FIRST_ESAU_JR]: PostFirstEsauJrRegisterParameters;
104
+ [ModCallbackCustom.POST_FIRST_FLIP]: PostFirstFlipRegisterParameters;
105
+ [ModCallbackCustom.POST_FLIP]: PostFlipRegisterParameters;
106
+ [ModCallbackCustom.POST_GAME_STARTED_REORDERED]: PostGameStartedReorderedRegisterParameters;
107
+ [ModCallbackCustom.POST_GREED_MODE_WAVE]: PostGreedModeWaveRegisterParameters;
108
+ [ModCallbackCustom.POST_GRID_ENTITY_BROKEN]: PostGridEntityBrokenRegisterParameters;
109
+ [ModCallbackCustom.POST_GRID_ENTITY_COLLISION]: PostGridEntityCollisionRegisterParameters;
110
+ [ModCallbackCustom.POST_GRID_ENTITY_INIT]: PostGridEntityInitRegisterParameters;
111
+ [ModCallbackCustom.POST_GRID_ENTITY_REMOVE]: PostGridEntityRemoveRegisterParameters;
112
+ [ModCallbackCustom.POST_GRID_ENTITY_RENDER]: PostGridEntityRenderRegisterParameters;
113
+ [ModCallbackCustom.POST_GRID_ENTITY_STATE_CHANGED]: PostGridEntityStateChangedRegisterParameters;
114
+ [ModCallbackCustom.POST_GRID_ENTITY_UPDATE]: PostGridEntityUpdateRegisterParameters;
115
+ [ModCallbackCustom.POST_HOLY_MANTLE_REMOVED]: PostHolyMantleRemovedRegisterParameters;
116
+ [ModCallbackCustom.POST_ITEM_DISCHARGE]: PostItemDischargedRegisterParameters;
117
+ [ModCallbackCustom.POST_ITEM_PICKUP]: PostItemPickupRegisterParameters;
118
+ [ModCallbackCustom.POST_KNIFE_INIT_LATE]: PostKnifeInitLateRegisterParameters;
119
+ [ModCallbackCustom.POST_LASER_INIT_LATE]: PostLaserInitLateRegisterParameters;
120
+ [ModCallbackCustom.POST_NEW_LEVEL_REORDERED]: PostNewLevelReorderedRegisterParameters;
121
+ [ModCallbackCustom.POST_NEW_ROOM_EARLY]: PostNewRoomEarlyRegisterParameters;
122
+ [ModCallbackCustom.POST_NEW_ROOM_REORDERED]: PostNewRoomReorderedRegisterParameters;
123
+ [ModCallbackCustom.POST_NPC_INIT_LATE]: PostNPCInitLateRegisterParameters;
124
+ [ModCallbackCustom.POST_NPC_STATE_CHANGED]: PostNPCStateChangedRegisterParameters;
125
+ [ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED]: PostPEffectUpdateReorderedRegisterParameters;
126
+ [ModCallbackCustom.POST_PICKUP_COLLECT]: PostPickupCollectRegisterParameters;
127
+ [ModCallbackCustom.POST_PICKUP_INIT_FIRST]: PostPickupInitFirstRegisterParameters;
128
+ [ModCallbackCustom.POST_PICKUP_INIT_LATE]: PostPickupInitLateRegisterParameters;
129
+ [ModCallbackCustom.POST_PICKUP_STATE_CHANGED]: PostPickupStateChangedRegisterParameters;
130
+ [ModCallbackCustom.POST_PIT_RENDER]: PostPitRenderRegisterParameters;
131
+ [ModCallbackCustom.POST_PIT_UPDATE]: PostPitUpdateRegisterParameters;
132
+ [ModCallbackCustom.POST_PLAYER_CHANGE_HEALTH]: PostPlayerChangeHealthRegisterParameters;
133
+ [ModCallbackCustom.POST_PLAYER_CHANGE_TYPE]: PostPlayerChangeTypeRegisterParameters;
134
+ [ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED]: PostPlayerCollectibleAddedRegisterParameters;
135
+ [ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED]: PostPlayerCollectibleRemovedRegisterParameters;
136
+ [ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE]: PostPlayerFatalDamageRegisterParameters;
137
+ [ModCallbackCustom.POST_PLAYER_INIT_LATE]: PostPlayerInitLateRegisterParameters;
138
+ [ModCallbackCustom.POST_PLAYER_INIT_REORDERED]: PostPlayerInitReorderedRegisterParameters;
139
+ [ModCallbackCustom.POST_PLAYER_RENDER_REORDERED]: PostPlayerRenderReorderedRegisterParameters;
140
+ [ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED]: PostPlayerUpdateReorderedRegisterParameters;
141
+ [ModCallbackCustom.POST_POOP_RENDER]: PostPoopRenderRegisterParameters;
142
+ [ModCallbackCustom.POST_POOP_UPDATE]: PostPoopUpdateRegisterParameters;
143
+ [ModCallbackCustom.POST_PRESSURE_PLATE_RENDER]: PostPressurePlateRenderRegisterParameters;
144
+ [ModCallbackCustom.POST_PRESSURE_PLATE_UPDATE]: PostPressurePlateUpdateRegisterParameters;
145
+ [ModCallbackCustom.POST_PROJECTILE_INIT_LATE]: PostProjectileInitLateRegisterParameters;
146
+ [ModCallbackCustom.POST_PURCHASE]: PostPurchaseRegisterParameters;
147
+ [ModCallbackCustom.POST_ROCK_RENDER]: PostRockRenderRegisterParameters;
148
+ [ModCallbackCustom.POST_ROCK_UPDATE]: PostRockUpdateRegisterParameters;
149
+ [ModCallbackCustom.POST_ROOM_CLEAR_CHANGED]: PostRoomClearChangedRegisterParameters;
150
+ [ModCallbackCustom.POST_SACRIFICE]: PostSacrificeRegisterParameters;
151
+ [ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED]: PostSlotAnimationChangedRegisterParameters;
152
+ [ModCallbackCustom.POST_SLOT_DESTROYED]: PostSlotDestroyedRegisterParameters;
153
+ [ModCallbackCustom.POST_SLOT_INIT]: PostSlotInitRegisterParameters;
154
+ [ModCallbackCustom.POST_SLOT_RENDER]: PostSlotRenderRegisterParameters;
155
+ [ModCallbackCustom.POST_SLOT_UPDATE]: PostSlotUpdateRegisterParameters;
156
+ [ModCallbackCustom.POST_SPIKES_RENDER]: PostSpikesRenderRegisterParameters;
157
+ [ModCallbackCustom.POST_SPIKES_UPDATE]: PostSpikesUpdateRegisterParameters;
158
+ [ModCallbackCustom.POST_TEAR_INIT_LATE]: PostTearInitLateRegisterParameters;
159
+ [ModCallbackCustom.POST_TEAR_INIT_VERY_LATE]: PostTearInitVeryLateRegisterParameters;
160
+ [ModCallbackCustom.POST_TNT_RENDER]: PostTNTRenderRegisterParameters;
161
+ [ModCallbackCustom.POST_TNT_UPDATE]: PostTNTUpdateRegisterParameters;
162
+ [ModCallbackCustom.POST_TRANSFORMATION]: PostTransformationRegisterParameters;
163
+ [ModCallbackCustom.POST_TRINKET_BREAK]: PostTrinketBreakRegisterParameters;
164
+ [ModCallbackCustom.PRE_BERSERK_DEATH]: PreBerserkDeathRegisterParameters;
165
+ [ModCallbackCustom.PRE_CUSTOM_REVIVE]: PreCustomReviveRegisterParameters;
166
+ [ModCallbackCustom.PRE_ITEM_PICKUP]: PreItemPickupRegisterParameters;
167
+ [ModCallbackCustom.PRE_NEW_LEVEL]: PreNewLevelRegisterParameters;
168
+ }
169
+
170
+ // Make copies of the objects we need to verify so that we can easily re-use the code block below.
171
+ type EnumToCheck = ModCallbackCustom;
172
+ type InterfaceToCheck = AddCallbackParameterCustom;
173
+
174
+ // Throw a compiler error if InterfaceToCheck does not match the values of EnumToCheck.
175
+ // From: https://stackoverflow.com/questions/51829842
176
+ type KeysMissing = Exclude<EnumToCheck, keyof InterfaceToCheck>;
177
+ type ExtraKeys = {
178
+ [K in keyof InterfaceToCheck]: Extract<EnumToCheck, K> extends never
179
+ ? K
180
+ : never;
181
+ }[keyof InterfaceToCheck];
182
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
183
+ type Verify<
184
+ // eslint-disable-next-line @typescript-eslint/naming-convention
185
+ _Missing extends never = KeysMissing,
186
+ // eslint-disable-next-line @typescript-eslint/naming-convention
187
+ _Extra extends never = ExtraKeys,
188
+ > = 0;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A collection of the four sprites necessary in order to render a charge bar.
3
+ *
4
+ * Used in the `newChargeBarSprites` and related helper functions.
5
+ */
6
+ export interface ChargeBarSprites {
7
+ back: Sprite;
8
+ meter: Sprite;
9
+ meterBattery: Sprite;
10
+ lines: Sprite;
11
+ maxCharges: int;
12
+ }
@@ -1,11 +1,11 @@
1
- /** Part of {@link JSONRooms}. */
1
+ /** Part of `JSONRooms`. */
2
2
  export interface JSONDoor {
3
3
  $: {
4
- /** Equal to "True" or "False". */
4
+ /** Equal to "True" or "False". Needs to be converted to an `boolean`. */
5
5
  exists: string;
6
- /** Needs to be converted to an int. */
6
+ /** Needs to be converted to an `int`. */
7
7
  x: string;
8
- /** Needs to be converted to an int. */
8
+ /** Needs to be converted to an `int`. */
9
9
  y: string;
10
10
  };
11
11
  }
@@ -0,0 +1,13 @@
1
+ /** Part of `JSONRooms`. */
2
+ export interface JSONDoor {
3
+ $: {
4
+ /** Equal to "True" or "False". Needs to be converted to an `boolean`. */
5
+ exists: string;
6
+
7
+ /** Needs to be converted to an `int`. */
8
+ x: string;
9
+
10
+ /** Needs to be converted to an `int`. */
11
+ y: string;
12
+ };
13
+ }
@@ -1,13 +1,13 @@
1
- /** Part of {@link JSONRooms}. */
1
+ /** Part of `JSONRooms`. */
2
2
  export interface JSONEntity {
3
3
  $: {
4
- /** Needs to be converted to an int. */
4
+ /** Needs to be converted to an `int`. */
5
5
  type: string;
6
- /** Needs to be converted to an int. */
6
+ /** Needs to be converted to an `int`. */
7
7
  variant: string;
8
- /** Needs to be converted to an int. */
8
+ /** Needs to be converted to an `int`. */
9
9
  subtype: string;
10
- /** Needs to be converted to a float. */
10
+ /** Needs to be converted to a `float`. */
11
11
  weight: string;
12
12
  };
13
13
  }
@@ -0,0 +1,16 @@
1
+ /** Part of `JSONRooms`. */
2
+ export interface JSONEntity {
3
+ $: {
4
+ /** Needs to be converted to an `int`. */
5
+ type: string;
6
+
7
+ /** Needs to be converted to an `int`. */
8
+ variant: string;
9
+
10
+ /** Needs to be converted to an `int`. */
11
+ subtype: string;
12
+
13
+ /** Needs to be converted to a `float`. */
14
+ weight: string;
15
+ };
16
+ }
@@ -1,24 +1,24 @@
1
1
  import { JSONDoor } from "./JSONDoor";
2
2
  import { JSONSpawn } from "./JSONSpawn";
3
- /** Part of {@link JSONRooms}. */
3
+ /** Part of `JSONRooms`. */
4
4
  export interface JSONRoom {
5
5
  $: {
6
- /** Needs to be converted to an int. */
6
+ /** Needs to be converted to an `int`. */
7
7
  difficulty: string;
8
- /** Needs to be converted to an int. */
8
+ /** Needs to be converted to an `int`. */
9
9
  height: string;
10
10
  name: string;
11
- /** Needs to be converted to an int. */
11
+ /** Needs to be converted to an `int`. */
12
12
  shape: string;
13
- /** Needs to be converted to an int. */
13
+ /** Needs to be converted to an `int`. */
14
14
  subtype: string;
15
- /** Needs to be converted to an int. */
15
+ /** Needs to be converted to an `int`. */
16
16
  type: string;
17
- /** Needs to be converted to an int. */
17
+ /** Needs to be converted to an `int`. */
18
18
  variant: string;
19
- /** Needs to be converted to a float. */
19
+ /** Needs to be converted to a `float`. */
20
20
  weight: string;
21
- /** Needs to be converted to an int. */
21
+ /** Needs to be converted to an `int`. */
22
22
  width: string;
23
23
  };
24
24
  door: JSONDoor[];
@@ -0,0 +1,36 @@
1
+ import { JSONDoor } from "./JSONDoor";
2
+ import { JSONSpawn } from "./JSONSpawn";
3
+
4
+ /** Part of `JSONRooms`. */
5
+ export interface JSONRoom {
6
+ $: {
7
+ /** Needs to be converted to an `int`. */
8
+ difficulty: string;
9
+
10
+ /** Needs to be converted to an `int`. */
11
+ height: string;
12
+
13
+ name: string;
14
+
15
+ /** Needs to be converted to an `int`. */
16
+ shape: string;
17
+
18
+ /** Needs to be converted to an `int`. */
19
+ subtype: string;
20
+
21
+ /** Needs to be converted to an `int`. */
22
+ type: string;
23
+
24
+ /** Needs to be converted to an `int`. */
25
+ variant: string;
26
+
27
+ /** Needs to be converted to a `float`. */
28
+ weight: string;
29
+
30
+ /** Needs to be converted to an `int`. */
31
+ width: string;
32
+ };
33
+
34
+ door: JSONDoor[];
35
+ spawn: JSONSpawn[];
36
+ }
@@ -0,0 +1,12 @@
1
+ import { JSONRoom } from "./JSONRoom";
2
+
3
+ /**
4
+ * Custom rooms are created with the Basement Renovator program, which outputs XML files and STB
5
+ * files. A `JSONRooms` object is simply an XML file converted to JSON. You can convert your XML
6
+ * files using the following command: `npx convert-xml-to-json foo.xml foo.json`
7
+ */
8
+ export interface JSONRooms {
9
+ rooms: {
10
+ room: JSONRoom[];
11
+ };
12
+ }
@@ -1,10 +1,10 @@
1
1
  import { JSONEntity } from "./JSONEntity";
2
- /** Part of {@link JSONRooms}. */
2
+ /** Part of `JSONRooms`. */
3
3
  export interface JSONSpawn {
4
4
  $: {
5
- /** Needs to be converted to an int. */
5
+ /** Needs to be converted to an `int`. */
6
6
  x: string;
7
- /** Needs to be converted to an int. */
7
+ /** Needs to be converted to an `int`. */
8
8
  y: string;
9
9
  };
10
10
  entity: JSONEntity[];
@@ -0,0 +1,14 @@
1
+ import { JSONEntity } from "./JSONEntity";
2
+
3
+ /** Part of `JSONRooms`. */
4
+ export interface JSONSpawn {
5
+ $: {
6
+ /** Needs to be converted to an `int`. */
7
+ x: string;
8
+
9
+ /** Needs to be converted to an `int`. */
10
+ y: string;
11
+ };
12
+
13
+ entity: JSONEntity[];
14
+ }
@@ -0,0 +1,16 @@
1
+ import { HeartSubType } from "isaac-typescript-definitions";
2
+
3
+ /** Used by the `getPlayerHealth` and `setPlayerHealth` helper functions. */
4
+ export interface PlayerHealth {
5
+ maxHearts: int;
6
+ hearts: int;
7
+ eternalHearts: int;
8
+ soulHearts: int;
9
+ boneHearts: int;
10
+ goldenHearts: int;
11
+ rottenHearts: int;
12
+ brokenHearts: int;
13
+ soulCharges: int;
14
+ bloodCharges: int;
15
+ soulHeartTypes: HeartSubType[];
16
+ }
@@ -0,0 +1,9 @@
1
+ import { PocketItemSlot } from "isaac-typescript-definitions";
2
+ import { PocketItemType } from "../enums/PocketItemType";
3
+
4
+ /** Used by the `getPocketItems` and related helper functions. */
5
+ export interface PocketItemDescription {
6
+ slot: PocketItemSlot;
7
+ type: PocketItemType;
8
+ subType: int;
9
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * This is the format of the object that you give to the save data manager. It will contains all of
3
+ * the variables for the particular mod feature.
4
+ *
5
+ * Depending on which object keys you use, the variables will be automatically reset at certain
6
+ * times and automatically saved to disk.
7
+ *
8
+ * Each sub-object of save data has a string as a key and arbitrary data as a value. However, the
9
+ * data has to be serializable. Specifically, this means that you can only use the following types:
10
+ *
11
+ * - `boolean`
12
+ * - `number`
13
+ * - `string`
14
+ * - `Map` / `DefaultMap`
15
+ * - `Set`
16
+ * - serializable Isaac API classes (such as `Color`)
17
+ * - TSTL classes (i.e. classes that you made yourself)
18
+ * - sub-objects or a `LuaTable` that contains the above values
19
+ *
20
+ * (Unfortunately, it is not possible to create a recursive type definition that matches these
21
+ * properties. This means that the TypeScript compiler will not be able to validate that you are
22
+ * passing in serializable data.)
23
+ */
24
+ export interface SaveData {
25
+ persistent?: Record<string, unknown>;
26
+ run?: Record<string, unknown>;
27
+ level?: Record<string, unknown>;
28
+ room?: Record<string, unknown>;
29
+ }
@@ -0,0 +1,9 @@
1
+ import { TrinketType } from "isaac-typescript-definitions";
2
+
3
+ /** Used by the `temporarilyRemoveTrinkets` and related helper functions. */
4
+ export interface TrinketSituation {
5
+ trinketTypeRemoved: TrinketType;
6
+ trinketType1: TrinketType;
7
+ trinketType2: TrinketType;
8
+ numSmeltedTrinkets: int;
9
+ }
@@ -0,0 +1,8 @@
1
+ export interface TSTLClassMetatable {
2
+ ____constructor: () => void;
3
+ __index: unknown;
4
+ constructor: {
5
+ name: string;
6
+ prototype: LuaMetatable<LuaTable<AnyNotNil, unknown>>;
7
+ };
8
+ }
@@ -0,0 +1,21 @@
1
+ import { PillEffect } from "isaac-typescript-definitions";
2
+
3
+ export const PHD_PILL_CONVERSIONS: ReadonlyMap<PillEffect, PillEffect> =
4
+ new Map([
5
+ [PillEffect.BAD_TRIP, PillEffect.BALLS_OF_STEEL], // 1
6
+ [PillEffect.HEALTH_DOWN, PillEffect.HEALTH_UP], // 6
7
+ [PillEffect.RANGE_DOWN, PillEffect.RANGE_UP], // 11
8
+ [PillEffect.SPEED_DOWN, PillEffect.SPEED_UP], // 13
9
+ [PillEffect.TEARS_DOWN, PillEffect.TEARS_UP], // 15
10
+ [PillEffect.LUCK_DOWN, PillEffect.LUCK_UP], // 17
11
+ [PillEffect.PARALYSIS, PillEffect.PHEROMONES], // 22
12
+ [PillEffect.AMNESIA, PillEffect.I_CAN_SEE_FOREVER], // 25
13
+ [PillEffect.R_U_A_WIZARD, PillEffect.POWER], // 27
14
+ [PillEffect.ADDICTED, PillEffect.PERCS], // 29
15
+ [PillEffect.QUESTION_MARKS, PillEffect.TELEPILLS], // 31
16
+ [PillEffect.RETRO_VISION, PillEffect.I_CAN_SEE_FOREVER], // 37
17
+ [PillEffect.X_LAX, PillEffect.SOMETHINGS_WRONG], // 39
18
+ [PillEffect.IM_EXCITED, PillEffect.IM_DROWSY], // 42
19
+ [PillEffect.HORF, PillEffect.GULP], // 44
20
+ [PillEffect.SHOT_SPEED_DOWN, PillEffect.SHOT_SPEED_UP], // 47
21
+ ]);