isaacscript-common 2.3.0 → 2.3.1

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 (1035) hide show
  1. package/cachedClasses.d.ts +37 -0
  2. package/cachedClasses.lua +6 -0
  3. package/callbacks/customRevive.d.ts +1 -0
  4. package/callbacks/customRevive.lua +145 -0
  5. package/callbacks/itemPickup.d.ts +1 -0
  6. package/callbacks/itemPickup.lua +64 -0
  7. package/callbacks/postBombInitLate.d.ts +1 -0
  8. package/callbacks/postBombInitLate.lua +31 -0
  9. package/callbacks/postBoneSwing.d.ts +1 -0
  10. package/callbacks/postBoneSwing.lua +48 -0
  11. package/callbacks/postCollectibleInitFirst.d.ts +1 -0
  12. package/callbacks/postCollectibleInitFirst.lua +32 -0
  13. package/callbacks/postCursedTeleport.d.ts +1 -0
  14. package/callbacks/postCursedTeleport.lua +119 -0
  15. package/callbacks/postCustomDoorEnter.d.ts +50 -0
  16. package/callbacks/postCustomDoorEnter.lua +203 -0
  17. package/callbacks/postDoorRender.d.ts +1 -0
  18. package/callbacks/postDoorRender.lua +24 -0
  19. package/callbacks/postDoorUpdate.d.ts +1 -0
  20. package/callbacks/postDoorUpdate.lua +24 -0
  21. package/callbacks/postEffectInitLate.d.ts +1 -0
  22. package/callbacks/postEffectInitLate.lua +31 -0
  23. package/callbacks/postEffectStateChanged.d.ts +1 -0
  24. package/callbacks/postEffectStateChanged.lua +37 -0
  25. package/callbacks/postEsauJr.d.ts +1 -0
  26. package/callbacks/postEsauJr.lua +67 -0
  27. package/callbacks/postFamiliarInitLate.d.ts +1 -0
  28. package/callbacks/postFamiliarInitLate.lua +31 -0
  29. package/callbacks/postFamiliarStateChanged.d.ts +1 -0
  30. package/callbacks/postFamiliarStateChanged.lua +37 -0
  31. package/callbacks/postFlip.d.ts +1 -0
  32. package/callbacks/postFlip.lua +61 -0
  33. package/callbacks/postGreedModeWave.d.ts +1 -0
  34. package/callbacks/postGreedModeWave.lua +32 -0
  35. package/callbacks/postGridEntity.d.ts +1 -0
  36. package/callbacks/postGridEntity.lua +105 -0
  37. package/callbacks/postGridEntityCollision.d.ts +1 -0
  38. package/callbacks/postGridEntityCollision.lua +65 -0
  39. package/callbacks/postGridEntityRender.d.ts +1 -0
  40. package/callbacks/postGridEntityRender.lua +24 -0
  41. package/callbacks/postHolyMantleRemoved.d.ts +1 -0
  42. package/callbacks/postHolyMantleRemoved.lua +39 -0
  43. package/callbacks/postItemDischarged.d.ts +2 -0
  44. package/callbacks/postItemDischarged.lua +104 -0
  45. package/callbacks/postKnifeInitLate.d.ts +1 -0
  46. package/callbacks/postKnifeInitLate.lua +31 -0
  47. package/callbacks/postLaserInitLate.d.ts +1 -0
  48. package/callbacks/postLaserInitLate.lua +31 -0
  49. package/callbacks/postNPCInitLate.d.ts +1 -0
  50. package/callbacks/postNPCInitLate.lua +31 -0
  51. package/callbacks/postNPCStateChanged.d.ts +1 -0
  52. package/callbacks/postNPCStateChanged.lua +37 -0
  53. package/callbacks/postNewRoomEarly.d.ts +1 -0
  54. package/callbacks/postNewRoomEarly.lua +65 -0
  55. package/callbacks/postPickupCollect.d.ts +1 -0
  56. package/callbacks/postPickupCollect.lua +39 -0
  57. package/callbacks/postPickupInitLate.d.ts +1 -0
  58. package/callbacks/postPickupInitLate.lua +31 -0
  59. package/callbacks/postPickupStateChanged.d.ts +1 -0
  60. package/callbacks/postPickupStateChanged.lua +37 -0
  61. package/callbacks/postPitRender.d.ts +1 -0
  62. package/callbacks/postPitRender.lua +24 -0
  63. package/callbacks/postPitUpdate.d.ts +1 -0
  64. package/callbacks/postPitUpdate.lua +24 -0
  65. package/callbacks/postPlayerChangeHealth.d.ts +1 -0
  66. package/callbacks/postPlayerChangeHealth.lua +50 -0
  67. package/callbacks/postPlayerChangeType.d.ts +1 -0
  68. package/callbacks/postPlayerChangeType.lua +39 -0
  69. package/callbacks/postPlayerFatalDamage.d.ts +1 -0
  70. package/callbacks/postPlayerFatalDamage.lua +71 -0
  71. package/callbacks/postPlayerInitLate.d.ts +1 -0
  72. package/callbacks/postPlayerInitLate.lua +33 -0
  73. package/callbacks/postPlayerReordered.d.ts +1 -0
  74. package/callbacks/postPlayerReordered.lua +112 -0
  75. package/callbacks/postPoopRender.d.ts +1 -0
  76. package/callbacks/postPoopRender.lua +24 -0
  77. package/callbacks/postPoopUpdate.d.ts +1 -0
  78. package/callbacks/postPoopUpdate.lua +24 -0
  79. package/callbacks/postPressurePlateRender.d.ts +1 -0
  80. package/callbacks/postPressurePlateRender.lua +24 -0
  81. package/callbacks/postPressurePlateUpdate.d.ts +1 -0
  82. package/callbacks/postPressurePlateUpdate.lua +24 -0
  83. package/callbacks/postProjectileInitLate.d.ts +1 -0
  84. package/callbacks/postProjectileInitLate.lua +31 -0
  85. package/callbacks/postPurchase.d.ts +1 -0
  86. package/callbacks/postPurchase.lua +49 -0
  87. package/callbacks/postRockRender.d.ts +1 -0
  88. package/callbacks/postRockRender.lua +24 -0
  89. package/callbacks/postRockUpdate.d.ts +1 -0
  90. package/callbacks/postRockUpdate.lua +24 -0
  91. package/callbacks/postRoomClearChanged.d.ts +1 -0
  92. package/callbacks/postRoomClearChanged.lua +40 -0
  93. package/callbacks/postSacrifice.d.ts +1 -0
  94. package/callbacks/postSacrifice.lua +42 -0
  95. package/callbacks/postSlotInitUpdate.d.ts +1 -0
  96. package/callbacks/postSlotInitUpdate.lua +51 -0
  97. package/callbacks/postSlotRender.d.ts +1 -0
  98. package/callbacks/postSlotRender.lua +74 -0
  99. package/callbacks/postSpikesRender.d.ts +1 -0
  100. package/callbacks/postSpikesRender.lua +24 -0
  101. package/callbacks/postSpikesUpdate.d.ts +1 -0
  102. package/callbacks/postSpikesUpdate.lua +24 -0
  103. package/callbacks/postTNTRender.d.ts +1 -0
  104. package/callbacks/postTNTRender.lua +24 -0
  105. package/callbacks/postTNTUpdate.d.ts +1 -0
  106. package/callbacks/postTNTUpdate.lua +24 -0
  107. package/callbacks/postTearInitLate.d.ts +1 -0
  108. package/callbacks/postTearInitLate.lua +31 -0
  109. package/callbacks/postTearInitVeryLate.d.ts +1 -0
  110. package/callbacks/postTearInitVeryLate.lua +34 -0
  111. package/callbacks/postTransformation.d.ts +1 -0
  112. package/callbacks/postTransformation.lua +46 -0
  113. package/callbacks/postTrinketBreak.d.ts +1 -0
  114. package/callbacks/postTrinketBreak.lua +70 -0
  115. package/callbacks/preBerserkDeath.d.ts +1 -0
  116. package/callbacks/preBerserkDeath.lua +36 -0
  117. package/callbacks/preNewLevel.d.ts +1 -0
  118. package/callbacks/preNewLevel.lua +43 -0
  119. package/callbacks/reorderedCallbacks.d.ts +20 -0
  120. package/callbacks/reorderedCallbacks.lua +92 -0
  121. package/callbacks/subscriptions/postBombInitLate.d.ts +5 -0
  122. package/callbacks/subscriptions/postBombInitLate.lua +23 -0
  123. package/callbacks/subscriptions/postBoneSwing.d.ts +4 -0
  124. package/callbacks/subscriptions/postBoneSwing.lua +16 -0
  125. package/callbacks/subscriptions/postCollectibleInitFirst.d.ts +5 -0
  126. package/callbacks/subscriptions/postCollectibleInitFirst.lua +23 -0
  127. package/callbacks/subscriptions/postCursedTeleport.d.ts +4 -0
  128. package/callbacks/subscriptions/postCursedTeleport.lua +16 -0
  129. package/callbacks/subscriptions/postCustomDoorEnter.d.ts +5 -0
  130. package/callbacks/subscriptions/postCustomDoorEnter.lua +29 -0
  131. package/callbacks/subscriptions/postCustomRevive.d.ts +5 -0
  132. package/callbacks/subscriptions/postCustomRevive.lua +23 -0
  133. package/callbacks/subscriptions/postDoorRender.d.ts +5 -0
  134. package/callbacks/subscriptions/postDoorRender.lua +24 -0
  135. package/callbacks/subscriptions/postDoorUpdate.d.ts +5 -0
  136. package/callbacks/subscriptions/postDoorUpdate.lua +24 -0
  137. package/callbacks/subscriptions/postEffectInitLate.d.ts +5 -0
  138. package/callbacks/subscriptions/postEffectInitLate.lua +23 -0
  139. package/callbacks/subscriptions/postEffectStateChanged.d.ts +5 -0
  140. package/callbacks/subscriptions/postEffectStateChanged.lua +23 -0
  141. package/callbacks/subscriptions/postEsauJr.d.ts +4 -0
  142. package/callbacks/subscriptions/postEsauJr.lua +16 -0
  143. package/callbacks/subscriptions/postFamiliarInitLate.d.ts +5 -0
  144. package/callbacks/subscriptions/postFamiliarInitLate.lua +23 -0
  145. package/callbacks/subscriptions/postFamiliarStateChanged.d.ts +5 -0
  146. package/callbacks/subscriptions/postFamiliarStateChanged.lua +23 -0
  147. package/callbacks/subscriptions/postFirstEsauJr.d.ts +4 -0
  148. package/callbacks/subscriptions/postFirstEsauJr.lua +16 -0
  149. package/callbacks/subscriptions/postFirstFlip.d.ts +4 -0
  150. package/callbacks/subscriptions/postFirstFlip.lua +16 -0
  151. package/callbacks/subscriptions/postFlip.d.ts +4 -0
  152. package/callbacks/subscriptions/postFlip.lua +16 -0
  153. package/callbacks/subscriptions/postGameStartedReordered.d.ts +3 -0
  154. package/callbacks/subscriptions/postGameStartedReordered.lua +16 -0
  155. package/callbacks/subscriptions/postGreedModeWave.d.ts +4 -0
  156. package/callbacks/subscriptions/postGreedModeWave.lua +16 -0
  157. package/callbacks/subscriptions/postGridEntityBroken.d.ts +6 -0
  158. package/callbacks/subscriptions/postGridEntityBroken.lua +29 -0
  159. package/callbacks/subscriptions/postGridEntityCollision.d.ts +6 -0
  160. package/callbacks/subscriptions/postGridEntityCollision.lua +29 -0
  161. package/callbacks/subscriptions/postGridEntityInit.d.ts +6 -0
  162. package/callbacks/subscriptions/postGridEntityInit.lua +29 -0
  163. package/callbacks/subscriptions/postGridEntityRemove.d.ts +6 -0
  164. package/callbacks/subscriptions/postGridEntityRemove.lua +27 -0
  165. package/callbacks/subscriptions/postGridEntityRender.d.ts +6 -0
  166. package/callbacks/subscriptions/postGridEntityRender.lua +29 -0
  167. package/callbacks/subscriptions/postGridEntityStateChanged.d.ts +6 -0
  168. package/callbacks/subscriptions/postGridEntityStateChanged.lua +29 -0
  169. package/callbacks/subscriptions/postGridEntityUpdate.d.ts +6 -0
  170. package/callbacks/subscriptions/postGridEntityUpdate.lua +29 -0
  171. package/callbacks/subscriptions/postHolyMantleRemoved.d.ts +6 -0
  172. package/callbacks/subscriptions/postHolyMantleRemoved.lua +28 -0
  173. package/callbacks/subscriptions/postItemDischarged.d.ts +5 -0
  174. package/callbacks/subscriptions/postItemDischarged.lua +23 -0
  175. package/callbacks/subscriptions/postItemPickup.d.ts +11 -0
  176. package/callbacks/subscriptions/postItemPickup.lua +27 -0
  177. package/callbacks/subscriptions/postKnifeInitLate.d.ts +5 -0
  178. package/callbacks/subscriptions/postKnifeInitLate.lua +23 -0
  179. package/callbacks/subscriptions/postLaserInitLate.d.ts +5 -0
  180. package/callbacks/subscriptions/postLaserInitLate.lua +23 -0
  181. package/callbacks/subscriptions/postNPCInitLate.d.ts +5 -0
  182. package/callbacks/subscriptions/postNPCInitLate.lua +23 -0
  183. package/callbacks/subscriptions/postNPCStateChanged.d.ts +6 -0
  184. package/callbacks/subscriptions/postNPCStateChanged.lua +27 -0
  185. package/callbacks/subscriptions/postNewLevelReordered.d.ts +1 -0
  186. package/callbacks/subscriptions/postNewLevelReordered.lua +16 -0
  187. package/callbacks/subscriptions/postNewRoomEarly.d.ts +1 -0
  188. package/callbacks/subscriptions/postNewRoomEarly.lua +16 -0
  189. package/callbacks/subscriptions/postNewRoomReordered.d.ts +1 -0
  190. package/callbacks/subscriptions/postNewRoomReordered.lua +16 -0
  191. package/callbacks/subscriptions/postPEffectUpdateReordered.d.ts +6 -0
  192. package/callbacks/subscriptions/postPEffectUpdateReordered.lua +28 -0
  193. package/callbacks/subscriptions/postPickupCollect.d.ts +4 -0
  194. package/callbacks/subscriptions/postPickupCollect.lua +23 -0
  195. package/callbacks/subscriptions/postPickupInitLate.d.ts +3 -0
  196. package/callbacks/subscriptions/postPickupInitLate.lua +23 -0
  197. package/callbacks/subscriptions/postPickupStateChanged.d.ts +5 -0
  198. package/callbacks/subscriptions/postPickupStateChanged.lua +23 -0
  199. package/callbacks/subscriptions/postPitRender.d.ts +5 -0
  200. package/callbacks/subscriptions/postPitRender.lua +24 -0
  201. package/callbacks/subscriptions/postPitUpdate.d.ts +5 -0
  202. package/callbacks/subscriptions/postPitUpdate.lua +24 -0
  203. package/callbacks/subscriptions/postPlayerChangeHealth.d.ts +7 -0
  204. package/callbacks/subscriptions/postPlayerChangeHealth.lua +28 -0
  205. package/callbacks/subscriptions/postPlayerChangeType.d.ts +5 -0
  206. package/callbacks/subscriptions/postPlayerChangeType.lua +23 -0
  207. package/callbacks/subscriptions/postPlayerFatalDamage.d.ts +6 -0
  208. package/callbacks/subscriptions/postPlayerFatalDamage.lua +39 -0
  209. package/callbacks/subscriptions/postPlayerInitLate.d.ts +6 -0
  210. package/callbacks/subscriptions/postPlayerInitLate.lua +28 -0
  211. package/callbacks/subscriptions/postPlayerInitReordered.d.ts +6 -0
  212. package/callbacks/subscriptions/postPlayerInitReordered.lua +28 -0
  213. package/callbacks/subscriptions/postPlayerRenderReordered.d.ts +6 -0
  214. package/callbacks/subscriptions/postPlayerRenderReordered.lua +28 -0
  215. package/callbacks/subscriptions/postPlayerUpdateReordered.d.ts +6 -0
  216. package/callbacks/subscriptions/postPlayerUpdateReordered.lua +28 -0
  217. package/callbacks/subscriptions/postPoopRender.d.ts +5 -0
  218. package/callbacks/subscriptions/postPoopRender.lua +24 -0
  219. package/callbacks/subscriptions/postPoopUpdate.d.ts +5 -0
  220. package/callbacks/subscriptions/postPoopUpdate.lua +24 -0
  221. package/callbacks/subscriptions/postPressurePlateRender.d.ts +5 -0
  222. package/callbacks/subscriptions/postPressurePlateRender.lua +24 -0
  223. package/callbacks/subscriptions/postPressurePlateUpdate.d.ts +5 -0
  224. package/callbacks/subscriptions/postPressurePlateUpdate.lua +24 -0
  225. package/callbacks/subscriptions/postProjectileInitLate.d.ts +5 -0
  226. package/callbacks/subscriptions/postProjectileInitLate.lua +23 -0
  227. package/callbacks/subscriptions/postPurchase.d.ts +6 -0
  228. package/callbacks/subscriptions/postPurchase.lua +16 -0
  229. package/callbacks/subscriptions/postRockRender.d.ts +5 -0
  230. package/callbacks/subscriptions/postRockRender.lua +24 -0
  231. package/callbacks/subscriptions/postRockUpdate.d.ts +5 -0
  232. package/callbacks/subscriptions/postRockUpdate.lua +24 -0
  233. package/callbacks/subscriptions/postRoomClearChanged.d.ts +3 -0
  234. package/callbacks/subscriptions/postRoomClearChanged.lua +16 -0
  235. package/callbacks/subscriptions/postSacrifice.d.ts +6 -0
  236. package/callbacks/subscriptions/postSacrifice.lua +28 -0
  237. package/callbacks/subscriptions/postSlotAnimationChanged.d.ts +5 -0
  238. package/callbacks/subscriptions/postSlotAnimationChanged.lua +23 -0
  239. package/callbacks/subscriptions/postSlotDestroyed.d.ts +5 -0
  240. package/callbacks/subscriptions/postSlotDestroyed.lua +23 -0
  241. package/callbacks/subscriptions/postSlotInit.d.ts +5 -0
  242. package/callbacks/subscriptions/postSlotInit.lua +23 -0
  243. package/callbacks/subscriptions/postSlotRender.d.ts +5 -0
  244. package/callbacks/subscriptions/postSlotRender.lua +23 -0
  245. package/callbacks/subscriptions/postSlotUpdate.d.ts +5 -0
  246. package/callbacks/subscriptions/postSlotUpdate.lua +23 -0
  247. package/callbacks/subscriptions/postSpikesRender.d.ts +5 -0
  248. package/callbacks/subscriptions/postSpikesRender.lua +24 -0
  249. package/callbacks/subscriptions/postSpikesUpdate.d.ts +5 -0
  250. package/callbacks/subscriptions/postSpikesUpdate.lua +24 -0
  251. package/callbacks/subscriptions/postTNTRender.d.ts +5 -0
  252. package/callbacks/subscriptions/postTNTRender.lua +24 -0
  253. package/callbacks/subscriptions/postTNTUpdate.d.ts +5 -0
  254. package/callbacks/subscriptions/postTNTUpdate.lua +24 -0
  255. package/callbacks/subscriptions/postTearInitLate.d.ts +5 -0
  256. package/callbacks/subscriptions/postTearInitLate.lua +23 -0
  257. package/callbacks/subscriptions/postTearInitVeryLate.d.ts +5 -0
  258. package/callbacks/subscriptions/postTearInitVeryLate.lua +23 -0
  259. package/callbacks/subscriptions/postTransformation.d.ts +5 -0
  260. package/callbacks/subscriptions/postTransformation.lua +23 -0
  261. package/callbacks/subscriptions/postTrinketBreak.d.ts +5 -0
  262. package/callbacks/subscriptions/postTrinketBreak.lua +23 -0
  263. package/callbacks/subscriptions/preBerserkDeath.d.ts +6 -0
  264. package/callbacks/subscriptions/preBerserkDeath.lua +29 -0
  265. package/callbacks/subscriptions/preCustomRevive.d.ts +6 -0
  266. package/callbacks/subscriptions/preCustomRevive.lua +32 -0
  267. package/callbacks/subscriptions/preItemPickup.d.ts +11 -0
  268. package/callbacks/subscriptions/preItemPickup.lua +27 -0
  269. package/callbacks/subscriptions/preNewLevel.d.ts +4 -0
  270. package/callbacks/subscriptions/preNewLevel.lua +16 -0
  271. package/classes/DefaultMap.d.ts +79 -0
  272. package/classes/DefaultMap.lua +84 -0
  273. package/classes/ModUpgraded.d.ts +23 -0
  274. package/classes/ModUpgraded.lua +38 -0
  275. package/constants.d.ts +104 -0
  276. package/constants.lua +45 -0
  277. package/constantsFirstLast.d.ts +130 -0
  278. package/constantsFirstLast.lua +50 -0
  279. package/enums/HealthType.d.ts +16 -0
  280. package/enums/HealthType.lua +21 -0
  281. package/enums/ModCallbackCustom.d.ts +860 -0
  282. package/enums/ModCallbackCustom.lua +153 -0
  283. package/enums/PocketItemType.d.ts +8 -0
  284. package/enums/PocketItemType.lua +15 -0
  285. package/enums/SerializationType.d.ts +5 -0
  286. package/enums/SerializationType.lua +9 -0
  287. package/enums/private/CopyableIsaacAPIClassType.d.ts +7 -0
  288. package/enums/private/CopyableIsaacAPIClassType.lua +7 -0
  289. package/enums/private/SaveDataKey.d.ts +7 -0
  290. package/enums/private/SaveDataKey.lua +11 -0
  291. package/enums/private/SerializationBrand.d.ts +37 -0
  292. package/enums/private/SerializationBrand.lua +12 -0
  293. package/features/characterHealthConversion.d.ts +9 -0
  294. package/features/characterHealthConversion.lua +85 -0
  295. package/features/characterStats.d.ts +19 -0
  296. package/features/characterStats.lua +37 -0
  297. package/features/debugDisplay/debugDisplay.d.ts +2 -0
  298. package/features/debugDisplay/debugDisplay.lua +181 -0
  299. package/features/debugDisplay/exports.d.ts +199 -0
  300. package/features/debugDisplay/exports.lua +133 -0
  301. package/features/debugDisplay/v.d.ts +44 -0
  302. package/features/debugDisplay/v.lua +54 -0
  303. package/features/deployJSONRoom.d.ts +65 -0
  304. package/features/deployJSONRoom.lua +463 -0
  305. package/features/disableInputs.d.ts +62 -0
  306. package/features/disableInputs.lua +89 -0
  307. package/features/disableSound.d.ts +18 -0
  308. package/features/disableSound.lua +48 -0
  309. package/features/extraConsoleCommands/commandsDisplay.d.ts +162 -0
  310. package/features/extraConsoleCommands/commandsDisplay.lua +129 -0
  311. package/features/extraConsoleCommands/commandsSubroutines.d.ts +9 -0
  312. package/features/extraConsoleCommands/commandsSubroutines.lua +129 -0
  313. package/features/extraConsoleCommands/init.d.ts +26 -0
  314. package/features/extraConsoleCommands/init.lua +249 -0
  315. package/features/extraConsoleCommands/listCommands.d.ts +349 -0
  316. package/features/extraConsoleCommands/listCommands.lua +922 -0
  317. package/features/extraConsoleCommands/v.d.ts +13 -0
  318. package/features/extraConsoleCommands/v.lua +10 -0
  319. package/features/fadeInRemover.d.ts +14 -0
  320. package/features/fadeInRemover.lua +45 -0
  321. package/features/fastReset.d.ts +14 -0
  322. package/features/fastReset.lua +49 -0
  323. package/features/forgottenSwitch.d.ts +5 -0
  324. package/features/forgottenSwitch.lua +28 -0
  325. package/features/getCollectibleItemPoolType.d.ts +7 -0
  326. package/features/getCollectibleItemPoolType.lua +43 -0
  327. package/features/playerInventory.d.ts +23 -0
  328. package/features/playerInventory.lua +129 -0
  329. package/features/ponyDetection.d.ts +6 -0
  330. package/features/ponyDetection.lua +49 -0
  331. package/features/preventCollectibleRotation.d.ts +11 -0
  332. package/features/preventCollectibleRotation.lua +58 -0
  333. package/features/runInNFrames.d.ts +61 -0
  334. package/features/runInNFrames.lua +78 -0
  335. package/features/saveDataManager/constants.d.ts +3 -0
  336. package/features/saveDataManager/constants.lua +4 -0
  337. package/features/saveDataManager/exports.d.ts +131 -0
  338. package/features/saveDataManager/exports.lua +66 -0
  339. package/features/saveDataManager/load.d.ts +4 -0
  340. package/features/saveDataManager/load.lua +66 -0
  341. package/features/saveDataManager/main.d.ts +3 -0
  342. package/features/saveDataManager/main.lua +119 -0
  343. package/features/saveDataManager/maps.d.ts +10 -0
  344. package/features/saveDataManager/maps.lua +8 -0
  345. package/features/saveDataManager/merge.d.ts +24 -0
  346. package/features/saveDataManager/merge.lua +124 -0
  347. package/features/saveDataManager/save.d.ts +4 -0
  348. package/features/saveDataManager/save.lua +44 -0
  349. package/features/saveDataManager/serializationBrand.d.ts +1 -0
  350. package/features/saveDataManager/serializationBrand.lua +17 -0
  351. package/features/sirenHelpers.d.ts +18 -0
  352. package/features/sirenHelpers.lua +69 -0
  353. package/features/taintedLazarusPlayers.d.ts +13 -0
  354. package/features/taintedLazarusPlayers.lua +74 -0
  355. package/featuresInitialized.d.ts +1 -0
  356. package/featuresInitialized.lua +14 -0
  357. package/functions/array.d.ts +141 -0
  358. package/functions/array.lua +269 -0
  359. package/functions/benchmark.d.ts +10 -0
  360. package/functions/benchmark.lua +32 -0
  361. package/functions/bitwise.d.ts +4 -0
  362. package/functions/bitwise.lua +21 -0
  363. package/functions/boss.d.ts +56 -0
  364. package/functions/boss.lua +183 -0
  365. package/functions/cacheFlag.d.ts +8 -0
  366. package/functions/cacheFlag.lua +7 -0
  367. package/functions/cards.d.ts +95 -0
  368. package/functions/cards.lua +174 -0
  369. package/functions/challenges.d.ts +3 -0
  370. package/functions/challenges.lua +9 -0
  371. package/functions/character.d.ts +48 -0
  372. package/functions/character.lua +73 -0
  373. package/functions/charge.d.ts +54 -0
  374. package/functions/charge.lua +123 -0
  375. package/functions/chargeBar.d.ts +12 -0
  376. package/functions/chargeBar.lua +43 -0
  377. package/functions/collectibleCacheFlag.d.ts +23 -0
  378. package/functions/collectibleCacheFlag.lua +65 -0
  379. package/functions/collectibleSet.d.ts +9 -0
  380. package/functions/collectibleSet.lua +51 -0
  381. package/functions/collectibleTag.d.ts +16 -0
  382. package/functions/collectibleTag.lua +74 -0
  383. package/functions/collectibles.d.ts +211 -0
  384. package/functions/collectibles.lua +281 -0
  385. package/functions/color.d.ts +45 -0
  386. package/functions/color.lua +122 -0
  387. package/functions/debug.d.ts +27 -0
  388. package/functions/debug.lua +31 -0
  389. package/functions/deepCopy.d.ts +29 -0
  390. package/functions/deepCopy.lua +357 -0
  391. package/functions/deepCopyTests.d.ts +1 -0
  392. package/functions/deepCopyTests.lua +316 -0
  393. package/functions/direction.d.ts +4 -0
  394. package/functions/direction.lua +17 -0
  395. package/functions/doors.d.ts +117 -0
  396. package/functions/doors.lua +231 -0
  397. package/functions/easing.d.ts +30 -0
  398. package/functions/easing.lua +115 -0
  399. package/functions/eden.d.ts +3 -0
  400. package/functions/eden.lua +47 -0
  401. package/functions/entity.d.ts +131 -0
  402. package/functions/entity.lua +233 -0
  403. package/functions/entitySpecific.d.ts +264 -0
  404. package/functions/entitySpecific.lua +650 -0
  405. package/functions/entityTypes.d.ts +3 -0
  406. package/functions/entityTypes.lua +7 -0
  407. package/functions/enums.d.ts +80 -0
  408. package/functions/enums.lua +85 -0
  409. package/functions/familiars.d.ts +60 -0
  410. package/functions/familiars.lua +33 -0
  411. package/functions/flag.d.ts +99 -0
  412. package/functions/flag.lua +47 -0
  413. package/functions/flying.d.ts +19 -0
  414. package/functions/flying.lua +67 -0
  415. package/functions/globals.d.ts +14 -0
  416. package/functions/globals.lua +230 -0
  417. package/functions/gridEntity.d.ts +155 -0
  418. package/functions/gridEntity.lua +263 -0
  419. package/functions/gridEntitySpecific.d.ts +18 -0
  420. package/functions/gridEntitySpecific.lua +88 -0
  421. package/functions/input.d.ts +32 -0
  422. package/functions/input.lua +106 -0
  423. package/functions/isaacAPIClass.d.ts +23 -0
  424. package/functions/isaacAPIClass.lua +35 -0
  425. package/functions/jsonHelpers.d.ts +18 -0
  426. package/functions/jsonHelpers.lua +26 -0
  427. package/functions/jsonRoom.d.ts +12 -0
  428. package/functions/jsonRoom.lua +86 -0
  429. package/functions/kColor.d.ts +31 -0
  430. package/functions/kColor.lua +101 -0
  431. package/functions/language.d.ts +8 -0
  432. package/functions/language.lua +8 -0
  433. package/functions/level.d.ts +1 -0
  434. package/functions/level.lua +29 -0
  435. package/functions/log.d.ts +78 -0
  436. package/functions/log.lua +519 -0
  437. package/functions/map.d.ts +22 -0
  438. package/functions/map.lua +43 -0
  439. package/functions/math.d.ts +50 -0
  440. package/functions/math.lua +92 -0
  441. package/functions/mergeTests.d.ts +1 -0
  442. package/functions/mergeTests.lua +182 -0
  443. package/functions/npc.d.ts +40 -0
  444. package/functions/npc.lua +104 -0
  445. package/functions/pickupVariants.d.ts +23 -0
  446. package/functions/pickupVariants.lua +37 -0
  447. package/functions/pickups.d.ts +132 -0
  448. package/functions/pickups.lua +407 -0
  449. package/functions/pills.d.ts +69 -0
  450. package/functions/pills.lua +83 -0
  451. package/functions/player.d.ts +296 -0
  452. package/functions/player.lua +611 -0
  453. package/functions/playerDataStructures.d.ts +92 -0
  454. package/functions/playerDataStructures.lua +38 -0
  455. package/functions/playerHealth.d.ts +22 -0
  456. package/functions/playerHealth.lua +286 -0
  457. package/functions/playerIndex.d.ts +68 -0
  458. package/functions/playerIndex.lua +127 -0
  459. package/functions/pocketItems.d.ts +33 -0
  460. package/functions/pocketItems.lua +86 -0
  461. package/functions/positionVelocity.d.ts +64 -0
  462. package/functions/positionVelocity.lua +108 -0
  463. package/functions/random.d.ts +42 -0
  464. package/functions/random.lua +38 -0
  465. package/functions/revive.d.ts +31 -0
  466. package/functions/revive.lua +102 -0
  467. package/functions/rng.d.ts +53 -0
  468. package/functions/rng.lua +129 -0
  469. package/functions/roomData.d.ts +108 -0
  470. package/functions/roomData.lua +92 -0
  471. package/functions/roomGrid.d.ts +40 -0
  472. package/functions/roomGrid.lua +59 -0
  473. package/functions/roomShape.d.ts +43 -0
  474. package/functions/roomShape.lua +45 -0
  475. package/functions/rooms.d.ts +194 -0
  476. package/functions/rooms.lua +382 -0
  477. package/functions/run.d.ts +12 -0
  478. package/functions/run.lua +28 -0
  479. package/functions/seeds.d.ts +9 -0
  480. package/functions/seeds.lua +15 -0
  481. package/functions/serialization.d.ts +11 -0
  482. package/functions/serialization.lua +65 -0
  483. package/functions/set.d.ts +39 -0
  484. package/functions/set.lua +61 -0
  485. package/functions/sound.d.ts +1 -0
  486. package/functions/sound.lua +13 -0
  487. package/functions/spawnCollectible.d.ts +31 -0
  488. package/functions/spawnCollectible.lua +70 -0
  489. package/functions/sprite.d.ts +36 -0
  490. package/functions/sprite.lua +64 -0
  491. package/functions/stage.d.ts +35 -0
  492. package/functions/stage.lua +70 -0
  493. package/functions/string.d.ts +13 -0
  494. package/functions/string.lua +36 -0
  495. package/functions/table.d.ts +36 -0
  496. package/functions/table.lua +79 -0
  497. package/functions/tears.d.ts +22 -0
  498. package/functions/tears.lua +14 -0
  499. package/functions/transformations.d.ts +30 -0
  500. package/functions/transformations.lua +96 -0
  501. package/functions/trinketCacheFlag.d.ts +10 -0
  502. package/functions/trinketCacheFlag.lua +50 -0
  503. package/functions/trinketGive.d.ts +38 -0
  504. package/functions/trinketGive.lua +90 -0
  505. package/functions/trinkets.d.ts +73 -0
  506. package/functions/trinkets.lua +115 -0
  507. package/functions/tstlClass.d.ts +20 -0
  508. package/functions/tstlClass.lua +56 -0
  509. package/functions/ui.d.ts +34 -0
  510. package/functions/ui.lua +95 -0
  511. package/functions/utils.d.ts +112 -0
  512. package/functions/utils.lua +94 -0
  513. package/functions/vector.d.ts +32 -0
  514. package/functions/vector.lua +118 -0
  515. package/index.d.ts +128 -0
  516. package/index.lua +900 -0
  517. package/initCustomCallbacks.d.ts +2 -0
  518. package/initCustomCallbacks.lua +178 -0
  519. package/initFeatures.d.ts +3 -0
  520. package/initFeatures.lua +51 -0
  521. package/interfaces/AddCallbackParameterCustom.d.ts +153 -0
  522. package/interfaces/AddCallbackParameterCustom.lua +4 -0
  523. package/interfaces/ChargeBarSprites.d.ts +13 -0
  524. package/interfaces/ChargeBarSprites.lua +2 -0
  525. package/interfaces/JSONDoor.d.ts +11 -0
  526. package/interfaces/JSONDoor.lua +2 -0
  527. package/interfaces/JSONEntity.d.ts +13 -0
  528. package/interfaces/JSONEntity.lua +2 -0
  529. package/interfaces/JSONRoom.d.ts +26 -0
  530. package/interfaces/JSONRoom.lua +2 -0
  531. package/interfaces/JSONRooms.d.ts +11 -0
  532. package/interfaces/JSONRooms.lua +2 -0
  533. package/interfaces/JSONSpawn.d.ts +11 -0
  534. package/interfaces/JSONSpawn.lua +2 -0
  535. package/interfaces/PlayerHealth.d.ts +15 -0
  536. package/interfaces/PlayerHealth.lua +2 -0
  537. package/interfaces/PocketItemDescription.d.ts +8 -0
  538. package/interfaces/PocketItemDescription.lua +2 -0
  539. package/interfaces/SaveData.d.ts +29 -0
  540. package/interfaces/SaveData.lua +2 -0
  541. package/interfaces/TrinketSituation.d.ts +8 -0
  542. package/interfaces/TrinketSituation.lua +2 -0
  543. package/interfaces/private/TSTLClassMetatable.d.ts +10 -0
  544. package/interfaces/private/TSTLClassMetatable.lua +2 -0
  545. package/lualib_bundle.lua +2488 -0
  546. package/maps/cardMap.d.ts +3 -0
  547. package/maps/cardMap.lua +211 -0
  548. package/maps/characterMap.d.ts +3 -0
  549. package/maps/characterMap.lua +89 -0
  550. package/maps/collectibleDescriptionMap.d.ts +3 -0
  551. package/maps/collectibleDescriptionMap.lua +728 -0
  552. package/maps/collectibleNameMap.d.ts +3 -0
  553. package/maps/collectibleNameMap.lua +728 -0
  554. package/maps/defaultPlayerStatMap.d.ts +3 -0
  555. package/maps/defaultPlayerStatMap.lua +24 -0
  556. package/maps/gridEntityTypeToBrokenStateMap.d.ts +2 -0
  557. package/maps/gridEntityTypeToBrokenStateMap.lua +26 -0
  558. package/maps/gridEntityXMLMap.d.ts +9 -0
  559. package/maps/gridEntityXMLMap.lua +51 -0
  560. package/maps/pillEffectMap.d.ts +3 -0
  561. package/maps/pillEffectMap.lua +89 -0
  562. package/maps/roomShapeToTopLeftWallGridIndexMap.d.ts +7 -0
  563. package/maps/roomShapeToTopLeftWallGridIndexMap.lua +15 -0
  564. package/maps/roomTypeMap.d.ts +3 -0
  565. package/maps/roomTypeMap.lua +44 -0
  566. package/maps/trinketDescriptionMap.d.ts +3 -0
  567. package/maps/trinketDescriptionMap.lua +196 -0
  568. package/maps/trinketNameMap.d.ts +3 -0
  569. package/maps/trinketNameMap.lua +196 -0
  570. package/objects/LRoomShapeToRectangles.d.ts +13 -0
  571. package/objects/LRoomShapeToRectangles.lua +33 -0
  572. package/objects/callbackRegisterFunctions.d.ts +5 -0
  573. package/objects/callbackRegisterFunctions.lua +231 -0
  574. package/objects/cardDescriptions.d.ts +5 -0
  575. package/objects/cardDescriptions.lua +105 -0
  576. package/objects/cardNames.d.ts +5 -0
  577. package/objects/cardNames.lua +105 -0
  578. package/objects/cardTypes.d.ts +5 -0
  579. package/objects/cardTypes.lua +106 -0
  580. package/objects/challengeNames.d.ts +5 -0
  581. package/objects/challengeNames.lua +53 -0
  582. package/objects/characterNames.d.ts +5 -0
  583. package/objects/characterNames.lua +49 -0
  584. package/objects/coinSubTypeToValue.d.ts +5 -0
  585. package/objects/coinSubTypeToValue.lua +15 -0
  586. package/objects/colors.d.ts +17 -0
  587. package/objects/colors.lua +12 -0
  588. package/objects/directionNames.d.ts +4 -0
  589. package/objects/directionNames.lua +11 -0
  590. package/objects/directionToDegrees.d.ts +4 -0
  591. package/objects/directionToDegrees.lua +11 -0
  592. package/objects/directionToVector.d.ts +4 -0
  593. package/objects/directionToVector.lua +13 -0
  594. package/objects/doorSlotFlagToDoorSlot.d.ts +5 -0
  595. package/objects/doorSlotFlagToDoorSlot.lua +16 -0
  596. package/objects/doorSlotToDirection.d.ts +4 -0
  597. package/objects/doorSlotToDirection.lua +16 -0
  598. package/objects/isaacAPIClassTypeToBrand.d.ts +5 -0
  599. package/objects/isaacAPIClassTypeToBrand.lua +7 -0
  600. package/objects/isaacAPIClassTypeToCopyFunction.d.ts +5 -0
  601. package/objects/isaacAPIClassTypeToCopyFunction.lua +13 -0
  602. package/objects/languageNames.d.ts +4 -0
  603. package/objects/languageNames.lua +13 -0
  604. package/objects/pillEffectClasses.d.ts +5 -0
  605. package/objects/pillEffectClasses.lua +59 -0
  606. package/objects/pillEffectNames.d.ts +5 -0
  607. package/objects/pillEffectNames.lua +57 -0
  608. package/objects/pillEffectTypes.d.ts +5 -0
  609. package/objects/pillEffectTypes.lua +58 -0
  610. package/objects/roomShapeBounds.d.ts +8 -0
  611. package/objects/roomShapeBounds.lua +24 -0
  612. package/objects/roomShapeLayoutSizes.d.ts +10 -0
  613. package/objects/roomShapeLayoutSizes.lua +25 -0
  614. package/objects/roomShapeToBottomRightPosition.d.ts +8 -0
  615. package/objects/roomShapeToBottomRightPosition.lua +20 -0
  616. package/objects/roomShapeToDoorSlots.d.ts +4 -0
  617. package/objects/roomShapeToDoorSlots.lua +46 -0
  618. package/objects/roomShapeToDoorSlotsToGridIndexDelta.d.ts +8 -0
  619. package/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +87 -0
  620. package/objects/roomShapeToGridWidth.d.ts +4 -0
  621. package/objects/roomShapeToGridWidth.lua +20 -0
  622. package/objects/roomShapeToTopLeftPosition.d.ts +8 -0
  623. package/objects/roomShapeToTopLeftPosition.lua +22 -0
  624. package/objects/roomShapeVolumes.d.ts +13 -0
  625. package/objects/roomShapeVolumes.lua +27 -0
  626. package/objects/roomTypeNames.d.ts +5 -0
  627. package/objects/roomTypeNames.lua +37 -0
  628. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.d.ts +4 -0
  629. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.lua +13 -0
  630. package/objects/stageTypeToLetter.d.ts +4 -0
  631. package/objects/stageTypeToLetter.lua +12 -0
  632. package/objects/transformationNames.d.ts +5 -0
  633. package/objects/transformationNames.lua +21 -0
  634. package/package.json +2 -3
  635. package/patchErrorFunctions.d.ts +1 -0
  636. package/patchErrorFunctions.lua +50 -0
  637. package/sets/LRoomShapesSet.d.ts +2 -0
  638. package/sets/LRoomShapesSet.lua +8 -0
  639. package/sets/bossSets.d.ts +4 -0
  640. package/sets/bossSets.lua +531 -0
  641. package/sets/charactersThatStartWithAnActiveItemSet.d.ts +2 -0
  642. package/sets/charactersThatStartWithAnActiveItemSet.lua +20 -0
  643. package/sets/charactersWithBlackHeartFromEternalHeartSet.d.ts +2 -0
  644. package/sets/charactersWithBlackHeartFromEternalHeartSet.lua +8 -0
  645. package/sets/charactersWithFreeDevilDealsSet.d.ts +2 -0
  646. package/sets/charactersWithFreeDevilDealsSet.lua +8 -0
  647. package/sets/charactersWithNoRedHeartsSet.d.ts +6 -0
  648. package/sets/charactersWithNoRedHeartsSet.lua +17 -0
  649. package/sets/charactersWithNoSoulHeartsSet.d.ts +6 -0
  650. package/sets/charactersWithNoSoulHeartsSet.lua +14 -0
  651. package/sets/chestPickupVariantsSet.d.ts +2 -0
  652. package/sets/chestPickupVariantsSet.lua +21 -0
  653. package/sets/familiarsThatShootPlayerTearsSet.d.ts +2 -0
  654. package/sets/familiarsThatShootPlayerTearsSet.lua +17 -0
  655. package/sets/lostStyleCharactersSet.d.ts +6 -0
  656. package/sets/lostStyleCharactersSet.lua +14 -0
  657. package/sets/mineShaftRoomSubTypesSet.d.ts +2 -0
  658. package/sets/mineShaftRoomSubTypesSet.lua +14 -0
  659. package/sets/redHeartSubTypesSet.d.ts +2 -0
  660. package/sets/redHeartSubTypesSet.lua +8 -0
  661. package/sets/sinEntityTypesSet.d.ts +2 -0
  662. package/sets/sinEntityTypesSet.lua +16 -0
  663. package/sets/singleUseActiveCollectibleTypesSet.d.ts +2 -0
  664. package/sets/singleUseActiveCollectibleTypesSet.lua +17 -0
  665. package/sets/storyBossesSet.d.ts +2 -0
  666. package/sets/storyBossesSet.lua +22 -0
  667. package/types/AnyEntity.d.ts +2 -0
  668. package/types/AnyEntity.lua +2 -0
  669. package/types/CollectibleIndex.d.ts +16 -0
  670. package/types/CollectibleIndex.lua +2 -0
  671. package/types/PickingUpItem.d.ts +34 -0
  672. package/types/PickingUpItem.lua +27 -0
  673. package/types/PlayerIndex.d.ts +16 -0
  674. package/types/PlayerIndex.lua +2 -0
  675. package/types/private/IsaacAPIClass.d.ts +4 -0
  676. package/types/private/IsaacAPIClass.lua +2 -0
  677. package/types/private/SerializedIsaacAPIClass.d.ts +4 -0
  678. package/types/private/SerializedIsaacAPIClass.lua +2 -0
  679. package/types/private/TSTLClass.d.ts +4 -0
  680. package/types/private/TSTLClass.lua +2 -0
  681. package/upgradeMod.d.ts +23 -0
  682. package/upgradeMod.lua +33 -0
  683. package/.eslintrc.js +0 -70
  684. package/build.sh +0 -27
  685. package/docs.sh +0 -21
  686. package/lint.sh +0 -34
  687. package/project.json +0 -37
  688. package/release.sh +0 -16
  689. package/scripts/.eslintrc.js +0 -21
  690. package/scripts/docsEntryPointLint.ts +0 -135
  691. package/scripts/tsconfig.json +0 -5
  692. package/src/cachedClasses.ts +0 -39
  693. package/src/callbacks/customRevive.ts +0 -206
  694. package/src/callbacks/itemPickup.ts +0 -101
  695. package/src/callbacks/postBombInitLate.ts +0 -36
  696. package/src/callbacks/postBoneSwing.ts +0 -64
  697. package/src/callbacks/postCollectibleInitFirst.ts +0 -39
  698. package/src/callbacks/postCursedTeleport.ts +0 -183
  699. package/src/callbacks/postCustomDoorEnter.ts +0 -297
  700. package/src/callbacks/postDoorRender.ts +0 -26
  701. package/src/callbacks/postDoorUpdate.ts +0 -26
  702. package/src/callbacks/postEffectInitLate.ts +0 -36
  703. package/src/callbacks/postEffectStateChanged.ts +0 -43
  704. package/src/callbacks/postEsauJr.ts +0 -107
  705. package/src/callbacks/postFamiliarInitLate.ts +0 -36
  706. package/src/callbacks/postFamiliarStateChanged.ts +0 -43
  707. package/src/callbacks/postFlip.ts +0 -88
  708. package/src/callbacks/postGreedModeWave.ts +0 -41
  709. package/src/callbacks/postGridEntity.ts +0 -159
  710. package/src/callbacks/postGridEntityCollision.ts +0 -69
  711. package/src/callbacks/postGridEntityRender.ts +0 -26
  712. package/src/callbacks/postHolyMantleRemoved.ts +0 -55
  713. package/src/callbacks/postItemDischarged.ts +0 -149
  714. package/src/callbacks/postKnifeInitLate.ts +0 -36
  715. package/src/callbacks/postLaserInitLate.ts +0 -36
  716. package/src/callbacks/postNPCInitLate.ts +0 -36
  717. package/src/callbacks/postNPCStateChanged.ts +0 -42
  718. package/src/callbacks/postNewRoomEarly.ts +0 -90
  719. package/src/callbacks/postPickupCollect.ts +0 -48
  720. package/src/callbacks/postPickupInitLate.ts +0 -36
  721. package/src/callbacks/postPickupStateChanged.ts +0 -43
  722. package/src/callbacks/postPitRender.ts +0 -26
  723. package/src/callbacks/postPitUpdate.ts +0 -26
  724. package/src/callbacks/postPlayerChangeHealth.ts +0 -62
  725. package/src/callbacks/postPlayerChangeType.ts +0 -56
  726. package/src/callbacks/postPlayerFatalDamage.ts +0 -98
  727. package/src/callbacks/postPlayerInitLate.ts +0 -37
  728. package/src/callbacks/postPlayerReordered.ts +0 -142
  729. package/src/callbacks/postPoopRender.ts +0 -26
  730. package/src/callbacks/postPoopUpdate.ts +0 -26
  731. package/src/callbacks/postPressurePlateRender.ts +0 -26
  732. package/src/callbacks/postPressurePlateUpdate.ts +0 -26
  733. package/src/callbacks/postProjectileInitLate.ts +0 -36
  734. package/src/callbacks/postPurchase.ts +0 -64
  735. package/src/callbacks/postRockRender.ts +0 -26
  736. package/src/callbacks/postRockUpdate.ts +0 -26
  737. package/src/callbacks/postRoomClearChanged.ts +0 -52
  738. package/src/callbacks/postSacrifice.ts +0 -62
  739. package/src/callbacks/postSlotInitUpdate.ts +0 -63
  740. package/src/callbacks/postSlotRender.ts +0 -96
  741. package/src/callbacks/postSpikesRender.ts +0 -26
  742. package/src/callbacks/postSpikesUpdate.ts +0 -26
  743. package/src/callbacks/postTNTRender.ts +0 -26
  744. package/src/callbacks/postTNTUpdate.ts +0 -26
  745. package/src/callbacks/postTearInitLate.ts +0 -36
  746. package/src/callbacks/postTearInitVeryLate.ts +0 -41
  747. package/src/callbacks/postTransformation.ts +0 -59
  748. package/src/callbacks/postTrinketBreak.ts +0 -110
  749. package/src/callbacks/preBerserkDeath.ts +0 -49
  750. package/src/callbacks/preNewLevel.ts +0 -55
  751. package/src/callbacks/reorderedCallbacks.ts +0 -166
  752. package/src/callbacks/subscriptions/postBombInitLate.ts +0 -32
  753. package/src/callbacks/subscriptions/postBoneSwing.ts +0 -24
  754. package/src/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
  755. package/src/callbacks/subscriptions/postCursedTeleport.ts +0 -24
  756. package/src/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
  757. package/src/callbacks/subscriptions/postCustomRevive.ts +0 -36
  758. package/src/callbacks/subscriptions/postDoorRender.ts +0 -35
  759. package/src/callbacks/subscriptions/postDoorUpdate.ts +0 -35
  760. package/src/callbacks/subscriptions/postEffectInitLate.ts +0 -32
  761. package/src/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
  762. package/src/callbacks/subscriptions/postEsauJr.ts +0 -24
  763. package/src/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
  764. package/src/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
  765. package/src/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
  766. package/src/callbacks/subscriptions/postFirstFlip.ts +0 -24
  767. package/src/callbacks/subscriptions/postFlip.ts +0 -22
  768. package/src/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
  769. package/src/callbacks/subscriptions/postGreedModeWave.ts +0 -24
  770. package/src/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
  771. package/src/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
  772. package/src/callbacks/subscriptions/postGridEntityInit.ts +0 -51
  773. package/src/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
  774. package/src/callbacks/subscriptions/postGridEntityRender.ts +0 -51
  775. package/src/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
  776. package/src/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
  777. package/src/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
  778. package/src/callbacks/subscriptions/postItemDischarged.ts +0 -43
  779. package/src/callbacks/subscriptions/postItemPickup.ts +0 -64
  780. package/src/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
  781. package/src/callbacks/subscriptions/postLaserInitLate.ts +0 -32
  782. package/src/callbacks/subscriptions/postNPCInitLate.ts +0 -32
  783. package/src/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
  784. package/src/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
  785. package/src/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
  786. package/src/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
  787. package/src/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
  788. package/src/callbacks/subscriptions/postPickupCollect.ts +0 -34
  789. package/src/callbacks/subscriptions/postPickupInitLate.ts +0 -31
  790. package/src/callbacks/subscriptions/postPickupStateChanged.ts +0 -35
  791. package/src/callbacks/subscriptions/postPitRender.ts +0 -35
  792. package/src/callbacks/subscriptions/postPitUpdate.ts +0 -35
  793. package/src/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -45
  794. package/src/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
  795. package/src/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -67
  796. package/src/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
  797. package/src/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
  798. package/src/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
  799. package/src/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
  800. package/src/callbacks/subscriptions/postPoopRender.ts +0 -35
  801. package/src/callbacks/subscriptions/postPoopUpdate.ts +0 -35
  802. package/src/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
  803. package/src/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
  804. package/src/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
  805. package/src/callbacks/subscriptions/postPurchase.ts +0 -31
  806. package/src/callbacks/subscriptions/postRockRender.ts +0 -35
  807. package/src/callbacks/subscriptions/postRockUpdate.ts +0 -35
  808. package/src/callbacks/subscriptions/postRoomClearChanged.ts +0 -24
  809. package/src/callbacks/subscriptions/postSacrifice.ts +0 -43
  810. package/src/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
  811. package/src/callbacks/subscriptions/postSlotDestroyed.ts +0 -32
  812. package/src/callbacks/subscriptions/postSlotInit.ts +0 -32
  813. package/src/callbacks/subscriptions/postSlotRender.ts +0 -32
  814. package/src/callbacks/subscriptions/postSlotUpdate.ts +0 -32
  815. package/src/callbacks/subscriptions/postSpikesRender.ts +0 -35
  816. package/src/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
  817. package/src/callbacks/subscriptions/postTNTRender.ts +0 -35
  818. package/src/callbacks/subscriptions/postTNTUpdate.ts +0 -35
  819. package/src/callbacks/subscriptions/postTearInitLate.ts +0 -32
  820. package/src/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
  821. package/src/callbacks/subscriptions/postTransformation.ts +0 -40
  822. package/src/callbacks/subscriptions/postTrinketBreak.ts +0 -38
  823. package/src/callbacks/subscriptions/preBerserkDeath.ts +0 -42
  824. package/src/callbacks/subscriptions/preCustomRevive.ts +0 -45
  825. package/src/callbacks/subscriptions/preItemPickup.ts +0 -64
  826. package/src/callbacks/subscriptions/preNewLevel.ts +0 -24
  827. package/src/classes/DefaultMap.ts +0 -220
  828. package/src/classes/ModUpgraded.ts +0 -83
  829. package/src/constants.ts +0 -140
  830. package/src/constantsFirstLast.ts +0 -212
  831. package/src/enums/HealthType.ts +0 -16
  832. package/src/enums/ModCallbackCustom.ts +0 -943
  833. package/src/enums/PocketItemType.ts +0 -8
  834. package/src/enums/SerializationType.ts +0 -5
  835. package/src/enums/private/CopyableIsaacAPIClassType.ts +0 -7
  836. package/src/enums/private/SaveDataKey.ts +0 -14
  837. package/src/enums/private/SerializationBrand.ts +0 -42
  838. package/src/features/characterHealthConversion.ts +0 -116
  839. package/src/features/characterStats.ts +0 -61
  840. package/src/features/debugDisplay/debugDisplay.ts +0 -221
  841. package/src/features/debugDisplay/exports.ts +0 -368
  842. package/src/features/debugDisplay/v.ts +0 -65
  843. package/src/features/deployJSONRoom.ts +0 -672
  844. package/src/features/disableInputs.ts +0 -193
  845. package/src/features/disableSound.ts +0 -77
  846. package/src/features/extraConsoleCommands/commandsDisplay.ts +0 -290
  847. package/src/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
  848. package/src/features/extraConsoleCommands/init.ts +0 -334
  849. package/src/features/extraConsoleCommands/listCommands.ts +0 -1298
  850. package/src/features/extraConsoleCommands/v.ts +0 -14
  851. package/src/features/fadeInRemover.ts +0 -60
  852. package/src/features/fastReset.ts +0 -75
  853. package/src/features/forgottenSwitch.ts +0 -50
  854. package/src/features/getCollectibleItemPoolType.ts +0 -66
  855. package/src/features/playerInventory.ts +0 -187
  856. package/src/features/ponyDetection.ts +0 -74
  857. package/src/features/preventCollectibleRotation.ts +0 -113
  858. package/src/features/runInNFrames.ts +0 -148
  859. package/src/features/saveDataManager/constants.ts +0 -4
  860. package/src/features/saveDataManager/exports.ts +0 -230
  861. package/src/features/saveDataManager/load.ts +0 -90
  862. package/src/features/saveDataManager/main.ts +0 -187
  863. package/src/features/saveDataManager/maps.ts +0 -13
  864. package/src/features/saveDataManager/merge.ts +0 -182
  865. package/src/features/saveDataManager/save.ts +0 -66
  866. package/src/features/saveDataManager/serializationBrand.ts +0 -15
  867. package/src/features/sirenHelpers.ts +0 -129
  868. package/src/features/taintedLazarusPlayers.ts +0 -113
  869. package/src/featuresInitialized.ts +0 -20
  870. package/src/functions/array.ts +0 -412
  871. package/src/functions/benchmark.ts +0 -36
  872. package/src/functions/bitwise.ts +0 -24
  873. package/src/functions/boss.ts +0 -227
  874. package/src/functions/cacheFlag.ts +0 -12
  875. package/src/functions/cards.ts +0 -267
  876. package/src/functions/challenges.ts +0 -11
  877. package/src/functions/character.ts +0 -124
  878. package/src/functions/charge.ts +0 -237
  879. package/src/functions/chargeBar.ts +0 -67
  880. package/src/functions/collectibleCacheFlag.ts +0 -90
  881. package/src/functions/collectibleSet.ts +0 -57
  882. package/src/functions/collectibleTag.ts +0 -89
  883. package/src/functions/collectibles.ts +0 -610
  884. package/src/functions/color.ts +0 -149
  885. package/src/functions/debug.ts +0 -65
  886. package/src/functions/deepCopy.ts +0 -508
  887. package/src/functions/deepCopyTests.ts +0 -390
  888. package/src/functions/direction.ts +0 -16
  889. package/src/functions/doors.ts +0 -343
  890. package/src/functions/easing.ts +0 -182
  891. package/src/functions/eden.ts +0 -47
  892. package/src/functions/entity.ts +0 -352
  893. package/src/functions/entitySpecific.ts +0 -889
  894. package/src/functions/entityTypes.ts +0 -6
  895. package/src/functions/enums.ts +0 -145
  896. package/src/functions/familiars.ts +0 -106
  897. package/src/functions/flag.ts +0 -165
  898. package/src/functions/flying.ts +0 -117
  899. package/src/functions/globals.ts +0 -249
  900. package/src/functions/gridEntity.ts +0 -511
  901. package/src/functions/gridEntitySpecific.ts +0 -112
  902. package/src/functions/input.ts +0 -139
  903. package/src/functions/isaacAPIClass.ts +0 -65
  904. package/src/functions/jsonHelpers.ts +0 -45
  905. package/src/functions/jsonRoom.ts +0 -100
  906. package/src/functions/kColor.ts +0 -130
  907. package/src/functions/language.ts +0 -13
  908. package/src/functions/level.ts +0 -31
  909. package/src/functions/log.ts +0 -660
  910. package/src/functions/map.ts +0 -56
  911. package/src/functions/math.ts +0 -149
  912. package/src/functions/mergeTests.ts +0 -288
  913. package/src/functions/npc.ts +0 -148
  914. package/src/functions/pickupVariants.ts +0 -60
  915. package/src/functions/pickups.ts +0 -449
  916. package/src/functions/pills.ts +0 -182
  917. package/src/functions/player.ts +0 -975
  918. package/src/functions/playerDataStructures.ts +0 -150
  919. package/src/functions/playerHealth.ts +0 -318
  920. package/src/functions/playerIndex.ts +0 -195
  921. package/src/functions/pocketItems.ts +0 -149
  922. package/src/functions/positionVelocity.ts +0 -188
  923. package/src/functions/random.ts +0 -77
  924. package/src/functions/revive.ts +0 -201
  925. package/src/functions/rng.ts +0 -177
  926. package/src/functions/roomData.ts +0 -199
  927. package/src/functions/roomGrid.ts +0 -109
  928. package/src/functions/roomShape.ts +0 -80
  929. package/src/functions/rooms.ts +0 -667
  930. package/src/functions/run.ts +0 -36
  931. package/src/functions/seeds.ts +0 -19
  932. package/src/functions/serialization.ts +0 -97
  933. package/src/functions/set.ts +0 -95
  934. package/src/functions/sound.ts +0 -9
  935. package/src/functions/spawnCollectible.ts +0 -104
  936. package/src/functions/sprite.ts +0 -107
  937. package/src/functions/stage.ts +0 -125
  938. package/src/functions/string.ts +0 -47
  939. package/src/functions/table.ts +0 -139
  940. package/src/functions/tears.ts +0 -32
  941. package/src/functions/transformations.ts +0 -137
  942. package/src/functions/trinketCacheFlag.ts +0 -60
  943. package/src/functions/trinketGive.ts +0 -157
  944. package/src/functions/trinkets.ts +0 -215
  945. package/src/functions/tstlClass.ts +0 -91
  946. package/src/functions/ui.ts +0 -138
  947. package/src/functions/utils.ts +0 -200
  948. package/src/functions/vector.ts +0 -145
  949. package/src/index.ts +0 -162
  950. package/src/initCustomCallbacks.ts +0 -120
  951. package/src/initFeatures.ts +0 -37
  952. package/src/interfaces/AddCallbackParameterCustom.ts +0 -174
  953. package/src/interfaces/ChargeBarSprites.ts +0 -12
  954. package/src/interfaces/JSONDoor.ts +0 -13
  955. package/src/interfaces/JSONEntity.ts +0 -16
  956. package/src/interfaces/JSONRoom.ts +0 -36
  957. package/src/interfaces/JSONRooms.ts +0 -12
  958. package/src/interfaces/JSONSpawn.ts +0 -14
  959. package/src/interfaces/PlayerHealth.ts +0 -16
  960. package/src/interfaces/PocketItemDescription.ts +0 -9
  961. package/src/interfaces/SaveData.ts +0 -29
  962. package/src/interfaces/TrinketSituation.ts +0 -9
  963. package/src/interfaces/private/TSTLClassMetatable.ts +0 -8
  964. package/src/maps/cardMap.ts +0 -209
  965. package/src/maps/characterMap.ts +0 -87
  966. package/src/maps/collectibleDescriptionMap.ts +0 -732
  967. package/src/maps/collectibleNameMap.ts +0 -731
  968. package/src/maps/defaultPlayerStatMap.ts +0 -17
  969. package/src/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
  970. package/src/maps/gridEntityXMLMap.ts +0 -176
  971. package/src/maps/pillEffectMap.ts +0 -88
  972. package/src/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
  973. package/src/maps/roomTypeMap.ts +0 -40
  974. package/src/maps/trinketDescriptionMap.ts +0 -200
  975. package/src/maps/trinketNameMap.ts +0 -198
  976. package/src/objects/LRoomShapeToRectangles.ts +0 -44
  977. package/src/objects/callbackRegisterFunctions.ts +0 -171
  978. package/src/objects/cardDescriptions.ts +0 -105
  979. package/src/objects/cardNames.ts +0 -105
  980. package/src/objects/cardTypes.ts +0 -104
  981. package/src/objects/challengeNames.ts +0 -52
  982. package/src/objects/characterNames.ts +0 -48
  983. package/src/objects/coinSubTypeToValue.ts +0 -14
  984. package/src/objects/colors.ts +0 -16
  985. package/src/objects/directionNames.ts +0 -11
  986. package/src/objects/directionToDegrees.ts +0 -11
  987. package/src/objects/directionToVector.ts +0 -12
  988. package/src/objects/doorSlotFlagToDoorSlot.ts +0 -16
  989. package/src/objects/doorSlotToDirection.ts +0 -14
  990. package/src/objects/isaacAPIClassTypeToBrand.ts +0 -11
  991. package/src/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
  992. package/src/objects/languageNames.ts +0 -13
  993. package/src/objects/pillEffectClasses.ts +0 -63
  994. package/src/objects/pillEffectNames.ts +0 -57
  995. package/src/objects/pillEffectTypes.ts +0 -62
  996. package/src/objects/roomShapeBounds.ts +0 -71
  997. package/src/objects/roomShapeLayoutSizes.ts +0 -45
  998. package/src/objects/roomShapeToBottomRightPosition.ts +0 -25
  999. package/src/objects/roomShapeToDoorSlots.ts +0 -83
  1000. package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
  1001. package/src/objects/roomShapeToGridWidth.ts +0 -21
  1002. package/src/objects/roomShapeToTopLeftPosition.ts +0 -26
  1003. package/src/objects/roomShapeVolumes.ts +0 -38
  1004. package/src/objects/roomTypeNames.ts +0 -36
  1005. package/src/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
  1006. package/src/objects/stageTypeToLetter.ts +0 -15
  1007. package/src/objects/transformationNames.ts +0 -20
  1008. package/src/patchErrorFunctions.ts +0 -92
  1009. package/src/sets/LRoomShapesSet.ts +0 -8
  1010. package/src/sets/bossSets.ts +0 -470
  1011. package/src/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
  1012. package/src/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
  1013. package/src/sets/charactersWithFreeDevilDealsSet.ts +0 -4
  1014. package/src/sets/charactersWithNoRedHeartsSet.ts +0 -17
  1015. package/src/sets/charactersWithNoSoulHeartsSet.ts +0 -14
  1016. package/src/sets/chestPickupVariantsSet.ts +0 -16
  1017. package/src/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
  1018. package/src/sets/lostStyleCharactersSet.ts +0 -13
  1019. package/src/sets/mineShaftRoomSubTypesSet.ts +0 -10
  1020. package/src/sets/redHeartSubTypesSet.ts +0 -7
  1021. package/src/sets/sinEntityTypesSet.ts +0 -11
  1022. package/src/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
  1023. package/src/sets/storyBossesSet.ts +0 -17
  1024. package/src/types/AnyEntity.ts +0 -12
  1025. package/src/types/AwaitingTextInput.d.ts +0 -2
  1026. package/src/types/CollectibleIndex.ts +0 -14
  1027. package/src/types/PickingUpItem.ts +0 -89
  1028. package/src/types/PlayerIndex.ts +0 -13
  1029. package/src/types/private/IsaacAPIClass.ts +0 -3
  1030. package/src/types/private/SerializedIsaacAPIClass.ts +0 -3
  1031. package/src/types/private/TSTLClass.ts +0 -3
  1032. package/src/upgradeMod.ts +0 -55
  1033. package/tsconfig.json +0 -42
  1034. package/typedoc.json +0 -158
  1035. package/website-root.md +0 -11
@@ -1,975 +0,0 @@
1
- import {
2
- ActiveSlot,
3
- CacheFlag,
4
- Challenge,
5
- CollectibleType,
6
- NullItemID,
7
- PlayerForm,
8
- PlayerType,
9
- TrinketType,
10
- } from "isaac-typescript-definitions";
11
- import { game, itemConfig } from "../cachedClasses";
12
- import { HealthType } from "../enums/HealthType";
13
- import { getLastElement, sumArray } from "./array";
14
- import { countSetBits, getKBitOfN, getNumBitsOfN } from "./bitwise";
15
- import {
16
- getCharacterMaxHeartContainers,
17
- getCharacterName,
18
- isVanillaCharacter,
19
- } from "./character";
20
- import { getCollectibleMaxCharges } from "./collectibles";
21
- import { getCollectibleSet } from "./collectibleSet";
22
- import { getEnumValues } from "./enums";
23
- import { getPlayerIndexVanilla, getPlayers } from "./playerIndex";
24
- import { addTearsStat } from "./tears";
25
- import { ensureAllCases, repeat } from "./utils";
26
-
27
- const STAT_CACHE_FLAGS_SET: ReadonlySet<CacheFlag> = new Set([
28
- CacheFlag.DAMAGE, // 1 << 0
29
- CacheFlag.FIRE_DELAY, // 1 << 1
30
- CacheFlag.SHOT_SPEED, // 1 << 2
31
- CacheFlag.RANGE, // 1 << 3
32
- CacheFlag.SPEED, // 1 << 4
33
- CacheFlag.LUCK, // 1 << 10
34
- ]);
35
-
36
- export function addCollectibleCostume(
37
- player: EntityPlayer,
38
- collectibleType: CollectibleType,
39
- ): void {
40
- const itemConfigItem = itemConfig.GetCollectible(collectibleType);
41
- if (itemConfigItem === undefined) {
42
- return;
43
- }
44
-
45
- player.AddCostume(itemConfigItem, false);
46
- }
47
-
48
- /**
49
- * Helper function to add a stat to a player based on the `CacheFlag` provided. Call this function
50
- * from the EvaluateCache callback.
51
- *
52
- * Note that for `CacheFlag.FIRE_DELAY`, the "amount" argument will be interpreted as the tear stat
53
- * to add (and not the amount to mutate `EntityPlayer.MaxFireDelay` by).
54
- *
55
- * This function supports the following cache flags:
56
- * - CacheFlag.DAMAGE (1 << 0)
57
- * - CacheFlag.FIRE_DELAY (1 << 1)
58
- * - CacheFlag.SHOT_SPEED (1 << 2)
59
- * - CacheFlag.RANGE (1 << 3)
60
- * - CacheFlag.SPEED (1 << 4)
61
- * - CacheFlag.LUCK (1 << 10)
62
- */
63
- export function addStat(
64
- player: EntityPlayer,
65
- cacheFlag: CacheFlag,
66
- amount: number,
67
- ): void {
68
- if (!STAT_CACHE_FLAGS_SET.has(cacheFlag)) {
69
- error(
70
- `You cannot add a stat to a player with the cache flag of: ${cacheFlag}`,
71
- );
72
- }
73
-
74
- switch (cacheFlag) {
75
- // 1 << 0
76
- case CacheFlag.DAMAGE: {
77
- player.Damage += amount;
78
- break;
79
- }
80
-
81
- // 1 << 1
82
- case CacheFlag.FIRE_DELAY: {
83
- addTearsStat(player, amount);
84
- break;
85
- }
86
-
87
- // 1 << 2
88
- case CacheFlag.SHOT_SPEED: {
89
- player.ShotSpeed += amount;
90
- break;
91
- }
92
-
93
- // 1 << 3
94
- case CacheFlag.RANGE: {
95
- player.TearHeight += amount;
96
- break;
97
- }
98
-
99
- // 1 << 4
100
- case CacheFlag.SPEED: {
101
- player.MoveSpeed += amount;
102
- break;
103
- }
104
-
105
- // 1 << 10
106
- case CacheFlag.LUCK: {
107
- player.Luck += amount;
108
- break;
109
- }
110
-
111
- default: {
112
- break;
113
- }
114
- }
115
- }
116
-
117
- export function addTrinketCostume(
118
- player: EntityPlayer,
119
- trinketType: TrinketType,
120
- ): void {
121
- const itemConfigTrinket = itemConfig.GetTrinket(trinketType);
122
- if (itemConfigTrinket === undefined) {
123
- return;
124
- }
125
-
126
- player.AddCostume(itemConfigTrinket, false);
127
- }
128
-
129
- export function anyPlayerHasCollectible(
130
- collectibleType: CollectibleType,
131
- ): boolean {
132
- const players = getPlayers();
133
- return players.some((player) => player.HasCollectible(collectibleType));
134
- }
135
-
136
- export function anyPlayerHasTrinket(trinketType: TrinketType): boolean {
137
- const players = getPlayers();
138
- return players.some((player) => player.HasTrinket(trinketType));
139
- }
140
-
141
- /**
142
- * Helper function to determine if the given character is present.
143
- *
144
- * This function is variadic, meaning that you can supply as many characters as you want to check
145
- * for. Returns true if any of the characters supplied are present.
146
- */
147
- export function anyPlayerIs(...matchingCharacters: PlayerType[]): boolean {
148
- const matchingCharacterSet = new Set(matchingCharacters);
149
- const characters = getCharacters();
150
- return characters.some((character) => matchingCharacterSet.has(character));
151
- }
152
-
153
- /**
154
- * Helper function to determine if a player will destroy a rock/pot/skull if they walk over it.
155
- *
156
- * The following situations allow for this to be true:
157
- * - the player has Leo (collectible 302)
158
- * - the player has Thunder Thighs (collectible 314)
159
- * - the player is under the effects of Mega Mush (collectible 625)
160
- * - the player has Stompy (transformation 13)
161
- */
162
- export function canPlayerCrushRocks(player: EntityPlayer): boolean {
163
- const effects = player.GetEffects();
164
-
165
- return (
166
- player.HasCollectible(CollectibleType.LEO) ||
167
- player.HasCollectible(CollectibleType.THUNDER_THIGHS) ||
168
- effects.HasCollectibleEffect(CollectibleType.MEGA_MUSH) ||
169
- player.HasPlayerForm(PlayerForm.STOMPY)
170
- );
171
- }
172
-
173
- /**
174
- * Helper function to find the active slot that the player has the corresponding collectible type
175
- * in. Returns undefined if the player does not have the collectible in any active slot.
176
- */
177
- export function getActiveItemSlot(
178
- player: EntityPlayer,
179
- collectibleType: CollectibleType,
180
- ): ActiveSlot | undefined {
181
- const activeSlots = getEnumValues(ActiveSlot);
182
- return activeSlots.find((activeSlot) => {
183
- const activeItem = player.GetActiveItem(activeSlot);
184
- return activeItem === collectibleType;
185
- });
186
- }
187
-
188
- /**
189
- * Helper function to get how long Azazel's Brimstone laser should be. You can pass either an
190
- * `EntityPlayer` object or a tear height stat.
191
- *
192
- * The formula for calculating it is: 32 - 2.5 * player.TearHeight
193
- */
194
- export function getAzazelBrimstoneDistance(
195
- playerOrTearHeight: EntityPlayer | float,
196
- ): float {
197
- let tearHeight = tonumber(playerOrTearHeight);
198
- if (tearHeight === undefined) {
199
- const player = playerOrTearHeight as EntityPlayer;
200
- tearHeight = player.TearHeight;
201
- }
202
-
203
- return 32 - 2.5 * tearHeight;
204
- }
205
-
206
- /** Helper function to get an array containing the characters of all of the current players. */
207
- export function getCharacters(): PlayerType[] {
208
- const players = getPlayers();
209
- return players.map((player) => player.GetPlayerType());
210
- }
211
-
212
- export function getClosestPlayer(position: Vector): EntityPlayer {
213
- let closestPlayer: EntityPlayer | null = null;
214
- let closestDistance = math.huge;
215
- for (const player of getPlayers()) {
216
- const distance = position.Distance(player.Position);
217
-
218
- if (distance < closestDistance) {
219
- closestPlayer = player;
220
- closestDistance = distance;
221
- }
222
- }
223
-
224
- if (closestPlayer === null) {
225
- error("Failed to find the closest player.");
226
- }
227
-
228
- return closestPlayer;
229
- }
230
-
231
- /**
232
- * Helper function to get an array of temporary effects for a player. This is helpful so that you
233
- * don't have to manually create an array from an `EffectsList` object.
234
- */
235
- export function getEffectsList(player: EntityPlayer): TemporaryEffect[] {
236
- const effects = player.GetEffects();
237
- const effectsList = effects.GetEffectsList();
238
-
239
- const effectArray: TemporaryEffect[] = [];
240
- for (let i = 0; i < effectsList.Size; i++) {
241
- const effect = effectsList.Get(i);
242
- if (effect !== undefined) {
243
- effectArray.push(effect);
244
- }
245
- }
246
-
247
- return effectArray;
248
- }
249
-
250
- /**
251
- * Helper function to return the player with the highest ID, according to the `Isaac.GetPlayer`
252
- * method.
253
- */
254
- export function getFinalPlayer(): EntityPlayer {
255
- const players = getPlayers();
256
-
257
- const lastPlayer = getLastElement(players);
258
- if (lastPlayer === undefined) {
259
- error("Failed to get the final player since there were 0 players.");
260
- }
261
-
262
- return lastPlayer;
263
- }
264
-
265
- /**
266
- * Helper function to get the first player with the lowest frame count. Useful to find a freshly
267
- * spawned player after using items like Esau Jr. Don't use this function if two or more players
268
- * will be spawned on the same frame.
269
- */
270
- export function getNewestPlayer(): EntityPlayer {
271
- let newestPlayer: EntityPlayer | null = null;
272
- let lowestFrame = math.huge;
273
- for (const player of getPlayers()) {
274
- if (player.FrameCount < lowestFrame) {
275
- newestPlayer = player;
276
- lowestFrame = player.FrameCount;
277
- }
278
- }
279
-
280
- if (newestPlayer === null) {
281
- error("Failed to find the newest player.");
282
- }
283
-
284
- return newestPlayer;
285
- }
286
-
287
- /**
288
- * Returns the number of slots that the player has remaining for new heart containers, accounting
289
- * for broken hearts. For example, if the player is Judas and has 1 red heart containers and 2 full
290
- * soul hearts and 3 broken hearts, then this function would return 6 (i.e. 12 - 1 - 2 - 3).
291
- */
292
- export function getPlayerAvailableHeartSlots(player: EntityPlayer): int {
293
- const maxHeartContainers = getPlayerMaxHeartContainers(player);
294
- const effectiveMaxHearts = player.GetEffectiveMaxHearts();
295
- const normalAndBoneHeartContainers = effectiveMaxHearts / 2;
296
- const soulHearts = player.GetSoulHearts();
297
- const soulHeartContainers = math.ceil(soulHearts / 2);
298
- const totalHeartContainers =
299
- normalAndBoneHeartContainers + soulHeartContainers;
300
- const brokenHearts = player.GetBrokenHearts();
301
- const totalOccupiedHeartSlots = totalHeartContainers + brokenHearts;
302
-
303
- return maxHeartContainers - totalOccupiedHeartSlots;
304
- }
305
-
306
- /**
307
- * Returns the number of black hearts that the player has, excluding any soul hearts. For example,
308
- * if the player has one full black heart, one full soul heart, and one half black heart, this
309
- * function returns 3.
310
- *
311
- * This is different from the `EntityPlayer.GetBlackHearts` method, since that returns a bitmask.
312
- */
313
- export function getPlayerBlackHearts(player: EntityPlayer): int {
314
- const blackHeartsBitmask = player.GetBlackHearts();
315
- const blackHeartBits = countSetBits(blackHeartsBitmask);
316
-
317
- return blackHeartBits * 2;
318
- }
319
-
320
- /**
321
- * Iterates over all players and checks if any are close enough to the specified position.
322
- *
323
- * @returns The first player found when iterating upwards from index 0.
324
- */
325
- export function getPlayerCloserThan(
326
- position: Vector,
327
- distance: float,
328
- ): EntityPlayer | undefined {
329
- const players = getPlayers();
330
- return players.find(
331
- (player) => player.Position.Distance(position) <= distance,
332
- );
333
- }
334
-
335
- /**
336
- * Helper function to return the total amount of collectibles that a player has that match the
337
- * collectible type(s) provided.
338
- *
339
- * This function is variadic, meaning that you can specify N collectible types.
340
- */
341
- export function getPlayerCollectibleCount(
342
- player: EntityPlayer,
343
- ...collectibleTypes: CollectibleType[]
344
- ): int {
345
- let numCollectibles = 0;
346
- for (const collectibleType of collectibleTypes) {
347
- numCollectibles += player.GetCollectibleNum(collectibleType, true);
348
- }
349
-
350
- return numCollectibles;
351
- }
352
-
353
- /**
354
- * Iterates over every item in the game and returns a map containing the number of each item that
355
- * the player has.
356
- */
357
- export function getPlayerCollectibleMap(
358
- player: EntityPlayer,
359
- ): Map<CollectibleType, int> {
360
- const collectibleSet = getCollectibleSet();
361
- const collectibleMap = new Map<CollectibleType, int>();
362
- for (const collectibleType of collectibleSet.values()) {
363
- const collectibleNum = player.GetCollectibleNum(collectibleType, true);
364
- if (collectibleNum > 0) {
365
- collectibleMap.set(collectibleType, collectibleNum);
366
- }
367
- }
368
-
369
- return collectibleMap;
370
- }
371
-
372
- /**
373
- * Returns the number of red hearts that the player has, excluding any rotten hearts. For example,
374
- * if the player has one full black heart, one full soul heart, and one half black heart, this
375
- * function returns 3.
376
- *
377
- * This is different from the `EntityPlayer.GetHearts` method, since that returns a value that
378
- * includes rotten hearts.
379
- */
380
- export function getPlayerHearts(player: EntityPlayer): int {
381
- const rottenHearts = player.GetRottenHearts();
382
- const hearts = player.GetHearts();
383
-
384
- return hearts - rottenHearts * 2;
385
- }
386
-
387
- /**
388
- * Helper function that returns the type of the rightmost heart. This does not including golden
389
- * hearts or broken hearts, since they cannot be damaged directly.
390
- */
391
- export function getPlayerLastHeart(player: EntityPlayer): HealthType {
392
- const hearts = player.GetHearts();
393
- const effectiveMaxHearts = player.GetEffectiveMaxHearts();
394
- const soulHearts = player.GetSoulHearts();
395
- const blackHearts = player.GetBlackHearts();
396
- const eternalHearts = player.GetEternalHearts();
397
- const boneHearts = player.GetBoneHearts();
398
- const rottenHearts = player.GetRottenHearts();
399
-
400
- const soulHeartSlots = soulHearts / 2;
401
- const lastHeartIndex = boneHearts + soulHeartSlots - 1;
402
- const isLastHeartBone = player.IsBoneHeart(lastHeartIndex);
403
-
404
- if (isLastHeartBone) {
405
- const isLastContainerEmpty = hearts <= effectiveMaxHearts - 2;
406
- if (isLastContainerEmpty) {
407
- return HealthType.BONE;
408
- }
409
-
410
- if (rottenHearts > 0) {
411
- return HealthType.ROTTEN;
412
- }
413
-
414
- if (eternalHearts > 0) {
415
- return HealthType.ETERNAL;
416
- }
417
-
418
- return HealthType.RED;
419
- }
420
-
421
- if (soulHearts > 0) {
422
- const numBits = getNumBitsOfN(blackHearts);
423
- const finalBit = getKBitOfN(numBits - 1, blackHearts);
424
- const isBlack = finalBit === 1;
425
-
426
- if (isBlack) {
427
- return HealthType.BLACK;
428
- }
429
-
430
- // If it is not a black heart, it must be a soul heart.
431
- return HealthType.SOUL;
432
- }
433
-
434
- if (eternalHearts > 0) {
435
- return HealthType.ETERNAL;
436
- }
437
-
438
- if (rottenHearts > 0) {
439
- return HealthType.ROTTEN;
440
- }
441
-
442
- return HealthType.RED;
443
- }
444
-
445
- /**
446
- * Returns the maximum heart containers that the provided player can have. Normally, this is 12, but
447
- * it can change depending on the character (e.g. Keeper) and other things (e.g. Mother's Kiss).
448
- * This function does not account for Broken Hearts; use the `getPlayerAvailableHeartSlots` helper
449
- * function for that.
450
- */
451
- export function getPlayerMaxHeartContainers(player: EntityPlayer): int {
452
- const character = player.GetPlayerType();
453
- const characterMaxHeartContainers = getCharacterMaxHeartContainers(character);
454
-
455
- // 1
456
- // Magdalene can increase her maximum heart containers with Birthright.
457
- if (
458
- character === PlayerType.MAGDALENE &&
459
- player.HasCollectible(CollectibleType.BIRTHRIGHT)
460
- ) {
461
- const extraMaxHeartContainersFromBirthright = 6;
462
- return characterMaxHeartContainers + extraMaxHeartContainersFromBirthright;
463
- }
464
-
465
- // 14, 33
466
- // Keeper and Tainted Keeper can increase their coin containers with Mother's Kiss and Greed's
467
- // Gullet.
468
- if (isKeeper(player)) {
469
- const numMothersKisses = player.GetTrinketMultiplier(
470
- TrinketType.MOTHERS_KISS,
471
- );
472
- const hasGreedsGullet = player.HasCollectible(
473
- CollectibleType.GREEDS_GULLET,
474
- );
475
- const coins = player.GetNumCoins();
476
- const greedsGulletCoinContainers = hasGreedsGullet
477
- ? Math.floor(coins / 25)
478
- : 0;
479
-
480
- return (
481
- characterMaxHeartContainers +
482
- numMothersKisses +
483
- greedsGulletCoinContainers
484
- );
485
- }
486
-
487
- return characterMaxHeartContainers;
488
- }
489
-
490
- /**
491
- * Helper function to get the proper name of the player. Use this instead of the
492
- * `EntityPlayer.GetName` method because it accounts for Blue Baby, Lazarus II, and Tainted
493
- * characters.
494
- */
495
- export function getPlayerName(player: EntityPlayer): string {
496
- const character = player.GetPlayerType();
497
-
498
- // Account for modded characters.
499
- return isModdedPlayer(player)
500
- ? player.GetName()
501
- : getCharacterName(character);
502
- }
503
-
504
- /**
505
- * Returns the combined value of all of the player's red hearts, soul/black hearts, and bone hearts,
506
- * minus the value of the player's rotten hearts.
507
- *
508
- * This is equivalent to the number of hits that the player can currently take, but does not take
509
- * into account double damage from champion enemies and/or being on later floors. (For example, on
510
- * Womb 1, players who have 1 soul heart remaining would die in 1 hit to anything, even though this
511
- * function would report that they have 2 hits remaining.)
512
- */
513
- export function getPlayerNumHitsRemaining(player: EntityPlayer): int {
514
- const hearts = player.GetHearts();
515
- const soulHearts = player.GetSoulHearts();
516
- const boneHearts = player.GetBoneHearts();
517
- const eternalHearts = player.GetEternalHearts();
518
- const rottenHearts = player.GetRottenHearts();
519
-
520
- return hearts + soulHearts + boneHearts + eternalHearts - rottenHearts;
521
- }
522
-
523
- /**
524
- * Returns the number of soul hearts that the player has, excluding any black hearts. For example,
525
- * if the player has one full black heart, one full soul heart, and one half black heart, this
526
- * function returns 2.
527
- *
528
- * This is different from the `EntityPlayer.GetSoulHearts` method, since that returns the combined
529
- * number of soul hearts and black hearts.
530
- */
531
- export function getPlayerSoulHearts(player: EntityPlayer): int {
532
- const soulHearts = player.GetSoulHearts();
533
- const blackHearts = getPlayerBlackHearts(player);
534
-
535
- return soulHearts - blackHearts;
536
- }
537
-
538
- /**
539
- * Helper function to get all of the players that are a certain character.
540
- *
541
- * This function is variadic, meaning that you can supply as many characters as you want to check
542
- * for. Returns true if any of the characters supplied are present.
543
- */
544
- export function getPlayersOfType(...characters: PlayerType[]): EntityPlayer[] {
545
- const charactersSet = new Set(characters);
546
- const players = getPlayers();
547
- return players.filter((player) => {
548
- const character = player.GetPlayerType();
549
- return charactersSet.has(character);
550
- });
551
- }
552
-
553
- /**
554
- * Helper function to get only the players that have a certain collectible.
555
- *
556
- * This function is variadic, meaning that you can supply as many collectible types as you want to
557
- * check for. It only returns the players that have all of the collectibles.
558
- */
559
- export function getPlayersWithCollectible(
560
- ...collectibleTypes: CollectibleType[]
561
- ): EntityPlayer[] {
562
- const players = getPlayers();
563
- return players.filter((player) =>
564
- collectibleTypes.every((collectibleType) =>
565
- player.HasCollectible(collectibleType),
566
- ),
567
- );
568
- }
569
-
570
- /**
571
- * Helper function to get only the players that have a certain trinket.
572
- *
573
- * This function is variadic, meaning that you can supply as many trinket types as you want to check
574
- * for. It only returns the players that have all of the trinkets.
575
- */
576
- export function getPlayersWithTrinket(
577
- ...trinketTypes: TrinketType[]
578
- ): EntityPlayer[] {
579
- const players = getPlayers();
580
- return players.filter((player) =>
581
- trinketTypes.every((trinketType) => player.HasTrinket(trinketType)),
582
- );
583
- }
584
-
585
- /**
586
- * Helper function to determine how many heart containers that Tainted Magdalene has that will not
587
- * be automatically depleted over time. By default, this is 2, but this function will return 4 so
588
- * that it is consistent with the `player.GetHearts` and `player.GetMaxHearts` methods.
589
- *
590
- * If Tainted Magdalene has Birthright, she will gained an additional non-temporary heart container.
591
- *
592
- * This function does not validate whether or not the provided player is Tainted Magdalene; that
593
- * should be accomplished before invoking this function.
594
- */
595
- export function getTaintedMagdaleneNonTemporaryMaxHearts(
596
- player: EntityPlayer,
597
- ): int {
598
- const maxHearts = player.GetMaxHearts();
599
- const hasBirthright = player.HasCollectible(CollectibleType.BIRTHRIGHT);
600
- const maxNonTemporaryMaxHearts = hasBirthright ? 6 : 4;
601
-
602
- return Math.min(maxHearts, maxNonTemporaryMaxHearts);
603
- }
604
-
605
- /**
606
- * Returns the total number of collectibles amongst all players. For example, if player 1 has 1 Sad
607
- * Onion and player 2 has 2 Sad Onions, then this function would return 3.
608
- */
609
- export function getTotalPlayerCollectibles(
610
- collectibleType: CollectibleType,
611
- ): int {
612
- const players = getPlayers();
613
- const numCollectiblesArray = players.map((player) =>
614
- player.GetCollectibleNum(collectibleType),
615
- );
616
- return sumArray(numCollectiblesArray);
617
- }
618
-
619
- /** After touching a white fire, a player will turn into The Lost until they clear a room. */
620
- export function hasLostCurse(player: EntityPlayer): boolean {
621
- const effects = player.GetEffects();
622
- return effects.HasNullEffect(NullItemID.LOST_CURSE);
623
- }
624
-
625
- /**
626
- * Returns whether or not the player can hold an additional active item, beyond what they are
627
- * currently carrying. This takes the Schoolbag into account.
628
- *
629
- * If the player is the Tainted Soul, this always returns false, since that character cannot pick up
630
- * items. (Only Tainted Forgotten can pick up items.)
631
- */
632
- export function hasOpenActiveItemSlot(player: EntityPlayer): boolean {
633
- if (isCharacter(player, PlayerType.THE_SOUL_B)) {
634
- return false;
635
- }
636
-
637
- const activeItemPrimary = player.GetActiveItem(ActiveSlot.PRIMARY);
638
- const activeItemSecondary = player.GetActiveItem(ActiveSlot.SECONDARY);
639
- const hasSchoolbag = player.HasCollectible(CollectibleType.SCHOOLBAG);
640
-
641
- if (hasSchoolbag) {
642
- return (
643
- activeItemPrimary === CollectibleType.NULL ||
644
- activeItemSecondary === CollectibleType.NULL
645
- );
646
- }
647
-
648
- return activeItemPrimary === CollectibleType.NULL;
649
- }
650
-
651
- export function isActiveSlotEmpty(
652
- player: EntityPlayer,
653
- activeSlot: ActiveSlot,
654
- ): boolean {
655
- const activeCollectibleType = player.GetActiveItem(activeSlot);
656
- return activeCollectibleType === CollectibleType.NULL;
657
- }
658
-
659
- /**
660
- * Helper function for detecting when a player is Bethany or Tainted Bethany. This is useful if you
661
- * need to adjust UI elements to account for Bethany's soul charges or Tainted Bethany's blood
662
- * charges.
663
- */
664
- export function isBethany(player: EntityPlayer): boolean {
665
- const character = player.GetPlayerType();
666
-
667
- return character === PlayerType.BETHANY || character === PlayerType.BETHANY_B;
668
- }
669
-
670
- /**
671
- * Helper function to check if a player is a specific character (i.e. `PlayerType`).
672
- *
673
- * This function is variadic, meaning that you can supply as many characters as you want to check
674
- * for. Returns true if the player is any of the supplied characters.
675
- */
676
- export function isCharacter(
677
- player: EntityPlayer,
678
- ...characters: PlayerType[]
679
- ): boolean {
680
- const characterSet = new Set(characters);
681
- const character = player.GetPlayerType();
682
- return characterSet.has(character);
683
- }
684
-
685
- /**
686
- * Helper function for detecting when a player is Eden or Tainted Eden. Useful for situations where
687
- * you want to know if the starting stats were randomized, for example.
688
- */
689
- export function isEden(player: EntityPlayer): boolean {
690
- const character = player.GetPlayerType();
691
-
692
- return character === PlayerType.EDEN || character === PlayerType.EDEN_B;
693
- }
694
-
695
- export function isFirstPlayer(player: EntityPlayer): boolean {
696
- return getPlayerIndexVanilla(player) === 0;
697
- }
698
-
699
- /**
700
- * Helper function for detecting when a player is Jacob or Esau. This will only match the
701
- * non-tainted versions of these characters.
702
- */
703
- export function isJacobOrEsau(player: EntityPlayer): boolean {
704
- const character = player.GetPlayerType();
705
-
706
- return character === PlayerType.JACOB || character === PlayerType.ESAU;
707
- }
708
-
709
- /**
710
- * Helper function for detecting when a player is Keeper or Tainted Keeper. Useful for situations
711
- * where you want to know if the health is coin hearts, for example.
712
- */
713
- export function isKeeper(player: EntityPlayer): boolean {
714
- const character = player.GetPlayerType();
715
-
716
- return character === PlayerType.KEEPER || character === PlayerType.KEEPER_B;
717
- }
718
-
719
- /** Helper function for detecting when a player is The Lost or Tainted Lost. */
720
- export function isLost(player: EntityPlayer): boolean {
721
- const character = player.GetPlayerType();
722
-
723
- return (
724
- character === PlayerType.THE_LOST || character === PlayerType.THE_LOST_B
725
- );
726
- }
727
-
728
- export function isModdedPlayer(player: EntityPlayer): boolean {
729
- return !isVanillaPlayer(player);
730
- }
731
-
732
- /** Helper function for detecting if a player is one of the Tainted characters. */
733
- export function isTainted(player: EntityPlayer): boolean {
734
- const character = player.GetPlayerType();
735
-
736
- return isVanillaPlayer(player)
737
- ? character >= PlayerType.ISAAC_B
738
- : isTaintedModded(player);
739
- }
740
-
741
- function isTaintedModded(player: EntityPlayer) {
742
- // This algorithm only works for modded characters because the `Isaac.GetPlayerTypeByName` method
743
- // is bugged.
744
- // https://github.com/Meowlala/RepentanceAPIIssueTracker/issues/117
745
- const character = player.GetPlayerType();
746
- const name = player.GetName();
747
- const taintedCharacter = Isaac.GetPlayerTypeByName(name, true);
748
-
749
- return character === taintedCharacter;
750
- }
751
-
752
- /** Helper function for detecting when a player is Tainted Lazarus or Dead Tainted Lazarus. */
753
- export function isTaintedLazarus(player: EntityPlayer): boolean {
754
- const character = player.GetPlayerType();
755
-
756
- return (
757
- character === PlayerType.LAZARUS_B || character === PlayerType.LAZARUS_2_B
758
- );
759
- }
760
-
761
- export function isVanillaPlayer(player: EntityPlayer): boolean {
762
- const character = player.GetPlayerType();
763
- return isVanillaCharacter(character);
764
- }
765
-
766
- /**
767
- * Helper function to add one or more collectibles to a player.
768
- *
769
- * This function is variadic, meaning that you can supply as many collectible types as you want to
770
- * add.
771
- */
772
- export function playerAddCollectible(
773
- player: EntityPlayer,
774
- ...collectibleTypes: CollectibleType[]
775
- ): void {
776
- for (const collectibleType of collectibleTypes) {
777
- player.AddCollectible(collectibleType);
778
- }
779
- }
780
-
781
- /**
782
- * Helper function to check to see if a player has one or more collectibles.
783
- *
784
- * This function is variadic, meaning that you can supply as many collectible types as you want to
785
- * check for. Returns true if the player has any of the supplied collectible types.
786
- */
787
- export function playerHasCollectible(
788
- player: EntityPlayer,
789
- ...collectibleTypes: CollectibleType[]
790
- ): boolean {
791
- return collectibleTypes.some((collectibleType) =>
792
- player.HasCollectible(collectibleType),
793
- );
794
- }
795
-
796
- /**
797
- * Helper function to remove a collectible costume from a player. Use this helper function to avoid
798
- * having to request the collectible from the item config.
799
- */
800
- export function removeCollectibleCostume(
801
- player: EntityPlayer,
802
- collectibleType: CollectibleType,
803
- ): void {
804
- const itemConfigItem = itemConfig.GetCollectible(collectibleType);
805
- if (itemConfigItem === undefined) {
806
- return;
807
- }
808
-
809
- player.RemoveCostume(itemConfigItem);
810
- }
811
-
812
- /**
813
- * Helper function to remove the Dead Eye multiplier from a player.
814
- *
815
- * Note that each time the `EntityPlayer.ClearDeadEyeCharge` method is called, it only has a chance
816
- * of working, so this function calls it 100 times to be safe.
817
- */
818
- export function removeDeadEyeMultiplier(player: EntityPlayer): void {
819
- repeat(100, () => {
820
- player.ClearDeadEyeCharge();
821
- });
822
- }
823
-
824
- /**
825
- * Helper function to remove a trinket costume from a player. Use this helper function to avoid
826
- * having to request the trinket from the item config.
827
- */
828
- export function removeTrinketCostume(
829
- player: EntityPlayer,
830
- trinketType: TrinketType,
831
- ): void {
832
- const itemConfigTrinket = itemConfig.GetTrinket(trinketType);
833
- if (itemConfigTrinket === undefined) {
834
- return;
835
- }
836
-
837
- player.RemoveCostume(itemConfigTrinket);
838
- }
839
-
840
- /**
841
- * Helper function to set an active collectible to a particular slot. This has different behavior
842
- * than calling the `player.AddCollectible` method with the `activeSlot` argument, because this
843
- * function will not shift existing items into the Schoolbag and it handles
844
- * `ActiveSlot.SLOT_POCKET2`.
845
- *
846
- * Note that if an item is set to `ActiveSlot.SLOT_POCKET2`, it will disappear after being used and
847
- * will be automatically removed upon entering a new room.
848
- *
849
- * @param player The player to give the item to.
850
- * @param collectibleType The collectible type of the item to give.
851
- * @param activeSlot The slot to set.
852
- * @param charge Optional. The argument of charges to set. If not specified, the item will be set
853
- * with maximum charges.
854
- * @param keepInPools Optional. Whether or not to remove the item from pools. Default is false.
855
- */
856
- export function setActiveItem(
857
- player: EntityPlayer,
858
- collectibleType: CollectibleType,
859
- activeSlot: ActiveSlot,
860
- charge?: int,
861
- keepInPools = false,
862
- ): void {
863
- const itemPool = game.GetItemPool();
864
- const primaryCollectibleType = player.GetActiveItem(ActiveSlot.PRIMARY);
865
- const primaryCharge = player.GetActiveCharge(ActiveSlot.PRIMARY);
866
- const secondaryCollectibleType = player.GetActiveItem(ActiveSlot.SECONDARY);
867
-
868
- if (charge === undefined) {
869
- charge = getCollectibleMaxCharges(collectibleType);
870
- }
871
-
872
- if (!keepInPools) {
873
- itemPool.RemoveCollectible(collectibleType);
874
- }
875
-
876
- switch (activeSlot) {
877
- case ActiveSlot.PRIMARY: {
878
- // If there is a Schoolbag item, removing the primary item will shift the Schoolbag item to
879
- // the primary slot.
880
- if (primaryCollectibleType !== CollectibleType.NULL) {
881
- player.RemoveCollectible(primaryCollectibleType);
882
- }
883
-
884
- // If there was a Schoolbag item, adding a new primary item will shift it back into the
885
- // secondary slot.
886
- player.AddCollectible(collectibleType, charge, false);
887
-
888
- break;
889
- }
890
-
891
- case ActiveSlot.SECONDARY: {
892
- if (primaryCollectibleType !== CollectibleType.NULL) {
893
- player.RemoveCollectible(primaryCollectibleType);
894
- }
895
-
896
- if (secondaryCollectibleType !== CollectibleType.NULL) {
897
- player.RemoveCollectible(secondaryCollectibleType);
898
- }
899
-
900
- // Add the new item, which will go to the primary slot.
901
- player.AddCollectible(secondaryCollectibleType, charge, false);
902
-
903
- // Add back the original primary item, if any.
904
- if (primaryCollectibleType !== CollectibleType.NULL) {
905
- player.AddCollectible(primaryCollectibleType, primaryCharge, false);
906
- }
907
-
908
- break;
909
- }
910
-
911
- case ActiveSlot.POCKET: {
912
- player.SetPocketActiveItem(collectibleType, activeSlot, keepInPools);
913
- player.SetActiveCharge(charge, activeSlot);
914
-
915
- break;
916
- }
917
-
918
- case ActiveSlot.POCKET_SINGLE_USE: {
919
- player.SetPocketActiveItem(collectibleType, activeSlot, keepInPools);
920
- break;
921
- }
922
-
923
- default: {
924
- ensureAllCases(activeSlot);
925
- }
926
- }
927
- }
928
-
929
- /**
930
- * Helper function to blindfold the player by using a hack with the challenge variable.
931
- *
932
- * The method used in this function was discovered by im_tem.
933
- *
934
- * @param player The player to apply or remove the blindfold state from.
935
- * @param enabled Whether or not to apply or remove the blindfold.
936
- * @param modifyCostume Optional. Whether to add or remove the blindfold costume. Default is true.
937
- */
938
- export function setBlindfold(
939
- player: EntityPlayer,
940
- enabled: boolean,
941
- modifyCostume = true,
942
- ): void {
943
- const character = player.GetPlayerType();
944
- const challenge = Isaac.GetChallenge();
945
-
946
- if (enabled) {
947
- game.Challenge = Challenge.SOLAR_SYSTEM; // This challenge has a blindfold
948
- player.ChangePlayerType(character);
949
- game.Challenge = challenge;
950
-
951
- // The costume is applied automatically.
952
- if (!modifyCostume) {
953
- player.TryRemoveNullCostume(NullItemID.BLINDFOLD);
954
- }
955
- } else {
956
- game.Challenge = Challenge.NULL;
957
- player.ChangePlayerType(character);
958
- game.Challenge = challenge;
959
-
960
- if (modifyCostume) {
961
- player.TryRemoveNullCostume(NullItemID.BLINDFOLD);
962
- }
963
- }
964
- }
965
-
966
- /**
967
- * Helper function to use an active item without showing an animation, keeping the item, or adding
968
- * any costumes.
969
- */
970
- export function useActiveItemTemp(
971
- player: EntityPlayer,
972
- collectibleType: CollectibleType,
973
- ): void {
974
- player.UseActiveItem(collectibleType, false, false, true, false, -1);
975
- }