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.
- package/dist/index.rollup.d.ts +27 -2
- package/dist/isaacscript-common.lua +803 -693
- package/dist/src/classes/ModFeature.d.ts.map +1 -1
- package/dist/src/classes/ModFeature.lua +12 -5
- package/dist/src/classes/callbacks/PostAmbushFinished.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostAmbushFinished.lua +4 -3
- package/dist/src/classes/callbacks/PostAmbushStarted.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostAmbushStarted.lua +4 -3
- package/dist/src/classes/callbacks/PostBombInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostBombInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostBoneSwing.lua +5 -4
- package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostCollectibleEmpty.lua +6 -5
- package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostCollectibleInitFirst.lua +6 -5
- package/dist/src/classes/callbacks/PostCursedTeleport.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostCursedTeleport.lua +14 -13
- package/dist/src/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostDiceRoomActivated.lua +4 -3
- package/dist/src/classes/callbacks/PostEffectInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostEffectInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostEffectStateChanged.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostEffectStateChanged.lua +8 -7
- package/dist/src/classes/callbacks/PostFamiliarInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostFamiliarInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostFamiliarStateChanged.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostFamiliarStateChanged.lua +8 -7
- package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts +2 -0
- package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostGameStartedReordered.lua +3 -0
- package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts +2 -0
- package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostGameStartedReorderedLast.lua +3 -0
- package/dist/src/classes/callbacks/PostGreedModeWave.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostGreedModeWave.lua +4 -3
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +5 -4
- package/dist/src/classes/callbacks/PostItemDischarge.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostItemDischarge.lua +20 -19
- package/dist/src/classes/callbacks/PostKeyboardChanged.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostKeyboardChanged.lua +8 -7
- package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostKnifeInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostLaserInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostLaserInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostNPCInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostNPCInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostNPCStateChanged.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostNPCStateChanged.lua +8 -7
- package/dist/src/classes/callbacks/PostPickupCollect.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPickupCollect.lua +6 -5
- package/dist/src/classes/callbacks/PostPickupInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPickupInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostPickupStateChanged.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPickupStateChanged.lua +8 -7
- package/dist/src/classes/callbacks/PostPlayerChangeHealth.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPlayerChangeHealth.lua +8 -7
- package/dist/src/classes/callbacks/PostPlayerChangeStat.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPlayerChangeStat.lua +8 -7
- package/dist/src/classes/callbacks/PostPlayerChangeType.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPlayerChangeType.lua +8 -7
- package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPlayerFatalDamage.lua +6 -5
- package/dist/src/classes/callbacks/PostPlayerInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPlayerInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostProjectileInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostProjectileInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostPurchase.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostPurchase.lua +5 -4
- package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostRoomClearChanged.lua +5 -4
- package/dist/src/classes/callbacks/PostSacrifice.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostSacrifice.lua +5 -4
- package/dist/src/classes/callbacks/PostTearInitLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostTearInitLate.lua +6 -5
- package/dist/src/classes/callbacks/PostTearInitVeryLate.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostTearInitVeryLate.lua +6 -5
- package/dist/src/classes/callbacks/PostTransformation.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostTransformation.lua +8 -7
- package/dist/src/classes/callbacks/PostTrinketBreak.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PostTrinketBreak.lua +9 -8
- package/dist/src/classes/callbacks/PreNewLevel.d.ts.map +1 -1
- package/dist/src/classes/callbacks/PreNewLevel.lua +4 -3
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +21 -20
- package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/CustomRevive.lua +18 -17
- package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/EsauJrDetection.lua +11 -10
- package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/FlipDetection.lua +4 -3
- package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.lua +8 -7
- package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/GridEntityUpdateDetection.lua +9 -8
- package/dist/src/classes/features/callbackLogic/ItemPickupDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/ItemPickupDetection.lua +7 -6
- package/dist/src/classes/features/callbackLogic/PickupChangeDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/PickupChangeDetection.lua +11 -10
- package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/PlayerCollectibleDetection.lua +20 -19
- package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.lua +15 -14
- package/dist/src/classes/features/callbackLogic/SlotDestroyedDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/SlotDestroyedDetection.lua +6 -5
- package/dist/src/classes/features/callbackLogic/SlotRenderDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/SlotRenderDetection.lua +15 -14
- package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.d.ts.map +1 -1
- package/dist/src/classes/features/callbackLogic/SlotUpdateDetection.lua +6 -5
- package/dist/src/classes/features/other/CollectibleItemPoolType.d.ts.map +1 -1
- package/dist/src/classes/features/other/CollectibleItemPoolType.lua +6 -5
- package/dist/src/classes/features/other/CustomItemPools.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomItemPools.lua +6 -5
- package/dist/src/classes/features/other/CustomPickups.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomStages.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomStages.lua +17 -26
- package/dist/src/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
- package/dist/src/classes/features/other/CustomTrapdoors.lua +36 -35
- package/dist/src/classes/features/other/DisableAllSound.d.ts.map +1 -1
- package/dist/src/classes/features/other/DisableAllSound.lua +10 -9
- package/dist/src/classes/features/other/DisableInputs.d.ts.map +1 -1
- package/dist/src/classes/features/other/DisableInputs.lua +21 -20
- package/dist/src/classes/features/other/ExtraConsoleCommands.lua +19 -19
- package/dist/src/classes/features/other/NoSirenSteal.d.ts.map +1 -1
- package/dist/src/classes/features/other/NoSirenSteal.lua +5 -4
- package/dist/src/classes/features/other/Pause.d.ts.map +1 -1
- package/dist/src/classes/features/other/Pause.lua +20 -19
- package/dist/src/classes/features/other/PersistentEntities.d.ts.map +1 -1
- package/dist/src/classes/features/other/PersistentEntities.lua +20 -19
- package/dist/src/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
- package/dist/src/classes/features/other/PickupIndexCreation.lua +29 -28
- package/dist/src/classes/features/other/PlayerInventory.d.ts.map +1 -1
- package/dist/src/classes/features/other/PlayerInventory.lua +9 -8
- package/dist/src/classes/features/other/PonyDetection.d.ts.map +1 -1
- package/dist/src/classes/features/other/PonyDetection.lua +8 -7
- package/dist/src/classes/features/other/PressInput.d.ts.map +1 -1
- package/dist/src/classes/features/other/PressInput.lua +7 -6
- package/dist/src/classes/features/other/PreventChildEntities.d.ts.map +1 -1
- package/dist/src/classes/features/other/PreventChildEntities.lua +7 -6
- package/dist/src/classes/features/other/PreventCollectibleRotation.d.ts.map +1 -1
- package/dist/src/classes/features/other/PreventCollectibleRotation.lua +7 -6
- package/dist/src/classes/features/other/PreventGridEntityRespawn.d.ts.map +1 -1
- package/dist/src/classes/features/other/PreventGridEntityRespawn.lua +16 -15
- package/dist/src/classes/features/other/RoomClearFrame.d.ts.map +1 -1
- package/dist/src/classes/features/other/RoomClearFrame.lua +6 -5
- package/dist/src/classes/features/other/RoomHistory.d.ts.map +1 -1
- package/dist/src/classes/features/other/RoomHistory.lua +9 -8
- package/dist/src/classes/features/other/RunInNFrames.d.ts.map +1 -1
- package/dist/src/classes/features/other/RunInNFrames.lua +14 -13
- package/dist/src/classes/features/other/RunNextRoom.d.ts.map +1 -1
- package/dist/src/classes/features/other/RunNextRoom.lua +6 -5
- package/dist/src/classes/features/other/SaveDataManager.d.ts +1 -0
- package/dist/src/classes/features/other/SaveDataManager.d.ts.map +1 -1
- package/dist/src/classes/features/other/SaveDataManager.lua +12 -0
- package/dist/src/classes/features/other/StageHistory.d.ts.map +1 -1
- package/dist/src/classes/features/other/StageHistory.lua +7 -6
- package/dist/src/classes/features/other/TaintedLazarusPlayers.d.ts.map +1 -1
- package/dist/src/classes/features/other/TaintedLazarusPlayers.lua +18 -17
- package/dist/src/classes/features/other/customStages/streakText.d.ts +3 -25
- package/dist/src/classes/features/other/customStages/streakText.d.ts.map +1 -1
- package/dist/src/classes/features/other/customStages/streakText.lua +16 -26
- package/dist/src/classes/features/other/customStages/v.d.ts +25 -0
- package/dist/src/classes/features/other/customStages/v.d.ts.map +1 -0
- package/dist/src/classes/features/other/customStages/v.lua +16 -0
- package/dist/src/classes/features/other/customStages/versusScreen.d.ts +2 -8
- package/dist/src/classes/features/other/customStages/versusScreen.d.ts.map +1 -1
- package/dist/src/classes/features/other/customStages/versusScreen.lua +6 -4
- package/dist/src/enums/ModCallbackCustom.d.ts +6 -0
- package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
- package/dist/src/functions/decorators.d.ts +15 -0
- package/dist/src/functions/decorators.d.ts.map +1 -1
- package/dist/src/functions/decorators.lua +21 -5
- package/dist/src/interfaces/SaveData.d.ts.map +1 -1
- package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts +4 -2
- package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -1
- package/dist/src/shouldFire.d.ts +1 -0
- package/dist/src/shouldFire.d.ts.map +1 -1
- package/dist/src/shouldFire.lua +5 -0
- package/package.json +1 -1
- package/src/classes/ModFeature.ts +16 -4
- package/src/classes/callbacks/PostAmbushFinished.ts +9 -7
- package/src/classes/callbacks/PostAmbushStarted.ts +9 -7
- package/src/classes/callbacks/PostBombInitLate.ts +9 -7
- package/src/classes/callbacks/PostBoneSwing.ts +9 -7
- package/src/classes/callbacks/PostCollectibleEmpty.ts +9 -7
- package/src/classes/callbacks/PostCollectibleInitFirst.ts +9 -7
- package/src/classes/callbacks/PostCursedTeleport.ts +20 -24
- package/src/classes/callbacks/PostDiceRoomActivated.ts +9 -7
- package/src/classes/callbacks/PostEffectInitLate.ts +9 -7
- package/src/classes/callbacks/PostEffectStateChanged.ts +9 -7
- package/src/classes/callbacks/PostFamiliarInitLate.ts +9 -7
- package/src/classes/callbacks/PostFamiliarStateChanged.ts +9 -7
- package/src/classes/callbacks/PostGameStartedReordered.ts +3 -0
- package/src/classes/callbacks/PostGameStartedReorderedLast.ts +3 -0
- package/src/classes/callbacks/PostGreedModeWave.ts +9 -7
- package/src/classes/callbacks/PostHolyMantleRemoved.ts +9 -7
- package/src/classes/callbacks/PostItemDischarge.ts +21 -27
- package/src/classes/callbacks/PostKeyboardChanged.ts +11 -9
- package/src/classes/callbacks/PostKnifeInitLate.ts +9 -7
- package/src/classes/callbacks/PostLaserInitLate.ts +9 -7
- package/src/classes/callbacks/PostNPCInitLate.ts +9 -7
- package/src/classes/callbacks/PostNPCStateChanged.ts +11 -12
- package/src/classes/callbacks/PostPickupCollect.ts +9 -7
- package/src/classes/callbacks/PostPickupInitLate.ts +9 -7
- package/src/classes/callbacks/PostPickupStateChanged.ts +9 -7
- package/src/classes/callbacks/PostPlayerChangeHealth.ts +10 -8
- package/src/classes/callbacks/PostPlayerChangeStat.ts +11 -10
- package/src/classes/callbacks/PostPlayerChangeType.ts +13 -11
- package/src/classes/callbacks/PostPlayerFatalDamage.ts +10 -8
- package/src/classes/callbacks/PostPlayerInitLate.ts +9 -7
- package/src/classes/callbacks/PostProjectileInitLate.ts +9 -7
- package/src/classes/callbacks/PostPurchase.ts +11 -9
- package/src/classes/callbacks/PostRoomClearChanged.ts +10 -8
- package/src/classes/callbacks/PostSacrifice.ts +9 -7
- package/src/classes/callbacks/PostTearInitLate.ts +9 -7
- package/src/classes/callbacks/PostTearInitVeryLate.ts +9 -7
- package/src/classes/callbacks/PostTransformation.ts +12 -10
- package/src/classes/callbacks/PostTrinketBreak.ts +12 -16
- package/src/classes/callbacks/PreNewLevel.ts +9 -7
- package/src/classes/features/callbackLogic/CustomGridEntities.ts +23 -21
- package/src/classes/features/callbackLogic/CustomRevive.ts +26 -27
- package/src/classes/features/callbackLogic/EsauJrDetection.ts +19 -17
- package/src/classes/features/callbackLogic/FlipDetection.ts +10 -8
- package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +11 -9
- package/src/classes/features/callbackLogic/GridEntityUpdateDetection.ts +13 -12
- package/src/classes/features/callbackLogic/ItemPickupDetection.ts +10 -8
- package/src/classes/features/callbackLogic/PickupChangeDetection.ts +12 -10
- package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +21 -27
- package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +22 -29
- package/src/classes/features/callbackLogic/SlotDestroyedDetection.ts +9 -7
- package/src/classes/features/callbackLogic/SlotRenderDetection.ts +15 -13
- package/src/classes/features/callbackLogic/SlotUpdateDetection.ts +9 -7
- package/src/classes/features/other/CollectibleItemPoolType.ts +9 -7
- package/src/classes/features/other/CustomItemPools.ts +9 -7
- package/src/classes/features/other/CustomPickups.ts +0 -1
- package/src/classes/features/other/CustomStages.ts +16 -44
- package/src/classes/features/other/CustomTrapdoors.ts +53 -54
- package/src/classes/features/other/DisableAllSound.ts +13 -11
- package/src/classes/features/other/DisableInputs.ts +39 -37
- package/src/classes/features/other/ExtraConsoleCommands.ts +19 -19
- package/src/classes/features/other/NoSirenSteal.ts +11 -9
- package/src/classes/features/other/Pause.ts +21 -19
- package/src/classes/features/other/PersistentEntities.ts +33 -31
- package/src/classes/features/other/PickupIndexCreation.ts +35 -33
- package/src/classes/features/other/PlayerInventory.ts +14 -12
- package/src/classes/features/other/PonyDetection.ts +11 -9
- package/src/classes/features/other/PressInput.ts +11 -9
- package/src/classes/features/other/PreventChildEntities.ts +10 -8
- package/src/classes/features/other/PreventCollectibleRotation.ts +20 -18
- package/src/classes/features/other/PreventGridEntityRespawn.ts +18 -18
- package/src/classes/features/other/RoomClearFrame.ts +12 -10
- package/src/classes/features/other/RoomHistory.ts +13 -11
- package/src/classes/features/other/RunInNFrames.ts +19 -17
- package/src/classes/features/other/RunNextRoom.ts +10 -8
- package/src/classes/features/other/SaveDataManager.ts +11 -0
- package/src/classes/features/other/StageHistory.ts +11 -9
- package/src/classes/features/other/TaintedLazarusPlayers.ts +31 -30
- package/src/classes/features/other/customStages/streakText.ts +14 -44
- package/src/classes/features/other/customStages/v.ts +31 -0
- package/src/classes/features/other/customStages/versusScreen.ts +2 -10
- package/src/enums/ModCallbackCustom.ts +6 -0
- package/src/functions/decorators.ts +45 -4
- package/src/interfaces/SaveData.ts +0 -1
- package/src/interfaces/private/AddCallbackParametersCustom.ts +2 -0
- 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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
(
|
|
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 (
|
|
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
|
-
|
|
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 (!
|
|
28
|
-
|
|
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 =
|
|
30
|
+
const previousState = v.run.stateMap.getAndSetDefault(
|
|
29
31
|
ptrHash,
|
|
30
32
|
effect.State,
|
|
31
33
|
);
|
|
32
34
|
const currentState = effect.State;
|
|
33
|
-
|
|
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 (!
|
|
28
|
-
|
|
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 =
|
|
30
|
+
const previousState = v.run.stateMap.getAndSetDefault(
|
|
29
31
|
ptrHash,
|
|
30
32
|
familiar.State,
|
|
31
33
|
);
|
|
32
34
|
const currentState = familiar.State;
|
|
33
|
-
|
|
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 =
|
|
32
|
-
|
|
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
|
-
|
|
41
|
+
v.run.playersHolyMantleMap,
|
|
40
42
|
player,
|
|
41
43
|
);
|
|
42
|
-
mapSetPlayer(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
45
|
+
for (const keyboard of v.run.pressedKeys) {
|
|
44
46
|
if (!isKeyboardPressed(keyboard)) {
|
|
45
|
-
|
|
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 (
|
|
53
|
+
if (v.run.pressedKeys.has(keyboard)) {
|
|
52
54
|
continue;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
if (isKeyboardPressed(keyboard)) {
|
|
56
|
-
|
|
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 (!
|
|
28
|
-
|
|
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 (!
|
|
28
|
-
|
|
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 (!
|
|
28
|
-
|
|
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 =
|
|
31
|
-
ptrHash,
|
|
32
|
-
npc.State,
|
|
33
|
-
);
|
|
32
|
+
const previousState = v.run.stateMap.getAndSetDefault(ptrHash, npc.State);
|
|
34
33
|
const currentState = npc.State;
|
|
35
|
-
|
|
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 (!
|
|
35
|
-
|
|
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 (!
|
|
28
|
-
|
|
29
|
+
if (!v.room.firedSet.has(index)) {
|
|
30
|
+
v.room.firedSet.add(index);
|
|
29
31
|
this.fire(pickup);
|
|
30
32
|
}
|
|
31
33
|
};
|