isaacscript-common 6.6.0 → 6.6.1-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. package/cachedClasses.d.ts +1 -0
  2. package/cachedClasses.js +59 -0
  3. package/cachedClasses.lua +2 -0
  4. package/callbacks/customRevive.js +153 -0
  5. package/callbacks/customRevive.lua +2 -0
  6. package/callbacks/itemPickup.js +64 -0
  7. package/callbacks/itemPickup.lua +2 -0
  8. package/callbacks/postAmbush.js +54 -0
  9. package/callbacks/postAmbush.lua +2 -0
  10. package/callbacks/postBombExploded.js +20 -0
  11. package/callbacks/postBombExploded.lua +2 -0
  12. package/callbacks/postBombInitLate.js +28 -0
  13. package/callbacks/postBombInitLate.lua +2 -0
  14. package/callbacks/postBoneSwing.js +49 -0
  15. package/callbacks/postBoneSwing.lua +2 -0
  16. package/callbacks/postCollectibleEmpty.js +32 -0
  17. package/callbacks/postCollectibleEmpty.lua +2 -0
  18. package/callbacks/postCollectibleInitFirst.js +27 -0
  19. package/callbacks/postCollectibleInitFirst.lua +2 -0
  20. package/callbacks/postCursedTeleport.js +120 -0
  21. package/callbacks/postCursedTeleport.lua +2 -0
  22. package/callbacks/postCustomDoorEnter.js +205 -0
  23. package/callbacks/postCustomDoorEnter.lua +2 -0
  24. package/callbacks/postDiceRoomActivated.js +39 -0
  25. package/callbacks/postDiceRoomActivated.lua +2 -0
  26. package/callbacks/postDoorRender.js +20 -0
  27. package/callbacks/postDoorRender.lua +2 -0
  28. package/callbacks/postDoorUpdate.js +20 -0
  29. package/callbacks/postDoorUpdate.lua +2 -0
  30. package/callbacks/postEffectInitLate.js +28 -0
  31. package/callbacks/postEffectInitLate.lua +2 -0
  32. package/callbacks/postEffectStateChanged.js +31 -0
  33. package/callbacks/postEffectStateChanged.lua +2 -0
  34. package/callbacks/postEsauJr.js +70 -0
  35. package/callbacks/postEsauJr.lua +2 -0
  36. package/callbacks/postFamiliarInitLate.js +28 -0
  37. package/callbacks/postFamiliarInitLate.lua +2 -0
  38. package/callbacks/postFamiliarStateChanged.js +31 -0
  39. package/callbacks/postFamiliarStateChanged.lua +2 -0
  40. package/callbacks/postFlip.js +59 -0
  41. package/callbacks/postFlip.lua +2 -0
  42. package/callbacks/postGreedModeWave.js +31 -0
  43. package/callbacks/postGreedModeWave.lua +2 -0
  44. package/callbacks/postGridEntity.js +107 -0
  45. package/callbacks/postGridEntity.lua +2 -0
  46. package/callbacks/postGridEntityCollision.js +49 -0
  47. package/callbacks/postGridEntityCollision.lua +2 -0
  48. package/callbacks/postGridEntityRender.js +20 -0
  49. package/callbacks/postGridEntityRender.lua +2 -0
  50. package/callbacks/postHolyMantleRemoved.js +33 -0
  51. package/callbacks/postHolyMantleRemoved.lua +2 -0
  52. package/callbacks/postItemDischarged.js +94 -0
  53. package/callbacks/postItemDischarged.lua +2 -0
  54. package/callbacks/postKnifeInitLate.js +28 -0
  55. package/callbacks/postKnifeInitLate.lua +2 -0
  56. package/callbacks/postLaserInitLate.js +28 -0
  57. package/callbacks/postLaserInitLate.lua +2 -0
  58. package/callbacks/postNPCInitLate.js +28 -0
  59. package/callbacks/postNPCInitLate.lua +2 -0
  60. package/callbacks/postNPCStateChanged.js +31 -0
  61. package/callbacks/postNPCStateChanged.lua +2 -0
  62. package/callbacks/postNewRoomEarly.js +69 -0
  63. package/callbacks/postNewRoomEarly.lua +2 -0
  64. package/callbacks/postPickupCollect.js +37 -0
  65. package/callbacks/postPickupCollect.lua +2 -0
  66. package/callbacks/postPickupInitFirst.js +52 -0
  67. package/callbacks/postPickupInitFirst.lua +2 -0
  68. package/callbacks/postPickupInitLate.js +28 -0
  69. package/callbacks/postPickupInitLate.lua +2 -0
  70. package/callbacks/postPickupStateChanged.js +31 -0
  71. package/callbacks/postPickupStateChanged.lua +2 -0
  72. package/callbacks/postPitRender.js +20 -0
  73. package/callbacks/postPitRender.lua +2 -0
  74. package/callbacks/postPitUpdate.js +20 -0
  75. package/callbacks/postPitUpdate.lua +2 -0
  76. package/callbacks/postPlayerChangeHealth.js +43 -0
  77. package/callbacks/postPlayerChangeHealth.lua +2 -0
  78. package/callbacks/postPlayerChangeType.js +31 -0
  79. package/callbacks/postPlayerChangeType.lua +2 -0
  80. package/callbacks/postPlayerCollectible.js +74 -0
  81. package/callbacks/postPlayerCollectible.lua +2 -0
  82. package/callbacks/postPlayerFatalDamage.js +74 -0
  83. package/callbacks/postPlayerFatalDamage.lua +2 -0
  84. package/callbacks/postPlayerInitLate.js +28 -0
  85. package/callbacks/postPlayerInitLate.lua +2 -0
  86. package/callbacks/postPlayerReordered.js +109 -0
  87. package/callbacks/postPlayerReordered.lua +2 -0
  88. package/callbacks/postPoopRender.js +20 -0
  89. package/callbacks/postPoopRender.lua +2 -0
  90. package/callbacks/postPoopUpdate.js +20 -0
  91. package/callbacks/postPoopUpdate.lua +2 -0
  92. package/callbacks/postPressurePlateRender.js +20 -0
  93. package/callbacks/postPressurePlateRender.lua +2 -0
  94. package/callbacks/postPressurePlateUpdate.js +20 -0
  95. package/callbacks/postPressurePlateUpdate.lua +2 -0
  96. package/callbacks/postProjectileInitLate.js +28 -0
  97. package/callbacks/postProjectileInitLate.lua +2 -0
  98. package/callbacks/postPurchase.js +39 -0
  99. package/callbacks/postPurchase.lua +2 -0
  100. package/callbacks/postRockRender.js +20 -0
  101. package/callbacks/postRockRender.lua +2 -0
  102. package/callbacks/postRockUpdate.js +20 -0
  103. package/callbacks/postRockUpdate.lua +2 -0
  104. package/callbacks/postRoomClearChanged.js +41 -0
  105. package/callbacks/postRoomClearChanged.lua +2 -0
  106. package/callbacks/postSacrifice.js +38 -0
  107. package/callbacks/postSacrifice.lua +2 -0
  108. package/callbacks/postSlotDestroyed.js +64 -0
  109. package/callbacks/postSlotDestroyed.lua +2 -0
  110. package/callbacks/postSlotInitUpdate.js +49 -0
  111. package/callbacks/postSlotInitUpdate.lua +2 -0
  112. package/callbacks/postSlotRender.js +48 -0
  113. package/callbacks/postSlotRender.lua +2 -0
  114. package/callbacks/postSpikesRender.js +20 -0
  115. package/callbacks/postSpikesRender.lua +2 -0
  116. package/callbacks/postSpikesUpdate.js +20 -0
  117. package/callbacks/postSpikesUpdate.lua +2 -0
  118. package/callbacks/postTNTRender.js +20 -0
  119. package/callbacks/postTNTRender.lua +2 -0
  120. package/callbacks/postTNTUpdate.js +20 -0
  121. package/callbacks/postTNTUpdate.lua +2 -0
  122. package/callbacks/postTearInitLate.js +28 -0
  123. package/callbacks/postTearInitLate.lua +2 -0
  124. package/callbacks/postTearInitVeryLate.js +32 -0
  125. package/callbacks/postTearInitVeryLate.lua +2 -0
  126. package/callbacks/postTransformation.js +37 -0
  127. package/callbacks/postTransformation.lua +2 -0
  128. package/callbacks/postTrinketBreak.js +64 -0
  129. package/callbacks/postTrinketBreak.lua +2 -0
  130. package/callbacks/preBerserkDeath.js +35 -0
  131. package/callbacks/preBerserkDeath.lua +2 -0
  132. package/callbacks/preNewLevel.js +45 -0
  133. package/callbacks/preNewLevel.lua +2 -0
  134. package/callbacks/reorderedCallbacks.js +136 -0
  135. package/callbacks/reorderedCallbacks.lua +2 -0
  136. package/callbacks/subscriptions/postAmbushFinished.js +20 -0
  137. package/callbacks/subscriptions/postAmbushFinished.lua +2 -0
  138. package/callbacks/subscriptions/postAmbushStarted.js +20 -0
  139. package/callbacks/subscriptions/postAmbushStarted.lua +2 -0
  140. package/callbacks/subscriptions/postBombInitLate.js +20 -0
  141. package/callbacks/subscriptions/postBombInitLate.lua +2 -0
  142. package/callbacks/subscriptions/postBoneExploded.js +20 -0
  143. package/callbacks/subscriptions/postBoneExploded.lua +2 -0
  144. package/callbacks/subscriptions/postBoneSwing.js +16 -0
  145. package/callbacks/subscriptions/postBoneSwing.lua +2 -0
  146. package/callbacks/subscriptions/postCollectibleEmpty.js +21 -0
  147. package/callbacks/subscriptions/postCollectibleEmpty.lua +2 -0
  148. package/callbacks/subscriptions/postCollectibleInitFirst.js +21 -0
  149. package/callbacks/subscriptions/postCollectibleInitFirst.lua +2 -0
  150. package/callbacks/subscriptions/postCursedTeleport.js +16 -0
  151. package/callbacks/subscriptions/postCursedTeleport.lua +2 -0
  152. package/callbacks/subscriptions/postCustomDoorEnter.js +21 -0
  153. package/callbacks/subscriptions/postCustomDoorEnter.lua +2 -0
  154. package/callbacks/subscriptions/postCustomRevive.js +21 -0
  155. package/callbacks/subscriptions/postCustomRevive.lua +2 -0
  156. package/callbacks/subscriptions/postDiceRoomActivated.js +21 -0
  157. package/callbacks/subscriptions/postDiceRoomActivated.lua +2 -0
  158. package/callbacks/subscriptions/postDoorRender.js +22 -0
  159. package/callbacks/subscriptions/postDoorRender.lua +2 -0
  160. package/callbacks/subscriptions/postDoorUpdate.js +22 -0
  161. package/callbacks/subscriptions/postDoorUpdate.lua +2 -0
  162. package/callbacks/subscriptions/postEffectInitLate.js +20 -0
  163. package/callbacks/subscriptions/postEffectInitLate.lua +2 -0
  164. package/callbacks/subscriptions/postEffectStateChanged.js +20 -0
  165. package/callbacks/subscriptions/postEffectStateChanged.lua +2 -0
  166. package/callbacks/subscriptions/postEsauJr.js +16 -0
  167. package/callbacks/subscriptions/postEsauJr.lua +2 -0
  168. package/callbacks/subscriptions/postFamiliarInitLate.js +20 -0
  169. package/callbacks/subscriptions/postFamiliarInitLate.lua +2 -0
  170. package/callbacks/subscriptions/postFamiliarStateChanged.js +20 -0
  171. package/callbacks/subscriptions/postFamiliarStateChanged.lua +2 -0
  172. package/callbacks/subscriptions/postFirstEsauJr.js +16 -0
  173. package/callbacks/subscriptions/postFirstEsauJr.lua +2 -0
  174. package/callbacks/subscriptions/postFirstFlip.js +16 -0
  175. package/callbacks/subscriptions/postFirstFlip.lua +2 -0
  176. package/callbacks/subscriptions/postFlip.js +16 -0
  177. package/callbacks/subscriptions/postFlip.lua +2 -0
  178. package/callbacks/subscriptions/postGameStartedReordered.js +16 -0
  179. package/callbacks/subscriptions/postGameStartedReordered.lua +2 -0
  180. package/callbacks/subscriptions/postGreedModeWave.js +16 -0
  181. package/callbacks/subscriptions/postGreedModeWave.lua +2 -0
  182. package/callbacks/subscriptions/postGridEntityBroken.js +28 -0
  183. package/callbacks/subscriptions/postGridEntityBroken.lua +2 -0
  184. package/callbacks/subscriptions/postGridEntityCollision.js +28 -0
  185. package/callbacks/subscriptions/postGridEntityCollision.lua +2 -0
  186. package/callbacks/subscriptions/postGridEntityInit.js +28 -0
  187. package/callbacks/subscriptions/postGridEntityInit.lua +2 -0
  188. package/callbacks/subscriptions/postGridEntityRemove.js +26 -0
  189. package/callbacks/subscriptions/postGridEntityRemove.lua +2 -0
  190. package/callbacks/subscriptions/postGridEntityRender.js +28 -0
  191. package/callbacks/subscriptions/postGridEntityRender.lua +2 -0
  192. package/callbacks/subscriptions/postGridEntityStateChanged.js +28 -0
  193. package/callbacks/subscriptions/postGridEntityStateChanged.lua +2 -0
  194. package/callbacks/subscriptions/postGridEntityUpdate.js +28 -0
  195. package/callbacks/subscriptions/postGridEntityUpdate.lua +2 -0
  196. package/callbacks/subscriptions/postHolyMantleRemoved.js +25 -0
  197. package/callbacks/subscriptions/postHolyMantleRemoved.lua +2 -0
  198. package/callbacks/subscriptions/postItemDischarged.js +21 -0
  199. package/callbacks/subscriptions/postItemDischarged.lua +2 -0
  200. package/callbacks/subscriptions/postItemPickup.js +25 -0
  201. package/callbacks/subscriptions/postItemPickup.lua +2 -0
  202. package/callbacks/subscriptions/postKnifeInitLate.js +20 -0
  203. package/callbacks/subscriptions/postKnifeInitLate.lua +2 -0
  204. package/callbacks/subscriptions/postLaserInitLate.js +20 -0
  205. package/callbacks/subscriptions/postLaserInitLate.lua +2 -0
  206. package/callbacks/subscriptions/postNPCInitLate.js +20 -0
  207. package/callbacks/subscriptions/postNPCInitLate.lua +2 -0
  208. package/callbacks/subscriptions/postNPCStateChanged.js +24 -0
  209. package/callbacks/subscriptions/postNPCStateChanged.lua +2 -0
  210. package/callbacks/subscriptions/postNewLevelReordered.js +16 -0
  211. package/callbacks/subscriptions/postNewLevelReordered.lua +2 -0
  212. package/callbacks/subscriptions/postNewRoomEarly.js +16 -0
  213. package/callbacks/subscriptions/postNewRoomEarly.lua +2 -0
  214. package/callbacks/subscriptions/postNewRoomReordered.js +16 -0
  215. package/callbacks/subscriptions/postNewRoomReordered.lua +2 -0
  216. package/callbacks/subscriptions/postPEffectUpdateReordered.js +25 -0
  217. package/callbacks/subscriptions/postPEffectUpdateReordered.lua +2 -0
  218. package/callbacks/subscriptions/postPickupCollect.js +20 -0
  219. package/callbacks/subscriptions/postPickupCollect.lua +2 -0
  220. package/callbacks/subscriptions/postPickupInitFirst.js +20 -0
  221. package/callbacks/subscriptions/postPickupInitFirst.lua +2 -0
  222. package/callbacks/subscriptions/postPickupInitLate.js +20 -0
  223. package/callbacks/subscriptions/postPickupInitLate.lua +2 -0
  224. package/callbacks/subscriptions/postPickupStateChanged.js +20 -0
  225. package/callbacks/subscriptions/postPickupStateChanged.lua +2 -0
  226. package/callbacks/subscriptions/postPitRender.js +22 -0
  227. package/callbacks/subscriptions/postPitRender.lua +2 -0
  228. package/callbacks/subscriptions/postPitUpdate.js +22 -0
  229. package/callbacks/subscriptions/postPitUpdate.lua +2 -0
  230. package/callbacks/subscriptions/postPlayerChangeHealth.js +25 -0
  231. package/callbacks/subscriptions/postPlayerChangeHealth.lua +2 -0
  232. package/callbacks/subscriptions/postPlayerChangeType.js +20 -0
  233. package/callbacks/subscriptions/postPlayerChangeType.lua +2 -0
  234. package/callbacks/subscriptions/postPlayerCollectibleAdded.js +21 -0
  235. package/callbacks/subscriptions/postPlayerCollectibleAdded.lua +2 -0
  236. package/callbacks/subscriptions/postPlayerCollectibleRemoved.js +21 -0
  237. package/callbacks/subscriptions/postPlayerCollectibleRemoved.lua +2 -0
  238. package/callbacks/subscriptions/postPlayerFatalDamage.js +29 -0
  239. package/callbacks/subscriptions/postPlayerFatalDamage.lua +2 -0
  240. package/callbacks/subscriptions/postPlayerInitLate.js +25 -0
  241. package/callbacks/subscriptions/postPlayerInitLate.lua +2 -0
  242. package/callbacks/subscriptions/postPlayerInitReordered.js +25 -0
  243. package/callbacks/subscriptions/postPlayerInitReordered.lua +2 -0
  244. package/callbacks/subscriptions/postPlayerRenderReordered.js +25 -0
  245. package/callbacks/subscriptions/postPlayerRenderReordered.lua +2 -0
  246. package/callbacks/subscriptions/postPlayerUpdateReordered.js +25 -0
  247. package/callbacks/subscriptions/postPlayerUpdateReordered.lua +2 -0
  248. package/callbacks/subscriptions/postPoopRender.js +22 -0
  249. package/callbacks/subscriptions/postPoopRender.lua +2 -0
  250. package/callbacks/subscriptions/postPoopUpdate.js +22 -0
  251. package/callbacks/subscriptions/postPoopUpdate.lua +2 -0
  252. package/callbacks/subscriptions/postPressurePlateRender.js +22 -0
  253. package/callbacks/subscriptions/postPressurePlateRender.lua +2 -0
  254. package/callbacks/subscriptions/postPressurePlateUpdate.js +22 -0
  255. package/callbacks/subscriptions/postPressurePlateUpdate.lua +2 -0
  256. package/callbacks/subscriptions/postProjectileInitLate.js +21 -0
  257. package/callbacks/subscriptions/postProjectileInitLate.lua +2 -0
  258. package/callbacks/subscriptions/postPurchase.js +16 -0
  259. package/callbacks/subscriptions/postPurchase.lua +2 -0
  260. package/callbacks/subscriptions/postRockRender.js +22 -0
  261. package/callbacks/subscriptions/postRockRender.lua +2 -0
  262. package/callbacks/subscriptions/postRockUpdate.js +22 -0
  263. package/callbacks/subscriptions/postRockUpdate.lua +2 -0
  264. package/callbacks/subscriptions/postRoomClearChanged.js +20 -0
  265. package/callbacks/subscriptions/postRoomClearChanged.lua +2 -0
  266. package/callbacks/subscriptions/postSacrifice.js +25 -0
  267. package/callbacks/subscriptions/postSacrifice.lua +2 -0
  268. package/callbacks/subscriptions/postSlotAnimationChanged.js +20 -0
  269. package/callbacks/subscriptions/postSlotAnimationChanged.lua +2 -0
  270. package/callbacks/subscriptions/postSlotDestroyed.js +26 -0
  271. package/callbacks/subscriptions/postSlotDestroyed.lua +2 -0
  272. package/callbacks/subscriptions/postSlotInit.js +20 -0
  273. package/callbacks/subscriptions/postSlotInit.lua +2 -0
  274. package/callbacks/subscriptions/postSlotRender.js +20 -0
  275. package/callbacks/subscriptions/postSlotRender.lua +2 -0
  276. package/callbacks/subscriptions/postSlotUpdate.js +20 -0
  277. package/callbacks/subscriptions/postSlotUpdate.lua +2 -0
  278. package/callbacks/subscriptions/postSpikesRender.js +22 -0
  279. package/callbacks/subscriptions/postSpikesRender.lua +2 -0
  280. package/callbacks/subscriptions/postSpikesUpdate.js +22 -0
  281. package/callbacks/subscriptions/postSpikesUpdate.lua +2 -0
  282. package/callbacks/subscriptions/postTNTRender.js +22 -0
  283. package/callbacks/subscriptions/postTNTRender.lua +2 -0
  284. package/callbacks/subscriptions/postTNTUpdate.js +22 -0
  285. package/callbacks/subscriptions/postTNTUpdate.lua +2 -0
  286. package/callbacks/subscriptions/postTearInitLate.js +20 -0
  287. package/callbacks/subscriptions/postTearInitLate.lua +2 -0
  288. package/callbacks/subscriptions/postTearInitVeryLate.js +20 -0
  289. package/callbacks/subscriptions/postTearInitVeryLate.lua +2 -0
  290. package/callbacks/subscriptions/postTransformation.js +20 -0
  291. package/callbacks/subscriptions/postTransformation.lua +2 -0
  292. package/callbacks/subscriptions/postTrinketBreak.js +21 -0
  293. package/callbacks/subscriptions/postTrinketBreak.lua +2 -0
  294. package/callbacks/subscriptions/preBerserkDeath.js +26 -0
  295. package/callbacks/subscriptions/preBerserkDeath.lua +2 -0
  296. package/callbacks/subscriptions/preCustomRevive.js +29 -0
  297. package/callbacks/subscriptions/preCustomRevive.lua +2 -0
  298. package/callbacks/subscriptions/preItemPickup.js +25 -0
  299. package/callbacks/subscriptions/preItemPickup.lua +2 -0
  300. package/callbacks/subscriptions/preNewLevel.js +16 -0
  301. package/callbacks/subscriptions/preNewLevel.lua +2 -0
  302. package/classes/DefaultMap.js +145 -0
  303. package/classes/DefaultMap.lua +2 -0
  304. package/classes/ModUpgraded.js +57 -0
  305. package/classes/ModUpgraded.lua +2 -0
  306. package/constants.js +143 -0
  307. package/constants.lua +2 -0
  308. package/constantsFirstLast.js +156 -0
  309. package/constantsFirstLast.lua +2 -0
  310. package/enums/AmbushType.js +6 -0
  311. package/enums/AmbushType.lua +2 -0
  312. package/enums/CornerType.js +8 -0
  313. package/enums/CornerType.lua +2 -0
  314. package/enums/DecorationVariant.js +11 -0
  315. package/enums/DecorationVariant.lua +2 -0
  316. package/enums/HealthType.js +18 -0
  317. package/enums/HealthType.lua +2 -0
  318. package/enums/ModCallbackCustom.js +1213 -0
  319. package/enums/ModCallbackCustom.lua +2 -0
  320. package/enums/PocketItemType.js +10 -0
  321. package/enums/PocketItemType.lua +2 -0
  322. package/enums/RockAltType.js +9 -0
  323. package/enums/RockAltType.lua +2 -0
  324. package/enums/SerializationType.js +7 -0
  325. package/enums/SerializationType.lua +2 -0
  326. package/enums/SlotDestructionType.js +6 -0
  327. package/enums/SlotDestructionType.lua +2 -0
  328. package/enums/private/CopyableIsaacAPIClassType.js +9 -0
  329. package/enums/private/CopyableIsaacAPIClassType.lua +2 -0
  330. package/enums/private/SaveDataKey.js +8 -0
  331. package/enums/private/SaveDataKey.lua +2 -0
  332. package/enums/private/SerializationBrand.js +41 -0
  333. package/enums/private/SerializationBrand.lua +2 -0
  334. package/features/characterHealthConversion.js +86 -0
  335. package/features/characterHealthConversion.lua +2 -0
  336. package/features/characterStats.js +52 -0
  337. package/features/characterStats.lua +2 -0
  338. package/features/collectibleItemPoolType.js +45 -0
  339. package/features/collectibleItemPoolType.lua +2 -0
  340. package/features/customGridEntity.js +148 -0
  341. package/features/customGridEntity.lua +2 -0
  342. package/features/customStage/backdrop.js +191 -0
  343. package/features/customStage/backdrop.lua +9 -7
  344. package/features/customStage/customStageConstants.js +2 -0
  345. package/features/customStage/customStageConstants.lua +2 -0
  346. package/features/customStage/exports.js +147 -0
  347. package/features/customStage/exports.lua +8 -1
  348. package/features/customStage/gridEntities.js +138 -0
  349. package/features/customStage/gridEntities.lua +2 -0
  350. package/features/customStage/init.js +104 -0
  351. package/features/customStage/init.lua +4 -9
  352. package/features/customStage/metadata.json +1 -0
  353. package/features/customStage/metadata.lua +2 -0
  354. package/features/customStage/shadows.d.ts +0 -1
  355. package/features/customStage/shadows.js +63 -0
  356. package/features/customStage/shadows.lua +31 -19
  357. package/features/customStage/streakText.d.ts +1 -1
  358. package/features/customStage/streakText.js +35 -0
  359. package/features/customStage/streakText.lua +14 -3
  360. package/features/customStage/util.js +36 -0
  361. package/features/customStage/util.lua +2 -0
  362. package/features/customStage/v.js +18 -0
  363. package/features/customStage/v.lua +2 -0
  364. package/features/customStage/versusScreen.js +184 -0
  365. package/features/customStage/versusScreen.lua +8 -1
  366. package/features/debugDisplay/debugDisplay.js +183 -0
  367. package/features/debugDisplay/debugDisplay.lua +2 -0
  368. package/features/debugDisplay/exports.js +441 -0
  369. package/features/debugDisplay/exports.lua +2 -0
  370. package/features/debugDisplay/v.d.ts +18 -0
  371. package/features/debugDisplay/v.js +61 -0
  372. package/features/debugDisplay/v.lua +2 -0
  373. package/features/deployJSONRoom.js +532 -0
  374. package/features/deployJSONRoom.lua +2 -0
  375. package/features/disableAllSound.js +63 -0
  376. package/features/disableAllSound.lua +2 -0
  377. package/features/disableInputs.js +130 -0
  378. package/features/disableInputs.lua +2 -0
  379. package/features/extraConsoleCommands/commandsDisplay.js +236 -0
  380. package/features/extraConsoleCommands/commandsDisplay.lua +2 -0
  381. package/features/extraConsoleCommands/commandsSubroutines.js +109 -0
  382. package/features/extraConsoleCommands/commandsSubroutines.lua +2 -0
  383. package/features/extraConsoleCommands/exports.js +53 -0
  384. package/features/extraConsoleCommands/exports.lua +2 -0
  385. package/features/extraConsoleCommands/init.js +239 -0
  386. package/features/extraConsoleCommands/init.lua +2 -0
  387. package/features/extraConsoleCommands/listCommands.js +1081 -0
  388. package/features/extraConsoleCommands/listCommands.lua +2 -0
  389. package/features/extraConsoleCommands/v.js +25 -0
  390. package/features/extraConsoleCommands/v.lua +2 -0
  391. package/features/fadeInRemover.js +51 -0
  392. package/features/fadeInRemover.lua +2 -0
  393. package/features/fastReset.js +61 -0
  394. package/features/fastReset.lua +2 -0
  395. package/features/forgottenSwitch.js +33 -0
  396. package/features/forgottenSwitch.lua +2 -0
  397. package/features/pause.js +68 -0
  398. package/features/pause.lua +2 -0
  399. package/features/persistentEntities.js +120 -0
  400. package/features/persistentEntities.lua +2 -0
  401. package/features/playerInventory.js +89 -0
  402. package/features/playerInventory.lua +2 -0
  403. package/features/ponyDetection.js +63 -0
  404. package/features/ponyDetection.lua +2 -0
  405. package/features/preventCollectibleRotation.js +81 -0
  406. package/features/preventCollectibleRotation.lua +2 -0
  407. package/features/registerHotkey.js +91 -0
  408. package/features/registerHotkey.lua +2 -0
  409. package/features/roomClearFrame.js +42 -0
  410. package/features/roomClearFrame.lua +2 -0
  411. package/features/runInNFrames.js +189 -0
  412. package/features/runInNFrames.lua +2 -0
  413. package/features/runNextRoom.js +34 -0
  414. package/features/runNextRoom.lua +2 -0
  415. package/features/saveDataManager/exports.js +183 -0
  416. package/features/saveDataManager/exports.lua +2 -0
  417. package/features/saveDataManager/load.js +69 -0
  418. package/features/saveDataManager/load.lua +2 -0
  419. package/features/saveDataManager/main.js +131 -0
  420. package/features/saveDataManager/main.lua +2 -0
  421. package/features/saveDataManager/maps.js +9 -0
  422. package/features/saveDataManager/maps.lua +2 -0
  423. package/features/saveDataManager/merge.js +139 -0
  424. package/features/saveDataManager/merge.lua +2 -0
  425. package/features/saveDataManager/save.js +43 -0
  426. package/features/saveDataManager/save.lua +2 -0
  427. package/features/saveDataManager/saveDataManagerConstants.js +4 -0
  428. package/features/saveDataManager/saveDataManagerConstants.lua +2 -0
  429. package/features/saveDataManager/serializationBrand.js +12 -0
  430. package/features/saveDataManager/serializationBrand.lua +2 -0
  431. package/features/sirenHelpers.js +90 -0
  432. package/features/sirenHelpers.lua +2 -0
  433. package/features/stageHistory.js +43 -0
  434. package/features/stageHistory.lua +2 -0
  435. package/features/taintedLazarusPlayers.js +92 -0
  436. package/features/taintedLazarusPlayers.lua +2 -0
  437. package/featuresInitialized.js +16 -0
  438. package/featuresInitialized.lua +2 -0
  439. package/functions/ambush.js +35 -0
  440. package/functions/ambush.lua +2 -0
  441. package/functions/array.js +423 -0
  442. package/functions/array.lua +2 -0
  443. package/functions/benchmark.js +28 -0
  444. package/functions/benchmark.lua +2 -0
  445. package/functions/bitwise.js +74 -0
  446. package/functions/bitwise.lua +2 -0
  447. package/functions/bombs.js +11 -0
  448. package/functions/bombs.lua +2 -0
  449. package/functions/boss.js +137 -0
  450. package/functions/boss.lua +2 -0
  451. package/functions/cacheFlag.js +11 -0
  452. package/functions/cacheFlag.lua +2 -0
  453. package/functions/cards.js +217 -0
  454. package/functions/cards.lua +2 -0
  455. package/functions/challenges.js +9 -0
  456. package/functions/challenges.lua +2 -0
  457. package/functions/character.js +102 -0
  458. package/functions/character.lua +2 -0
  459. package/functions/charge.js +202 -0
  460. package/functions/charge.lua +2 -0
  461. package/functions/chargeBar.js +44 -0
  462. package/functions/chargeBar.lua +2 -0
  463. package/functions/collectibleCacheFlag.js +68 -0
  464. package/functions/collectibleCacheFlag.lua +2 -0
  465. package/functions/collectibleSet.js +108 -0
  466. package/functions/collectibleSet.lua +2 -0
  467. package/functions/collectibleTag.js +65 -0
  468. package/functions/collectibleTag.lua +2 -0
  469. package/functions/collectibles.js +469 -0
  470. package/functions/collectibles.lua +2 -0
  471. package/functions/color.d.ts +1 -1
  472. package/functions/color.js +60 -0
  473. package/functions/color.lua +2 -0
  474. package/functions/debug.js +60 -0
  475. package/functions/debug.lua +2 -0
  476. package/functions/deepCopy.js +361 -0
  477. package/functions/deepCopy.lua +2 -0
  478. package/functions/deepCopyTests.js +308 -0
  479. package/functions/deepCopyTests.lua +2 -0
  480. package/functions/direction.js +41 -0
  481. package/functions/direction.lua +2 -0
  482. package/functions/doors.js +326 -0
  483. package/functions/doors.lua +2 -0
  484. package/functions/easing.js +142 -0
  485. package/functions/easing.lua +2 -0
  486. package/functions/eden.js +32 -0
  487. package/functions/eden.lua +2 -0
  488. package/functions/effects.js +11 -0
  489. package/functions/effects.lua +2 -0
  490. package/functions/entity.js +324 -0
  491. package/functions/entity.lua +2 -0
  492. package/functions/entitySpecific.js +481 -0
  493. package/functions/entitySpecific.lua +2 -0
  494. package/functions/entityTypes.js +6 -0
  495. package/functions/entityTypes.lua +2 -0
  496. package/functions/enums.js +151 -0
  497. package/functions/enums.lua +2 -0
  498. package/functions/familiars.js +85 -0
  499. package/functions/familiars.lua +2 -0
  500. package/functions/flag.js +137 -0
  501. package/functions/flag.lua +2 -0
  502. package/functions/flying.js +88 -0
  503. package/functions/flying.lua +2 -0
  504. package/functions/globals.js +230 -0
  505. package/functions/globals.lua +2 -0
  506. package/functions/gridEntity.js +488 -0
  507. package/functions/gridEntity.lua +2 -0
  508. package/functions/gridEntitySpecific.js +109 -0
  509. package/functions/gridEntitySpecific.lua +2 -0
  510. package/functions/input.js +95 -0
  511. package/functions/input.lua +2 -0
  512. package/functions/isaacAPIClass.js +48 -0
  513. package/functions/isaacAPIClass.lua +2 -0
  514. package/functions/jsonHelpers.js +40 -0
  515. package/functions/jsonHelpers.lua +2 -0
  516. package/functions/jsonRoom.js +132 -0
  517. package/functions/jsonRoom.lua +2 -0
  518. package/functions/kColor.d.ts +1 -1
  519. package/functions/kColor.js +63 -0
  520. package/functions/kColor.lua +2 -0
  521. package/functions/language.js +13 -0
  522. package/functions/language.lua +2 -0
  523. package/functions/level.js +20 -0
  524. package/functions/level.lua +2 -0
  525. package/functions/log.js +567 -0
  526. package/functions/log.lua +2 -0
  527. package/functions/map.js +45 -0
  528. package/functions/map.lua +2 -0
  529. package/functions/math.js +103 -0
  530. package/functions/math.lua +2 -0
  531. package/functions/mergeTests.js +213 -0
  532. package/functions/mergeTests.lua +2 -0
  533. package/functions/minimap.js +80 -0
  534. package/functions/minimap.lua +2 -0
  535. package/functions/nextStage.js +290 -0
  536. package/functions/nextStage.lua +2 -0
  537. package/functions/npc.js +101 -0
  538. package/functions/npc.lua +2 -0
  539. package/functions/pickupVariants.js +47 -0
  540. package/functions/pickupVariants.lua +2 -0
  541. package/functions/pickups.js +219 -0
  542. package/functions/pickups.lua +2 -0
  543. package/functions/pills.js +160 -0
  544. package/functions/pills.lua +2 -0
  545. package/functions/player.js +808 -0
  546. package/functions/player.lua +2 -0
  547. package/functions/playerCenter.js +50 -0
  548. package/functions/playerCenter.lua +2 -0
  549. package/functions/playerDataStructures.js +114 -0
  550. package/functions/playerDataStructures.lua +2 -0
  551. package/functions/playerHealth.js +321 -0
  552. package/functions/playerHealth.lua +2 -0
  553. package/functions/playerIndex.js +160 -0
  554. package/functions/playerIndex.lua +2 -0
  555. package/functions/pocketItems.js +124 -0
  556. package/functions/pocketItems.lua +2 -0
  557. package/functions/positionVelocity.js +136 -0
  558. package/functions/positionVelocity.lua +2 -0
  559. package/functions/random.js +73 -0
  560. package/functions/random.lua +2 -0
  561. package/functions/revive.js +140 -0
  562. package/functions/revive.lua +2 -0
  563. package/functions/rng.d.ts +1 -1
  564. package/functions/rng.js +117 -0
  565. package/functions/rng.lua +2 -0
  566. package/functions/roomData.js +174 -0
  567. package/functions/roomData.lua +2 -0
  568. package/functions/roomGrid.js +81 -0
  569. package/functions/roomGrid.lua +2 -0
  570. package/functions/roomShape.js +99 -0
  571. package/functions/roomShape.lua +2 -0
  572. package/functions/rooms.js +487 -0
  573. package/functions/rooms.lua +2 -0
  574. package/functions/run.js +53 -0
  575. package/functions/run.lua +2 -0
  576. package/functions/saveFile.js +104 -0
  577. package/functions/saveFile.lua +2 -0
  578. package/functions/seeds.js +18 -0
  579. package/functions/seeds.lua +2 -0
  580. package/functions/serialization.js +52 -0
  581. package/functions/serialization.lua +2 -0
  582. package/functions/set.js +99 -0
  583. package/functions/set.lua +2 -0
  584. package/functions/sound.js +9 -0
  585. package/functions/sound.lua +2 -0
  586. package/functions/spawnCollectible.js +66 -0
  587. package/functions/spawnCollectible.lua +2 -0
  588. package/functions/sprite.js +80 -0
  589. package/functions/sprite.lua +2 -0
  590. package/functions/stage.js +172 -0
  591. package/functions/stage.lua +2 -0
  592. package/functions/string.js +37 -0
  593. package/functions/string.lua +2 -0
  594. package/functions/table.js +143 -0
  595. package/functions/table.lua +2 -0
  596. package/functions/tears.js +31 -0
  597. package/functions/tears.lua +2 -0
  598. package/functions/transformations.js +101 -0
  599. package/functions/transformations.lua +2 -0
  600. package/functions/trinketCacheFlag.js +46 -0
  601. package/functions/trinketCacheFlag.lua +2 -0
  602. package/functions/trinketGive.js +121 -0
  603. package/functions/trinketGive.lua +2 -0
  604. package/functions/trinkets.js +169 -0
  605. package/functions/trinkets.lua +2 -0
  606. package/functions/tstlClass.js +125 -0
  607. package/functions/tstlClass.lua +2 -0
  608. package/functions/types.js +27 -0
  609. package/functions/types.lua +2 -0
  610. package/functions/ui.js +124 -0
  611. package/functions/ui.lua +2 -0
  612. package/functions/utils.js +172 -0
  613. package/functions/utils.lua +2 -0
  614. package/functions/vector.js +68 -0
  615. package/functions/vector.lua +2 -0
  616. package/index.js +140 -0
  617. package/index.lua +2 -0
  618. package/initCustomCallbacks.js +133 -0
  619. package/initCustomCallbacks.lua +2 -0
  620. package/initFeatures.js +51 -0
  621. package/initFeatures.lua +2 -0
  622. package/interfaces/AddCallbackParameterCustom.js +2 -0
  623. package/interfaces/AddCallbackParameterCustom.lua +2 -0
  624. package/interfaces/ChargeBarSprites.js +2 -0
  625. package/interfaces/ChargeBarSprites.lua +2 -0
  626. package/interfaces/Corner.js +2 -0
  627. package/interfaces/Corner.lua +2 -0
  628. package/interfaces/CustomGridEntityData.js +2 -0
  629. package/interfaces/CustomGridEntityData.lua +2 -0
  630. package/interfaces/CustomStage.js +2 -0
  631. package/interfaces/CustomStage.lua +2 -0
  632. package/interfaces/CustomStageLua.d.ts +64 -24
  633. package/interfaces/CustomStageLua.js +13 -0
  634. package/interfaces/CustomStageLua.lua +2 -0
  635. package/interfaces/JSONRoomsFile.js +2 -0
  636. package/interfaces/JSONRoomsFile.lua +2 -0
  637. package/interfaces/PlayerHealth.js +2 -0
  638. package/interfaces/PlayerHealth.lua +2 -0
  639. package/interfaces/PocketItemDescription.js +2 -0
  640. package/interfaces/PocketItemDescription.lua +2 -0
  641. package/interfaces/SaveData.js +2 -0
  642. package/interfaces/SaveData.lua +2 -0
  643. package/interfaces/TrinketSituation.js +2 -0
  644. package/interfaces/TrinketSituation.lua +2 -0
  645. package/interfaces/private/TSTLClassMetatable.js +2 -0
  646. package/interfaces/private/TSTLClassMetatable.lua +2 -0
  647. package/maps/PHDPillConversions.js +20 -0
  648. package/maps/PHDPillConversions.lua +2 -0
  649. package/maps/cardMap.js +208 -0
  650. package/maps/cardMap.lua +2 -0
  651. package/maps/characterMap.js +86 -0
  652. package/maps/characterMap.lua +2 -0
  653. package/maps/collectibleDescriptionMap.js +728 -0
  654. package/maps/collectibleDescriptionMap.lua +2 -0
  655. package/maps/collectibleNameMap.js +727 -0
  656. package/maps/collectibleNameMap.lua +2 -0
  657. package/maps/defaultPlayerStatMap.js +14 -0
  658. package/maps/defaultPlayerStatMap.lua +2 -0
  659. package/maps/falsePHDPillConversions.js +34 -0
  660. package/maps/falsePHDPillConversions.lua +2 -0
  661. package/maps/gridEntityTypeToBrokenStateMap.js +29 -0
  662. package/maps/gridEntityTypeToBrokenStateMap.lua +2 -0
  663. package/maps/gridEntityXMLMap.js +128 -0
  664. package/maps/gridEntityXMLMap.lua +2 -0
  665. package/maps/pillEffectMap.js +88 -0
  666. package/maps/pillEffectMap.lua +2 -0
  667. package/maps/roomShapeToTopLeftWallGridIndexMap.js +14 -0
  668. package/maps/roomShapeToTopLeftWallGridIndexMap.lua +2 -0
  669. package/maps/roomTypeMap.js +39 -0
  670. package/maps/roomTypeMap.lua +2 -0
  671. package/maps/trinketDescriptionMap.js +196 -0
  672. package/maps/trinketDescriptionMap.lua +2 -0
  673. package/maps/trinketNameMap.js +195 -0
  674. package/maps/trinketNameMap.lua +2 -0
  675. package/objects/LRoomShapeToRectangles.js +33 -0
  676. package/objects/LRoomShapeToRectangles.lua +2 -0
  677. package/objects/backdropTypeToRockAltType.js +66 -0
  678. package/objects/backdropTypeToRockAltType.lua +2 -0
  679. package/objects/bossNamePNGFileNames.js +112 -0
  680. package/objects/bossNamePNGFileNames.lua +2 -0
  681. package/objects/bossPortraitPNGFileNames.js +115 -0
  682. package/objects/bossPortraitPNGFileNames.lua +2 -0
  683. package/objects/callbackRegisterFunctions.js +170 -0
  684. package/objects/callbackRegisterFunctions.lua +2 -0
  685. package/objects/cardDescriptions.js +104 -0
  686. package/objects/cardDescriptions.lua +2 -0
  687. package/objects/cardNames.js +104 -0
  688. package/objects/cardNames.lua +2 -0
  689. package/objects/cardTypes.js +103 -0
  690. package/objects/cardTypes.lua +2 -0
  691. package/objects/challengeNames.js +51 -0
  692. package/objects/challengeNames.lua +2 -0
  693. package/objects/characterNames.js +46 -0
  694. package/objects/characterNames.lua +2 -0
  695. package/objects/coinSubTypeToValue.js +13 -0
  696. package/objects/coinSubTypeToValue.lua +2 -0
  697. package/objects/colors.d.ts +1 -0
  698. package/objects/colors.js +24 -0
  699. package/objects/colors.lua +2 -0
  700. package/objects/directionNames.js +9 -0
  701. package/objects/directionNames.lua +2 -0
  702. package/objects/directionToDegrees.js +9 -0
  703. package/objects/directionToDegrees.lua +2 -0
  704. package/objects/directionToVector.js +10 -0
  705. package/objects/directionToVector.lua +2 -0
  706. package/objects/doorSlotFlagToDoorSlot.js +13 -0
  707. package/objects/doorSlotFlagToDoorSlot.lua +2 -0
  708. package/objects/doorSlotToDirection.js +13 -0
  709. package/objects/doorSlotToDirection.lua +2 -0
  710. package/objects/doorSlotToDoorSlotFlag.js +13 -0
  711. package/objects/doorSlotToDoorSlotFlag.lua +2 -0
  712. package/objects/isaacAPIClassTypeToBrand.js +9 -0
  713. package/objects/isaacAPIClassTypeToBrand.lua +2 -0
  714. package/objects/isaacAPIClassTypeToCopyFunction.js +12 -0
  715. package/objects/isaacAPIClassTypeToCopyFunction.lua +2 -0
  716. package/objects/languageNames.js +11 -0
  717. package/objects/languageNames.lua +2 -0
  718. package/objects/oppositeDoorSlots.js +13 -0
  719. package/objects/oppositeDoorSlots.lua +2 -0
  720. package/objects/pillEffectClasses.js +56 -0
  721. package/objects/pillEffectClasses.lua +2 -0
  722. package/objects/pillEffectNames.js +55 -0
  723. package/objects/pillEffectNames.lua +2 -0
  724. package/objects/pillEffectTypes.js +55 -0
  725. package/objects/pillEffectTypes.lua +2 -0
  726. package/objects/playerNamePNGFileNames.js +55 -0
  727. package/objects/playerNamePNGFileNames.lua +2 -0
  728. package/objects/playerPortraitPNGFileNames.js +52 -0
  729. package/objects/playerPortraitPNGFileNames.lua +2 -0
  730. package/objects/roomShapeBounds.js +46 -0
  731. package/objects/roomShapeBounds.lua +2 -0
  732. package/objects/roomShapeCorners.js +268 -0
  733. package/objects/roomShapeCorners.lua +2 -0
  734. package/objects/roomShapeLayoutSizes.js +39 -0
  735. package/objects/roomShapeLayoutSizes.lua +2 -0
  736. package/objects/roomShapeToBottomRightPosition.js +22 -0
  737. package/objects/roomShapeToBottomRightPosition.lua +2 -0
  738. package/objects/roomShapeToDoorSlotCoordinates.js +109 -0
  739. package/objects/roomShapeToDoorSlotCoordinates.lua +2 -0
  740. package/objects/roomShapeToDoorSlots.js +69 -0
  741. package/objects/roomShapeToDoorSlots.lua +2 -0
  742. package/objects/roomShapeToDoorSlotsToGridIndexDelta.js +113 -0
  743. package/objects/roomShapeToDoorSlotsToGridIndexDelta.lua +2 -0
  744. package/objects/roomShapeToGridWidth.js +18 -0
  745. package/objects/roomShapeToGridWidth.lua +2 -0
  746. package/objects/roomShapeToTopLeftPosition.js +23 -0
  747. package/objects/roomShapeToTopLeftPosition.lua +2 -0
  748. package/objects/roomShapeVolumes.js +30 -0
  749. package/objects/roomShapeVolumes.lua +2 -0
  750. package/objects/roomTypeGotoPrefixes.js +33 -0
  751. package/objects/roomTypeGotoPrefixes.lua +2 -0
  752. package/objects/roomTypeNames.js +34 -0
  753. package/objects/roomTypeNames.lua +2 -0
  754. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.js +12 -0
  755. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.lua +2 -0
  756. package/objects/stageTypeSuffixes.js +10 -0
  757. package/objects/stageTypeSuffixes.lua +2 -0
  758. package/objects/stageTypeToLetter.js +12 -0
  759. package/objects/stageTypeToLetter.lua +2 -0
  760. package/objects/transformationNames.js +18 -0
  761. package/objects/transformationNames.lua +2 -0
  762. package/objects/versusScreenBackgroundColors.js +36 -0
  763. package/objects/versusScreenBackgroundColors.lua +2 -0
  764. package/objects/versusScreenDirtSpotColors.js +36 -0
  765. package/objects/versusScreenDirtSpotColors.lua +2 -0
  766. package/package.json +1 -1
  767. package/patchErrorFunctions.js +67 -0
  768. package/patchErrorFunctions.lua +2 -0
  769. package/sets/LRoomShapesSet.js +8 -0
  770. package/sets/LRoomShapesSet.lua +2 -0
  771. package/sets/bossSets.js +374 -0
  772. package/sets/bossSets.lua +2 -0
  773. package/sets/charactersThatStartWithAnActiveItemSet.js +15 -0
  774. package/sets/charactersThatStartWithAnActiveItemSet.lua +2 -0
  775. package/sets/charactersWithBlackHeartFromEternalHeartSet.js +6 -0
  776. package/sets/charactersWithBlackHeartFromEternalHeartSet.lua +2 -0
  777. package/sets/charactersWithFreeDevilDealsSet.js +3 -0
  778. package/sets/charactersWithFreeDevilDealsSet.lua +2 -0
  779. package/sets/charactersWithNoRedHeartsSet.js +16 -0
  780. package/sets/charactersWithNoRedHeartsSet.lua +2 -0
  781. package/sets/charactersWithNoSoulHeartsSet.js +13 -0
  782. package/sets/charactersWithNoSoulHeartsSet.lua +2 -0
  783. package/sets/chestPickupVariantsSet.js +16 -0
  784. package/sets/chestPickupVariantsSet.lua +2 -0
  785. package/sets/consoleCommandsSet.js +61 -0
  786. package/sets/consoleCommandsSet.lua +2 -0
  787. package/sets/familiarsThatShootPlayerTearsSet.js +12 -0
  788. package/sets/familiarsThatShootPlayerTearsSet.lua +2 -0
  789. package/sets/lostStyleCharactersSet.js +13 -0
  790. package/sets/lostStyleCharactersSet.lua +2 -0
  791. package/sets/mineShaftRoomSubTypesSet.js +9 -0
  792. package/sets/mineShaftRoomSubTypesSet.lua +2 -0
  793. package/sets/narrowRoomShapesSet.js +8 -0
  794. package/sets/narrowRoomShapesSet.lua +2 -0
  795. package/sets/redHeartSubTypesSet.js +7 -0
  796. package/sets/redHeartSubTypesSet.lua +2 -0
  797. package/sets/sinEntityTypesSet.js +11 -0
  798. package/sets/sinEntityTypesSet.lua +2 -0
  799. package/sets/singleUseActiveCollectibleTypesSet.js +12 -0
  800. package/sets/singleUseActiveCollectibleTypesSet.lua +2 -0
  801. package/sets/storyBossesSet.js +17 -0
  802. package/sets/storyBossesSet.lua +2 -0
  803. package/shaderCrashFix.js +17 -0
  804. package/shaderCrashFix.lua +2 -0
  805. package/types/AnyEntity.js +2 -0
  806. package/types/AnyEntity.lua +2 -0
  807. package/types/CollectibleIndex.js +2 -0
  808. package/types/CollectibleIndex.lua +2 -0
  809. package/types/PickingUpItem.js +38 -0
  810. package/types/PickingUpItem.lua +2 -0
  811. package/types/PlayerIndex.js +2 -0
  812. package/types/PlayerIndex.lua +2 -0
  813. package/types/private/IsaacAPIClass.js +2 -0
  814. package/types/private/IsaacAPIClass.lua +2 -0
  815. package/types/private/SerializedIsaacAPIClass.js +2 -0
  816. package/types/private/SerializedIsaacAPIClass.lua +2 -0
  817. package/types/private/TSTLClass.js +2 -0
  818. package/types/private/TSTLClass.lua +2 -0
  819. package/upgradeMod.js +47 -0
  820. package/upgradeMod.lua +2 -0
@@ -0,0 +1,219 @@
1
+ import { PickupVariant, } from "isaac-typescript-definitions";
2
+ import { VectorZero } from "../constants";
3
+ import { COIN_SUBTYPE_TO_VALUE, DEFAULT_COIN_VALUE, } from "../objects/coinSubTypeToValue";
4
+ import { CHEST_PICKUP_VARIANTS } from "../sets/chestPickupVariantsSet";
5
+ import { RED_HEART_SUB_TYPES_SET } from "../sets/redHeartSubTypesSet";
6
+ import { getPickups, removeAllPickups, spawnPickup } from "./entitySpecific";
7
+ import { isHeart } from "./pickupVariants";
8
+ /** Helper function to get all of the battery entities in the room. */
9
+ export function getBatteries(matchingSubType = -1) {
10
+ return getPickups(PickupVariant.LIL_BATTERY, matchingSubType);
11
+ }
12
+ /** Helper function to get all of the card entities in the room. */
13
+ export function getCards(matchingSubType = -1) {
14
+ return getPickups(PickupVariant.TAROT_CARD, matchingSubType);
15
+ }
16
+ /**
17
+ * Helper function to get the corresponding coin amount from a `CoinSubType`. Returns 1 for modded
18
+ * sub-types.
19
+ */
20
+ export function getCoinValue(coinSubType) {
21
+ const value = COIN_SUBTYPE_TO_VALUE[coinSubType];
22
+ // Handle modded coin sub-types.
23
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
24
+ return value === undefined ? DEFAULT_COIN_VALUE : value;
25
+ }
26
+ /** Helper function to get all of the coin pickup entities in the room. */
27
+ export function getCoins(matchingSubType = -1) {
28
+ return getPickups(PickupVariant.COIN, matchingSubType);
29
+ }
30
+ /** Helper function to get all of the collectible entities in the room. */
31
+ export function getCollectibles(matchingSubType = -1) {
32
+ return getPickups(PickupVariant.COLLECTIBLE, matchingSubType);
33
+ }
34
+ /** Helper function to get all of the heart pickup entities in the room. */
35
+ export function getHearts(matchingSubType = -1) {
36
+ return getPickups(PickupVariant.HEART, matchingSubType);
37
+ }
38
+ /** Helper function to get all of the key pickup entities in the room. */
39
+ export function getKeys(matchingSubType = -1) {
40
+ return getPickups(PickupVariant.KEY, matchingSubType);
41
+ }
42
+ /** Helper function to get all of the pill entities in the room. */
43
+ export function getPills(matchingSubType = -1) {
44
+ return getPickups(PickupVariant.PILL, matchingSubType);
45
+ }
46
+ /** Helper function to get all of the red heart pickup entities in the room. */
47
+ export function getRedHearts() {
48
+ const hearts = getHearts();
49
+ return hearts.filter((heart) => RED_HEART_SUB_TYPES_SET.has(heart.SubType));
50
+ }
51
+ /** Helper function to get all of the sack (i.e. grab bag) entities in the room. */
52
+ export function getSacks(matchingSubType = -1) {
53
+ return getPickups(PickupVariant.SACK, matchingSubType);
54
+ }
55
+ /** Helper function to get all of the trinket entities in the room. */
56
+ export function getTrinkets(matchingSubType = -1) {
57
+ return getPickups(PickupVariant.TRINKET, matchingSubType);
58
+ }
59
+ export function isChest(pickup) {
60
+ return CHEST_PICKUP_VARIANTS.has(pickup.Variant);
61
+ }
62
+ export function isRedHeart(pickup) {
63
+ return isHeart(pickup) && RED_HEART_SUB_TYPES_SET.has(pickup.SubType);
64
+ }
65
+ /**
66
+ * Helper function to remove all of the batteries in the room.
67
+ *
68
+ * @param batterySubType Optional. If specified, will only remove cards that match this sub-type.
69
+ * @param cap Optional. If specified, will only remove the given amount of cards.
70
+ * @returns True if one or more cards were removed, false otherwise.
71
+ */
72
+ export function removeAllBatteries(batterySubType, cap) {
73
+ return removeAllPickups(PickupVariant.LIL_BATTERY, batterySubType, cap);
74
+ }
75
+ /**
76
+ * Helper function to remove all of the cards in the room.
77
+ *
78
+ * @param card Optional. If specified, will only remove cards that match this sub-type.
79
+ * @param cap Optional. If specified, will only remove the given amount of cards.
80
+ * @returns True if one or more cards were removed, false otherwise.
81
+ */
82
+ export function removeAllCards(card, cap) {
83
+ return removeAllPickups(PickupVariant.TAROT_CARD, card, cap);
84
+ }
85
+ /**
86
+ * Helper function to remove all of the coins in the room.
87
+ *
88
+ * @param coinSubType Optional. If specified, will only remove coins that match this sub-type.
89
+ * @param cap Optional. If specified, will only remove the given amount of coins.
90
+ * @returns True if one or more coins were removed, false otherwise.
91
+ */
92
+ export function removeAllCoins(coinSubType, cap) {
93
+ return removeAllPickups(PickupVariant.COIN, coinSubType, cap);
94
+ }
95
+ /**
96
+ * Helper function to remove all of the collectibles in the room.
97
+ *
98
+ * @param collectibleType Optional. If specified, will only remove collectibles that match this
99
+ * collectible type.
100
+ * @param cap Optional. If specified, will only remove the given amount of collectibles.
101
+ * @returns True if one or more collectibles were removed, false otherwise.
102
+ */
103
+ export function removeAllCollectibles(collectibleType, cap) {
104
+ return removeAllPickups(PickupVariant.COLLECTIBLE, collectibleType, cap);
105
+ }
106
+ /**
107
+ * Helper function to remove all of the hearts in the room.
108
+ *
109
+ * @param heartSubType Optional. If specified, will only remove hearts that match this sub-type.
110
+ * @param cap Optional. If specified, will only remove the given amount of hearts.
111
+ * @returns True if one or more hearts were removed, false otherwise.
112
+ */
113
+ export function removeAllHearts(heartSubType, cap) {
114
+ return removeAllPickups(PickupVariant.HEART, heartSubType, cap);
115
+ }
116
+ /**
117
+ * Helper function to remove all of the keys in the room.
118
+ *
119
+ * @param keySubType Optional. If specified, will only remove keys that match this sub-type.
120
+ * @param cap Optional. If specified, will only remove the given amount of keys.
121
+ * @returns True if one or more keys were removed, false otherwise.
122
+ */
123
+ export function removeAllKeys(keySubType, cap) {
124
+ return removeAllPickups(PickupVariant.KEY, keySubType, cap);
125
+ }
126
+ /**
127
+ * Helper function to remove all of the pills in the room.
128
+ *
129
+ * @param pillColor Optional. If specified, will only remove pills that match this color.
130
+ * @param cap Optional. If specified, will only remove the given amount of pills.
131
+ * @returns True if one or more pills were removed, false otherwise.
132
+ */
133
+ export function removeAllPills(pillColor, cap) {
134
+ return removeAllPickups(PickupVariant.PILL, pillColor, cap);
135
+ }
136
+ /**
137
+ * Helper function to remove all of the sacks (i.e. grab bags) in the room.
138
+ *
139
+ * @param sackSubType Optional. If specified, will only remove sacks that match this sub-type.
140
+ * @param cap Optional. If specified, will only remove the given amount of trinkets.
141
+ * @returns True if one or more trinkets were removed, false otherwise.
142
+ */
143
+ export function removeAllSacks(sackSubType, cap) {
144
+ return removeAllPickups(PickupVariant.TRINKET, sackSubType, cap);
145
+ }
146
+ /**
147
+ * Helper function to remove all of the trinkets in the room.
148
+ *
149
+ * @param trinketType Optional. If specified, will only remove trinkets that match this trinket
150
+ * type.
151
+ * @param cap Optional. If specified, will only remove the given amount of trinkets.
152
+ * @returns True if one or more trinkets were removed, false otherwise.
153
+ */
154
+ export function removeAllTrinkets(trinketType, cap) {
155
+ return removeAllPickups(PickupVariant.TRINKET, trinketType, cap);
156
+ }
157
+ /**
158
+ * Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.LIL_BATTERY` (90).
159
+ */
160
+ export function spawnBattery(subType, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
161
+ return spawnPickup(PickupVariant.LIL_BATTERY, subType, position, velocity, spawner, seedOrRNG);
162
+ }
163
+ export function spawnBatteryWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
164
+ return spawnBattery(subType, position, velocity, spawner, seedOrRNG);
165
+ }
166
+ /**
167
+ * Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.TAROT_CARD` (300).
168
+ */
169
+ export function spawnCard(subType, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
170
+ return spawnPickup(PickupVariant.TAROT_CARD, subType, position, velocity, spawner, seedOrRNG);
171
+ }
172
+ export function spawnCardWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
173
+ return spawnCard(subType, position, velocity, spawner, seedOrRNG);
174
+ }
175
+ /** Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.COIN` (20). */
176
+ export function spawnCoin(subType, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
177
+ return spawnPickup(PickupVariant.COIN, subType, position, velocity, spawner, seedOrRNG);
178
+ }
179
+ export function spawnCoinWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
180
+ return spawnCoin(subType, position, velocity, spawner, seedOrRNG);
181
+ }
182
+ /** Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.HEART` (10). */
183
+ export function spawnHeart(subType, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
184
+ return spawnPickup(PickupVariant.HEART, subType, position, velocity, spawner, seedOrRNG);
185
+ }
186
+ export function spawnHeartWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
187
+ return spawnHeart(subType, position, velocity, spawner, seedOrRNG);
188
+ }
189
+ /** Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.KEY` (30). */
190
+ export function spawnKey(subType, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
191
+ return spawnPickup(PickupVariant.KEY, subType, position, velocity, spawner, seedOrRNG);
192
+ }
193
+ export function spawnKeyWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
194
+ return spawnKey(subType, position, velocity, spawner, seedOrRNG);
195
+ }
196
+ /** Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.PILL` (70). */
197
+ export function spawnPill(pillColor, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
198
+ return spawnPickup(PickupVariant.PILL, pillColor, position, velocity, spawner, seedOrRNG);
199
+ }
200
+ export function spawnPillWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
201
+ return spawnPill(subType, position, velocity, spawner, seedOrRNG);
202
+ }
203
+ /** Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.SACK` (69). */
204
+ export function spawnSack(subType, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
205
+ return spawnPickup(PickupVariant.SACK, subType, position, velocity, spawner, seedOrRNG);
206
+ }
207
+ export function spawnSackWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
208
+ return spawnSack(subType, position, velocity, spawner, seedOrRNG);
209
+ }
210
+ /**
211
+ * Helper function to spawn a `EntityType.PICKUP` (5) with variant `PickupVariant.TRINKET` (350).
212
+ */
213
+ export function spawnTrinket(subType, position, velocity = VectorZero, spawner = undefined, seedOrRNG = undefined) {
214
+ return spawnPickup(PickupVariant.TRINKET, subType, position, velocity, spawner, seedOrRNG);
215
+ }
216
+ export function spawnTrinketWithSeed(subType, position, seedOrRNG, velocity = VectorZero, spawner = undefined) {
217
+ return spawnTrinket(subType, position, velocity, spawner, seedOrRNG);
218
+ }
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja3Vwcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2lzYWFjc2NyaXB0LWNvbW1vbi9zcmMvZnVuY3Rpb25zL3BpY2t1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU9MLGFBQWEsR0FJZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixrQkFBa0IsR0FDbkIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQyxzRUFBc0U7QUFDdEUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsa0JBQXVDLENBQUMsQ0FBQztJQUV6QyxPQUFPLFVBQVUsQ0FDZixhQUFhLENBQUMsV0FBVyxFQUN6QixlQUFlLENBQ1MsQ0FBQztBQUM3QixDQUFDO0FBRUQsbUVBQW1FO0FBQ25FLE1BQU0sVUFBVSxRQUFRLENBQUMsa0JBQTZCLENBQUMsQ0FBQztJQUN0RCxPQUFPLFVBQVUsQ0FDZixhQUFhLENBQUMsVUFBVSxFQUN4QixlQUFlLENBQ00sQ0FBQztBQUMxQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxXQUF3QjtJQUNuRCxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxnQ0FBZ0M7SUFDaEMsdUVBQXVFO0lBQ3ZFLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsa0JB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
@@ -472,3 +472,5 @@ function ____exports.spawnTrinketWithSeed(self, subType, position, seedOrRNG, ve
472
472
  )
473
473
  end
474
474
  return ____exports
475
+
476
+ --# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2lzYWFjc2NyaXB0LWNvbW1vbi9zcmMvZnVuY3Rpb25zL3BpY2t1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBV087QUFKTDtBQUtGLHNCQUEyQjtBQUFsQjtBQUNULCtCQUdPO0FBRkw7QUFDQTtBQUVGLG1DQUFzQztBQUE3QjtBQUNULGdDQUF3QztBQUEvQjtBQUNULDJCQUEwRDtBQUFqRDtBQUFZO0FBQWtCO0FBQ3ZDLDJCQUF3QjtBQUFmOztBQUdULHdDQUNFO09BQUE7UUFBQSxtQkFBd0M7O0FBRXhDLFdBQU8sZ0JBQ0wsMkJBQ0E7QUFMSjs7QUFVQSxvQ0FBeUI7T0FBQTtRQUFBLG1CQUE4Qjs7QUFDckQsV0FBTyxnQkFDTCwwQkFDQTtBQUhKOzs7QUFXQSx3Q0FBNkI7QUFDckIsa0JBQVEsc0JBQXNCO0FBR3BDLFdBQU8saUJBQXNCLHNCQUFxQjtBQUpwRDs7QUFRQSxvQ0FDRTtPQUFBO1FBQUEsbUJBQXFDOztBQUVyQyxXQUFPLGdCQUFXLG9CQUFvQjtBQUh4Qzs7QUFPQSwyQ0FDRTtPQUFBO1FBQUEsbUJBQXlDOztBQUV6QyxXQUFPLGdCQUNMLDJCQUNBO0FBTEo7O0FBVUEscUNBQ0U7T0FBQTtRQUFBLG1CQUFzQzs7QUFFdEMsV0FBTyxnQkFDTCxxQkFDQTtBQUxKOztBQVVBLG1DQUNFO09BQUE7UUFBQSxtQkFBb0M7O0FBRXBDLFdBQU8sZ0JBQVcsbUJBQW1CO0FBSHZDOztBQU9BLG9DQUNFO09BQUE7UUFBQSxtQkFBbUM7O0FBRW5DLFdBQU8sZ0JBQVcsb0JBQW9CO0FBSHhDOztBQU9BO0FBQ1EsbUJBQVM7QUFDZixXQUFPO1FBQUE7UUFBYyxlQUFDLE9BQVUsK0JBQXdCLElBQUksY0FBdkM7O0FBRnZCOztBQU1BLG9DQUNFO09BQUE7UUFBQSxtQkFBcUM7O0FBRXJDLFdBQU8sZ0JBQVcsb0JBQW9CO0FBSHhDOztBQU9BLHVDQUNFO09BQUE7UUFBQSxtQkFBcUM7O0FBRXJDLFdBQU8sZ0JBQ0wsdUJBQ0E7QUFMSjtBQVNBLG1DQUF3QjtBQUN0QixXQUFPLHNCQUFzQixJQUFJO0FBRG5DO0FBSUEsc0NBQTJCO0FBQ3pCLFdBQU8sYUFBUSxZQUFXLHdCQUF3QixJQUFJO0FBRHhEOzs7Ozs7QUFXQSw4Q0FDRSxnQkFDQTtBQUVBLFdBQU8sc0JBQ0wsMkJBQ0EsZ0JBQ0E7QUFQSjs7Ozs7O0FBa0JBLDBDQUErQixNQUFhO0FBQzFDLFdBQU8sc0JBQ0wsMEJBQ0EsTUFDQTtBQUpKOzs7Ozs7QUFlQSwwQ0FDRSxhQUNBO0FBRUEsV0FBTyxzQkFDTCxvQkFDQSxhQUNBO0FBUEo7Ozs7Ozs7QUFtQkEsaURBQ0UsaUJBQ0E7QUFFQSxXQUFPLHNCQUNMLDJCQUNBLGlCQUNBO0FBUEo7Ozs7OztBQWtCQSwyQ0FDRSxjQUNBO0FBRUEsV0FBTyxzQkFDTCxxQkFDQSxjQUNBO0FBUEo7Ozs7OztBQWtCQSx5Q0FDRSxZQUNBO0FBRUEsV0FBTyxzQkFDTCxtQkFDQSxZQUNBO0FBUEo7Ozs7OztBQWtCQSwwQ0FDRSxXQUNBO0FBRUEsV0FBTyxzQkFDTCxvQkFDQSxXQUNBO0FBUEo7Ozs7OztBQWtCQSwwQ0FDRSxhQUNBO0FBRUEsV0FBTyxzQkFDTCx1QkFDQSxhQUNBO0FBUEo7Ozs7Ozs7QUFtQkEsNkNBQ0UsYUFDQTtBQUVBLFdBQU8sc0JBQ0wsdUJBQ0EsYUFDQTtBQVBKOztBQWNBLHdDQUNFLFNBQ0EsVUFDQSxVQUNBLFNBQ0E7T0FGQTtRQUFBLFdBQW1COztPQUNuQjtRQUFBOztPQUNBO1FBQUE7O0FBRUEsV0FBTzs7UUFDTDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O0FBYko7QUFpQkEsZ0RBQ0UsU0FDQSxVQUNBLFdBQ0EsVUFDQTtPQURBO1FBQUEsV0FBbUI7O09BQ25CO1FBQUE7O0FBRUEsV0FBTzs7UUFBYTtRQUFTO1FBQVU7UUFBVTtRQUFTOztBQVA1RDs7QUFhQSxxQ0FDRSxTQUNBLFVBQ0EsVUFDQSxTQUNBO09BRkE7UUFBQSxXQUFtQjs7T0FDbkI7UUFBQTs7T0FDQTtRQUFBOztBQUVBLFdBQU87O1FBQ0w7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztBQWJKO0FBaUJBLDZDQUNFLFNBQ0EsVUFDQSxXQUNBLFVBQ0E7T0FEQTtRQUFBLFdBQW1COztPQUNuQjtRQUFBOztBQUVBLFdBQU87O1FBQVU7UUFBUztRQUFVO1FBQVU7UUFBUzs7QUFQekQ7O0FBV0EscUNBQ0UsU0FDQSxVQUNBLFVBQ0EsU0FDQTtPQUZBO1FBQUEsV0FBbUI7O09BQ25CO1FBQUE7O09BQ0E7UUFBQTs7QUFFQSxXQUFPOztRQUNMO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7QUFiSjtBQWlCQSw2Q0FDRSxTQUNBLFVBQ0EsV0FDQSxVQUNBO09BREE7UUFBQSxXQUFtQjs7T0FDbkI7UUFBQTs7QUFFQSxXQUFPOztRQUFVO1FBQVM7UUFBVTtRQUFVO1FBQVM7O0FBUHpEOztBQVdBLHNDQUNFLFNBQ0EsVUFDQSxVQUNBLFNBQ0E7T0FGQTtRQUFBLFdBQW1COztPQUNuQjtRQUFBOztPQUNBO1FBQUE7O0FBRUEsV0FBTzs7UUFDTDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O0FBYko7QUFpQkEsOENBQ0UsU0FDQSxVQUNBLFdBQ0EsVUFDQTtPQURBO1FBQUEsV0FBbUI7O09BQ25CO1FBQUE7O0FBRUEsV0FBTzs7UUFBVztRQUFTO1FBQVU7UUFBVTtRQUFTOztBQVAxRDs7QUFXQSxvQ0FDRSxTQUNBLFVBQ0EsVUFDQSxTQUNBO09BRkE7UUFBQSxXQUFtQjs7T0FDbkI7UUFBQTs7T0FDQTtRQUFBOztBQUVBLFdBQU87O1FBQ0w7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztBQWJKO0FBaUJBLDRDQUNFLFNBQ0EsVUFDQSxXQUNBLFVBQ0E7T0FEQTtRQUFBLFdBQW1COztPQUNuQjtRQUFBOztBQUVBLFdBQU87O1FBQVM7UUFBUztRQUFVO1FBQVU7UUFBUzs7QUFQeEQ7O0FBV0EscUNBQ0UsV0FDQSxVQUNBLFVBQ0EsU0FDQTtPQUZBO1FBQUEsV0FBbUI7O09BQ25CO1FBQUE7O09BQ0E7UUFBQTs7QUFFQSxXQUFPOztRQUNMO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7QUFiSjtBQWlCQSw2Q0FDRSxTQUNBLFVBQ0EsV0FDQSxVQUNBO09BREE7UUFBQSxXQUFtQjs7T0FDbkI7UUFBQTs7QUFFQSxXQUFPOztRQUFVO1FBQVM7UUFBVTtRQUFVO1FBQVM7O0FBUHpEOztBQVdBLHFDQUNFLFNBQ0EsVUFDQSxVQUNBLFNBQ0E7T0FGQTtRQUFBLFdBQW1COztPQUNuQjtRQUFBOztPQUNBO1FBQUE7O0FBRUEsV0FBTzs7UUFDTDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O0FBYko7QUFpQkEsNkNBQ0UsU0FDQSxVQUNBLFdBQ0EsVUFDQTtPQURBO1FBQUEsV0FBbUI7O09BQ25CO1FBQUE7O0FBRUEsV0FBTzs7UUFBVTtRQUFTO1FBQVU7UUFBVTtRQUFTOztBQVB6RDs7QUFhQSx3Q0FDRSxTQUNBLFVBQ0EsVUFDQSxTQUNBO09BRkE7UUFBQSxXQUFtQjs7T0FDbkI7UUFBQTs7T0FDQTtRQUFBOztBQUVBLFdBQU87O1FBQ0w7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztBQWJKO0FBaUJBLGdEQUNFLFNBQ0EsVUFDQSxXQUNBLFVBQ0E7T0FEQTtRQUFBLFdBQW1COztPQUNuQjtRQUFBOztBQUVBLFdBQU87O1FBQWE7UUFBUztRQUFVO1FBQVU7UUFBUzs7QUFQNUQiLCJmaWxlIjoicGlja3Vwcy5sdWEiLCJzb3VyY2VSb290IjoiIn0=
@@ -0,0 +1,160 @@
1
+ import { PillColor, } from "isaac-typescript-definitions";
2
+ import { itemConfig } from "../cachedClasses";
3
+ import { FIRST_HORSE_PILL_COLOR, FIRST_MODDED_PILL_EFFECT, FIRST_PILL_COLOR, FIRST_PILL_EFFECT, LAST_HORSE_PILL_COLOR, LAST_NORMAL_PILL_COLOR, LAST_PILL_EFFECT, LAST_VANILLA_PILL_EFFECT, } from "../constantsFirstLast";
4
+ import { FALSE_PHD_PILL_CONVERSIONS } from "../maps/falsePHDPillConversions";
5
+ import { PHD_PILL_CONVERSIONS } from "../maps/PHDPillConversions";
6
+ import { DEFAULT_PILL_EFFECT_CLASS, PILL_EFFECT_CLASSES, } from "../objects/pillEffectClasses";
7
+ import { DEFAULT_PILL_EFFECT_NAME, PILL_EFFECT_NAMES, } from "../objects/pillEffectNames";
8
+ import { DEFAULT_PILL_EFFECT_TYPE, PILL_EFFECT_TYPES, } from "../objects/pillEffectTypes";
9
+ import { getEnumValues } from "./enums";
10
+ import { irange } from "./utils";
11
+ /**
12
+ * Add this to a `PillColor` to get the corresponding giant pill color.
13
+ *
14
+ * Corresponds to the vanilla `PillColor.GIANT_FLAG` value.
15
+ *
16
+ * 1 << 11
17
+ */
18
+ const HORSE_PILL_ADJUSTMENT = 2048;
19
+ /**
20
+ * Helper function to get an array with every non-null pill color. This includes all gold colors and
21
+ * all horse colors.
22
+ */
23
+ export function getAllPillColors() {
24
+ const pillColors = getEnumValues(PillColor);
25
+ pillColors.slice(); // Remove `PillColor.NULL`
26
+ return pillColors;
27
+ }
28
+ /**
29
+ * Helper function to get an array with every valid pill effect. This includes modded pill effects.
30
+ */
31
+ export function getAllPillEffects() {
32
+ return irange(FIRST_PILL_EFFECT, LAST_PILL_EFFECT);
33
+ }
34
+ /**
35
+ * Helper function to get the associated pill effect after False PHD is acquired. If a pill effect
36
+ * is not altered by False PHD, then the same pill effect will be returned.
37
+ */
38
+ export function getFalsePHDPillEffect(pillEffect) {
39
+ const convertedPillEffect = FALSE_PHD_PILL_CONVERSIONS.get(pillEffect);
40
+ return convertedPillEffect === undefined ? pillEffect : convertedPillEffect;
41
+ }
42
+ /**
43
+ * Helper function to get the corresponding horse pill color from a normal pill color.
44
+ *
45
+ * For example, passing `PillColor.BLUE_BLUE` would result in 2049, which is the value that
46
+ * corresponds to the horse pill color for blue/blue.
47
+ */
48
+ export function getHorsePillColor(pillColor) {
49
+ return pillColor + HORSE_PILL_ADJUSTMENT; // eslint-disable-line isaacscript/strict-enums
50
+ }
51
+ /** Helper function to get an array with every non-gold horse pill color. */
52
+ export function getHorsePillColors() {
53
+ return irange(FIRST_HORSE_PILL_COLOR, LAST_HORSE_PILL_COLOR);
54
+ }
55
+ /**
56
+ * Helper function to get an array with every modded pill effect.
57
+ *
58
+ * Returns an empty array if there are no modded pill effects.
59
+ */
60
+ export function getModdedPillEffects() {
61
+ if (LAST_VANILLA_PILL_EFFECT === LAST_PILL_EFFECT) {
62
+ return [];
63
+ }
64
+ return irange(FIRST_MODDED_PILL_EFFECT, LAST_PILL_EFFECT);
65
+ }
66
+ /**
67
+ * Helper function to get the corresponding normal pill color from a horse pill color.
68
+ *
69
+ * For example, passing 2049 would result in `PillColor.BLUE_BLUE`.
70
+ *
71
+ * If called with a non-horse pill color, this function will return back the same color.
72
+ */
73
+ export function getNormalPillColorFromHorse(pillColor) {
74
+ // eslint-disable-next-line isaacscript/strict-enums
75
+ const normalPillColor = (pillColor - HORSE_PILL_ADJUSTMENT);
76
+ return normalPillColor > PillColor.NULL ? normalPillColor : pillColor;
77
+ }
78
+ /** Helper function to get an array with every non-gold and non-horse pill color. */
79
+ export function getNormalPillColors() {
80
+ return irange(FIRST_PILL_COLOR, LAST_NORMAL_PILL_COLOR);
81
+ }
82
+ /**
83
+ * Helper function to get the associated pill effect after PHD is acquired. If a pill effect is not
84
+ * altered by PHD, then the same pill effect will be returned.
85
+ */
86
+ export function getPHDPillEffect(pillEffect) {
87
+ const convertedPillEffect = PHD_PILL_CONVERSIONS.get(pillEffect);
88
+ return convertedPillEffect === undefined ? pillEffect : convertedPillEffect;
89
+ }
90
+ /**
91
+ * Helper function to get a pill effect class from a PillEffect enum value. In this context, the
92
+ * class is equal to the numerical prefix in the "class" tag in the "pocketitems.xml" file. Use the
93
+ * `getPillEffectType` helper function to determine whether or not the pill effect is positive,
94
+ * negative, or neutral.
95
+ *
96
+ * Due to limitations in the API, this function will not work properly for modded pill effects, and
97
+ * will always return `DEFAULT_PILL_EFFECT_CLASS` in those cases.
98
+ */
99
+ export function getPillEffectClass(pillEffect) {
100
+ // `ItemConfigPillEffect` does not contain the "class" tag, so we must manually compile a map of
101
+ // pill effect classes. Modded pill effects are not included in the map.
102
+ const pillEffectClass = PILL_EFFECT_CLASSES[pillEffect];
103
+ // Handle modded pill effects.
104
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
105
+ return pillEffectClass === undefined
106
+ ? DEFAULT_PILL_EFFECT_CLASS
107
+ : pillEffectClass;
108
+ }
109
+ /**
110
+ * Helper function to get a pill effect name from a PillEffect enum value.
111
+ *
112
+ * For example:
113
+ *
114
+ * ```ts
115
+ * const pillEffect = PillEffect.BAD_GAS;
116
+ * const pillEffectName = getPillEffectName(pillEffect); // trinketName is "Bad Gas"
117
+ * ```
118
+ */
119
+ export function getPillEffectName(pillEffect) {
120
+ // `ItemConfigPillEffect.Name` is bugged with vanilla pill effects on patch v1.7.6, so we use a
121
+ // hard-coded map as a workaround.
122
+ const pillEffectName = PILL_EFFECT_NAMES[pillEffect];
123
+ // Handle modded pill effects.
124
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
125
+ if (pillEffectName !== undefined) {
126
+ return pillEffectName;
127
+ }
128
+ const itemConfigPillEffect = itemConfig.GetPillEffect(pillEffect);
129
+ if (itemConfigPillEffect !== undefined) {
130
+ return itemConfigPillEffect.Name;
131
+ }
132
+ return DEFAULT_PILL_EFFECT_NAME;
133
+ }
134
+ /**
135
+ * Helper function to get a pill effect type from a PillEffect enum value. In this context, the type
136
+ * is equal to positive, negative, or neutral. This is derived from the suffix of the the "class"
137
+ * tag in the "pocketitems.xml" file. Use the `getPillEffectClass` helper function to determine the
138
+ * "power" of the pill.
139
+ *
140
+ * Due to limitations in the API, this function will not work properly for modded pill effects, and
141
+ * will always return `DEFAULT_PILL_EFFECT_TYPE` in those cases.
142
+ */
143
+ export function getPillEffectType(pillEffect) {
144
+ // `ItemConfigPillEffect` does not contain the "class" tag, so we must manually compile a map of
145
+ // pill effect classes. Modded pill effects are not included in the map.
146
+ const pillEffectClass = PILL_EFFECT_TYPES[pillEffect];
147
+ // Handle modded pill effects.
148
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
149
+ return pillEffectClass === undefined
150
+ ? DEFAULT_PILL_EFFECT_TYPE
151
+ : pillEffectClass;
152
+ }
153
+ /** Helper function to get an array with every vanilla pill effect. */
154
+ export function getVanillaPillEffects() {
155
+ return irange(FIRST_PILL_EFFECT, LAST_VANILLA_PILL_EFFECT);
156
+ }
157
+ export function isHorsePill(pillColor) {
158
+ return pillColor > HORSE_PILL_ADJUSTMENT;
159
+ }
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9pc2FhY3NjcmlwdC1jb21tb24vc3JjL2Z1bmN0aW9ucy9waWxscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxHQUVWLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsd0JBQXdCLEdBQ3pCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixtQkFBbUIsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGlCQUFpQixHQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsaUJBQWlCLEdBQ2xCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWpDOzs7Ozs7R0FNRztBQUNILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDO0FBRW5DOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtJQUM5QyxPQUFP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
@@ -142,3 +142,5 @@ function ____exports.isHorsePill(self, pillColor)
142
142
  return pillColor > HORSE_PILL_ADJUSTMENT
143
143
  end
144
144
  return ____exports
145
+
146
+ --# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2lzYWFjc2NyaXB0LWNvbW1vbi9zcmMvZnVuY3Rpb25zL3BpbGxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUtPO0FBRkw7QUFHRiwwQkFBMkI7QUFBbEI7QUFDVCwrQkFTTztBQVJMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFRixvQ0FBMkM7QUFBbEM7QUFDVCwrQkFBcUM7QUFBNUI7QUFDVCw4QkFHTztBQUZMO0FBQ0E7QUFFRiw0QkFHTztBQUZMO0FBQ0E7QUFFRiw0QkFHTztBQUZMO0FBQ0E7QUFFRixrQkFBOEI7QUFBckI7QUFDVCxrQkFBdUI7QUFBZDs7Ozs7O0FBU0gsOEJBQXdCOzs7QUFNOUI7QUFDUSx1QkFBYSxtQkFBYztJQUNqQztBQUNBLFdBQU87QUFIVDs7QUFTQTtBQUNFLFdBQU8sWUFBTyxtQkFBbUI7QUFEbkM7OztBQVFBLGlEQUFzQztBQUM5QixnQ0FBc0IsMkJBQTJCLElBQUk7QUFDM0QsV0FBTywrQkFBb0MsY0FBYTtBQUYxRDs7Ozs7QUFXQSw2Q0FBa0M7QUFDaEMsV0FBTyxZQUFZO0FBRHJCOztBQUtBO0FBQ0UsV0FBTyxZQUFPLHdCQUF3QjtBQUR4Qzs7OztBQVNBO09BQ00sNEJBQTZCO0FBQy9CLGVBQU87O0FBR1QsV0FBTyxZQUFPLDBCQUEwQjtBQUwxQzs7Ozs7O0FBZUEsdURBQTRDO0FBRXBDLDRCQUFtQixZQUFZO0FBRXJDLFdBQU8sa0JBQWtCLG1CQUFpQixtQkFBa0I7QUFKOUQ7O0FBUUE7QUFDRSxXQUFPLFlBQU8sa0JBQWtCO0FBRGxDOzs7QUFRQSw0Q0FBaUM7QUFDekIsZ0NBQXNCLHFCQUFxQixJQUFJO0FBQ3JELFdBQU8sK0JBQW9DLGNBQWE7QUFGMUQ7Ozs7Ozs7O0FBY0EsOENBQ0U7QUFJTSw0QkFBa0Isb0JBQW9CO0FBRzVDLFdBQU8sMkJBQ0gsNkJBQ0E7QUFWTjs7Ozs7Ozs7O0FBdUJBLDZDQUFrQztBQUcxQiwyQkFBaUIsa0JBQWtCO09BR3JDO0FBQ0YsZUFBTzs7QUFHSCxpQ0FBdUIsV0FBVyxjQUFjO09BQ2xEO0FBQ0YsZUFBTzs7QUFHVCxXQUFPO0FBZlQ7Ozs7Ozs7O0FBMkJBLDZDQUNFO0FBSU0sNEJBQWtCLGtCQUFrQjtBQUcxQyxXQUFPLDJCQUNILDRCQUNBO0FBVk47O0FBY0E7QUFDRSxXQUFPLFlBQU8sbUJBQW1CO0FBRG5DO0FBSUEsdUNBQTRCO0FBQzFCLFdBQU8sWUFBYTtBQUR0QiIsImZpbGUiOiJwaWxscy5sdWEiLCJzb3VyY2VSb290IjoiIn0=