isaacscript-common 25.2.0 → 25.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/dist/index.rollup.d.ts +27 -2
  2. package/dist/isaacscript-common.lua +803 -693
  3. package/dist/src/classes/ModFeature.d.ts.map +1 -1
  4. package/dist/src/classes/ModFeature.lua +12 -5
  5. package/dist/src/classes/callbacks/PostAmbushFinished.d.ts.map +1 -1
  6. package/dist/src/classes/callbacks/PostAmbushFinished.lua +4 -3
  7. package/dist/src/classes/callbacks/PostAmbushStarted.d.ts.map +1 -1
  8. package/dist/src/classes/callbacks/PostAmbushStarted.lua +4 -3
  9. package/dist/src/classes/callbacks/PostBombInitLate.d.ts.map +1 -1
  10. package/dist/src/classes/callbacks/PostBombInitLate.lua +6 -5
  11. package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -1
  12. package/dist/src/classes/callbacks/PostBoneSwing.lua +5 -4
  13. package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -1
  14. package/dist/src/classes/callbacks/PostCollectibleEmpty.lua +6 -5
  15. package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts.map +1 -1
  16. package/dist/src/classes/callbacks/PostCollectibleInitFirst.lua +6 -5
  17. package/dist/src/classes/callbacks/PostCursedTeleport.d.ts.map +1 -1
  18. package/dist/src/classes/callbacks/PostCursedTeleport.lua +14 -13
  19. package/dist/src/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -1
  20. package/dist/src/classes/callbacks/PostDiceRoomActivated.lua +4 -3
  21. package/dist/src/classes/callbacks/PostEffectInitLate.d.ts.map +1 -1
  22. package/dist/src/classes/callbacks/PostEffectInitLate.lua +6 -5
  23. package/dist/src/classes/callbacks/PostEffectStateChanged.d.ts.map +1 -1
  24. package/dist/src/classes/callbacks/PostEffectStateChanged.lua +8 -7
  25. package/dist/src/classes/callbacks/PostFamiliarInitLate.d.ts.map +1 -1
  26. package/dist/src/classes/callbacks/PostFamiliarInitLate.lua +6 -5
  27. package/dist/src/classes/callbacks/PostFamiliarStateChanged.d.ts.map +1 -1
  28. package/dist/src/classes/callbacks/PostFamiliarStateChanged.lua +8 -7
  29. package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts +2 -0
  30. package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts.map +1 -1
  31. package/dist/src/classes/callbacks/PostGameStartedReordered.lua +3 -0
  32. package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts +2 -0
  33. package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts.map +1 -1
  34. package/dist/src/classes/callbacks/PostGameStartedReorderedLast.lua +3 -0
  35. package/dist/src/classes/callbacks/PostGreedModeWave.d.ts.map +1 -1
  36. package/dist/src/classes/callbacks/PostGreedModeWave.lua +4 -3
  37. package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -1
  38. package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +5 -4
  39. package/dist/src/classes/callbacks/PostItemDischarge.d.ts.map +1 -1
  40. package/dist/src/classes/callbacks/PostItemDischarge.lua +20 -19
  41. package/dist/src/classes/callbacks/PostKeyboardChanged.d.ts.map +1 -1
  42. package/dist/src/classes/callbacks/PostKeyboardChanged.lua +8 -7
  43. package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts.map +1 -1
  44. package/dist/src/classes/callbacks/PostKnifeInitLate.lua +6 -5
  45. package/dist/src/classes/callbacks/PostLaserInitLate.d.ts.map +1 -1
  46. package/dist/src/classes/callbacks/PostLaserInitLate.lua +6 -5
  47. package/dist/src/classes/callbacks/PostNPCInitLate.d.ts.map +1 -1
  48. package/dist/src/classes/callbacks/PostNPCInitLate.lua +6 -5
  49. package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts.map +1 -1
  50. package/dist/src/classes/callbacks/PostNPCStateChanged.lua +8 -7
  51. package/dist/src/classes/callbacks/PostPickupCollect.d.ts.map +1 -1
  52. package/dist/src/classes/callbacks/PostPickupCollect.lua +6 -5
  53. package/dist/src/classes/callbacks/PostPickupInitLate.d.ts.map +1 -1
  54. package/dist/src/classes/callbacks/PostPickupInitLate.lua +6 -5
  55. package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts.map +1 -1
  56. package/dist/src/classes/callbacks/PostPickupStateChanged.lua +8 -7
  57. package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts.map +1 -1
  58. package/dist/src/classes/callbacks/PostPlayerChangeHealth.lua +8 -7
  59. package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts.map +1 -1
  60. package/dist/src/classes/callbacks/PostPlayerChangeStat.lua +8 -7
  61. package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts.map +1 -1
  62. package/dist/src/classes/callbacks/PostPlayerChangeType.lua +8 -7
  63. package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts.map +1 -1
  64. package/dist/src/classes/callbacks/PostPlayerFatalDamage.lua +6 -5
  65. package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts.map +1 -1
  66. package/dist/src/classes/callbacks/PostPlayerInitLate.lua +6 -5
  67. package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts.map +1 -1
  68. package/dist/src/classes/callbacks/PostProjectileInitLate.lua +6 -5
  69. package/dist/src/classes/callbacks/PostPurchase.d.ts.map +1 -1
  70. package/dist/src/classes/callbacks/PostPurchase.lua +5 -4
  71. package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -1
  72. package/dist/src/classes/callbacks/PostRoomClearChanged.lua +5 -4
  73. package/dist/src/classes/callbacks/PostSacrifice.d.ts.map +1 -1
  74. package/dist/src/classes/callbacks/PostSacrifice.lua +5 -4
  75. package/dist/src/classes/callbacks/PostTearInitLate.d.ts.map +1 -1
  76. package/dist/src/classes/callbacks/PostTearInitLate.lua +6 -5
  77. package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts.map +1 -1
  78. package/dist/src/classes/callbacks/PostTearInitVeryLate.lua +6 -5
  79. package/dist/src/classes/callbacks/PostTransformation.d.ts.map +1 -1
  80. package/dist/src/classes/callbacks/PostTransformation.lua +8 -7
  81. package/dist/src/classes/callbacks/PostTrinketBreak.d.ts.map +1 -1
  82. package/dist/src/classes/callbacks/PostTrinketBreak.lua +9 -8
  83. package/dist/src/classes/callbacks/PreNewLevel.d.ts.map +1 -1
  84. package/dist/src/classes/callbacks/PreNewLevel.lua +4 -3
  85. package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
  86. package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +21 -20
  87. package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
  88. package/dist/src/classes/features/callbackLogic/CustomRevive.lua +18 -17
  89. package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
  90. package/dist/src/classes/features/callbackLogic/EsauJrDetection.lua +11 -10
  91. package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts.map +1 -1
  92. package/dist/src/classes/features/callbackLogic/FlipDetection.lua +4 -3
  93. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -1
  94. package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.lua +8 -7
  95. package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.d.ts.map +1 -1
  96. package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.lua +9 -8
  97. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts.map +1 -1
  98. package/dist/src/classes/features/callbackLogic/ItemPickupDetection.lua +7 -6
  99. package/dist/src/classes/features/callbackLogic/PickupChangeDetection.d.ts.map +1 -1
  100. package/dist/src/classes/features/callbackLogic/PickupChangeDetection.lua +11 -10
  101. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts.map +1 -1
  102. package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.lua +20 -19
  103. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
  104. package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.lua +15 -14
  105. package/dist/src/classes/features/callbackLogic/SlotDestroyedDetection.d.ts.map +1 -1
  106. package/dist/src/classes/features/callbackLogic/SlotDestroyedDetection.lua +6 -5
  107. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts.map +1 -1
  108. package/dist/src/classes/features/callbackLogic/SlotRenderDetection.lua +15 -14
  109. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts.map +1 -1
  110. package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.lua +6 -5
  111. package/dist/src/classes/features/other/CollectibleItemPoolType.d.ts.map +1 -1
  112. package/dist/src/classes/features/other/CollectibleItemPoolType.lua +6 -5
  113. package/dist/src/classes/features/other/CustomItemPools.d.ts.map +1 -1
  114. package/dist/src/classes/features/other/CustomItemPools.lua +6 -5
  115. package/dist/src/classes/features/other/CustomPickups.d.ts.map +1 -1
  116. package/dist/src/classes/features/other/CustomStages.d.ts.map +1 -1
  117. package/dist/src/classes/features/other/CustomStages.lua +17 -26
  118. package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
  119. package/dist/src/classes/features/other/CustomTrapdoors.lua +36 -35
  120. package/dist/src/classes/features/other/DisableAllSound.d.ts.map +1 -1
  121. package/dist/src/classes/features/other/DisableAllSound.lua +10 -9
  122. package/dist/src/classes/features/other/DisableInputs.d.ts.map +1 -1
  123. package/dist/src/classes/features/other/DisableInputs.lua +21 -20
  124. package/dist/src/classes/features/other/ExtraConsoleCommands.lua +19 -19
  125. package/dist/src/classes/features/other/NoSirenSteal.d.ts.map +1 -1
  126. package/dist/src/classes/features/other/NoSirenSteal.lua +5 -4
  127. package/dist/src/classes/features/other/Pause.d.ts.map +1 -1
  128. package/dist/src/classes/features/other/Pause.lua +20 -19
  129. package/dist/src/classes/features/other/PersistentEntities.d.ts.map +1 -1
  130. package/dist/src/classes/features/other/PersistentEntities.lua +20 -19
  131. package/dist/src/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
  132. package/dist/src/classes/features/other/PickupIndexCreation.lua +29 -28
  133. package/dist/src/classes/features/other/PlayerInventory.d.ts.map +1 -1
  134. package/dist/src/classes/features/other/PlayerInventory.lua +9 -8
  135. package/dist/src/classes/features/other/PonyDetection.d.ts.map +1 -1
  136. package/dist/src/classes/features/other/PonyDetection.lua +8 -7
  137. package/dist/src/classes/features/other/PressInput.d.ts.map +1 -1
  138. package/dist/src/classes/features/other/PressInput.lua +7 -6
  139. package/dist/src/classes/features/other/PreventChildEntities.d.ts.map +1 -1
  140. package/dist/src/classes/features/other/PreventChildEntities.lua +7 -6
  141. package/dist/src/classes/features/other/PreventCollectibleRotation.d.ts.map +1 -1
  142. package/dist/src/classes/features/other/PreventCollectibleRotation.lua +7 -6
  143. package/dist/src/classes/features/other/PreventGridEntityRespawn.d.ts.map +1 -1
  144. package/dist/src/classes/features/other/PreventGridEntityRespawn.lua +16 -15
  145. package/dist/src/classes/features/other/RoomClearFrame.d.ts.map +1 -1
  146. package/dist/src/classes/features/other/RoomClearFrame.lua +6 -5
  147. package/dist/src/classes/features/other/RoomHistory.d.ts.map +1 -1
  148. package/dist/src/classes/features/other/RoomHistory.lua +9 -8
  149. package/dist/src/classes/features/other/RunInNFrames.d.ts.map +1 -1
  150. package/dist/src/classes/features/other/RunInNFrames.lua +14 -13
  151. package/dist/src/classes/features/other/RunNextRoom.d.ts.map +1 -1
  152. package/dist/src/classes/features/other/RunNextRoom.lua +6 -5
  153. package/dist/src/classes/features/other/SaveDataManager.d.ts +1 -0
  154. package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -1
  155. package/dist/src/classes/features/other/SaveDataManager.lua +12 -0
  156. package/dist/src/classes/features/other/StageHistory.d.ts.map +1 -1
  157. package/dist/src/classes/features/other/StageHistory.lua +7 -6
  158. package/dist/src/classes/features/other/TaintedLazarusPlayers.d.ts.map +1 -1
  159. package/dist/src/classes/features/other/TaintedLazarusPlayers.lua +18 -17
  160. package/dist/src/classes/features/other/customStages/streakText.d.ts +3 -25
  161. package/dist/src/classes/features/other/customStages/streakText.d.ts.map +1 -1
  162. package/dist/src/classes/features/other/customStages/streakText.lua +16 -26
  163. package/dist/src/classes/features/other/customStages/v.d.ts +25 -0
  164. package/dist/src/classes/features/other/customStages/v.d.ts.map +1 -0
  165. package/dist/src/classes/features/other/customStages/v.lua +16 -0
  166. package/dist/src/classes/features/other/customStages/versusScreen.d.ts +2 -8
  167. package/dist/src/classes/features/other/customStages/versusScreen.d.ts.map +1 -1
  168. package/dist/src/classes/features/other/customStages/versusScreen.lua +6 -4
  169. package/dist/src/enums/ModCallbackCustom.d.ts +6 -0
  170. package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
  171. package/dist/src/functions/decorators.d.ts +15 -0
  172. package/dist/src/functions/decorators.d.ts.map +1 -1
  173. package/dist/src/functions/decorators.lua +21 -5
  174. package/dist/src/interfaces/SaveData.d.ts.map +1 -1
  175. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts +4 -2
  176. package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -1
  177. package/dist/src/shouldFire.d.ts +1 -0
  178. package/dist/src/shouldFire.d.ts.map +1 -1
  179. package/dist/src/shouldFire.lua +5 -0
  180. package/package.json +1 -1
  181. package/src/classes/ModFeature.ts +16 -4
  182. package/src/classes/callbacks/PostAmbushFinished.ts +9 -7
  183. package/src/classes/callbacks/PostAmbushStarted.ts +9 -7
  184. package/src/classes/callbacks/PostBombInitLate.ts +9 -7
  185. package/src/classes/callbacks/PostBoneSwing.ts +9 -7
  186. package/src/classes/callbacks/PostCollectibleEmpty.ts +9 -7
  187. package/src/classes/callbacks/PostCollectibleInitFirst.ts +9 -7
  188. package/src/classes/callbacks/PostCursedTeleport.ts +20 -24
  189. package/src/classes/callbacks/PostDiceRoomActivated.ts +9 -7
  190. package/src/classes/callbacks/PostEffectInitLate.ts +9 -7
  191. package/src/classes/callbacks/PostEffectStateChanged.ts +9 -7
  192. package/src/classes/callbacks/PostFamiliarInitLate.ts +9 -7
  193. package/src/classes/callbacks/PostFamiliarStateChanged.ts +9 -7
  194. package/src/classes/callbacks/PostGameStartedReordered.ts +3 -0
  195. package/src/classes/callbacks/PostGameStartedReorderedLast.ts +3 -0
  196. package/src/classes/callbacks/PostGreedModeWave.ts +9 -7
  197. package/src/classes/callbacks/PostHolyMantleRemoved.ts +9 -7
  198. package/src/classes/callbacks/PostItemDischarge.ts +21 -27
  199. package/src/classes/callbacks/PostKeyboardChanged.ts +11 -9
  200. package/src/classes/callbacks/PostKnifeInitLate.ts +9 -7
  201. package/src/classes/callbacks/PostLaserInitLate.ts +9 -7
  202. package/src/classes/callbacks/PostNPCInitLate.ts +9 -7
  203. package/src/classes/callbacks/PostNPCStateChanged.ts +11 -12
  204. package/src/classes/callbacks/PostPickupCollect.ts +9 -7
  205. package/src/classes/callbacks/PostPickupInitLate.ts +9 -7
  206. package/src/classes/callbacks/PostPickupStateChanged.ts +9 -7
  207. package/src/classes/callbacks/PostPlayerChangeHealth.ts +10 -8
  208. package/src/classes/callbacks/PostPlayerChangeStat.ts +11 -10
  209. package/src/classes/callbacks/PostPlayerChangeType.ts +13 -11
  210. package/src/classes/callbacks/PostPlayerFatalDamage.ts +10 -8
  211. package/src/classes/callbacks/PostPlayerInitLate.ts +9 -7
  212. package/src/classes/callbacks/PostProjectileInitLate.ts +9 -7
  213. package/src/classes/callbacks/PostPurchase.ts +11 -9
  214. package/src/classes/callbacks/PostRoomClearChanged.ts +10 -8
  215. package/src/classes/callbacks/PostSacrifice.ts +9 -7
  216. package/src/classes/callbacks/PostTearInitLate.ts +9 -7
  217. package/src/classes/callbacks/PostTearInitVeryLate.ts +9 -7
  218. package/src/classes/callbacks/PostTransformation.ts +12 -10
  219. package/src/classes/callbacks/PostTrinketBreak.ts +12 -16
  220. package/src/classes/callbacks/PreNewLevel.ts +9 -7
  221. package/src/classes/features/callbackLogic/CustomGridEntities.ts +23 -21
  222. package/src/classes/features/callbackLogic/CustomRevive.ts +26 -27
  223. package/src/classes/features/callbackLogic/EsauJrDetection.ts +19 -17
  224. package/src/classes/features/callbackLogic/FlipDetection.ts +10 -8
  225. package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +11 -9
  226. package/src/classes/features/callbackLogic/GridEntityUpdateDetection.ts +13 -12
  227. package/src/classes/features/callbackLogic/ItemPickupDetection.ts +10 -8
  228. package/src/classes/features/callbackLogic/PickupChangeDetection.ts +12 -10
  229. package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +21 -27
  230. package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +22 -29
  231. package/src/classes/features/callbackLogic/SlotDestroyedDetection.ts +9 -7
  232. package/src/classes/features/callbackLogic/SlotRenderDetection.ts +15 -13
  233. package/src/classes/features/callbackLogic/SlotUpdateDetection.ts +9 -7
  234. package/src/classes/features/other/CollectibleItemPoolType.ts +9 -7
  235. package/src/classes/features/other/CustomItemPools.ts +9 -7
  236. package/src/classes/features/other/CustomPickups.ts +0 -1
  237. package/src/classes/features/other/CustomStages.ts +16 -44
  238. package/src/classes/features/other/CustomTrapdoors.ts +53 -54
  239. package/src/classes/features/other/DisableAllSound.ts +13 -11
  240. package/src/classes/features/other/DisableInputs.ts +39 -37
  241. package/src/classes/features/other/ExtraConsoleCommands.ts +19 -19
  242. package/src/classes/features/other/NoSirenSteal.ts +11 -9
  243. package/src/classes/features/other/Pause.ts +21 -19
  244. package/src/classes/features/other/PersistentEntities.ts +33 -31
  245. package/src/classes/features/other/PickupIndexCreation.ts +35 -33
  246. package/src/classes/features/other/PlayerInventory.ts +14 -12
  247. package/src/classes/features/other/PonyDetection.ts +11 -9
  248. package/src/classes/features/other/PressInput.ts +11 -9
  249. package/src/classes/features/other/PreventChildEntities.ts +10 -8
  250. package/src/classes/features/other/PreventCollectibleRotation.ts +20 -18
  251. package/src/classes/features/other/PreventGridEntityRespawn.ts +18 -18
  252. package/src/classes/features/other/RoomClearFrame.ts +12 -10
  253. package/src/classes/features/other/RoomHistory.ts +13 -11
  254. package/src/classes/features/other/RunInNFrames.ts +19 -17
  255. package/src/classes/features/other/RunNextRoom.ts +10 -8
  256. package/src/classes/features/other/SaveDataManager.ts +11 -0
  257. package/src/classes/features/other/StageHistory.ts +11 -9
  258. package/src/classes/features/other/TaintedLazarusPlayers.ts +31 -30
  259. package/src/classes/features/other/customStages/streakText.ts +14 -44
  260. package/src/classes/features/other/customStages/v.ts +31 -0
  261. package/src/classes/features/other/customStages/versusScreen.ts +2 -10
  262. package/src/enums/ModCallbackCustom.ts +6 -0
  263. package/src/functions/decorators.ts +45 -4
  264. package/src/interfaces/SaveData.ts +0 -1
  265. package/src/interfaces/private/AddCallbackParametersCustom.ts +2 -0
  266. package/src/shouldFire.ts +10 -0
@@ -18,19 +18,21 @@ import { shouldFirePlayer } from "../../shouldFire";
18
18
  import { PlayerIndex } from "../../types/PlayerIndex";
19
19
  import { CustomCallback } from "../private/CustomCallback";
20
20
 
21
+ const v = {
22
+ run: {
23
+ playersDamageFrameMap: new Map<
24
+ PlayerIndex,
25
+ [lastDamageFrame: int, callbackFiredOnThisFrame: boolean]
26
+ >(),
27
+ },
28
+
29
+ level: {
30
+ numSacrifices: 0,
31
+ },
32
+ };
33
+
21
34
  export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CURSED_TELEPORT> {
22
- public override v = {
23
- run: {
24
- playersDamageFrameMap: new Map<
25
- PlayerIndex,
26
- [lastDamageFrame: int, callbackFiredOnThisFrame: boolean]
27
- >(),
28
- },
29
-
30
- level: {
31
- numSacrifices: 0,
32
- },
33
- };
35
+ public override v = v;
34
36
 
35
37
  protected override shouldFire = shouldFirePlayer;
36
38
 
@@ -59,10 +61,7 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
59
61
  _renderOffset: Vector,
60
62
  ): void => {
61
63
  // Retrieve information about this player.
62
- const trackingArray = mapGetPlayer(
63
- this.v.run.playersDamageFrameMap,
64
- player,
65
- );
64
+ const trackingArray = mapGetPlayer(v.run.playersDamageFrameMap, player);
66
65
  if (trackingArray === undefined) {
67
66
  return;
68
67
  }
@@ -79,7 +78,7 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
79
78
 
80
79
  const gameFrameCount = game.GetFrameCount();
81
80
  const newTrackingArray = [gameFrameCount, true];
82
- mapSetPlayer(this.v.run.playersDamageFrameMap, player, newTrackingArray);
81
+ mapSetPlayer(v.run.playersDamageFrameMap, player, newTrackingArray);
83
82
 
84
83
  this.fire(player);
85
84
  };
@@ -104,7 +103,7 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
104
103
  const isSpikeDamage = hasFlag(damageFlags, DamageFlag.SPIKES);
105
104
 
106
105
  if (roomType === RoomType.SACRIFICE && isSpikeDamage) {
107
- this.v.level.numSacrifices++;
106
+ v.level.numSacrifices++;
108
107
  }
109
108
  }
110
109
 
@@ -115,10 +114,7 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
115
114
  const gameFrameCount = game.GetFrameCount();
116
115
 
117
116
  // Don't do anything if we already activated the callback on this frame.
118
- const trackingArray = mapGetPlayer(
119
- this.v.run.playersDamageFrameMap,
120
- player,
121
- );
117
+ const trackingArray = mapGetPlayer(v.run.playersDamageFrameMap, player);
122
118
  if (trackingArray !== undefined) {
123
119
  const [lastDamageFrame, callbackFiredOnThisFrame] = trackingArray;
124
120
  if (lastDamageFrame === gameFrameCount && callbackFiredOnThisFrame) {
@@ -132,7 +128,7 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
132
128
  }
133
129
 
134
130
  const newTrackingArray = [gameFrameCount, false];
135
- mapSetPlayer(this.v.run.playersDamageFrameMap, player, newTrackingArray);
131
+ mapSetPlayer(v.run.playersDamageFrameMap, player, newTrackingArray);
136
132
  }
137
133
 
138
134
  private isPotentialNaturalTeleportFromSacrificeRoom(
@@ -147,7 +143,7 @@ export class PostCursedTeleport extends CustomCallback<ModCallbackCustom.POST_CU
147
143
  return (
148
144
  roomType === RoomType.SACRIFICE &&
149
145
  isSpikeDamage &&
150
- (this.v.level.numSacrifices === 6 || this.v.level.numSacrifices >= 12)
146
+ (v.level.numSacrifices === 6 || v.level.numSacrifices >= 12)
151
147
  );
152
148
  }
153
149
  }
@@ -14,12 +14,14 @@ import {
14
14
 
15
15
  type T = ModCallbackCustom.POST_DICE_ROOM_ACTIVATED;
16
16
 
17
+ const v = {
18
+ room: {
19
+ diceRoomActivated: false,
20
+ },
21
+ };
22
+
17
23
  export class PostDiceRoomActivated extends CustomCallback<T> {
18
- public override v = {
19
- room: {
20
- diceRoomActivated: false,
21
- },
22
- };
24
+ public override v = v;
23
25
 
24
26
  constructor() {
25
27
  super();
@@ -50,7 +52,7 @@ export class PostDiceRoomActivated extends CustomCallback<T> {
50
52
  // ModCallback.POST_EFFECT_UPDATE (55)
51
53
  // EffectVariant.DICE_FLOOR (76)
52
54
  private postEffectUpdateDiceFloor = (effect: EntityEffect): void => {
53
- if (this.v.room.diceRoomActivated) {
55
+ if (v.room.diceRoomActivated) {
54
56
  return;
55
57
  }
56
58
 
@@ -62,7 +64,7 @@ export class PostDiceRoomActivated extends CustomCallback<T> {
62
64
 
63
65
  const closestPlayer = getClosestPlayer(effect.Position);
64
66
  if (isCloseEnoughToTriggerDiceFloor(closestPlayer, effect)) {
65
- this.v.room.diceRoomActivated = true;
67
+ v.room.diceRoomActivated = true;
66
68
  this.fire(closestPlayer, effect.SubType as DiceFloorSubType);
67
69
  }
68
70
  };
@@ -3,12 +3,14 @@ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
3
  import { shouldFireEffect } from "../../shouldFire";
4
4
  import { CustomCallback } from "../private/CustomCallback";
5
5
 
6
+ const v = {
7
+ room: {
8
+ firedSet: new Set<PtrHash>(),
9
+ },
10
+ };
11
+
6
12
  export class PostEffectInitLate extends CustomCallback<ModCallbackCustom.POST_EFFECT_INIT_LATE> {
7
- public override v = {
8
- room: {
9
- firedSet: new Set<PtrHash>(),
10
- },
11
- };
13
+ public override v = v;
12
14
 
13
15
  constructor() {
14
16
  super();
@@ -24,8 +26,8 @@ export class PostEffectInitLate extends CustomCallback<ModCallbackCustom.POST_EF
24
26
  // ModCallback.POST_EFFECT_UPDATE (55)
25
27
  private postEffectUpdate = (effect: EntityEffect): void => {
26
28
  const index = GetPtrHash(effect);
27
- if (!this.v.room.firedSet.has(index)) {
28
- this.v.room.firedSet.add(index);
29
+ if (!v.room.firedSet.has(index)) {
30
+ v.room.firedSet.add(index);
29
31
  this.fire(effect);
30
32
  }
31
33
  };
@@ -4,12 +4,14 @@ import { shouldFireEffect } from "../../shouldFire";
4
4
  import { DefaultMap } from "../DefaultMap";
5
5
  import { CustomCallback } from "../private/CustomCallback";
6
6
 
7
+ const v = {
8
+ run: {
9
+ stateMap: new DefaultMap<PtrHash, int, [int]>((state) => state),
10
+ },
11
+ };
12
+
7
13
  export class PostEffectStateChanged extends CustomCallback<ModCallbackCustom.POST_EFFECT_STATE_CHANGED> {
8
- public override v = {
9
- run: {
10
- stateMap: new DefaultMap<PtrHash, int, [int]>((state) => state),
11
- },
12
- };
14
+ public override v = v;
13
15
 
14
16
  constructor() {
15
17
  super();
@@ -25,12 +27,12 @@ export class PostEffectStateChanged extends CustomCallback<ModCallbackCustom.POS
25
27
  // ModCallback.POST_EFFECT_UPDATE (55)
26
28
  private postEffectUpdate = (effect: EntityEffect): void => {
27
29
  const ptrHash = GetPtrHash(effect);
28
- const previousState = this.v.run.stateMap.getAndSetDefault(
30
+ const previousState = v.run.stateMap.getAndSetDefault(
29
31
  ptrHash,
30
32
  effect.State,
31
33
  );
32
34
  const currentState = effect.State;
33
- this.v.run.stateMap.set(ptrHash, currentState);
35
+ v.run.stateMap.set(ptrHash, currentState);
34
36
 
35
37
  if (previousState !== currentState) {
36
38
  this.fire(effect, previousState, currentState);
@@ -3,12 +3,14 @@ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
3
  import { shouldFireFamiliar } from "../../shouldFire";
4
4
  import { CustomCallback } from "../private/CustomCallback";
5
5
 
6
+ const v = {
7
+ room: {
8
+ firedSet: new Set<PtrHash>(),
9
+ },
10
+ };
11
+
6
12
  export class PostFamiliarInitLate extends CustomCallback<ModCallbackCustom.POST_FAMILIAR_INIT_LATE> {
7
- public override v = {
8
- room: {
9
- firedSet: new Set<PtrHash>(),
10
- },
11
- };
13
+ public override v = v;
12
14
 
13
15
  constructor() {
14
16
  super();
@@ -24,8 +26,8 @@ export class PostFamiliarInitLate extends CustomCallback<ModCallbackCustom.POST_
24
26
  // ModCallback.POST_FAMILIAR_UPDATE (6)
25
27
  private postFamiliarUpdate = (familiar: EntityFamiliar): void => {
26
28
  const index = GetPtrHash(familiar);
27
- if (!this.v.room.firedSet.has(index)) {
28
- this.v.room.firedSet.add(index);
29
+ if (!v.room.firedSet.has(index)) {
30
+ v.room.firedSet.add(index);
29
31
  this.fire(familiar);
30
32
  }
31
33
  };
@@ -4,12 +4,14 @@ import { shouldFireFamiliar } from "../../shouldFire";
4
4
  import { DefaultMap } from "../DefaultMap";
5
5
  import { CustomCallback } from "../private/CustomCallback";
6
6
 
7
+ const v = {
8
+ run: {
9
+ stateMap: new DefaultMap<PtrHash, int, [int]>((state) => state),
10
+ },
11
+ };
12
+
7
13
  export class PostFamiliarStateChanged extends CustomCallback<ModCallbackCustom.POST_FAMILIAR_STATE_CHANGED> {
8
- public override v = {
9
- run: {
10
- stateMap: new DefaultMap<PtrHash, int, [int]>((state) => state),
11
- },
12
- };
14
+ public override v = v;
13
15
 
14
16
  constructor() {
15
17
  super();
@@ -25,12 +27,12 @@ export class PostFamiliarStateChanged extends CustomCallback<ModCallbackCustom.P
25
27
  // ModCallback.POST_FAMILIAR_UPDATE (6)
26
28
  private postFamiliarUpdate = (familiar: EntityFamiliar): void => {
27
29
  const ptrHash = GetPtrHash(familiar);
28
- const previousState = this.v.run.stateMap.getAndSetDefault(
30
+ const previousState = v.run.stateMap.getAndSetDefault(
29
31
  ptrHash,
30
32
  familiar.State,
31
33
  );
32
34
  const currentState = familiar.State;
33
- this.v.run.stateMap.set(ptrHash, currentState);
35
+ v.run.stateMap.set(ptrHash, currentState);
34
36
 
35
37
  if (previousState !== currentState) {
36
38
  this.fire(familiar, previousState, currentState);
@@ -1,5 +1,6 @@
1
1
  import { ISCFeature } from "../../enums/ISCFeature";
2
2
  import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
+ import { shouldFireBoolean } from "../../shouldFire";
3
4
  import { CustomCallback } from "../private/CustomCallback";
4
5
 
5
6
  export class PostGameStartedReordered extends CustomCallback<ModCallbackCustom.POST_GAME_STARTED_REORDERED> {
@@ -8,4 +9,6 @@ export class PostGameStartedReordered extends CustomCallback<ModCallbackCustom.P
8
9
 
9
10
  this.featuresUsed = [ISCFeature.GAME_REORDERED_CALLBACKS];
10
11
  }
12
+
13
+ protected override shouldFire = shouldFireBoolean;
11
14
  }
@@ -1,5 +1,6 @@
1
1
  import { ISCFeature } from "../../enums/ISCFeature";
2
2
  import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
+ import { shouldFireBoolean } from "../../shouldFire";
3
4
  import { CustomCallback } from "../private/CustomCallback";
4
5
 
5
6
  export class PostGameStartedReorderedLast extends CustomCallback<ModCallbackCustom.POST_GAME_STARTED_REORDERED> {
@@ -8,4 +9,6 @@ export class PostGameStartedReorderedLast extends CustomCallback<ModCallbackCust
8
9
 
9
10
  this.featuresUsed = [ISCFeature.GAME_REORDERED_CALLBACKS];
10
11
  }
12
+
13
+ protected override shouldFire = shouldFireBoolean;
11
14
  }
@@ -4,12 +4,14 @@ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
4
4
  import { isGreedMode } from "../../functions/run";
5
5
  import { CustomCallback } from "../private/CustomCallback";
6
6
 
7
+ const v = {
8
+ run: {
9
+ currentGreedWave: 0,
10
+ },
11
+ };
12
+
7
13
  export class PostGreedModeWave extends CustomCallback<ModCallbackCustom.POST_GREED_MODE_WAVE> {
8
- public override v = {
9
- run: {
10
- currentGreedWave: 0,
11
- },
12
- };
14
+ public override v = v;
13
15
 
14
16
  constructor() {
15
17
  super();
@@ -28,8 +30,8 @@ export class PostGreedModeWave extends CustomCallback<ModCallbackCustom.POST_GRE
28
30
 
29
31
  const level = game.GetLevel();
30
32
  const newWave = level.GreedModeWave;
31
- const oldWave = this.v.run.currentGreedWave;
32
- this.v.run.currentGreedWave = newWave;
33
+ const oldWave = v.run.currentGreedWave;
34
+ v.run.currentGreedWave = newWave;
33
35
 
34
36
  if (newWave > oldWave) {
35
37
  this.fire(oldWave, newWave);
@@ -9,12 +9,14 @@ import { PlayerIndex } from "../../types/PlayerIndex";
9
9
  import { DefaultMap } from "../DefaultMap";
10
10
  import { CustomCallback } from "../private/CustomCallback";
11
11
 
12
+ const v = {
13
+ run: {
14
+ playersHolyMantleMap: new DefaultMap<PlayerIndex, int>(0),
15
+ },
16
+ };
17
+
12
18
  export class PostHolyMantleRemoved extends CustomCallback<ModCallbackCustom.POST_HOLY_MANTLE_REMOVED> {
13
- public override v = {
14
- run: {
15
- playersHolyMantleMap: new DefaultMap<PlayerIndex, int>(0),
16
- },
17
- };
19
+ public override v = v;
18
20
 
19
21
  constructor() {
20
22
  super();
@@ -36,10 +38,10 @@ export class PostHolyMantleRemoved extends CustomCallback<ModCallbackCustom.POST
36
38
  CollectibleType.HOLY_MANTLE,
37
39
  );
38
40
  const oldNumHolyMantles = defaultMapGetPlayer(
39
- this.v.run.playersHolyMantleMap,
41
+ v.run.playersHolyMantleMap,
40
42
  player,
41
43
  );
42
- mapSetPlayer(this.v.run.playersHolyMantleMap, player, newNumHolyMantles);
44
+ mapSetPlayer(v.run.playersHolyMantleMap, player, newNumHolyMantles);
43
45
 
44
46
  if (newNumHolyMantles < oldNumHolyMantles) {
45
47
  this.fire(player, oldNumHolyMantles, newNumHolyMantles);
@@ -30,23 +30,24 @@ type T = ModCallbackCustom.POST_ITEM_DISCHARGE;
30
30
  type ActiveSlotToCollectibleTypeMap = Map<ActiveSlot, CollectibleType>;
31
31
  type ActiveSlotToChargeMap = Map<ActiveSlot, int>;
32
32
 
33
+ const v = {
34
+ run: {
35
+ playersActiveItemMap: new DefaultMap<
36
+ PlayerIndex,
37
+ ActiveSlotToCollectibleTypeMap
38
+ >(() => new Map()),
39
+ playersActiveChargeMap: new DefaultMap<PlayerIndex, ActiveSlotToChargeMap>(
40
+ () => new Map(),
41
+ ),
42
+ },
43
+
44
+ room: {
45
+ playersBulbLastCollisionFrame: new Map<PlayerIndex, int>(),
46
+ },
47
+ };
48
+
33
49
  export class PostItemDischarge extends CustomCallback<T> {
34
- public override v = {
35
- run: {
36
- playersActiveItemMap: new DefaultMap<
37
- PlayerIndex,
38
- ActiveSlotToCollectibleTypeMap
39
- >(() => new Map()),
40
- playersActiveChargeMap: new DefaultMap<
41
- PlayerIndex,
42
- ActiveSlotToChargeMap
43
- >(() => new Map()),
44
- },
45
-
46
- room: {
47
- playersBulbLastCollisionFrame: new Map<PlayerIndex, int>(),
48
- },
49
- };
50
+ public override v = v;
50
51
 
51
52
  constructor() {
52
53
  super();
@@ -122,23 +123,16 @@ export class PostItemDischarge extends CustomCallback<T> {
122
123
  }
123
124
 
124
125
  const gameFrameCount = game.GetFrameCount();
125
- mapSetPlayer(
126
- this.v.room.playersBulbLastCollisionFrame,
127
- player,
128
- gameFrameCount,
129
- );
126
+ mapSetPlayer(v.room.playersBulbLastCollisionFrame, player, gameFrameCount);
130
127
  }
131
128
 
132
129
  // ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED
133
130
  private postPEffectUpdateReordered = (player: EntityPlayer) => {
134
131
  const activeItemMap = defaultMapGetPlayer(
135
- this.v.run.playersActiveItemMap,
136
- player,
137
- );
138
- const chargeMap = defaultMapGetPlayer(
139
- this.v.run.playersActiveChargeMap,
132
+ v.run.playersActiveItemMap,
140
133
  player,
141
134
  );
135
+ const chargeMap = defaultMapGetPlayer(v.run.playersActiveChargeMap, player);
142
136
 
143
137
  for (const activeSlot of ACTIVE_SLOT_VALUES) {
144
138
  const currentActiveItem = player.GetActiveItem();
@@ -179,7 +173,7 @@ export class PostItemDischarge extends CustomCallback<T> {
179
173
  private playerRecentlyCollidedWithBulb(player: EntityPlayer) {
180
174
  const gameFrameCount = game.GetFrameCount();
181
175
  const bulbLastCollisionFrame = mapGetPlayer(
182
- this.v.room.playersBulbLastCollisionFrame,
176
+ v.room.playersBulbLastCollisionFrame,
183
177
  player,
184
178
  );
185
179
  const collidedOnThisFrame = gameFrameCount === bulbLastCollisionFrame;
@@ -10,12 +10,14 @@ import {
10
10
 
11
11
  type T = ModCallbackCustom.POST_KEYBOARD_CHANGED;
12
12
 
13
+ const v = {
14
+ run: {
15
+ pressedKeys: new Set<Keyboard>(),
16
+ },
17
+ };
18
+
13
19
  export class PostKeyboardChanged extends CustomCallback<T> {
14
- public override v = {
15
- run: {
16
- pressedKeys: new Set<Keyboard>(),
17
- },
18
- };
20
+ public override v = v;
19
21
 
20
22
  constructor() {
21
23
  super();
@@ -40,20 +42,20 @@ export class PostKeyboardChanged extends CustomCallback<T> {
40
42
  };
41
43
 
42
44
  private postRender = () => {
43
- for (const keyboard of this.v.run.pressedKeys) {
45
+ for (const keyboard of v.run.pressedKeys) {
44
46
  if (!isKeyboardPressed(keyboard)) {
45
- this.v.run.pressedKeys.delete(keyboard);
47
+ v.run.pressedKeys.delete(keyboard);
46
48
  this.fire(keyboard, false);
47
49
  }
48
50
  }
49
51
 
50
52
  for (const keyboard of KEYBOARD_VALUES) {
51
- if (this.v.run.pressedKeys.has(keyboard)) {
53
+ if (v.run.pressedKeys.has(keyboard)) {
52
54
  continue;
53
55
  }
54
56
 
55
57
  if (isKeyboardPressed(keyboard)) {
56
- this.v.run.pressedKeys.add(keyboard);
58
+ v.run.pressedKeys.add(keyboard);
57
59
  this.fire(keyboard, true);
58
60
  }
59
61
  }
@@ -3,12 +3,14 @@ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
3
  import { shouldFireKnife } from "../../shouldFire";
4
4
  import { CustomCallback } from "../private/CustomCallback";
5
5
 
6
+ const v = {
7
+ room: {
8
+ firedSet: new Set<PtrHash>(),
9
+ },
10
+ };
11
+
6
12
  export class PostKnifeInitLate extends CustomCallback<ModCallbackCustom.POST_KNIFE_INIT_LATE> {
7
- public override v = {
8
- room: {
9
- firedSet: new Set<PtrHash>(),
10
- },
11
- };
13
+ public override v = v;
12
14
 
13
15
  constructor() {
14
16
  super();
@@ -24,8 +26,8 @@ export class PostKnifeInitLate extends CustomCallback<ModCallbackCustom.POST_KNI
24
26
  // ModCallback.POST_KNIFE_UPDATE (51)
25
27
  private postKnifeUpdate = (knife: EntityKnife): void => {
26
28
  const ptrHash = GetPtrHash(knife);
27
- if (!this.v.room.firedSet.has(ptrHash)) {
28
- this.v.room.firedSet.add(ptrHash);
29
+ if (!v.room.firedSet.has(ptrHash)) {
30
+ v.room.firedSet.add(ptrHash);
29
31
  this.fire(knife);
30
32
  }
31
33
  };
@@ -3,12 +3,14 @@ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
3
  import { shouldFireLaser } from "../../shouldFire";
4
4
  import { CustomCallback } from "../private/CustomCallback";
5
5
 
6
+ const v = {
7
+ room: {
8
+ firedSet: new Set<PtrHash>(),
9
+ },
10
+ };
11
+
6
12
  export class PostLaserInitLate extends CustomCallback<ModCallbackCustom.POST_LASER_INIT_LATE> {
7
- public override v = {
8
- room: {
9
- firedSet: new Set<PtrHash>(),
10
- },
11
- };
13
+ public override v = v;
12
14
 
13
15
  constructor() {
14
16
  super();
@@ -24,8 +26,8 @@ export class PostLaserInitLate extends CustomCallback<ModCallbackCustom.POST_LAS
24
26
  // ModCallback.POST_LASER_UPDATE (48)
25
27
  private postLaserUpdate = (laser: EntityLaser) => {
26
28
  const index = GetPtrHash(laser);
27
- if (!this.v.room.firedSet.has(index)) {
28
- this.v.room.firedSet.add(index);
29
+ if (!v.room.firedSet.has(index)) {
30
+ v.room.firedSet.add(index);
29
31
  this.fire(laser);
30
32
  }
31
33
  };
@@ -3,12 +3,14 @@ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
3
  import { shouldFireNPC } from "../../shouldFire";
4
4
  import { CustomCallback } from "../private/CustomCallback";
5
5
 
6
+ const v = {
7
+ room: {
8
+ firedSet: new Set<PtrHash>(),
9
+ },
10
+ };
11
+
6
12
  export class PostNPCInitLate extends CustomCallback<ModCallbackCustom.POST_NPC_INIT_LATE> {
7
- public override v = {
8
- room: {
9
- firedSet: new Set<PtrHash>(),
10
- },
11
- };
13
+ public override v = v;
12
14
 
13
15
  constructor() {
14
16
  super();
@@ -24,8 +26,8 @@ export class PostNPCInitLate extends CustomCallback<ModCallbackCustom.POST_NPC_I
24
26
  // ModCallback.POST_NPC_UPDATE (0)
25
27
  private postNPCUpdate = (npc: EntityNPC) => {
26
28
  const index = GetPtrHash(npc);
27
- if (!this.v.room.firedSet.has(index)) {
28
- this.v.room.firedSet.add(index);
29
+ if (!v.room.firedSet.has(index)) {
30
+ v.room.firedSet.add(index);
29
31
  this.fire(npc);
30
32
  }
31
33
  };
@@ -4,14 +4,16 @@ import { shouldFireNPC } from "../../shouldFire";
4
4
  import { DefaultMap } from "../DefaultMap";
5
5
  import { CustomCallback } from "../private/CustomCallback";
6
6
 
7
+ const v = {
8
+ run: {
9
+ stateMap: new DefaultMap<PtrHash, NpcState, [NpcState]>(
10
+ (state) => state, // eslint-disable-line isaacscript/strict-enums
11
+ ),
12
+ },
13
+ };
14
+
7
15
  export class PostNPCStateChanged extends CustomCallback<ModCallbackCustom.POST_NPC_STATE_CHANGED> {
8
- public override v = {
9
- run: {
10
- stateMap: new DefaultMap<PtrHash, NpcState, [NpcState]>(
11
- (state) => state, // eslint-disable-line isaacscript/strict-enums
12
- ),
13
- },
14
- };
16
+ public override v = v;
15
17
 
16
18
  constructor() {
17
19
  super();
@@ -27,12 +29,9 @@ export class PostNPCStateChanged extends CustomCallback<ModCallbackCustom.POST_N
27
29
  // ModCallback.POST_NPC_UPDATE (0)
28
30
  private postNPCUpdate = (npc: EntityNPC) => {
29
31
  const ptrHash = GetPtrHash(npc);
30
- const previousState = this.v.run.stateMap.getAndSetDefault(
31
- ptrHash,
32
- npc.State,
33
- );
32
+ const previousState = v.run.stateMap.getAndSetDefault(ptrHash, npc.State);
34
33
  const currentState = npc.State;
35
- this.v.run.stateMap.set(ptrHash, currentState);
34
+ v.run.stateMap.set(ptrHash, currentState);
36
35
 
37
36
  if (previousState !== currentState) {
38
37
  this.fire(npc, previousState, currentState);
@@ -4,12 +4,14 @@ import { getClosestPlayer } from "../../functions/players";
4
4
  import { shouldFirePickup } from "../../shouldFire";
5
5
  import { CustomCallback } from "../private/CustomCallback";
6
6
 
7
+ const v = {
8
+ room: {
9
+ firedSet: new Set<PtrHash>(),
10
+ },
11
+ };
12
+
7
13
  export class PostPickupCollect extends CustomCallback<ModCallbackCustom.POST_PICKUP_COLLECT> {
8
- public override v = {
9
- room: {
10
- firedSet: new Set<PtrHash>(),
11
- },
12
- };
14
+ public override v = v;
13
15
 
14
16
  constructor() {
15
17
  super();
@@ -31,8 +33,8 @@ export class PostPickupCollect extends CustomCallback<ModCallbackCustom.POST_PIC
31
33
  }
32
34
 
33
35
  const index = GetPtrHash(pickup);
34
- if (!this.v.room.firedSet.has(index)) {
35
- this.v.room.firedSet.add(index);
36
+ if (!v.room.firedSet.has(index)) {
37
+ v.room.firedSet.add(index);
36
38
 
37
39
  const player = getClosestPlayer(pickup.Position);
38
40
  this.fire(pickup, player);
@@ -3,12 +3,14 @@ import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
3
3
  import { shouldFirePickup } from "../../shouldFire";
4
4
  import { CustomCallback } from "../private/CustomCallback";
5
5
 
6
+ const v = {
7
+ room: {
8
+ firedSet: new Set<PtrHash>(),
9
+ },
10
+ };
11
+
6
12
  export class PostPickupInitLate extends CustomCallback<ModCallbackCustom.POST_PICKUP_INIT_LATE> {
7
- public override v = {
8
- room: {
9
- firedSet: new Set<PtrHash>(),
10
- },
11
- };
13
+ public override v = v;
12
14
 
13
15
  constructor() {
14
16
  super();
@@ -24,8 +26,8 @@ export class PostPickupInitLate extends CustomCallback<ModCallbackCustom.POST_PI
24
26
  // ModCallback.POST_PICKUP_UPDATE (35)
25
27
  private postPickupUpdate = (pickup: EntityPickup) => {
26
28
  const index = GetPtrHash(pickup);
27
- if (!this.v.room.firedSet.has(index)) {
28
- this.v.room.firedSet.add(index);
29
+ if (!v.room.firedSet.has(index)) {
30
+ v.room.firedSet.add(index);
29
31
  this.fire(pickup);
30
32
  }
31
33
  };