isaacscript-common 18.3.0 → 18.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 (340) hide show
  1. package/dist/index.d.ts +25 -20
  2. package/dist/isaacscript-common.lua +291 -319
  3. package/dist/src/classes/ModFeature.d.ts +2 -2
  4. package/dist/src/classes/ModFeature.d.ts.map +1 -1
  5. package/dist/src/classes/ModFeature.lua +18 -17
  6. package/dist/src/classes/ModUpgradedBase.d.ts.map +1 -1
  7. package/dist/src/classes/ModUpgradedBase.lua +10 -10
  8. package/dist/src/classes/callbacks/EntityTakeDmgFilter.lua +1 -1
  9. package/dist/src/classes/callbacks/EntityTakeDmgPlayer.d.ts.map +1 -1
  10. package/dist/src/classes/callbacks/EntityTakeDmgPlayer.lua +1 -1
  11. package/dist/src/classes/callbacks/InputActionFilter.lua +1 -1
  12. package/dist/src/classes/callbacks/InputActionPlayer.lua +1 -1
  13. package/dist/src/classes/callbacks/PostAmbushFinished.lua +1 -1
  14. package/dist/src/classes/callbacks/PostAmbushStarted.lua +1 -1
  15. package/dist/src/classes/callbacks/PostBombExploded.lua +1 -1
  16. package/dist/src/classes/callbacks/PostBombInitLate.lua +1 -1
  17. package/dist/src/classes/callbacks/PostBoneSwing.lua +1 -1
  18. package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -1
  19. package/dist/src/classes/callbacks/PostCollectibleEmpty.lua +1 -1
  20. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts.map +1 -1
  21. package/dist/src/classes/callbacks/PostCollectibleInitFirst.lua +1 -1
  22. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts +2 -2
  23. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts.map +1 -1
  24. package/dist/src/classes/callbacks/PostCursedTeleport.lua +19 -21
  25. package/dist/src/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -1
  26. package/dist/src/classes/callbacks/PostDiceRoomActivated.lua +1 -1
  27. package/dist/src/classes/callbacks/PostDoorRender.lua +1 -1
  28. package/dist/src/classes/callbacks/PostDoorUpdate.lua +1 -1
  29. package/dist/src/classes/callbacks/PostEffectInitLate.lua +1 -1
  30. package/dist/src/classes/callbacks/PostEffectStateChanged.lua +1 -1
  31. package/dist/src/classes/callbacks/PostFamiliarInitLate.lua +1 -1
  32. package/dist/src/classes/callbacks/PostFamiliarStateChanged.lua +1 -1
  33. package/dist/src/classes/callbacks/PostGreedModeWave.lua +1 -1
  34. package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +1 -1
  35. package/dist/src/classes/callbacks/PostItemDischarge.d.ts.map +1 -1
  36. package/dist/src/classes/callbacks/PostItemDischarge.lua +2 -2
  37. package/dist/src/classes/callbacks/PostKnifeInitLate.lua +1 -1
  38. package/dist/src/classes/callbacks/PostLaserInitLate.lua +1 -1
  39. package/dist/src/classes/callbacks/PostNPCDeathFilter.lua +1 -1
  40. package/dist/src/classes/callbacks/PostNPCInitFilter.lua +1 -1
  41. package/dist/src/classes/callbacks/PostNPCInitLate.lua +1 -1
  42. package/dist/src/classes/callbacks/PostNPCRenderFilter.lua +1 -1
  43. package/dist/src/classes/callbacks/PostNPCStateChanged.lua +1 -1
  44. package/dist/src/classes/callbacks/PostNPCUpdateFilter.lua +1 -1
  45. package/dist/src/classes/callbacks/PostNewRoomEarly.lua +1 -1
  46. package/dist/src/classes/callbacks/PostPickupCollect.lua +1 -1
  47. package/dist/src/classes/callbacks/PostPickupInitFirst.lua +1 -1
  48. package/dist/src/classes/callbacks/PostPickupInitLate.lua +1 -1
  49. package/dist/src/classes/callbacks/PostPickupStateChanged.lua +1 -1
  50. package/dist/src/classes/callbacks/PostPitRender.lua +1 -1
  51. package/dist/src/classes/callbacks/PostPitUpdate.lua +1 -1
  52. package/dist/src/classes/callbacks/PostPlayerChangeHealth.lua +1 -1
  53. package/dist/src/classes/callbacks/PostPlayerChangeStat.lua +1 -1
  54. package/dist/src/classes/callbacks/PostPlayerChangeType.lua +1 -1
  55. package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts +1 -1
  56. package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts.map +1 -1
  57. package/dist/src/classes/callbacks/PostPlayerFatalDamage.lua +19 -21
  58. package/dist/src/classes/callbacks/PostPlayerInitFirst.lua +1 -1
  59. package/dist/src/classes/callbacks/PostPlayerInitLate.lua +1 -1
  60. package/dist/src/classes/callbacks/PostPoopRender.lua +1 -1
  61. package/dist/src/classes/callbacks/PostPoopUpdate.lua +1 -1
  62. package/dist/src/classes/callbacks/PostPressurePlateRender.lua +1 -1
  63. package/dist/src/classes/callbacks/PostPressurePlateUpdate.lua +1 -1
  64. package/dist/src/classes/callbacks/PostProjectileInitLate.lua +1 -1
  65. package/dist/src/classes/callbacks/PostPurchase.lua +1 -1
  66. package/dist/src/classes/callbacks/PostRockRender.lua +1 -1
  67. package/dist/src/classes/callbacks/PostRockUpdate.lua +1 -1
  68. package/dist/src/classes/callbacks/PostRoomClearChanged.lua +2 -2
  69. package/dist/src/classes/callbacks/PostSacrifice.d.ts.map +1 -1
  70. package/dist/src/classes/callbacks/PostSacrifice.lua +4 -8
  71. package/dist/src/classes/callbacks/PostSlotCollision.lua +1 -1
  72. package/dist/src/classes/callbacks/PostSlotDestroyed.d.ts.map +1 -1
  73. package/dist/src/classes/callbacks/PostSlotDestroyed.lua +2 -2
  74. package/dist/src/classes/callbacks/PostSpikesRender.lua +1 -1
  75. package/dist/src/classes/callbacks/PostSpikesUpdate.lua +1 -1
  76. package/dist/src/classes/callbacks/PostTNTRender.lua +1 -1
  77. package/dist/src/classes/callbacks/PostTNTUpdate.lua +1 -1
  78. package/dist/src/classes/callbacks/PostTearInitLate.lua +1 -1
  79. package/dist/src/classes/callbacks/PostTearInitVeryLate.lua +1 -1
  80. package/dist/src/classes/callbacks/PostTransformation.lua +1 -1
  81. package/dist/src/classes/callbacks/PostTrinketBreak.d.ts.map +1 -1
  82. package/dist/src/classes/callbacks/PostTrinketBreak.lua +5 -11
  83. package/dist/src/classes/callbacks/PreBerserkDeath.lua +1 -1
  84. package/dist/src/classes/callbacks/PreGetPedestal.d.ts.map +1 -1
  85. package/dist/src/classes/callbacks/PreGetPedestal.lua +1 -1
  86. package/dist/src/classes/callbacks/PreNPCCollisionFilter.lua +1 -1
  87. package/dist/src/classes/callbacks/PreNPCUpdateFilter.lua +1 -1
  88. package/dist/src/classes/callbacks/PreNewLevel.lua +1 -1
  89. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
  90. package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +2 -2
  91. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts +2 -2
  92. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
  93. package/dist/src/classes/features/callbackLogic/CustomRevive.lua +5 -5
  94. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
  95. package/dist/src/classes/features/callbackLogic/EsauJrDetection.lua +1 -1
  96. package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts.map +1 -1
  97. package/dist/src/classes/features/callbackLogic/FlipDetection.lua +1 -1
  98. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
  99. package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +1 -1
  100. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -1
  101. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.lua +1 -1
  102. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.d.ts.map +1 -1
  103. package/dist/src/classes/features/callbackLogic/GridEntityRenderDetection.lua +1 -1
  104. package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.d.ts.map +1 -1
  105. package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.lua +2 -2
  106. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts +1 -1
  107. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts.map +1 -1
  108. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.lua +4 -3
  109. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts +8 -3
  110. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts.map +1 -1
  111. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.lua +16 -21
  112. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
  113. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.lua +2 -2
  114. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts.map +1 -1
  115. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.lua +1 -1
  116. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts.map +1 -1
  117. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.lua +2 -2
  118. package/dist/src/classes/features/other/CharacterHealthConversion.d.ts.map +1 -1
  119. package/dist/src/classes/features/other/CharacterHealthConversion.lua +2 -2
  120. package/dist/src/classes/features/other/CharacterStats.lua +1 -1
  121. package/dist/src/classes/features/other/CollectibleItemPoolType.d.ts.map +1 -1
  122. package/dist/src/classes/features/other/CollectibleItemPoolType.lua +1 -1
  123. package/dist/src/classes/features/other/CustomHotkeys.lua +1 -1
  124. package/dist/src/classes/features/other/CustomItemPools.lua +1 -1
  125. package/dist/src/classes/features/other/CustomPickups.d.ts.map +1 -1
  126. package/dist/src/classes/features/other/CustomPickups.lua +1 -1
  127. package/dist/src/classes/features/other/CustomStages.d.ts.map +1 -1
  128. package/dist/src/classes/features/other/CustomStages.lua +2 -2
  129. package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
  130. package/dist/src/classes/features/other/CustomTrapdoors.lua +2 -2
  131. package/dist/src/classes/features/other/DisableAllSound.lua +1 -1
  132. package/dist/src/classes/features/other/DisableInputs.d.ts.map +1 -1
  133. package/dist/src/classes/features/other/DisableInputs.lua +1 -1
  134. package/dist/src/classes/features/other/ExtraConsoleCommands.d.ts +1 -1
  135. package/dist/src/classes/features/other/ExtraConsoleCommands.d.ts.map +1 -1
  136. package/dist/src/classes/features/other/ExtraConsoleCommands.lua +17 -16
  137. package/dist/src/classes/features/other/FadeInRemover.lua +1 -1
  138. package/dist/src/classes/features/other/FastReset.lua +1 -1
  139. package/dist/src/classes/features/other/ModdedElementDetection.lua +1 -1
  140. package/dist/src/classes/features/other/NoSirenSteal.d.ts.map +1 -1
  141. package/dist/src/classes/features/other/NoSirenSteal.lua +1 -1
  142. package/dist/src/classes/features/other/Pause.d.ts.map +1 -1
  143. package/dist/src/classes/features/other/Pause.lua +1 -1
  144. package/dist/src/classes/features/other/PersistentEntities.lua +2 -2
  145. package/dist/src/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
  146. package/dist/src/classes/features/other/PickupIndexCreation.lua +1 -1
  147. package/dist/src/classes/features/other/PlayerInventory.lua +1 -1
  148. package/dist/src/classes/features/other/PonyDetection.lua +1 -1
  149. package/dist/src/classes/features/other/PressInput.d.ts.map +1 -1
  150. package/dist/src/classes/features/other/PressInput.lua +1 -1
  151. package/dist/src/classes/features/other/PreventChildEntities.lua +1 -1
  152. package/dist/src/classes/features/other/PreventCollectibleRotation.d.ts.map +1 -1
  153. package/dist/src/classes/features/other/PreventCollectibleRotation.lua +1 -1
  154. package/dist/src/classes/features/other/PreventGridEntityRespawn.d.ts.map +1 -1
  155. package/dist/src/classes/features/other/PreventGridEntityRespawn.lua +2 -2
  156. package/dist/src/classes/features/other/RoomClearFrame.lua +1 -1
  157. package/dist/src/classes/features/other/RoomHistory.lua +1 -1
  158. package/dist/src/classes/features/other/RunInNFrames.lua +1 -1
  159. package/dist/src/classes/features/other/RunNextRoom.lua +1 -1
  160. package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -1
  161. package/dist/src/classes/features/other/SaveDataManager.lua +2 -2
  162. package/dist/src/classes/features/other/StageHistory.d.ts.map +1 -1
  163. package/dist/src/classes/features/other/StageHistory.lua +1 -1
  164. package/dist/src/classes/features/other/TaintedLazarusPlayers.lua +1 -1
  165. package/dist/src/classes/features/other/debugDisplay/DebugDisplayBomb.lua +1 -1
  166. package/dist/src/classes/features/other/debugDisplay/DebugDisplayDoor.lua +1 -1
  167. package/dist/src/classes/features/other/debugDisplay/DebugDisplayEffect.lua +1 -1
  168. package/dist/src/classes/features/other/debugDisplay/DebugDisplayFamiliar.lua +1 -1
  169. package/dist/src/classes/features/other/debugDisplay/DebugDisplayKnife.lua +1 -1
  170. package/dist/src/classes/features/other/debugDisplay/DebugDisplayLaser.lua +1 -1
  171. package/dist/src/classes/features/other/debugDisplay/DebugDisplayNPC.lua +1 -1
  172. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPickup.lua +1 -1
  173. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPit.lua +1 -1
  174. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPlayer.lua +1 -1
  175. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPoop.lua +1 -1
  176. package/dist/src/classes/features/other/debugDisplay/DebugDisplayPressurePlate.lua +1 -1
  177. package/dist/src/classes/features/other/debugDisplay/DebugDisplayProjectile.lua +1 -1
  178. package/dist/src/classes/features/other/debugDisplay/DebugDisplayRock.lua +1 -1
  179. package/dist/src/classes/features/other/debugDisplay/DebugDisplaySlot.lua +1 -1
  180. package/dist/src/classes/features/other/debugDisplay/DebugDisplaySpikes.lua +1 -1
  181. package/dist/src/classes/features/other/debugDisplay/DebugDisplayTNT.lua +1 -1
  182. package/dist/src/classes/features/other/debugDisplay/DebugDisplayTear.lua +1 -1
  183. package/dist/src/classes/private/CustomCallback.d.ts +2 -2
  184. package/dist/src/classes/private/CustomCallback.d.ts.map +1 -1
  185. package/dist/src/classes/private/CustomCallback.lua +7 -10
  186. package/dist/src/functions/array.d.ts +5 -1
  187. package/dist/src/functions/array.d.ts.map +1 -1
  188. package/dist/src/functions/array.lua +17 -8
  189. package/dist/src/functions/decorators.d.ts.map +1 -1
  190. package/dist/src/functions/decorators.lua +12 -22
  191. package/dist/src/functions/logMisc.d.ts +1 -0
  192. package/dist/src/functions/logMisc.d.ts.map +1 -1
  193. package/dist/src/functions/logMisc.lua +2 -1
  194. package/dist/src/types/ModUpgraded.d.ts +1 -1
  195. package/dist/src/types/ModUpgraded.d.ts.map +1 -1
  196. package/dist/src/types/private/CallbackTuple.d.ts +17 -8
  197. package/dist/src/types/private/CallbackTuple.d.ts.map +1 -1
  198. package/package.json +1 -1
  199. package/src/classes/ModFeature.ts +43 -21
  200. package/src/classes/ModUpgradedBase.ts +18 -10
  201. package/src/classes/callbacks/EntityTakeDmgFilter.ts +1 -1
  202. package/src/classes/callbacks/EntityTakeDmgPlayer.ts +2 -1
  203. package/src/classes/callbacks/InputActionFilter.ts +1 -1
  204. package/src/classes/callbacks/InputActionPlayer.ts +1 -1
  205. package/src/classes/callbacks/PostAmbushFinished.ts +1 -1
  206. package/src/classes/callbacks/PostAmbushStarted.ts +1 -1
  207. package/src/classes/callbacks/PostBombExploded.ts +1 -1
  208. package/src/classes/callbacks/PostBombInitLate.ts +1 -1
  209. package/src/classes/callbacks/PostBoneSwing.ts +1 -1
  210. package/src/classes/callbacks/PostCollectibleEmpty.ts +2 -1
  211. package/src/classes/callbacks/PostCollectibleInitFirst.ts +2 -1
  212. package/src/classes/callbacks/PostCursedTeleport.ts +52 -60
  213. package/src/classes/callbacks/PostDiceRoomActivated.ts +2 -1
  214. package/src/classes/callbacks/PostDoorRender.ts +1 -1
  215. package/src/classes/callbacks/PostDoorUpdate.ts +1 -1
  216. package/src/classes/callbacks/PostEffectInitLate.ts +1 -1
  217. package/src/classes/callbacks/PostEffectStateChanged.ts +1 -1
  218. package/src/classes/callbacks/PostFamiliarInitLate.ts +1 -1
  219. package/src/classes/callbacks/PostFamiliarStateChanged.ts +1 -1
  220. package/src/classes/callbacks/PostGreedModeWave.ts +1 -1
  221. package/src/classes/callbacks/PostHolyMantleRemoved.ts +1 -1
  222. package/src/classes/callbacks/PostItemDischarge.ts +3 -2
  223. package/src/classes/callbacks/PostKnifeInitLate.ts +1 -1
  224. package/src/classes/callbacks/PostLaserInitLate.ts +1 -1
  225. package/src/classes/callbacks/PostNPCDeathFilter.ts +1 -1
  226. package/src/classes/callbacks/PostNPCInitFilter.ts +1 -1
  227. package/src/classes/callbacks/PostNPCInitLate.ts +1 -1
  228. package/src/classes/callbacks/PostNPCRenderFilter.ts +1 -1
  229. package/src/classes/callbacks/PostNPCStateChanged.ts +1 -1
  230. package/src/classes/callbacks/PostNPCUpdateFilter.ts +1 -1
  231. package/src/classes/callbacks/PostNewRoomEarly.ts +2 -2
  232. package/src/classes/callbacks/PostPickupCollect.ts +1 -1
  233. package/src/classes/callbacks/PostPickupInitFirst.ts +1 -1
  234. package/src/classes/callbacks/PostPickupInitLate.ts +1 -1
  235. package/src/classes/callbacks/PostPickupStateChanged.ts +1 -1
  236. package/src/classes/callbacks/PostPitRender.ts +1 -1
  237. package/src/classes/callbacks/PostPitUpdate.ts +1 -1
  238. package/src/classes/callbacks/PostPlayerChangeHealth.ts +1 -1
  239. package/src/classes/callbacks/PostPlayerChangeStat.ts +1 -1
  240. package/src/classes/callbacks/PostPlayerChangeType.ts +1 -1
  241. package/src/classes/callbacks/PostPlayerFatalDamage.ts +39 -48
  242. package/src/classes/callbacks/PostPlayerInitFirst.ts +2 -2
  243. package/src/classes/callbacks/PostPlayerInitLate.ts +1 -1
  244. package/src/classes/callbacks/PostPoopRender.ts +1 -1
  245. package/src/classes/callbacks/PostPoopUpdate.ts +1 -1
  246. package/src/classes/callbacks/PostPressurePlateRender.ts +1 -1
  247. package/src/classes/callbacks/PostPressurePlateUpdate.ts +1 -1
  248. package/src/classes/callbacks/PostProjectileInitLate.ts +1 -1
  249. package/src/classes/callbacks/PostPurchase.ts +1 -1
  250. package/src/classes/callbacks/PostRockRender.ts +1 -1
  251. package/src/classes/callbacks/PostRockUpdate.ts +1 -1
  252. package/src/classes/callbacks/PostRoomClearChanged.ts +2 -2
  253. package/src/classes/callbacks/PostSacrifice.ts +5 -20
  254. package/src/classes/callbacks/PostSlotCollision.ts +1 -1
  255. package/src/classes/callbacks/PostSlotDestroyed.ts +3 -2
  256. package/src/classes/callbacks/PostSpikesRender.ts +1 -1
  257. package/src/classes/callbacks/PostSpikesUpdate.ts +1 -1
  258. package/src/classes/callbacks/PostTNTRender.ts +1 -1
  259. package/src/classes/callbacks/PostTNTUpdate.ts +1 -1
  260. package/src/classes/callbacks/PostTearInitLate.ts +1 -1
  261. package/src/classes/callbacks/PostTearInitVeryLate.ts +1 -1
  262. package/src/classes/callbacks/PostTransformation.ts +1 -1
  263. package/src/classes/callbacks/PostTrinketBreak.ts +4 -18
  264. package/src/classes/callbacks/PreBerserkDeath.ts +1 -1
  265. package/src/classes/callbacks/PreGetPedestal.ts +2 -1
  266. package/src/classes/callbacks/PreNPCCollisionFilter.ts +1 -1
  267. package/src/classes/callbacks/PreNPCUpdateFilter.ts +1 -1
  268. package/src/classes/callbacks/PreNewLevel.ts +1 -1
  269. package/src/classes/features/callbackLogic/CustomGridEntities.ts +5 -3
  270. package/src/classes/features/callbackLogic/CustomRevive.ts +19 -18
  271. package/src/classes/features/callbackLogic/EsauJrDetection.ts +6 -2
  272. package/src/classes/features/callbackLogic/FlipDetection.ts +2 -1
  273. package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +13 -5
  274. package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +2 -1
  275. package/src/classes/features/callbackLogic/GridEntityRenderDetection.ts +2 -1
  276. package/src/classes/features/callbackLogic/GridEntityUpdateDetection.ts +3 -2
  277. package/src/classes/features/callbackLogic/ItemPickupDetection.ts +8 -5
  278. package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +67 -71
  279. package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +10 -5
  280. package/src/classes/features/callbackLogic/SlotRenderDetection.ts +2 -1
  281. package/src/classes/features/callbackLogic/SlotUpdateDetection.ts +3 -2
  282. package/src/classes/features/other/CharacterHealthConversion.ts +3 -2
  283. package/src/classes/features/other/CharacterStats.ts +1 -1
  284. package/src/classes/features/other/CollectibleItemPoolType.ts +2 -1
  285. package/src/classes/features/other/CustomHotkeys.ts +1 -1
  286. package/src/classes/features/other/CustomItemPools.ts +1 -1
  287. package/src/classes/features/other/CustomPickups.ts +3 -2
  288. package/src/classes/features/other/CustomStages.ts +7 -6
  289. package/src/classes/features/other/CustomTrapdoors.ts +4 -6
  290. package/src/classes/features/other/DisableAllSound.ts +1 -1
  291. package/src/classes/features/other/DisableInputs.ts +6 -3
  292. package/src/classes/features/other/ExtraConsoleCommands.ts +32 -31
  293. package/src/classes/features/other/FadeInRemover.ts +1 -1
  294. package/src/classes/features/other/FastReset.ts +1 -1
  295. package/src/classes/features/other/ModdedElementDetection.ts +1 -1
  296. package/src/classes/features/other/NoSirenSteal.ts +2 -1
  297. package/src/classes/features/other/Pause.ts +3 -2
  298. package/src/classes/features/other/PersistentEntities.ts +2 -2
  299. package/src/classes/features/other/PickupIndexCreation.ts +3 -2
  300. package/src/classes/features/other/PlayerInventory.ts +2 -2
  301. package/src/classes/features/other/PonyDetection.ts +1 -1
  302. package/src/classes/features/other/PressInput.ts +2 -1
  303. package/src/classes/features/other/PreventChildEntities.ts +1 -1
  304. package/src/classes/features/other/PreventCollectibleRotation.ts +4 -2
  305. package/src/classes/features/other/PreventGridEntityRespawn.ts +3 -2
  306. package/src/classes/features/other/RoomClearFrame.ts +1 -1
  307. package/src/classes/features/other/RoomHistory.ts +1 -1
  308. package/src/classes/features/other/RunInNFrames.ts +2 -2
  309. package/src/classes/features/other/RunNextRoom.ts +1 -1
  310. package/src/classes/features/other/SaveDataManager.ts +6 -5
  311. package/src/classes/features/other/StageHistory.ts +1 -4
  312. package/src/classes/features/other/TaintedLazarusPlayers.ts +1 -1
  313. package/src/classes/features/other/debugDisplay/DebugDisplayBomb.ts +1 -1
  314. package/src/classes/features/other/debugDisplay/DebugDisplayDoor.ts +1 -1
  315. package/src/classes/features/other/debugDisplay/DebugDisplayEffect.ts +1 -1
  316. package/src/classes/features/other/debugDisplay/DebugDisplayFamiliar.ts +1 -1
  317. package/src/classes/features/other/debugDisplay/DebugDisplayKnife.ts +1 -1
  318. package/src/classes/features/other/debugDisplay/DebugDisplayLaser.ts +1 -1
  319. package/src/classes/features/other/debugDisplay/DebugDisplayNPC.ts +1 -1
  320. package/src/classes/features/other/debugDisplay/DebugDisplayPickup.ts +1 -1
  321. package/src/classes/features/other/debugDisplay/DebugDisplayPit.ts +1 -1
  322. package/src/classes/features/other/debugDisplay/DebugDisplayPlayer.ts +1 -1
  323. package/src/classes/features/other/debugDisplay/DebugDisplayPoop.ts +1 -1
  324. package/src/classes/features/other/debugDisplay/DebugDisplayPressurePlate.ts +1 -1
  325. package/src/classes/features/other/debugDisplay/DebugDisplayProjectile.ts +1 -1
  326. package/src/classes/features/other/debugDisplay/DebugDisplayRock.ts +1 -1
  327. package/src/classes/features/other/debugDisplay/DebugDisplaySlot.ts +1 -1
  328. package/src/classes/features/other/debugDisplay/DebugDisplaySpikes.ts +1 -1
  329. package/src/classes/features/other/debugDisplay/DebugDisplayTNT.ts +1 -1
  330. package/src/classes/features/other/debugDisplay/DebugDisplayTear.ts +1 -1
  331. package/src/classes/private/CustomCallback.ts +19 -15
  332. package/src/functions/array.ts +14 -5
  333. package/src/functions/decorators.ts +14 -20
  334. package/src/functions/logMisc.ts +4 -1
  335. package/src/types/ModUpgraded.ts +1 -1
  336. package/src/types/private/CallbackTuple.ts +17 -8
  337. package/dist/src/types/private/AllButFirst.d.ts +0 -5
  338. package/dist/src/types/private/AllButFirst.d.ts.map +0 -1
  339. package/dist/src/types/private/AllButFirst.lua +0 -2
  340. package/src/types/private/AllButFirst.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"CallbackTuple.d.ts","sourceRoot":"","sources":["../../../../src/types/private/CallbackTuple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AAEnG;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC,WAAW,CAAC,CAAC;AAEf;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;KAC/B,CAAC,IAAI,iBAAiB,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"CallbackTuple.d.ts","sourceRoot":"","sources":["../../../../src/types/private/CallbackTuple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;KACzB,GAAG,IAAI,WAAW,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,YAAY,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;KACvD;CACF,CAAC,WAAW,CAAC,CAAC;AAEf;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;KAC/B,GAAG,IAAI,iBAAiB,GAAG;QAC1B,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,WAAW,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;KAC7D;CACF,CAAC,iBAAiB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isaacscript-common",
3
- "version": "18.3.0",
3
+ "version": "18.3.1",
4
4
  "description": "Helper functions and features for IsaacScript mods.",
5
5
  "keywords": [
6
6
  "isaac",
@@ -1,7 +1,6 @@
1
1
  import { ModCallback } from "isaac-typescript-definitions";
2
2
  import { ModCallbackCustom } from "../enums/ModCallbackCustom";
3
3
  import { isArray } from "../functions/array";
4
- import { deepCopy } from "../functions/deepCopy";
5
4
  import {
6
5
  getTSTLClassConstructor,
7
6
  getTSTLClassName,
@@ -11,14 +10,26 @@ import { TSTLClassMetatable } from "../interfaces/TSTLClassMetatable";
11
10
  import { AnyFunction } from "../types/AnyFunction";
12
11
  import { ModUpgradedBase } from "./ModUpgradedBase";
13
12
 
14
- export const ADD_CALLBACK_ARGS_KEY = "__addCallbackArgs";
15
- export const ADD_CALLBACK_CUSTOM_ARGS_KEY = "__addCallbackCustomArgs";
13
+ export const MOD_FEATURE_CALLBACKS_KEY = "__callbacks";
14
+ export const MOD_FEATURE_CUSTOM_CALLBACKS_KEY = "__customCallbacks";
16
15
  const WRAPPED_CALLBACK_METHODS_KEY = "__wrappedCallbackMethods";
17
16
  const WRAPPED_CUSTOM_CALLBACK_METHODS_KEY = "__wrappedCustomCallbacksMethods";
18
17
 
19
18
  type ModFeatureConstructor = TSTLClassMetatable["constructor"] & {
20
- [ADD_CALLBACK_ARGS_KEY]: unknown | undefined;
21
- [ADD_CALLBACK_CUSTOM_ARGS_KEY]: unknown | undefined;
19
+ [MOD_FEATURE_CALLBACKS_KEY]:
20
+ | [
21
+ modCallback: ModCallback,
22
+ callbackFunc: AnyFunction,
23
+ parameters: unknown[],
24
+ ]
25
+ | undefined;
26
+ [MOD_FEATURE_CUSTOM_CALLBACKS_KEY]:
27
+ | [
28
+ modCallbackCustom: ModCallbackCustom,
29
+ callbackFunc: AnyFunction,
30
+ parameters: unknown[],
31
+ ]
32
+ | undefined;
22
33
  [WRAPPED_CALLBACK_METHODS_KEY]: Map<ModCallback, AnyFunction> | undefined;
23
34
  [WRAPPED_CUSTOM_CALLBACK_METHODS_KEY]:
24
35
  | Map<ModCallbackCustom, AnyFunction>
@@ -138,40 +149,51 @@ function initDecoratedCallbacks(
138
149
  init: boolean,
139
150
  ) {
140
151
  const modFeatureConstructor = constructor as ModFeatureConstructor;
141
- const argsKey = vanilla
142
- ? ADD_CALLBACK_ARGS_KEY
143
- : ADD_CALLBACK_CUSTOM_ARGS_KEY;
144
- const addCallbackArgs = modFeatureConstructor[argsKey];
145
- if (addCallbackArgs === undefined) {
152
+ const callbackTuplesKey = vanilla
153
+ ? MOD_FEATURE_CALLBACKS_KEY
154
+ : MOD_FEATURE_CUSTOM_CALLBACKS_KEY;
155
+ const callbackTuples = modFeatureConstructor[callbackTuplesKey];
156
+ if (callbackTuples === undefined) {
146
157
  return;
147
158
  }
148
159
 
149
- if (!isArray(addCallbackArgs)) {
160
+ if (!isArray(callbackTuples)) {
150
161
  error(
151
- `Failed to initialize/uninitialize the decorated callbacks on a mod feature since the callback arguments on the key of "${argsKey}" was not an array.`,
162
+ `Failed to initialize/uninitialize the decorated callbacks on a mod feature since the callback arguments on the key of "${callbackTuplesKey}" was not an array and was instead of type: ${type(
163
+ callbackTuples,
164
+ )}`,
152
165
  );
153
166
  }
154
167
 
155
- for (const args of addCallbackArgs) {
156
- if (!isArray(args)) {
168
+ for (const callbackTuple of callbackTuples) {
169
+ if (!isArray(callbackTuple)) {
157
170
  error(
158
- "Failed to initialize/uninitialize the decorated callbacks on a mod feature since one of the callback arguments was not an array.",
171
+ `Failed to initialize/uninitialize the decorated callbacks on a mod feature since one of the callback arguments on the key of "${callbackTuplesKey}" was not an array and was instead of type: ${type(
172
+ callbackTuple,
173
+ )}`,
159
174
  );
160
175
  }
161
176
 
162
- const parameters = deepCopy(args);
163
-
164
- const modCallback = parameters.shift();
177
+ const modCallback = callbackTuple[0];
165
178
  if (!isNumber(modCallback)) {
166
179
  error(
167
- `Failed to get the callback number from the parameters for class: ${tstlClassName}`,
180
+ `Failed to get the callback number from the callback tuple for class: ${tstlClassName}`,
168
181
  );
169
182
  }
170
183
 
171
- const callback = parameters.shift();
184
+ const callback = callbackTuple[1];
172
185
  if (!isFunction(callback)) {
173
186
  error(
174
- `Failed to get the callback function from the parameters for class: ${tstlClassName}`,
187
+ `Failed to get the callback function from the callback tuple for class: ${tstlClassName}`,
188
+ );
189
+ }
190
+
191
+ const parameters = callbackTuple[2];
192
+ // We must pass false as the second argument to `isArray` since the callback parameters may not
193
+ // necessarily be contiguous. (They might be separated by `undefined` values.)
194
+ if (!isArray(parameters, false)) {
195
+ error(
196
+ `Failed to get the callback parameters from the callback tuple for class: ${tstlClassName}`,
175
197
  );
176
198
  }
177
199
 
@@ -292,15 +292,25 @@ export class ModUpgradedBase implements Mod {
292
292
 
293
293
  if (feature.callbacksUsed !== undefined) {
294
294
  for (const callbackTuple of feature.callbacksUsed) {
295
- const [modCallback, callbackArgs] = callbackTuple;
296
- this.AddCallback(modCallback, ...callbackArgs);
295
+ const [modCallback, callbackFunc, optionalArgs] = callbackTuple;
296
+ // TypeScript is not smart enough to know that the arguments match the function.
297
+ (this.AddCallback as AnyFunction)(
298
+ modCallback,
299
+ callbackFunc,
300
+ ...(optionalArgs ?? []),
301
+ );
297
302
  }
298
303
  }
299
304
 
300
305
  if (feature.customCallbacksUsed !== undefined) {
301
306
  for (const callbackTuple of feature.customCallbacksUsed) {
302
- const [modCallback, callbackArgs] = callbackTuple;
303
- this.AddCallbackCustom(modCallback, ...callbackArgs);
307
+ const [modCallback, callbackFunc, optionalArgs] = callbackTuple;
308
+ // TypeScript is not smart enough to know that the arguments match the function.
309
+ (this.AddCallbackCustom as AnyFunction)(
310
+ modCallback,
311
+ callbackFunc,
312
+ ...(optionalArgs ?? []),
313
+ );
304
314
  }
305
315
  }
306
316
 
@@ -355,17 +365,15 @@ export class ModUpgradedBase implements Mod {
355
365
 
356
366
  if (feature.callbacksUsed !== undefined) {
357
367
  for (const callbackTuple of feature.callbacksUsed) {
358
- const [modCallback, callbackArgs] = callbackTuple;
359
- const callback = callbackArgs[0];
360
- this.RemoveCallback(modCallback, callback);
368
+ const [modCallback, callbackFunc] = callbackTuple;
369
+ this.RemoveCallback(modCallback, callbackFunc);
361
370
  }
362
371
  }
363
372
 
364
373
  if (feature.customCallbacksUsed !== undefined) {
365
374
  for (const callbackTuple of feature.customCallbacksUsed) {
366
- const [modCallback, callbackArgs] = callbackTuple;
367
- const callback = callbackArgs[0];
368
- this.RemoveCallbackCustom(modCallback, callback);
375
+ const [modCallback, callbackFunc] = callbackTuple;
376
+ this.RemoveCallbackCustom(modCallback, callbackFunc);
369
377
  }
370
378
  }
371
379
 
@@ -9,7 +9,7 @@ export class EntityTakeDmgFilter extends CustomCallback<ModCallbackCustom.ENTITY
9
9
 
10
10
  this.callbacksUsed = [
11
11
  // 11
12
- [ModCallback.ENTITY_TAKE_DMG, [this.entityTakeDmg]],
12
+ [ModCallback.ENTITY_TAKE_DMG, this.entityTakeDmg],
13
13
  ];
14
14
  }
15
15
 
@@ -15,7 +15,8 @@ export class EntityTakeDmgPlayer extends CustomCallback<ModCallbackCustom.ENTITY
15
15
  // 11
16
16
  [
17
17
  ModCallback.ENTITY_TAKE_DMG,
18
- [this.entityTakeDmgPlayer, EntityType.PLAYER],
18
+ this.entityTakeDmgPlayer,
19
+ [EntityType.PLAYER],
19
20
  ],
20
21
  ];
21
22
  }
@@ -18,7 +18,7 @@ export class InputActionFilter extends CustomCallback<T> {
18
18
 
19
19
  this.callbacksUsed = [
20
20
  // 13
21
- [ModCallback.INPUT_ACTION, [this.inputAction]],
21
+ [ModCallback.INPUT_ACTION, this.inputAction],
22
22
  ];
23
23
  }
24
24
 
@@ -18,7 +18,7 @@ export class InputActionPlayer extends CustomCallback<T> {
18
18
 
19
19
  this.callbacksUsed = [
20
20
  // 13
21
- [ModCallback.INPUT_ACTION, [this.inputAction]],
21
+ [ModCallback.INPUT_ACTION, this.inputAction],
22
22
  ];
23
23
  }
24
24
 
@@ -17,7 +17,7 @@ export class PostAmbushFinished extends CustomCallback<ModCallbackCustom.POST_AM
17
17
 
18
18
  this.callbacksUsed = [
19
19
  // 1
20
- [ModCallback.POST_UPDATE, [this.postUpdate]],
20
+ [ModCallback.POST_UPDATE, this.postUpdate],
21
21
  ];
22
22
  }
23
23
 
@@ -17,7 +17,7 @@ export class PostAmbushStarted extends CustomCallback<ModCallbackCustom.POST_AMB
17
17
 
18
18
  this.callbacksUsed = [
19
19
  // 1
20
- [ModCallback.POST_UPDATE, [this.postUpdate]],
20
+ [ModCallback.POST_UPDATE, this.postUpdate],
21
21
  ];
22
22
  }
23
23
 
@@ -10,7 +10,7 @@ export class PostBombExploded extends CustomCallback<ModCallbackCustom.POST_BOMB
10
10
 
11
11
  this.callbacksUsed = [
12
12
  // 58
13
- [ModCallback.POST_BOMB_UPDATE, [this.postBombUpdate]],
13
+ [ModCallback.POST_BOMB_UPDATE, this.postBombUpdate],
14
14
  ];
15
15
  }
16
16
 
@@ -15,7 +15,7 @@ export class PostBombInitLate extends CustomCallback<ModCallbackCustom.POST_BOMB
15
15
 
16
16
  this.callbacksUsed = [
17
17
  // 58
18
- [ModCallback.POST_BOMB_UPDATE, [this.postBombUpdate]],
18
+ [ModCallback.POST_BOMB_UPDATE, this.postBombUpdate],
19
19
  ];
20
20
  }
21
21
 
@@ -20,7 +20,7 @@ export class PostBoneSwing extends CustomCallback<ModCallbackCustom.POST_BONE_SW
20
20
 
21
21
  this.callbacksUsed = [
22
22
  // 52
23
- [ModCallback.POST_KNIFE_RENDER, [this.postKnifeRender]],
23
+ [ModCallback.POST_KNIFE_RENDER, this.postKnifeRender],
24
24
  ];
25
25
  }
26
26
 
@@ -26,7 +26,8 @@ export class PostCollectibleEmpty extends CustomCallback<T> {
26
26
  // 35
27
27
  [
28
28
  ModCallback.POST_PICKUP_UPDATE,
29
- [this.postPickupUpdateCollectible, PickupVariant.COLLECTIBLE],
29
+ this.postPickupUpdateCollectible,
30
+ [PickupVariant.COLLECTIBLE],
30
31
  ],
31
32
  ];
32
33
  }
@@ -19,7 +19,8 @@ export class PostCollectibleInitFirst extends CustomCallback<ModCallbackCustom.P
19
19
  // 34
20
20
  [
21
21
  ModCallback.POST_PICKUP_INIT,
22
- [this.postPickupInitCollectible, PickupVariant.COLLECTIBLE],
22
+ this.postPickupInitCollectible,
23
+ [PickupVariant.COLLECTIBLE],
23
24
  ],
24
25
  ];
25
26
  }
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  CollectibleType,
3
3
  DamageFlag,
4
- EntityType,
5
4
  ModCallback,
6
5
  PlayerVariant,
7
6
  RoomType,
@@ -39,47 +38,82 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
39
38
  super();
40
39
 
41
40
  this.callbacksUsed = [
42
- // 11
43
- [
44
- ModCallback.ENTITY_TAKE_DMG,
45
- [this.entityTakeDmgPlayer, EntityType.PLAYER],
46
- ],
47
-
48
41
  // 32
49
42
  [
50
43
  ModCallback.POST_PLAYER_RENDER,
51
44
  // Co-op babies cannot perform Cursed Eye teleports.
52
- [this.postPlayerRenderPlayer, PlayerVariant.PLAYER],
45
+ this.postPlayerRenderPlayer,
46
+ [PlayerVariant.PLAYER],
53
47
  ],
54
48
  ];
49
+
50
+ this.customCallbacksUsed = [
51
+ [ModCallbackCustom.ENTITY_TAKE_DMG_PLAYER, this.entityTakeDmgPlayer],
52
+ ];
55
53
  }
56
54
 
57
- // ModCallback.ENTITY_TAKE_DMG (11)
58
- // EntityType.PLAYER (1)
55
+ // ModCallback.POST_PLAYER_RENDER (32)
56
+ // PlayerVariant.PLAYER (0)
57
+ private postPlayerRenderPlayer = (
58
+ player: EntityPlayer,
59
+ _renderOffset: Vector,
60
+ ): void => {
61
+ // Retrieve information about this player.
62
+ const trackingArray = mapGetPlayer(
63
+ this.v.run.playersDamageFrameMap,
64
+ player,
65
+ );
66
+ if (trackingArray === undefined) {
67
+ return;
68
+ }
69
+ const [lastDamageFrame, callbackActivatedOnThisFrame] = trackingArray;
70
+
71
+ if (!playerIsTeleportingFromCursedTeleport(player, lastDamageFrame)) {
72
+ return;
73
+ }
74
+
75
+ // Do nothing if the callback already fired on this frame.
76
+ if (callbackActivatedOnThisFrame) {
77
+ return;
78
+ }
79
+
80
+ const gameFrameCount = game.GetFrameCount();
81
+ const newTrackingArray = [gameFrameCount, true];
82
+ mapSetPlayer(this.v.run.playersDamageFrameMap, player, newTrackingArray);
83
+
84
+ this.fire(player);
85
+ };
86
+
87
+ // ModCallbackCustom.ENTITY_TAKE_DMG_PLAYER
59
88
  private entityTakeDmgPlayer = (
60
- entity: Entity,
89
+ player: EntityPlayer,
61
90
  _amount: float,
62
91
  damageFlags: BitFlags<DamageFlag>,
63
92
  _source: EntityRef,
64
93
  _countdownFrames: int,
65
94
  ): boolean | undefined => {
66
95
  this.incrementNumSacrifices(damageFlags); // Has to be before setting the damage frame.
67
- this.setDamageFrame(entity, damageFlags);
96
+ this.setDamageFrame(player, damageFlags);
68
97
 
69
98
  return undefined;
70
99
  };
71
100
 
101
+ private incrementNumSacrifices(damageFlags: BitFlags<DamageFlag>): void {
102
+ const room = game.GetRoom();
103
+ const roomType = room.GetType();
104
+ const isSpikeDamage = hasFlag(damageFlags, DamageFlag.SPIKES);
105
+
106
+ if (roomType === RoomType.SACRIFICE && isSpikeDamage) {
107
+ this.v.level.numSacrifices++;
108
+ }
109
+ }
110
+
72
111
  private setDamageFrame(
73
- entity: Entity,
112
+ player: EntityPlayer,
74
113
  damageFlags: BitFlags<DamageFlag>,
75
114
  ): void {
76
115
  const gameFrameCount = game.GetFrameCount();
77
116
 
78
- const player = entity.ToPlayer();
79
- if (player === undefined) {
80
- return;
81
- }
82
-
83
117
  // Don't do anything if we already activated the callback on this frame.
84
118
  const trackingArray = mapGetPlayer(
85
119
  this.v.run.playersDamageFrameMap,
@@ -116,48 +150,6 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
116
150
  (this.v.level.numSacrifices === 6 || this.v.level.numSacrifices >= 12)
117
151
  );
118
152
  }
119
-
120
- private incrementNumSacrifices(damageFlags: BitFlags<DamageFlag>): void {
121
- const room = game.GetRoom();
122
- const roomType = room.GetType();
123
- const isSpikeDamage = hasFlag(damageFlags, DamageFlag.SPIKES);
124
-
125
- if (roomType === RoomType.SACRIFICE && isSpikeDamage) {
126
- this.v.level.numSacrifices++;
127
- }
128
- }
129
-
130
- // ModCallback.POST_PLAYER_RENDER (32)
131
- // PlayerVariant.PLAYER (0)
132
- private postPlayerRenderPlayer = (
133
- player: EntityPlayer,
134
- _renderOffset: Vector,
135
- ): void => {
136
- // Retrieve information about this player.
137
- const trackingArray = mapGetPlayer(
138
- this.v.run.playersDamageFrameMap,
139
- player,
140
- );
141
- if (trackingArray === undefined) {
142
- return;
143
- }
144
- const [lastDamageFrame, callbackActivatedOnThisFrame] = trackingArray;
145
-
146
- if (!playerIsTeleportingFromCursedTeleport(player, lastDamageFrame)) {
147
- return;
148
- }
149
-
150
- // Do nothing if the callback already fired on this frame.
151
- if (callbackActivatedOnThisFrame) {
152
- return;
153
- }
154
-
155
- const gameFrameCount = game.GetFrameCount();
156
- const newTrackingArray = [gameFrameCount, true];
157
- mapSetPlayer(this.v.run.playersDamageFrameMap, player, newTrackingArray);
158
-
159
- this.fire(player);
160
- };
161
153
  }
162
154
 
163
155
  function playerIsTeleportingFromCursedTeleport(
@@ -28,7 +28,8 @@ export class PostDiceRoomActivated extends CustomCallback<T> {
28
28
  // 55
29
29
  [
30
30
  ModCallback.POST_EFFECT_UPDATE,
31
- [this.postEffectUpdateDiceFloor, EffectVariant.DICE_FLOOR],
31
+ this.postEffectUpdateDiceFloor,
32
+ [EffectVariant.DICE_FLOOR],
32
33
  ],
33
34
  ];
34
35
  }
@@ -10,7 +10,7 @@ export class PostDoorRender extends CustomCallback<ModCallbackCustom.POST_DOOR_R
10
10
 
11
11
  this.callbacksUsed = [
12
12
  // 2
13
- [ModCallback.POST_RENDER, [this.postRender]],
13
+ [ModCallback.POST_RENDER, this.postRender],
14
14
  ];
15
15
  }
16
16
 
@@ -10,7 +10,7 @@ export class PostDoorUpdate extends CustomCallback<ModCallbackCustom.POST_DOOR_U
10
10
 
11
11
  this.callbacksUsed = [
12
12
  // 1
13
- [ModCallback.POST_UPDATE, [this.postUpdate]],
13
+ [ModCallback.POST_UPDATE, this.postUpdate],
14
14
  ];
15
15
  }
16
16
 
@@ -15,7 +15,7 @@ export class PostEffectInitLate extends CustomCallback<ModCallbackCustom.POST_EF
15
15
 
16
16
  this.callbacksUsed = [
17
17
  // 55
18
- [ModCallback.POST_EFFECT_UPDATE, [this.postEffectUpdate]],
18
+ [ModCallback.POST_EFFECT_UPDATE, this.postEffectUpdate],
19
19
  ];
20
20
  }
21
21
 
@@ -16,7 +16,7 @@ export class PostEffectStateChanged extends CustomCallback<ModCallbackCustom.POS
16
16
 
17
17
  this.callbacksUsed = [
18
18
  // 55
19
- [ModCallback.POST_EFFECT_UPDATE, [this.postEffectUpdate]],
19
+ [ModCallback.POST_EFFECT_UPDATE, this.postEffectUpdate],
20
20
  ];
21
21
  }
22
22
 
@@ -15,7 +15,7 @@ export class PostFamiliarInitLate extends CustomCallback<ModCallbackCustom.POST_
15
15
 
16
16
  this.callbacksUsed = [
17
17
  // 6
18
- [ModCallback.POST_FAMILIAR_UPDATE, [this.postFamiliarUpdate]],
18
+ [ModCallback.POST_FAMILIAR_UPDATE, this.postFamiliarUpdate],
19
19
  ];
20
20
  }
21
21
 
@@ -16,7 +16,7 @@ export class PostFamiliarStateChanged extends CustomCallback<ModCallbackCustom.P
16
16
 
17
17
  this.callbacksUsed = [
18
18
  // 6
19
- [ModCallback.POST_FAMILIAR_UPDATE, [this.postFamiliarUpdate]],
19
+ [ModCallback.POST_FAMILIAR_UPDATE, this.postFamiliarUpdate],
20
20
  ];
21
21
  }
22
22
 
@@ -16,7 +16,7 @@ export class PostGreedModeWave extends CustomCallback<ModCallbackCustom.POST_GRE
16
16
 
17
17
  this.callbacksUsed = [
18
18
  // 1
19
- [ModCallback.POST_UPDATE, [this.postUpdate]],
19
+ [ModCallback.POST_UPDATE, this.postUpdate],
20
20
  ];
21
21
  }
22
22
 
@@ -22,7 +22,7 @@ export class PostHolyMantleRemoved extends CustomCallback<ModCallbackCustom.POST
22
22
  this.customCallbacksUsed = [
23
23
  [
24
24
  ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
25
- [this.postPEffectUpdateReordered],
25
+ this.postPEffectUpdateReordered,
26
26
  ],
27
27
  ];
28
28
  }
@@ -55,14 +55,15 @@ export class PostItemDischarge extends CustomCallback<T> {
55
55
  // 30
56
56
  [
57
57
  ModCallback.PRE_NPC_COLLISION,
58
- [this.preNPCCollisionSucker, EntityType.SUCKER],
58
+ this.preNPCCollisionSucker,
59
+ [EntityType.SUCKER],
59
60
  ],
60
61
  ];
61
62
 
62
63
  this.customCallbacksUsed = [
63
64
  [
64
65
  ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
65
- [this.postPEffectUpdateReordered],
66
+ this.postPEffectUpdateReordered,
66
67
  ],
67
68
  ];
68
69
  }
@@ -15,7 +15,7 @@ export class PostKnifeInitLate extends CustomCallback<ModCallbackCustom.POST_KNI
15
15
 
16
16
  this.callbacksUsed = [
17
17
  // 51
18
- [ModCallback.POST_KNIFE_UPDATE, [this.postKnifeUpdate]],
18
+ [ModCallback.POST_KNIFE_UPDATE, this.postKnifeUpdate],
19
19
  ];
20
20
  }
21
21
 
@@ -15,7 +15,7 @@ export class PostLaserInitLate extends CustomCallback<ModCallbackCustom.POST_LAS
15
15
 
16
16
  this.callbacksUsed = [
17
17
  // 48
18
- [ModCallback.POST_LASER_UPDATE, [this.postLaserUpdate]],
18
+ [ModCallback.POST_LASER_UPDATE, this.postLaserUpdate],
19
19
  ];
20
20
  }
21
21
 
@@ -9,7 +9,7 @@ export class PostNPCDeathFilter extends CustomCallback<ModCallbackCustom.POST_NP
9
9
 
10
10
  this.callbacksUsed = [
11
11
  // 29
12
- [ModCallback.POST_NPC_DEATH, [this.postNPCDeath]],
12
+ [ModCallback.POST_NPC_DEATH, this.postNPCDeath],
13
13
  ];
14
14
  }
15
15
 
@@ -9,7 +9,7 @@ export class PostNPCInitFilter extends CustomCallback<ModCallbackCustom.POST_NPC
9
9
 
10
10
  this.callbacksUsed = [
11
11
  // 27
12
- [ModCallback.POST_NPC_INIT, [this.postNPCInit]],
12
+ [ModCallback.POST_NPC_INIT, this.postNPCInit],
13
13
  ];
14
14
  }
15
15
 
@@ -15,7 +15,7 @@ export class PostNPCInitLate extends CustomCallback<ModCallbackCustom.POST_NPC_I
15
15
 
16
16
  this.callbacksUsed = [
17
17
  // 0
18
- [ModCallback.POST_NPC_UPDATE, [this.postNPCUpdate]],
18
+ [ModCallback.POST_NPC_UPDATE, this.postNPCUpdate],
19
19
  ];
20
20
  }
21
21
 
@@ -9,7 +9,7 @@ export class PostNPCRenderFilter extends CustomCallback<ModCallbackCustom.POST_N
9
9
 
10
10
  this.callbacksUsed = [
11
11
  // 28
12
- [ModCallback.POST_NPC_RENDER, [this.postNPCRender]],
12
+ [ModCallback.POST_NPC_RENDER, this.postNPCRender],
13
13
  ];
14
14
  }
15
15
 
@@ -18,7 +18,7 @@ export class PostNPCStateChanged extends CustomCallback<ModCallbackCustom.POST_N
18
18
 
19
19
  this.callbacksUsed = [
20
20
  // 0
21
- [ModCallback.POST_NPC_UPDATE, [this.postNPCUpdate]],
21
+ [ModCallback.POST_NPC_UPDATE, this.postNPCUpdate],
22
22
  ];
23
23
  }
24
24
 
@@ -9,7 +9,7 @@ export class PostNPCUpdateFilter extends CustomCallback<ModCallbackCustom.POST_N
9
9
 
10
10
  this.callbacksUsed = [
11
11
  // 0
12
- [ModCallback.POST_NPC_UPDATE, [this.postNPCUpdate]],
12
+ [ModCallback.POST_NPC_UPDATE, this.postNPCUpdate],
13
13
  ];
14
14
  }
15
15
 
@@ -23,10 +23,10 @@ export class PostNewRoomEarly extends CustomCallback<ModCallbackCustom.POST_NEW_
23
23
 
24
24
  this.callbacksUsed = [
25
25
  // 19
26
- [ModCallback.POST_NEW_ROOM, [this.postNewRoom]],
26
+ [ModCallback.POST_NEW_ROOM, this.postNewRoom],
27
27
 
28
28
  // 24
29
- [ModCallback.PRE_ENTITY_SPAWN, [this.preEntitySpawn]],
29
+ [ModCallback.PRE_ENTITY_SPAWN, this.preEntitySpawn],
30
30
  ];
31
31
  }
32
32